[Bug] Compiler drops nested empty objects from variable 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
- 78/100
- Tipo de issue
- Bug
- Clareza
- Claramente especificada
- Status de atividade
- Ativa
- Stack de tecnologia
- node.js, typescript
Direção de pesquisa
Comece por packages/compiler/src/ast-helpers.ts, especialmente por extractDictExpression() e seus chamadores que extraem valores padrão de objetos e valores de arrays. Reproduza o problema com o código-fonte fornecido e inspecione output.agent_version.state_variables. O trabalho estará concluído quando objetos vazios aninhados permanecerem tanto nos valores padrão de payload quanto nos de items, com cobertura de regressão para esses casos.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
Description
Empty objects inside object and list variable defaults disappear during compilation. This removes object properties and changes list lengths and element positions without a diagnostic.
Steps to Reproduce
- Check out
salesforce/agentscriptatace15eb2dc75564fd9e214385ac045c539056770(currentmain). - Parse the source below with
@agentscript/parser, convert it withnew Dialect().parse(mappingNode, AgentforceSchema), and run the AgentforcedefaultRules()throughLintEnginewithagentforceSchemaContext. - Pass the parsed value to the compiler's
compile()and inspectoutput.agent_version.state_variables.
Expected Behavior
The payload default remains {"empty": {}, "full": {"n": 1}}, and the items default remains [{}, {"n": 1}, {}].
Actual Behavior
The compiler emits:
{"developer_name": "payload", "default": {"full": {"n": 1}}}
{"developer_name": "items", "default": [{"n": 1}]}
The parser, schema, lint engine, and compiler return no diagnostics for this source. A standalone mutable object = {} retains its empty default, and a list[string] = ["a", "b"] retains both elements.
Environment
- Node.js: 22.20.0
- pnpm: 10.34.6
- OS: macOS 27.0.1, arm64
- Package:
@agentscript/compiler3.26.1, source checkout at the commit above - Parser: default JavaScript backend
Minimal Reproduction
config:
agent_name: "TestBot"
agent_type: "AgentforceServiceAgent"
access:
default_agent_user: "[email protected]"
variables:
payload: mutable object = {"empty": {}, "full": {"n": 1}}
items: mutable list[object] = [{}, {"n": 1}, {}]
start_agent main:
description: "Test"
reasoning:
instructions: ->
| {[email protected]} {[email protected]}
Additional Context
extractDictExpression() in packages/compiler/src/ast-helpers.ts returns undefined for an empty dictionary. Its caller omits dictionary values that are undefined, and extractExpressionValue() filters them out of arrays. The same helper handles default extraction, so an empty dictionary is treated as a missing value when nested.
Reproduced offline through parse → schema → lint → compile, with assertions on both corrupted defaults and the standalone-object/string-list controls. The existing compiler suite passes (1,113 passed, 3 skipped), so it does not catch these cases. The standard dependency build was blocked by the missing tree-sitter CLI; the required TypeScript packages were built directly. No fix is included in this report.
- 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 80/100
salesforce/agentscript#103 ·
Mantenedores costumam responder em até 1 dia
-
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 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á 169 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
-
Parallel reticle_verify opens per-flow leases without the source lease's ignoreHTTPSErrorsTalvez já em andamento @as992949791 assumiu hoje. Abertagood first issue help wanted
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 85/100
reticlehq/reticle#2033 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 1 dia
-
area:quality p3-medium ready-for-agent type:docs
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 83/100
fderuiter/deruiter.dev#3589 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
manfredsteyer/angular-oauth2-oidc#1514 ·
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
marmelab/react-admin#11431 ·
Mantenedores costumam responder em até 1 dia