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,215 +0,0 @@
1
- // This Source Code Form is subject to the terms of the Mozilla Public
2
- // License, v. 2.0. If a copy of the MPL was not distributed with this
3
- // file, You can obtain one at https://mozilla.org/MPL/2.0/.
4
- import fs from "node:fs";
5
- import path from "node:path";
6
- import { getWorkflowDbPath } from "../core/paths.js";
7
- import { openDatabase } from "../storage/database.js";
8
- import { runMigrations as runSqliteMigrations } from "../storage/engines/sqlite-migrations.js";
9
- import { applyStandardPragmas } from "../storage/sqlite-pragmas.js";
10
- /**
11
- * workflow.db — Durable SQLite database for workflow run state.
12
- *
13
- * Owns the `workflow_runs` and `workflow_run_steps` tables that track active /
14
- * completed workflow executions. Like `state.db` (and unlike `index.db`), the
15
- * rows here are NON-REGENERABLE — losing them is data loss. Schema must evolve
16
- * via incremental, additive migrations recorded in `schema_migrations`.
17
- *
18
- * ## Migration-safety contract
19
- *
20
- * The `schema_migrations` table records every applied migration by a stable
21
- * string ID. `runMigrations(db)` is idempotent: new installs run every
22
- * migration in order; upgrades run only the ones not yet applied. The
23
- * migration framework here intentionally mirrors `src/core/state-db.ts` so
24
- * future schema evolution follows a single proven pattern.
25
- *
26
- * Permitted schema evolution operations (always migration-safe in SQLite):
27
- * - ALTER TABLE … ADD COLUMN <name> <type> DEFAULT <value>
28
- * - CREATE INDEX IF NOT EXISTS …
29
- * - CREATE TABLE IF NOT EXISTS … (additive new tables)
30
- *
31
- * ## Bootstrapping pre-versioning databases
32
- *
33
- * Workflow databases created before this file gained `schema_migrations`
34
- * already have the `workflow_runs.scope_key` column applied by the previous
35
- * ad-hoc `PRAGMA table_info` + `ALTER TABLE` code. To avoid re-running the
36
- * migration (which would no-op but still wastes work and clutters logs), the
37
- * runner detects this state and back-fills the `schema_migrations` row for
38
- * the scope-key migration before evaluating the migration list. See
39
- * `bootstrapPreVersioningDb()`.
40
- *
41
- * @module workflows/db
42
- */
43
- // ── Public API ───────────────────────────────────────────────────────────────
44
- export function openWorkflowDatabase(dbPath = getWorkflowDbPath()) {
45
- const dir = path.dirname(dbPath);
46
- if (!fs.existsSync(dir)) {
47
- fs.mkdirSync(dir, { recursive: true });
48
- }
49
- const db = openDatabase(dbPath);
50
- // #589: 30 s busy timeout, matching index.db / state.db. Without it the
51
- // default is 0 ms, so any concurrent writer fails immediately with
52
- // SQLITE_BUSY. #628: journal_mode is configurable via AKM_SQLITE_JOURNAL_MODE.
53
- applyStandardPragmas(db, { dataDir: dir });
54
- ensureBaseSchema(db);
55
- runMigrations(db);
56
- return db;
57
- }
58
- export function closeWorkflowDatabase(db) {
59
- db.close();
60
- }
61
- // ── Base schema ──────────────────────────────────────────────────────────────
62
- /**
63
- * Create the baseline `workflow_runs` and `workflow_run_steps` tables if they
64
- * do not exist. These statements are idempotent: existing databases keep their
65
- * current schema, and migrations evolve them further.
66
- *
67
- * NOTE: the `scope_key` column on `workflow_runs` is intentionally NOT declared
68
- * here. It is added by migration `001-add-scope-key`. Fresh databases will run
69
- * the migration immediately on first open; pre-versioning databases that
70
- * already have the column are bootstrapped — see {@link runMigrations}.
71
- */
72
- function ensureBaseSchema(db) {
73
- db.exec(`
74
- CREATE TABLE IF NOT EXISTS workflow_runs (
75
- id TEXT PRIMARY KEY,
76
- workflow_ref TEXT NOT NULL,
77
- workflow_entry_id INTEGER,
78
- workflow_title TEXT NOT NULL,
79
- status TEXT NOT NULL CHECK (status IN ('active', 'completed', 'blocked', 'failed')),
80
- params_json TEXT NOT NULL DEFAULT '{}',
81
- current_step_id TEXT,
82
- created_at TEXT NOT NULL,
83
- updated_at TEXT NOT NULL,
84
- completed_at TEXT
85
- );
86
-
87
- CREATE INDEX IF NOT EXISTS idx_workflow_runs_ref ON workflow_runs(workflow_ref);
88
- CREATE INDEX IF NOT EXISTS idx_workflow_runs_status ON workflow_runs(status);
89
-
90
- CREATE TABLE IF NOT EXISTS workflow_run_steps (
91
- run_id TEXT NOT NULL,
92
- step_id TEXT NOT NULL,
93
- step_title TEXT NOT NULL,
94
- instructions TEXT NOT NULL,
95
- completion_json TEXT,
96
- sequence_index INTEGER NOT NULL,
97
- status TEXT NOT NULL CHECK (status IN ('pending', 'completed', 'blocked', 'failed', 'skipped')),
98
- notes TEXT,
99
- evidence_json TEXT,
100
- completed_at TEXT,
101
- PRIMARY KEY (run_id, step_id),
102
- FOREIGN KEY (run_id) REFERENCES workflow_runs(id) ON DELETE CASCADE
103
- );
104
-
105
- CREATE INDEX IF NOT EXISTS idx_workflow_run_steps_run_sequence
106
- ON workflow_run_steps(run_id, sequence_index);
107
- `);
108
- }
109
- // ── Migration engine ─────────────────────────────────────────────────────────
110
- //
111
- // The runner itself (ensureMigrationsTable + runMigrations) lives in the shared
112
- // engine at src/storage/engines/sqlite-migrations.ts. This module owns its own
113
- // MIGRATIONS array plus the pre-versioning `bootstrap` hook, and delegates
114
- // application to that shared runner. The {@link Migration} interface is imported
115
- // from there.
116
- /**
117
- * All workflow.db migrations in application order. New migrations are
118
- * APPENDED — never inserted in the middle or reordered.
119
- */
120
- const MIGRATIONS = [
121
- // ── Migration 001 — add scope_key column ────────────────────────────────────
122
- //
123
- // Adds the `scope_key` column to `workflow_runs` so runs can be partitioned
124
- // per stash/scope. Pre-versioning databases that already have this column
125
- // are bootstrapped before this migration runs — see runMigrations().
126
- {
127
- id: "001-add-scope-key",
128
- up: `
129
- ALTER TABLE workflow_runs ADD COLUMN scope_key TEXT;
130
-
131
- CREATE INDEX IF NOT EXISTS idx_workflow_runs_scope_ref_status
132
- ON workflow_runs(scope_key, workflow_ref, status);
133
- `,
134
- },
135
- // ── Migration 002 — record agent harness + session identity ──────────────────
136
- //
137
- // Persists the agent harness identifier (e.g. "claude-code", "opencode") and
138
- // the platform-native session id that owns each workflow run. This is the
139
- // first concrete slice of #501 / #506: capturing *who* is driving a run so a
140
- // future (separately-approved) monitor can correlate workflow runs with
141
- // session activity. Both columns are nullable — runs started outside an agent
142
- // harness, and all pre-existing runs, simply have NULL identity.
143
- {
144
- id: "002-add-agent-identity",
145
- up: `
146
- ALTER TABLE workflow_runs ADD COLUMN agent_harness TEXT;
147
- ALTER TABLE workflow_runs ADD COLUMN agent_session_id TEXT;
148
-
149
- CREATE INDEX IF NOT EXISTS idx_workflow_runs_agent_session
150
- ON workflow_runs(agent_harness, agent_session_id);
151
- `,
152
- },
153
- // ── Migration 003 — check-in arming + per-step summary (#506) ────────────────
154
- //
155
- // Builds on the agent identity recorded by migration 002. Arms a file-signal
156
- // check-in (a timestamp, NOT a background thread — see
157
- // docs/technical/workflow-agent-checkin-adr.md) so a stalled run can be
158
- // re-targeted with a `continue` directive, and adds a per-step `summary`
159
- // column so step/workflow completion can capture and validate a required
160
- // summary of work done. Both columns are nullable.
161
- {
162
- id: "003-checkin-and-step-summary",
163
- up: `
164
- ALTER TABLE workflow_runs ADD COLUMN checkin_armed_at TEXT;
165
- ALTER TABLE workflow_run_steps ADD COLUMN summary TEXT;
166
- `,
167
- },
168
- ];
169
- /**
170
- * Stable id of the scope_key migration. Exported for bootstrap detection and
171
- * tests.
172
- */
173
- const SCOPE_KEY_MIGRATION_ID = "001-add-scope-key";
174
- /**
175
- * Detect whether a column exists on a given table.
176
- */
177
- function hasColumn(db, table, column) {
178
- const rows = db.prepare(`PRAGMA table_info(${table})`).all();
179
- return rows.some((r) => r.name === column);
180
- }
181
- /**
182
- * Back-fill `schema_migrations` rows for any schema state that existed before
183
- * this file gained migration tracking.
184
- *
185
- * The pre-versioning code added the `scope_key` column on `workflow_runs` via
186
- * an ad-hoc PRAGMA / ALTER TABLE pair. Those databases must not re-run the
187
- * scope_key migration (the ALTER would fail with "duplicate column name"
188
- * since the migration body does not use IF NOT EXISTS — SQLite does not
189
- * support that clause on ALTER TABLE ADD COLUMN). Instead, we mark the
190
- * migration as already applied.
191
- *
192
- * This function is a no-op on fresh databases: the `scope_key` column does
193
- * not exist, so the migration runs normally and records itself.
194
- */
195
- function bootstrapPreVersioningDb(db) {
196
- const alreadyRecorded = db.prepare("SELECT 1 FROM schema_migrations WHERE id = ?").get(SCOPE_KEY_MIGRATION_ID);
197
- if (alreadyRecorded)
198
- return;
199
- if (hasColumn(db, "workflow_runs", "scope_key")) {
200
- db.prepare("INSERT INTO schema_migrations (id) VALUES (?)").run(SCOPE_KEY_MIGRATION_ID);
201
- }
202
- }
203
- /**
204
- * Apply every pending migration in a single transaction per migration.
205
- *
206
- * Delegates to the shared SQLite migration engine, passing the
207
- * `bootstrapPreVersioningDb` hook so databases created before this file gained
208
- * migration tracking back-fill their scope_key row instead of re-running the
209
- * ALTER.
210
- *
211
- * Called automatically by {@link openWorkflowDatabase}.
212
- */
213
- export function runMigrations(db) {
214
- runSqliteMigrations(db, MIGRATIONS, { bootstrap: bootstrapPreVersioningDb });
215
- }
@@ -1,226 +0,0 @@
1
- # AKM Data & Telemetry
2
-
3
- AKM stores data locally on your machine. **It has no remote telemetry.** No data is sent to Anthropic, the AKM project, or any third party. This document describes exactly what AKM reads and writes on your machine.
4
-
5
- ## No Remote Data Collection
6
-
7
- AKM does not:
8
- - Send usage data, events, or crash reports to any server
9
- - Contact any AKM-operated endpoint at runtime (only your own configured LLM/embedding endpoints)
10
- - Include any analytics SDK or beacon
11
- - Collect email, name, or any personally-identifying information
12
-
13
- The only network requests AKM makes are:
14
- 1. Fetching registry metadata and stash packages from sources you explicitly configure (GitHub, npm, websites)
15
- 2. Calls to your configured LLM/embedding endpoint (if you enabled those features)
16
- 3. `akm upgrade` — fetches the latest release from GitHub releases
17
- 4. `akm setup` — a single DNS lookup for `github.com` to decide whether to skip network-dependent steps (Ollama detection, remote embedding probes) when offline. No HTTP request is made by this probe; if it succeeds, akm proceeds with the network-dependent steps you already configured.
18
-
19
- ---
20
-
21
- ## Local On-Disk Surface
22
-
23
- AKM writes to these locations on your machine. All paths follow [XDG Base Directory](https://specifications.freedesktop.org/basedir-spec/latest/) conventions on Linux/macOS and Windows conventions on Windows.
24
-
25
- ### Config Directory (`$XDG_CONFIG_HOME/akm` or `~/.config/akm/`)
26
-
27
- | Path | Contents | Safe to delete? |
28
- |---|---|---|
29
- | `config.json` | Your AKM configuration: LLM endpoints, stash paths, feature flags, profiles | **No** — deleting resets all settings |
30
-
31
- Override: set `AKM_CONFIG_DIR` or `XDG_CONFIG_HOME`.
32
-
33
- ### Data Directory (`$XDG_DATA_HOME/akm` or `~/.local/share/akm/`)
34
-
35
- | Path | Contents | Safe to delete? |
36
- |---|---|---|
37
- | `index.db` | Search index for all your stash assets (FTS5 + metadata) | Yes — rebuilds via `akm index --full` |
38
- | `workflow.db` | Workflow run state and history | Caution — deletes run history |
39
- | `state.db` | Events, proposals, task history, improve run results | **No** — deletes event log, proposal queue, improve history |
40
- | `akm.lock` | Inter-process write lock | Yes — recreated automatically |
41
- | `akm.lock.lck` | Lock write sentinel | Yes — recreated automatically |
42
-
43
- Override: set `AKM_DATA_DIR` or `XDG_DATA_HOME`.
44
-
45
- ### Cache Directory (`$XDG_CACHE_HOME/akm` or `~/.cache/akm/`)
46
-
47
- Everything in the cache is regenerable. It is safe to delete the entire cache directory; AKM will recreate what it needs on next use.
48
-
49
- | Path | Contents | Safe to delete? |
50
- |---|---|---|
51
- | `config-backups/config-<timestamp>.json` | Pre-save config snapshots (5 retained; owner-only permissions — file `0600`, dir `0700`, since 08-F4) | Yes |
52
- | `config-backups/config.latest.json` | Latest backup alias (owner-only `0600`) | Yes |
53
- | `registry/` | Downloaded registry tarballs (stash packages from npm, GitHub, etc.) | Yes — re-downloaded on next `akm add` or `akm update` |
54
- | `registry-index/` | Legacy per-URL JSON cache (v0.7 artifact) | Yes — fully replaced by `index.db` in 0.8.0 |
55
- | `semantic-status.json` | Semantic index build status marker | Yes |
56
- | `bin/` | Downloaded AKM binary cache (used by `akm upgrade`) | Yes |
57
- | `tasks/logs/` | Scheduled task log files | Yes — ephemeral logs |
58
- | `tasks/history/` | Legacy task history JSONL (v0.7 migration artifact) | Yes |
59
-
60
- Override: set `AKM_CACHE_DIR` or `XDG_CACHE_HOME`.
61
-
62
- ### Stash Directory (`~/akm/` by default, or user-configured)
63
-
64
- | Path | Contents | Safe to delete? |
65
- |---|---|---|
66
- | `<stash>/` | All your asset files: agents, skills, commands, knowledge, workflows, memories, env files, secrets, wikis, lessons, facts | **No** — this is YOUR data |
67
- | `<stash>/.akm/` | Hidden AKM metadata (v0.7 proposals, legacy runs) | Caution — check for pending proposals first |
68
-
69
- Override: set `AKM_STASH_DIR` (or configure `stashDir` in `config.json`).
70
-
71
- ---
72
-
73
- ## What Is Stored in `state.db`
74
-
75
- `state.db` holds three categories of non-regenerable data:
76
-
77
- ### 1. Events Table
78
-
79
- An append-only log of every mutating action you perform with AKM. Events are stored locally for self-improvement (the improve loop uses them to surface usage patterns) and for inspection via `akm log`.
80
-
81
- **What is recorded:**
82
- - `event_type` — what action was taken (see full list below)
83
- - `ts` — ISO-8601 UTC timestamp
84
- - `ref` — the asset ref affected (e.g. `skill:code-review`), if applicable
85
- - `metadata` — structured payload specific to the event type (e.g. query text for `search`, score for `feedback`)
86
-
87
- **What is NOT recorded:**
88
- - File contents
89
- - LLM prompts or responses
90
- - API keys or secrets (config is not stored in events)
91
- - Personal information
92
-
93
- **Retention:** Events older than 90 days are purged automatically when `akm improve` runs its maintenance pass. Purge is controlled by `purgeOldEvents()` with a 90-day default.
94
-
95
- **Full event type list:**
96
-
97
- | Event type | When emitted | Key metadata fields |
98
- |---|---|---|
99
- | `add` | `akm add <source>` | `ref`, `provider` |
100
- | `remove` | `akm remove <source>` | `ref` |
101
- | `update` | `akm update [source]` | `ref` |
102
- | `remember` | `akm remember <text>` | `ref` |
103
- | `import` | `akm import <file>` | `ref` |
104
- | `save` | `akm sync` | `ref` |
105
- | `feedback` | `akm feedback <ref>` | `signal` (positive/negative) |
106
- | `search` | `akm search <query>` | `query`, `source`, `signal` |
107
- | `curate` | `akm curate <prompt>` | `query`, `source` |
108
- | `show` | `akm show <ref>` | `ref`, `type`, `name` |
109
- | `select` | `akm show` after a search returning the same ref | `ref`, `entryId` |
110
- | `promoted` | `akm proposal accept <id>` | `ref` |
111
- | `rejected` | `akm proposal reject <id>` | `ref` |
112
- | `reflect_invoked` | Start of reflect phase in `akm improve` | `ref`, profile |
113
- | `reflect_completed` | Reflect phase produced a proposal | `ref` |
114
- | `improve_reflect_outcome` | Per-asset reflect result | `ref`, `ok`, `durationMs`, `reason` |
115
- | `propose_invoked` | `akm propose` | `ref` |
116
- | `distill_invoked` | `akm distill` | |
117
- | `improve_skipped` | Asset skipped by cooldown or budget | `ref`, `reason` |
118
- | `improve_completed` | `akm improve` run finished | run stats |
119
- | `improve_failed` | `akm improve` run errored | error |
120
- | `improve_lock_recovered` | Stale lock cleared at startup | |
121
- | `proposal_orphan_purge` | Stale proposals pruned | `checked`, `rejected` |
122
- | `proposal_creation_rejected` | `createProposal()` validation failed | `ref`, `reason`, `source` |
123
- | `proposal_expired` | Proposal expired | `ref` |
124
- | `events_purged` | Old events deleted by maintenance | `purgedCount`, `retentionDays` |
125
- | `workflow_started` | `akm workflow start <ref>` | `ref`, `runId` |
126
- | `workflow_step_completed` | `akm workflow next` | `ref`, `runId`, `stepId` |
127
- | `workflow_finished` | `akm workflow complete` | `ref`, `runId` |
128
- | `schema_repair_invoked` | `akm lint --repair` triggered schema repair | `ref` |
129
- | `archive_cleanup` | Archive cleanup during consolidation | |
130
-
131
- ### 2. Proposals Table
132
-
133
- The proposal queue: pending, accepted, and rejected improvement proposals for your stash assets. Generated by `akm improve`, `akm propose`, and related proposal-producing flows.
134
-
135
- Contents:
136
- - Proposal UUID (primary key)
137
- - Target asset ref
138
- - Status (pending/accepted/rejected)
139
- - Source (which process generated it — e.g. `reflect`, `distill`)
140
- - Full proposal content (Markdown text)
141
- - Created/updated timestamps
142
-
143
- ### 3. Task History Table
144
-
145
- A record of scheduled task runs (from `akm tasks`):
146
- - Task ID, status, start/end times
147
- - Log file path (the log content stays in `$CACHE/tasks/logs/`)
148
-
149
- ---
150
-
151
- ## How to Inspect and Clear Local Data
152
-
153
- ### Inspect events
154
-
155
- ```sh
156
- # List recent events
157
- akm log list
158
-
159
- # Stream live events (tail)
160
- akm log tail
161
-
162
- # Filter by type
163
- akm log list --type search --limit 20
164
-
165
- # Filter by asset ref
166
- akm log list --ref skill:code-review
167
- ```
168
-
169
- ### Inspect proposals
170
-
171
- ```sh
172
- # List pending proposals
173
- akm proposal list
174
-
175
- # Show a specific proposal
176
- akm proposal show <id>
177
- ```
178
-
179
- ### Clear specific data
180
-
181
- ```sh
182
- # Delete the search index (safe — rebuilds with akm index --full)
183
- rm ~/.local/share/akm/index.db
184
-
185
- # Delete all cached registry downloads
186
- rm -rf ~/.cache/akm/registry/
187
-
188
- # Delete config backups
189
- rm -rf ~/.cache/akm/config-backups/
190
-
191
- # Delete the events log from state.db (non-reversible)
192
- # There is no akm CLI command to do this directly in 0.8.0.
193
- # Use SQLite directly:
194
- sqlite3 ~/.local/share/akm/state.db "DELETE FROM events;"
195
-
196
- # Delete all proposals
197
- sqlite3 ~/.local/share/akm/state.db "DELETE FROM proposals;"
198
- ```
199
-
200
- ### Start completely fresh (nuclear reset)
201
-
202
- ```sh
203
- rm -f ~/.config/akm/config.json
204
- rm -rf ~/.local/share/akm/
205
- rm -rf ~/.cache/akm/
206
- # Your stash files in ~/akm/ are NOT touched by the above.
207
- ```
208
-
209
- ---
210
-
211
- ## Environment Variable Overrides
212
-
213
- You can redirect any AKM directory to a custom path:
214
-
215
- | Variable | Overrides |
216
- |---|---|
217
- | `AKM_CONFIG_DIR` | Config directory (`~/.config/akm/`) |
218
- | `AKM_DATA_DIR` | Data directory (`~/.local/share/akm/`) |
219
- | `AKM_SQLITE_JOURNAL_MODE` | SQLite journal mode: `WAL` (default), `DELETE`, or `TRUNCATE`. Use `DELETE`/`TRUNCATE` on network filesystems (NFS/SMB) where WAL is impossible. When left at the `WAL` default, akm auto-detects a network FS for the data dir and falls back to `DELETE`. |
220
- | `AKM_STATE_DIR` | State directory (`~/.local/state/akm/`) |
221
- | `AKM_CACHE_DIR` | Cache directory (`~/.cache/akm/`) |
222
- | `AKM_STASH_DIR` | Default stash directory (`~/akm/`) |
223
- | `XDG_CONFIG_HOME` | XDG base — akm appends `/akm` |
224
- | `XDG_DATA_HOME` | XDG base — akm appends `/akm` |
225
- | `XDG_STATE_HOME` | XDG base — akm appends `/akm` |
226
- | `XDG_CACHE_HOME` | XDG base — akm appends `/akm` |