opencode-swarm 7.144.7 → 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 (48) hide show
  1. package/dist/cli/{capability-probe-976tt4ba.js → capability-probe-va4kk8vg.js} +2 -2
  2. package/dist/cli/{config-doctor-zdvaq4nb.js → config-doctor-zbqfp0v6.js} +2 -2
  3. package/dist/cli/{core-j7f118a5.js → core-pz9gwatq.js} +1 -1
  4. package/dist/cli/{curator-llm-factory-eny079d1.js → curator-llm-factory-3nq3p02z.js} +19 -19
  5. package/dist/cli/{curator-97sm8wn0.js → curator-sk0dyvke.js} +19 -19
  6. package/dist/cli/{evidence-summary-service-kwtb2d14.js → evidence-summary-service-abwrjqd0.js} +7 -7
  7. package/dist/cli/{gate-evidence-rk9j0hc4.js → gate-evidence-aa7vvtcd.js} +2 -2
  8. package/dist/cli/{guardrail-explain-8gggptqj.js → guardrail-explain-hvtyr2fz.js} +20 -20
  9. package/dist/cli/{guardrail-log-zbqf4ws6.js → guardrail-log-jw5mzs0d.js} +3 -3
  10. package/dist/cli/{hive-promoter-qzvtp5wx.js → hive-promoter-m20j63yg.js} +19 -19
  11. package/dist/cli/{index-bx20cv1v.js → index-0v1f2sdb.js} +2 -2
  12. package/dist/cli/{index-b44qqqt2.js → index-3g0xk6tk.js} +1 -1
  13. package/dist/cli/{index-77h4xjn5.js → index-3k3nbs52.js} +4 -4
  14. package/dist/cli/{index-zq9gs0yk.js → index-7qb0hn8n.js} +1 -1
  15. package/dist/cli/{index-zy7f84cs.js → index-85gkedsf.js} +14 -5
  16. package/dist/cli/{index-c1cfsg9y.js → index-8dbzaf0m.js} +1 -1
  17. package/dist/cli/{index-xjgwr4c6.js → index-bv44950t.js} +1 -1
  18. package/dist/cli/{index-x4q96ejx.js → index-c2rpht77.js} +50 -47
  19. package/dist/cli/{index-qm0mz7rj.js → index-cx51wy0c.js} +3 -3
  20. package/dist/cli/{index-d879g58v.js → index-d1dbpxxk.js} +1 -1
  21. package/dist/cli/{index-x4eqd82b.js → index-gfvkttvd.js} +1 -1
  22. package/dist/cli/{index-grkev1g6.js → index-jdxnzbah.js} +1 -1
  23. package/dist/cli/{index-jszgrk71.js → index-k7fk9fjs.js} +2 -2
  24. package/dist/cli/{index-gmdgap01.js → index-nmy6rss1.js} +1 -1
  25. package/dist/cli/{index-00fk9c3b.js → index-r14qx363.js} +1 -1
  26. package/dist/cli/{index-yz0hfa4g.js → index-r2rkwvzq.js} +2 -2
  27. package/dist/cli/{index-w9bnt74s.js → index-sxe5nyq4.js} +3 -3
  28. package/dist/cli/{index-r2q0nd0a.js → index-t2ntgzts.js} +3 -3
  29. package/dist/cli/{index-39jbnhar.js → index-t72g4a7y.js} +21 -21
  30. package/dist/cli/{index-7bvd5nh2.js → index-tffg4mwr.js} +1 -1
  31. package/dist/cli/{index-q7zy6dej.js → index-xp5g9eps.js} +1 -1
  32. package/dist/cli/{index-pzsezhek.js → index-xx8tm58n.js} +5 -5
  33. package/dist/cli/{index-s1xefrx7.js → index-z4fssj97.js} +7 -4
  34. package/dist/cli/index.js +19 -19
  35. package/dist/cli/{knowledge-escalator-fhc6ecbv.js → knowledge-escalator-mg8qb7tm.js} +6 -6
  36. package/dist/cli/{knowledge-events-31g69mx2.js → knowledge-events-3zxf8xpb.js} +4 -4
  37. package/dist/cli/{knowledge-store-g389c1cy.js → knowledge-store-awnm8s6c.js} +1 -1
  38. package/dist/cli/{knowledge-validator-sng5xt5a.js → knowledge-validator-3ke5scx3.js} +2 -2
  39. package/dist/cli/{scan-cursor-qm3tsvvw.js → scan-cursor-00rbxkb4.js} +2 -2
  40. package/dist/cli/{schema-vnghba3d.js → schema-5nmkp1pc.js} +1 -1
  41. package/dist/cli/{scope-persistence-k9mqd414.js → scope-persistence-6m79atw9.js} +4 -4
  42. package/dist/cli/{skill-generator-v1wdh3ne.js → skill-generator-gv70s796.js} +7 -7
  43. package/dist/cli/{worktree-isolation-bxt3rftm.js → worktree-isolation-bne0p54w.js} +19 -19
  44. package/dist/git/branch.d.ts +9 -0
  45. package/dist/hooks/delegation-gate/worktree-isolation.d.ts +5 -0
  46. package/dist/index.js +4 -4
  47. package/dist/sandbox/executor.d.ts +6 -0
  48. package/package.json +1 -1
@@ -23,7 +23,7 @@ import {
23
23
  readTaskEvidence,
24
24
  readTaskEvidenceRaw,
25
25
  sanitizeTaskId
26
- } from "./index-grkev1g6.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-7bvd5nh2.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-zq9gs0yk.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-x4q96ejx.js";
15
- import"./index-gmdgap01.js";
16
- import"./index-00fk9c3b.js";
17
- import"./index-s1xefrx7.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-d879g58v.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-w9bnt74s.js";
30
- import"./index-pzsezhek.js";
31
- import"./index-c1cfsg9y.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-grkev1g6.js";
38
- import"./index-q7zy6dej.js";
39
- import"./index-jszgrk71.js";
40
- import"./index-7bvd5nh2.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-77h4xjn5.js";
47
- import"./index-qm0mz7rj.js";
48
- import"./index-bx20cv1v.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-zq9gs0yk.js";
53
+ import"./index-7qb0hn8n.js";
54
54
  import {
55
55
  init_package,
56
56
  package_default
57
- } from "./index-x4eqd82b.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-pzsezhek.js";
13
- import"./index-77h4xjn5.js";
14
- import"./index-qm0mz7rj.js";
15
- import"./index-bx20cv1v.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-zq9gs0yk.js";
21
- import"./index-x4eqd82b.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-qm0mz7rj.js";
33
- import"./index-bx20cv1v.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-zq9gs0yk.js";
39
- import"./index-x4eqd82b.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-77h4xjn5.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-c1cfsg9y.js";
26
+ } from "./index-8dbzaf0m.js";
27
27
  import"./index-vdha477y.js";
28
28
  import"./index-rtry5xyf.js";
29
- import"./index-77h4xjn5.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-d879g58v.js";
8
- import"./index-77h4xjn5.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-x4eqd82b.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-jszgrk71.js";
27
- import"./index-7bvd5nh2.js";
26
+ } from "./index-k7fk9fjs.js";
27
+ import"./index-tffg4mwr.js";
28
28
  import"./index-556ja8an.js";
29
- import"./index-zq9gs0yk.js";
30
- import"./index-x4eqd82b.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-w9bnt74s.js";
37
- import"./index-c1cfsg9y.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-77h4xjn5.js";
41
- import"./index-qm0mz7rj.js";
42
- import"./index-bx20cv1v.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-zq9gs0yk.js";
48
- import"./index-x4eqd82b.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-x4q96ejx.js";
24
- import"./index-gmdgap01.js";
25
- import"./index-00fk9c3b.js";
26
- import"./index-s1xefrx7.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-d879g58v.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-w9bnt74s.js";
39
- import"./index-pzsezhek.js";
40
- import"./index-c1cfsg9y.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-grkev1g6.js";
47
- import"./index-q7zy6dej.js";
48
- import"./index-jszgrk71.js";
49
- import"./index-7bvd5nh2.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-77h4xjn5.js";
56
- import"./index-qm0mz7rj.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-bx20cv1v.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-zq9gs0yk.js";
65
- import"./index-x4eqd82b.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).