opencode-swarm 7.152.1 → 7.153.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 (87) hide show
  1. package/.opencode/skills/swarm-pr-review/SKILL.md +10 -10
  2. package/dist/cli/{capability-probe-va4kk8vg.js → capability-probe-5wa7mcp6.js} +3 -2
  3. package/dist/cli/{config-doctor-bbqmye7a.js → config-doctor-7s7xga6f.js} +3 -3
  4. package/dist/cli/{core-fh4e6ex0.js → core-vkpy14vv.js} +2 -2
  5. package/dist/cli/{curation-policy-nem98yc9.js → curation-policy-xy7tm4ad.js} +4 -4
  6. package/dist/cli/{curator-909s9dvs.js → curator-6freqnhf.js} +25 -26
  7. package/dist/cli/{curator-llm-factory-462rysph.js → curator-llm-factory-q5cjk7mt.js} +25 -26
  8. package/dist/cli/{evidence-summary-service-kqw4y0yr.js → evidence-summary-service-engtgjww.js} +11 -11
  9. package/dist/cli/{gate-evidence-ycts62pj.js → gate-evidence-6bzzz8kq.js} +5 -5
  10. package/dist/cli/{guardrail-explain-7620hasq.js → guardrail-explain-vsck39dh.js} +26 -27
  11. package/dist/cli/{guardrail-log-e1tmdxxa.js → guardrail-log-0dn8m3k6.js} +4 -4
  12. package/dist/cli/{guardrail-reset-gdnaxxvb.js → guardrail-reset-6e2vyfn9.js} +25 -26
  13. package/dist/cli/{hive-promoter-d0xydg6r.js → hive-promoter-021abs6z.js} +25 -26
  14. package/dist/cli/{index-mken64yj.js → index-0n7nm9e8.js} +1 -1
  15. package/dist/cli/{index-pvrap7xg.js → index-1yfpw7w0.js} +1 -1
  16. package/dist/cli/{index-2e1294d1.js → index-3z2f1cy8.js} +16 -10
  17. package/dist/cli/{index-n0vc5b5t.js → index-3z5jtyan.js} +14 -6
  18. package/dist/cli/{index-85gkedsf.js → index-4fwbbad3.js} +521 -15
  19. package/dist/cli/{index-nd8tkb3g.js → index-4gn111h3.js} +5 -5
  20. package/dist/cli/{index-rq6aetkv.js → index-5w915x8b.js} +4 -4
  21. package/dist/cli/{index-q77e475x.js → index-5x67858f.js} +3 -3
  22. package/dist/cli/{index-k3d919yf.js → index-6v77adf7.js} +84 -23
  23. package/dist/cli/{index-0tfgn5x0.js → index-77xy577c.js} +6 -6
  24. package/dist/cli/{index-02ajc6d1.js → index-7q56f3se.js} +2 -2
  25. package/dist/cli/{index-xyfdmrv7.js → index-80ekaf5b.js} +1 -1
  26. package/dist/cli/{index-sg2sx2q7.js → index-95qra69h.js} +3826 -2018
  27. package/dist/cli/{index-73pmnsjg.js → index-9gjbe4e4.js} +1 -1
  28. package/dist/cli/{index-z8s2asdk.js → index-9vdh4kdx.js} +22 -150
  29. package/dist/cli/{index-z9fyd0d6.js → index-babtfqa0.js} +2 -2
  30. package/dist/cli/{index-4tvvh7pn.js → index-dh1gk5c5.js} +29 -28
  31. package/dist/cli/{index-3djxegsc.js → index-e2hs0bh7.js} +1 -1
  32. package/dist/cli/{index-qqrdmaxq.js → index-eajfs7v4.js} +2 -2
  33. package/dist/cli/{index-26vyr198.js → index-eqh3t8eh.js} +6 -6
  34. package/dist/cli/{index-29vd7v3e.js → index-g0m6kypc.js} +1 -1
  35. package/dist/cli/{index-96m8ckpq.js → index-hexhzq5j.js} +4 -4
  36. package/dist/cli/{index-ryecg2st.js → index-hkmgzesw.js} +3 -3
  37. package/dist/cli/{index-x6803sxh.js → index-hw49515c.js} +2 -2
  38. package/dist/cli/{index-7fh82sm1.js → index-k2ydsqs7.js} +2 -2
  39. package/dist/cli/{index-cpg98bh1.js → index-myt57pht.js} +1 -1
  40. package/dist/cli/{index-79g6edht.js → index-qgfnd206.js} +1 -1
  41. package/dist/cli/{index-44xdtqz8.js → index-x6zy6veh.js} +1 -1
  42. package/dist/cli/{index-dn6yt0xg.js → index-xv881ahz.js} +5 -5
  43. package/dist/cli/index.js +25 -26
  44. package/dist/cli/{knowledge-escalator-4egcr928.js → knowledge-escalator-79zbhpz5.js} +10 -10
  45. package/dist/cli/{knowledge-events-kdyv4jzn.js → knowledge-events-79cak7eb.js} +8 -8
  46. package/dist/cli/{knowledge-link-h8cwj7af.js → knowledge-link-40zsr5ja.js} +3 -3
  47. package/dist/cli/{knowledge-store-dq3cvg53.js → knowledge-store-w29aw5w0.js} +4 -4
  48. package/dist/cli/{knowledge-validator-4bhtden9.js → knowledge-validator-qsecnt2d.js} +6 -6
  49. package/dist/cli/{model-preflight-7ea00h34.js → model-preflight-b95w8wxy.js} +1 -1
  50. package/dist/cli/{runner-w81n9js3.js → runner-fbgsxs74.js} +4 -4
  51. package/dist/cli/{scan-cursor-2eezv81a.js → scan-cursor-1r3pcdqp.js} +5 -5
  52. package/dist/cli/{schema-v4qcqhek.js → schema-19qsv6fw.js} +2 -2
  53. package/dist/cli/{scope-persistence-y2r227r0.js → scope-persistence-ypcrvqtt.js} +6 -6
  54. package/dist/cli/{skill-generator-hhzxvb3h.js → skill-generator-wpp9kpa0.js} +12 -12
  55. package/dist/cli/{worktree-isolation-ve338ez6.js → worktree-isolation-wcry8qnn.js} +25 -26
  56. package/dist/commands/approve-write.d.ts +1 -0
  57. package/dist/commands/index.d.ts +1 -0
  58. package/dist/commands/registry.d.ts +7 -0
  59. package/dist/config/schema.d.ts +39 -4
  60. package/dist/consensus/contracts.d.ts +14 -0
  61. package/dist/hooks/full-auto-permission.d.ts +7 -0
  62. package/dist/hooks/guardrails/index.d.ts +2 -1
  63. package/dist/hooks/guardrails/tool-before.d.ts +4 -0
  64. package/dist/hooks/pr-workflow-gate.d.ts +12 -0
  65. package/dist/hooks/scope-guard.d.ts +1 -3
  66. package/dist/index.js +624 -606
  67. package/dist/learning/provenance.d.ts +9 -0
  68. package/dist/sandbox/capability-probe.d.ts +40 -1
  69. package/dist/sandbox/executor.d.ts +26 -1
  70. package/dist/sandbox/linux/bubblewrap-executor.d.ts +3 -1
  71. package/dist/sandbox/macos/sandbox-exec-executor.d.ts +3 -1
  72. package/dist/sandbox/skip-state.d.ts +24 -0
  73. package/dist/sandbox/win32/native-sandbox-executor.d.ts +5 -1
  74. package/dist/security/command-classifier.d.ts +22 -0
  75. package/dist/security/protected-input-integrity.d.ts +19 -0
  76. package/dist/security/protected-path-policy.d.ts +9 -0
  77. package/dist/security/write-authority.d.ts +46 -0
  78. package/dist/services/diagnose-service.d.ts +1 -1
  79. package/dist/services/skill-generator.d.ts +2 -0
  80. package/dist/services/skill-improver.d.ts +69 -0
  81. package/dist/tools/dispatch-lanes.d.ts +47 -0
  82. package/dist/tools/repo-graph/query.d.ts +2 -1
  83. package/dist/tools/repo-graph/types.d.ts +64 -0
  84. package/dist/tools/repo-graph.d.ts +1 -1
  85. package/dist/tools/skill-improve.d.ts +7 -0
  86. package/package.json +1 -1
  87. package/dist/cli/index-3g0xk6tk.js +0 -219
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  computePlanStructureHash,
4
4
  derivePlanId
5
- } from "./index-xyfdmrv7.js";
5
+ } from "./index-80ekaf5b.js";
6
6
  import {
7
7
  appendCoreEventSync
8
8
  } from "./index-6zkm4p7p.js";
@@ -11,11 +11,11 @@ import {
11
11
  } from "./index-556ja8an.js";
12
12
  import {
13
13
  PlanSchema
14
- } from "./index-3djxegsc.js";
14
+ } from "./index-e2hs0bh7.js";
15
15
  import {
16
16
  atomicWriteSwarmFile,
17
17
  atomicWriteSwarmFileSync
18
- } from "./index-7fh82sm1.js";
18
+ } from "./index-k2ydsqs7.js";
19
19
  import {
20
20
  assertProjectRoot
21
21
  } from "./index-txbd25bc.js";
@@ -11,10 +11,10 @@ import {
11
11
  import {
12
12
  init_schema,
13
13
  stripKnownSwarmPrefix
14
- } from "./index-n0vc5b5t.js";
14
+ } from "./index-3z5jtyan.js";
15
15
  import {
16
16
  init_constants
17
- } from "./index-cpg98bh1.js";
17
+ } from "./index-myt57pht.js";
18
18
  import {
19
19
  telemetry
20
20
  } from "./index-aw492hpn.js";
@@ -1768,7 +1768,7 @@ function classifyFile(filePath) {
1768
1768
  // src/hooks/guardrails/file-authority.ts
1769
1769
  import * as fsSync from "fs";
1770
1770
  var import_picomatch = __toESM(require_picomatch2(), 1);
1771
- import * as path from "path";
1771
+ import * as path2 from "path";
1772
1772
 
1773
1773
  // node_modules/quick-lru/index.js
1774
1774
  class QuickLRU extends Map {
@@ -2045,6 +2045,64 @@ class QuickLRU extends Map {
2045
2045
  // src/hooks/guardrails/file-authority.ts
2046
2046
  init_schema();
2047
2047
 
2048
+ // src/security/protected-path-policy.ts
2049
+ import * as path from "path";
2050
+ var DEFAULT_SEGMENTS = new Set([
2051
+ ".git",
2052
+ ".swarm",
2053
+ ".env",
2054
+ "package.json",
2055
+ "package-lock.json",
2056
+ "bun.lock",
2057
+ "CHANGELOG.md",
2058
+ ".release-please-manifest.json",
2059
+ "release-please-config.json",
2060
+ "CODEOWNERS"
2061
+ ]);
2062
+ var DEFAULT_PREFIXES = [
2063
+ ".github/workflows",
2064
+ ".github/CODEOWNERS",
2065
+ "src/sandbox",
2066
+ "src/hooks/guardrails",
2067
+ "src/security",
2068
+ "src/evaluation",
2069
+ "docs/releases",
2070
+ "tests/fixtures/evaluation"
2071
+ ];
2072
+ function normalizeProtectedPath(value) {
2073
+ return value.replace(/\\/g, "/").replace(/^\.\//, "").replace(/\/+$/, "");
2074
+ }
2075
+ function equalsOrDescendant(candidate, protectedPath) {
2076
+ const left = process.platform === "win32" ? candidate.toLowerCase() : candidate;
2077
+ const right = process.platform === "win32" ? protectedPath.toLowerCase() : protectedPath;
2078
+ return left === right || left.startsWith(`${right}/`);
2079
+ }
2080
+ function isPolicyProtectedPath(filePath, options = {}) {
2081
+ if (!filePath)
2082
+ return false;
2083
+ const normalized = normalizeProtectedPath(filePath);
2084
+ const segments = normalized.split("/").filter(Boolean);
2085
+ if (options.includeDefaults !== false) {
2086
+ if (segments.some((segment) => DEFAULT_SEGMENTS.has(process.platform === "win32" ? segment.toLowerCase() : segment)))
2087
+ return true;
2088
+ if (DEFAULT_PREFIXES.some((prefix) => equalsOrDescendant(normalized, prefix)))
2089
+ return true;
2090
+ }
2091
+ return (options.additional ?? []).some((entry) => {
2092
+ const protectedPath = normalizeProtectedPath(entry);
2093
+ if (!protectedPath)
2094
+ return false;
2095
+ if (equalsOrDescendant(normalized, protectedPath))
2096
+ return true;
2097
+ if (protectedPath.includes("/"))
2098
+ return false;
2099
+ return segments.some((segment) => (process.platform === "win32" ? segment.toLowerCase() : segment) === (process.platform === "win32" ? protectedPath.toLowerCase() : protectedPath));
2100
+ });
2101
+ }
2102
+ function protectedRoots(projectRoot, additional = []) {
2103
+ return [...DEFAULT_PREFIXES, ...DEFAULT_SEGMENTS, ...additional].map((entry) => path.resolve(projectRoot, entry));
2104
+ }
2105
+
2048
2106
  // src/utils/arg-hash.ts
2049
2107
  var HASH_INPUT_CAP_BYTES = 64 * 1024;
2050
2108
 
@@ -2079,12 +2137,12 @@ function normalizePathWithCache(filePath, cwd) {
2079
2137
  return cached;
2080
2138
  }
2081
2139
  try {
2082
- const absolutePath = path.isAbsolute(filePath) ? filePath : path.resolve(cwd, filePath);
2140
+ const absolutePath = path2.isAbsolute(filePath) ? filePath : path2.resolve(cwd, filePath);
2083
2141
  const normalized = fsSync.realpathSync(absolutePath);
2084
2142
  pathNormalizationCache.set(cacheKey, normalized);
2085
2143
  return normalized;
2086
2144
  } catch {
2087
- const fallback = path.isAbsolute(filePath) ? filePath : path.resolve(cwd, filePath);
2145
+ const fallback = path2.isAbsolute(filePath) ? filePath : path2.resolve(cwd, filePath);
2088
2146
  pathNormalizationCache.set(cacheKey, fallback);
2089
2147
  return fallback;
2090
2148
  }
@@ -2232,7 +2290,7 @@ var DEFAULT_AGENT_AUTHORITY_RULES = {
2232
2290
  }
2233
2291
  };
2234
2292
  function matchesAuthorityDenyPrefix(candidate, prefix, cwd, flavor = getPathFlavor()) {
2235
- const pathImpl = flavor === "win32" ? path.win32 : path.posix;
2293
+ const pathImpl = flavor === "win32" ? path2.win32 : path2.posix;
2236
2294
  const normalizeInput = (value) => flavor === "win32" ? value.replace(/\//g, "\\") : value;
2237
2295
  const normalizedPrefixInput = normalizeInput(prefix);
2238
2296
  const requiresComponentBoundary = normalizedPrefixInput.endsWith(pathImpl.sep);
@@ -2277,8 +2335,8 @@ function buildEffectiveRules(authorityConfig) {
2277
2335
  }
2278
2336
  return merged;
2279
2337
  }
2280
- function isOnDifferentFilesystemRoot(targetAbsolute, cwdAbsolute, pathLib = path) {
2281
- const flavor = pathLib === path.win32 || pathLib.parse("C:\\probe").root !== "" ? "win32" : "posix";
2338
+ function isOnDifferentFilesystemRoot(targetAbsolute, cwdAbsolute, pathLib = path2) {
2339
+ const flavor = pathLib === path2.win32 || pathLib.parse("C:\\probe").root !== "" ? "win32" : "posix";
2282
2340
  return isOnDifferentPathRoot(targetAbsolute, cwdAbsolute, flavor);
2283
2341
  }
2284
2342
  var BUILT_IN_VERIFIER_CONFIG_GLOBS = [
@@ -2349,11 +2407,11 @@ function checkFileAuthorityWithRules(agentName, filePath, cwd, effectiveRules, o
2349
2407
  let resolvedTarget;
2350
2408
  try {
2351
2409
  const normalizedWithSymlinks = normalizePathWithCache(filePath, dir);
2352
- resolvedTarget = path.resolve(dir, normalizedWithSymlinks);
2353
- normalizedPath = path.relative(dir, resolvedTarget).replace(/\\/g, "/");
2410
+ resolvedTarget = path2.resolve(dir, normalizedWithSymlinks);
2411
+ normalizedPath = path2.relative(dir, resolvedTarget).replace(/\\/g, "/");
2354
2412
  } catch {
2355
- resolvedTarget = path.resolve(dir, filePath);
2356
- normalizedPath = path.relative(dir, resolvedTarget).replace(/\\/g, "/");
2413
+ resolvedTarget = path2.resolve(dir, filePath);
2414
+ normalizedPath = path2.relative(dir, resolvedTarget).replace(/\\/g, "/");
2357
2415
  }
2358
2416
  if (isOnDifferentFilesystemRoot(resolvedTarget, dir)) {
2359
2417
  return denyAuthority(agentName, normalizedPath, {
@@ -2381,7 +2439,7 @@ function checkFileAuthorityWithRules(agentName, filePath, cwd, effectiveRules, o
2381
2439
  });
2382
2440
  }
2383
2441
  const flavor = getPathFlavor();
2384
- const matchesPathPrefix = (candidate, prefix) => isPathIdentityWithin(path.resolve(dir, candidate), path.resolve(dir, prefix), flavor);
2442
+ const matchesPathPrefix = (candidate, prefix) => isPathIdentityWithin(path2.resolve(dir, candidate), path2.resolve(dir, prefix), flavor);
2385
2443
  const matchesGlob = (glob) => getGlobMatcher(glob)(normalizedPath);
2386
2444
  for (const prefix of options.universalDenyPrefixes ?? []) {
2387
2445
  if (matchesAuthorityDenyPrefix(normalizedPath, prefix, dir, flavor)) {
@@ -2394,12 +2452,15 @@ function checkFileAuthorityWithRules(agentName, filePath, cwd, effectiveRules, o
2394
2452
  }
2395
2453
  }
2396
2454
  const isCoderAgent = normalizedAgent === "coder" || strippedAgent === "coder";
2397
- if (isCoderAgent && matchesPathPrefix(normalizedPath, ".swarm")) {
2455
+ if (isCoderAgent && isPolicyProtectedPath(normalizedPath, {
2456
+ includeDefaults: false,
2457
+ additional: [".git", ".swarm"]
2458
+ })) {
2398
2459
  return denyAuthority(agentName, normalizedPath, {
2399
2460
  code: "AUTHORITY_PROTECTED_PATH",
2400
2461
  layer: "protected-path",
2401
- rule: "coder-swarm-state-protection",
2402
- detail: "coder writes to .swarm are always protected"
2462
+ rule: "coder-control-state-protection",
2463
+ detail: "coder writes to repository control state (.git/.swarm) are always protected"
2403
2464
  });
2404
2465
  }
2405
2466
  const isSwarmRole = Object.hasOwn(AUTHORITY_ROLE_CAPABILITIES, strippedAgent);
@@ -2608,7 +2669,7 @@ function redactShellCommand(cmd) {
2608
2669
 
2609
2670
  // src/hooks/guardrails/shell-audit-store.ts
2610
2671
  import * as fs from "fs";
2611
- import * as path2 from "path";
2672
+ import * as path3 from "path";
2612
2673
  import { StringDecoder } from "string_decoder";
2613
2674
  init_logger();
2614
2675
  var SHELL_AUDIT_LIMITS = {
@@ -2718,10 +2779,10 @@ var _internals = {
2718
2779
  emitHealth: emitShellAuditHealth
2719
2780
  };
2720
2781
  function shellAuditFilePath(directory) {
2721
- return path2.join(directory, ".swarm", "session", "shell-audit.jsonl");
2782
+ return path3.join(directory, ".swarm", "session", "shell-audit.jsonl");
2722
2783
  }
2723
2784
  function lockFilePath(directory) {
2724
- return path2.join(directory, ".swarm", "session", "shell-audit.lock");
2785
+ return path3.join(directory, ".swarm", "session", "shell-audit.lock");
2725
2786
  }
2726
2787
  function tmpPathFor(finalPath) {
2727
2788
  return `${finalPath}.${process.pid}.tmp`;
@@ -2864,7 +2925,7 @@ function renameSyncWithRetry(fromPath, toPath) {
2864
2925
  function tryLockOnce(directory) {
2865
2926
  const lockPath = lockFilePath(directory);
2866
2927
  try {
2867
- _internals.mkdirSync(path2.dirname(lockPath), { recursive: true });
2928
+ _internals.mkdirSync(path3.dirname(lockPath), { recursive: true });
2868
2929
  const fd = _internals.openSync(lockPath, "wx");
2869
2930
  _internals.closeSync(fd);
2870
2931
  return true;
@@ -3264,7 +3325,7 @@ function emitHealth(directory, payload) {
3264
3325
  // src/hooks/guardrails/audit-log.ts
3265
3326
  init_logger();
3266
3327
  import { createHash } from "crypto";
3267
- import * as path3 from "path";
3328
+ import * as path4 from "path";
3268
3329
  var SHELL_AUDIT_FIELD_CLASSES = Object.freeze({
3269
3330
  ts: "timestamp",
3270
3331
  sessionID: "identifier",
@@ -3298,7 +3359,7 @@ function redactPath(filePath) {
3298
3359
  if (rawMacHomeMatch) {
3299
3360
  return `~${rawMacHomeMatch[2]}`;
3300
3361
  }
3301
- const normalized = path3.normalize(filePath);
3362
+ const normalized = path4.normalize(filePath);
3302
3363
  const windowsHomeMatch = normalized.match(/^([A-Za-z]:\\[Uu][Ss][Ee][Rr][Ss]\\[^\\]+)(\\.*)$/i);
3303
3364
  if (windowsHomeMatch) {
3304
3365
  return `~\\${windowsHomeMatch[2]}`;
@@ -3360,4 +3421,4 @@ function redactDecisionLineForArchive(line) {
3360
3421
  return changed ? JSON.stringify(record) : line;
3361
3422
  }
3362
3423
 
3363
- export { classifyFile, stableCanonicalStringify, checkFileAuthority, normalizeToolNameLowerCase, isInDeclaredScope, redactShellCommand, readShellAuditTail, getShellAuditFoldedSummary, finalizeShellAuditForClose, redactPath, redactDecisionLineForArchive };
3424
+ export { isPolicyProtectedPath, protectedRoots, classifyFile, stableCanonicalStringify, checkFileAuthority, normalizeToolNameLowerCase, isInDeclaredScope, redactShellCommand, readShellAuditTail, getShellAuditFoldedSummary, finalizeShellAuditForClose, redactPath, redactDecisionLineForArchive };
@@ -6,10 +6,10 @@ import {
6
6
  } from "./index-ae75rja9.js";
7
7
  import {
8
8
  resolveKnowledgeStoreDir
9
- } from "./index-79g6edht.js";
9
+ } from "./index-qgfnd206.js";
10
10
  import {
11
11
  atomicWriteFile
12
- } from "./index-mken64yj.js";
12
+ } from "./index-0n7nm9e8.js";
13
13
  import {
14
14
  init_knowledge_types,
15
15
  isActiveStatus
@@ -713,7 +713,7 @@ async function applyConfidenceFloorAction(directory, touched, options) {
713
713
  const {
714
714
  readAuthoritativeKnowledgeCounterRollups,
715
715
  effectiveRetrievalOutcomes
716
- } = await import("./knowledge-events-kdyv4jzn.js");
716
+ } = await import("./knowledge-events-79cak7eb.js");
717
717
  const rollups = await readAuthoritativeKnowledgeCounterRollups(directory);
718
718
  const flagIds = new Set;
719
719
  for (const e of atFloor) {
@@ -780,11 +780,11 @@ async function applyConfidenceFloorAction(directory, touched, options) {
780
780
  });
781
781
  }
782
782
  if (action === "quarantine" && toQuarantine.length > 0) {
783
- const { quarantineEntry } = await import("./knowledge-validator-4bhtden9.js");
784
- const { KnowledgeConfigSchema } = await import("./schema-v4qcqhek.js");
783
+ const { quarantineEntry } = await import("./knowledge-validator-qsecnt2d.js");
784
+ const { KnowledgeConfigSchema } = await import("./schema-19qsv6fw.js");
785
785
  let config;
786
786
  try {
787
- const { loadPluginConfigWithMeta } = await import("./index-96m8ckpq.js");
787
+ const { loadPluginConfigWithMeta } = await import("./index-hexhzq5j.js");
788
788
  const { config: loadedConfig } = loadPluginConfigWithMeta(directory);
789
789
  config = KnowledgeConfigSchema.parse(loadedConfig.knowledge ?? {});
790
790
  } catch {
@@ -2,14 +2,14 @@
2
2
  import {
3
3
  readKnowledge,
4
4
  transactKnowledge
5
- } from "./index-0tfgn5x0.js";
5
+ } from "./index-77xy577c.js";
6
6
  import {
7
7
  init_git_executable,
8
8
  resolveGitExecutableAsync
9
9
  } from "./index-9e6fdz2h.js";
10
10
  import {
11
11
  resolveKnowledgeStoreDir
12
- } from "./index-79g6edht.js";
12
+ } from "./index-qgfnd206.js";
13
13
  import {
14
14
  init_knowledge_types,
15
15
  isActiveStatus
@@ -4,7 +4,7 @@ import {
4
4
  PlanSchema,
5
5
  TaskStatusSchema,
6
6
  init_loader
7
- } from "./index-3djxegsc.js";
7
+ } from "./index-e2hs0bh7.js";
8
8
  import {
9
9
  assertProjectRoot,
10
10
  withEvidenceLock