opencode-swarm 7.177.0 → 7.178.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 (118) 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/agents/architect.d.ts +9 -1
  4. package/dist/cli/{capability-probe-pdwwz8gs.js → capability-probe-8k8ebeyp.js} +2 -2
  5. package/dist/cli/{coder-settlement-pm07553t.js → coder-settlement-d2bfb25j.js} +13 -13
  6. package/dist/cli/{config-doctor-3mwx2rwq.js → config-doctor-905x2s1c.js} +4 -4
  7. package/dist/cli/{core-ty985ae1.js → core-k7wfx1wx.js} +4 -4
  8. package/dist/cli/{curation-policy-d8s9w1z8.js → curation-policy-n4hd2wsa.js} +5 -5
  9. package/dist/cli/{curator-drift-4m984tvy.js → curator-drift-smqmej5v.js} +4 -4
  10. package/dist/cli/curator-llm-factory-qhhxev17.js +72 -0
  11. package/dist/cli/{curator-pch7ww87.js → curator-wyadq69k.js} +40 -40
  12. package/dist/cli/{evidence-summary-service-cxed89n3.js → evidence-summary-service-r3wcprfk.js} +19 -19
  13. package/dist/cli/{gate-evidence-ymye7yew.js → gate-evidence-tq9rb2aj.js} +8 -8
  14. package/dist/cli/guardrail-explain-kvgejh24.js +73 -0
  15. package/dist/cli/{guardrail-log-pgggycf9.js → guardrail-log-m6twga6x.js} +9 -9
  16. package/dist/cli/{guardrail-reset-aghymhr5.js → guardrail-reset-86esv8cr.js} +40 -40
  17. package/dist/cli/hive-promoter-s87hkb40.js +87 -0
  18. package/dist/cli/{index-zzr7f594.js → index-18hjycr1.js} +1 -1
  19. package/dist/cli/{index-w7aedfce.js → index-29begjkp.js} +8 -8
  20. package/dist/cli/{index-7nsvszwn.js → index-2b1whj28.js} +2 -2
  21. package/dist/cli/{index-7bvzssz0.js → index-2bmhe2jn.js} +4 -4
  22. package/dist/cli/{index-hxdswvtv.js → index-2mdk6nt9.js} +7 -7
  23. package/dist/cli/{index-rz4gpt3n.js → index-2vhkwy6v.js} +3 -3
  24. package/dist/cli/{index-fpbcxykc.js → index-6b295cas.js} +87 -1
  25. package/dist/cli/{index-yzjaj53h.js → index-9rwhas09.js} +1 -1
  26. package/dist/cli/{index-8dy3qf4q.js → index-at0ygwwp.js} +5 -5
  27. package/dist/cli/{index-q1jterxw.js → index-azy3tw6c.js} +2 -2
  28. package/dist/cli/{index-eefz8ghz.js → index-bfz1jvcn.js} +1 -1
  29. package/dist/cli/{index-gwnbprzk.js → index-d5dexrv1.js} +4 -4
  30. package/dist/cli/{index-wemtrnch.js → index-ffqy30e5.js} +2 -2
  31. package/dist/cli/{index-5w51tawb.js → index-gg44hytk.js} +9 -9
  32. package/dist/cli/{index-ebmep9me.js → index-heg4em8j.js} +591 -261
  33. package/dist/cli/{index-z8j7jqxt.js → index-j1v54ahd.js} +4 -3
  34. package/dist/cli/{index-tj0sdxg9.js → index-j3rkh9mp.js} +2 -2
  35. package/dist/cli/{index-zbq9091c.js → index-jzxeymr0.js} +13 -13
  36. package/dist/cli/{index-zwam9stk.js → index-ke3m026z.js} +6 -6
  37. package/dist/cli/{index-r18n5f17.js → index-kfk403mc.js} +5 -5
  38. package/dist/cli/{index-5frh43fj.js → index-m2n1rhgv.js} +12 -0
  39. package/dist/cli/{index-k6bjkqw8.js → index-mpcp6rmj.js} +1 -1
  40. package/dist/cli/{index-fnmt1ema.js → index-p27az2hc.js} +4 -4
  41. package/dist/cli/{index-5d2avnj9.js → index-pm7c6f66.js} +2 -2
  42. package/dist/cli/{index-vfp9hjgv.js → index-q9vb5e7n.js} +1 -1
  43. package/dist/cli/{index-0z5s71kn.js → index-qk29b7s4.js} +42 -42
  44. package/dist/cli/{index-by7xpk8f.js → index-qs8eth8h.js} +37 -6
  45. package/dist/cli/{index-ef2fa774.js → index-rp0jk48x.js} +7 -7
  46. package/dist/cli/{index-9ftc8saz.js → index-sqngtwyq.js} +1 -1
  47. package/dist/cli/{index-tzxk6ct7.js → index-swxaa0zs.js} +40 -40
  48. package/dist/cli/{index-xnednxvm.js → index-tnjmn0dn.js} +1 -1
  49. package/dist/cli/{index-rgapg88w.js → index-vfc7d22n.js} +7 -3
  50. package/dist/cli/{index-1bq6hkw5.js → index-w4yjy3vp.js} +1 -1
  51. package/dist/cli/{index-73arkdgf.js → index-wbkxbgk8.js} +9 -5
  52. package/dist/cli/{index-2jtmevrr.js → index-wfbh1bx8.js} +3 -3
  53. package/dist/cli/{index-4chr4gbq.js → index-wkde35ej.js} +9 -9
  54. package/dist/cli/{index-76qm2c2y.js → index-wvghb3x6.js} +4 -4
  55. package/dist/cli/{index-v2he8xfj.js → index-y6a2bkp1.js} +2 -2
  56. package/dist/cli/{index-eya03h5m.js → index-y74n1sy8.js} +7 -7
  57. package/dist/cli/{index-tbswvz8s.js → index-yeh78c1g.js} +2 -2
  58. package/dist/cli/{index-en0p0hqp.js → index-yj1kr0ft.js} +1 -1
  59. package/dist/cli/{index-nzz58tbs.js → index-zex7644g.js} +2 -2
  60. package/dist/cli/{index-exhm2ztr.js → index-zmb8fjp5.js} +1 -1
  61. package/dist/cli/{index-mcq6xs4k.js → index-zsm8h8y1.js} +4 -4
  62. package/dist/cli/{index-yhaxn5r7.js → index-zsp9de3k.js} +2 -2
  63. package/dist/cli/index.js +41 -41
  64. package/dist/cli/{knowledge-escalator-praedffr.js → knowledge-escalator-rgz471df.js} +13 -13
  65. package/dist/cli/{knowledge-events-sn5gs5q9.js → knowledge-events-4mq0ypx9.js} +11 -11
  66. package/dist/cli/{knowledge-link-9z3fha35.js → knowledge-link-npk50523.js} +4 -4
  67. package/dist/cli/{knowledge-store-838sgd97.js → knowledge-store-gft25s5t.js} +5 -5
  68. package/dist/cli/{knowledge-validator-bsxgarqv.js → knowledge-validator-ejqacbx4.js} +7 -7
  69. package/dist/cli/{mcp-skh29erk.js → mcp-emaeeq4s.js} +48 -7
  70. package/dist/cli/mcp.d.ts +9 -0
  71. package/dist/cli/{model-preflight-gk1jysa8.js → model-preflight-kh9dwts2.js} +1 -1
  72. package/dist/cli/{pending-delegations-6zr5es4b.js → pending-delegations-4bhkcykk.js} +11 -11
  73. package/dist/cli/{pr-subscriptions-x2rr3gva.js → pr-subscriptions-h1n6dbds.js} +11 -11
  74. package/dist/cli/{pr-workflow-gate-jx30c9vz.js → pr-workflow-gate-wn6v5za8.js} +40 -40
  75. package/dist/cli/{runner-yhfmejzb.js → runner-ffy5ahhz.js} +5 -5
  76. package/dist/cli/{scan-cursor-6h85e2g0.js → scan-cursor-e63t0g5b.js} +6 -6
  77. package/dist/cli/{schema-8h1b602y.js → schema-4k4hr33y.js} +4 -2
  78. package/dist/cli/{scope-persistence-rb99xjr0.js → scope-persistence-qcw3rtxq.js} +16 -16
  79. package/dist/cli/{server-kdjc5aw8.js → server-58s1wwap.js} +2055 -736
  80. package/dist/cli/{skill-generator-nz7wjabh.js → skill-generator-fhj13jmq.js} +15 -15
  81. package/dist/cli/{snapshot-coordination-init-hexx2msp.js → snapshot-coordination-init-5fawrj35.js} +40 -40
  82. package/dist/cli/{telemetry-w774xb8g.js → telemetry-ca8dmn26.js} +1 -1
  83. package/dist/cli/{workspace-snapshot-9gqna7gq.js → workspace-snapshot-v5qyjxg0.js} +3 -3
  84. package/dist/cli/{worktree-collision-ownership-ecwj3ehp.js → worktree-collision-ownership-hjk0jx19.js} +12 -12
  85. package/dist/cli/{worktree-isolation-0x9fx30v.js → worktree-isolation-aj20bs6q.js} +40 -40
  86. package/dist/commands/dashboard.d.ts +15 -0
  87. package/dist/commands/registry.d.ts +7 -0
  88. package/dist/config/schema.d.ts +16 -0
  89. package/dist/dashboard/assets.d.ts +12 -0
  90. package/dist/dashboard/index.d.ts +74 -0
  91. package/dist/dashboard/server.d.ts +94 -0
  92. package/dist/dashboard/views.d.ts +131 -0
  93. package/dist/events/core-events.d.ts +1 -1
  94. package/dist/hooks/delegation-gate.d.ts +26 -0
  95. package/dist/hooks/index.d.ts +1 -1
  96. package/dist/hooks/tool-summarizer.d.ts +7 -2
  97. package/dist/index.js +437 -276
  98. package/dist/mcp/adapters/knowledge-add.d.ts +19 -0
  99. package/dist/mcp/adapters/receipt-status.d.ts +3 -0
  100. package/dist/mcp/adapters/scope-validation.d.ts +3 -0
  101. package/dist/mcp/registry.d.ts +26 -14
  102. package/dist/mcp/server.d.ts +5 -0
  103. package/dist/mcp/write-receipts.d.ts +168 -0
  104. package/dist/summaries/index.d.ts +1 -1
  105. package/dist/summaries/manager.d.ts +27 -1
  106. package/dist/tools/approve-retry-sounding-board.d.ts +5 -0
  107. package/dist/tools/index.d.ts +3 -0
  108. package/dist/tools/knowledge-receipt-status.d.ts +8 -0
  109. package/dist/tools/manifest.d.ts +3 -0
  110. package/dist/tools/scope-validate.d.ts +55 -0
  111. package/dist/tools/tool-metadata.d.ts +12 -0
  112. package/dist/types/events.d.ts +5 -1
  113. package/dist/utils/path-security.d.ts +21 -0
  114. package/opencode-swarm.schema.json +14 -0
  115. package/package.json +1 -1
  116. package/dist/cli/curator-llm-factory-zbs6hm60.js +0 -72
  117. package/dist/cli/guardrail-explain-1zy8c3vn.js +0 -73
  118. package/dist/cli/hive-promoter-3dp8qbqc.js +0 -87
@@ -3,70 +3,70 @@ import {
3
3
  getAgentSession,
4
4
  getBlockingActionCircuit,
5
5
  resetActionCircuitExternally
6
- } from "./index-ebmep9me.js";
6
+ } from "./index-heg4em8j.js";
7
7
  import"./index-hnvmj9wx.js";
8
- import"./index-vfp9hjgv.js";
9
- import"./index-by7xpk8f.js";
10
- import"./index-eefz8ghz.js";
11
- import"./index-rgapg88w.js";
12
- import"./index-zbq9091c.js";
13
- import"./index-k6bjkqw8.js";
8
+ import"./index-q9vb5e7n.js";
9
+ import"./index-qs8eth8h.js";
10
+ import"./index-bfz1jvcn.js";
11
+ import"./index-vfc7d22n.js";
12
+ import"./index-jzxeymr0.js";
13
+ import"./index-mpcp6rmj.js";
14
14
  import"./index-txdagbh7.js";
15
15
  import"./index-n1tcj1q7.js";
16
- import"./index-fpbcxykc.js";
17
- import"./index-mcq6xs4k.js";
18
- import"./index-8dy3qf4q.js";
19
- import"./index-nzz58tbs.js";
16
+ import"./index-6b295cas.js";
17
+ import"./index-zsm8h8y1.js";
18
+ import"./index-at0ygwwp.js";
19
+ import"./index-zex7644g.js";
20
20
  import"./index-fyfbpz4f.js";
21
- import"./index-eya03h5m.js";
21
+ import"./index-y74n1sy8.js";
22
22
  import"./index-549wxbe1.js";
23
23
  import"./index-zsrtt42s.js";
24
- import"./index-4chr4gbq.js";
25
- import"./index-5d2avnj9.js";
26
- import"./index-7nsvszwn.js";
24
+ import"./index-wkde35ej.js";
25
+ import"./index-pm7c6f66.js";
26
+ import"./index-2b1whj28.js";
27
27
  import"./index-pt7h91zc.js";
28
28
  import"./index-q7sjgr1y.js";
29
- import"./index-r18n5f17.js";
30
- import"./index-fnmt1ema.js";
31
- import"./index-ef2fa774.js";
32
- import"./index-w7aedfce.js";
33
- import"./index-exhm2ztr.js";
29
+ import"./index-kfk403mc.js";
30
+ import"./index-p27az2hc.js";
31
+ import"./index-rp0jk48x.js";
32
+ import"./index-29begjkp.js";
33
+ import"./index-zmb8fjp5.js";
34
34
  import"./index-2s7dvzff.js";
35
- import"./index-gwnbprzk.js";
36
- import"./index-wemtrnch.js";
35
+ import"./index-d5dexrv1.js";
36
+ import"./index-ffqy30e5.js";
37
37
  import"./index-rtry5xyf.js";
38
- import"./index-rz4gpt3n.js";
38
+ import"./index-2vhkwy6v.js";
39
39
  import"./index-frcemc0b.js";
40
40
  import"./index-wrt875kh.js";
41
- import"./index-5w51tawb.js";
42
- import"./index-zwam9stk.js";
43
- import"./index-z8j7jqxt.js";
44
- import"./index-v2he8xfj.js";
45
- import"./index-1bq6hkw5.js";
46
- import"./index-xnednxvm.js";
41
+ import"./index-gg44hytk.js";
42
+ import"./index-ke3m026z.js";
43
+ import"./index-j1v54ahd.js";
44
+ import"./index-y6a2bkp1.js";
45
+ import"./index-w4yjy3vp.js";
46
+ import"./index-tnjmn0dn.js";
47
47
  import"./index-rdm3px0g.js";
48
48
  import"./index-ry16d01s.js";
49
- import"./index-tbswvz8s.js";
50
- import"./index-hxdswvtv.js";
49
+ import"./index-yeh78c1g.js";
50
+ import"./index-2mdk6nt9.js";
51
51
  import"./index-vzm6zre7.js";
52
52
  import"./index-ae75rja9.js";
53
- import"./index-en0p0hqp.js";
54
- import"./index-tj0sdxg9.js";
53
+ import"./index-yj1kr0ft.js";
54
+ import"./index-j3rkh9mp.js";
55
55
  import"./index-7g4c7s5r.js";
56
- import"./index-2jtmevrr.js";
57
- import"./index-yhaxn5r7.js";
56
+ import"./index-wfbh1bx8.js";
57
+ import"./index-zsp9de3k.js";
58
58
  import"./index-1xnse449.js";
59
59
  import"./index-c1ggtmpm.js";
60
- import"./index-zzr7f594.js";
60
+ import"./index-18hjycr1.js";
61
61
  import"./index-zz7gzw57.js";
62
62
  import"./index-4ddpvd5c.js";
63
- import"./index-73arkdgf.js";
64
- import"./index-5frh43fj.js";
63
+ import"./index-wbkxbgk8.js";
64
+ import"./index-m2n1rhgv.js";
65
65
  import"./index-bk5tah7q.js";
66
66
  import"./index-gknz3bv1.js";
67
67
  import"./index-zpsr8rpc.js";
68
- import"./index-76qm2c2y.js";
69
- import"./index-yzjaj53h.js";
68
+ import"./index-wvghb3x6.js";
69
+ import"./index-9rwhas09.js";
70
70
  import"./index-zgwm4ryv.js";
71
71
  import"./index-a76rekgs.js";
72
72
 
@@ -0,0 +1,87 @@
1
+ // @bun
2
+ import {
3
+ _internals3 as _internals,
4
+ checkHivePromotions,
5
+ countDistinctProjects,
6
+ createHivePromoterHook,
7
+ isHiveEligible,
8
+ promoteFromSwarm,
9
+ promoteToHive
10
+ } from "./index-heg4em8j.js";
11
+ import"./index-hnvmj9wx.js";
12
+ import"./index-q9vb5e7n.js";
13
+ import"./index-qs8eth8h.js";
14
+ import"./index-bfz1jvcn.js";
15
+ import"./index-vfc7d22n.js";
16
+ import"./index-jzxeymr0.js";
17
+ import"./index-mpcp6rmj.js";
18
+ import"./index-txdagbh7.js";
19
+ import"./index-n1tcj1q7.js";
20
+ import"./index-6b295cas.js";
21
+ import"./index-zsm8h8y1.js";
22
+ import"./index-at0ygwwp.js";
23
+ import"./index-zex7644g.js";
24
+ import"./index-fyfbpz4f.js";
25
+ import"./index-y74n1sy8.js";
26
+ import"./index-549wxbe1.js";
27
+ import"./index-zsrtt42s.js";
28
+ import"./index-wkde35ej.js";
29
+ import"./index-pm7c6f66.js";
30
+ import"./index-2b1whj28.js";
31
+ import"./index-pt7h91zc.js";
32
+ import"./index-q7sjgr1y.js";
33
+ import"./index-kfk403mc.js";
34
+ import"./index-p27az2hc.js";
35
+ import"./index-rp0jk48x.js";
36
+ import"./index-29begjkp.js";
37
+ import"./index-zmb8fjp5.js";
38
+ import"./index-2s7dvzff.js";
39
+ import"./index-d5dexrv1.js";
40
+ import"./index-ffqy30e5.js";
41
+ import"./index-rtry5xyf.js";
42
+ import"./index-2vhkwy6v.js";
43
+ import"./index-frcemc0b.js";
44
+ import"./index-wrt875kh.js";
45
+ import"./index-gg44hytk.js";
46
+ import"./index-ke3m026z.js";
47
+ import"./index-j1v54ahd.js";
48
+ import"./index-y6a2bkp1.js";
49
+ import"./index-w4yjy3vp.js";
50
+ import"./index-tnjmn0dn.js";
51
+ import"./index-rdm3px0g.js";
52
+ import"./index-ry16d01s.js";
53
+ import"./index-yeh78c1g.js";
54
+ import {
55
+ resolveHiveKnowledgePath
56
+ } from "./index-2mdk6nt9.js";
57
+ import"./index-vzm6zre7.js";
58
+ import"./index-ae75rja9.js";
59
+ import"./index-yj1kr0ft.js";
60
+ import"./index-j3rkh9mp.js";
61
+ import"./index-7g4c7s5r.js";
62
+ import"./index-wfbh1bx8.js";
63
+ import"./index-zsp9de3k.js";
64
+ import"./index-1xnse449.js";
65
+ import"./index-c1ggtmpm.js";
66
+ import"./index-18hjycr1.js";
67
+ import"./index-zz7gzw57.js";
68
+ import"./index-4ddpvd5c.js";
69
+ import"./index-wbkxbgk8.js";
70
+ import"./index-m2n1rhgv.js";
71
+ import"./index-bk5tah7q.js";
72
+ import"./index-gknz3bv1.js";
73
+ import"./index-zpsr8rpc.js";
74
+ import"./index-wvghb3x6.js";
75
+ import"./index-9rwhas09.js";
76
+ import"./index-zgwm4ryv.js";
77
+ import"./index-a76rekgs.js";
78
+ export {
79
+ resolveHiveKnowledgePath,
80
+ promoteToHive,
81
+ promoteFromSwarm,
82
+ isHiveEligible,
83
+ createHivePromoterHook,
84
+ countDistinctProjects,
85
+ checkHivePromotions,
86
+ _internals
87
+ };
@@ -14,7 +14,7 @@ import {
14
14
  PluginConfigSchema,
15
15
  init_schema,
16
16
  resolveExternalSkillsConfig
17
- } from "./index-73arkdgf.js";
17
+ } from "./index-wbkxbgk8.js";
18
18
  import {
19
19
  exports_external,
20
20
  init_zod
@@ -1,36 +1,36 @@
1
1
  // @bun
2
2
  import {
3
3
  validateSwarmPath
4
- } from "./index-exhm2ztr.js";
4
+ } from "./index-zmb8fjp5.js";
5
5
  import {
6
6
  observeReceiptTransition
7
- } from "./index-tbswvz8s.js";
7
+ } from "./index-yeh78c1g.js";
8
8
  import {
9
9
  resolveHiveEventsPath
10
10
  } from "./index-ae75rja9.js";
11
11
  import {
12
12
  resolveKnowledgeStoreDir
13
- } from "./index-en0p0hqp.js";
13
+ } from "./index-yj1kr0ft.js";
14
14
  import {
15
15
  assertProjectRoot,
16
16
  atomicWriteFile
17
- } from "./index-tj0sdxg9.js";
17
+ } from "./index-j3rkh9mp.js";
18
18
  import {
19
19
  require_proper_lockfile
20
20
  } from "./index-7g4c7s5r.js";
21
21
  import {
22
22
  emit
23
- } from "./index-2jtmevrr.js";
23
+ } from "./index-wfbh1bx8.js";
24
24
  import {
25
25
  canonicalRootKey
26
26
  } from "./index-1xnse449.js";
27
27
  import {
28
28
  loadPluginConfigWithMeta
29
- } from "./index-zzr7f594.js";
29
+ } from "./index-18hjycr1.js";
30
30
  import {
31
31
  KnowledgeConfigSchema,
32
32
  init_schema
33
- } from "./index-73arkdgf.js";
33
+ } from "./index-wbkxbgk8.js";
34
34
  import {
35
35
  init_logger,
36
36
  warn
@@ -2813,7 +2813,7 @@ async function applyKnowledgeVerdictFeedback(directory, options) {
2813
2813
  }
2814
2814
  let bumps = 0;
2815
2815
  if (deltas.length > 0) {
2816
- const { bumpKnowledgeConfidenceBatch } = await import("./knowledge-store-838sgd97.js");
2816
+ const { bumpKnowledgeConfidenceBatch } = await import("./knowledge-store-gft25s5t.js");
2817
2817
  bumps = await bumpKnowledgeConfidenceBatch(directory, deltas, options?.floorOptions);
2818
2818
  }
2819
2819
  return {
@@ -1,10 +1,10 @@
1
1
  // @bun
2
2
  import {
3
3
  validateSwarmPath
4
- } from "./index-exhm2ztr.js";
4
+ } from "./index-zmb8fjp5.js";
5
5
  import {
6
6
  atomicWriteSwarmFileSync
7
- } from "./index-yhaxn5r7.js";
7
+ } from "./index-zsp9de3k.js";
8
8
 
9
9
  // src/hooks/delegation-gate/worktree-provisioning-owner.ts
10
10
  import { createHash } from "crypto";
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  _internals,
4
4
  resolveWorktreeIsolationConfig
5
- } from "./index-rz4gpt3n.js";
5
+ } from "./index-2vhkwy6v.js";
6
6
  import {
7
7
  ApprovalEvidenceSchema,
8
8
  BaseEvidenceSchema,
@@ -44,7 +44,7 @@ import {
44
44
  loadPluginConfigWithMeta,
45
45
  loadPluginConfigWithMetaAsync,
46
46
  resetConfigAdvisoryDedup
47
- } from "./index-zzr7f594.js";
47
+ } from "./index-18hjycr1.js";
48
48
  import"./index-zz7gzw57.js";
49
49
  import"./index-4ddpvd5c.js";
50
50
  import {
@@ -71,7 +71,7 @@ import {
71
71
  TurboConfigSchema,
72
72
  WorktreeIsolationConfigSchema,
73
73
  resolveAutoReviewConfig
74
- } from "./index-73arkdgf.js";
74
+ } from "./index-wbkxbgk8.js";
75
75
  import {
76
76
  ALL_AGENT_NAMES,
77
77
  ALL_SUBAGENT_NAMES,
@@ -81,7 +81,7 @@ import {
81
81
  QA_AGENTS,
82
82
  isQAAgent,
83
83
  isSubagent
84
- } from "./index-5frh43fj.js";
84
+ } from "./index-m2n1rhgv.js";
85
85
  import"./index-bk5tah7q.js";
86
86
  import"./index-gknz3bv1.js";
87
87
  import"./index-zpsr8rpc.js";
@@ -11,16 +11,16 @@ import {
11
11
  } from "./index-ae75rja9.js";
12
12
  import {
13
13
  resolveKnowledgeStoreDir
14
- } from "./index-en0p0hqp.js";
14
+ } from "./index-yj1kr0ft.js";
15
15
  import {
16
16
  atomicWriteFile
17
- } from "./index-tj0sdxg9.js";
17
+ } from "./index-j3rkh9mp.js";
18
18
  import {
19
19
  require_proper_lockfile
20
20
  } from "./index-7g4c7s5r.js";
21
21
  import {
22
22
  readCachedParsedFile
23
- } from "./index-yhaxn5r7.js";
23
+ } from "./index-zsp9de3k.js";
24
24
  import {
25
25
  init_knowledge_types,
26
26
  isActiveStatus
@@ -739,7 +739,7 @@ async function applyConfidenceFloorAction(directory, touched, options) {
739
739
  const {
740
740
  readAuthoritativeKnowledgeCounterRollups,
741
741
  effectiveRetrievalOutcomes
742
- } = await import("./knowledge-events-sn5gs5q9.js");
742
+ } = await import("./knowledge-events-4mq0ypx9.js");
743
743
  const rollups = await readAuthoritativeKnowledgeCounterRollups(directory);
744
744
  const flagIds = new Set;
745
745
  for (const e of atFloor) {
@@ -806,11 +806,11 @@ async function applyConfidenceFloorAction(directory, touched, options) {
806
806
  });
807
807
  }
808
808
  if (action === "quarantine" && toQuarantine.length > 0) {
809
- const { quarantineEntry } = await import("./knowledge-validator-bsxgarqv.js");
810
- const { KnowledgeConfigSchema } = await import("./schema-8h1b602y.js");
809
+ const { quarantineEntry } = await import("./knowledge-validator-ejqacbx4.js");
810
+ const { KnowledgeConfigSchema } = await import("./schema-4k4hr33y.js");
811
811
  let config;
812
812
  try {
813
- const { loadPluginConfigWithMeta } = await import("./index-7bvzssz0.js");
813
+ const { loadPluginConfigWithMeta } = await import("./index-2bmhe2jn.js");
814
814
  const { config: loadedConfig } = loadPluginConfigWithMeta(directory);
815
815
  config = KnowledgeConfigSchema.parse(loadedConfig.knowledge ?? {});
816
816
  } catch {
@@ -2,14 +2,14 @@
2
2
  import {
3
3
  init_loader,
4
4
  loadPluginConfigWithMeta
5
- } from "./index-zzr7f594.js";
5
+ } from "./index-18hjycr1.js";
6
6
  import {
7
7
  init_schema
8
- } from "./index-73arkdgf.js";
8
+ } from "./index-wbkxbgk8.js";
9
9
  import {
10
10
  DEFAULT_WORKTREE_ISOLATION_CONFIG,
11
11
  init_constants
12
- } from "./index-5frh43fj.js";
12
+ } from "./index-m2n1rhgv.js";
13
13
 
14
14
  // src/config/index.ts
15
15
  init_constants();
@@ -163,6 +163,92 @@ function isCanonicalPathWithinRoot(targetPath, rootPath) {
163
163
  }
164
164
  return false;
165
165
  }
166
+ function createCanonicalPathWithinRootChecker(rootPath) {
167
+ const resolvedRoot = path.resolve(rootPath);
168
+ const canonicalRoot = canonicalExistingFilesystemPath(rootPath);
169
+ const rootPrefix = canonicalRoot ? canonicalRoot.endsWith("/") ? canonicalRoot : `${canonicalRoot}/` : null;
170
+ const entryCache = new Map;
171
+ const maxCacheEntries = 32768;
172
+ const isWithinCanonicalRoot = (candidate) => {
173
+ return canonicalRoot !== null && (candidate === canonicalRoot || candidate.startsWith(rootPrefix ?? ""));
174
+ };
175
+ const readEntry = (entryPath) => {
176
+ const cached = entryCache.get(entryPath);
177
+ if (cached)
178
+ return cached;
179
+ let entry;
180
+ try {
181
+ const stat = fs.lstatSync(entryPath);
182
+ const isSymbolicLink = stat.isSymbolicLink();
183
+ entry = {
184
+ inaccessible: false,
185
+ isSymbolicLink,
186
+ canonicalPath: isSymbolicLink ? canonicalExistingFilesystemPath(entryPath) : null
187
+ };
188
+ } catch (error) {
189
+ const code = error && typeof error === "object" && "code" in error ? String(error.code) : undefined;
190
+ entry = {
191
+ inaccessible: code !== "ENOENT" && code !== "ENOTDIR",
192
+ isSymbolicLink: false,
193
+ canonicalPath: null
194
+ };
195
+ }
196
+ if (entryCache.size >= maxCacheEntries)
197
+ entryCache.clear();
198
+ entryCache.set(entryPath, entry);
199
+ return entry;
200
+ };
201
+ return (targetPath) => {
202
+ if (canonicalRoot === null)
203
+ return false;
204
+ const resolvedTarget = path.resolve(targetPath);
205
+ const relative2 = path.relative(resolvedRoot, resolvedTarget);
206
+ if (relative2.startsWith("..") || path.isAbsolute(relative2))
207
+ return false;
208
+ let probe = resolvedTarget;
209
+ for (let depth = 0;depth < 4096; depth++) {
210
+ const entry = readEntry(probe);
211
+ if (entry.inaccessible)
212
+ return false;
213
+ if (entry.isSymbolicLink) {
214
+ return entry.canonicalPath !== null && isWithinCanonicalRoot(entry.canonicalPath);
215
+ }
216
+ if (probe === resolvedRoot)
217
+ return true;
218
+ const parent = path.dirname(probe);
219
+ if (parent === probe)
220
+ return false;
221
+ probe = parent;
222
+ }
223
+ return false;
224
+ };
225
+ }
226
+ function createTargetWithinRootValidator(root) {
227
+ const isCanonicalWithinRoot = createCanonicalPathWithinRootChecker(root);
228
+ return (filePath) => {
229
+ if (!filePath || filePath.trim() === "") {
230
+ return "Empty path";
231
+ }
232
+ if (path.isAbsolute(filePath) || /^[A-Za-z]:[/\\]/.test(filePath)) {
233
+ return `Absolute path rejected: ${filePath}`;
234
+ }
235
+ if (containsPathTraversal(filePath)) {
236
+ return `Path traversal detected: ${filePath}`;
237
+ }
238
+ if (containsControlChars(filePath)) {
239
+ return `Control characters detected in path: ${filePath}`;
240
+ }
241
+ const resolved = path.resolve(root, filePath);
242
+ const relative2 = path.relative(root, resolved);
243
+ if (relative2.startsWith("..") || path.isAbsolute(relative2)) {
244
+ return `Path escapes root: ${filePath}`;
245
+ }
246
+ if (!isCanonicalWithinRoot(resolved)) {
247
+ return `Path escapes root via symlink/junction: ${filePath}`;
248
+ }
249
+ return null;
250
+ };
251
+ }
166
252
  function validateTargetWithinRoot(filePath, root) {
167
253
  if (!filePath || filePath.trim() === "") {
168
254
  return "Empty path";
@@ -197,4 +283,4 @@ var _internals = {
197
283
  validateTargetWithinRoot
198
284
  };
199
285
 
200
- export { containsPathTraversal, containsControlChars, validateWorkspaceRoot, validateProjectDirectory, validateSymlinkBoundary, isCanonicalPathWithinRoot, validateTargetWithinRoot };
286
+ export { containsPathTraversal, containsControlChars, validateWorkspaceRoot, validateProjectDirectory, validateSymlinkBoundary, isCanonicalPathWithinRoot, createTargetWithinRootValidator, validateTargetWithinRoot };
@@ -66,4 +66,4 @@ var init_path_identity = __esm(() => {
66
66
  BIDI_CONTROL_CHARACTERS = /[\u061c\u200e\u200f\u202a-\u202e\u2066-\u2069]/u;
67
67
  });
68
68
 
69
- export { getPathFlavor, pathIdentitiesEqual, isPathIdentityWithin, isPathWithinDeclaredScope, isOnDifferentPathRoot, unsafePathTextReason, sanitizeDiagnosticText, init_path_identity };
69
+ export { getPathFlavor, normalizePathIdentity, pathIdentitiesEqual, isPathIdentityWithin, isPathWithinDeclaredScope, isOnDifferentPathRoot, unsafePathTextReason, sanitizeDiagnosticText, init_path_identity };
@@ -3,7 +3,7 @@ import {
3
3
  queryHistoricalOutcomes,
4
4
  readKnowledgeEvents,
5
5
  recordKnowledgeEvent
6
- } from "./index-w7aedfce.js";
6
+ } from "./index-29begjkp.js";
7
7
  import {
8
8
  jaccardBigram,
9
9
  readKnowledge,
@@ -11,7 +11,7 @@ import {
11
11
  resolveSwarmKnowledgePath,
12
12
  transactKnowledge,
13
13
  wordBigrams
14
- } from "./index-hxdswvtv.js";
14
+ } from "./index-2mdk6nt9.js";
15
15
  import {
16
16
  init_knowledge_types,
17
17
  isActiveStatus
@@ -224,11 +224,11 @@ async function maybeQuarantineOnContradiction(directory, entryId, threshold, win
224
224
  alreadyInactive: true
225
225
  };
226
226
  }
227
- const { quarantineEntry } = await import("./knowledge-validator-bsxgarqv.js");
227
+ const { quarantineEntry } = await import("./knowledge-validator-ejqacbx4.js");
228
228
  let policyConfig;
229
229
  try {
230
- const { KnowledgeConfigSchema } = await import("./schema-8h1b602y.js");
231
- const { loadPluginConfigWithMeta } = await import("./index-7bvzssz0.js");
230
+ const { KnowledgeConfigSchema } = await import("./schema-4k4hr33y.js");
231
+ const { loadPluginConfigWithMeta } = await import("./index-2bmhe2jn.js");
232
232
  const { config: loadedConfig } = loadPluginConfigWithMeta(directory);
233
233
  policyConfig = KnowledgeConfigSchema.parse(loadedConfig.knowledge ?? {});
234
234
  } catch {
@@ -14,14 +14,14 @@ import {
14
14
  detectWindowsWrites,
15
15
  getSharedClassifierGuardrailBlock,
16
16
  resolveWriteTargets
17
- } from "./index-ebmep9me.js";
17
+ } from "./index-heg4em8j.js";
18
18
  import {
19
19
  checkFileAuthority,
20
20
  classifyFile,
21
21
  isInDeclaredScope,
22
22
  redactPath,
23
23
  redactShellCommand
24
- } from "./index-by7xpk8f.js";
24
+ } from "./index-qs8eth8h.js";
25
25
 
26
26
  // src/services/guardrail-explain-service.ts
27
27
  import path from "path";
@@ -5,7 +5,7 @@ import {
5
5
  batchDurabilityClass,
6
6
  classifyDbWriteError,
7
7
  getProjectDb
8
- } from "./index-xnednxvm.js";
8
+ } from "./index-tnjmn0dn.js";
9
9
  import {
10
10
  _internals,
11
11
  canonicalRootKeyFresh
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  authorizeCuration
4
- } from "./index-wemtrnch.js";
4
+ } from "./index-ffqy30e5.js";
5
5
  import {
6
6
  findNearDuplicate,
7
7
  inferTags,
@@ -9,13 +9,13 @@ import {
9
9
  resolveSwarmKnowledgePath,
10
10
  resolveSwarmRejectedPath,
11
11
  transactKnowledge
12
- } from "./index-hxdswvtv.js";
12
+ } from "./index-2mdk6nt9.js";
13
13
  import {
14
14
  resolveKnowledgeStoreDir
15
- } from "./index-en0p0hqp.js";
15
+ } from "./index-yj1kr0ft.js";
16
16
  import {
17
17
  atomicWriteFile
18
- } from "./index-tj0sdxg9.js";
18
+ } from "./index-j3rkh9mp.js";
19
19
  import {
20
20
  require_proper_lockfile
21
21
  } from "./index-7g4c7s5r.js";
@@ -11,7 +11,7 @@ import {
11
11
  readLinkPointer,
12
12
  resolveKnowledgeStoreDir,
13
13
  resolveLinkDir
14
- } from "./index-en0p0hqp.js";
14
+ } from "./index-yj1kr0ft.js";
15
15
 
16
16
  // src/knowledge/curation-policy.ts
17
17
  import { readFile as readFile2 } from "fs/promises";
@@ -246,4 +246,4 @@ var _internals2 = {
246
246
  resolveKnowledgeStoreDir
247
247
  };
248
248
 
249
- export { MAX_CURATION_PROPOSALS, authorizeCuration, buildConfigFingerprintInput, readCohortConfigFingerprint, _internals2 as _internals };
249
+ export { resolveWorktreeId, MAX_CURATION_PROPOSALS, authorizeCuration, buildConfigFingerprintInput, readCohortConfigFingerprint, _internals2 as _internals };
@@ -1,10 +1,10 @@
1
1
  // @bun
2
2
  import {
3
3
  computePlanStructureHash
4
- } from "./index-zwam9stk.js";
4
+ } from "./index-ke3m026z.js";
5
5
  import {
6
6
  appendCoreEventSync
7
- } from "./index-z8j7jqxt.js";
7
+ } from "./index-j1v54ahd.js";
8
8
  import {
9
9
  deleteCoordinationState,
10
10
  derivePlanId,
@@ -13,31 +13,31 @@ import {
13
13
  transitionCoordinationState,
14
14
  transitionCoordinationStateWithinTransaction,
15
15
  withCoordinationTransaction
16
- } from "./index-1bq6hkw5.js";
16
+ } from "./index-w4yjy3vp.js";
17
17
  import {
18
18
  getProjectDb
19
- } from "./index-xnednxvm.js";
19
+ } from "./index-tnjmn0dn.js";
20
20
  import {
21
21
  canonicalExistingFilesystemPath,
22
22
  legacyCanonicalExistingFilesystemPath
23
23
  } from "./index-ry16d01s.js";
24
24
  import {
25
25
  assertProjectRoot
26
- } from "./index-tj0sdxg9.js";
26
+ } from "./index-j3rkh9mp.js";
27
27
  import {
28
28
  require_proper_lockfile
29
29
  } from "./index-7g4c7s5r.js";
30
30
  import {
31
31
  atomicWriteSwarmFile,
32
32
  atomicWriteSwarmFileSync
33
- } from "./index-yhaxn5r7.js";
33
+ } from "./index-zsp9de3k.js";
34
34
  import {
35
35
  PlanSchema
36
- } from "./index-zzr7f594.js";
36
+ } from "./index-18hjycr1.js";
37
37
  import {
38
38
  init_path_identity,
39
39
  unsafePathTextReason
40
- } from "./index-yzjaj53h.js";
40
+ } from "./index-9rwhas09.js";
41
41
  import {
42
42
  __toESM
43
43
  } from "./index-a76rekgs.js";
@@ -2015,4 +2015,4 @@ function resolveScopeWithFallbacks(input) {
2015
2015
  return null;
2016
2016
  }
2017
2017
 
2018
- export { MAX_PENDING_SCOPE_BINDINGS, canonicalWorkspaceIdentity, clearScopeBindings, writeScopeToDisk, writeScopeBindingToDisk, persistAndRegisterScopeBinding, readScopeBindingFromDisk, resolveScopeBindingFromDisk, clearScopeBindingFromDisk, tombstoneScopeBinding, refreshScopeBindingLease, claimScopeBindingForChildDurably, replaceExistingScopeDeclaration, flushScopeBindingMaintenance, pruneScopeBindingTombstones, resolveAuthorizedScopeBinding, resolveAuthorizedScopeBindingDetailed, resolveAuthorizedScopeBindingForSession, resolveAuthorizedScopeBindingForSessionDetailed, resolveAuthorizedPrFeedbackScopeBindingFromDisk, _scopePersistenceInternals, readScopeFromDisk, readPlanScope, clearScopeForTask, clearAllScopes, resolveScopeWithFallbacks };
2018
+ export { MAX_PENDING_SCOPE_BINDINGS, canonicalWorkspaceIdentity, normalizeScopeFiles, clearScopeBindings, writeScopeToDisk, writeScopeBindingToDisk, persistAndRegisterScopeBinding, readScopeBindingFromDisk, resolveScopeBindingFromDisk, clearScopeBindingFromDisk, tombstoneScopeBinding, refreshScopeBindingLease, claimScopeBindingForChildDurably, replaceExistingScopeDeclaration, flushScopeBindingMaintenance, pruneScopeBindingTombstones, resolveAuthorizedScopeBinding, resolveAuthorizedScopeBindingDetailed, resolveAuthorizedScopeBindingForSession, resolveAuthorizedScopeBindingForSessionDetailed, resolveAuthorizedPrFeedbackScopeBindingFromDisk, _scopePersistenceInternals, readScopeFromDisk, readPlanScope, clearScopeForTask, clearAllScopes, resolveScopeWithFallbacks };