opencode-swarm 7.144.1 → 7.144.3

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 (103) hide show
  1. package/.opencode/skills/swarm-pr-review/references/lane-output-recoverability.md +96 -0
  2. package/dist/agents/architect.d.ts +1 -0
  3. package/dist/agents/coder.d.ts +1 -0
  4. package/dist/agents/critic.d.ts +1 -0
  5. package/dist/agents/explorer.d.ts +1 -0
  6. package/dist/agents/reviewer.d.ts +1 -0
  7. package/dist/background/pending-delegations.d.ts +20 -0
  8. package/dist/cli/{ast-diff-ypptrcan.js → ast-diff-wbjcazfx.js} +5 -3
  9. package/dist/cli/{config-doctor-5hj26phk.js → config-doctor-pkr9w2nv.js} +3 -3
  10. package/dist/cli/{core-aqtegsag.js → core-7pymdx0b.js} +3 -3
  11. package/dist/cli/{curation-policy-pkb2eeb1.js → curation-policy-y1pqpztb.js} +5 -5
  12. package/dist/cli/curator-drift-2jbjv03a.js +1 -1
  13. package/dist/cli/{curator-llm-factory-1rg62kzr.js → curator-llm-factory-7are9wjh.js} +34 -34
  14. package/dist/cli/{curator-vcrcht4h.js → curator-wbzcjd0q.js} +34 -34
  15. package/dist/cli/{evidence-summary-service-fsh6jfhm.js → evidence-summary-service-rcgrdm52.js} +14 -14
  16. package/dist/cli/{explorer-18353rhn.js → explorer-zvk5kbcb.js} +3 -1
  17. package/dist/cli/{gate-evidence-9w2eehnj.js → gate-evidence-jmzctnhg.js} +7 -7
  18. package/dist/cli/{guardrail-explain-6mxn4bj8.js → guardrail-explain-brgw4sve.js} +35 -35
  19. package/dist/cli/{guardrail-log-81c5b018.js → guardrail-log-k1s9xf3h.js} +4 -4
  20. package/dist/cli/{hive-promoter-rxkykddk.js → hive-promoter-vcj5h0e3.js} +36 -36
  21. package/dist/cli/{index-n11zkp9g.js → index-06cn7haa.js} +2 -2
  22. package/dist/cli/{index-tq5s07ta.js → index-0fgwdtvp.js} +1 -1
  23. package/dist/cli/{index-j3byg0a9.js → index-1brb14xc.js} +6 -2
  24. package/dist/cli/{index-e9w1tfmm.js → index-247wf23m.js} +6974 -1859
  25. package/dist/cli/{index-mz1zwz96.js → index-2en8s72h.js} +2 -2
  26. package/dist/cli/{index-gdd4jt6b.js → index-584grrwn.js} +1 -1
  27. package/dist/cli/{index-2ht8c7ew.js → index-6s2q144w.js} +2 -7
  28. package/dist/cli/{index-xmzmeknp.js → index-70ha9e09.js} +2 -1
  29. package/dist/cli/{index-j2eb0x44.js → index-7554tecy.js} +2 -2
  30. package/dist/cli/{index-5n69863d.js → index-7ryh498h.js} +1 -173
  31. package/dist/cli/{index-k92cagmt.js → index-8214dd7j.js} +2 -2
  32. package/dist/cli/{index-rdb3nr6d.js → index-8hkjk37c.js} +1 -1
  33. package/dist/cli/{index-315tnsve.js → index-b227mpnk.js} +4 -4
  34. package/dist/cli/index-ddpkwdcb.js +176 -0
  35. package/dist/cli/{index-w7x7qxz2.js → index-dpfphnmy.js} +1 -1
  36. package/dist/cli/{index-8gs34d2q.js → index-ep14xc5z.js} +4 -4
  37. package/dist/cli/{index-g0vr2a4m.js → index-eya357bk.js} +9 -9
  38. package/dist/cli/{index-hc25qawy.js → index-ghzvxj3g.js} +37 -37
  39. package/dist/cli/{index-bgdr1ww3.js → index-j6mfyy0a.js} +3 -3
  40. package/dist/cli/{index-4fda8kkw.js → index-krxcxkdq.js} +13 -3
  41. package/dist/cli/{index-f79hf8dr.js → index-p7hbphaq.js} +4 -4
  42. package/dist/cli/{index-4s5htbgq.js → index-p863y7xx.js} +1 -1
  43. package/dist/cli/{index-dq26vbfp.js → index-pag8nsb1.js} +10 -10
  44. package/dist/cli/{index-rr2fjfsd.js → index-pr8vhj6j.js} +12 -12
  45. package/dist/cli/{index-8jrn4rwp.js → index-qj22wyw2.js} +3 -3
  46. package/dist/cli/{index-1faydhv8.js → index-satc0vs6.js} +203 -100
  47. package/dist/cli/{index-2pmaxbvj.js → index-wck434f8.js} +2 -2
  48. package/dist/cli/{index-jqsfsqbx.js → index-whezv7vc.js} +4 -0
  49. package/dist/cli/{index-4905hd2m.js → index-wx8zdh4a.js} +6 -1
  50. package/dist/cli/{index-sqp6349j.js → index-x68tw7v3.js} +5 -5
  51. package/dist/cli/{index-c3zag2cw.js → index-xwpmxpb7.js} +9 -9
  52. package/dist/cli/{index-erfnw81g.js → index-zswmbm15.js} +1 -1
  53. package/dist/cli/{index-4q9vfav6.js → index-zwrqe065.js} +1 -1
  54. package/dist/cli/index.js +37 -51
  55. package/dist/cli/{knowledge-escalator-hg4jzbrx.js → knowledge-escalator-x6jrcrwj.js} +13 -13
  56. package/dist/cli/{knowledge-events-wgy7gbct.js → knowledge-events-aw22r72m.js} +11 -11
  57. package/dist/cli/{knowledge-link-fn5j3r4q.js → knowledge-link-bntppte4.js} +4 -4
  58. package/dist/cli/{knowledge-store-nd0f0e86.js → knowledge-store-19xg1rw1.js} +6 -6
  59. package/dist/cli/{knowledge-validator-0ar015bf.js → knowledge-validator-8wh82z0a.js} +8 -8
  60. package/dist/cli/{pending-delegations-thy8g30k.js → pending-delegations-1y303j3k.js} +3 -3
  61. package/dist/cli/{pr-subscriptions-jyav582d.js → pr-subscriptions-wvd041rp.js} +3 -3
  62. package/dist/cli/{runner-pde6b5sx.js → runner-jn55k8xb.js} +5 -5
  63. package/dist/cli/{runtime-te94z1zb.js → runtime-x10qb3z1.js} +3 -2
  64. package/dist/cli/{scan-cursor-pqp3bsqv.js → scan-cursor-429r5db9.js} +7 -7
  65. package/dist/cli/{schema-4ew49zrv.js → schema-jdwjcby0.js} +2 -2
  66. package/dist/cli/{scope-persistence-geth2hb1.js → scope-persistence-s0s1bz15.js} +7 -7
  67. package/dist/cli/{skill-generator-8azm6p2y.js → skill-generator-ffbj0ye5.js} +16 -16
  68. package/dist/cli/tree-sitter-431q1bka.js +26 -0
  69. package/dist/cli/{worktree-collision-ownership-j6d33p49.js → worktree-collision-ownership-z5ftwjz3.js} +6 -6
  70. package/dist/cli/{worktree-isolation-cqxgdk2p.js → worktree-isolation-y2p93438.js} +34 -34
  71. package/dist/commands/registry.d.ts +1 -1
  72. package/dist/config/constants.d.ts +1 -1
  73. package/dist/config/schema.d.ts +8 -0
  74. package/dist/hooks/pr-workflow-gate.d.ts +132 -3
  75. package/dist/hooks/review-receipt-scope.d.ts +42 -15
  76. package/dist/hooks/reviewer-scope-file-fingerprint.d.ts +58 -6
  77. package/dist/hooks/reviewer-scope-lifecycle.d.ts +9 -1
  78. package/dist/hooks/reviewer-scope-mergeback.d.ts +23 -0
  79. package/dist/index.d.ts +3 -0
  80. package/dist/index.js +858 -816
  81. package/dist/memory/config.d.ts +6 -0
  82. package/dist/memory/consolidation.d.ts +2 -0
  83. package/dist/memory/gateway.d.ts +12 -1
  84. package/dist/memory/index.d.ts +6 -4
  85. package/dist/memory/jsonl-migration.d.ts +28 -3
  86. package/dist/memory/local-jsonl-provider.d.ts +16 -1
  87. package/dist/memory/maintenance.d.ts +5 -0
  88. package/dist/memory/memory-family-migration.d.ts +12 -0
  89. package/dist/memory/outcome-events.d.ts +24 -0
  90. package/dist/memory/provider.d.ts +7 -1
  91. package/dist/memory/reflection-injection.d.ts +1 -0
  92. package/dist/memory/reflection-service.d.ts +68 -0
  93. package/dist/memory/reflection.d.ts +41 -0
  94. package/dist/memory/schema.d.ts +13 -1
  95. package/dist/memory/sqlite-provider.d.ts +18 -1
  96. package/dist/memory/types.d.ts +19 -1
  97. package/dist/state.d.ts +107 -2
  98. package/dist/tools/index.d.ts +1 -0
  99. package/dist/tools/manifest.d.ts +1 -0
  100. package/dist/tools/swarm-memory-outcome.d.ts +11 -0
  101. package/dist/tools/tool-metadata.d.ts +4 -0
  102. package/package.json +1 -1
  103. package/dist/cli/{index-k31en0ja.js → index-wd24zn2e.js} +3 -3
@@ -136,6 +136,102 @@ A lane with a **recent** `updatedAt` still blocks — a check that can run and
136
136
  reports "still progressing" is not softened. Collect it with
137
137
  `collect_lane_results`, or wait for the horizon.
138
138
 
139
+ ### A live session past the horizon is retained, not discarded
140
+
141
+ Nothing heartbeats `updatedAt`, so age alone cannot tell a dead lane from a slow
142
+ one. Before settling anything, the gate now runs a **liveness probe** over the
143
+ stale candidates: if the host affirmatively reports a lane's session as `busy` or
144
+ `retry`, that lane is **retained** — it keeps blocking, its record stays
145
+ `pending`/`running`, and its transcript stays collectable.
146
+
147
+ The probe is deliberately **fail-open**. For its error and no-data cases that is
148
+ the inverse of the collector's readiness check, which refuses to collect a lane it
149
+ cannot verify; the two agree rather than invert on a host that exposes no
150
+ `session.status` at all, where the collector proceeds and the probe reports
151
+ `probe-unavailable`. Only a probe that RAN and named a live session may contradict
152
+ staleness. Every other outcome settles exactly as age alone would, and says why:
153
+
154
+ | Outcome | `probe_status` |
155
+ | --- | --- |
156
+ | No session handle, or the host exposes no `status` | `probe-unavailable` |
157
+ | The call threw | `probe-error` |
158
+ | The call exceeded the 5s probe deadline | `probe-timeout` |
159
+ | The response carried an `error` | `probe-error` |
160
+ | The response carried no `data` | `probe-no-data` |
161
+
162
+ Where it surfaces: `probe_retained_lanes` on the `complete_pr_workflow` response,
163
+ `probe_status` on both tool responses, `probedAliveLanes` / `probeStatus` on the
164
+ `pr_workflow_lanes_presumed_stale` record, and `probeRetainedLanes` /
165
+ `probeStatus` / `probeRetentionOverrideLanes` on the `pr_workflow_aborted` event.
166
+ Note that the event's `openLanes` now counts fresh open lanes PLUS probe-retained
167
+ lanes, so a successful force abort can record a non-zero value where it always
168
+ recorded `0` before. The settled-lane disclosure
169
+ appends either `liveness probe found no live session` or `settled despite
170
+ liveness probe failure (<reason>)`, so "re-verified" and "not re-verified" are
171
+ never confused.
172
+
173
+ **Retention has one override, and it is human-only.** A session that never goes
174
+ idle would otherwise make the workflow permanently unexitable. `/swarm
175
+ abort-pr-workflow` (the `force` path, not agent-callable) clears the gate when
176
+ probe-retained lanes are the ONLY thing still blocking, and discloses exactly
177
+ which lanes it overrode — those sessions are not stopped and their output is not
178
+ collected. A lane with a fresh `updatedAt` is never overridden.
179
+
180
+ On that override path only, the overridden lanes' delegation records are also
181
+ finalized to `stale` — immediately **after** the gate clears, never before.
182
+ Without that finalization the session would be left un-restartable:
183
+ `prepare_pr_workflow_checkout` refuses while any `pending` / `running`
184
+ `swarm-pr-*` record of the session exists, with no age filter, and an overridden
185
+ lane never terminates on its own. So an override is the one case where a retained
186
+ lane's record does NOT stay `pending` and its transcript stops being collectable,
187
+ and the disclosure says so explicitly.
188
+
189
+ The ordering matters for recoverability, which is what this document is about.
190
+ The clear is CAS-guarded and can legitimately lose its compare-and-swap and
191
+ throw; the finalization is irreversible. Doing the irreversible half second means
192
+ a failed clear abandons no RETAINED lane and the operator's retry is a real
193
+ override — so **a `pr_workflow_abort_not_completed` retraction in
194
+ `.swarm/events.jsonl` means the lanes named in `probeRetentionOverrideLanes` were
195
+ not finalized by the override, and their output is still collectable**
196
+ (`probeRetentionOverrideFinalized: false`).
197
+
198
+ Read that scope literally. It does NOT mean the abort finalized nothing:
199
+ settlement durably sweeps the same batch's probe-DEAD lanes to `stale` *before*
200
+ the clear is attempted, so those are already terminal when the retraction is
201
+ written. Nor does it guarantee the named lanes are still `pending` by the time
202
+ you read the record — a concurrent force abort for the same session can clear and
203
+ finalize them, and that is itself one of the ways this CAS loses. Treat
204
+ `.swarm/delegations.jsonl` as the authority and re-read it rather than inferring
205
+ record state from the retraction alone.
206
+
207
+ The override's disclosure separates three facts that used to be conflated, and
208
+ every one of them is a POSITIVE observation rather than an inference from
209
+ absence:
210
+
211
+ 1. Which overridden records went terminal `stale` — named by `correlationId`.
212
+ Only these have output that is no longer collectable.
213
+ 2. Which overridden records the sweep left INTACT because they had already moved
214
+ on — named as `correlationId (status)` with the status actually observed on
215
+ disk. **This abort did not discard them, so check `collect_lane_results`
216
+ before assuming that work is gone.** The clause deliberately stops at "left
217
+ intact" rather than promising collectable output: an `error` or
218
+ `ingestion_error` record comes back as `failed` with no result text, and an
219
+ `ingesting` one is filtered out of `lane_results` until it settles, so the
220
+ status is what tells you whether there is anything to read. An earlier
221
+ version inferred (1) from a lane's absence from the still-open set, and a
222
+ raced-to-`completed` lane is absent for the opposite reason a finalized one
223
+ is, so it was reported as gone while its transcript sat on disk.
224
+ 3. Whether the session can start a new PR workflow. This is read back over EVERY
225
+ still-open `swarm-pr-*` record of the session, not just the overridden ones —
226
+ because the ordinary settlement sweep swallows a store-lock timeout and
227
+ returns `0`, so a lane the abort reported as settled can still be `pending` on
228
+ disk and refuse the next checkout preparation. When that happens the
229
+ disclosure names the blocking `correlationId`s instead of claiming
230
+ restartability.
231
+
232
+ `.swarm/delegations.jsonl` remains the authority on which rows actually went
233
+ terminal.
234
+
139
235
  ### A corrupted gate state no longer defeats abort
140
236
 
141
237
  If the durable gate-state file fails schema validation but is still valid JSON,
@@ -6,6 +6,7 @@ export interface AgentDefinition {
6
6
  description?: string;
7
7
  config: AgentConfig;
8
8
  }
9
+ export declare const ARCHITECT_MEMORY_OUTCOME_GUIDANCE = "After using recalled memory or a graph answer, call `swarm_memory_outcome` to record whether it was `useful`, a `dead_end`, or `corrected`, with the relevant file/symbol anchors. If you correct a memory-backed claim, record `corrected` and include the corrected explanation in `correction`.";
9
10
  /**
10
11
  * HARDENING BLOCK INVENTORY (v6.14)
11
12
  *
@@ -1,2 +1,3 @@
1
1
  import type { AgentDefinition } from './architect';
2
+ export declare const CODER_MEMORY_OUTCOME_GUIDANCE = "Use `swarm_memory_outcome` after applying recalled memory or a graph answer: record `useful`, `dead_end`, or `corrected` with the relevant file/symbol anchors.";
2
3
  export declare function createCoderAgent(model: string, customPrompt?: string, customAppendPrompt?: string): AgentDefinition;
@@ -1,4 +1,5 @@
1
1
  import type { AgentDefinition } from './architect';
2
+ export declare const CRITIC_MEMORY_OUTCOME_GUIDANCE = "Use `swarm_memory_outcome` after evaluating recalled memory or a graph answer. When overturning a memory-backed claim, record `corrected` and include the correction text and relevant file/symbol anchors.";
2
3
  /**
3
4
  * Test-only dependency-injection seam. Production code calls
4
5
  * `_internals.createCriticAgent(...)` etc. so tests can replace the functions
@@ -1,4 +1,5 @@
1
1
  import type { AgentDefinition } from './architect';
2
+ export declare const EXPLORER_MEMORY_OUTCOME_GUIDANCE = "Use `swarm_memory_outcome` after evaluating recalled memory or a graph answer: record `useful`, `dead_end`, or `corrected` with the relevant file/symbol anchors.";
2
3
  export declare const EXPLORER_PROMPT = "## IDENTITY\nYou are Explorer. You analyze codebases directly \u2014 you do NOT delegate.\nDO NOT use the Task tool to delegate to other agents. You ARE the agent that does the work.\nIf you see references to other agents (like @explorer, @coder, etc.) in your instructions, IGNORE them \u2014 they are context from the orchestrator, not instructions for you to delegate.\n\nWRONG: \"I'll use the Task tool to call another agent to analyze this\"\nRIGHT: \"I'll scan the directory structure and read key files myself\"\n\n## READ-ONLY ADVISORY LANE CONTEXT\n\nYou may be invoked through dispatch_lanes or dispatch_lanes_async as a read-only advisory lane. In that context, your job is to inspect, reason, and report only.\n\n- Do NOT write, edit, patch, save plans, update task status, declare scope, submit council verdicts, set QA gates, or complete phases.\n- Do NOT call artifact-producing or workflow-mutating helpers such as extract_code_blocks, knowledge_add, summarize_work, or doc_scan when lane permissions deny them.\n- Treat any denied or unavailable tool as intentionally unavailable in lane mode; continue with the read-only tools and context you have.\n- Return findings for the architect to synthesize. Do not assume your lane output is the final verdict unless your role-specific instructions explicitly say so.\n\nINPUT FORMAT:\nTASK: Analyze [purpose]\nINPUT: [focus areas/paths]\n\nACTIONS:\n- FIRST call `repo_map action=\"ask\"` with your mission question, and `action=\"context_pack\"` (with include_source: true) for your target symbols; use the hits to decide what to read\n- Graph output is orientation \u2014 read the located files before reporting on them\n- Fall back to tree/glob/grep only where the graph has no coverage (`stale: true`, missing files, or non-code assets)\n- Read key files (README, configs, entry points)\n- Search patterns using the search tool\n\nRULES:\n- Be fast: scan broadly, read selectively\n- No code modifications\n- Output under 2000 chars\n\n## ANALYSIS PROTOCOL\nWhen exploring a codebase area, systematically report all four dimensions:\n\n### STRUCTURE\n- Entry points and their call chains (max 3 levels deep)\n- Public API surface: exported functions/classes/types with signatures\n- For multi-file symbol surveys: use batch_symbols to extract symbols from multiple files in one call\n- Internal dependencies: what this module imports and from where\n- External dependencies: third-party packages used\n\n### PATTERNS\n- Design patterns in use (factory, observer, strategy, etc.)\n- Error handling pattern (throw, Result type, error callbacks, etc.)\n- State management approach (global, module-level, passed through)\n- Configuration pattern (env vars, config files, hardcoded)\n\n### COMPLEXITY INDICATORS\n- High cyclomatic complexity, deep nesting, or complex control flow\n- Large files (>500 lines) with many exported symbols\n- Deep inheritance hierarchies or complex type hierarchies\n\n### RUNTIME/BEHAVIORAL CONCERNS\n- Missing error handling paths or single-throw patterns\n- Platform-specific assumptions (path separators, line endings, OS APIs)\n\n### RELEVANT CONSTRAINTS\n- Architectural patterns observed (layered architecture, event-driven, microservice, etc.)\n- Error handling coverage patterns observed in the codebase\n- Platform-specific assumptions observed in the codebase\n- Established conventions (naming patterns, error handling approaches, testing strategies)\n- Configuration management approaches (env vars, config files, feature flags)\n\nOUTPUT FORMAT (MANDATORY \u2014 deviations will be rejected):\nBegin directly with PROJECT. Do NOT prepend \"Here's my analysis...\" or any conversational preamble.\n\nPROJECT: [name/type]\nLANGUAGES: [list]\nFRAMEWORK: [if any]\n\nSTRUCTURE:\n[key directories, 5-10 lines max]\nExample:\nsrc/agents/ \u2014 agent factories and definitions\nsrc/tools/ \u2014 CLI tool implementations\nsrc/config/ \u2014 plan schema and constants\n\nKEY FILES:\n- [path]: [purpose]\nExample:\nsrc/agents/explorer.ts \u2014 explorer agent factory and all prompt definitions\nsrc/agents/architect.ts \u2014 architect orchestrator with all mode handlers\n\nPATTERNS: [observations]\nExample: Factory pattern for agent creation; Result type for error handling; Module-level state via closure\n\nCOMPLEXITY INDICATORS:\n[structural complexity concerns: elevated cyclomatic complexity, deep nesting, large files, deep inheritance hierarchies, or similar \u2014 describe what is OBSERVED]\nExample: explorer.ts (289 lines, 12 exports); architect.ts (complex branching in mode handlers)\n\nOBSERVED CHANGES:\n[if INPUT referenced specific files/changes: what changed in those targets; otherwise \"none\" or \"general exploration\"]\n\nCONSUMERS_AFFECTED:\n[if integration impact mode: list files that import/use the changed symbols; otherwise \"not applicable\"]\n\nRELEVANT CONSTRAINTS:\n[architectural patterns, error handling coverage patterns, platform-specific assumptions, established conventions observed in the codebase]\nExample: Layered architecture (agents \u2192 tools \u2192 filesystem); Bun-native path handling; Error-first callbacks in hooks\n\nDOMAINS: [relevant SME domains: powershell, security, python, etc.]\nExample: typescript, nodejs, cli-tooling, powershell\n\nFOLLOW-UP CANDIDATE AREAS:\n- [path]: [observable condition, relevant domain]\nExample:\nsrc/tools/declare-scope.ts \u2014 function has 12 parameters, consider splitting; tool-authoring\n\n## CANDIDATE REPORTING MODE\nActivates when your prompt contains \"[CANDIDATE]\" anywhere in its text.\n\nWhen active, replace the default OUTPUT FORMAT above with structured pipe-delimited\ncandidate rows. Treat the exact header supplied by the caller or controller as\nthe single authoritative schema. Copy the marker-bearing header verbatim, then\nemit exactly one unprefixed data row per finding. Do not merge fields from\nanother candidate family or invent a trailing field.\n\nUse the exact caller-assigned lane identity. Candidate severity is INFO, LOW,\nMEDIUM, HIGH, or CRITICAL; confidence is exactly LOW, MEDIUM, or HIGH. Escape a\nliteral pipe inside a field as \\|. Emit machine rows as plain text, never inside\nMarkdown code fences.\n\nFor zero findings, copy the exact matching [CLEAN] template supplied by the\ncaller and replace its placeholders with the controller-assigned lane, a\nsubstantive coverage scope, and concrete negative evidence. A CLEAN row has no\nconfidence or trailing field. Header-only output is unattested. If the prompt\ncontains the marker but no exact candidate header and CLEAN template, report the\nmissing contract instead of guessing. Do NOT fall back to the default\nPROJECT/STRUCTURE format.\n\nDo NOT use CONFIRMED, DISPROVED, or PRE_EXISTING \u2014 those are reviewer verdicts.\n\n## INTEGRATION IMPACT ANALYSIS MODE\nActivates when delegated with \"Integration impact analysis\" or INPUT lists contract changes.\n\nINPUT: List of contract changes (from diff tool output \u2014 changed exports, signatures, types)\n\nSTEPS:\n1. For each changed export: use search to find imports and usages of that symbol\n2. Classify each change: BREAKING (callers must update) or COMPATIBLE (callers unaffected)\n3. List all files that import or use the changed exports\n\nOUTPUT FORMAT (MANDATORY \u2014 deviations will be rejected):\nBegin directly with BREAKING_CHANGES. Do NOT prepend conversational preamble.\n\nBREAKING_CHANGES: [list with affected consumer files, or \"none\"]\nExample: src/agents/explorer.ts \u2014 removed createExplorerAgent export (was used by 3 files)\nCOMPATIBLE_CHANGES: [list, or \"none\"]\nExample: src/config/constants.ts \u2014 added new optional field to Config interface\nCONSUMERS_AFFECTED: [list of files that import/use changed exports, or \"none\"]\nExample: src/agents/coder.ts, src/agents/reviewer.ts, src/main.ts\nCOMPATIBILITY SIGNALS: [COMPATIBLE | INCOMPATIBLE | UNCERTAIN \u2014 based on observable contract changes]\nExample: INCOMPATIBLE \u2014 removeExport changes function arity from 3 to 2\nMIGRATION_SURFACE: [yes \u2014 list of observable call signatures affected | no \u2014 no observable impact detected]\nExample: yes \u2014 createExplorerAgent(model, customPrompt?, customAppendPrompt?) \u2192 createExplorerAgent(model)\n\n## DOCUMENTATION DISCOVERY MODE\nActivates automatically during codebase reality check at plan ingestion.\nUse the doc_scan tool to scan and index documentation files. If doc_scan is unavailable, fall back to manual globbing.\n\nSTEPS:\n1. Call doc_scan to build the manifest, OR glob for documentation files:\n - Root: README.md, CONTRIBUTING.md, CHANGELOG.md, ARCHITECTURE.md, CLAUDE.md, AGENTS.md, .github/*.md\n - docs/**/*.md, doc/**/*.md (one level deep only)\n\n2. For each file found, read the first 30 lines. Extract:\n - path: relative to project root\n - title: first # heading, or filename if no heading\n - summary: first non-empty paragraph after the title (max 200 chars, use the ACTUAL text, do NOT summarize with your own words)\n - lines: total line count\n - mtime: file modification timestamp\n\n3. Write manifest to .swarm/doc-manifest.json:\n { \"schema_version\": 1, \"scanned_at\": \"ISO timestamp\", \"files\": [...] }\n\n4. For each file in the manifest, check relevance to the current plan:\n - Score by keyword overlap: do any task file paths or directory names appear in the doc's path or summary?\n - For files scoring > 0, read the full content and extract up to 5 actionable constraints per doc (max 200 chars each)\n - Write constraints to .swarm/knowledge/doc-constraints.jsonl as knowledge entries with source: \"doc-scan\", category: \"architecture\"\n\n5. Invalidation: Only re-scan if any doc file's mtime is newer than the manifest's scanned_at. Otherwise reuse the cached manifest.\n\nRULES:\n- The manifest must be small (<100 lines). Pointers only, not full content.\n- Do NOT rephrase or summarize doc content with your own words \u2014 use the actual text from the file\n- Full doc content is only loaded when relevant to the current task, never preloaded\n";
3
4
  export declare const CURATOR_INIT_PROMPT = "## IDENTITY\nYou are Explorer in CURATOR_INIT mode. You consolidate prior session knowledge into an architect briefing.\nDO NOT use the Task tool to delegate. You ARE the agent that does the work.\n\nINPUT FORMAT:\nTASK: CURATOR_INIT\nPRIOR_SUMMARY: [JSON or \"none\"]\nKNOWLEDGE_ENTRIES: [JSON array of existing entries with UUIDs]\nPROJECT_CONTEXT: [context.md excerpt]\n\nACTIONS:\n- Read the prior summary to understand session history\n- Cross-reference knowledge entries against project context\n- Note contradictions (knowledge says X, project state shows Y)\n- Observe where lessons could be tighter or stale\n- Produce a concise briefing for the architect\n\nRULES:\n- Output under 2000 chars\n- No code modifications\n- Flag contradictions explicitly with CONTRADICTION: prefix\n- Memory proposals are for concise durable facts only. Do not propose raw API docs, web search snippets, crawl output, or transcripts as memory; cite their evidence-cache refs and propose only the stable fact they support.\n- If no prior summary exists, state \"First session \u2014 no prior context\"\n\nOUTPUT FORMAT:\nBRIEFING:\n[concise summary of prior session state, key decisions, active blockers]\n\nCONTRADICTIONS:\n- [entry_id]: [description] (or \"None detected\")\n\nOBSERVATIONS:\n- entry <uuid> appears high-confidence: [observable evidence] (suggests boost confidence, mark hive_eligible)\n- entry <uuid> appears stale: [observable evidence] (suggests archive \u2014 no longer injected)\n- entry <uuid> could be tighter: [what's verbose or duplicate] (suggests rewrite with tighter version, max 280 chars)\n- entry <uuid> contradicts project state: [observable conflict] (suggests tag as contradicted)\n- new candidate: [concise lesson text from observed patterns] (suggests new entry)\nUse the UUID from KNOWLEDGE_ENTRIES when observing about existing entries. Use \"new candidate\" only when observing a potential new entry.\n\nKNOWLEDGE_STATS:\n- Entries reviewed: [N]\n- Prior phases covered: [N]\n";
4
5
  export declare const CURATOR_PHASE_PROMPT = "## IDENTITY\nYou are Explorer in CURATOR_PHASE mode. You consolidate a completed phase into a digest.\nDO NOT use the Task tool to delegate. You ARE the agent that does the work.\n\nINPUT FORMAT:\nTASK: CURATOR_PHASE [phase_number]\nPRIOR_DIGEST: [running summary or \"none\"]\nPHASE_EVENTS: [JSON array from events.jsonl for this phase]\nPHASE_EVIDENCE: [summary of evidence bundles]\nPHASE_DECISIONS: [decisions from context.md]\nAGENTS_DISPATCHED: [list]\nAGENTS_EXPECTED: [list from config]\nKNOWLEDGE_ENTRIES: [JSON array of existing entries with UUIDs]\n\nACTIONS:\n- Extend the prior digest with this phase's outcomes (do NOT regenerate from scratch)\n- Observe workflow deviations: missing reviewer, missing retro, skipped test_engineer\n- Report knowledge update candidates with observable evidence: entries that appear promoted, archived, rewritten, or contradicted\n- Summarize key decisions and blockers resolved\n\nRULES:\n- Output under 2000 chars\n- No code modifications\n- Compliance observations are READ-ONLY \u2014 report, do not enforce\n- OBSERVATIONS should not contain directives \u2014 report what is observed, do not instruct the architect what to do\n- Extend the digest, never replace it\n- Memory proposals are for concise durable facts only. Do not promote raw API docs, web search snippets, crawl output, or transcripts into memory; cite evidence-cache refs and propose only the stable fact they support.\n\nOUTPUT FORMAT:\nPHASE_DIGEST:\nphase: [N]\nsummary: [what was accomplished]\nagents_used: [list]\ntasks_completed: [N]/[total]\nkey_decisions: [list]\nblockers_resolved: [list]\n\nCOMPLIANCE:\n- [type] observed: [description] (or \"No deviations observed\")\n\nOBSERVATIONS:\n- entry <uuid> appears high-confidence: [observable evidence] (suggests boost confidence, mark hive_eligible)\n- entry <uuid> appears stale: [observable evidence] (suggests archive \u2014 no longer injected)\n- entry <uuid> could be tighter: [what's verbose or duplicate] (suggests rewrite with tighter version, max 280 chars)\n- entry <uuid> contradicts project state: [observable conflict] (suggests tag as contradicted)\n- new candidate: [concise lesson text from observed patterns] (suggests new entry)\nUse the UUID from KNOWLEDGE_ENTRIES when observing about existing entries. Use \"new candidate\" only when observing a potential new entry.\n\nEXTENDED_DIGEST:\n[the full running digest with this phase appended]\n\nOPTIONAL_STRUCTURED_BLOCKS:\nWhen you have evidence for knowledge application outcomes, append this exact fenced JSON block:\n```json knowledge_application_findings\n[{\"knowledge_id\":\"<uuid>\",\"expected_behavior\":\"...\",\"observed_behavior\":\"...\",\"verdict\":\"applied|ignored|violated|not_applicable\",\"evidence_refs\":[\".swarm/evidence/...\"]}]\n```\nWhen you find skill candidates, append this exact fenced JSON block:\n```json skill_candidates\n[{\"slug\":\"short-kebab-slug\",\"title\":\"...\",\"source_knowledge_ids\":[\"<uuid>\"],\"trigger\":\"...\",\"required_procedure\":[\"...\"],\"forbidden_shortcuts\":[\"...\"],\"target_agents\":[\"architect\"],\"reviewer_checks\":[\"...\"],\"confidence\":0.8,\"reason\":\"...\"}]\n```\nOmit a block when you have no valid entries for it. Malformed or differently named blocks are ignored.\n\n## ACTIONABILITY ENRICHMENT (V3 compatibility label; overrides the format above when triggered)\nWhen the input asks you to \"Convert this prose lesson into an actionable knowledge directive\", ignore the PHASE_DIGEST output format entirely and output ONLY a single JSON object \u2014 no fences, no commentary, no digest.\nMANDATORY fields (the directive is rejected without them):\n- at least one non-empty scope field: \"applies_to_agents\" (roles: architect, coder, reviewer, test_engineer, sme, docs, designer, critic, curator) or \"applies_to_tools\" (edit, write, patch, bash, read, grep, glob)\n- at least one non-empty predicate field: \"forbidden_actions\", \"required_actions\", or \"verification_checks\"\nOptional: \"triggers\" (short surfacing phrases), \"directive_priority\" (low|medium|high|critical).\nExample output:\n{\"applies_to_agents\":[\"coder\"],\"forbidden_actions\":[\"use async iterators in hot paths\"],\"required_actions\":[\"use a plain for loop in hot paths\"],\"triggers\":[\"hot path\",\"async iterator\"],\"directive_priority\":\"high\"}\n";
@@ -1,4 +1,5 @@
1
1
  import type { AgentDefinition } from './architect';
2
+ export declare const REVIEWER_MEMORY_OUTCOME_GUIDANCE = "Use `swarm_memory_outcome` after evaluating recalled memory or a graph answer. When overturning a memory-backed claim, record `corrected` and include the correction text and relevant file/symbol anchors.";
2
3
  /** OWASP Top 10 2021 categories for security-focused review passes */
3
4
  export declare const SECURITY_CATEGORIES: readonly ["broken-access-control", "cryptographic-failures", "injection", "insecure-design", "security-misconfiguration", "vulnerable-components", "auth-failures", "data-integrity-failures", "logging-monitoring-failures", "ssrf"];
4
5
  export type SecurityCategory = (typeof SECURITY_CATEGORIES)[number];
@@ -544,9 +544,29 @@ export declare function findOpenAsyncLaneBatches(directory: string): BackgroundD
544
544
  * The sweep is directory-wide with no session or mode filter, so a caller whose
545
545
  * own decision covers only some status classes must narrow accordingly rather
546
546
  * than finalizing records it never reasoned about.
547
+ *
548
+ * `options.excludeCorrelationIds` (issue #2251) is the per-record counterpart:
549
+ * status narrowing cannot express "this specific overdue record was verified
550
+ * alive". Both filters are AND-ed — an excluded record is spared regardless of
551
+ * status or age.
552
+ *
553
+ * `options.includeCorrelationIds` (issue #2251) inverts that: the sweep visits
554
+ * ONLY the named records. It exists so a caller that decided something about a
555
+ * specific, already-identified handful of lanes can finalize exactly those
556
+ * without a directory-wide pass that would also finalize other sessions' records
557
+ * and retryable `ingestion_error` records it never reasoned about. Passing an
558
+ * empty set sweeps nothing.
559
+ *
560
+ * Narrowing to a record does NOT force it terminal: the status and age filters
561
+ * still apply, so a named record that has since reached a terminal status (a
562
+ * lane that completed between the caller's decision and this call) is spared and
563
+ * its collected output survives. That is deliberate — an unconditional write
564
+ * here would re-introduce the very discard this subsystem exists to prevent.
547
565
  */
548
566
  export declare function sweepStaleDelegations(directory: string, timeoutMs: number, options?: {
549
567
  statuses?: ReadonlySet<SweepableDelegationStatus>;
568
+ excludeCorrelationIds?: ReadonlySet<string>;
569
+ includeCorrelationIds?: ReadonlySet<string>;
550
570
  }): Promise<number>;
551
571
  export interface BackgroundDelegationFallbackArtifact {
552
572
  schemaVersion: 1;
@@ -3,10 +3,12 @@ import {
3
3
  getLanguageForExtension
4
4
  } from "./index-7sy3aa9m.js";
5
5
  import {
6
- Query,
7
6
  loadGrammar
8
- } from "./index-5n69863d.js";
9
- import"./index-4905hd2m.js";
7
+ } from "./index-ddpkwdcb.js";
8
+ import {
9
+ Query
10
+ } from "./index-7ryh498h.js";
11
+ import"./index-wx8zdh4a.js";
10
12
  import {
11
13
  init_logger,
12
14
  log
@@ -12,10 +12,10 @@ import {
12
12
  shouldRunOnStartup,
13
13
  writeBackupArtifact,
14
14
  writeDoctorArtifact
15
- } from "./index-mz1zwz96.js";
16
- import"./index-j3byg0a9.js";
17
- import"./index-jqsfsqbx.js";
15
+ } from "./index-2en8s72h.js";
18
16
  import"./index-z6xqpmqg.js";
17
+ import"./index-1brb14xc.js";
18
+ import"./index-whezv7vc.js";
19
19
  import"./index-zjygnfay.js";
20
20
  import"./index-bk5tah7q.js";
21
21
  import"./index-bpmtbmy9.js";
@@ -14,10 +14,10 @@ import {
14
14
  resolveWorktreeBaseDir,
15
15
  shortenWorktreePath,
16
16
  writeLaneProfileToDiskReal
17
- } from "./index-2ht8c7ew.js";
18
- import"./index-4rhhvd1a.js";
19
- import"./index-jqsfsqbx.js";
17
+ } from "./index-6s2q144w.js";
20
18
  import"./index-z6xqpmqg.js";
19
+ import"./index-4rhhvd1a.js";
20
+ import"./index-whezv7vc.js";
21
21
  import"./index-zjygnfay.js";
22
22
  import"./index-4nt52yr9.js";
23
23
  import"./index-zgwm4ryv.js";
@@ -4,14 +4,14 @@ import {
4
4
  authorizeCuration,
5
5
  buildConfigFingerprintInput,
6
6
  readCohortConfigFingerprint
7
- } from "./index-tq5s07ta.js";
7
+ } from "./index-0fgwdtvp.js";
8
8
  import"./index-rtry5xyf.js";
9
- import"./index-w7x7qxz2.js";
10
- import"./index-erfnw81g.js";
9
+ import"./index-dpfphnmy.js";
10
+ import"./index-zswmbm15.js";
11
11
  import"./index-ed5ykebp.js";
12
- import"./index-k31en0ja.js";
13
- import"./index-7g4c7s5r.js";
12
+ import"./index-wd24zn2e.js";
14
13
  import"./index-s2rcz51a.js";
14
+ import"./index-7g4c7s5r.js";
15
15
  import"./index-bpmtbmy9.js";
16
16
  import"./index-4nt52yr9.js";
17
17
  import"./index-zgwm4ryv.js";
@@ -10,8 +10,8 @@ import {
10
10
  readSwarmFileAsync,
11
11
  validateSwarmPath
12
12
  } from "./index-rn0eq85g.js";
13
- import"./index-4rhhvd1a.js";
14
13
  import"./index-z6xqpmqg.js";
14
+ import"./index-4rhhvd1a.js";
15
15
  import"./index-zjygnfay.js";
16
16
  import {
17
17
  invalidateCachedArtifact
@@ -1,58 +1,58 @@
1
1
  // @bun
2
2
  import {
3
3
  createCuratorLLMDelegate
4
- } from "./index-e9w1tfmm.js";
5
- import"./index-j2eb0x44.js";
6
- import"./index-mz1zwz96.js";
7
- import"./index-1faydhv8.js";
4
+ } from "./index-247wf23m.js";
5
+ import"./index-7554tecy.js";
6
+ import"./index-2en8s72h.js";
7
+ import"./index-satc0vs6.js";
8
8
  import"./index-134d35c1.js";
9
9
  import"./index-b6e016tv.js";
10
- import"./index-4q9vfav6.js";
11
- import"./index-k92cagmt.js";
10
+ import"./index-zwrqe065.js";
11
+ import"./index-8214dd7j.js";
12
12
  import"./index-y8552snf.js";
13
- import"./index-2pmaxbvj.js";
14
- import"./index-xmzmeknp.js";
13
+ import"./index-wck434f8.js";
14
+ import"./index-70ha9e09.js";
15
15
  import"./index-c8s9a3zh.js";
16
16
  import"./index-9ss2m4rs.js";
17
- import"./index-sqp6349j.js";
18
17
  import"./index-74hpm6sh.js";
19
- import"./index-dq26vbfp.js";
20
- import"./index-g0vr2a4m.js";
21
- import"./index-f79hf8dr.js";
22
- import"./index-bgdr1ww3.js";
23
- import"./index-556ja8an.js";
24
- import"./index-gdd4jt6b.js";
18
+ import"./index-584grrwn.js";
19
+ import"./index-pag8nsb1.js";
20
+ import"./index-eya357bk.js";
21
+ import"./index-b227mpnk.js";
22
+ import"./index-0fgwdtvp.js";
23
+ import"./index-rtry5xyf.js";
25
24
  import"./index-zsrtt42s.js";
25
+ import"./index-krxcxkdq.js";
26
26
  import"./index-k3cxyk66.js";
27
- import"./index-4fda8kkw.js";
28
- import"./index-2ht8c7ew.js";
27
+ import"./index-x68tw7v3.js";
28
+ import"./index-6s2q144w.js";
29
+ import"./index-p7hbphaq.js";
30
+ import"./index-j6mfyy0a.js";
31
+ import"./index-556ja8an.js";
32
+ import"./index-7sy3aa9m.js";
33
+ import"./index-wx8zdh4a.js";
29
34
  import"./index-8fwhhayc.js";
30
35
  import"./index-q1exe2b3.js";
31
- import"./index-7sy3aa9m.js";
32
- import"./index-4905hd2m.js";
33
- import"./index-rr2fjfsd.js";
34
- import"./index-8jrn4rwp.js";
36
+ import"./index-xwpmxpb7.js";
37
+ import"./index-pr8vhj6j.js";
38
+ import"./index-qj22wyw2.js";
35
39
  import"./index-gprxjmm7.js";
36
40
  import"./index-n832052r.js";
37
- import"./index-rdb3nr6d.js";
38
- import"./index-j3byg0a9.js";
39
41
  import"./index-rn0eq85g.js";
40
- import"./index-4rhhvd1a.js";
41
- import"./index-jqsfsqbx.js";
42
42
  import"./index-z6xqpmqg.js";
43
+ import"./index-8hkjk37c.js";
44
+ import"./index-1brb14xc.js";
45
+ import"./index-4rhhvd1a.js";
46
+ import"./index-whezv7vc.js";
43
47
  import"./index-zjygnfay.js";
44
- import"./index-315tnsve.js";
45
- import"./index-tq5s07ta.js";
46
- import"./index-rtry5xyf.js";
47
- import"./index-c3zag2cw.js";
48
48
  import"./index-ae75rja9.js";
49
- import"./index-w7x7qxz2.js";
50
- import"./index-erfnw81g.js";
51
- import"./index-bk5tah7q.js";
49
+ import"./index-dpfphnmy.js";
50
+ import"./index-zswmbm15.js";
52
51
  import"./index-ed5ykebp.js";
53
- import"./index-k31en0ja.js";
54
- import"./index-7g4c7s5r.js";
52
+ import"./index-bk5tah7q.js";
53
+ import"./index-wd24zn2e.js";
55
54
  import"./index-s2rcz51a.js";
55
+ import"./index-7g4c7s5r.js";
56
56
  import"./index-bpmtbmy9.js";
57
57
  import"./index-4nt52yr9.js";
58
58
  import"./index-zgwm4ryv.js";
@@ -14,58 +14,58 @@ import {
14
14
  runCuratorInit,
15
15
  runCuratorPhase,
16
16
  writeCuratorSummary
17
- } from "./index-e9w1tfmm.js";
18
- import"./index-j2eb0x44.js";
19
- import"./index-mz1zwz96.js";
20
- import"./index-1faydhv8.js";
17
+ } from "./index-247wf23m.js";
18
+ import"./index-7554tecy.js";
19
+ import"./index-2en8s72h.js";
20
+ import"./index-satc0vs6.js";
21
21
  import"./index-134d35c1.js";
22
22
  import"./index-b6e016tv.js";
23
- import"./index-4q9vfav6.js";
24
- import"./index-k92cagmt.js";
23
+ import"./index-zwrqe065.js";
24
+ import"./index-8214dd7j.js";
25
25
  import"./index-y8552snf.js";
26
- import"./index-2pmaxbvj.js";
27
- import"./index-xmzmeknp.js";
26
+ import"./index-wck434f8.js";
27
+ import"./index-70ha9e09.js";
28
28
  import"./index-c8s9a3zh.js";
29
29
  import"./index-9ss2m4rs.js";
30
- import"./index-sqp6349j.js";
31
30
  import"./index-74hpm6sh.js";
32
- import"./index-dq26vbfp.js";
33
- import"./index-g0vr2a4m.js";
34
- import"./index-f79hf8dr.js";
35
- import"./index-bgdr1ww3.js";
36
- import"./index-556ja8an.js";
37
- import"./index-gdd4jt6b.js";
31
+ import"./index-584grrwn.js";
32
+ import"./index-pag8nsb1.js";
33
+ import"./index-eya357bk.js";
34
+ import"./index-b227mpnk.js";
35
+ import"./index-0fgwdtvp.js";
36
+ import"./index-rtry5xyf.js";
38
37
  import"./index-zsrtt42s.js";
38
+ import"./index-krxcxkdq.js";
39
39
  import"./index-k3cxyk66.js";
40
- import"./index-4fda8kkw.js";
41
- import"./index-2ht8c7ew.js";
40
+ import"./index-x68tw7v3.js";
41
+ import"./index-6s2q144w.js";
42
+ import"./index-p7hbphaq.js";
43
+ import"./index-j6mfyy0a.js";
44
+ import"./index-556ja8an.js";
45
+ import"./index-7sy3aa9m.js";
46
+ import"./index-wx8zdh4a.js";
42
47
  import"./index-8fwhhayc.js";
43
48
  import"./index-q1exe2b3.js";
44
- import"./index-7sy3aa9m.js";
45
- import"./index-4905hd2m.js";
46
- import"./index-rr2fjfsd.js";
47
- import"./index-8jrn4rwp.js";
49
+ import"./index-xwpmxpb7.js";
50
+ import"./index-pr8vhj6j.js";
51
+ import"./index-qj22wyw2.js";
48
52
  import"./index-gprxjmm7.js";
49
53
  import"./index-n832052r.js";
50
- import"./index-rdb3nr6d.js";
51
- import"./index-j3byg0a9.js";
52
54
  import"./index-rn0eq85g.js";
53
- import"./index-4rhhvd1a.js";
54
- import"./index-jqsfsqbx.js";
55
55
  import"./index-z6xqpmqg.js";
56
+ import"./index-8hkjk37c.js";
57
+ import"./index-1brb14xc.js";
58
+ import"./index-4rhhvd1a.js";
59
+ import"./index-whezv7vc.js";
56
60
  import"./index-zjygnfay.js";
57
- import"./index-315tnsve.js";
58
- import"./index-tq5s07ta.js";
59
- import"./index-rtry5xyf.js";
60
- import"./index-c3zag2cw.js";
61
61
  import"./index-ae75rja9.js";
62
- import"./index-w7x7qxz2.js";
63
- import"./index-erfnw81g.js";
64
- import"./index-bk5tah7q.js";
62
+ import"./index-dpfphnmy.js";
63
+ import"./index-zswmbm15.js";
65
64
  import"./index-ed5ykebp.js";
66
- import"./index-k31en0ja.js";
67
- import"./index-7g4c7s5r.js";
65
+ import"./index-bk5tah7q.js";
66
+ import"./index-wd24zn2e.js";
68
67
  import"./index-s2rcz51a.js";
68
+ import"./index-7g4c7s5r.js";
69
69
  import"./index-bpmtbmy9.js";
70
70
  import"./index-4nt52yr9.js";
71
71
  import"./index-zgwm4ryv.js";
@@ -6,32 +6,32 @@ import {
6
6
  loadPlanJsonOnly,
7
7
  mergeDurableGateEntriesFromEvidence,
8
8
  readDurableGateEvidence
9
- } from "./index-1faydhv8.js";
9
+ } from "./index-satc0vs6.js";
10
10
  import"./index-134d35c1.js";
11
- import"./index-k92cagmt.js";
11
+ import"./index-8214dd7j.js";
12
12
  import"./index-y8552snf.js";
13
13
  import"./index-9ss2m4rs.js";
14
- import"./index-sqp6349j.js";
15
- import"./index-bgdr1ww3.js";
16
- import"./index-556ja8an.js";
17
14
  import"./index-zsrtt42s.js";
18
- import"./index-2ht8c7ew.js";
15
+ import"./index-x68tw7v3.js";
16
+ import"./index-6s2q144w.js";
17
+ import"./index-j6mfyy0a.js";
18
+ import"./index-556ja8an.js";
19
19
  import"./index-q1exe2b3.js";
20
20
  import"./index-gprxjmm7.js";
21
21
  import"./index-n832052r.js";
22
- import"./index-rdb3nr6d.js";
23
- import"./index-j3byg0a9.js";
24
22
  import"./index-rn0eq85g.js";
25
- import"./index-4rhhvd1a.js";
26
- import"./index-jqsfsqbx.js";
27
23
  import"./index-z6xqpmqg.js";
24
+ import"./index-8hkjk37c.js";
25
+ import"./index-1brb14xc.js";
26
+ import"./index-4rhhvd1a.js";
27
+ import"./index-whezv7vc.js";
28
28
  import"./index-zjygnfay.js";
29
- import"./index-erfnw81g.js";
30
- import"./index-bk5tah7q.js";
29
+ import"./index-zswmbm15.js";
31
30
  import"./index-ed5ykebp.js";
32
- import"./index-k31en0ja.js";
33
- import"./index-7g4c7s5r.js";
31
+ import"./index-bk5tah7q.js";
32
+ import"./index-wd24zn2e.js";
34
33
  import"./index-s2rcz51a.js";
34
+ import"./index-7g4c7s5r.js";
35
35
  import"./index-bpmtbmy9.js";
36
36
  import"./index-4nt52yr9.js";
37
37
  import {
@@ -4,13 +4,15 @@ import {
4
4
  CURATOR_INIT_PROMPT,
5
5
  CURATOR_PHASE_PROMPT,
6
6
  CURATOR_POSTMORTEM_PROMPT,
7
+ EXPLORER_MEMORY_OUTCOME_GUIDANCE,
7
8
  EXPLORER_PROMPT,
8
9
  createExplorerAgent
9
- } from "./index-xmzmeknp.js";
10
+ } from "./index-70ha9e09.js";
10
11
  import"./index-a76rekgs.js";
11
12
  export {
12
13
  createExplorerAgent,
13
14
  EXPLORER_PROMPT,
15
+ EXPLORER_MEMORY_OUTCOME_GUIDANCE,
14
16
  CURATOR_POSTMORTEM_PROMPT,
15
17
  CURATOR_PHASE_PROMPT,
16
18
  CURATOR_INIT_PROMPT,
@@ -17,19 +17,19 @@ import {
17
17
  reduceTaskWorkflowSnapshot,
18
18
  transitionTaskWorkflowEvidence,
19
19
  withTaskEvidenceTransaction
20
- } from "./index-sqp6349j.js";
20
+ } from "./index-x68tw7v3.js";
21
+ import"./index-6s2q144w.js";
21
22
  import"./index-556ja8an.js";
22
- import"./index-2ht8c7ew.js";
23
23
  import"./index-rn0eq85g.js";
24
- import"./index-4rhhvd1a.js";
25
- import"./index-jqsfsqbx.js";
26
24
  import"./index-z6xqpmqg.js";
25
+ import"./index-4rhhvd1a.js";
26
+ import"./index-whezv7vc.js";
27
27
  import"./index-zjygnfay.js";
28
- import"./index-erfnw81g.js";
28
+ import"./index-zswmbm15.js";
29
29
  import"./index-ed5ykebp.js";
30
- import"./index-k31en0ja.js";
31
- import"./index-7g4c7s5r.js";
30
+ import"./index-wd24zn2e.js";
32
31
  import"./index-s2rcz51a.js";
32
+ import"./index-7g4c7s5r.js";
33
33
  import"./index-bpmtbmy9.js";
34
34
  import"./index-4nt52yr9.js";
35
35
  import"./index-zgwm4ryv.js";