@wrongstack/core 0.313.0 → 0.316.1
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.
- package/dist/chronicle/index.js +84 -6391
- package/dist/chronicle/legacy-journal-import.d.ts +0 -6
- package/dist/chronicle/metrics-ingest.d.ts +14 -0
- package/dist/chronicle/metrics-schema.d.ts +10 -1
- package/dist/chronicle/metrics-store.d.ts +20 -2
- package/dist/chronicle/project-server.js +98 -4874
- package/dist/chronicle/sink.d.ts +13 -0
- package/dist/chronicle/sqlite-journal.d.ts +20 -2
- package/dist/chunk-25LSLC3G.js +334 -0
- package/dist/chunk-27QIURLN.js +1073 -0
- package/dist/chunk-2FK4WTFF.js +207 -0
- package/dist/chunk-2YU4WVBW.js +134 -0
- package/dist/chunk-3AGWVSS7.js +4608 -0
- package/dist/chunk-3BDV7RL3.js +211 -0
- package/dist/chunk-3ECENVHL.js +325 -0
- package/dist/chunk-3XPVB7BA.js +135 -0
- package/dist/chunk-45WI72ZB.js +16884 -0
- package/dist/chunk-4BMVPOHO.js +3748 -0
- package/dist/chunk-4I7HGVVA.js +363 -0
- package/dist/chunk-4LCZVJVF.js +317 -0
- package/dist/chunk-4SJNS7OB.js +217 -0
- package/dist/chunk-4VWO3ZXL.js +342 -0
- package/dist/chunk-57GEWK5X.js +26 -0
- package/dist/chunk-5BMIE7QG.js +46 -0
- package/dist/chunk-5S437PRC.js +50 -0
- package/dist/chunk-5XDUGTKN.js +511 -0
- package/dist/chunk-5YPSXQXM.js +1443 -0
- package/dist/chunk-6FHWXLPT.js +10 -0
- package/dist/chunk-6H5GEOET.js +2406 -0
- package/dist/chunk-6NWEVFEL.js +151 -0
- package/dist/chunk-AYW5YINX.js +58 -0
- package/dist/chunk-B4AMLZPB.js +9 -0
- package/dist/chunk-B7F4WVP4.js +65 -0
- package/dist/chunk-BJHVULHO.js +55 -0
- package/dist/chunk-BPBKKBUK.js +2085 -0
- package/dist/chunk-BYD345OX.js +589 -0
- package/dist/chunk-C27KDLOX.js +279 -0
- package/dist/chunk-CU546ESW.js +597 -0
- package/dist/chunk-DLHHXUAM.js +172 -0
- package/dist/chunk-DOTHQSJ2.js +429 -0
- package/dist/chunk-DYLPMV4Q.js +711 -0
- package/dist/chunk-EODDVJBM.js +82 -0
- package/dist/chunk-F3JWNST7.js +361 -0
- package/dist/chunk-FC2ZGRF3.js +140 -0
- package/dist/chunk-FCBTO76Z.js +5786 -0
- package/dist/chunk-FHZVFYSL.js +396 -0
- package/dist/chunk-FNXVT7HF.js +52 -0
- package/dist/chunk-FWNLEZYG.js +259 -0
- package/dist/chunk-FXQLIX3K.js +211 -0
- package/dist/chunk-G5S3S5ZN.js +38 -0
- package/dist/chunk-GDQ7CZRQ.js +116 -0
- package/dist/chunk-GJJGJB2R.js +1374 -0
- package/dist/chunk-GTCU6DZ3.js +1 -0
- package/dist/chunk-HA4ZYA6T.js +178 -0
- package/dist/chunk-HI3JGZR2.js +188 -0
- package/dist/chunk-HMLIGAU7.js +395 -0
- package/dist/chunk-HXKZ7OBQ.js +303 -0
- package/dist/chunk-I7DALG7J.js +292 -0
- package/dist/chunk-IRUTEHCE.js +960 -0
- package/dist/chunk-IYFBFX34.js +86 -0
- package/dist/chunk-J2WRWR37.js +1104 -0
- package/dist/chunk-JFPJ6LLQ.js +129 -0
- package/dist/chunk-JMULFFLN.js +9 -0
- package/dist/chunk-JO4MGB6Z.js +1264 -0
- package/dist/chunk-JVKB2TBL.js +48 -0
- package/dist/chunk-JX7VBZDK.js +31 -0
- package/dist/chunk-K6BXGITA.js +931 -0
- package/dist/chunk-KDQJCT2J.js +45 -0
- package/dist/chunk-KJ2ZTQSL.js +47 -0
- package/dist/chunk-KZMSZV32.js +187 -0
- package/dist/chunk-LA7CLDRW.js +129 -0
- package/dist/chunk-LHOA5DWA.js +28 -0
- package/dist/chunk-LSMMOS2Z.js +119 -0
- package/dist/chunk-LX5QWLBL.js +27 -0
- package/dist/chunk-LXWCMQNJ.js +789 -0
- package/dist/chunk-M27LIEKV.js +2829 -0
- package/dist/chunk-MJPHJRAL.js +663 -0
- package/dist/chunk-MTL4O5YR.js +228 -0
- package/dist/chunk-NDBIPFNY.js +102 -0
- package/dist/chunk-NEMIWEXC.js +1199 -0
- package/dist/chunk-NHJ75HXY.js +1 -0
- package/dist/chunk-NIOAGFPB.js +1510 -0
- package/dist/chunk-NS52ISWS.js +355 -0
- package/dist/chunk-NSOFPKGT.js +5352 -0
- package/dist/chunk-NVIZG63R.js +757 -0
- package/dist/chunk-O37BQ65S.js +21 -0
- package/dist/chunk-OOYZPOXM.js +308 -0
- package/dist/chunk-OSGLYW5J.js +28 -0
- package/dist/chunk-PFCMSSUF.js +1640 -0
- package/dist/chunk-PFZO3C6H.js +14 -0
- package/dist/chunk-PGRVXIMY.js +158 -0
- package/dist/chunk-PHH7LD45.js +113 -0
- package/dist/chunk-PISBFBJN.js +109 -0
- package/dist/chunk-POOOIWE5.js +9 -0
- package/dist/chunk-PQNS3U7Z.js +1240 -0
- package/dist/chunk-QSTSJOCK.js +402 -0
- package/dist/chunk-RFQMOKWK.js +282 -0
- package/dist/chunk-RJIZEJ42.js +30 -0
- package/dist/chunk-RTOTNK3P.js +484 -0
- package/dist/chunk-RXKSDUAU.js +1172 -0
- package/dist/chunk-S45JPKQN.js +3317 -0
- package/dist/chunk-SAFHACFA.js +152 -0
- package/dist/chunk-SQJVFEBV.js +41 -0
- package/dist/chunk-SVT4RNTR.js +49 -0
- package/dist/chunk-SWUFN7XM.js +43 -0
- package/dist/chunk-SXMVYC5H.js +174 -0
- package/dist/chunk-SZ6AYUIZ.js +23 -0
- package/dist/chunk-TBRL2RCC.js +9 -0
- package/dist/chunk-TCCHINEF.js +655 -0
- package/dist/chunk-THEGTRAG.js +316 -0
- package/dist/chunk-TR4LQE7L.js +2256 -0
- package/dist/chunk-TRT2HRWZ.js +18 -0
- package/dist/chunk-TWJMGXCI.js +900 -0
- package/dist/chunk-U45AXT5D.js +1023 -0
- package/dist/chunk-U4FWBSO3.js +509 -0
- package/dist/chunk-UBGDX6FI.js +147 -0
- package/dist/chunk-UJILKYES.js +75 -0
- package/dist/chunk-ULMAQV3T.js +234 -0
- package/dist/chunk-VVBP6KGT.js +9 -0
- package/dist/chunk-W5VITDM2.js +168 -0
- package/dist/chunk-WAHQVNWT.js +194 -0
- package/dist/chunk-WBPVKEEE.js +227 -0
- package/dist/chunk-WGGYRBXH.js +5434 -0
- package/dist/chunk-WLYKU45P.js +5770 -0
- package/dist/chunk-WP7BVANJ.js +53 -0
- package/dist/chunk-WQQON3SV.js +473 -0
- package/dist/chunk-WQTOVMGV.js +119 -0
- package/dist/chunk-XBDP4QPW.js +7 -0
- package/dist/chunk-XEBHSJLT.js +103 -0
- package/dist/chunk-XF4VUMKW.js +231 -0
- package/dist/chunk-XQ2ECNK3.js +1 -0
- package/dist/chunk-Y5YXDM7D.js +74 -0
- package/dist/chunk-YOPAUVU4.js +2588 -0
- package/dist/chunk-YPT4A46F.js +362 -0
- package/dist/chunk-YWXT3JNM.js +425 -0
- package/dist/chunk-YY6APYUM.js +49 -0
- package/dist/chunk-Z2IJUO45.js +691 -0
- package/dist/chunk-ZHZ2Y2DH.js +1643 -0
- package/dist/chunk-ZT7JNIGX.js +152 -0
- package/dist/coordination/agent-monitor.d.ts +9 -1
- package/dist/coordination/agent-subagent-runner.d.ts +1 -1
- package/dist/coordination/agents/agent-prompts.d.ts +8 -0
- package/dist/coordination/agents/index.d.ts +33 -1
- package/dist/coordination/agents/index.js +184 -6269
- package/dist/coordination/agents/phase3-wave1-platform.d.ts +1 -3
- package/dist/coordination/agents/phase3-wave2-meta.d.ts +1 -3
- package/dist/coordination/agents/phase8-wave3-products.d.ts +1 -3
- package/dist/coordination/agents/phase9-wave4-platform-meta.d.ts +1 -3
- package/dist/coordination/agents/project-agent-identity.d.ts +11 -11
- package/dist/coordination/agents/types.d.ts +13 -2
- package/dist/coordination/brain-monitor.d.ts +30 -7
- package/dist/coordination/collab-debug.d.ts +1 -1
- package/dist/coordination/collab-pause.d.ts +1 -1
- package/dist/coordination/delegate-tool.d.ts +7 -5
- package/dist/coordination/director-kanban-queue-helpers.d.ts +1 -0
- package/dist/coordination/director-options.d.ts +7 -0
- package/dist/coordination/director-spawn-model.d.ts +17 -0
- package/dist/coordination/director-tools.d.ts +2 -2
- package/dist/coordination/director.d.ts +12 -0
- package/dist/coordination/dispatcher.d.ts +8 -0
- package/dist/coordination/fleet-bus.d.ts +35 -4
- package/dist/coordination/fleet-supervisor.d.ts +10 -2
- package/dist/coordination/fleet.d.ts +16 -7
- package/dist/coordination/index.d.ts +4 -0
- package/dist/coordination/index.js +402 -34324
- package/dist/coordination/kanban-dispatch-port.d.ts +2 -2
- package/dist/coordination/mailbox-http-router.d.ts +4 -3
- package/dist/coordination/mailbox-http-validation.d.ts +1 -1
- package/dist/coordination/mailbox-project-server.js +48 -3276
- package/dist/coordination/mailbox-types.d.ts +24 -6
- package/dist/coordination/model-tier-leader.d.ts +122 -0
- package/dist/coordination/model-tier.d.ts +122 -0
- package/dist/coordination/multi-agent-coordinator.d.ts +24 -0
- package/dist/coordination/origin-session.d.ts +16 -0
- package/dist/coordination/provider-status-tracker.d.ts +41 -5
- package/dist/coordination/session-note-hub.d.ts +44 -0
- package/dist/coordination/session-note-tool.d.ts +10 -0
- package/dist/core/agent.d.ts +15 -2
- package/dist/core/context.d.ts +22 -3
- package/dist/core/index.d.ts +2 -0
- package/dist/core/index.js +239 -12360
- package/dist/core/model-ref.js +5 -23
- package/dist/core/provider-runner.d.ts +36 -1
- package/dist/core/request-conversation-binding.d.ts +37 -0
- package/dist/core/session-notes.d.ts +25 -0
- package/dist/core/system-prompt-builder.d.ts +11 -2
- package/dist/core/system-prompt-variants.d.ts +78 -0
- package/dist/design/index.js +50 -1087
- package/dist/execution/auto-compaction-middleware.d.ts +11 -0
- package/dist/execution/autonomy-brain.d.ts +2 -1
- package/dist/execution/autonomy-prompt-contributor.d.ts +7 -2
- package/dist/execution/compaction-core.d.ts +4 -4
- package/dist/execution/eternal-autonomy.d.ts +1 -1
- package/dist/execution/index.d.ts +1 -1
- package/dist/execution/index.js +1615 -21895
- package/dist/execution/model-runtime.d.ts +0 -7
- package/dist/execution/parallel-eternal-engine.d.ts +7 -7
- package/dist/execution/prompt-enhancer.js +16 -535
- package/dist/execution/retry-policy.d.ts +31 -1
- package/dist/extension/index.js +7 -311
- package/dist/goal/index.js +33 -3435
- package/dist/hooks/index.js +14 -1138
- package/dist/hq/index.js +114 -5139
- package/dist/hq/persistence/event-log.d.ts +0 -1
- package/dist/hq/persistence.d.ts +4 -4
- package/dist/hq/protocol.js +21 -668
- package/dist/hq/publisher.d.ts +2 -0
- package/dist/index.d.ts +14 -11
- package/dist/index.js +1502 -92655
- package/dist/infrastructure/index.d.ts +4 -4
- package/dist/infrastructure/index.js +504 -5230
- package/dist/infrastructure/token-counter.d.ts +9 -0
- package/dist/kernel/events/agent-events.d.ts +77 -3
- package/dist/kernel/events/brain-events.d.ts +12 -0
- package/dist/kernel/events/provider-events.d.ts +22 -1
- package/dist/kernel/events/session-events.d.ts +14 -0
- package/dist/kernel/events/tool-events.d.ts +13 -0
- package/dist/kernel/index.js +14 -992
- package/dist/mailbox-attach.d.ts +1 -1
- package/dist/models/index.js +41 -1117
- package/dist/notifications/index.js +3 -108
- package/dist/observability/event-bridge.d.ts +25 -5
- package/dist/observability/index.d.ts +9 -8
- package/dist/observability/index.js +477 -631
- package/dist/observability/tool-usage-source.d.ts +65 -0
- package/dist/plugin/index.d.ts +5 -0
- package/dist/plugin/index.js +600 -14835
- package/dist/plugins/auto-review-plugin.d.ts +3 -2
- package/dist/plugins/review-finding-commands.d.ts +0 -8
- package/dist/plugins/review-finding-store.js +22 -0
- package/dist/plugins/review-finding-types.js +19 -0
- package/dist/plugins/review-report-integration.js +21 -0
- package/dist/plugins/review-report-store.js +20 -0
- package/dist/plugins/review-report-types.js +13 -0
- package/dist/prompts/index.js +14 -948
- package/dist/registry/index.js +9 -822
- package/dist/registry/tool-registry.d.ts +59 -9
- package/dist/registry-7N4O3E7W.js +14 -0
- package/dist/replay/index.js +6 -84
- package/dist/security/capabilities.d.ts +6 -0
- package/dist/security/file-permissions.d.ts +1 -1
- package/dist/security/index.js +161 -2235
- package/dist/security/permission-policy.d.ts +12 -1
- package/dist/security/secret-scrubber.d.ts +15 -0
- package/dist/session-catalog/index.d.ts +1 -0
- package/dist/session-catalog/index.js +41 -2103
- package/dist/session-catalog/project-server.js +59 -1435
- package/dist/session-catalog/protocol.d.ts +32 -1
- package/dist/session-catalog/registry.d.ts +17 -1
- package/dist/session-catalog/session-agents.d.ts +56 -0
- package/dist/session-catalog/store-rebuild.d.ts +14 -0
- package/dist/session-catalog/store-schema.d.ts +26 -0
- package/dist/session-catalog/store.d.ts +27 -1
- package/dist/session-note-attach.d.ts +9 -0
- package/dist/skills/index.js +35 -1578
- package/dist/statusline/index.d.ts +43 -0
- package/dist/statusline/index.js +102 -0
- package/dist/storage/board-store-port.d.ts +2 -2
- package/dist/storage/config-loader/in-project-policy.d.ts +29 -0
- package/dist/storage/config-loader.d.ts +3 -2
- package/dist/storage/file-session-writer.d.ts +4 -2
- package/dist/storage/goal-coordination.d.ts +6 -1
- package/dist/storage/goal-kanban.d.ts +4 -1
- package/dist/storage/index.d.ts +12 -4
- package/dist/storage/index.js +198 -15601
- package/dist/storage/input-history-store.d.ts +2 -4
- package/dist/storage/memory-curator.d.ts +133 -0
- package/dist/storage/session-agent-attribution.d.ts +39 -0
- package/dist/storage/session-doctor.d.ts +109 -0
- package/dist/storage/session-event-bridge.d.ts +5 -7
- package/dist/storage/session-outcome.d.ts +42 -0
- package/dist/storage/session-recovery.d.ts +55 -0
- package/dist/storage/session-store/load-session-data.d.ts +11 -0
- package/dist/storage/session-store/prune-helpers.d.ts +1 -1
- package/dist/storage/session-store/resume-session.d.ts +0 -2
- package/dist/storage/session-store/types.d.ts +8 -0
- package/dist/storage/session-store.d.ts +3 -3
- package/dist/storage/session-summary-tracker.d.ts +8 -1
- package/dist/storage/session-write-buffer.d.ts +18 -0
- package/dist/storage/session-writer-truncate.d.ts +2 -0
- package/dist/tasking/index.js +10 -676
- package/dist/tools/fallback-manage-tools.d.ts +6 -4
- package/dist/tools/index.js +52 -9590
- package/dist/tools/model-tier-set-tool.d.ts +66 -0
- package/dist/types/agent-bridge.d.ts +2 -1
- package/dist/types/config/autonomy.d.ts +5 -0
- package/dist/types/config/mcp-features.d.ts +7 -0
- package/dist/types/config/model-tiers.d.ts +148 -0
- package/dist/types/config/root.d.ts +9 -0
- package/dist/types/config/tools.d.ts +73 -0
- package/dist/types/config/ui.d.ts +1 -1
- package/dist/types/config.d.ts +1 -0
- package/dist/types/context.d.ts +2 -0
- package/dist/types/default-config.d.ts +6 -0
- package/dist/types/errors.d.ts +20 -1
- package/dist/types/index.d.ts +11 -9
- package/dist/types/index.js +131 -1342
- package/dist/types/multi-agent.d.ts +43 -0
- package/dist/types/plugin.d.ts +1 -1
- package/dist/types/provider-runner.d.ts +8 -0
- package/dist/types/provider.d.ts +15 -0
- package/dist/types/runtime-capability-manifest.d.ts +1 -1
- package/dist/types/secret-scrubber.d.ts +15 -0
- package/dist/types/session-markers.d.ts +37 -10
- package/dist/types/session-markers.js +8 -144
- package/dist/types/session-timeline.d.ts +197 -0
- package/dist/types/session-timeline.js +12 -0
- package/dist/types/session.d.ts +172 -11
- package/dist/types/system-prompt.d.ts +27 -0
- package/dist/utils/config-backup.d.ts +9 -1
- package/dist/utils/error.js +3 -4
- package/dist/utils/expect-defined.js +3 -9
- package/dist/utils/heap-watchdog.js +6 -706
- package/dist/utils/index.js +271 -5685
- package/dist/utils/message-invariants.d.ts +4 -1
- package/dist/utils/regex-guard.d.ts +1 -1
- package/dist/utils/sage-output-block.js +5 -42
- package/dist/utils/socket-path.d.ts +1 -1
- package/dist/utils/token-estimate.d.ts +6 -2
- package/dist/utils/wstack-paths.d.ts +2 -0
- package/dist/wiring/proxy-rewrite.d.ts +46 -0
- package/dist/wiring/proxy-rewrite.js +24 -121
- package/dist/worktree/index.js +6 -887
- package/instructions/agents/explore-companion.md +45 -18
- package/instructions/agents/memory-curator.md +34 -22
- package/instructions/coordination/director-preamble.md +12 -7
- package/instructions/coordination/subagent-baseline.md +26 -5
- package/instructions/leader-after-task.md +4 -1
- package/instructions/llm/chimera-review.md +30 -9
- package/instructions/llm/memory-curator.md +31 -0
- package/instructions/sections/tool/delegation-compact.md +2 -0
- package/instructions/sections/tool/delegation-full.md +5 -1
- package/instructions/sections/tool/mailbox-compact.md +5 -1
- package/instructions/sections/tool/mailbox-full.md +3 -0
- package/instructions/sections/tool/session-note-compact.md +3 -0
- package/instructions/sections/tool/session-note-full.md +15 -0
- package/instructions/system-lite.md +9 -4
- package/instructions/system-pro.md +66 -143
- package/instructions/system.md +73 -175
- package/package.json +32 -4
- package/dist/coordination/agents.d.ts +0 -8
- package/dist/coordination/transport.d.ts +0 -2
- package/dist/storage/session-writer/session-writer-summary-tracker.d.ts +0 -28
package/dist/types/session.d.ts
CHANGED
|
@@ -65,7 +65,28 @@ export interface SessionMetadata {
|
|
|
65
65
|
* The only files that live inside the project tree are the committed
|
|
66
66
|
* `.wrongstack/AGENTS.md` and `.wrongstack/skills/`.
|
|
67
67
|
*/
|
|
68
|
-
export type SessionEvent =
|
|
68
|
+
export type SessionEvent = SessionEventVariant & SessionEventAttribution;
|
|
69
|
+
/**
|
|
70
|
+
* Attribution stamped onto a journal event by the WRITER, never by the
|
|
71
|
+
* producer that built it.
|
|
72
|
+
*
|
|
73
|
+
* A leader's JSONL can carry events produced by its subagents: the
|
|
74
|
+
* parent-interleaved writer (`createParentSubagentSessionWriter`) forwards a
|
|
75
|
+
* subagent's appends into the leader's journal because that subagent has no
|
|
76
|
+
* journal of its own. Without a stamp those appends are indistinguishable
|
|
77
|
+
* from the leader's, so a transcript reader cannot say which agent ran which
|
|
78
|
+
* tool. `withAgentAttribution` sets this at the writer boundary — the one
|
|
79
|
+
* place that knows whose writer it is — so no emit site has to remember.
|
|
80
|
+
*
|
|
81
|
+
* Absent means "the session's own leader". Old journals have no stamp at all,
|
|
82
|
+
* which reads the same way and is correct: they predate subagent interleaving
|
|
83
|
+
* being attributable.
|
|
84
|
+
*/
|
|
85
|
+
export interface SessionEventAttribution {
|
|
86
|
+
/** Subagent that produced this event; absent = the session's leader. */
|
|
87
|
+
agentId?: string | undefined;
|
|
88
|
+
}
|
|
89
|
+
type SessionEventVariant = {
|
|
69
90
|
type: 'session_start';
|
|
70
91
|
ts: string;
|
|
71
92
|
id: string;
|
|
@@ -105,6 +126,21 @@ export type SessionEvent = {
|
|
|
105
126
|
content: ContentBlock[];
|
|
106
127
|
stopReason: string;
|
|
107
128
|
usage: Usage;
|
|
129
|
+
/**
|
|
130
|
+
* Model that produced this response and billed this `usage`.
|
|
131
|
+
*
|
|
132
|
+
* Optional because logs written before this field existed omit it —
|
|
133
|
+
* never because a live writer may skip it. `usage` is the only place
|
|
134
|
+
* token counts are journaled, so without these two fields the journal
|
|
135
|
+
* cannot answer "which model burned these tokens": `session_start`
|
|
136
|
+
* records only the model the session OPENED with (a mid-session switch
|
|
137
|
+
* or a fallback rotation leaves it stale), and `llm_request` carries
|
|
138
|
+
* `model` but no provider. Readers must still tolerate `undefined` and
|
|
139
|
+
* fall back to the nearest preceding `llm_request` / `session_start`.
|
|
140
|
+
*/
|
|
141
|
+
model?: string | undefined;
|
|
142
|
+
/** Provider id that served this response. See {@link model}. */
|
|
143
|
+
provider?: string | undefined;
|
|
108
144
|
} | {
|
|
109
145
|
type: 'tool_use';
|
|
110
146
|
ts: string;
|
|
@@ -250,26 +286,121 @@ export type SessionEvent = {
|
|
|
250
286
|
ts: string;
|
|
251
287
|
agentId: string;
|
|
252
288
|
role: string;
|
|
289
|
+
} | {
|
|
290
|
+
/**
|
|
291
|
+
* Binds a spawned agent to the transcript it writes into.
|
|
292
|
+
*
|
|
293
|
+
* Separate from `agent_spawned` because the two facts are learned in
|
|
294
|
+
* different places: the fleet layer emits `agent_spawned` once the
|
|
295
|
+
* coordinator hands back an id, while the writer is built one layer
|
|
296
|
+
* down in the subagent factory, which has no channel back to that emit
|
|
297
|
+
* site. Threading one would have changed five signatures for a fact
|
|
298
|
+
* that is naturally its own record — and would still be optional on
|
|
299
|
+
* `agent_spawned`, since an agent running on the parent-interleaved
|
|
300
|
+
* writer never gets a transcript of its own and emits no link at all.
|
|
301
|
+
*
|
|
302
|
+
* Readers join on `agentId` within the session.
|
|
303
|
+
*/
|
|
304
|
+
type: 'agent_session_linked';
|
|
305
|
+
ts: string;
|
|
306
|
+
agentId: string;
|
|
307
|
+
/** The subagent journal's own session id. */
|
|
308
|
+
agentSessionId: string;
|
|
309
|
+
/**
|
|
310
|
+
* Absolute path of the subagent's JSONL at the time it was opened.
|
|
311
|
+
* Absent for in-memory writers (tests, ephemeral runs), which have a
|
|
312
|
+
* session id but no file.
|
|
313
|
+
*/
|
|
314
|
+
transcriptPath?: string | undefined;
|
|
315
|
+
provider?: string | undefined;
|
|
316
|
+
model?: string | undefined;
|
|
317
|
+
/** Set when this agent was spawned by another agent, not the leader. */
|
|
318
|
+
parentAgentId?: string | undefined;
|
|
253
319
|
} | {
|
|
254
320
|
type: 'agent_stopped';
|
|
255
321
|
ts: string;
|
|
256
322
|
agentId: string;
|
|
323
|
+
/** Why the agent ended. Absent in journals written before this field. */
|
|
324
|
+
reason?: 'completed' | 'aborted' | 'failed' | 'evicted' | undefined;
|
|
325
|
+
/** This agent's own cumulative spend, when the stopper knows it. */
|
|
326
|
+
usage?: Usage | undefined;
|
|
257
327
|
} | {
|
|
258
328
|
type: 'agent_error';
|
|
259
329
|
ts: string;
|
|
260
330
|
agentId: string;
|
|
261
331
|
error: string;
|
|
262
332
|
} | {
|
|
263
|
-
|
|
333
|
+
/**
|
|
334
|
+
* A `delegate` tool call handing work to a subagent.
|
|
335
|
+
*
|
|
336
|
+
* Distinct from `agent_spawned`, which records that an agent exists.
|
|
337
|
+
* This records that the LEADER stopped and waited on it, which is the
|
|
338
|
+
* thing the transcript shows: every surface renders a delegation line
|
|
339
|
+
* live (the TUI even suppresses the generic tool card in its favour),
|
|
340
|
+
* and none of it reached disk — so a resumed session showed a gap where
|
|
341
|
+
* minutes of delegated work had happened.
|
|
342
|
+
*/
|
|
343
|
+
type: 'delegate_started';
|
|
344
|
+
ts: string;
|
|
345
|
+
/** Resolved roster role or free-form subagent name. */
|
|
346
|
+
target: string;
|
|
347
|
+
/** The instruction handed to the subagent. */
|
|
348
|
+
task: string;
|
|
349
|
+
subagentId?: string | undefined;
|
|
350
|
+
} | {
|
|
351
|
+
type: 'delegate_completed';
|
|
352
|
+
ts: string;
|
|
353
|
+
target: string;
|
|
354
|
+
task: string;
|
|
355
|
+
ok: boolean;
|
|
356
|
+
/** `success` | `timeout` | `host_timeout` | `stopped` | … */
|
|
357
|
+
status?: string | undefined;
|
|
358
|
+
/** One-line human summary, as the live surfaces render it. */
|
|
359
|
+
summary: string;
|
|
360
|
+
durationMs: number;
|
|
361
|
+
iterations: number;
|
|
362
|
+
toolCalls: number;
|
|
363
|
+
costUsd?: number | undefined;
|
|
364
|
+
subagentId?: string | undefined;
|
|
365
|
+
} | {
|
|
366
|
+
/**
|
|
367
|
+
* The loop detector acted on a repeating run.
|
|
368
|
+
*
|
|
369
|
+
* Only `action: 'cut'` is worth a record: a `steer` is an in-band nudge
|
|
370
|
+
* the model absorbs, while a cut ENDS the turn — and without this the
|
|
371
|
+
* run came back as a bare `max_iterations` with nothing saying why.
|
|
372
|
+
*/
|
|
373
|
+
type: 'loop_detected';
|
|
264
374
|
ts: string;
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
375
|
+
/** Comma-separated tool names, or empty for a pure message loop. */
|
|
376
|
+
tools: string;
|
|
377
|
+
repeatCount: number;
|
|
378
|
+
iteration: number;
|
|
379
|
+
kind?: 'tool' | 'message' | 'mixed' | undefined;
|
|
380
|
+
action?: 'steer' | 'cut' | undefined;
|
|
268
381
|
} | {
|
|
269
|
-
|
|
382
|
+
/**
|
|
383
|
+
* The active provider/model changed mid-session.
|
|
384
|
+
*
|
|
385
|
+
* `reason: 'fallback'` is the automatic switch after a provider failure;
|
|
386
|
+
* `'user'` is an explicit `/model` or UI change. Either way the rest of
|
|
387
|
+
* the transcript was produced by a different model than the one
|
|
388
|
+
* `session_start` names, and a reader with no record of the switch
|
|
389
|
+
* attributes it all to the first one.
|
|
390
|
+
*/
|
|
391
|
+
type: 'model_switched';
|
|
270
392
|
ts: string;
|
|
271
|
-
|
|
272
|
-
|
|
393
|
+
from?: {
|
|
394
|
+
providerId: string;
|
|
395
|
+
model: string;
|
|
396
|
+
} | undefined;
|
|
397
|
+
to: {
|
|
398
|
+
providerId: string;
|
|
399
|
+
model: string;
|
|
400
|
+
};
|
|
401
|
+
reason: 'fallback' | 'user';
|
|
402
|
+
/** HTTP status that triggered an automatic fallback, when there was one. */
|
|
403
|
+
status?: number | undefined;
|
|
273
404
|
} | {
|
|
274
405
|
type: 'skill_activated';
|
|
275
406
|
ts: string;
|
|
@@ -530,7 +661,11 @@ export interface SessionData {
|
|
|
530
661
|
* in flight (crash/interrupt). Computed during replay BEFORE adjacency
|
|
531
662
|
* repair strips them. `resume()` surfaces this as an informational notice so
|
|
532
663
|
* the user/model know work was interrupted; the tools are NOT re-executed.
|
|
533
|
-
*
|
|
664
|
+
*
|
|
665
|
+
* Only present when at least one call was left open: **absent means none**,
|
|
666
|
+
* never zero (see `load-session-data.ts`). It is also absent for
|
|
667
|
+
* events-only loads, which reconstruct no messages to count. Read it as
|
|
668
|
+
* `data.pendingToolUseCount ?? 0` rather than testing for `undefined`.
|
|
534
669
|
*/
|
|
535
670
|
pendingToolUseCount?: number | undefined;
|
|
536
671
|
/**
|
|
@@ -561,9 +696,28 @@ export interface ForkedSession {
|
|
|
561
696
|
/** Available for checkpoint forks captured by workspace-CAS-aware writers. */
|
|
562
697
|
workspaceCheckpoint?: WorkspaceCheckpointRef | undefined;
|
|
563
698
|
}
|
|
699
|
+
/**
|
|
700
|
+
* Byte-level progress for a session JSONL load. `loadedBytes` counts raw
|
|
701
|
+
* source bytes consumed so far (newline-inclusive approximation) and
|
|
702
|
+
* `totalBytes` is the source file size at load start.
|
|
703
|
+
*/
|
|
704
|
+
export interface SessionLoadProgress {
|
|
705
|
+
loadedBytes: number;
|
|
706
|
+
totalBytes: number;
|
|
707
|
+
}
|
|
564
708
|
export interface SessionStore {
|
|
565
709
|
create(meta: Omit<SessionMetadata, 'startedAt'>): Promise<SessionWriter>;
|
|
566
|
-
|
|
710
|
+
/**
|
|
711
|
+
* Read a session without claiming it for writing.
|
|
712
|
+
*
|
|
713
|
+
* `onLoadProgress` mirrors {@link SessionStore.resume} — the implementation
|
|
714
|
+
* has always accepted it, but the interface did not declare it, so the only
|
|
715
|
+
* caller that can stream progress for a read-only view (a resume falling
|
|
716
|
+
* back to showing the transcript it could not attach to) had to drop it and
|
|
717
|
+
* leave the user staring at a frozen screen for the length of a 131 MB
|
|
718
|
+
* parse. Implementations may ignore it.
|
|
719
|
+
*/
|
|
720
|
+
load(id: string, onLoadProgress?: (progress: SessionLoadProgress) => void): Promise<SessionData>;
|
|
567
721
|
/**
|
|
568
722
|
* Open an existing session for append, returning both a writer that
|
|
569
723
|
* continues writing to the same JSONL file and the replayed state
|
|
@@ -571,8 +725,12 @@ export interface SessionStore {
|
|
|
571
725
|
* `session_resumed` marker is appended for audit. New writers may also
|
|
572
726
|
* persist the exact conversation journal (`message_*` events); legacy logs
|
|
573
727
|
* containing only user/assistant/tool events remain replayable.
|
|
728
|
+
*
|
|
729
|
+
* Optional `onLoadProgress` streams byte-level parse progress for large
|
|
730
|
+
* journals so callers can surface a live indicator; implementations may
|
|
731
|
+
* ignore it, and a warm load cache reports a single completed event.
|
|
574
732
|
*/
|
|
575
|
-
resume(id: string): Promise<ResumedSession>;
|
|
733
|
+
resume(id: string, onLoadProgress?: (progress: SessionLoadProgress) => void): Promise<ResumedSession>;
|
|
576
734
|
/**
|
|
577
735
|
* Create a non-destructive child journal from a persisted parent boundary.
|
|
578
736
|
* Parent file snapshots are intentionally not inherited as rewind authority;
|
|
@@ -654,6 +812,8 @@ export interface SessionStore {
|
|
|
654
812
|
}
|
|
655
813
|
export interface SessionWriter {
|
|
656
814
|
readonly id: string;
|
|
815
|
+
/** Original session start timestamp, used by resumed surfaces to keep uptime stable. */
|
|
816
|
+
readonly startedAt?: string | undefined;
|
|
657
817
|
/**
|
|
658
818
|
* Session-level trace ID for correlating storage events with agent
|
|
659
819
|
* iterations in observability pipelines. Generated once at Context
|
|
@@ -823,4 +983,5 @@ export interface SessionWriter {
|
|
|
823
983
|
*/
|
|
824
984
|
clearInFlightMarker(reason: 'clean' | 'aborted' | 'recovered'): Promise<void>;
|
|
825
985
|
}
|
|
986
|
+
export {};
|
|
826
987
|
//# sourceMappingURL=session.d.ts.map
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import type { SystemInstructionVariant } from '../core/instruction-bundle.js';
|
|
1
2
|
import type { MailboxAgentStatus } from '../coordination/mailbox-types.js';
|
|
2
3
|
import type { TextBlock } from './blocks.js';
|
|
3
4
|
import type { Tool } from './tool.js';
|
|
@@ -32,6 +33,32 @@ export interface BuildContext {
|
|
|
32
33
|
* linked Git worktrees in the same canonical project.
|
|
33
34
|
*/
|
|
34
35
|
onlineAgents?: MailboxAgentStatus[] | undefined;
|
|
36
|
+
/**
|
|
37
|
+
* Identity variant for THIS build — `system.md`, `system-lite.md` or
|
|
38
|
+
* `system-pro.md`.
|
|
39
|
+
*
|
|
40
|
+
* The builder is one process-wide instance and used to take the variant once,
|
|
41
|
+
* at construction, from the boot config. With four conversations on one
|
|
42
|
+
* process that made the identity a property of the process: picking a lighter
|
|
43
|
+
* identity in one tab was either discarded on that tab's next turn (the
|
|
44
|
+
* pre-run prompt refresh rebuilt it from the boot variant) or applied to all
|
|
45
|
+
* of them. Passing it per build makes it a property of the conversation,
|
|
46
|
+
* which is what it always described.
|
|
47
|
+
*
|
|
48
|
+
* Omitted keeps the builder's configured default.
|
|
49
|
+
*/
|
|
50
|
+
systemVariant?: SystemInstructionVariant | undefined;
|
|
51
|
+
/**
|
|
52
|
+
* Autonomy mode of THIS conversation.
|
|
53
|
+
*
|
|
54
|
+
* The ETERNAL AUTONOMY block is injected from a process-wide mode ref, which
|
|
55
|
+
* one tab could move for all of them — so switching a background tab to
|
|
56
|
+
* eternal put those instructions into every other conversation's prompt.
|
|
57
|
+
* Passing it per build makes the block follow the conversation that is
|
|
58
|
+
* actually in that mode. Omitted keeps the host's process-wide answer, which
|
|
59
|
+
* is the only one a CLI or TUI has.
|
|
60
|
+
*/
|
|
61
|
+
autonomy?: string | undefined;
|
|
35
62
|
}
|
|
36
63
|
/**
|
|
37
64
|
* Stability regions for the system prompt.
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* Minimal paths object needed for config backup — just the global root
|
|
3
3
|
* from which we derive the backup history directory.
|
|
4
4
|
*/
|
|
5
|
-
|
|
5
|
+
interface ConfigBackupPaths {
|
|
6
6
|
globalRoot: string;
|
|
7
7
|
}
|
|
8
8
|
/**
|
|
@@ -11,10 +11,18 @@ export interface ConfigBackupPaths {
|
|
|
11
11
|
* recover from accidental changes. Backups are never cleaned up automatically.
|
|
12
12
|
*/
|
|
13
13
|
export declare function configHistoryDir(globalRoot: string): string;
|
|
14
|
+
/**
|
|
15
|
+
* Derive a human-readable slug for a config file path relative to the
|
|
16
|
+
* ~/.wrongstack root. Examples:
|
|
17
|
+
* config.json → config
|
|
18
|
+
* profiles/default/config.json → profiles-default-config
|
|
19
|
+
*/
|
|
20
|
+
export declare function configSlug(absolutePath: string, globalRoot: string): string;
|
|
14
21
|
/**
|
|
15
22
|
* Before overwriting a config file, save its current content to the
|
|
16
23
|
* config-history directory with a timestamp. Best-effort: failures are
|
|
17
24
|
* silently ignored so they never block the config write itself.
|
|
18
25
|
*/
|
|
19
26
|
export declare function backupConfigFile(filePath: string, paths: ConfigBackupPaths): Promise<void>;
|
|
27
|
+
export {};
|
|
20
28
|
//# sourceMappingURL=config-backup.d.ts.map
|
package/dist/utils/error.js
CHANGED
|
@@ -1,12 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
const err = new Error(label ? `Expected ${label} to be defined` : "Expected value to be defined");
|
|
5
|
-
err.name = "ExpectDefinedError";
|
|
6
|
-
throw err;
|
|
7
|
-
}
|
|
8
|
-
return value;
|
|
9
|
-
}
|
|
1
|
+
import {
|
|
2
|
+
expectDefined
|
|
3
|
+
} from "../chunk-PFZO3C6H.js";
|
|
10
4
|
export {
|
|
11
5
|
expectDefined
|
|
12
6
|
};
|