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
@@ -45,14 +45,13 @@ import {
45
45
  shouldSkipSnapshot,
46
46
  switchPrFeedbackTrackingCandidateAsync,
47
47
  workspaceSnapshotMatches
48
- } from "./index-2b0ktpbf.js";
49
- import"./index-s4bkey0q.js";
48
+ } from "./index-bdpgfep1.js";
49
+ import"./index-gc6h1fmf.js";
50
50
  import"./index-2s7dvzff.js";
51
- import"./index-ne9zamcs.js";
52
51
  import"./index-1xnse449.js";
53
52
  import"./index-c1ggtmpm.js";
54
- import"./index-zz7gzw57.js";
55
- import"./index-4ddpvd5c.js";
53
+ import"./index-989v83pb.js";
54
+ import"./index-zxdawwc7.js";
56
55
  import"./index-zpsr8rpc.js";
57
56
  import"./index-zgwm4ryv.js";
58
57
  import"./index-a76rekgs.js";
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  scanBackgroundWorktreeOwnershipTagsForRecovery
4
- } from "./index-549wxbe1.js";
4
+ } from "./index-cjapb4hy.js";
5
5
  import {
6
6
  scanWorktreeMergeFailuresForRecovery
7
7
  } from "./index-zsrtt42s.js";
@@ -9,33 +9,33 @@ import {
9
9
  WORKTREE_PROVISIONING_OWNER_LEASE_MS,
10
10
  removeWorktreeProvisioningOwner,
11
11
  scanWorktreeProvisioningOwnersForRecovery
12
- } from "./index-3pzwsesm.js";
12
+ } from "./index-92m05mew.js";
13
13
  import {
14
14
  scanDelegationFallbacksForRecovery,
15
15
  scanDelegationsForRecovery
16
- } from "./index-sj29n50e.js";
17
- import"./index-s4bkey0q.js";
16
+ } from "./index-v1sc1gxv.js";
17
+ import"./index-gc6h1fmf.js";
18
18
  import"./index-2s7dvzff.js";
19
- import"./index-cvg402ha.js";
20
- import"./index-a11ztzs5.js";
21
- import"./index-nzekzzs2.js";
22
- import"./index-ry16d01s.js";
19
+ import"./index-91dhg3wr.js";
20
+ import"./index-vmthakz0.js";
21
+ import"./index-bv4b8tpa.js";
23
22
  import"./index-rdm3px0g.js";
24
- import"./index-yfpswnjt.js";
25
- import"./index-yp25bc9n.js";
23
+ import"./index-ry16d01s.js";
24
+ import"./index-jmrsfhwq.js";
25
+ import"./index-pnt98k7z.js";
26
26
  import"./index-vzm6zre7.js";
27
27
  import"./index-ae75rja9.js";
28
- import"./index-34bwqcea.js";
29
- import"./index-f2v90gfc.js";
30
- import"./index-7g4c7s5r.js";
28
+ import"./index-zvxy0mev.js";
29
+ import"./index-0v1rtanv.js";
31
30
  import"./index-qt0793qm.js";
32
- import"./index-ne9zamcs.js";
33
31
  import {
34
32
  canonicalRootKeyFresh
35
33
  } from "./index-1xnse449.js";
36
34
  import"./index-c1ggtmpm.js";
37
- import"./index-zz7gzw57.js";
38
- import"./index-4ddpvd5c.js";
35
+ import"./index-ejhxgyvm.js";
36
+ import"./index-7g4c7s5r.js";
37
+ import"./index-989v83pb.js";
38
+ import"./index-zxdawwc7.js";
39
39
  import"./index-bk5tah7q.js";
40
40
  import"./index-gknz3bv1.js";
41
41
  import"./index-zpsr8rpc.js";
@@ -21,66 +21,68 @@ import {
21
21
  sanitizeWorktreeTaskId,
22
22
  standardWorktreeByCallID,
23
23
  standardWorktreeSerializationSessions
24
- } from "./index-ky262b73.js";
24
+ } from "./index-dnbqmay5.js";
25
+ import"./index-06crt1ej.js";
25
26
  import"./index-hamqvzqn.js";
26
- import"./index-pskba939.js";
27
- import"./index-aqpwm350.js";
28
- import"./index-h4nh6s8b.js";
29
- import"./index-q375xdcw.js";
30
- import"./index-y98fvmb8.js";
31
- import"./index-g6nyk713.js";
27
+ import"./index-jscqefqm.js";
28
+ import"./index-nhxykfyy.js";
29
+ import"./index-1hzqyx13.js";
30
+ import"./index-kp654qcw.js";
31
+ import"./index-aspxz5r5.js";
32
32
  import"./index-txdagbh7.js";
33
- import"./index-n1tcj1q7.js";
33
+ import"./index-bx70zs8d.js";
34
34
  import"./index-6b295cas.js";
35
- import"./index-dz12bshh.js";
36
- import"./index-vp9pn7sv.js";
37
- import"./index-pfg3jwe9.js";
35
+ import"./index-5gmn0a3j.js";
36
+ import"./index-ret97f1t.js";
37
+ import"./index-2h0qng38.js";
38
38
  import"./index-rdec0y3z.js";
39
- import"./index-6r92fw88.js";
40
- import"./index-549wxbe1.js";
39
+ import"./index-93vk5s7v.js";
40
+ import"./index-cjapb4hy.js";
41
41
  import"./index-zsrtt42s.js";
42
- import"./index-y94vwx2q.js";
43
- import"./index-2b0ktpbf.js";
44
- import"./index-3pzwsesm.js";
42
+ import"./index-cxgr6ad5.js";
43
+ import"./index-bdpgfep1.js";
44
+ import"./index-92m05mew.js";
45
45
  import"./index-pt7h91zc.js";
46
46
  import"./index-q7sjgr1y.js";
47
- import"./index-n2wjrgcs.js";
48
- import"./index-zbhvr9st.js";
49
- import"./index-sj29n50e.js";
50
- import"./index-epfjc1c1.js";
51
- import"./index-s4bkey0q.js";
47
+ import"./index-b9z9gvx0.js";
48
+ import"./index-caj76d0f.js";
49
+ import"./index-8b1f2t5q.js";
50
+ import"./index-v1sc1gxv.js";
51
+ import"./index-ekgc71m1.js";
52
+ import"./index-gc6h1fmf.js";
52
53
  import"./index-2s7dvzff.js";
53
- import"./index-5d224akk.js";
54
- import"./index-0h3cr7pn.js";
54
+ import"./index-5m378633.js";
55
+ import"./index-5yc5n4ae.js";
55
56
  import"./index-rtry5xyf.js";
56
57
  import {
57
58
  resolveWorktreeIsolationConfig
58
- } from "./index-ajm7ebyd.js";
59
+ } from "./index-dcttq1mn.js";
59
60
  import"./index-frcemc0b.js";
60
- import"./index-wrt875kh.js";
61
- import"./index-rb9jmj30.js";
62
- import"./index-b567t0cr.js";
63
- import"./index-h59vsbch.js";
64
- import"./index-cvg402ha.js";
65
- import"./index-a11ztzs5.js";
66
- import"./index-nzekzzs2.js";
67
- import"./index-ry16d01s.js";
61
+ import"./index-0725jpp7.js";
62
+ import"./index-jrfv2am8.js";
63
+ import"./index-x6kjbjya.js";
64
+ import"./index-htrb9ec3.js";
65
+ import"./index-91dhg3wr.js";
66
+ import"./index-vmthakz0.js";
67
+ import"./index-bv4b8tpa.js";
68
68
  import"./index-rdm3px0g.js";
69
- import"./index-yfpswnjt.js";
70
- import"./index-yp25bc9n.js";
69
+ import"./index-ry16d01s.js";
70
+ import"./index-jmrsfhwq.js";
71
+ import"./index-pnt98k7z.js";
71
72
  import"./index-vzm6zre7.js";
72
73
  import"./index-ae75rja9.js";
73
- import"./index-34bwqcea.js";
74
- import"./index-f2v90gfc.js";
75
- import"./index-7g4c7s5r.js";
74
+ import"./index-zvxy0mev.js";
75
+ import"./index-0v1rtanv.js";
76
76
  import"./index-qt0793qm.js";
77
- import"./index-ne9zamcs.js";
78
77
  import"./index-1xnse449.js";
79
78
  import"./index-c1ggtmpm.js";
80
- import"./index-m1w40kfw.js";
81
- import"./index-zz7gzw57.js";
82
- import"./index-4ddpvd5c.js";
83
- import"./index-9s1xzvnn.js";
79
+ import"./index-ejhxgyvm.js";
80
+ import"./index-7g4c7s5r.js";
81
+ import"./index-989v83pb.js";
82
+ import"./index-gx2vp8gx.js";
83
+ import"./index-zptq8mp1.js";
84
+ import"./index-zxdawwc7.js";
85
+ import"./index-defq2crz.js";
84
86
  import"./index-w872yykk.js";
85
87
  import"./index-bk5tah7q.js";
86
88
  import"./index-gknz3bv1.js";
@@ -0,0 +1 @@
1
+ export declare function handlePrFeedbackLoopCommand(directory: string, args: string[], sessionID: string): Promise<string>;
@@ -713,8 +713,8 @@ export declare const COMMAND_REGISTRY: {
713
713
  readonly sdd: {
714
714
  readonly handler: (ctx: CommandContext) => Promise<string>;
715
715
  readonly description: "Manage OpenSpec-compatible SDD artifacts and effective spec projection";
716
- readonly args: "status|validate|project [--json] [--change <id>] [--dry-run]";
717
- readonly details: "Parent command for spec-driven development artifacts. Use sdd status to inspect .swarm/spec.md plus openspec/ artifacts, sdd validate to validate OpenSpec-compatible deltas, and sdd project to materialize the effective spec into .swarm/spec.md for planning.";
716
+ readonly args: "status|validate|project [--json] [--change <id>] [--dry-run] [--source <provider>] [--feature <id>|all] [--overwrite]";
717
+ readonly details: "Parent command for spec-driven development artifacts. Use sdd status to inspect .swarm/spec.md plus openspec/ artifacts, sdd validate to validate OpenSpec-compatible deltas, and sdd project to materialize the effective spec into .swarm/spec.md for planning. Spec-Kit: sdd project projects ALL features with feature-scoped ids (featureId/FR-nnn) when several exist; --feature <id> selects one (v1 bare-id output); --feature all is the explicit multi-feature alias (project only).";
718
718
  readonly category: "utility";
719
719
  readonly toolPolicy: "agent";
720
720
  };
@@ -810,6 +810,14 @@ export declare const COMMAND_REGISTRY: {
810
810
  readonly category: "utility";
811
811
  readonly toolPolicy: "restricted";
812
812
  };
813
+ readonly 'pr-feedback-loop': {
814
+ readonly handler: (ctx: CommandContext) => Promise<string>;
815
+ readonly description: "Stop the autonomous PR babysitting settling loop for this session [stop] [reason...]";
816
+ readonly args: "stop <reason...>";
817
+ readonly details: "Human-only stop for the #2502 settling loop (triple opt-in: pr_monitor.enabled + pr_monitor.auto_pr_feedback + pr_feedback_loop.enabled). stop cancels any armed publication generation via the audited #2584 no-publish route (fail-open when nothing is armed), records a terminal cancelled state with the operator-visible reason, clears claimed-but-unsettled monitor events from the session queue via the sanctioned queue-clear primitive, and writes an atomic cleanup receipt under .swarm/pr-feedback-loop-cleanups/. Idempotent: re-running returns the same terminal without duplicating effects. Never issues new wakes; a wake already in flight may still surface in the session, but the workflow gate refuses pushes against a cancelled generation. The reason is mandatory.";
818
+ readonly category: "utility";
819
+ readonly toolPolicy: "restricted";
820
+ };
813
821
  readonly 'approve-plan-critic': {
814
822
  readonly handler: (ctx: CommandContext) => Promise<string>;
815
823
  readonly description: "Record a MANUAL plan-critic approval to unblock the critic_pre_plan execution gate [reason...]";
@@ -1419,6 +1419,22 @@ export declare const PrMonitorConfigSchema: z.ZodObject<{
1419
1419
  auto_subscribe_on_pr_create: z.ZodDefault<z.ZodBoolean>;
1420
1420
  }, z.core.$strict>;
1421
1421
  export type PrMonitorConfig = z.infer<typeof PrMonitorConfigSchema>;
1422
+ /**
1423
+ * Settling loop for autonomous PR babysitting (issue #2502; #1678 capstone) —
1424
+ * TRIPLE opt-in: runs only when pr_monitor.enabled AND
1425
+ * pr_monitor.auto_pr_feedback AND pr_feedback_loop.enabled are ALL true.
1426
+ * Never a default flip. The only supported `publication` mode today is
1427
+ * 'none' — the loop never arms publication and never pushes.
1428
+ */
1429
+ export declare const PrFeedbackLoopConfigSchema: z.ZodObject<{
1430
+ enabled: z.ZodDefault<z.ZodBoolean>;
1431
+ max_actions_per_pr: z.ZodDefault<z.ZodNumber>;
1432
+ max_session_actions: z.ZodDefault<z.ZodNumber>;
1433
+ publication: z.ZodDefault<z.ZodEnum<{
1434
+ none: "none";
1435
+ }>>;
1436
+ }, z.core.$strip>;
1437
+ export type PrFeedbackLoopConfig = z.infer<typeof PrFeedbackLoopConfigSchema>;
1422
1438
  export declare const ParallelizationConfigSchema: z.ZodObject<{
1423
1439
  enabled: z.ZodDefault<z.ZodBoolean>;
1424
1440
  maxConcurrentTasks: z.ZodDefault<z.ZodNumber>;
@@ -2388,6 +2404,9 @@ export declare const PluginConfigSchema: z.ZodObject<{
2388
2404
  out_dir: z.ZodDefault<z.ZodString>;
2389
2405
  language: z.ZodOptional<z.ZodString>;
2390
2406
  }, z.core.$strip>>;
2407
+ speckit_checkoff: z.ZodOptional<z.ZodObject<{
2408
+ enabled: z.ZodDefault<z.ZodBoolean>;
2409
+ }, z.core.$strip>>;
2391
2410
  git: z.ZodOptional<z.ZodObject<{
2392
2411
  binary: z.ZodOptional<z.ZodString>;
2393
2412
  }, z.core.$strip>>;
@@ -3098,6 +3117,14 @@ export declare const PluginConfigSchema: z.ZodObject<{
3098
3117
  cleanup_timeout_ms: z.ZodDefault<z.ZodNumber>;
3099
3118
  }, z.core.$strip>>;
3100
3119
  }, z.core.$strip>>>;
3120
+ pr_feedback_loop: z.ZodOptional<z.ZodObject<{
3121
+ enabled: z.ZodDefault<z.ZodBoolean>;
3122
+ max_actions_per_pr: z.ZodDefault<z.ZodNumber>;
3123
+ max_session_actions: z.ZodDefault<z.ZodNumber>;
3124
+ publication: z.ZodDefault<z.ZodEnum<{
3125
+ none: "none";
3126
+ }>>;
3127
+ }, z.core.$strip>>;
3101
3128
  pr_monitor: z.ZodOptional<z.ZodObject<{
3102
3129
  enabled: z.ZodDefault<z.ZodBoolean>;
3103
3130
  poll_interval_seconds: z.ZodDefault<z.ZodNumber>;
@@ -8,8 +8,13 @@ import type { PluginConfig } from '../config/schema';
8
8
  export type { DelegationReason } from '../state';
9
9
  /**
10
10
  * Creates the chat.message hook for delegation tracking.
11
+ *
12
+ * `directory` (issue #2667) is the plugin instance's project root captured at
13
+ * hook construction — chat.message inputs carry no directory. Sessions created
14
+ * here are ownership-stamped for that project so another project's hydration
15
+ * can never evict them.
11
16
  */
12
- export declare function createDelegationTrackerHook(config: PluginConfig, guardrailsEnabled?: boolean): (input: {
17
+ export declare function createDelegationTrackerHook(config: PluginConfig, guardrailsEnabled?: boolean, directory?: string): (input: {
13
18
  sessionID: string;
14
19
  agent?: string;
15
20
  }, output: Record<string, unknown>) => Promise<void>;
@@ -1310,7 +1310,7 @@ export declare function recordPrFeedbackPushAttemptResult(directory: string, inp
1310
1310
  * it), and the exact remote-head observation (including null when it could not
1311
1311
  * be resolved).
1312
1312
  */
1313
- declare function cancelPrFeedbackPublication(directory: string, sessionID: string, reason: string): Promise<{
1313
+ export declare function cancelPrFeedbackPublication(directory: string, sessionID: string, reason: string): Promise<{
1314
1314
  revision: number | null;
1315
1315
  observedRemoteHead: string | null;
1316
1316
  }>;