akm-cli 0.9.0-rc.5 → 0.9.0-rc.6

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 (430) hide show
  1. package/CHANGELOG.md +116 -26
  2. package/README.md +7 -7
  3. package/SECURITY.md +11 -10
  4. package/dist/akm +2 -2
  5. package/dist/akm-migrate-storage +2 -2
  6. package/dist/assets/hints/cli-hints-full.md +60 -73
  7. package/dist/assets/hints/cli-hints-short.md +8 -12
  8. package/dist/assets/improve-strategies/default.json +5 -7
  9. package/dist/assets/improve-strategies/frequent.json +2 -2
  10. package/dist/assets/improve-strategies/proactive-maintenance.json +2 -2
  11. package/dist/assets/improve-strategies/quick.json +1 -1
  12. package/dist/assets/improve-strategies/reflect-distill.json +3 -3
  13. package/dist/assets/improve-strategies/thorough.json +1 -1
  14. package/dist/assets/prompts/consolidate-system.md +5 -5
  15. package/dist/assets/prompts/extract-session.md +2 -6
  16. package/dist/assets/prompts/reflect-llm-framed-contract.md +11 -0
  17. package/dist/assets/prompts/reflect-llm-schema-contract.md +3 -0
  18. package/dist/assets/prompts/reflect-output-repair.md +3 -0
  19. package/dist/assets/stash-skeleton/README.md +10 -11
  20. package/dist/assets/stash-skeleton/facts/conventions/assets/agent.md +1 -1
  21. package/dist/assets/stash-skeleton/facts/conventions/assets/fact.md +1 -1
  22. package/dist/assets/stash-skeleton/facts/conventions/assets/knowledge.md +1 -1
  23. package/dist/assets/stash-skeleton/facts/conventions/assets/lesson.md +2 -2
  24. package/dist/assets/stash-skeleton/facts/conventions/assets/memory.md +2 -2
  25. package/dist/assets/stash-skeleton/facts/conventions/assets/script.md +1 -1
  26. package/dist/assets/stash-skeleton/facts/conventions/assets/skill.md +2 -2
  27. package/dist/assets/stash-skeleton/facts/conventions/assets/workflow.md +1 -1
  28. package/dist/assets/stash-skeleton/facts/conventions/backlinks.md +18 -18
  29. package/dist/assets/stash-skeleton/facts/conventions/domains.md +8 -9
  30. package/dist/assets/stash-skeleton/facts/conventions/organization.md +13 -15
  31. package/dist/assets/tasks/core/extract.yml +2 -2
  32. package/dist/assets/tasks/core/improve.yml +1 -1
  33. package/dist/assets/templates/html/health.html +2 -3
  34. package/dist/cli/config-migrate.js +1328 -101
  35. package/dist/cli/invocation.js +255 -0
  36. package/dist/cli/parse-args.js +20 -83
  37. package/dist/cli/shared.js +15 -37
  38. package/dist/cli.js +18 -49
  39. package/dist/commands/agent/agent-dispatch.js +2 -2
  40. package/dist/commands/agent/contribute-cli.js +5 -4
  41. package/dist/commands/bundle/bundle-cli.js +68 -0
  42. package/dist/commands/bundle/bundle.js +219 -0
  43. package/dist/commands/completions.js +2 -2
  44. package/dist/commands/config-cli.js +6 -3
  45. package/dist/commands/env/env-binding.js +13 -9
  46. package/dist/commands/env/env-cli.js +49 -48
  47. package/dist/commands/env/secret-cli.js +24 -10
  48. package/dist/commands/events.js +2 -2
  49. package/dist/commands/feedback-cli.js +59 -33
  50. package/dist/commands/graph/graph.js +6 -4
  51. package/dist/commands/health/advisories.js +4 -4
  52. package/dist/commands/health/html-report.js +190 -593
  53. package/dist/commands/health/improve-metrics.js +240 -188
  54. package/dist/commands/health/metrics.js +9 -17
  55. package/dist/commands/health/report-view-model.js +509 -0
  56. package/dist/commands/health/surfaces.js +6 -3
  57. package/dist/commands/health/types-checks.js +4 -0
  58. package/dist/commands/health/types-improve.js +22 -0
  59. package/dist/commands/health/types-metrics.js +4 -0
  60. package/dist/commands/health/types-result.js +7 -0
  61. package/dist/commands/health/types-runs.js +4 -0
  62. package/dist/commands/health/types-session-log.js +4 -0
  63. package/dist/commands/health/types-windows.js +4 -0
  64. package/dist/commands/health/types.js +26 -21
  65. package/dist/commands/health/windows.js +1 -2
  66. package/dist/commands/health.js +219 -161
  67. package/dist/commands/improve/collapse-detector.js +25 -14
  68. package/dist/commands/improve/consolidate/chunking.js +7 -5
  69. package/dist/commands/improve/consolidate.js +640 -740
  70. package/dist/commands/improve/content-hash.js +39 -0
  71. package/dist/commands/improve/distill/content-repair.js +4 -10
  72. package/dist/commands/improve/distill/promote-memory.js +73 -47
  73. package/dist/commands/improve/distill/quality-gate.js +30 -15
  74. package/dist/commands/improve/distill-promotion-policy.js +24 -885
  75. package/dist/commands/improve/distill.js +564 -341
  76. package/dist/commands/improve/eligibility.js +75 -36
  77. package/dist/commands/improve/extract-cli.js +6 -6
  78. package/dist/commands/improve/extract-prompt.js +5 -34
  79. package/dist/commands/improve/extract.js +524 -358
  80. package/dist/commands/improve/feedback-valence.js +2 -12
  81. package/dist/commands/improve/improve-cli.js +11 -20
  82. package/dist/commands/improve/improve-result-file.js +7 -6
  83. package/dist/commands/improve/improve-run-types.js +4 -0
  84. package/dist/commands/improve/improve-strategies.js +3 -9
  85. package/dist/commands/improve/improve.js +781 -668
  86. package/dist/commands/improve/locks.js +6 -2
  87. package/dist/commands/improve/loop-stages.js +938 -965
  88. package/dist/commands/improve/memory/derived-ref.js +122 -0
  89. package/dist/commands/improve/memory/memory-contradiction-detect.js +35 -38
  90. package/dist/commands/improve/memory/memory-improve.js +24 -37
  91. package/dist/commands/improve/outcome-loop.js +13 -33
  92. package/dist/commands/improve/preparation.js +886 -692
  93. package/dist/commands/improve/proactive-maintenance.js +33 -3
  94. package/dist/commands/improve/proposal-envelope.js +31 -0
  95. package/dist/commands/improve/reflect.js +962 -549
  96. package/dist/commands/improve/run-context.js +119 -0
  97. package/dist/commands/improve/salience.js +8 -4
  98. package/dist/commands/improve/session-asset.js +7 -3
  99. package/dist/commands/improve/shared.js +14 -40
  100. package/dist/commands/improve/source-identity.js +39 -26
  101. package/dist/commands/improve/triage.js +20 -17
  102. package/dist/commands/lint/base-linter.js +288 -295
  103. package/dist/commands/lint/index.js +132 -19
  104. package/dist/commands/mv-cli.js +257 -234
  105. package/dist/commands/observability-cli.js +2 -1
  106. package/dist/commands/proposal/diff-format.js +50 -0
  107. package/dist/commands/proposal/drain-policies.js +0 -6
  108. package/dist/commands/proposal/drain.js +17 -16
  109. package/dist/commands/proposal/proposal-cli.js +40 -77
  110. package/dist/commands/proposal/proposal-types.js +56 -0
  111. package/dist/commands/proposal/proposal.js +39 -1
  112. package/dist/commands/proposal/propose.js +41 -19
  113. package/dist/commands/proposal/repository.js +566 -486
  114. package/dist/commands/proposal/validators/proposal-quality-validators.js +22 -6
  115. package/dist/commands/proposal/validators/proposal-validators.js +6 -5
  116. package/dist/commands/proposal/validators/proposals.js +5 -4
  117. package/dist/commands/read/curate.js +50 -28
  118. package/dist/commands/read/knowledge.js +25 -16
  119. package/dist/commands/read/remember-cli.js +12 -4
  120. package/dist/commands/read/search-cli.js +33 -33
  121. package/dist/commands/read/search.js +68 -55
  122. package/dist/commands/read/show.js +54 -135
  123. package/dist/commands/remember.js +7 -5
  124. package/dist/commands/sources/add-cli.js +10 -24
  125. package/dist/commands/sources/bundle-config-ops.js +58 -0
  126. package/dist/commands/sources/history.js +13 -8
  127. package/dist/commands/sources/info.js +10 -11
  128. package/dist/commands/sources/init.js +12 -21
  129. package/dist/commands/sources/installed-stashes.js +151 -138
  130. package/dist/commands/sources/schema-repair.js +5 -3
  131. package/dist/commands/sources/self-update.js +9 -7
  132. package/dist/commands/sources/source-add.js +116 -154
  133. package/dist/commands/sources/source-clone.js +33 -14
  134. package/dist/commands/sources/source-manage.js +43 -32
  135. package/dist/commands/sources/sources-cli.js +12 -7
  136. package/dist/commands/sources/stash-cli.js +12 -5
  137. package/dist/commands/sources/stash-skeleton.js +1 -1
  138. package/dist/commands/tasks/default-tasks.js +13 -13
  139. package/dist/commands/tasks/tasks-cli.js +3 -3
  140. package/dist/commands/tasks/tasks.js +71 -31
  141. package/dist/commands/workflow-cli.js +22 -26
  142. package/dist/core/action-contributors.js +1 -1
  143. package/dist/core/activation-policy.js +49 -0
  144. package/dist/core/adapter/adapters/agent-skills-adapter.js +181 -0
  145. package/dist/core/adapter/adapters/akm-adapter.js +509 -0
  146. package/dist/core/adapter/adapters/akm-lint.js +381 -0
  147. package/dist/core/adapter/adapters/akm-metadata.js +416 -0
  148. package/dist/core/adapter/adapters/akm-task-adapter.js +150 -0
  149. package/dist/core/adapter/adapters/akm-workflow-adapter.js +196 -0
  150. package/dist/core/adapter/adapters/claude-adapter.js +61 -0
  151. package/dist/core/adapter/adapters/dotenv-adapter.js +187 -0
  152. package/dist/core/adapter/adapters/generic-files-adapter.js +117 -0
  153. package/dist/core/adapter/adapters/index.js +80 -0
  154. package/dist/core/adapter/adapters/llm-wiki-adapter.js +413 -0
  155. package/dist/core/adapter/adapters/okf-adapter.js +223 -0
  156. package/dist/core/adapter/adapters/opencode-adapter.js +68 -0
  157. package/dist/core/adapter/adapters/shared.js +286 -0
  158. package/dist/core/adapter/adapters/tool-dir-shared.js +212 -0
  159. package/dist/core/adapter/adapters/website-snapshot-adapter.js +154 -0
  160. package/dist/core/adapter/bundle-adapter.js +4 -0
  161. package/dist/core/adapter/recognize-match.js +42 -0
  162. package/dist/core/adapter/registry.js +56 -0
  163. package/dist/core/adapter/types.js +4 -0
  164. package/dist/core/asset/asset-placement.js +229 -0
  165. package/dist/core/asset/asset-ref.js +107 -78
  166. package/dist/core/asset/asset-serialize.js +20 -0
  167. package/dist/core/asset/frontmatter.js +1 -1
  168. package/dist/core/asset/resolve-ref.js +223 -0
  169. package/dist/core/asset/stash-meta.js +1 -1
  170. package/dist/core/common.js +141 -49
  171. package/dist/core/config/config-io.js +0 -108
  172. package/dist/core/config/config-schema.js +94 -1039
  173. package/dist/core/config/config-sources.js +115 -36
  174. package/dist/core/config/config-types.js +16 -11
  175. package/dist/core/config/config-walker.js +4 -2
  176. package/dist/core/config/config.js +21 -26
  177. package/dist/core/config/engine-semantics.js +0 -4
  178. package/dist/core/config/schema/embedding.js +38 -0
  179. package/dist/core/config/schema/engines.js +116 -0
  180. package/dist/core/config/schema/feedback.js +31 -0
  181. package/dist/core/config/schema/improve-processes.js +395 -0
  182. package/dist/core/config/schema/improve.js +76 -0
  183. package/dist/core/config/schema/index-config.js +183 -0
  184. package/dist/core/config/schema/output.js +15 -0
  185. package/dist/core/config/schema/primitives.js +94 -0
  186. package/dist/core/config/schema/search.js +30 -0
  187. package/dist/core/config/schema/setup.js +27 -0
  188. package/dist/core/config/schema/sources-bundles.js +164 -0
  189. package/dist/core/config/schema/workflow.js +29 -0
  190. package/dist/core/env-secret-ref.js +113 -8
  191. package/dist/core/errors.js +1 -1
  192. package/dist/core/events-types.js +4 -0
  193. package/dist/core/file-change.js +16 -0
  194. package/dist/core/fs-txn.js +316 -0
  195. package/dist/core/git-message.js +59 -0
  196. package/dist/core/improve-result.js +9 -1
  197. package/dist/core/logs-db.js +1 -1
  198. package/dist/core/migration-backup.js +332 -160
  199. package/dist/core/paths.js +3 -6
  200. package/dist/core/platform.js +10 -0
  201. package/dist/core/recognition-util.js +130 -0
  202. package/dist/core/redaction.js +2 -2
  203. package/dist/core/standards/resolve-standards-context.js +47 -64
  204. package/dist/core/standards/resolve-type-conventions.js +3 -3
  205. package/dist/core/state/migrations.js +201 -8
  206. package/dist/core/state-db.js +38 -2
  207. package/dist/core/subprocess.js +303 -0
  208. package/dist/core/time.js +20 -0
  209. package/dist/core/type-presentation.js +130 -0
  210. package/dist/core/write-source.js +38 -67
  211. package/dist/indexer/bundle-identity-guard.js +91 -0
  212. package/dist/indexer/db/graph-db.js +1 -1
  213. package/dist/indexer/db/llm-cache.js +1 -1
  214. package/dist/indexer/ensure-index.js +28 -10
  215. package/dist/indexer/graph/graph-boost.js +28 -24
  216. package/dist/indexer/graph/graph-extraction.js +5 -6
  217. package/dist/indexer/graph/graph-types.js +4 -0
  218. package/dist/indexer/index-written-assets.js +44 -17
  219. package/dist/indexer/indexer.js +289 -153
  220. package/dist/indexer/init.js +18 -25
  221. package/dist/indexer/installations.js +224 -0
  222. package/dist/indexer/passes/dir-staleness.js +2 -1
  223. package/dist/indexer/passes/memory-inference.js +8 -4
  224. package/dist/indexer/passes/metadata.js +96 -243
  225. package/dist/indexer/scan/doc-to-entry.js +123 -0
  226. package/dist/indexer/scan/drain-dir.js +144 -0
  227. package/dist/indexer/search/db-search.js +171 -99
  228. package/dist/indexer/search/fts-query.js +1 -1
  229. package/dist/indexer/search/ranking-contributors.js +57 -7
  230. package/dist/indexer/search/ranking-types.js +4 -0
  231. package/dist/indexer/search/ranking.js +31 -6
  232. package/dist/indexer/search/search-attribution.js +67 -0
  233. package/dist/indexer/search/search-hit-enrichers.js +30 -40
  234. package/dist/indexer/search/search-source.js +109 -52
  235. package/dist/indexer/search/semantic-status.js +4 -1
  236. package/dist/indexer/usage/unmigrated-vaults-guard.js +2 -1
  237. package/dist/indexer/usage/usage-events.js +72 -9
  238. package/dist/indexer/walk/file-context.js +1 -44
  239. package/dist/indexer/walk/matchers.js +16 -32
  240. package/dist/indexer/walk/path-resolver.js +6 -5
  241. package/dist/indexer/walk/walker.js +4 -2
  242. package/dist/integrations/agent/engine-resolution.js +22 -0
  243. package/dist/integrations/agent/model-aliases.js +1 -1
  244. package/dist/integrations/agent/prompts.js +35 -11
  245. package/dist/integrations/agent/spawn.js +41 -270
  246. package/dist/integrations/harnesses/aider/agent-builder.js +2 -2
  247. package/dist/integrations/harnesses/aider/index.js +2 -11
  248. package/dist/integrations/harnesses/amazonq/agent-builder.js +1 -9
  249. package/dist/integrations/harnesses/amazonq/index.js +3 -16
  250. package/dist/integrations/harnesses/claude/config-import.js +1 -3
  251. package/dist/integrations/harnesses/claude/index.js +1 -12
  252. package/dist/integrations/harnesses/claude/session-log.js +27 -65
  253. package/dist/integrations/harnesses/codex/agent-builder.js +1 -2
  254. package/dist/integrations/harnesses/codex/index.js +2 -12
  255. package/dist/integrations/harnesses/copilot/agent-builder.js +2 -3
  256. package/dist/integrations/harnesses/copilot/index.js +1 -12
  257. package/dist/integrations/harnesses/gemini/agent-builder.js +1 -3
  258. package/dist/integrations/harnesses/gemini/index.js +1 -12
  259. package/dist/integrations/harnesses/ids.js +24 -0
  260. package/dist/integrations/harnesses/index.js +27 -2
  261. package/dist/integrations/harnesses/opencode/config-import.js +1 -3
  262. package/dist/integrations/harnesses/opencode/index.js +1 -12
  263. package/dist/integrations/harnesses/opencode/session-log.js +67 -110
  264. package/dist/integrations/harnesses/opencode-sdk/harness.js +2 -11
  265. package/dist/integrations/harnesses/openhands/agent-builder.js +3 -3
  266. package/dist/integrations/harnesses/openhands/index.js +2 -11
  267. package/dist/integrations/harnesses/pi/agent-builder.js +3 -11
  268. package/dist/integrations/harnesses/pi/index.js +3 -15
  269. package/dist/integrations/harnesses/shared.js +17 -0
  270. package/dist/integrations/harnesses/types.js +37 -2
  271. package/dist/integrations/lockfile.js +36 -0
  272. package/dist/integrations/session-logs/index.js +21 -12
  273. package/dist/integrations/session-logs/provider-base.js +113 -0
  274. package/dist/llm/embedders/deterministic.js +2 -2
  275. package/dist/llm/embedders/remote.js +8 -4
  276. package/dist/llm/graph-extract.js +7 -2
  277. package/dist/llm/metadata-enhance.js +43 -26
  278. package/dist/llm/structured-call.js +15 -7
  279. package/dist/migrate/legacy/config-source-migration.js +223 -0
  280. package/dist/migrate/legacy/content-migration.js +305 -0
  281. package/dist/migrate/legacy/legacy-layout.js +779 -0
  282. package/dist/migrate/legacy/legacy-paths.js +25 -0
  283. package/dist/migrate/legacy/legacy-stash-json.js +72 -0
  284. package/dist/migrate/legacy/proposal-fs-import.js +168 -0
  285. package/dist/migrate/legacy/task-target-ref-migration.js +272 -0
  286. package/dist/migrate/legacy/three-db-cutover.js +840 -0
  287. package/dist/migrate/legacy/workflow-migrations-bodies.js +52 -0
  288. package/dist/migrate/legacy/workflow-migrations-frozen.js +21 -0
  289. package/dist/migrate/legacy-ref-grammar.js +209 -0
  290. package/dist/output/command-registry.js +27 -0
  291. package/dist/output/html-render.js +11 -16
  292. package/dist/output/renderers.js +32 -276
  293. package/dist/output/shapes/passthrough.js +3 -9
  294. package/dist/output/shapes/registry.js +12 -6
  295. package/dist/output/text/command-format.js +547 -0
  296. package/dist/output/text/helpers.js +15 -1377
  297. package/dist/output/text/proposal-format.js +230 -0
  298. package/dist/output/text/registry.js +12 -6
  299. package/dist/output/text/show-directives.js +107 -0
  300. package/dist/output/text/show-format.js +103 -0
  301. package/dist/output/text/workflow-format.js +345 -0
  302. package/dist/output/text.js +1 -3
  303. package/dist/registry/build-index.js +13 -17
  304. package/dist/registry/providers/static-index.js +2 -2
  305. package/dist/registry/resolve.js +4 -90
  306. package/dist/registry/semver.js +93 -0
  307. package/dist/runtime.js +90 -0
  308. package/dist/schemas/akm-config.json +2956 -14890
  309. package/dist/scripts/migrate-storage.js +2312 -19643
  310. package/dist/setup/detect.js +5 -7
  311. package/dist/setup/engine-config.js +2 -1
  312. package/dist/setup/registry-stash-loader.js +1 -1
  313. package/dist/setup/semantic-assets.js +12 -9
  314. package/dist/setup/setup.js +109 -39
  315. package/dist/setup/steps/connection-shared.js +120 -0
  316. package/dist/setup/steps/connection.js +50 -274
  317. package/dist/setup/steps/platforms.js +1 -0
  318. package/dist/setup/steps/sources.js +13 -6
  319. package/dist/setup/steps/stashdir.js +5 -2
  320. package/dist/sources/freshness.js +39 -0
  321. package/dist/sources/providers/git-provider.js +29 -33
  322. package/dist/sources/providers/git-stash.js +10 -5
  323. package/dist/sources/providers/provider-utils.js +40 -18
  324. package/dist/sources/providers/website.js +1 -1
  325. package/dist/sources/resolve.js +5 -5
  326. package/dist/sources/snapshot-fetchers/types.js +4 -0
  327. package/dist/sources/{website-ingest.js → snapshot-fetchers/website-ingest.js} +105 -39
  328. package/dist/storage/database.js +47 -3
  329. package/dist/storage/engines/sqlite-migrations.js +34 -16
  330. package/dist/storage/locations.js +1 -2
  331. package/dist/storage/repositories/improve-runs-repository.js +0 -20
  332. package/dist/storage/repositories/index-connection.js +80 -0
  333. package/dist/storage/repositories/index-db.js +4 -3
  334. package/dist/storage/repositories/index-entries-repository.js +952 -0
  335. package/dist/{indexer/db/entry-mapper.js → storage/repositories/index-entry-mapper.js} +15 -2
  336. package/dist/storage/repositories/index-entry-types.js +4 -0
  337. package/dist/storage/repositories/index-fts-repository.js +164 -0
  338. package/dist/storage/repositories/index-llm-cache-repository.js +109 -0
  339. package/dist/storage/repositories/index-meta-repository.js +50 -0
  340. package/dist/{indexer/db/schema.js → storage/repositories/index-schema.js} +241 -100
  341. package/dist/storage/repositories/index-sql.js +12 -0
  342. package/dist/storage/repositories/index-utility-repository.js +369 -0
  343. package/dist/storage/repositories/index-vec-repository.js +245 -0
  344. package/dist/storage/repositories/proposals-repository.js +41 -50
  345. package/dist/storage/repositories/registry-cache.js +1 -1
  346. package/dist/storage/repositories/workflow-runs-repository.js +17 -11
  347. package/dist/tasks/backends/cron.js +5 -5
  348. package/dist/tasks/backends/exec-utils.js +21 -0
  349. package/dist/tasks/backends/index.js +6 -9
  350. package/dist/tasks/backends/launchd.js +16 -17
  351. package/dist/tasks/backends/schtasks.js +33 -41
  352. package/dist/tasks/backends/types.js +4 -0
  353. package/dist/tasks/parser.js +25 -5
  354. package/dist/tasks/runner.js +33 -39
  355. package/dist/tasks/validator.js +5 -6
  356. package/dist/workflows/authoring/authoring.js +8 -11
  357. package/dist/workflows/exec/brief.js +10 -7
  358. package/dist/workflows/exec/report.js +261 -156
  359. package/dist/workflows/exec/run-workflow.js +2 -1
  360. package/dist/workflows/exec/step-work.js +3 -9
  361. package/dist/workflows/program/parser.js +4 -60
  362. package/dist/workflows/renderer.js +11 -60
  363. package/dist/workflows/runtime/checkin.js +1 -1
  364. package/dist/workflows/runtime/plan-classifier.js +7 -4
  365. package/dist/workflows/runtime/runs.js +11 -10
  366. package/dist/workflows/runtime/unit-checkin.js +1 -1
  367. package/dist/workflows/runtime/unit-phases.js +20 -0
  368. package/dist/workflows/runtime/workflow-asset-loader.js +27 -16
  369. package/dist/workflows/validate-summary.js +2 -2
  370. package/dist/workflows/validator.js +18 -2
  371. package/docs/migration/release-notes/0.9.0.md +45 -3
  372. package/docs/migration/v0.8-to-v0.9.md +466 -262
  373. package/docs/{data-and-telemetry.md → reference/data-and-telemetry.md} +61 -17
  374. package/package.json +10 -9
  375. package/schemas/akm-config.json +2956 -14890
  376. package/dist/assets/help/help-accept.md +0 -12
  377. package/dist/assets/help/help-improve.md +0 -87
  378. package/dist/assets/help/help-proposals.md +0 -17
  379. package/dist/assets/help/help-propose.md +0 -17
  380. package/dist/assets/help/help-reject.md +0 -11
  381. package/dist/assets/improve-strategies/recombine-only.json +0 -23
  382. package/dist/assets/improve-strategies/synthesize.json +0 -17
  383. package/dist/assets/prompts/procedural-system.md +0 -44
  384. package/dist/assets/prompts/recombine-system.md +0 -40
  385. package/dist/assets/prompts/staleness-detect-system.md +0 -6
  386. package/dist/assets/templates/html/default.html +0 -78
  387. package/dist/assets/templates/html/vendor/echarts.min.js +0 -45
  388. package/dist/assets/wiki/index-template.md +0 -12
  389. package/dist/assets/wiki/ingest-workflow-template.md +0 -83
  390. package/dist/assets/wiki/log-template.md +0 -8
  391. package/dist/assets/wiki/schema-template.md +0 -61
  392. package/dist/commands/improve/calibration.js +0 -161
  393. package/dist/commands/improve/dedup.js +0 -482
  394. package/dist/commands/improve/hot-probation.js +0 -45
  395. package/dist/commands/improve/improve-auto-accept.js +0 -262
  396. package/dist/commands/improve/procedural.js +0 -403
  397. package/dist/commands/improve/recombine.js +0 -843
  398. package/dist/commands/improve/schema-similarity-gate.js +0 -168
  399. package/dist/commands/lint/agent-linter.js +0 -44
  400. package/dist/commands/lint/command-linter.js +0 -44
  401. package/dist/commands/lint/default-linter.js +0 -16
  402. package/dist/commands/lint/fact-linter.js +0 -39
  403. package/dist/commands/lint/knowledge-linter.js +0 -16
  404. package/dist/commands/lint/memory-linter.js +0 -61
  405. package/dist/commands/lint/registry.js +0 -41
  406. package/dist/commands/lint/skill-linter.js +0 -45
  407. package/dist/commands/lint/task-linter.js +0 -50
  408. package/dist/commands/lint/workflow-linter.js +0 -81
  409. package/dist/commands/proposal/legacy-import.js +0 -115
  410. package/dist/commands/wiki-cli.js +0 -291
  411. package/dist/core/asset/asset-registry.js +0 -76
  412. package/dist/core/asset/asset-spec.js +0 -316
  413. package/dist/core/eval/rank-metrics.js +0 -113
  414. package/dist/core/ripgrep/install.js +0 -163
  415. package/dist/core/ripgrep/resolve.js +0 -81
  416. package/dist/indexer/db/db.js +0 -1585
  417. package/dist/indexer/manifest.js +0 -170
  418. package/dist/indexer/passes/metadata-contributors.js +0 -31
  419. package/dist/integrations/harnesses/opencode-sdk/index.js +0 -25
  420. package/dist/output/text/wiki.js +0 -16
  421. package/dist/scripts/migrations/import-fs-improve-runs-to-db.js +0 -18229
  422. package/dist/scripts/migrations/v16-to-v17.js +0 -141
  423. package/dist/storage/repositories/consolidation-repository.js +0 -38
  424. package/dist/storage/repositories/recombine-repository.js +0 -213
  425. package/dist/wiki/wiki-templates.js +0 -15
  426. package/dist/wiki/wiki.js +0 -1013
  427. package/dist/workflows/db.js +0 -413
  428. package/docs/migration/release-notes/0.9.0-beta.60.md +0 -19
  429. /package/dist/sources/{wiki-fetchers → snapshot-fetchers}/registry.js +0 -0
  430. /package/dist/sources/{wiki-fetchers → snapshot-fetchers}/youtube.js +0 -0
package/CHANGELOG.md CHANGED
@@ -4,10 +4,79 @@ All notable changes to this project will be documented in this file.
4
4
 
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
6
6
 
7
- ## [Unreleased]
7
+ ## [0.9.0] - 2026-07-20
8
+
9
+ 0.9.0 is the format-neutral **bundle / adapter** refactor: it replaces the flat
10
+ asset-type registry with per-format adapters, adopts one canonical ref grammar,
11
+ and consolidates the durable databases and config. This section supersedes the
12
+ earlier `0.9.0-rc.1` / `0.9.0-beta.*` development entries below.
13
+
14
+ ### Breaking changes & migration
15
+
16
+ - **Installed non-akm bundles reclassify on your next `akm index`.** The
17
+ indexer now dispatches each installed bundle's *detected* adapter (Claude
18
+ tool dirs, LLM wikis, website snapshots, agent-skills packs, …) instead of
19
+ recognizing everything with the akm-stash adapter. Entries in such bundles
20
+ change type and ref spelling to the owning adapter's own scheme the first
21
+ time you reindex. No action needed — the index is a regenerable cache and
22
+ rebuilds itself — but searches/saved refs into those bundles may resolve to
23
+ the new spellings afterwards.
24
+ - **Ref grammar cutover — `type:name` → `[bundle//]conceptId`.** Every ref is
25
+ now a subdir-qualified concept id inside its bundle (`skills/code-review`,
26
+ `memories/vpn-note`, `env/prod`), optionally prefixed with a `bundle//`
27
+ installation slug and suffixed with `#fragment`. Durable state stores the
28
+ fully-qualified `bundle//conceptId`; the short bundle-omitted form is accepted
29
+ input only (resolved against `defaultBundle`, then installation-priority
30
+ order). The pre-0.9.0 `[origin//]type:name` grammar is removed — there is no
31
+ compatibility parser; the frozen migrator in `src/migrate/legacy/` is the only
32
+ place it survives.
33
+ - **Explicit, journaled, crash-resumable cutover (`akm migrate apply`).** The
34
+ migrator re-keys all durable state to the new spelling, folds the former
35
+ `workflow.db` into `state.db` (four databases down to three: `state.db` /
36
+ `index.db` / a separate `logs.db`), and migrates config from the flat
37
+ `stashDir` / `sources` / `installed` / `wikiName` keys to `bundles` /
38
+ `defaultBundle`. A verified, installation-scoped **backup manifest v3**
39
+ (covering the pre-rescue `index.db`) is taken before any ledger is sealed;
40
+ expected orphans are quarantined, integrity failures fail closed, and the
41
+ whole cutover resumes idempotently after a crash. Normal commands refuse an
42
+ un-migrated or divergent durable schema rather than migrating as a side effect.
43
+ The retired `stashDir` / `sources` / `installed` keys are **hard-rejected** by
44
+ the 0.9.0 config schema whenever present (the error names `akm migrate apply`);
45
+ registry-installed bundles keep only their desired locator (`git`/`npm` +
46
+ `registryId`) in config, with resolved cache state living exclusively in the
47
+ lockfile.
48
+ - **`index.md` / `log.md` are reserved structural files.** Per the Open
49
+ Knowledge Format, `index.md` (directory listing) and `log.md` (update history)
50
+ are never indexed as concepts and are never valid write / `mv` targets at any
51
+ bundle depth. Existing stash files with those names are excluded from the
52
+ index (and renamed by the content migration when they hold a real concept).
53
+ - **`vault` asset type removed.** Use `env` (a whole `.env` group; key names
54
+ surfaced, values never) and `secret` (a single sensitive value), addressed as
55
+ `env/<name>` and `secrets/<name>`. `akm-migrate-storage` still performs the
56
+ non-destructive `vaults/` → `env/` copy for older stashes.
57
+ - **0.8-era CLI aliases removed.** The flat proposal verbs (`akm proposals`,
58
+ `akm accept`, `akm reject`, `akm diff`, `akm revert`, `akm show proposal`),
59
+ `akm save`, top-level `akm enable` / `akm disable`, `akm events`,
60
+ `--detail summary|agent`, `--for-agent`, `--note`, and `--source` (on
61
+ accept/reject/history) are gone — use the canonical spellings documented in
62
+ `STABILITY.md`.
63
+
64
+ See `docs/migration/v0.8-to-v0.9.md` and
65
+ `docs/migration/release-notes/0.9.0.md` for the full upgrade procedure.
8
66
 
9
67
  ### Added
10
68
 
69
+ - **Local downstream value attribution for memory inference and graph
70
+ extraction.** Private search-hit sidecars now write versioned, source-qualified
71
+ per-entry `usage_events.metadata` for emitted MI direct/surface value and the
72
+ active graph contributor's positive applied/capped contribution. Current plain
73
+ traffic is marked as control, brief/replaced MI surfaces and graph ablations do
74
+ not claim attribution, and nested curate reads avoid duplicate show rows. The
75
+ read-only `akm-eval-attribution-rollup` separates user-only exposure,
76
+ selection/show consumption, current controls, and historical unattributed rows
77
+ without emitting bodies, query text, or provenance content. Graph contribution
78
+ is an input attribution signal, not a causal claim that rank changed. No table,
79
+ migration, dashboard, or health schema was added.
11
80
  - **Explicit, crash-resumable 0.9 migration coordination.** `akm migrate
12
81
  status` classifies config, `state.db`, and `workflow.db` independently;
13
82
  `akm migrate apply [--config <prepared>]` creates a verified,
@@ -165,7 +234,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
165
234
  exceeding it warns on stderr but still writes. Additionally, a type-root
166
235
  write (no `--path`, flat name) into a stash carrying convention facts now
167
236
  returns an additive `hint` output key pointing at the stash's placement
168
- conventions (`fact:conventions/organization` when that fact exists), so CLI
237
+ conventions (`facts/conventions/organization` when that fact exists), so CLI
169
238
  writers see the conventions that LLM flows already receive by injection.
170
239
  - **`--supersedes <ref>` on `akm remember` and `akm import` — atomic
171
240
  correction + demotion of the superseded asset.** The stash conventions'
@@ -195,9 +264,9 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
195
264
  parser. On a git write target the demotion is ordered before the
196
265
  batch-at-boundary commit, so the correction and the demoted old asset land
197
266
  in one commit.
198
- - **Ref-prefix search queries — `akm search "<type>:<prefix>/"` now enumerates
267
+ - **Ref-prefix search queries — `akm search "<subdir>/<prefix>/"` now enumerates
199
268
  that subtree.** A query shaped like a ref prefix (trailing slash required:
200
- `memory:projectA/`; a bare `memory:` lists the whole type) translates to a
269
+ `memories/projectA/`; a bare `memories/` lists the whole type) translates to a
201
270
  typed index enumeration narrowed to entry names under the prefix, instead of
202
271
  degenerating into the AND-token FTS query its sanitized form used to produce
203
272
  (`"memory projectA"` — noise, since `entry_type` is not an FTS column). The
@@ -207,15 +276,15 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
207
276
  composes with `--limit`, `--belief`, `--filter`, and named `--source`
208
277
  narrowing exactly like the existing empty-query enumeration — hits carry the
209
278
  fixed browse score `1` in deterministic listing order, not a relevance
210
- ranking. The parsed type is explicit intent: a bare `session:` enumerates
279
+ ranking. The parsed type is explicit intent: a bare `sessions/` enumerates
211
280
  sessions just like `--type session` (the default session exclusion is an
212
281
  untyped-path policy), while an explicit `--type` flag always wins over the
213
282
  type parsed from the query (the branch fires only on untyped searches). A
214
- full ref without the trailing slash (`memory:projectA/auth-tip`) stays an
283
+ full ref without the trailing slash (`memories/projectA/auth-tip`) stays an
215
284
  ordinary keyword search — resolving a single ref is `akm show`'s job.
216
285
  **Stable-surface note:** `akm search` is Stable; this changes results for a
217
286
  query shape that previously returned noise or nothing. A user literally
218
- keyword-searching for the string `memory:x/` loses the old fuzzy token
287
+ keyword-searching for the string `memories/x/` loses the old fuzzy token
219
288
  behavior — accepted as negligible.
220
289
  - **The `category:` frontmatter key is now captured into the index** as
221
290
  `entry.category` (entry_json only — no schema migration). The key already
@@ -223,8 +292,8 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
223
292
  fact linter, but the indexer never captured it, so no category-keyed search
224
293
  or ranking policy was implementable. Captured for all markdown asset types
225
294
  alongside `beliefState` (trimmed; blank/non-string values ignored; no
226
- default invented), and whitelisted through the `.stash.json` entry
227
- round-trip. Search results and ranking are unchanged — this is capture
295
+ default invented), captured directly onto the index entry. Search results
296
+ and ranking are unchanged — this is capture
228
297
  only (a unit test pins that `category` never enters the FTS search
229
298
  fields). **Requires a reindex to take effect** for existing entries. The
230
299
  companion rank-time demotion of `category: convention` facts on untyped
@@ -301,6 +370,27 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
301
370
 
302
371
  ### Changed
303
372
 
373
+ - **Improve-stage extraction and proactive maintenance now ship opt-in.** The
374
+ built-in `default` and `frequent` strategies resolve extract off, while
375
+ `default` and `reflect-distill` resolve `proactiveMaintenance` off. The
376
+ dedicated `proactive-maintenance` strategy remains enabled. Built-ins such as
377
+ `thorough` that omit these fields inherit the new `default` off values; user
378
+ overrides are merged last, so explicit `enabled: true` values still win.
379
+ Standalone extraction remains independent of the improve-stage toggle but
380
+ still requires `--type <harness>` or `--auto`. The bundled, unselected
381
+ `core/extract` task now uses `akm extract --auto`; existing scheduled tasks
382
+ with invalid bare `akm extract` commands must be updated explicitly.
383
+ - **Indexing dispatches each bundle's detected adapter.** The indexer's per-
384
+ directory scan now resolves the component's adapter (`adapterForId`) and runs
385
+ THAT adapter's `recognize`, instead of always using the `akm` adapter. A
386
+ component whose adapter id is unknown is skipped with a warning. Adapter-owned
387
+ filtering moves the AKM-stash sensitive/infra exclusions (env/secret
388
+ `.sensitive`-marker skips, the legacy `vaults/` skip, wiki infra files) out of
389
+ the core scan and into the `akm` adapter's own recognition, so each adapter
390
+ owns its bundle's filtering. **Reindex note:** any non-`akm` bundle that was
391
+ previously probed as one adapter id but still recognized by `akm` will
392
+ re-index under its own adapter on the next `akm index` — the index is a
393
+ regenerable cache, so no migration is required.
304
394
  - **Improve target identity is now end-to-end and source-qualified.** Explicit
305
395
  targets govern reads, generated proposals, triage promotion, consolidation,
306
396
  retrieval signals, cooldowns, and replay state. Duplicate bare refs in other
@@ -313,7 +403,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
313
403
  - **Directory (scope/domain) tokens now always merge into `tags` at index
314
404
  time**, even when an asset sets explicit `tags:` frontmatter. Previously
315
405
  explicit tags suppressed all path-derived tags, so a nested asset like
316
- `memory:projectA/auth-tip` with `tags: [auth]` silently lost the exact
406
+ `memories/projectA/auth-tip` with `tags: [auth]` silently lost the exact
317
407
  tag-match ranking boost for its scope token unless the author restated it.
318
408
  The merged tokens come from the canonical ref subpath
319
409
  (`extractDirTagsFromName`), which also fixes the flat-walk indexing path
@@ -375,7 +465,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
375
465
  keys (`name`, `updated` were missing); removed the documented-but-nonexistent
376
466
  `akm workflow step` alias from `docs/features/workflows.md`.
377
467
 
378
- ## [0.9.0] 2026-06-30
468
+ ## [0.9.0-rc.1] - 2026-06-30
379
469
 
380
470
  ### Fixed
381
471
 
@@ -514,7 +604,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
514
604
  convention, or `.meta/index.md` files. Seeding stays absent-only and never
515
605
  overwrites a user-edited file. (#646)
516
606
 
517
- ## [0.9.0-beta.36] 2026-06-22
607
+ ## [0.9.0-beta.36] - 2026-06-22
518
608
 
519
609
  ### Added
520
610
 
@@ -549,7 +639,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
549
639
  - Corrected a prompt/validator drift where the distill system prompt asked for an
550
640
  80–200 char description while the gate enforced 20–400. (#645)
551
641
 
552
- ## [0.9.0-beta.35] 2026-06-21
642
+ ## [0.9.0-beta.35] - 2026-06-21
553
643
 
554
644
  ### Fixed
555
645
 
@@ -577,7 +667,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
577
667
  LLM call per processed session (the session summary); set it to `false` to halve
578
668
  per-session extract cost. Unchanged/skipped sessions still cost zero.
579
669
 
580
- ## [0.9.0-beta.34] 2026-06-21
670
+ ## [0.9.0-beta.34] - 2026-06-21
581
671
 
582
672
  ### Fixed
583
673
 
@@ -592,7 +682,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
592
682
  and falls back to the JSON layout. Verified end-to-end through the plugin's
593
683
  `session.idle` hook.
594
684
 
595
- ## [0.9.0-beta.33] 2026-06-21
685
+ ## [0.9.0-beta.33] - 2026-06-21
596
686
 
597
687
  ### Fixed
598
688
 
@@ -608,7 +698,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
608
698
  already-extracted session with zero LLM calls) and only `--force` re-extracts. This
609
699
  makes a session-end hook firing `extract --session-id <id>` precise AND idempotent.
610
700
 
611
- ## [0.9.0-beta.32] 2026-06-21
701
+ ## [0.9.0-beta.32] - 2026-06-21
612
702
 
613
703
  ### Added
614
704
 
@@ -634,7 +724,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
634
724
  with freshly-read timestamp maps INSIDE the lock (`filterProactiveDue`), dropping
635
725
  refs a concurrent run already reflected.
636
726
 
637
- ## [0.9.0-beta.31] 2026-06-20
727
+ ## [0.9.0-beta.31] - 2026-06-20
638
728
 
639
729
  ### Changed
640
730
 
@@ -647,7 +737,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
647
737
  On the live stash this turns the recombine cluster set from generic 66–171-member
648
738
  buckets into tight topical clusters (`auth`, `architecture`, `patterns`, …).
649
739
 
650
- ## [0.9.0-beta.30] 2026-06-20
740
+ ## [0.9.0-beta.30] - 2026-06-20
651
741
 
652
742
  ### Changed / Fixed
653
743
 
@@ -666,7 +756,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
666
756
  membership-overlap (≥ 0.7) and reuses its stable ref, so the streak accumulates
667
757
  through membership drift. First/non-overlapping induction is unchanged.
668
758
 
669
- ## [0.9.0-beta.29] 2026-06-20
759
+ ## [0.9.0-beta.29] - 2026-06-20
670
760
 
671
761
  ### Reverted
672
762
 
@@ -674,7 +764,7 @@ The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/).
674
764
  `akm fact` CLI shipped in beta.28 was reverted pending rework. Phase 1 (#629, the
675
765
  `fact` asset type itself) remains in place.
676
766
 
677
- ## [0.9.0-beta.27] 2026-06-20
767
+ ## [0.9.0-beta.27] - 2026-06-20
678
768
 
679
769
  All new behavior is **opt-in / default-preserving** — default runs are byte-identical.
680
770
 
@@ -720,7 +810,7 @@ All new behavior is **opt-in / default-preserving** — default runs are byte-id
720
810
  hang/timeout** (the busy-spin can rarely fire even at `--parallel=1`) and never
721
811
  on a real test failure, so genuine red tests still fail fast and are never masked.
722
812
 
723
- ## [0.9.0-beta.26] 2026-06-20
813
+ ## [0.9.0-beta.26] - 2026-06-20
724
814
 
725
815
  ### Added
726
816
 
@@ -737,7 +827,7 @@ All new behavior is **opt-in / default-preserving** — default runs are byte-id
737
827
  Azure Container Apps). New docs section "Hosting AKM databases on a network share
738
828
  (NFS/SMB)" in `docs/configuration.md`.
739
829
 
740
- ## [0.9.0-beta.25] 2026-06-19
830
+ ## [0.9.0-beta.25] - 2026-06-19
741
831
 
742
832
  Completes the recombine / extract-efficiency / graph thread. All new improve
743
833
  passes are **opt-in (default off)**, so default behavior is unchanged.
@@ -775,20 +865,20 @@ passes are **opt-in (default off)**, so default behavior is unchanged.
775
865
  sandbox dirs left by force-killed workers — eliminating the tmpfs accumulation
776
866
  that caused intermittent `EEXIST: epoll_ctl` test flakes.
777
867
 
778
- ## [0.9.0-beta.20] 2026-06-18
868
+ ## [0.9.0-beta.20] - 2026-06-18
779
869
 
780
870
  ### Fixed
781
871
 
782
872
  - **`akm update --all` no longer fails for writable `github:` entries stored as `source:"git"`**. `updateRegistryEntry` was using `synced.source` (re-derived from the ref scheme as `"github"`) instead of the existing `entry.source`, causing the config validator to reject `writable:true` on every update cycle.
783
873
 
784
- ## [0.9.0-beta.19] 2026-06-17
874
+ ## [0.9.0-beta.19] - 2026-06-17
785
875
 
786
876
  ### Fixed
787
877
 
788
878
  - **`akm feedback` now completes in ~0.3s** (was 3+ minutes). Root cause: the command was calling `ensureIndex` with `mode: "blocking"` inside `withIndexWriterLease`, triggering a full reindex on every feedback call. Fix: removed the `ensureIndex` call entirely (feedback only needs the index to exist, not be current — a stale index is fine for ref lookup); removed the application-level writer lock (SQLite WAL + `busy_timeout=30s` handles concurrent access with `akm improve`); added a fast DB-exists guard with a clear error for first-time users.
789
879
  - **`akm health --format html` now completes in ~11s** (was ~18s). Root cause: `akmHealth()` was called twice — once for the main result and once to get `deltas`. Fix: merged into a single call passing both `groupBy: "run"` and `windowCompare` together.
790
880
 
791
- ## [0.9.0-beta.18] 2026-06-17
881
+ ## [0.9.0-beta.18] - 2026-06-17
792
882
 
793
883
  ### Changed
794
884
 
@@ -1240,7 +1330,7 @@ proposal and log storage, `--format html` output, and per-stage LLM telemetry.
1240
1330
 
1241
1331
  ### Added
1242
1332
 
1243
- - **Cross-runtime: akm now runs on Node.js >= 20.12 in addition to Bun** (#560,
1333
+ - **Cross-runtime: akm now runs on Node.js >= 22 in addition to Bun** (#560,
1244
1334
  #465). A two-file runtime boundary (`src/storage/database.ts` owns SQLite via
1245
1335
  `bun:sqlite` on Bun / `better-sqlite3` on Node; `src/runtime.ts` owns every
1246
1336
  `Bun.*` API) contains all runtime-specific code, enforced by a lint guard so it
package/README.md CHANGED
@@ -24,7 +24,7 @@ curl -fsSL https://github.com/itlackey/akm/releases/latest/download/install.sh |
24
24
  irm https://github.com/itlackey/akm/releases/latest/download/install.ps1 | iex
25
25
  ```
26
26
 
27
- **Option 2 — npm package (requires [Node.js](https://nodejs.org) >= 20.12):**
27
+ **Option 2 — npm package (requires [Node.js](https://nodejs.org) >= 22):**
28
28
 
29
29
  ```sh
30
30
  npm install -g akm-cli
@@ -47,7 +47,7 @@ binaries are runtime-free.
47
47
  akm setup # Guided setup: configure, initialize, and index
48
48
  akm add github:owner/repo # Add a stash from GitHub
49
49
  akm search "deploy" # Find assets across all sources
50
- akm show script:deploy.sh # View details and run command
50
+ akm show scripts/deploy.sh # View details and run command
51
51
  ```
52
52
 
53
53
  ## Why akm?
@@ -92,11 +92,11 @@ Manage stashes with `akm list`, `akm update --all`, and `akm remove`.
92
92
 
93
93
  Full docs, CLI reference, and guides are available on [GitHub](https://github.com/itlackey/akm):
94
94
 
95
- - [Getting Started](https://github.com/itlackey/akm/blob/main/docs/getting-started.md)
96
- - [CLI Reference](https://github.com/itlackey/akm/blob/main/docs/cli.md)
97
- - [Configuration](https://github.com/itlackey/akm/blob/main/docs/configuration.md)
98
- - [Stash Maker's Guide](https://github.com/itlackey/akm/blob/main/docs/stash-makers.md)
99
- - [Registry](https://github.com/itlackey/akm/blob/main/docs/registry.md)
95
+ - [Getting Started](https://github.com/itlackey/akm/blob/main/docs/guides/getting-started.md)
96
+ - [CLI Reference](https://github.com/itlackey/akm/blob/main/docs/reference/cli.md)
97
+ - [Configuration](https://github.com/itlackey/akm/blob/main/docs/reference/configuration.md)
98
+ - [Stash Maker's Guide](https://github.com/itlackey/akm/blob/main/docs/guides/stash-makers.md)
99
+ - [Registry](https://github.com/itlackey/akm/blob/main/docs/reference/registry.md)
100
100
 
101
101
  ## License
102
102
 
package/SECURITY.md CHANGED
@@ -31,7 +31,7 @@ shell commands (via scripts, workflows, and agent dispatch), and talks to
31
31
  explicitly configured external services (LLM endpoints, git remotes, npm,
32
32
  HTTP sources). It does **not** ship telemetry, send data to anyone by
33
33
  default, or open network listeners. See
34
- [`docs/data-and-telemetry.md`](docs/data-and-telemetry.md) for the on-disk
34
+ [`docs/reference/data-and-telemetry.md`](docs/reference/data-and-telemetry.md) for the on-disk
35
35
  inventory.
36
36
 
37
37
  Several akm surfaces execute user-controlled code or data with the full
@@ -43,19 +43,19 @@ bugs, but you should be aware of them:
43
43
  Workflow steps run in your shell with your PATH and your environment
44
44
  variables — including any secrets you have exported or loaded via
45
45
  `akm env run` / `akm secret run`. **Only add workflow sources you trust.** See
46
- [`docs/features/workflows.md` — "Security: workflow sources are executed
47
- code"](docs/features/workflows.md#security-workflow-sources-are-executed-code)
46
+ [`docs/reference/workflows.md` — "Security: workflow sources are executed
47
+ code"](docs/reference/workflows.md#security-workflow-sources-are-executed-code)
48
48
  for the full discussion.
49
49
 
50
50
  ### Scripts execute shell commands
51
51
 
52
- `akm show script:<name>` returns a `run:` command line the user (or an
52
+ `akm show scripts/<name>` returns a `run:` command line the user (or an
53
53
  integrating agent) then executes. The same trust model applies: scripts you
54
54
  install from third-party stashes are third-party code.
55
55
 
56
56
  ### Agents and commands embed user-authored prompts
57
57
 
58
- `akm show agent:<name>` and `akm show command:<name>` return prompt
58
+ `akm show agents/<name>` and `akm show commands/<name>` return prompt
59
59
  templates and system prompts that an LLM will execute. A malicious stash
60
60
  maintainer could write a system prompt that instructs the LLM to read
61
61
  sensitive files in your working tree and exfiltrate them via the LLM
@@ -70,11 +70,12 @@ files to source control. Normal `akm env` and `akm secret` output never echoes
70
70
  values; materialize values only at the command boundary with `akm env run`,
71
71
  `akm secret run`, or `akm secret path`.
72
72
 
73
- ### Improve / propose / distill send asset content to the configured LLM
73
+ ### Improve / propose send asset content to the configured LLM
74
74
 
75
- `akm improve`, `akm propose`, `akm distill`, `akm reflect`, and `akm
76
- consolidate` can send asset frontmatter and body to the named LLM engine selected
77
- by the command, strategy, or current defaults. LLM connections live under
75
+ `akm improve` (whose strategies run processes such as reflect, distill, and
76
+ consolidate) and `akm propose` can send asset frontmatter and body to the
77
+ named LLM engine selected by the command, strategy, or current defaults. LLM
78
+ connections live under
78
79
  `engines.<name>` in `~/.config/akm/config.json`. If you configure a third-party
79
80
  LLM, your asset content goes to that third party. Use a local engine endpoint
80
81
  (for example, `http://localhost:11434/v1/chat/completions` via Ollama) for assets
@@ -82,7 +83,7 @@ containing secrets or private notes.
82
83
 
83
84
  ## Known non-issues
84
85
 
85
- - **The `akm-cli` npm package requires Node.js >= 20.12 as its bootstrap.** A
86
+ - **The `akm-cli` npm package requires Node.js >= 22 as its bootstrap.** A
86
87
  working Bun >= 1.0 is preferred for execution when it is also on `PATH`; old,
87
88
  unusable, or absent Bun installations fall back to Node.js. Bun does not
88
89
  remove the package's Node.js requirement. Standalone binaries are
package/dist/akm CHANGED
@@ -8,8 +8,8 @@ import { fileURLToPath } from "node:url";
8
8
 
9
9
  if (!process.versions.bun) {
10
10
  const [major = 0, minor = 0] = process.versions.node.split(".").map(Number);
11
- if (major < 20 || (major === 20 && minor < 12)) {
12
- console.error("The akm-cli npm package requires Node.js >= 20.12 to bootstrap.");
11
+ if (major < 22) {
12
+ console.error("The akm-cli npm package requires Node.js >= 22 to bootstrap.");
13
13
  process.exit(1);
14
14
  }
15
15
  }
@@ -8,8 +8,8 @@ import { fileURLToPath } from "node:url";
8
8
 
9
9
  if (!process.versions.bun) {
10
10
  const [major = 0, minor = 0] = process.versions.node.split(".").map(Number);
11
- if (major < 20 || (major === 20 && minor < 12)) {
12
- console.error("The akm-cli npm package requires Node.js >= 20.12 to bootstrap.");
11
+ if (major < 22) {
12
+ console.error("The akm-cli npm package requires Node.js >= 22 to bootstrap.");
13
13
  process.exit(1);
14
14
  }
15
15
  }