akm-cli 0.10.261013-beta → 0.10.261015-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 (479) hide show
  1. package/CHANGELOG.md +539 -3
  2. package/README.md +14 -0
  3. package/SECURITY.md +12 -11
  4. package/STABILITY.md +45 -49
  5. package/dist/assets/hints/cli-hints-full.md +15 -12
  6. package/dist/assets/opencode/akm-plugin.js +177 -0
  7. package/dist/assets/stash-skeleton/README.md +1 -1
  8. package/dist/assets/tasks/core/improve.yml +1 -1
  9. package/dist/assets/tasks/improve/akm-improve-consolidate.yml +1 -1
  10. package/dist/assets/ui/config.js +27 -10
  11. package/dist/assets/workflows/workflow-template.md +2 -2
  12. package/dist/cli/clack.js +3 -1
  13. package/dist/cli/selection.js +33 -0
  14. package/dist/cli/shared.js +14 -1
  15. package/dist/cli/unknown-flags.js +6 -37
  16. package/dist/cli.js +69 -48
  17. package/dist/commands/agent/agent-dispatch.js +17 -25
  18. package/dist/commands/agent/contribute-cli.js +9 -8
  19. package/dist/commands/command/command-cli.js +4 -8
  20. package/dist/commands/command/command-execution.js +25 -39
  21. package/dist/commands/completions.js +1 -1
  22. package/dist/commands/config-cli.js +14 -5
  23. package/dist/commands/env/child-env.js +12 -14
  24. package/dist/commands/env/env-cli.js +2 -2
  25. package/dist/commands/env/secret-cli.js +2 -2
  26. package/dist/commands/health/checks.js +10 -849
  27. package/dist/commands/health/connections-and-harnesses-check.js +109 -0
  28. package/dist/commands/health/egress.js +3 -3
  29. package/dist/commands/health/html-report.js +9 -10
  30. package/dist/commands/health/plugin-staleness.js +18 -11
  31. package/dist/commands/health/report-view-model.js +16 -12
  32. package/dist/commands/health/semantic-search-check.js +85 -0
  33. package/dist/commands/health/type-directory-check.js +0 -3
  34. package/dist/commands/health.js +30 -42
  35. package/dist/commands/improve/consolidate/pair-pass.js +10 -25
  36. package/dist/commands/improve/consolidate.js +10 -15
  37. package/dist/commands/improve/distill.js +5 -15
  38. package/dist/commands/improve/eligibility.js +1 -1
  39. package/dist/commands/improve/execution.js +37 -40
  40. package/dist/commands/improve/extract-cli.js +6 -11
  41. package/dist/commands/improve/extract-prompt.js +2 -2
  42. package/dist/commands/improve/extract.js +67 -97
  43. package/dist/commands/improve/improve-cli.js +22 -128
  44. package/dist/commands/improve/improve-report.js +1 -1
  45. package/dist/commands/improve/improve-strategies.js +25 -108
  46. package/dist/commands/improve/improve.js +10 -14
  47. package/dist/commands/improve/loop-stages.js +3 -0
  48. package/dist/commands/improve/memory/memory-improve.js +1 -1
  49. package/dist/commands/improve/preparation.js +8 -13
  50. package/dist/commands/improve/reflect.js +203 -332
  51. package/dist/commands/improve/retrieval-scope.js +1 -1
  52. package/dist/commands/improve/session-asset.js +3 -2
  53. package/dist/commands/improve/stage.js +87 -115
  54. package/dist/commands/lint/base-linter.js +3 -3
  55. package/dist/commands/lint/index.js +2 -2
  56. package/dist/commands/models-cli.js +103 -63
  57. package/dist/commands/proposal/drain.js +26 -39
  58. package/dist/commands/proposal/proposal-cli.js +14 -18
  59. package/dist/commands/proposal/propose-cli.js +4 -2
  60. package/dist/commands/proposal/propose.js +37 -64
  61. package/dist/commands/proposal/repository.js +17 -17
  62. package/dist/commands/proposal/validators/proposal-validators.js +2 -2
  63. package/dist/commands/read/curate.js +10 -6
  64. package/dist/commands/read/registry-search.js +2 -48
  65. package/dist/commands/read/search-cli.js +1 -8
  66. package/dist/commands/read/search.js +5 -6
  67. package/dist/commands/read/show.js +2 -4
  68. package/dist/commands/remember.js +25 -40
  69. package/dist/commands/sources/bundle-config-ops.js +2 -2
  70. package/dist/commands/sources/info.js +12 -1
  71. package/dist/commands/sources/init.js +1 -1
  72. package/dist/commands/sources/installed-stashes.js +2 -2
  73. package/dist/commands/sources/migration-help.js +1 -1
  74. package/dist/commands/sources/plugin-upgrade.js +8 -15
  75. package/dist/commands/sources/schema-repair.js +4 -8
  76. package/dist/commands/sources/source-add.js +2 -2
  77. package/dist/commands/sources/source-manage.js +4 -4
  78. package/dist/commands/targets.js +175 -0
  79. package/dist/commands/tasks/explain.js +103 -68
  80. package/dist/commands/tasks/tasks-cli.js +9 -11
  81. package/dist/commands/tasks/tasks.js +37 -41
  82. package/dist/commands/ui/api.js +11 -3
  83. package/dist/commands/ui/redact.js +1 -27
  84. package/dist/commands/ui/workspace-actions.js +1 -1
  85. package/dist/commands/workflow/plan.js +1 -1
  86. package/dist/commands/workflow-cli.js +3 -4
  87. package/dist/core/adapter/adapters/agent-skills-adapter.js +10 -11
  88. package/dist/core/adapter/adapters/akm-adapter.js +33 -38
  89. package/dist/core/adapter/adapters/akm-lint.js +7 -8
  90. package/dist/core/adapter/adapters/akm-task-adapter.js +3 -3
  91. package/dist/core/adapter/adapters/akm-workflow-adapter.js +5 -5
  92. package/dist/core/adapter/adapters/claude-adapter.js +1 -1
  93. package/dist/core/adapter/adapters/dotenv-adapter.js +3 -3
  94. package/dist/core/adapter/adapters/generic-files-adapter.js +5 -5
  95. package/dist/core/adapter/adapters/index.js +3 -4
  96. package/dist/core/adapter/adapters/llm-wiki-adapter.js +12 -14
  97. package/dist/core/adapter/adapters/okf-adapter.js +8 -10
  98. package/dist/core/adapter/adapters/opencode-adapter.js +1 -1
  99. package/dist/core/adapter/adapters/shared.js +3 -3
  100. package/dist/core/adapter/adapters/tool-dir-shared.js +7 -25
  101. package/dist/core/adapter/adapters/website-snapshot-adapter.js +3 -3
  102. package/dist/core/adapter/detect-adapter.js +1 -1
  103. package/dist/core/adapter/execution-source.js +13 -35
  104. package/dist/core/adapter/registry.js +1 -1
  105. package/dist/core/adapter/validate-context.js +2 -4
  106. package/dist/core/asset/asset-placement.js +1 -1
  107. package/dist/core/asset/asset-ref.js +3 -3
  108. package/dist/core/closest-match.js +37 -0
  109. package/dist/core/common.js +33 -5
  110. package/dist/core/config/config-io.js +26 -18
  111. package/dist/core/config/config-schema.js +19 -106
  112. package/dist/core/config/config-sources.js +3 -3
  113. package/dist/core/config/config-types.js +4 -4
  114. package/dist/core/config/config-walker.js +50 -77
  115. package/dist/core/config/config.js +385 -93
  116. package/dist/core/config/convert-engine-references.js +114 -0
  117. package/dist/core/config/convert-engines-shared.js +40 -0
  118. package/dist/core/config/convert-engines.js +300 -0
  119. package/dist/core/config/convert-models-overlay.js +137 -0
  120. package/dist/core/config/credentials.js +304 -0
  121. package/dist/core/config/engine-semantics.js +3 -3
  122. package/dist/core/config/migrate-keys.js +222 -0
  123. package/dist/core/config/model-aliases.js +37 -0
  124. package/dist/core/config/models-file.js +34 -0
  125. package/dist/core/config/retired-engines.js +53 -0
  126. package/dist/core/config/schema/connections.js +41 -0
  127. package/dist/core/config/schema/embedding.js +2 -2
  128. package/dist/core/config/schema/harnesses.js +41 -0
  129. package/dist/core/config/schema/improve-processes.js +9 -28
  130. package/dist/core/config/schema/improve.js +36 -1
  131. package/dist/core/config/schema/index-config.js +18 -20
  132. package/dist/core/config/schema/primitives.js +41 -22
  133. package/dist/core/config/schema/search.js +6 -11
  134. package/dist/core/config/schema/sources-bundles.js +7 -7
  135. package/dist/core/config/schema/workflow.js +2 -6
  136. package/dist/core/config/unusable-entries.js +66 -0
  137. package/dist/core/content-safety.js +3 -6
  138. package/dist/core/endpoint-url.js +47 -0
  139. package/dist/core/errors.js +9 -15
  140. package/dist/core/extra-params.js +3 -3
  141. package/dist/core/improve-result.js +8 -9
  142. package/dist/core/json-schema.js +1 -1
  143. package/dist/core/lesson-lint.js +1 -1
  144. package/dist/core/llm-inference.js +80 -0
  145. package/dist/core/npm-package.js +89 -0
  146. package/dist/core/parse.js +2 -2
  147. package/dist/core/paths.js +32 -4
  148. package/dist/core/recognition-util.js +8 -10
  149. package/dist/core/redaction.js +78 -52
  150. package/dist/core/state/migrations.js +17 -22
  151. package/dist/core/structured.js +2 -68
  152. package/dist/core/subprocess.js +63 -22
  153. package/dist/core/tar.js +116 -0
  154. package/dist/core/type-presentation.js +10 -14
  155. package/dist/execution/input-contract.js +3 -6
  156. package/dist/execution/notices.js +49 -0
  157. package/dist/execution/resolved-request.js +24 -40
  158. package/dist/execution/source.js +21 -45
  159. package/dist/execution/target-ref.js +2 -2
  160. package/dist/indexer/bundle-identity-guard.js +6 -5
  161. package/dist/indexer/ensure-index.js +1 -1
  162. package/dist/indexer/index-writer-lock.js +1 -1
  163. package/dist/indexer/indexer.js +19 -6
  164. package/dist/indexer/installations.js +11 -14
  165. package/dist/indexer/materialize-embeddings.js +20 -16
  166. package/dist/indexer/passes/memory-inference.js +21 -50
  167. package/dist/indexer/passes/metadata.js +5 -5
  168. package/dist/indexer/scan/doc-to-entry.js +1 -1
  169. package/dist/indexer/scan/drain-dir.js +6 -8
  170. package/dist/indexer/search/db-search.js +9 -7
  171. package/dist/indexer/search/search-source.js +40 -22
  172. package/dist/indexer/usage/usage-events.js +2 -3
  173. package/dist/indexer/walk/index-context.js +2 -1
  174. package/dist/indexer/walk/matchers.js +3 -11
  175. package/dist/indexer/walk/walker.js +14 -4
  176. package/dist/integrations/agent/akm-read-tools.js +81 -0
  177. package/dist/integrations/agent/config.js +1 -1
  178. package/dist/integrations/agent/detect.js +32 -36
  179. package/dist/integrations/agent/execution.js +130 -428
  180. package/dist/integrations/agent/index.js +1 -1
  181. package/dist/integrations/agent/profiles.js +24 -28
  182. package/dist/integrations/agent/prompts.js +17 -30
  183. package/dist/integrations/agent/request-lowering.js +67 -101
  184. package/dist/integrations/agent/resolution.js +332 -0
  185. package/dist/integrations/agent/runner-dispatch.js +154 -178
  186. package/dist/integrations/agent/runner.js +20 -72
  187. package/dist/integrations/agent/runtime-port.js +4 -0
  188. package/dist/integrations/agent/runtime.js +10 -0
  189. package/dist/integrations/agent/spawn.js +65 -190
  190. package/dist/integrations/harnesses/aider/index.js +19 -39
  191. package/dist/integrations/harnesses/amazonq/index.js +17 -32
  192. package/dist/integrations/harnesses/claude/index.js +59 -28
  193. package/dist/integrations/harnesses/claude/session-log.js +7 -5
  194. package/dist/integrations/harnesses/codex/index.js +19 -31
  195. package/dist/integrations/harnesses/copilot/index.js +17 -35
  196. package/dist/integrations/harnesses/gemini/index.js +18 -34
  197. package/dist/integrations/harnesses/harness.js +36 -0
  198. package/dist/integrations/harnesses/index.js +20 -51
  199. package/dist/integrations/harnesses/opencode/agent-builder.js +132 -100
  200. package/dist/integrations/harnesses/opencode/index.js +11 -33
  201. package/dist/integrations/harnesses/opencode/roots.js +50 -0
  202. package/dist/integrations/harnesses/opencode/runtime/binary.js +139 -0
  203. package/dist/integrations/harnesses/opencode/runtime/command.js +152 -0
  204. package/dist/integrations/harnesses/opencode/runtime/index.js +181 -0
  205. package/dist/integrations/harnesses/opencode/session-log-v1.js +15 -7
  206. package/dist/integrations/harnesses/opencode/session-log-v2.js +72 -48
  207. package/dist/integrations/harnesses/opencode/session-log.js +58 -137
  208. package/dist/integrations/harnesses/opencode/version.js +34 -53
  209. package/dist/integrations/harnesses/openhands/index.js +13 -37
  210. package/dist/integrations/harnesses/pi/index.js +21 -32
  211. package/dist/integrations/lockfile.js +1 -1
  212. package/dist/integrations/session-logs/index.js +11 -31
  213. package/dist/llm/client.js +93 -111
  214. package/dist/llm/embedder.js +19 -34
  215. package/dist/llm/embedders/connection.js +31 -0
  216. package/dist/llm/embedders/local-model-files.js +56 -0
  217. package/dist/llm/embedders/local.js +111 -115
  218. package/dist/llm/embedders/onnx-runtime.js +121 -0
  219. package/dist/llm/embedders/remote.js +26 -24
  220. package/dist/llm/embedders/types.js +1 -1
  221. package/dist/llm/index-passes.js +33 -39
  222. package/dist/llm/memory-infer.js +67 -77
  223. package/dist/llm/model-list.js +35 -0
  224. package/dist/llm/rerank-client.js +8 -14
  225. package/dist/llm/structured-call.js +45 -99
  226. package/dist/llm/structured.js +60 -0
  227. package/dist/output/renderers.js +2 -7
  228. package/dist/output/shapes/helpers.js +18 -42
  229. package/dist/output/shapes/passthrough.js +1 -0
  230. package/dist/output/shapes.js +1 -7
  231. package/dist/output/text/command-format.js +29 -37
  232. package/dist/output/text/health-format.js +8 -2
  233. package/dist/output/text/helpers.js +1 -1
  234. package/dist/output/text/migrate.js +12 -0
  235. package/dist/output/text/models.js +3 -2
  236. package/dist/output/text/registry-commands.js +1 -2
  237. package/dist/output/text/show-format.js +0 -2
  238. package/dist/output/text/targets-table.js +70 -0
  239. package/dist/output/text/workflow-format.js +7 -8
  240. package/dist/output/text.js +1 -1
  241. package/dist/registry/providers/skills-sh.js +1 -28
  242. package/dist/registry/providers/static-index.js +1 -71
  243. package/dist/runtime.js +6 -2
  244. package/dist/scripts/akm-migrate-node.js +5197 -4193
  245. package/dist/scripts/akm-migrate.js +5197 -4193
  246. package/dist/setup/detect.js +28 -273
  247. package/dist/setup/endpoint.js +36 -0
  248. package/dist/setup/semantic-assets.js +18 -21
  249. package/dist/setup/setup-flags.js +77 -0
  250. package/dist/setup/setup-plan.js +144 -0
  251. package/dist/setup/setup.js +184 -354
  252. package/dist/setup/steps/connection-shared.js +49 -101
  253. package/dist/setup/steps/connection.js +121 -524
  254. package/dist/setup/steps/embeddings.js +168 -0
  255. package/dist/setup/steps/harnesses.js +118 -0
  256. package/dist/setup/steps/platforms.js +2 -81
  257. package/dist/setup/steps.js +10 -0
  258. package/dist/setup/summary.js +67 -0
  259. package/dist/sources/freshness.js +16 -21
  260. package/dist/sources/providers/git-provider.js +2 -9
  261. package/dist/sources/providers/provider-utils.js +1 -5
  262. package/dist/sources/snapshot-fetchers/robots.js +11 -12
  263. package/dist/sources/snapshot-fetchers/website-ingest.js +8 -15
  264. package/dist/storage/database.js +17 -57
  265. package/dist/storage/repositories/improve-ledger-repository.js +1 -1
  266. package/dist/storage/repositories/improve-runs-repository.js +0 -13
  267. package/dist/storage/repositories/index-entries-repository.js +2 -2
  268. package/dist/storage/repositories/workflow-runs-repository.js +8 -15
  269. package/dist/storage/sqlite-read-snapshot.js +33 -29
  270. package/dist/tasks/log-redaction.js +7 -119
  271. package/dist/tasks/prepare/prepare-support.js +5 -5
  272. package/dist/tasks/prepare/prepare.js +5 -5
  273. package/dist/tasks/prepare/script-capture.js +3 -5
  274. package/dist/tasks/run/attempt-lifecycle.js +17 -35
  275. package/dist/tasks/run/load-task.js +8 -13
  276. package/dist/tasks/run/run-command-task.js +15 -10
  277. package/dist/tasks/run/run-native-task.js +8 -13
  278. package/dist/tasks/run/run-task.js +5 -8
  279. package/dist/tasks/run/run-workflow-task.js +12 -19
  280. package/dist/tasks/run/task-history.js +9 -17
  281. package/dist/tasks/run/task-log.js +1 -5
  282. package/dist/tasks/scheduler-invocation.js +13 -18
  283. package/dist/tasks/source/bounded-document.js +31 -76
  284. package/dist/tasks/source/project-v4.js +5 -3
  285. package/dist/tasks/source/task-input-diagnostics.js +3 -4
  286. package/dist/tasks/source/task-source-v4.js +47 -68
  287. package/dist/tasks/source-v3.js +2 -5
  288. package/dist/tasks/task-run-reserved-flags.js +1 -2
  289. package/dist/workflows/authoring/authoring.js +2 -7
  290. package/dist/workflows/concurrency-policy.js +4 -4
  291. package/dist/workflows/exec/child-workflow.js +0 -2
  292. package/dist/workflows/exec/dispatch-redaction.js +14 -83
  293. package/dist/workflows/exec/environment.js +2 -3
  294. package/dist/workflows/exec/exec-unit.js +10 -59
  295. package/dist/workflows/exec/frozen-judge.js +10 -26
  296. package/dist/workflows/exec/native-executor.js +56 -45
  297. package/dist/workflows/exec/run-workflow.js +7 -24
  298. package/dist/workflows/exec/step-work.js +9 -14
  299. package/dist/workflows/exec/unit-dispatch.js +6 -13
  300. package/dist/workflows/freeze/freeze.js +14 -32
  301. package/dist/workflows/freeze/step-values.js +5 -11
  302. package/dist/workflows/freeze/targets/command.js +3 -6
  303. package/dist/workflows/freeze/task-bindings.js +0 -1
  304. package/dist/workflows/parser.js +44 -34
  305. package/dist/workflows/plan.js +3 -1
  306. package/dist/workflows/renderer.js +6 -5
  307. package/dist/workflows/resource-limits.js +2 -2
  308. package/dist/workflows/runtime/run-plan.js +2 -1
  309. package/dist/workflows/runtime/runs.js +14 -9
  310. package/docs/README.md +10 -16
  311. package/docs/architecture/README.md +2 -37
  312. package/docs/architecture/adapters.md +2 -2
  313. package/docs/architecture/akm-core-principles.md +257 -118
  314. package/docs/architecture/architecture.md +282 -98
  315. package/docs/architecture/improvement.md +8 -2
  316. package/docs/architecture/internals/classification.md +1 -3
  317. package/docs/architecture/internals/fresh-host-rebuild-runbook.md +7 -6
  318. package/docs/architecture/internals/health-advisories.md +35 -74
  319. package/docs/architecture/internals/improve-workflow.md +27 -26
  320. package/docs/architecture/internals/indexing.md +3 -3
  321. package/docs/architecture/internals/storage-locations.md +46 -12
  322. package/docs/architecture/persisted-data-compat.md +9 -6
  323. package/docs/architecture/specs/okf-support.md +9 -11
  324. package/docs/architecture/specs/ref.md +7 -9
  325. package/docs/architecture/testing/testing-workflow.md +173 -42
  326. package/docs/architecture/workflow-engine.md +17 -14
  327. package/docs/guides/README.md +0 -1
  328. package/docs/guides/author-bundles.md +1 -3
  329. package/docs/guides/author-workflows.md +61 -73
  330. package/docs/guides/bundles.md +4 -5
  331. package/docs/guides/discover-and-load.md +1 -1
  332. package/docs/guides/getting-started.md +51 -3
  333. package/docs/guides/improve-the-library.md +10 -4
  334. package/docs/guides/recipes/headless-install.md +21 -21
  335. package/docs/guides/run-workflows.md +6 -9
  336. package/docs/guides/scheduling.md +2 -2
  337. package/docs/guides/use-with-any-agent.md +20 -22
  338. package/docs/integration/bundling-akm.md +19 -9
  339. package/docs/maintainers/README.md +0 -3
  340. package/docs/migration/README.md +10 -3
  341. package/docs/migration/release-notes/0.10.0.md +81 -16
  342. package/docs/migration/release-notes/0.6.0.md +1 -1
  343. package/docs/migration/release-notes/0.7.0.md +1 -1
  344. package/docs/migration/release-notes/0.9.0.md +1 -1
  345. package/docs/migration/release-notes/README.md +1 -1
  346. package/docs/migration/v0.9-to-v0.10.md +312 -59
  347. package/docs/migration/v0.9.1-to-v0.9.2.md +6 -5
  348. package/docs/posts/config-v2-lessons-16.md +1 -1
  349. package/docs/posts/llm-mode-reflect-13.md +1 -1
  350. package/docs/posts/release-0.6.0.md +11 -11
  351. package/docs/posts/release-0.8.0.md +4 -4
  352. package/docs/posts/workflows-vaults-09.md +1 -1
  353. package/docs/reference/README.md +1 -1
  354. package/docs/reference/asset-types.md +2 -2
  355. package/docs/reference/cli.md +367 -279
  356. package/docs/reference/configuration.md +591 -557
  357. package/docs/reference/data-and-telemetry.md +8 -5
  358. package/docs/reference/env-and-secrets.md +11 -5
  359. package/docs/reference/refs.md +3 -20
  360. package/docs/reference/registry.md +6 -27
  361. package/docs/reference/supported-formats.md +1 -1
  362. package/docs/reference/tasks.md +11 -8
  363. package/docs/reference/ui-api.md +11 -6
  364. package/docs/reference/workflow-schema.md +106 -134
  365. package/docs/reference/workflows.md +4 -6
  366. package/package.json +9 -14
  367. package/schemas/akm-config.json +1696 -2922
  368. package/schemas/akm-task.json +2 -0
  369. package/schemas/akm-workflow.json +36 -9
  370. package/ROADMAP.md +0 -112
  371. package/dist/assets/models.json +0 -35
  372. package/dist/commands/health/engine-usage.js +0 -45
  373. package/dist/core/config/schema/engines.js +0 -160
  374. package/dist/core/config/schema/execution.js +0 -23
  375. package/dist/core/spawn-env.js +0 -268
  376. package/dist/integrations/agent/builder-shared.js +0 -33
  377. package/dist/integrations/agent/builders.js +0 -43
  378. package/dist/integrations/agent/engine-fallback.js +0 -59
  379. package/dist/integrations/agent/engine-resolution.js +0 -335
  380. package/dist/integrations/agent/model-map.js +0 -475
  381. package/dist/integrations/harnesses/aider/agent-builder.js +0 -107
  382. package/dist/integrations/harnesses/aider/result-extractor.js +0 -53
  383. package/dist/integrations/harnesses/amazonq/agent-builder.js +0 -138
  384. package/dist/integrations/harnesses/amazonq/result-extractor.js +0 -48
  385. package/dist/integrations/harnesses/claude/agent-builder.js +0 -106
  386. package/dist/integrations/harnesses/claude/config-import.js +0 -67
  387. package/dist/integrations/harnesses/claude/result-extractor.js +0 -67
  388. package/dist/integrations/harnesses/codex/agent-builder.js +0 -150
  389. package/dist/integrations/harnesses/codex/result-extractor.js +0 -110
  390. package/dist/integrations/harnesses/copilot/agent-builder.js +0 -117
  391. package/dist/integrations/harnesses/copilot/result-extractor.js +0 -178
  392. package/dist/integrations/harnesses/gemini/agent-builder.js +0 -114
  393. package/dist/integrations/harnesses/gemini/result-extractor.js +0 -149
  394. package/dist/integrations/harnesses/opencode/config-import.js +0 -149
  395. package/dist/integrations/harnesses/opencode/model-config.js +0 -33
  396. package/dist/integrations/harnesses/opencode/model-work-agent.js +0 -115
  397. package/dist/integrations/harnesses/opencode/session-log-types.js +0 -12
  398. package/dist/integrations/harnesses/opencode-sdk/index.js +0 -44
  399. package/dist/integrations/harnesses/opencode-sdk/sdk-runner.js +0 -1052
  400. package/dist/integrations/harnesses/opencode-sdk/v1-adapter.js +0 -199
  401. package/dist/integrations/harnesses/opencode-sdk/v2-adapter.js +0 -254
  402. package/dist/integrations/harnesses/opencode-sdk/wire.js +0 -66
  403. package/dist/integrations/harnesses/openhands/agent-builder.js +0 -120
  404. package/dist/integrations/harnesses/openhands/result-extractor.js +0 -135
  405. package/dist/integrations/harnesses/pi/agent-builder.js +0 -89
  406. package/dist/integrations/harnesses/pi/result-extractor.js +0 -168
  407. package/dist/integrations/harnesses/shared.js +0 -18
  408. package/dist/integrations/harnesses/types.js +0 -55
  409. package/dist/llm/feature-gate.js +0 -115
  410. package/dist/output/shapes/models-list.js +0 -16
  411. package/dist/output/shapes/registry-search.js +0 -10
  412. package/dist/setup/detected-engines.js +0 -136
  413. package/dist/setup/engine-config.js +0 -97
  414. package/dist/setup/harness-config-import.js +0 -47
  415. package/dist/setup/providers.js +0 -14
  416. package/dist/setup/steps/semantic.js +0 -39
  417. package/dist/workflows/exec/lowering-notices.js +0 -23
  418. package/docs/architecture/0.10-process-rules.md +0 -832
  419. package/docs/architecture/akm-architecture-decision-history.md +0 -2055
  420. package/docs/architecture/comparisons/claude-code-vs-akm-workflows-full.md +0 -544
  421. package/docs/architecture/decisions/0001-no-interpolation-attached-structured-context.md +0 -72
  422. package/docs/architecture/decisions/0002-unit-reuse-and-input-hash-scope.md +0 -142
  423. package/docs/architecture/decisions/0003-child-env-allowlist-and-provenance.md +0 -187
  424. package/docs/architecture/decisions/0004-task-input-contract-and-flag-coercion.md +0 -97
  425. package/docs/architecture/decisions/0005-task-result-vocabulary-and-legacy-read-mapping.md +0 -108
  426. package/docs/architecture/decisions/0006-task-source-version-routing.md +0 -124
  427. package/docs/architecture/decisions/0007-workflow-composition-bounds.md +0 -83
  428. package/docs/architecture/decisions/0008-task-binding-normalization.md +0 -88
  429. package/docs/architecture/decisions/0009-child-run-publication-column-parity.md +0 -80
  430. package/docs/architecture/decisions/0010-driver-protocol-cut.md +0 -36
  431. package/docs/architecture/decisions/0011-engine-run-loop-invariants.md +0 -125
  432. package/docs/architecture/decisions/README.md +0 -62
  433. package/docs/architecture/internals/functional-contract-patterns.md +0 -340
  434. package/docs/architecture/internals/registry-network-boundary.md +0 -57
  435. package/docs/architecture/internals/search.md +0 -248
  436. package/docs/architecture/reviews/env-secret-access.md +0 -319
  437. package/docs/architecture/runtime-boundary-design.md +0 -153
  438. package/docs/architecture/specs/0.9.0-close-out-plan.md +0 -361
  439. package/docs/architecture/specs/0.9.0-decisions.md +0 -532
  440. package/docs/architecture/specs/0.9.0-docs-code-drift-register.md +0 -745
  441. package/docs/architecture/specs/0.9.0-open-items-register.md +0 -135
  442. package/docs/architecture/specs/0.9.0-public-api-issue-backlog.md +0 -740
  443. package/docs/architecture/specs/0.9.0-release-surface-review.md +0 -636
  444. package/docs/architecture/specs/agent-command-engine-model-design.md +0 -513
  445. package/docs/architecture/specs/akm-0.9.0-bundle-adapter-spec.md +0 -501
  446. package/docs/architecture/specs/akm-0.9.0-ref-grammar-decision.md +0 -291
  447. package/docs/architecture/specs/akm-format-neutral-bundle-workspace-spec.md +0 -2059
  448. package/docs/architecture/specs/di-seams-plan.md +0 -539
  449. package/docs/architecture/specs/driver-protocol-keep-or-cut.md +0 -275
  450. package/docs/architecture/specs/fact-asset-type.md +0 -142
  451. package/docs/architecture/specs/improve-collapse-churn-detector-design.md +0 -634
  452. package/docs/architecture/specs/reviews/task-workflow-unification/README.md +0 -72
  453. package/docs/architecture/specs/reviews/task-workflow-unification/findings-consolidated.md +0 -152
  454. package/docs/architecture/specs/reviews/task-workflow-unification/library-eval-alternatives.md +0 -352
  455. package/docs/architecture/specs/reviews/task-workflow-unification/library-eval-bunqueue.md +0 -300
  456. package/docs/architecture/specs/reviews/task-workflow-unification/library-eval-openworkflow.md +0 -402
  457. package/docs/architecture/specs/reviews/task-workflow-unification/opus-review-1.md +0 -758
  458. package/docs/architecture/specs/reviews/task-workflow-unification/opus-review-2.md +0 -645
  459. package/docs/architecture/specs/reviews/task-workflow-unification/opus-review-3.md +0 -602
  460. package/docs/architecture/specs/reviews/task-workflow-unification/panel-r1-adversarial.md +0 -27
  461. package/docs/architecture/specs/reviews/task-workflow-unification/panel-r1-architecture.md +0 -27
  462. package/docs/architecture/specs/reviews/task-workflow-unification/panel-r1-coverage.md +0 -74
  463. package/docs/architecture/specs/reviews/task-workflow-unification/panel-r1-security.md +0 -15
  464. package/docs/architecture/specs/reviews/task-workflow-unification/panel-r2-adversarial.md +0 -132
  465. package/docs/architecture/specs/reviews/task-workflow-unification/panel-r2-verification.md +0 -147
  466. package/docs/architecture/specs/stash-conventions-code-spec.md +0 -275
  467. package/docs/architecture/specs/stash-organization-conventions.md +0 -377
  468. package/docs/architecture/specs/task-workflow-format-unification.md +0 -721
  469. package/docs/architecture/specs/workflow-engine-buy-vs-build.md +0 -231
  470. package/docs/architecture/specs/workflow-format-unification.md +0 -432
  471. package/docs/architecture/testing/manual-testing-checklist.md +0 -3379
  472. package/docs/architecture/testing/okf-v0.2-conformance-runbook.md +0 -924
  473. package/docs/architecture/testing/task-workflow-manual-tests.md +0 -1702
  474. package/docs/guides/claude-code-vs-akm-workflows.md +0 -29
  475. package/docs/guides/knowledge-management.md +0 -18
  476. package/docs/maintainers/curate-workmap.md +0 -335
  477. package/docs/migration/v0.5-to-v0.6.md +0 -759
  478. package/docs/migration/v0.7-to-v0.8.md +0 -1378
  479. package/docs/plans/0.9.2-agent-command-workflow-plan.md +0 -423
@@ -1,13 +1,14 @@
1
1
  // This Source Code Form is subject to the terms of the Mozilla Public
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
+ import { SHIPPED_ALIAS } from "../../core/config/model-aliases.js";
4
5
  import { UsageError } from "../../core/errors.js";
6
+ import { mergeNotices } from "../../execution/notices.js";
5
7
  import { createInlineResolvedCommand, createResolvedCommand, createResolvedPersona, } from "../../execution/resolved-request.js";
6
8
  import { isPortableExecutionAgentSelector, } from "../../execution/source.js";
7
9
  import { recordIndexedShowUsage } from "../../indexer/usage/show-usage.js";
8
10
  import { resolveUsageEventSource } from "../../indexer/usage/usage-events.js";
9
- import { fallbackAnnouncement } from "../../integrations/agent/engine-fallback.js";
10
- import { buildExecution, resolveExecution, } from "../../integrations/agent/execution.js";
11
+ import { buildExecution, currentLayer, resolveExecution, shippedAlias, } from "../../integrations/agent/execution.js";
11
12
  import { runExecution } from "../../integrations/agent/runner-dispatch.js";
12
13
  import { parseBuiltinCommandAction } from "./builtin-action.js";
13
14
  import { loadAdapterExecutionSource, } from "./execution-source-loader.js";
@@ -106,18 +107,22 @@ export async function prepareCommandInvocation(options) {
106
107
  renderedPersona = rendered;
107
108
  }
108
109
  const persona = renderedPersona ? createResolvedPersona(renderedPersona) : selectedAgent.present ? null : undefined;
110
+ const layers = [
111
+ shippedAlias(SHIPPED_ALIAS.agent),
112
+ ...(renderedPersona
113
+ ? [{ id: renderedPersona.identity.ref, kind: "agent", values: renderedPersona.defaults }]
114
+ : []),
115
+ { id: renderedCommand?.identity.ref ?? "inline-command", kind: "command", values: commandDefaults },
116
+ ...(options.invocationDefaults
117
+ ? [{ id: "invocation-defaults", kind: "invocation-defaults", values: options.invocationDefaults }]
118
+ : []),
119
+ ...(options.current ? [currentLayer(options.current)] : []),
120
+ ];
109
121
  return resolveExecution({
110
122
  command,
111
123
  config: options.config,
112
124
  ...(persona !== undefined ? { persona } : {}),
113
- ...(renderedPersona ? { agentLayer: { id: renderedPersona.identity.ref, values: renderedPersona.defaults } } : {}),
114
- commandLayer: {
115
- id: renderedCommand?.identity.ref ?? "inline-command",
116
- values: commandDefaults,
117
- },
118
- ...(options.invocationDefaults ? { invocationDefaults: options.invocationDefaults } : {}),
119
- ...(options.current ? { current: options.current } : {}),
120
- ...(options.modelMap ? { modelMap: options.modelMap } : {}),
125
+ layers,
121
126
  });
122
127
  }
123
128
  function compareText(left, right) {
@@ -126,38 +131,27 @@ function compareText(left, right) {
126
131
  const DIAGNOSTIC_PROVENANCE_FIELDS = new Set([
127
132
  "/inference",
128
133
  "agent",
129
- "authorization",
130
134
  "command",
131
- "engine",
132
- "engine.requested",
133
135
  "model",
134
136
  "outputSchema",
135
137
  "persona",
136
138
  "runtime.environment",
137
- "runtime.settings",
138
139
  "runtime.timeoutMs",
139
140
  "runtime.workspace",
140
- "tools",
141
+ "target",
141
142
  ]);
142
143
  const DIAGNOSTIC_NOTICE_FIELDS = new Set([
143
144
  "agent",
144
145
  "command.content",
145
- "command.extensions",
146
146
  "conversation",
147
- "engine",
148
- "engine.extensions",
149
- "extensions",
150
147
  "inference",
151
148
  "model",
152
149
  "outputSchema",
153
150
  "persona",
154
- "persona.extensions",
155
151
  "runtime.environment",
156
- "runtime.extensions",
157
- "runtime.settings",
158
152
  "runtime.timeoutMs",
159
153
  "runtime.workspace",
160
- "tools",
154
+ "target",
161
155
  ]);
162
156
  function canonicalDiagnosticProvenanceField(field) {
163
157
  if (field.startsWith("/inference/"))
@@ -219,20 +213,15 @@ function safeDiagnosticNotice(notice) {
219
213
  severity: "info",
220
214
  adapter: notice.adapter,
221
215
  field: "persona",
222
- message: "The selected engine has no native persona channel; AKM composed the persona into the prompt.",
216
+ message: "The selected harness has no native persona channel; AKM composed the persona into the prompt.",
223
217
  });
224
218
  default:
225
219
  return undefined;
226
220
  }
227
221
  }
228
222
  function diagnosticNotices(notices) {
229
- const canonical = new Map();
230
- for (const notice of notices) {
231
- const safe = safeDiagnosticNotice(notice);
232
- if (safe)
233
- canonical.set(JSON.stringify(safe), safe);
234
- }
235
- return Object.freeze([...canonical.values()].sort((left, right) => compareText(JSON.stringify(left), JSON.stringify(right))));
223
+ const safe = notices.flatMap((notice) => safeDiagnosticNotice(notice) ?? []);
224
+ return Object.freeze([...(mergeNotices(safe) ?? [])].sort((left, right) => compareText(JSON.stringify(left), JSON.stringify(right))));
236
225
  }
237
226
  /**
238
227
  * Build a prepared invocation and project only safe structural diagnostics.
@@ -245,7 +234,7 @@ export function inspectPreparedCommandInvocation(prepared) {
245
234
  shape: "command-dry-run",
246
235
  ok: true,
247
236
  dryRun: true,
248
- engine: prepared.request.engine.name,
237
+ engine: prepared.request.target.name,
249
238
  provenance: diagnosticProvenance(prepared.provenance),
250
239
  notices: diagnosticNotices(built.notices),
251
240
  };
@@ -270,22 +259,19 @@ function resultEnvelope(result, engine, warnings, notices) {
270
259
  export async function dispatchPreparedCommandInvocation(prepared, options = {}) {
271
260
  const { request } = prepared;
272
261
  const built = buildExecution(request, prepared.runner);
273
- const selectedEngine = request.engine.name;
262
+ const selectedEngine = request.target.name;
274
263
  const result = await runExecution(built, runOptionsFor(options));
275
264
  const consumedRefs = new Set();
276
265
  if (request.command.source)
277
266
  consumedRefs.add(request.command.source.ref);
278
267
  if (request.persona)
279
268
  consumedRefs.add(request.persona.source.ref);
280
- // F-1 (spec §5.2 point 3): options.eventSource is only a FALLBACK — an
281
- // ambient AKM_EVENT_SOURCE still wins (D5 clause d). Absent, this is
282
- // byte-identical to the pre-P1b bare resolveUsageEventSource() call (P-07's
283
- // own default is "user").
269
+ // options.eventSource is only a FALLBACK — an ambient AKM_EVENT_SOURCE still
270
+ // wins. Absent, the default is "user".
284
271
  const eventSource = resolveUsageEventSource(process.env, options.eventSource ?? "user");
285
272
  for (const ref of consumedRefs)
286
273
  recordIndexedShowUsage(ref, eventSource);
287
- const announcement = fallbackAnnouncement(prepared.fallbackEngineName, selectedEngine);
288
- return resultEnvelope(result, selectedEngine, announcement ? [announcement] : [], built.notices);
274
+ return resultEnvelope(result, selectedEngine, [], built.notices);
289
275
  }
290
276
  export async function executeCommandInvocation(options, dispatchOptions = {}) {
291
277
  return dispatchPreparedCommandInvocation(await prepareCommandInvocation(options), dispatchOptions);
@@ -58,7 +58,7 @@ function walkCommandTree(cmd, parentPath = "") {
58
58
  const valueFlags = [];
59
59
  if (cmd.args) {
60
60
  for (const [flagName, arg] of Object.entries(cmd.args)) {
61
- if (arg.type === "positional")
61
+ if (arg.type === "positional" || arg.hidden === true)
62
62
  continue;
63
63
  flags.push(`--${flagName}`);
64
64
  if (arg.type === "boolean" && arg.default === true)
@@ -9,14 +9,15 @@
9
9
  * zero lines here — the walker handles get/set/unset/coercion uniformly.
10
10
  *
11
11
  * `configVersion` is controlled by the config lifecycle. All execution
12
- * settings use their canonical engine/strategy paths; retired aliases are not
12
+ * settings use their canonical connection, harness and strategy paths; retired aliases are not
13
13
  * rewritten at this boundary.
14
14
  */
15
15
  import { isDeepStrictEqual } from "node:util";
16
16
  import { defineGroupCommand, defineJsonCommand, output } from "../cli/shared.js";
17
17
  import { isRecord } from "../core/common.js";
18
- import { DEFAULT_CONFIG, getConfigValueSource, loadConfig, mutateConfig, parseAndValidateConfigText, resolveConfigRefSource, } from "../core/config/config.js";
18
+ import { DEFAULT_CONFIG, getConfigValueSource, loadConfig, mutateConfig, parseAndValidateConfigText, resolveConfigRefSource, unusableEntryAt, } from "../core/config/config.js";
19
19
  import { configGet, configSet, configUnset, unknownKeyHint } from "../core/config/config-walker.js";
20
+ import { isEnvReference } from "../core/config/schema/primitives.js";
20
21
  import { UsageError } from "../core/errors.js";
21
22
  import { getConfigPath } from "../core/paths.js";
22
23
  import { formatRegistryUrl } from "../core/registry-url.js";
@@ -31,11 +32,13 @@ export function unsetConfigValue(config, key) {
31
32
  return configUnset(config, key);
32
33
  }
33
34
  export function listConfig(config) {
34
- // 0.9.0 (spec §10.1): sources live in `bundles` (spread from config); the
35
+ // Sources live in `bundles` (spread from config); the
35
36
  // retired top-level `sources[]` array is no longer surfaced.
36
37
  return redactConfigValue({ ...DEFAULT_CONFIG, ...config });
37
38
  }
38
39
  function redactConfigValue(value, path = []) {
40
+ if (path.at(-1) === "apiKey" && typeof value === "string" && !isEnvReference(value))
41
+ return undefined;
39
42
  if (typeof value === "string" && isRegistryUrlPath(path))
40
43
  return formatRegistryUrl(value);
41
44
  if (Array.isArray(value))
@@ -44,8 +47,7 @@ function redactConfigValue(value, path = []) {
44
47
  return value;
45
48
  const result = {};
46
49
  for (const [key, child] of Object.entries(value)) {
47
- if (key !== "apiKey" ||
48
- (typeof child === "string" && /^\$(?:[A-Za-z_][A-Za-z0-9_]*|\{[A-Za-z_][A-Za-z0-9_]*\})$/.test(child))) {
50
+ if (key !== "apiKey" || (typeof child === "string" && isEnvReference(child))) {
49
51
  result[key] = redactConfigValue(child, [...path, key]);
50
52
  }
51
53
  }
@@ -195,6 +197,13 @@ export const configCommand = defineGroupCommand({
195
197
  if (source.startsWith("extends:")) {
196
198
  throw new UsageError(`Config key "${args.key}" is inherited from ${source} and cannot be unset here.`, "TARGET_NOT_UPDATABLE", `Override it locally with "akm config set ${args.key} <value>", or edit the base file directly.`);
197
199
  }
200
+ // An entry the reader drops is not in the config `unsetConfigValue` sees, so it would no-op and say ok.
201
+ const ignored = unusableEntryAt(args.key);
202
+ if (ignored) {
203
+ throw new UsageError(`Config key "${args.key}" is inside ${ignored.kind} "${ignored.name}", which akm ignores (${ignored.why}), so \`akm config\` cannot edit it.`, "TARGET_NOT_UPDATABLE", ignored.inFile
204
+ ? `Remove or fix the ${ignored.group}.${ignored.name} entry in ${getConfigPath()} by hand.`
205
+ : `${getConfigPath()} is still in the retired engines form: run \`akm migrate apply\` first, then fix or remove the entry.`);
206
+ }
198
207
  const result = mutateConfig((current) => unsetConfigValue(current, args.key), { absentNoop: true });
199
208
  const updated = result.config;
200
209
  if (!args.silent) {
@@ -1,7 +1,10 @@
1
1
  // This Source Code Form is subject to the terms of the Mozilla Public
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
- import { WIN32_SPAWN_ENV_FLOOR } from "../../core/spawn-env.js";
4
+ /**
5
+ * What `env run --clean` / `secret run --clean` keeps of the parent environment. The user typed
6
+ * the flag to get a minimal one; without the last eight names Windows cannot create the process.
7
+ */
5
8
  const CLEAN_ENV_ALLOWLIST = [
6
9
  "HOME",
7
10
  "PATH",
@@ -31,6 +34,14 @@ const CLEAN_ENV_ALLOWLIST = [
31
34
  "TZ",
32
35
  "NO_COLOR",
33
36
  "COLORTERM",
37
+ "SystemRoot",
38
+ "SystemDrive",
39
+ "WINDIR",
40
+ "COMSPEC",
41
+ "PATHEXT",
42
+ "USERPROFILE",
43
+ "HOMEDRIVE",
44
+ "HOMEPATH",
34
45
  ];
35
46
  export function buildChildEnv(parentEnv, options) {
36
47
  const base = options.clean ? {} : { ...parentEnv };
@@ -39,19 +50,6 @@ export function buildChildEnv(parentEnv, options) {
39
50
  if (parentEnv[key] !== undefined)
40
51
  base[key] = parentEnv[key];
41
52
  }
42
- // The allowlist above is POSIX-shaped. On Windows a child started without
43
- // SystemRoot/COMSPEC/PATHEXT and friends frequently cannot start at all —
44
- // which is why every other spawn path in the codebase applies this floor
45
- // (see spawnEnvNamesFor). `env run --clean` / `secret run --clean` did not,
46
- // so clean-mode injection was unusable there. The floor is names the OS
47
- // requires of any child, not user configuration, so it does not weaken what
48
- // "clean" means about inherited secrets.
49
- if (process.platform === "win32") {
50
- for (const key of WIN32_SPAWN_ENV_FLOOR) {
51
- if (parentEnv[key] !== undefined)
52
- base[key] = parentEnv[key];
53
- }
54
- }
55
53
  }
56
54
  for (const key of options.inherit) {
57
55
  if (parentEnv[key] !== undefined)
@@ -237,8 +237,8 @@ async function runEnvInjected(target, opts) {
237
237
  throw err;
238
238
  }
239
239
  // R-067: was `process.exit(result.status ?? 0)`, which terminates the
240
- // process synchronously and skips the `finally { await
241
- // disposeDispatchResources(); }` block in src/cli.ts's `runCommand` — even
240
+ // process synchronously and skips the `finally { disposeLlmUsageSink(); }`
241
+ // block in src/cli.ts's `runCommand` — even
242
242
  // on the success path, since this call was unconditional. Setting
243
243
  // `process.exitCode` and returning lets cleanup run while still exiting
244
244
  // with the child's exact status once the event loop drains, matching the
@@ -207,8 +207,8 @@ const secretRunCommand = defineJsonCommand({
207
207
  throw err;
208
208
  }
209
209
  // R-067: was `process.exit(result.status ?? 0)`, unconditional even on
210
- // the success path — it skipped the `finally { await
211
- // disposeDispatchResources(); }` cleanup in src/cli.ts's `runCommand`.
210
+ // the success path — it skipped the `finally { disposeLlmUsageSink(); }`
211
+ // cleanup in src/cli.ts's `runCommand`.
212
212
  // Setting `process.exitCode` and returning still exits with the child's
213
213
  // exact status once the event loop drains, but lets cleanup run first —
214
214
  // same pattern `emitJsonError` (src/cli/shared.ts) already established.