opencode-swarm 7.179.1 → 7.180.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 (104) hide show
  1. package/binaries/win32-arm64/swarm-sandbox-runner.exe +0 -0
  2. package/binaries/win32-x64/swarm-sandbox-runner.exe +0 -0
  3. package/dist/background/pr-event-subscribers.d.ts +2 -0
  4. package/dist/background/pr-feedback-event-queue.d.ts +7 -0
  5. package/dist/background/pr-feedback-loop.d.ts +162 -0
  6. package/dist/cli/{coder-settlement-f1nmezzv.js → coder-settlement-34z9xgnx.js} +13 -13
  7. package/dist/cli/{config-doctor-ena2803f.js → config-doctor-tkfrwztz.js} +2 -2
  8. package/dist/cli/{core-fcfzme3m.js → core-z9ybzpvr.js} +4 -5
  9. package/dist/cli/{curation-policy-c7mdsf7m.js → curation-policy-gwzmjmt7.js} +6 -5
  10. package/dist/cli/{curator-drift-d93pwt8h.js → curator-drift-3bbn011w.js} +22 -12
  11. package/dist/cli/curator-llm-factory-e162g7xp.js +74 -0
  12. package/dist/cli/{curator-q9s5q9v4.js → curator-zv4qs07j.js} +44 -42
  13. package/dist/cli/{evidence-summary-service-wtj8mkm6.js → evidence-summary-service-wrfth5tr.js} +22 -20
  14. package/dist/cli/{gate-evidence-h83yb8nd.js → gate-evidence-adqbxnm7.js} +8 -8
  15. package/dist/cli/guardrail-explain-dn96802k.js +75 -0
  16. package/dist/cli/{guardrail-log-zf1htf1d.js → guardrail-log-rcza6v3y.js} +6 -6
  17. package/dist/cli/{guardrail-reset-f2p198j3.js → guardrail-reset-fjn42e0n.js} +44 -42
  18. package/dist/cli/hive-promoter-hgqqn7qw.js +89 -0
  19. package/dist/cli/{index-aqpwm350.js → index-06crt1ej.js} +2 -2
  20. package/dist/cli/{index-wrt875kh.js → index-0725jpp7.js} +1 -1
  21. package/dist/cli/{index-f2v90gfc.js → index-0v1rtanv.js} +24 -165
  22. package/dist/cli/{index-q375xdcw.js → index-1hzqyx13.js} +9 -1
  23. package/dist/cli/{index-xy7k7f3k.js → index-1p8fk9jb.js} +2 -2
  24. package/dist/cli/{index-pfg3jwe9.js → index-2h0qng38.js} +3 -3
  25. package/dist/cli/{index-9fb01jk5.js → index-3jap3516.js} +1 -1
  26. package/dist/cli/{index-dz12bshh.js → index-5gmn0a3j.js} +8 -8
  27. package/dist/cli/{index-5d224akk.js → index-5m378633.js} +4 -4
  28. package/dist/cli/{index-0h3cr7pn.js → index-5yc5n4ae.js} +1 -1
  29. package/dist/cli/{index-pn023bf9.js → index-7pj0x345.js} +48 -46
  30. package/dist/cli/{index-w4c2repz.js → index-7w6dnpvc.js} +44 -42
  31. package/dist/cli/{index-zbhvr9st.js → index-8b1f2t5q.js} +8 -10
  32. package/dist/cli/{index-cvg402ha.js → index-91dhg3wr.js} +2 -2
  33. package/dist/cli/{index-3pzwsesm.js → index-92m05mew.js} +2 -2
  34. package/dist/cli/{index-6r92fw88.js → index-93vk5s7v.js} +8 -8
  35. package/dist/cli/{index-ne9zamcs.js → index-989v83pb.js} +1 -1
  36. package/dist/cli/{index-g6nyk713.js → index-aspxz5r5.js} +1 -1
  37. package/dist/cli/index-b9z9gvx0.js +339 -0
  38. package/dist/cli/{index-2b0ktpbf.js → index-bdpgfep1.js} +5 -5
  39. package/dist/cli/{index-nzekzzs2.js → index-bv4b8tpa.js} +5 -5
  40. package/dist/cli/{index-n1tcj1q7.js → index-bx70zs8d.js} +187 -47
  41. package/dist/cli/{index-n2wjrgcs.js → index-caj76d0f.js} +6 -8
  42. package/dist/cli/{index-549wxbe1.js → index-cjapb4hy.js} +1 -1
  43. package/dist/cli/{index-y94vwx2q.js → index-cxgr6ad5.js} +13 -15
  44. package/dist/cli/{index-ajm7ebyd.js → index-dcttq1mn.js} +2 -2
  45. package/dist/cli/{index-9s1xzvnn.js → index-defq2crz.js} +13 -3
  46. package/dist/cli/{index-ky262b73.js → index-dnbqmay5.js} +1606 -895
  47. package/dist/cli/index-ejhxgyvm.js +147 -0
  48. package/dist/cli/{index-epfjc1c1.js → index-ekgc71m1.js} +10 -10
  49. package/dist/cli/{index-s4bkey0q.js → index-gc6h1fmf.js} +4 -4
  50. package/dist/cli/index-gx2vp8gx.js +100 -0
  51. package/dist/cli/{index-h59vsbch.js → index-htrb9ec3.js} +1 -1
  52. package/dist/cli/{index-yfpswnjt.js → index-jmrsfhwq.js} +3 -3
  53. package/dist/cli/{index-rb9jmj30.js → index-jrfv2am8.js} +7 -7
  54. package/dist/cli/{index-pskba939.js → index-jscqefqm.js} +1 -1
  55. package/dist/cli/{index-y98fvmb8.js → index-kp654qcw.js} +32 -17
  56. package/dist/cli/{index-93nx95me.js → index-mhrn7hbb.js} +8 -7
  57. package/dist/cli/{index-h4nh6s8b.js → index-nhxykfyy.js} +1 -1
  58. package/dist/cli/{index-yp25bc9n.js → index-pnt98k7z.js} +7 -7
  59. package/dist/cli/{index-vp9pn7sv.js → index-ret97f1t.js} +5 -5
  60. package/dist/cli/{index-sj29n50e.js → index-v1sc1gxv.js} +6 -6
  61. package/dist/cli/{index-a11ztzs5.js → index-vmthakz0.js} +1 -1
  62. package/dist/cli/{index-b567t0cr.js → index-x6kjbjya.js} +9 -7
  63. package/dist/cli/{index-m1w40kfw.js → index-zptq8mp1.js} +4 -103
  64. package/dist/cli/{index-34bwqcea.js → index-zvxy0mev.js} +1 -1
  65. package/dist/cli/{index-zz7gzw57.js → index-zxdawwc7.js} +88 -4
  66. package/dist/cli/index.js +45 -43
  67. package/dist/cli/{knowledge-escalator-z6tkgrjq.js → knowledge-escalator-x8vcmb6k.js} +16 -15
  68. package/dist/cli/{knowledge-events-2bgefatz.js → knowledge-events-naf9kyyc.js} +14 -13
  69. package/dist/cli/{knowledge-link-gfz47ves.js → knowledge-link-g0q25hqv.js} +5 -4
  70. package/dist/cli/{knowledge-store-1fphg9sa.js → knowledge-store-dnv0ph42.js} +6 -5
  71. package/dist/cli/{knowledge-validator-723h2vck.js → knowledge-validator-a1rfzkmv.js} +8 -7
  72. package/dist/cli/{mcp-xyswgya5.js → mcp-hnb0m05a.js} +1 -1
  73. package/dist/cli/{pending-delegations-5zm19yvv.js → pending-delegations-05p6cmbh.js} +13 -12
  74. package/dist/cli/{pr-subscriptions-5hm6hzv6.js → pr-subscriptions-a2djfzyx.js} +13 -12
  75. package/dist/cli/{pr-workflow-gate-48rzb2bh.js → pr-workflow-gate-wkmx8nr6.js} +46 -42
  76. package/dist/cli/{runner-16b691ba.js → runner-hkbds12j.js} +6 -5
  77. package/dist/cli/{scan-cursor-m28tddrg.js → scan-cursor-4khfn5pm.js} +8 -8
  78. package/dist/cli/{schema-jt9axyj6.js → schema-a5zb02h8.js} +3 -1
  79. package/dist/cli/{scope-persistence-d0358pw7.js → scope-persistence-nsw324ce.js} +18 -17
  80. package/dist/cli/{server-d5jxcbxz.js → server-exj4wt8j.js} +52 -50
  81. package/dist/cli/{skill-generator-qanka67x.js → skill-generator-r2cdtx7b.js} +18 -17
  82. package/dist/cli/{snapshot-coordination-init-mhrq11p8.js → snapshot-coordination-init-sad6q0a2.js} +44 -42
  83. package/dist/cli/speckit-checkoff-46g9sqak.js +31 -0
  84. package/dist/cli/{workspace-snapshot-rfnn80dg.js → workspace-snapshot-4m2ex1ey.js} +4 -5
  85. package/dist/cli/{worktree-collision-ownership-ygdbpexh.js → worktree-collision-ownership-4znkfq1t.js} +16 -16
  86. package/dist/cli/{worktree-isolation-4855f2az.js → worktree-isolation-mv9ee00v.js} +44 -42
  87. package/dist/commands/pr-feedback-loop.d.ts +1 -0
  88. package/dist/commands/registry.d.ts +10 -2
  89. package/dist/config/schema.d.ts +27 -0
  90. package/dist/hooks/delegation-tracker.d.ts +6 -1
  91. package/dist/hooks/pr-workflow-gate.d.ts +1 -1
  92. package/dist/index.js +626 -600
  93. package/dist/sdd/effective-spec.d.ts +35 -22
  94. package/dist/sdd/speckit-checkoff.d.ts +113 -0
  95. package/dist/session/hydration-ownership.d.ts +83 -0
  96. package/dist/session/snapshot-coordination-init.d.ts +2 -1
  97. package/dist/session/snapshot-reader.d.ts +25 -7
  98. package/dist/state.d.ts +32 -2
  99. package/opencode-swarm.schema.json +40 -0
  100. package/package.json +1 -1
  101. package/dist/cli/curator-llm-factory-dds2fnhj.js +0 -72
  102. package/dist/cli/guardrail-explain-qm5wej7v.js +0 -73
  103. package/dist/cli/hive-promoter-1mhx2jh0.js +0 -87
  104. package/dist/cli/index-4ddpvd5c.js +0 -94
@@ -30,6 +30,7 @@ import { log } from '../utils';
30
30
  import { getGlobalEventBus } from './event-bus';
31
31
  import { deliverPrActivity, isPrEventDeliveryRegistered } from './pr-event-delivery';
32
32
  import { enqueuePrFeedbackMonitorEvent } from './pr-feedback-event-queue.js';
33
+ import { notifyPrFeedbackLoop } from './pr-feedback-loop.js';
33
34
  import { listActive, updateSnapshot } from './pr-subscriptions';
34
35
  export interface PrEventSubscriberOptions {
35
36
  directory: string;
@@ -48,6 +49,7 @@ export declare const _internals: {
48
49
  readPrWorkflowGateState: typeof readPrWorkflowGateState;
49
50
  activatePrWorkflow: typeof activatePrWorkflow;
50
51
  enqueuePrFeedbackMonitorEvent: typeof enqueuePrFeedbackMonitorEvent;
52
+ notifyPrFeedbackLoop: typeof notifyPrFeedbackLoop;
51
53
  deliverPrActivity: typeof deliverPrActivity;
52
54
  isPrEventDeliveryRegistered: typeof isPrEventDeliveryRegistered;
53
55
  scheduleClearUnaddressed: typeof scheduleClearUnaddressed;
@@ -21,6 +21,13 @@ export interface PrFeedbackMonitorQueueRecord {
21
21
  export declare function enqueuePrFeedbackMonitorEvent(directory: string, sessionID: string, event: Omit<PrFeedbackMonitorEvent, 'claimedWorkflowInstanceId' | 'claimedAt'>): Promise<PrFeedbackMonitorQueueRecord>;
22
22
  export declare function readPrFeedbackMonitorQueue(directory: string, sessionID: string): Promise<PrFeedbackMonitorQueueRecord | null>;
23
23
  export declare function claimPrFeedbackMonitorEvents(directory: string, sessionID: string, workflowInstanceId: string, prUrl: string, dedupTokens?: readonly string[]): Promise<PrFeedbackMonitorEvent[]>;
24
+ /**
25
+ * Remove queued events by dedup token (#2502 loop cancellation). Claimed but
26
+ * unsettled events otherwise stay in the queue forever — a claim alone never
27
+ * settles or removes them. Runs under the same queue mutation serialization as
28
+ * every other write; returns the tokens actually removed.
29
+ */
30
+ export declare function clearPrFeedbackMonitorEvents(directory: string, sessionID: string, dedupTokens: readonly string[]): Promise<string[]>;
24
31
  export declare const _internals: {
25
32
  queueRelativePath: typeof queueRelativePath;
26
33
  queueLockRelativePath: typeof queueLockRelativePath;
@@ -0,0 +1,162 @@
1
+ import { type PrFeedbackMonitorEvent } from './pr-feedback-event-queue';
2
+ export declare const PR_FEEDBACK_LOOP_STATE_REL: string;
3
+ export interface PrFeedbackLoopClassification {
4
+ type: string;
5
+ actionClass: string;
6
+ supported: boolean;
7
+ ambiguous: boolean;
8
+ reason: string;
9
+ }
10
+ export interface PrFeedbackLoopAuthorization {
11
+ authorized: boolean;
12
+ reason: string;
13
+ stale: boolean;
14
+ foreign: boolean;
15
+ replay: boolean;
16
+ oversight?: {
17
+ dispatched: boolean;
18
+ verdict?: string;
19
+ decision?: string;
20
+ };
21
+ budget?: {
22
+ sessionActionsUsed: number;
23
+ sessionActionsMax: number;
24
+ prActionsUsed: number;
25
+ prActionsMax: number;
26
+ exhausted: boolean;
27
+ };
28
+ }
29
+ export interface PrFeedbackLoopAction {
30
+ kind: string;
31
+ performed: boolean;
32
+ recordPath?: string;
33
+ }
34
+ export interface PrFeedbackLoopTerminal {
35
+ state: 'completed' | 'paused_for_human' | 'cancelled' | 'degraded' | 'refused';
36
+ reason: string;
37
+ receiptPath?: string;
38
+ }
39
+ export interface PrFeedbackLoopResult {
40
+ ran: boolean;
41
+ reason?: string;
42
+ dedupToken: string | null;
43
+ event: {
44
+ type: string;
45
+ repoFullName: string;
46
+ prNumber: number;
47
+ prUrl: string;
48
+ } | null;
49
+ classification: PrFeedbackLoopClassification | null;
50
+ authorization: PrFeedbackLoopAuthorization | null;
51
+ action: PrFeedbackLoopAction | null;
52
+ terminal: PrFeedbackLoopTerminal | null;
53
+ }
54
+ interface CircuitState {
55
+ failures: number;
56
+ openUntil: number;
57
+ halfOpenProbes: number;
58
+ }
59
+ interface InFlightClaim {
60
+ dedupToken: string;
61
+ actionClass: string;
62
+ head: string | null;
63
+ performed: boolean;
64
+ attempts: number;
65
+ claimedAt: string;
66
+ }
67
+ interface CorrelationState {
68
+ sessionID: string;
69
+ repoFullName: string;
70
+ prNumber: number;
71
+ prActionsUsed: number;
72
+ processedDigests: string[];
73
+ circuit: CircuitState;
74
+ inFlight: InFlightClaim | null;
75
+ terminal: PrFeedbackLoopTerminal | null;
76
+ }
77
+ interface LoopStateV1 {
78
+ schemaVersion: 1;
79
+ updatedAt: string;
80
+ /** Durable sequence for oversight evidence files (no collision across restarts). */
81
+ oversightSeq: number;
82
+ correlations: Record<string, CorrelationState>;
83
+ /** Session-level terminal records (operator cancellation lands here even
84
+ * when the session has no prior settlement correlation). */
85
+ sessionTerminals: Record<string, PrFeedbackLoopTerminal>;
86
+ }
87
+ export type EvaluateCurrentHead = (repoFullName: string, prNumber: number) => Promise<string | null>;
88
+ export type DispatchOversightInput = {
89
+ directory: string;
90
+ sessionID: string;
91
+ eventType: string;
92
+ actionClass: string;
93
+ repoFullName: string;
94
+ prNumber: number;
95
+ head: string | null;
96
+ };
97
+ export type DispatchOversightOutcome = {
98
+ dispatched: boolean;
99
+ verdict?: string;
100
+ decision?: string;
101
+ };
102
+ export type PerformAuthorizedActionInput = {
103
+ directory: string;
104
+ sessionID: string;
105
+ event: PrFeedbackMonitorEvent;
106
+ actionClass: string;
107
+ publication: 'none';
108
+ };
109
+ export type PerformAuthorizedActionOutcome = {
110
+ performed: boolean;
111
+ recordPath?: string;
112
+ transient?: boolean;
113
+ permanent?: boolean;
114
+ error?: string;
115
+ };
116
+ export declare const _internals: {
117
+ evaluateCurrentHead: EvaluateCurrentHead;
118
+ dispatchOversight: (input: DispatchOversightInput) => Promise<DispatchOversightOutcome>;
119
+ performAuthorizedAction: (input: PerformAuthorizedActionInput) => Promise<PerformAuthorizedActionOutcome>;
120
+ now: () => number;
121
+ readState: (directory: string) => Promise<LoopStateV1 | {
122
+ corrupt: true;
123
+ }>;
124
+ writeState: (directory: string, state: LoopStateV1) => Promise<void>;
125
+ };
126
+ /**
127
+ * Process ONE queued monitor event end-to-end for the session (the #2502
128
+ * completion-fixture unit): claim → classify → authorize → oversight → act →
129
+ * settle. Never throws for expected refusal paths. Serialized per session — a
130
+ * concurrent invocation (notify hook racing an explicit call) waits, then sees
131
+ * the queue empty rather than double-performing.
132
+ */
133
+ export declare function claimAndProcessPrFeedbackEvent(directory: string, sessionID: string): Promise<PrFeedbackLoopResult>;
134
+ /**
135
+ * Operator stop (#2502 AC10): terminal `cancelled` with the operator-visible
136
+ * reason, #2584 publication cancellation first (no-op when unarmed,
137
+ * fail-open), claimed-but-unsettled queue events cleared with an atomic
138
+ * cleanup receipt. Idempotent: re-cancel returns the existing terminal.
139
+ * Never issues NEW wakes (an in-flight wake may still surface in the session;
140
+ * the gate's push admission refuses pushes against a cancelled generation).
141
+ */
142
+ export declare function cancelPrFeedbackLoop(directory: string, sessionID: string, reason: string): Promise<{
143
+ terminalState: string;
144
+ reason: string;
145
+ cleanupReceipt: {
146
+ path: string;
147
+ clearedEvents: string[];
148
+ };
149
+ }>;
150
+ /**
151
+ * Bounded post-cycle tick (#2502 M7). Settlement today is driven entirely by
152
+ * the per-session notify hook (handlePrEvent → notifyPrFeedbackLoop, which is
153
+ * itself withTimeout-bounded per settlement); the queue store exposes no
154
+ * session enumeration yet, so a cross-session sweep has nothing to iterate.
155
+ * When enumeration lands, this becomes the bounded sweep (at most
156
+ * TICK_SETTLEMENT_CAP settlements per poll cycle IN TOTAL); until then it is
157
+ * an honest no-op that reports zero settlements.
158
+ */
159
+ export declare function tickPrFeedbackLoop(_directory: string): Promise<number>;
160
+ /** Notify hook for pr-event-subscribers: fire-and-forget, fail-open. */
161
+ export declare function notifyPrFeedbackLoop(directory: string, sessionID: string): void;
162
+ export {};
@@ -13,23 +13,23 @@ import {
13
13
  releaseCoderDispatchOwnership,
14
14
  settleCoderDispatch,
15
15
  transferCoderSettlementToBackground
16
- } from "./index-y94vwx2q.js";
17
- import"./index-2b0ktpbf.js";
18
- import"./index-3pzwsesm.js";
19
- import"./index-n2wjrgcs.js";
20
- import"./index-zbhvr9st.js";
21
- import"./index-s4bkey0q.js";
16
+ } from "./index-cxgr6ad5.js";
17
+ import"./index-bdpgfep1.js";
18
+ import"./index-92m05mew.js";
19
+ import"./index-caj76d0f.js";
20
+ import"./index-8b1f2t5q.js";
21
+ import"./index-gc6h1fmf.js";
22
22
  import"./index-2s7dvzff.js";
23
- import"./index-h59vsbch.js";
24
- import"./index-yfpswnjt.js";
25
- import"./index-f2v90gfc.js";
26
- import"./index-7g4c7s5r.js";
23
+ import"./index-htrb9ec3.js";
24
+ import"./index-jmrsfhwq.js";
25
+ import"./index-0v1rtanv.js";
27
26
  import"./index-qt0793qm.js";
28
- import"./index-ne9zamcs.js";
29
27
  import"./index-1xnse449.js";
30
28
  import"./index-c1ggtmpm.js";
31
- import"./index-zz7gzw57.js";
32
- import"./index-4ddpvd5c.js";
29
+ import"./index-ejhxgyvm.js";
30
+ import"./index-7g4c7s5r.js";
31
+ import"./index-989v83pb.js";
32
+ import"./index-zxdawwc7.js";
33
33
  import"./index-w872yykk.js";
34
34
  import"./index-gknz3bv1.js";
35
35
  import"./index-zpsr8rpc.js";
@@ -14,11 +14,11 @@ import {
14
14
  shouldRunOnStartup,
15
15
  writeBackupArtifact,
16
16
  writeDoctorArtifact
17
- } from "./index-q375xdcw.js";
17
+ } from "./index-1hzqyx13.js";
18
18
  import"./index-6b295cas.js";
19
19
  import"./index-ry16d01s.js";
20
20
  import"./index-c1ggtmpm.js";
21
- import"./index-9s1xzvnn.js";
21
+ import"./index-defq2crz.js";
22
22
  import"./index-w872yykk.js";
23
23
  import"./index-bk5tah7q.js";
24
24
  import"./index-gknz3bv1.js";
@@ -14,14 +14,13 @@ import {
14
14
  resolveWorktreeBaseDir,
15
15
  shortenWorktreePath,
16
16
  writeLaneProfileToDiskReal
17
- } from "./index-zbhvr9st.js";
18
- import"./index-s4bkey0q.js";
17
+ } from "./index-8b1f2t5q.js";
18
+ import"./index-gc6h1fmf.js";
19
19
  import"./index-2s7dvzff.js";
20
- import"./index-ne9zamcs.js";
21
20
  import"./index-1xnse449.js";
22
21
  import"./index-c1ggtmpm.js";
23
- import"./index-zz7gzw57.js";
24
- import"./index-4ddpvd5c.js";
22
+ import"./index-989v83pb.js";
23
+ import"./index-zxdawwc7.js";
25
24
  import"./index-w872yykk.js";
26
25
  import"./index-zpsr8rpc.js";
27
26
  import"./index-zgwm4ryv.js";
@@ -5,16 +5,17 @@ import {
5
5
  authorizeCuration,
6
6
  buildConfigFingerprintInput,
7
7
  readCohortConfigFingerprint
8
- } from "./index-0h3cr7pn.js";
8
+ } from "./index-5yc5n4ae.js";
9
9
  import"./index-rtry5xyf.js";
10
10
  import"./index-vzm6zre7.js";
11
- import"./index-34bwqcea.js";
12
- import"./index-f2v90gfc.js";
13
- import"./index-7g4c7s5r.js";
11
+ import"./index-zvxy0mev.js";
12
+ import"./index-0v1rtanv.js";
14
13
  import"./index-qt0793qm.js";
15
- import"./index-ne9zamcs.js";
16
14
  import"./index-1xnse449.js";
17
15
  import"./index-c1ggtmpm.js";
16
+ import"./index-ejhxgyvm.js";
17
+ import"./index-7g4c7s5r.js";
18
+ import"./index-989v83pb.js";
18
19
  import"./index-gknz3bv1.js";
19
20
  import"./index-zpsr8rpc.js";
20
21
  import"./index-zgwm4ryv.js";
@@ -4,26 +4,33 @@ import {
4
4
  getGlobalEventBus,
5
5
  getGroupCommitWriter,
6
6
  importLegacyJsonFiles
7
- } from "./index-h4nh6s8b.js";
7
+ } from "./index-nhxykfyy.js";
8
8
  import {
9
9
  readEffectiveSpecSync
10
- } from "./index-n1tcj1q7.js";
10
+ } from "./index-bx70zs8d.js";
11
+ import"./index-b9z9gvx0.js";
11
12
  import {
12
13
  readSwarmFileAsync
13
- } from "./index-s4bkey0q.js";
14
+ } from "./index-gc6h1fmf.js";
14
15
  import"./index-2s7dvzff.js";
15
- import"./index-wrt875kh.js";
16
+ import"./index-0725jpp7.js";
16
17
  import {
17
18
  DURABILITY_CLASSES,
18
19
  getProjectDb,
19
20
  projectDbExists
20
- } from "./index-nzekzzs2.js";
21
- import"./index-ry16d01s.js";
21
+ } from "./index-bv4b8tpa.js";
22
22
  import"./index-rdm3px0g.js";
23
- import"./index-ne9zamcs.js";
23
+ import"./index-ry16d01s.js";
24
24
  import"./index-1xnse449.js";
25
25
  import"./index-c1ggtmpm.js";
26
- import"./index-4ddpvd5c.js";
26
+ import"./index-ejhxgyvm.js";
27
+ import"./index-7g4c7s5r.js";
28
+ import"./index-989v83pb.js";
29
+ import"./index-zptq8mp1.js";
30
+ import"./index-zxdawwc7.js";
31
+ import"./index-defq2crz.js";
32
+ import"./index-w872yykk.js";
33
+ import"./index-bk5tah7q.js";
27
34
  import"./index-gknz3bv1.js";
28
35
  import"./index-zpsr8rpc.js";
29
36
  import {
@@ -145,9 +152,12 @@ var _internals = {
145
152
  buildDriftInjectionText
146
153
  };
147
154
  function extractRequirementIds(text) {
148
- const matches = text.match(/FR-\d{3,}/g);
155
+ const matches = text.match(/(?:[A-Za-z0-9][A-Za-z0-9._-]*\/)?FR-\d{3}/g);
149
156
  return matches ? [...new Set(matches)] : [];
150
157
  }
158
+ function bareSuffixCovers(specId, refId) {
159
+ return refId === specId || !refId.includes("/") && specId.endsWith(`/${refId}`);
160
+ }
151
161
  async function runDeterministicDriftCheck(directory, phase, curatorResult, config, injectAdvisory) {
152
162
  try {
153
163
  const planMd = await readSwarmFileAsync(directory, "plan.md");
@@ -164,8 +174,8 @@ async function runDeterministicDriftCheck(directory, phase, curatorResult, confi
164
174
  alignment = "MINOR_DRIFT";
165
175
  driftScore = 0.3;
166
176
  } else if (specRequirements.length > 0) {
167
- const coveredInPlan = specRequirements.filter((fr) => planRequirements.includes(fr));
168
- const coveredInDigest = specRequirements.filter((fr) => digestRequirements.includes(fr));
177
+ const coveredInPlan = specRequirements.filter((fr) => planRequirements.some((ref) => bareSuffixCovers(fr, ref)));
178
+ const coveredInDigest = specRequirements.filter((fr) => digestRequirements.some((ref) => bareSuffixCovers(fr, ref)));
169
179
  const specCoverageRatio = coveredInPlan.length / specRequirements.length;
170
180
  const implementationRatio = coveredInDigest.length / specRequirements.length;
171
181
  if (specCoverageRatio < 0.5) {
@@ -198,7 +208,7 @@ async function runDeterministicDriftCheck(directory, phase, curatorResult, confi
198
208
  } : null;
199
209
  const requirementsChecked = curatorResult.digest.tasks_total;
200
210
  const requirementsSatisfied = curatorResult.digest.tasks_completed;
201
- const coverageNote = specRequirements.length > 0 ? ` [${digestRequirements.filter((fr) => specRequirements.includes(fr)).length}/${specRequirements.length} FRs covered]` : "";
211
+ const coverageNote = specRequirements.length > 0 ? ` [${digestRequirements.filter((ref) => specRequirements.some((fr) => bareSuffixCovers(fr, ref))).length}/${specRequirements.length} FRs covered]` : "";
202
212
  const injectionSummaryRaw = `Phase ${phase}: ${alignment} (${driftScore.toFixed(2)})${coverageNote} \u2014 ${firstDeviation ? firstDeviation.description : "all requirements on track"}.${keyCorrections.length > 0 ? `Correction: ${keyCorrections[0] ?? ""}.` : ""}`;
203
213
  const injectionSummary = injectionSummaryRaw.slice(0, config.drift_inject_max_chars);
204
214
  const report = {
@@ -0,0 +1,74 @@
1
+ // @bun
2
+ import {
3
+ createCuratorLLMDelegate
4
+ } from "./index-dnbqmay5.js";
5
+ import"./index-06crt1ej.js";
6
+ import"./index-hamqvzqn.js";
7
+ import"./index-jscqefqm.js";
8
+ import"./index-nhxykfyy.js";
9
+ import"./index-1hzqyx13.js";
10
+ import"./index-kp654qcw.js";
11
+ import"./index-aspxz5r5.js";
12
+ import"./index-txdagbh7.js";
13
+ import"./index-bx70zs8d.js";
14
+ import"./index-6b295cas.js";
15
+ import"./index-5gmn0a3j.js";
16
+ import"./index-ret97f1t.js";
17
+ import"./index-2h0qng38.js";
18
+ import"./index-rdec0y3z.js";
19
+ import"./index-93vk5s7v.js";
20
+ import"./index-cjapb4hy.js";
21
+ import"./index-zsrtt42s.js";
22
+ import"./index-cxgr6ad5.js";
23
+ import"./index-bdpgfep1.js";
24
+ import"./index-92m05mew.js";
25
+ import"./index-pt7h91zc.js";
26
+ import"./index-q7sjgr1y.js";
27
+ import"./index-b9z9gvx0.js";
28
+ import"./index-caj76d0f.js";
29
+ import"./index-8b1f2t5q.js";
30
+ import"./index-v1sc1gxv.js";
31
+ import"./index-ekgc71m1.js";
32
+ import"./index-gc6h1fmf.js";
33
+ import"./index-2s7dvzff.js";
34
+ import"./index-5m378633.js";
35
+ import"./index-5yc5n4ae.js";
36
+ import"./index-rtry5xyf.js";
37
+ import"./index-dcttq1mn.js";
38
+ import"./index-frcemc0b.js";
39
+ import"./index-0725jpp7.js";
40
+ import"./index-jrfv2am8.js";
41
+ import"./index-x6kjbjya.js";
42
+ import"./index-htrb9ec3.js";
43
+ import"./index-91dhg3wr.js";
44
+ import"./index-vmthakz0.js";
45
+ import"./index-bv4b8tpa.js";
46
+ import"./index-rdm3px0g.js";
47
+ import"./index-ry16d01s.js";
48
+ import"./index-jmrsfhwq.js";
49
+ import"./index-pnt98k7z.js";
50
+ import"./index-vzm6zre7.js";
51
+ import"./index-ae75rja9.js";
52
+ import"./index-zvxy0mev.js";
53
+ import"./index-0v1rtanv.js";
54
+ import"./index-qt0793qm.js";
55
+ import"./index-1xnse449.js";
56
+ import"./index-c1ggtmpm.js";
57
+ import"./index-ejhxgyvm.js";
58
+ import"./index-7g4c7s5r.js";
59
+ import"./index-989v83pb.js";
60
+ import"./index-gx2vp8gx.js";
61
+ import"./index-zptq8mp1.js";
62
+ import"./index-zxdawwc7.js";
63
+ import"./index-defq2crz.js";
64
+ import"./index-w872yykk.js";
65
+ import"./index-bk5tah7q.js";
66
+ import"./index-gknz3bv1.js";
67
+ import"./index-zpsr8rpc.js";
68
+ import"./index-wvghb3x6.js";
69
+ import"./index-9rwhas09.js";
70
+ import"./index-zgwm4ryv.js";
71
+ import"./index-a76rekgs.js";
72
+ export {
73
+ createCuratorLLMDelegate
74
+ };
@@ -14,64 +14,66 @@ import {
14
14
  runCuratorInit,
15
15
  runCuratorPhase,
16
16
  writeCuratorSummary
17
- } from "./index-ky262b73.js";
17
+ } from "./index-dnbqmay5.js";
18
+ import"./index-06crt1ej.js";
18
19
  import"./index-hamqvzqn.js";
19
- import"./index-pskba939.js";
20
- import"./index-aqpwm350.js";
21
- import"./index-h4nh6s8b.js";
22
- import"./index-q375xdcw.js";
23
- import"./index-y98fvmb8.js";
24
- import"./index-g6nyk713.js";
20
+ import"./index-jscqefqm.js";
21
+ import"./index-nhxykfyy.js";
22
+ import"./index-1hzqyx13.js";
23
+ import"./index-kp654qcw.js";
24
+ import"./index-aspxz5r5.js";
25
25
  import"./index-txdagbh7.js";
26
- import"./index-n1tcj1q7.js";
26
+ import"./index-bx70zs8d.js";
27
27
  import"./index-6b295cas.js";
28
- import"./index-dz12bshh.js";
29
- import"./index-vp9pn7sv.js";
30
- import"./index-pfg3jwe9.js";
28
+ import"./index-5gmn0a3j.js";
29
+ import"./index-ret97f1t.js";
30
+ import"./index-2h0qng38.js";
31
31
  import"./index-rdec0y3z.js";
32
- import"./index-6r92fw88.js";
33
- import"./index-549wxbe1.js";
32
+ import"./index-93vk5s7v.js";
33
+ import"./index-cjapb4hy.js";
34
34
  import"./index-zsrtt42s.js";
35
- import"./index-y94vwx2q.js";
36
- import"./index-2b0ktpbf.js";
37
- import"./index-3pzwsesm.js";
35
+ import"./index-cxgr6ad5.js";
36
+ import"./index-bdpgfep1.js";
37
+ import"./index-92m05mew.js";
38
38
  import"./index-pt7h91zc.js";
39
39
  import"./index-q7sjgr1y.js";
40
- import"./index-n2wjrgcs.js";
41
- import"./index-zbhvr9st.js";
42
- import"./index-sj29n50e.js";
43
- import"./index-epfjc1c1.js";
44
- import"./index-s4bkey0q.js";
40
+ import"./index-b9z9gvx0.js";
41
+ import"./index-caj76d0f.js";
42
+ import"./index-8b1f2t5q.js";
43
+ import"./index-v1sc1gxv.js";
44
+ import"./index-ekgc71m1.js";
45
+ import"./index-gc6h1fmf.js";
45
46
  import"./index-2s7dvzff.js";
46
- import"./index-5d224akk.js";
47
- import"./index-0h3cr7pn.js";
47
+ import"./index-5m378633.js";
48
+ import"./index-5yc5n4ae.js";
48
49
  import"./index-rtry5xyf.js";
49
- import"./index-ajm7ebyd.js";
50
+ import"./index-dcttq1mn.js";
50
51
  import"./index-frcemc0b.js";
51
- import"./index-wrt875kh.js";
52
- import"./index-rb9jmj30.js";
53
- import"./index-b567t0cr.js";
54
- import"./index-h59vsbch.js";
55
- import"./index-cvg402ha.js";
56
- import"./index-a11ztzs5.js";
57
- import"./index-nzekzzs2.js";
58
- import"./index-ry16d01s.js";
52
+ import"./index-0725jpp7.js";
53
+ import"./index-jrfv2am8.js";
54
+ import"./index-x6kjbjya.js";
55
+ import"./index-htrb9ec3.js";
56
+ import"./index-91dhg3wr.js";
57
+ import"./index-vmthakz0.js";
58
+ import"./index-bv4b8tpa.js";
59
59
  import"./index-rdm3px0g.js";
60
- import"./index-yfpswnjt.js";
61
- import"./index-yp25bc9n.js";
60
+ import"./index-ry16d01s.js";
61
+ import"./index-jmrsfhwq.js";
62
+ import"./index-pnt98k7z.js";
62
63
  import"./index-vzm6zre7.js";
63
64
  import"./index-ae75rja9.js";
64
- import"./index-34bwqcea.js";
65
- import"./index-f2v90gfc.js";
66
- import"./index-7g4c7s5r.js";
65
+ import"./index-zvxy0mev.js";
66
+ import"./index-0v1rtanv.js";
67
67
  import"./index-qt0793qm.js";
68
- import"./index-ne9zamcs.js";
69
68
  import"./index-1xnse449.js";
70
69
  import"./index-c1ggtmpm.js";
71
- import"./index-m1w40kfw.js";
72
- import"./index-zz7gzw57.js";
73
- import"./index-4ddpvd5c.js";
74
- import"./index-9s1xzvnn.js";
70
+ import"./index-ejhxgyvm.js";
71
+ import"./index-7g4c7s5r.js";
72
+ import"./index-989v83pb.js";
73
+ import"./index-gx2vp8gx.js";
74
+ import"./index-zptq8mp1.js";
75
+ import"./index-zxdawwc7.js";
76
+ import"./index-defq2crz.js";
75
77
  import"./index-w872yykk.js";
76
78
  import"./index-bk5tah7q.js";
77
79
  import"./index-gknz3bv1.js";
@@ -6,35 +6,37 @@ import {
6
6
  loadPlanJsonOnly,
7
7
  mergeDurableGateEntriesFromEvidence,
8
8
  readDurableGateEvidence
9
- } from "./index-y98fvmb8.js";
10
- import"./index-g6nyk713.js";
9
+ } from "./index-kp654qcw.js";
10
+ import"./index-aspxz5r5.js";
11
11
  import"./index-txdagbh7.js";
12
- import"./index-n1tcj1q7.js";
12
+ import"./index-bx70zs8d.js";
13
13
  import"./index-6b295cas.js";
14
14
  import"./index-zsrtt42s.js";
15
- import"./index-n2wjrgcs.js";
16
- import"./index-zbhvr9st.js";
17
- import"./index-s4bkey0q.js";
15
+ import"./index-b9z9gvx0.js";
16
+ import"./index-caj76d0f.js";
17
+ import"./index-8b1f2t5q.js";
18
+ import"./index-gc6h1fmf.js";
18
19
  import"./index-2s7dvzff.js";
19
20
  import"./index-frcemc0b.js";
20
- import"./index-wrt875kh.js";
21
- import"./index-b567t0cr.js";
22
- import"./index-h59vsbch.js";
23
- import"./index-a11ztzs5.js";
24
- import"./index-nzekzzs2.js";
25
- import"./index-ry16d01s.js";
21
+ import"./index-0725jpp7.js";
22
+ import"./index-x6kjbjya.js";
23
+ import"./index-htrb9ec3.js";
24
+ import"./index-vmthakz0.js";
25
+ import"./index-bv4b8tpa.js";
26
26
  import"./index-rdm3px0g.js";
27
- import"./index-yfpswnjt.js";
28
- import"./index-f2v90gfc.js";
29
- import"./index-7g4c7s5r.js";
27
+ import"./index-ry16d01s.js";
28
+ import"./index-jmrsfhwq.js";
29
+ import"./index-0v1rtanv.js";
30
30
  import"./index-qt0793qm.js";
31
- import"./index-ne9zamcs.js";
32
31
  import"./index-1xnse449.js";
33
32
  import"./index-c1ggtmpm.js";
34
- import"./index-m1w40kfw.js";
35
- import"./index-zz7gzw57.js";
36
- import"./index-4ddpvd5c.js";
37
- import"./index-9s1xzvnn.js";
33
+ import"./index-ejhxgyvm.js";
34
+ import"./index-7g4c7s5r.js";
35
+ import"./index-989v83pb.js";
36
+ import"./index-gx2vp8gx.js";
37
+ import"./index-zptq8mp1.js";
38
+ import"./index-zxdawwc7.js";
39
+ import"./index-defq2crz.js";
38
40
  import"./index-w872yykk.js";
39
41
  import"./index-bk5tah7q.js";
40
42
  import"./index-gknz3bv1.js";
@@ -21,18 +21,18 @@ import {
21
21
  reduceTaskWorkflowSnapshot,
22
22
  transitionTaskWorkflowEvidence,
23
23
  withTaskEvidenceTransaction
24
- } from "./index-n2wjrgcs.js";
25
- import"./index-zbhvr9st.js";
26
- import"./index-s4bkey0q.js";
24
+ } from "./index-caj76d0f.js";
25
+ import"./index-8b1f2t5q.js";
26
+ import"./index-gc6h1fmf.js";
27
27
  import"./index-2s7dvzff.js";
28
- import"./index-f2v90gfc.js";
29
- import"./index-7g4c7s5r.js";
28
+ import"./index-0v1rtanv.js";
30
29
  import"./index-qt0793qm.js";
31
- import"./index-ne9zamcs.js";
32
30
  import"./index-1xnse449.js";
33
31
  import"./index-c1ggtmpm.js";
34
- import"./index-zz7gzw57.js";
35
- import"./index-4ddpvd5c.js";
32
+ import"./index-ejhxgyvm.js";
33
+ import"./index-7g4c7s5r.js";
34
+ import"./index-989v83pb.js";
35
+ import"./index-zxdawwc7.js";
36
36
  import"./index-w872yykk.js";
37
37
  import"./index-gknz3bv1.js";
38
38
  import"./index-zpsr8rpc.js";