[Bug] Compiler loses __proto__ keys in object variable defaults
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 2/5
- Geschätzter Aufwand
- 1-3 Stunden
- Anfängerfreundlichkeit
- 78/100
- Issue-Typ
- Bug
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- node.js, typescript
- Bereich
- backend
Rechercherichtung
Beginne mit packages/compiler/src/ast-helpers.ts und untersuche extractDictExpression(), das laut Issue Wörterbucheinträge mit result[key] = value zuweist. Reproduziere die gemeldeten Fälle mit Objekt und Skalar für __proto__ und prüfe, ob sich der constructor-Kontrollfall weiterhin wie erwartet verhält. Als abgeschlossen gilt die Aufgabe, wenn die Kompilierung __proto__ als eigene Eigenschaft in der snake_case-Ausgabe erhält; führe die Compiler-Test-Suite aus, um auf Regressionen zu prüfen.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Description
A quoted __proto__ dictionary key disappears from a mutable object default during compilation. With an object value, the compiler changes the default object's prototype instead of creating an own property. No parser, schema, lint, or compiler diagnostic is returned.
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
compile()and inspect thepayloadentry inoutput.agent_version.state_variables, before any camelCase conversion.
Expected Behavior
The default has an own __proto__ property and serializes as:
{"__proto__":{"marker":"kept"},"normal":{"n":1}}
Actual Behavior
The default serializes as:
{"normal":{"n":1}}
Object.hasOwn(payload.default, '__proto__') is false, while Object.getPrototypeOf(payload.default).marker is "kept". A scalar value ("__proto__": "kept") is also lost. A "constructor": {"marker": "kept"} control retains its own key and value.
Environment
- Node.js: 22.20.0
- pnpm: 10.34.6
- OS: macOS 27.0.1, arm64
- Package:
@agentscript/compiler, 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 = {"__proto__": {"marker": "kept"}, "normal": {"n": 1}}
start_agent main:
description: "Test"
reasoning:
instructions: ->
| {[email protected]}
Additional Context
extractDictExpression() in packages/compiler/src/ast-helpers.ts assigns entries with result[key] = value on an ordinary object. For __proto__, that invokes the inherited setter. This is a different path from #88/#89: the loss is already present in the snake_case output of compile(), without calling snakeKeysToCamel. The dictionaries here are nonempty, so this also differs from #101's empty-dictionary loss.
Reproduced offline with assertions on object/scalar __proto__ values and the constructor control. The existing compiler suite passed (1,113 passed, 3 skipped), and the required TypeScript package builds passed. The standard dependency build was blocked by the missing tree-sitter CLI; no native-parser or full monorepo checks were run. No fix is included.
- Vorherrschende Sprache
- TypeScript
- Sterne
- 272
- Forks
- 55
- Ø Merge
- 12 Std. 18 Min.
- Gemergte PRs (30 T.)
- 5
Entwicklungsumgebung
Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus salesforce/agentscript
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 80/100
salesforce/agentscript#103 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
salesforce/agentscript#101 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 61/100
salesforce/agentscript#85 ·
Maintainer antworten meist innerhalb von 1 Tag
-
README Quick Start fails on macOS: Node 26 incompatibility and missing tree-sitter CLI prerequisiteEvtl. wieder frei @dsorajisto hat das vor 168 Tagen übernommen, und es ist kein Pull Request offen. Offen
Schwierigkeit 2/5 Ein halber Tag Anfängerfreundlichkeit 75/100
salesforce/agentscript#33 · 2 Kommentare ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 3/5 1-2 Tage Anfängerfreundlichkeit 72/100
salesforce/agentscript#99 ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in salesforce/agentscript
Ähnliche Issues
-
Add: MahdawiounTV HDOffencheck:passed streams:add
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
iptv-org/iptv#56890 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
type: enhancement
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 62/100
franciscoBSalgueiro/en-croissant#1061 ·
Maintainer antworten meist innerhalb von 3 Tagen
-
S: triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 65/100
Maintainer antworten meist innerhalb von 1 Tag
-
comp/desktop desktop/shell os/windows P3 tool/file type/bug
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 76/100
NousResearch/hermes-agent#145928 ·
Maintainer antworten meist innerhalb von 1 Tag