akm-cli 0.9.0-rc.0 → 0.9.0-rc.13

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 (598) hide show
  1. package/CHANGELOG.md +1283 -22
  2. package/README.md +62 -37
  3. package/SECURITY.md +46 -31
  4. package/dist/akm +162 -38
  5. package/dist/akm-migrate +44 -0
  6. package/dist/assets/backends/schtasks-template.xml +2 -1
  7. package/dist/assets/hints/cli-hints-full.md +268 -118
  8. package/dist/assets/hints/cli-hints-short.md +87 -24
  9. package/dist/assets/{profiles → improve-strategies}/catchup.json +3 -1
  10. package/dist/assets/{profiles → improve-strategies}/consolidate.json +3 -1
  11. package/dist/assets/{profiles → improve-strategies}/default.json +6 -7
  12. package/dist/assets/improve-strategies/frequent.json +15 -0
  13. package/dist/assets/{profiles → improve-strategies}/graph-refresh.json +4 -2
  14. package/dist/assets/{profiles → improve-strategies}/memory-focus.json +4 -1
  15. package/dist/assets/{profiles → improve-strategies}/proactive-maintenance.json +5 -5
  16. package/dist/assets/{profiles → improve-strategies}/quick.json +4 -2
  17. package/dist/assets/improve-strategies/reflect-distill.json +30 -0
  18. package/dist/assets/{profiles → improve-strategies}/thorough.json +1 -1
  19. package/dist/assets/prompts/consolidate-system.md +5 -5
  20. package/dist/assets/prompts/extract-session.md +2 -6
  21. package/dist/assets/prompts/memory-infer-user.md +2 -3
  22. package/dist/assets/prompts/reflect-llm-framed-contract.md +11 -0
  23. package/dist/assets/prompts/reflect-llm-schema-contract.md +3 -0
  24. package/dist/assets/prompts/reflect-output-repair.md +3 -0
  25. package/dist/assets/prompts/workflow-unit-preamble.md +26 -0
  26. package/dist/assets/stash-skeleton/README.md +38 -10
  27. package/dist/assets/stash-skeleton/facts/conventions/assets/agent.md +8 -0
  28. package/dist/assets/stash-skeleton/facts/conventions/assets/command.md +8 -0
  29. package/dist/assets/stash-skeleton/facts/conventions/assets/fact.md +14 -1
  30. package/dist/assets/stash-skeleton/facts/conventions/assets/knowledge.md +13 -1
  31. package/dist/assets/stash-skeleton/facts/conventions/assets/lesson.md +9 -1
  32. package/dist/assets/stash-skeleton/facts/conventions/assets/memory.md +11 -0
  33. package/dist/assets/stash-skeleton/facts/conventions/assets/script.md +9 -0
  34. package/dist/assets/stash-skeleton/facts/conventions/assets/skill.md +9 -0
  35. package/dist/assets/stash-skeleton/facts/conventions/assets/workflow.md +8 -0
  36. package/dist/assets/stash-skeleton/facts/conventions/backlinks.md +100 -0
  37. package/dist/assets/stash-skeleton/facts/conventions/domains.md +64 -0
  38. package/dist/assets/stash-skeleton/facts/conventions/organization.md +136 -0
  39. package/dist/assets/tasks/core/extract.yml +3 -2
  40. package/dist/assets/tasks/core/improve.yml +2 -1
  41. package/dist/assets/tasks/core/index-refresh.yml +1 -0
  42. package/dist/assets/tasks/core/sync.yml +1 -0
  43. package/dist/assets/tasks/core/version-check.yml +2 -1
  44. package/dist/assets/tasks/improve/akm-graph-refresh-weekly.yml +5 -0
  45. package/dist/assets/tasks/improve/akm-improve-catchup.yml +8 -0
  46. package/dist/assets/tasks/improve/akm-improve-consolidate.yml +5 -0
  47. package/dist/assets/tasks/improve/akm-improve-frequent.yml +5 -0
  48. package/dist/assets/tasks/improve/akm-improve-nightly.yml +5 -0
  49. package/dist/assets/templates/html/health.html +5 -4
  50. package/dist/assets/workflows/workflow-template.md +31 -15
  51. package/dist/cli/invocation.js +279 -0
  52. package/dist/cli/parse-args.js +5 -90
  53. package/dist/cli/retired-commands.js +78 -0
  54. package/dist/cli/shared.js +158 -48
  55. package/dist/cli-node.mjs +2 -1
  56. package/dist/cli.js +747 -293
  57. package/dist/commands/agent/agent-dispatch.js +19 -18
  58. package/dist/commands/agent/agent-support.js +0 -24
  59. package/dist/commands/agent/contribute-cli.js +43 -97
  60. package/dist/commands/completions.js +80 -23
  61. package/dist/commands/config-cli.js +44 -281
  62. package/dist/commands/env/env-binding.js +99 -0
  63. package/dist/commands/env/env-cli.js +84 -224
  64. package/dist/commands/env/env.js +12 -163
  65. package/dist/commands/env/marker-path.js +6 -0
  66. package/dist/commands/env/secret-cli.js +45 -61
  67. package/dist/commands/env/secret.js +32 -62
  68. package/dist/commands/feedback-cli.js +179 -85
  69. package/dist/commands/health/accept-rate.js +58 -0
  70. package/dist/commands/health/advisories.js +7 -8
  71. package/dist/commands/health/checks.js +279 -94
  72. package/dist/commands/health/html-report.js +197 -578
  73. package/dist/commands/health/improve-metrics.js +277 -246
  74. package/dist/commands/health/llm-usage.js +19 -19
  75. package/dist/commands/health/md-report.js +16 -7
  76. package/dist/commands/health/metrics.js +67 -32
  77. package/dist/commands/health/renderers.js +47 -0
  78. package/dist/commands/health/report-view-model.js +508 -0
  79. package/dist/commands/health/stash-exposure.js +1 -1
  80. package/dist/commands/health/surfaces.js +16 -56
  81. package/dist/commands/health/task-runs.js +3 -67
  82. package/dist/{migrate-storage-node.mjs → commands/health/types-checks.js} +1 -5
  83. package/dist/commands/health/types-improve.js +29 -0
  84. package/dist/{output/text/save.js → commands/health/types-metrics.js} +1 -2
  85. package/dist/commands/health/types-result.js +7 -0
  86. package/dist/commands/health/types-runs.js +4 -0
  87. package/dist/commands/health/types-session-log.js +4 -0
  88. package/dist/commands/health/types-windows.js +4 -0
  89. package/dist/commands/health/types.js +26 -21
  90. package/dist/commands/health/windows.js +2 -3
  91. package/dist/commands/health.js +296 -167
  92. package/dist/commands/improve/anti-collapse.js +5 -5
  93. package/dist/commands/improve/autonomy-gate.js +68 -0
  94. package/dist/commands/improve/collapse-detector.js +65 -52
  95. package/dist/commands/improve/consolidate/chunking.js +9 -7
  96. package/dist/commands/improve/consolidate/eligibility.js +1 -23
  97. package/dist/commands/improve/consolidate/merge.js +4 -0
  98. package/dist/commands/improve/consolidate.js +454 -1354
  99. package/dist/commands/improve/content-hash.js +39 -0
  100. package/dist/commands/improve/distill/content-repair.js +4 -10
  101. package/dist/commands/improve/distill/promote-memory.js +89 -64
  102. package/dist/commands/improve/distill/quality-gate.js +118 -42
  103. package/dist/commands/improve/distill-guards.js +1 -1
  104. package/dist/commands/improve/distill-promotion-policy.js +33 -888
  105. package/dist/commands/improve/distill.js +607 -363
  106. package/dist/commands/improve/eligibility.js +165 -79
  107. package/dist/commands/improve/extract-cli.js +35 -126
  108. package/dist/commands/improve/extract-prompt.js +6 -35
  109. package/dist/commands/improve/extract.js +640 -391
  110. package/dist/commands/improve/feedback-valence.js +2 -12
  111. package/dist/commands/improve/improve-cli.js +134 -135
  112. package/dist/commands/improve/improve-result-file.js +30 -50
  113. package/dist/commands/improve/improve-run-types.js +4 -0
  114. package/dist/commands/improve/improve-strategies.js +135 -0
  115. package/dist/commands/improve/improve.js +904 -701
  116. package/dist/commands/improve/locks.js +64 -111
  117. package/dist/commands/improve/loop-stages.js +1110 -923
  118. package/dist/commands/improve/memory/derived-ref.js +124 -0
  119. package/dist/commands/improve/memory/memory-belief.js +79 -7
  120. package/dist/commands/improve/memory/memory-contradiction-detect.js +49 -52
  121. package/dist/commands/improve/memory/memory-improve.js +25 -37
  122. package/dist/commands/improve/outcome-loop.js +25 -88
  123. package/dist/commands/improve/preparation.js +1034 -813
  124. package/dist/commands/improve/proactive-maintenance.js +34 -9
  125. package/dist/commands/improve/proposal-envelope.js +31 -0
  126. package/dist/commands/improve/reflect.js +983 -794
  127. package/dist/commands/improve/run-context.js +119 -0
  128. package/dist/commands/improve/salience.js +24 -127
  129. package/dist/commands/improve/session-asset.js +7 -3
  130. package/dist/commands/improve/shared.js +14 -34
  131. package/dist/commands/improve/source-identity.js +28 -0
  132. package/dist/commands/improve/triage.js +20 -17
  133. package/dist/commands/lint/base-linter.js +340 -313
  134. package/dist/commands/lint/env-key-rules.js +31 -47
  135. package/dist/commands/lint/index.js +185 -30
  136. package/dist/commands/{events.js → log.js} +28 -38
  137. package/dist/commands/migrate-cli.js +54 -0
  138. package/dist/commands/migration-tool.js +55 -0
  139. package/dist/commands/observability-cli.js +70 -208
  140. package/dist/commands/proposal/diff-format.js +50 -0
  141. package/dist/commands/proposal/drain-policies.js +0 -6
  142. package/dist/commands/proposal/drain.js +91 -40
  143. package/dist/commands/proposal/proposal-cli.js +134 -132
  144. package/dist/commands/proposal/proposal-types.js +56 -0
  145. package/dist/commands/proposal/proposal.js +83 -65
  146. package/dist/commands/proposal/propose-cli.js +88 -0
  147. package/dist/commands/proposal/propose.js +105 -88
  148. package/dist/commands/proposal/repository.js +1303 -278
  149. package/dist/commands/proposal/validators/proposal-quality-validators.js +16 -6
  150. package/dist/commands/proposal/validators/proposal-validators.js +61 -12
  151. package/dist/commands/proposal/validators/proposals.js +6 -8
  152. package/dist/commands/read/curate.js +78 -73
  153. package/dist/commands/read/knowledge.js +510 -13
  154. package/dist/commands/read/registry-search.js +2 -2
  155. package/dist/commands/read/remember-cli.js +84 -15
  156. package/dist/commands/read/search-cli.js +203 -96
  157. package/dist/commands/read/search.js +126 -94
  158. package/dist/commands/read/show.js +226 -250
  159. package/dist/commands/registry-cli.js +34 -60
  160. package/dist/commands/remember.js +18 -57
  161. package/dist/commands/sources/add-cli.js +104 -49
  162. package/dist/commands/sources/bundle-cli.js +166 -0
  163. package/dist/commands/sources/bundle-config-ops.js +63 -0
  164. package/dist/commands/sources/info.js +27 -15
  165. package/dist/commands/sources/init.js +30 -40
  166. package/dist/commands/sources/installed-stashes.js +469 -172
  167. package/dist/commands/sources/migration-help.js +7 -4
  168. package/dist/commands/sources/schema-repair.js +10 -9
  169. package/dist/commands/sources/self-update.js +182 -121
  170. package/dist/commands/sources/source-add.js +169 -178
  171. package/dist/commands/sources/source-clone.js +144 -41
  172. package/dist/commands/sources/source-manage.js +94 -59
  173. package/dist/commands/sources/sources-cli.js +64 -205
  174. package/dist/commands/sources/stash-cli.js +91 -54
  175. package/dist/commands/sources/stash-skeleton.js +1 -1
  176. package/dist/commands/tasks/tasks-cli.js +106 -104
  177. package/dist/commands/tasks/tasks.js +445 -262
  178. package/dist/commands/workflow-cli.js +232 -121
  179. package/dist/core/action-contributors.js +1 -1
  180. package/dist/core/activation-policy.js +49 -0
  181. package/dist/core/adapter/adapters/agent-skills-adapter.js +181 -0
  182. package/dist/core/adapter/adapters/akm-adapter.js +528 -0
  183. package/dist/core/adapter/adapters/akm-lint.js +392 -0
  184. package/dist/core/adapter/adapters/akm-metadata.js +387 -0
  185. package/dist/core/adapter/adapters/akm-task-adapter.js +149 -0
  186. package/dist/core/adapter/adapters/akm-workflow-adapter.js +180 -0
  187. package/dist/core/adapter/adapters/claude-adapter.js +61 -0
  188. package/dist/core/adapter/adapters/dotenv-adapter.js +187 -0
  189. package/dist/core/adapter/adapters/generic-files-adapter.js +119 -0
  190. package/dist/core/adapter/adapters/index.js +80 -0
  191. package/dist/core/adapter/adapters/llm-wiki-adapter.js +419 -0
  192. package/dist/core/adapter/adapters/okf-adapter.js +391 -0
  193. package/dist/core/adapter/adapters/opencode-adapter.js +68 -0
  194. package/dist/core/adapter/adapters/shared.js +286 -0
  195. package/dist/core/adapter/adapters/tool-dir-shared.js +217 -0
  196. package/dist/core/adapter/adapters/website-snapshot-adapter.js +155 -0
  197. package/dist/core/adapter/bundle-adapter.js +4 -0
  198. package/dist/core/adapter/detect-adapter.js +17 -0
  199. package/dist/core/adapter/recognize-match.js +44 -0
  200. package/dist/core/adapter/registry.js +56 -0
  201. package/dist/core/adapter/types.js +4 -0
  202. package/dist/core/asset/akm-markdown.js +30 -0
  203. package/dist/core/asset/asset-placement.js +243 -0
  204. package/dist/core/asset/asset-ref.js +110 -79
  205. package/dist/core/asset/asset-serialize.js +20 -0
  206. package/dist/core/asset/frontmatter.js +28 -12
  207. package/dist/core/asset/markdown.js +40 -51
  208. package/dist/core/asset/resolve-ref.js +274 -0
  209. package/dist/core/asset/stash-meta.js +2 -2
  210. package/dist/core/bundle-id.js +51 -0
  211. package/dist/core/common.js +281 -86
  212. package/dist/core/config/config-io.js +42 -128
  213. package/dist/core/config/config-schema.js +233 -834
  214. package/dist/core/config/config-sources.js +162 -39
  215. package/dist/core/config/config-types.js +16 -11
  216. package/dist/core/config/config-version.js +29 -0
  217. package/dist/core/config/config-walker.js +126 -37
  218. package/dist/core/config/config.js +154 -331
  219. package/dist/core/config/deep-merge.js +41 -0
  220. package/dist/core/config/engine-semantics.js +28 -0
  221. package/dist/core/config/experimental.js +21 -0
  222. package/dist/core/config/schema/embedding.js +38 -0
  223. package/dist/core/config/schema/engines.js +116 -0
  224. package/dist/core/config/schema/experimental.js +47 -0
  225. package/dist/core/config/schema/feedback.js +31 -0
  226. package/dist/core/config/schema/improve-processes.js +389 -0
  227. package/dist/core/config/schema/improve.js +94 -0
  228. package/dist/core/config/schema/index-config.js +176 -0
  229. package/dist/core/config/schema/output.js +18 -0
  230. package/dist/core/config/schema/primitives.js +94 -0
  231. package/dist/core/config/schema/search.js +30 -0
  232. package/dist/core/config/schema/setup.js +18 -0
  233. package/dist/core/config/schema/sources-bundles.js +169 -0
  234. package/dist/core/config/schema/workflow.js +29 -0
  235. package/dist/core/env-secret-ref.js +155 -20
  236. package/dist/core/errors.js +17 -15
  237. package/dist/core/events-types.js +4 -0
  238. package/dist/core/events.js +46 -128
  239. package/dist/core/extra-params.js +62 -0
  240. package/dist/core/file-change.js +17 -0
  241. package/dist/core/file-lock.js +202 -57
  242. package/dist/core/fs-txn.js +392 -0
  243. package/dist/core/git-message.js +59 -0
  244. package/dist/core/improve-result.js +167 -0
  245. package/dist/core/json-schema.js +142 -0
  246. package/dist/core/lesson-lint.js +1 -17
  247. package/dist/core/logs-db.js +1 -1
  248. package/dist/core/maintenance-barrier.js +135 -0
  249. package/dist/core/migration-operation.js +44 -0
  250. package/dist/core/mutation-target.js +78 -0
  251. package/dist/core/paths.js +22 -25
  252. package/dist/core/platform.js +10 -0
  253. package/dist/core/recognition-util.js +128 -0
  254. package/dist/core/redaction.js +392 -0
  255. package/dist/core/standards/resolve-standards-context.js +36 -65
  256. package/dist/core/standards/resolve-stash-standards.js +2 -2
  257. package/dist/core/standards/resolve-type-conventions.js +5 -5
  258. package/dist/core/state/migrations.js +242 -11
  259. package/dist/core/state-db.js +98 -10
  260. package/dist/core/structured.js +1 -1
  261. package/dist/core/subprocess.js +303 -0
  262. package/dist/core/text-truncation.js +9 -5
  263. package/dist/core/time.js +20 -0
  264. package/dist/core/type-presentation.js +130 -0
  265. package/dist/core/warn.js +0 -3
  266. package/dist/core/write-source.js +834 -118
  267. package/dist/indexer/bundle-identity-guard.js +92 -0
  268. package/dist/indexer/db/graph-db.js +1 -25
  269. package/dist/indexer/db/llm-cache.js +1 -1
  270. package/dist/indexer/ensure-index.js +30 -9
  271. package/dist/indexer/graph/graph-boost.js +9 -30
  272. package/dist/indexer/graph/graph-extraction.js +41 -27
  273. package/dist/indexer/graph/graph-types.js +4 -0
  274. package/dist/indexer/index-writer-lock.js +93 -49
  275. package/dist/indexer/index-written-assets.js +100 -53
  276. package/dist/indexer/indexer.js +746 -329
  277. package/dist/indexer/init.js +18 -25
  278. package/dist/indexer/installations.js +142 -0
  279. package/dist/indexer/passes/dir-staleness.js +18 -10
  280. package/dist/indexer/passes/memory-inference.js +25 -15
  281. package/dist/indexer/passes/metadata.js +412 -243
  282. package/dist/indexer/scan/doc-to-entry.js +160 -0
  283. package/dist/indexer/scan/drain-dir.js +134 -0
  284. package/dist/indexer/search/db-search.js +292 -108
  285. package/dist/indexer/search/fts-query.js +64 -0
  286. package/dist/indexer/search/ranking-contributors.js +145 -25
  287. package/dist/indexer/search/ranking-types.js +4 -0
  288. package/dist/indexer/search/ranking.js +28 -71
  289. package/dist/indexer/search/search-attribution.js +67 -0
  290. package/dist/indexer/search/search-fields.js +18 -3
  291. package/dist/indexer/search/search-hit-enrichers.js +30 -40
  292. package/dist/indexer/search/search-source.js +157 -111
  293. package/dist/indexer/search/semantic-status.js +4 -1
  294. package/dist/indexer/usage/usage-events.js +10 -30
  295. package/dist/indexer/walk/file-context.js +3 -45
  296. package/dist/indexer/walk/matchers.js +42 -34
  297. package/dist/indexer/walk/path-resolver.js +11 -5
  298. package/dist/indexer/walk/walker.js +42 -14
  299. package/dist/integrations/agent/builder-shared.js +7 -0
  300. package/dist/integrations/agent/builders.js +5 -56
  301. package/dist/integrations/agent/config.js +3 -143
  302. package/dist/integrations/agent/detect.js +17 -2
  303. package/dist/integrations/agent/engine-resolution.js +231 -0
  304. package/dist/integrations/agent/index.js +1 -2
  305. package/dist/integrations/agent/model-aliases.js +16 -2
  306. package/dist/integrations/agent/profiles.js +36 -62
  307. package/dist/integrations/agent/prompts.js +46 -18
  308. package/dist/integrations/agent/runner-dispatch.js +93 -4
  309. package/dist/integrations/agent/runner.js +76 -208
  310. package/dist/integrations/agent/spawn.js +88 -196
  311. package/dist/integrations/harnesses/aider/agent-builder.js +114 -0
  312. package/dist/integrations/harnesses/aider/index.js +48 -0
  313. package/dist/integrations/harnesses/aider/result-extractor.js +53 -0
  314. package/dist/integrations/harnesses/amazonq/agent-builder.js +147 -0
  315. package/dist/integrations/harnesses/amazonq/index.js +45 -0
  316. package/dist/integrations/harnesses/amazonq/result-extractor.js +48 -0
  317. package/dist/integrations/harnesses/claude/agent-builder.js +46 -8
  318. package/dist/integrations/harnesses/claude/config-import.js +1 -3
  319. package/dist/integrations/harnesses/claude/index.js +24 -35
  320. package/dist/integrations/harnesses/claude/result-extractor.js +52 -0
  321. package/dist/integrations/harnesses/claude/session-log.js +27 -75
  322. package/dist/integrations/harnesses/codex/agent-builder.js +138 -0
  323. package/dist/integrations/harnesses/codex/index.js +52 -0
  324. package/dist/integrations/harnesses/codex/result-extractor.js +73 -0
  325. package/dist/integrations/harnesses/copilot/agent-builder.js +122 -0
  326. package/dist/integrations/harnesses/copilot/index.js +48 -0
  327. package/dist/integrations/harnesses/copilot/result-extractor.js +151 -0
  328. package/dist/integrations/harnesses/gemini/agent-builder.js +120 -0
  329. package/dist/integrations/harnesses/gemini/index.js +48 -0
  330. package/dist/integrations/harnesses/gemini/result-extractor.js +121 -0
  331. package/dist/integrations/harnesses/ids.js +24 -0
  332. package/dist/integrations/harnesses/index.js +54 -34
  333. package/dist/integrations/harnesses/opencode/agent-builder.js +23 -5
  334. package/dist/integrations/harnesses/opencode/config-import.js +1 -3
  335. package/dist/integrations/harnesses/opencode/index.js +14 -32
  336. package/dist/integrations/harnesses/opencode/session-log.js +67 -125
  337. package/dist/integrations/harnesses/opencode-sdk/harness.js +51 -0
  338. package/dist/integrations/harnesses/opencode-sdk/sdk-runner.js +681 -108
  339. package/dist/integrations/harnesses/openhands/agent-builder.js +128 -0
  340. package/dist/integrations/harnesses/openhands/index.js +48 -0
  341. package/dist/integrations/harnesses/openhands/result-extractor.js +103 -0
  342. package/dist/integrations/harnesses/pi/agent-builder.js +97 -0
  343. package/dist/integrations/harnesses/pi/index.js +45 -0
  344. package/dist/integrations/harnesses/pi/result-extractor.js +135 -0
  345. package/dist/integrations/harnesses/shared.js +17 -0
  346. package/dist/integrations/harnesses/types.js +43 -32
  347. package/dist/integrations/lockfile.js +211 -24
  348. package/dist/integrations/session-logs/index.js +36 -39
  349. package/dist/integrations/session-logs/provider-base.js +113 -0
  350. package/dist/llm/client.js +182 -110
  351. package/dist/llm/embedders/deterministic.js +2 -2
  352. package/dist/llm/embedders/remote.js +21 -9
  353. package/dist/llm/feature-gate.js +17 -57
  354. package/dist/llm/graph-extract.js +12 -13
  355. package/dist/llm/index-passes.js +8 -42
  356. package/dist/llm/memory-infer.js +144 -1
  357. package/dist/llm/metadata-enhance.js +45 -30
  358. package/dist/llm/structured-call.js +16 -8
  359. package/dist/llm/usage-persist.js +30 -5
  360. package/dist/llm/usage-telemetry.js +59 -6
  361. package/dist/output/cli-hints.js +1 -2
  362. package/dist/output/command-registry.js +27 -0
  363. package/dist/output/context.js +22 -7
  364. package/dist/output/format-exempt.js +80 -0
  365. package/dist/output/generic-render.js +251 -0
  366. package/dist/output/html-render.js +11 -16
  367. package/dist/output/render-registry.js +57 -0
  368. package/dist/output/renderers.js +14 -279
  369. package/dist/output/shapes/curate.js +10 -1
  370. package/dist/output/shapes/events.js +12 -7
  371. package/dist/output/shapes/helpers.js +58 -84
  372. package/dist/output/shapes/passthrough.js +11 -39
  373. package/dist/output/shapes/proposal/producer.js +15 -7
  374. package/dist/output/shapes/registry.js +12 -6
  375. package/dist/output/shapes.js +0 -9
  376. package/dist/output/text/{init.js → bundle-create.js} +3 -1
  377. package/dist/output/text/bundle-show.js +7 -0
  378. package/dist/output/text/command-format.js +562 -0
  379. package/dist/output/text/env.js +1 -3
  380. package/dist/output/text/events.js +8 -7
  381. package/dist/output/text/helpers.js +15 -1164
  382. package/dist/output/text/proposal/producer.js +4 -2
  383. package/dist/output/text/proposal-format.js +202 -0
  384. package/dist/output/text/registry-commands.js +1 -2
  385. package/dist/output/text/registry.js +12 -6
  386. package/dist/output/text/show-directives.js +117 -0
  387. package/dist/output/text/show-format.js +103 -0
  388. package/dist/output/text/sync.js +5 -0
  389. package/dist/output/text/workflow-format.js +332 -0
  390. package/dist/output/text/workflow.js +3 -2
  391. package/dist/output/text.js +10 -19
  392. package/dist/registry/factory.js +4 -6
  393. package/dist/registry/origin-resolve.js +16 -27
  394. package/dist/registry/providers/skills-sh.js +3 -3
  395. package/dist/registry/providers/static-index.js +15 -25
  396. package/dist/registry/resolve.js +43 -94
  397. package/dist/registry/semver.js +43 -0
  398. package/dist/runtime.js +81 -12
  399. package/dist/scripts/akm-migrate.js +35529 -0
  400. package/dist/setup/detect.js +5 -7
  401. package/dist/setup/detected-engines.js +136 -0
  402. package/dist/setup/engine-config.js +100 -0
  403. package/dist/setup/registry-stash-loader.js +3 -3
  404. package/dist/setup/semantic-assets.js +12 -9
  405. package/dist/setup/setup.js +444 -208
  406. package/dist/setup/steps/connection-shared.js +120 -0
  407. package/dist/setup/steps/connection.js +108 -305
  408. package/dist/setup/steps/platforms.js +13 -12
  409. package/dist/setup/steps/semantic.js +15 -3
  410. package/dist/setup/steps/sources.js +21 -15
  411. package/dist/setup/steps/stashdir.js +6 -4
  412. package/dist/setup/steps/tasks.js +236 -119
  413. package/dist/setup/steps.js +3 -2
  414. package/dist/sources/freshness.js +39 -0
  415. package/dist/sources/provider-factory.js +11 -17
  416. package/dist/sources/providers/filesystem.js +2 -3
  417. package/dist/sources/providers/git-install.js +278 -34
  418. package/dist/sources/providers/git-provider.js +54 -56
  419. package/dist/sources/providers/git-stash.js +420 -91
  420. package/dist/sources/providers/git.js +2 -2
  421. package/dist/sources/providers/npm.js +16 -19
  422. package/dist/sources/providers/provider-utils.js +47 -22
  423. package/dist/sources/providers/sync-from-ref.js +3 -9
  424. package/dist/sources/providers/website.js +2 -2
  425. package/dist/sources/resolve.js +11 -10
  426. package/dist/sources/snapshot-fetchers/types.js +4 -0
  427. package/dist/sources/{website-ingest.js → snapshot-fetchers/website-ingest.js} +110 -41
  428. package/dist/storage/database.js +60 -4
  429. package/dist/storage/engines/sqlite-migrations.js +156 -5
  430. package/dist/storage/locations.js +1 -2
  431. package/dist/storage/repositories/canaries-repository.js +1 -1
  432. package/dist/storage/repositories/events-repository.js +51 -11
  433. package/dist/storage/repositories/improve-runs-repository.js +6 -32
  434. package/dist/storage/repositories/index-connection.js +79 -0
  435. package/dist/storage/repositories/index-db.js +4 -3
  436. package/dist/storage/repositories/index-entries-repository.js +863 -0
  437. package/dist/{indexer/db/entry-mapper.js → storage/repositories/index-entry-mapper.js} +19 -2
  438. package/dist/storage/repositories/index-entry-types.js +4 -0
  439. package/dist/storage/repositories/index-fts-repository.js +167 -0
  440. package/dist/storage/repositories/index-llm-cache-repository.js +108 -0
  441. package/dist/storage/repositories/index-meta-repository.js +49 -0
  442. package/dist/{indexer/db/schema.js → storage/repositories/index-schema.js} +226 -100
  443. package/dist/storage/repositories/index-sql.js +12 -0
  444. package/dist/storage/repositories/index-utility-repository.js +356 -0
  445. package/dist/storage/repositories/index-vec-repository.js +250 -0
  446. package/dist/storage/repositories/outcome-repository.js +119 -0
  447. package/dist/storage/repositories/proposals-repository.js +317 -75
  448. package/dist/storage/repositories/registry-cache.js +1 -1
  449. package/dist/storage/repositories/salience-repository.js +172 -0
  450. package/dist/storage/repositories/task-history-repository.js +110 -3
  451. package/dist/storage/repositories/workflow-runs-repository.js +240 -19
  452. package/dist/tasks/backends/cron.js +169 -46
  453. package/dist/tasks/backends/exec-utils.js +76 -3
  454. package/dist/tasks/backends/index.js +6 -9
  455. package/dist/tasks/backends/launchd.js +292 -55
  456. package/dist/tasks/backends/schtasks.js +557 -70
  457. package/dist/tasks/backends/types.js +4 -0
  458. package/dist/tasks/command-executable.js +93 -0
  459. package/dist/tasks/embedded.js +56 -38
  460. package/dist/tasks/parser.js +156 -64
  461. package/dist/tasks/resolve-akm-bin.js +144 -51
  462. package/dist/tasks/runner.js +377 -209
  463. package/dist/tasks/schedule.js +108 -19
  464. package/dist/tasks/scheduler-invocation.js +296 -0
  465. package/dist/tasks/schema.js +1 -1
  466. package/dist/tasks/task-id.js +35 -0
  467. package/dist/tasks/validator.js +30 -16
  468. package/dist/text-import-hook.mjs +1 -1
  469. package/dist/workflows/authoring/authoring.js +104 -43
  470. package/dist/workflows/authoring/scope-key.js +1 -1
  471. package/dist/workflows/cli.js +0 -16
  472. package/dist/workflows/concurrency-policy.js +15 -0
  473. package/dist/workflows/exec/brief.js +450 -0
  474. package/dist/workflows/exec/frozen-judge.js +47 -0
  475. package/dist/workflows/exec/native-executor.js +1038 -0
  476. package/dist/workflows/exec/param-secrets.js +115 -0
  477. package/dist/workflows/exec/report.js +1460 -0
  478. package/dist/workflows/exec/run-workflow.js +602 -0
  479. package/dist/workflows/exec/scheduler.js +71 -0
  480. package/dist/workflows/exec/step-work.js +1190 -0
  481. package/dist/workflows/exec/unit-writer.js +23 -0
  482. package/dist/workflows/exec/workflow-engine-gate.js +67 -0
  483. package/dist/workflows/exec/worktree.js +171 -0
  484. package/dist/workflows/ir/compile.js +246 -0
  485. package/dist/workflows/ir/freeze.js +233 -0
  486. package/dist/workflows/ir/params.js +54 -0
  487. package/dist/workflows/ir/plan-hash.js +68 -0
  488. package/dist/workflows/ir/schema.js +540 -0
  489. package/dist/workflows/parser.js +878 -304
  490. package/dist/workflows/program/expressions.js +181 -0
  491. package/dist/workflows/program/schema.js +51 -0
  492. package/dist/workflows/renderer.js +100 -45
  493. package/dist/workflows/resource-limits.js +22 -0
  494. package/dist/workflows/runtime/agent-identity.js +59 -14
  495. package/dist/workflows/runtime/checkin.js +1 -1
  496. package/dist/workflows/runtime/plan-classifier.js +131 -0
  497. package/dist/workflows/runtime/runs.js +376 -119
  498. package/dist/workflows/runtime/unit-checkin.js +45 -0
  499. package/dist/workflows/runtime/unit-phases.js +20 -0
  500. package/dist/workflows/runtime/workflow-asset-loader.js +241 -40
  501. package/dist/workflows/schema.js +1 -11
  502. package/dist/workflows/validate-summary.js +2 -3
  503. package/dist/workflows/validator.js +52 -30
  504. package/docs/README.md +42 -78
  505. package/docs/migration/README.md +8 -0
  506. package/docs/migration/release-notes/0.6.0.md +1 -1
  507. package/docs/migration/release-notes/0.7.0.md +9 -8
  508. package/docs/migration/release-notes/0.9.0.md +158 -14
  509. package/docs/migration/v0.7-to-v0.8.md +46 -47
  510. package/docs/migration/v0.8-to-v0.9.md +844 -0
  511. package/docs/reference/README.md +12 -0
  512. package/docs/reference/data-and-telemetry.md +333 -0
  513. package/package.json +21 -17
  514. package/schemas/akm-asset-envelope.json +93 -0
  515. package/schemas/akm-config.json +4636 -0
  516. package/schemas/akm-task.json +87 -0
  517. package/schemas/akm-workflow.json +373 -0
  518. package/dist/akm-migrate-storage +0 -38
  519. package/dist/assets/help/help-accept.md +0 -12
  520. package/dist/assets/help/help-improve.md +0 -84
  521. package/dist/assets/help/help-proposals.md +0 -17
  522. package/dist/assets/help/help-propose.md +0 -17
  523. package/dist/assets/help/help-reject.md +0 -11
  524. package/dist/assets/profiles/frequent.json +0 -13
  525. package/dist/assets/profiles/recombine-only.json +0 -21
  526. package/dist/assets/profiles/reflect-distill.json +0 -30
  527. package/dist/assets/profiles/synthesize.json +0 -15
  528. package/dist/assets/prompts/procedural-system.md +0 -44
  529. package/dist/assets/prompts/recombine-system.md +0 -40
  530. package/dist/assets/prompts/staleness-detect-system.md +0 -6
  531. package/dist/assets/tasks/core/backup.yml +0 -4
  532. package/dist/assets/tasks/graph-refresh-weekly.yml +0 -10
  533. package/dist/assets/templates/html/default.html +0 -78
  534. package/dist/assets/templates/html/vendor/echarts.min.js +0 -45
  535. package/dist/assets/wiki/index-template.md +0 -12
  536. package/dist/assets/wiki/ingest-workflow-template.md +0 -83
  537. package/dist/assets/wiki/log-template.md +0 -8
  538. package/dist/assets/wiki/schema-template.md +0 -61
  539. package/dist/cli/config-migrate.js +0 -150
  540. package/dist/cli/config-validate.js +0 -39
  541. package/dist/commands/graph/graph-cli.js +0 -124
  542. package/dist/commands/graph/graph.js +0 -487
  543. package/dist/commands/improve/calibration.js +0 -161
  544. package/dist/commands/improve/dedup.js +0 -482
  545. package/dist/commands/improve/extract-watch.js +0 -140
  546. package/dist/commands/improve/hot-probation.js +0 -45
  547. package/dist/commands/improve/improve-auto-accept.js +0 -276
  548. package/dist/commands/improve/improve-profiles.js +0 -168
  549. package/dist/commands/improve/procedural.js +0 -398
  550. package/dist/commands/improve/recombine.js +0 -818
  551. package/dist/commands/improve/schema-similarity-gate.js +0 -168
  552. package/dist/commands/lint/agent-linter.js +0 -44
  553. package/dist/commands/lint/command-linter.js +0 -44
  554. package/dist/commands/lint/default-linter.js +0 -16
  555. package/dist/commands/lint/fact-linter.js +0 -39
  556. package/dist/commands/lint/knowledge-linter.js +0 -16
  557. package/dist/commands/lint/memory-linter.js +0 -61
  558. package/dist/commands/lint/registry.js +0 -41
  559. package/dist/commands/lint/skill-linter.js +0 -45
  560. package/dist/commands/lint/task-linter.js +0 -50
  561. package/dist/commands/lint/workflow-linter.js +0 -81
  562. package/dist/commands/proposal/legacy-import.js +0 -115
  563. package/dist/commands/sources/history.js +0 -196
  564. package/dist/commands/tasks/default-tasks.js +0 -186
  565. package/dist/commands/wiki-cli.js +0 -292
  566. package/dist/core/asset/asset-registry.js +0 -76
  567. package/dist/core/asset/asset-spec.js +0 -259
  568. package/dist/core/config/config-migration.js +0 -602
  569. package/dist/core/deep-merge.js +0 -38
  570. package/dist/core/eval/rank-metrics.js +0 -113
  571. package/dist/core/ripgrep/install.js +0 -163
  572. package/dist/core/ripgrep/resolve.js +0 -81
  573. package/dist/indexer/db/db.js +0 -1413
  574. package/dist/indexer/manifest.js +0 -170
  575. package/dist/indexer/passes/metadata-contributors.js +0 -31
  576. package/dist/indexer/usage/unmigrated-vaults-guard.js +0 -94
  577. package/dist/integrations/harnesses/opencode-sdk/index.js +0 -49
  578. package/dist/llm/call-ai.js +0 -62
  579. package/dist/llm/memory-infer-impl.js +0 -138
  580. package/dist/output/shapes/distill.js +0 -14
  581. package/dist/output/shapes/history.js +0 -11
  582. package/dist/output/text/distill.js +0 -6
  583. package/dist/output/text/enable-disable.js +0 -8
  584. package/dist/output/text/history.js +0 -6
  585. package/dist/output/text/wiki.js +0 -16
  586. package/dist/registry/build-index.js +0 -386
  587. package/dist/scripts/migrate-storage.js +0 -19108
  588. package/dist/scripts/migrations/import-fs-improve-runs-to-db.js +0 -9411
  589. package/dist/scripts/migrations/v16-to-v17.js +0 -141
  590. package/dist/setup/legacy-config.js +0 -106
  591. package/dist/storage/repositories/consolidation-repository.js +0 -38
  592. package/dist/storage/repositories/recombine-repository.js +0 -213
  593. package/dist/wiki/wiki-templates.js +0 -15
  594. package/dist/wiki/wiki.js +0 -1012
  595. package/dist/workflows/db.js +0 -215
  596. package/docs/data-and-telemetry.md +0 -226
  597. /package/dist/sources/{wiki-fetchers → snapshot-fetchers}/registry.js +0 -0
  598. /package/dist/sources/{wiki-fetchers → snapshot-fetchers}/youtube.js +0 -0
@@ -1,6 +1,6 @@
1
1
  # akm CLI — Full Reference
2
2
 
3
- You have access to a searchable library of scripts, skills, commands, agents, knowledge documents, workflows, wikis, and memories via `akm`. Search your sources first before writing something from scratch.
3
+ You have access to a searchable library of scripts, skills, commands, agents, knowledge documents, workflows, env files, secrets, lessons, and memories via `akm`. Search your sources first before writing something from scratch.
4
4
 
5
5
  ## Search
6
6
 
@@ -8,21 +8,35 @@ You have access to a searchable library of scripts, skills, commands, agents, kn
8
8
  akm search "<query>" # Search all sources
9
9
  akm curate "<task>" # Curate the best matches for a task
10
10
  akm search "<query>" --type workflow # Filter by asset type
11
- akm search "<query>" --source both # Also search registries
12
- akm search "<query>" --source registry # Search registries only
11
+ akm search "<query>" --from all # Also search registries
12
+ akm search "<query>" --from registry # Search registries only
13
13
  akm search "<query>" --limit 10 # Limit results
14
14
  akm search "<query>" --detail full # Include scores, paths, timing
15
+ akm search "memories/projectA/" # Enumerate a subtree (conceptId prefix; trailing slash required)
16
+ akm search "knowledge/" # List every knowledge item
17
+ akm search "team-catalog//" # List every item in one bundle
15
18
  ```
16
19
 
17
20
  | Flag | Values | Default |
18
21
  | --- | --- | --- |
19
- | `--type` | `skill`, `command`, `agent`, `knowledge`, `workflow`, `script`, `memory`, `env`, `secret`, `wiki`, `any` | `any` |
20
- | `--source` | `stash`, `registry`, `both` | `stash` |
22
+ | `--type` | free-form. Built-ins: `skill`, `command`, `agent`, `knowledge`, `workflow`, `script`, `memory`, `lesson`, `task`, `session`, `fact`, `env`, `secret`, `instruction` — plus any adapter-defined type (`website`, `wiki-source`, a wiki `pageKind`). Exact match; an unknown type returns no hits. | `any` |
23
+ | `--from` | `local`, `registry`, `all`, or a configured bundle name | `local` |
21
24
  | `--limit` | number | `20` |
22
- | `--format` | `json`, `jsonl`, `text`, `yaml` | `json` |
25
+ | `--format` | `json`, `jsonl`, `text`, `yaml`, `md`, `html` | `json` |
23
26
  | `--detail` | `brief`, `normal`, `full` | `brief` |
24
27
  | `--shape` | `human`, `agent`, `summary` (`summary` only on `show`) | `human` |
25
28
 
29
+ Ref-prefix queries (a conceptId prefix ending in `/`, optionally bundle-qualified)
30
+ return a deterministic listing, not a relevance ranking. Drop the trailing slash
31
+ and the same text becomes an ordinary keyword search — resolving a single asset
32
+ by its `<subdir>/<name>` id is `akm show`'s job. Because prefixes match
33
+ conceptIds, you can paste a ref prefix straight from search output back into a
34
+ query.
35
+
36
+ `search` and `curate` results include an additive `tip` field (a plain-text
37
+ suggestion, e.g. "Run `akm index` to build one" or "No matching assets were
38
+ found") whenever the result set is empty; it is omitted when there are hits.
39
+
26
40
  ## Curate
27
41
 
28
42
  Combine search + follow-up hints into a dense summary for a task or prompt.
@@ -35,18 +49,19 @@ akm curate "review architecture" --type workflow # Restrict to one asset type
35
49
 
36
50
  ## Show
37
51
 
38
- Display an asset by ref. Knowledge assets support view modes as positional arguments.
52
+ Display an asset by ref from the local index and materialized bundle files only.
53
+ On a markdown document `#fragment` selects one section by heading slug.
39
54
 
40
55
  ```sh
41
- akm show script:deploy.sh # Show script (returns run command)
42
- akm show skill:code-review # Show skill (returns full content)
43
- akm show command:release # Show command (returns template)
44
- akm show agent:architect # Show agent (returns system prompt)
45
- akm show workflow:ship-release # Show parsed workflow steps
46
- akm show knowledge:guide toc # Table of contents
47
- akm show knowledge:guide section "Auth" # Specific section
48
- akm show knowledge:guide lines 10 30 # Line range
49
- akm show knowledge:my-doc # Show content (local or remote)
56
+ akm show scripts/deploy.sh # Show script (returns run command)
57
+ akm show skills/code-review # Show skill (returns full content)
58
+ akm show commands/release # Show command (returns template)
59
+ akm show agents/architect # Show agent (returns system prompt)
60
+ akm show workflows/ship-release # Show parsed workflow steps
61
+ akm show knowledge/guide # Whole document
62
+ akm show knowledge/guide#auth # Just the "Auth" section
63
+ akm show knowledge/guide#nope # Lists the available fragment slugs
64
+ akm show knowledge/my-doc # Show materialized local content
50
65
  ```
51
66
 
52
67
  | Type | Key fields returned |
@@ -55,74 +70,66 @@ akm show knowledge:my-doc # Show content (local or remote)
55
70
  | skill | `content` (full SKILL.md) |
56
71
  | command | `template`, `description`, `parameters` |
57
72
  | agent | `prompt`, `description`, `modelHint`, `toolPolicy` |
58
- | knowledge | `content` (with view modes: `full`, `toc`, `frontmatter`, `section`, `lines`) |
73
+ | knowledge | `content` (whole document, or one section via `#fragment`) |
59
74
  | workflow | `workflowTitle`, `workflowParameters`, `steps` |
60
75
  | memory | `content` (recalled context) |
61
76
  | env | `keys` (key names only — values and comment text never returned) |
62
77
  | secret | `name` only (the whole file is the value — never returned) |
63
- | wiki | `content` (same view modes as knowledge). For any wiki task, run `akm wiki list`. To ingest sources, `akm wiki ingest <name>` dispatches the configured agent (defaults.agent or `--profile`) to execute the ingest workflow. |
78
+ | lesson | `content` plus `action` (rendered from the `when_to_use` frontmatter) — read both before applying the lesson |
64
79
 
65
80
  ## Capture Knowledge While You Work
66
81
 
67
82
  ```sh
68
- akm remember "Deployment needs VPN access" # Record a memory in your stash
83
+ akm remember "Deployment needs VPN access" # Record a memory in your bundle
69
84
  akm remember --name release-retro < notes.md # Save multiline memory from stdin
70
- akm remember "note" --target my-other-stash # Route write to a named writable stash source
85
+ akm remember "note" --bundle my-other-bundle # Route write to a named writable bundle source
86
+ akm remember "note" --xref knowledge/auth-flow # Cite provenance in frontmatter xrefs (repeatable; ref must resolve)
87
+ akm remember "fix" --supersedes memories/old-note # Write a correction AND demote the old asset (beliefState: superseded)
71
88
  akm import ./docs/auth-flow.md # Import a file as knowledge
89
+ akm import ./doc.md --xref knowledge/auth-flow # Merge provenance xrefs into the imported doc's frontmatter
90
+ akm import ./new.md --supersedes knowledge/old # Import a correction AND demote the doc it replaces
72
91
  akm import - --name scratch-notes < notes.md # Import stdin as a knowledge doc
73
92
  akm import https://example.com/docs/auth # Fetch one URL and import it as knowledge
74
- akm import ./doc.md --target my-other-stash # Route import to a named writable stash source
75
- akm workflow create ship-release # Create a workflow asset in the stash
76
- akm workflow validate workflows/foo.md # Validate a workflow file or ref; lists every error
77
- akm workflow next workflow:ship-release # Start or resume the next workflow step
78
- akm feedback skill:code-review --positive # Record that an asset helped
79
- akm feedback agent:reviewer --negative # Record that an asset missed the mark
80
- akm feedback memory:deployment-notes --positive # Works for memories too
81
- akm feedback env:prod --positive # Records env feedback without surfacing values
93
+ akm import ./doc.md --target my-other-bundle # Route import to a named writable bundle source
94
+ akm workflow create ship-release # Create a workflow asset in the bundle
95
+ akm lint --type workflows # Parse and compile every unified markdown workflow; list every error
96
+ akm workflow next workflows/ship-release # Start or resume the next workflow step
97
+ akm feedback skills/code-review --positive # Record that an asset helped
98
+ akm feedback agents/reviewer --negative --reason "wrong framework" # Record why an asset missed the mark
99
+ akm feedback memories/deployment-notes --positive # Works for memories too
100
+ akm feedback env/prod --positive # Records env feedback without surfacing values
82
101
  ```
83
102
 
84
103
  Use `akm feedback` whenever an asset materially helps or fails so future search
85
104
  ranking can learn from actual usage.
86
105
 
87
- ## Wikis
106
+ ## LLM Wiki bundles
107
+
108
+ An LLM Wiki (Karpathy-style knowledge base) is a **bundle format**, not an akm
109
+ asset type — there is no `akm wiki` command family. akm's LLM Wiki adapter
110
+ recognizes one deterministically at install time: a bundle component whose root
111
+ holds a `schema.md` plus a `pages/` directory is mounted as an `llm-wiki`
112
+ component. Its pages are then indexed like any other content and resolve to
113
+ `bundle//conceptId` refs (e.g. `team-catalog//pages/attention`).
88
114
 
89
- Multi-wiki knowledge bases (Karpathy-style). A stash-owned wiki lives at
90
- `<stashDir>/wikis/<name>/`; external directories or repos can also be registered
91
- as first-class wikis. akm owns lifecycle + raw-slug + lint + index regeneration
92
- for stash-owned wikis; page edits use your native Read/Write/Edit tools.
115
+ Install one as a source, then search and read its pages with the ordinary
116
+ commands — no wiki-specific verbs:
93
117
 
94
118
  ```sh
95
- akm wiki list # List wikis (name, pages, raws, last-modified)
96
- akm wiki create research # Scaffold a new wiki
97
- akm wiki register ics-docs ~/code/ics-documentation # Register an external wiki
98
- akm wiki show research # Path, description, counts, last 3 log entries
99
- akm wiki pages research # Page refs + descriptions (excludes schema/index/log; includes raw/)
100
- akm wiki search research "attention" # Scoped search (equivalent to --type wiki --wiki research)
101
- akm wiki stash research ./paper.md # Copy source into raw/<slug>.md (never overwrites)
102
- akm wiki stash research https://example.com/paper # Fetch one URL into raw/<slug>.md
103
- akm wiki stash research ./paper.md --target my-stash # Route write to a named writable stash source
104
- echo "..." | akm wiki stash research - # stdin form
105
- akm wiki lint research # Structural checks: orphans, broken xrefs, uncited raws, stale index
106
- akm wiki ingest research # Dispatch defaults.agent to run the ingest workflow on this wiki
107
- akm wiki ingest research --profile claude --model sonnet # Override profile and model
108
- akm wiki ingest research --timeout-ms 600000 # Override agent CLI timeout (default: profile setting)
109
- akm wiki remove research -y # Delete pages/schema/index/log; preserves raw/ (--force is a deprecated alias for -y)
110
- akm wiki remove research -y --with-sources # Full nuke, including raw/
119
+ akm bundle add owner/llm-wiki-repo # Install an LLM Wiki bundle as a source (npm, GitHub, git, or local dir)
120
+ akm search "attention" # Wiki pages surface in ordinary search results
121
+ akm show team-catalog//pages/attention # Read a page by its bundle//conceptId ref (copy the ref from search)
122
+ akm bundle list # Confirm the bundle is installed
111
123
  ```
112
124
 
113
- **For any wiki task, start with `akm wiki list`. Then `akm wiki ingest <name>`
114
- dispatches the configured agent (defaults.agent or `--profile`) to execute
115
- the wiki's ingest workflow end-to-end — schema read, source dedup, search,
116
- page create/update, log entry, lint, reindex.** Wiki pages are also addressable as
117
- `wiki:<name>/<page-path>` and show up in stash-wide `akm search` as
118
- `type: wiki`. Files under `raw/` and the wiki root infrastructure files
125
+ Files under the bundle's `raw/` directory and the wiki infrastructure files
119
126
  `schema.md`, `index.md`, and `log.md` are not indexed and do not appear in
120
127
  search results. No `--llm` anywhere — akm never reasons about page content.
121
128
 
122
129
  ## Env files
123
130
 
124
- A group of related CONFIGURATION for an app/service in one `.env` file at
125
- `<stashDir>/env/<name>.env`, sourced/injected wholesale. Key names are
131
+ Configuration an app or service loads together, in one `.env` file at
132
+ `<bundle>/env/<name>.env`, sourced/injected wholesale. Key names are
126
133
  discoverable; values and comment text stay on disk and never reach stdout or
127
134
  the index (comments can contain commented-out credentials). akm does not edit
128
135
  entries — you edit the file with your own editor and akm loads it.
@@ -130,43 +137,41 @@ entries — you edit the file with your own editor and akm loads it.
130
137
  ```sh
131
138
  akm env create prod # Create an empty env file
132
139
  akm env create prod --from-file ./.env # Ingest an existing .env
133
- akm env list # List all env files across stashes with key names
134
- akm show env:prod # Inspect key names (never values or comments)
135
- akm env run env:prod -- ./deploy.sh # Run a command with the whole .env injected (the safe path)
136
- akm env run env:prod -- $SHELL # Open an interactive shell with values injected
137
- akm env export env:prod --out ./env.sh # Write a sourceable script to a file (mode 0600)
138
- akm env path env:prod --quiet # Print the raw file path (for Docker `_FILE` / `--env-file`)
139
- akm env remove env:prod # Delete the env file
140
+ akm env list # List all env files across bundles with key names
141
+ akm show env/prod # Inspect key names (never values or comments)
142
+ akm env run env/prod -- ./deploy.sh # Run a command with the whole .env injected (the safe path)
143
+ akm env run env/prod -- $SHELL # Open an interactive shell with values injected
144
+ akm env export env/prod --out ./env.sh # Write a sourceable script to a file (mode 0600)
145
+ akm env path env/prod --quiet # Print the raw file path (for Docker `_FILE` / `--env-file`)
146
+ akm env remove env/prod # Delete the env file
140
147
  ```
141
148
 
142
149
  ## Secrets
143
150
 
144
151
  A single sensitive value used on its own for authentication (a token, key, or
145
- cert) — one file = one value at `<stashDir>/secrets/<name>`. The ENTIRE file is
152
+ cert) — one file = one value at `<bundle>/secrets/<name>`. The ENTIRE file is
146
153
  the value; only the name is ever surfaced.
147
154
 
148
155
  ```sh
149
- printf '%s' "$TOKEN" | akm secret set secret:deploy-token # Store a single value
156
+ printf '%s' "$TOKEN" | akm secret set secrets/deploy-token # Store a single value
150
157
  akm secret list # List secrets (names only)
151
- akm secret path secret:deploy-token # Print the file path (Docker `_FILE`)
152
- akm secret run secret:deploy-token GITHUB_TOKEN -- gh release create v1.0.0 # Inject into one env var
153
- akm secret remove secret:deploy-token # Delete the secret
158
+ akm secret run secrets/deploy-token GITHUB_TOKEN -- gh release create v1.0.0 # Inject into one env var
154
159
  ```
155
160
 
156
161
  ## Workflows
157
162
 
158
- Step-based workflows stored as `<stashDir>/workflows/<name>.md`.
163
+ Workflows live under `<bundle>/workflows/` as unified markdown assets.
159
164
 
160
165
  Ref-based workflow commands are scoped to the current project/worktree/directory,
161
166
  so one active run does not block unrelated directories from starting the same
162
167
  workflow. Direct run-id commands still target the exact run.
163
168
 
164
169
  ```sh
165
- akm workflow template # Print a starter workflow template
170
+ akm workflow create ship-release --print # Print a starter workflow template, without writing
166
171
  akm workflow create ship-release # Scaffold a new workflow asset
167
- akm workflow start workflow:ship-release # Start a new run in the current scope
168
- akm workflow next workflow:ship-release # Advance to the next step (or auto-start) in the current scope
169
- akm workflow complete <run-id> # Mark a step complete and advance
172
+ akm workflow start workflows/ship-release # Start a new run in the current scope
173
+ akm workflow next workflows/ship-release # Advance to the next step (or auto-start) in the current scope
174
+ akm workflow complete <run-id> --step <id> --summary "..." # Mark a step complete and advance
170
175
  akm workflow status <run-id> # Show the exact run by id
171
176
  akm workflow resume <run-id> # Resume a blocked or failed run
172
177
  akm workflow list # List workflow runs in the current scope
@@ -174,71 +179,97 @@ akm workflow list # List workflow runs in the current
174
179
 
175
180
  ## Clone
176
181
 
177
- Copy an asset to the working stash or a custom destination for editing.
182
+ Copy an asset to the working bundle or a custom destination for editing.
178
183
 
179
184
  ```sh
180
- akm clone <ref> # Clone to working stash
185
+ akm clone <ref> # Clone to working bundle
181
186
  akm clone <ref> --name new-name # Rename on clone
182
187
  akm clone <ref> --dest ./project/.claude # Clone to custom location
183
188
  akm clone <ref> --force # Overwrite existing
184
- akm clone "npm:@scope/pkg//script:deploy.sh" # Clone from remote package
189
+ akm clone "npm:@scope/pkg//scripts/deploy.sh" # Clone from remote package
190
+ ```
191
+
192
+ When `--dest` is provided, `akm bundle create` is not required first.
193
+
194
+ ## Move / Rename
195
+
196
+ **A rename is delete plus create**: the new path is a new identity, so the
197
+ destination starts with fresh learned state (utility, salience, usage history)
198
+ and inbound refs to the old path dangle. Prefer NOT renaming — a ref is chosen
199
+ once. When a rename is unavoidable:
200
+
201
+ ```sh
202
+ mv ~/akm/memories/projectA/old-note.md ~/akm/memories/projectA/new-note.md
203
+ # update any intentional refs (fully qualified: bundle//memories/projectA/old-note)
204
+ akm index
205
+ akm lint # confirms nothing dangles
185
206
  ```
186
207
 
187
- When `--dest` is provided, `akm init` is not required first.
208
+ A memory's `.derived.md` twin must move with its base. Moving an item between
209
+ bundles is `akm clone` (or a copy) followed by deleting the source — both the
210
+ bundle and the concept identity change.
211
+
212
+ There is no `akm mv` — the procedure above is the whole story. To carry an
213
+ asset's earned signal (feedback, usage, salience/outcome history) across the
214
+ rename instead of starting fresh, run `bun scripts/rekey-asset-ref.ts <old-ref>
215
+ <new-ref>` from a source clone after the move and before `akm index`
216
+ (`--dry-run` previews the row counts).
188
217
 
189
218
  ## Sync
190
219
 
191
- Commit local changes in a git-backed stash. Behaviour adapts automatically.
220
+ Commit local changes in a git-backed bundle. Behaviour adapts automatically.
192
221
  (`akm save` was the pre-0.8 spelling; it was removed in 0.9.0 — use `akm sync`.)
193
222
 
194
223
  - **No `.git` directory** — no-op (silent skip)
195
- - **Git repo, no remote** — stage and commit only (the default stash always falls here)
224
+ - **Git repo, no remote** — stage and commit only (the default bundle always falls here)
196
225
  - **Git repo, has remote, not writable** — stage and commit only
197
226
  - **Git repo, has remote, `writable: true`** — stage, commit, and push
198
227
  - **Any writable repo with `--no-push`** — stage and commit only
199
228
 
200
229
  ```sh
201
- akm sync # Sync primary stash (timestamp message)
230
+ akm sync # Sync primary bundle (timestamp message)
202
231
  akm sync -m "Add deploy skill" # Sync with explicit message
203
232
  akm sync --no-push # Commit only; never push
204
- akm sync my-skills # Sync a named writable git stash
205
- akm sync my-skills -m "Update patterns" # Sync named stash with message
233
+ akm sync my-skills # Sync a named writable git bundle
234
+ akm sync my-skills -m "Update patterns" # Sync named bundle with message
206
235
  ```
207
236
 
208
- `akm improve` also performs an end-of-run batch commit for git-backed stashes.
237
+ `akm improve` also performs an end-of-run batch commit for git-backed bundles.
209
238
  The `--sync` / `--no-sync` and `--push` / `--no-push` flags control this:
210
239
 
211
240
  ```sh
212
- akm improve # auto-sync per profile default (default/thorough: on; quick/memory-focus: off)
241
+ akm improve # auto-sync per strategy default (most strategies: on; proactive-maintenance/reflect-distill: off)
213
242
  akm improve --no-sync # skip the end-of-run commit
214
243
  akm improve --no-push # commit but skip push for this run
215
- akm improve --sync # force sync even on profiles that disable it
244
+ akm improve --sync # force sync even on strategies that disable it
216
245
  ```
217
246
 
218
- Profile sync defaults: `default` and `thorough` auto-commit + push; `quick` and
219
- `memory-focus` skip sync entirely. Override with `--sync` / `--no-sync` flags.
247
+ Strategy sync defaults: `catchup`, `consolidate`, `default`, `frequent`,
248
+ `graph-refresh`, `memory-focus`, `quick`, and `thorough` auto-commit + push;
249
+ `proactive-maintenance` and `reflect-distill` skip sync entirely. Override
250
+ with `--sync` / `--no-sync` flags.
220
251
 
221
- The `--writable` flag on `akm add` opts a remote git stash into push-on-sync:
252
+ The `--writable` flag on `akm bundle add` opts a remote git bundle into push-on-sync:
222
253
 
223
254
  ```sh
224
- akm add git@github.com:org/skills.git --provider git --name my-skills --writable
255
+ akm bundle add git@github.com:org/skills.git --provider git --name my-skills --writable
225
256
  ```
226
257
 
227
258
  ## Add & Manage Sources
228
259
 
229
260
  ```sh
230
- akm add <ref> # Add a source
231
- akm add @scope/stash # From npm (managed)
232
- akm add owner/repo # From GitHub (managed)
233
- akm add ./path/to/local/stash # Local directory
234
- akm add git@github.com:org/repo.git --provider git --name my-skills --writable
235
- akm config enable skills.sh # Enable the skills.sh registry
236
- akm config disable skills.sh # Disable the skills.sh registry
237
- akm list # List all sources
238
- akm list --kind managed # List managed sources only
239
- akm remove <target> # Remove by id, ref, path, or name
240
- akm update --all # Update all managed sources
241
- akm update <target> --force # Force re-download
261
+ akm bundle add <ref> # Add a source
262
+ akm bundle add @scope/pkg # From npm (managed)
263
+ akm bundle add owner/repo # From GitHub (managed)
264
+ akm bundle add ./path/to/local/bundle # Local directory
265
+ akm bundle add git@github.com:org/repo.git --provider git --name my-skills --writable
266
+ akm registry add https://skills.sh --name skills.sh --provider skills-sh # Add the skills.sh registry
267
+ akm registry remove skills.sh # Remove the skills.sh registry
268
+ akm bundle list # List all sources
269
+ akm bundle list --kind git # Filter by provider (filesystem, git, npm, website)
270
+ akm bundle remove <target> # Remove by id, ref, path, or name
271
+ akm bundle update --all # Update all managed sources
272
+ akm bundle update <target> --force # Force re-download
242
273
  ```
243
274
 
244
275
  ## Registries
@@ -249,10 +280,8 @@ akm registry add <url> # Add a registry
249
280
  akm registry add <url> --name my-team # Add with label
250
281
  akm registry add <url> --provider skills-sh # Specify provider type
251
282
  akm registry remove <url-or-name> # Remove a registry
252
- akm registry search "<query>" # Search all registries
253
- akm registry search "<query>" --assets # Include asset-level results
254
- akm registry build-index # Build the default cache-backed index.json
255
- akm registry build-index --out dist/index.json # Build to a custom path
283
+ akm search "<query>" --from registry # Search all registries (registry search was folded into search)
284
+ akm search "<query>" --from registry --assets # Include asset-level results
256
285
  ```
257
286
 
258
287
  ## Configuration
@@ -268,18 +297,31 @@ akm config path --all # Show all config paths
268
297
  ## Other Commands
269
298
 
270
299
  ```sh
271
- akm init # Initialize working stash
300
+ akm bundle create # Initialize working bundle (scaffold only)
301
+ akm setup # Interactive wizard: bundle + LLM/embedding + agent + registry config
302
+ akm setup --dir ~/custom-bundle # Run the wizard against a custom bundle path
303
+ akm setup --yes # Non-interactive, accepts all defaults
272
304
  akm index # Rebuild search index (metadata enrichment when configured)
273
305
  akm index --full # Full reindex (metadata enrichment when configured)
274
- akm list # List all sources
306
+ akm bundle list # List all sources
307
+ akm lint # Structural lint over the bundle; exits 0 regardless of findings
308
+ akm lint --fix # Auto-fix Tier 1 issues
309
+ akm lint --fail-on-flagged # Exit non-zero when summary.flagged > 0 (CI-friendly)
275
310
  akm upgrade # Upgrade akm using its install method
276
311
  akm upgrade --check # Check for updates
277
312
  akm help migrate 0.6.0 # Print migration notes for a release (or: latest)
278
- akm hints # Print this reference
313
+ akm help bundle # Print options and subcommands for one command
314
+ akm help agents --full # Print this reference
315
+ akm hints # Print this complete agent guide
279
316
  akm completions # Print bash completion script
280
317
  akm completions --install # Install completions
281
318
  ```
282
319
 
320
+ `akm bundle create` only scaffolds the bundle directory and registers it in config;
321
+ `akm setup` additionally walks through embedding/LLM connections, agent
322
+ profiles, sources, and registries. Use `setup` for first-time onboarding,
323
+ `bundle create` when you just need a bare bundle.
324
+
283
325
  ## Proposals & Improvement (0.8.0+)
284
326
 
285
327
  ```sh
@@ -287,30 +329,77 @@ akm improve <ref> # Propose improvement fo
287
329
  akm proposal list # List pending proposals
288
330
  akm proposal show <id> # Render the proposal body
289
331
  akm proposal diff <ref-or-id> # Diff by ref, UUID, or 8-char prefix
290
- akm proposal diff skill:akm-dream # Diff by asset ref
332
+ akm proposal diff skills/akm-dream # Diff by asset ref
291
333
  akm proposal accept 7c115132 # Accept by UUID prefix
292
- akm proposal accept <id> --target team-stash # Accept to a named writable stash source
293
- akm proposal reject skill:my-skill --reason "not ready" # Reject by asset ref
334
+ akm proposal accept <id> --target team-bundle # Accept to a named writable bundle source
335
+ akm proposal reject skills/my-skill --reason "not ready" # Reject by asset ref
294
336
  akm proposal reject <id> --reason "..." # Archive with a reason
295
337
  akm proposal revert <id> # Restore the pre-promotion content
338
+ akm proposal new <type> <name> --task "..." # Agent-author a NEW asset as a proposal
339
+ akm proposal extract --auto # Mine native session files into proposals
340
+ akm proposal extract --type claude-code # Restrict extraction to one harness
296
341
  ```
297
342
 
298
343
  The flat verbs `akm proposals` / `akm show proposal` / `akm accept` /
299
344
  `akm reject` / `akm diff` / `akm revert` were removed in 0.9.0 — use the
300
- `akm proposal <verb>` forms above.
345
+ `akm proposal <verb>` forms above. `akm extract` and `akm propose` moved
346
+ here as `proposal extract` / `proposal new`.
347
+
348
+ ## Scheduled Tasks
349
+
350
+ Tasks are pure-YAML assets at `<bundle>/tasks/<id>.yml`, bound to the OS
351
+ scheduler (cron / launchd / schtasks). The file is the source of truth:
352
+ `task sync` reconciles files to scheduler entries, so editing or deleting a
353
+ file plus one `sync` is a complete workflow.
301
354
 
302
- Per-task `timeoutMs`: task markdown frontmatter may set `timeoutMs: null` to
303
- disable the agent kill timer for long-running local-model tasks, or a number
304
- (milliseconds) to override `config.agent.timeoutMs` for that task only.
355
+ ```sh
356
+ akm task add nightly-improve --schedule "@daily" --command "akm improve --strategy frequent"
357
+ akm task add briefing --schedule "0 9 * * *" --prompt agents/briefer # Agent-target task
358
+ akm task sync # Reconcile task files with the OS scheduler
359
+ akm task sync --rebind # Also re-pin the scheduler's akm binary/spelling
360
+ akm task doctor # Scheduler binding + runtime eligibility diagnosis
361
+ akm task history # Recent run rows (status, timing)
362
+ akm task run <id> # Run one task immediately (works when disabled)
363
+ akm search --type task # Enumerate task assets (there is no `task list`)
364
+ ```
365
+
366
+ To disable a task, set `enabled: false` in its YAML and run `akm task sync`
367
+ (the cron line stays, commented). To remove one, delete the YAML and run
368
+ `akm task sync` — the scheduler entry is unbound. Per-task `timeoutMs` in
369
+ the YAML may be `null` (disable the agent kill timer for long local-model
370
+ runs) or a number of milliseconds overriding the selected engine invocation timeout.
371
+
372
+ ## Agent Dispatch
373
+
374
+ ```sh
375
+ akm agent --prompt "summarize open proposals" # Dispatch the configured agent CLI
376
+ akm agent agents/architect --prompt "..." # Embody a bundle agent asset (system prompt, model, tool policy)
377
+ akm agent --workflow workflows/ship-release # Load the task from a workflow asset
378
+ akm agent --model sonnet --prompt "..." # Model override (aliases or exact IDs)
379
+ ```
380
+
381
+ ## Health, Info, and the Event Log
382
+
383
+ ```sh
384
+ akm info # Capabilities, bundle dir, index stats, semantic-search status
385
+ akm health # Runtime diagnostics; exit 0 ok / 4 warn / 1 fail
386
+ akm health --report # Adds accept-rate and graph-coverage metrics
387
+ akm log # Append-only event stream (mutations, feedback, indexing)
388
+ akm log --ref <ref> # One asset's event trail
389
+ akm log --since @offset:<id> # Durable row-id cursor — poll this to follow the stream
390
+ akm log --run <run-id> # Events for one workflow-engine run
391
+ ```
305
392
 
306
393
  ## Output Control
307
394
 
308
- All commands accept `--format`, `--detail`, and `--shape` flags:
395
+ Result-envelope commands accept `--format`, `--detail`, and `--shape` flags:
309
396
 
310
397
  - `--format json` (default) — structured JSON
311
398
  - `--format jsonl` — one JSON object per line (streaming-friendly)
312
399
  - `--format text` — human-readable plain text
313
400
  - `--format yaml` — YAML output
401
+ - `--format md` — Markdown output
402
+ - `--format html` — HTML output
314
403
  - `--detail brief` (default) — compact output
315
404
  - `--detail normal` — adds tags, refs, origins
316
405
  - `--detail full` — includes scores, paths, timing, debug info
@@ -318,4 +407,65 @@ All commands accept `--format`, `--detail`, and `--shape` flags:
318
407
  - `--shape agent` — agent-optimized output: strips non-actionable fields
319
408
  - `--shape summary` — metadata only (no content/template/prompt), under 200 tokens; only valid on `akm show`
320
409
 
321
- Run `akm -h` or `akm <command> -h` for per-command help.
410
+ Run `akm help <command>` or `akm <command> -h` for per-command help. Run
411
+ `akm --help` for the sectioned command overview.
412
+
413
+ ### Piping JSON to jq
414
+
415
+ For any akm command emitting more than ~64KB of JSON, prefer
416
+ `akm <cmd> | cat | jq …` over the direct pipe. A known Bun stdout chunking
417
+ interaction with `jq 1.6` can truncate the stream mid-document on direct
418
+ pipes; `cat` re-buffers and presents a clean pipe to jq. `jq 1.7+` tolerates
419
+ the chunked writes without the workaround.
420
+
421
+ ## Error Shapes and Exit Codes
422
+
423
+ Every command returns JSON by default. On success, the shape is command-specific.
424
+ On failure, every command emits a JSON envelope on **stderr** (stdout is
425
+ normally left empty):
426
+
427
+ ```json
428
+ {"ok": false, "error": "<message>", "code": "<optional machine-readable code>", "hint": "<optional remediation hint>"}
429
+ ```
430
+
431
+ `code` is present for errors akm classifies (e.g. `INVALID_FLAG_VALUE`,
432
+ `ASSET_NOT_FOUND`, `UNKNOWN_COMMAND`); an unexpected internal error omits it.
433
+ The `hint` field is present only when there is an actionable next step (a
434
+ suggested flag or alternate command).
435
+
436
+ Exit codes:
437
+
438
+ | Code | Meaning | Error class |
439
+ | --- | --- | --- |
440
+ | 0 | Success | — |
441
+ | 1 | Not found or command-reported failure | `NotFoundError`, command result |
442
+ | 2 | Usage / bad input | `UsageError` |
443
+ | 4 | Health warning (`akm health` only) | — |
444
+ | 70 | Internal / unclassified error | unexpected throw |
445
+ | 78 | Configuration error | `ConfigError` |
446
+
447
+ To detect failure reliably, check either:
448
+
449
+ - `ok === false` in the parsed JSON response, or
450
+ - a non-zero exit code (`$?` in shell, process exit code in SDK calls)
451
+
452
+ On result-envelope surfaces, both signals are always set consistently. The JSON
453
+ envelope is the preferred signal for agents parsing output programmatically;
454
+ the exit code is the preferred signal for shell scripts. Passthrough surfaces
455
+ below preserve the child's own streams and status instead.
456
+
457
+ `env run`, `secret run`, and `migrate` are process passthroughs and preserve
458
+ the spawned process's exact status. `task run` preserves configuration failures
459
+ as exit 78; successful task results exit 0 and other failures exit 1, while a
460
+ command child's exact status remains in `result.detail.exitCode`. `agent` maps
461
+ a failed dispatch to 1 and retains the child status in its final result envelope.
462
+
463
+ `akm lint` is the one command that does not follow the exit-code table above:
464
+ it exits **0 on every successful run regardless of findings**. Read
465
+ `summary.flagged` to detect issues, or pass `--fail-on-flagged` to opt into
466
+ the CI-friendly "exit 1 when findings exist" behavior:
467
+
468
+ ```sh
469
+ akm lint | jq '.summary.flagged' # always exit 0; read the count
470
+ akm lint --fail-on-flagged && deploy # exit 1 if any flagged issues
471
+ ```