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
@@ -1,10 +1,10 @@
1
1
  // @bun
2
2
  import {
3
3
  observeStoreHealth
4
- } from "./index-tbswvz8s.js";
4
+ } from "./index-yeh78c1g.js";
5
5
  import {
6
6
  telemetry
7
- } from "./index-2jtmevrr.js";
7
+ } from "./index-wfbh1bx8.js";
8
8
  import {
9
9
  init_logger,
10
10
  warn
@@ -43,7 +43,8 @@ var PUBLICATION_TERMINAL_EVENT_TYPES = new Set([
43
43
  var RETRY_ACTIONS = new Set([
44
44
  "sounding_board_consultation",
45
45
  "simplification",
46
- "user_escalation"
46
+ "user_escalation",
47
+ "sounding_board_manual_approval"
47
48
  ]);
48
49
  function authorityKeyFor(event) {
49
50
  switch (event.type) {
@@ -4,10 +4,10 @@ import {
4
4
  } from "./index-7g4c7s5r.js";
5
5
  import {
6
6
  emit
7
- } from "./index-2jtmevrr.js";
7
+ } from "./index-wfbh1bx8.js";
8
8
  import {
9
9
  atomicWriteFileAnyRoot
10
- } from "./index-yhaxn5r7.js";
10
+ } from "./index-zsp9de3k.js";
11
11
  import {
12
12
  init_logger,
13
13
  warn
@@ -3,13 +3,13 @@ import {
3
3
  EvaluationRunV1Schema,
4
4
  GateAuditResultV1Schema,
5
5
  getProtectedEvaluationRunIds
6
- } from "./index-k6bjkqw8.js";
6
+ } from "./index-mpcp6rmj.js";
7
7
  import {
8
8
  readEffectiveSpecSync
9
9
  } from "./index-n1tcj1q7.js";
10
10
  import {
11
11
  validateWorkspaceRoot
12
- } from "./index-fpbcxykc.js";
12
+ } from "./index-6b295cas.js";
13
13
  import {
14
14
  getWorktreeMergeFailure
15
15
  } from "./index-zsrtt42s.js";
@@ -23,13 +23,13 @@ import {
23
23
  readTaskEvidence,
24
24
  readTaskEvidenceRaw,
25
25
  sanitizeTaskId
26
- } from "./index-r18n5f17.js";
26
+ } from "./index-kfk403mc.js";
27
27
  import {
28
28
  estimateCharsForTokens,
29
29
  estimateTokens,
30
30
  readSwarmFileAsync,
31
31
  validateSwarmPath
32
- } from "./index-exhm2ztr.js";
32
+ } from "./index-zmb8fjp5.js";
33
33
  import {
34
34
  bunHash,
35
35
  bunWrite,
@@ -58,10 +58,10 @@ import {
58
58
  replayFromLedgerWithStatus,
59
59
  takeSnapshotEvent,
60
60
  takeSnapshotWithRetry
61
- } from "./index-zwam9stk.js";
61
+ } from "./index-ke3m026z.js";
62
62
  import {
63
63
  appendCoreEventSync
64
- } from "./index-z8j7jqxt.js";
64
+ } from "./index-j1v54ahd.js";
65
65
  import {
66
66
  derivePlanId,
67
67
  derivePlanIdentityHash,
@@ -69,32 +69,32 @@ import {
69
69
  importCoordinationOnce,
70
70
  listCoordinationStates,
71
71
  transitionCoordinationState
72
- } from "./index-1bq6hkw5.js";
72
+ } from "./index-w4yjy3vp.js";
73
73
  import {
74
74
  DURABILITY_CLASSES,
75
75
  getProjectDb,
76
76
  projectDbExists,
77
77
  withDurabilityClass
78
- } from "./index-xnednxvm.js";
78
+ } from "./index-tnjmn0dn.js";
79
79
  import {
80
80
  assertProjectRoot,
81
81
  tryAcquireLock,
82
82
  withEvidenceLock
83
- } from "./index-tj0sdxg9.js";
83
+ } from "./index-j3rkh9mp.js";
84
84
  import {
85
85
  emit
86
- } from "./index-2jtmevrr.js";
86
+ } from "./index-wfbh1bx8.js";
87
87
  import {
88
88
  atomicWriteSwarmFileSync,
89
89
  invalidateCachedArtifact,
90
90
  readCachedParsedFile
91
- } from "./index-yhaxn5r7.js";
91
+ } from "./index-zsp9de3k.js";
92
92
  import {
93
93
  canonicalRootKeyFresh
94
94
  } from "./index-1xnse449.js";
95
95
  import {
96
96
  PlanSchema
97
- } from "./index-zzr7f594.js";
97
+ } from "./index-18hjycr1.js";
98
98
  import {
99
99
  GIT_BINARY_ENV_VAR,
100
100
  describeGitResolution,
@@ -109,7 +109,7 @@ import {
109
109
  init_executor,
110
110
  isUntrustedEnvKey,
111
111
  isValidEnvKey
112
- } from "./index-76qm2c2y.js";
112
+ } from "./index-wvghb3x6.js";
113
113
  import {
114
114
  criticalWarn,
115
115
  error,
@@ -2,31 +2,31 @@
2
2
  import {
3
3
  derivePlanId,
4
4
  derivePlanIdentityHash
5
- } from "./index-1bq6hkw5.js";
5
+ } from "./index-w4yjy3vp.js";
6
6
  import {
7
7
  getProjectDb,
8
8
  projectDbExists,
9
9
  withImmediateTransaction,
10
10
  withProjectDbReadOnly
11
- } from "./index-xnednxvm.js";
11
+ } from "./index-tnjmn0dn.js";
12
12
  import {
13
13
  assertProjectRoot,
14
14
  withEvidenceLock
15
- } from "./index-tj0sdxg9.js";
15
+ } from "./index-j3rkh9mp.js";
16
16
  import {
17
17
  emit
18
- } from "./index-2jtmevrr.js";
18
+ } from "./index-wfbh1bx8.js";
19
19
  import {
20
20
  ExecutionProfileSchema,
21
21
  PlanSchema,
22
22
  TaskStatusSchema,
23
23
  init_loader,
24
24
  loadPluginConfig
25
- } from "./index-zzr7f594.js";
25
+ } from "./index-18hjycr1.js";
26
26
  import {
27
27
  init_package,
28
28
  package_default
29
- } from "./index-73arkdgf.js";
29
+ } from "./index-wbkxbgk8.js";
30
30
  import {
31
31
  criticalWarn,
32
32
  init_logger,
@@ -2,10 +2,10 @@
2
2
  import {
3
3
  autoCommitDirty,
4
4
  cleanUntrackedFiles
5
- } from "./index-fnmt1ema.js";
5
+ } from "./index-p27az2hc.js";
6
6
  import {
7
7
  validateSwarmPath
8
- } from "./index-exhm2ztr.js";
8
+ } from "./index-zmb8fjp5.js";
9
9
  import {
10
10
  bunSpawn,
11
11
  classifySpawnFailure
@@ -15,10 +15,10 @@ import {
15
15
  atomicWriteFile,
16
16
  taskEvidencePath,
17
17
  withTaskEvidenceLock
18
- } from "./index-tj0sdxg9.js";
18
+ } from "./index-j3rkh9mp.js";
19
19
  import {
20
20
  telemetry
21
- } from "./index-2jtmevrr.js";
21
+ } from "./index-wfbh1bx8.js";
22
22
  import {
23
23
  init_git_executable,
24
24
  resolveGitExecutable
@@ -35,7 +35,7 @@ import {
35
35
  init_path_identity,
36
36
  isPathWithinDeclaredScope,
37
37
  unsafePathTextReason
38
- } from "./index-yzjaj53h.js";
38
+ } from "./index-9rwhas09.js";
39
39
  import {
40
40
  log
41
41
  } from "./index-zgwm4ryv.js";
@@ -257,6 +257,10 @@ var init_tool_metadata = __esm(() => {
257
257
  description: "record a MANUAL plan_critic_gate approval snapshot to unblock the ratchet-tighter critic_pre_plan execution gate when the critic already returned APPROVED but the mechanical recorder failed to persist it (issue #2012), or as the sanctioned recovery for a bookkeeping-grade hashed-field repair under the critic-gate PLAN FREEZE rule (the reason must state which case applies)",
258
258
  agents: ["architect"]
259
259
  },
260
+ approve_retry_sounding_board: {
261
+ description: "record a MANUAL critic_sounding_board gate entry to unblock the coder retry circuit-breaker gate when the sounding board returned APPROVED but the mechanical recorder missed it (issue #2703)",
262
+ agents: ["architect"]
263
+ },
260
264
  prepare_pr_workflow_checkout: {
261
265
  description: "prepare an auditable PR workflow checkout or restore its exact original branch/HEAD and preserved stash after terminal cleanup",
262
266
  agents: ["architect"]
@@ -505,6 +509,10 @@ var init_tool_metadata = __esm(() => {
505
509
  description: "declare file scope for next coder delegation",
506
510
  agents: ["architect"]
507
511
  },
512
+ scope_validate: {
513
+ description: "validate shell writes against an inline file scope",
514
+ agents: ["architect"]
515
+ },
508
516
  knowledge_query: {
509
517
  description: "query swarm or hive knowledge with optional filters",
510
518
  agents: ["architect", "skill_improver", "spec_writer"]
@@ -773,6 +781,10 @@ var init_tool_metadata = __esm(() => {
773
781
  "test_engineer"
774
782
  ]
775
783
  },
784
+ knowledge_receipt_status: {
785
+ description: "receipt status",
786
+ agents: ["architect"]
787
+ },
776
788
  knowledge_archive: {
777
789
  description: "archive (default), quarantine, or purge a swarm or hive knowledge entry by ID with an immutable audit tombstone; purge requires an admin flag",
778
790
  agents: ["architect"]
@@ -11,7 +11,7 @@ import {
11
11
  assertProjectRoot,
12
12
  atomicWriteFile,
13
13
  withEvidenceLock
14
- } from "./index-tj0sdxg9.js";
14
+ } from "./index-j3rkh9mp.js";
15
15
  import {
16
16
  exports_external,
17
17
  init_zod
@@ -1,13 +1,13 @@
1
1
  // @bun
2
2
  import {
3
3
  validateSwarmPath
4
- } from "./index-exhm2ztr.js";
4
+ } from "./index-zmb8fjp5.js";
5
5
  import {
6
6
  bunSpawn
7
7
  } from "./index-2s7dvzff.js";
8
8
  import {
9
9
  atomicWriteSwarmFileSync
10
- } from "./index-yhaxn5r7.js";
10
+ } from "./index-zsp9de3k.js";
11
11
  import {
12
12
  canonicalRootKeyFresh
13
13
  } from "./index-1xnse449.js";
@@ -22,7 +22,7 @@ import {
22
22
  import {
23
23
  SWARM_WORKTREE_DIR_NAME,
24
24
  init_constants
25
- } from "./index-5frh43fj.js";
25
+ } from "./index-m2n1rhgv.js";
26
26
  import {
27
27
  init_logger,
28
28
  log
@@ -244,7 +244,7 @@ var _internals2 = {
244
244
  symlinkSync: fs2.symlinkSync
245
245
  },
246
246
  writeScopeToDisk: async (directory, taskId, files) => {
247
- const { writeScopeToDisk: realWrite } = await import("./scope-persistence-rb99xjr0.js");
247
+ const { writeScopeToDisk: realWrite } = await import("./scope-persistence-qcw3rtxq.js");
248
248
  return realWrite(directory, taskId, files);
249
249
  },
250
250
  writeLaneProfileToDisk: async (_worktreePath, _laneIndex, _envOverrides) => {
@@ -1,13 +1,13 @@
1
1
  // @bun
2
2
  import {
3
3
  validateSwarmPath
4
- } from "./index-exhm2ztr.js";
4
+ } from "./index-zmb8fjp5.js";
5
5
  import {
6
6
  bunSpawn
7
7
  } from "./index-2s7dvzff.js";
8
8
  import {
9
9
  atomicWriteSwarmFile
10
- } from "./index-yhaxn5r7.js";
10
+ } from "./index-zsp9de3k.js";
11
11
  import {
12
12
  canonicalRootKey,
13
13
  sameProjectRoot
@@ -9,7 +9,7 @@ import {
9
9
  readEvaluationRun,
10
10
  saveEvaluationRun,
11
11
  saveTaskSetSnapshot
12
- } from "./index-k6bjkqw8.js";
12
+ } from "./index-mpcp6rmj.js";
13
13
  import {
14
14
  canonicalHash,
15
15
  computeCandidateInputContentHash,
@@ -1,10 +1,10 @@
1
1
  // @bun
2
2
  import {
3
3
  handleGuardrailExplain
4
- } from "./index-q1jterxw.js";
4
+ } from "./index-azy3tw6c.js";
5
5
  import {
6
6
  handleGuardrailLog
7
- } from "./index-9ftc8saz.js";
7
+ } from "./index-sqngtwyq.js";
8
8
  import {
9
9
  COMMAND_REGISTRY,
10
10
  DEFAULT_CI_DEADLINE_MS,
@@ -97,77 +97,77 @@ import {
97
97
  handleWriteRetroCommand,
98
98
  normalizeSwarmCommandInput,
99
99
  resolveCommand
100
- } from "./index-ebmep9me.js";
100
+ } from "./index-heg4em8j.js";
101
101
  import"./index-hnvmj9wx.js";
102
- import"./index-vfp9hjgv.js";
103
- import"./index-by7xpk8f.js";
104
- import"./index-eefz8ghz.js";
105
- import"./index-rgapg88w.js";
106
- import"./index-zbq9091c.js";
107
- import"./index-k6bjkqw8.js";
102
+ import"./index-q9vb5e7n.js";
103
+ import"./index-qs8eth8h.js";
104
+ import"./index-bfz1jvcn.js";
105
+ import"./index-vfc7d22n.js";
106
+ import"./index-jzxeymr0.js";
107
+ import"./index-mpcp6rmj.js";
108
108
  import"./index-txdagbh7.js";
109
109
  import"./index-n1tcj1q7.js";
110
- import"./index-fpbcxykc.js";
111
- import"./index-mcq6xs4k.js";
112
- import"./index-8dy3qf4q.js";
113
- import"./index-nzz58tbs.js";
110
+ import"./index-6b295cas.js";
111
+ import"./index-zsm8h8y1.js";
112
+ import"./index-at0ygwwp.js";
113
+ import"./index-zex7644g.js";
114
114
  import"./index-fyfbpz4f.js";
115
- import"./index-eya03h5m.js";
115
+ import"./index-y74n1sy8.js";
116
116
  import"./index-549wxbe1.js";
117
117
  import"./index-zsrtt42s.js";
118
- import"./index-4chr4gbq.js";
119
- import"./index-5d2avnj9.js";
120
- import"./index-7nsvszwn.js";
118
+ import"./index-wkde35ej.js";
119
+ import"./index-pm7c6f66.js";
120
+ import"./index-2b1whj28.js";
121
121
  import"./index-pt7h91zc.js";
122
122
  import"./index-q7sjgr1y.js";
123
- import"./index-r18n5f17.js";
124
- import"./index-fnmt1ema.js";
125
- import"./index-ef2fa774.js";
126
- import"./index-w7aedfce.js";
127
- import"./index-exhm2ztr.js";
123
+ import"./index-kfk403mc.js";
124
+ import"./index-p27az2hc.js";
125
+ import"./index-rp0jk48x.js";
126
+ import"./index-29begjkp.js";
127
+ import"./index-zmb8fjp5.js";
128
128
  import"./index-2s7dvzff.js";
129
- import"./index-gwnbprzk.js";
130
- import"./index-wemtrnch.js";
129
+ import"./index-d5dexrv1.js";
130
+ import"./index-ffqy30e5.js";
131
131
  import"./index-rtry5xyf.js";
132
- import"./index-rz4gpt3n.js";
132
+ import"./index-2vhkwy6v.js";
133
133
  import"./index-frcemc0b.js";
134
134
  import"./index-wrt875kh.js";
135
- import"./index-5w51tawb.js";
136
- import"./index-zwam9stk.js";
137
- import"./index-z8j7jqxt.js";
138
- import"./index-v2he8xfj.js";
139
- import"./index-1bq6hkw5.js";
140
- import"./index-xnednxvm.js";
135
+ import"./index-gg44hytk.js";
136
+ import"./index-ke3m026z.js";
137
+ import"./index-j1v54ahd.js";
138
+ import"./index-y6a2bkp1.js";
139
+ import"./index-w4yjy3vp.js";
140
+ import"./index-tnjmn0dn.js";
141
141
  import"./index-rdm3px0g.js";
142
142
  import"./index-ry16d01s.js";
143
- import"./index-tbswvz8s.js";
144
- import"./index-hxdswvtv.js";
143
+ import"./index-yeh78c1g.js";
144
+ import"./index-2mdk6nt9.js";
145
145
  import"./index-vzm6zre7.js";
146
146
  import"./index-ae75rja9.js";
147
- import"./index-en0p0hqp.js";
148
- import"./index-tj0sdxg9.js";
147
+ import"./index-yj1kr0ft.js";
148
+ import"./index-j3rkh9mp.js";
149
149
  import"./index-7g4c7s5r.js";
150
- import"./index-2jtmevrr.js";
151
- import"./index-yhaxn5r7.js";
150
+ import"./index-wfbh1bx8.js";
151
+ import"./index-zsp9de3k.js";
152
152
  import"./index-1xnse449.js";
153
153
  import"./index-c1ggtmpm.js";
154
- import"./index-zzr7f594.js";
154
+ import"./index-18hjycr1.js";
155
155
  import"./index-zz7gzw57.js";
156
156
  import"./index-4ddpvd5c.js";
157
157
  import {
158
158
  init_schema,
159
159
  stripKnownSwarmPrefix
160
- } from "./index-73arkdgf.js";
160
+ } from "./index-wbkxbgk8.js";
161
161
  import {
162
162
  AGENT_TOOL_MAP,
163
163
  ORCHESTRATOR_NAME,
164
164
  init_constants
165
- } from "./index-5frh43fj.js";
165
+ } from "./index-m2n1rhgv.js";
166
166
  import"./index-bk5tah7q.js";
167
167
  import"./index-gknz3bv1.js";
168
168
  import"./index-zpsr8rpc.js";
169
- import"./index-76qm2c2y.js";
170
- import"./index-yzjaj53h.js";
169
+ import"./index-wvghb3x6.js";
170
+ import"./index-9rwhas09.js";
171
171
  import"./index-zgwm4ryv.js";
172
172
  import"./index-a76rekgs.js";
173
173
 
@@ -1,17 +1,17 @@
1
1
  // @bun
2
2
  import {
3
3
  observeStoreHealth
4
- } from "./index-tbswvz8s.js";
4
+ } from "./index-yeh78c1g.js";
5
5
  import {
6
6
  telemetry
7
- } from "./index-2jtmevrr.js";
7
+ } from "./index-wfbh1bx8.js";
8
8
  import {
9
9
  init_schema,
10
10
  stripKnownSwarmPrefix
11
- } from "./index-73arkdgf.js";
11
+ } from "./index-wbkxbgk8.js";
12
12
  import {
13
13
  init_constants
14
- } from "./index-5frh43fj.js";
14
+ } from "./index-m2n1rhgv.js";
15
15
  import {
16
16
  getPathFlavor,
17
17
  init_path_identity,
@@ -21,7 +21,7 @@ import {
21
21
  pathIdentitiesEqual,
22
22
  sanitizeDiagnosticText,
23
23
  unsafePathTextReason
24
- } from "./index-yzjaj53h.js";
24
+ } from "./index-9rwhas09.js";
25
25
  import {
26
26
  init_logger,
27
27
  warn
@@ -2313,6 +2313,37 @@ var DEFAULT_AGENT_AUTHORITY_RULES = {
2313
2313
  blockedZones: ["generated"]
2314
2314
  }
2315
2315
  };
2316
+ function checkWriteTargetForSymlink(targetPath, cwd) {
2317
+ const normalizedCwd = path2.resolve(cwd);
2318
+ const normalizedTarget = path2.resolve(cwd, targetPath);
2319
+ const ancestors = [];
2320
+ let current = normalizedTarget;
2321
+ while (true) {
2322
+ const rel = path2.relative(normalizedCwd, current);
2323
+ if (rel === "" || rel === ".." || rel.startsWith(`..${path2.sep}`) || path2.isAbsolute(rel))
2324
+ break;
2325
+ ancestors.push(current);
2326
+ const parent = path2.dirname(current);
2327
+ if (parent === current)
2328
+ break;
2329
+ current = parent;
2330
+ }
2331
+ for (const ancestor of ancestors) {
2332
+ let stat = null;
2333
+ try {
2334
+ stat = fsSync.lstatSync(ancestor);
2335
+ } catch (err) {
2336
+ const code = err.code;
2337
+ if (code === "ENOENT")
2338
+ continue;
2339
+ return `WRITE BLOCKED: lstat failed on "${ancestor}": ${String(err)} \u2014 refusing write on unverifiable path`;
2340
+ }
2341
+ if (stat.isSymbolicLink()) {
2342
+ return `WRITE BLOCKED: "${ancestor}" is a symlink/junction \u2014 writing through a symlink or junction could redirect the write outside the working directory`;
2343
+ }
2344
+ }
2345
+ return null;
2346
+ }
2316
2347
  function matchesAuthorityDenyPrefix(candidate, prefix, cwd, flavor = getPathFlavor()) {
2317
2348
  const pathImpl = flavor === "win32" ? path2.win32 : path2.posix;
2318
2349
  const normalizeInput = (value) => flavor === "win32" ? value.replace(/\//g, "\\") : value;
@@ -3444,4 +3475,4 @@ function redactDecisionLineForArchive(line) {
3444
3475
  return changed ? JSON.stringify(record) : line;
3445
3476
  }
3446
3477
 
3447
- export { normalizeToolName, normalizeToolNameLowerCase, isTaskToolId, isPolicyProtectedPath, protectedRoots, classifyFile, stableCanonicalStringify, checkFileAuthority, isInDeclaredScope, redactShellCommand, readShellAuditTail, getShellAuditFoldedSummary, finalizeShellAuditForClose, redactPath, redactDecisionLineForArchive };
3478
+ export { normalizeToolName, normalizeToolNameLowerCase, isTaskToolId, isPolicyProtectedPath, protectedRoots, classifyFile, stableCanonicalStringify, checkWriteTargetForSymlink, checkFileAuthority, isInDeclaredScope, redactShellCommand, readShellAuditTail, getShellAuditFoldedSummary, finalizeShellAuditForClose, redactPath, redactDecisionLineForArchive };
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  validateSwarmPath
4
- } from "./index-exhm2ztr.js";
4
+ } from "./index-zmb8fjp5.js";
5
5
  import {
6
6
  bunWrite
7
7
  } from "./index-2s7dvzff.js";
@@ -18,21 +18,21 @@ import {
18
18
  releaseCoordinationLease,
19
19
  transitionCoordinationState,
20
20
  withCoordinationTransaction
21
- } from "./index-1bq6hkw5.js";
21
+ } from "./index-w4yjy3vp.js";
22
22
  import {
23
23
  getProjectDb,
24
24
  projectDbExists
25
- } from "./index-xnednxvm.js";
25
+ } from "./index-tnjmn0dn.js";
26
26
  import {
27
27
  observeDelegationLedgerPressure
28
- } from "./index-tbswvz8s.js";
28
+ } from "./index-yeh78c1g.js";
29
29
  import {
30
30
  EvidenceLockTimeoutError,
31
31
  withEvidenceLock
32
- } from "./index-tj0sdxg9.js";
32
+ } from "./index-j3rkh9mp.js";
33
33
  import {
34
34
  telemetry
35
- } from "./index-2jtmevrr.js";
35
+ } from "./index-wfbh1bx8.js";
36
36
  import {
37
37
  canonicalRootKeyFresh,
38
38
  sameProjectRoot
@@ -4660,7 +4660,7 @@ async function reconcileLegacyCoderSettlements(directory, maxRecords, onReconcil
4660
4660
  const candidates = readDelegations(directory).filter((record) => record.normalizedAgent === "coder" && Boolean(record.legacyCoderSettlementTransfer) && Boolean(record.terminalResult)).slice(0, maxRecords);
4661
4661
  if (candidates.length === 0)
4662
4662
  return 0;
4663
- const { transferCoderSettlementToBackground } = await import("./coder-settlement-pm07553t.js");
4663
+ const { transferCoderSettlementToBackground } = await import("./coder-settlement-d2bfb25j.js");
4664
4664
  let transferred = 0;
4665
4665
  for (const record of candidates) {
4666
4666
  try {
@@ -4,7 +4,7 @@ import {
4
4
  readShellAuditTail,
5
5
  redactPath,
6
6
  redactShellCommand
7
- } from "./index-by7xpk8f.js";
7
+ } from "./index-qs8eth8h.js";
8
8
 
9
9
  // src/services/guardrail-log-service.ts
10
10
  var BLOCK_TYPES = new Set([