opencode-swarm 7.145.0 → 7.145.2
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/.opencode/skills/phase-wrap/SKILL.md +3 -2
- package/README.md +5 -1
- package/dist/background/workspace-snapshot.d.ts +29 -0
- package/dist/cli/{config-doctor-dzsv3pqy.js → config-doctor-j1r33f4q.js} +3 -3
- package/dist/cli/{core-qkh9me8x.js → core-c2zrd384.js} +4 -4
- package/dist/cli/{curation-policy-5x6346tf.js → curation-policy-xv0j8zyt.js} +6 -6
- package/dist/cli/{curator-zssndq5x.js → curator-gk2kmrk1.js} +31 -31
- package/dist/cli/{curator-llm-factory-q5p4578g.js → curator-llm-factory-sat3mn5n.js} +31 -31
- package/dist/cli/{evidence-summary-service-dqcpapj8.js → evidence-summary-service-0mhx0t0v.js} +14 -14
- package/dist/cli/{gate-evidence-bkdqryqg.js → gate-evidence-a5adh55x.js} +9 -9
- package/dist/cli/{guardrail-explain-kspf83x5.js → guardrail-explain-r50fery8.js} +32 -32
- package/dist/cli/{guardrail-log-qg4sq6gr.js → guardrail-log-p69eys6d.js} +4 -4
- package/dist/cli/{hive-promoter-3h7dhnek.js → hive-promoter-ay8a7sct.js} +31 -31
- package/dist/cli/{index-wk54ey3h.js → index-0a0asz2s.js} +1 -1
- package/dist/cli/{index-2dnqazyr.js → index-1g87esfp.js} +2 -2
- package/dist/cli/{index-0pcq32y2.js → index-2vefr1f8.js} +1 -1
- package/dist/cli/{index-fp464as8.js → index-4p3qfb05.js} +1 -1
- package/dist/cli/{index-77ef8gye.js → index-5e5a1y2r.js} +1 -1
- package/dist/cli/{index-0jr9zn34.js → index-612rr70a.js} +2 -2
- package/dist/cli/{index-apjdytwx.js → index-673axbjx.js} +3 -3
- package/dist/cli/{index-qfawexc8.js → index-6wf75rcm.js} +6 -6
- package/dist/cli/{index-k6pdsct6.js → index-7y5akvc9.js} +1 -1
- package/dist/cli/{index-hfzcztv6.js → index-9080b3de.js} +34 -34
- package/dist/cli/{index-v64kjqvg.js → index-917z76qr.js} +25 -18
- package/dist/cli/{index-ffdwj1an.js → index-97psh79d.js} +1 -1
- package/dist/cli/{index-kp87kr1a.js → index-9gt8g2qj.js} +4 -4
- package/dist/cli/{index-4e5a28h7.js → index-b9kxxd6k.js} +2 -2
- package/dist/cli/{index-pa86tpgt.js → index-bghwrr59.js} +1 -1
- package/dist/cli/{index-6ezbzd5e.js → index-cb2qtetk.js} +682 -181
- package/dist/cli/{index-v3y3qg48.js → index-cpg98bh1.js} +17 -1
- package/dist/cli/{index-c13ttmak.js → index-cxn95n7q.js} +180 -32
- package/dist/cli/{index-7g276m9m.js → index-czde45km.js} +3 -3
- package/dist/cli/{index-zfhe7vbb.js → index-gpnv14kq.js} +2 -2
- package/dist/cli/{index-6q3agdmr.js → index-j20fzn0w.js} +2 -2
- package/dist/cli/{index-mkks7jwg.js → index-jgb7mq2y.js} +4 -4
- package/dist/cli/{index-h4hasck4.js → index-jpppcckq.js} +4 -4
- package/dist/cli/{index-4evasm2b.js → index-kggqpefz.js} +5 -5
- package/dist/cli/{index-s6cwsnrw.js → index-n55a28zr.js} +254 -36
- package/dist/cli/{index-b3xret0a.js → index-ncfjxz9n.js} +5 -5
- package/dist/cli/{index-e00wbqw5.js → index-np4ytvvv.js} +2 -2
- package/dist/cli/{index-jy9bwa9k.js → index-nsr5b69r.js} +2 -2
- package/dist/cli/{index-zz5qsjd1.js → index-qyvjp0bq.js} +66 -38
- package/dist/cli/{index-6hqhyb0f.js → index-rk80jhef.js} +19 -5
- package/dist/cli/{index-4zwjc9sb.js → index-vav705md.js} +101 -4
- package/dist/cli/{index-s72naw1j.js → index-x8pm918t.js} +1 -1
- package/dist/cli/{index-b30x236n.js → index-z9yhhk6q.js} +96 -8
- package/dist/cli/index.js +32 -32
- package/dist/cli/{knowledge-escalator-w1mbaktt.js → knowledge-escalator-22apj3dj.js} +14 -14
- package/dist/cli/{knowledge-events-a0dj6gy6.js → knowledge-events-bx8xba9z.js} +12 -12
- package/dist/cli/{knowledge-link-mzdjvjsd.js → knowledge-link-82ew2yc4.js} +5 -5
- package/dist/cli/{knowledge-store-8kk3rghx.js → knowledge-store-nc71kfsg.js} +6 -6
- package/dist/cli/{knowledge-validator-91ym56e0.js → knowledge-validator-g8ne80v6.js} +8 -8
- package/dist/cli/model-preflight-7ea00h34.js +170 -0
- package/dist/cli/{pending-delegations-6vsrmw5w.js → pending-delegations-kkrczqv7.js} +3 -3
- package/dist/cli/{pr-subscriptions-zc3skxde.js → pr-subscriptions-2xn238xt.js} +3 -3
- package/dist/cli/{runner-jj32v8bk.js → runner-pqsf809k.js} +6 -6
- package/dist/cli/{scan-cursor-12jxwd14.js → scan-cursor-6ksgv514.js} +7 -7
- package/dist/cli/{schema-nq9tcz87.js → schema-mpcm7nje.js} +2 -2
- package/dist/cli/{scope-persistence-dv6z7n08.js → scope-persistence-mj1w3hqw.js} +11 -8
- package/dist/cli/{skill-generator-drscnzq9.js → skill-generator-gsa6qwwt.js} +16 -16
- package/dist/cli/{telemetry-z54dgdrh.js → telemetry-t109dhv7.js} +1 -1
- package/dist/cli/{workspace-snapshot-q21mgbsh.js → workspace-snapshot-kznz5e13.js} +4 -2
- package/dist/cli/{worktree-collision-ownership-rfyyjjct.js → worktree-collision-ownership-2jtg2my1.js} +8 -8
- package/dist/cli/{worktree-isolation-4tehtym5.js → worktree-isolation-ajzyp2gm.js} +33 -31
- package/dist/config/schema.d.ts +2 -2
- package/dist/evidence/task-gate-repair.d.ts +26 -0
- package/dist/evidence/task-gate-requirements.d.ts +20 -0
- package/dist/gate-evidence.d.ts +7 -0
- package/dist/hooks/delegation-gate/worktree-isolation.d.ts +4 -0
- package/dist/hooks/knowledge-receipt-ledger-storage.d.ts +2 -0
- package/dist/hooks/knowledge-receipt-ledger.d.ts +72 -3
- package/dist/hooks/knowledge-receipt-observability.d.ts +1 -1
- package/dist/hooks/phase-complete-directive-gate.d.ts +9 -0
- package/dist/index.js +566 -546
- package/dist/observability/catalog.d.ts +2 -2
- package/dist/plan/manager.d.ts +8 -0
- package/dist/review/diff-source.d.ts +30 -0
- package/dist/review/engine.d.ts +1 -0
- package/dist/review/evidence.d.ts +16 -2
- package/dist/review/phase-runner.d.ts +1 -0
- package/dist/scope/scope-binding.d.ts +16 -0
- package/dist/services/model-preflight.d.ts +151 -0
- package/dist/services/session-reflection.d.ts +24 -0
- package/dist/telemetry.d.ts +12 -1
- package/dist/tools/completion-verify.d.ts +2 -0
- package/dist/tools/convene-council.d.ts +1 -1
- package/dist/tools/index.d.ts +4 -0
- package/dist/tools/manifest.d.ts +4 -0
- package/dist/tools/phase-complete/gates/final-review-gate.d.ts +3 -3
- package/dist/tools/phase-complete/gates/types.d.ts +2 -2
- package/dist/tools/phase-complete/preflight-report.d.ts +66 -0
- package/dist/tools/phase-complete/snapshot-identity.d.ts +1 -0
- package/dist/tools/phase-complete.d.ts +66 -3
- package/dist/tools/placeholder-scan.d.ts +64 -0
- package/dist/tools/record-directive-override.d.ts +14 -0
- package/dist/tools/repair-gate-evidence.d.ts +6 -0
- package/dist/tools/repair-knowledge-receipt-ledger.d.ts +27 -0
- package/dist/tools/run-phase-review.d.ts +37 -0
- package/dist/tools/sast-scan.d.ts +6 -0
- package/dist/tools/submit-phase-council-verdicts.d.ts +1 -1
- package/dist/tools/tool-metadata.d.ts +32 -16
- package/dist/tools/write-final-council-evidence.d.ts +1 -1
- package/dist/tools/write-retro.d.ts +2 -0
- package/package.json +1 -1
- package/dist/cli/{curator-drift-yn5d0mvq.js → curator-drift-r50x1rac.js} +1 -1
|
@@ -33,7 +33,7 @@ var CONSUMER_COST_ACCOUNTING = Object.freeze([
|
|
|
33
33
|
"src/services/cost-accounting.ts:127"
|
|
34
34
|
]);
|
|
35
35
|
var CONSUMER_GATE_STATS = Object.freeze(["src/evaluation/gate-stats.ts:99"]);
|
|
36
|
-
var CONSUMER_HEARTBEAT_LISTENER = Object.freeze(["src/telemetry.ts:
|
|
36
|
+
var CONSUMER_HEARTBEAT_LISTENER = Object.freeze(["src/telemetry.ts:174"]);
|
|
37
37
|
function defineEntry(kind, input) {
|
|
38
38
|
const entry = {
|
|
39
39
|
kind,
|
|
@@ -66,7 +66,7 @@ var CATALOG_SOURCE = [
|
|
|
66
66
|
category: "lifecycle",
|
|
67
67
|
severity: "info",
|
|
68
68
|
privacyClass: "pseudonymous",
|
|
69
|
-
producer: "src/telemetry.ts:
|
|
69
|
+
producer: "src/telemetry.ts:479",
|
|
70
70
|
consumers: NO_CONSUMERS,
|
|
71
71
|
futureOwnerIssue: ISSUE_SINK,
|
|
72
72
|
retentionOwnerIssue: ISSUE_LIFECYCLE_RETENTION,
|
|
@@ -80,7 +80,7 @@ var CATALOG_SOURCE = [
|
|
|
80
80
|
category: "lifecycle",
|
|
81
81
|
severity: "info",
|
|
82
82
|
privacyClass: "pseudonymous",
|
|
83
|
-
producer: "src/telemetry.ts:
|
|
83
|
+
producer: "src/telemetry.ts:483",
|
|
84
84
|
consumers: NO_CONSUMERS,
|
|
85
85
|
futureOwnerIssue: ISSUE_SINK,
|
|
86
86
|
retentionOwnerIssue: ISSUE_LIFECYCLE_RETENTION,
|
|
@@ -94,7 +94,7 @@ var CATALOG_SOURCE = [
|
|
|
94
94
|
category: "lifecycle",
|
|
95
95
|
severity: "info",
|
|
96
96
|
privacyClass: "pseudonymous",
|
|
97
|
-
producer: "src/telemetry.ts:
|
|
97
|
+
producer: "src/telemetry.ts:487",
|
|
98
98
|
consumers: NO_CONSUMERS,
|
|
99
99
|
futureOwnerIssue: ISSUE_SINK,
|
|
100
100
|
retentionOwnerIssue: ISSUE_LIFECYCLE_RETENTION,
|
|
@@ -108,7 +108,7 @@ var CATALOG_SOURCE = [
|
|
|
108
108
|
category: "lifecycle",
|
|
109
109
|
severity: "info",
|
|
110
110
|
privacyClass: "pseudonymous",
|
|
111
|
-
producer: "src/telemetry.ts:
|
|
111
|
+
producer: "src/telemetry.ts:524",
|
|
112
112
|
consumers: NO_CONSUMERS,
|
|
113
113
|
futureOwnerIssue: ISSUE_SINK,
|
|
114
114
|
retentionOwnerIssue: ISSUE_LIFECYCLE_RETENTION,
|
|
@@ -122,7 +122,7 @@ var CATALOG_SOURCE = [
|
|
|
122
122
|
category: "lifecycle",
|
|
123
123
|
severity: "info",
|
|
124
124
|
privacyClass: "pseudonymous",
|
|
125
|
-
producer: "src/telemetry.ts:
|
|
125
|
+
producer: "src/telemetry.ts:572",
|
|
126
126
|
consumers: NO_CONSUMERS,
|
|
127
127
|
futureOwnerIssue: ISSUE_SINK,
|
|
128
128
|
retentionOwnerIssue: ISSUE_LIFECYCLE_RETENTION,
|
|
@@ -136,7 +136,7 @@ var CATALOG_SOURCE = [
|
|
|
136
136
|
category: "lifecycle",
|
|
137
137
|
severity: "debug",
|
|
138
138
|
privacyClass: "pseudonymous",
|
|
139
|
-
producer: "src/telemetry.ts:
|
|
139
|
+
producer: "src/telemetry.ts:754",
|
|
140
140
|
consumers: CONSUMER_HEARTBEAT_LISTENER,
|
|
141
141
|
retentionOwnerIssue: ISSUE_LIFECYCLE_RETENTION,
|
|
142
142
|
requiredWorkflowIds: REQUIRE_SESSION,
|
|
@@ -149,7 +149,7 @@ var CATALOG_SOURCE = [
|
|
|
149
149
|
category: "lifecycle",
|
|
150
150
|
severity: "info",
|
|
151
151
|
privacyClass: "pseudonymous",
|
|
152
|
-
producer: "src/telemetry.ts:
|
|
152
|
+
producer: "src/telemetry.ts:762",
|
|
153
153
|
consumers: NO_CONSUMERS,
|
|
154
154
|
futureOwnerIssue: ISSUE_SINK,
|
|
155
155
|
retentionOwnerIssue: ISSUE_LIFECYCLE_RETENTION,
|
|
@@ -162,7 +162,7 @@ var CATALOG_SOURCE = [
|
|
|
162
162
|
category: "lifecycle",
|
|
163
163
|
severity: "info",
|
|
164
164
|
privacyClass: "pseudonymous",
|
|
165
|
-
producer: "src/telemetry.ts:
|
|
165
|
+
producer: "src/telemetry.ts:787",
|
|
166
166
|
consumers: NO_CONSUMERS,
|
|
167
167
|
futureOwnerIssue: ISSUE_SINK,
|
|
168
168
|
retentionOwnerIssue: ISSUE_LIFECYCLE_RETENTION,
|
|
@@ -176,7 +176,7 @@ var CATALOG_SOURCE = [
|
|
|
176
176
|
category: "delegation",
|
|
177
177
|
severity: "info",
|
|
178
178
|
privacyClass: "pseudonymous",
|
|
179
|
-
producer: "src/telemetry.ts:
|
|
179
|
+
producer: "src/telemetry.ts:491",
|
|
180
180
|
consumers: NO_CONSUMERS,
|
|
181
181
|
futureOwnerIssue: ISSUE_SINK,
|
|
182
182
|
retentionOwnerIssue: ISSUE_LIFECYCLE_RETENTION,
|
|
@@ -190,7 +190,7 @@ var CATALOG_SOURCE = [
|
|
|
190
190
|
category: "delegation",
|
|
191
191
|
severity: "info",
|
|
192
192
|
privacyClass: "pseudonymous",
|
|
193
|
-
producer: "src/telemetry.ts:
|
|
193
|
+
producer: "src/telemetry.ts:501",
|
|
194
194
|
consumers: CONSUMER_COST_ACCOUNTING,
|
|
195
195
|
retentionOwnerIssue: ISSUE_COST_RETENTION,
|
|
196
196
|
requiredWorkflowIds: REQUIRE_SESSION_AND_TASK,
|
|
@@ -203,7 +203,21 @@ var CATALOG_SOURCE = [
|
|
|
203
203
|
category: "delegation",
|
|
204
204
|
severity: "notice",
|
|
205
205
|
privacyClass: "pseudonymous",
|
|
206
|
-
producer: "src/telemetry.ts:
|
|
206
|
+
producer: "src/telemetry.ts:605",
|
|
207
|
+
consumers: NO_CONSUMERS,
|
|
208
|
+
futureOwnerIssue: ISSUE_SINK,
|
|
209
|
+
retentionOwnerIssue: ISSUE_LIFECYCLE_RETENTION,
|
|
210
|
+
requiredWorkflowIds: REQUIRE_SESSION,
|
|
211
|
+
otelMapping: "genai"
|
|
212
|
+
}
|
|
213
|
+
],
|
|
214
|
+
[
|
|
215
|
+
"model_unresolved",
|
|
216
|
+
{
|
|
217
|
+
category: "delegation",
|
|
218
|
+
severity: "warning",
|
|
219
|
+
privacyClass: "pseudonymous",
|
|
220
|
+
producer: "src/telemetry.ts:619",
|
|
207
221
|
consumers: NO_CONSUMERS,
|
|
208
222
|
futureOwnerIssue: ISSUE_SINK,
|
|
209
223
|
retentionOwnerIssue: ISSUE_LIFECYCLE_RETENTION,
|
|
@@ -217,7 +231,7 @@ var CATALOG_SOURCE = [
|
|
|
217
231
|
category: "gate",
|
|
218
232
|
severity: "info",
|
|
219
233
|
privacyClass: "pseudonymous",
|
|
220
|
-
producer: "src/telemetry.ts:
|
|
234
|
+
producer: "src/telemetry.ts:533",
|
|
221
235
|
consumers: NO_CONSUMERS,
|
|
222
236
|
futureOwnerIssue: ISSUE_SINK,
|
|
223
237
|
retentionOwnerIssue: ISSUE_LIFECYCLE_RETENTION,
|
|
@@ -230,7 +244,7 @@ var CATALOG_SOURCE = [
|
|
|
230
244
|
category: "gate",
|
|
231
245
|
severity: "warning",
|
|
232
246
|
privacyClass: "pseudonymous",
|
|
233
|
-
producer: "src/telemetry.ts:
|
|
247
|
+
producer: "src/telemetry.ts:550",
|
|
234
248
|
consumers: NO_CONSUMERS,
|
|
235
249
|
futureOwnerIssue: ISSUE_SINK,
|
|
236
250
|
retentionOwnerIssue: ISSUE_LIFECYCLE_RETENTION,
|
|
@@ -243,7 +257,7 @@ var CATALOG_SOURCE = [
|
|
|
243
257
|
category: "gate",
|
|
244
258
|
severity: "warning",
|
|
245
259
|
privacyClass: "sensitive",
|
|
246
|
-
producer: "src/telemetry.ts:
|
|
260
|
+
producer: "src/telemetry.ts:537",
|
|
247
261
|
consumers: NO_CONSUMERS,
|
|
248
262
|
futureOwnerIssue: ISSUE_SINK,
|
|
249
263
|
retentionOwnerIssue: ISSUE_LIFECYCLE_RETENTION,
|
|
@@ -257,7 +271,7 @@ var CATALOG_SOURCE = [
|
|
|
257
271
|
category: "gate",
|
|
258
272
|
severity: "info",
|
|
259
273
|
privacyClass: "pseudonymous",
|
|
260
|
-
producer: "src/telemetry.ts:
|
|
274
|
+
producer: "src/telemetry.ts:560",
|
|
261
275
|
consumers: CONSUMER_GATE_STATS,
|
|
262
276
|
retentionOwnerIssue: ISSUE_LIFECYCLE_RETENTION,
|
|
263
277
|
requiredWorkflowIds: REQUIRE_SESSION_AND_TASK
|
|
@@ -269,7 +283,7 @@ var CATALOG_SOURCE = [
|
|
|
269
283
|
category: "cost",
|
|
270
284
|
severity: "info",
|
|
271
285
|
privacyClass: "pseudonymous",
|
|
272
|
-
producer: "src/telemetry.ts:
|
|
286
|
+
producer: "src/telemetry.ts:576",
|
|
273
287
|
consumers: NO_CONSUMERS,
|
|
274
288
|
futureOwnerIssue: ISSUE_SINK,
|
|
275
289
|
retentionOwnerIssue: ISSUE_COST_RETENTION,
|
|
@@ -282,7 +296,7 @@ var CATALOG_SOURCE = [
|
|
|
282
296
|
category: "guardrail",
|
|
283
297
|
severity: "notice",
|
|
284
298
|
privacyClass: "pseudonymous",
|
|
285
|
-
producer: "src/telemetry.ts:
|
|
299
|
+
producer: "src/telemetry.ts:595",
|
|
286
300
|
consumers: NO_CONSUMERS,
|
|
287
301
|
futureOwnerIssue: ISSUE_SINK,
|
|
288
302
|
retentionOwnerIssue: ISSUE_SINK,
|
|
@@ -295,7 +309,7 @@ var CATALOG_SOURCE = [
|
|
|
295
309
|
category: "guardrail",
|
|
296
310
|
severity: "error",
|
|
297
311
|
privacyClass: "pseudonymous",
|
|
298
|
-
producer: "src/telemetry.ts:
|
|
312
|
+
producer: "src/telemetry.ts:633",
|
|
299
313
|
consumers: NO_CONSUMERS,
|
|
300
314
|
futureOwnerIssue: ISSUE_SINK,
|
|
301
315
|
retentionOwnerIssue: ISSUE_SINK,
|
|
@@ -308,7 +322,7 @@ var CATALOG_SOURCE = [
|
|
|
308
322
|
category: "guardrail",
|
|
309
323
|
severity: "warning",
|
|
310
324
|
privacyClass: "pseudonymous",
|
|
311
|
-
producer: "src/telemetry.ts:
|
|
325
|
+
producer: "src/telemetry.ts:642",
|
|
312
326
|
consumers: NO_CONSUMERS,
|
|
313
327
|
futureOwnerIssue: ISSUE_SINK,
|
|
314
328
|
retentionOwnerIssue: ISSUE_SINK,
|
|
@@ -321,7 +335,7 @@ var CATALOG_SOURCE = [
|
|
|
321
335
|
category: "guardrail",
|
|
322
336
|
severity: "warning",
|
|
323
337
|
privacyClass: "sensitive",
|
|
324
|
-
producer: "src/telemetry.ts:
|
|
338
|
+
producer: "src/telemetry.ts:646",
|
|
325
339
|
consumers: NO_CONSUMERS,
|
|
326
340
|
futureOwnerIssue: ISSUE_SINK,
|
|
327
341
|
retentionOwnerIssue: ISSUE_SINK,
|
|
@@ -334,7 +348,7 @@ var CATALOG_SOURCE = [
|
|
|
334
348
|
category: "guardrail",
|
|
335
349
|
severity: "error",
|
|
336
350
|
privacyClass: "sensitive",
|
|
337
|
-
producer: "src/telemetry.ts:
|
|
351
|
+
producer: "src/telemetry.ts:742",
|
|
338
352
|
consumers: NO_CONSUMERS,
|
|
339
353
|
futureOwnerIssue: ISSUE_SINK,
|
|
340
354
|
retentionOwnerIssue: ISSUE_SINK,
|
|
@@ -347,7 +361,7 @@ var CATALOG_SOURCE = [
|
|
|
347
361
|
category: "guardrail",
|
|
348
362
|
severity: "warning",
|
|
349
363
|
privacyClass: "pseudonymous",
|
|
350
|
-
producer: "src/telemetry.ts:
|
|
364
|
+
producer: "src/telemetry.ts:750",
|
|
351
365
|
consumers: NO_CONSUMERS,
|
|
352
366
|
futureOwnerIssue: ISSUE_SINK,
|
|
353
367
|
retentionOwnerIssue: ISSUE_SINK,
|
|
@@ -360,7 +374,7 @@ var CATALOG_SOURCE = [
|
|
|
360
374
|
category: "guardrail",
|
|
361
375
|
severity: "warning",
|
|
362
376
|
privacyClass: "pseudonymous",
|
|
363
|
-
producer: "src/telemetry.ts:
|
|
377
|
+
producer: "src/telemetry.ts:772",
|
|
364
378
|
consumers: NO_CONSUMERS,
|
|
365
379
|
futureOwnerIssue: ISSUE_SINK,
|
|
366
380
|
retentionOwnerIssue: ISSUE_SINK,
|
|
@@ -373,7 +387,7 @@ var CATALOG_SOURCE = [
|
|
|
373
387
|
category: "guardrail",
|
|
374
388
|
severity: "warning",
|
|
375
389
|
privacyClass: "pseudonymous",
|
|
376
|
-
producer: "src/telemetry.ts:
|
|
390
|
+
producer: "src/telemetry.ts:660",
|
|
377
391
|
consumers: NO_CONSUMERS,
|
|
378
392
|
futureOwnerIssue: ISSUE_SINK,
|
|
379
393
|
retentionOwnerIssue: ISSUE_SINK,
|
|
@@ -386,7 +400,7 @@ var CATALOG_SOURCE = [
|
|
|
386
400
|
category: "guardrail",
|
|
387
401
|
severity: "warning",
|
|
388
402
|
privacyClass: "pseudonymous",
|
|
389
|
-
producer: "src/telemetry.ts:
|
|
403
|
+
producer: "src/telemetry.ts:681",
|
|
390
404
|
consumers: NO_CONSUMERS,
|
|
391
405
|
futureOwnerIssue: ISSUE_SINK,
|
|
392
406
|
retentionOwnerIssue: ISSUE_SINK,
|
|
@@ -399,7 +413,7 @@ var CATALOG_SOURCE = [
|
|
|
399
413
|
category: "guardrail",
|
|
400
414
|
severity: "warning",
|
|
401
415
|
privacyClass: "pseudonymous",
|
|
402
|
-
producer: "src/telemetry.ts:
|
|
416
|
+
producer: "src/telemetry.ts:695",
|
|
403
417
|
consumers: NO_CONSUMERS,
|
|
404
418
|
futureOwnerIssue: ISSUE_SINK,
|
|
405
419
|
retentionOwnerIssue: ISSUE_SINK,
|
|
@@ -412,7 +426,7 @@ var CATALOG_SOURCE = [
|
|
|
412
426
|
category: "guardrail",
|
|
413
427
|
severity: "error",
|
|
414
428
|
privacyClass: "pseudonymous",
|
|
415
|
-
producer: "src/telemetry.ts:
|
|
429
|
+
producer: "src/telemetry.ts:712",
|
|
416
430
|
consumers: NO_CONSUMERS,
|
|
417
431
|
futureOwnerIssue: ISSUE_SINK,
|
|
418
432
|
retentionOwnerIssue: ISSUE_SINK,
|
|
@@ -425,7 +439,7 @@ var CATALOG_SOURCE = [
|
|
|
425
439
|
category: "guardrail",
|
|
426
440
|
severity: "error",
|
|
427
441
|
privacyClass: "sensitive",
|
|
428
|
-
producer: "src/telemetry.ts:
|
|
442
|
+
producer: "src/telemetry.ts:729",
|
|
429
443
|
consumers: NO_CONSUMERS,
|
|
430
444
|
futureOwnerIssue: ISSUE_SINK,
|
|
431
445
|
retentionOwnerIssue: ISSUE_SINK,
|
|
@@ -438,7 +452,7 @@ var CATALOG_SOURCE = [
|
|
|
438
452
|
category: "prm",
|
|
439
453
|
severity: "error",
|
|
440
454
|
privacyClass: "pseudonymous",
|
|
441
|
-
producer: "src/telemetry.ts:
|
|
455
|
+
producer: "src/telemetry.ts:918",
|
|
442
456
|
consumers: NO_CONSUMERS,
|
|
443
457
|
futureOwnerIssue: ISSUE_SINK,
|
|
444
458
|
retentionOwnerIssue: ISSUE_SINK,
|
|
@@ -451,7 +465,7 @@ var CATALOG_SOURCE = [
|
|
|
451
465
|
category: "prm",
|
|
452
466
|
severity: "notice",
|
|
453
467
|
privacyClass: "pseudonymous",
|
|
454
|
-
producer: "src/telemetry.ts:
|
|
468
|
+
producer: "src/telemetry.ts:802",
|
|
455
469
|
consumers: NO_CONSUMERS,
|
|
456
470
|
futureOwnerIssue: ISSUE_SINK,
|
|
457
471
|
retentionOwnerIssue: ISSUE_SINK,
|
|
@@ -464,7 +478,7 @@ var CATALOG_SOURCE = [
|
|
|
464
478
|
category: "prm",
|
|
465
479
|
severity: "notice",
|
|
466
480
|
privacyClass: "pseudonymous",
|
|
467
|
-
producer: "src/telemetry.ts:
|
|
481
|
+
producer: "src/telemetry.ts:816",
|
|
468
482
|
consumers: NO_CONSUMERS,
|
|
469
483
|
futureOwnerIssue: ISSUE_SINK,
|
|
470
484
|
retentionOwnerIssue: ISSUE_SINK,
|
|
@@ -477,7 +491,7 @@ var CATALOG_SOURCE = [
|
|
|
477
491
|
category: "prm",
|
|
478
492
|
severity: "warning",
|
|
479
493
|
privacyClass: "pseudonymous",
|
|
480
|
-
producer: "src/telemetry.ts:
|
|
494
|
+
producer: "src/telemetry.ts:829",
|
|
481
495
|
consumers: NO_CONSUMERS,
|
|
482
496
|
futureOwnerIssue: ISSUE_SINK,
|
|
483
497
|
retentionOwnerIssue: ISSUE_SINK,
|
|
@@ -490,7 +504,7 @@ var CATALOG_SOURCE = [
|
|
|
490
504
|
category: "prm",
|
|
491
505
|
severity: "critical",
|
|
492
506
|
privacyClass: "pseudonymous",
|
|
493
|
-
producer: "src/telemetry.ts:
|
|
507
|
+
producer: "src/telemetry.ts:843",
|
|
494
508
|
consumers: NO_CONSUMERS,
|
|
495
509
|
futureOwnerIssue: ISSUE_SINK,
|
|
496
510
|
retentionOwnerIssue: ISSUE_SINK,
|
|
@@ -558,7 +572,7 @@ var CATALOG_SOURCE = [
|
|
|
558
572
|
category: "plan",
|
|
559
573
|
severity: "warning",
|
|
560
574
|
privacyClass: "sensitive",
|
|
561
|
-
producer: "src/plan/manager.ts:
|
|
575
|
+
producer: "src/plan/manager.ts:1861",
|
|
562
576
|
consumers: NO_CONSUMERS,
|
|
563
577
|
futureOwnerIssue: ISSUE_SINK,
|
|
564
578
|
retentionOwnerIssue: ISSUE_PLAN_EVIDENCE_RETENTION,
|
|
@@ -600,7 +614,7 @@ var CATALOG_SOURCE = [
|
|
|
600
614
|
category: "lifecycle",
|
|
601
615
|
severity: "notice",
|
|
602
616
|
privacyClass: "operational",
|
|
603
|
-
producer: "src/telemetry.ts:
|
|
617
|
+
producer: "src/telemetry.ts:880",
|
|
604
618
|
consumers: NO_CONSUMERS,
|
|
605
619
|
futureOwnerIssue: ISSUE_SINK,
|
|
606
620
|
retentionOwnerIssue: ISSUE_SINK
|
|
@@ -612,7 +626,7 @@ var CATALOG_SOURCE = [
|
|
|
612
626
|
category: "knowledge",
|
|
613
627
|
severity: "info",
|
|
614
628
|
privacyClass: "pseudonymous",
|
|
615
|
-
producer: "src/hooks/knowledge-receipt-observability.ts:
|
|
629
|
+
producer: "src/hooks/knowledge-receipt-observability.ts:197",
|
|
616
630
|
consumers: NO_CONSUMERS,
|
|
617
631
|
futureOwnerIssue: ISSUE_SINK,
|
|
618
632
|
retentionOwnerIssue: ISSUE_LIFECYCLE_RETENTION,
|
|
@@ -640,7 +654,7 @@ var CATALOG_SOURCE = [
|
|
|
640
654
|
category: "lifecycle",
|
|
641
655
|
severity: "notice",
|
|
642
656
|
privacyClass: "operational",
|
|
643
|
-
producer: "src/telemetry.ts:
|
|
657
|
+
producer: "src/telemetry.ts:902",
|
|
644
658
|
consumers: NO_CONSUMERS,
|
|
645
659
|
futureOwnerIssue: ISSUE_SINK,
|
|
646
660
|
retentionOwnerIssue: ISSUE_SINK,
|
|
@@ -907,6 +921,12 @@ var KNOWN_TELEMETRY_KEYS = Object.freeze({
|
|
|
907
921
|
"toModel",
|
|
908
922
|
"reason"
|
|
909
923
|
]),
|
|
924
|
+
model_unresolved: Object.freeze([
|
|
925
|
+
"sessionId",
|
|
926
|
+
"agentName",
|
|
927
|
+
"model",
|
|
928
|
+
"detail"
|
|
929
|
+
]),
|
|
910
930
|
hard_limit_hit: Object.freeze([
|
|
911
931
|
"sessionId",
|
|
912
932
|
"agentName",
|
|
@@ -1695,6 +1715,14 @@ var telemetry = {
|
|
|
1695
1715
|
reason
|
|
1696
1716
|
});
|
|
1697
1717
|
},
|
|
1718
|
+
modelUnresolved(agentName, model, detail) {
|
|
1719
|
+
_internals.emit("model_unresolved", {
|
|
1720
|
+
sessionId: "preflight",
|
|
1721
|
+
agentName,
|
|
1722
|
+
model,
|
|
1723
|
+
detail
|
|
1724
|
+
});
|
|
1725
|
+
},
|
|
1698
1726
|
hardLimitHit(sessionId, agentName, limitType, value) {
|
|
1699
1727
|
_internals.emit("hard_limit_hit", {
|
|
1700
1728
|
sessionId,
|
|
@@ -1,11 +1,8 @@
|
|
|
1
1
|
// @bun
|
|
2
|
-
import {
|
|
3
|
-
bunSpawn
|
|
4
|
-
} from "./index-zj6t9zgx.js";
|
|
5
2
|
import {
|
|
6
3
|
SWARM_WORKTREE_DIR_NAME,
|
|
7
4
|
init_constants
|
|
8
|
-
} from "./index-
|
|
5
|
+
} from "./index-cpg98bh1.js";
|
|
9
6
|
import {
|
|
10
7
|
init_git_executable,
|
|
11
8
|
resolveGitExecutable
|
|
@@ -14,6 +11,9 @@ import {
|
|
|
14
11
|
advisoryWarn,
|
|
15
12
|
init_warning_buffer
|
|
16
13
|
} from "./index-4rhhvd1a.js";
|
|
14
|
+
import {
|
|
15
|
+
bunSpawn
|
|
16
|
+
} from "./index-zj6t9zgx.js";
|
|
17
17
|
import {
|
|
18
18
|
log
|
|
19
19
|
} from "./index-zgwm4ryv.js";
|
|
@@ -92,7 +92,7 @@ var _internals = {
|
|
|
92
92
|
symlinkSync: fs.symlinkSync
|
|
93
93
|
},
|
|
94
94
|
writeScopeToDisk: async (directory, taskId, files) => {
|
|
95
|
-
const { writeScopeToDisk: realWrite } = await import("./scope-persistence-
|
|
95
|
+
const { writeScopeToDisk: realWrite } = await import("./scope-persistence-mj1w3hqw.js");
|
|
96
96
|
return realWrite(directory, taskId, files);
|
|
97
97
|
},
|
|
98
98
|
writeLaneProfileToDisk: async (_worktreePath, _laneIndex, _envOverrides) => {
|
|
@@ -139,6 +139,7 @@ async function removeLaneProfileFromDiskReal(worktreePath, laneIndex) {
|
|
|
139
139
|
}
|
|
140
140
|
}
|
|
141
141
|
var WORKTREE_TIMEOUT_MS = 30000;
|
|
142
|
+
var WORKTREE_VERIFICATION_TIMEOUT_MS = 5000;
|
|
142
143
|
var WIN_PATH_BUDGET = 250;
|
|
143
144
|
var GIT_SPAWN_FAILURE_EXIT_CODE = 1;
|
|
144
145
|
async function runGit(args, cwd, timeoutMs = WORKTREE_TIMEOUT_MS) {
|
|
@@ -399,6 +400,19 @@ async function provisionWorktree(directory, id, sessionId, options) {
|
|
|
399
400
|
error: `Failed to create worktree: ${addResult.stderr.trim() || addResult.stdout.trim()}`
|
|
400
401
|
};
|
|
401
402
|
}
|
|
403
|
+
const revParseResult = await runGit(["rev-parse", "--git-dir"], worktreePath, WORKTREE_VERIFICATION_TIMEOUT_MS);
|
|
404
|
+
if (revParseResult.exitCode !== 0) {
|
|
405
|
+
const removeResult = await removeWorktree(worktreePath, directory, {
|
|
406
|
+
force: true,
|
|
407
|
+
worktreeDir: options.worktreeDir
|
|
408
|
+
}).catch((removalError) => ({
|
|
409
|
+
error: removalError instanceof Error ? removalError.message : String(removalError)
|
|
410
|
+
}));
|
|
411
|
+
const removalNote = "error" in removeResult ? `The lane could NOT be removed (${removeResult.error}) \u2014 it may collide with the next provisioning attempt; clear ${worktreePath} manually if retries fail.` : "The lane was removed; retry the dispatch.";
|
|
412
|
+
return {
|
|
413
|
+
error: `WORKTREE_VERIFICATION_FAILED: lane ${worktreePath} did not register as a usable git worktree (git rev-parse --git-dir failed in the lane: ${revParseResult.stderr.trim() || revParseResult.stdout.trim() || `exit ${revParseResult.exitCode}`}). ${removalNote}`
|
|
414
|
+
};
|
|
415
|
+
}
|
|
402
416
|
const strategy = options.depsStrategy ?? "skip";
|
|
403
417
|
if (strategy !== "skip") {
|
|
404
418
|
const hostDepDir = path.join(directory, "node_modules");
|
|
@@ -2,20 +2,23 @@
|
|
|
2
2
|
import {
|
|
3
3
|
computePlanStructureHash,
|
|
4
4
|
derivePlanId
|
|
5
|
-
} from "./index-
|
|
5
|
+
} from "./index-673axbjx.js";
|
|
6
6
|
import {
|
|
7
7
|
unsafePathTextReason
|
|
8
8
|
} from "./index-556ja8an.js";
|
|
9
9
|
import {
|
|
10
10
|
PlanSchema
|
|
11
|
-
} from "./index-
|
|
11
|
+
} from "./index-2vefr1f8.js";
|
|
12
|
+
import {
|
|
13
|
+
validateSwarmPath
|
|
14
|
+
} from "./index-w8pgjr75.js";
|
|
12
15
|
import {
|
|
13
16
|
atomicWriteSwarmFile,
|
|
14
17
|
atomicWriteSwarmFileSync
|
|
15
|
-
} from "./index-
|
|
18
|
+
} from "./index-kggqpefz.js";
|
|
16
19
|
import {
|
|
17
20
|
assertProjectRoot
|
|
18
|
-
} from "./index-
|
|
21
|
+
} from "./index-bghwrr59.js";
|
|
19
22
|
import {
|
|
20
23
|
require_proper_lockfile
|
|
21
24
|
} from "./index-7g4c7s5r.js";
|
|
@@ -195,6 +198,16 @@ function hasScopeBindingDenyOverlay(binding) {
|
|
|
195
198
|
const tombstone = scopeBindingTombstones.get(binding.generationId);
|
|
196
199
|
return Boolean(tombstone && tombstone.bindingId === binding.bindingId && tombstone.revision >= binding.revision && tombstone.lifecycleState !== "live");
|
|
197
200
|
}
|
|
201
|
+
function hasDeliberateScopeBindingDenyOverlay(binding) {
|
|
202
|
+
const tombstone = scopeBindingTombstones.get(binding.generationId);
|
|
203
|
+
return Boolean(tombstone && tombstone.bindingId === binding.bindingId && tombstone.revision >= binding.revision && tombstone.lifecycleState !== "live" && tombstone.lifecycleState !== "expired");
|
|
204
|
+
}
|
|
205
|
+
function clearSweepTombstoneForRevival(binding) {
|
|
206
|
+
const tombstone = scopeBindingTombstones.get(binding.generationId);
|
|
207
|
+
if (tombstone && tombstone.bindingId === binding.bindingId && tombstone.lifecycleState === "expired" && tombstone.revision <= binding.revision) {
|
|
208
|
+
scopeBindingTombstones.delete(binding.generationId);
|
|
209
|
+
}
|
|
210
|
+
}
|
|
198
211
|
function installFailedRevocationOverlay(binding, reason) {
|
|
199
212
|
const current = pendingScopeBindings.get(binding.generationId);
|
|
200
213
|
if (!current || current.bindingId !== binding.bindingId || current.revision !== binding.revision)
|
|
@@ -1428,6 +1441,82 @@ function readCurrentPlan(directory) {
|
|
|
1428
1441
|
return null;
|
|
1429
1442
|
}
|
|
1430
1443
|
}
|
|
1444
|
+
var SCOPE_BINDING_AUTO_REVIVE_WINDOW_MS = 24 * 60 * 60 * 1000;
|
|
1445
|
+
function appendScopeBindingRevivalEvent(workspace, revived) {
|
|
1446
|
+
try {
|
|
1447
|
+
const eventsPath = validateSwarmPath(workspace, "events.jsonl");
|
|
1448
|
+
fs2.mkdirSync(path2.dirname(eventsPath), { recursive: true });
|
|
1449
|
+
fs2.appendFileSync(eventsPath, `${JSON.stringify({
|
|
1450
|
+
type: "scope_binding_auto_recovered",
|
|
1451
|
+
timestamp: new Date().toISOString(),
|
|
1452
|
+
taskId: revived.taskId,
|
|
1453
|
+
sessionId: revived.ownerSessionId,
|
|
1454
|
+
generationId: revived.generationId,
|
|
1455
|
+
revision: revived.revision,
|
|
1456
|
+
expiresAt: new Date(revived.expiresAt).toISOString()
|
|
1457
|
+
})}
|
|
1458
|
+
`, "utf-8");
|
|
1459
|
+
} catch {}
|
|
1460
|
+
}
|
|
1461
|
+
function attemptIdleScopeBindingRevival(directory, resolution) {
|
|
1462
|
+
if (resolution.status !== "expired")
|
|
1463
|
+
return null;
|
|
1464
|
+
if (resolution.totalCandidates !== 1 || resolution.candidates.length !== 1)
|
|
1465
|
+
return null;
|
|
1466
|
+
const candidate = resolution.candidates[0];
|
|
1467
|
+
if (!candidate)
|
|
1468
|
+
return null;
|
|
1469
|
+
const now = Date.now();
|
|
1470
|
+
if (candidate.lifecycleState !== "live")
|
|
1471
|
+
return null;
|
|
1472
|
+
if (candidate.expiresAt > now)
|
|
1473
|
+
return null;
|
|
1474
|
+
if (now - candidate.expiresAt > SCOPE_BINDING_AUTO_REVIVE_WINDOW_MS)
|
|
1475
|
+
return null;
|
|
1476
|
+
if (hasDeliberateScopeBindingDenyOverlay(candidate))
|
|
1477
|
+
return null;
|
|
1478
|
+
let release;
|
|
1479
|
+
try {
|
|
1480
|
+
const resolvedWorkspace = fs2.realpathSync(directory);
|
|
1481
|
+
assertProjectRoot(resolvedWorkspace);
|
|
1482
|
+
const scopePath = getBindingFilePath(resolvedWorkspace, candidate);
|
|
1483
|
+
if (!isScopesDirSafe(resolvedWorkspace, getScopesDir(resolvedWorkspace)))
|
|
1484
|
+
return null;
|
|
1485
|
+
const lockPath = getGenerationLockPath(scopePath);
|
|
1486
|
+
if (!ensureLockTargetSync(lockPath))
|
|
1487
|
+
return null;
|
|
1488
|
+
release = lockSyncWithBoundedRetry(lockPath);
|
|
1489
|
+
const raw = readBoundedFile(scopePath);
|
|
1490
|
+
if (!raw)
|
|
1491
|
+
return null;
|
|
1492
|
+
const current = validateScopeBindingPayload(resolvedWorkspace, JSON.parse(raw));
|
|
1493
|
+
if (!current || current.bindingId !== candidate.bindingId || current.generationId !== candidate.generationId || current.revision !== candidate.revision || current.lifecycleState !== "live" || current.expiresAt > Date.now() || Date.now() - current.expiresAt > SCOPE_BINDING_AUTO_REVIVE_WINDOW_MS)
|
|
1494
|
+
return null;
|
|
1495
|
+
const revivedAt = Date.now();
|
|
1496
|
+
const revived = {
|
|
1497
|
+
...current,
|
|
1498
|
+
revision: current.revision + 1,
|
|
1499
|
+
updatedAt: revivedAt,
|
|
1500
|
+
leaseStartedAt: revivedAt,
|
|
1501
|
+
expiresAt: revivedAt + DEFAULT_SCOPE_BINDING_TTL_MS
|
|
1502
|
+
};
|
|
1503
|
+
atomicWriteSync(scopePath, JSON.stringify(revived, null, 2));
|
|
1504
|
+
const verifiedRaw = readBoundedFile(scopePath);
|
|
1505
|
+
const verified = verifiedRaw ? validateScopeBindingPayload(resolvedWorkspace, JSON.parse(verifiedRaw)) : null;
|
|
1506
|
+
if (!verified || verified.revision !== revived.revision || verified.lifecycleState !== "live" || verified.expiresAt !== revived.expiresAt)
|
|
1507
|
+
return null;
|
|
1508
|
+
clearSweepTombstoneForRevival(revived);
|
|
1509
|
+
appendScopeBindingRevivalEvent(resolvedWorkspace, revived);
|
|
1510
|
+
return revived;
|
|
1511
|
+
} catch {
|
|
1512
|
+
return null;
|
|
1513
|
+
} finally {
|
|
1514
|
+
if (release)
|
|
1515
|
+
try {
|
|
1516
|
+
release();
|
|
1517
|
+
} catch {}
|
|
1518
|
+
}
|
|
1519
|
+
}
|
|
1431
1520
|
function resolveAuthorizedScopeBindingForPlan(input) {
|
|
1432
1521
|
const resolution = resolveAuthorizedScopeBindingForPlanDetailed(input);
|
|
1433
1522
|
return resolution.status === "found" ? resolution.binding : null;
|
|
@@ -1451,6 +1540,14 @@ function resolveAuthorizedScopeBindingForPlanDetailed(input) {
|
|
|
1451
1540
|
const admission = registerScopeBinding(durable.binding);
|
|
1452
1541
|
return admission.ok ? durable : { status: "overloaded" };
|
|
1453
1542
|
}
|
|
1543
|
+
if (durable.status === "expired") {
|
|
1544
|
+
const revived = attemptIdleScopeBindingRevival(input.directory, durable);
|
|
1545
|
+
if (revived) {
|
|
1546
|
+
const admission = registerScopeBinding(revived);
|
|
1547
|
+
if (admission.ok)
|
|
1548
|
+
return { status: "found", binding: revived };
|
|
1549
|
+
}
|
|
1550
|
+
}
|
|
1454
1551
|
if (durable.status !== "not_declared")
|
|
1455
1552
|
return durable;
|
|
1456
1553
|
return { status: "not_declared" };
|