vgxness 1.20.4 → 1.20.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (375) hide show
  1. package/dist/adapters/claude/agent-renderer.js +82 -0
  2. package/dist/{mcp → adapters/claude/install}/claude-code-agent-config.js +64 -9
  3. package/dist/{mcp → adapters/claude/install}/claude-code-config.js +28 -6
  4. package/dist/{mcp → adapters/claude/install}/claude-code-project-memory.js +35 -5
  5. package/dist/{mcp → adapters/claude/install}/claude-code-scope.js +12 -3
  6. package/dist/{mcp → adapters/claude/install}/claude-code-user-config.js +26 -5
  7. package/dist/{mcp → adapters/claude/install}/claude-code-user-memory.js +47 -7
  8. package/dist/{mcp → adapters/claude/install}/client-install-claude-code-contract.js +45 -8
  9. package/dist/{mcp → adapters/claude/install}/client-install-claude-code.js +98 -14
  10. package/dist/adapters/json/agent-renderer.js +104 -0
  11. package/dist/adapters/opencode/agent-renderer.js +113 -0
  12. package/dist/{mcp → adapters/opencode/install}/client-install-opencode-contract.js +2 -2
  13. package/dist/{mcp → adapters/opencode/install}/client-install-opencode.js +1 -1
  14. package/dist/{mcp → adapters/opencode/install}/opencode-default-agent-config.js +2 -2
  15. package/dist/{mcp → adapters/opencode/install}/opencode-handoff-preview.js +60 -7
  16. package/dist/{mcp → adapters/opencode/install}/opencode-visibility.js +1 -1
  17. package/dist/adapters/provider-renderer.js +6 -0
  18. package/dist/agents/agent-activation-service.js +1 -263
  19. package/dist/agents/agent-lookup-contexts.js +1 -28
  20. package/dist/agents/agent-registry-service.js +1 -81
  21. package/dist/agents/agent-resolver.js +1 -287
  22. package/dist/agents/agent-seed-service.js +1 -157
  23. package/dist/agents/agent-seed-upgrade-service.js +1 -231
  24. package/dist/agents/agent-selector-resolver.js +1 -28
  25. package/dist/agents/boot-upgrade.js +1 -59
  26. package/dist/agents/canonical-agent-manifest.js +1 -245
  27. package/dist/agents/canonical-agent-projection.js +1 -236
  28. package/dist/agents/manager-profile-overlay-service.js +1 -60
  29. package/dist/agents/profile-model-routing.js +1 -30
  30. package/dist/agents/renderers/claude-renderer.js +1 -82
  31. package/dist/agents/renderers/index.js +1 -14
  32. package/dist/agents/renderers/json-renderer.js +1 -104
  33. package/dist/agents/renderers/opencode-renderer.js +1 -113
  34. package/dist/agents/renderers/provider-adapter.js +1 -6
  35. package/dist/agents/repositories/agent-seed-history.js +1 -128
  36. package/dist/agents/repositories/agents.js +1 -200
  37. package/dist/agents/repositories/manager-profile-overlays.js +1 -90
  38. package/dist/agents/schema.js +1 -1
  39. package/dist/application/agents/agent-activation-service.js +261 -0
  40. package/dist/application/agents/agent-lookup-contexts.js +28 -0
  41. package/dist/application/agents/agent-registry-service.js +81 -0
  42. package/dist/application/agents/agent-resolver.js +287 -0
  43. package/dist/application/agents/agent-seed-service.js +157 -0
  44. package/dist/application/agents/agent-seed-upgrade-service.js +231 -0
  45. package/dist/application/agents/agent-selector-resolver.js +28 -0
  46. package/dist/application/agents/boot-upgrade.js +59 -0
  47. package/dist/application/agents/canonical-agent-projection.js +236 -0
  48. package/dist/application/agents/manager-profile-overlay-service.js +68 -0
  49. package/dist/application/agents/profile-model-routing.js +30 -0
  50. package/dist/application/agents/renderers/claude-renderer.js +1 -0
  51. package/dist/application/agents/renderers/index.js +14 -0
  52. package/dist/application/agents/renderers/json-renderer.js +1 -0
  53. package/dist/application/agents/renderers/opencode-renderer.js +1 -0
  54. package/dist/application/agents/renderers/provider-adapter.js +1 -0
  55. package/dist/application/memory/active-work-preview.js +75 -0
  56. package/dist/application/memory/agent-memory-capture-service.js +498 -0
  57. package/dist/application/memory/import/dry-run-planner.js +58 -0
  58. package/dist/application/memory/import/index.js +3 -0
  59. package/dist/application/memory/import/observation-writer.js +226 -0
  60. package/dist/application/memory/import/package.js +179 -0
  61. package/dist/application/memory/memory-service.js +202 -0
  62. package/dist/application/memory/search.js +11 -0
  63. package/dist/{mcp → application/provider-setup}/provider-change-plan.js +74 -13
  64. package/dist/{mcp → application/provider-setup}/provider-doctor.js +201 -31
  65. package/dist/{mcp → application/provider-setup}/provider-health-types.js +1 -1
  66. package/dist/{mcp → application/provider-setup}/provider-status.js +170 -33
  67. package/dist/application/runs/execution-planning.js +180 -0
  68. package/dist/application/runs/operation-execution.js +1 -0
  69. package/dist/application/runs/operation-retry.js +129 -0
  70. package/dist/application/runs/resume-after-approval-result.js +88 -0
  71. package/dist/application/runs/run-insights.js +270 -0
  72. package/dist/application/runs/run-service.js +1480 -0
  73. package/dist/application/runs/run-snapshot-export-service.js +31 -0
  74. package/dist/application/runs/sandbox-process-execution.js +244 -0
  75. package/dist/application/runs/sandbox-worktree-planning.js +59 -0
  76. package/dist/application/runs/task-scoped-command-grant-service.js +224 -0
  77. package/dist/application/sdd/artifact-portability-service.js +137 -0
  78. package/dist/application/sdd/cockpit-read-model.js +195 -0
  79. package/dist/application/sdd/sdd-continuation-plan.js +265 -0
  80. package/dist/application/sdd/sdd-workflow-service.js +892 -0
  81. package/dist/application/skills/boot-seed.js +42 -0
  82. package/dist/application/skills/personal-skills.js +41 -0
  83. package/dist/application/skills/skill-export-service.js +34 -0
  84. package/dist/application/skills/skill-index-service.js +126 -0
  85. package/dist/application/skills/skill-payload.js +186 -0
  86. package/dist/application/skills/skill-registry-service.js +648 -0
  87. package/dist/application/skills/skill-resolver.js +368 -0
  88. package/dist/application/skills/skill-seed-service.js +242 -0
  89. package/dist/application/skills/skill-status-service.js +147 -0
  90. package/dist/cli/bun-bin.js +0 -0
  91. package/dist/cli/cli-flags.js +1 -387
  92. package/dist/cli/cli-help.js +1 -173
  93. package/dist/cli/cli-helpers.js +1 -77
  94. package/dist/cli/cli-types.js +1 -1
  95. package/dist/cli/commands/agent-skill-dispatcher.js +1 -700
  96. package/dist/cli/commands/index.js +1 -9
  97. package/dist/cli/commands/interactive-entrypoint-dispatcher.js +1 -14
  98. package/dist/cli/commands/mcp-dispatcher.js +1 -232
  99. package/dist/cli/commands/memory-sdd-dispatcher.js +1 -367
  100. package/dist/cli/commands/run-permission-dispatcher.js +1 -455
  101. package/dist/cli/commands/setup-dispatcher.js +1 -496
  102. package/dist/cli/commands/status-dispatcher.js +1 -130
  103. package/dist/cli/commands/verification-dispatcher.js +1 -47
  104. package/dist/cli/commands/workflow-dispatcher.js +1 -566
  105. package/dist/cli/dispatcher.js +1 -247
  106. package/dist/cli/doctor-renderer.js +1 -26
  107. package/dist/cli/home-tui-app.js +1 -411
  108. package/dist/cli/home-tui-controller.js +1 -314
  109. package/dist/cli/mcp-start-path.js +1 -21
  110. package/dist/cli/product-resume-renderer.js +1 -32
  111. package/dist/cli/product-status-renderer.js +1 -81
  112. package/dist/cli/sdd-renderer.js +1 -247
  113. package/dist/cli/setup-plan-renderer.js +1 -79
  114. package/dist/cli/setup-status-renderer.js +1 -50
  115. package/dist/cli/setup-tui-app.js +1 -130
  116. package/dist/cli/setup-tui-controller.js +1 -89
  117. package/dist/cli/tui/focus-reducer.js +1 -0
  118. package/dist/cli/tui/focus-types.js +1 -0
  119. package/dist/cli/tui/ink/app-shell.js +1 -0
  120. package/dist/cli/tui/ink/components.js +1 -38
  121. package/dist/cli/tui/ink/help-overlay.js +1 -0
  122. package/dist/cli/tui/ink/state-components.js +1 -0
  123. package/dist/cli/tui/ink/theme.js +1 -36
  124. package/dist/cli/tui/key-intents.js +1 -0
  125. package/dist/cli/tui/keymap.js +1 -20
  126. package/dist/cli/tui/navigation.js +1 -10
  127. package/dist/cli/tui/screen-registry.js +1 -0
  128. package/dist/cli/tui/terminal-capabilities.js +1 -12
  129. package/dist/cli/tui/tui-types.js +1 -1
  130. package/dist/cli/tui/visual/badges.js +1 -19
  131. package/dist/cli/tui/visual/footer.js +1 -27
  132. package/dist/cli/tui/visual/index.js +1 -3
  133. package/dist/cli/tui/visual/viewport.js +1 -11
  134. package/dist/cli/tui-render-helpers.js +1 -200
  135. package/dist/cli/verification-plan-renderer.js +1 -25
  136. package/dist/cli/verification-report-renderer.js +1 -19
  137. package/dist/domain/agents/canonical-agent-manifest.js +355 -0
  138. package/dist/domain/agents/schema.js +1 -0
  139. package/dist/domain/memory/active-work-topics.js +64 -0
  140. package/dist/domain/memory/memory-capture-schema.js +1 -0
  141. package/dist/domain/memory/schema.js +1 -0
  142. package/dist/domain/runs/schema.js +5 -0
  143. package/dist/domain/sdd/cockpit-types.js +1 -0
  144. package/dist/domain/sdd/schema.js +111 -0
  145. package/dist/domain/skills/schema.js +1 -0
  146. package/dist/governance/risk-classifier.js +2 -0
  147. package/dist/interfaces/cli/bun-bin.js +46 -0
  148. package/dist/interfaces/cli/cli-flags.js +391 -0
  149. package/dist/interfaces/cli/cli-help.js +173 -0
  150. package/dist/interfaces/cli/cli-helpers.js +77 -0
  151. package/dist/interfaces/cli/cli-types.js +1 -0
  152. package/dist/interfaces/cli/commands/agent-skill-dispatcher.js +700 -0
  153. package/dist/interfaces/cli/commands/index.js +9 -0
  154. package/dist/interfaces/cli/commands/interactive-entrypoint-dispatcher.js +14 -0
  155. package/dist/interfaces/cli/commands/mcp-dispatcher.js +252 -0
  156. package/dist/interfaces/cli/commands/memory-sdd-dispatcher.js +367 -0
  157. package/dist/interfaces/cli/commands/run-permission-dispatcher.js +460 -0
  158. package/dist/interfaces/cli/commands/setup-dispatcher.js +496 -0
  159. package/dist/interfaces/cli/commands/status-dispatcher.js +130 -0
  160. package/dist/interfaces/cli/commands/verification-dispatcher.js +47 -0
  161. package/dist/interfaces/cli/commands/workflow-dispatcher.js +566 -0
  162. package/dist/interfaces/cli/dispatcher.js +247 -0
  163. package/dist/interfaces/cli/doctor-renderer.js +26 -0
  164. package/dist/interfaces/cli/home-tui-app.js +462 -0
  165. package/dist/interfaces/cli/home-tui-controller.js +341 -0
  166. package/dist/interfaces/cli/index.js +27 -0
  167. package/dist/interfaces/cli/mcp-start-path.js +21 -0
  168. package/dist/interfaces/cli/product-resume-renderer.js +32 -0
  169. package/dist/interfaces/cli/product-status-renderer.js +81 -0
  170. package/dist/interfaces/cli/sdd-renderer.js +247 -0
  171. package/dist/interfaces/cli/setup-plan-renderer.js +79 -0
  172. package/dist/interfaces/cli/setup-status-renderer.js +50 -0
  173. package/dist/interfaces/cli/setup-tui-app.js +135 -0
  174. package/dist/interfaces/cli/setup-tui-controller.js +89 -0
  175. package/dist/interfaces/cli/tui/focus-reducer.js +60 -0
  176. package/dist/interfaces/cli/tui/focus-types.js +10 -0
  177. package/dist/interfaces/cli/tui/ink/app-shell.js +16 -0
  178. package/dist/interfaces/cli/tui/ink/components.js +38 -0
  179. package/dist/interfaces/cli/tui/ink/help-overlay.js +6 -0
  180. package/dist/interfaces/cli/tui/ink/state-components.js +22 -0
  181. package/dist/interfaces/cli/tui/ink/theme.js +36 -0
  182. package/dist/interfaces/cli/tui/key-intents.js +33 -0
  183. package/dist/interfaces/cli/tui/keymap.js +20 -0
  184. package/dist/interfaces/cli/tui/navigation.js +10 -0
  185. package/dist/interfaces/cli/tui/screen-registry.js +43 -0
  186. package/dist/interfaces/cli/tui/terminal-capabilities.js +12 -0
  187. package/dist/interfaces/cli/tui/tui-types.js +1 -0
  188. package/dist/interfaces/cli/tui/visual/badges.js +19 -0
  189. package/dist/interfaces/cli/tui/visual/footer.js +27 -0
  190. package/dist/interfaces/cli/tui/visual/index.js +3 -0
  191. package/dist/interfaces/cli/tui/visual/viewport.js +11 -0
  192. package/dist/interfaces/cli/tui-render-helpers.js +200 -0
  193. package/dist/interfaces/cli/verification-plan-renderer.js +25 -0
  194. package/dist/interfaces/cli/verification-report-renderer.js +19 -0
  195. package/dist/interfaces/mcp/contracts/agents.js +1 -0
  196. package/dist/interfaces/mcp/contracts/context.js +1 -0
  197. package/dist/interfaces/mcp/contracts/governance.js +1 -0
  198. package/dist/interfaces/mcp/contracts/index.js +1 -0
  199. package/dist/interfaces/mcp/contracts/memory.js +1 -0
  200. package/dist/interfaces/mcp/contracts/providers.js +1 -0
  201. package/dist/interfaces/mcp/contracts/runs.js +1 -0
  202. package/dist/interfaces/mcp/contracts/sdd.js +1 -0
  203. package/dist/interfaces/mcp/contracts/sessions.js +1 -0
  204. package/dist/interfaces/mcp/contracts/skills.js +1 -0
  205. package/dist/interfaces/mcp/contracts/verification.js +1 -0
  206. package/dist/interfaces/mcp/control-plane/handlers/agents.js +38 -0
  207. package/dist/interfaces/mcp/control-plane/handlers/context.js +12 -0
  208. package/dist/interfaces/mcp/control-plane/handlers/memory.js +95 -0
  209. package/dist/interfaces/mcp/control-plane/handlers/providers.js +19 -0
  210. package/dist/interfaces/mcp/control-plane/handlers/runs.js +134 -0
  211. package/dist/interfaces/mcp/control-plane/handlers/sdd.js +225 -0
  212. package/dist/interfaces/mcp/control-plane/handlers/sessions.js +39 -0
  213. package/dist/interfaces/mcp/control-plane/handlers/skills.js +82 -0
  214. package/dist/interfaces/mcp/control-plane/handlers/verification.js +11 -0
  215. package/dist/interfaces/mcp/control-plane/types.js +1 -0
  216. package/dist/interfaces/mcp/control-plane.js +235 -0
  217. package/dist/interfaces/mcp/schema.js +174 -0
  218. package/dist/interfaces/mcp/schemas/common.js +121 -0
  219. package/dist/interfaces/mcp/schemas/inputs/agents.js +69 -0
  220. package/dist/interfaces/mcp/schemas/inputs/context.js +32 -0
  221. package/dist/interfaces/mcp/schemas/inputs/governance.js +23 -0
  222. package/dist/interfaces/mcp/schemas/inputs/index.js +10 -0
  223. package/dist/interfaces/mcp/schemas/inputs/memory.js +50 -0
  224. package/dist/interfaces/mcp/schemas/inputs/providers.js +35 -0
  225. package/dist/interfaces/mcp/schemas/inputs/runs.js +146 -0
  226. package/dist/interfaces/mcp/schemas/inputs/sdd.js +102 -0
  227. package/dist/interfaces/mcp/schemas/inputs/sessions.js +32 -0
  228. package/dist/interfaces/mcp/schemas/inputs/skills.js +231 -0
  229. package/dist/interfaces/mcp/schemas/inputs/verification.js +9 -0
  230. package/dist/interfaces/mcp/schemas/outputs/index.js +2 -0
  231. package/dist/interfaces/mcp/schemas/outputs/providers.js +28 -0
  232. package/dist/interfaces/mcp/schemas/outputs/sdd.js +166 -0
  233. package/dist/interfaces/mcp/stdio-server.js +116 -0
  234. package/dist/interfaces/mcp/validation/agents.js +189 -0
  235. package/dist/interfaces/mcp/validation/common.js +415 -0
  236. package/dist/interfaces/mcp/validation/governance.js +50 -0
  237. package/dist/interfaces/mcp/validation/memory.js +133 -0
  238. package/dist/interfaces/mcp/validation/providers.js +94 -0
  239. package/dist/interfaces/mcp/validation/runs.js +514 -0
  240. package/dist/interfaces/mcp/validation/sdd.js +247 -0
  241. package/dist/interfaces/mcp/validation/sessions.js +51 -0
  242. package/dist/interfaces/mcp/validation/skills.js +685 -0
  243. package/dist/interfaces/mcp/validation/verification.js +24 -0
  244. package/dist/interfaces/mcp/validation.js +149 -0
  245. package/dist/mcp/control-plane-snapshot-service.js +65 -2
  246. package/dist/mcp/control-plane.js +1 -646
  247. package/dist/mcp/doctor.js +1 -1
  248. package/dist/mcp/index.js +17 -17
  249. package/dist/mcp/schema.js +1 -1072
  250. package/dist/mcp/stdio-server.js +1 -116
  251. package/dist/mcp/validation.js +1 -2239
  252. package/dist/memory/active-work-preview.js +1 -75
  253. package/dist/memory/active-work-topics.js +1 -64
  254. package/dist/memory/agent-memory-capture-service.js +1 -497
  255. package/dist/memory/import/dry-run-planner.js +1 -58
  256. package/dist/memory/import/index.js +1 -3
  257. package/dist/memory/import/observation-writer.js +1 -226
  258. package/dist/memory/import/package.js +1 -179
  259. package/dist/memory/memory-capture-schema.js +1 -1
  260. package/dist/memory/memory-service.js +1 -201
  261. package/dist/memory/repositories/artifacts.js +1 -67
  262. package/dist/memory/repositories/observations.js +1 -217
  263. package/dist/memory/repositories/sessions.js +1 -125
  264. package/dist/memory/repositories/traces.js +1 -78
  265. package/dist/memory/schema.js +1 -1
  266. package/dist/memory/search.js +1 -11
  267. package/dist/memory/sqlite/database.js +1 -228
  268. package/dist/memory/storage-paths.js +1 -72
  269. package/dist/payload/context-budget-policy.js +10 -0
  270. package/dist/payload/context-budget-service.js +26 -0
  271. package/dist/payload/payload-diagnostics.js +50 -0
  272. package/dist/permissions/explicit-request-authorization.js +126 -0
  273. package/dist/permissions/policy-evaluator.js +54 -14
  274. package/dist/runs/execution-planning.js +1 -178
  275. package/dist/runs/operation-execution.js +1 -1
  276. package/dist/runs/operation-retry.js +1 -129
  277. package/dist/runs/repositories/runs.js +1 -676
  278. package/dist/runs/repositories/task-scoped-command-grants.js +1 -462
  279. package/dist/runs/resume-after-approval-result.js +1 -84
  280. package/dist/runs/run-insights.js +1 -270
  281. package/dist/runs/run-service.js +1 -1439
  282. package/dist/runs/run-snapshot-export-service.js +1 -31
  283. package/dist/runs/sandbox-process-execution.js +1 -240
  284. package/dist/runs/sandbox-worktree-planning.js +1 -59
  285. package/dist/runs/schema.js +1 -5
  286. package/dist/runs/task-scoped-command-grant-service.js +1 -216
  287. package/dist/sdd/artifact-portability-service.js +1 -137
  288. package/dist/sdd/cockpit-read-model.js +1 -195
  289. package/dist/sdd/cockpit-types.js +1 -1
  290. package/dist/sdd/schema.js +1 -111
  291. package/dist/sdd/sdd-continuation-plan.js +1 -265
  292. package/dist/sdd/sdd-workflow-service.js +1 -822
  293. package/dist/setup/providers/claude-setup-adapter.js +11 -4
  294. package/dist/setup/providers/opencode-setup-adapter.js +10 -7
  295. package/dist/setup/setup-plan.js +20 -7
  296. package/dist/skills/boot-seed.js +1 -42
  297. package/dist/skills/personal-skills.js +1 -41
  298. package/dist/skills/repositories/skill-evaluation-requests.js +1 -190
  299. package/dist/skills/repositories/skill-evaluation-scenarios.js +1 -305
  300. package/dist/skills/repositories/skill-improvement-proposals.js +1 -355
  301. package/dist/skills/repositories/skills.js +1 -1077
  302. package/dist/skills/schema.js +1 -1
  303. package/dist/skills/skill-export-service.js +1 -34
  304. package/dist/skills/skill-index-service.js +1 -126
  305. package/dist/skills/skill-payload.js +1 -186
  306. package/dist/skills/skill-registry-service.js +1 -644
  307. package/dist/skills/skill-resolver.js +1 -368
  308. package/dist/skills/skill-seed-service.js +1 -242
  309. package/dist/skills/skill-status-service.js +1 -147
  310. package/dist/storage/agents/repositories/agent-seed-history.js +128 -0
  311. package/dist/storage/agents/repositories/agents.js +200 -0
  312. package/dist/storage/agents/repositories/manager-profile-overlays.js +90 -0
  313. package/dist/storage/memory/repositories/artifacts.js +67 -0
  314. package/dist/storage/memory/repositories/observations.js +217 -0
  315. package/dist/storage/memory/repositories/sessions.js +125 -0
  316. package/dist/storage/memory/repositories/traces.js +78 -0
  317. package/dist/storage/memory/sqlite/database.js +228 -0
  318. package/dist/storage/memory/storage-paths.js +72 -0
  319. package/dist/storage/runs/repositories/runs.js +676 -0
  320. package/dist/storage/runs/repositories/task-scoped-command-grants.js +464 -0
  321. package/dist/storage/skills/repositories/skill-evaluation-requests.js +190 -0
  322. package/dist/storage/skills/repositories/skill-evaluation-scenarios.js +305 -0
  323. package/dist/storage/skills/repositories/skill-improvement-proposals.js +355 -0
  324. package/dist/storage/skills/repositories/skills.js +1084 -0
  325. package/docs/architecture.md +2 -2
  326. package/docs/glossary.md +1 -1
  327. package/docs/mcp.md +1 -1
  328. package/docs/module-boundaries.md +114 -0
  329. package/docs/prd.md +1 -1
  330. package/docs/project-health-audit-v1.10.x.md +1 -1
  331. package/docs/providers.md +2 -2
  332. package/docs/safety.md +3 -3
  333. package/docs/sdd/archive/2026-06-26-ambitious-structure-reorganization/apply-progress.md +122 -0
  334. package/docs/sdd/archive/2026-06-26-ambitious-structure-reorganization/archive-report.md +61 -0
  335. package/docs/sdd/archive/2026-06-26-ambitious-structure-reorganization/design.md +66 -0
  336. package/docs/sdd/archive/2026-06-26-ambitious-structure-reorganization/proposal.md +79 -0
  337. package/docs/sdd/archive/2026-06-26-ambitious-structure-reorganization/spec.md +67 -0
  338. package/docs/sdd/archive/2026-06-26-ambitious-structure-reorganization/tasks.md +63 -0
  339. package/docs/sdd/archive/2026-06-26-ambitious-structure-reorganization/verify-report.md +71 -0
  340. package/docs/sdd/archive/2026-06-26-legacy-facade-cleanup/apply-progress.md +68 -0
  341. package/docs/sdd/archive/2026-06-26-legacy-facade-cleanup/archive-report.md +61 -0
  342. package/docs/sdd/archive/2026-06-26-legacy-facade-cleanup/design.md +43 -0
  343. package/docs/sdd/archive/2026-06-26-legacy-facade-cleanup/proposal.md +61 -0
  344. package/docs/sdd/archive/2026-06-26-legacy-facade-cleanup/spec.md +31 -0
  345. package/docs/sdd/archive/2026-06-26-legacy-facade-cleanup/tasks.md +27 -0
  346. package/docs/sdd/archive/2026-06-26-legacy-facade-cleanup/verify-report.md +58 -0
  347. package/docs/sdd/archive/2026-06-26-provider-install-adapter-boundary/apply-progress.md +65 -0
  348. package/docs/sdd/archive/2026-06-26-provider-install-adapter-boundary/archive-report.md +53 -0
  349. package/docs/sdd/archive/2026-06-26-provider-install-adapter-boundary/design.md +64 -0
  350. package/docs/sdd/archive/2026-06-26-provider-install-adapter-boundary/proposal.md +62 -0
  351. package/docs/sdd/archive/2026-06-26-provider-install-adapter-boundary/spec.md +51 -0
  352. package/docs/sdd/archive/2026-06-26-provider-install-adapter-boundary/tasks.md +50 -0
  353. package/docs/sdd/archive/2026-06-26-provider-install-adapter-boundary/verify-report.md +66 -0
  354. package/docs/storage.md +2 -2
  355. package/package.json +2 -2
  356. /package/dist/{mcp → adapters/claude/install}/claude-code-cli.js +0 -0
  357. /package/dist/{memory → storage/memory}/sqlite/migrations/001_initial.sql +0 -0
  358. /package/dist/{memory → storage/memory}/sqlite/migrations/002_observation_revisions.sql +0 -0
  359. /package/dist/{memory → storage/memory}/sqlite/migrations/003_agent_registry.sql +0 -0
  360. /package/dist/{memory → storage/memory}/sqlite/migrations/004_run_runtime.sql +0 -0
  361. /package/dist/{memory → storage/memory}/sqlite/migrations/005_run_approvals.sql +0 -0
  362. /package/dist/{memory → storage/memory}/sqlite/migrations/006_run_operation_attempts.sql +0 -0
  363. /package/dist/{memory → storage/memory}/sqlite/migrations/007_abandoned_operation_attempts.sql +0 -0
  364. /package/dist/{memory → storage/memory}/sqlite/migrations/008_run_execution_plan_events.sql +0 -0
  365. /package/dist/{memory → storage/memory}/sqlite/migrations/009_multiple_operation_attempts.sql +0 -0
  366. /package/dist/{memory → storage/memory}/sqlite/migrations/010_skill_registry.sql +0 -0
  367. /package/dist/{memory → storage/memory}/sqlite/migrations/011_skill_usage_resolution_outcomes.sql +0 -0
  368. /package/dist/{memory → storage/memory}/sqlite/migrations/012_skill_improvement_proposals.sql +0 -0
  369. /package/dist/{memory → storage/memory}/sqlite/migrations/013_skill_evaluation_scenarios.sql +0 -0
  370. /package/dist/{memory → storage/memory}/sqlite/migrations/014_manager_profile_overlays.sql +0 -0
  371. /package/dist/{memory → storage/memory}/sqlite/migrations/015_artifact_metadata.sql +0 -0
  372. /package/dist/{memory → storage/memory}/sqlite/migrations/016_agent_seed_history.sql +0 -0
  373. /package/dist/{memory → storage/memory}/sqlite/migrations/017_intent_signal_skill_targets.sql +0 -0
  374. /package/dist/{memory → storage/memory}/sqlite/migrations/018_skill_system_v2.sql +0 -0
  375. /package/dist/{memory → storage/memory}/sqlite/migrations/019_task_scoped_command_grants.sql +0 -0
@@ -0,0 +1 @@
1
+ export * from '../../../interfaces/cli/tui/ink/state-components.js';
@@ -1,36 +1 @@
1
- export const inkTuiTheme = {
2
- app: {
3
- minWidth: 60,
4
- maxWidth: 88,
5
- },
6
- colors: {
7
- neutral: 'gray',
8
- info: 'cyan',
9
- success: 'green',
10
- warning: 'yellow',
11
- danger: 'red',
12
- },
13
- symbols: {
14
- brand: '◆',
15
- selected: '›',
16
- unselected: ' ',
17
- },
18
- copy: {
19
- homeTitle: 'VGXNESS Home',
20
- homeSubtitle: 'Local-first control plane · read-only cockpit',
21
- setupTitle: 'VGXNESS Setup',
22
- setupSubtitle: 'Modern setup cockpit · provider-safe preview',
23
- readOnlyBadge: 'read-only',
24
- previewOnlyBadge: 'preview-only',
25
- keyboardHelp: 'Keys: ↑/↓ or j/k move · Enter continue/select · Tab/Shift+Tab next/back · Esc/q cancel · ? help',
26
- actionHelp: 'Action help: Enter/Space preview confirmation · ↑/↓ choose action · Tab changes tab · q exits',
27
- readOnlyConfirmation: 'This TUI is read-only and did not apply the action.',
28
- manualApplyCommand: 'Run manually after review: vgxness setup apply --yes',
29
- },
30
- };
31
- export function colorForTone(tone) {
32
- return inkTuiTheme.colors[tone];
33
- }
34
- export function normalizeInkTuiWidth(width) {
35
- return Math.max(inkTuiTheme.app.minWidth, Math.min(width, inkTuiTheme.app.maxWidth));
36
- }
1
+ export * from '../../../interfaces/cli/tui/ink/theme.js';
@@ -0,0 +1 @@
1
+ export * from '../../interfaces/cli/tui/key-intents.js';
@@ -1,20 +1 @@
1
- export const setupTuiKeyboardHelp = 'Keys: ↑/↓ or j/k move · Enter continue/select · Tab/Shift+Tab next/back · Esc/q cancel · ? help';
2
- export function navigationIntentFromInput(input) {
3
- if (input === '\u001B[A' || input === 'k')
4
- return 'up';
5
- if (input === '\u001B[B' || input === 'j')
6
- return 'down';
7
- if (input === '\r' || input === '\n')
8
- return 'next';
9
- if (input === '\t')
10
- return 'next';
11
- if (input === '\u001B[Z')
12
- return 'back';
13
- if (input === '\u001B' || input === 'q')
14
- return 'cancel';
15
- if (input === '?' || input === 'h')
16
- return 'help';
17
- if (input === ' ')
18
- return 'select';
19
- return undefined;
20
- }
1
+ export * from '../../interfaces/cli/tui/keymap.js';
@@ -1,10 +1 @@
1
- export function moveIndex(current, delta, length) {
2
- if (length <= 0)
3
- return 0;
4
- return Math.max(0, Math.min(current + delta, length - 1));
5
- }
6
- export function nextItem(items, current, delta) {
7
- const index = items.indexOf(current);
8
- const nextIndex = moveIndex(index < 0 ? 0 : index, delta, items.length);
9
- return items[nextIndex] ?? current;
10
- }
1
+ export * from '../../interfaces/cli/tui/navigation.js';
@@ -0,0 +1 @@
1
+ export * from '../../interfaces/cli/tui/screen-registry.js';
@@ -1,12 +1 @@
1
- export function detectTerminalCapabilities(input, output) {
2
- return {
3
- interactive: input?.isTTY === true && output?.isTTY === true,
4
- supportsRawMode: input?.setRawMode !== undefined,
5
- columns: output?.columns ?? 80,
6
- rows: output?.rows ?? 24,
7
- };
8
- }
9
- export function canRunInteractiveTui(input, output) {
10
- const capabilities = detectTerminalCapabilities(input, output);
11
- return capabilities.interactive && capabilities.supportsRawMode;
12
- }
1
+ export * from '../../interfaces/cli/tui/terminal-capabilities.js';
@@ -1 +1 @@
1
- export {};
1
+ export * from '../../interfaces/cli/tui/tui-types.js';
@@ -1,19 +1 @@
1
- export const tuiBadges = {
2
- ready: '[Ready]',
3
- blocked: '[Blocked]',
4
- focused: '[Focused]',
5
- selected: '[Selected]',
6
- previewOnly: '[Preview-only]',
7
- readOnly: '[Read-only]',
8
- requiresConfirmation: '[Requires confirmation]',
9
- noProviderWrites: '[No provider writes]',
10
- manual: '[Manual]',
11
- exit: '[Exit]',
12
- };
13
- export function badgeText(badge) {
14
- return typeof badge === 'string' ? badge : badge.label;
15
- }
16
- export function formatBadges(badges) {
17
- const labels = (badges ?? []).map(badgeText).filter((label) => label.length > 0);
18
- return labels.length === 0 ? '' : labels.join(' ');
19
- }
1
+ export * from '../../../interfaces/cli/tui/visual/badges.js';
@@ -1,27 +1 @@
1
- export function formatTuiFooter(hints, width, mode) {
2
- const visibleHints = mode === 'narrow' ? prioritizeCritical(hints) : hints;
3
- const footer = visibleHints.map(formatHint).join(' · ');
4
- if (footer.length <= width)
5
- return footer;
6
- const critical = prioritizeCritical(hints);
7
- const fallback = critical.map(formatHint).join(' · ');
8
- if (fallback.length <= width)
9
- return fallback;
10
- return preserveCriticalText(fallback, width);
11
- }
12
- function prioritizeCritical(hints) {
13
- const critical = hints.filter((hint) => hint.priority === 'critical' || /confirm|cancel|quit|close|exit/i.test(hint.label));
14
- return critical.length === 0 ? hints.slice(0, 3) : critical;
15
- }
16
- function formatHint(hint) {
17
- return `${hint.key} ${hint.label}`;
18
- }
19
- function preserveCriticalText(value, width) {
20
- if (width <= 0 || value.length <= width)
21
- return value;
22
- const protectedPhrases = ['final confirmation', 'confirm and apply', 'requires confirmation', 'cancel', 'quit', 'exit', 'read-only'];
23
- const phrase = protectedPhrases.find((candidate) => value.toLowerCase().includes(candidate));
24
- if (phrase === undefined)
25
- return `${value.slice(0, Math.max(0, width - 1)).trim()}…`;
26
- return `${value.slice(0, Math.max(0, width - phrase.length - 5)).trim()} ... ${phrase}`.trim();
27
- }
1
+ export * from '../../../interfaces/cli/tui/visual/footer.js';
@@ -1,3 +1 @@
1
- export * from './badges.js';
2
- export * from './footer.js';
3
- export * from './viewport.js';
1
+ export * from '../../../interfaces/cli/tui/visual/index.js';
@@ -1,11 +1 @@
1
- export function viewportModeForWidth(width) {
2
- if (width < 72)
3
- return 'narrow';
4
- if (width >= 120)
5
- return 'wide';
6
- return 'standard';
7
- }
8
- export function createTuiViewport(width, fallback = 80) {
9
- const normalized = width === undefined || !Number.isFinite(width) ? fallback : Math.max(40, Math.floor(width));
10
- return { width: normalized, mode: viewportModeForWidth(normalized) };
11
- }
1
+ export * from '../../../interfaces/cli/tui/visual/viewport.js';
@@ -1,200 +1 @@
1
- export const DEFAULT_TUI_WIDTH = 100;
2
- export const MIN_TUI_WIDTH = 40;
3
- const knownBadges = new Set([
4
- 'ready',
5
- 'deferred',
6
- 'blocked',
7
- 'loading',
8
- 'error',
9
- 'empty',
10
- 'external',
11
- 'mutating',
12
- 'no tui writes',
13
- 'no provider writes',
14
- 'writes provider config',
15
- 'requires confirmation',
16
- 'available',
17
- 'preview-only',
18
- 'manual',
19
- 'coming-soon',
20
- 'unsupported',
21
- 'ready-without-project',
22
- 'project-required',
23
- ]);
24
- export function normalizeRenderWidth(width) {
25
- if (width === undefined || !Number.isFinite(width))
26
- return DEFAULT_TUI_WIDTH;
27
- return Math.max(MIN_TUI_WIDTH, Math.floor(width));
28
- }
29
- export function stripAnsi(value) {
30
- return value.replace(/\u001B\[[0-?]*[ -/]*[@-~]/g, '');
31
- }
32
- export function visibleLength(value) {
33
- return stripAnsi(value).length;
34
- }
35
- export function badge(value, options = {}) {
36
- const normalized = value
37
- .trim()
38
- .replace(/[_\s]+/g, ' ')
39
- .toLowerCase();
40
- if (normalized.length === 0)
41
- return styleBadge('[unknown]', 'unknown', options);
42
- if (knownBadges.has(normalized)) {
43
- const label = normalized === 'no tui writes' ? 'no TUI writes' : normalized;
44
- return styleBadge(`[${label}]`, normalized, options);
45
- }
46
- return styleBadge(`[unknown: ${normalized}]`, 'unknown', options);
47
- }
48
- export function wrapText(text, options = {}) {
49
- const width = normalizeRenderWidth(options.width);
50
- const indent = options.indent ?? '';
51
- const hangingIndent = options.hangingIndent ?? indent;
52
- const firstAvailable = Math.max(1, width - visibleLength(indent));
53
- const hangingAvailable = Math.max(1, width - visibleLength(hangingIndent));
54
- const words = text.trim().length === 0 ? [''] : text.trim().split(/\s+/);
55
- const lines = [];
56
- let currentIndent = indent;
57
- let available = firstAvailable;
58
- let current = '';
59
- for (const word of words) {
60
- if (current.length === 0) {
61
- current = word;
62
- continue;
63
- }
64
- if (visibleLength(`${current} ${word}`) <= available) {
65
- current = `${current} ${word}`;
66
- continue;
67
- }
68
- lines.push(`${currentIndent}${current}`);
69
- currentIndent = hangingIndent;
70
- available = hangingAvailable;
71
- current = word;
72
- }
73
- lines.push(`${currentIndent}${current}`);
74
- return lines;
75
- }
76
- export function renderPanel(title, bodyLines, options = {}) {
77
- const width = normalizeRenderWidth(options.width);
78
- const contentWidth = Math.max(1, width - 4);
79
- const status = options.status === undefined ? '' : ` ${badge(options.status, options)}`;
80
- const titleText = ansi(options, 'title', `${title}${status}`);
81
- const top = borderedTop(titleText, width, options);
82
- const body = bodyLines.flatMap((line) => line.split('\n')).flatMap((line) => wrapPanelLine(styleKnownBadges(line, options), contentWidth, options));
83
- const footer = (options.footerLines ?? []).flatMap((line) => wrapPanelLine(styleKnownBadges(line, options), contentWidth, options));
84
- return [top, ...[...body, ...footer].map((line) => borderedBody(line, width, options)), borderedBottom(width, options)];
85
- }
86
- export function styleFocusedRow(value, options = {}) {
87
- return ansi(options, 'highlight', value);
88
- }
89
- export function renderTabRow(items, options = {}) {
90
- const width = normalizeRenderWidth(options.width);
91
- const tokens = items.map((item) => renderTabToken(item, options));
92
- return wrapTokens('Tabs:', tokens, width);
93
- }
94
- function renderTabToken(item, options) {
95
- if (item.selected && item.focused === true)
96
- return ansi(options, 'highlight', `› [${item.key}] ${item.label} [selected] [focused]`);
97
- if (item.selected)
98
- return ansi(options, 'highlight', `› [${item.key}] ${item.label} [selected]`);
99
- if (item.focused === true)
100
- return ansi(options, 'focus', `» [${item.key}] ${item.label} [focused]`);
101
- return ansi(options, 'dim', `[${item.key}] ${item.label}`);
102
- }
103
- export function renderFooterGroups(groups, options = {}) {
104
- const width = normalizeRenderWidth(options.width);
105
- const lines = [];
106
- for (const group of groups) {
107
- lines.push(...wrapTokens(`${group.label}:`, group.items, width));
108
- }
109
- return lines;
110
- }
111
- export function renderActionLine(label, options = {}) {
112
- const labels = (options.labels ?? []).map((value) => badge(value)).join(' ');
113
- const primary = `- ${label}${labels.length === 0 ? '' : ` ${labels}`}`;
114
- return [
115
- ...wrapText(primary, options),
116
- ...(options.description === undefined ? [] : wrapText(options.description, { ...options, indent: ' ', hangingIndent: ' ' })),
117
- ...(options.command === undefined || options.command.length === 0
118
- ? []
119
- : wrapText(`Command: ${options.command.join(' ')}`, { ...options, indent: ' ', hangingIndent: ' ' })),
120
- ];
121
- }
122
- export function joinSections(sections) {
123
- return sections
124
- .map((section) => (typeof section === 'string' || section === undefined ? section?.trim() : section.join('\n').trim()))
125
- .filter((section) => section !== undefined && section.length > 0)
126
- .join('\n\n');
127
- }
128
- function wrapTokens(prefix, tokens, width) {
129
- const lines = [];
130
- let current = prefix;
131
- for (const token of tokens) {
132
- const separator = current === prefix ? ' ' : ' · ';
133
- const candidate = `${current}${separator}${token}`;
134
- if (visibleLength(candidate) <= width || current === prefix) {
135
- current = candidate;
136
- continue;
137
- }
138
- lines.push(current);
139
- current = `${' '.repeat(prefix.length)} ${token}`;
140
- }
141
- lines.push(current);
142
- return lines;
143
- }
144
- function wrapPanelLine(line, contentWidth, options) {
145
- if (visibleLength(line) <= contentWidth)
146
- return [line];
147
- return wrapText(line, { ...options, width: contentWidth });
148
- }
149
- function borderedTop(title, width, options) {
150
- const prefix = `┌─ ${title} `;
151
- return `${ansi(options, 'border', prefix)}${ansi(options, 'border', '─'.repeat(Math.max(0, width - visibleLength(prefix) - 1)))}${ansi(options, 'border', '┐')}`;
152
- }
153
- function borderedBody(line, width, options) {
154
- const padded = `${line}${' '.repeat(Math.max(0, width - visibleLength(line) - 4))}`;
155
- return `${ansi(options, 'border', '│')} ${padded} ${ansi(options, 'border', '│')}`;
156
- }
157
- function borderedBottom(width, options) {
158
- return ansi(options, 'border', `└${'─'.repeat(Math.max(0, width - 2))}┘`);
159
- }
160
- function styleKnownBadges(line, options) {
161
- if (options.style !== 'ansi')
162
- return line;
163
- return line.replace(/\[([^\]]+)\]/g, (match, raw) => {
164
- const normalized = raw
165
- .trim()
166
- .replace(/[_\s]+/g, ' ')
167
- .toLowerCase();
168
- return knownBadges.has(normalized) ? styleBadge(match, normalized, options) : match;
169
- });
170
- }
171
- function styleBadge(value, status, options) {
172
- if (options.style !== 'ansi')
173
- return value;
174
- if (['ready', 'available', 'ready-without-project'].includes(status))
175
- return ansi(options, 'green', value);
176
- if (['blocked', 'error', 'mutating', 'writes provider config'].includes(status))
177
- return ansi(options, 'red', value);
178
- if (['deferred', 'loading', 'manual', 'requires confirmation', 'preview-only', 'coming-soon', 'project-required'].includes(status))
179
- return ansi(options, 'yellow', value);
180
- if (['external', 'no tui writes', 'no provider writes'].includes(status))
181
- return ansi(options, 'cyan', value);
182
- return ansi(options, 'dim', value);
183
- }
184
- function ansi(options, role, value) {
185
- if (options.style !== 'ansi')
186
- return value;
187
- const codes = {
188
- bold: '1',
189
- title: '1;96',
190
- dim: '2',
191
- highlight: '1;7;36',
192
- focus: '1;36',
193
- border: '36',
194
- green: '32',
195
- red: '31',
196
- yellow: '33',
197
- cyan: '36',
198
- };
199
- return `\u001B[${codes[role]}m${value}\u001B[0m`;
200
- }
1
+ export * from '../interfaces/cli/tui-render-helpers.js';
@@ -1,25 +1 @@
1
- export function renderVerificationPlan(plan) {
2
- const lines = [
3
- 'Verification plan',
4
- `Type: ${plan.selectedChangeType}`,
5
- '',
6
- 'Recommendations:',
7
- ...plan.recommendations.map((recommendation) => {
8
- const safety = recommendation.classification === 'allowlisted-command' ? `allowlisted: ${recommendation.commandId}` : 'manual/copy-only';
9
- const script = recommendation.packageScript === undefined ? '' : ` (${recommendation.packageScript})`;
10
- return `${recommendation.order}. ${recommendation.title} — ${safety}${script}. ${recommendation.description}`;
11
- }),
12
- '',
13
- 'Manual checks:',
14
- ...plan.manualChecks.map((check) => `${check.order}. ${check.title} — ${check.description}`),
15
- '',
16
- 'Rationale:',
17
- ...plan.rationale.map((reason) => `- ${reason}`),
18
- '',
19
- 'Safety:',
20
- '- Read-only plan; commands are not executed.',
21
- '- Provider config is not written; verification results are not persisted.',
22
- '- SDD artifacts and human acceptance are not mutated or inferred.',
23
- ];
24
- return `${lines.join('\n')}\n`;
25
- }
1
+ export * from '../interfaces/cli/verification-plan-renderer.js';
@@ -1,19 +1 @@
1
- import { normalizeSddArtifact } from '../sdd/schema.js';
2
- export function renderVerificationReportArtifact(input) {
3
- const normalized = normalizeSddArtifact(input.artifact);
4
- const lines = [
5
- 'Verification report artifact',
6
- `Project: ${input.project}`,
7
- `Change: ${input.change}`,
8
- `Topic key: ${input.artifact.topicKey}`,
9
- `Artifact ID: ${input.artifact.id}`,
10
- `State: ${normalized.metadata.status}`,
11
- `Accepted: ${normalized.metadata.status === 'accepted' ? 'yes' : 'no'}`,
12
- '',
13
- 'Safety: manual file-only report; no commands were executed and acceptance is not inferred.',
14
- '',
15
- '--- Content ---',
16
- input.artifact.content,
17
- ];
18
- return `${lines.join('\n')}\n`;
19
- }
1
+ export * from '../interfaces/cli/verification-report-renderer.js';