@lumenflow/cli 3.1.2 → 3.1.3

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 (389) hide show
  1. package/README.md +36 -35
  2. package/dist/agent-issues-query.js +13 -8
  3. package/dist/agent-log-issue.js +15 -4
  4. package/dist/agent-session-end.js +15 -4
  5. package/dist/agent-session.js +18 -6
  6. package/dist/backlog-prune.js +1 -1
  7. package/dist/commands/integrate.js +32 -18
  8. package/dist/config-get.js +27 -15
  9. package/dist/config-set.js +104 -37
  10. package/dist/delegation-list.js +1 -1
  11. package/dist/doctor.js +19 -13
  12. package/dist/file-delete.js +1 -1
  13. package/dist/file-edit.js +1 -1
  14. package/dist/file-read.js +1 -1
  15. package/dist/file-write.js +1 -1
  16. package/dist/flow-bottlenecks.js +1 -1
  17. package/dist/flow-report.js +10 -9
  18. package/dist/gates.js +3 -2
  19. package/dist/git-branch.js +1 -1
  20. package/dist/git-diff.js +1 -1
  21. package/dist/git-log.js +1 -1
  22. package/dist/init.js +238 -42
  23. package/dist/initiative-add-wu.js +1 -1
  24. package/dist/initiative-bulk-assign-wus.js +1 -1
  25. package/dist/initiative-create.js +2 -2
  26. package/dist/initiative-edit.js +1 -1
  27. package/dist/initiative-list.js +1 -1
  28. package/dist/initiative-plan.js +1 -3
  29. package/dist/initiative-status.js +47 -6
  30. package/dist/lane-edit.js +19 -10
  31. package/dist/lane-health.js +13 -24
  32. package/dist/lane-lock.js +4 -5
  33. package/dist/lane-setup.js +5 -5
  34. package/dist/lane-status.js +4 -5
  35. package/dist/lane-suggest.js +9 -7
  36. package/dist/lane-validate.js +4 -5
  37. package/dist/lumenflow-upgrade.js +17 -11
  38. package/dist/mem-checkpoint.js +1 -1
  39. package/dist/mem-cleanup.js +6 -23
  40. package/dist/mem-context.js +1 -1
  41. package/dist/mem-create.js +1 -1
  42. package/dist/mem-delete.js +1 -1
  43. package/dist/mem-export.js +1 -1
  44. package/dist/mem-inbox.js +1 -1
  45. package/dist/mem-init.js +1 -1
  46. package/dist/mem-ready.js +1 -1
  47. package/dist/mem-recover.js +1 -1
  48. package/dist/mem-signal.js +1 -1
  49. package/dist/mem-start.js +1 -1
  50. package/dist/mem-summarize.js +8 -7
  51. package/dist/mem-triage.js +7 -5
  52. package/dist/metrics-cli.js +1 -1
  53. package/dist/metrics-snapshot.js +1 -1
  54. package/dist/onboard.js +295 -120
  55. package/dist/orchestrate-init-status.js +12 -7
  56. package/dist/orchestrate-initiative.js +23 -12
  57. package/dist/orchestrate-monitor.js +20 -8
  58. package/dist/pack-scaffold.js +1 -1
  59. package/dist/plan-create.js +1 -3
  60. package/dist/plan-edit.js +1 -3
  61. package/dist/plan-link.js +1 -3
  62. package/dist/plan-promote.js +1 -3
  63. package/dist/release.js +1 -3
  64. package/dist/signal-cleanup.js +4 -18
  65. package/dist/state-bootstrap.js +11 -8
  66. package/dist/state-cleanup.js +5 -19
  67. package/dist/state-doctor.js +213 -9
  68. package/dist/task-claim.js +1 -1
  69. package/dist/validate.js +1 -1
  70. package/dist/workspace-init.js +61 -61
  71. package/dist/wu-block.js +1 -1
  72. package/dist/wu-brief.js +1 -1
  73. package/dist/wu-claim.js +1 -1
  74. package/dist/wu-cleanup.js +1 -1
  75. package/dist/wu-create.js +3 -3
  76. package/dist/wu-delegate.js +1 -1
  77. package/dist/wu-deps.js +1 -1
  78. package/dist/wu-done.js +66 -34
  79. package/dist/wu-edit.js +1 -1
  80. package/dist/wu-infer-lane.js +1 -1
  81. package/dist/wu-preflight.js +1 -1
  82. package/dist/wu-prep.js +1 -1
  83. package/dist/wu-proto.js +1 -1
  84. package/dist/wu-prune.js +1 -1
  85. package/dist/wu-recover.js +1 -1
  86. package/dist/wu-release.js +1 -1
  87. package/dist/wu-repair.js +1 -1
  88. package/dist/wu-sandbox.js +40 -27
  89. package/dist/wu-status.js +1 -1
  90. package/dist/wu-unblock.js +1 -1
  91. package/dist/wu-unlock-lane.js +1 -1
  92. package/dist/wu-validate.js +1 -1
  93. package/package.json +12 -8
  94. package/packs/software-delivery/constants.ts +10 -0
  95. package/packs/software-delivery/extensions.ts +140 -0
  96. package/packs/software-delivery/gate-policies.ts +134 -0
  97. package/packs/software-delivery/index.ts +8 -0
  98. package/packs/software-delivery/manifest-schema.ts +236 -0
  99. package/packs/software-delivery/manifest.ts +417 -0
  100. package/packs/software-delivery/manifest.yaml +711 -0
  101. package/packs/software-delivery/pack-registration.ts +113 -0
  102. package/packs/software-delivery/tool-impl/agent-tools.ts +263 -0
  103. package/packs/software-delivery/tool-impl/delegation-tools.ts +66 -0
  104. package/packs/software-delivery/tool-impl/flow-metrics-tools.ts +219 -0
  105. package/packs/software-delivery/tool-impl/git-runner.ts +113 -0
  106. package/packs/software-delivery/tool-impl/git-tools.ts +316 -0
  107. package/packs/software-delivery/tool-impl/index.ts +15 -0
  108. package/packs/software-delivery/tool-impl/initiative-orchestration-tools.ts +720 -0
  109. package/packs/software-delivery/tool-impl/lane-lock.ts +246 -0
  110. package/packs/software-delivery/tool-impl/memory-tools.ts +415 -0
  111. package/packs/software-delivery/tool-impl/pending-runtime-tools.ts +21 -0
  112. package/packs/software-delivery/tool-impl/runtime-cli-adapter.ts +328 -0
  113. package/packs/software-delivery/tool-impl/runtime-native-tools.ts +687 -0
  114. package/packs/software-delivery/tool-impl/worker-loader.ts +52 -0
  115. package/packs/software-delivery/tool-impl/worktree-tools.ts +46 -0
  116. package/packs/software-delivery/tool-impl/wu-lifecycle-tools.ts +759 -0
  117. package/packs/software-delivery/tools/delegation-tools.ts +23 -0
  118. package/packs/software-delivery/tools/git-tools.ts +55 -0
  119. package/packs/software-delivery/tools/index.ts +8 -0
  120. package/packs/software-delivery/tools/lane-lock-tool.ts +37 -0
  121. package/packs/software-delivery/tools/types.ts +71 -0
  122. package/packs/software-delivery/tools/worktree-tools.ts +49 -0
  123. package/templates/core/LUMENFLOW.md.template +3 -3
  124. package/templates/core/ai/onboarding/agent-invocation-guide.md.template +1 -1
  125. package/templates/core/ai/onboarding/lumenflow-force-usage.md.template +1 -1
  126. package/templates/core/ai/onboarding/quick-ref-commands.md.template +5 -5
  127. package/templates/core/ai/onboarding/starting-prompt.md.template +3 -3
  128. package/templates/core/ai/onboarding/vendor-support.md.template +1 -1
  129. package/templates/core/ai/onboarding/wu-create-checklist.md.template +1 -1
  130. package/dist/agent-issues-query.js.map +0 -1
  131. package/dist/agent-log-issue.js.map +0 -1
  132. package/dist/agent-session-end.js.map +0 -1
  133. package/dist/agent-session.js.map +0 -1
  134. package/dist/backlog-prune.js.map +0 -1
  135. package/dist/cli-entry-point.js +0 -149
  136. package/dist/cli-entry-point.js.map +0 -1
  137. package/dist/commands/integrate.js.map +0 -1
  138. package/dist/commands.js.map +0 -1
  139. package/dist/config-get.js.map +0 -1
  140. package/dist/config-set.js.map +0 -1
  141. package/dist/delegation-list.js.map +0 -1
  142. package/dist/deps-add.js +0 -259
  143. package/dist/deps-add.js.map +0 -1
  144. package/dist/deps-remove.js +0 -105
  145. package/dist/deps-remove.js.map +0 -1
  146. package/dist/docs-sync.js.map +0 -1
  147. package/dist/doctor.js.map +0 -1
  148. package/dist/file-delete.js.map +0 -1
  149. package/dist/file-edit.js.map +0 -1
  150. package/dist/file-read.js.map +0 -1
  151. package/dist/file-write.js.map +0 -1
  152. package/dist/flow-bottlenecks.js.map +0 -1
  153. package/dist/flow-report.js.map +0 -1
  154. package/dist/formatters.js +0 -151
  155. package/dist/formatters.js.map +0 -1
  156. package/dist/gate-defaults.js +0 -131
  157. package/dist/gate-defaults.js.map +0 -1
  158. package/dist/gate-registry.js +0 -73
  159. package/dist/gate-registry.js.map +0 -1
  160. package/dist/gates-graceful-degradation.js +0 -153
  161. package/dist/gates-graceful-degradation.js.map +0 -1
  162. package/dist/gates-plan-resolvers.js +0 -152
  163. package/dist/gates-plan-resolvers.js.map +0 -1
  164. package/dist/gates-runners.js +0 -509
  165. package/dist/gates-runners.js.map +0 -1
  166. package/dist/gates-types.js +0 -4
  167. package/dist/gates-types.js.map +0 -1
  168. package/dist/gates-utils.js +0 -323
  169. package/dist/gates-utils.js.map +0 -1
  170. package/dist/gates.js.map +0 -1
  171. package/dist/git-branch.js.map +0 -1
  172. package/dist/git-diff.js.map +0 -1
  173. package/dist/git-log.js.map +0 -1
  174. package/dist/git-status.js.map +0 -1
  175. package/dist/guard-locked.js +0 -172
  176. package/dist/guard-locked.js.map +0 -1
  177. package/dist/guard-main-branch.js +0 -217
  178. package/dist/guard-main-branch.js.map +0 -1
  179. package/dist/guard-worktree-commit.js +0 -163
  180. package/dist/guard-worktree-commit.js.map +0 -1
  181. package/dist/hooks/auto-checkpoint-utils.js +0 -54
  182. package/dist/hooks/auto-checkpoint-utils.js.map +0 -1
  183. package/dist/hooks/enforcement-checks.js +0 -399
  184. package/dist/hooks/enforcement-checks.js.map +0 -1
  185. package/dist/hooks/enforcement-generator.js +0 -139
  186. package/dist/hooks/enforcement-generator.js.map +0 -1
  187. package/dist/hooks/enforcement-sync.js +0 -385
  188. package/dist/hooks/enforcement-sync.js.map +0 -1
  189. package/dist/hooks/generators/auto-checkpoint.js +0 -125
  190. package/dist/hooks/generators/auto-checkpoint.js.map +0 -1
  191. package/dist/hooks/generators/enforce-worktree.js +0 -190
  192. package/dist/hooks/generators/enforce-worktree.js.map +0 -1
  193. package/dist/hooks/generators/index.js +0 -18
  194. package/dist/hooks/generators/index.js.map +0 -1
  195. package/dist/hooks/generators/pre-compact-checkpoint.js +0 -136
  196. package/dist/hooks/generators/pre-compact-checkpoint.js.map +0 -1
  197. package/dist/hooks/generators/require-wu.js +0 -117
  198. package/dist/hooks/generators/require-wu.js.map +0 -1
  199. package/dist/hooks/generators/session-start-recovery.js +0 -103
  200. package/dist/hooks/generators/session-start-recovery.js.map +0 -1
  201. package/dist/hooks/generators/signal-utils.js +0 -54
  202. package/dist/hooks/generators/signal-utils.js.map +0 -1
  203. package/dist/hooks/generators/warn-incomplete.js +0 -67
  204. package/dist/hooks/generators/warn-incomplete.js.map +0 -1
  205. package/dist/hooks/index.js +0 -10
  206. package/dist/hooks/index.js.map +0 -1
  207. package/dist/index.js.map +0 -1
  208. package/dist/init-detection.js +0 -232
  209. package/dist/init-detection.js.map +0 -1
  210. package/dist/init-lane-validation.js +0 -143
  211. package/dist/init-lane-validation.js.map +0 -1
  212. package/dist/init-scaffolding.js +0 -158
  213. package/dist/init-scaffolding.js.map +0 -1
  214. package/dist/init-templates.js +0 -1982
  215. package/dist/init-templates.js.map +0 -1
  216. package/dist/init.js.map +0 -1
  217. package/dist/initiative-add-wu.js.map +0 -1
  218. package/dist/initiative-bulk-assign-wus.js.map +0 -1
  219. package/dist/initiative-create.js.map +0 -1
  220. package/dist/initiative-edit.js.map +0 -1
  221. package/dist/initiative-list.js.map +0 -1
  222. package/dist/initiative-plan.js.map +0 -1
  223. package/dist/initiative-remove-wu.js.map +0 -1
  224. package/dist/initiative-status.js.map +0 -1
  225. package/dist/lane-edit.js.map +0 -1
  226. package/dist/lane-health.js.map +0 -1
  227. package/dist/lane-lifecycle-process.js +0 -366
  228. package/dist/lane-lifecycle-process.js.map +0 -1
  229. package/dist/lane-lock.js.map +0 -1
  230. package/dist/lane-setup.js.map +0 -1
  231. package/dist/lane-status.js.map +0 -1
  232. package/dist/lane-suggest.js.map +0 -1
  233. package/dist/lane-validate.js.map +0 -1
  234. package/dist/lifecycle-regression-harness.js +0 -181
  235. package/dist/lifecycle-regression-harness.js.map +0 -1
  236. package/dist/lumenflow-upgrade.js.map +0 -1
  237. package/dist/mem-checkpoint.js.map +0 -1
  238. package/dist/mem-cleanup.js.map +0 -1
  239. package/dist/mem-context.js.map +0 -1
  240. package/dist/mem-create.js.map +0 -1
  241. package/dist/mem-delete.js.map +0 -1
  242. package/dist/mem-export.js.map +0 -1
  243. package/dist/mem-inbox.js.map +0 -1
  244. package/dist/mem-index.js +0 -214
  245. package/dist/mem-index.js.map +0 -1
  246. package/dist/mem-init.js.map +0 -1
  247. package/dist/mem-profile.js +0 -210
  248. package/dist/mem-profile.js.map +0 -1
  249. package/dist/mem-promote.js +0 -257
  250. package/dist/mem-promote.js.map +0 -1
  251. package/dist/mem-ready.js.map +0 -1
  252. package/dist/mem-recover.js.map +0 -1
  253. package/dist/mem-signal.js.map +0 -1
  254. package/dist/mem-start.js.map +0 -1
  255. package/dist/mem-summarize.js.map +0 -1
  256. package/dist/mem-triage.js.map +0 -1
  257. package/dist/merge-block.js +0 -225
  258. package/dist/merge-block.js.map +0 -1
  259. package/dist/metrics-cli.js.map +0 -1
  260. package/dist/metrics-snapshot.js.map +0 -1
  261. package/dist/onboard.js.map +0 -1
  262. package/dist/onboarding-smoke-test.js +0 -418
  263. package/dist/onboarding-smoke-test.js.map +0 -1
  264. package/dist/orchestrate-init-status.js.map +0 -1
  265. package/dist/orchestrate-initiative.js.map +0 -1
  266. package/dist/orchestrate-monitor.js.map +0 -1
  267. package/dist/pack-author.js.map +0 -1
  268. package/dist/pack-hash.js.map +0 -1
  269. package/dist/pack-install.js.map +0 -1
  270. package/dist/pack-publish.js.map +0 -1
  271. package/dist/pack-scaffold.js.map +0 -1
  272. package/dist/pack-search.js.map +0 -1
  273. package/dist/pack-validate.js.map +0 -1
  274. package/dist/plan-create.js.map +0 -1
  275. package/dist/plan-edit.js.map +0 -1
  276. package/dist/plan-link.js.map +0 -1
  277. package/dist/plan-promote.js.map +0 -1
  278. package/dist/public-manifest.js +0 -920
  279. package/dist/public-manifest.js.map +0 -1
  280. package/dist/release.js.map +0 -1
  281. package/dist/rotate-progress.js +0 -253
  282. package/dist/rotate-progress.js.map +0 -1
  283. package/dist/session-coordinator.js +0 -303
  284. package/dist/session-coordinator.js.map +0 -1
  285. package/dist/shared-validators.js +0 -81
  286. package/dist/shared-validators.js.map +0 -1
  287. package/dist/signal-cleanup.js.map +0 -1
  288. package/dist/state-bootstrap.js.map +0 -1
  289. package/dist/state-cleanup.js.map +0 -1
  290. package/dist/state-doctor-fix.js +0 -226
  291. package/dist/state-doctor-fix.js.map +0 -1
  292. package/dist/state-doctor-stamps.js +0 -23
  293. package/dist/state-doctor-stamps.js.map +0 -1
  294. package/dist/state-doctor.js.map +0 -1
  295. package/dist/strict-progress.js +0 -255
  296. package/dist/strict-progress.js.map +0 -1
  297. package/dist/sync-templates.js.map +0 -1
  298. package/dist/task-claim.js.map +0 -1
  299. package/dist/trace-gen.js +0 -401
  300. package/dist/trace-gen.js.map +0 -1
  301. package/dist/validate-agent-skills.js +0 -223
  302. package/dist/validate-agent-skills.js.map +0 -1
  303. package/dist/validate-agent-sync.js +0 -151
  304. package/dist/validate-agent-sync.js.map +0 -1
  305. package/dist/validate-backlog-sync.js +0 -77
  306. package/dist/validate-backlog-sync.js.map +0 -1
  307. package/dist/validate-skills-spec.js +0 -211
  308. package/dist/validate-skills-spec.js.map +0 -1
  309. package/dist/validate.js.map +0 -1
  310. package/dist/validator-defaults.js +0 -107
  311. package/dist/validator-defaults.js.map +0 -1
  312. package/dist/validator-registry.js +0 -71
  313. package/dist/validator-registry.js.map +0 -1
  314. package/dist/workspace-init.js.map +0 -1
  315. package/dist/wu-block.js.map +0 -1
  316. package/dist/wu-brief.js.map +0 -1
  317. package/dist/wu-claim-branch.js +0 -123
  318. package/dist/wu-claim-branch.js.map +0 -1
  319. package/dist/wu-claim-cloud.js +0 -79
  320. package/dist/wu-claim-cloud.js.map +0 -1
  321. package/dist/wu-claim-mode.js +0 -82
  322. package/dist/wu-claim-mode.js.map +0 -1
  323. package/dist/wu-claim-output.js +0 -85
  324. package/dist/wu-claim-output.js.map +0 -1
  325. package/dist/wu-claim-repair-guidance.js +0 -12
  326. package/dist/wu-claim-repair-guidance.js.map +0 -1
  327. package/dist/wu-claim-resume-handler.js +0 -87
  328. package/dist/wu-claim-resume-handler.js.map +0 -1
  329. package/dist/wu-claim-state.js +0 -581
  330. package/dist/wu-claim-state.js.map +0 -1
  331. package/dist/wu-claim-validation.js +0 -457
  332. package/dist/wu-claim-validation.js.map +0 -1
  333. package/dist/wu-claim-worktree.js +0 -223
  334. package/dist/wu-claim-worktree.js.map +0 -1
  335. package/dist/wu-claim.js.map +0 -1
  336. package/dist/wu-cleanup-cloud.js +0 -78
  337. package/dist/wu-cleanup-cloud.js.map +0 -1
  338. package/dist/wu-cleanup.js.map +0 -1
  339. package/dist/wu-code-path-coverage.js +0 -83
  340. package/dist/wu-code-path-coverage.js.map +0 -1
  341. package/dist/wu-create-cloud.js +0 -30
  342. package/dist/wu-create-cloud.js.map +0 -1
  343. package/dist/wu-create-content.js +0 -264
  344. package/dist/wu-create-content.js.map +0 -1
  345. package/dist/wu-create-readiness.js +0 -59
  346. package/dist/wu-create-readiness.js.map +0 -1
  347. package/dist/wu-create-validation.js +0 -128
  348. package/dist/wu-create-validation.js.map +0 -1
  349. package/dist/wu-create.js.map +0 -1
  350. package/dist/wu-delegate.js.map +0 -1
  351. package/dist/wu-delete.js.map +0 -1
  352. package/dist/wu-deps.js.map +0 -1
  353. package/dist/wu-done-auto-cleanup.js +0 -203
  354. package/dist/wu-done-auto-cleanup.js.map +0 -1
  355. package/dist/wu-done-check.js +0 -38
  356. package/dist/wu-done-check.js.map +0 -1
  357. package/dist/wu-done-cloud.js +0 -48
  358. package/dist/wu-done-cloud.js.map +0 -1
  359. package/dist/wu-done-decay.js +0 -86
  360. package/dist/wu-done-decay.js.map +0 -1
  361. package/dist/wu-done.js.map +0 -1
  362. package/dist/wu-edit-operations.js +0 -399
  363. package/dist/wu-edit-operations.js.map +0 -1
  364. package/dist/wu-edit-validators.js +0 -282
  365. package/dist/wu-edit-validators.js.map +0 -1
  366. package/dist/wu-edit.js.map +0 -1
  367. package/dist/wu-infer-lane.js.map +0 -1
  368. package/dist/wu-preflight.js.map +0 -1
  369. package/dist/wu-prep.js.map +0 -1
  370. package/dist/wu-proto.js.map +0 -1
  371. package/dist/wu-prune.js.map +0 -1
  372. package/dist/wu-recover.js.map +0 -1
  373. package/dist/wu-release.js.map +0 -1
  374. package/dist/wu-repair.js.map +0 -1
  375. package/dist/wu-sandbox.js.map +0 -1
  376. package/dist/wu-spawn-completion.js +0 -33
  377. package/dist/wu-spawn-completion.js.map +0 -1
  378. package/dist/wu-spawn-prompt-builders.js +0 -1197
  379. package/dist/wu-spawn-prompt-builders.js.map +0 -1
  380. package/dist/wu-spawn-strategy-resolver.js +0 -322
  381. package/dist/wu-spawn-strategy-resolver.js.map +0 -1
  382. package/dist/wu-spawn.js +0 -59
  383. package/dist/wu-spawn.js.map +0 -1
  384. package/dist/wu-state-cloud.js +0 -41
  385. package/dist/wu-state-cloud.js.map +0 -1
  386. package/dist/wu-status.js.map +0 -1
  387. package/dist/wu-unblock.js.map +0 -1
  388. package/dist/wu-unlock-lane.js.map +0 -1
  389. package/dist/wu-validate.js.map +0 -1
@@ -0,0 +1,417 @@
1
+ // Copyright (c) 2026 Hellmai Ltd
2
+ // SPDX-License-Identifier: AGPL-3.0-only
3
+
4
+ import {
5
+ SOFTWARE_DELIVERY_PACK_ID,
6
+ SOFTWARE_DELIVERY_PACK_VERSION,
7
+ SOFTWARE_DELIVERY_POLICY_ID_PREFIX,
8
+ } from './constants.js';
9
+ import {
10
+ MANIFEST_POLICY_DECISIONS,
11
+ MANIFEST_POLICY_TRIGGERS,
12
+ SoftwareDeliveryManifestSchema,
13
+ type SoftwareDeliveryManifestTool,
14
+ type SoftwareDeliveryPackManifest,
15
+ } from './manifest-schema.js';
16
+ import {
17
+ TOOL_PERMISSIONS as TOOL_PERMISSION_VALUES,
18
+ TOOL_SCOPE_ACCESS,
19
+ TOOL_SCOPE_TYPES,
20
+ type PathScope,
21
+ type ToolPermission,
22
+ } from './tools/types.js';
23
+
24
+ export { SoftwareDeliveryManifestSchema };
25
+ export type {
26
+ ManifestPolicyDecision,
27
+ ManifestPolicyTrigger,
28
+ SoftwareDeliveryManifestPolicy,
29
+ SoftwareDeliveryManifestTool,
30
+ SoftwareDeliveryPackManifest,
31
+ } from './manifest-schema.js';
32
+
33
+ const FULL_WORKSPACE_SCOPE_PATTERN = '**';
34
+ const GIT_STATUS_TOOL_ENTRY = 'tool-impl/git-tools.ts#gitStatusTool';
35
+ const WU_STATUS_TOOL_ENTRY = 'tool-impl/wu-lifecycle-tools.ts#wuStatusTool';
36
+ const WU_CREATE_TOOL_ENTRY = 'tool-impl/wu-lifecycle-tools.ts#wuCreateTool';
37
+ const WU_CLAIM_TOOL_ENTRY = 'tool-impl/wu-lifecycle-tools.ts#wuClaimTool';
38
+ const WU_DONE_TOOL_ENTRY = 'tool-impl/wu-lifecycle-tools.ts#wuDoneTool';
39
+ const WU_PREP_TOOL_ENTRY = 'tool-impl/wu-lifecycle-tools.ts#wuPrepTool';
40
+ const WU_PREFLIGHT_TOOL_ENTRY = 'tool-impl/wu-lifecycle-tools.ts#wuPreflightTool';
41
+ const WU_VALIDATE_TOOL_ENTRY = 'tool-impl/wu-lifecycle-tools.ts#wuValidateTool';
42
+ const WU_SANDBOX_TOOL_ENTRY = 'tool-impl/wu-lifecycle-tools.ts#wuSandboxTool';
43
+ const WU_PRUNE_TOOL_ENTRY = 'tool-impl/wu-lifecycle-tools.ts#wuPruneTool';
44
+ const WU_DELETE_TOOL_ENTRY = 'tool-impl/wu-lifecycle-tools.ts#wuDeleteTool';
45
+ const WU_CLEANUP_TOOL_ENTRY = 'tool-impl/wu-lifecycle-tools.ts#wuCleanupTool';
46
+ const WU_UNLOCK_LANE_TOOL_ENTRY = 'tool-impl/wu-lifecycle-tools.ts#wuUnlockLaneTool';
47
+ const WU_BRIEF_TOOL_ENTRY = 'tool-impl/wu-lifecycle-tools.ts#wuBriefTool';
48
+ const WU_DELEGATE_TOOL_ENTRY = 'tool-impl/wu-lifecycle-tools.ts#wuDelegateTool';
49
+ const WU_DEPS_TOOL_ENTRY = 'tool-impl/wu-lifecycle-tools.ts#wuDepsTool';
50
+ const WU_EDIT_TOOL_ENTRY = 'tool-impl/wu-lifecycle-tools.ts#wuEditTool';
51
+ const WU_PROTO_TOOL_ENTRY = 'tool-impl/wu-lifecycle-tools.ts#wuProtoTool';
52
+ const WU_BLOCK_TOOL_ENTRY = 'tool-impl/wu-lifecycle-tools.ts#wuBlockTool';
53
+ const WU_UNBLOCK_TOOL_ENTRY = 'tool-impl/wu-lifecycle-tools.ts#wuUnblockTool';
54
+ const WU_RELEASE_TOOL_ENTRY = 'tool-impl/wu-lifecycle-tools.ts#wuReleaseTool';
55
+ const WU_RECOVER_TOOL_ENTRY = 'tool-impl/wu-lifecycle-tools.ts#wuRecoverTool';
56
+ const WU_REPAIR_TOOL_ENTRY = 'tool-impl/wu-lifecycle-tools.ts#wuRepairTool';
57
+ const GATES_TOOL_ENTRY = 'tool-impl/wu-lifecycle-tools.ts#gatesTool';
58
+ const CONFIG_SET_TOOL_ENTRY = 'tool-impl/runtime-native-tools.ts#configSetTool';
59
+ const CONFIG_GET_TOOL_ENTRY = 'tool-impl/runtime-native-tools.ts#configGetTool';
60
+ const MEM_INIT_TOOL_ENTRY = 'tool-impl/memory-tools.ts#memInitTool';
61
+ const MEM_START_TOOL_ENTRY = 'tool-impl/memory-tools.ts#memStartTool';
62
+ const MEM_READY_TOOL_ENTRY = 'tool-impl/memory-tools.ts#memReadyTool';
63
+ const MEM_CHECKPOINT_TOOL_ENTRY = 'tool-impl/memory-tools.ts#memCheckpointTool';
64
+ const MEM_CLEANUP_TOOL_ENTRY = 'tool-impl/memory-tools.ts#memCleanupTool';
65
+ const MEM_CONTEXT_TOOL_ENTRY = 'tool-impl/memory-tools.ts#memContextTool';
66
+ const MEM_CREATE_TOOL_ENTRY = 'tool-impl/memory-tools.ts#memCreateTool';
67
+ const MEM_DELETE_TOOL_ENTRY = 'tool-impl/memory-tools.ts#memDeleteTool';
68
+ const MEM_EXPORT_TOOL_ENTRY = 'tool-impl/memory-tools.ts#memExportTool';
69
+ const MEM_INBOX_TOOL_ENTRY = 'tool-impl/memory-tools.ts#memInboxTool';
70
+ const MEM_SIGNAL_TOOL_ENTRY = 'tool-impl/memory-tools.ts#memSignalTool';
71
+ const MEM_SUMMARIZE_TOOL_ENTRY = 'tool-impl/memory-tools.ts#memSummarizeTool';
72
+ const MEM_TRIAGE_TOOL_ENTRY = 'tool-impl/memory-tools.ts#memTriageTool';
73
+ const MEM_RECOVER_TOOL_ENTRY = 'tool-impl/memory-tools.ts#memRecoverTool';
74
+ const AGENT_SESSION_TOOL_ENTRY = 'tool-impl/agent-tools.ts#agentSessionTool';
75
+ const AGENT_SESSION_END_TOOL_ENTRY = 'tool-impl/agent-tools.ts#agentSessionEndTool';
76
+ const AGENT_LOG_ISSUE_TOOL_ENTRY = 'tool-impl/agent-tools.ts#agentLogIssueTool';
77
+ const AGENT_ISSUES_QUERY_TOOL_ENTRY = 'tool-impl/agent-tools.ts#agentIssuesQueryTool';
78
+ const FLOW_BOTTLENECKS_TOOL_ENTRY = 'tool-impl/flow-metrics-tools.ts#flowBottlenecksTool';
79
+ const FLOW_REPORT_TOOL_ENTRY = 'tool-impl/flow-metrics-tools.ts#flowReportTool';
80
+ const METRICS_TOOL_ENTRY = 'tool-impl/flow-metrics-tools.ts#metricsTool';
81
+ const METRICS_SNAPSHOT_TOOL_ENTRY = 'tool-impl/flow-metrics-tools.ts#metricsSnapshotTool';
82
+ const WU_INFER_LANE_TOOL_ENTRY = 'tool-impl/runtime-native-tools.ts#wuInferLaneTool';
83
+ const LANE_HEALTH_TOOL_ENTRY = 'tool-impl/runtime-native-tools.ts#laneHealthTool';
84
+ const LANE_SUGGEST_TOOL_ENTRY = 'tool-impl/runtime-native-tools.ts#laneSuggestTool';
85
+ const FILE_READ_TOOL_ENTRY = 'tool-impl/runtime-native-tools.ts#fileReadTool';
86
+ const FILE_WRITE_TOOL_ENTRY = 'tool-impl/runtime-native-tools.ts#fileWriteTool';
87
+ const FILE_EDIT_TOOL_ENTRY = 'tool-impl/runtime-native-tools.ts#fileEditTool';
88
+ const FILE_DELETE_TOOL_ENTRY = 'tool-impl/runtime-native-tools.ts#fileDeleteTool';
89
+ const GIT_BRANCH_TOOL_ENTRY = 'tool-impl/runtime-native-tools.ts#gitBranchTool';
90
+ const GIT_DIFF_TOOL_ENTRY = 'tool-impl/runtime-native-tools.ts#gitDiffTool';
91
+ const GIT_LOG_TOOL_ENTRY = 'tool-impl/runtime-native-tools.ts#gitLogTool';
92
+ const STATE_BOOTSTRAP_TOOL_ENTRY = 'tool-impl/runtime-native-tools.ts#stateBootstrapTool';
93
+ const STATE_CLEANUP_TOOL_ENTRY = 'tool-impl/runtime-native-tools.ts#stateCleanupTool';
94
+ const STATE_DOCTOR_TOOL_ENTRY = 'tool-impl/runtime-native-tools.ts#stateDoctorTool';
95
+ const BACKLOG_PRUNE_TOOL_ENTRY = 'tool-impl/runtime-native-tools.ts#backlogPruneTool';
96
+ const SIGNAL_CLEANUP_TOOL_ENTRY = 'tool-impl/runtime-native-tools.ts#signalCleanupTool';
97
+ const LUMENFLOW_METRICS_TOOL_ENTRY = 'tool-impl/runtime-native-tools.ts#lumenflowMetricsTool';
98
+ const VALIDATE_TOOL_ENTRY = 'tool-impl/runtime-native-tools.ts#validateTool';
99
+ const LUMENFLOW_VALIDATE_TOOL_ENTRY = 'tool-impl/runtime-native-tools.ts#lumenflowValidateTool';
100
+ const VALIDATE_AGENT_SKILLS_TOOL_ENTRY =
101
+ 'tool-impl/runtime-native-tools.ts#validateAgentSkillsTool';
102
+ const VALIDATE_AGENT_SYNC_TOOL_ENTRY = 'tool-impl/runtime-native-tools.ts#validateAgentSyncTool';
103
+ const VALIDATE_BACKLOG_SYNC_TOOL_ENTRY =
104
+ 'tool-impl/runtime-native-tools.ts#validateBacklogSyncTool';
105
+ const VALIDATE_SKILLS_SPEC_TOOL_ENTRY = 'tool-impl/runtime-native-tools.ts#validateSkillsSpecTool';
106
+ const INITIATIVE_ADD_WU_TOOL_ENTRY =
107
+ 'tool-impl/initiative-orchestration-tools.ts#initiativeAddWuTool';
108
+ const INITIATIVE_BULK_ASSIGN_TOOL_ENTRY =
109
+ 'tool-impl/initiative-orchestration-tools.ts#initiativeBulkAssignTool';
110
+ const INITIATIVE_CREATE_TOOL_ENTRY =
111
+ 'tool-impl/initiative-orchestration-tools.ts#initiativeCreateTool';
112
+ const INITIATIVE_EDIT_TOOL_ENTRY = 'tool-impl/initiative-orchestration-tools.ts#initiativeEditTool';
113
+ const INITIATIVE_LIST_TOOL_ENTRY = 'tool-impl/initiative-orchestration-tools.ts#initiativeListTool';
114
+ const INITIATIVE_PLAN_TOOL_ENTRY = 'tool-impl/initiative-orchestration-tools.ts#initiativePlanTool';
115
+ const INITIATIVE_REMOVE_WU_TOOL_ENTRY =
116
+ 'tool-impl/initiative-orchestration-tools.ts#initiativeRemoveWuTool';
117
+ const INITIATIVE_STATUS_TOOL_ENTRY =
118
+ 'tool-impl/initiative-orchestration-tools.ts#initiativeStatusTool';
119
+ const ORCHESTRATE_INIT_STATUS_TOOL_ENTRY =
120
+ 'tool-impl/initiative-orchestration-tools.ts#orchestrateInitStatusTool';
121
+ const ORCHESTRATE_INITIATIVE_TOOL_ENTRY =
122
+ 'tool-impl/initiative-orchestration-tools.ts#orchestrateInitiativeTool';
123
+ const ORCHESTRATE_MONITOR_TOOL_ENTRY =
124
+ 'tool-impl/initiative-orchestration-tools.ts#orchestrateMonitorTool';
125
+ const PLAN_CREATE_TOOL_ENTRY = 'tool-impl/initiative-orchestration-tools.ts#planCreateTool';
126
+ const PLAN_EDIT_TOOL_ENTRY = 'tool-impl/initiative-orchestration-tools.ts#planEditTool';
127
+ const PLAN_LINK_TOOL_ENTRY = 'tool-impl/initiative-orchestration-tools.ts#planLinkTool';
128
+ const PLAN_PROMOTE_TOOL_ENTRY = 'tool-impl/initiative-orchestration-tools.ts#planPromoteTool';
129
+ const DELEGATION_LIST_TOOL_ENTRY = 'tool-impl/initiative-orchestration-tools.ts#delegationListTool';
130
+ const CLOUD_CONNECT_TOOL_ENTRY = 'tool-impl/initiative-orchestration-tools.ts#cloudConnectTool';
131
+ const DOCS_SYNC_TOOL_ENTRY = 'tool-impl/initiative-orchestration-tools.ts#docsSyncTool';
132
+ const INIT_PLAN_TOOL_ENTRY = 'tool-impl/initiative-orchestration-tools.ts#initPlanTool';
133
+ const LUMENFLOW_TOOL_ENTRY = 'tool-impl/initiative-orchestration-tools.ts#lumenflowTool';
134
+ const LUMENFLOW_DOCTOR_TOOL_ENTRY =
135
+ 'tool-impl/initiative-orchestration-tools.ts#lumenflowDoctorTool';
136
+ const LUMENFLOW_INTEGRATE_TOOL_ENTRY =
137
+ 'tool-impl/initiative-orchestration-tools.ts#lumenflowIntegrateTool';
138
+ const LUMENFLOW_RELEASE_TOOL_ENTRY =
139
+ 'tool-impl/initiative-orchestration-tools.ts#lumenflowReleaseTool';
140
+ const LUMENFLOW_UPGRADE_TOOL_ENTRY =
141
+ 'tool-impl/initiative-orchestration-tools.ts#lumenflowUpgradeTool';
142
+ const WORKSPACE_INIT_TOOL_ENTRY = 'tool-impl/initiative-orchestration-tools.ts#workspaceInitTool';
143
+ const SYNC_TEMPLATES_TOOL_ENTRY = 'tool-impl/initiative-orchestration-tools.ts#syncTemplatesTool';
144
+
145
+ const TOOL_PERMISSIONS = {
146
+ 'wu:block': 'write',
147
+ 'wu:brief': 'read',
148
+ 'wu:claim': 'write',
149
+ 'wu:cleanup': 'write',
150
+ 'wu:create': 'write',
151
+ 'wu:delegate': 'write',
152
+ 'wu:delete': 'write',
153
+ 'wu:deps': 'read',
154
+ 'wu:done': 'write',
155
+ 'wu:edit': 'write',
156
+ 'wu:infer-lane': 'read',
157
+ 'wu:preflight': 'read',
158
+ 'wu:prep': 'write',
159
+ 'wu:proto': 'write',
160
+ 'wu:prune': 'write',
161
+ 'wu:recover': 'write',
162
+ 'wu:release': 'write',
163
+ 'wu:repair': 'write',
164
+ 'wu:sandbox': 'write',
165
+ 'wu:status': 'read',
166
+ 'wu:unblock': 'write',
167
+ 'wu:unlock-lane': 'write',
168
+ 'wu:validate': 'read',
169
+ 'mem:checkpoint': 'write',
170
+ 'mem:cleanup': 'write',
171
+ 'mem:context': 'read',
172
+ 'mem:create': 'write',
173
+ 'mem:delete': 'write',
174
+ 'mem:export': 'read',
175
+ 'mem:inbox': 'read',
176
+ 'mem:init': 'write',
177
+ 'mem:ready': 'read',
178
+ 'mem:recover': 'write',
179
+ 'mem:signal': 'write',
180
+ 'mem:start': 'write',
181
+ 'mem:summarize': 'read',
182
+ 'mem:triage': 'write',
183
+ 'initiative:add-wu': 'write',
184
+ 'initiative:bulk-assign': 'write',
185
+ 'initiative:create': 'write',
186
+ 'initiative:edit': 'write',
187
+ 'initiative:list': 'read',
188
+ 'initiative:plan': 'read',
189
+ 'initiative:remove-wu': 'write',
190
+ 'initiative:status': 'read',
191
+ 'lane:health': 'read',
192
+ 'lane:suggest': 'write',
193
+ 'flow:bottlenecks': 'read',
194
+ 'flow:report': 'read',
195
+ gates: 'write',
196
+ 'file:delete': 'write',
197
+ 'file:edit': 'write',
198
+ 'file:read': 'read',
199
+ 'file:write': 'write',
200
+ 'git:branch': 'write',
201
+ 'git:diff': 'read',
202
+ 'git:log': 'read',
203
+ 'git:status': 'read',
204
+ 'agent:issues-query': 'read',
205
+ 'agent:log-issue': 'write',
206
+ 'agent:session': 'write',
207
+ 'agent:session-end': 'write',
208
+ 'orchestrate:init-status': 'read',
209
+ 'orchestrate:initiative': 'write',
210
+ 'orchestrate:monitor': 'read',
211
+ 'state:bootstrap': 'write',
212
+ 'state:cleanup': 'write',
213
+ 'state:doctor': 'read',
214
+ 'plan:create': 'write',
215
+ 'plan:edit': 'write',
216
+ 'plan:link': 'write',
217
+ 'plan:promote': 'write',
218
+ 'backlog:prune': 'write',
219
+ 'cloud:connect': 'write',
220
+ 'config:get': 'read',
221
+ 'config:set': 'write',
222
+ 'delegation:list': 'read',
223
+ 'docs:sync': 'write',
224
+ 'init:plan': 'read',
225
+ lumenflow: 'write',
226
+ 'lumenflow:doctor': 'read',
227
+ 'lumenflow:integrate': 'write',
228
+ 'lumenflow:release': 'write',
229
+ 'lumenflow:upgrade': 'write',
230
+ metrics: 'read',
231
+ 'metrics:snapshot': 'read',
232
+ 'lumenflow:metrics': 'read',
233
+ 'signal:cleanup': 'write',
234
+ 'sync:templates': 'write',
235
+ validate: 'read',
236
+ 'lumenflow:validate': 'read',
237
+ 'validate:agent-skills': 'read',
238
+ 'validate:agent-sync': 'read',
239
+ 'validate:backlog-sync': 'read',
240
+ 'validate:skills-spec': 'read',
241
+ 'workspace:init': 'write',
242
+ } as const satisfies Record<string, ToolPermission>;
243
+
244
+ type ToolName = keyof typeof TOOL_PERMISSIONS;
245
+
246
+ const TOOL_ENTRY_OVERRIDES: Partial<Record<ToolName, string>> = {
247
+ 'git:status': GIT_STATUS_TOOL_ENTRY,
248
+ 'git:branch': GIT_BRANCH_TOOL_ENTRY,
249
+ 'git:diff': GIT_DIFF_TOOL_ENTRY,
250
+ 'git:log': GIT_LOG_TOOL_ENTRY,
251
+ 'wu:status': WU_STATUS_TOOL_ENTRY,
252
+ 'wu:create': WU_CREATE_TOOL_ENTRY,
253
+ 'wu:claim': WU_CLAIM_TOOL_ENTRY,
254
+ 'wu:done': WU_DONE_TOOL_ENTRY,
255
+ 'wu:prep': WU_PREP_TOOL_ENTRY,
256
+ 'wu:preflight': WU_PREFLIGHT_TOOL_ENTRY,
257
+ 'wu:validate': WU_VALIDATE_TOOL_ENTRY,
258
+ 'wu:sandbox': WU_SANDBOX_TOOL_ENTRY,
259
+ 'wu:prune': WU_PRUNE_TOOL_ENTRY,
260
+ 'wu:delete': WU_DELETE_TOOL_ENTRY,
261
+ 'wu:cleanup': WU_CLEANUP_TOOL_ENTRY,
262
+ 'wu:unlock-lane': WU_UNLOCK_LANE_TOOL_ENTRY,
263
+ 'wu:brief': WU_BRIEF_TOOL_ENTRY,
264
+ 'wu:delegate': WU_DELEGATE_TOOL_ENTRY,
265
+ 'wu:deps': WU_DEPS_TOOL_ENTRY,
266
+ 'wu:edit': WU_EDIT_TOOL_ENTRY,
267
+ 'wu:proto': WU_PROTO_TOOL_ENTRY,
268
+ 'wu:block': WU_BLOCK_TOOL_ENTRY,
269
+ 'wu:unblock': WU_UNBLOCK_TOOL_ENTRY,
270
+ 'wu:release': WU_RELEASE_TOOL_ENTRY,
271
+ 'wu:recover': WU_RECOVER_TOOL_ENTRY,
272
+ 'wu:repair': WU_REPAIR_TOOL_ENTRY,
273
+ 'wu:infer-lane': WU_INFER_LANE_TOOL_ENTRY,
274
+ gates: GATES_TOOL_ENTRY,
275
+ 'mem:init': MEM_INIT_TOOL_ENTRY,
276
+ 'mem:start': MEM_START_TOOL_ENTRY,
277
+ 'mem:ready': MEM_READY_TOOL_ENTRY,
278
+ 'mem:checkpoint': MEM_CHECKPOINT_TOOL_ENTRY,
279
+ 'mem:cleanup': MEM_CLEANUP_TOOL_ENTRY,
280
+ 'mem:context': MEM_CONTEXT_TOOL_ENTRY,
281
+ 'mem:create': MEM_CREATE_TOOL_ENTRY,
282
+ 'mem:delete': MEM_DELETE_TOOL_ENTRY,
283
+ 'mem:export': MEM_EXPORT_TOOL_ENTRY,
284
+ 'mem:inbox': MEM_INBOX_TOOL_ENTRY,
285
+ 'mem:signal': MEM_SIGNAL_TOOL_ENTRY,
286
+ 'mem:summarize': MEM_SUMMARIZE_TOOL_ENTRY,
287
+ 'mem:triage': MEM_TRIAGE_TOOL_ENTRY,
288
+ 'mem:recover': MEM_RECOVER_TOOL_ENTRY,
289
+ 'agent:session': AGENT_SESSION_TOOL_ENTRY,
290
+ 'agent:session-end': AGENT_SESSION_END_TOOL_ENTRY,
291
+ 'agent:log-issue': AGENT_LOG_ISSUE_TOOL_ENTRY,
292
+ 'agent:issues-query': AGENT_ISSUES_QUERY_TOOL_ENTRY,
293
+ 'flow:bottlenecks': FLOW_BOTTLENECKS_TOOL_ENTRY,
294
+ 'flow:report': FLOW_REPORT_TOOL_ENTRY,
295
+ metrics: METRICS_TOOL_ENTRY,
296
+ 'metrics:snapshot': METRICS_SNAPSHOT_TOOL_ENTRY,
297
+ 'lumenflow:metrics': LUMENFLOW_METRICS_TOOL_ENTRY,
298
+ 'lane:health': LANE_HEALTH_TOOL_ENTRY,
299
+ 'lane:suggest': LANE_SUGGEST_TOOL_ENTRY,
300
+ 'file:read': FILE_READ_TOOL_ENTRY,
301
+ 'file:write': FILE_WRITE_TOOL_ENTRY,
302
+ 'file:edit': FILE_EDIT_TOOL_ENTRY,
303
+ 'file:delete': FILE_DELETE_TOOL_ENTRY,
304
+ 'state:bootstrap': STATE_BOOTSTRAP_TOOL_ENTRY,
305
+ 'state:cleanup': STATE_CLEANUP_TOOL_ENTRY,
306
+ 'state:doctor': STATE_DOCTOR_TOOL_ENTRY,
307
+ 'backlog:prune': BACKLOG_PRUNE_TOOL_ENTRY,
308
+ 'config:set': CONFIG_SET_TOOL_ENTRY,
309
+ 'config:get': CONFIG_GET_TOOL_ENTRY,
310
+ 'signal:cleanup': SIGNAL_CLEANUP_TOOL_ENTRY,
311
+ validate: VALIDATE_TOOL_ENTRY,
312
+ 'lumenflow:validate': LUMENFLOW_VALIDATE_TOOL_ENTRY,
313
+ 'validate:agent-skills': VALIDATE_AGENT_SKILLS_TOOL_ENTRY,
314
+ 'validate:agent-sync': VALIDATE_AGENT_SYNC_TOOL_ENTRY,
315
+ 'validate:backlog-sync': VALIDATE_BACKLOG_SYNC_TOOL_ENTRY,
316
+ 'validate:skills-spec': VALIDATE_SKILLS_SPEC_TOOL_ENTRY,
317
+ 'initiative:add-wu': INITIATIVE_ADD_WU_TOOL_ENTRY,
318
+ 'initiative:bulk-assign': INITIATIVE_BULK_ASSIGN_TOOL_ENTRY,
319
+ 'initiative:create': INITIATIVE_CREATE_TOOL_ENTRY,
320
+ 'initiative:edit': INITIATIVE_EDIT_TOOL_ENTRY,
321
+ 'initiative:list': INITIATIVE_LIST_TOOL_ENTRY,
322
+ 'initiative:plan': INITIATIVE_PLAN_TOOL_ENTRY,
323
+ 'initiative:remove-wu': INITIATIVE_REMOVE_WU_TOOL_ENTRY,
324
+ 'initiative:status': INITIATIVE_STATUS_TOOL_ENTRY,
325
+ 'orchestrate:init-status': ORCHESTRATE_INIT_STATUS_TOOL_ENTRY,
326
+ 'orchestrate:initiative': ORCHESTRATE_INITIATIVE_TOOL_ENTRY,
327
+ 'orchestrate:monitor': ORCHESTRATE_MONITOR_TOOL_ENTRY,
328
+ 'plan:create': PLAN_CREATE_TOOL_ENTRY,
329
+ 'plan:edit': PLAN_EDIT_TOOL_ENTRY,
330
+ 'plan:link': PLAN_LINK_TOOL_ENTRY,
331
+ 'plan:promote': PLAN_PROMOTE_TOOL_ENTRY,
332
+ 'cloud:connect': CLOUD_CONNECT_TOOL_ENTRY,
333
+ 'delegation:list': DELEGATION_LIST_TOOL_ENTRY,
334
+ 'docs:sync': DOCS_SYNC_TOOL_ENTRY,
335
+ 'init:plan': INIT_PLAN_TOOL_ENTRY,
336
+ lumenflow: LUMENFLOW_TOOL_ENTRY,
337
+ 'lumenflow:doctor': LUMENFLOW_DOCTOR_TOOL_ENTRY,
338
+ 'lumenflow:integrate': LUMENFLOW_INTEGRATE_TOOL_ENTRY,
339
+ 'lumenflow:release': LUMENFLOW_RELEASE_TOOL_ENTRY,
340
+ 'lumenflow:upgrade': LUMENFLOW_UPGRADE_TOOL_ENTRY,
341
+ 'workspace:init': WORKSPACE_INIT_TOOL_ENTRY,
342
+ 'sync:templates': SYNC_TEMPLATES_TOOL_ENTRY,
343
+ };
344
+
345
+ export interface SoftwareDeliveryMigrationScorecard {
346
+ declaredTools: number;
347
+ pendingRuntimeEntries: number;
348
+ realHandlerEntries: number;
349
+ }
350
+
351
+ function requiredScopesForPermission(permission: ToolPermission): PathScope[] {
352
+ return [
353
+ {
354
+ type: TOOL_SCOPE_TYPES.PATH,
355
+ pattern: FULL_WORKSPACE_SCOPE_PATTERN,
356
+ access:
357
+ permission === TOOL_PERMISSION_VALUES.READ
358
+ ? TOOL_SCOPE_ACCESS.READ
359
+ : TOOL_SCOPE_ACCESS.WRITE,
360
+ },
361
+ ];
362
+ }
363
+
364
+ function createManifestTools(): SoftwareDeliveryManifestTool[] {
365
+ return (Object.keys(TOOL_PERMISSIONS) as ToolName[]).map((name) => {
366
+ const permission = TOOL_PERMISSIONS[name];
367
+ return {
368
+ name,
369
+ entry: resolveToolEntry(name),
370
+ permission,
371
+ required_scopes: requiredScopesForPermission(permission),
372
+ };
373
+ });
374
+ }
375
+
376
+ function resolveToolEntry(name: ToolName): string {
377
+ const entry = TOOL_ENTRY_OVERRIDES[name];
378
+ if (!entry) {
379
+ throw new Error(`Missing runtime-native tool entry mapping for "${name}"`);
380
+ }
381
+ return entry;
382
+ }
383
+
384
+ export function getSoftwareDeliveryMigrationScorecard(
385
+ manifest: SoftwareDeliveryPackManifest = SOFTWARE_DELIVERY_MANIFEST,
386
+ ): SoftwareDeliveryMigrationScorecard {
387
+ const declaredTools = manifest.tools.length;
388
+ const pendingRuntimeEntries = 0;
389
+ return {
390
+ declaredTools,
391
+ pendingRuntimeEntries,
392
+ realHandlerEntries: declaredTools - pendingRuntimeEntries,
393
+ };
394
+ }
395
+
396
+ export function renderSoftwareDeliveryMigrationScorecard(
397
+ manifest: SoftwareDeliveryPackManifest = SOFTWARE_DELIVERY_MANIFEST,
398
+ ): string {
399
+ return JSON.stringify(getSoftwareDeliveryMigrationScorecard(manifest));
400
+ }
401
+
402
+ const POLICY_SUFFIXES = ['format', 'lint', 'typecheck', 'test', 'coverage'] as const;
403
+
404
+ export const SOFTWARE_DELIVERY_MANIFEST: SoftwareDeliveryPackManifest = {
405
+ id: SOFTWARE_DELIVERY_PACK_ID,
406
+ version: SOFTWARE_DELIVERY_PACK_VERSION,
407
+ task_types: ['work-unit'],
408
+ tools: createManifestTools(),
409
+ policies: POLICY_SUFFIXES.map((suffix) => ({
410
+ id: `${SOFTWARE_DELIVERY_POLICY_ID_PREFIX}.${suffix}`,
411
+ trigger: MANIFEST_POLICY_TRIGGERS.ON_COMPLETION,
412
+ decision: MANIFEST_POLICY_DECISIONS.ALLOW,
413
+ })),
414
+ evidence_types: ['gate-run'],
415
+ state_aliases: { active: 'in_progress' },
416
+ lane_templates: [],
417
+ };