@smthrs/gateway 1.0.0-rc.3 → 1.0.0-rc.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. package/README.md +1 -1
  2. package/dist/cjs/EngineTrace.d.ts.map +1 -1
  3. package/dist/cjs/EngineTrace.js +10 -2
  4. package/dist/cjs/EngineTrace.js.map +2 -2
  5. package/dist/cjs/GatewayProjection.d.ts.map +1 -1
  6. package/dist/cjs/GatewayProjection.js +10 -1
  7. package/dist/cjs/GatewayProjection.js.map +2 -2
  8. package/dist/cjs/HostBranchPresence.d.ts +7 -0
  9. package/dist/cjs/HostBranchPresence.d.ts.map +1 -1
  10. package/dist/cjs/HostBranchPresence.js.map +2 -2
  11. package/dist/cjs/RunTrace.d.ts.map +1 -1
  12. package/dist/cjs/RunTrace.js +3 -1
  13. package/dist/cjs/RunTrace.js.map +2 -2
  14. package/dist/cjs/internal/actionRenderings.d.ts +10 -0
  15. package/dist/cjs/internal/actionRenderings.d.ts.map +1 -1
  16. package/dist/cjs/internal/actionRenderings.js.map +2 -2
  17. package/dist/cjs/internal/inspectLabels.d.ts +5 -0
  18. package/dist/cjs/internal/inspectLabels.d.ts.map +1 -1
  19. package/dist/cjs/internal/inspectLabels.js.map +2 -2
  20. package/dist/esm/EngineTrace.d.ts.map +1 -1
  21. package/dist/esm/EngineTrace.js +19 -10
  22. package/dist/esm/EngineTrace.js.map +1 -1
  23. package/dist/esm/GatewayProjection.d.ts.map +1 -1
  24. package/dist/esm/GatewayProjection.js +7 -0
  25. package/dist/esm/GatewayProjection.js.map +1 -1
  26. package/dist/esm/HostBranchPresence.d.ts +7 -0
  27. package/dist/esm/HostBranchPresence.d.ts.map +1 -1
  28. package/dist/esm/HostBranchPresence.js +4 -1
  29. package/dist/esm/HostBranchPresence.js.map +1 -1
  30. package/dist/esm/RunTrace.d.ts.map +1 -1
  31. package/dist/esm/RunTrace.js +4 -3
  32. package/dist/esm/RunTrace.js.map +1 -1
  33. package/dist/esm/internal/actionRenderings.d.ts +10 -0
  34. package/dist/esm/internal/actionRenderings.d.ts.map +1 -1
  35. package/dist/esm/internal/actionRenderings.js +10 -0
  36. package/dist/esm/internal/actionRenderings.js.map +1 -1
  37. package/dist/esm/internal/inspectLabels.d.ts +5 -0
  38. package/dist/esm/internal/inspectLabels.d.ts.map +1 -1
  39. package/dist/esm/internal/inspectLabels.js +5 -0
  40. package/dist/esm/internal/inspectLabels.js.map +1 -1
  41. package/package.json +13 -13
  42. package/src/EngineTrace.ts +34 -12
  43. package/src/GatewayProjection.ts +17 -6
  44. package/src/HostBranchPresence.ts +5 -1
  45. package/src/RunTrace.ts +9 -6
  46. package/src/internal/actionRenderings.ts +11 -0
  47. package/src/internal/inspectLabels.ts +6 -1
@@ -1,2 +1,12 @@
1
+ /**
2
+ * The deterministic Inspect label of each kept action in .specs/product/actions.md
3
+ * Appendix C, keyed by action id; null marks an action whose Inspect shows no label.
4
+ *
5
+ * @since 1.0.0
6
+ */
7
+ /**
8
+ * @since 1.0.0
9
+ * @private
10
+ */
1
11
  export declare const ACTION_RENDERINGS: Readonly<Record<string, string | null>>;
2
12
  //# sourceMappingURL=actionRenderings.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"actionRenderings.d.ts","sourceRoot":"","sources":["../../../src/internal/actionRenderings.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAuMrE,CAAA"}
1
+ {"version":3,"file":"actionRenderings.d.ts","sourceRoot":"","sources":["../../../src/internal/actionRenderings.ts"],"names":[],"mappings":"AACA;;;;;GAKG;AAEH;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,CAuMrE,CAAA"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/internal/actionRenderings.ts"],
4
- "sourcesContent": ["// Generated by scripts/catalog-mvp.ts from Appendix C; do not edit.\nexport const ACTION_RENDERINGS: Readonly<Record<string, string | null>> = {\n \"<boundary:name>\": null,\n \"<park>/parked\": null,\n \"<quota-park>/<session>\": null,\n \"<seal-step>\": null,\n \"<structured-output-count>/<name>\": null,\n \"agent/capacity/<seat>/cool/<n>\": \"Waiting for a model\",\n \"agent/opening-instructions\": \"Read the instructions\",\n \"agent/opening-memory\": \"Loaded context\",\n \"agent/route-seat\": \"Chose a model\",\n \"agent/run\": \"Worked a turn\",\n \"agent/send (stamp)\": null,\n \"agent/trace/checkpoint\": null,\n \"apply_patch\": \"An attributed edit in the File and Diff cards\",\n \"ask\": \"Needs you\",\n \"bash\": \"Terminal card (agent session). Missing: no terminal today\",\n \"checks/lint\": \"Linted the change\",\n \"checks/review\": \"Reviewed the change\",\n \"checks/security\": \"Reviewed security\",\n \"checks/wiki\": \"Checked the wiki\",\n \"coding/AdmitVibe\": \"Opened the change for landing\",\n \"coding/ApplyNative\": \"Applied the changes\",\n \"coding/CleanVibeHistory\": \"Tidied the history\",\n \"coding/CommandCheck\": \"Ran checks\",\n \"coding/CoordinateRequest\": \"Worked the TODO\",\n \"coding/CorrectPlan\": \"Fixed review findings\",\n \"coding/CorrectionRound\": \"Fixed review findings\",\n \"coding/DescribeFinalAtom\": \"Wrote the commit message\",\n \"coding/Dispatch\": \"Ran an agent turn\",\n \"coding/FlowLoad\": \"Validated the flows\",\n \"coding/ImplementAtom\": \"Implemented one step\",\n \"coding/ImplementAtoms\": \"Implemented the plan\",\n \"coding/ImplementPlan\": \"Implemented the plan\",\n \"coding/JevCheck\": \"Checked rules\",\n \"coding/LandVibe\": \"Landed the change\",\n \"coding/ObservePlan\": \"Tracked progress\",\n \"coding/Poc\": \"Drafted a prototype\",\n \"coding/PreparePlan\": \"Planned the change\",\n \"coding/PrepareRequest\": \"Prepared the request\",\n \"coding/ProposeFinalHistory\": \"Reviewed the history\",\n \"coding/Prototype\": \"Drafted a prototype\",\n \"coding/PublishVibeSource\": \"Published the change\",\n \"coding/ReadNative\": \"Read the changes\",\n \"coding/RecheckCorrected\": \"Re-checked the fix\",\n \"coding/RecheckFinalHistory\": \"Re-checked the history\",\n \"coding/RefreshWiki\": \"Refreshed wiki pages\",\n \"coding/RepairPass\": \"Repaired the change\",\n \"coding/ReviewCapturedChange\": \"Reviewed the change\",\n \"coding/ReviewCapturedWiki\": \"Checked the wiki\",\n \"coding/ReviewCheck\": \"Reviewed the change\",\n \"coding/RewriteFinalHistory\": \"Tidied the history\",\n \"coding/SecurityAudit\": \"Audited security\",\n \"coding/SecurityReviewCheck\": \"Reviewed security\",\n \"coding/VerifyVibe\": \"Verified before landing\",\n \"coding/Wiki\": \"Refreshed the wiki\",\n \"coding/WikiCheck\": \"Checked the wiki\",\n \"coding/admit-retained-source\": \"Opened the source\",\n \"coding/admit-verify-source\": \"Opened the candidate\",\n \"coding/assess\": \"Assessed the change\",\n \"coding/audit-security\": \"Audited security\",\n \"coding/begin-correction\": \"Started a fix round\",\n \"coding/capture-poc-source\": \"Captured the source\",\n \"coding/capture-review-check\": \"Captured the change\",\n \"coding/capture-wiki-check\": \"Captured the wiki\",\n \"coding/check\": \"Ran checks\",\n \"coding/check-command\": \"Ran checks\",\n \"coding/check-jev-rules\": \"Checked rules\",\n \"coding/configure-planning-wiki\": \"Chose wiki pages\",\n \"coding/confirm-final-description\": \"Confirmed the commit message\",\n \"coding/create-stack-base\": \"Created the stack base\",\n \"coding/create-vibe-landing\": \"Added to the stack\",\n \"coding/decline-request\": \"Declined the request\",\n \"coding/dispatch-turn\": \"Worked a turn\",\n \"coding/draft-plan\": \"Drafted the plan\",\n \"coding/draft-poc\": \"Drafted a prototype\",\n \"coding/edit-atom\": \"Edited the files\",\n \"coding/fast-forward-vibe\": \"Moved the branch forward\",\n \"coding/fast-gate\": \"Ran quick checks\",\n \"coding/fence-vibe-source\": \"Pinned the change\",\n \"coding/finalize-plan\": \"Finalized the plan\",\n \"coding/find-planning-wiki-review\": \"Found wiki notes\",\n \"coding/finish-correction\": \"Finished the fix round\",\n \"coding/finish-final-history\": \"Finished the history\",\n \"coding/finish-review-check\": \"Collected review findings\",\n \"coding/finish-wiki-check\": \"Checked the wiki\",\n \"coding/gather-planning-context\": \"Gathered context\",\n \"coding/implement-change\": \"Implemented the change\",\n \"coding/import-dependency-docs\": \"Imported dependency docs\",\n \"coding/install-dependency-pages\": \"Added dependency pages\",\n \"coding/load-flows\": \"Validated the flows\",\n \"coding/materialize-poc\": \"Applied the prototype\",\n \"coding/merge-request-feedback\": \"Took in your steer\",\n \"coding/merge-vibe-local-pull\": \"Merged the change\",\n \"coding/observe-atom\": \"Saved the edit\",\n \"coding/observe-dispatch\": \"Saved the turn\",\n \"coding/observe-vibe-append\": \"Added to the stack\",\n \"coding/observe-vibe-pull-checks\": \"Watched PR checks\",\n \"coding/open-vibe-local-pull\": \"Opened the pull request\",\n \"coding/open-vibe-pull\": \"Opened the pull request\",\n \"coding/prepare-atom\": \"Opened the working copy\",\n \"coding/prepare-atom-mutation\": \"Prepared to edit\",\n \"coding/prepare-final-description\": \"Drafted the commit message\",\n \"coding/prepare-owner-repair\": \"Prepared the repair\",\n \"coding/prepare-repair-context\": \"Gathered repair context\",\n \"coding/prepare-return-mythical-tip\": \"Returned to the stack tip\",\n \"coding/prepare-stack-base\": \"Prepared the stack\",\n \"coding/prepare-vibe-append\": \"Prepared to add to the stack\",\n \"coding/prepare-vibe-candidate\": \"Prepared the change\",\n \"coding/publish-vibe-source\": \"Published the change\",\n \"coding/queue-vibe-append\": \"Queued for the stack\",\n \"coding/read-correction-history\": \"Read earlier fixes\",\n \"coding/read-feedback-cancellation\": \"Read your steer\",\n \"coding/read-published-wiki\": \"Read the wiki\",\n \"coding/read-vibe-delivery\": \"Read delivery status\",\n \"coding/read-vibe-lander\": \"Read landing state\",\n \"coding/read-vibe-request\": \"Read the request\",\n \"coding/read-vibe-stack\": \"Read the stack\",\n \"coding/receive-request-feedback\": \"Waited for your steer\",\n \"coding/record-fast-gated-progress\": \"Recorded progress\",\n \"coding/record-learning\": \"Saved a lesson\",\n \"coding/record-slow-feedback\": \"Recorded feedback\",\n \"coding/refresh-final-history\": \"Refreshed the history\",\n \"coding/refresh-planning-wiki\": \"Refreshed wiki pages\",\n \"coding/refresh-restacked-evidence\": \"Refreshed evidence\",\n \"coding/refuse-plan-approval\": \"Refused a plan approval\",\n \"coding/repair-final-history\": \"Corrected the history\",\n \"coding/retain-poc\": \"Saved the prototype\",\n \"coding/review-final-history\": \"Reviewed the history\",\n \"coding/review-lens\": \"Reviewed through one lens\",\n \"coding/review-poc\": \"Reviewed the prototype\",\n \"coding/review-request\": \"Reviewed the request\",\n \"coding/review-security\": \"Reviewed security\",\n \"coding/run-correction-round\": \"Fixed review findings\",\n \"coding/select-owner-repair\": \"Chose what to fix\",\n \"coding/submit-vibe-lane\": \"Queued the change\",\n \"coding/todo-boundary\": null,\n \"coding/todo-delivery\": \"Prepared the delivery\",\n \"coding/todo-pause-requested\": null,\n \"coding/todo-resume\": null,\n \"coding/todo-review\": null,\n \"coding/todo-review-input\": null,\n \"coding/validate-final-history\": \"Checked the history\",\n \"coding/validate-plan\": \"Checked the plan\",\n \"coding/verify-planning-context\": \"Checked the context\",\n \"coding/verify-vibe-landed\": \"Confirmed it landed\",\n \"create-flow\": \"Created a flow\",\n \"create-flow/clarify\": \"Asked what the flow should do\",\n \"create-flow/design\": \"Designed the flow\",\n \"create-flow/document\": \"Documented the flow\",\n \"create-flow/fix\": \"Fixed the flow\",\n \"create-flow/provision\": \"Set up the flow\",\n \"create-flow/scaffold\": \"Wrote the flow\",\n \"edit\": \"An attributed edit in the File and Diff cards\",\n \"factory/Todo\": \"Routed the TODO\",\n \"factory/route-todo\": \"Chose how to start\",\n \"factory/stamp-route\": \"Declined the TODO\",\n \"glob\": \"A \\\"read\\\" line in branch activity, opening the File card\",\n \"grep\": \"A \\\"read\\\" line in branch activity, opening the File card\",\n \"jev\": \"Inspect only: \\\"Decided <question>\\\"\",\n \"ls\": \"A \\\"read\\\" line in branch activity, opening the File card\",\n \"memory\": \"The \\\"Context\\\" line and the preflight cell in Inspect\",\n \"memory/mine\": \"Saved lessons\",\n \"memory/mine/run\": \"Saved lessons\",\n \"read\": \"A \\\"read\\\" line in branch activity, opening the File card\",\n \"recall\": \"The \\\"Context\\\" line and the preflight cell in Inspect\",\n \"recall (namespaced)\": \"The \\\"Context\\\" line and the preflight cell in Inspect\",\n \"remember\": \"Learning receipt\",\n \"review\": \"Reviewed the change\",\n \"smithers-review/ApplyVerdicts\": \"Settled findings\",\n \"smithers-review/FinalizeReview\": \"Finished the review\",\n \"smithers-review/MergeFileBatch\": \"Collected findings\",\n \"smithers-review/NarrateChanges\": \"Wrote the walkthrough\",\n \"smithers-review/NarrateReview\": \"Wrote the walkthrough\",\n \"smithers-review/PrepareReview\": \"Prepared the review\",\n \"smithers-review/RenderWalkthrough\": \"Rendered the walkthrough\",\n \"smithers-review/ReviewFile\": \"Reviewed one file\",\n \"smithers-review/ReviewFiles\": \"Reviewed the files\",\n \"smithers-review/VerifyFindings\": \"Verified findings\",\n \"smithers-review/VerifyReview\": \"Verified findings\",\n \"smithers/IncrementalWiki\": \"Refreshed the wiki\",\n \"smithers/Wiki\": \"Refreshed the wiki\",\n \"stack.candidate\": \"Saved the candidate\",\n \"stack.propose\": \"Proposed the candidate\",\n \"system/human-task\": \"Waited for your answer\",\n \"system/sleep\": null,\n \"system/wait-for\": null,\n \"test\": \"Terminal card plus checks. Missing: needs SMITHERS_TEST_COMMAND\",\n \"wait\": \"Waited\",\n \"wiki/assess-review\": \"Assessed a wiki page\",\n \"wiki/bind-review-provenance\": \"Linked a review to its source\",\n \"wiki/check-citations\": \"Checked citations\",\n \"wiki/collect-page\": \"Collected sources for a page\",\n \"wiki/load-recorded-reviews\": \"Found earlier reviews\",\n \"wiki/publish-recorded-reviews\": \"Saved wiki pages\",\n \"wiki/review-page\": \"Reviewed a wiki page\",\n \"wiki/select-recorded-review\": \"Reused a review\",\n \"wiki/validate-review\": \"Checked a wiki page\",\n \"wiki/write-snapshot\": \"Saved wiki pages\",\n \"write\": \"An attributed edit in the File and Diff cards\"\n}\n"],
5
- "mappings": "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",
4
+ "sourcesContent": ["// Generated by scripts/catalog-mvp.ts from Appendix C; do not edit.\n/**\n * The deterministic Inspect label of each kept action in .specs/product/actions.md\n * Appendix C, keyed by action id; null marks an action whose Inspect shows no label.\n *\n * @since 1.0.0\n */\n\n/**\n * @since 1.0.0\n * @private\n */\nexport const ACTION_RENDERINGS: Readonly<Record<string, string | null>> = {\n \"<boundary:name>\": null,\n \"<park>/parked\": null,\n \"<quota-park>/<session>\": null,\n \"<seal-step>\": null,\n \"<structured-output-count>/<name>\": null,\n \"agent/capacity/<seat>/cool/<n>\": \"Waiting for a model\",\n \"agent/opening-instructions\": \"Read the instructions\",\n \"agent/opening-memory\": \"Loaded context\",\n \"agent/route-seat\": \"Chose a model\",\n \"agent/run\": \"Worked a turn\",\n \"agent/send (stamp)\": null,\n \"agent/trace/checkpoint\": null,\n \"apply_patch\": \"An attributed edit in the File and Diff cards\",\n \"ask\": \"Needs you\",\n \"bash\": \"Terminal card (agent session). Missing: no terminal today\",\n \"checks/lint\": \"Linted the change\",\n \"checks/review\": \"Reviewed the change\",\n \"checks/security\": \"Reviewed security\",\n \"checks/wiki\": \"Checked the wiki\",\n \"coding/AdmitVibe\": \"Opened the change for landing\",\n \"coding/ApplyNative\": \"Applied the changes\",\n \"coding/CleanVibeHistory\": \"Tidied the history\",\n \"coding/CommandCheck\": \"Ran checks\",\n \"coding/CoordinateRequest\": \"Worked the TODO\",\n \"coding/CorrectPlan\": \"Fixed review findings\",\n \"coding/CorrectionRound\": \"Fixed review findings\",\n \"coding/DescribeFinalAtom\": \"Wrote the commit message\",\n \"coding/Dispatch\": \"Ran an agent turn\",\n \"coding/FlowLoad\": \"Validated the flows\",\n \"coding/ImplementAtom\": \"Implemented one step\",\n \"coding/ImplementAtoms\": \"Implemented the plan\",\n \"coding/ImplementPlan\": \"Implemented the plan\",\n \"coding/JevCheck\": \"Checked rules\",\n \"coding/LandVibe\": \"Landed the change\",\n \"coding/ObservePlan\": \"Tracked progress\",\n \"coding/Poc\": \"Drafted a prototype\",\n \"coding/PreparePlan\": \"Planned the change\",\n \"coding/PrepareRequest\": \"Prepared the request\",\n \"coding/ProposeFinalHistory\": \"Reviewed the history\",\n \"coding/Prototype\": \"Drafted a prototype\",\n \"coding/PublishVibeSource\": \"Published the change\",\n \"coding/ReadNative\": \"Read the changes\",\n \"coding/RecheckCorrected\": \"Re-checked the fix\",\n \"coding/RecheckFinalHistory\": \"Re-checked the history\",\n \"coding/RefreshWiki\": \"Refreshed wiki pages\",\n \"coding/RepairPass\": \"Repaired the change\",\n \"coding/ReviewCapturedChange\": \"Reviewed the change\",\n \"coding/ReviewCapturedWiki\": \"Checked the wiki\",\n \"coding/ReviewCheck\": \"Reviewed the change\",\n \"coding/RewriteFinalHistory\": \"Tidied the history\",\n \"coding/SecurityAudit\": \"Audited security\",\n \"coding/SecurityReviewCheck\": \"Reviewed security\",\n \"coding/VerifyVibe\": \"Verified before landing\",\n \"coding/Wiki\": \"Refreshed the wiki\",\n \"coding/WikiCheck\": \"Checked the wiki\",\n \"coding/admit-retained-source\": \"Opened the source\",\n \"coding/admit-verify-source\": \"Opened the candidate\",\n \"coding/assess\": \"Assessed the change\",\n \"coding/audit-security\": \"Audited security\",\n \"coding/begin-correction\": \"Started a fix round\",\n \"coding/capture-poc-source\": \"Captured the source\",\n \"coding/capture-review-check\": \"Captured the change\",\n \"coding/capture-wiki-check\": \"Captured the wiki\",\n \"coding/check\": \"Ran checks\",\n \"coding/check-command\": \"Ran checks\",\n \"coding/check-jev-rules\": \"Checked rules\",\n \"coding/configure-planning-wiki\": \"Chose wiki pages\",\n \"coding/confirm-final-description\": \"Confirmed the commit message\",\n \"coding/create-stack-base\": \"Created the stack base\",\n \"coding/create-vibe-landing\": \"Added to the stack\",\n \"coding/decline-request\": \"Declined the request\",\n \"coding/dispatch-turn\": \"Worked a turn\",\n \"coding/draft-plan\": \"Drafted the plan\",\n \"coding/draft-poc\": \"Drafted a prototype\",\n \"coding/edit-atom\": \"Edited the files\",\n \"coding/fast-forward-vibe\": \"Moved the branch forward\",\n \"coding/fast-gate\": \"Ran quick checks\",\n \"coding/fence-vibe-source\": \"Pinned the change\",\n \"coding/finalize-plan\": \"Finalized the plan\",\n \"coding/find-planning-wiki-review\": \"Found wiki notes\",\n \"coding/finish-correction\": \"Finished the fix round\",\n \"coding/finish-final-history\": \"Finished the history\",\n \"coding/finish-review-check\": \"Collected review findings\",\n \"coding/finish-wiki-check\": \"Checked the wiki\",\n \"coding/gather-planning-context\": \"Gathered context\",\n \"coding/implement-change\": \"Implemented the change\",\n \"coding/import-dependency-docs\": \"Imported dependency docs\",\n \"coding/install-dependency-pages\": \"Added dependency pages\",\n \"coding/load-flows\": \"Validated the flows\",\n \"coding/materialize-poc\": \"Applied the prototype\",\n \"coding/merge-request-feedback\": \"Took in your steer\",\n \"coding/merge-vibe-local-pull\": \"Merged the change\",\n \"coding/observe-atom\": \"Saved the edit\",\n \"coding/observe-dispatch\": \"Saved the turn\",\n \"coding/observe-vibe-append\": \"Added to the stack\",\n \"coding/observe-vibe-pull-checks\": \"Watched PR checks\",\n \"coding/open-vibe-local-pull\": \"Opened the pull request\",\n \"coding/open-vibe-pull\": \"Opened the pull request\",\n \"coding/prepare-atom\": \"Opened the working copy\",\n \"coding/prepare-atom-mutation\": \"Prepared to edit\",\n \"coding/prepare-final-description\": \"Drafted the commit message\",\n \"coding/prepare-owner-repair\": \"Prepared the repair\",\n \"coding/prepare-repair-context\": \"Gathered repair context\",\n \"coding/prepare-return-mythical-tip\": \"Returned to the stack tip\",\n \"coding/prepare-stack-base\": \"Prepared the stack\",\n \"coding/prepare-vibe-append\": \"Prepared to add to the stack\",\n \"coding/prepare-vibe-candidate\": \"Prepared the change\",\n \"coding/publish-vibe-source\": \"Published the change\",\n \"coding/queue-vibe-append\": \"Queued for the stack\",\n \"coding/read-correction-history\": \"Read earlier fixes\",\n \"coding/read-feedback-cancellation\": \"Read your steer\",\n \"coding/read-published-wiki\": \"Read the wiki\",\n \"coding/read-vibe-delivery\": \"Read delivery status\",\n \"coding/read-vibe-lander\": \"Read landing state\",\n \"coding/read-vibe-request\": \"Read the request\",\n \"coding/read-vibe-stack\": \"Read the stack\",\n \"coding/receive-request-feedback\": \"Waited for your steer\",\n \"coding/record-fast-gated-progress\": \"Recorded progress\",\n \"coding/record-learning\": \"Saved a lesson\",\n \"coding/record-slow-feedback\": \"Recorded feedback\",\n \"coding/refresh-final-history\": \"Refreshed the history\",\n \"coding/refresh-planning-wiki\": \"Refreshed wiki pages\",\n \"coding/refresh-restacked-evidence\": \"Refreshed evidence\",\n \"coding/refuse-plan-approval\": \"Refused a plan approval\",\n \"coding/repair-final-history\": \"Corrected the history\",\n \"coding/retain-poc\": \"Saved the prototype\",\n \"coding/review-final-history\": \"Reviewed the history\",\n \"coding/review-lens\": \"Reviewed through one lens\",\n \"coding/review-poc\": \"Reviewed the prototype\",\n \"coding/review-request\": \"Reviewed the request\",\n \"coding/review-security\": \"Reviewed security\",\n \"coding/run-correction-round\": \"Fixed review findings\",\n \"coding/select-owner-repair\": \"Chose what to fix\",\n \"coding/submit-vibe-lane\": \"Queued the change\",\n \"coding/todo-boundary\": null,\n \"coding/todo-delivery\": \"Prepared the delivery\",\n \"coding/todo-pause-requested\": null,\n \"coding/todo-resume\": null,\n \"coding/todo-review\": null,\n \"coding/todo-review-input\": null,\n \"coding/validate-final-history\": \"Checked the history\",\n \"coding/validate-plan\": \"Checked the plan\",\n \"coding/verify-planning-context\": \"Checked the context\",\n \"coding/verify-vibe-landed\": \"Confirmed it landed\",\n \"create-flow\": \"Created a flow\",\n \"create-flow/clarify\": \"Asked what the flow should do\",\n \"create-flow/design\": \"Designed the flow\",\n \"create-flow/document\": \"Documented the flow\",\n \"create-flow/fix\": \"Fixed the flow\",\n \"create-flow/provision\": \"Set up the flow\",\n \"create-flow/scaffold\": \"Wrote the flow\",\n \"edit\": \"An attributed edit in the File and Diff cards\",\n \"factory/Todo\": \"Routed the TODO\",\n \"factory/route-todo\": \"Chose how to start\",\n \"factory/stamp-route\": \"Declined the TODO\",\n \"glob\": \"A \\\"read\\\" line in branch activity, opening the File card\",\n \"grep\": \"A \\\"read\\\" line in branch activity, opening the File card\",\n \"jev\": \"Inspect only: \\\"Decided <question>\\\"\",\n \"ls\": \"A \\\"read\\\" line in branch activity, opening the File card\",\n \"memory\": \"The \\\"Context\\\" line and the preflight cell in Inspect\",\n \"memory/mine\": \"Saved lessons\",\n \"memory/mine/run\": \"Saved lessons\",\n \"read\": \"A \\\"read\\\" line in branch activity, opening the File card\",\n \"recall\": \"The \\\"Context\\\" line and the preflight cell in Inspect\",\n \"recall (namespaced)\": \"The \\\"Context\\\" line and the preflight cell in Inspect\",\n \"remember\": \"Learning receipt\",\n \"review\": \"Reviewed the change\",\n \"smithers-review/ApplyVerdicts\": \"Settled findings\",\n \"smithers-review/FinalizeReview\": \"Finished the review\",\n \"smithers-review/MergeFileBatch\": \"Collected findings\",\n \"smithers-review/NarrateChanges\": \"Wrote the walkthrough\",\n \"smithers-review/NarrateReview\": \"Wrote the walkthrough\",\n \"smithers-review/PrepareReview\": \"Prepared the review\",\n \"smithers-review/RenderWalkthrough\": \"Rendered the walkthrough\",\n \"smithers-review/ReviewFile\": \"Reviewed one file\",\n \"smithers-review/ReviewFiles\": \"Reviewed the files\",\n \"smithers-review/VerifyFindings\": \"Verified findings\",\n \"smithers-review/VerifyReview\": \"Verified findings\",\n \"smithers/IncrementalWiki\": \"Refreshed the wiki\",\n \"smithers/Wiki\": \"Refreshed the wiki\",\n \"stack.candidate\": \"Saved the candidate\",\n \"stack.propose\": \"Proposed the candidate\",\n \"system/human-task\": \"Waited for your answer\",\n \"system/sleep\": null,\n \"system/wait-for\": null,\n \"test\": \"Terminal card plus checks. Missing: needs SMITHERS_TEST_COMMAND\",\n \"wait\": \"Waited\",\n \"wiki/assess-review\": \"Assessed a wiki page\",\n \"wiki/bind-review-provenance\": \"Linked a review to its source\",\n \"wiki/check-citations\": \"Checked citations\",\n \"wiki/collect-page\": \"Collected sources for a page\",\n \"wiki/load-recorded-reviews\": \"Found earlier reviews\",\n \"wiki/publish-recorded-reviews\": \"Saved wiki pages\",\n \"wiki/review-page\": \"Reviewed a wiki page\",\n \"wiki/select-recorded-review\": \"Reused a review\",\n \"wiki/validate-review\": \"Checked a wiki page\",\n \"wiki/write-snapshot\": \"Saved wiki pages\",\n \"write\": \"An attributed edit in the File and Diff cards\"\n}\n"],
5
+ "mappings": "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",
6
6
  "names": []
7
7
  }
@@ -1,3 +1,8 @@
1
+ /**
2
+ * Inspect labels for recorded actions, read from the generated Appendix C table.
3
+ *
4
+ * @since 1.0.0
5
+ */
1
6
  /**
2
7
  * The recorded action's Appendix C label, with unknown historical tags retained.
3
8
  * Dynamic cell-call wrappers name the tool they recorded, never a new action.
@@ -1 +1 @@
1
- {"version":3,"file":"inspectLabels.d.ts","sourceRoot":"","sources":["../../../src/internal/inspectLabels.ts"],"names":[],"mappings":"AAEA;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,KAAK,MAAM,KAAG,MAG1C,CAAA"}
1
+ {"version":3,"file":"inspectLabels.d.ts","sourceRoot":"","sources":["../../../src/internal/inspectLabels.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH;;;;;GAKG;AACH,eAAO,MAAM,YAAY,GAAI,KAAK,MAAM,KAAG,MAG1C,CAAA"}
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/internal/inspectLabels.ts"],
4
- "sourcesContent": ["import { ACTION_RENDERINGS } from \"./actionRenderings.ts\"\n\n/**\n * The recorded action's Appendix C label, with unknown historical tags retained.\n * Dynamic cell-call wrappers name the tool they recorded, never a new action.\n * @category utilities\n * @since 1.0.0\n */\nexport const inspectLabel = (tag: string): string => {\n const tool = /^<cell-call:(.+)>$/.exec(tag)?.[1] ?? tag\n return ACTION_RENDERINGS[tool] ?? tool\n}\n\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,8BAAkC;AAQ3B,MAAM,eAAe,CAAC,QAAwB;AACnD,QAAM,OAAO,qBAAqB,KAAK,GAAG,IAAI,CAAC,KAAK;AACpD,SAAO,0CAAkB,IAAI,KAAK;AACpC;",
4
+ "sourcesContent": ["/**\n * Inspect labels for recorded actions, read from the generated Appendix C table.\n *\n * @since 1.0.0\n */\n\nimport { ACTION_RENDERINGS } from \"./actionRenderings.ts\"\n\n/**\n * The recorded action's Appendix C label, with unknown historical tags retained.\n * Dynamic cell-call wrappers name the tool they recorded, never a new action.\n * @category utilities\n * @since 1.0.0\n */\nexport const inspectLabel = (tag: string): string => {\n const tool = /^<cell-call:(.+)>$/.exec(tag)?.[1] ?? tag\n return ACTION_RENDERINGS[tool] ?? tool\n}\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAMA,8BAAkC;AAQ3B,MAAM,eAAe,CAAC,QAAwB;AACnD,QAAM,OAAO,qBAAqB,KAAK,GAAG,IAAI,CAAC,KAAK;AACpD,SAAO,0CAAkB,IAAI,KAAK;AACpC;",
6
6
  "names": []
7
7
  }
@@ -1 +1 @@
1
- {"version":3,"file":"EngineTrace.d.ts","sourceRoot":"","sources":["../../src/EngineTrace.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,WAAW,MAAM,6BAA6B,CAAA;AAI1D,OAAO,KAAK,EAAE,aAAa,EAAc,YAAY,EAAE,MAAM,eAAe,CAAA;AAgF5E;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/C,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACpC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,yEAAyE;IACzE,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,SAAS,GAAG,SAAS,CAAA;IAClD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,gFAAgF;IAChF,QAAQ,CAAC,KAAK,EAAE,aAAa,CAAC;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAC9I,QAAQ,CAAC,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAA;IACpF,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,CAAC,EAAE;QACjB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,aAAa,GAAG,UAAU,CAAA;QACxE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;QACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAC1B,GAAG,SAAS,CAAA;CACd;AAOD;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,GAAI,UAAS,aAAa,CAAC,aAAa,CAAM,KAAG,OAqBpF,CAAA;AAuYD;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GAAI,SAAS,aAAa,CAAC,aAAa,CAAC,KAAG,KAAK,CAAC,YAAY,CAC/D,CAAA;AAElC;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,GAClC,SAAS,aAAa,CAAC,aAAa,CAAC,KACpC,aAAa,CAAC,uBAAuB,CAAwC,CAAA;AAEhF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAI,SAAS,aAAa,CAAC,aAAa,CAAC,EAAE,QAAQ,MAAM,EAAE,YAAY,MAAM;;;yBAiB7E,uBAAuB,uBAAqB,OAAO;CAkBhF,CAAA"}
1
+ {"version":3,"file":"EngineTrace.d.ts","sourceRoot":"","sources":["../../src/EngineTrace.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAIH,OAAO,KAAK,WAAW,MAAM,6BAA6B,CAAA;AAI1D,OAAO,KAAK,EAAE,aAAa,EAAc,YAAY,EAAE,MAAM,eAAe,CAAA;AAgF5E;;;;;GAKG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAA;IAC5B,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAA;IAC3B,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,QAAQ,CAAC,iBAAiB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IAC/C,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAA;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,SAAS,CAAA;IACtC,QAAQ,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,SAAS,CAAA;IACpC,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAA;IAC1B,yEAAyE;IACzE,QAAQ,CAAC,KAAK,CAAC,EAAE,WAAW,CAAC,SAAS,GAAG,SAAS,CAAA;IAClD,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;IACvB,gFAAgF;IAChF,QAAQ,CAAC,KAAK,EAAE,aAAa,CAC3B;QAAE,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,QAAQ,CAAC;QAAC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,CAChH,CAAA;IACD,QAAQ,CAAC,MAAM,CAAC,EAAE;QAAE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC;QAAC,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,SAAS,CAAA;IACpF,4EAA4E;IAC5E,QAAQ,CAAC,OAAO,CAAC,EAAE;QACjB,QAAQ,CAAC,IAAI,EAAE,OAAO,GAAG,OAAO,GAAG,QAAQ,GAAG,aAAa,GAAG,UAAU,CAAA;QACxE,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAA;QACvB,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAA;KAC1B,GAAG,SAAS,CAAA;CACd;AAOD;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,GAAI,UAAS,aAAa,CAAC,aAAa,CAAM,KAAG,OAqBpF,CAAA;AA2ZD;;;;;GAKG;AACH,eAAO,MAAM,sBAAsB,GAAI,SAAS,aAAa,CAAC,aAAa,CAAC,KAAG,KAAK,CAAC,YAAY,CAC/D,CAAA;AAElC;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB,GAClC,SAAS,aAAa,CAAC,aAAa,CAAC,KACpC,aAAa,CAAC,uBAAuB,CAAwC,CAAA;AAEhF;;;;;GAKG;AACH,eAAO,MAAM,iBAAiB,GAAI,SAAS,aAAa,CAAC,aAAa,CAAC,EAAE,QAAQ,MAAM,EAAE,YAAY,MAAM;;;yBAiB7E,uBAAuB,uBAAqB,OAAO;CAkBhF,CAAA"}
@@ -199,11 +199,12 @@ const foldEngineJournal = (records) => {
199
199
  }
200
200
  return current;
201
201
  };
202
- if (envelope.eventType === EngineEvent.nodeEventTypes.planRecorded || envelope.eventType === EngineEvent.nodeEventTypes.subgraphAppended) {
202
+ if (envelope.eventType === EngineEvent.nodeEventTypes.planRecorded ||
203
+ envelope.eventType === EngineEvent.nodeEventTypes.subgraphAppended) {
203
204
  const payload = envelope.payload;
204
205
  const graph = decodeGraph(payload?.graph);
205
206
  if (Option.isSome(graph)) {
206
- const nodes = new Map(execution.graph?.nodes.map(node => [node.id, node]));
207
+ const nodes = new Map(execution.graph?.nodes.map((node) => [node.id, node]));
207
208
  for (const node of graph.value.nodes)
208
209
  nodes.set(node.id, node);
209
210
  execution.graph = { ...graph.value, nodes: [...nodes.values()] };
@@ -211,18 +212,21 @@ const foldEngineJournal = (records) => {
211
212
  generic();
212
213
  continue;
213
214
  }
214
- if (envelope.eventType === EngineEvent.nodeEventTypes.nodeScheduled || envelope.eventType === EngineEvent.nodeEventTypes.nodeSettled) {
215
+ if (envelope.eventType === EngineEvent.nodeEventTypes.nodeScheduled ||
216
+ envelope.eventType === EngineEvent.nodeEventTypes.nodeSettled) {
215
217
  const scheduled = envelope.eventType === EngineEvent.nodeEventTypes.nodeScheduled
216
- ? decodeScheduled(envelope.payload) : Option.none();
218
+ ? decodeScheduled(envelope.payload) :
219
+ Option.none();
217
220
  const settled = envelope.eventType === EngineEvent.nodeEventTypes.nodeSettled
218
- ? decodeSettled(envelope.payload) : Option.none();
221
+ ? decodeSettled(envelope.payload) :
222
+ Option.none();
219
223
  const recorded = Option.isSome(scheduled) ? scheduled.value : Option.isSome(settled) ? settled.value : undefined;
220
224
  if (recorded === undefined) {
221
225
  generic();
222
226
  continue;
223
227
  }
224
228
  const nodeKey = identity(key, recorded.nodeId);
225
- const action = recorded.action ?? execution.graph?.nodes.find(node => node.id === recorded.nodeId)?.action;
229
+ const action = recorded.action ?? execution.graph?.nodes.find((node) => node.id === recorded.nodeId)?.action;
226
230
  let node = nodes.get(nodeKey);
227
231
  if (node === undefined || Option.isSome(scheduled)) {
228
232
  const instance = (instances.get(nodeKey) ?? 0) + 1;
@@ -239,9 +243,13 @@ const foldEngineJournal = (records) => {
239
243
  }
240
244
  else {
241
245
  const value = Option.getOrThrow(settled);
242
- node.status = value.outcome === "failed" ? "failed"
243
- : value.outcome === "deferred" ? "waiting"
244
- : value.outcome === "skipped" ? "skipped" : "completed";
246
+ node.status = value.outcome === "failed" ?
247
+ "failed"
248
+ : value.outcome === "deferred" ?
249
+ "waiting"
250
+ : value.outcome === "skipped"
251
+ ? "skipped"
252
+ : "completed";
245
253
  if (value.outcome !== "deferred")
246
254
  node.endedAt = envelope.emittedAtMs;
247
255
  // The redacted preview is evidence, including when truncated. Never
@@ -317,8 +325,9 @@ const foldEngineJournal = (records) => {
317
325
  existing.kind = kind;
318
326
  };
319
327
  if (recorded.value.event._tag === "Execution" && recorded.value.event.lifecycle.state !== "completed") {
320
- for (const wait of recorded.value.event.lifecycle.waits)
328
+ for (const wait of recorded.value.event.lifecycle.waits) {
321
329
  registerWait(wait.waitId, wait._tag === "Clock" ? "sleep" : "signal");
330
+ }
322
331
  }
323
332
  if (recorded.value.event._tag === "ClockScheduled") {
324
333
  registerWait(recorded.value.event.waitId, "sleep");
@@ -1 +1 @@
1
- {"version":3,"file":"EngineTrace.js","sourceRoot":"","sources":["../../src/EngineTrace.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Recorded native evidence, decoded through the contracts that wrote it.\n *\n * @since 1.0.0\n */\n\nimport { RunState } from \"@smthrs/engine-store/RunState\"\nimport { ResultEncoded } from \"@smthrs/flow/Flow\"\nimport * as EngineEvent from \"@smthrs/journal/EngineEvent\"\nimport * as JournalEvent from \"@smthrs/journal/JournalEvent\"\nimport { Option, Schema } from \"effect\"\nimport { inspectLabel } from \"./internal/inspectLabels.ts\"\nimport type { JournalRecord, SpanDetail, TraceBuilder } from \"./RunTrace.ts\"\n\n// This is the private control bridge's envelope, not another engine contract.\nconst Envelope = Schema.Struct({\n version: Schema.Literal(1),\n executionId: JournalEvent.RunId,\n generation: JournalEvent.NonNegativeQuantity,\n sequence: JournalEvent.Seq,\n eventId: Schema.String,\n sourceId: JournalEvent.SourceId,\n sourceSequence: JournalEvent.SourceSeq,\n emittedAtMs: JournalEvent.TimestampMs,\n eventType: Schema.NonEmptyString,\n payload: Schema.Json,\n meta: Schema.Json\n})\ntype Envelope = typeof Envelope.Type\n\nconst decodeEnvelope = Schema.decodeUnknownOption(Envelope)\nconst decodeGraph = Schema.decodeUnknownOption(EngineEvent.NodeGraph)\nconst decodeScheduled = Schema.decodeUnknownOption(EngineEvent.NodeScheduledPayload)\nconst decodeSettled = Schema.decodeUnknownOption(EngineEvent.NodeSettledPayload)\nconst decodeAttempt = Schema.decodeUnknownOption(EngineEvent.AttemptPayload, { onExcessProperty: \"error\" })\nconst decodeState = Schema.decodeUnknownOption(EngineEvent.StatePayload, { onExcessProperty: \"error\" })\nconst decodeMarker = Schema.decodeUnknownOption(EngineEvent.CurrentAttempt)\nconst stateDecisions = [\n \"created\",\n \"resumed\",\n \"transitioned\",\n \"handed-off\",\n \"lineage-exhausted\",\n \"round-invalid\",\n \"quarantined\",\n \"interrupt-released\"\n] as const\nconst decodeDecision = Schema.decodeUnknownOption(Schema.Struct({\n decision: Schema.Literals(stateDecisions),\n status: Schema.optionalKey(Schema.Literals([\"pending\", \"running\", \"suspended\", \"completed\", \"failed\", \"cancelled\"])),\n state: RunState\n}))\n// RunDriver's durable cancellation record has no run-decision counterpart.\nconst decodeCancellation = Schema.decodeUnknownOption(Schema.Struct({\n outcome: Schema.Literal(\"cancelled\"),\n interruptedAtMs: JournalEvent.TimestampMs,\n owner: Schema.String,\n cascadedTo: Schema.optionalKey(Schema.Array(JournalEvent.RunId))\n}))\nconst decodeResult = Schema.decodeUnknownOption(ResultEncoded, { onExcessProperty: \"error\" })\n\nconst json = (value: unknown): string => typeof value === \"string\" ? value : JSON.stringify(value)\nconst identity = (...parts: ReadonlyArray<string | number>) =>\n parts.map((part) => encodeURIComponent(String(part))).join(\":\")\nconst span = (id: string, kind: TraceBuilder[\"kind\"], label: string, at: number, detail: SpanDetail): TraceBuilder => ({\n id,\n kind,\n label,\n status: \"recorded\",\n startedAt: at,\n children: [],\n detail\n})\nconst detail = (row: JournalRecord, envelope: Envelope): SpanDetail => ({\n sequence: row.sequence,\n event: envelope.eventType,\n fields: { ...envelope }\n})\ninterface Execution {\n readonly envelope: Envelope\n readonly span: TraceBuilder\n parentId?: string | undefined\n parentExecutionId?: string | undefined\n parentKnown?: boolean | undefined\n flowName?: string | undefined\n coherent: boolean\n waits?: Map<string, { id: string; kind: \"sleep\" | \"signal\"; since: number; settledAt?: number }>\n graph?: EngineEvent.NodeGraph | undefined\n result?: { readonly value: unknown; readonly sequence: number } | undefined\n failure?: EngineExecutionEvidence[\"failure\"] | undefined\n}\n\n/**\n * A render-only view of the same decoded execution facts; never persisted.\n *\n * @category models\n * @since 1.0.0\n */\nexport interface EngineExecutionEvidence {\n readonly executionId: string\n readonly generation: number\n readonly spanId: string\n readonly parentExecutionId?: string | undefined\n readonly parentKnown: boolean\n readonly flowName?: string | undefined\n readonly input?: unknown | undefined\n readonly coherent: boolean\n /** Declared nodes, including work not reached at this journal cursor. */\n readonly graph?: EngineEvent.NodeGraph | undefined\n readonly status: string\n /** Recorded clock and deferred registrations and their explicit settlements. */\n readonly waits: ReadonlyArray<{ readonly id: string; readonly kind: \"sleep\" | \"signal\"; readonly since: number; readonly settledAt?: number }>\n readonly result?: { readonly value: unknown; readonly sequence: number } | undefined\n /** Original classified failure bytes, never parsed from rendered detail. */\n readonly failure?: {\n readonly kind: \"cause\" | \"error\" | \"defect\" | \"interrupted\" | \"encoding\"\n readonly value: unknown\n readonly sequence: number\n } | undefined\n}\nconst decodeProjection = Schema.decodeUnknownOption(Schema.Struct({\n version: Schema.Literal(1),\n executionId: JournalEvent.RunId,\n generation: JournalEvent.NonNegativeQuantity\n}))\n\n/**\n * Observation completion is separate from the control run's terminal verdict.\n *\n * @category utilities\n * @since 1.0.0\n */\nexport const engineProjectionPending = (records: ReadonlyArray<JournalRecord> = []): boolean => {\n const states = new Map<string, { generation: number; pending: boolean }>()\n for (const row of [...records].sort((left, right) => (left.sequence ?? 0) - (right.sequence ?? 0))) {\n if (row.kind === \"control.engine.projection-gap\") {\n // The gap is rendered as missing evidence. Stop polling rather than\n // disguising an observation failure as an indefinitely running task.\n for (const state of states.values()) state.pending = false\n continue\n }\n if (row.kind !== \"control.engine.projection-started\" && row.kind !== \"control.engine.projection-settled\") continue\n const decoded = decodeProjection(row.payload)\n if (Option.isNone(decoded)) continue\n const { executionId, generation } = decoded.value\n const current = states.get(executionId)\n if (row.kind === \"control.engine.projection-started\") {\n if (current === undefined || generation > current.generation) {\n states.set(executionId, { generation, pending: true })\n }\n } else if (current?.generation === generation) current.pending = false\n }\n return [...states.values()].some((state) => state.pending)\n}\n\n/**\n * Generations never share attempt identity. Native timestamps describe native\n * work; the outer control sequence still determines the historical UI cursor.\n * Only recorded parent IDs can nest executions. Ambiguous parent generations\n * remain beside the root instead of guessing which historical parent owned them.\n */\nconst foldEngineJournal = (records: ReadonlyArray<JournalRecord>) => {\n const executions = new Map<string, Execution>()\n const attempts = new Map<string, TraceBuilder>()\n const notices: Array<TraceBuilder> = []\n const nodes = new Map<string, TraceBuilder>()\n const instances = new Map<string, number>()\n const seen = new Map<string, string>()\n for (const row of records) {\n if (row.kind === \"control.engine.projection-gap\") {\n const notice = span(\n `engine-gap:${row.sequence ?? notices.length}`,\n \"event\",\n \"Engine evidence gap\",\n row.occurredAt ?? 0,\n {\n sequence: row.sequence,\n event: row.kind,\n fields: { evidence: row.payload }\n }\n )\n notice.status = \"unknown\"\n notice.endedAt = notice.startedAt\n notices.push(notice)\n continue\n }\n if (row.kind !== \"control.engine.event\") continue\n const decoded = decodeEnvelope(row.payload)\n if (Option.isNone(decoded)) {\n const notice = span(\n `engine-invalid:${row.sequence ?? notices.length}`,\n \"event\",\n \"Unreadable engine evidence\",\n row.occurredAt ?? 0,\n {\n sequence: row.sequence,\n event: row.kind,\n fields: { evidence: row.payload }\n }\n )\n notice.status = \"unknown\"\n notice.endedAt = notice.startedAt\n notices.push(notice)\n continue\n }\n const envelope = decoded.value\n const key = identity(envelope.executionId, envelope.generation)\n const eventKey = identity(key, envelope.sequence)\n const previous = seen.get(eventKey)\n if (previous !== undefined) {\n if (previous !== JSON.stringify(envelope)) {\n const conflict = executions.get(key)\n conflict!.coherent = false\n }\n continue\n }\n seen.set(eventKey, JSON.stringify(envelope))\n let execution = executions.get(key)\n if (execution === undefined) {\n execution = {\n envelope,\n coherent: true,\n span: span(`engine:${key}`, \"execution\", envelope.executionId, envelope.emittedAtMs, detail(row, envelope))\n }\n executions.set(key, execution)\n }\n const parent = (parentId: string | undefined) => {\n if (execution.parentKnown && execution.parentExecutionId !== parentId) execution.coherent = false\n execution.parentKnown = true\n execution.parentExecutionId = parentId\n execution.parentId = parentId\n }\n const result = (value: unknown) => {\n if (Number.isSafeInteger(row.sequence) && row.sequence! >= 0) {\n execution.result = { value, sequence: row.sequence! }\n }\n }\n const failure = (kind: NonNullable<EngineExecutionEvidence[\"failure\"]>[\"kind\"], value: unknown) => {\n if (Number.isSafeInteger(row.sequence) && row.sequence! >= 0) {\n execution.failure = { kind, value, sequence: row.sequence! }\n }\n }\n const generic = () => {\n const event = span(\n `engine-event:${eventKey}`,\n \"event\",\n envelope.eventType,\n envelope.emittedAtMs,\n detail(row, envelope)\n )\n event.endedAt = event.startedAt\n execution.span.children.push(event)\n }\n const attempt = (step: string, number: number) => {\n const attemptKey = identity(key, step, number)\n let current = attempts.get(attemptKey)\n if (current === undefined) {\n current = span(\n `engine-attempt:${attemptKey}`,\n \"attempt\",\n `attempt ${number} · ${step.slice(0, 12)}`,\n envelope.emittedAtMs,\n detail(row, envelope)\n )\n attempts.set(attemptKey, current)\n execution.span.children.push(current)\n }\n return current\n }\n if (envelope.eventType === EngineEvent.nodeEventTypes.planRecorded || envelope.eventType === EngineEvent.nodeEventTypes.subgraphAppended) {\n const payload = envelope.payload as { graph?: unknown }\n const graph = decodeGraph(payload?.graph)\n if (Option.isSome(graph)) {\n const nodes = new Map(execution.graph?.nodes.map(node => [node.id, node]))\n for (const node of graph.value.nodes) nodes.set(node.id, node)\n execution.graph = { ...graph.value, nodes: [...nodes.values()] }\n }\n generic()\n continue\n }\n if (envelope.eventType === EngineEvent.nodeEventTypes.nodeScheduled || envelope.eventType === EngineEvent.nodeEventTypes.nodeSettled) {\n const scheduled = envelope.eventType === EngineEvent.nodeEventTypes.nodeScheduled\n ? decodeScheduled(envelope.payload) : Option.none()\n const settled = envelope.eventType === EngineEvent.nodeEventTypes.nodeSettled\n ? decodeSettled(envelope.payload) : Option.none()\n const recorded = Option.isSome(scheduled) ? scheduled.value : Option.isSome(settled) ? settled.value : undefined\n if (recorded === undefined) {\n generic()\n continue\n }\n const nodeKey = identity(key, recorded.nodeId)\n const action = recorded.action ?? execution.graph?.nodes.find(node => node.id === recorded.nodeId)?.action\n let node = nodes.get(nodeKey)\n if (node === undefined || Option.isSome(scheduled)) {\n const instance = (instances.get(nodeKey) ?? 0) + 1\n instances.set(nodeKey, instance)\n node = span(`engine-node:${nodeKey}#${instance}`, \"call\", inspectLabel(action ?? recorded.nodeId), envelope.emittedAtMs, detail(row, envelope))\n nodes.set(nodeKey, node)\n execution.span.children.push(node)\n }\n if (action !== undefined) node.label = inspectLabel(action)\n node.detail = { ...detail(row, envelope), sequence: node.detail.sequence }\n if (Option.isSome(scheduled)) {\n node.status = \"running\"\n } else {\n const value = Option.getOrThrow(settled)\n node.status = value.outcome === \"failed\" ? \"failed\"\n : value.outcome === \"deferred\" ? \"waiting\"\n : value.outcome === \"skipped\" ? \"skipped\" : \"completed\"\n if (value.outcome !== \"deferred\") node.endedAt = envelope.emittedAtMs\n // The redacted preview is evidence, including when truncated. Never\n // evaluate it, or mistake a JSON prefix for a complete return value.\n if (value.result !== undefined) node.detail = { ...node.detail, output: value.result.preview }\n }\n continue\n }\n if (\n envelope.eventType === \"flows.engine.attempt-started\" || envelope.eventType === \"flows.engine.attempt-finished\"\n ) {\n const marker = decodeMarker({ eventType: envelope.eventType, payload: envelope.payload })\n if (Option.isNone(marker) || marker.value.payload.runId !== envelope.executionId) {\n generic()\n continue\n }\n const current = attempt(marker.value.payload.stepKeyDigest, marker.value.payload.attempt)\n if (marker.value.eventType === \"flows.engine.attempt-started\") current.status = \"running\"\n else {\n current.status = marker.value.payload.state === \"succeeded\" ? \"completed\" : \"failed\"\n current.endedAt = envelope.emittedAtMs\n }\n current.detail = { ...current.detail, fields: { ...envelope } }\n continue\n }\n if (envelope.eventType === EngineEvent.attemptEventType) {\n const recorded = decodeAttempt(envelope.payload)\n if (Option.isNone(recorded) || recorded.value.executionId !== envelope.executionId) {\n execution.coherent = false\n generic()\n continue\n }\n const { lifecycle, lineage, stepKeyDigest, attempt: number } = recorded.value\n // Lineage may describe a trampoline predecessor, not a spawned parent.\n // Product ancestry comes only from RunState.parentExecutionId below.\n execution.parentId = lineage.parentRunId ?? undefined\n const current = attempt(stepKeyDigest, number)\n current.startedAt = lifecycle.startedAtMs\n current.status = lifecycle.state === \"succeeded\"\n ? \"completed\"\n : lifecycle.state === \"suspended\"\n ? \"waiting\"\n : lifecycle.state\n current.detail = { ...detail(row, envelope), sequence: current.detail.sequence }\n if (lifecycle.state === \"succeeded\" || lifecycle.state === \"failed\") {\n current.endedAt = lifecycle.finishedAtMs\n current.detail = {\n ...current.detail,\n ...(lifecycle.result._tag === \"Success\"\n ? { output: json(lifecycle.result.value) }\n : { message: json(lifecycle.result.detail) })\n }\n }\n continue\n }\n if (envelope.eventType === EngineEvent.stateEventType) {\n const recorded = decodeState(envelope.payload)\n if (Option.isNone(recorded) || recorded.value.executionId !== envelope.executionId) {\n execution.coherent = false\n generic()\n continue\n }\n execution.parentId = recorded.value.lineage.parentRunId ?? undefined\n const registerWait = (waitId: string, kind: \"sleep\" | \"signal\") => {\n const waits = execution.waits ??= new Map()\n const id = identity(key, waitId)\n const existing = waits.get(id)\n if (existing === undefined) waits.set(id, { id: `engine-wait:${id}`, kind, since: envelope.emittedAtMs })\n // A later clock record refines a generic deferred identity without\n // restarting the wait or dropping its recorded settlement.\n else if (kind === \"sleep\") existing.kind = kind\n }\n if (recorded.value.event._tag === \"Execution\" && recorded.value.event.lifecycle.state !== \"completed\") {\n for (const wait of recorded.value.event.lifecycle.waits) registerWait(wait.waitId, wait._tag === \"Clock\" ? \"sleep\" : \"signal\")\n }\n if (recorded.value.event._tag === \"ClockScheduled\") {\n registerWait(recorded.value.event.waitId, \"sleep\")\n } else if (recorded.value.event._tag === \"DeferredCompleted\") {\n const wait = execution.waits?.get(identity(key, recorded.value.event.waitId))\n if (wait !== undefined && wait.settledAt === undefined) wait.settledAt = envelope.emittedAtMs\n }\n if (recorded.value.event._tag !== \"Execution\") {\n generic()\n continue\n }\n const { lifecycle } = recorded.value.event\n execution.result = undefined\n execution.failure = undefined\n execution.span.detail = {\n ...detail(row, envelope),\n sequence: execution.span.detail.sequence,\n input: execution.span.detail.input\n }\n if (lifecycle.state === \"completed\") {\n execution.span.status = lifecycle.result._tag === \"Success\" ? \"completed\" : \"failed\"\n execution.span.endedAt = envelope.emittedAtMs\n execution.span.detail = {\n ...execution.span.detail,\n ...(lifecycle.result._tag === \"Success\"\n ? { output: json(lifecycle.result.value) }\n : { message: json(lifecycle.result.detail) })\n }\n if (lifecycle.result._tag === \"Success\") result(lifecycle.result.value)\n else failure(lifecycle.result.reason, lifecycle.result.detail)\n } else execution.span.status = lifecycle.state === \"suspended\" ? \"waiting\" : \"running\"\n continue\n }\n if (envelope.eventType === \"flows.engine.interrupted\") {\n const cancelled = decodeCancellation(envelope.payload)\n if (Option.isNone(cancelled)) {\n generic()\n continue\n }\n execution.result = undefined\n execution.failure = undefined\n execution.span.status = \"cancelled\"\n execution.span.endedAt = cancelled.value.interruptedAtMs\n execution.span.detail = {\n ...detail(row, envelope),\n sequence: execution.span.detail.sequence,\n input: execution.span.detail.input\n }\n continue\n }\n if (envelope.eventType === \"flows.engine.run-decision\") {\n const decision = decodeDecision(envelope.payload)\n if (Option.isNone(decision)) {\n const payload = envelope.payload\n // Claim, owner-fence, wake and child-policy decisions deliberately do\n // not carry RunState. Keep them visible without losing valid state\n // evidence; malformed state-bearing decisions still refuse claims.\n if (\n typeof payload === \"object\" && payload !== null &&\n (\"state\" in payload || (\"decision\" in payload && stateDecisions.some((name) => name === payload.decision)))\n ) {\n execution.coherent = false\n }\n generic()\n continue\n }\n const { state, status } = decision.value\n if (execution.flowName !== undefined && execution.flowName !== state.flowName) execution.coherent = false\n execution.flowName = state.flowName\n execution.span.label = inspectLabel(state.flowName)\n parent(state.parentExecutionId)\n execution.result = undefined\n execution.failure = undefined\n execution.span.detail = {\n ...detail(row, envelope),\n sequence: execution.span.detail.sequence,\n input: state.payload\n }\n if (decision.value.decision === \"created\") execution.span.status = \"pending\"\n // RunDriver commits this decision with suspended even when its payload\n // omits status/result (a released host scope can retain no suspension).\n else if (decision.value.decision === \"interrupt-released\") execution.span.status = \"waiting\"\n else if (status === \"running\" || status === \"pending\" || status === \"suspended\") {\n execution.span.status = status === \"suspended\" ? \"waiting\" : status\n } else if (status !== undefined) {\n const decodedResult = decodeResult(state.result)\n if (\n Option.isSome(decodedResult) && decodedResult.value._tag === \"Handoff\" && status === \"completed\" &&\n decision.value.decision === \"handed-off\"\n ) {\n // A round handed off; its raw result describes the successor, not an output.\n execution.span.status = \"completed\"\n execution.span.endedAt = envelope.emittedAtMs\n continue\n }\n if (\n Option.isNone(decodedResult) || decodedResult.value._tag !== \"Complete\" ||\n (status === \"completed\") !== (decodedResult.value.exit._tag === \"Success\")\n ) {\n execution.coherent = false\n execution.span.status = \"unknown\"\n generic()\n continue\n }\n execution.span.status = status\n execution.span.endedAt = envelope.emittedAtMs\n execution.span.detail = {\n ...execution.span.detail,\n ...(decodedResult.value.exit._tag === \"Success\"\n ? { output: json(decodedResult.value.exit.value) }\n : { message: json(decodedResult.value.exit.cause) })\n }\n if (decodedResult.value.exit._tag === \"Success\") result(decodedResult.value.exit.value)\n else failure(\"cause\", decodedResult.value.exit.cause)\n }\n continue\n }\n generic()\n }\n const byExecution = new Map<string, Array<Execution>>()\n for (const current of executions.values()) {\n const generations = byExecution.get(current.envelope.executionId) ?? []\n generations.push(current)\n byExecution.set(current.envelope.executionId, generations)\n }\n const roots: Array<TraceBuilder> = []\n for (const current of executions.values()) {\n const parents = current.parentId === undefined ? [] : byExecution.get(current.parentId) ?? []\n // Build only a forest. Malformed cycles remain separate evidence rows.\n const ancestors = new Set<string>([current.envelope.executionId])\n let parent = parents.length === 1 ? parents[0] : undefined\n let cursor = parent\n while (cursor !== undefined) {\n if (ancestors.has(cursor.envelope.executionId)) {\n parent = undefined\n break\n }\n ancestors.add(cursor.envelope.executionId)\n const next = cursor.parentId === undefined ? [] : byExecution.get(cursor.parentId) ?? []\n cursor = next.length === 1 ? next[0] : undefined\n }\n if (parent === undefined) roots.push(current.span)\n else parent.span.children.push(current.span)\n }\n const evidence: Array<EngineExecutionEvidence> = [...executions.values()].map((current) => ({\n executionId: current.envelope.executionId,\n generation: current.envelope.generation,\n spanId: current.span.id,\n parentExecutionId: current.parentExecutionId,\n parentKnown: current.parentKnown === true,\n flowName: current.flowName,\n input: current.span.detail.input,\n coherent: current.coherent,\n graph: current.graph,\n status: current.span.status,\n waits: [...current.waits?.values() ?? []],\n result: current.result,\n failure: current.failure\n }))\n return { trace: [...roots, ...notices], evidence }\n}\n\n/**\n * Folds native executions and attempts into trace spans with recorded ancestry.\n *\n * @category utilities\n * @since 1.0.0\n */\nexport const engineTraceFromJournal = (records: ReadonlyArray<JournalRecord>): Array<TraceBuilder> =>\n foldEngineJournal(records).trace\n\n/**\n * Product claims use these typed facts, never text rendered into trace details.\n *\n * @category utilities\n * @since 1.0.0\n */\nexport const engineExecutionEvidence = (\n records: ReadonlyArray<JournalRecord>\n): ReadonlyArray<EngineExecutionEvidence> => foldEngineJournal(records).evidence\n\n/**\n * Same recorded native ancestry and historical cursor for every product result projection.\n *\n * @category utilities\n * @since 1.0.0\n */\nexport const engineRunEvidence = (records: ReadonlyArray<JournalRecord>, rootId: string, cursorSeq?: number) => {\n const visible: ReadonlyArray<JournalRecord> = records\n .filter((row) =>\n Number.isSafeInteger(row.sequence) && Number(row.sequence) >= 0 &&\n (cursorSeq === undefined || Number(row.sequence) <= cursorSeq)\n )\n .sort((left, right) => Number(left.sequence) - Number(right.sequence))\n const executions = engineExecutionEvidence(visible)\n const generations = new Map<string, Array<EngineExecutionEvidence>>()\n for (const execution of executions) {\n const found = generations.get(execution.executionId) ?? []\n found.push(execution)\n generations.set(execution.executionId, found)\n }\n const current = (execution: EngineExecutionEvidence) =>\n execution.coherent &&\n execution.generation === Math.max(...generations.get(execution.executionId)!.map((row) => row.generation))\n const belongs = (execution: EngineExecutionEvidence, ownerId = rootId): boolean => {\n const visited = new Set<string>()\n let candidate: EngineExecutionEvidence = execution\n while (true) {\n if (!candidate.coherent || !candidate.parentKnown || visited.has(candidate.executionId)) return false\n visited.add(candidate.executionId)\n if (candidate.executionId === ownerId) return ownerId !== rootId || candidate.parentExecutionId === undefined\n if (candidate.parentExecutionId === undefined) return false\n const parents: ReadonlyArray<EngineExecutionEvidence> = generations.get(candidate.parentExecutionId) ?? []\n // A child names a native parent ID, not its generation. Never infer a\n // parent generation from arrival time after a rewind.\n if (parents.length !== 1) return false\n candidate = parents[0]!\n }\n }\n const owned = executions.filter((row) => current(row) && belongs(row))\n const completed = owned.filter((row) => row.status === \"completed\" && row.result !== undefined)\n return { executions: owned, completed, belongs }\n}\n"]}
1
+ {"version":3,"file":"EngineTrace.js","sourceRoot":"","sources":["../../src/EngineTrace.ts"],"names":[],"mappings":"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","sourcesContent":["/**\n * Recorded native evidence, decoded through the contracts that wrote it.\n *\n * @since 1.0.0\n */\n\nimport { RunState } from \"@smthrs/engine-store/RunState\"\nimport { ResultEncoded } from \"@smthrs/flow/Flow\"\nimport * as EngineEvent from \"@smthrs/journal/EngineEvent\"\nimport * as JournalEvent from \"@smthrs/journal/JournalEvent\"\nimport { Option, Schema } from \"effect\"\nimport { inspectLabel } from \"./internal/inspectLabels.ts\"\nimport type { JournalRecord, SpanDetail, TraceBuilder } from \"./RunTrace.ts\"\n\n// This is the private control bridge's envelope, not another engine contract.\nconst Envelope = Schema.Struct({\n version: Schema.Literal(1),\n executionId: JournalEvent.RunId,\n generation: JournalEvent.NonNegativeQuantity,\n sequence: JournalEvent.Seq,\n eventId: Schema.String,\n sourceId: JournalEvent.SourceId,\n sourceSequence: JournalEvent.SourceSeq,\n emittedAtMs: JournalEvent.TimestampMs,\n eventType: Schema.NonEmptyString,\n payload: Schema.Json,\n meta: Schema.Json\n})\ntype Envelope = typeof Envelope.Type\n\nconst decodeEnvelope = Schema.decodeUnknownOption(Envelope)\nconst decodeGraph = Schema.decodeUnknownOption(EngineEvent.NodeGraph)\nconst decodeScheduled = Schema.decodeUnknownOption(EngineEvent.NodeScheduledPayload)\nconst decodeSettled = Schema.decodeUnknownOption(EngineEvent.NodeSettledPayload)\nconst decodeAttempt = Schema.decodeUnknownOption(EngineEvent.AttemptPayload, { onExcessProperty: \"error\" })\nconst decodeState = Schema.decodeUnknownOption(EngineEvent.StatePayload, { onExcessProperty: \"error\" })\nconst decodeMarker = Schema.decodeUnknownOption(EngineEvent.CurrentAttempt)\nconst stateDecisions = [\n \"created\",\n \"resumed\",\n \"transitioned\",\n \"handed-off\",\n \"lineage-exhausted\",\n \"round-invalid\",\n \"quarantined\",\n \"interrupt-released\"\n] as const\nconst decodeDecision = Schema.decodeUnknownOption(Schema.Struct({\n decision: Schema.Literals(stateDecisions),\n status: Schema.optionalKey(Schema.Literals([\"pending\", \"running\", \"suspended\", \"completed\", \"failed\", \"cancelled\"])),\n state: RunState\n}))\n// RunDriver's durable cancellation record has no run-decision counterpart.\nconst decodeCancellation = Schema.decodeUnknownOption(Schema.Struct({\n outcome: Schema.Literal(\"cancelled\"),\n interruptedAtMs: JournalEvent.TimestampMs,\n owner: Schema.String,\n cascadedTo: Schema.optionalKey(Schema.Array(JournalEvent.RunId))\n}))\nconst decodeResult = Schema.decodeUnknownOption(ResultEncoded, { onExcessProperty: \"error\" })\n\nconst json = (value: unknown): string => typeof value === \"string\" ? value : JSON.stringify(value)\nconst identity = (...parts: ReadonlyArray<string | number>) =>\n parts.map((part) => encodeURIComponent(String(part))).join(\":\")\nconst span = (id: string, kind: TraceBuilder[\"kind\"], label: string, at: number, detail: SpanDetail): TraceBuilder => ({\n id,\n kind,\n label,\n status: \"recorded\",\n startedAt: at,\n children: [],\n detail\n})\nconst detail = (row: JournalRecord, envelope: Envelope): SpanDetail => ({\n sequence: row.sequence,\n event: envelope.eventType,\n fields: { ...envelope }\n})\ninterface Execution {\n readonly envelope: Envelope\n readonly span: TraceBuilder\n parentId?: string | undefined\n parentExecutionId?: string | undefined\n parentKnown?: boolean | undefined\n flowName?: string | undefined\n coherent: boolean\n waits?: Map<string, { id: string; kind: \"sleep\" | \"signal\"; since: number; settledAt?: number }>\n graph?: EngineEvent.NodeGraph | undefined\n result?: { readonly value: unknown; readonly sequence: number } | undefined\n failure?: EngineExecutionEvidence[\"failure\"] | undefined\n}\n\n/**\n * A render-only view of the same decoded execution facts; never persisted.\n *\n * @category models\n * @since 1.0.0\n */\nexport interface EngineExecutionEvidence {\n readonly executionId: string\n readonly generation: number\n readonly spanId: string\n readonly parentExecutionId?: string | undefined\n readonly parentKnown: boolean\n readonly flowName?: string | undefined\n readonly input?: unknown | undefined\n readonly coherent: boolean\n /** Declared nodes, including work not reached at this journal cursor. */\n readonly graph?: EngineEvent.NodeGraph | undefined\n readonly status: string\n /** Recorded clock and deferred registrations and their explicit settlements. */\n readonly waits: ReadonlyArray<\n { readonly id: string; readonly kind: \"sleep\" | \"signal\"; readonly since: number; readonly settledAt?: number }\n >\n readonly result?: { readonly value: unknown; readonly sequence: number } | undefined\n /** Original classified failure bytes, never parsed from rendered detail. */\n readonly failure?: {\n readonly kind: \"cause\" | \"error\" | \"defect\" | \"interrupted\" | \"encoding\"\n readonly value: unknown\n readonly sequence: number\n } | undefined\n}\nconst decodeProjection = Schema.decodeUnknownOption(Schema.Struct({\n version: Schema.Literal(1),\n executionId: JournalEvent.RunId,\n generation: JournalEvent.NonNegativeQuantity\n}))\n\n/**\n * Observation completion is separate from the control run's terminal verdict.\n *\n * @category utilities\n * @since 1.0.0\n */\nexport const engineProjectionPending = (records: ReadonlyArray<JournalRecord> = []): boolean => {\n const states = new Map<string, { generation: number; pending: boolean }>()\n for (const row of [...records].sort((left, right) => (left.sequence ?? 0) - (right.sequence ?? 0))) {\n if (row.kind === \"control.engine.projection-gap\") {\n // The gap is rendered as missing evidence. Stop polling rather than\n // disguising an observation failure as an indefinitely running task.\n for (const state of states.values()) state.pending = false\n continue\n }\n if (row.kind !== \"control.engine.projection-started\" && row.kind !== \"control.engine.projection-settled\") continue\n const decoded = decodeProjection(row.payload)\n if (Option.isNone(decoded)) continue\n const { executionId, generation } = decoded.value\n const current = states.get(executionId)\n if (row.kind === \"control.engine.projection-started\") {\n if (current === undefined || generation > current.generation) {\n states.set(executionId, { generation, pending: true })\n }\n } else if (current?.generation === generation) current.pending = false\n }\n return [...states.values()].some((state) => state.pending)\n}\n\n/**\n * Generations never share attempt identity. Native timestamps describe native\n * work; the outer control sequence still determines the historical UI cursor.\n * Only recorded parent IDs can nest executions. Ambiguous parent generations\n * remain beside the root instead of guessing which historical parent owned them.\n */\nconst foldEngineJournal = (records: ReadonlyArray<JournalRecord>) => {\n const executions = new Map<string, Execution>()\n const attempts = new Map<string, TraceBuilder>()\n const notices: Array<TraceBuilder> = []\n const nodes = new Map<string, TraceBuilder>()\n const instances = new Map<string, number>()\n const seen = new Map<string, string>()\n for (const row of records) {\n if (row.kind === \"control.engine.projection-gap\") {\n const notice = span(\n `engine-gap:${row.sequence ?? notices.length}`,\n \"event\",\n \"Engine evidence gap\",\n row.occurredAt ?? 0,\n {\n sequence: row.sequence,\n event: row.kind,\n fields: { evidence: row.payload }\n }\n )\n notice.status = \"unknown\"\n notice.endedAt = notice.startedAt\n notices.push(notice)\n continue\n }\n if (row.kind !== \"control.engine.event\") continue\n const decoded = decodeEnvelope(row.payload)\n if (Option.isNone(decoded)) {\n const notice = span(\n `engine-invalid:${row.sequence ?? notices.length}`,\n \"event\",\n \"Unreadable engine evidence\",\n row.occurredAt ?? 0,\n {\n sequence: row.sequence,\n event: row.kind,\n fields: { evidence: row.payload }\n }\n )\n notice.status = \"unknown\"\n notice.endedAt = notice.startedAt\n notices.push(notice)\n continue\n }\n const envelope = decoded.value\n const key = identity(envelope.executionId, envelope.generation)\n const eventKey = identity(key, envelope.sequence)\n const previous = seen.get(eventKey)\n if (previous !== undefined) {\n if (previous !== JSON.stringify(envelope)) {\n const conflict = executions.get(key)\n conflict!.coherent = false\n }\n continue\n }\n seen.set(eventKey, JSON.stringify(envelope))\n let execution = executions.get(key)\n if (execution === undefined) {\n execution = {\n envelope,\n coherent: true,\n span: span(`engine:${key}`, \"execution\", envelope.executionId, envelope.emittedAtMs, detail(row, envelope))\n }\n executions.set(key, execution)\n }\n const parent = (parentId: string | undefined) => {\n if (execution.parentKnown && execution.parentExecutionId !== parentId) execution.coherent = false\n execution.parentKnown = true\n execution.parentExecutionId = parentId\n execution.parentId = parentId\n }\n const result = (value: unknown) => {\n if (Number.isSafeInteger(row.sequence) && row.sequence! >= 0) {\n execution.result = { value, sequence: row.sequence! }\n }\n }\n const failure = (kind: NonNullable<EngineExecutionEvidence[\"failure\"]>[\"kind\"], value: unknown) => {\n if (Number.isSafeInteger(row.sequence) && row.sequence! >= 0) {\n execution.failure = { kind, value, sequence: row.sequence! }\n }\n }\n const generic = () => {\n const event = span(\n `engine-event:${eventKey}`,\n \"event\",\n envelope.eventType,\n envelope.emittedAtMs,\n detail(row, envelope)\n )\n event.endedAt = event.startedAt\n execution.span.children.push(event)\n }\n const attempt = (step: string, number: number) => {\n const attemptKey = identity(key, step, number)\n let current = attempts.get(attemptKey)\n if (current === undefined) {\n current = span(\n `engine-attempt:${attemptKey}`,\n \"attempt\",\n `attempt ${number} · ${step.slice(0, 12)}`,\n envelope.emittedAtMs,\n detail(row, envelope)\n )\n attempts.set(attemptKey, current)\n execution.span.children.push(current)\n }\n return current\n }\n if (\n envelope.eventType === EngineEvent.nodeEventTypes.planRecorded ||\n envelope.eventType === EngineEvent.nodeEventTypes.subgraphAppended\n ) {\n const payload = envelope.payload as { graph?: unknown }\n const graph = decodeGraph(payload?.graph)\n if (Option.isSome(graph)) {\n const nodes = new Map(execution.graph?.nodes.map((node) => [node.id, node]))\n for (const node of graph.value.nodes) nodes.set(node.id, node)\n execution.graph = { ...graph.value, nodes: [...nodes.values()] }\n }\n generic()\n continue\n }\n if (\n envelope.eventType === EngineEvent.nodeEventTypes.nodeScheduled ||\n envelope.eventType === EngineEvent.nodeEventTypes.nodeSettled\n ) {\n const scheduled = envelope.eventType === EngineEvent.nodeEventTypes.nodeScheduled\n ? decodeScheduled(envelope.payload) :\n Option.none()\n const settled = envelope.eventType === EngineEvent.nodeEventTypes.nodeSettled\n ? decodeSettled(envelope.payload) :\n Option.none()\n const recorded = Option.isSome(scheduled) ? scheduled.value : Option.isSome(settled) ? settled.value : undefined\n if (recorded === undefined) {\n generic()\n continue\n }\n const nodeKey = identity(key, recorded.nodeId)\n const action = recorded.action ?? execution.graph?.nodes.find((node) => node.id === recorded.nodeId)?.action\n let node = nodes.get(nodeKey)\n if (node === undefined || Option.isSome(scheduled)) {\n const instance = (instances.get(nodeKey) ?? 0) + 1\n instances.set(nodeKey, instance)\n node = span(\n `engine-node:${nodeKey}#${instance}`,\n \"call\",\n inspectLabel(action ?? recorded.nodeId),\n envelope.emittedAtMs,\n detail(row, envelope)\n )\n nodes.set(nodeKey, node)\n execution.span.children.push(node)\n }\n if (action !== undefined) node.label = inspectLabel(action)\n node.detail = { ...detail(row, envelope), sequence: node.detail.sequence }\n if (Option.isSome(scheduled)) {\n node.status = \"running\"\n } else {\n const value = Option.getOrThrow(settled)\n node.status = value.outcome === \"failed\" ?\n \"failed\"\n : value.outcome === \"deferred\" ?\n \"waiting\"\n : value.outcome === \"skipped\"\n ? \"skipped\"\n : \"completed\"\n if (value.outcome !== \"deferred\") node.endedAt = envelope.emittedAtMs\n // The redacted preview is evidence, including when truncated. Never\n // evaluate it, or mistake a JSON prefix for a complete return value.\n if (value.result !== undefined) node.detail = { ...node.detail, output: value.result.preview }\n }\n continue\n }\n if (\n envelope.eventType === \"flows.engine.attempt-started\" || envelope.eventType === \"flows.engine.attempt-finished\"\n ) {\n const marker = decodeMarker({ eventType: envelope.eventType, payload: envelope.payload })\n if (Option.isNone(marker) || marker.value.payload.runId !== envelope.executionId) {\n generic()\n continue\n }\n const current = attempt(marker.value.payload.stepKeyDigest, marker.value.payload.attempt)\n if (marker.value.eventType === \"flows.engine.attempt-started\") current.status = \"running\"\n else {\n current.status = marker.value.payload.state === \"succeeded\" ? \"completed\" : \"failed\"\n current.endedAt = envelope.emittedAtMs\n }\n current.detail = { ...current.detail, fields: { ...envelope } }\n continue\n }\n if (envelope.eventType === EngineEvent.attemptEventType) {\n const recorded = decodeAttempt(envelope.payload)\n if (Option.isNone(recorded) || recorded.value.executionId !== envelope.executionId) {\n execution.coherent = false\n generic()\n continue\n }\n const { lifecycle, lineage, stepKeyDigest, attempt: number } = recorded.value\n // Lineage may describe a trampoline predecessor, not a spawned parent.\n // Product ancestry comes only from RunState.parentExecutionId below.\n execution.parentId = lineage.parentRunId ?? undefined\n const current = attempt(stepKeyDigest, number)\n current.startedAt = lifecycle.startedAtMs\n current.status = lifecycle.state === \"succeeded\"\n ? \"completed\"\n : lifecycle.state === \"suspended\"\n ? \"waiting\"\n : lifecycle.state\n current.detail = { ...detail(row, envelope), sequence: current.detail.sequence }\n if (lifecycle.state === \"succeeded\" || lifecycle.state === \"failed\") {\n current.endedAt = lifecycle.finishedAtMs\n current.detail = {\n ...current.detail,\n ...(lifecycle.result._tag === \"Success\"\n ? { output: json(lifecycle.result.value) }\n : { message: json(lifecycle.result.detail) })\n }\n }\n continue\n }\n if (envelope.eventType === EngineEvent.stateEventType) {\n const recorded = decodeState(envelope.payload)\n if (Option.isNone(recorded) || recorded.value.executionId !== envelope.executionId) {\n execution.coherent = false\n generic()\n continue\n }\n execution.parentId = recorded.value.lineage.parentRunId ?? undefined\n const registerWait = (waitId: string, kind: \"sleep\" | \"signal\") => {\n const waits = execution.waits ??= new Map()\n const id = identity(key, waitId)\n const existing = waits.get(id)\n if (existing === undefined) waits.set(id, { id: `engine-wait:${id}`, kind, since: envelope.emittedAtMs })\n // A later clock record refines a generic deferred identity without\n // restarting the wait or dropping its recorded settlement.\n else if (kind === \"sleep\") existing.kind = kind\n }\n if (recorded.value.event._tag === \"Execution\" && recorded.value.event.lifecycle.state !== \"completed\") {\n for (const wait of recorded.value.event.lifecycle.waits) {\n registerWait(wait.waitId, wait._tag === \"Clock\" ? \"sleep\" : \"signal\")\n }\n }\n if (recorded.value.event._tag === \"ClockScheduled\") {\n registerWait(recorded.value.event.waitId, \"sleep\")\n } else if (recorded.value.event._tag === \"DeferredCompleted\") {\n const wait = execution.waits?.get(identity(key, recorded.value.event.waitId))\n if (wait !== undefined && wait.settledAt === undefined) wait.settledAt = envelope.emittedAtMs\n }\n if (recorded.value.event._tag !== \"Execution\") {\n generic()\n continue\n }\n const { lifecycle } = recorded.value.event\n execution.result = undefined\n execution.failure = undefined\n execution.span.detail = {\n ...detail(row, envelope),\n sequence: execution.span.detail.sequence,\n input: execution.span.detail.input\n }\n if (lifecycle.state === \"completed\") {\n execution.span.status = lifecycle.result._tag === \"Success\" ? \"completed\" : \"failed\"\n execution.span.endedAt = envelope.emittedAtMs\n execution.span.detail = {\n ...execution.span.detail,\n ...(lifecycle.result._tag === \"Success\"\n ? { output: json(lifecycle.result.value) }\n : { message: json(lifecycle.result.detail) })\n }\n if (lifecycle.result._tag === \"Success\") result(lifecycle.result.value)\n else failure(lifecycle.result.reason, lifecycle.result.detail)\n } else execution.span.status = lifecycle.state === \"suspended\" ? \"waiting\" : \"running\"\n continue\n }\n if (envelope.eventType === \"flows.engine.interrupted\") {\n const cancelled = decodeCancellation(envelope.payload)\n if (Option.isNone(cancelled)) {\n generic()\n continue\n }\n execution.result = undefined\n execution.failure = undefined\n execution.span.status = \"cancelled\"\n execution.span.endedAt = cancelled.value.interruptedAtMs\n execution.span.detail = {\n ...detail(row, envelope),\n sequence: execution.span.detail.sequence,\n input: execution.span.detail.input\n }\n continue\n }\n if (envelope.eventType === \"flows.engine.run-decision\") {\n const decision = decodeDecision(envelope.payload)\n if (Option.isNone(decision)) {\n const payload = envelope.payload\n // Claim, owner-fence, wake and child-policy decisions deliberately do\n // not carry RunState. Keep them visible without losing valid state\n // evidence; malformed state-bearing decisions still refuse claims.\n if (\n typeof payload === \"object\" && payload !== null &&\n (\"state\" in payload || (\"decision\" in payload && stateDecisions.some((name) => name === payload.decision)))\n ) {\n execution.coherent = false\n }\n generic()\n continue\n }\n const { state, status } = decision.value\n if (execution.flowName !== undefined && execution.flowName !== state.flowName) execution.coherent = false\n execution.flowName = state.flowName\n execution.span.label = inspectLabel(state.flowName)\n parent(state.parentExecutionId)\n execution.result = undefined\n execution.failure = undefined\n execution.span.detail = {\n ...detail(row, envelope),\n sequence: execution.span.detail.sequence,\n input: state.payload\n }\n if (decision.value.decision === \"created\") execution.span.status = \"pending\"\n // RunDriver commits this decision with suspended even when its payload\n // omits status/result (a released host scope can retain no suspension).\n else if (decision.value.decision === \"interrupt-released\") execution.span.status = \"waiting\"\n else if (status === \"running\" || status === \"pending\" || status === \"suspended\") {\n execution.span.status = status === \"suspended\" ? \"waiting\" : status\n } else if (status !== undefined) {\n const decodedResult = decodeResult(state.result)\n if (\n Option.isSome(decodedResult) && decodedResult.value._tag === \"Handoff\" && status === \"completed\" &&\n decision.value.decision === \"handed-off\"\n ) {\n // A round handed off; its raw result describes the successor, not an output.\n execution.span.status = \"completed\"\n execution.span.endedAt = envelope.emittedAtMs\n continue\n }\n if (\n Option.isNone(decodedResult) || decodedResult.value._tag !== \"Complete\" ||\n (status === \"completed\") !== (decodedResult.value.exit._tag === \"Success\")\n ) {\n execution.coherent = false\n execution.span.status = \"unknown\"\n generic()\n continue\n }\n execution.span.status = status\n execution.span.endedAt = envelope.emittedAtMs\n execution.span.detail = {\n ...execution.span.detail,\n ...(decodedResult.value.exit._tag === \"Success\"\n ? { output: json(decodedResult.value.exit.value) }\n : { message: json(decodedResult.value.exit.cause) })\n }\n if (decodedResult.value.exit._tag === \"Success\") result(decodedResult.value.exit.value)\n else failure(\"cause\", decodedResult.value.exit.cause)\n }\n continue\n }\n generic()\n }\n const byExecution = new Map<string, Array<Execution>>()\n for (const current of executions.values()) {\n const generations = byExecution.get(current.envelope.executionId) ?? []\n generations.push(current)\n byExecution.set(current.envelope.executionId, generations)\n }\n const roots: Array<TraceBuilder> = []\n for (const current of executions.values()) {\n const parents = current.parentId === undefined ? [] : byExecution.get(current.parentId) ?? []\n // Build only a forest. Malformed cycles remain separate evidence rows.\n const ancestors = new Set<string>([current.envelope.executionId])\n let parent = parents.length === 1 ? parents[0] : undefined\n let cursor = parent\n while (cursor !== undefined) {\n if (ancestors.has(cursor.envelope.executionId)) {\n parent = undefined\n break\n }\n ancestors.add(cursor.envelope.executionId)\n const next = cursor.parentId === undefined ? [] : byExecution.get(cursor.parentId) ?? []\n cursor = next.length === 1 ? next[0] : undefined\n }\n if (parent === undefined) roots.push(current.span)\n else parent.span.children.push(current.span)\n }\n const evidence: Array<EngineExecutionEvidence> = [...executions.values()].map((current) => ({\n executionId: current.envelope.executionId,\n generation: current.envelope.generation,\n spanId: current.span.id,\n parentExecutionId: current.parentExecutionId,\n parentKnown: current.parentKnown === true,\n flowName: current.flowName,\n input: current.span.detail.input,\n coherent: current.coherent,\n graph: current.graph,\n status: current.span.status,\n waits: [...current.waits?.values() ?? []],\n result: current.result,\n failure: current.failure\n }))\n return { trace: [...roots, ...notices], evidence }\n}\n\n/**\n * Folds native executions and attempts into trace spans with recorded ancestry.\n *\n * @category utilities\n * @since 1.0.0\n */\nexport const engineTraceFromJournal = (records: ReadonlyArray<JournalRecord>): Array<TraceBuilder> =>\n foldEngineJournal(records).trace\n\n/**\n * Product claims use these typed facts, never text rendered into trace details.\n *\n * @category utilities\n * @since 1.0.0\n */\nexport const engineExecutionEvidence = (\n records: ReadonlyArray<JournalRecord>\n): ReadonlyArray<EngineExecutionEvidence> => foldEngineJournal(records).evidence\n\n/**\n * Same recorded native ancestry and historical cursor for every product result projection.\n *\n * @category utilities\n * @since 1.0.0\n */\nexport const engineRunEvidence = (records: ReadonlyArray<JournalRecord>, rootId: string, cursorSeq?: number) => {\n const visible: ReadonlyArray<JournalRecord> = records\n .filter((row) =>\n Number.isSafeInteger(row.sequence) && Number(row.sequence) >= 0 &&\n (cursorSeq === undefined || Number(row.sequence) <= cursorSeq)\n )\n .sort((left, right) => Number(left.sequence) - Number(right.sequence))\n const executions = engineExecutionEvidence(visible)\n const generations = new Map<string, Array<EngineExecutionEvidence>>()\n for (const execution of executions) {\n const found = generations.get(execution.executionId) ?? []\n found.push(execution)\n generations.set(execution.executionId, found)\n }\n const current = (execution: EngineExecutionEvidence) =>\n execution.coherent &&\n execution.generation === Math.max(...generations.get(execution.executionId)!.map((row) => row.generation))\n const belongs = (execution: EngineExecutionEvidence, ownerId = rootId): boolean => {\n const visited = new Set<string>()\n let candidate: EngineExecutionEvidence = execution\n while (true) {\n if (!candidate.coherent || !candidate.parentKnown || visited.has(candidate.executionId)) return false\n visited.add(candidate.executionId)\n if (candidate.executionId === ownerId) return ownerId !== rootId || candidate.parentExecutionId === undefined\n if (candidate.parentExecutionId === undefined) return false\n const parents: ReadonlyArray<EngineExecutionEvidence> = generations.get(candidate.parentExecutionId) ?? []\n // A child names a native parent ID, not its generation. Never infer a\n // parent generation from arrival time after a rewind.\n if (parents.length !== 1) return false\n candidate = parents[0]!\n }\n }\n const owned = executions.filter((row) => current(row) && belongs(row))\n const completed = owned.filter((row) => row.status === \"completed\" && row.result !== undefined)\n return { executions: owned, completed, belongs }\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"file":"GatewayProjection.d.ts","sourceRoot":"","sources":["../../src/GatewayProjection.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GatewayProjection.d.ts","sourceRoot":"","sources":["../../src/GatewayProjection.ts"],"names":[],"mappings":"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"}
@@ -488,7 +488,14 @@ const humanWaitRow = (run, wait, projected, questionProvenance = "legacy-observa
488
488
  */
489
489
  export const approvals = (events, run) => {
490
490
  const native = run === undefined ? undefined : ExecutionFact.foldControl(events, run.runId, run.executionView);
491
+ const grantFacts = events.filter((event) => event.kind === "control.approval.requested" && Schema.is(ControlFacts.ApprovalRequestFact)(event.payload));
492
+ const grants = ControlFacts.fold(grantFacts).approvals;
491
493
  const observed = run?.pendingWaits?.map((wait) => {
494
+ // An agent ask parks on its registered grant token, not a HumanTask answer.
495
+ // Preserve the committed target instead of inventing an answer-only target.
496
+ const grant = grants.find((row) => row.runId === run.runId && row.requestId === wait.token);
497
+ if (grant !== undefined)
498
+ return grant;
492
499
  const projected = native?.provenance.humanWaits === "events" ?
493
500
  native.view?.humanWaits?.find((candidate) => candidate.executionId === wait.runId && candidate.waiting?.tokenDigest === wait.tokenDigest) :
494
501
  undefined;