opencode-swarm 7.147.1 → 7.148.0

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 (58) hide show
  1. package/.opencode/skills/swarm-pr-review/SKILL.md +26 -11
  2. package/.opencode/skills/swarm-pr-review/references/findings-persistence-contract.md +39 -13
  3. package/dist/cli/{config-doctor-8nskdpgd.js → config-doctor-z2wam5wn.js} +2 -2
  4. package/dist/cli/{core-9rt6kbk1.js → core-k7m76ce0.js} +1 -1
  5. package/dist/cli/{curation-policy-9d7jx7cg.js → curation-policy-kd8j8cne.js} +4 -4
  6. package/dist/cli/{curator-xvymjgan.js → curator-jwpm52kg.js} +23 -23
  7. package/dist/cli/{curator-llm-factory-8xdxbmnz.js → curator-llm-factory-4qt8b15s.js} +23 -23
  8. package/dist/cli/{evidence-summary-service-k7a2s8f8.js → evidence-summary-service-90z295j3.js} +9 -9
  9. package/dist/cli/{gate-evidence-bbpvx28c.js → gate-evidence-3q6q71fw.js} +4 -4
  10. package/dist/cli/{guardrail-explain-qz2hfyb2.js → guardrail-explain-44xt373y.js} +24 -24
  11. package/dist/cli/{guardrail-log-6098jxes.js → guardrail-log-kbp5jztb.js} +3 -3
  12. package/dist/cli/{guardrail-reset-2bcccwmx.js → guardrail-reset-vpazhh8k.js} +23 -23
  13. package/dist/cli/{hive-promoter-9xzf0r98.js → hive-promoter-tdrkz9nh.js} +23 -23
  14. package/dist/cli/{index-1k41c7kt.js → index-016708th.js} +2 -2
  15. package/dist/cli/{index-5qfp2kt4.js → index-07zgs6y0.js} +6 -6
  16. package/dist/cli/{index-axcvb5kf.js → index-2y14mjfn.js} +2 -2
  17. package/dist/cli/{index-6cxb7ng4.js → index-52gnz782.js} +3 -3
  18. package/dist/cli/{index-qy5yz7fn.js → index-702zx3rk.js} +1 -1
  19. package/dist/cli/{index-9b50bt13.js → index-7ac5z627.js} +1 -1
  20. package/dist/cli/{index-bp5n93w5.js → index-7hctrdk8.js} +1 -1
  21. package/dist/cli/{index-by1f9ghd.js → index-9pmmexsd.js} +1 -1
  22. package/dist/cli/{index-8861hfbt.js → index-crpb0qke.js} +231 -92
  23. package/dist/cli/{index-b99vp668.js → index-dfvh1r8g.js} +25 -25
  24. package/dist/cli/{index-n5wzwz8x.js → index-dmbaaz6d.js} +4 -4
  25. package/dist/cli/{index-7tvbvecm.js → index-ffevkn7k.js} +1 -1
  26. package/dist/cli/{index-59q7jma6.js → index-gwrv6c56.js} +5 -5
  27. package/dist/cli/{index-2qapn7fk.js → index-h879g4r4.js} +1 -1
  28. package/dist/cli/{index-q85xv7t6.js → index-jpa03jcc.js} +1 -1
  29. package/dist/cli/{index-t4xa2yss.js → index-k6h5yc1j.js} +5 -5
  30. package/dist/cli/{index-8k9hw17k.js → index-n0fpefqx.js} +2 -2
  31. package/dist/cli/{index-kbp4xssa.js → index-n96wwf56.js} +4 -4
  32. package/dist/cli/{index-b834mas0.js → index-p62we2ar.js} +1 -1
  33. package/dist/cli/{index-zwc96x0a.js → index-qcm97jfh.js} +1 -1
  34. package/dist/cli/{index-aahyrzmm.js → index-qwj7qjjp.js} +2 -2
  35. package/dist/cli/{index-vpzvmp21.js → index-rcjq8dm4.js} +2 -2
  36. package/dist/cli/{index-gkhx2vkh.js → index-sycndcwd.js} +1 -1
  37. package/dist/cli/{index-b7qzwv3t.js → index-x4rxh8j9.js} +3 -3
  38. package/dist/cli/{index-1xvxd02x.js → index-y586zet4.js} +1 -1
  39. package/dist/cli/{index-014mntpw.js → index-ykjjqg79.js} +4 -4
  40. package/dist/cli/{index-avcqq7xc.js → index-zwpttdgn.js} +1 -1
  41. package/dist/cli/index.js +23 -23
  42. package/dist/cli/{knowledge-escalator-300p0bvr.js → knowledge-escalator-0qnm48g8.js} +9 -9
  43. package/dist/cli/{knowledge-events-5ncg5xv1.js → knowledge-events-3zv81nzp.js} +7 -7
  44. package/dist/cli/{knowledge-link-stzsjagk.js → knowledge-link-w91bcyx2.js} +3 -3
  45. package/dist/cli/{knowledge-store-mn75hsww.js → knowledge-store-njtx6wj1.js} +4 -4
  46. package/dist/cli/{knowledge-validator-763r7qpn.js → knowledge-validator-7eqj5afv.js} +6 -6
  47. package/dist/cli/{runner-26bc3x73.js → runner-gfzkp9nv.js} +4 -4
  48. package/dist/cli/{scan-cursor-b7kyjefy.js → scan-cursor-a6dhyf55.js} +5 -5
  49. package/dist/cli/{schema-zjhwka27.js → schema-p0vn1zgh.js} +1 -1
  50. package/dist/cli/{scope-persistence-aa7gkgz0.js → scope-persistence-zs97zkt7.js} +5 -5
  51. package/dist/cli/{skill-generator-nsa7ay0c.js → skill-generator-5qg15q1j.js} +11 -11
  52. package/dist/cli/{worktree-isolation-3pw7nwnh.js → worktree-isolation-ndb5fwys.js} +23 -23
  53. package/dist/hooks/pr-workflow-gate.d.ts +64 -3
  54. package/dist/index.js +54 -11
  55. package/dist/lang/symbol-visibility.d.ts +10 -7
  56. package/dist/tools/dispatch-lanes.d.ts +8 -1
  57. package/dist/tools/repo-graph/types.d.ts +6 -4
  58. package/package.json +1 -1
@@ -4,15 +4,15 @@ import {
4
4
  alreadyCuratedThisGeneration,
5
5
  claimNextScanBatch,
6
6
  getScanStatus
7
- } from "./index-1k41c7kt.js";
8
- import"./index-5qfp2kt4.js";
7
+ } from "./index-016708th.js";
8
+ import"./index-07zgs6y0.js";
9
9
  import"./index-9e6fdz2h.js";
10
10
  import"./index-4rhhvd1a.js";
11
11
  import"./index-ae75rja9.js";
12
- import"./index-zwc96x0a.js";
13
- import"./index-bp5n93w5.js";
12
+ import"./index-qcm97jfh.js";
13
+ import"./index-7hctrdk8.js";
14
14
  import"./index-bk5tah7q.js";
15
- import"./index-axcvb5kf.js";
15
+ import"./index-2y14mjfn.js";
16
16
  import"./index-6q35swn2.js";
17
17
  import"./index-q81s0m8k.js";
18
18
  import"./index-7g4c7s5r.js";
@@ -99,7 +99,7 @@ import {
99
99
  resolveGeneratedAgentRole,
100
100
  resolveGuardrailsConfig,
101
101
  stripKnownSwarmPrefix
102
- } from "./index-qy5yz7fn.js";
102
+ } from "./index-702zx3rk.js";
103
103
  import"./index-cpg98bh1.js";
104
104
  import"./index-zjygnfay.js";
105
105
  import"./index-bk5tah7q.js";
@@ -23,11 +23,11 @@ import {
23
23
  tombstoneScopeBinding,
24
24
  writeScopeBindingToDisk,
25
25
  writeScopeToDisk
26
- } from "./index-6cxb7ng4.js";
27
- import"./index-2qapn7fk.js";
26
+ } from "./index-52gnz782.js";
27
+ import"./index-h879g4r4.js";
28
28
  import"./index-556ja8an.js";
29
- import"./index-7tvbvecm.js";
30
- import"./index-qy5yz7fn.js";
29
+ import"./index-ffevkn7k.js";
30
+ import"./index-702zx3rk.js";
31
31
  import"./index-cpg98bh1.js";
32
32
  import"./index-9e6fdz2h.js";
33
33
  import"./index-4rhhvd1a.js";
@@ -36,7 +36,7 @@ import"./index-z6xqpmqg.js";
36
36
  import"./index-r3mvsbtq.js";
37
37
  import"./index-zjygnfay.js";
38
38
  import"./index-bk5tah7q.js";
39
- import"./index-axcvb5kf.js";
39
+ import"./index-2y14mjfn.js";
40
40
  import"./index-6q35swn2.js";
41
41
  import"./index-q81s0m8k.js";
42
42
  import"./index-7g4c7s5r.js";
@@ -33,18 +33,18 @@ import {
33
33
  sanitizeSlug,
34
34
  selectCandidateEntries,
35
35
  writeEvalStub
36
- } from "./index-n5wzwz8x.js";
37
- import"./index-kbp4xssa.js";
38
- import"./index-avcqq7xc.js";
36
+ } from "./index-dmbaaz6d.js";
37
+ import"./index-n96wwf56.js";
38
+ import"./index-zwpttdgn.js";
39
39
  import"./index-rtry5xyf.js";
40
40
  import"./index-q7sjgr1y.js";
41
- import"./index-5qfp2kt4.js";
42
- import"./index-59q7jma6.js";
43
- import"./index-vpzvmp21.js";
41
+ import"./index-07zgs6y0.js";
42
+ import"./index-gwrv6c56.js";
43
+ import"./index-rcjq8dm4.js";
44
44
  import"./index-gprxjmm7.js";
45
45
  import"./index-n832052r.js";
46
- import"./index-7tvbvecm.js";
47
- import"./index-qy5yz7fn.js";
46
+ import"./index-ffevkn7k.js";
47
+ import"./index-702zx3rk.js";
48
48
  import"./index-cpg98bh1.js";
49
49
  import"./index-9e6fdz2h.js";
50
50
  import"./index-4rhhvd1a.js";
@@ -53,10 +53,10 @@ import"./index-z6xqpmqg.js";
53
53
  import"./index-r3mvsbtq.js";
54
54
  import"./index-zjygnfay.js";
55
55
  import"./index-ae75rja9.js";
56
- import"./index-zwc96x0a.js";
57
- import"./index-bp5n93w5.js";
56
+ import"./index-qcm97jfh.js";
57
+ import"./index-7hctrdk8.js";
58
58
  import"./index-bk5tah7q.js";
59
- import"./index-axcvb5kf.js";
59
+ import"./index-2y14mjfn.js";
60
60
  import"./index-6q35swn2.js";
61
61
  import"./index-q81s0m8k.js";
62
62
  import"./index-7g4c7s5r.js";
@@ -21,47 +21,47 @@ import {
21
21
  sanitizeWorktreeTaskId,
22
22
  standardWorktreeByCallID,
23
23
  standardWorktreeSerializationSessions
24
- } from "./index-8861hfbt.js";
25
- import"./index-b834mas0.js";
26
- import"./index-q85xv7t6.js";
27
- import"./index-by1f9ghd.js";
28
- import"./index-014mntpw.js";
29
- import"./index-1xvxd02x.js";
24
+ } from "./index-crpb0qke.js";
25
+ import"./index-p62we2ar.js";
26
+ import"./index-jpa03jcc.js";
27
+ import"./index-9pmmexsd.js";
28
+ import"./index-ykjjqg79.js";
29
+ import"./index-y586zet4.js";
30
30
  import"./index-134d35c1.js";
31
31
  import"./index-nj6rmyeh.js";
32
32
  import"./index-y8552snf.js";
33
- import"./index-t4xa2yss.js";
34
- import"./index-1k41c7kt.js";
33
+ import"./index-k6h5yc1j.js";
34
+ import"./index-016708th.js";
35
35
  import"./index-70ha9e09.js";
36
36
  import"./index-c8s9a3zh.js";
37
37
  import"./index-9ss2m4rs.js";
38
38
  import"./index-g8wwj0sz.js";
39
39
  import"./index-pgvx3rkq.js";
40
- import"./index-n5wzwz8x.js";
41
- import"./index-kbp4xssa.js";
42
- import"./index-avcqq7xc.js";
40
+ import"./index-dmbaaz6d.js";
41
+ import"./index-n96wwf56.js";
42
+ import"./index-zwpttdgn.js";
43
43
  import"./index-rtry5xyf.js";
44
44
  import"./index-zsrtt42s.js";
45
45
  import"./index-d3bdr78h.js";
46
46
  import"./index-fxvgaeq4.js";
47
- import"./index-8k9hw17k.js";
48
- import"./index-9b50bt13.js";
49
- import"./index-6cxb7ng4.js";
50
- import"./index-2qapn7fk.js";
47
+ import"./index-n0fpefqx.js";
48
+ import"./index-7ac5z627.js";
49
+ import"./index-52gnz782.js";
50
+ import"./index-h879g4r4.js";
51
51
  import"./index-556ja8an.js";
52
52
  import"./index-b43rt5ph.js";
53
53
  import"./index-q7sjgr1y.js";
54
54
  import"./index-3g0xk6tk.js";
55
55
  import"./index-85gkedsf.js";
56
- import"./index-5qfp2kt4.js";
57
- import"./index-59q7jma6.js";
56
+ import"./index-07zgs6y0.js";
57
+ import"./index-gwrv6c56.js";
58
58
  import {
59
59
  resolveWorktreeIsolationConfig
60
- } from "./index-vpzvmp21.js";
60
+ } from "./index-rcjq8dm4.js";
61
61
  import"./index-gprxjmm7.js";
62
62
  import"./index-n832052r.js";
63
- import"./index-7tvbvecm.js";
64
- import"./index-qy5yz7fn.js";
63
+ import"./index-ffevkn7k.js";
64
+ import"./index-702zx3rk.js";
65
65
  import"./index-cpg98bh1.js";
66
66
  import"./index-9e6fdz2h.js";
67
67
  import"./index-4rhhvd1a.js";
@@ -70,10 +70,10 @@ import"./index-z6xqpmqg.js";
70
70
  import"./index-r3mvsbtq.js";
71
71
  import"./index-zjygnfay.js";
72
72
  import"./index-ae75rja9.js";
73
- import"./index-zwc96x0a.js";
74
- import"./index-bp5n93w5.js";
73
+ import"./index-qcm97jfh.js";
74
+ import"./index-7hctrdk8.js";
75
75
  import"./index-bk5tah7q.js";
76
- import"./index-axcvb5kf.js";
76
+ import"./index-2y14mjfn.js";
77
77
  import"./index-6q35swn2.js";
78
78
  import"./index-q81s0m8k.js";
79
79
  import"./index-7g4c7s5r.js";
@@ -529,6 +529,59 @@ declare function probeAlivePrWorkflowLaneSessions(directory: string, records: Ba
529
529
  alive: Set<string>;
530
530
  degradedReason?: PrWorkflowLaneProbeDegradedReason;
531
531
  }>;
532
+ /** One still-pending pr-review lane's host liveness reading (issue #2280 Part B). */
533
+ export interface PrWorkflowPendingLaneLiveness {
534
+ laneId: string;
535
+ /**
536
+ * Milliseconds since the lane record last changed — the same aging field
537
+ * (`updatedAt`) the 30-minute presumed-stale sweep measures age by, so the
538
+ * advisory and the terminal sweep can never disagree about how old a lane is.
539
+ */
540
+ pendingMs: number;
541
+ /**
542
+ * Host session status when known: `'busy'`/`'retry'` are live; any other
543
+ * reported type is an affirmative non-live reading; `'absent'` means the host
544
+ * enumerated sessions without ours; `'unknown'` means the probe degraded (or
545
+ * the record has no session id to probe at all).
546
+ */
547
+ hostStatus: string;
548
+ /**
549
+ * Past threshold AND the host did not affirmatively report the session live
550
+ * (non-live status, session absent, or probe degraded). DIAGNOSTIC ONLY — a
551
+ * `true` value never cancels, retries, replaces, or settles the lane.
552
+ */
553
+ stalledSuspect: boolean;
554
+ /**
555
+ * Why the reading is not a real host status: the probe's own failure reasons,
556
+ * plus `'advisory-unavailable'` when the advisory's surrounding accounting
557
+ * failed unexpectedly after the past-threshold set was already known — so an
558
+ * emitted entry always distinguishes "degraded" from a missing probe, and an
559
+ * ABSENT `pending_liveness` keeps meaning "no lane was past the threshold".
560
+ */
561
+ degradedReason?: PrWorkflowLaneProbeDegradedReason | 'advisory-unavailable';
562
+ }
563
+ /**
564
+ * Bounded, fail-open liveness advisory for still-pending pr-review lanes
565
+ * (issue #2280 Part B).
566
+ *
567
+ * ALERT-ONLY, by design: this reads host session status and reports it; it
568
+ * never cancels, retries, replaces, or settles anything. A stalled-suspect
569
+ * critic may still be thinking — automatic replacement would risk duplicate
570
+ * long-running critics racing on the same items — and the 30-minute
571
+ * presumed-stale sweep (issue #2251) remains the only terminal backstop.
572
+ *
573
+ * Cost model: below the threshold there is NO host round-trip at all; past it,
574
+ * exactly ONE session-status call regardless of how many lanes are pending,
575
+ * deadline-bounded through the same `_test_exports` seams as the #2251 probe
576
+ * and additionally clamped to the caller's remaining collection budget
577
+ * (`probeBudgetMs`) — the diagnostic must never add wait beyond the budget the
578
+ * caller already granted the collection itself. Any failure mode degrades
579
+ * (`hostStatus: 'unknown'`, `stalledSuspect: true`, reason named) instead of
580
+ * throwing — collection must never block or fail on this advisory.
581
+ */
582
+ export declare function collectPrWorkflowPendingLaneLiveness(directory: string, records: readonly BackgroundDelegationRecord[], options?: {
583
+ probeBudgetMs?: number;
584
+ }): Promise<PrWorkflowPendingLaneLiveness[]>;
532
585
  export interface PrWorkflowStaleLaneSettlement {
533
586
  /**
534
587
  * Every lane that still blocks: lanes with a fresh `updatedAt` PLUS lanes
@@ -595,9 +648,11 @@ export interface PrWorkflowStaleLaneSettlement {
595
648
  * Issue #2251 adds the second, stronger contradiction: a lane PAST the horizon
596
649
  * whose session the host affirmatively reports as `busy`/`retry` is genuinely
597
650
  * running (nothing heartbeats `updatedAt`, so age alone cannot see this) and is
598
- * retained instead of discarded. The probe is fail-open — see
599
- * {@link probeAlivePrWorkflowLaneSessions} so an unavailable, erroring or
600
- * empty probe leaves the age-only behaviour exactly as it was.
651
+ * retained instead of discarded. The probe is fail-open — the settlement
652
+ * consumes it through the alive-set wrapper {@link
653
+ * probeAlivePrWorkflowLaneSessions}; the fail-open taxonomy itself lives in
654
+ * {@link probePrWorkflowLaneSessionStatusTypes} — so an unavailable, erroring
655
+ * or empty probe leaves the age-only behaviour exactly as it was.
601
656
  */
602
657
  export declare function settlePresumedStalePrWorkflowLanes(directory: string, sessionID: string): Promise<PrWorkflowStaleLaneSettlement>;
603
658
  /**
@@ -863,6 +918,12 @@ export declare const _test_exports: {
863
918
  * `checkoutMutationActionTimeoutMs` above.
864
919
  */
865
920
  laneLivenessProbeTimeoutMs: number;
921
+ /**
922
+ * Pending-liveness advisory threshold (issue #2280 Part B), seam-read at
923
+ * call time for the same clock reason — a test drives the boundary by
924
+ * shortening the threshold, not by waiting minutes.
925
+ */
926
+ pendingLaneLivenessThresholdMs: number;
866
927
  resolveCurrentGitHead: typeof resolveCurrentGitHead;
867
928
  resolveCurrentGitHeadAsync: typeof resolveCurrentGitHeadAsync;
868
929
  resolveCurrentUpstreamPushTarget: typeof resolveCurrentUpstreamPushTarget;