akm-cli 0.10.261012-beta → 0.10.261014-beta

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 (518) hide show
  1. package/CHANGELOG.md +710 -3
  2. package/README.md +15 -0
  3. package/SECURITY.md +11 -10
  4. package/STABILITY.md +47 -51
  5. package/dist/assets/hints/cli-hints-full.md +21 -19
  6. package/dist/assets/hints/cli-hints-short.md +3 -4
  7. package/dist/assets/opencode/akm-plugin.js +177 -0
  8. package/dist/assets/stash-skeleton/README.md +1 -1
  9. package/dist/assets/tasks/core/improve.yml +1 -1
  10. package/dist/assets/tasks/improve/akm-improve-consolidate.yml +1 -1
  11. package/dist/assets/ui/config.js +27 -10
  12. package/dist/assets/workflows/workflow-template.md +2 -2
  13. package/dist/cli/clack.js +3 -1
  14. package/dist/cli/selection.js +33 -0
  15. package/dist/cli/shared.js +14 -1
  16. package/dist/cli/unknown-flags.js +6 -37
  17. package/dist/cli.js +69 -48
  18. package/dist/commands/agent/agent-dispatch.js +17 -25
  19. package/dist/commands/agent/contribute-cli.js +9 -8
  20. package/dist/commands/command/command-cli.js +4 -8
  21. package/dist/commands/command/command-execution.js +25 -39
  22. package/dist/commands/command/execution-source-loader.js +10 -14
  23. package/dist/commands/completions.js +1 -1
  24. package/dist/commands/config-cli.js +14 -5
  25. package/dist/commands/env/child-env.js +12 -14
  26. package/dist/commands/env/env-binding.js +47 -58
  27. package/dist/commands/env/env-cli.js +22 -24
  28. package/dist/commands/env/env.js +10 -58
  29. package/dist/commands/env/secret-cli.js +11 -29
  30. package/dist/commands/env/secret.js +3 -10
  31. package/dist/commands/health/checks.js +10 -849
  32. package/dist/commands/health/connections-and-harnesses-check.js +109 -0
  33. package/dist/commands/health/egress.js +3 -3
  34. package/dist/commands/health/html-report.js +9 -10
  35. package/dist/commands/health/plugin-staleness.js +18 -11
  36. package/dist/commands/health/report-view-model.js +16 -12
  37. package/dist/commands/health/scheduler-binary.js +1 -1
  38. package/dist/commands/health/semantic-search-check.js +85 -0
  39. package/dist/commands/health/type-directory-check.js +0 -3
  40. package/dist/commands/health.js +30 -42
  41. package/dist/commands/improve/consolidate/pair-pass.js +10 -25
  42. package/dist/commands/improve/consolidate.js +10 -15
  43. package/dist/commands/improve/distill.js +5 -17
  44. package/dist/commands/improve/eligibility.js +1 -3
  45. package/dist/commands/improve/execution.js +37 -40
  46. package/dist/commands/improve/extract-cli.js +6 -11
  47. package/dist/commands/improve/extract-prompt.js +2 -2
  48. package/dist/commands/improve/extract.js +67 -97
  49. package/dist/commands/improve/improve-cli.js +22 -128
  50. package/dist/commands/improve/improve-report.js +1 -1
  51. package/dist/commands/improve/improve-strategies.js +25 -108
  52. package/dist/commands/improve/improve.js +10 -14
  53. package/dist/commands/improve/loop-stages.js +3 -0
  54. package/dist/commands/improve/memory/memory-improve.js +1 -1
  55. package/dist/commands/improve/preparation.js +8 -13
  56. package/dist/commands/improve/reflect.js +203 -332
  57. package/dist/commands/improve/retrieval-scope.js +1 -1
  58. package/dist/commands/improve/session-asset.js +3 -2
  59. package/dist/commands/improve/stage.js +87 -115
  60. package/dist/commands/lint/base-linter.js +3 -3
  61. package/dist/commands/lint/env-key-rules.js +7 -6
  62. package/dist/commands/lint/index.js +3 -3
  63. package/dist/commands/models-cli.js +103 -63
  64. package/dist/commands/proposal/drain.js +26 -39
  65. package/dist/commands/proposal/proposal-cli.js +14 -18
  66. package/dist/commands/proposal/propose-cli.js +4 -2
  67. package/dist/commands/proposal/propose.js +37 -64
  68. package/dist/commands/proposal/repository.js +17 -17
  69. package/dist/commands/proposal/validators/proposal-validators.js +3 -6
  70. package/dist/commands/read/curate.js +10 -6
  71. package/dist/commands/read/registry-search.js +2 -48
  72. package/dist/commands/read/search-cli.js +1 -8
  73. package/dist/commands/read/search.js +5 -6
  74. package/dist/commands/read/show.js +6 -29
  75. package/dist/commands/remember.js +25 -40
  76. package/dist/commands/sources/add-cli.js +8 -63
  77. package/dist/commands/sources/bundle-cli.js +8 -9
  78. package/dist/commands/sources/bundle-config-ops.js +2 -2
  79. package/dist/commands/sources/info.js +12 -1
  80. package/dist/commands/sources/init.js +1 -1
  81. package/dist/commands/sources/installed-stashes.js +119 -63
  82. package/dist/commands/sources/migration-help.js +1 -1
  83. package/dist/commands/sources/plugin-upgrade.js +8 -15
  84. package/dist/commands/sources/schema-repair.js +4 -10
  85. package/dist/commands/sources/source-add.js +2 -2
  86. package/dist/commands/sources/source-clone.js +31 -7
  87. package/dist/commands/sources/source-manage.js +4 -4
  88. package/dist/commands/targets.js +175 -0
  89. package/dist/commands/tasks/explain.js +104 -69
  90. package/dist/commands/tasks/tasks-cli.js +9 -11
  91. package/dist/commands/tasks/tasks.js +75 -97
  92. package/dist/commands/ui/api.js +11 -3
  93. package/dist/commands/ui/redact.js +5 -31
  94. package/dist/commands/ui/workspace-actions.js +1 -1
  95. package/dist/commands/workflow/plan.js +48 -9
  96. package/dist/commands/workflow-cli.js +40 -45
  97. package/dist/core/adapter/adapters/agent-skills-adapter.js +10 -11
  98. package/dist/core/adapter/adapters/akm-adapter.js +36 -41
  99. package/dist/core/adapter/adapters/akm-lint.js +10 -12
  100. package/dist/core/adapter/adapters/akm-metadata.js +2 -2
  101. package/dist/core/adapter/adapters/akm-task-adapter.js +8 -9
  102. package/dist/core/adapter/adapters/akm-workflow-adapter.js +5 -5
  103. package/dist/core/adapter/adapters/claude-adapter.js +1 -1
  104. package/dist/core/adapter/adapters/dotenv-adapter.js +7 -6
  105. package/dist/core/adapter/adapters/generic-files-adapter.js +5 -5
  106. package/dist/core/adapter/adapters/index.js +3 -4
  107. package/dist/core/adapter/adapters/llm-wiki-adapter.js +12 -14
  108. package/dist/core/adapter/adapters/okf-adapter.js +8 -10
  109. package/dist/core/adapter/adapters/opencode-adapter.js +1 -1
  110. package/dist/core/adapter/adapters/shared.js +3 -3
  111. package/dist/core/adapter/adapters/tool-dir-shared.js +7 -25
  112. package/dist/core/adapter/adapters/website-snapshot-adapter.js +3 -3
  113. package/dist/core/adapter/detect-adapter.js +1 -1
  114. package/dist/core/adapter/execution-source.js +13 -35
  115. package/dist/core/adapter/registry.js +1 -1
  116. package/dist/core/adapter/validate-context.js +2 -4
  117. package/dist/core/asset/asset-placement.js +1 -1
  118. package/dist/core/asset/asset-ref.js +3 -3
  119. package/dist/core/asset/resolve-ref.js +5 -0
  120. package/dist/core/bundle-rename.js +12 -4
  121. package/dist/core/closest-match.js +37 -0
  122. package/dist/core/common.js +37 -57
  123. package/dist/core/config/config-io.js +26 -18
  124. package/dist/core/config/config-schema.js +19 -106
  125. package/dist/core/config/config-sources.js +3 -3
  126. package/dist/core/config/config-types.js +4 -4
  127. package/dist/core/config/config-walker.js +50 -77
  128. package/dist/core/config/config.js +438 -109
  129. package/dist/core/config/convert-engine-references.js +114 -0
  130. package/dist/core/config/convert-engines-shared.js +40 -0
  131. package/dist/core/config/convert-engines.js +300 -0
  132. package/dist/core/config/convert-models-overlay.js +137 -0
  133. package/dist/core/config/credentials.js +304 -0
  134. package/dist/core/config/engine-semantics.js +3 -3
  135. package/dist/core/config/migrate-keys.js +222 -0
  136. package/dist/core/config/model-aliases.js +37 -0
  137. package/dist/core/config/models-file.js +34 -0
  138. package/dist/core/config/retired-engines.js +53 -0
  139. package/dist/core/config/schema/connections.js +41 -0
  140. package/dist/core/config/schema/embedding.js +2 -2
  141. package/dist/core/config/schema/harnesses.js +41 -0
  142. package/dist/core/config/schema/improve-processes.js +9 -28
  143. package/dist/core/config/schema/improve.js +36 -1
  144. package/dist/core/config/schema/index-config.js +18 -20
  145. package/dist/core/config/schema/primitives.js +42 -17
  146. package/dist/core/config/schema/search.js +6 -11
  147. package/dist/core/config/schema/sources-bundles.js +9 -9
  148. package/dist/core/config/schema/workflow.js +2 -6
  149. package/dist/core/config/unusable-entries.js +66 -0
  150. package/dist/core/content-safety.js +3 -6
  151. package/dist/core/endpoint-url.js +47 -0
  152. package/dist/core/env-secret-ref.js +84 -73
  153. package/dist/core/errors.js +10 -16
  154. package/dist/core/extra-params.js +3 -3
  155. package/dist/core/improve-result.js +8 -9
  156. package/dist/core/json-schema.js +1 -1
  157. package/dist/core/lesson-lint.js +1 -1
  158. package/dist/core/llm-inference.js +80 -0
  159. package/dist/core/parse.js +2 -2
  160. package/dist/core/paths.js +33 -10
  161. package/dist/core/recognition-util.js +8 -10
  162. package/dist/core/redaction.js +94 -55
  163. package/dist/core/ref-token.js +82 -0
  164. package/dist/core/secret-value.js +14 -0
  165. package/dist/core/state/migrations.js +17 -22
  166. package/dist/core/structured.js +2 -68
  167. package/dist/core/subprocess.js +63 -22
  168. package/dist/core/type-presentation.js +10 -14
  169. package/dist/core/write-source.js +20 -4
  170. package/dist/execution/input-contract.js +3 -6
  171. package/dist/execution/notices.js +49 -0
  172. package/dist/execution/resolved-request.js +24 -40
  173. package/dist/execution/source.js +21 -45
  174. package/dist/execution/target-ref.js +2 -2
  175. package/dist/indexer/bundle-identity-guard.js +6 -5
  176. package/dist/indexer/ensure-index.js +1 -1
  177. package/dist/indexer/index-writer-lock.js +1 -1
  178. package/dist/indexer/indexer.js +46 -42
  179. package/dist/indexer/installations.js +12 -22
  180. package/dist/indexer/lookup/adapter-concept-owner.js +40 -14
  181. package/dist/indexer/materialize-embeddings.js +20 -16
  182. package/dist/indexer/passes/memory-inference.js +21 -50
  183. package/dist/indexer/passes/metadata.js +5 -5
  184. package/dist/indexer/scan/doc-to-entry.js +1 -1
  185. package/dist/indexer/scan/drain-dir.js +9 -11
  186. package/dist/indexer/search/db-search.js +9 -7
  187. package/dist/indexer/search/search-source.js +42 -22
  188. package/dist/indexer/usage/usage-events.js +2 -3
  189. package/dist/indexer/walk/index-context.js +2 -1
  190. package/dist/indexer/walk/matchers.js +3 -11
  191. package/dist/indexer/walk/path-resolver.js +13 -68
  192. package/dist/indexer/walk/walker.js +32 -26
  193. package/dist/integrations/agent/akm-read-tools.js +81 -0
  194. package/dist/integrations/agent/config.js +1 -1
  195. package/dist/integrations/agent/detect.js +32 -36
  196. package/dist/integrations/agent/execution.js +130 -428
  197. package/dist/integrations/agent/index.js +1 -1
  198. package/dist/integrations/agent/profiles.js +24 -28
  199. package/dist/integrations/agent/prompts.js +17 -30
  200. package/dist/integrations/agent/request-lowering.js +67 -101
  201. package/dist/integrations/agent/resolution.js +332 -0
  202. package/dist/integrations/agent/runner-dispatch.js +156 -181
  203. package/dist/integrations/agent/runner.js +20 -70
  204. package/dist/integrations/agent/runtime-port.js +4 -0
  205. package/dist/integrations/agent/runtime.js +10 -0
  206. package/dist/integrations/agent/spawn.js +65 -190
  207. package/dist/integrations/harnesses/aider/index.js +19 -39
  208. package/dist/integrations/harnesses/amazonq/index.js +17 -32
  209. package/dist/integrations/harnesses/claude/index.js +59 -28
  210. package/dist/integrations/harnesses/claude/session-log.js +7 -5
  211. package/dist/integrations/harnesses/codex/index.js +19 -31
  212. package/dist/integrations/harnesses/copilot/index.js +17 -35
  213. package/dist/integrations/harnesses/gemini/index.js +18 -34
  214. package/dist/integrations/harnesses/harness.js +36 -0
  215. package/dist/integrations/harnesses/index.js +20 -51
  216. package/dist/integrations/harnesses/opencode/agent-builder.js +132 -100
  217. package/dist/integrations/harnesses/opencode/index.js +11 -33
  218. package/dist/integrations/harnesses/opencode/roots.js +50 -0
  219. package/dist/integrations/harnesses/opencode/runtime/binary.js +206 -0
  220. package/dist/integrations/harnesses/opencode/runtime/command.js +152 -0
  221. package/dist/integrations/harnesses/opencode/runtime/index.js +177 -0
  222. package/dist/integrations/harnesses/opencode/runtime/tar.js +107 -0
  223. package/dist/integrations/harnesses/opencode/session-log-v1.js +15 -7
  224. package/dist/integrations/harnesses/opencode/session-log-v2.js +72 -48
  225. package/dist/integrations/harnesses/opencode/session-log.js +58 -137
  226. package/dist/integrations/harnesses/opencode/version.js +34 -53
  227. package/dist/integrations/harnesses/openhands/index.js +13 -37
  228. package/dist/integrations/harnesses/pi/index.js +21 -32
  229. package/dist/integrations/lockfile.js +1 -1
  230. package/dist/integrations/session-logs/index.js +11 -31
  231. package/dist/llm/client.js +93 -111
  232. package/dist/llm/embedder.js +19 -34
  233. package/dist/llm/embedders/connection.js +31 -0
  234. package/dist/llm/embedders/local-model-files.js +56 -0
  235. package/dist/llm/embedders/local.js +146 -115
  236. package/dist/llm/embedders/remote.js +26 -23
  237. package/dist/llm/embedders/types.js +1 -1
  238. package/dist/llm/index-passes.js +33 -39
  239. package/dist/llm/memory-infer.js +67 -77
  240. package/dist/llm/model-list.js +35 -0
  241. package/dist/llm/rerank-client.js +8 -14
  242. package/dist/llm/structured-call.js +45 -99
  243. package/dist/llm/structured.js +60 -0
  244. package/dist/output/renderers.js +2 -8
  245. package/dist/output/shapes/helpers.js +18 -44
  246. package/dist/output/shapes/passthrough.js +1 -0
  247. package/dist/output/shapes.js +1 -7
  248. package/dist/output/text/command-format.js +41 -39
  249. package/dist/output/text/health-format.js +8 -2
  250. package/dist/output/text/helpers.js +1 -1
  251. package/dist/output/text/migrate.js +12 -0
  252. package/dist/output/text/models.js +3 -2
  253. package/dist/output/text/registry-commands.js +1 -2
  254. package/dist/output/text/show-directives.js +16 -28
  255. package/dist/output/text/show-format.js +0 -2
  256. package/dist/output/text/targets-table.js +70 -0
  257. package/dist/output/text/workflow-format.js +44 -15
  258. package/dist/output/text.js +1 -1
  259. package/dist/registry/providers/skills-sh.js +1 -28
  260. package/dist/registry/providers/static-index.js +1 -71
  261. package/dist/runtime.js +6 -2
  262. package/dist/scripts/akm-migrate-node.js +47095 -44905
  263. package/dist/scripts/akm-migrate.js +46946 -44755
  264. package/dist/setup/detect.js +28 -273
  265. package/dist/setup/endpoint.js +36 -0
  266. package/dist/setup/semantic-assets.js +13 -19
  267. package/dist/setup/setup-flags.js +77 -0
  268. package/dist/setup/setup-plan.js +144 -0
  269. package/dist/setup/setup.js +134 -358
  270. package/dist/setup/steps/connection-shared.js +49 -101
  271. package/dist/setup/steps/connection.js +121 -524
  272. package/dist/setup/steps/embeddings.js +151 -0
  273. package/dist/setup/steps/harnesses.js +118 -0
  274. package/dist/setup/steps/platforms.js +2 -81
  275. package/dist/setup/steps/tasks.js +1 -2
  276. package/dist/setup/steps.js +10 -0
  277. package/dist/setup/summary.js +67 -0
  278. package/dist/sources/freshness.js +16 -21
  279. package/dist/sources/providers/git-provider.js +2 -9
  280. package/dist/sources/providers/provider-utils.js +13 -5
  281. package/dist/sources/resolve.js +12 -16
  282. package/dist/sources/snapshot-fetchers/robots.js +11 -12
  283. package/dist/sources/snapshot-fetchers/secret-seam.js +2 -4
  284. package/dist/sources/snapshot-fetchers/website-ingest.js +8 -15
  285. package/dist/sources/snapshot-fetchers/x.js +1 -1
  286. package/dist/standalone/onnxruntime-library.js +52 -0
  287. package/dist/storage/repositories/improve-ledger-repository.js +1 -1
  288. package/dist/storage/repositories/improve-runs-repository.js +0 -13
  289. package/dist/storage/repositories/index-entries-repository.js +2 -2
  290. package/dist/storage/repositories/proposals-repository.js +2 -2
  291. package/dist/storage/repositories/task-history-repository.js +2 -2
  292. package/dist/storage/repositories/workflow-runs-repository.js +44 -129
  293. package/dist/storage/sqlite-read-snapshot.js +33 -29
  294. package/dist/tasks/embedded.js +1 -1
  295. package/dist/tasks/log-redaction.js +7 -119
  296. package/dist/tasks/prepare/prepare-support.js +8 -7
  297. package/dist/tasks/prepare/prepare.js +8 -9
  298. package/dist/tasks/prepare/script-capture.js +9 -25
  299. package/dist/tasks/run/attempt-lifecycle.js +17 -35
  300. package/dist/tasks/run/load-task.js +54 -27
  301. package/dist/tasks/run/run-command-task.js +15 -10
  302. package/dist/tasks/run/run-native-task.js +8 -21
  303. package/dist/tasks/run/run-task.js +5 -8
  304. package/dist/tasks/run/run-workflow-task.js +14 -21
  305. package/dist/tasks/run/task-history.js +9 -17
  306. package/dist/tasks/run/task-log.js +1 -5
  307. package/dist/tasks/scheduler-invocation.js +13 -18
  308. package/dist/tasks/scheduler-sync.js +0 -1
  309. package/dist/tasks/source/bounded-document.js +31 -117
  310. package/dist/tasks/source/parse-task-source.js +0 -1
  311. package/dist/tasks/source/project-v4.js +5 -3
  312. package/dist/tasks/source/task-input-diagnostics.js +3 -4
  313. package/dist/tasks/source/task-source-v4.js +48 -72
  314. package/dist/tasks/source-v3.js +2 -5
  315. package/dist/tasks/task-run-reserved-flags.js +1 -2
  316. package/dist/workflows/authoring/authoring.js +2 -7
  317. package/dist/workflows/compile.js +1 -15
  318. package/dist/workflows/concurrency-policy.js +4 -4
  319. package/dist/workflows/exec/child-workflow.js +1 -4
  320. package/dist/workflows/exec/dispatch-redaction.js +35 -86
  321. package/dist/workflows/exec/environment.js +13 -77
  322. package/dist/workflows/exec/exec-unit.js +14 -55
  323. package/dist/workflows/exec/frozen-judge.js +26 -28
  324. package/dist/workflows/exec/native-executor.js +126 -71
  325. package/dist/workflows/exec/run-workflow.js +38 -42
  326. package/dist/workflows/exec/step-work.js +13 -17
  327. package/dist/workflows/exec/unit-dispatch.js +7 -21
  328. package/dist/workflows/freeze/environment.js +14 -119
  329. package/dist/workflows/freeze/freeze.js +14 -33
  330. package/dist/workflows/freeze/step-values.js +6 -13
  331. package/dist/workflows/freeze/targets/child-workflow.js +3 -5
  332. package/dist/workflows/freeze/targets/command.js +9 -15
  333. package/dist/workflows/freeze/targets/shell.js +0 -3
  334. package/dist/workflows/freeze/task-bindings.js +0 -1
  335. package/dist/workflows/parser.js +50 -59
  336. package/dist/workflows/plan.js +8 -2
  337. package/dist/workflows/renderer.js +83 -9
  338. package/dist/workflows/resource-limits.js +2 -2
  339. package/dist/workflows/runtime/run-plan.js +38 -23
  340. package/dist/workflows/runtime/runs.js +55 -93
  341. package/dist/workflows/runtime/workflow-asset-loader.js +55 -86
  342. package/dist/workflows/source-files.js +7 -19
  343. package/docs/README.md +10 -16
  344. package/docs/architecture/README.md +2 -37
  345. package/docs/architecture/adapters.md +2 -2
  346. package/docs/architecture/akm-core-principles.md +256 -118
  347. package/docs/architecture/architecture.md +283 -99
  348. package/docs/architecture/improvement.md +8 -2
  349. package/docs/architecture/internals/classification.md +1 -3
  350. package/docs/architecture/internals/fresh-host-rebuild-runbook.md +7 -6
  351. package/docs/architecture/internals/health-advisories.md +35 -74
  352. package/docs/architecture/internals/improve-workflow.md +27 -26
  353. package/docs/architecture/internals/indexing.md +3 -3
  354. package/docs/architecture/internals/storage-locations.md +48 -15
  355. package/docs/architecture/persisted-data-compat.md +10 -6
  356. package/docs/architecture/specs/okf-support.md +9 -11
  357. package/docs/architecture/specs/ref.md +7 -9
  358. package/docs/architecture/testing/testing-workflow.md +172 -52
  359. package/docs/architecture/workflow-engine.md +51 -34
  360. package/docs/guides/README.md +0 -1
  361. package/docs/guides/author-bundles.md +15 -20
  362. package/docs/guides/author-workflows.md +93 -71
  363. package/docs/guides/bundles.md +20 -16
  364. package/docs/guides/discover-and-load.md +1 -1
  365. package/docs/guides/getting-started.md +49 -3
  366. package/docs/guides/improve-the-library.md +10 -4
  367. package/docs/guides/recipes/headless-install.md +11 -16
  368. package/docs/guides/run-workflows.md +29 -20
  369. package/docs/guides/scheduling.md +2 -2
  370. package/docs/guides/use-with-any-agent.md +20 -22
  371. package/docs/integration/bundling-akm.md +19 -9
  372. package/docs/maintainers/README.md +2 -6
  373. package/docs/maintainers/release-checklist.md +73 -126
  374. package/docs/migration/README.md +10 -3
  375. package/docs/migration/release-notes/0.10.0.md +81 -16
  376. package/docs/migration/release-notes/0.6.0.md +1 -1
  377. package/docs/migration/release-notes/0.7.0.md +1 -1
  378. package/docs/migration/release-notes/0.9.0.md +1 -1
  379. package/docs/migration/release-notes/README.md +1 -1
  380. package/docs/migration/v0.9-to-v0.10.md +300 -60
  381. package/docs/migration/v0.9.1-to-v0.9.2.md +6 -5
  382. package/docs/posts/config-v2-lessons-16.md +1 -1
  383. package/docs/posts/llm-mode-reflect-13.md +1 -1
  384. package/docs/posts/release-0.6.0.md +11 -11
  385. package/docs/posts/release-0.8.0.md +4 -4
  386. package/docs/posts/workflows-vaults-09.md +1 -1
  387. package/docs/reference/README.md +1 -1
  388. package/docs/reference/asset-types.md +2 -2
  389. package/docs/reference/cli.md +477 -388
  390. package/docs/reference/configuration.md +569 -550
  391. package/docs/reference/data-and-telemetry.md +9 -6
  392. package/docs/reference/env-and-secrets.md +72 -15
  393. package/docs/reference/refs.md +3 -20
  394. package/docs/reference/registry.md +12 -38
  395. package/docs/reference/supported-formats.md +1 -1
  396. package/docs/reference/tasks.md +22 -11
  397. package/docs/reference/ui-api.md +14 -9
  398. package/docs/reference/workflow-schema.md +199 -154
  399. package/docs/reference/workflows.md +4 -6
  400. package/package.json +9 -11
  401. package/schemas/akm-config.json +1696 -2922
  402. package/schemas/akm-task.json +4 -4
  403. package/schemas/akm-workflow.json +36 -9
  404. package/ROADMAP.md +0 -112
  405. package/dist/assets/models.json +0 -35
  406. package/dist/commands/health/engine-usage.js +0 -45
  407. package/dist/commands/sources/dangerous-env-audit.js +0 -134
  408. package/dist/core/activation-policy.js +0 -67
  409. package/dist/core/config/schema/engines.js +0 -160
  410. package/dist/core/config/schema/execution.js +0 -23
  411. package/dist/core/spawn-env.js +0 -268
  412. package/dist/execution/directory-identity.js +0 -78
  413. package/dist/integrations/agent/builder-shared.js +0 -33
  414. package/dist/integrations/agent/builders.js +0 -43
  415. package/dist/integrations/agent/engine-fallback.js +0 -59
  416. package/dist/integrations/agent/engine-resolution.js +0 -333
  417. package/dist/integrations/agent/model-map.js +0 -475
  418. package/dist/integrations/harnesses/aider/agent-builder.js +0 -107
  419. package/dist/integrations/harnesses/aider/result-extractor.js +0 -53
  420. package/dist/integrations/harnesses/amazonq/agent-builder.js +0 -138
  421. package/dist/integrations/harnesses/amazonq/result-extractor.js +0 -48
  422. package/dist/integrations/harnesses/claude/agent-builder.js +0 -106
  423. package/dist/integrations/harnesses/claude/config-import.js +0 -67
  424. package/dist/integrations/harnesses/claude/result-extractor.js +0 -67
  425. package/dist/integrations/harnesses/codex/agent-builder.js +0 -150
  426. package/dist/integrations/harnesses/codex/result-extractor.js +0 -110
  427. package/dist/integrations/harnesses/copilot/agent-builder.js +0 -117
  428. package/dist/integrations/harnesses/copilot/result-extractor.js +0 -178
  429. package/dist/integrations/harnesses/gemini/agent-builder.js +0 -114
  430. package/dist/integrations/harnesses/gemini/result-extractor.js +0 -149
  431. package/dist/integrations/harnesses/opencode/config-import.js +0 -149
  432. package/dist/integrations/harnesses/opencode/model-config.js +0 -33
  433. package/dist/integrations/harnesses/opencode/model-work-agent.js +0 -115
  434. package/dist/integrations/harnesses/opencode/session-log-types.js +0 -12
  435. package/dist/integrations/harnesses/opencode-sdk/index.js +0 -44
  436. package/dist/integrations/harnesses/opencode-sdk/sdk-runner.js +0 -1052
  437. package/dist/integrations/harnesses/opencode-sdk/v1-adapter.js +0 -199
  438. package/dist/integrations/harnesses/opencode-sdk/v2-adapter.js +0 -254
  439. package/dist/integrations/harnesses/opencode-sdk/wire.js +0 -66
  440. package/dist/integrations/harnesses/openhands/agent-builder.js +0 -120
  441. package/dist/integrations/harnesses/openhands/result-extractor.js +0 -135
  442. package/dist/integrations/harnesses/pi/agent-builder.js +0 -89
  443. package/dist/integrations/harnesses/pi/result-extractor.js +0 -168
  444. package/dist/integrations/harnesses/shared.js +0 -18
  445. package/dist/integrations/harnesses/types.js +0 -55
  446. package/dist/llm/feature-gate.js +0 -115
  447. package/dist/output/shapes/models-list.js +0 -16
  448. package/dist/output/shapes/registry-search.js +0 -10
  449. package/dist/setup/detected-engines.js +0 -136
  450. package/dist/setup/engine-config.js +0 -97
  451. package/dist/setup/harness-config-import.js +0 -47
  452. package/dist/setup/providers.js +0 -14
  453. package/dist/setup/steps/semantic.js +0 -39
  454. package/dist/workflows/authoring/scope-key.js +0 -79
  455. package/dist/workflows/exec/lowering-notices.js +0 -23
  456. package/dist/workflows/source-semantics.js +0 -110
  457. package/docs/architecture/0.10-process-rules.md +0 -832
  458. package/docs/architecture/akm-architecture-decision-history.md +0 -2055
  459. package/docs/architecture/comparisons/claude-code-vs-akm-workflows-full.md +0 -550
  460. package/docs/architecture/decisions/0001-no-interpolation-attached-structured-context.md +0 -72
  461. package/docs/architecture/decisions/0002-unit-reuse-and-input-hash-scope.md +0 -142
  462. package/docs/architecture/decisions/0003-child-env-allowlist-and-provenance.md +0 -189
  463. package/docs/architecture/decisions/0004-task-input-contract-and-flag-coercion.md +0 -97
  464. package/docs/architecture/decisions/0005-task-result-vocabulary-and-legacy-read-mapping.md +0 -108
  465. package/docs/architecture/decisions/0006-task-source-version-routing.md +0 -124
  466. package/docs/architecture/decisions/0007-workflow-composition-bounds.md +0 -83
  467. package/docs/architecture/decisions/0008-task-binding-normalization.md +0 -88
  468. package/docs/architecture/decisions/0009-child-run-publication-column-parity.md +0 -80
  469. package/docs/architecture/decisions/0010-driver-protocol-cut.md +0 -36
  470. package/docs/architecture/decisions/0011-engine-run-loop-invariants.md +0 -125
  471. package/docs/architecture/decisions/README.md +0 -62
  472. package/docs/architecture/internals/functional-contract-patterns.md +0 -340
  473. package/docs/architecture/internals/registry-network-boundary.md +0 -57
  474. package/docs/architecture/internals/search.md +0 -248
  475. package/docs/architecture/reviews/env-secret-access.md +0 -319
  476. package/docs/architecture/runtime-boundary-design.md +0 -153
  477. package/docs/architecture/specs/0.9.0-close-out-plan.md +0 -361
  478. package/docs/architecture/specs/0.9.0-decisions.md +0 -532
  479. package/docs/architecture/specs/0.9.0-docs-code-drift-register.md +0 -745
  480. package/docs/architecture/specs/0.9.0-open-items-register.md +0 -135
  481. package/docs/architecture/specs/0.9.0-public-api-issue-backlog.md +0 -740
  482. package/docs/architecture/specs/0.9.0-release-surface-review.md +0 -636
  483. package/docs/architecture/specs/agent-command-engine-model-design.md +0 -513
  484. package/docs/architecture/specs/akm-0.9.0-bundle-adapter-spec.md +0 -501
  485. package/docs/architecture/specs/akm-0.9.0-ref-grammar-decision.md +0 -291
  486. package/docs/architecture/specs/akm-format-neutral-bundle-workspace-spec.md +0 -2059
  487. package/docs/architecture/specs/di-seams-plan.md +0 -539
  488. package/docs/architecture/specs/driver-protocol-keep-or-cut.md +0 -275
  489. package/docs/architecture/specs/fact-asset-type.md +0 -142
  490. package/docs/architecture/specs/improve-collapse-churn-detector-design.md +0 -634
  491. package/docs/architecture/specs/reviews/task-workflow-unification/README.md +0 -72
  492. package/docs/architecture/specs/reviews/task-workflow-unification/findings-consolidated.md +0 -152
  493. package/docs/architecture/specs/reviews/task-workflow-unification/library-eval-alternatives.md +0 -352
  494. package/docs/architecture/specs/reviews/task-workflow-unification/library-eval-bunqueue.md +0 -300
  495. package/docs/architecture/specs/reviews/task-workflow-unification/library-eval-openworkflow.md +0 -402
  496. package/docs/architecture/specs/reviews/task-workflow-unification/opus-review-1.md +0 -758
  497. package/docs/architecture/specs/reviews/task-workflow-unification/opus-review-2.md +0 -645
  498. package/docs/architecture/specs/reviews/task-workflow-unification/opus-review-3.md +0 -602
  499. package/docs/architecture/specs/reviews/task-workflow-unification/panel-r1-adversarial.md +0 -27
  500. package/docs/architecture/specs/reviews/task-workflow-unification/panel-r1-architecture.md +0 -27
  501. package/docs/architecture/specs/reviews/task-workflow-unification/panel-r1-coverage.md +0 -74
  502. package/docs/architecture/specs/reviews/task-workflow-unification/panel-r1-security.md +0 -15
  503. package/docs/architecture/specs/reviews/task-workflow-unification/panel-r2-adversarial.md +0 -132
  504. package/docs/architecture/specs/reviews/task-workflow-unification/panel-r2-verification.md +0 -147
  505. package/docs/architecture/specs/stash-conventions-code-spec.md +0 -275
  506. package/docs/architecture/specs/stash-organization-conventions.md +0 -377
  507. package/docs/architecture/specs/task-workflow-format-unification.md +0 -721
  508. package/docs/architecture/specs/workflow-engine-buy-vs-build.md +0 -231
  509. package/docs/architecture/specs/workflow-format-unification.md +0 -432
  510. package/docs/architecture/testing/manual-testing-checklist.md +0 -3411
  511. package/docs/architecture/testing/okf-v0.2-conformance-runbook.md +0 -924
  512. package/docs/architecture/testing/task-workflow-manual-tests.md +0 -1720
  513. package/docs/guides/claude-code-vs-akm-workflows.md +0 -29
  514. package/docs/guides/knowledge-management.md +0 -18
  515. package/docs/maintainers/curate-workmap.md +0 -335
  516. package/docs/migration/v0.5-to-v0.6.md +0 -759
  517. package/docs/migration/v0.7-to-v0.8.md +0 -1378
  518. package/docs/plans/0.9.2-agent-command-workflow-plan.md +0 -423
@@ -86,6 +86,11 @@ feedback signals and usage patterns, then generates proposals — it never
86
86
  writes directly to your bundle. By default, generated proposals always queue
87
87
  for review; the underlying autonomy gate and strategy configuration are
88
88
  covered in [Architecture: The Improvement Loop](../architecture/improvement.md).
89
+ Its model calls run on your default connection, else your default harness
90
+ (`--connection`, `--harness` and `--model` choose another for a run; see
91
+ [Configuration](../reference/configuration.md#where-each-process-runs)). With
92
+ neither, `akm improve` skips each process that needs a model, says so, and points
93
+ at `akm setup`.
89
94
 
90
95
  ```sh
91
96
  akm improve # Full bundle pass
@@ -194,10 +199,11 @@ akm proposal accept abc12345 # write it to the bundle
194
199
 
195
200
  ## akm proposal new
196
201
 
197
- `akm proposal new` asks an engine to author a brand-new asset — useful
202
+ `akm proposal new` asks an agent to author a brand-new asset — useful
198
203
  when you want to create something from scratch rather than improving an
199
- existing asset. Any engine kind works (an LLM engine, an agent CLI or
200
- `opencode-sdk`): the engine returns the asset as JSON, which akm validates.
204
+ existing asset. It runs on your default harness, or on akm's own runtime over
205
+ your connection when you have no harness (`--harness` and `--connection` choose
206
+ another): the agent returns the asset as JSON, which akm validates.
201
207
  Output always goes to the proposal queue, never directly to the bundle.
202
208
 
203
209
  ```sh
@@ -240,7 +246,7 @@ autonomy gate that governs the few lanes that can act without one.
240
246
  ## See also
241
247
 
242
248
  - [Discover & Load](discover-and-load.md) — finding and loading assets
243
- - [Knowledge Management](knowledge-management.md) — capturing memories and docs
249
+ - [Capture Knowledge](capture-knowledge.md) — capturing memories and docs
244
250
  - [Agent Integration](use-with-any-agent.md) — wiring feedback into agent workflows
245
251
  - [CLI Reference](../reference/cli.md) — full flag documentation for `feedback`, `log`, `improve`, `proposal`
246
252
  - [Architecture: The Improvement Loop](../architecture/improvement.md) — utility scoring, strategies, autonomy gates, auto-sync, and session extraction
@@ -43,28 +43,23 @@ echo "akm setup complete"
43
43
  Node.js >= 22; a working Bun >= 1.0 is optional and preferred for execution
44
44
  after Node starts the package launcher.
45
45
 
46
- **Setup.** `akm setup --yes` accepts every default with no prompts. To
47
- pre-configure an LLM or agent engine at the same time instead of accepting
48
- defaults, pass `--config` with a JSON object, optionally followed by
49
- `--probe` to verify connectivity:
46
+ **Setup.** `akm setup --yes` takes the detected default for every question:
47
+ each agent program found on `PATH` is enabled and the first is the default. When
48
+ akm can limit that program to reading and searching it takes akm's own model
49
+ calls too; otherwise a local model server setup finds becomes the connection. To give akm an endpoint
50
+ yourself, answer the question with a flag; the key is named by the environment variable that holds
51
+ it and never appears on the command line:
50
52
 
51
53
  ```sh
52
- akm setup --config '{
53
- "engines": {
54
- "default": {
55
- "kind": "llm",
56
- "endpoint": "http://localhost:11434/v1/chat/completions",
57
- "model": "llama3.2"
58
- }
59
- },
60
- "defaults": { "llmEngine": "default" }
61
- }' --probe
54
+ akm setup --yes --endpoint https://api.example.com/v1 --api-key-env EXAMPLE_API_KEY
62
55
  ```
63
56
 
64
- For the full set of accepted top-level `--config` keys and their meaning,
57
+ `--no-probe` keeps the run offline (the endpoint's model list is not fetched), so a
58
+ new connection has no model until `akm models set` names one.
59
+ For the full set of flags, see `akm setup --help`; for the config they write,
65
60
  see [configuration.md](../../reference/configuration.md).
66
61
 
67
- **Semantic search.** Headless setups (`--yes` or `--config`, no wizard
62
+ **Semantic search.** Headless setups (`--yes` or `--from`, no wizard
68
63
  prompts) defer the embedding-model download to the first `akm index` run,
69
64
  unlike the interactive wizard which downloads immediately during `akm
70
65
  setup`. Set the mode explicitly rather than relying on the implicit default:
@@ -12,15 +12,23 @@ see [Scheduling](scheduling.md).
12
12
 
13
13
  ## Start or continue a run
14
14
 
15
- `akm workflow run <run-id|workflows/ref>` starts or continues a persisted run
16
- and executes it until completion, failure, verification rejection,
17
- interruption, or an explicit invocation limit. Run state is scoped to the
18
- current project directory (nearest `.akm/config.json`, git root, bundle root,
19
- or current directory), so the same workflow can run independently in separate
20
- projects.
15
+ `akm workflow run <workflows/ref>` always starts a new persisted run, and
16
+ `akm workflow run <run-id>` continues that exact run. Either way it executes
17
+ until completion, failure, verification rejection, interruption, or an
18
+ explicit invocation limit. A run is identified by its run id and a workflow by
19
+ its ref; the directory you run from never matters, so `akm workflow list` and
20
+ `akm workflow status` show the same runs from anywhere.
21
+
22
+ If other runs of the same ref are still active, a start says so in one
23
+ warning that names their ids and the `akm workflow run <id>` /
24
+ `akm workflow abandon <id>` commands. Starting is never refused.
25
+ `akm workflow resume <id>` is only for a blocked or failed run: it re-activates
26
+ the run so `akm workflow run <id>` can continue it.
27
+ `--new` is a deprecated no-op (a ref always starts a new run), kept through
28
+ 0.10 so existing scripts keep working.
21
29
 
22
30
  Every new run/start compiles source IR v1 and freezes the durable plan v4
23
- family's current executable format (`irVersion: 5`) before publishing the run.
31
+ family's current executable format (`irVersion: 8`) before publishing the run.
24
32
  A workflow ref is a Markdown `.md` source.
25
33
 
26
34
  ```sh
@@ -29,6 +37,9 @@ akm workflow run workflows/review --changed_files a.ts --changed_files b.ts
29
37
  akm workflow run <run-id> --max-retries 2 --timeout 10m
30
38
  ```
31
39
 
40
+ Parameters are accepted on every ref start. They cannot be combined with a run
41
+ id, which already has its parameters.
42
+
32
43
  Parameter flags must come after the target and exactly match declared
33
44
  `params` keys. Values are coerced through each parameter's JSON Schema:
34
45
  repeat an array flag, pass an object or whole array as JSON, and use a bare
@@ -58,7 +69,7 @@ and evidence — for a given run ID or workflow ref.
58
69
  ```sh
59
70
  akm workflow status <run-id>
60
71
  akm workflow status workflows/ship-release
61
- # When given a ref, resolves to the most-recently-updated run in the current scope
72
+ # When given a ref, shows the most recently updated run of that ref
62
73
  ```
63
74
 
64
75
  Use this to inspect where a run is after a context window break, or to verify
@@ -151,12 +162,13 @@ A child run id always works directly, listed or not — `akm workflow status
151
162
  <childRunId>`, `resume`, `abandon`, and `run` all operate on it exactly like
152
163
  any other run.
153
164
 
154
- ## List runs in scope
165
+ ## List runs
155
166
 
156
- `akm workflow list` shows workflow runs in the current scope.
167
+ `akm workflow list` shows every workflow run on this host, most recently
168
+ updated first. `--all-scopes` is a deprecated no-op, kept through 0.10.
157
169
 
158
170
  ```sh
159
- akm workflow list # All runs in this scope (any status)
171
+ akm workflow list # All runs (any status)
160
172
  akm workflow list --active # Only status=active (executable) runs
161
173
  akm workflow list --ref workflows/ship-release # Runs for a specific workflow
162
174
  ```
@@ -190,7 +202,7 @@ completed are skipped, not re-run (see
190
202
  A resume consumes the frozen plan and journaled attempts; it does not re-read
191
203
  configuration or the index, and reads the authored workflow only to warn once
192
204
  when it changed since the run was frozen (the run continues on the frozen
193
- plan; `akm workflow run <ref> --new` picks up the edit). A stored plan this akm
205
+ plan; `akm workflow run <ref>` starts a new run that picks up the edit). A stored plan this akm
194
206
  cannot decode is abandoned with a message naming how to start a new run.
195
207
 
196
208
  ## Abandon a run
@@ -225,11 +237,10 @@ Workflow steps that include shell commands run with **the full filesystem and
225
237
  network access of the user invoking `akm workflow run`** — same as if the user
226
238
  had typed those commands in their shell. There is no sandbox and no separation
227
239
  between trusted and untrusted workflows. An `exec` unit's *environment* is
228
- narrowed to an allowlist by default
229
- ([Workflow Schema](../reference/workflow-schema.md#the-childs-environment-is-an-allowlist)),
230
- which bounds accidental exposure of unrelated credentials — but a command that
231
- runs at all can still read those credentials off disk, so it is a hygiene
232
- boundary, not a containment one. AKM
240
+ yours
241
+ ([Workflow Schema](../reference/workflow-schema.md#the-childs-environment)):
242
+ every variable of the process that ran `akm workflow run` reaches the command,
243
+ credentials included. AKM
233
244
  directly orchestrates workflows as a defined execution surface — it does not
234
245
  blindly execute arbitrary indexed content — but that orchestration still runs
235
246
  the workflow's own declared shell commands with your full access once you
@@ -248,9 +259,7 @@ treat package dependencies**:
248
259
  workflow file first (`akm show workflows/<name>`) before running it.
249
260
  - **Audit before run** for any workflow that touches secrets, deploys to
250
261
  production, or writes outside the project tree. Read the `env:` bindings a
251
- workflow declares, and read its `exec.pass_env` lines.
252
- The durable v4 family (`irVersion: 5`) rejects `inherit_env`. Authors must
253
- use exact named bindings and `pass_env` names.
262
+ workflow declares.
254
263
  - **Pin known-good versions** when adding workflow sources from a registry
255
264
  or git remote (`akm bundle add github:owner/repo#v1.2.3`), and update
256
265
  deliberately rather than via `akm bundle update --all`. A trusted workflow
@@ -61,7 +61,7 @@ different checkout or package. Editing definitions and running ordinary `akm
61
61
  task sync` preserves that captured runtime.
62
62
 
63
63
  A scheduled fire re-reads the guarded current source and creates a fresh
64
- durable-v4-family freeze at executable `irVersion: 5`.
64
+ durable-v4-family freeze at executable `irVersion: 8`.
65
65
  Scheduler sync/validation evidence is not an executable snapshot and is never reused as the later run plan.
66
66
 
67
67
  ## A scheduled `akm improve` covers one bundle
@@ -76,7 +76,7 @@ the command is `akm improve`'s own:
76
76
 
77
77
  ```sh
78
78
  akm task add improve-team --schedule "15 3 * * *" \
79
- --command "akm improve --bundle team --require-engines"
79
+ --command "akm improve --bundle team"
80
80
  ```
81
81
 
82
82
  Leave `--skip-if-locked` off a once-a-night run: if a short-cadence improve task
@@ -31,8 +31,8 @@ akm hints --detail brief >> AGENTS.md
31
31
 
32
32
  The output is stable across patch releases and designed for agents rather
33
33
  than humans: it describes the lookup workflow (`curate` → `show` →
34
- `feedback`) and explains how refs work. It prints a short guide by default;
35
- pass `--full` for the complete one.
34
+ `feedback`) and explains how refs work. It prints the complete guide by default;
35
+ `--detail brief` prints the short one.
36
36
 
37
37
  ## The retrieval loop: curate, show, feedback
38
38
 
@@ -80,9 +80,8 @@ recognized and indexed automatically once added as a source — see
80
80
  which formats are read-only versus writable in the current release.
81
81
  The native directory remains the source of truth: AKM translates recognized
82
82
  assets while reading the bundle and does not synchronize, copy, or write them
83
- back. The approved target execution rules for these translated agents and
84
- commands are documented in
85
- [Agent, Command, Engine, and Model Resolution](../architecture/specs/agent-command-engine-model-design.md).
83
+ back. Execution of these translated agents and commands is described in
84
+ [Architecture: Connections and Harnesses](../architecture/architecture.md#connections-and-harnesses).
86
85
 
87
86
  ## AKM complements, rather than replaces
88
87
 
@@ -98,15 +97,15 @@ than replacing either.
98
97
 
99
98
  - **Tab completion.** `akm completions --install` sets up shell completions
100
99
  for subcommands and flags. See [CLI Reference](../reference/cli.md#completions).
101
- - **Dispatching a bundle agent asset.** `akm agent agents/<name> --engine
102
- <engine> --prompt "..."` runs a bundle `agents/<name>` persona and model
103
- defaults through a named engine — including built-in model aliases like
104
- `sonnet` and `opus` that resolve per platform. The current CLI rejects a
105
- nonempty tool request at its separate authorization boundary; asset metadata
106
- is never authorization by itself. See
107
- [Configuration](../reference/configuration.md#engines) for the alias table
108
- and [Architecture](../architecture/architecture.md) for how dispatch is
109
- built into platform-specific CLI argv per backend.
100
+ - **Dispatching a bundle agent asset.** `akm agent agents/<name> --harness
101
+ <harness> --prompt "..."` runs a bundle `agents/<name>` persona and model
102
+ default on a harness (or on akm's own runtime over a connection, with
103
+ `--connection <name>`), with the aliases `fast`, `balanced` and `reasoning`
104
+ resolved on whichever you select. See
105
+ [Configuration](../reference/configuration.md#aliases) for the aliases and
106
+ [Architecture](../architecture/architecture.md#connections-and-harnesses)
107
+ for how dispatch reaches each harness. The harness runs as you would run it by
108
+ hand ([how](../reference/configuration.md#how-akm-runs-a-harness)).
110
109
  - **Install refs vs. asset refs.** `npm:@scope/pkg` and `github:owner/repo`
111
110
  are install refs, accepted only by `akm bundle add`/`akm clone`, and are a
112
111
  different grammar from the `[bundle//]conceptId` refs `show`/`search` use.
@@ -156,18 +155,17 @@ config to follow prereleases. The exact rules are in the
156
155
  [`akm upgrade` reference](../reference/cli.md#harness-plugins). `akm health`
157
156
  warns when either plugin's bundled `akm-cli` differs from the running CLI.
158
157
 
159
- **Which OpenCode akm drives** is detected, not configured: an `opencode` or
160
- `opencode-sdk` agent engine runs the most recent OpenCode on `PATH` (or its own
161
- `bin`) and uses the adapters for the major that binary reports; OpenCode 1 logs a
162
- warning recommending OpenCode 2 (see
163
- [Configuration](../reference/configuration.md#engines)). It does not change
164
- which plugin you install, and the plugin choice does not change it.
158
+ **Which OpenCode akm runs** does not depend on the plugin: the `opencode`
159
+ harness runs your OpenCode through its CLI (OpenCode 1 and 2), and akm's own
160
+ runtime fetches and runs its own pinned one (see
161
+ [Configuration](../reference/configuration.md#without-a-harness)). Install the plugin for
162
+ the OpenCode you use yourself.
165
163
 
166
164
  ## See also
167
165
 
168
- - [Configuration](../reference/configuration.md#engines) — named agent engines and model aliases
166
+ - [Configuration](../reference/configuration.md#connections) — connections, harnesses and model aliases
169
167
  - [Discover and Load](discover-and-load.md) — the full curate → show retrieval path
170
- - [Knowledge Management](knowledge-management.md) — capturing agent-generated memories
168
+ - [Capture Knowledge](capture-knowledge.md) — capturing agent-generated memories
171
169
  - [Improve the Library](improve-the-library.md) — feeding back usage signals
172
170
  - [CLI Reference](../reference/cli.md) — `completions`, `agent`, and `hints` command documentation
173
171
  - [Concepts](concepts.md) — refs, origins, and the asset type system
@@ -29,12 +29,17 @@ akm migrate apply
29
29
 
30
30
  In order, every run applies (or, under `status`/`--dry-run`, plans):
31
31
 
32
- 1. **config.json in its current shape** (`configFile`): retired and unknown
33
- keys dropped, `configVersion` set. Config loading already does this in
34
- memory; this persists it under a backup. A config older than 0.9.15 (the
35
- legacy `stashDir`/`sources[]`/`installed` layout, an `extraParams` key
36
- that shadows a first-class field) is not converted by 0.10: it blocks
37
- with a message to run `akm migrate apply` under akm 0.9.x first.
32
+ 1. **config.json in its current shape** (`configFile`): unknown keys dropped,
33
+ `configVersion` set, and the `engines` / `defaults` form converted to
34
+ `connections` / `harnesses`. Config loading already does this in memory;
35
+ this persists it under a backup. The API keys a config still holds in any
36
+ form akm no longer reads move to `credentials.json` (`configFile.credentials`
37
+ lists the entry names, never a value), and a leftover `models.json` is folded
38
+ into the `models` of the connections and harnesses it names. A config older
39
+ than 0.9.15 (the legacy `stashDir`/`sources[]`/`installed` layout) is not
40
+ converted by 0.10: it blocks with a message to run `akm migrate apply` under
41
+ akm 0.9.x first. What each retired key becomes is the table in
42
+ [Configuration](../reference/configuration.md#the-engines-form).
38
43
  2. **Pending `state.db` migrations**, historical-destructive ones included
39
44
  (`stateMigrations`). This is the only path (besides `akm upgrade`, which
40
45
  calls the same code) that is allowed to apply a destructive migration to an
@@ -45,7 +50,11 @@ In order, every run applies (or, under `status`/`--dry-run`, plans):
45
50
  task source v4 (`taskFiles`) under one backup directory per run. A file
46
51
  the planner cannot convert unambiguously is reported `blocked` and left
47
52
  alone; the rest still convert.
48
- 4. **Residue sweep**: superseded pre-0.9.0 `.akm` files in the stash and the
53
+ 4. **Asset `engine:` keys** (`assetEngineKeys`): the retired `engine:` key on
54
+ commands, agents, workflows and task sources rewritten to `connection:` or
55
+ `harness:` by what the name is now, under one backup directory per run. A
56
+ bundle akm may not change is skipped.
57
+ 5. **Residue sweep**: superseded pre-0.9.0 `.akm` files in the stash and the
49
58
  transaction-journal, maintenance-barrier, lock-mutex and version-stamp
50
59
  files older releases kept under `$DATA`/`$STATE`/`$CONFIG` (`deadResidue`).
51
60
 
@@ -67,6 +76,7 @@ same step names):
67
76
  "configFile": { "keys": [], "changed": false, "applied": false },
68
77
  "stateMigrations": { "pending": [] },
69
78
  "taskFiles": { "schemaVersion": 1, "changed": 0, "skipped": 0, "blocked": 0, "files": [] },
79
+ "assetEngineKeys": { "schemaVersion": 1, "changed": 0, "skipped": 0, "files": [] },
70
80
  "deadResidue": { "pending": [] }
71
81
  }
72
82
  ```
@@ -104,8 +114,7 @@ same step names):
104
114
  conflict; a real `apply` will clear them.
105
115
  - **`blocked`** — at least one item cannot be applied automatically (a
106
116
  genuine authoring problem, e.g. a task file the migrator can't rewrite
107
- unambiguously, or a config `extraParams` value that conflicts with its
108
- first-class field). `blockers` names each one. `apply` still applies
117
+ unambiguously, or a config that fails validation). `blockers` names each one. `apply` still applies
109
118
  everything it *can*, then reports `blocked` and exits non-zero.
110
119
 
111
120
  A pending `state.db` migration needs no human decision, so it is never
@@ -119,6 +128,7 @@ Key fields:
119
128
  | --- | --- |
120
129
  | `stateMigrations` | `{ pending: string[] }` under `status`/`--dry-run`; `{ applied: string[], safetyCopyPath?: string }` after a real `apply`. `safetyCopyPath` is present only when a historical-destructive migration ran — see below. |
121
130
  | `taskFiles` | `changed`/`skipped`/`blocked` counts and a `files[]` array with each file's `status` and `reason`. |
131
+ | `assetEngineKeys` | `changed`/`skipped` counts and a `files[]` array with each rewritten file's `rewrites` (`at`, `from`, `to`). |
122
132
  | `backupPath` / `applied` | Present after a real apply that rewrote at least one task file: the run's backup directory and how many files it rewrote. |
123
133
  | `deadResidue` | `{ pending: [...] }` under a read-only run, `{ removed: [...] }` / `{ recovered: [...], quarantined: [...], deferred: [...] }` after apply. An untrusted journal (unreadable `journal.json`, or a fence violation) is quarantined to `$DATA/txn-quarantine`; a trusted, fenced journal whose `rollback`/`finalize` throws is deferred, left in place under `$DATA/txn/<rootNs>/`. Neither is thrown, and neither sets `status` to `blocked`. `staleTxns.pending` entries carry `wouldQuarantine: { reason }` when the journal's read-only fence check alone (not a `rollback`/`finalize` run) already shows it would be quarantined by a real apply. |
124
134
 
@@ -8,12 +8,8 @@ actually improve it, and the current state of the `curate` implementation.
8
8
  kind of contributor check (live source, built launcher, packed-package
9
9
  acceptance, global checkout install) and the verification commands to run
10
10
  before pushing.
11
- - [Release Checklist](release-checklist.md) — local release validation, exact
12
- candidate-SHA semantic/Docker/native-scheduler gates, and the evidence links
13
- required before publication.
11
+ - [Release Checklist](release-checklist.md) — the branch model and the steps to
12
+ cut, release and install akm and its plugins.
14
13
  - [akm-eval](https://github.com/itlackey/akm-eval) — the evals and benchmarks
15
14
  that measure whether `akm improve` and retrieval changes are actually
16
15
  working. The old in-repo toolkit is retired: see [eval.md](eval.md).
17
- - [Curate Workmap](curate-workmap.md) — the current `akm curate` contract,
18
- where its implementation diverges from intended behavior, and the
19
- highest-value next fixes.
@@ -1,135 +1,82 @@
1
1
  # Release Checklist
2
2
 
3
- Use this checklist for every release candidate. Local release validation and
4
- scheduled CI are useful inputs, but neither substitutes for a successful gated
5
- run of the exact commit that will be published.
6
-
7
- ## 1. Freeze the candidate
8
-
9
- 1. Finish the version, changelog, migration-note, and release-PR changes. From
10
- 0.10 the version is a monthly release number, `0.10.YYMMNN` (see step 4):
11
- `bun scripts/release-version.ts next` prints the next free one for this
12
- month (UTC). Every release, whatever its stage, takes the next number.
13
- Commit it in `package.json` and cut the CHANGELOG as
14
- `## [0.10.YYMMNN] - YYYY-MM-DD`. A prerelease stage is not committed: it is
15
- chosen when the Release workflow runs, and the release's CHANGELOG section
16
- covers it.
17
- 2. Record `git rev-parse HEAD`. This is the full 40-character release-candidate SHA.
18
- 3. Run `bun run release:check` locally. If Docker is unavailable, run
19
- `./tests/release-check.sh --skip-docker` and rely on the gated Docker job
20
- below for the container matrix.
21
-
22
- Any commit added after this point creates a new candidate and invalidates the
23
- gated evidence collected for the previous SHA.
24
-
25
- ## 2. Collect exact-SHA gated evidence
26
-
27
- GitHub only offers a scheduled or manually dispatched workflow after its file
28
- exists on the default branch. When validating the commit that first introduces
29
- or changes this workflow, create a unique lightweight candidate tag at the
30
- recorded SHA:
3
+ `main` is the stable line (npm `latest`). The next version is developed on a
4
+ release branch, `release/<version>` (npm `next`), which merges to `main` when
5
+ it becomes stable. A fix for stable lands on `main` and is cherry-picked onto
6
+ the release branch when that branch needs it.
7
+
8
+ ## 1. Cut the version
9
+
10
+ On the branch you release from (`main` for stable, the release branch for
11
+ next):
12
+
13
+ 1. Set the version: `npm pkg set version=<version>`. From 0.10,
14
+ `bun scripts/release-version.ts next` prints the next free one (see
15
+ [Versions](#versions)).
16
+ 2. Cut the changelog: add `## [<version>] - <YYYY-MM-DD>` (UTC date) directly
17
+ under `## [Unreleased]`, so the unreleased entries become this release's
18
+ section. CI fails the release commit when the newest section does not name
19
+ the `package.json` version (`tests/workflow-release.test.ts`).
20
+ 3. Add a migration note if the release needs one (see
21
+ [CONTRIBUTING](https://github.com/itlackey/akm/blob/main/.github/CONTRIBUTING.md#shipping-a-release--migration-notes)).
22
+ 4. Commit `release: <version>`, push it to the branch, and let CI run on it.
23
+
24
+ ## 2. Release akm
25
+
26
+ ```sh
27
+ gh workflow run release.yml --ref <branch> -f version=<version> [-f stage=alpha|beta|rc]
28
+ ```
29
+
30
+ The Release workflow, on the pushed commit:
31
+
32
+ 1. runs Gated CI: semantic search with real embeddings, the Docker install
33
+ matrix, and the native schedulers on Linux, macOS and Windows;
34
+ 2. requires CI to have passed on the same commit (it does not run lint, the
35
+ typecheck or the test suites again);
36
+ 3. runs `tests/release-check.sh --skip-docker`: the packaged artifact's bin
37
+ targets and migrator, package acceptance, and the upgrade rehearsal against
38
+ the packed tarball;
39
+ 4. builds the package and standalone binaries, publishes to npm (`latest` for
40
+ a stable version, `next` for a prerelease) and creates the GitHub release.
41
+
42
+ If a job fails on a flake, rerun the failed jobs. If the fix needs a code
43
+ change, commit it and release that commit. npm can take several minutes to show
44
+ a new version: check `npm view akm-cli@<tag> version` before upgrading.
45
+
46
+ ## 3. Release the plugins
31
47
 
32
48
  ```sh
33
- candidate_sha="$(git rev-parse HEAD)"
34
- candidate_short_sha="$(git rev-parse --short=12 HEAD)"
35
- candidate_version="$(node -p 'require("./package.json").version')"
36
- candidate_tag="gated-ci/candidate-${candidate_version}-${candidate_short_sha}"
37
- git tag "$candidate_tag" "$candidate_sha"
38
- git push origin "refs/tags/$candidate_tag"
49
+ gh workflow run release.yml --repo itlackey/akm-plugins --ref <plugins branch> -f akm_version=<published akm version>
39
50
  ```
40
51
 
41
- Verify that the tag target is the exact candidate commit recorded in step 1.
42
- The `gated-ci/candidate-*` trigger runs every gated suite from the workflow in
43
- that tagged commit. The resolver checks that the checkout equals the immutable
44
- event SHA, and the final evidence job records both that SHA and the tag ref.
45
- Never force-move or reuse a candidate tag; a changed commit needs a new tag and
46
- a new run.
47
-
48
- After **Gated CI** exists on the default branch, manual dispatch is an
49
- equivalent exact-SHA path. From the repository's Actions page, choose **Run
50
- workflow** and supply:
51
-
52
- - `candidate_sha`: the full 40-character SHA recorded above, never a branch or
53
- tag name.
54
-
55
- Every suite runs; there is no suite selector.
56
-
57
- The manual request rejects abbreviated SHAs and checks out that immutable
58
- commit for every gate. Wait for all of these stable checks to succeed on either
59
- candidate path:
60
-
61
- - `Gated / Semantic Search`
62
- - `Gated / Docker Install`
63
- - `Gated / Native Scheduler / Linux`
64
- - `Gated / Native Scheduler / macOS`
65
- - `Gated / Native Scheduler / Windows`
66
- - `Gated / Release Candidate Evidence`
67
-
68
- The final evidence job records the requested and resolved SHA, the trigger ref,
69
- each suite's result, and a run link in the workflow summary. A weekly run is
70
- drift detection, not release evidence, because it may cover a different
71
- commit.
72
-
73
- Manual and tagged candidate runs are cache restore-only. Only a successful
74
- scheduled run of the workflow on the repository's default branch may save the
75
- HuggingFace model cache; its key identifies both the embedding model and the
76
- source/lock inputs. This prevents candidate-controlled workflow code from
77
- publishing cache entries while still avoiding repeated model downloads.
78
-
79
- Copy the successful run URL (for example,
80
- `https://github.com/itlackey/akm/actions/runs/<run-id>`) and the exact candidate
81
- SHA into both the release PR and its milestone/parent tracker. Do not publish
82
- from a candidate whose evidence link names a different SHA, whose final
83
- evidence job is skipped, or whose run was re-run after the candidate changed.
84
-
85
- ## 3. Gated CI does not run on pull requests
86
-
87
- Gated CI runs on three triggers only: the weekly schedule, an exact-SHA
88
- `workflow_dispatch`, and a `gated-ci/candidate-*` tag. All three run every
89
- suite.
90
-
91
- There used to be a `Gated / Detect Changed Paths` job that also ran these on
92
- PRs, selecting suites by regex-matching the diff against path lists. It was
93
- deleted in 0.9.8: the patterns had gone stale — they still named test files a
94
- reorganisation had moved or deleted, so it was silently under-selecting suites
95
- and nobody noticed. A build-policing job that quietly stops policing is worse
96
- than no job, because its green status is read as coverage.
97
-
98
- Nothing about release evidence changes. Step 2 was always the requirement, and
99
- it never went through the PR path.
100
-
101
- The candidate-tag trigger is reserved for release evidence and workflow
102
- rollout: it always runs `all`, because a tag-push workflow is the path available
103
- before the workflow file reaches the default branch.
104
-
105
- ## 4. Publish
106
-
107
- After the exact-SHA gated run and local release check are green, trigger the
108
- Release workflow with the version already committed in `package.json`. Keep the
109
- candidate SHA and Gated CI run URL in the release record so the published
110
- artifact's validation can be audited later.
52
+ Plugins match akm's major.minor and keep their own patch numbers; each plugin
53
+ release's notes name the akm version it requires. A plugin-only fix is released
54
+ the same way, with the akm version already published. The Claude marketplace
55
+ reads the plugins repository's `main`, so stable plugin releases come from
56
+ `main`.
57
+
58
+ ## 4. Upgrade
59
+
60
+ `akm upgrade` (stable) or `akm upgrade --next` (prerelease) updates akm and the
61
+ installed plugins.
62
+
63
+ ## Gated CI on its own
64
+
65
+ Gated CI also runs weekly on `main` to catch drift, and on demand from the
66
+ Actions tab on any ref. Only the weekly run saves the Hugging Face model cache.
67
+
68
+ ## Versions
111
69
 
112
70
  0.10 and later use monthly release numbers, `0.10.YYMMNN`: `YY` the UTC year,
113
71
  `MM` the month and `NN` the release in that month (`01` to `99`), two digits
114
- each (see [`STABILITY.md`](../../STABILITY.md)). The first release of 2026-10 is
115
- `0.10.261001`. `bun scripts/release-version.ts next` takes `NN` as one above the
116
- highest release already on npm for this UTC month, with or without a stage
117
- (`npm view akm-cli versions`), so numbering follows what was published, not
118
- what was committed. The retired 8-digit daily builds (`0.10.26101001-alpha` to
119
- `0.10.26101202-alpha`) are not counted.
120
-
121
- The workflow has two inputs:
122
-
123
- - `version`: the version committed in `package.json`, as before. The workflow
124
- rejects a malformed one (`scripts/release-version.ts`, tested in
125
- `tests/release-version.test.ts`): two digits each for `YY`, `MM`, `NN`, a
126
- month 01 to 12, `NN` 01 to 99; the old 8-digit daily form is rejected. For
127
- 0.9 and older it is the `X.Y.Z` as before.
128
- - `stage`: `none` publishes `<version>` to the npm `latest` tag and as a GitHub
129
- release. `alpha`, `beta` or `rc` publishes `<version>-<stage>` to `next` as a
130
- GitHub prerelease (no `.N`: every release has its own number). There is no
131
- promoting one build through stages: the next release, at any stage, commits
132
- the next number (`0.10.261001-alpha`, then `0.10.261002-beta`, then
133
- `0.10.261003`).
134
-
135
- `bun scripts/release-version.ts validate <version>` checks a version by hand.
72
+ each (see [`STABILITY.md`](../../STABILITY.md)). `bun scripts/release-version.ts
73
+ next` takes `NN` as one above the highest release already on npm for this UTC
74
+ month, with or without a stage, and `bun scripts/release-version.ts validate
75
+ <version>` checks one by hand. The retired 8-digit daily builds
76
+ (`0.10.26101001-alpha` to `0.10.26101202-alpha`) are not counted. 0.9 and older
77
+ use `X.Y.Z`.
78
+
79
+ The `stage` input is not committed: `none` (the default) publishes `<version>`
80
+ to `latest`; `alpha`, `beta` or `rc` publishes `<version>-<stage>` to `next` as
81
+ a GitHub prerelease. Every release, at any stage, takes the next number; a
82
+ build is not promoted through stages.
@@ -2,14 +2,21 @@
2
2
 
3
3
  Upgrade guides and per-release migration notes.
4
4
 
5
+ ## Current
6
+
5
7
  - [v0.9 -> v0.10 migration guide](v0.9-to-v0.10.md) -- Upgrade order for a 0.9.15+ install, every removed CLI spelling, strategy, config key and workflow feature with its replacement, changed `akm improve` defaults, the OpenCode plugins, and `0.10.YYMMNN` version numbers
6
8
  - [v0.10.0 release note](release-notes/0.10.0.md) -- Summary of the 0.10 series: the 0.9.15 version floor, `--shape`/`--target`/`help agents` removals, `default` and `consolidate` as the only built-in strategies, OpenCode 2, feedback-scaled ranking, and what is gone
9
+ - [Release notes index](release-notes/README.md) -- The short per-release notes `akm help migrate <version>` prints, with links to every bundled note
10
+
11
+ ## Historical
12
+
13
+ Guides and notes for earlier releases. They describe the commands and formats of
14
+ their own release, which the current CLI may no longer have, and are not checked
15
+ against it.
16
+
7
17
  - [v0.9.1 -> v0.9.2 migration guide](v0.9.1-to-v0.9.2.md) -- Task-v2/task-v3 to task source v4 conversion, the durable-v4-family workflow boundary at executable `irVersion: 5`, and release behavior changes
8
18
  - [v0.9.2 release note](release-notes/0.9.2.md) -- Self-contained terminal upgrade summary shipped for `akm help migrate 0.9.2`
9
19
  - [v0.9.16 release note](release-notes/0.9.16.md) -- Source-bound scheduler grants, local execution authority, and split unsafe overrides
10
20
  - [v0.9.17 release note](release-notes/0.9.17.md) -- Consolidate's retire proposals and index layout 26, replacing the LLM entity graph with declared links, and `akm improve` scoped to what retrieval actually returns
11
21
  - [v0.9.19 release note](release-notes/0.9.19.md) -- `akm improve` scoped to the bundle it writes to (scheduled runs need one `--bundle` run per other bundle), `akm proposal reopen` and the retire-proposal diff, and fewer repeat consolidate promotions
12
22
  - [v0.8 -> current v0.9 migration guide](v0.8-to-v0.9.md) -- Package upgrade with fresh current config/state and explicit task conversion
13
- - [v0.7 -> v0.8 migration guide](v0.7-to-v0.8.md) -- Task schema and 0.8-era changes
14
- - [v0.5 -> v0.6 migration guide](v0.5-to-v0.6.md) -- Terminology cut, registry schema v3, publisher changes
15
- - [Release notes index](release-notes/README.md) -- The short per-release notes `akm help migrate <version>` prints, with links to every bundled note