opencode-swarm 7.144.6 → 7.144.8

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 (51) hide show
  1. package/.opencode/skills/swarm-pr-review/SKILL.md +20 -20
  2. package/.opencode/skills/swarm-pr-review/references/findings-persistence-contract.md +110 -0
  3. package/dist/cli/{capability-probe-976tt4ba.js → capability-probe-va4kk8vg.js} +2 -2
  4. package/dist/cli/{config-doctor-4chz0b95.js → config-doctor-zbqfp0v6.js} +2 -2
  5. package/dist/cli/{core-p04nvknr.js → core-pz9gwatq.js} +1 -1
  6. package/dist/cli/{curator-llm-factory-vc1mrc3r.js → curator-llm-factory-3nq3p02z.js} +19 -19
  7. package/dist/cli/{curator-sxeh36gw.js → curator-sk0dyvke.js} +19 -19
  8. package/dist/cli/{evidence-summary-service-spyxcgsx.js → evidence-summary-service-abwrjqd0.js} +7 -7
  9. package/dist/cli/{gate-evidence-nz0bwa15.js → gate-evidence-aa7vvtcd.js} +2 -2
  10. package/dist/cli/{guardrail-explain-ass47kn8.js → guardrail-explain-hvtyr2fz.js} +20 -20
  11. package/dist/cli/{guardrail-log-fyzd55fp.js → guardrail-log-jw5mzs0d.js} +3 -3
  12. package/dist/cli/{hive-promoter-k8gtah3n.js → hive-promoter-m20j63yg.js} +19 -19
  13. package/dist/cli/{index-ckq719fr.js → index-0v1f2sdb.js} +2 -2
  14. package/dist/cli/{index-b44qqqt2.js → index-3g0xk6tk.js} +1 -1
  15. package/dist/cli/{index-ec1kywxg.js → index-3k3nbs52.js} +4 -4
  16. package/dist/cli/{index-ytzz6pq1.js → index-7qb0hn8n.js} +1 -1
  17. package/dist/cli/{index-zy7f84cs.js → index-85gkedsf.js} +14 -5
  18. package/dist/cli/{index-bac12jpv.js → index-8dbzaf0m.js} +1 -1
  19. package/dist/cli/{index-sswzhcqb.js → index-bv44950t.js} +1 -1
  20. package/dist/cli/{index-42ezdzam.js → index-c2rpht77.js} +50 -47
  21. package/dist/cli/{index-zde2mkmg.js → index-cx51wy0c.js} +3 -3
  22. package/dist/cli/{index-h5krb653.js → index-d1dbpxxk.js} +1 -1
  23. package/dist/cli/{index-68mqwvf5.js → index-gfvkttvd.js} +1 -1
  24. package/dist/cli/{index-sqe3nqh5.js → index-jdxnzbah.js} +1 -1
  25. package/dist/cli/{index-dvybg11w.js → index-k7fk9fjs.js} +2 -2
  26. package/dist/cli/{index-dj8cah6s.js → index-nmy6rss1.js} +1 -1
  27. package/dist/cli/{index-01nhedm7.js → index-r14qx363.js} +1 -1
  28. package/dist/cli/{index-7zehmnv1.js → index-r2rkwvzq.js} +2 -2
  29. package/dist/cli/{index-vngs0meh.js → index-sxe5nyq4.js} +3 -3
  30. package/dist/cli/{index-zxr5r9b7.js → index-t2ntgzts.js} +3 -3
  31. package/dist/cli/{index-jqvsh0g3.js → index-t72g4a7y.js} +21 -21
  32. package/dist/cli/{index-q6bhmyxb.js → index-tffg4mwr.js} +1 -1
  33. package/dist/cli/{index-tq89td7b.js → index-xp5g9eps.js} +1 -1
  34. package/dist/cli/{index-n06653nr.js → index-xx8tm58n.js} +5 -5
  35. package/dist/cli/{index-fgdhf6a5.js → index-z4fssj97.js} +7 -4
  36. package/dist/cli/index.js +19 -19
  37. package/dist/cli/{knowledge-escalator-yaxzz0k5.js → knowledge-escalator-mg8qb7tm.js} +6 -6
  38. package/dist/cli/{knowledge-events-rgcwewpn.js → knowledge-events-3zxf8xpb.js} +4 -4
  39. package/dist/cli/{knowledge-store-qf8t25sw.js → knowledge-store-awnm8s6c.js} +1 -1
  40. package/dist/cli/{knowledge-validator-dx6zzcdf.js → knowledge-validator-3ke5scx3.js} +2 -2
  41. package/dist/cli/{scan-cursor-pbcaj8hj.js → scan-cursor-00rbxkb4.js} +2 -2
  42. package/dist/cli/{schema-tzcjwe8j.js → schema-5nmkp1pc.js} +1 -1
  43. package/dist/cli/{scope-persistence-mjg4we75.js → scope-persistence-6m79atw9.js} +4 -4
  44. package/dist/cli/{skill-generator-7jrzbaej.js → skill-generator-gv70s796.js} +7 -7
  45. package/dist/cli/{worktree-isolation-awpkp0yh.js → worktree-isolation-bne0p54w.js} +19 -19
  46. package/dist/git/branch.d.ts +9 -0
  47. package/dist/hooks/delegation-gate/worktree-isolation.d.ts +5 -0
  48. package/dist/hooks/pr-workflow-gate.d.ts +4 -1
  49. package/dist/index.js +7 -5
  50. package/dist/sandbox/executor.d.ts +6 -0
  51. package/package.json +1 -1
@@ -1,10 +1,10 @@
1
1
  // @bun
2
2
  import {
3
3
  handleGuardrailExplain
4
- } from "./index-7zehmnv1.js";
4
+ } from "./index-r2rkwvzq.js";
5
5
  import {
6
6
  handleGuardrailLog
7
- } from "./index-sswzhcqb.js";
7
+ } from "./index-bv44950t.js";
8
8
  import {
9
9
  COMMAND_REGISTRY,
10
10
  SWARM_COMMAND_TOOL_ALLOWLIST,
@@ -85,50 +85,50 @@ import {
85
85
  handleWriteRetroCommand,
86
86
  normalizeSwarmCommandInput,
87
87
  resolveCommand
88
- } from "./index-42ezdzam.js";
89
- import"./index-dj8cah6s.js";
90
- import"./index-01nhedm7.js";
91
- import"./index-fgdhf6a5.js";
88
+ } from "./index-c2rpht77.js";
89
+ import"./index-nmy6rss1.js";
90
+ import"./index-r14qx363.js";
91
+ import"./index-z4fssj97.js";
92
92
  import"./index-134d35c1.js";
93
93
  import"./index-abtrcs16.js";
94
94
  import"./index-6z5jtf7d.js";
95
95
  import"./index-wknz5c8q.js";
96
96
  import"./index-y8552snf.js";
97
- import"./index-h5krb653.js";
97
+ import"./index-d1dbpxxk.js";
98
98
  import"./index-70ha9e09.js";
99
99
  import"./index-c8s9a3zh.js";
100
100
  import"./index-9ss2m4rs.js";
101
101
  import"./index-f36ybbsv.js";
102
102
  import"./index-hkdgkkhb.js";
103
- import"./index-vngs0meh.js";
104
- import"./index-n06653nr.js";
105
- import"./index-bac12jpv.js";
103
+ import"./index-sxe5nyq4.js";
104
+ import"./index-xx8tm58n.js";
105
+ import"./index-8dbzaf0m.js";
106
106
  import"./index-vdha477y.js";
107
107
  import"./index-rtry5xyf.js";
108
108
  import"./index-zsrtt42s.js";
109
109
  import"./index-n4hwcsbd.js";
110
110
  import"./index-cwtpqm5f.js";
111
- import"./index-sqe3nqh5.js";
112
- import"./index-tq89td7b.js";
113
- import"./index-dvybg11w.js";
114
- import"./index-q6bhmyxb.js";
111
+ import"./index-jdxnzbah.js";
112
+ import"./index-xp5g9eps.js";
113
+ import"./index-k7fk9fjs.js";
114
+ import"./index-tffg4mwr.js";
115
115
  import"./index-556ja8an.js";
116
116
  import"./index-7sy3aa9m.js";
117
117
  import"./index-wx8zdh4a.js";
118
- import"./index-b44qqqt2.js";
119
- import"./index-zy7f84cs.js";
120
- import"./index-ec1kywxg.js";
121
- import"./index-zde2mkmg.js";
122
- import"./index-ckq719fr.js";
118
+ import"./index-3g0xk6tk.js";
119
+ import"./index-85gkedsf.js";
120
+ import"./index-3k3nbs52.js";
121
+ import"./index-cx51wy0c.js";
122
+ import"./index-0v1f2sdb.js";
123
123
  import"./index-gprxjmm7.js";
124
124
  import"./index-n832052r.js";
125
125
  import"./index-fv0s19g9.js";
126
126
  import"./index-z6xqpmqg.js";
127
- import"./index-ytzz6pq1.js";
127
+ import"./index-7qb0hn8n.js";
128
128
  import {
129
129
  init_schema,
130
130
  stripKnownSwarmPrefix
131
- } from "./index-68mqwvf5.js";
131
+ } from "./index-gfvkttvd.js";
132
132
  import {
133
133
  AGENT_TOOL_MAP,
134
134
  ORCHESTRATOR_NAME,
@@ -4,7 +4,7 @@ import {
4
4
  PlanSchema,
5
5
  TaskStatusSchema,
6
6
  init_loader
7
- } from "./index-ytzz6pq1.js";
7
+ } from "./index-7qb0hn8n.js";
8
8
  import {
9
9
  assertProjectRoot,
10
10
  withEvidenceLock
@@ -92,7 +92,7 @@ var _internals = {
92
92
  symlinkSync: fs.symlinkSync
93
93
  },
94
94
  writeScopeToDisk: async (directory, taskId, files) => {
95
- const { writeScopeToDisk: realWrite } = await import("./scope-persistence-mjg4we75.js");
95
+ const { writeScopeToDisk: realWrite } = await import("./scope-persistence-6m79atw9.js");
96
96
  return realWrite(directory, taskId, files);
97
97
  },
98
98
  writeLaneProfileToDisk: async (_worktreePath, _laneIndex, _envOverrides) => {
@@ -6,12 +6,12 @@ import {
6
6
  resolveSwarmKnowledgePath,
7
7
  transactKnowledge,
8
8
  wordBigrams
9
- } from "./index-ec1kywxg.js";
9
+ } from "./index-3k3nbs52.js";
10
10
  import {
11
11
  queryHistoricalOutcomes,
12
12
  readKnowledgeEvents,
13
13
  recordKnowledgeEvent
14
- } from "./index-zde2mkmg.js";
14
+ } from "./index-cx51wy0c.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-dx6zzcdf.js");
227
+ const { quarantineEntry } = await import("./knowledge-validator-3ke5scx3.js");
228
228
  let policyConfig;
229
229
  try {
230
- const { KnowledgeConfigSchema } = await import("./schema-tzcjwe8j.js");
231
- const { loadPluginConfigWithMeta } = await import("./index-zxr5r9b7.js");
230
+ const { KnowledgeConfigSchema } = await import("./schema-5nmkp1pc.js");
231
+ const { loadPluginConfigWithMeta } = await import("./index-t2ntgzts.js");
232
232
  const { config: loadedConfig } = loadPluginConfigWithMeta(directory);
233
233
  policyConfig = KnowledgeConfigSchema.parse(loadedConfig.knowledge ?? {});
234
234
  } catch {
@@ -23,7 +23,7 @@ import {
23
23
  readTaskEvidence,
24
24
  readTaskEvidenceRaw,
25
25
  sanitizeTaskId
26
- } from "./index-sqe3nqh5.js";
26
+ } from "./index-jdxnzbah.js";
27
27
  import {
28
28
  LedgerStaleWriterError,
29
29
  appendLedgerEvent,
@@ -43,11 +43,12 @@ import {
43
43
  replayFromLedgerWithStatus,
44
44
  takeSnapshotEvent,
45
45
  takeSnapshotWithRetry
46
- } from "./index-q6bhmyxb.js";
46
+ } from "./index-tffg4mwr.js";
47
47
  import {
48
48
  init_executor,
49
+ isUntrustedEnvKey,
49
50
  isValidEnvKey
50
- } from "./index-zy7f84cs.js";
51
+ } from "./index-85gkedsf.js";
51
52
  import {
52
53
  EVIDENCE_MAX_JSON_BYTES,
53
54
  EvidenceBundleSchema,
@@ -59,7 +60,7 @@ import {
59
60
  } from "./index-fv0s19g9.js";
60
61
  import {
61
62
  PlanSchema
62
- } from "./index-ytzz6pq1.js";
63
+ } from "./index-7qb0hn8n.js";
63
64
  import {
64
65
  GIT_BINARY_ENV_VAR,
65
66
  describeGitResolution,
@@ -517,6 +518,8 @@ function readLaneEnvFileFromDiskSync(worktreePath, laneIndex) {
517
518
  const v = line.slice(eqIdx + 1);
518
519
  if (!isValidEnvKey(k))
519
520
  continue;
521
+ if (isUntrustedEnvKey(k))
522
+ continue;
520
523
  result[k] = v;
521
524
  }
522
525
  return result;
package/dist/cli/index.js CHANGED
@@ -11,50 +11,50 @@ import {
11
11
  readCachePackageVersion,
12
12
  resolveCommand,
13
13
  safeRealpathSync
14
- } from "./index-42ezdzam.js";
15
- import"./index-dj8cah6s.js";
16
- import"./index-01nhedm7.js";
17
- import"./index-fgdhf6a5.js";
14
+ } from "./index-c2rpht77.js";
15
+ import"./index-nmy6rss1.js";
16
+ import"./index-r14qx363.js";
17
+ import"./index-z4fssj97.js";
18
18
  import"./index-134d35c1.js";
19
19
  import"./index-abtrcs16.js";
20
20
  import"./index-6z5jtf7d.js";
21
21
  import"./index-wknz5c8q.js";
22
22
  import"./index-y8552snf.js";
23
- import"./index-h5krb653.js";
23
+ import"./index-d1dbpxxk.js";
24
24
  import"./index-70ha9e09.js";
25
25
  import"./index-c8s9a3zh.js";
26
26
  import"./index-9ss2m4rs.js";
27
27
  import"./index-f36ybbsv.js";
28
28
  import"./index-hkdgkkhb.js";
29
- import"./index-vngs0meh.js";
30
- import"./index-n06653nr.js";
31
- import"./index-bac12jpv.js";
29
+ import"./index-sxe5nyq4.js";
30
+ import"./index-xx8tm58n.js";
31
+ import"./index-8dbzaf0m.js";
32
32
  import"./index-vdha477y.js";
33
33
  import"./index-rtry5xyf.js";
34
34
  import"./index-zsrtt42s.js";
35
35
  import"./index-n4hwcsbd.js";
36
36
  import"./index-cwtpqm5f.js";
37
- import"./index-sqe3nqh5.js";
38
- import"./index-tq89td7b.js";
39
- import"./index-dvybg11w.js";
40
- import"./index-q6bhmyxb.js";
37
+ import"./index-jdxnzbah.js";
38
+ import"./index-xp5g9eps.js";
39
+ import"./index-k7fk9fjs.js";
40
+ import"./index-tffg4mwr.js";
41
41
  import"./index-556ja8an.js";
42
42
  import"./index-7sy3aa9m.js";
43
43
  import"./index-wx8zdh4a.js";
44
- import"./index-b44qqqt2.js";
45
- import"./index-zy7f84cs.js";
46
- import"./index-ec1kywxg.js";
47
- import"./index-zde2mkmg.js";
48
- import"./index-ckq719fr.js";
44
+ import"./index-3g0xk6tk.js";
45
+ import"./index-85gkedsf.js";
46
+ import"./index-3k3nbs52.js";
47
+ import"./index-cx51wy0c.js";
48
+ import"./index-0v1f2sdb.js";
49
49
  import"./index-gprxjmm7.js";
50
50
  import"./index-n832052r.js";
51
51
  import"./index-fv0s19g9.js";
52
52
  import"./index-z6xqpmqg.js";
53
- import"./index-ytzz6pq1.js";
53
+ import"./index-7qb0hn8n.js";
54
54
  import {
55
55
  init_package,
56
56
  package_default
57
- } from "./index-68mqwvf5.js";
57
+ } from "./index-gfvkttvd.js";
58
58
  import {
59
59
  DEFAULT_AGENT_CONFIGS,
60
60
  init_constants
@@ -9,16 +9,16 @@ import {
9
9
  maybeEscalateOnViolation,
10
10
  maybeQuarantineOnContradiction,
11
11
  readRecentEscalations
12
- } from "./index-n06653nr.js";
13
- import"./index-ec1kywxg.js";
14
- import"./index-zde2mkmg.js";
15
- import"./index-ckq719fr.js";
12
+ } from "./index-xx8tm58n.js";
13
+ import"./index-3k3nbs52.js";
14
+ import"./index-cx51wy0c.js";
15
+ import"./index-0v1f2sdb.js";
16
16
  import"./index-gprxjmm7.js";
17
17
  import"./index-n832052r.js";
18
18
  import"./index-fv0s19g9.js";
19
19
  import"./index-z6xqpmqg.js";
20
- import"./index-ytzz6pq1.js";
21
- import"./index-68mqwvf5.js";
20
+ import"./index-7qb0hn8n.js";
21
+ import"./index-gfvkttvd.js";
22
22
  import"./index-v3y3qg48.js";
23
23
  import"./index-9e6fdz2h.js";
24
24
  import"./index-4rhhvd1a.js";
@@ -29,14 +29,14 @@ import {
29
29
  resolveKnowledgeCounterBaselinePath,
30
30
  resolveKnowledgeEventsPath,
31
31
  resolveLegacyApplicationLogPath
32
- } from "./index-zde2mkmg.js";
33
- import"./index-ckq719fr.js";
32
+ } from "./index-cx51wy0c.js";
33
+ import"./index-0v1f2sdb.js";
34
34
  import"./index-gprxjmm7.js";
35
35
  import"./index-n832052r.js";
36
36
  import"./index-fv0s19g9.js";
37
37
  import"./index-z6xqpmqg.js";
38
- import"./index-ytzz6pq1.js";
39
- import"./index-68mqwvf5.js";
38
+ import"./index-7qb0hn8n.js";
39
+ import"./index-gfvkttvd.js";
40
40
  import"./index-v3y3qg48.js";
41
41
  import"./index-9e6fdz2h.js";
42
42
  import"./index-4rhhvd1a.js";
@@ -41,7 +41,7 @@ import {
41
41
  transactKnowledge,
42
42
  transactKnowledgeWithCas,
43
43
  wordBigrams
44
- } from "./index-ec1kywxg.js";
44
+ } from "./index-3k3nbs52.js";
45
45
  import {
46
46
  resolveHiveDataDir
47
47
  } from "./index-ae75rja9.js";
@@ -23,10 +23,10 @@ import {
23
23
  validateLesson,
24
24
  validateSkillCandidatePath,
25
25
  validateSkillPath
26
- } from "./index-bac12jpv.js";
26
+ } from "./index-8dbzaf0m.js";
27
27
  import"./index-vdha477y.js";
28
28
  import"./index-rtry5xyf.js";
29
- import"./index-ec1kywxg.js";
29
+ import"./index-3k3nbs52.js";
30
30
  import"./index-ae75rja9.js";
31
31
  import"./index-h1p08s3n.js";
32
32
  import"./index-9s8drsf9.js";
@@ -4,8 +4,8 @@ import {
4
4
  alreadyCuratedThisGeneration,
5
5
  claimNextScanBatch,
6
6
  getScanStatus
7
- } from "./index-h5krb653.js";
8
- import"./index-ec1kywxg.js";
7
+ } from "./index-d1dbpxxk.js";
8
+ import"./index-3k3nbs52.js";
9
9
  import"./index-9e6fdz2h.js";
10
10
  import"./index-4rhhvd1a.js";
11
11
  import"./index-ae75rja9.js";
@@ -97,7 +97,7 @@ import {
97
97
  resolveGeneratedAgentRole,
98
98
  resolveGuardrailsConfig,
99
99
  stripKnownSwarmPrefix
100
- } from "./index-68mqwvf5.js";
100
+ } from "./index-gfvkttvd.js";
101
101
  import"./index-v3y3qg48.js";
102
102
  import"./index-zjygnfay.js";
103
103
  import"./index-bk5tah7q.js";
@@ -23,11 +23,11 @@ import {
23
23
  tombstoneScopeBinding,
24
24
  writeScopeBindingToDisk,
25
25
  writeScopeToDisk
26
- } from "./index-dvybg11w.js";
27
- import"./index-q6bhmyxb.js";
26
+ } from "./index-k7fk9fjs.js";
27
+ import"./index-tffg4mwr.js";
28
28
  import"./index-556ja8an.js";
29
- import"./index-ytzz6pq1.js";
30
- import"./index-68mqwvf5.js";
29
+ import"./index-7qb0hn8n.js";
30
+ import"./index-gfvkttvd.js";
31
31
  import"./index-v3y3qg48.js";
32
32
  import"./index-9e6fdz2h.js";
33
33
  import"./index-4rhhvd1a.js";
@@ -33,19 +33,19 @@ import {
33
33
  sanitizeSlug,
34
34
  selectCandidateEntries,
35
35
  writeEvalStub
36
- } from "./index-vngs0meh.js";
37
- import"./index-bac12jpv.js";
36
+ } from "./index-sxe5nyq4.js";
37
+ import"./index-8dbzaf0m.js";
38
38
  import"./index-vdha477y.js";
39
39
  import"./index-rtry5xyf.js";
40
- import"./index-ec1kywxg.js";
41
- import"./index-zde2mkmg.js";
42
- import"./index-ckq719fr.js";
40
+ import"./index-3k3nbs52.js";
41
+ import"./index-cx51wy0c.js";
42
+ import"./index-0v1f2sdb.js";
43
43
  import"./index-gprxjmm7.js";
44
44
  import"./index-n832052r.js";
45
45
  import"./index-fv0s19g9.js";
46
46
  import"./index-z6xqpmqg.js";
47
- import"./index-ytzz6pq1.js";
48
- import"./index-68mqwvf5.js";
47
+ import"./index-7qb0hn8n.js";
48
+ import"./index-gfvkttvd.js";
49
49
  import"./index-v3y3qg48.js";
50
50
  import"./index-9e6fdz2h.js";
51
51
  import"./index-4rhhvd1a.js";
@@ -20,49 +20,49 @@ import {
20
20
  sanitizeWorktreeTaskId,
21
21
  standardWorktreeByCallID,
22
22
  standardWorktreeSerializationSessions
23
- } from "./index-42ezdzam.js";
24
- import"./index-dj8cah6s.js";
25
- import"./index-01nhedm7.js";
26
- import"./index-fgdhf6a5.js";
23
+ } from "./index-c2rpht77.js";
24
+ import"./index-nmy6rss1.js";
25
+ import"./index-r14qx363.js";
26
+ import"./index-z4fssj97.js";
27
27
  import"./index-134d35c1.js";
28
28
  import"./index-abtrcs16.js";
29
29
  import"./index-6z5jtf7d.js";
30
30
  import"./index-wknz5c8q.js";
31
31
  import"./index-y8552snf.js";
32
- import"./index-h5krb653.js";
32
+ import"./index-d1dbpxxk.js";
33
33
  import"./index-70ha9e09.js";
34
34
  import"./index-c8s9a3zh.js";
35
35
  import"./index-9ss2m4rs.js";
36
36
  import"./index-f36ybbsv.js";
37
37
  import"./index-hkdgkkhb.js";
38
- import"./index-vngs0meh.js";
39
- import"./index-n06653nr.js";
40
- import"./index-bac12jpv.js";
38
+ import"./index-sxe5nyq4.js";
39
+ import"./index-xx8tm58n.js";
40
+ import"./index-8dbzaf0m.js";
41
41
  import"./index-vdha477y.js";
42
42
  import"./index-rtry5xyf.js";
43
43
  import"./index-zsrtt42s.js";
44
44
  import"./index-n4hwcsbd.js";
45
45
  import"./index-cwtpqm5f.js";
46
- import"./index-sqe3nqh5.js";
47
- import"./index-tq89td7b.js";
48
- import"./index-dvybg11w.js";
49
- import"./index-q6bhmyxb.js";
46
+ import"./index-jdxnzbah.js";
47
+ import"./index-xp5g9eps.js";
48
+ import"./index-k7fk9fjs.js";
49
+ import"./index-tffg4mwr.js";
50
50
  import"./index-556ja8an.js";
51
51
  import"./index-7sy3aa9m.js";
52
52
  import"./index-wx8zdh4a.js";
53
- import"./index-b44qqqt2.js";
54
- import"./index-zy7f84cs.js";
55
- import"./index-ec1kywxg.js";
56
- import"./index-zde2mkmg.js";
53
+ import"./index-3g0xk6tk.js";
54
+ import"./index-85gkedsf.js";
55
+ import"./index-3k3nbs52.js";
56
+ import"./index-cx51wy0c.js";
57
57
  import {
58
58
  resolveWorktreeIsolationConfig
59
- } from "./index-ckq719fr.js";
59
+ } from "./index-0v1f2sdb.js";
60
60
  import"./index-gprxjmm7.js";
61
61
  import"./index-n832052r.js";
62
62
  import"./index-fv0s19g9.js";
63
63
  import"./index-z6xqpmqg.js";
64
- import"./index-ytzz6pq1.js";
65
- import"./index-68mqwvf5.js";
64
+ import"./index-7qb0hn8n.js";
65
+ import"./index-gfvkttvd.js";
66
66
  import"./index-v3y3qg48.js";
67
67
  import"./index-9e6fdz2h.js";
68
68
  import"./index-4rhhvd1a.js";
@@ -60,6 +60,15 @@ declare const __spawnSyncSeam: {
60
60
  * Synchronously read and parse a lane runtime profile from disk.
61
61
  * Mirrors the logic of `readLaneEnvFileFromDisk` but uses sync fs.
62
62
  * Returns an empty record when the file does not exist or cannot be read.
63
+ *
64
+ * UNTRUSTED INPUT (issue #2263): this file lives at
65
+ * `<worktree>/.swarm/lanes/<N>.env` — a path INSIDE the repository — so a
66
+ * hostile repository can simply commit it. Every key/value parsed here is
67
+ * attacker-controlled and must pass BOTH the `isValidEnvKey` shape check and
68
+ * the `isUntrustedEnvKey` denylist (drops the `GIT_*` control plane and the
69
+ * `LD_*`/`DYLD_*` loader-hijack families, which are code-execution
70
+ * primitives in a git child-process environment). The shape-only validation
71
+ * looks sufficient but is not — that gap is exactly what #2263 reported.
63
72
  */
64
73
  export declare function readLaneEnvFileFromDiskSync(worktreePath: string, laneIndex: number): Record<string, string>;
65
74
  declare function gitExec(args: string[], cwd: string, laneEnv?: Record<string, string>, laneIndex?: number): string;
@@ -287,6 +287,11 @@ callID?: string, settlement?: StandardWorktreeSettlementOptions): Promise<Standa
287
287
  * - Skips blank lines and lines starting with `#` (comments).
288
288
  * - Skips malformed lines (no `=` separator).
289
289
  * - Validates each key with `isValidEnvKey`; rejects and skips invalid keys.
290
+ * - Drops `GIT_*` / `LD_*` / `DYLD_*` keys via `isUntrustedEnvKey` (#2263):
291
+ * the file is repo-resident, so its contents are attacker-controlled. The
292
+ * `GIT_*` family is git's control plane (`GIT_SSH_COMMAND`,
293
+ * `GIT_CONFIG_*`, …) and `LD_*`/`DYLD_*` are loader-hijack vectors — none
294
+ * belong in a lane profile (PORT / TMPDIR / cache redirects).
290
295
  * - Returns an empty record when the file does not exist.
291
296
  *
292
297
  * Exposed via _internals for testability (no mock.module leakage).
@@ -713,7 +713,10 @@ export declare function assertPrReviewArtifactBoundary(directory: string, sessio
713
713
  /**
714
714
  * Artifact records are a projection of lane receipts, never a caller-controlled
715
715
  * replacement for them. Keep their workflow status/action aligned with the
716
- * reviewer and critic rows that the gate already authenticated.
716
+ * reviewer and critic rows that the gate already authenticated. Every violation
717
+ * across every record is reported in a single rejection, one line per violation
718
+ * with the expected and actual value, so a caller repairs a payload in one
719
+ * round trip instead of one rejected write per defect (issue #2277).
717
720
  */
718
721
  export declare function assertPrReviewArtifactRecordsMatchAuthoritativeVerdicts(directory: string, sessionID: string, boundary: PrReviewArtifactBoundary, records: readonly PrReviewArtifactRecord[]): Promise<void>;
719
722
  export declare function markPrReviewArtifactBoundary(directory: string, sessionID: string, runId: string, boundary: PrReviewArtifactBoundary, artifactPath: string, findingIds: string[], handoffRequired: boolean): Promise<PrWorkflowGateState>;