opencode-swarm 7.159.3 → 7.160.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.
Files changed (107) hide show
  1. package/.opencode/skills/swarm-pr-review/SKILL.md +28 -29
  2. package/.opencode/skills/swarm-pr-review/references/prompt-templates.md +21 -5
  3. package/dist/background/delegation-health.d.ts +1 -1
  4. package/dist/background/pending-delegations.d.ts +46 -1
  5. package/dist/background/pr-review-contract.d.ts +245 -2
  6. package/dist/cli/{coder-settlement-50p7dsya.js → coder-settlement-678ccmnf.js} +11 -10
  7. package/dist/cli/{config-doctor-a7drgs33.js → config-doctor-fr8dfrt2.js} +3 -3
  8. package/dist/cli/{core-madqgdsc.js → core-4j1hbhey.js} +2 -2
  9. package/dist/cli/{curation-policy-ray8h55z.js → curation-policy-47przjwg.js} +6 -6
  10. package/dist/cli/{curator-3sz7refy.js → curator-85d97240.js} +33 -32
  11. package/dist/cli/curator-llm-factory-s9s4s0q3.js +67 -0
  12. package/dist/cli/{evidence-summary-service-cwyjkdsa.js → evidence-summary-service-9dyt2kzh.js} +15 -14
  13. package/dist/cli/{gate-evidence-95k5ap1z.js → gate-evidence-a6paafg8.js} +7 -7
  14. package/dist/cli/guardrail-explain-4a2xdtew.js +68 -0
  15. package/dist/cli/{guardrail-log-nerqk9qb.js → guardrail-log-27nkntrx.js} +9 -6
  16. package/dist/cli/{guardrail-reset-chbc0mep.js → guardrail-reset-xn7k3hn8.js} +33 -32
  17. package/dist/cli/{hive-promoter-4rtxhw7n.js → hive-promoter-k57j3kp6.js} +33 -32
  18. package/dist/cli/{index-515nwvdp.js → index-497a3hhj.js} +19 -10
  19. package/dist/cli/{index-h96xp4t0.js → index-61c3d769.js} +875 -37
  20. package/dist/cli/{index-ve0xj03m.js → index-7ezv5j23.js} +4 -4
  21. package/dist/cli/{index-0zerbq1v.js → index-7h2armwf.js} +23 -14
  22. package/dist/cli/{index-ebxmfr4j.js → index-7npz9n4s.js} +5 -4
  23. package/dist/cli/{index-m9m3emns.js → index-7v0ex0jt.js} +2 -2
  24. package/dist/cli/{index-ebz97mks.js → index-8c9qzpy7.js} +1 -0
  25. package/dist/cli/{index-5hfqc3h3.js → index-98jmggma.js} +24 -7
  26. package/dist/cli/{index-8fyebh3w.js → index-awjx0wgk.js} +1 -1
  27. package/dist/cli/{index-av3gnekk.js → index-b5adxpy6.js} +1 -1
  28. package/dist/cli/{index-t3wk7q51.js → index-bqxffayb.js} +1 -1
  29. package/dist/cli/{index-yt75r1er.js → index-c9zp4xwc.js} +13 -2
  30. package/dist/cli/{index-9qw4sbg1.js → index-dh5q6z7y.js} +7 -7
  31. package/dist/cli/{index-prknc0xn.js → index-dke4wzkn.js} +108 -44
  32. package/dist/cli/{index-nvz4mp5w.js → index-dq93ar40.js} +6 -6
  33. package/dist/cli/{index-zswy6xgb.js → index-drqvph47.js} +7 -7
  34. package/dist/cli/{index-sn6mtxxc.js → index-e1ygmd4q.js} +35 -34
  35. package/dist/cli/{index-6jp5yxye.js → index-f72612zc.js} +16 -2
  36. package/dist/cli/{index-y2d381ce.js → index-gjx53y3c.js} +1 -1
  37. package/dist/cli/{index-xs32znyz.js → index-j3ss86kf.js} +1 -1
  38. package/dist/cli/{index-p3ym3y8b.js → index-jszabr0r.js} +4 -4
  39. package/dist/cli/{index-wwpe4am7.js → index-m1cw9fsh.js} +8 -8
  40. package/dist/cli/{index-8zw60wya.js → index-m84z3aa8.js} +13 -4
  41. package/dist/cli/index-mmr96pwr.js +785 -0
  42. package/dist/cli/{index-gk6gpe7r.js → index-nk498mx6.js} +2 -2
  43. package/dist/cli/{index-2jzmg2km.js → index-nnzdayvk.js} +6 -6
  44. package/dist/cli/{index-fnxmg8sz.js → index-ny0g8fdg.js} +5 -5
  45. package/dist/cli/{index-40t6s98s.js → index-pkz91fwm.js} +3 -3
  46. package/dist/cli/{index-bxpqq9th.js → index-pqjcyj0p.js} +3 -3
  47. package/dist/cli/{index-nhhek8yw.js → index-prv20xq6.js} +1 -1
  48. package/dist/cli/{index-mqfs5f8a.js → index-qc53dfzh.js} +2 -2
  49. package/dist/cli/{index-xqjhbfbx.js → index-v8dsmee1.js} +4 -4
  50. package/dist/cli/{index-qxpfmryw.js → index-wccdm7jv.js} +5 -5
  51. package/dist/cli/{index-rq4jcw64.js → index-z0bxbb9g.js} +4 -4
  52. package/dist/cli/{index-txwx9p21.js → index-zdv914xa.js} +585 -471
  53. package/dist/cli/{index-2fq4a3vk.js → index-znf683sm.js} +1 -1
  54. package/dist/cli/{index-v3ybemb1.js → index-zpzvpybn.js} +2 -2
  55. package/dist/cli/index.js +33 -32
  56. package/dist/cli/{knowledge-escalator-f80n84ch.js → knowledge-escalator-3q2x34cg.js} +14 -13
  57. package/dist/cli/{knowledge-events-1d7v2krw.js → knowledge-events-5y34w84b.js} +12 -11
  58. package/dist/cli/{knowledge-link-vm4caewt.js → knowledge-link-xezm8hr3.js} +5 -5
  59. package/dist/cli/{knowledge-store-66yxeet7.js → knowledge-store-fqv89q5k.js} +6 -6
  60. package/dist/cli/{knowledge-validator-p0xcx7jx.js → knowledge-validator-fsdx14tk.js} +8 -8
  61. package/dist/cli/{model-preflight-w85ecyxh.js → model-preflight-yqqchzjn.js} +1 -1
  62. package/dist/cli/{pending-delegations-vad1z71d.js → pending-delegations-6ae7wy5q.js} +7 -3
  63. package/dist/cli/{pr-review-reentry-authorization-kn3nny7h.js → pr-review-reentry-authorization-986tk381.js} +35 -33
  64. package/dist/cli/{pr-subscriptions-482gzvt6.js → pr-subscriptions-asjevc5p.js} +5 -4
  65. package/dist/cli/{runner-sn7a6zd0.js → runner-wsdcy2d6.js} +6 -6
  66. package/dist/cli/{scan-cursor-2v7995nb.js → scan-cursor-shn926r6.js} +7 -7
  67. package/dist/cli/{schema-dy8fqycb.js → schema-98tdb9h0.js} +4 -2
  68. package/dist/cli/{scope-persistence-baty62vx.js → scope-persistence-cn34xnwr.js} +10 -9
  69. package/dist/cli/{skill-generator-nwrvtqbz.js → skill-generator-kck7087c.js} +16 -15
  70. package/dist/cli/{telemetry-3rh94wv3.js → telemetry-gpr9s3sm.js} +3 -1
  71. package/dist/cli/{worktree-collision-ownership-cy24p5mr.js → worktree-collision-ownership-6b3kshcv.js} +6 -5
  72. package/dist/cli/{worktree-isolation-8jbx0s8d.js → worktree-isolation-he01qhss.js} +33 -32
  73. package/dist/config/constants.d.ts +8 -0
  74. package/dist/config/context-window.d.ts +11 -4
  75. package/dist/config/evidence-schema.d.ts +9 -6
  76. package/dist/config/schema.d.ts +8 -0
  77. package/dist/context-map/telemetry.d.ts +1 -1
  78. package/dist/health/learning-health.d.ts +356 -0
  79. package/dist/hooks/context-budget.d.ts +10 -1
  80. package/dist/hooks/curator.d.ts +2 -0
  81. package/dist/hooks/final-context-accounting.d.ts +2 -0
  82. package/dist/hooks/model-limits.d.ts +56 -25
  83. package/dist/hooks/pr-workflow-gate.d.ts +25 -1
  84. package/dist/hooks/skill-usage-pending.d.ts +1 -1
  85. package/dist/index.js +623 -609
  86. package/dist/observability/catalog.d.ts +2 -2
  87. package/dist/observability/ids.d.ts +17 -0
  88. package/dist/prm/trajectory-store.d.ts +1 -1
  89. package/dist/services/diagnose-service.d.ts +7 -0
  90. package/dist/services/status-service.d.ts +18 -0
  91. package/dist/telemetry.d.ts +52 -1
  92. package/dist/tools/context-status.d.ts +15 -1
  93. package/dist/tools/dispatch-lanes.d.ts +27 -3
  94. package/dist/tools/index.d.ts +1 -0
  95. package/dist/tools/manifest.d.ts +1 -0
  96. package/dist/tools/repo-graph/ontology.d.ts +6 -0
  97. package/dist/tools/repo-graph/pack-query.d.ts +36 -0
  98. package/dist/tools/repo-graph/types.d.ts +198 -1
  99. package/dist/tools/repo-graph.d.ts +5 -3
  100. package/dist/tools/sast-baseline.d.ts +2 -0
  101. package/dist/tools/sast-scan.d.ts +2 -2
  102. package/dist/tools/submit-pr-review-result.d.ts +5 -0
  103. package/dist/tools/tool-metadata.d.ts +8 -0
  104. package/opencode-swarm.schema.json +4 -0
  105. package/package.json +1 -1
  106. package/dist/cli/curator-llm-factory-pyp5kmra.js +0 -66
  107. package/dist/cli/guardrail-explain-a13kbmrt.js +0 -67
@@ -39,7 +39,7 @@ var CONSUMER_COST_JOIN = Object.freeze([
39
39
  "src/services/cost-accounting.ts:413"
40
40
  ]);
41
41
  var CONSUMER_GATE_STATS = Object.freeze(["src/evaluation/gate-stats.ts:99"]);
42
- var CONSUMER_HEARTBEAT_LISTENER = Object.freeze(["src/telemetry.ts:214"]);
42
+ var CONSUMER_HEARTBEAT_LISTENER = Object.freeze(["src/telemetry.ts:221"]);
43
43
  function defineEntry(kind, input) {
44
44
  const entry = {
45
45
  kind,
@@ -72,7 +72,7 @@ var CATALOG_SOURCE = [
72
72
  category: "lifecycle",
73
73
  severity: "info",
74
74
  privacyClass: "pseudonymous",
75
- producer: "src/telemetry.ts:519",
75
+ producer: "src/telemetry.ts:540",
76
76
  consumers: NO_CONSUMERS,
77
77
  futureOwnerIssue: ISSUE_SINK,
78
78
  retentionOwnerIssue: ISSUE_LIFECYCLE_RETENTION,
@@ -86,7 +86,7 @@ var CATALOG_SOURCE = [
86
86
  category: "lifecycle",
87
87
  severity: "info",
88
88
  privacyClass: "pseudonymous",
89
- producer: "src/telemetry.ts:523",
89
+ producer: "src/telemetry.ts:544",
90
90
  consumers: NO_CONSUMERS,
91
91
  futureOwnerIssue: ISSUE_SINK,
92
92
  retentionOwnerIssue: ISSUE_LIFECYCLE_RETENTION,
@@ -100,7 +100,7 @@ var CATALOG_SOURCE = [
100
100
  category: "lifecycle",
101
101
  severity: "info",
102
102
  privacyClass: "pseudonymous",
103
- producer: "src/telemetry.ts:527",
103
+ producer: "src/telemetry.ts:548",
104
104
  consumers: NO_CONSUMERS,
105
105
  futureOwnerIssue: ISSUE_SINK,
106
106
  retentionOwnerIssue: ISSUE_LIFECYCLE_RETENTION,
@@ -114,7 +114,7 @@ var CATALOG_SOURCE = [
114
114
  category: "lifecycle",
115
115
  severity: "info",
116
116
  privacyClass: "pseudonymous",
117
- producer: "src/telemetry.ts:565",
117
+ producer: "src/telemetry.ts:586",
118
118
  consumers: NO_CONSUMERS,
119
119
  futureOwnerIssue: ISSUE_SINK,
120
120
  retentionOwnerIssue: ISSUE_LIFECYCLE_RETENTION,
@@ -128,7 +128,7 @@ var CATALOG_SOURCE = [
128
128
  category: "lifecycle",
129
129
  severity: "info",
130
130
  privacyClass: "pseudonymous",
131
- producer: "src/telemetry.ts:613",
131
+ producer: "src/telemetry.ts:634",
132
132
  consumers: NO_CONSUMERS,
133
133
  futureOwnerIssue: ISSUE_SINK,
134
134
  retentionOwnerIssue: ISSUE_LIFECYCLE_RETENTION,
@@ -142,7 +142,7 @@ var CATALOG_SOURCE = [
142
142
  category: "lifecycle",
143
143
  severity: "debug",
144
144
  privacyClass: "pseudonymous",
145
- producer: "src/telemetry.ts:795",
145
+ producer: "src/telemetry.ts:816",
146
146
  consumers: CONSUMER_HEARTBEAT_LISTENER,
147
147
  retentionOwnerIssue: ISSUE_LIFECYCLE_RETENTION,
148
148
  requiredWorkflowIds: REQUIRE_SESSION,
@@ -155,7 +155,7 @@ var CATALOG_SOURCE = [
155
155
  category: "lifecycle",
156
156
  severity: "info",
157
157
  privacyClass: "pseudonymous",
158
- producer: "src/telemetry.ts:803",
158
+ producer: "src/telemetry.ts:824",
159
159
  consumers: NO_CONSUMERS,
160
160
  futureOwnerIssue: ISSUE_SINK,
161
161
  retentionOwnerIssue: ISSUE_LIFECYCLE_RETENTION,
@@ -168,7 +168,7 @@ var CATALOG_SOURCE = [
168
168
  category: "lifecycle",
169
169
  severity: "info",
170
170
  privacyClass: "pseudonymous",
171
- producer: "src/telemetry.ts:828",
171
+ producer: "src/telemetry.ts:849",
172
172
  consumers: NO_CONSUMERS,
173
173
  futureOwnerIssue: ISSUE_SINK,
174
174
  retentionOwnerIssue: ISSUE_LIFECYCLE_RETENTION,
@@ -182,7 +182,7 @@ var CATALOG_SOURCE = [
182
182
  category: "delegation",
183
183
  severity: "info",
184
184
  privacyClass: "pseudonymous",
185
- producer: "src/telemetry.ts:531",
185
+ producer: "src/telemetry.ts:552",
186
186
  consumers: NO_CONSUMERS,
187
187
  futureOwnerIssue: ISSUE_SINK,
188
188
  retentionOwnerIssue: ISSUE_LIFECYCLE_RETENTION,
@@ -196,7 +196,7 @@ var CATALOG_SOURCE = [
196
196
  category: "delegation",
197
197
  severity: "info",
198
198
  privacyClass: "pseudonymous",
199
- producer: "src/telemetry.ts:541",
199
+ producer: "src/telemetry.ts:562",
200
200
  consumers: CONSUMER_COST_ACCOUNTING,
201
201
  retentionOwnerIssue: ISSUE_COST_RETENTION,
202
202
  requiredWorkflowIds: REQUIRE_SESSION_AND_TASK,
@@ -249,7 +249,7 @@ var CATALOG_SOURCE = [
249
249
  category: "delegation",
250
250
  severity: "notice",
251
251
  privacyClass: "pseudonymous",
252
- producer: "src/telemetry.ts:646",
252
+ producer: "src/telemetry.ts:667",
253
253
  consumers: NO_CONSUMERS,
254
254
  futureOwnerIssue: ISSUE_SINK,
255
255
  retentionOwnerIssue: ISSUE_LIFECYCLE_RETENTION,
@@ -263,7 +263,7 @@ var CATALOG_SOURCE = [
263
263
  category: "delegation",
264
264
  severity: "warning",
265
265
  privacyClass: "pseudonymous",
266
- producer: "src/telemetry.ts:660",
266
+ producer: "src/telemetry.ts:681",
267
267
  consumers: NO_CONSUMERS,
268
268
  futureOwnerIssue: ISSUE_SINK,
269
269
  retentionOwnerIssue: ISSUE_LIFECYCLE_RETENTION,
@@ -277,7 +277,7 @@ var CATALOG_SOURCE = [
277
277
  category: "gate",
278
278
  severity: "info",
279
279
  privacyClass: "pseudonymous",
280
- producer: "src/telemetry.ts:574",
280
+ producer: "src/telemetry.ts:595",
281
281
  consumers: NO_CONSUMERS,
282
282
  futureOwnerIssue: ISSUE_SINK,
283
283
  retentionOwnerIssue: ISSUE_LIFECYCLE_RETENTION,
@@ -290,7 +290,7 @@ var CATALOG_SOURCE = [
290
290
  category: "gate",
291
291
  severity: "warning",
292
292
  privacyClass: "pseudonymous",
293
- producer: "src/telemetry.ts:591",
293
+ producer: "src/telemetry.ts:612",
294
294
  consumers: NO_CONSUMERS,
295
295
  futureOwnerIssue: ISSUE_SINK,
296
296
  retentionOwnerIssue: ISSUE_LIFECYCLE_RETENTION,
@@ -303,7 +303,7 @@ var CATALOG_SOURCE = [
303
303
  category: "gate",
304
304
  severity: "warning",
305
305
  privacyClass: "sensitive",
306
- producer: "src/telemetry.ts:578",
306
+ producer: "src/telemetry.ts:599",
307
307
  consumers: NO_CONSUMERS,
308
308
  futureOwnerIssue: ISSUE_SINK,
309
309
  retentionOwnerIssue: ISSUE_LIFECYCLE_RETENTION,
@@ -317,7 +317,7 @@ var CATALOG_SOURCE = [
317
317
  category: "gate",
318
318
  severity: "info",
319
319
  privacyClass: "pseudonymous",
320
- producer: "src/telemetry.ts:601",
320
+ producer: "src/telemetry.ts:622",
321
321
  consumers: CONSUMER_GATE_STATS,
322
322
  retentionOwnerIssue: ISSUE_LIFECYCLE_RETENTION,
323
323
  requiredWorkflowIds: REQUIRE_SESSION_AND_TASK
@@ -329,7 +329,7 @@ var CATALOG_SOURCE = [
329
329
  category: "cost",
330
330
  severity: "info",
331
331
  privacyClass: "pseudonymous",
332
- producer: "src/telemetry.ts:617",
332
+ producer: "src/telemetry.ts:638",
333
333
  consumers: NO_CONSUMERS,
334
334
  futureOwnerIssue: ISSUE_SINK,
335
335
  retentionOwnerIssue: ISSUE_COST_RETENTION,
@@ -342,7 +342,7 @@ var CATALOG_SOURCE = [
342
342
  category: "guardrail",
343
343
  severity: "notice",
344
344
  privacyClass: "pseudonymous",
345
- producer: "src/telemetry.ts:636",
345
+ producer: "src/telemetry.ts:657",
346
346
  consumers: NO_CONSUMERS,
347
347
  futureOwnerIssue: ISSUE_SINK,
348
348
  retentionOwnerIssue: ISSUE_SINK,
@@ -355,7 +355,7 @@ var CATALOG_SOURCE = [
355
355
  category: "guardrail",
356
356
  severity: "error",
357
357
  privacyClass: "pseudonymous",
358
- producer: "src/telemetry.ts:674",
358
+ producer: "src/telemetry.ts:695",
359
359
  consumers: NO_CONSUMERS,
360
360
  futureOwnerIssue: ISSUE_SINK,
361
361
  retentionOwnerIssue: ISSUE_SINK,
@@ -368,7 +368,7 @@ var CATALOG_SOURCE = [
368
368
  category: "guardrail",
369
369
  severity: "warning",
370
370
  privacyClass: "pseudonymous",
371
- producer: "src/telemetry.ts:683",
371
+ producer: "src/telemetry.ts:704",
372
372
  consumers: NO_CONSUMERS,
373
373
  futureOwnerIssue: ISSUE_SINK,
374
374
  retentionOwnerIssue: ISSUE_SINK,
@@ -381,7 +381,7 @@ var CATALOG_SOURCE = [
381
381
  category: "guardrail",
382
382
  severity: "warning",
383
383
  privacyClass: "sensitive",
384
- producer: "src/telemetry.ts:687",
384
+ producer: "src/telemetry.ts:708",
385
385
  consumers: NO_CONSUMERS,
386
386
  futureOwnerIssue: ISSUE_SINK,
387
387
  retentionOwnerIssue: ISSUE_SINK,
@@ -394,7 +394,7 @@ var CATALOG_SOURCE = [
394
394
  category: "guardrail",
395
395
  severity: "error",
396
396
  privacyClass: "sensitive",
397
- producer: "src/telemetry.ts:783",
397
+ producer: "src/telemetry.ts:804",
398
398
  consumers: NO_CONSUMERS,
399
399
  futureOwnerIssue: ISSUE_SINK,
400
400
  retentionOwnerIssue: ISSUE_SINK,
@@ -407,7 +407,7 @@ var CATALOG_SOURCE = [
407
407
  category: "guardrail",
408
408
  severity: "warning",
409
409
  privacyClass: "pseudonymous",
410
- producer: "src/telemetry.ts:791",
410
+ producer: "src/telemetry.ts:812",
411
411
  consumers: NO_CONSUMERS,
412
412
  futureOwnerIssue: ISSUE_SINK,
413
413
  retentionOwnerIssue: ISSUE_SINK,
@@ -420,7 +420,7 @@ var CATALOG_SOURCE = [
420
420
  category: "guardrail",
421
421
  severity: "warning",
422
422
  privacyClass: "pseudonymous",
423
- producer: "src/telemetry.ts:813",
423
+ producer: "src/telemetry.ts:834",
424
424
  consumers: NO_CONSUMERS,
425
425
  futureOwnerIssue: ISSUE_SINK,
426
426
  retentionOwnerIssue: ISSUE_SINK,
@@ -433,7 +433,7 @@ var CATALOG_SOURCE = [
433
433
  category: "guardrail",
434
434
  severity: "warning",
435
435
  privacyClass: "pseudonymous",
436
- producer: "src/telemetry.ts:701",
436
+ producer: "src/telemetry.ts:722",
437
437
  consumers: NO_CONSUMERS,
438
438
  futureOwnerIssue: ISSUE_SINK,
439
439
  retentionOwnerIssue: ISSUE_SINK,
@@ -446,7 +446,7 @@ var CATALOG_SOURCE = [
446
446
  category: "guardrail",
447
447
  severity: "warning",
448
448
  privacyClass: "pseudonymous",
449
- producer: "src/telemetry.ts:722",
449
+ producer: "src/telemetry.ts:743",
450
450
  consumers: NO_CONSUMERS,
451
451
  futureOwnerIssue: ISSUE_SINK,
452
452
  retentionOwnerIssue: ISSUE_SINK,
@@ -459,7 +459,7 @@ var CATALOG_SOURCE = [
459
459
  category: "guardrail",
460
460
  severity: "warning",
461
461
  privacyClass: "pseudonymous",
462
- producer: "src/telemetry.ts:736",
462
+ producer: "src/telemetry.ts:757",
463
463
  consumers: NO_CONSUMERS,
464
464
  futureOwnerIssue: ISSUE_SINK,
465
465
  retentionOwnerIssue: ISSUE_SINK,
@@ -472,7 +472,7 @@ var CATALOG_SOURCE = [
472
472
  category: "guardrail",
473
473
  severity: "error",
474
474
  privacyClass: "pseudonymous",
475
- producer: "src/telemetry.ts:753",
475
+ producer: "src/telemetry.ts:774",
476
476
  consumers: NO_CONSUMERS,
477
477
  futureOwnerIssue: ISSUE_SINK,
478
478
  retentionOwnerIssue: ISSUE_SINK,
@@ -485,7 +485,7 @@ var CATALOG_SOURCE = [
485
485
  category: "guardrail",
486
486
  severity: "error",
487
487
  privacyClass: "sensitive",
488
- producer: "src/telemetry.ts:770",
488
+ producer: "src/telemetry.ts:791",
489
489
  consumers: NO_CONSUMERS,
490
490
  futureOwnerIssue: ISSUE_SINK,
491
491
  retentionOwnerIssue: ISSUE_SINK,
@@ -498,7 +498,7 @@ var CATALOG_SOURCE = [
498
498
  category: "prm",
499
499
  severity: "error",
500
500
  privacyClass: "pseudonymous",
501
- producer: "src/telemetry.ts:1122",
501
+ producer: "src/telemetry.ts:1187",
502
502
  consumers: NO_CONSUMERS,
503
503
  futureOwnerIssue: ISSUE_SINK,
504
504
  retentionOwnerIssue: ISSUE_SINK,
@@ -511,7 +511,7 @@ var CATALOG_SOURCE = [
511
511
  category: "prm",
512
512
  severity: "notice",
513
513
  privacyClass: "pseudonymous",
514
- producer: "src/telemetry.ts:843",
514
+ producer: "src/telemetry.ts:864",
515
515
  consumers: NO_CONSUMERS,
516
516
  futureOwnerIssue: ISSUE_SINK,
517
517
  retentionOwnerIssue: ISSUE_SINK,
@@ -524,7 +524,7 @@ var CATALOG_SOURCE = [
524
524
  category: "prm",
525
525
  severity: "notice",
526
526
  privacyClass: "pseudonymous",
527
- producer: "src/telemetry.ts:857",
527
+ producer: "src/telemetry.ts:878",
528
528
  consumers: NO_CONSUMERS,
529
529
  futureOwnerIssue: ISSUE_SINK,
530
530
  retentionOwnerIssue: ISSUE_SINK,
@@ -537,7 +537,7 @@ var CATALOG_SOURCE = [
537
537
  category: "prm",
538
538
  severity: "warning",
539
539
  privacyClass: "pseudonymous",
540
- producer: "src/telemetry.ts:870",
540
+ producer: "src/telemetry.ts:891",
541
541
  consumers: NO_CONSUMERS,
542
542
  futureOwnerIssue: ISSUE_SINK,
543
543
  retentionOwnerIssue: ISSUE_SINK,
@@ -550,7 +550,7 @@ var CATALOG_SOURCE = [
550
550
  category: "prm",
551
551
  severity: "critical",
552
552
  privacyClass: "pseudonymous",
553
- producer: "src/telemetry.ts:884",
553
+ producer: "src/telemetry.ts:905",
554
554
  consumers: NO_CONSUMERS,
555
555
  futureOwnerIssue: ISSUE_SINK,
556
556
  retentionOwnerIssue: ISSUE_SINK,
@@ -660,7 +660,7 @@ var CATALOG_SOURCE = [
660
660
  category: "lifecycle",
661
661
  severity: "notice",
662
662
  privacyClass: "operational",
663
- producer: "src/telemetry.ts:921",
663
+ producer: "src/telemetry.ts:942",
664
664
  consumers: NO_CONSUMERS,
665
665
  futureOwnerIssue: ISSUE_SINK,
666
666
  retentionOwnerIssue: ISSUE_SINK
@@ -700,7 +700,7 @@ var CATALOG_SOURCE = [
700
700
  category: "lifecycle",
701
701
  severity: "notice",
702
702
  privacyClass: "operational",
703
- producer: "src/telemetry.ts:943",
703
+ producer: "src/telemetry.ts:964",
704
704
  consumers: NO_CONSUMERS,
705
705
  futureOwnerIssue: ISSUE_SINK,
706
706
  retentionOwnerIssue: ISSUE_SINK,
@@ -714,7 +714,7 @@ var CATALOG_SOURCE = [
714
714
  category: "lifecycle",
715
715
  severity: "notice",
716
716
  privacyClass: "operational",
717
- producer: "src/telemetry.ts:967",
717
+ producer: "src/telemetry.ts:988",
718
718
  consumers: NO_CONSUMERS,
719
719
  futureOwnerIssue: ISSUE_SINK,
720
720
  retentionOwnerIssue: ISSUE_SINK,
@@ -728,7 +728,7 @@ var CATALOG_SOURCE = [
728
728
  category: "lifecycle",
729
729
  severity: "notice",
730
730
  privacyClass: "operational",
731
- producer: "src/telemetry.ts:1004",
731
+ producer: "src/telemetry.ts:1025",
732
732
  consumers: NO_CONSUMERS,
733
733
  futureOwnerIssue: ISSUE_SINK,
734
734
  retentionOwnerIssue: ISSUE_SINK,
@@ -742,7 +742,7 @@ var CATALOG_SOURCE = [
742
742
  category: "lifecycle",
743
743
  severity: "notice",
744
744
  privacyClass: "operational",
745
- producer: "src/telemetry.ts:1030",
745
+ producer: "src/telemetry.ts:1051",
746
746
  consumers: NO_CONSUMERS,
747
747
  futureOwnerIssue: ISSUE_SINK,
748
748
  retentionOwnerIssue: ISSUE_SINK,
@@ -756,7 +756,7 @@ var CATALOG_SOURCE = [
756
756
  category: "lifecycle",
757
757
  severity: "notice",
758
758
  privacyClass: "operational",
759
- producer: "src/telemetry.ts:1054",
759
+ producer: "src/telemetry.ts:1075",
760
760
  consumers: NO_CONSUMERS,
761
761
  futureOwnerIssue: ISSUE_SINK,
762
762
  retentionOwnerIssue: ISSUE_SINK,
@@ -770,7 +770,7 @@ var CATALOG_SOURCE = [
770
770
  category: "lifecycle",
771
771
  severity: "notice",
772
772
  privacyClass: "operational",
773
- producer: "src/telemetry.ts:1077",
773
+ producer: "src/telemetry.ts:1098",
774
774
  consumers: NO_CONSUMERS,
775
775
  futureOwnerIssue: ISSUE_SINK,
776
776
  retentionOwnerIssue: ISSUE_SINK,
@@ -784,13 +784,27 @@ var CATALOG_SOURCE = [
784
784
  category: "lifecycle",
785
785
  severity: "notice",
786
786
  privacyClass: "operational",
787
- producer: "src/telemetry.ts:1106",
787
+ producer: "src/telemetry.ts:1127",
788
788
  consumers: NO_CONSUMERS,
789
789
  futureOwnerIssue: ISSUE_SINK,
790
790
  retentionOwnerIssue: ISSUE_SINK,
791
791
  requiredWorkflowIds: NO_WORKFLOW_IDS,
792
792
  allowsLinks: false
793
793
  }
794
+ ],
795
+ [
796
+ "learning_health_alarm",
797
+ {
798
+ category: "lifecycle",
799
+ severity: "warning",
800
+ privacyClass: "operational",
801
+ producer: "src/telemetry.ts:1171",
802
+ consumers: NO_CONSUMERS,
803
+ futureOwnerIssue: ISSUE_SINK,
804
+ retentionOwnerIssue: 2044,
805
+ requiredWorkflowIds: NO_WORKFLOW_IDS,
806
+ allowsLinks: false
807
+ }
794
808
  ]
795
809
  ];
796
810
  var catalog = {};
@@ -933,6 +947,10 @@ var ALL_ZERO_SPAN_ID = "0".repeat(SPAN_ID_HEX_LENGTH);
933
947
  var SENTINEL_TRACE_ID = `${"0".repeat(TRACE_ID_HEX_LENGTH - 1)}1`;
934
948
  var SENTINEL_SPAN_ID = `${"0".repeat(SPAN_ID_HEX_LENGTH - 1)}1`;
935
949
  var MAX_REGENERATION_ATTEMPTS = 4;
950
+ var LINEAGE_SALT_ENV = "SWARM_OBSERVABILITY_LINEAGE_SALT";
951
+ var DEFAULT_LINEAGE_SALT = "opencode-swarm/observability/lineage/v1";
952
+ var LINEAGE_SEPARATOR = "\x00";
953
+ var PSEUDONYMOUS_REF_LENGTH = 16;
936
954
  function newTraceId() {
937
955
  for (let attempt = 0;attempt < MAX_REGENERATION_ATTEMPTS; attempt++) {
938
956
  const hex = randomBytes(TRACE_ID_BYTES).toString("hex");
@@ -975,6 +993,15 @@ function newTraceAndSpanId() {
975
993
  }
976
994
  return { traceId, spanId };
977
995
  }
996
+ function resolveLineageSalt() {
997
+ const configured = process.env[LINEAGE_SALT_ENV];
998
+ if (typeof configured === "string" && configured.length > 0)
999
+ return configured;
1000
+ return DEFAULT_LINEAGE_SALT;
1001
+ }
1002
+ function pseudonymousRef(absolutePath, salt) {
1003
+ return createHash("sha256").update(salt + LINEAGE_SEPARATOR + absolutePath, "utf8").digest("hex").slice(0, PSEUDONYMOUS_REF_LENGTH);
1004
+ }
978
1005
  // src/observability/legacy.ts
979
1006
  var LEGACY_TELEMETRY_SOURCE_STORE = ".swarm/telemetry.jsonl";
980
1007
  var NON_OBJECT_PAYLOAD_MARKER = "<non-object-payload>";
@@ -1281,6 +1308,35 @@ var KNOWN_TELEMETRY_KEYS = Object.freeze({
1281
1308
  "newest_timestamp",
1282
1309
  "coverage"
1283
1310
  ]),
1311
+ learning_health_alarm: Object.freeze([
1312
+ "alarm",
1313
+ "transition",
1314
+ "severity",
1315
+ "scope_class",
1316
+ "session_ref",
1317
+ "model",
1318
+ "provider",
1319
+ "window_ms",
1320
+ "coverage_facts",
1321
+ "raise_facts",
1322
+ "age_ms",
1323
+ "limit_source",
1324
+ "denominator_fallback",
1325
+ "pressure_pct",
1326
+ "band",
1327
+ "share_pct",
1328
+ "field_count",
1329
+ "non_field_count",
1330
+ "store",
1331
+ "dropped",
1332
+ "corrupt",
1333
+ "retained",
1334
+ "accepted",
1335
+ "gap_type",
1336
+ "role",
1337
+ "phase",
1338
+ "reason"
1339
+ ]),
1284
1340
  core_events_health: Object.freeze([
1285
1341
  "trigger",
1286
1342
  "accepted_count",
@@ -1800,6 +1856,11 @@ function emit(event, data) {
1800
1856
  function addTelemetryListener(callback) {
1801
1857
  _listeners.push(callback);
1802
1858
  }
1859
+ function removeTelemetryListener(callback) {
1860
+ const idx = _listeners.indexOf(callback);
1861
+ if (idx >= 0)
1862
+ _listeners.splice(idx, 1);
1863
+ }
1803
1864
  function rotateTelemetryIfNeeded(maxBytes = 10 * 1024 * 1024) {
1804
1865
  try {
1805
1866
  if (_projectDirectory === null) {
@@ -2074,6 +2135,9 @@ var telemetry = {
2074
2135
  prSubscriptionHealth(data) {
2075
2136
  _internals.emit("pr_subscription_health", data);
2076
2137
  },
2138
+ learningHealthAlarm(data) {
2139
+ _internals.emit("learning_health_alarm", data);
2140
+ },
2077
2141
  prmHardStopDelivered(sessionId, pattern, level, occurrenceCount) {
2078
2142
  _internals.emit("prm_hard_stop_delivered", {
2079
2143
  sessionId,
@@ -2093,4 +2157,4 @@ var _internals = {
2093
2157
  toLegacyTelemetryLine
2094
2158
  };
2095
2159
 
2096
- export { startHeartbeatTracking, getLastHeartbeat, stopHeartbeatTracking, resetHeartbeatTrackingForTesting, ROTATION_CHECK_INTERVAL, resetTelemetryForTesting, initTelemetry, emit, addTelemetryListener, rotateTelemetryIfNeeded, flushAndDrainTelemetry, telemetry, _internals };
2160
+ export { resolveLineageSalt, pseudonymousRef, startHeartbeatTracking, getLastHeartbeat, stopHeartbeatTracking, resetHeartbeatTrackingForTesting, ROTATION_CHECK_INTERVAL, resetTelemetryForTesting, initTelemetry, emit, addTelemetryListener, removeTelemetryListener, rotateTelemetryIfNeeded, flushAndDrainTelemetry, telemetry, _internals };
@@ -5,7 +5,7 @@ import {
5
5
  } from "./index-3f7hqtgg.js";
6
6
  import {
7
7
  removeWorktreeProvisioningOwner
8
- } from "./index-8fyebh3w.js";
8
+ } from "./index-awjx0wgk.js";
9
9
  import {
10
10
  SOURCE_WORKTREE_GONE_STAGE,
11
11
  getTaskWorkflowSnapshot,
@@ -13,13 +13,13 @@ import {
13
13
  reconcileLandedMerge,
14
14
  withTaskEvidenceTransaction,
15
15
  writeWorkflowWalFile
16
- } from "./index-rq4jcw64.js";
16
+ } from "./index-z0bxbb9g.js";
17
17
  import {
18
18
  canonicalRootKeyFresh
19
19
  } from "./index-ddszzne4.js";
20
20
  import {
21
21
  appendCoreEventSync
22
- } from "./index-0zerbq1v.js";
22
+ } from "./index-7h2armwf.js";
23
23
  import {
24
24
  isPathWithinDeclaredScope
25
25
  } from "./index-556ja8an.js";
@@ -36,7 +36,7 @@ import {
36
36
  } from "./index-4rhhvd1a.js";
37
37
  import {
38
38
  tryAcquireLock
39
- } from "./index-av3gnekk.js";
39
+ } from "./index-b5adxpy6.js";
40
40
  import {
41
41
  criticalWarn,
42
42
  init_logger
@@ -478,7 +478,7 @@ async function cleanupRecoveredWorktree(directory, descriptor) {
478
478
  awaitingMergeByCallID,
479
479
  cleanupStandardWorktreeForCallId,
480
480
  standardWorktreeByCallID
481
- } = await import("./worktree-isolation-8jbx0s8d.js");
481
+ } = await import("./worktree-isolation-he01qhss.js");
482
482
  standardWorktreeByCallID.delete(descriptor.callID);
483
483
  if (hasResidue)
484
484
  awaitingMergeByCallID.set(descriptor.callID, {
@@ -602,7 +602,7 @@ async function recoverCoderSettlement(directory, taskId) {
602
602
  awaitingMergeByCallID,
603
603
  finishStandardWorktreeDispatch,
604
604
  standardWorktreeByCallID
605
- } = await import("./worktree-isolation-8jbx0s8d.js");
605
+ } = await import("./worktree-isolation-he01qhss.js");
606
606
  const descriptor = wal.worktree;
607
607
  const reconstructedDispatch = {
608
608
  callID: descriptor.callID,
@@ -2,23 +2,23 @@
2
2
  import {
3
3
  computePlanStructureHash,
4
4
  derivePlanId
5
- } from "./index-bxpqq9th.js";
5
+ } from "./index-pqjcyj0p.js";
6
6
  import {
7
7
  appendCoreEventSync
8
- } from "./index-0zerbq1v.js";
8
+ } from "./index-7h2armwf.js";
9
9
  import {
10
10
  unsafePathTextReason
11
11
  } from "./index-556ja8an.js";
12
12
  import {
13
13
  PlanSchema
14
- } from "./index-t3wk7q51.js";
14
+ } from "./index-bqxffayb.js";
15
+ import {
16
+ assertProjectRoot
17
+ } from "./index-b5adxpy6.js";
15
18
  import {
16
19
  atomicWriteSwarmFile,
17
20
  atomicWriteSwarmFileSync
18
- } from "./index-9qw4sbg1.js";
19
- import {
20
- assertProjectRoot
21
- } from "./index-av3gnekk.js";
21
+ } from "./index-dh5q6z7y.js";
22
22
  import {
23
23
  require_proper_lockfile
24
24
  } from "./index-7g4c7s5r.js";
@@ -1,10 +1,10 @@
1
1
  // @bun
2
2
  import {
3
3
  handleGuardrailExplain
4
- } from "./index-v3ybemb1.js";
4
+ } from "./index-zpzvpybn.js";
5
5
  import {
6
6
  handleGuardrailLog
7
- } from "./index-y2d381ce.js";
7
+ } from "./index-gjx53y3c.js";
8
8
  import {
9
9
  COMMAND_REGISTRY,
10
10
  SWARM_COMMAND_TOOL_ALLOWLIST,
@@ -94,69 +94,70 @@ import {
94
94
  handleWriteRetroCommand,
95
95
  normalizeSwarmCommandInput,
96
96
  resolveCommand
97
- } from "./index-txwx9p21.js";
98
- import"./index-xs32znyz.js";
99
- import"./index-8zw60wya.js";
100
- import"./index-6jp5yxye.js";
101
- import"./index-wwpe4am7.js";
102
- import"./index-gk6gpe7r.js";
97
+ } from "./index-zdv914xa.js";
98
+ import"./index-j3ss86kf.js";
99
+ import"./index-m84z3aa8.js";
100
+ import"./index-f72612zc.js";
101
+ import"./index-m1cw9fsh.js";
102
+ import"./index-nk498mx6.js";
103
103
  import"./index-txdagbh7.js";
104
104
  import"./index-134d35c1.js";
105
105
  import"./index-nj6rmyeh.js";
106
- import"./index-xqjhbfbx.js";
107
- import"./index-fnxmg8sz.js";
108
- import"./index-m9m3emns.js";
106
+ import"./index-v8dsmee1.js";
107
+ import"./index-ny0g8fdg.js";
108
+ import"./index-7v0ex0jt.js";
109
109
  import"./index-70ha9e09.js";
110
110
  import"./index-c8s9a3zh.js";
111
111
  import"./index-9ss2m4rs.js";
112
- import"./index-515nwvdp.js";
112
+ import"./index-497a3hhj.js";
113
113
  import"./index-zsrtt42s.js";
114
- import"./index-nvz4mp5w.js";
114
+ import"./index-dq93ar40.js";
115
115
  import"./index-3f7hqtgg.js";
116
- import"./index-8fyebh3w.js";
117
- import"./index-p3ym3y8b.js";
118
- import"./index-2fq4a3vk.js";
116
+ import"./index-awjx0wgk.js";
117
+ import"./index-jszabr0r.js";
118
+ import"./index-znf683sm.js";
119
119
  import"./index-rtry5xyf.js";
120
- import"./index-rq4jcw64.js";
121
- import"./index-mqfs5f8a.js";
122
- import"./index-h96xp4t0.js";
120
+ import"./index-z0bxbb9g.js";
121
+ import"./index-qc53dfzh.js";
122
+ import"./index-61c3d769.js";
123
123
  import"./index-ddszzne4.js";
124
- import"./index-zswy6xgb.js";
125
- import"./index-bxpqq9th.js";
126
- import"./index-0zerbq1v.js";
124
+ import"./index-drqvph47.js";
125
+ import"./index-pqjcyj0p.js";
126
+ import"./index-7h2armwf.js";
127
127
  import"./index-556ja8an.js";
128
128
  import"./index-4fwbbad3.js";
129
129
  import"./index-b43rt5ph.js";
130
130
  import"./index-q7sjgr1y.js";
131
- import"./index-2jzmg2km.js";
132
- import"./index-5hfqc3h3.js";
133
- import"./index-40t6s98s.js";
134
- import"./index-ebz97mks.js";
131
+ import"./index-nnzdayvk.js";
132
+ import"./index-98jmggma.js";
133
+ import"./index-pkz91fwm.js";
134
+ import"./index-8c9qzpy7.js";
135
135
  import"./index-n832052r.js";
136
136
  import"./index-dtn0pne5.js";
137
137
  import"./index-z6xqpmqg.js";
138
138
  import"./index-r3mvsbtq.js";
139
- import"./index-t3wk7q51.js";
139
+ import"./index-bqxffayb.js";
140
140
  import {
141
141
  init_schema,
142
142
  stripKnownSwarmPrefix
143
- } from "./index-ebxmfr4j.js";
143
+ } from "./index-7npz9n4s.js";
144
144
  import"./index-9e6fdz2h.js";
145
145
  import"./index-4rhhvd1a.js";
146
+ import"./index-mmr96pwr.js";
146
147
  import {
147
148
  AGENT_TOOL_MAP,
148
149
  ORCHESTRATOR_NAME,
149
150
  init_constants
150
- } from "./index-yt75r1er.js";
151
+ } from "./index-c9zp4xwc.js";
151
152
  import"./index-zjygnfay.js";
152
153
  import"./index-ae75rja9.js";
153
- import"./index-nhhek8yw.js";
154
- import"./index-ve0xj03m.js";
154
+ import"./index-prv20xq6.js";
155
+ import"./index-7ezv5j23.js";
155
156
  import"./index-bk5tah7q.js";
156
- import"./index-9qw4sbg1.js";
157
- import"./index-av3gnekk.js";
157
+ import"./index-b5adxpy6.js";
158
+ import"./index-dh5q6z7y.js";
158
159
  import"./index-ed5ykebp.js";
159
- import"./index-prknc0xn.js";
160
+ import"./index-dke4wzkn.js";
160
161
  import"./index-7g4c7s5r.js";
161
162
  import"./index-bpmtbmy9.js";
162
163
  import"./index-zgwm4ryv.js";