akm-cli 0.9.16 → 0.9.17-alpha.10

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 (403) hide show
  1. package/CHANGELOG.md +2101 -0
  2. package/STABILITY.md +11 -10
  3. package/dist/akm +124 -193
  4. package/dist/akm-migrate +38 -19
  5. package/dist/assets/hints/cli-hints-full.md +6 -7
  6. package/dist/assets/improve-strategies/catchup.json +0 -3
  7. package/dist/assets/improve-strategies/consolidate.json +0 -1
  8. package/dist/assets/improve-strategies/default.json +1 -2
  9. package/dist/assets/improve-strategies/proactive-maintenance.json +1 -2
  10. package/dist/assets/improve-strategies/quick.json +1 -2
  11. package/dist/assets/improve-strategies/reflect-distill.json +1 -2
  12. package/dist/assets/improve-strategies/thorough.json +0 -3
  13. package/dist/assets/prompts/consolidate-pair.md +20 -0
  14. package/dist/assets/prompts/consolidate-system.md +4 -11
  15. package/dist/assets/prompts/retrieval-relevance-judge.md +6 -0
  16. package/dist/assets/stash-skeleton/facts/conventions/backlinks.md +20 -20
  17. package/dist/assets/stash-skeleton/facts/conventions/domains.md +2 -2
  18. package/dist/assets/templates/html/health.html +3 -5
  19. package/dist/cli/retired-commands.js +1 -1
  20. package/dist/cli/shared.js +6 -2
  21. package/dist/cli/unknown-flags.js +24 -1
  22. package/dist/cli.js +68 -10
  23. package/dist/commands/agent/agent-dispatch.js +1 -1
  24. package/dist/commands/command/command-execution.js +24 -62
  25. package/dist/commands/feedback-cli.js +0 -1
  26. package/dist/commands/health/accept-rate.js +6 -0
  27. package/dist/commands/health/archive-usage.js +92 -0
  28. package/dist/commands/health/checks.js +83 -74
  29. package/dist/commands/health/config-skew.js +38 -0
  30. package/dist/commands/health/data-dir-usage.js +25 -13
  31. package/dist/commands/health/egress.js +54 -0
  32. package/dist/commands/health/html-report.js +1 -42
  33. package/dist/commands/health/improve-metrics.js +136 -591
  34. package/dist/commands/health/md-report.js +1 -6
  35. package/dist/commands/health/plugin-staleness.js +53 -3
  36. package/dist/commands/health/renderers.js +12 -4
  37. package/dist/commands/health/report-view-model.js +14 -120
  38. package/dist/commands/health/types-improve.js +4 -19
  39. package/dist/commands/health/windows.js +64 -74
  40. package/dist/commands/health.js +145 -143
  41. package/dist/commands/improve/consolidate/chunking.js +26 -117
  42. package/dist/commands/improve/consolidate/continuity-check.js +137 -0
  43. package/dist/commands/improve/consolidate/pair-pass.js +791 -0
  44. package/dist/commands/improve/consolidate/sanitize.js +54 -149
  45. package/dist/commands/improve/consolidate.js +589 -1127
  46. package/dist/commands/improve/content-hash.js +16 -24
  47. package/dist/commands/improve/distill/content-repair.js +18 -100
  48. package/dist/commands/improve/distill-guards.js +20 -81
  49. package/dist/commands/improve/distill-promotion-policy.js +23 -243
  50. package/dist/commands/improve/distill.js +608 -1041
  51. package/dist/commands/improve/eligibility.js +126 -390
  52. package/dist/commands/improve/execution.js +8 -10
  53. package/dist/commands/improve/extract-prompt.js +1 -2
  54. package/dist/commands/improve/extract.js +487 -1046
  55. package/dist/commands/improve/feedback-valence.js +0 -25
  56. package/dist/commands/improve/improve-cli.js +75 -169
  57. package/dist/commands/improve/improve-result-file.js +10 -66
  58. package/dist/commands/improve/improve-strategies.js +52 -4
  59. package/dist/commands/improve/improve-usage-report.js +18 -64
  60. package/dist/commands/improve/improve.js +480 -1074
  61. package/dist/commands/improve/ledger.js +119 -0
  62. package/dist/commands/improve/locks.js +2 -8
  63. package/dist/commands/improve/loop-stages.js +415 -1073
  64. package/dist/commands/improve/memory/derived-ref.js +12 -77
  65. package/dist/commands/improve/memory/memory-belief.js +16 -118
  66. package/dist/commands/improve/memory/memory-improve.js +266 -14
  67. package/dist/commands/improve/outcome-loop.js +28 -156
  68. package/dist/commands/improve/planner.js +5 -15
  69. package/dist/commands/improve/preparation.js +779 -2319
  70. package/dist/commands/improve/proactive-maintenance.js +34 -101
  71. package/dist/commands/improve/reflect-noise.js +104 -280
  72. package/dist/commands/improve/reflect.js +642 -1353
  73. package/dist/commands/improve/retrieval-gate.js +127 -0
  74. package/dist/commands/improve/retrieval-scope.js +92 -0
  75. package/dist/commands/improve/salience.js +41 -240
  76. package/dist/commands/improve/session-asset.js +19 -100
  77. package/dist/commands/improve/stage.js +322 -0
  78. package/dist/commands/lint/base-linter.js +37 -15
  79. package/dist/commands/proposal/drain.js +261 -578
  80. package/dist/commands/proposal/proposal-cli.js +19 -20
  81. package/dist/commands/proposal/proposal-types.js +31 -24
  82. package/dist/commands/proposal/proposal.js +38 -8
  83. package/dist/commands/proposal/propose.js +134 -160
  84. package/dist/commands/proposal/repository.js +1097 -1394
  85. package/dist/commands/proposal/validators/proposal-quality-validators.js +71 -174
  86. package/dist/commands/proposal/validators/proposal-validators.js +1 -1
  87. package/dist/commands/proposal/validators/proposals.js +22 -89
  88. package/dist/commands/read/curate.js +105 -462
  89. package/dist/commands/read/knowledge.js +3 -2
  90. package/dist/commands/read/search-cli.js +16 -33
  91. package/dist/commands/read/search.js +17 -23
  92. package/dist/commands/read/show.js +57 -108
  93. package/dist/commands/sources/bundle-cli.js +25 -2
  94. package/dist/commands/sources/bundle-config-ops.js +4 -0
  95. package/dist/commands/sources/dangerous-env-audit.js +1 -2
  96. package/dist/commands/sources/info.js +127 -29
  97. package/dist/commands/sources/installed-stashes.js +197 -746
  98. package/dist/commands/sources/schema-repair.js +98 -129
  99. package/dist/commands/sources/source-add.js +62 -12
  100. package/dist/commands/sources/source-manage.js +9 -2
  101. package/dist/commands/sources/stash-cli.js +24 -4
  102. package/dist/commands/tasks/explain.js +10 -13
  103. package/dist/commands/tasks/tasks-cli.js +12 -13
  104. package/dist/commands/tasks/tasks.js +350 -936
  105. package/dist/commands/tasks/validate.js +26 -24
  106. package/dist/commands/workflow/plan.js +22 -29
  107. package/dist/commands/workflow-cli.js +4 -4
  108. package/dist/core/adapter/adapters/akm-adapter.js +2 -1
  109. package/dist/core/adapter/adapters/akm-lint.js +2 -3
  110. package/dist/core/adapter/adapters/akm-metadata.js +42 -12
  111. package/dist/core/adapter/adapters/akm-task-adapter.js +29 -8
  112. package/dist/core/adapter/adapters/akm-workflow-adapter.js +1 -1
  113. package/dist/core/adapter/execution-source.js +17 -29
  114. package/dist/core/asset/asset-placement.js +4 -13
  115. package/dist/core/asset/frontmatter.js +106 -1
  116. package/dist/core/asset/resolve-ref.js +1 -1
  117. package/dist/core/bundle-id.js +42 -5
  118. package/dist/core/bundle-rename.js +285 -0
  119. package/dist/core/config/config-io.js +1 -2
  120. package/dist/core/config/config-schema.js +9 -34
  121. package/dist/core/config/config-walker.js +1 -1
  122. package/dist/core/config/config.js +184 -111
  123. package/dist/core/config/engine-semantics.js +0 -2
  124. package/dist/core/config/legacy-source-shape-shim.js +38 -9
  125. package/dist/core/config/schema/embedding.js +20 -5
  126. package/dist/core/config/schema/engines.js +5 -0
  127. package/dist/core/config/schema/execution.js +1 -1
  128. package/dist/core/config/schema/experimental.js +1 -1
  129. package/dist/core/config/schema/improve-processes.js +54 -125
  130. package/dist/core/config/schema/improve.js +4 -42
  131. package/dist/core/config/schema/index-config.js +9 -48
  132. package/dist/core/config/schema/scheduler.js +12 -12
  133. package/dist/core/config/schema/search.js +6 -22
  134. package/dist/core/env-secret-ref.js +0 -1
  135. package/dist/core/errors.js +8 -9
  136. package/dist/core/file-change.js +13 -5
  137. package/dist/core/file-lock.js +76 -173
  138. package/dist/core/improve-result.js +35 -7
  139. package/dist/core/improve-types.js +0 -1
  140. package/dist/core/logs-db.js +2 -2
  141. package/dist/core/loopback.js +7 -12
  142. package/dist/core/non-task-input.js +20 -0
  143. package/dist/core/parse.js +13 -16
  144. package/dist/core/paths.js +0 -24
  145. package/dist/core/redaction.js +109 -2
  146. package/dist/core/run-lock.js +2 -5
  147. package/dist/core/spawn-env.js +1 -1
  148. package/dist/core/state/migrations.js +123 -61
  149. package/dist/core/state-db-scope.js +2 -4
  150. package/dist/core/state-db.js +126 -692
  151. package/dist/core/time.js +0 -20
  152. package/dist/core/type-presentation.js +1 -9
  153. package/dist/core/write-source.js +294 -1005
  154. package/dist/execution/input-contract.js +1 -1
  155. package/dist/execution/resolved-request.js +135 -689
  156. package/dist/execution/source.js +63 -257
  157. package/dist/execution/target-ref.js +1 -1
  158. package/dist/indexer/bundle-identity-guard.js +2 -2
  159. package/dist/indexer/db/llm-cache.js +2 -2
  160. package/dist/indexer/ensure-index.js +77 -73
  161. package/dist/indexer/index-rebuild-lock.js +3 -11
  162. package/dist/indexer/index-writer-lock.js +8 -17
  163. package/dist/indexer/index-written-assets.js +141 -154
  164. package/dist/indexer/indexer.js +400 -1124
  165. package/dist/indexer/links/declared-links.js +90 -0
  166. package/dist/indexer/materialize-embeddings.js +60 -397
  167. package/dist/indexer/passes/memory-inference.js +96 -90
  168. package/dist/indexer/passes/metadata.js +132 -219
  169. package/dist/indexer/read-preflight.js +0 -7
  170. package/dist/indexer/scan/doc-to-entry.js +2 -3
  171. package/dist/indexer/scan/drain-dir.js +1 -1
  172. package/dist/indexer/search/db-search.js +190 -590
  173. package/dist/indexer/search/fts-query.js +30 -41
  174. package/dist/indexer/search/ranking.js +28 -154
  175. package/dist/indexer/search/search-attribution.js +12 -32
  176. package/dist/indexer/search/search-fields.js +11 -15
  177. package/dist/indexer/search/search-hit-enrichers.js +54 -85
  178. package/dist/indexer/search/search-source.js +1 -4
  179. package/dist/indexer/usage/usage-events.js +36 -7
  180. package/dist/indexer/walk/walker.js +3 -4
  181. package/dist/integrations/agent/engine-fallback.js +23 -40
  182. package/dist/integrations/agent/engine-resolution.js +93 -183
  183. package/dist/integrations/agent/execution.js +507 -0
  184. package/dist/integrations/agent/model-map.js +28 -156
  185. package/dist/integrations/agent/request-lowering.js +66 -141
  186. package/dist/integrations/agent/runner-dispatch.js +143 -321
  187. package/dist/integrations/agent/runner.js +54 -14
  188. package/dist/integrations/lockfile.js +53 -101
  189. package/dist/llm/client.js +18 -6
  190. package/dist/llm/embedders/deterministic.js +2 -3
  191. package/dist/llm/embedders/profile.js +71 -0
  192. package/dist/llm/embedders/remote.js +11 -17
  193. package/dist/llm/feature-gate.js +0 -8
  194. package/dist/llm/index-passes.js +3 -5
  195. package/dist/llm/memory-infer.js +1 -2
  196. package/dist/llm/structured-call.js +5 -24
  197. package/dist/output/generic-render.js +23 -11
  198. package/dist/output/html-render.js +13 -10
  199. package/dist/output/render-registry.js +3 -32
  200. package/dist/output/shapes/helpers.js +25 -38
  201. package/dist/output/shapes/passthrough.js +1 -9
  202. package/dist/{indexer/graph/graph-types.js → output/text/bundle-rename.js} +4 -1
  203. package/dist/output/text/command-format.js +69 -31
  204. package/dist/output/text/helpers.js +1 -1
  205. package/dist/output/text/migrate.js +5 -14
  206. package/dist/output/text/proposal-format.js +48 -3
  207. package/dist/output/text/show-format.js +13 -17
  208. package/dist/output/text/workflow-format.js +0 -32
  209. package/dist/output/text.js +2 -0
  210. package/dist/registry/factory.js +4 -19
  211. package/dist/registry/network.js +66 -220
  212. package/dist/registry/providers/index.js +0 -2
  213. package/dist/registry/providers/skills-sh.js +3 -14
  214. package/dist/registry/providers/static-index.js +24 -26
  215. package/dist/registry/resolve.js +55 -131
  216. package/dist/scripts/akm-migrate-node.js +42948 -92369
  217. package/dist/scripts/akm-migrate.js +42935 -92354
  218. package/dist/setup/registry-stash-loader.js +4 -13
  219. package/dist/setup/semantic-assets.js +3 -44
  220. package/dist/setup/setup.js +1 -1
  221. package/dist/setup/steps/connection.js +5 -6
  222. package/dist/setup/steps/platforms.js +2 -2
  223. package/dist/setup/steps/tasks.js +25 -15
  224. package/dist/sources/provider-factory.js +17 -18
  225. package/dist/sources/providers/filesystem.js +2 -3
  226. package/dist/sources/providers/git-install.js +7 -1
  227. package/dist/sources/providers/git-provider.js +0 -3
  228. package/dist/sources/providers/git-stash.js +83 -21
  229. package/dist/sources/providers/npm.js +2 -4
  230. package/dist/sources/providers/provider-utils.js +5 -10
  231. package/dist/sources/providers/website.js +0 -2
  232. package/dist/sources/snapshot-fetchers/website-ingest.js +1 -1
  233. package/dist/sources/website-url.js +2 -2
  234. package/dist/storage/database.js +9 -35
  235. package/dist/storage/repositories/improve-ledger-repository.js +209 -0
  236. package/dist/storage/repositories/index-connection.js +39 -72
  237. package/dist/storage/repositories/index-entries-repository.js +131 -129
  238. package/dist/storage/repositories/index-entry-mapper.js +1 -2
  239. package/dist/storage/repositories/index-entry-schema.js +101 -268
  240. package/dist/storage/repositories/index-fts-repository.js +86 -256
  241. package/dist/storage/repositories/index-links-repository.js +143 -0
  242. package/dist/storage/repositories/index-llm-cache-repository.js +7 -9
  243. package/dist/storage/repositories/index-meta-repository.js +6 -4
  244. package/dist/storage/repositories/index-schema.js +257 -325
  245. package/dist/storage/repositories/index-utility-repository.js +8 -29
  246. package/dist/storage/repositories/index-vec-repository.js +133 -414
  247. package/dist/storage/repositories/outcome-repository.js +2 -1
  248. package/dist/storage/repositories/proposals-repository.js +104 -1
  249. package/dist/storage/repositories/registry-index-cache-repository.js +100 -0
  250. package/dist/storage/repositories/salience-repository.js +1 -19
  251. package/dist/storage/repositories/task-history-repository.js +26 -4
  252. package/dist/storage/repositories/workflow-runs-repository.js +53 -244
  253. package/dist/storage/sqlite-migrations.js +136 -0
  254. package/dist/storage/sqlite-pragmas.js +11 -9
  255. package/dist/storage/sqlite-transaction.js +170 -0
  256. package/dist/storage/state-db-integrity.js +130 -0
  257. package/dist/tasks/activation-config.js +134 -62
  258. package/dist/tasks/backends/cron.js +191 -302
  259. package/dist/tasks/backends/exec-utils.js +2 -5
  260. package/dist/tasks/backends/launchd.js +141 -748
  261. package/dist/tasks/backends/schtasks.js +119 -623
  262. package/dist/tasks/prepare/prepare-support.js +5 -15
  263. package/dist/tasks/prepare/prepare.js +0 -2
  264. package/dist/tasks/resolve-akm-bin.js +20 -79
  265. package/dist/tasks/run/attempt-lifecycle.js +0 -1
  266. package/dist/tasks/run/load-task.js +1 -1
  267. package/dist/tasks/scheduler-binding.js +20 -238
  268. package/dist/tasks/scheduler-invocation.js +136 -244
  269. package/dist/tasks/scheduler-lock.js +53 -0
  270. package/dist/tasks/scheduler-sync.js +368 -679
  271. package/dist/tasks/source/parse-task-source.js +55 -9
  272. package/dist/tasks/source/task-source-v3-frozen.js +3 -4
  273. package/dist/tasks/source/task-to-v4.js +464 -88
  274. package/dist/workflows/authoring/authoring.js +3 -12
  275. package/dist/workflows/compile.js +211 -0
  276. package/dist/workflows/concurrency-policy.js +13 -74
  277. package/dist/workflows/exec/child-invocation.js +3 -17
  278. package/dist/workflows/exec/child-workflow.js +32 -141
  279. package/dist/workflows/exec/dispatch-redaction.js +13 -53
  280. package/dist/workflows/exec/environment.js +98 -0
  281. package/dist/workflows/exec/exec-unit.js +33 -140
  282. package/dist/workflows/exec/frozen-judge.js +7 -59
  283. package/dist/workflows/exec/native-executor.js +82 -341
  284. package/dist/workflows/exec/param-secrets.js +29 -47
  285. package/dist/workflows/exec/run-workflow.js +154 -387
  286. package/dist/workflows/exec/scheduler.js +9 -36
  287. package/dist/workflows/exec/step-work.js +127 -430
  288. package/dist/workflows/exec/unit-dispatch.js +11 -63
  289. package/dist/workflows/exec/unit-writer.js +8 -52
  290. package/dist/workflows/exec/worktree.js +39 -273
  291. package/dist/workflows/freeze/child-output-references.js +4 -15
  292. package/dist/workflows/freeze/environment.js +99 -92
  293. package/dist/workflows/freeze/freeze.js +172 -0
  294. package/dist/workflows/freeze/step-values.js +19 -21
  295. package/dist/workflows/freeze/targets/child-workflow.js +23 -92
  296. package/dist/workflows/freeze/targets/command.js +10 -33
  297. package/dist/workflows/freeze/targets/script.js +5 -12
  298. package/dist/workflows/freeze/targets/shell.js +3 -6
  299. package/dist/workflows/freeze/targets/task.js +25 -80
  300. package/dist/workflows/freeze/task-bindings.js +20 -67
  301. package/dist/workflows/{source-ir/github-yaml.js → github-yaml.js} +88 -206
  302. package/dist/workflows/ir/params.js +6 -51
  303. package/dist/workflows/ir/plan-hash.js +2 -34
  304. package/dist/workflows/parser.js +140 -43
  305. package/dist/{commands/improve/consolidate/types.js → workflows/plan.js} +2 -1
  306. package/dist/workflows/renderer.js +36 -69
  307. package/dist/workflows/resource-limits.js +12 -120
  308. package/dist/workflows/runtime/agent-identity.js +8 -40
  309. package/dist/workflows/runtime/run-outputs.js +3 -6
  310. package/dist/workflows/runtime/run-plan.js +316 -0
  311. package/dist/workflows/runtime/runs.js +48 -200
  312. package/dist/workflows/runtime/workflow-asset-loader.js +24 -57
  313. package/dist/workflows/{source-ir/semantics.js → source-semantics.js} +16 -20
  314. package/dist/workflows/validate-summary.js +2 -7
  315. package/docs/integration/bundling-akm.md +49 -42
  316. package/docs/migration/README.md +1 -0
  317. package/docs/migration/release-notes/0.9.17.md +43 -0
  318. package/docs/migration/v0.9.1-to-v0.9.2.md +23 -7
  319. package/docs/reference/cli.md +232 -135
  320. package/docs/reference/configuration.md +71 -57
  321. package/docs/reference/data-and-telemetry.md +20 -21
  322. package/docs/reference/tasks.md +105 -39
  323. package/docs/reference/workflow-schema.md +14 -18
  324. package/docs/reference/workflows.md +6 -9
  325. package/package.json +1 -1
  326. package/schemas/akm-config.json +115 -738
  327. package/schemas/akm-workflow.json +1 -0
  328. package/dist/assets/improve-strategies/graph-refresh.json +0 -15
  329. package/dist/assets/prompts/contradiction-judge.md +0 -33
  330. package/dist/assets/prompts/graph-extract-system.md +0 -1
  331. package/dist/assets/prompts/graph-extract-user-prompt.md +0 -35
  332. package/dist/assets/prompts/metadata-enhance-system.md +0 -1
  333. package/dist/assets/tasks/improve/akm-graph-refresh-weekly.yml +0 -4
  334. package/dist/commands/health/advisories.js +0 -150
  335. package/dist/commands/health/metrics.js +0 -329
  336. package/dist/commands/health/surfaces.js +0 -102
  337. package/dist/commands/improve/anti-collapse.js +0 -83
  338. package/dist/commands/improve/collapse-detector.js +0 -432
  339. package/dist/commands/improve/consolidate/eligibility.js +0 -48
  340. package/dist/commands/improve/consolidate/merge.js +0 -149
  341. package/dist/commands/improve/distill/promote-memory.js +0 -291
  342. package/dist/commands/improve/distill/quality-gate.js +0 -337
  343. package/dist/commands/improve/eval-cases.js +0 -52
  344. package/dist/commands/improve/memory/memory-contradiction-detect.js +0 -291
  345. package/dist/commands/improve/proposal-envelope.js +0 -31
  346. package/dist/commands/improve/run-context.js +0 -123
  347. package/dist/commands/improve/shared.js +0 -31
  348. package/dist/commands/improve/source-identity.js +0 -28
  349. package/dist/commands/improve/triage.js +0 -96
  350. package/dist/commands/proposal/drain-policies.js +0 -151
  351. package/dist/commands/sources/update-transaction.js +0 -220
  352. package/dist/core/action-contributors.js +0 -28
  353. package/dist/core/config/config-version-shim.js +0 -101
  354. package/dist/core/fs-txn.js +0 -405
  355. package/dist/core/lexical-score.js +0 -25
  356. package/dist/core/maintenance-barrier.js +0 -167
  357. package/dist/execution/executable-identity.js +0 -105
  358. package/dist/execution/guarded-source.js +0 -427
  359. package/dist/indexer/db/graph-db.js +0 -444
  360. package/dist/indexer/graph/graph-boost.js +0 -427
  361. package/dist/indexer/graph/graph-dedup.js +0 -95
  362. package/dist/indexer/graph/graph-extraction.js +0 -1108
  363. package/dist/indexer/search/name-match.js +0 -35
  364. package/dist/indexer/search/ranking-contributors.js +0 -515
  365. package/dist/indexer/search/ranking-types.js +0 -4
  366. package/dist/indexer/walk/project-context.js +0 -192
  367. package/dist/integrations/agent/execution-cascade.js +0 -566
  368. package/dist/integrations/agent/execution-definitions.js +0 -202
  369. package/dist/integrations/agent/execution-lowering.js +0 -841
  370. package/dist/integrations/agent/execution-preparation.js +0 -98
  371. package/dist/integrations/agent/inline-execution.js +0 -74
  372. package/dist/llm/graph-extract.js +0 -728
  373. package/dist/llm/metadata-enhance.js +0 -96
  374. package/dist/registry/create-provider-registry.js +0 -29
  375. package/dist/registry/pinned-request-helper.js +0 -247
  376. package/dist/registry/pinned-transport.js +0 -717
  377. package/dist/sources/providers/index.js +0 -14
  378. package/dist/storage/engines/sqlite-migrations.js +0 -271
  379. package/dist/storage/repositories/canaries-repository.js +0 -107
  380. package/dist/storage/repositories/embedding-salvage-repository.js +0 -184
  381. package/dist/storage/repositories/registry-cache.js +0 -113
  382. package/dist/tasks/scheduler-sync-preview.js +0 -52
  383. package/dist/tasks/source/task-to-v3.js +0 -507
  384. package/dist/workflows/freeze/resolve-steps.js +0 -86
  385. package/dist/workflows/freeze/source-freeze.js +0 -64
  386. package/dist/workflows/ir/compile.js +0 -321
  387. package/dist/workflows/ir/environment-v4.js +0 -330
  388. package/dist/workflows/ir/freeze-v4.js +0 -153
  389. package/dist/workflows/ir/schema-v4.js +0 -745
  390. package/dist/workflows/ir/schema.js +0 -354
  391. package/dist/workflows/program/schema.js +0 -77
  392. package/dist/workflows/runtime/checkin.js +0 -57
  393. package/dist/workflows/runtime/plan-classifier.js +0 -196
  394. package/dist/workflows/runtime/unit-checkin.js +0 -45
  395. package/dist/workflows/runtime/unit-phases.js +0 -20
  396. package/dist/workflows/schema.js +0 -4
  397. package/dist/workflows/source-ir/compile.js +0 -200
  398. package/dist/workflows/source-ir/program.js +0 -50
  399. package/dist/workflows/source-ir/result.js +0 -26
  400. package/dist/workflows/source-ir/schema.js +0 -786
  401. package/dist/workflows/source-ir/triggers.js +0 -79
  402. package/dist/workflows/source-ir/uses.js +0 -40
  403. package/dist/workflows/validator.js +0 -60
@@ -4,12 +4,11 @@
4
4
  import catchup from "../../assets/improve-strategies/catchup.json" with { type: "json" };
5
5
  import consolidate from "../../assets/improve-strategies/consolidate.json" with { type: "json" };
6
6
  import defaultStrategy from "../../assets/improve-strategies/default.json" with { type: "json" };
7
- import graphRefresh from "../../assets/improve-strategies/graph-refresh.json" with { type: "json" };
8
7
  import proactiveMaintenance from "../../assets/improve-strategies/proactive-maintenance.json" with { type: "json" };
9
8
  import quick from "../../assets/improve-strategies/quick.json" with { type: "json" };
10
9
  import reflectDistill from "../../assets/improve-strategies/reflect-distill.json" with { type: "json" };
11
10
  import thorough from "../../assets/improve-strategies/thorough.json" with { type: "json" };
12
- import { parseRefInput } from "../../core/asset/resolve-ref.js";
11
+ import { conceptIdFromTypeName, parseRefInput } from "../../core/asset/resolve-ref.js";
13
12
  import { ImproveProfileConfigSchema } from "../../core/config/config-schema.js";
14
13
  import { deepMergeConfig } from "../../core/config/deep-merge.js";
15
14
  import { BUILTIN_IMPROVE_STRATEGY_NAMES, IMPROVE_PROCESS_ENGINE_CAPABILITIES, } from "../../core/config/engine-semantics.js";
@@ -17,6 +16,7 @@ import { ConfigError } from "../../core/errors.js";
17
16
  import { describeLlmCredentialAvailability } from "../../integrations/agent/engine-resolution.js";
18
17
  import { applyAutonomyGate } from "./autonomy-gate.js";
19
18
  import { resolveImproveExecution, resolveImproveLlmExecution } from "./execution.js";
19
+ import { stripBundle } from "./ledger.js";
20
20
  export const DEFAULT_ALLOWED_TYPES = {
21
21
  reflect: ["agent", "command", "knowledge", "lesson", "memory", "skill", "workflow"],
22
22
  distill: ["memory"],
@@ -27,6 +27,10 @@ export function resolveProcessEnabled(processName, strategy) {
27
27
  const processes = strategy.processes;
28
28
  return processes?.[processName]?.enabled === true;
29
29
  }
30
+ /** An `excludeRefPrefixes` entry as a bare conceptId without a trailing `/` (else `startsWith(".../raw//")` never matches). */
31
+ function stripBundlePrefix(value) {
32
+ return stripBundle(value).replace(/\/+$/, "");
33
+ }
30
34
  export function shouldSkipRef(ref, processName, strategy) {
31
35
  const process = strategy.processes?.[processName];
32
36
  if (process?.enabled === false)
@@ -35,8 +39,30 @@ export function shouldSkipRef(ref, processName, strategy) {
35
39
  const allowed = process?.allowedTypes ?? DEFAULT_ALLOWED_TYPES[processName];
36
40
  if (!allowed.includes(parsed.type))
37
41
  return { skip: true, reason: "type-filter" };
42
+ // R12: reflect only — raw wiki-ingest snapshots are type `knowledge`, so
43
+ // allowedTypes alone can't exclude them (distill/consolidate are memory-only).
44
+ if (processName === "reflect") {
45
+ const excludePrefixes = strategy.processes?.reflect?.excludeRefPrefixes;
46
+ if (excludePrefixes && excludePrefixes.length > 0) {
47
+ const conceptId = conceptIdFromTypeName(parsed.type, parsed.name);
48
+ const excluded = excludePrefixes.some((prefix) => {
49
+ const stripped = stripBundlePrefix(prefix);
50
+ return conceptId === stripped || conceptId.startsWith(`${stripped}/`);
51
+ });
52
+ if (excluded)
53
+ return { skip: true, reason: "exclude-filter" };
54
+ }
55
+ }
38
56
  return { skip: false, reason: "" };
39
57
  }
58
+ const REF_SCOPED_PROCESSES = new Set(["reflect", "distill", "consolidate"]);
59
+ /** How many refs a ref-scoped process would act on (`undefined` for any other process). */
60
+ export function eligibleRefCount(refs, process, strategy) {
61
+ if (!REF_SCOPED_PROCESSES.has(process))
62
+ return undefined;
63
+ const name = process;
64
+ return refs.filter((entry) => !shouldSkipRef(entry.ref, name, strategy).skip).length;
65
+ }
40
66
  export function isStrategyFilteredForAllPasses(ref, strategy) {
41
67
  return shouldSkipRef(ref, "reflect", strategy).skip && shouldSkipRef(ref, "distill", strategy).skip;
42
68
  }
@@ -44,7 +70,6 @@ const BUILTIN_STRATEGIES = {
44
70
  default: defaultStrategy,
45
71
  quick,
46
72
  thorough,
47
- "graph-refresh": graphRefresh,
48
73
  consolidate,
49
74
  catchup,
50
75
  "reflect-distill": reflectDistill,
@@ -56,6 +81,29 @@ if (BUILTIN_IMPROVE_STRATEGY_NAMES.some((name) => !(name in BUILTIN_STRATEGIES))
56
81
  export function resolveImproveStrategy(name, config) {
57
82
  const selectedName = name ?? config.defaults?.improveStrategy ?? "default";
58
83
  const userStrategies = config.improve?.strategies ?? {};
84
+ // graph-refresh named a specific, common retirement — refuse it
85
+ // unconditionally, even when `improve.strategies["graph-refresh"]` still
86
+ // has an override block from when it customized the (now-deleted) built-in
87
+ // strategy of the same name. That override is a partial patch (e.g. just
88
+ // `processes.graphExtraction.mode`), not a full strategy definition —
89
+ // falling through to the generic "resolve as a user strategy" path below
90
+ // would silently merge it onto `default` and run a full, unplanned improve
91
+ // pass instead of refusing. `akm migrate apply` drops the leftover block
92
+ // (src/core/config/config.ts, normalizeConfigFile) since it can never
93
+ // apply again.
94
+ if (selectedName === "graph-refresh") {
95
+ const hasLeftoverOverride = Boolean(userStrategies["graph-refresh"]);
96
+ throw new ConfigError(`Improve strategy "graph-refresh" was retired in 0.9.17-alpha.9 along with the LLM entity-graph extraction it ran.` +
97
+ (hasLeftoverOverride
98
+ ? ' Your config still has a leftover `improve.strategies["graph-refresh"]` override for it — `akm migrate apply` removes it.'
99
+ : ""), "UNKNOWN_IMPROVE_STRATEGY",
100
+ // Override CONFIG_HINTS.UNKNOWN_IMPROVE_STRATEGY (src/core/errors.ts):
101
+ // its "listed strategy names" phrase does not apply here (this message
102
+ // names no strategies), and its "define it under improve.strategies"
103
+ // suggestion is actively wrong — that is exactly the leftover-override
104
+ // shape this refusal exists to reject, not a way around it.
105
+ "Choose a different strategy. `graph-refresh` cannot be redefined under `improve.strategies` — it always refuses.");
106
+ }
59
107
  if (!(selectedName in BUILTIN_STRATEGIES) && !userStrategies[selectedName]) {
60
108
  const valid = [...new Set([...Object.keys(BUILTIN_STRATEGIES), ...Object.keys(userStrategies)])].sort();
61
109
  throw new ConfigError(`Improve strategy "${selectedName}" not found. Valid strategies: ${valid.join(", ")}.`, "UNKNOWN_IMPROVE_STRATEGY");
@@ -118,7 +166,7 @@ export function projectResolvedProcessRouting(plan) {
118
166
  }
119
167
  return rows;
120
168
  }
121
- function cloneAndFreeze(value) {
169
+ export function cloneAndFreeze(value) {
122
170
  const clone = structuredClone(value);
123
171
  const freeze = (item) => {
124
172
  if (typeof item !== "object" || item === null || Object.isFrozen(item))
@@ -2,32 +2,22 @@
2
2
  // License, v. 2.0. If a copy of the MPL was not distributed with this
3
3
  // file, You can obtain one at https://mozilla.org/MPL/2.0/.
4
4
  /**
5
- * #944 — per-run LLM usage reporting: fold the process x engine x model
6
- * cross-tab (`summarizeLlmUsageCrossTab`, `health/llm-usage.ts`) together with
7
- * the resolved process routing table (`projectResolvedProcessRouting`, #947)
8
- * into the `usageReport` field `finalizeImproveResult` persists, and render
9
- * both halves as one fixed-width table shared by the end-of-run stderr
10
- * summary (`improve-cli.ts`) and `akm improve report`'s text output
11
- * (`src/output/text/improve-report.ts`).
5
+ * The per-run LLM usage report (#944): the process × engine × model cross-tab
6
+ * plus the enabled processes that made no call and why, rendered as one table
7
+ * for the end-of-run stderr summary and `akm improve report`.
12
8
  */
13
9
  import { IMPROVE_PROCESS_ENGINE_CAPABILITIES } from "../../core/config/engine-semantics.js";
14
- import { projectResolvedProcessRouting, shouldSkipRef, } from "./improve-strategies.js";
10
+ import { eligibleRefCount, projectResolvedProcessRouting, } from "./improve-strategies.js";
15
11
  /**
16
- * The processes this report covers — only the ones {@link IMPROVE_PROCESS_ENGINE_CAPABILITIES}
17
- * marks `"llm"`. `triage` ("runner" kind — its LLM cost, if any, is
18
- * attributed to the separate `"triage.judgment"` pseudo-row, itself excluded
19
- * below) and `proactiveMaintenance` (no engine at all) never make an
20
- * attributable LLM call, so listing them as "zero calls" would always be a
21
- * false positive, not a real finding.
12
+ * Only processes that call an LLM themselves: triage (a runner, attributed to
13
+ * its judgment engine) and proactive maintenance (no engine) would always read
14
+ * as "zero calls".
22
15
  */
23
16
  const LLM_BACKED_PROCESSES = new Set(Object.keys(IMPROVE_PROCESS_ENGINE_CAPABILITIES).filter((name) => IMPROVE_PROCESS_ENGINE_CAPABILITIES[name] === "llm"));
24
- /** Ref-scoped processes `shouldSkipRef` understands — the only ones an eligible-ref count is meaningful for. */
25
- const REF_SCOPED_PROCESSES = new Set(["reflect", "distill", "consolidate"]);
26
- /** The autonomy lane (if any) gating each LLM-backed process, per `autonomy-gate.ts`'s `AUTONOMY_LANES`. */
17
+ /** The autonomy lane gating each LLM-backed process, if any. */
27
18
  const AUTONOMY_LANE_BY_PROCESS = {
28
19
  memoryInference: "memoryInference",
29
20
  };
30
- /** `{reason -> count}` for the dominant-reason lookup in {@link deriveNoCallReason}. */
31
21
  function dominantReason(counts) {
32
22
  let best;
33
23
  let bestCount = 0;
@@ -40,23 +30,11 @@ function dominantReason(counts) {
40
30
  return best;
41
31
  }
42
32
  /**
43
- * The single decision point for why an LLM-backed process made zero LLM
44
- * calls this run — every case `buildImproveUsageReport` needs to report,
45
- * decided in one place instead of split between this function and its
46
- * caller. Priority order: `"engine_unavailable"` (the row's engine or
47
- * credential could not be resolved) beats everything else, including a
48
- * process that also happens to be autonomy-gated; then, for a disabled row
49
- * that IS resolvable, `"autonomy_gated"` when its lane was gated, else
50
- * `undefined` (a `false`-in-config process never reached the routing table
51
- * in the first place, so a disabled-and-not-gated row has no other
52
- * explanation to report); for an enabled row, `"strategy_filtered_all_passes"`
53
- * when every ref got filtered out, then the process's own dominant skip
54
- * reason, else the `"no_signal"` fallback.
55
- *
56
- * Reuses the SAME reason strings already emitted elsewhere
57
- * (`improve_skipped` events, reflect's `AkmReflectFailure.reason`, distill's
58
- * `distillSkipped.byReason` keys) rather than inventing a translation layer —
59
- * per the brief, never a fabricated category like `"limit_reached"`.
33
+ * Why an LLM-backed process made no call, in priority order: its engine is
34
+ * unavailable; disabled — `autonomy_gated` when its lane was gated, else
35
+ * nothing to report; every ref strategy-filtered; its dominant skip reason;
36
+ * else `no_signal`. The reasons are the ones the events and results already
37
+ * use.
60
38
  */
61
39
  export function deriveNoCallReason(args) {
62
40
  const { row } = args;
@@ -73,7 +51,7 @@ export function deriveNoCallReason(args) {
73
51
  return dominant;
74
52
  return "no_signal";
75
53
  }
76
- /** Reflect's per-ref skip reason, read off `AkmReflectFailure.reason` for both cooldown and skipped actions. */
54
+ /** Reflect's skip reasons, from its skipped (and older cooldown) actions. */
77
55
  function countReflectSkipReasons(actions) {
78
56
  const counts = {};
79
57
  for (const action of actions) {
@@ -85,23 +63,9 @@ function countReflectSkipReasons(actions) {
85
63
  }
86
64
  return counts;
87
65
  }
88
- /**
89
- * Assemble this run's `usageReport` (#944): the process x engine x model
90
- * cross-tab plus which enabled processes made zero calls and why. Pure — no
91
- * I/O; the caller (`finalizeImproveResult`) supplies the cross-tab (already
92
- * computed from this run's `llm_usage` events) and every other input from
93
- * data it already has in scope.
94
- *
95
- * Returns `undefined` when both halves would be empty (e.g. a run whose
96
- * active strategy enables no LLM-backed process), matching the envelope's
97
- * existing convention of omitting empty optional sections.
98
- */
66
+ /** This run's `usageReport`, or `undefined` when both halves are empty. */
99
67
  export function buildImproveUsageReport(args) {
100
- // Only the LLM-backed processes (see LLM_BACKED_PROCESSES) — this also
101
- // drops the "triage.judgment" pseudo-row (#947): judgment dispatch does
102
- // not route through `withLlmStage`, so its calls (if any) are never
103
- // attributable to a "triage.judgment" process in the cross-tab, and
104
- // reporting it here would always read as a false "zero calls".
68
+ // The "triage.judgment" row is dropped too: its calls are never attributed to it (#947).
105
69
  const routing = projectResolvedProcessRouting(args.resolvedPlan).filter((row) => row.process !== "triage.judgment" && LLM_BACKED_PROCESSES.has(row.process));
106
70
  const calledProcesses = new Set(args.byProcessEngineModel.filter((row) => row.calls > 0).map((row) => row.process));
107
71
  const reflectSkipCounts = countReflectSkipReasons(args.persistedActions);
@@ -109,9 +73,7 @@ export function buildImproveUsageReport(args) {
109
73
  for (const row of routing) {
110
74
  if (calledProcesses.has(row.process))
111
75
  continue;
112
- const eligibleRefs = REF_SCOPED_PROCESSES.has(row.process)
113
- ? args.loopRefs.filter((entry) => !shouldSkipRef(entry.ref, row.process, args.resolvedPlan.strategy.config).skip).length
114
- : undefined;
76
+ const eligibleRefs = eligibleRefCount(args.loopRefs, row.process, args.resolvedPlan.strategy.config);
115
77
  const reason = deriveNoCallReason({
116
78
  row,
117
79
  autonomyGated: args.resolvedPlan.autonomyGated,
@@ -131,7 +93,6 @@ export function buildImproveUsageReport(args) {
131
93
  return undefined;
132
94
  return { byProcessEngineModel: args.byProcessEngineModel, noCalls };
133
95
  }
134
- // ── Shared fixed-width text rendering ────────────────────────────────────────
135
96
  function renderFixedWidthTable(headers, rows) {
136
97
  const widths = headers.map((header, index) => Math.max(header.length, ...rows.map((row) => row[index]?.length ?? 0)));
137
98
  const renderRow = (cells) => cells
@@ -140,14 +101,7 @@ function renderFixedWidthTable(headers, rows) {
140
101
  .trimEnd();
141
102
  return [renderRow(headers), ...rows.map(renderRow)];
142
103
  }
143
- /**
144
- * Render a `usageReport` as fixed-width plain text — the ONE formatter shared
145
- * by the end-of-run `[improve] ...` stderr table (`improve-cli.ts`) and `akm
146
- * improve report`'s `--format text` output
147
- * (`src/output/text/improve-report.ts`), per the brief. `notes` surfaces
148
- * degraded-precision caveats (e.g. a pre-0.9.15 run recomputed from raw
149
- * events, per `improve-report.ts`).
150
- */
104
+ /** The usage report as a fixed-width table; `notes` carry precision caveats (e.g. an older run recomputed from events). */
151
105
  export function formatUsageReportTable(usageReport, notes) {
152
106
  const lines = ["[improve] usage report (process x engine x model):"];
153
107
  if (usageReport.byProcessEngineModel.length === 0) {