akm-cli 0.9.16 → 0.9.17-alpha.10

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 (403) hide show
  1. package/CHANGELOG.md +2101 -0
  2. package/STABILITY.md +11 -10
  3. package/dist/akm +124 -193
  4. package/dist/akm-migrate +38 -19
  5. package/dist/assets/hints/cli-hints-full.md +6 -7
  6. package/dist/assets/improve-strategies/catchup.json +0 -3
  7. package/dist/assets/improve-strategies/consolidate.json +0 -1
  8. package/dist/assets/improve-strategies/default.json +1 -2
  9. package/dist/assets/improve-strategies/proactive-maintenance.json +1 -2
  10. package/dist/assets/improve-strategies/quick.json +1 -2
  11. package/dist/assets/improve-strategies/reflect-distill.json +1 -2
  12. package/dist/assets/improve-strategies/thorough.json +0 -3
  13. package/dist/assets/prompts/consolidate-pair.md +20 -0
  14. package/dist/assets/prompts/consolidate-system.md +4 -11
  15. package/dist/assets/prompts/retrieval-relevance-judge.md +6 -0
  16. package/dist/assets/stash-skeleton/facts/conventions/backlinks.md +20 -20
  17. package/dist/assets/stash-skeleton/facts/conventions/domains.md +2 -2
  18. package/dist/assets/templates/html/health.html +3 -5
  19. package/dist/cli/retired-commands.js +1 -1
  20. package/dist/cli/shared.js +6 -2
  21. package/dist/cli/unknown-flags.js +24 -1
  22. package/dist/cli.js +68 -10
  23. package/dist/commands/agent/agent-dispatch.js +1 -1
  24. package/dist/commands/command/command-execution.js +24 -62
  25. package/dist/commands/feedback-cli.js +0 -1
  26. package/dist/commands/health/accept-rate.js +6 -0
  27. package/dist/commands/health/archive-usage.js +92 -0
  28. package/dist/commands/health/checks.js +83 -74
  29. package/dist/commands/health/config-skew.js +38 -0
  30. package/dist/commands/health/data-dir-usage.js +25 -13
  31. package/dist/commands/health/egress.js +54 -0
  32. package/dist/commands/health/html-report.js +1 -42
  33. package/dist/commands/health/improve-metrics.js +136 -591
  34. package/dist/commands/health/md-report.js +1 -6
  35. package/dist/commands/health/plugin-staleness.js +53 -3
  36. package/dist/commands/health/renderers.js +12 -4
  37. package/dist/commands/health/report-view-model.js +14 -120
  38. package/dist/commands/health/types-improve.js +4 -19
  39. package/dist/commands/health/windows.js +64 -74
  40. package/dist/commands/health.js +145 -143
  41. package/dist/commands/improve/consolidate/chunking.js +26 -117
  42. package/dist/commands/improve/consolidate/continuity-check.js +137 -0
  43. package/dist/commands/improve/consolidate/pair-pass.js +791 -0
  44. package/dist/commands/improve/consolidate/sanitize.js +54 -149
  45. package/dist/commands/improve/consolidate.js +589 -1127
  46. package/dist/commands/improve/content-hash.js +16 -24
  47. package/dist/commands/improve/distill/content-repair.js +18 -100
  48. package/dist/commands/improve/distill-guards.js +20 -81
  49. package/dist/commands/improve/distill-promotion-policy.js +23 -243
  50. package/dist/commands/improve/distill.js +608 -1041
  51. package/dist/commands/improve/eligibility.js +126 -390
  52. package/dist/commands/improve/execution.js +8 -10
  53. package/dist/commands/improve/extract-prompt.js +1 -2
  54. package/dist/commands/improve/extract.js +487 -1046
  55. package/dist/commands/improve/feedback-valence.js +0 -25
  56. package/dist/commands/improve/improve-cli.js +75 -169
  57. package/dist/commands/improve/improve-result-file.js +10 -66
  58. package/dist/commands/improve/improve-strategies.js +52 -4
  59. package/dist/commands/improve/improve-usage-report.js +18 -64
  60. package/dist/commands/improve/improve.js +480 -1074
  61. package/dist/commands/improve/ledger.js +119 -0
  62. package/dist/commands/improve/locks.js +2 -8
  63. package/dist/commands/improve/loop-stages.js +415 -1073
  64. package/dist/commands/improve/memory/derived-ref.js +12 -77
  65. package/dist/commands/improve/memory/memory-belief.js +16 -118
  66. package/dist/commands/improve/memory/memory-improve.js +266 -14
  67. package/dist/commands/improve/outcome-loop.js +28 -156
  68. package/dist/commands/improve/planner.js +5 -15
  69. package/dist/commands/improve/preparation.js +779 -2319
  70. package/dist/commands/improve/proactive-maintenance.js +34 -101
  71. package/dist/commands/improve/reflect-noise.js +104 -280
  72. package/dist/commands/improve/reflect.js +642 -1353
  73. package/dist/commands/improve/retrieval-gate.js +127 -0
  74. package/dist/commands/improve/retrieval-scope.js +92 -0
  75. package/dist/commands/improve/salience.js +41 -240
  76. package/dist/commands/improve/session-asset.js +19 -100
  77. package/dist/commands/improve/stage.js +322 -0
  78. package/dist/commands/lint/base-linter.js +37 -15
  79. package/dist/commands/proposal/drain.js +261 -578
  80. package/dist/commands/proposal/proposal-cli.js +19 -20
  81. package/dist/commands/proposal/proposal-types.js +31 -24
  82. package/dist/commands/proposal/proposal.js +38 -8
  83. package/dist/commands/proposal/propose.js +134 -160
  84. package/dist/commands/proposal/repository.js +1097 -1394
  85. package/dist/commands/proposal/validators/proposal-quality-validators.js +71 -174
  86. package/dist/commands/proposal/validators/proposal-validators.js +1 -1
  87. package/dist/commands/proposal/validators/proposals.js +22 -89
  88. package/dist/commands/read/curate.js +105 -462
  89. package/dist/commands/read/knowledge.js +3 -2
  90. package/dist/commands/read/search-cli.js +16 -33
  91. package/dist/commands/read/search.js +17 -23
  92. package/dist/commands/read/show.js +57 -108
  93. package/dist/commands/sources/bundle-cli.js +25 -2
  94. package/dist/commands/sources/bundle-config-ops.js +4 -0
  95. package/dist/commands/sources/dangerous-env-audit.js +1 -2
  96. package/dist/commands/sources/info.js +127 -29
  97. package/dist/commands/sources/installed-stashes.js +197 -746
  98. package/dist/commands/sources/schema-repair.js +98 -129
  99. package/dist/commands/sources/source-add.js +62 -12
  100. package/dist/commands/sources/source-manage.js +9 -2
  101. package/dist/commands/sources/stash-cli.js +24 -4
  102. package/dist/commands/tasks/explain.js +10 -13
  103. package/dist/commands/tasks/tasks-cli.js +12 -13
  104. package/dist/commands/tasks/tasks.js +350 -936
  105. package/dist/commands/tasks/validate.js +26 -24
  106. package/dist/commands/workflow/plan.js +22 -29
  107. package/dist/commands/workflow-cli.js +4 -4
  108. package/dist/core/adapter/adapters/akm-adapter.js +2 -1
  109. package/dist/core/adapter/adapters/akm-lint.js +2 -3
  110. package/dist/core/adapter/adapters/akm-metadata.js +42 -12
  111. package/dist/core/adapter/adapters/akm-task-adapter.js +29 -8
  112. package/dist/core/adapter/adapters/akm-workflow-adapter.js +1 -1
  113. package/dist/core/adapter/execution-source.js +17 -29
  114. package/dist/core/asset/asset-placement.js +4 -13
  115. package/dist/core/asset/frontmatter.js +106 -1
  116. package/dist/core/asset/resolve-ref.js +1 -1
  117. package/dist/core/bundle-id.js +42 -5
  118. package/dist/core/bundle-rename.js +285 -0
  119. package/dist/core/config/config-io.js +1 -2
  120. package/dist/core/config/config-schema.js +9 -34
  121. package/dist/core/config/config-walker.js +1 -1
  122. package/dist/core/config/config.js +184 -111
  123. package/dist/core/config/engine-semantics.js +0 -2
  124. package/dist/core/config/legacy-source-shape-shim.js +38 -9
  125. package/dist/core/config/schema/embedding.js +20 -5
  126. package/dist/core/config/schema/engines.js +5 -0
  127. package/dist/core/config/schema/execution.js +1 -1
  128. package/dist/core/config/schema/experimental.js +1 -1
  129. package/dist/core/config/schema/improve-processes.js +54 -125
  130. package/dist/core/config/schema/improve.js +4 -42
  131. package/dist/core/config/schema/index-config.js +9 -48
  132. package/dist/core/config/schema/scheduler.js +12 -12
  133. package/dist/core/config/schema/search.js +6 -22
  134. package/dist/core/env-secret-ref.js +0 -1
  135. package/dist/core/errors.js +8 -9
  136. package/dist/core/file-change.js +13 -5
  137. package/dist/core/file-lock.js +76 -173
  138. package/dist/core/improve-result.js +35 -7
  139. package/dist/core/improve-types.js +0 -1
  140. package/dist/core/logs-db.js +2 -2
  141. package/dist/core/loopback.js +7 -12
  142. package/dist/core/non-task-input.js +20 -0
  143. package/dist/core/parse.js +13 -16
  144. package/dist/core/paths.js +0 -24
  145. package/dist/core/redaction.js +109 -2
  146. package/dist/core/run-lock.js +2 -5
  147. package/dist/core/spawn-env.js +1 -1
  148. package/dist/core/state/migrations.js +123 -61
  149. package/dist/core/state-db-scope.js +2 -4
  150. package/dist/core/state-db.js +126 -692
  151. package/dist/core/time.js +0 -20
  152. package/dist/core/type-presentation.js +1 -9
  153. package/dist/core/write-source.js +294 -1005
  154. package/dist/execution/input-contract.js +1 -1
  155. package/dist/execution/resolved-request.js +135 -689
  156. package/dist/execution/source.js +63 -257
  157. package/dist/execution/target-ref.js +1 -1
  158. package/dist/indexer/bundle-identity-guard.js +2 -2
  159. package/dist/indexer/db/llm-cache.js +2 -2
  160. package/dist/indexer/ensure-index.js +77 -73
  161. package/dist/indexer/index-rebuild-lock.js +3 -11
  162. package/dist/indexer/index-writer-lock.js +8 -17
  163. package/dist/indexer/index-written-assets.js +141 -154
  164. package/dist/indexer/indexer.js +400 -1124
  165. package/dist/indexer/links/declared-links.js +90 -0
  166. package/dist/indexer/materialize-embeddings.js +60 -397
  167. package/dist/indexer/passes/memory-inference.js +96 -90
  168. package/dist/indexer/passes/metadata.js +132 -219
  169. package/dist/indexer/read-preflight.js +0 -7
  170. package/dist/indexer/scan/doc-to-entry.js +2 -3
  171. package/dist/indexer/scan/drain-dir.js +1 -1
  172. package/dist/indexer/search/db-search.js +190 -590
  173. package/dist/indexer/search/fts-query.js +30 -41
  174. package/dist/indexer/search/ranking.js +28 -154
  175. package/dist/indexer/search/search-attribution.js +12 -32
  176. package/dist/indexer/search/search-fields.js +11 -15
  177. package/dist/indexer/search/search-hit-enrichers.js +54 -85
  178. package/dist/indexer/search/search-source.js +1 -4
  179. package/dist/indexer/usage/usage-events.js +36 -7
  180. package/dist/indexer/walk/walker.js +3 -4
  181. package/dist/integrations/agent/engine-fallback.js +23 -40
  182. package/dist/integrations/agent/engine-resolution.js +93 -183
  183. package/dist/integrations/agent/execution.js +507 -0
  184. package/dist/integrations/agent/model-map.js +28 -156
  185. package/dist/integrations/agent/request-lowering.js +66 -141
  186. package/dist/integrations/agent/runner-dispatch.js +143 -321
  187. package/dist/integrations/agent/runner.js +54 -14
  188. package/dist/integrations/lockfile.js +53 -101
  189. package/dist/llm/client.js +18 -6
  190. package/dist/llm/embedders/deterministic.js +2 -3
  191. package/dist/llm/embedders/profile.js +71 -0
  192. package/dist/llm/embedders/remote.js +11 -17
  193. package/dist/llm/feature-gate.js +0 -8
  194. package/dist/llm/index-passes.js +3 -5
  195. package/dist/llm/memory-infer.js +1 -2
  196. package/dist/llm/structured-call.js +5 -24
  197. package/dist/output/generic-render.js +23 -11
  198. package/dist/output/html-render.js +13 -10
  199. package/dist/output/render-registry.js +3 -32
  200. package/dist/output/shapes/helpers.js +25 -38
  201. package/dist/output/shapes/passthrough.js +1 -9
  202. package/dist/{indexer/graph/graph-types.js → output/text/bundle-rename.js} +4 -1
  203. package/dist/output/text/command-format.js +69 -31
  204. package/dist/output/text/helpers.js +1 -1
  205. package/dist/output/text/migrate.js +5 -14
  206. package/dist/output/text/proposal-format.js +48 -3
  207. package/dist/output/text/show-format.js +13 -17
  208. package/dist/output/text/workflow-format.js +0 -32
  209. package/dist/output/text.js +2 -0
  210. package/dist/registry/factory.js +4 -19
  211. package/dist/registry/network.js +66 -220
  212. package/dist/registry/providers/index.js +0 -2
  213. package/dist/registry/providers/skills-sh.js +3 -14
  214. package/dist/registry/providers/static-index.js +24 -26
  215. package/dist/registry/resolve.js +55 -131
  216. package/dist/scripts/akm-migrate-node.js +42948 -92369
  217. package/dist/scripts/akm-migrate.js +42935 -92354
  218. package/dist/setup/registry-stash-loader.js +4 -13
  219. package/dist/setup/semantic-assets.js +3 -44
  220. package/dist/setup/setup.js +1 -1
  221. package/dist/setup/steps/connection.js +5 -6
  222. package/dist/setup/steps/platforms.js +2 -2
  223. package/dist/setup/steps/tasks.js +25 -15
  224. package/dist/sources/provider-factory.js +17 -18
  225. package/dist/sources/providers/filesystem.js +2 -3
  226. package/dist/sources/providers/git-install.js +7 -1
  227. package/dist/sources/providers/git-provider.js +0 -3
  228. package/dist/sources/providers/git-stash.js +83 -21
  229. package/dist/sources/providers/npm.js +2 -4
  230. package/dist/sources/providers/provider-utils.js +5 -10
  231. package/dist/sources/providers/website.js +0 -2
  232. package/dist/sources/snapshot-fetchers/website-ingest.js +1 -1
  233. package/dist/sources/website-url.js +2 -2
  234. package/dist/storage/database.js +9 -35
  235. package/dist/storage/repositories/improve-ledger-repository.js +209 -0
  236. package/dist/storage/repositories/index-connection.js +39 -72
  237. package/dist/storage/repositories/index-entries-repository.js +131 -129
  238. package/dist/storage/repositories/index-entry-mapper.js +1 -2
  239. package/dist/storage/repositories/index-entry-schema.js +101 -268
  240. package/dist/storage/repositories/index-fts-repository.js +86 -256
  241. package/dist/storage/repositories/index-links-repository.js +143 -0
  242. package/dist/storage/repositories/index-llm-cache-repository.js +7 -9
  243. package/dist/storage/repositories/index-meta-repository.js +6 -4
  244. package/dist/storage/repositories/index-schema.js +257 -325
  245. package/dist/storage/repositories/index-utility-repository.js +8 -29
  246. package/dist/storage/repositories/index-vec-repository.js +133 -414
  247. package/dist/storage/repositories/outcome-repository.js +2 -1
  248. package/dist/storage/repositories/proposals-repository.js +104 -1
  249. package/dist/storage/repositories/registry-index-cache-repository.js +100 -0
  250. package/dist/storage/repositories/salience-repository.js +1 -19
  251. package/dist/storage/repositories/task-history-repository.js +26 -4
  252. package/dist/storage/repositories/workflow-runs-repository.js +53 -244
  253. package/dist/storage/sqlite-migrations.js +136 -0
  254. package/dist/storage/sqlite-pragmas.js +11 -9
  255. package/dist/storage/sqlite-transaction.js +170 -0
  256. package/dist/storage/state-db-integrity.js +130 -0
  257. package/dist/tasks/activation-config.js +134 -62
  258. package/dist/tasks/backends/cron.js +191 -302
  259. package/dist/tasks/backends/exec-utils.js +2 -5
  260. package/dist/tasks/backends/launchd.js +141 -748
  261. package/dist/tasks/backends/schtasks.js +119 -623
  262. package/dist/tasks/prepare/prepare-support.js +5 -15
  263. package/dist/tasks/prepare/prepare.js +0 -2
  264. package/dist/tasks/resolve-akm-bin.js +20 -79
  265. package/dist/tasks/run/attempt-lifecycle.js +0 -1
  266. package/dist/tasks/run/load-task.js +1 -1
  267. package/dist/tasks/scheduler-binding.js +20 -238
  268. package/dist/tasks/scheduler-invocation.js +136 -244
  269. package/dist/tasks/scheduler-lock.js +53 -0
  270. package/dist/tasks/scheduler-sync.js +368 -679
  271. package/dist/tasks/source/parse-task-source.js +55 -9
  272. package/dist/tasks/source/task-source-v3-frozen.js +3 -4
  273. package/dist/tasks/source/task-to-v4.js +464 -88
  274. package/dist/workflows/authoring/authoring.js +3 -12
  275. package/dist/workflows/compile.js +211 -0
  276. package/dist/workflows/concurrency-policy.js +13 -74
  277. package/dist/workflows/exec/child-invocation.js +3 -17
  278. package/dist/workflows/exec/child-workflow.js +32 -141
  279. package/dist/workflows/exec/dispatch-redaction.js +13 -53
  280. package/dist/workflows/exec/environment.js +98 -0
  281. package/dist/workflows/exec/exec-unit.js +33 -140
  282. package/dist/workflows/exec/frozen-judge.js +7 -59
  283. package/dist/workflows/exec/native-executor.js +82 -341
  284. package/dist/workflows/exec/param-secrets.js +29 -47
  285. package/dist/workflows/exec/run-workflow.js +154 -387
  286. package/dist/workflows/exec/scheduler.js +9 -36
  287. package/dist/workflows/exec/step-work.js +127 -430
  288. package/dist/workflows/exec/unit-dispatch.js +11 -63
  289. package/dist/workflows/exec/unit-writer.js +8 -52
  290. package/dist/workflows/exec/worktree.js +39 -273
  291. package/dist/workflows/freeze/child-output-references.js +4 -15
  292. package/dist/workflows/freeze/environment.js +99 -92
  293. package/dist/workflows/freeze/freeze.js +172 -0
  294. package/dist/workflows/freeze/step-values.js +19 -21
  295. package/dist/workflows/freeze/targets/child-workflow.js +23 -92
  296. package/dist/workflows/freeze/targets/command.js +10 -33
  297. package/dist/workflows/freeze/targets/script.js +5 -12
  298. package/dist/workflows/freeze/targets/shell.js +3 -6
  299. package/dist/workflows/freeze/targets/task.js +25 -80
  300. package/dist/workflows/freeze/task-bindings.js +20 -67
  301. package/dist/workflows/{source-ir/github-yaml.js → github-yaml.js} +88 -206
  302. package/dist/workflows/ir/params.js +6 -51
  303. package/dist/workflows/ir/plan-hash.js +2 -34
  304. package/dist/workflows/parser.js +140 -43
  305. package/dist/{commands/improve/consolidate/types.js → workflows/plan.js} +2 -1
  306. package/dist/workflows/renderer.js +36 -69
  307. package/dist/workflows/resource-limits.js +12 -120
  308. package/dist/workflows/runtime/agent-identity.js +8 -40
  309. package/dist/workflows/runtime/run-outputs.js +3 -6
  310. package/dist/workflows/runtime/run-plan.js +316 -0
  311. package/dist/workflows/runtime/runs.js +48 -200
  312. package/dist/workflows/runtime/workflow-asset-loader.js +24 -57
  313. package/dist/workflows/{source-ir/semantics.js → source-semantics.js} +16 -20
  314. package/dist/workflows/validate-summary.js +2 -7
  315. package/docs/integration/bundling-akm.md +49 -42
  316. package/docs/migration/README.md +1 -0
  317. package/docs/migration/release-notes/0.9.17.md +43 -0
  318. package/docs/migration/v0.9.1-to-v0.9.2.md +23 -7
  319. package/docs/reference/cli.md +232 -135
  320. package/docs/reference/configuration.md +71 -57
  321. package/docs/reference/data-and-telemetry.md +20 -21
  322. package/docs/reference/tasks.md +105 -39
  323. package/docs/reference/workflow-schema.md +14 -18
  324. package/docs/reference/workflows.md +6 -9
  325. package/package.json +1 -1
  326. package/schemas/akm-config.json +115 -738
  327. package/schemas/akm-workflow.json +1 -0
  328. package/dist/assets/improve-strategies/graph-refresh.json +0 -15
  329. package/dist/assets/prompts/contradiction-judge.md +0 -33
  330. package/dist/assets/prompts/graph-extract-system.md +0 -1
  331. package/dist/assets/prompts/graph-extract-user-prompt.md +0 -35
  332. package/dist/assets/prompts/metadata-enhance-system.md +0 -1
  333. package/dist/assets/tasks/improve/akm-graph-refresh-weekly.yml +0 -4
  334. package/dist/commands/health/advisories.js +0 -150
  335. package/dist/commands/health/metrics.js +0 -329
  336. package/dist/commands/health/surfaces.js +0 -102
  337. package/dist/commands/improve/anti-collapse.js +0 -83
  338. package/dist/commands/improve/collapse-detector.js +0 -432
  339. package/dist/commands/improve/consolidate/eligibility.js +0 -48
  340. package/dist/commands/improve/consolidate/merge.js +0 -149
  341. package/dist/commands/improve/distill/promote-memory.js +0 -291
  342. package/dist/commands/improve/distill/quality-gate.js +0 -337
  343. package/dist/commands/improve/eval-cases.js +0 -52
  344. package/dist/commands/improve/memory/memory-contradiction-detect.js +0 -291
  345. package/dist/commands/improve/proposal-envelope.js +0 -31
  346. package/dist/commands/improve/run-context.js +0 -123
  347. package/dist/commands/improve/shared.js +0 -31
  348. package/dist/commands/improve/source-identity.js +0 -28
  349. package/dist/commands/improve/triage.js +0 -96
  350. package/dist/commands/proposal/drain-policies.js +0 -151
  351. package/dist/commands/sources/update-transaction.js +0 -220
  352. package/dist/core/action-contributors.js +0 -28
  353. package/dist/core/config/config-version-shim.js +0 -101
  354. package/dist/core/fs-txn.js +0 -405
  355. package/dist/core/lexical-score.js +0 -25
  356. package/dist/core/maintenance-barrier.js +0 -167
  357. package/dist/execution/executable-identity.js +0 -105
  358. package/dist/execution/guarded-source.js +0 -427
  359. package/dist/indexer/db/graph-db.js +0 -444
  360. package/dist/indexer/graph/graph-boost.js +0 -427
  361. package/dist/indexer/graph/graph-dedup.js +0 -95
  362. package/dist/indexer/graph/graph-extraction.js +0 -1108
  363. package/dist/indexer/search/name-match.js +0 -35
  364. package/dist/indexer/search/ranking-contributors.js +0 -515
  365. package/dist/indexer/search/ranking-types.js +0 -4
  366. package/dist/indexer/walk/project-context.js +0 -192
  367. package/dist/integrations/agent/execution-cascade.js +0 -566
  368. package/dist/integrations/agent/execution-definitions.js +0 -202
  369. package/dist/integrations/agent/execution-lowering.js +0 -841
  370. package/dist/integrations/agent/execution-preparation.js +0 -98
  371. package/dist/integrations/agent/inline-execution.js +0 -74
  372. package/dist/llm/graph-extract.js +0 -728
  373. package/dist/llm/metadata-enhance.js +0 -96
  374. package/dist/registry/create-provider-registry.js +0 -29
  375. package/dist/registry/pinned-request-helper.js +0 -247
  376. package/dist/registry/pinned-transport.js +0 -717
  377. package/dist/sources/providers/index.js +0 -14
  378. package/dist/storage/engines/sqlite-migrations.js +0 -271
  379. package/dist/storage/repositories/canaries-repository.js +0 -107
  380. package/dist/storage/repositories/embedding-salvage-repository.js +0 -184
  381. package/dist/storage/repositories/registry-cache.js +0 -113
  382. package/dist/tasks/scheduler-sync-preview.js +0 -52
  383. package/dist/tasks/source/task-to-v3.js +0 -507
  384. package/dist/workflows/freeze/resolve-steps.js +0 -86
  385. package/dist/workflows/freeze/source-freeze.js +0 -64
  386. package/dist/workflows/ir/compile.js +0 -321
  387. package/dist/workflows/ir/environment-v4.js +0 -330
  388. package/dist/workflows/ir/freeze-v4.js +0 -153
  389. package/dist/workflows/ir/schema-v4.js +0 -745
  390. package/dist/workflows/ir/schema.js +0 -354
  391. package/dist/workflows/program/schema.js +0 -77
  392. package/dist/workflows/runtime/checkin.js +0 -57
  393. package/dist/workflows/runtime/plan-classifier.js +0 -196
  394. package/dist/workflows/runtime/unit-checkin.js +0 -45
  395. package/dist/workflows/runtime/unit-phases.js +0 -20
  396. package/dist/workflows/schema.js +0 -4
  397. package/dist/workflows/source-ir/compile.js +0 -200
  398. package/dist/workflows/source-ir/program.js +0 -50
  399. package/dist/workflows/source-ir/result.js +0 -26
  400. package/dist/workflows/source-ir/schema.js +0 -786
  401. package/dist/workflows/source-ir/triggers.js +0 -79
  402. package/dist/workflows/source-ir/uses.js +0 -40
  403. package/dist/workflows/validator.js +0 -60
@@ -19,15 +19,16 @@ import { resolveStashDir } from "../../core/common.js";
19
19
  import { generatedContentRejection } from "../../core/content-safety.js";
20
20
  import { UsageError } from "../../core/errors.js";
21
21
  import { appendEvent } from "../../core/events.js";
22
+ import { redactSensitiveText } from "../../core/redaction.js";
22
23
  import { resolveStandardsContext } from "../../core/standards/resolve-standards-context.js";
23
24
  import { warn } from "../../core/warn.js";
24
25
  import { deriveEntryProvenance } from "../../indexer/installations.js";
25
26
  import { fallbackAnnouncement } from "../../integrations/agent/engine-fallback.js";
26
- import { acquireLoweredExecutionDispatchLease, dispatchLoweredExecutionRequest, disposeLoweredExecutionDispatchLease, lowerResolvedExecutionRequest, redactWithLoweredExecutionDispatchLease, } from "../../integrations/agent/execution-lowering.js";
27
- import { prepareInlineExecution } from "../../integrations/agent/inline-execution.js";
27
+ import { buildExecution, resolveExecution } from "../../integrations/agent/execution.js";
28
28
  import { buildProposePrompt, parseAgentProposalPayload } from "../../integrations/agent/prompts.js";
29
+ import { assertRunnerCredentials, collectDispatchSensitiveValues, runExecution, } from "../../integrations/agent/runner-dispatch.js";
29
30
  import { baseFailureFields, enoentHintMessage, isEnoentFailure } from "../agent/agent-support.js";
30
- import { createProposal, isProposalSkipped, resolveProposalQueueTarget, } from "./repository.js";
31
+ import { createProposal, resolveProposalQueueTarget, } from "./repository.js";
31
32
  function failureEnvelope(result, type, name, engine, notices, fallbackReason = "non_zero_exit") {
32
33
  return {
33
34
  ...baseFailureFields(result, fallbackReason),
@@ -41,56 +42,43 @@ function failureEnvelope(result, type, name, engine, notices, fallbackReason = "
41
42
  function noticeFields(notices) {
42
43
  return notices.length > 0 ? { notices } : {};
43
44
  }
44
- /** Materialize required credentials through the real runner boundary, without provider I/O. */
45
- async function preflightProposalDispatch(lowered, runOptions) {
46
- return acquireLoweredExecutionDispatchLease(lowered, {
47
- ...(runOptions.envSource ? { envSource: runOptions.envSource } : {}),
48
- });
49
- }
50
45
  /** Resolve, lower, and dispatch the already-rendered proposal prompt. */
51
46
  async function dispatchProposalPrompt(prompt, config, options, onDispatchReady) {
52
47
  const current = {
53
48
  ...(options.engine !== undefined ? { engine: options.engine } : {}),
54
49
  ...(options.timeoutMs !== undefined ? { timeout: options.timeoutMs } : {}),
55
50
  };
56
- const prepared = prepareInlineExecution({
51
+ const prepared = resolveExecution({
57
52
  content: prompt,
58
53
  config,
59
- invocationKind: "direct",
60
54
  ...(Object.keys(current).length > 0 ? { current } : {}),
61
55
  });
62
56
  const engineName = prepared.request.engine.name;
63
57
  const announcement = fallbackAnnouncement(prepared.fallbackEngineName, engineName);
64
58
  if (announcement)
65
59
  warn(announcement);
66
- const lowered = lowerResolvedExecutionRequest(prepared.request, prepared.config);
60
+ const lowered = buildExecution(prepared.request, prepared.runner);
67
61
  const interactive = !options.runAgentOptions?.spawn;
68
62
  const runOptions = {
69
63
  stdio: interactive ? "interactive" : "captured",
70
64
  parseOutput: "text",
71
65
  ...(options.runAgentOptions ?? {}),
72
66
  };
73
- const lease = await preflightProposalDispatch(lowered, runOptions);
74
- // Materialize/validate every required symbolic credential before the entry
75
- // event opens durable state. Provider/runtime failures still occur after the
76
- // event, preserving the command-attempt observability contract.
77
- try {
78
- onDispatchReady();
79
- options.onDispatchReady?.();
80
- const result = await dispatchLoweredExecutionRequest(lowered, { runOptions, lease });
81
- return {
82
- result,
83
- engineName,
84
- ...(lowered.runner.kind === "llm" ? {} : { engineBin: lowered.runner.profile.bin }),
85
- notices: lowered.notices,
86
- lease,
87
- interactive,
88
- };
89
- }
90
- catch (error) {
91
- disposeLoweredExecutionDispatchLease(lease);
92
- throw error;
93
- }
67
+ // Validate every required symbolic credential before the entry event opens
68
+ // durable state. Provider/runtime failures still occur after the event,
69
+ // preserving the command-attempt observability contract.
70
+ assertRunnerCredentials(lowered.runner, runOptions.envSource);
71
+ onDispatchReady();
72
+ options.onDispatchReady?.();
73
+ const result = await runExecution(lowered, { runOptions });
74
+ return {
75
+ result,
76
+ engineName,
77
+ ...(lowered.runner.kind === "llm" ? {} : { engineBin: lowered.runner.profile.bin }),
78
+ notices: lowered.notices,
79
+ sensitiveValues: collectDispatchSensitiveValues(lowered.runner, {}, runOptions.envSource),
80
+ interactive,
81
+ };
94
82
  }
95
83
  /**
96
84
  * WI-8.5a — the fully-qualified `bundle//conceptId` item_ref for a proposal
@@ -158,153 +146,139 @@ export async function akmPropose(options) {
158
146
  // no synthetic persona, conversation turn, schema, or tool selection is
159
147
  // introduced while it crosses the shared resolved/lowered boundary.
160
148
  const dispatch = await dispatchProposalPrompt(prompt, config, options, () => emitProposeInvoked(target.source, options));
161
- const { result, engineName, notices, lease } = dispatch;
162
- try {
163
- if (!result.ok) {
164
- // B3: ENOENT / not-found gives an actionable hint.
165
- if (isEnoentFailure(result)) {
166
- return {
167
- ...failureEnvelope(result, options.type, options.name, engineName, notices),
168
- error: enoentHintMessage(dispatch.engineBin ?? engineName),
169
- };
170
- }
171
- return failureEnvelope(result, options.type, options.name, engineName, notices);
172
- }
173
- // 5. Resolve the proposal content.
174
- // Path A: opencode wrote the draft file — read it directly (no stdout parse).
175
- // Path B: fallback to stdout JSON parse for non-file-writing agents.
176
- let payload;
177
- if (fs.existsSync(resolvedDraftPath)) {
178
- const draftContent = fs.readFileSync(resolvedDraftPath, "utf8");
179
- fs.unlinkSync(resolvedDraftPath);
180
- payload = {
181
- ref: proposeItemRef(target.source, options.type, options.name),
182
- content: draftContent,
149
+ const { result, engineName, notices, sensitiveValues } = dispatch;
150
+ if (!result.ok) {
151
+ // B3: ENOENT / not-found gives an actionable hint.
152
+ if (isEnoentFailure(result)) {
153
+ return {
154
+ ...failureEnvelope(result, options.type, options.name, engineName, notices),
155
+ error: enoentHintMessage(dispatch.engineBin ?? engineName),
183
156
  };
184
157
  }
185
- else {
186
- // B1: When interactive mode was used and stdout is empty, the agent did not
187
- // write the draft file and stdout was not captured — surface an actionable error.
188
- if (dispatch.interactive && (result.stdout ?? "") === "") {
189
- return {
190
- schemaVersion: 2,
191
- ok: false,
192
- reason: "parse_error",
193
- error: "Agent did not write draft file and stdout was not captured (interactive mode). Check that the agent CLI understood the file-write instruction, or configure a headless profile with stdio: 'captured'.",
194
- type: options.type,
195
- name: options.name,
196
- engine: engineName,
197
- exitCode: result.exitCode,
198
- ...(result.stderr ? { stderr: result.stderr } : {}),
199
- ...noticeFields(notices),
200
- };
201
- }
202
- try {
203
- payload = parseAgentProposalPayload(result.stdout ?? "");
204
- }
205
- catch (err) {
206
- return {
207
- schemaVersion: 2,
208
- ok: false,
209
- reason: "parse_error",
210
- error: err instanceof Error ? err.message : String(err),
211
- type: options.type,
212
- name: options.name,
213
- engine: engineName,
214
- exitCode: result.exitCode,
215
- stdout: result.stdout,
216
- ...(result.stderr ? { stderr: result.stderr } : {}),
217
- ...noticeFields(notices),
218
- };
219
- }
220
- }
221
- const unsafeContent = generatedContentRejection(payload.content, redactWithLoweredExecutionDispatchLease(lease, payload.content));
222
- if (unsafeContent) {
158
+ return failureEnvelope(result, options.type, options.name, engineName, notices);
159
+ }
160
+ // 5. Resolve the proposal content.
161
+ // Path A: opencode wrote the draft file — read it directly (no stdout parse).
162
+ // Path B: fallback to stdout JSON parse for non-file-writing agents.
163
+ let payload;
164
+ if (fs.existsSync(resolvedDraftPath)) {
165
+ const draftContent = fs.readFileSync(resolvedDraftPath, "utf8");
166
+ fs.unlinkSync(resolvedDraftPath);
167
+ payload = {
168
+ ref: proposeItemRef(target.source, options.type, options.name),
169
+ content: draftContent,
170
+ };
171
+ }
172
+ else {
173
+ // B1: When interactive mode was used and stdout is empty, the agent did not
174
+ // write the draft file and stdout was not captured — surface an actionable error.
175
+ if (dispatch.interactive && (result.stdout ?? "") === "") {
223
176
  return {
224
177
  schemaVersion: 2,
225
178
  ok: false,
226
179
  reason: "parse_error",
227
- error: unsafeContent,
180
+ error: "Agent did not write draft file and stdout was not captured (interactive mode). Check that the agent CLI understood the file-write instruction, or configure a headless profile with stdio: 'captured'.",
228
181
  type: options.type,
229
182
  name: options.name,
230
183
  engine: engineName,
231
184
  exitCode: result.exitCode,
185
+ ...(result.stderr ? { stderr: result.stderr } : {}),
232
186
  ...noticeFields(notices),
233
187
  };
234
188
  }
235
- // 6. Insert the proposal. Note: we allow the agent's `ref` to normalise the
236
- // asset name (e.g. path-cleanup), but only after validating that the ref is
237
- // well-formed and the type still matches the requested type.
238
- const expectedRef = proposeItemRef(target.source, options.type, options.name);
239
- let ref = expectedRef;
240
- if (payload.ref) {
241
- let parsedRef;
242
- try {
243
- parsedRef = parseRefInput(payload.ref);
244
- }
245
- catch (err) {
246
- return {
247
- schemaVersion: 2,
248
- ok: false,
249
- reason: "parse_error",
250
- error: err instanceof Error ? err.message : String(err),
251
- type: options.type,
252
- name: options.name,
253
- engine: engineName,
254
- exitCode: result.exitCode,
255
- stdout: result.stdout,
256
- ...(result.stderr ? { stderr: result.stderr } : {}),
257
- ...noticeFields(notices),
258
- };
259
- }
260
- if (parsedRef.type !== options.type) {
261
- return {
262
- schemaVersion: 2,
263
- ok: false,
264
- reason: "parse_error",
265
- error: `Agent returned ref type ${parsedRef.type} but expected ${options.type}`,
266
- type: options.type,
267
- name: options.name,
268
- engine: engineName,
269
- exitCode: result.exitCode,
270
- stdout: result.stdout,
271
- ...(result.stderr ? { stderr: result.stderr } : {}),
272
- ...noticeFields(notices),
273
- };
274
- }
275
- ref = proposeItemRef(target.source, parsedRef.type, parsedRef.name);
189
+ try {
190
+ payload = parseAgentProposalPayload(result.stdout ?? "");
276
191
  }
277
- const createInput = {
278
- ref,
279
- source: "propose",
280
- sourceRun: `propose-${Date.now()}`,
281
- target,
282
- // User-initiated proposals always bypass dedup/cooldown guards — the
283
- // operator is explicitly asking for a new proposal.
284
- force: true,
285
- payload: {
286
- content: payload.content,
287
- ...(payload.frontmatter ? { frontmatter: payload.frontmatter } : {}),
288
- },
289
- };
290
- const proposalResult = createProposal(stash, createInput, options.ctx);
291
- // With force:true, the result is always a Proposal (never skipped).
292
- if (isProposalSkipped(proposalResult)) {
293
- // Should never happen when force:true, but be defensive.
294
- throw new Error(`Unexpected skip in propose command: ${proposalResult.message}`);
192
+ catch (err) {
193
+ return {
194
+ schemaVersion: 2,
195
+ ok: false,
196
+ reason: "parse_error",
197
+ error: err instanceof Error ? err.message : String(err),
198
+ type: options.type,
199
+ name: options.name,
200
+ engine: engineName,
201
+ exitCode: result.exitCode,
202
+ stdout: result.stdout,
203
+ ...(result.stderr ? { stderr: result.stderr } : {}),
204
+ ...noticeFields(notices),
205
+ };
295
206
  }
296
- const proposal = proposalResult;
207
+ }
208
+ const unsafeContent = generatedContentRejection(payload.content, redactSensitiveText(payload.content, sensitiveValues));
209
+ if (unsafeContent) {
297
210
  return {
298
211
  schemaVersion: 2,
299
- ok: true,
300
- proposal,
301
- ref: proposal.ref,
212
+ ok: false,
213
+ reason: "parse_error",
214
+ error: unsafeContent,
215
+ type: options.type,
216
+ name: options.name,
302
217
  engine: engineName,
303
- durationMs: result.durationMs,
218
+ exitCode: result.exitCode,
304
219
  ...noticeFields(notices),
305
220
  };
306
221
  }
307
- finally {
308
- disposeLoweredExecutionDispatchLease(lease);
222
+ // 6. Insert the proposal. Note: we allow the agent's `ref` to normalise the
223
+ // asset name (e.g. path-cleanup), but only after validating that the ref is
224
+ // well-formed and the type still matches the requested type.
225
+ const expectedRef = proposeItemRef(target.source, options.type, options.name);
226
+ let ref = expectedRef;
227
+ if (payload.ref) {
228
+ let parsedRef;
229
+ try {
230
+ parsedRef = parseRefInput(payload.ref);
231
+ }
232
+ catch (err) {
233
+ return {
234
+ schemaVersion: 2,
235
+ ok: false,
236
+ reason: "parse_error",
237
+ error: err instanceof Error ? err.message : String(err),
238
+ type: options.type,
239
+ name: options.name,
240
+ engine: engineName,
241
+ exitCode: result.exitCode,
242
+ stdout: result.stdout,
243
+ ...(result.stderr ? { stderr: result.stderr } : {}),
244
+ ...noticeFields(notices),
245
+ };
246
+ }
247
+ if (parsedRef.type !== options.type) {
248
+ return {
249
+ schemaVersion: 2,
250
+ ok: false,
251
+ reason: "parse_error",
252
+ error: `Agent returned ref type ${parsedRef.type} but expected ${options.type}`,
253
+ type: options.type,
254
+ name: options.name,
255
+ engine: engineName,
256
+ exitCode: result.exitCode,
257
+ stdout: result.stdout,
258
+ ...(result.stderr ? { stderr: result.stderr } : {}),
259
+ ...noticeFields(notices),
260
+ };
261
+ }
262
+ ref = proposeItemRef(target.source, parsedRef.type, parsedRef.name);
309
263
  }
264
+ const createInput = {
265
+ ref,
266
+ source: "propose",
267
+ sourceRun: `propose-${Date.now()}`,
268
+ target,
269
+ payload: {
270
+ content: payload.content,
271
+ ...(payload.frontmatter ? { frontmatter: payload.frontmatter } : {}),
272
+ },
273
+ };
274
+ const proposal = createProposal(stash, createInput, options.ctx);
275
+ return {
276
+ schemaVersion: 2,
277
+ ok: true,
278
+ proposal,
279
+ ref: proposal.ref,
280
+ engine: engineName,
281
+ durationMs: result.durationMs,
282
+ ...noticeFields(notices),
283
+ };
310
284
  }