opencode-swarm 7.140.6 → 7.141.1

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 (81) hide show
  1. package/.opencode/skills/deep-dive/SKILL.md +7 -6
  2. package/.opencode/skills/running-tests/SKILL.md +7 -0
  3. package/dist/agents/explorer.d.ts +1 -1
  4. package/dist/background/lane-delivery-store.d.ts +43 -0
  5. package/dist/background/lane-output-store.d.ts +6 -0
  6. package/dist/cli/{config-doctor-y5qeh18c.js → config-doctor-xs2p0xy3.js} +2 -2
  7. package/dist/cli/{core-pwd9604e.js → core-znrxk8gw.js} +1 -1
  8. package/dist/cli/{curation-policy-avvb56x2.js → curation-policy-j1fbc3ry.js} +5 -5
  9. package/dist/cli/{curator-q1nchgpg.js → curator-a95x81ek.js} +28 -28
  10. package/dist/cli/{curator-llm-factory-96pnc23w.js → curator-llm-factory-ak7p0scv.js} +28 -28
  11. package/dist/cli/{dispatch-2s23fbcs.js → dispatch-rd10kdk1.js} +1 -1
  12. package/dist/cli/{evidence-summary-service-18142mr3.js → evidence-summary-service-2gk48s5s.js} +9 -9
  13. package/dist/cli/{explorer-e9h66egs.js → explorer-18353rhn.js} +1 -1
  14. package/dist/cli/{gate-evidence-smn2wqft.js → gate-evidence-rt9034ft.js} +4 -4
  15. package/dist/cli/{guardrail-explain-kyd89z8z.js → guardrail-explain-4st3vc3d.js} +29 -29
  16. package/dist/cli/{guardrail-log-cahp1ews.js → guardrail-log-vjexgpfm.js} +3 -3
  17. package/dist/cli/{hive-promoter-vcbcvcsh.js → hive-promoter-g9ad9vad.js} +28 -28
  18. package/dist/cli/{index-z0z9pe7b.js → index-2ygp3pnx.js} +5 -5
  19. package/dist/cli/{index-1p72dtym.js → index-39xs96mk.js} +1 -1
  20. package/dist/cli/{index-tjqzr3jc.js → index-3d13jkzq.js} +2 -2
  21. package/dist/cli/{index-p2ty3eee.js → index-3gfdb0t9.js} +1 -1
  22. package/dist/cli/{index-4s7xgzbm.js → index-44nf5s90.js} +1 -1
  23. package/dist/cli/{index-2778hhh7.js → index-5ykn39wq.js} +2 -2
  24. package/dist/cli/{index-bjqpdr83.js → index-8056f16v.js} +3 -3
  25. package/dist/cli/{index-y9q9f6ms.js → index-8s4vnqts.js} +4 -4
  26. package/dist/cli/{index-epvhf50h.js → index-9d4gck4e.js} +2 -1
  27. package/dist/cli/{index-p8kk34am.js → index-c2hczjhp.js} +1 -1
  28. package/dist/cli/{index-56rqw2hs.js → index-c6m3t5n2.js} +6 -6
  29. package/dist/cli/{index-nakkgkkt.js → index-dx1mdsrj.js} +1294 -934
  30. package/dist/cli/{index-41hkt36g.js → index-ebwznsfy.js} +90 -19
  31. package/dist/cli/{index-c432knmy.js → index-f1hsrgw1.js} +1 -1
  32. package/dist/cli/{index-5qd5vt2d.js → index-g29r600w.js} +30 -30
  33. package/dist/cli/{index-z3s0a44b.js → index-hjf8pjd4.js} +3 -3
  34. package/dist/cli/{index-vh05t3w5.js → index-kq5p3nm3.js} +1 -1
  35. package/dist/cli/{index-h01wb18g.js → index-mr397tze.js} +2 -2
  36. package/dist/cli/{index-s1v0wza5.js → index-nse60anv.js} +1 -1
  37. package/dist/cli/{index-thp186x0.js → index-pkxt2rg2.js} +1 -1
  38. package/dist/cli/{index-t5pytnca.js → index-q4vaar2b.js} +2 -2
  39. package/dist/cli/{index-m9xrdjn0.js → index-qskz8j2z.js} +1 -1
  40. package/dist/cli/{index-92n3d5ky.js → index-ry609ctr.js} +40 -9
  41. package/dist/cli/{index-qy1nq52t.js → index-v250345n.js} +1 -1
  42. package/dist/cli/{index-e58e3v0v.js → index-vnr917xf.js} +3 -3
  43. package/dist/cli/{index-fejfzy2j.js → index-w9613ace.js} +6 -6
  44. package/dist/cli/{index-dtqjxfw9.js → index-wbf8sv70.js} +1 -1
  45. package/dist/cli/{index-v2xrer41.js → index-xmzmeknp.js} +3 -1
  46. package/dist/cli/{index-p04qrwck.js → index-ysapwztd.js} +2 -2
  47. package/dist/cli/{index-zd4qhnr7.js → index-z8yr1yra.js} +1 -1
  48. package/dist/cli/{index-912qz4y0.js → index-zbj3yrrd.js} +1 -1
  49. package/dist/cli/{index-4zxrkk1h.js → index-zqshpey0.js} +3 -3
  50. package/dist/cli/index.js +28 -28
  51. package/dist/cli/{knowledge-escalator-gj58za4g.js → knowledge-escalator-5xg6vmr4.js} +10 -10
  52. package/dist/cli/{knowledge-events-3m5jnnv6.js → knowledge-events-qvzpqt5b.js} +8 -8
  53. package/dist/cli/{knowledge-link-m9p80f4r.js → knowledge-link-x86ebng8.js} +4 -4
  54. package/dist/cli/{knowledge-store-0vy8wbzd.js → knowledge-store-k5td1vqx.js} +5 -5
  55. package/dist/cli/{knowledge-validator-mvcs8wf6.js → knowledge-validator-zz26gk5d.js} +7 -7
  56. package/dist/cli/{pending-delegations-cxx9tezp.js → pending-delegations-7xsagjy5.js} +3 -3
  57. package/dist/cli/{pr-subscriptions-2sfnb599.js → pr-subscriptions-r6cdsa3t.js} +3 -3
  58. package/dist/cli/{runner-mky3vvht.js → runner-nm3baddf.js} +5 -5
  59. package/dist/cli/{scan-cursor-wznc7p7p.js → scan-cursor-nhcpebh5.js} +6 -6
  60. package/dist/cli/{schema-k596bhds.js → schema-6ecb0xhn.js} +1 -1
  61. package/dist/cli/{scope-persistence-0ny5fn07.js → scope-persistence-yet1hvmq.js} +6 -6
  62. package/dist/cli/{skill-generator-vrks0jjj.js → skill-generator-j0mbd2pp.js} +12 -12
  63. package/dist/cli/{telemetry-0x6kszvk.js → telemetry-zex3zv3v.js} +1 -1
  64. package/dist/cli/{worktree-collision-ownership-wm5pse49.js → worktree-collision-ownership-n41qw3n8.js} +3 -3
  65. package/dist/cli/{worktree-isolation-zgk7314k.js → worktree-isolation-445zjngp.js} +28 -28
  66. package/dist/hooks/delegation-gate.d.ts +6 -0
  67. package/dist/hooks/knowledge-application-gate.d.ts +1 -1
  68. package/dist/hooks/knowledge-events.d.ts +5 -2
  69. package/dist/hooks/knowledge-receipt-ledger.d.ts +38 -0
  70. package/dist/hooks/knowledge-receipt-observability.d.ts +24 -1
  71. package/dist/hooks/knowledge-receipt-validator.d.ts +19 -3
  72. package/dist/hooks/knowledge-types.d.ts +9 -0
  73. package/dist/hooks/repo-graph-injection.d.ts +52 -0
  74. package/dist/index.js +224 -213
  75. package/dist/lang/backend.d.ts +8 -1
  76. package/dist/lang/default-backend.d.ts +2 -1
  77. package/dist/tools/create-tool.d.ts +5 -2
  78. package/dist/tools/dispatch-lanes.d.ts +45 -5
  79. package/dist/tools/knowledge-receipt.d.ts +40 -0
  80. package/dist/tools/test-runner.d.ts +14 -5
  81. package/package.json +1 -1
@@ -13987,6 +13987,13 @@ function defaultBuildTestCommand(profile, framework, files, dir = ".", opts = {}
13987
13987
  const scope = opts.scope ?? "all";
13988
13988
  const coverage = opts.coverage ?? false;
13989
13989
  const bail = opts.bail ?? false;
13990
+ const targets = opts.targets;
13991
+ const nativeTarget = opts.nativeTarget;
13992
+ if (nativeTarget) {
13993
+ if (nativeTarget.framework !== framework)
13994
+ return null;
13995
+ return buildNativeTargetCommand(nativeTarget);
13996
+ }
13990
13997
  switch (framework) {
13991
13998
  case "bun": {
13992
13999
  const args = ["bun", "test"];
@@ -14046,8 +14053,11 @@ function defaultBuildTestCommand(profile, framework, files, dir = ".", opts = {}
14046
14053
  }
14047
14054
  case "cargo": {
14048
14055
  const args = ["cargo", "test"];
14049
- if (scope !== "all" && files.length > 0)
14056
+ if (targets && targets.length > 0) {
14057
+ args.push("--", ...targets);
14058
+ } else if (scope !== "all" && files.length > 0) {
14050
14059
  args.push(...files);
14060
+ }
14051
14061
  return args;
14052
14062
  }
14053
14063
  case "pester": {
@@ -14060,22 +14070,47 @@ function defaultBuildTestCommand(profile, framework, files, dir = ".", opts = {}
14060
14070
  }
14061
14071
  return ["pwsh", "-Command", "Invoke-Pester"];
14062
14072
  }
14063
- case "go-test":
14064
- return ["go", "test", "./..."];
14065
- case "maven":
14066
- return ["mvn", "test"];
14073
+ case "go-test": {
14074
+ const args = ["go", "test"];
14075
+ if (targets && targets.length > 0) {
14076
+ args.push("-run", targets.join("|"));
14077
+ }
14078
+ args.push("./...");
14079
+ return args;
14080
+ }
14081
+ case "maven": {
14082
+ const args = ["mvn", "test"];
14083
+ if (targets && targets.length > 0) {
14084
+ args.push(`-Dtest=${targets.join(",")}`);
14085
+ }
14086
+ return args;
14087
+ }
14067
14088
  case "gradle": {
14068
14089
  const isWindows = process.platform === "win32";
14069
14090
  const hasGradlewBat = fs2.existsSync(path2.join(dir, "gradlew.bat"));
14070
14091
  const hasGradlew = fs2.existsSync(path2.join(dir, "gradlew"));
14092
+ const args = [];
14071
14093
  if (hasGradlewBat && isWindows)
14072
- return ["gradlew.bat", "test"];
14073
- if (hasGradlew)
14074
- return ["./gradlew", "test"];
14075
- return ["gradle", "test"];
14094
+ args.push("gradlew.bat");
14095
+ else if (hasGradlew)
14096
+ args.push("./gradlew");
14097
+ else
14098
+ args.push("gradle");
14099
+ args.push("test");
14100
+ if (targets && targets.length > 0) {
14101
+ for (const target of targets) {
14102
+ args.push("--tests", target);
14103
+ }
14104
+ }
14105
+ return args;
14106
+ }
14107
+ case "dotnet-test": {
14108
+ const args = ["dotnet", "test"];
14109
+ if (targets && targets.length > 0) {
14110
+ args.push("--filter", targets.join("|"));
14111
+ }
14112
+ return args;
14076
14113
  }
14077
- case "dotnet-test":
14078
- return ["dotnet", "test"];
14079
14114
  case "ctest": {
14080
14115
  const buildDirCandidates = [
14081
14116
  "build",
@@ -14085,10 +14120,21 @@ function defaultBuildTestCommand(profile, framework, files, dir = ".", opts = {}
14085
14120
  "out"
14086
14121
  ];
14087
14122
  const actualBuildDir = buildDirCandidates.find((d) => fs2.existsSync(path2.join(dir, d, "CMakeCache.txt"))) ?? "build";
14088
- return ["ctest", "--test-dir", actualBuildDir];
14123
+ const args = ["ctest", "--test-dir", actualBuildDir];
14124
+ if (targets && targets.length > 0) {
14125
+ args.push("-R", targets.join("|"));
14126
+ }
14127
+ return args;
14128
+ }
14129
+ case "swift-test": {
14130
+ const args = ["swift", "test"];
14131
+ if (targets && targets.length > 0) {
14132
+ for (const target of targets) {
14133
+ args.push("--filter", target);
14134
+ }
14135
+ }
14136
+ return args;
14089
14137
  }
14090
- case "swift-test":
14091
- return ["swift", "test"];
14092
14138
  case "dart-test":
14093
14139
  return isCommandAvailable("flutter") ? ["flutter", "test", ...files] : ["dart", "test", ...files];
14094
14140
  case "rspec": {
@@ -14141,6 +14187,23 @@ function defaultBuildTestCommand(profile, framework, files, dir = ".", opts = {}
14141
14187
  }
14142
14188
  }
14143
14189
  }
14190
+ function escapeRegexLiteral(value) {
14191
+ return value.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
14192
+ }
14193
+ function buildNativeTargetCommand(target) {
14194
+ if (target.framework === "ctest") {
14195
+ return [
14196
+ "ctest",
14197
+ "--test-dir",
14198
+ target.path,
14199
+ "-R",
14200
+ `^${escapeRegexLiteral(target.name)}$`
14201
+ ];
14202
+ }
14203
+ const selector = target.name.split("/").map((part) => `^${escapeRegexLiteral(part)}$`).join("/");
14204
+ const packagePath = target.path === "." ? "." : target.path.startsWith("./") ? target.path : `./${target.path.replace(/\\/g, "/")}`;
14205
+ return ["go", "test", "-v", "-run", selector, packagePath];
14206
+ }
14144
14207
  function phpVendorBin(name) {
14145
14208
  return path2.join("vendor", "bin", process.platform === "win32" ? `${name}.bat` : name);
14146
14209
  }
@@ -14294,16 +14357,24 @@ ${stderr}` : stdout || stderr || "";
14294
14357
  break;
14295
14358
  }
14296
14359
  case "ctest": {
14360
+ const disabledCount = [
14361
+ ...output.matchAll(/\*{3}Not Run\s+\(Disabled\)/gi)
14362
+ ].length;
14363
+ skipped = disabledCount;
14297
14364
  const ctestMatch = output.match(/(\d+) tests? failed out of (\d+)/);
14298
14365
  if (ctestMatch) {
14299
14366
  failed = parseInt(ctestMatch[1], 10);
14300
- total = parseInt(ctestMatch[2], 10);
14301
- passed = total - failed;
14367
+ const executedTotal = parseInt(ctestMatch[2], 10);
14368
+ total = executedTotal + disabledCount;
14369
+ passed = executedTotal - failed;
14302
14370
  } else {
14303
14371
  const allPassMatch = output.match(/100% tests passed.*?(\d+) tests?/);
14304
14372
  if (allPassMatch) {
14305
- total = parseInt(allPassMatch[1], 10);
14306
- passed = total;
14373
+ const executedTotal = parseInt(allPassMatch[1], 10);
14374
+ total = executedTotal + disabledCount;
14375
+ passed = executedTotal;
14376
+ } else if (disabledCount > 0) {
14377
+ total = disabledCount;
14307
14378
  }
14308
14379
  }
14309
14380
  break;
@@ -14655,4 +14726,4 @@ function buildPythonBackend() {
14655
14726
  }
14656
14727
  var _internals3 = { extractImports: extractImports2 };
14657
14728
 
14658
- export { tool, LANGUAGE_REGISTRY, getProfileForFile, detectProjectLanguages, isCommandAvailable, tokenizeCommand, defaultSelectTestFramework, defaultBuildTestCommand, defaultParseTestOutput, defaultSelectBuildCommand, defaultTestFilesFor, defaultBackendFor, buildGoBackend, _internals2 as _internals, buildPythonBackend, _internals3 as _internals1 };
14729
+ export { tool, LANGUAGE_REGISTRY, getProfileForFile, detectProjectLanguages, isCommandAvailable, tokenizeCommand, defaultSelectTestFramework, defaultBuildTestCommand, buildNativeTargetCommand, defaultParseTestOutput, defaultSelectBuildCommand, defaultTestFilesFor, defaultBackendFor, buildGoBackend, _internals2 as _internals, buildPythonBackend, _internals3 as _internals1 };
@@ -9,7 +9,7 @@ import {
9
9
  readEvaluationRun,
10
10
  saveEvaluationRun,
11
11
  saveTaskSetSnapshot
12
- } from "./index-t5pytnca.js";
12
+ } from "./index-q4vaar2b.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-2778hhh7.js";
4
+ } from "./index-5ykn39wq.js";
5
5
  import {
6
6
  handleGuardrailLog
7
- } from "./index-4s7xgzbm.js";
7
+ } from "./index-44nf5s90.js";
8
8
  import {
9
9
  COMMAND_REGISTRY,
10
10
  SWARM_COMMAND_TOOL_ALLOWLIST,
@@ -84,58 +84,58 @@ import {
84
84
  handleWriteRetroCommand,
85
85
  normalizeSwarmCommandInput,
86
86
  resolveCommand
87
- } from "./index-nakkgkkt.js";
87
+ } from "./index-dx1mdsrj.js";
88
88
  import"./index-4905hd2m.js";
89
- import"./index-41hkt36g.js";
90
- import"./index-c432knmy.js";
91
- import"./index-1p72dtym.js";
89
+ import"./index-ebwznsfy.js";
90
+ import"./index-f1hsrgw1.js";
91
+ import"./index-39xs96mk.js";
92
92
  import"./index-c8s9a3zh.js";
93
- import"./index-p2ty3eee.js";
94
- import"./index-56rqw2hs.js";
93
+ import"./index-3gfdb0t9.js";
94
+ import"./index-c6m3t5n2.js";
95
95
  import"./index-134d35c1.js";
96
- import"./index-t5pytnca.js";
96
+ import"./index-q4vaar2b.js";
97
97
  import"./index-y8552snf.js";
98
98
  import"./index-9ss2m4rs.js";
99
99
  import"./index-74hpm6sh.js";
100
- import"./index-z3s0a44b.js";
101
- import"./index-z0z9pe7b.js";
102
- import"./index-h01wb18g.js";
103
- import"./index-v2xrer41.js";
104
- import"./index-m9xrdjn0.js";
105
- import"./index-bjqpdr83.js";
100
+ import"./index-hjf8pjd4.js";
101
+ import"./index-2ygp3pnx.js";
102
+ import"./index-mr397tze.js";
103
+ import"./index-xmzmeknp.js";
104
+ import"./index-qskz8j2z.js";
105
+ import"./index-8056f16v.js";
106
106
  import"./index-556ja8an.js";
107
- import"./index-4zxrkk1h.js";
107
+ import"./index-zqshpey0.js";
108
108
  import"./index-zsrtt42s.js";
109
- import"./index-dtqjxfw9.js";
109
+ import"./index-wbf8sv70.js";
110
110
  import"./index-qwm6vdyv.js";
111
- import"./index-tjqzr3jc.js";
112
- import"./index-s1v0wza5.js";
111
+ import"./index-3d13jkzq.js";
112
+ import"./index-nse60anv.js";
113
113
  import"./index-8fwhhayc.js";
114
114
  import"./index-q1exe2b3.js";
115
- import"./index-92n3d5ky.js";
115
+ import"./index-ry609ctr.js";
116
116
  import"./index-k46me75h.js";
117
117
  import"./index-ee3x66a5.js";
118
- import"./index-y9q9f6ms.js";
119
- import"./index-qy1nq52t.js";
118
+ import"./index-8s4vnqts.js";
119
+ import"./index-v250345n.js";
120
120
  import"./index-rtry5xyf.js";
121
- import"./index-fejfzy2j.js";
121
+ import"./index-w9613ace.js";
122
122
  import"./index-ae75rja9.js";
123
- import"./index-vh05t3w5.js";
124
- import"./index-p8kk34am.js";
125
- import"./index-912qz4y0.js";
123
+ import"./index-kq5p3nm3.js";
124
+ import"./index-c2hczjhp.js";
125
+ import"./index-zbj3yrrd.js";
126
126
  import"./index-7g4c7s5r.js";
127
127
  import"./index-ed5ykebp.js";
128
128
  import"./index-4nt52yr9.js";
129
- import"./index-p04qrwck.js";
129
+ import"./index-ysapwztd.js";
130
130
  import"./index-gprxjmm7.js";
131
131
  import"./index-n832052r.js";
132
- import"./index-zd4qhnr7.js";
132
+ import"./index-z8yr1yra.js";
133
133
  import"./index-4rhhvd1a.js";
134
134
  import"./index-zgwm4ryv.js";
135
135
  import {
136
136
  init_schema,
137
137
  stripKnownSwarmPrefix
138
- } from "./index-thp186x0.js";
138
+ } from "./index-pkxt2rg2.js";
139
139
  import {
140
140
  AGENT_TOOL_MAP,
141
141
  ORCHESTRATOR_NAME,
@@ -143,7 +143,7 @@ import {
143
143
  } from "./index-jqsfsqbx.js";
144
144
  import"./index-zjygnfay.js";
145
145
  import"./index-bk5tah7q.js";
146
- import"./index-epvhf50h.js";
146
+ import"./index-9d4gck4e.js";
147
147
  import"./index-bpmtbmy9.js";
148
148
  import"./index-a76rekgs.js";
149
149
 
@@ -2,18 +2,18 @@
2
2
  import {
3
3
  effectiveRetrievalOutcomes,
4
4
  readAuthoritativeKnowledgeCounterRollups
5
- } from "./index-92n3d5ky.js";
5
+ } from "./index-ry609ctr.js";
6
6
  import {
7
7
  ALLOWED_SKILL_PATH_PREFIXES,
8
8
  validateSkillPath
9
- } from "./index-y9q9f6ms.js";
9
+ } from "./index-8s4vnqts.js";
10
10
  import {
11
11
  computeOutcomeSignal,
12
12
  readKnowledge,
13
13
  resolveHiveKnowledgePath,
14
14
  resolveSwarmKnowledgePath,
15
15
  transactKnowledge
16
- } from "./index-fejfzy2j.js";
16
+ } from "./index-w9613ace.js";
17
17
  import {
18
18
  advisoryWarn,
19
19
  init_warning_buffer
@@ -1,7 +1,7 @@
1
1
  // @bun
2
2
  import {
3
3
  atomicWriteFile
4
- } from "./index-p8kk34am.js";
4
+ } from "./index-c2hczjhp.js";
5
5
  import {
6
6
  init_logger,
7
7
  warn
@@ -2,10 +2,10 @@
2
2
  import {
3
3
  readKnowledge,
4
4
  transactKnowledge
5
- } from "./index-fejfzy2j.js";
5
+ } from "./index-w9613ace.js";
6
6
  import {
7
7
  resolveKnowledgeStoreDir
8
- } from "./index-vh05t3w5.js";
8
+ } from "./index-kq5p3nm3.js";
9
9
  import {
10
10
  init_logger,
11
11
  log
@@ -4,7 +4,7 @@ import {
4
4
  } from "./index-k46me75h.js";
5
5
  import {
6
6
  withEvidenceLock
7
- } from "./index-912qz4y0.js";
7
+ } from "./index-zbj3yrrd.js";
8
8
  import {
9
9
  bunWrite
10
10
  } from "./index-4nt52yr9.js";
@@ -21,7 +21,7 @@ var package_default;
21
21
  var init_package = __esm(() => {
22
22
  package_default = {
23
23
  name: "opencode-swarm",
24
- version: "7.140.6",
24
+ version: "7.141.1",
25
25
  description: "Architect-centric agentic swarm plugin for OpenCode - hub-and-spoke orchestration with SME consultation, code generation, and QA review",
26
26
  main: "dist/index.js",
27
27
  types: "dist/index.d.ts",
@@ -9,11 +9,11 @@ import {
9
9
  } from "./index-y8552snf.js";
10
10
  import {
11
11
  atomicWriteFile
12
- } from "./index-p8kk34am.js";
12
+ } from "./index-c2hczjhp.js";
13
13
  import {
14
14
  assertProjectRoot,
15
15
  withEvidenceLock
16
- } from "./index-912qz4y0.js";
16
+ } from "./index-zbj3yrrd.js";
17
17
  import {
18
18
  exports_external,
19
19
  init_zod
@@ -4,7 +4,7 @@ import {
4
4
  } from "./index-k46me75h.js";
5
5
  import {
6
6
  withEvidenceLock
7
- } from "./index-912qz4y0.js";
7
+ } from "./index-zbj3yrrd.js";
8
8
  import {
9
9
  log
10
10
  } from "./index-zgwm4ryv.js";
@@ -7,19 +7,19 @@ import {
7
7
  } from "./index-ae75rja9.js";
8
8
  import {
9
9
  resolveKnowledgeStoreDir
10
- } from "./index-vh05t3w5.js";
10
+ } from "./index-kq5p3nm3.js";
11
11
  import {
12
12
  atomicWriteFile
13
- } from "./index-p8kk34am.js";
13
+ } from "./index-c2hczjhp.js";
14
14
  import {
15
15
  assertProjectRoot
16
- } from "./index-912qz4y0.js";
16
+ } from "./index-zbj3yrrd.js";
17
17
  import {
18
18
  require_proper_lockfile
19
19
  } from "./index-7g4c7s5r.js";
20
20
  import {
21
21
  loadPluginConfigWithMeta
22
- } from "./index-zd4qhnr7.js";
22
+ } from "./index-z8yr1yra.js";
23
23
  import {
24
24
  init_logger,
25
25
  warn
@@ -27,10 +27,10 @@ import {
27
27
  import {
28
28
  KnowledgeConfigSchema,
29
29
  init_schema
30
- } from "./index-thp186x0.js";
30
+ } from "./index-pkxt2rg2.js";
31
31
  import {
32
32
  emit
33
- } from "./index-epvhf50h.js";
33
+ } from "./index-9d4gck4e.js";
34
34
  import {
35
35
  __require,
36
36
  __toESM
@@ -464,6 +464,7 @@ var _internals = {
464
464
  };
465
465
 
466
466
  // src/hooks/knowledge-receipt-observability.ts
467
+ var RECEIPT_SEMANTICS_VERSION = 2;
467
468
  var TRANSITIONS = new Set([
468
469
  "membership_committed",
469
470
  "empty_retrieval_committed",
@@ -527,6 +528,10 @@ function emitKnowledgeReceiptTransition(observation) {
527
528
  reasonCode: observation.reasonCode,
528
529
  schemaVersion: observation.schemaVersion
529
530
  };
531
+ const semanticsVersion = observation.receiptSemantics ?? RECEIPT_SEMANTICS_VERSION;
532
+ if (Number.isSafeInteger(semanticsVersion) && semanticsVersion >= 1) {
533
+ payload.receiptSemantics = semanticsVersion;
534
+ }
530
535
  addIdentifier(payload, "knowledgeTraceId", observation.knowledgeTraceId);
531
536
  addIdentifier(payload, "knowledgeEntryId", observation.knowledgeEntryId);
532
537
  addIdentifier(payload, "sessionId", observation.sessionId);
@@ -544,6 +549,32 @@ function emitKnowledgeReceiptTransition(observation) {
544
549
  var _internals2 = { emit };
545
550
 
546
551
  // src/hooks/knowledge-receipt-ledger.ts
552
+ var RECEIPT_TERMINAL_OUTCOMES = new Set([
553
+ "applied",
554
+ "ignored",
555
+ "contradicted",
556
+ "violated",
557
+ "n_a"
558
+ ]);
559
+ var CANONICAL_RECEIPT_SOURCES = new Set([
560
+ "delegate",
561
+ "reviewer",
562
+ "architect",
563
+ "architect_marker",
564
+ "test_engineer",
565
+ "phase_override",
566
+ "application_gate_staleness_clear",
567
+ "application_gate_denial_limit_clear",
568
+ "manual",
569
+ "migration",
570
+ "unknown"
571
+ ]);
572
+ function normalizeReceiptSource(value) {
573
+ if (typeof value !== "string")
574
+ return "unknown";
575
+ const trimmed = value.trim();
576
+ return CANONICAL_RECEIPT_SOURCES.has(trimmed) ? trimmed : "unknown";
577
+ }
547
578
  var GENESIS_HASH = "GENESIS";
548
579
  var MAX_JOURNAL_RECORDS = 2000;
549
580
  var MAX_AUDIT_TAIL_RECORDS = 256;
@@ -1476,7 +1507,7 @@ async function ensureCutoverLocked(paths, state, graceDays) {
1476
1507
  }
1477
1508
  terminal = {
1478
1509
  outcome: terminalEvent.type,
1479
- source: typeof terminalEvent.source === "string" ? terminalEvent.source : "unknown",
1510
+ source: normalizeReceiptSource(terminalEvent.source),
1480
1511
  reason: typeof terminalEvent.reason === "string" ? terminalEvent.reason : undefined,
1481
1512
  event_id: terminalEvent.event_id,
1482
1513
  committed_at: terminalEvent.timestamp
@@ -1617,7 +1648,7 @@ async function commitApplicationMarkerBatch(directory, input) {
1617
1648
  const eventId = randomUUID2();
1618
1649
  const marker = {
1619
1650
  outcome: item.outcome,
1620
- source: item.source ?? "unknown",
1651
+ source: normalizeReceiptSource(item.source),
1621
1652
  reason: item.reason,
1622
1653
  event_id: eventId,
1623
1654
  committed_at: nowIso()
@@ -2514,7 +2545,7 @@ async function applyKnowledgeVerdictFeedback(directory, options) {
2514
2545
  }
2515
2546
  let bumps = 0;
2516
2547
  if (deltas.length > 0) {
2517
- const { bumpKnowledgeConfidenceBatch } = await import("./knowledge-store-0vy8wbzd.js");
2548
+ const { bumpKnowledgeConfidenceBatch } = await import("./knowledge-store-k5td1vqx.js");
2518
2549
  bumps = await bumpKnowledgeConfidenceBatch(directory, deltas, options?.floorOptions);
2519
2550
  }
2520
2551
  return {
@@ -7,7 +7,7 @@ import {
7
7
  readLinkPointer,
8
8
  resolveKnowledgeStoreDir,
9
9
  resolveLinkDir
10
- } from "./index-vh05t3w5.js";
10
+ } from "./index-kq5p3nm3.js";
11
11
 
12
12
  // src/knowledge/curation-policy.ts
13
13
  import { appendFile, mkdir as mkdir2, readFile as readFile2 } from "fs/promises";
@@ -2,7 +2,7 @@
2
2
  import {
3
3
  _internals,
4
4
  resolveWorktreeIsolationConfig
5
- } from "./index-p04qrwck.js";
5
+ } from "./index-ysapwztd.js";
6
6
  import {
7
7
  ApprovalEvidenceSchema,
8
8
  BaseEvidenceSchema,
@@ -42,7 +42,7 @@ import {
42
42
  loadPluginConfig,
43
43
  loadPluginConfigWithMeta,
44
44
  loadPluginConfigWithMetaAsync
45
- } from "./index-zd4qhnr7.js";
45
+ } from "./index-z8yr1yra.js";
46
46
  import"./index-4rhhvd1a.js";
47
47
  import"./index-zgwm4ryv.js";
48
48
  import {
@@ -66,7 +66,7 @@ import {
66
66
  TurboConfigSchema,
67
67
  WorktreeIsolationConfigSchema,
68
68
  resolveAutoReviewConfig
69
- } from "./index-thp186x0.js";
69
+ } from "./index-pkxt2rg2.js";
70
70
  import {
71
71
  ALL_AGENT_NAMES,
72
72
  ALL_SUBAGENT_NAMES,
@@ -6,10 +6,10 @@ import {
6
6
  } from "./index-ae75rja9.js";
7
7
  import {
8
8
  resolveKnowledgeStoreDir
9
- } from "./index-vh05t3w5.js";
9
+ } from "./index-kq5p3nm3.js";
10
10
  import {
11
11
  atomicWriteFile
12
- } from "./index-p8kk34am.js";
12
+ } from "./index-c2hczjhp.js";
13
13
  import {
14
14
  require_proper_lockfile
15
15
  } from "./index-7g4c7s5r.js";
@@ -709,7 +709,7 @@ async function applyConfidenceFloorAction(directory, touched, options) {
709
709
  const {
710
710
  readAuthoritativeKnowledgeCounterRollups,
711
711
  effectiveRetrievalOutcomes
712
- } = await import("./knowledge-events-3m5jnnv6.js");
712
+ } = await import("./knowledge-events-qvzpqt5b.js");
713
713
  const rollups = await readAuthoritativeKnowledgeCounterRollups(directory);
714
714
  const flagIds = new Set;
715
715
  for (const e of atFloor) {
@@ -776,11 +776,11 @@ async function applyConfidenceFloorAction(directory, touched, options) {
776
776
  });
777
777
  }
778
778
  if (action === "quarantine" && toQuarantine.length > 0) {
779
- const { quarantineEntry } = await import("./knowledge-validator-mvcs8wf6.js");
780
- const { KnowledgeConfigSchema } = await import("./schema-k596bhds.js");
779
+ const { quarantineEntry } = await import("./knowledge-validator-zz26gk5d.js");
780
+ const { KnowledgeConfigSchema } = await import("./schema-6ecb0xhn.js");
781
781
  let config;
782
782
  try {
783
- const { loadPluginConfigWithMeta } = await import("./index-e58e3v0v.js");
783
+ const { loadPluginConfigWithMeta } = await import("./index-vnr917xf.js");
784
784
  const { config: loadedConfig } = loadPluginConfigWithMeta(directory);
785
785
  config = KnowledgeConfigSchema.parse(loadedConfig.knowledge ?? {});
786
786
  } catch {
@@ -86,7 +86,7 @@ var _internals = {
86
86
  symlinkSync: fs.symlinkSync
87
87
  },
88
88
  writeScopeToDisk: async (directory, taskId, files) => {
89
- const { writeScopeToDisk: realWrite } = await import("./scope-persistence-0ny5fn07.js");
89
+ const { writeScopeToDisk: realWrite } = await import("./scope-persistence-yet1hvmq.js");
90
90
  return realWrite(directory, taskId, files);
91
91
  },
92
92
  writeLaneProfileToDisk: async (_worktreePath, _laneIndex, _envOverrides) => {
@@ -36,7 +36,9 @@ TASK: Analyze [purpose]
36
36
  INPUT: [focus areas/paths]
37
37
 
38
38
  ACTIONS:
39
- - Scan structure (tree, ls, glob)
39
+ - FIRST call \`repo_map action="ask"\` with your mission question, and \`action="context_pack"\` (with include_source: true) for your target symbols; use the hits to decide what to read
40
+ - Graph output is orientation \u2014 read the located files before reporting on them
41
+ - Fall back to tree/glob/grep only where the graph has no coverage (\`stale: true\`, missing files, or non-code assets)
40
42
  - Read key files (README, configs, entry points)
41
43
  - Search patterns using the search tool
42
44
 
@@ -2,10 +2,10 @@
2
2
  import {
3
3
  init_loader,
4
4
  loadPluginConfigWithMeta
5
- } from "./index-zd4qhnr7.js";
5
+ } from "./index-z8yr1yra.js";
6
6
  import {
7
7
  init_schema
8
- } from "./index-thp186x0.js";
8
+ } from "./index-pkxt2rg2.js";
9
9
  import {
10
10
  DEFAULT_WORKTREE_ISOLATION_CONFIG,
11
11
  init_constants
@@ -10,7 +10,7 @@ import {
10
10
  PluginConfigSchema,
11
11
  init_schema,
12
12
  resolveExternalSkillsConfig
13
- } from "./index-thp186x0.js";
13
+ } from "./index-pkxt2rg2.js";
14
14
  import {
15
15
  MAX_MERGE_DEPTH,
16
16
  deepMerge,
@@ -8,7 +8,7 @@ import {
8
8
  } from "./index-zgwm4ryv.js";
9
9
  import {
10
10
  emit
11
- } from "./index-epvhf50h.js";
11
+ } from "./index-9d4gck4e.js";
12
12
  import {
13
13
  __toESM
14
14
  } from "./index-a76rekgs.js";
@@ -2,13 +2,13 @@
2
2
  import {
3
3
  assertProjectRoot,
4
4
  withEvidenceLock
5
- } from "./index-912qz4y0.js";
5
+ } from "./index-zbj3yrrd.js";
6
6
  import {
7
7
  ExecutionProfileSchema,
8
8
  PlanSchema,
9
9
  TaskStatusSchema,
10
10
  init_loader
11
- } from "./index-zd4qhnr7.js";
11
+ } from "./index-z8yr1yra.js";
12
12
  import {
13
13
  criticalWarn,
14
14
  init_logger,
@@ -16,7 +16,7 @@ import {
16
16
  } from "./index-zgwm4ryv.js";
17
17
  import {
18
18
  emit
19
- } from "./index-epvhf50h.js";
19
+ } from "./index-9d4gck4e.js";
20
20
 
21
21
  // src/plan/utils.ts
22
22
  import { createHash } from "crypto";