[Bug] Compiler drops nested None values from object and list defaults
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 80/100
- Tipo de issue
- Bug
- Clareza
- Claramente especificada
- Status de atividade
- Ativa
- Stack de tecnologia
- node.js, typescript
- Domínio
- backend
Direção de pesquisa
Comece em packages/compiler/src/ast-helpers.ts, em extractExpressionValue(), que, segundo a issue, retorna undefined para NoneLiteral; acompanhe como a extração de dicionários e arrays lida com esse resultado. Adicione testes de regressão para valores null aninhados nos valores padrão de objetos e listas; em seguida, verifique se os valores JSON null esperados são preservados e execute a suíte do compilador.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Description
The compiler silently removes None entries from object and list defaults. This changes list lengths and positions and makes an explicit null property indistinguishable from an absent property.
Steps to Reproduce
- Check out
ace15eb2dc75564fd9e214385ac045c539056770(current main). - Parse the source below with
@agentscript/parser, convert it withnew Dialect().parse(mappingNode, AgentforceSchema), and runnew LintEngine({ passes: defaultRules() }).run(value, agentforceSchemaContext). - Call
compile(value)and inspectoutput.agent_version.state_variables.
Expected Behavior
Preserve nested None as JSON null: payload.default should be {"missing":null,"kept":1}, and items.default should be [null,{"n":1},null].
Actual Behavior
payload.default is {"kept":1} and items.default is [{"n":1}]. Parser, schema, lint and compiler diagnostics are all empty. A control default {"no":False,"zero":0,"empty":""} retains all three values.
Environment
- Node.js: 22.20.0
- pnpm: 10.34.6
- OS: macOS 27.0.1, arm64
- Package:
@agentscript/compiler3.26.1, source checkout above - Parser: default JavaScript backend
Minimal Reproduction
config:
agent_name: "TestBot"
agent_type: "AgentforceServiceAgent"
access:
default_agent_user: "[email protected]"
variables:
payload: mutable object = {"missing": None, "kept": 1}
items: mutable list[object] = [None, {"n": 1}, None]
control: mutable object = {"no": False, "zero": 0, "empty": ""}
start_agent main:
description: "Test"
reasoning:
instructions: ->
| {[email protected]} {[email protected]} {[email protected]}
Additional Context
extractExpressionValue() in packages/compiler/src/ast-helpers.ts does not handle NoneLiteral, so it returns undefined; dictionary extraction omits that property and array extraction filters out the element. This differs from #101: there are no empty dictionaries here, and retaining empty dictionaries alone would still leave NoneLiteral unhandled. The intentional omission of a standalone = None default in state-variables.ts is separate from null values inside a collection.
Reproduced offline with assertions on the corrupted defaults, empty diagnostics and falsy-value controls. The compiler suite passes (1,113 passed, 3 skipped); required TypeScript packages built directly. The normal dependency build was blocked at the native parser prerequisite; native parsing and full monorepo checks were not run. No fix is included.
- Linguagem predominante
- TypeScript
- Estrelas
- 272
- Forks
- 55
- Merge médio
- 12h 18min
- PRs com merge (30d)
- 5
Preparar o ambiente
Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de salesforce/agentscript
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
salesforce/agentscript#102 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
salesforce/agentscript#101 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 61/100
salesforce/agentscript#85 ·
Mantenedores costumam responder em até 1 dia
-
README Quick Start fails on macOS: Node 26 incompatibility and missing tree-sitter CLI prerequisiteTalvez livre de novo @dsorajisto assumiu há 168 dias e não há nenhum pull request aberto. Aberta
Dificuldade 2/5 Meio dia Facilidade para iniciantes 75/100
salesforce/agentscript#33 · 2 comentários ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 3/5 1-2 dias Facilidade para iniciantes 72/100
salesforce/agentscript#99 ·
Mantenedores costumam responder em até 1 dia
Todas as issues de salesforce/agentscript
Issues semelhantes
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
scaleway/ultraviolet#7089 ·
Mantenedores costumam responder em até 2 dias
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 67/100
tencent-connect/dsh-qqbot#81 ·
Mantenedores costumam responder em até 1 dia
-
[Bug]: Pen taps on sidebar rows start a drag and lose their clickTalvez já em andamento @makhnatkin assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 62/100
Mantenedores costumam responder em até 1 dia
-
bug
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 66/100
clangd/vscode-clangd#1009 ·