@openrig/cli 0.0.1 → 0.1.1

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 (846) hide show
  1. package/daemon/assets/claude-statusline-context.cjs +80 -0
  2. package/daemon/assets/guidance/using-openrig.md +46 -0
  3. package/daemon/dist/adapters/claude-code-adapter.d.ts +67 -0
  4. package/daemon/dist/adapters/claude-code-adapter.d.ts.map +1 -0
  5. package/daemon/dist/adapters/claude-code-adapter.js +317 -0
  6. package/daemon/dist/adapters/claude-code-adapter.js.map +1 -0
  7. package/daemon/dist/adapters/claude-resume.d.ts +23 -0
  8. package/daemon/dist/adapters/claude-resume.d.ts.map +1 -0
  9. package/daemon/dist/adapters/claude-resume.js +90 -0
  10. package/daemon/dist/adapters/claude-resume.js.map +1 -0
  11. package/daemon/dist/adapters/cmux-transport.d.ts +9 -0
  12. package/daemon/dist/adapters/cmux-transport.d.ts.map +1 -0
  13. package/daemon/dist/adapters/cmux-transport.js +64 -0
  14. package/daemon/dist/adapters/cmux-transport.js.map +1 -0
  15. package/daemon/dist/adapters/cmux.d.ts +50 -0
  16. package/daemon/dist/adapters/cmux.d.ts.map +1 -0
  17. package/daemon/dist/adapters/cmux.js +144 -0
  18. package/daemon/dist/adapters/cmux.js.map +1 -0
  19. package/daemon/dist/adapters/codex-resume.d.ts +10 -0
  20. package/daemon/dist/adapters/codex-resume.d.ts.map +1 -0
  21. package/daemon/dist/adapters/codex-resume.js +44 -0
  22. package/daemon/dist/adapters/codex-resume.js.map +1 -0
  23. package/daemon/dist/adapters/codex-runtime-adapter.d.ts +53 -0
  24. package/daemon/dist/adapters/codex-runtime-adapter.d.ts.map +1 -0
  25. package/daemon/dist/adapters/codex-runtime-adapter.js +255 -0
  26. package/daemon/dist/adapters/codex-runtime-adapter.js.map +1 -0
  27. package/daemon/dist/adapters/shell-quote.d.ts +3 -0
  28. package/daemon/dist/adapters/shell-quote.d.ts.map +1 -0
  29. package/daemon/dist/adapters/shell-quote.js +5 -0
  30. package/daemon/dist/adapters/shell-quote.js.map +1 -0
  31. package/daemon/dist/adapters/terminal-adapter.d.ts +20 -0
  32. package/daemon/dist/adapters/terminal-adapter.d.ts.map +1 -0
  33. package/daemon/dist/adapters/terminal-adapter.js +25 -0
  34. package/daemon/dist/adapters/terminal-adapter.js.map +1 -0
  35. package/daemon/dist/adapters/tmux-exec.d.ts +7 -0
  36. package/daemon/dist/adapters/tmux-exec.d.ts.map +1 -0
  37. package/daemon/dist/adapters/tmux-exec.js +12 -0
  38. package/daemon/dist/adapters/tmux-exec.js.map +1 -0
  39. package/daemon/dist/adapters/tmux.d.ts +55 -0
  40. package/daemon/dist/adapters/tmux.d.ts.map +1 -0
  41. package/daemon/dist/adapters/tmux.js +244 -0
  42. package/daemon/dist/adapters/tmux.js.map +1 -0
  43. package/daemon/dist/db/connection.d.ts +7 -0
  44. package/daemon/dist/db/connection.d.ts.map +1 -0
  45. package/daemon/dist/db/connection.js +12 -0
  46. package/daemon/dist/db/connection.js.map +1 -0
  47. package/daemon/dist/db/migrate.d.ts +12 -0
  48. package/daemon/dist/db/migrate.d.ts.map +1 -0
  49. package/daemon/dist/db/migrate.js +27 -0
  50. package/daemon/dist/db/migrate.js.map +1 -0
  51. package/daemon/dist/db/migrations/001_core_schema.d.ts +3 -0
  52. package/daemon/dist/db/migrations/001_core_schema.d.ts.map +1 -0
  53. package/daemon/dist/db/migrations/001_core_schema.js +50 -0
  54. package/daemon/dist/db/migrations/001_core_schema.js.map +1 -0
  55. package/daemon/dist/db/migrations/002_bindings_sessions.d.ts +3 -0
  56. package/daemon/dist/db/migrations/002_bindings_sessions.d.ts.map +1 -0
  57. package/daemon/dist/db/migrations/002_bindings_sessions.js +29 -0
  58. package/daemon/dist/db/migrations/002_bindings_sessions.js.map +1 -0
  59. package/daemon/dist/db/migrations/003_events.d.ts +3 -0
  60. package/daemon/dist/db/migrations/003_events.d.ts.map +1 -0
  61. package/daemon/dist/db/migrations/003_events.js +22 -0
  62. package/daemon/dist/db/migrations/003_events.js.map +1 -0
  63. package/daemon/dist/db/migrations/004_snapshots.d.ts +3 -0
  64. package/daemon/dist/db/migrations/004_snapshots.d.ts.map +1 -0
  65. package/daemon/dist/db/migrations/004_snapshots.js +19 -0
  66. package/daemon/dist/db/migrations/004_snapshots.js.map +1 -0
  67. package/daemon/dist/db/migrations/005_checkpoints.d.ts +3 -0
  68. package/daemon/dist/db/migrations/005_checkpoints.d.ts.map +1 -0
  69. package/daemon/dist/db/migrations/005_checkpoints.js +22 -0
  70. package/daemon/dist/db/migrations/005_checkpoints.js.map +1 -0
  71. package/daemon/dist/db/migrations/006_resume_metadata.d.ts +3 -0
  72. package/daemon/dist/db/migrations/006_resume_metadata.d.ts.map +1 -0
  73. package/daemon/dist/db/migrations/006_resume_metadata.js +14 -0
  74. package/daemon/dist/db/migrations/006_resume_metadata.js.map +1 -0
  75. package/daemon/dist/db/migrations/007_node_spec_fields.d.ts +3 -0
  76. package/daemon/dist/db/migrations/007_node_spec_fields.d.ts.map +1 -0
  77. package/daemon/dist/db/migrations/007_node_spec_fields.js +11 -0
  78. package/daemon/dist/db/migrations/007_node_spec_fields.js.map +1 -0
  79. package/daemon/dist/db/migrations/008_packages.d.ts +3 -0
  80. package/daemon/dist/db/migrations/008_packages.d.ts.map +1 -0
  81. package/daemon/dist/db/migrations/008_packages.js +17 -0
  82. package/daemon/dist/db/migrations/008_packages.js.map +1 -0
  83. package/daemon/dist/db/migrations/009_install_journal.d.ts +3 -0
  84. package/daemon/dist/db/migrations/009_install_journal.d.ts.map +1 -0
  85. package/daemon/dist/db/migrations/009_install_journal.js +35 -0
  86. package/daemon/dist/db/migrations/009_install_journal.js.map +1 -0
  87. package/daemon/dist/db/migrations/010_journal_seq.d.ts +3 -0
  88. package/daemon/dist/db/migrations/010_journal_seq.d.ts.map +1 -0
  89. package/daemon/dist/db/migrations/010_journal_seq.js +36 -0
  90. package/daemon/dist/db/migrations/010_journal_seq.js.map +1 -0
  91. package/daemon/dist/db/migrations/011_bootstrap.d.ts +3 -0
  92. package/daemon/dist/db/migrations/011_bootstrap.d.ts.map +1 -0
  93. package/daemon/dist/db/migrations/011_bootstrap.js +43 -0
  94. package/daemon/dist/db/migrations/011_bootstrap.js.map +1 -0
  95. package/daemon/dist/db/migrations/012_discovery.d.ts +3 -0
  96. package/daemon/dist/db/migrations/012_discovery.d.ts.map +1 -0
  97. package/daemon/dist/db/migrations/012_discovery.js +28 -0
  98. package/daemon/dist/db/migrations/012_discovery.js.map +1 -0
  99. package/daemon/dist/db/migrations/013_discovery_fk_fix.d.ts +3 -0
  100. package/daemon/dist/db/migrations/013_discovery_fk_fix.d.ts.map +1 -0
  101. package/daemon/dist/db/migrations/013_discovery_fk_fix.js +37 -0
  102. package/daemon/dist/db/migrations/013_discovery_fk_fix.js.map +1 -0
  103. package/daemon/dist/db/migrations/014_agentspec_reboot.d.ts +3 -0
  104. package/daemon/dist/db/migrations/014_agentspec_reboot.d.ts.map +1 -0
  105. package/daemon/dist/db/migrations/014_agentspec_reboot.js +47 -0
  106. package/daemon/dist/db/migrations/014_agentspec_reboot.js.map +1 -0
  107. package/daemon/dist/db/migrations/015_startup_context.d.ts +3 -0
  108. package/daemon/dist/db/migrations/015_startup_context.d.ts.map +1 -0
  109. package/daemon/dist/db/migrations/015_startup_context.js +15 -0
  110. package/daemon/dist/db/migrations/015_startup_context.js.map +1 -0
  111. package/daemon/dist/db/migrations/016_chat_messages.d.ts +3 -0
  112. package/daemon/dist/db/migrations/016_chat_messages.d.ts.map +1 -0
  113. package/daemon/dist/db/migrations/016_chat_messages.js +17 -0
  114. package/daemon/dist/db/migrations/016_chat_messages.js.map +1 -0
  115. package/daemon/dist/db/migrations/017_pod_namespace.d.ts +3 -0
  116. package/daemon/dist/db/migrations/017_pod_namespace.d.ts.map +1 -0
  117. package/daemon/dist/db/migrations/017_pod_namespace.js +9 -0
  118. package/daemon/dist/db/migrations/017_pod_namespace.js.map +1 -0
  119. package/daemon/dist/db/migrations/018_context_usage.d.ts +3 -0
  120. package/daemon/dist/db/migrations/018_context_usage.d.ts.map +1 -0
  121. package/daemon/dist/db/migrations/018_context_usage.js +23 -0
  122. package/daemon/dist/db/migrations/018_context_usage.js.map +1 -0
  123. package/daemon/dist/db/migrations/019_external_cli_attachment.d.ts +3 -0
  124. package/daemon/dist/db/migrations/019_external_cli_attachment.d.ts.map +1 -0
  125. package/daemon/dist/db/migrations/019_external_cli_attachment.js +8 -0
  126. package/daemon/dist/db/migrations/019_external_cli_attachment.js.map +1 -0
  127. package/daemon/dist/domain/agent-manifest.d.ts +21 -0
  128. package/daemon/dist/domain/agent-manifest.d.ts.map +1 -0
  129. package/daemon/dist/domain/agent-manifest.js +322 -0
  130. package/daemon/dist/domain/agent-manifest.js.map +1 -0
  131. package/daemon/dist/domain/agent-preflight.d.ts +12 -0
  132. package/daemon/dist/domain/agent-preflight.d.ts.map +1 -0
  133. package/daemon/dist/domain/agent-preflight.js +37 -0
  134. package/daemon/dist/domain/agent-preflight.js.map +1 -0
  135. package/daemon/dist/domain/agent-resolver.d.ts +66 -0
  136. package/daemon/dist/domain/agent-resolver.d.ts.map +1 -0
  137. package/daemon/dist/domain/agent-resolver.js +193 -0
  138. package/daemon/dist/domain/agent-resolver.js.map +1 -0
  139. package/daemon/dist/domain/ask-service.d.ts +57 -0
  140. package/daemon/dist/domain/ask-service.d.ts.map +1 -0
  141. package/daemon/dist/domain/ask-service.js +129 -0
  142. package/daemon/dist/domain/ask-service.js.map +1 -0
  143. package/daemon/dist/domain/bootstrap-orchestrator.d.ts +76 -0
  144. package/daemon/dist/domain/bootstrap-orchestrator.d.ts.map +1 -0
  145. package/daemon/dist/domain/bootstrap-orchestrator.js +510 -0
  146. package/daemon/dist/domain/bootstrap-orchestrator.js.map +1 -0
  147. package/daemon/dist/domain/bootstrap-repository.d.ts +23 -0
  148. package/daemon/dist/domain/bootstrap-repository.d.ts.map +1 -0
  149. package/daemon/dist/domain/bootstrap-repository.js +78 -0
  150. package/daemon/dist/domain/bootstrap-repository.js.map +1 -0
  151. package/daemon/dist/domain/bootstrap-types.d.ts +43 -0
  152. package/daemon/dist/domain/bootstrap-types.d.ts.map +1 -0
  153. package/daemon/dist/domain/bootstrap-types.js +2 -0
  154. package/daemon/dist/domain/bootstrap-types.js.map +1 -0
  155. package/daemon/dist/domain/bundle-archive.d.ts +23 -0
  156. package/daemon/dist/domain/bundle-archive.d.ts.map +1 -0
  157. package/daemon/dist/domain/bundle-archive.js +156 -0
  158. package/daemon/dist/domain/bundle-archive.js.map +1 -0
  159. package/daemon/dist/domain/bundle-assembler.d.ts +34 -0
  160. package/daemon/dist/domain/bundle-assembler.d.ts.map +1 -0
  161. package/daemon/dist/domain/bundle-assembler.js +86 -0
  162. package/daemon/dist/domain/bundle-assembler.js.map +1 -0
  163. package/daemon/dist/domain/bundle-integrity.d.ts +30 -0
  164. package/daemon/dist/domain/bundle-integrity.d.ts.map +1 -0
  165. package/daemon/dist/domain/bundle-integrity.js +120 -0
  166. package/daemon/dist/domain/bundle-integrity.js.map +1 -0
  167. package/daemon/dist/domain/bundle-source-resolver.d.ts +44 -0
  168. package/daemon/dist/domain/bundle-source-resolver.d.ts.map +1 -0
  169. package/daemon/dist/domain/bundle-source-resolver.js +158 -0
  170. package/daemon/dist/domain/bundle-source-resolver.js.map +1 -0
  171. package/daemon/dist/domain/bundle-types.d.ts +78 -0
  172. package/daemon/dist/domain/bundle-types.d.ts.map +1 -0
  173. package/daemon/dist/domain/bundle-types.js +218 -0
  174. package/daemon/dist/domain/bundle-types.js.map +1 -0
  175. package/daemon/dist/domain/chat-repository.d.ts +31 -0
  176. package/daemon/dist/domain/chat-repository.d.ts.map +1 -0
  177. package/daemon/dist/domain/chat-repository.js +105 -0
  178. package/daemon/dist/domain/chat-repository.js.map +1 -0
  179. package/daemon/dist/domain/checkpoint-store.d.ts +24 -0
  180. package/daemon/dist/domain/checkpoint-store.d.ts.map +1 -0
  181. package/daemon/dist/domain/checkpoint-store.js +55 -0
  182. package/daemon/dist/domain/checkpoint-store.js.map +1 -0
  183. package/daemon/dist/domain/claim-service.d.ts +68 -0
  184. package/daemon/dist/domain/claim-service.d.ts.map +1 -0
  185. package/daemon/dist/domain/claim-service.js +250 -0
  186. package/daemon/dist/domain/claim-service.js.map +1 -0
  187. package/daemon/dist/domain/codex-thread-id.d.ts +4 -0
  188. package/daemon/dist/domain/codex-thread-id.d.ts.map +1 -0
  189. package/daemon/dist/domain/codex-thread-id.js +65 -0
  190. package/daemon/dist/domain/codex-thread-id.js.map +1 -0
  191. package/daemon/dist/domain/conflict-detector.d.ts +33 -0
  192. package/daemon/dist/domain/conflict-detector.d.ts.map +1 -0
  193. package/daemon/dist/domain/conflict-detector.js +138 -0
  194. package/daemon/dist/domain/conflict-detector.js.map +1 -0
  195. package/daemon/dist/domain/context-monitor.d.ts +30 -0
  196. package/daemon/dist/domain/context-monitor.d.ts.map +1 -0
  197. package/daemon/dist/domain/context-monitor.js +71 -0
  198. package/daemon/dist/domain/context-monitor.js.map +1 -0
  199. package/daemon/dist/domain/context-usage-store.d.ts +58 -0
  200. package/daemon/dist/domain/context-usage-store.d.ts.map +1 -0
  201. package/daemon/dist/domain/context-usage-store.js +195 -0
  202. package/daemon/dist/domain/context-usage-store.js.map +1 -0
  203. package/daemon/dist/domain/demo-rig-selector.d.ts +11 -0
  204. package/daemon/dist/domain/demo-rig-selector.d.ts.map +1 -0
  205. package/daemon/dist/domain/demo-rig-selector.js +21 -0
  206. package/daemon/dist/domain/demo-rig-selector.js.map +1 -0
  207. package/daemon/dist/domain/discovery-coordinator.d.ts +28 -0
  208. package/daemon/dist/domain/discovery-coordinator.d.ts.map +1 -0
  209. package/daemon/dist/domain/discovery-coordinator.js +107 -0
  210. package/daemon/dist/domain/discovery-coordinator.js.map +1 -0
  211. package/daemon/dist/domain/discovery-repository.d.ts +31 -0
  212. package/daemon/dist/domain/discovery-repository.d.ts.map +1 -0
  213. package/daemon/dist/domain/discovery-repository.js +75 -0
  214. package/daemon/dist/domain/discovery-repository.js.map +1 -0
  215. package/daemon/dist/domain/discovery-types.d.ts +27 -0
  216. package/daemon/dist/domain/discovery-types.d.ts.map +1 -0
  217. package/daemon/dist/domain/discovery-types.js +2 -0
  218. package/daemon/dist/domain/discovery-types.js.map +1 -0
  219. package/daemon/dist/domain/draft-rig-generator.d.ts +7 -0
  220. package/daemon/dist/domain/draft-rig-generator.d.ts.map +1 -0
  221. package/daemon/dist/domain/draft-rig-generator.js +87 -0
  222. package/daemon/dist/domain/draft-rig-generator.js.map +1 -0
  223. package/daemon/dist/domain/errors.d.ts +4 -0
  224. package/daemon/dist/domain/errors.d.ts.map +1 -0
  225. package/daemon/dist/domain/errors.js +7 -0
  226. package/daemon/dist/domain/errors.js.map +1 -0
  227. package/daemon/dist/domain/event-bus.d.ts +32 -0
  228. package/daemon/dist/domain/event-bus.d.ts.map +1 -0
  229. package/daemon/dist/domain/event-bus.js +82 -0
  230. package/daemon/dist/domain/event-bus.js.map +1 -0
  231. package/daemon/dist/domain/external-install-executor.d.ts +47 -0
  232. package/daemon/dist/domain/external-install-executor.d.ts.map +1 -0
  233. package/daemon/dist/domain/external-install-executor.js +87 -0
  234. package/daemon/dist/domain/external-install-executor.js.map +1 -0
  235. package/daemon/dist/domain/external-install-planner.d.ts +41 -0
  236. package/daemon/dist/domain/external-install-planner.d.ts.map +1 -0
  237. package/daemon/dist/domain/external-install-planner.js +83 -0
  238. package/daemon/dist/domain/external-install-planner.js.map +1 -0
  239. package/daemon/dist/domain/graph-projection.d.ts +60 -0
  240. package/daemon/dist/domain/graph-projection.d.ts.map +1 -0
  241. package/daemon/dist/domain/graph-projection.js +95 -0
  242. package/daemon/dist/domain/graph-projection.js.map +1 -0
  243. package/daemon/dist/domain/history-query.d.ts +34 -0
  244. package/daemon/dist/domain/history-query.d.ts.map +1 -0
  245. package/daemon/dist/domain/history-query.js +119 -0
  246. package/daemon/dist/domain/history-query.js.map +1 -0
  247. package/daemon/dist/domain/install-engine.d.ts +33 -0
  248. package/daemon/dist/domain/install-engine.d.ts.map +1 -0
  249. package/daemon/dist/domain/install-engine.js +154 -0
  250. package/daemon/dist/domain/install-engine.js.map +1 -0
  251. package/daemon/dist/domain/install-planner.d.ts +38 -0
  252. package/daemon/dist/domain/install-planner.d.ts.map +1 -0
  253. package/daemon/dist/domain/install-planner.js +243 -0
  254. package/daemon/dist/domain/install-planner.js.map +1 -0
  255. package/daemon/dist/domain/install-policy.d.ts +20 -0
  256. package/daemon/dist/domain/install-policy.d.ts.map +1 -0
  257. package/daemon/dist/domain/install-policy.js +56 -0
  258. package/daemon/dist/domain/install-policy.js.map +1 -0
  259. package/daemon/dist/domain/install-repository.d.ts +55 -0
  260. package/daemon/dist/domain/install-repository.d.ts.map +1 -0
  261. package/daemon/dist/domain/install-repository.js +122 -0
  262. package/daemon/dist/domain/install-repository.js.map +1 -0
  263. package/daemon/dist/domain/install-verifier.d.ts +31 -0
  264. package/daemon/dist/domain/install-verifier.d.ts.map +1 -0
  265. package/daemon/dist/domain/install-verifier.js +141 -0
  266. package/daemon/dist/domain/install-verifier.js.map +1 -0
  267. package/daemon/dist/domain/native-resume-probe.d.ts +19 -0
  268. package/daemon/dist/domain/native-resume-probe.d.ts.map +1 -0
  269. package/daemon/dist/domain/native-resume-probe.js +113 -0
  270. package/daemon/dist/domain/native-resume-probe.js.map +1 -0
  271. package/daemon/dist/domain/node-inventory.d.ts +33 -0
  272. package/daemon/dist/domain/node-inventory.d.ts.map +1 -0
  273. package/daemon/dist/domain/node-inventory.js +314 -0
  274. package/daemon/dist/domain/node-inventory.js.map +1 -0
  275. package/daemon/dist/domain/node-launcher.d.ts +42 -0
  276. package/daemon/dist/domain/node-launcher.d.ts.map +1 -0
  277. package/daemon/dist/domain/node-launcher.js +122 -0
  278. package/daemon/dist/domain/node-launcher.js.map +1 -0
  279. package/daemon/dist/domain/package-install-service.d.ts +64 -0
  280. package/daemon/dist/domain/package-install-service.d.ts.map +1 -0
  281. package/daemon/dist/domain/package-install-service.js +80 -0
  282. package/daemon/dist/domain/package-install-service.js.map +1 -0
  283. package/daemon/dist/domain/package-manifest.d.ts +93 -0
  284. package/daemon/dist/domain/package-manifest.d.ts.map +1 -0
  285. package/daemon/dist/domain/package-manifest.js +407 -0
  286. package/daemon/dist/domain/package-manifest.js.map +1 -0
  287. package/daemon/dist/domain/package-repository.d.ts +33 -0
  288. package/daemon/dist/domain/package-repository.d.ts.map +1 -0
  289. package/daemon/dist/domain/package-repository.js +63 -0
  290. package/daemon/dist/domain/package-repository.js.map +1 -0
  291. package/daemon/dist/domain/package-resolve-helper.d.ts +19 -0
  292. package/daemon/dist/domain/package-resolve-helper.d.ts.map +1 -0
  293. package/daemon/dist/domain/package-resolve-helper.js +47 -0
  294. package/daemon/dist/domain/package-resolve-helper.js.map +1 -0
  295. package/daemon/dist/domain/package-resolver.d.ts +19 -0
  296. package/daemon/dist/domain/package-resolver.d.ts.map +1 -0
  297. package/daemon/dist/domain/package-resolver.js +35 -0
  298. package/daemon/dist/domain/package-resolver.js.map +1 -0
  299. package/daemon/dist/domain/path-safety.d.ts +8 -0
  300. package/daemon/dist/domain/path-safety.d.ts.map +1 -0
  301. package/daemon/dist/domain/path-safety.js +24 -0
  302. package/daemon/dist/domain/path-safety.js.map +1 -0
  303. package/daemon/dist/domain/pod-bundle-assembler.d.ts +43 -0
  304. package/daemon/dist/domain/pod-bundle-assembler.d.ts.map +1 -0
  305. package/daemon/dist/domain/pod-bundle-assembler.js +198 -0
  306. package/daemon/dist/domain/pod-bundle-assembler.js.map +1 -0
  307. package/daemon/dist/domain/pod-repository.d.ts +47 -0
  308. package/daemon/dist/domain/pod-repository.d.ts.map +1 -0
  309. package/daemon/dist/domain/pod-repository.js +90 -0
  310. package/daemon/dist/domain/pod-repository.js.map +1 -0
  311. package/daemon/dist/domain/profile-resolver.d.ts +51 -0
  312. package/daemon/dist/domain/profile-resolver.d.ts.map +1 -0
  313. package/daemon/dist/domain/profile-resolver.js +201 -0
  314. package/daemon/dist/domain/profile-resolver.js.map +1 -0
  315. package/daemon/dist/domain/projection-planner.d.ts +54 -0
  316. package/daemon/dist/domain/projection-planner.d.ts.map +1 -0
  317. package/daemon/dist/domain/projection-planner.js +128 -0
  318. package/daemon/dist/domain/projection-planner.js.map +1 -0
  319. package/daemon/dist/domain/ps-projection.d.ts +22 -0
  320. package/daemon/dist/domain/ps-projection.d.ts.map +1 -0
  321. package/daemon/dist/domain/ps-projection.js +65 -0
  322. package/daemon/dist/domain/ps-projection.js.map +1 -0
  323. package/daemon/dist/domain/reconciler.d.ts +28 -0
  324. package/daemon/dist/domain/reconciler.d.ts.map +1 -0
  325. package/daemon/dist/domain/reconciler.js +66 -0
  326. package/daemon/dist/domain/reconciler.js.map +1 -0
  327. package/daemon/dist/domain/requirements-probe.d.ts +63 -0
  328. package/daemon/dist/domain/requirements-probe.d.ts.map +1 -0
  329. package/daemon/dist/domain/requirements-probe.js +172 -0
  330. package/daemon/dist/domain/requirements-probe.js.map +1 -0
  331. package/daemon/dist/domain/restore-orchestrator.d.ts +59 -0
  332. package/daemon/dist/domain/restore-orchestrator.d.ts.map +1 -0
  333. package/daemon/dist/domain/restore-orchestrator.js +477 -0
  334. package/daemon/dist/domain/restore-orchestrator.js.map +1 -0
  335. package/daemon/dist/domain/resume-metadata-refresher.d.ts +42 -0
  336. package/daemon/dist/domain/resume-metadata-refresher.d.ts.map +1 -0
  337. package/daemon/dist/domain/resume-metadata-refresher.js +167 -0
  338. package/daemon/dist/domain/resume-metadata-refresher.js.map +1 -0
  339. package/daemon/dist/domain/rig-expansion-service.d.ts +27 -0
  340. package/daemon/dist/domain/rig-expansion-service.d.ts.map +1 -0
  341. package/daemon/dist/domain/rig-expansion-service.js +121 -0
  342. package/daemon/dist/domain/rig-expansion-service.js.map +1 -0
  343. package/daemon/dist/domain/rig-lifecycle-service.d.ts +100 -0
  344. package/daemon/dist/domain/rig-lifecycle-service.d.ts.map +1 -0
  345. package/daemon/dist/domain/rig-lifecycle-service.js +421 -0
  346. package/daemon/dist/domain/rig-lifecycle-service.js.map +1 -0
  347. package/daemon/dist/domain/rig-repository.d.ts +44 -0
  348. package/daemon/dist/domain/rig-repository.d.ts.map +1 -0
  349. package/daemon/dist/domain/rig-repository.js +165 -0
  350. package/daemon/dist/domain/rig-repository.js.map +1 -0
  351. package/daemon/dist/domain/rig-teardown.d.ts +51 -0
  352. package/daemon/dist/domain/rig-teardown.d.ts.map +1 -0
  353. package/daemon/dist/domain/rig-teardown.js +142 -0
  354. package/daemon/dist/domain/rig-teardown.js.map +1 -0
  355. package/daemon/dist/domain/rigspec-codec.d.ts +17 -0
  356. package/daemon/dist/domain/rigspec-codec.d.ts.map +1 -0
  357. package/daemon/dist/domain/rigspec-codec.js +141 -0
  358. package/daemon/dist/domain/rigspec-codec.js.map +1 -0
  359. package/daemon/dist/domain/rigspec-exporter.d.ts +21 -0
  360. package/daemon/dist/domain/rigspec-exporter.d.ts.map +1 -0
  361. package/daemon/dist/domain/rigspec-exporter.js +186 -0
  362. package/daemon/dist/domain/rigspec-exporter.js.map +1 -0
  363. package/daemon/dist/domain/rigspec-instantiator.d.ts +133 -0
  364. package/daemon/dist/domain/rigspec-instantiator.d.ts.map +1 -0
  365. package/daemon/dist/domain/rigspec-instantiator.js +1104 -0
  366. package/daemon/dist/domain/rigspec-instantiator.js.map +1 -0
  367. package/daemon/dist/domain/rigspec-preflight.d.ts +38 -0
  368. package/daemon/dist/domain/rigspec-preflight.d.ts.map +1 -0
  369. package/daemon/dist/domain/rigspec-preflight.js +198 -0
  370. package/daemon/dist/domain/rigspec-preflight.js.map +1 -0
  371. package/daemon/dist/domain/rigspec-schema.d.ts +25 -0
  372. package/daemon/dist/domain/rigspec-schema.d.ts.map +1 -0
  373. package/daemon/dist/domain/rigspec-schema.js +516 -0
  374. package/daemon/dist/domain/rigspec-schema.js.map +1 -0
  375. package/daemon/dist/domain/role-resolver.d.ts +21 -0
  376. package/daemon/dist/domain/role-resolver.d.ts.map +1 -0
  377. package/daemon/dist/domain/role-resolver.js +83 -0
  378. package/daemon/dist/domain/role-resolver.js.map +1 -0
  379. package/daemon/dist/domain/runtime-adapter.d.ts +74 -0
  380. package/daemon/dist/domain/runtime-adapter.d.ts.map +1 -0
  381. package/daemon/dist/domain/runtime-adapter.js +14 -0
  382. package/daemon/dist/domain/runtime-adapter.js.map +1 -0
  383. package/daemon/dist/domain/runtime-verifier.d.ts +45 -0
  384. package/daemon/dist/domain/runtime-verifier.d.ts.map +1 -0
  385. package/daemon/dist/domain/runtime-verifier.js +148 -0
  386. package/daemon/dist/domain/runtime-verifier.js.map +1 -0
  387. package/daemon/dist/domain/self-attach-service.d.ts +90 -0
  388. package/daemon/dist/domain/self-attach-service.d.ts.map +1 -0
  389. package/daemon/dist/domain/self-attach-service.js +202 -0
  390. package/daemon/dist/domain/self-attach-service.js.map +1 -0
  391. package/daemon/dist/domain/session-enricher.d.ts +29 -0
  392. package/daemon/dist/domain/session-enricher.d.ts.map +1 -0
  393. package/daemon/dist/domain/session-enricher.js +54 -0
  394. package/daemon/dist/domain/session-enricher.js.map +1 -0
  395. package/daemon/dist/domain/session-fingerprinter.d.ts +53 -0
  396. package/daemon/dist/domain/session-fingerprinter.d.ts.map +1 -0
  397. package/daemon/dist/domain/session-fingerprinter.js +118 -0
  398. package/daemon/dist/domain/session-fingerprinter.js.map +1 -0
  399. package/daemon/dist/domain/session-name.d.ts +28 -0
  400. package/daemon/dist/domain/session-name.d.ts.map +1 -0
  401. package/daemon/dist/domain/session-name.js +85 -0
  402. package/daemon/dist/domain/session-name.js.map +1 -0
  403. package/daemon/dist/domain/session-registry.d.ts +32 -0
  404. package/daemon/dist/domain/session-registry.d.ts.map +1 -0
  405. package/daemon/dist/domain/session-registry.js +142 -0
  406. package/daemon/dist/domain/session-registry.js.map +1 -0
  407. package/daemon/dist/domain/session-transport.d.ts +79 -0
  408. package/daemon/dist/domain/session-transport.d.ts.map +1 -0
  409. package/daemon/dist/domain/session-transport.js +403 -0
  410. package/daemon/dist/domain/session-transport.js.map +1 -0
  411. package/daemon/dist/domain/snapshot-capture.d.ts +27 -0
  412. package/daemon/dist/domain/snapshot-capture.d.ts.map +1 -0
  413. package/daemon/dist/domain/snapshot-capture.js +89 -0
  414. package/daemon/dist/domain/snapshot-capture.js.map +1 -0
  415. package/daemon/dist/domain/snapshot-repository.d.ts +19 -0
  416. package/daemon/dist/domain/snapshot-repository.d.ts.map +1 -0
  417. package/daemon/dist/domain/snapshot-repository.js +77 -0
  418. package/daemon/dist/domain/snapshot-repository.js.map +1 -0
  419. package/daemon/dist/domain/spec-library-service.d.ts +45 -0
  420. package/daemon/dist/domain/spec-library-service.d.ts.map +1 -0
  421. package/daemon/dist/domain/spec-library-service.js +197 -0
  422. package/daemon/dist/domain/spec-library-service.js.map +1 -0
  423. package/daemon/dist/domain/spec-review-service.d.ts +104 -0
  424. package/daemon/dist/domain/spec-review-service.d.ts.map +1 -0
  425. package/daemon/dist/domain/spec-review-service.js +220 -0
  426. package/daemon/dist/domain/spec-review-service.js.map +1 -0
  427. package/daemon/dist/domain/spec-validation-service.d.ts +21 -0
  428. package/daemon/dist/domain/spec-validation-service.d.ts.map +1 -0
  429. package/daemon/dist/domain/spec-validation-service.js +34 -0
  430. package/daemon/dist/domain/spec-validation-service.js.map +1 -0
  431. package/daemon/dist/domain/startup-orchestrator.d.ts +83 -0
  432. package/daemon/dist/domain/startup-orchestrator.d.ts.map +1 -0
  433. package/daemon/dist/domain/startup-orchestrator.js +252 -0
  434. package/daemon/dist/domain/startup-orchestrator.js.map +1 -0
  435. package/daemon/dist/domain/startup-resolver.d.ts +28 -0
  436. package/daemon/dist/domain/startup-resolver.d.ts.map +1 -0
  437. package/daemon/dist/domain/startup-resolver.js +57 -0
  438. package/daemon/dist/domain/startup-resolver.js.map +1 -0
  439. package/daemon/dist/domain/startup-validation.d.ts +31 -0
  440. package/daemon/dist/domain/startup-validation.d.ts.map +1 -0
  441. package/daemon/dist/domain/startup-validation.js +155 -0
  442. package/daemon/dist/domain/startup-validation.js.map +1 -0
  443. package/daemon/dist/domain/tmux-discovery-scanner.d.ts +29 -0
  444. package/daemon/dist/domain/tmux-discovery-scanner.d.ts.map +1 -0
  445. package/daemon/dist/domain/tmux-discovery-scanner.js +50 -0
  446. package/daemon/dist/domain/tmux-discovery-scanner.js.map +1 -0
  447. package/daemon/dist/domain/transcript-capture.d.ts +7 -0
  448. package/daemon/dist/domain/transcript-capture.d.ts.map +1 -0
  449. package/daemon/dist/domain/transcript-capture.js +15 -0
  450. package/daemon/dist/domain/transcript-capture.js.map +1 -0
  451. package/daemon/dist/domain/transcript-store.d.ts +19 -0
  452. package/daemon/dist/domain/transcript-store.d.ts.map +1 -0
  453. package/daemon/dist/domain/transcript-store.js +280 -0
  454. package/daemon/dist/domain/transcript-store.js.map +1 -0
  455. package/daemon/dist/domain/types.d.ts +720 -0
  456. package/daemon/dist/domain/types.d.ts.map +1 -0
  457. package/daemon/dist/domain/types.js +2 -0
  458. package/daemon/dist/domain/types.js.map +1 -0
  459. package/daemon/dist/domain/up-command-router.d.ts +25 -0
  460. package/daemon/dist/domain/up-command-router.d.ts.map +1 -0
  461. package/daemon/dist/domain/up-command-router.js +116 -0
  462. package/daemon/dist/domain/up-command-router.js.map +1 -0
  463. package/daemon/dist/domain/whoami-service.d.ts +86 -0
  464. package/daemon/dist/domain/whoami-service.d.ts.map +1 -0
  465. package/daemon/dist/domain/whoami-service.js +195 -0
  466. package/daemon/dist/domain/whoami-service.js.map +1 -0
  467. package/daemon/dist/index.d.ts +2 -0
  468. package/daemon/dist/index.d.ts.map +1 -0
  469. package/daemon/dist/index.js +21 -0
  470. package/daemon/dist/index.js.map +1 -0
  471. package/daemon/dist/openrig-compat.d.ts +9 -0
  472. package/daemon/dist/openrig-compat.d.ts.map +1 -0
  473. package/daemon/dist/openrig-compat.js +57 -0
  474. package/daemon/dist/openrig-compat.js.map +1 -0
  475. package/daemon/dist/routes/adapters.d.ts +3 -0
  476. package/daemon/dist/routes/adapters.d.ts.map +1 -0
  477. package/daemon/dist/routes/adapters.js +20 -0
  478. package/daemon/dist/routes/adapters.js.map +1 -0
  479. package/daemon/dist/routes/agents.d.ts +3 -0
  480. package/daemon/dist/routes/agents.d.ts.map +1 -0
  481. package/daemon/dist/routes/agents.js +13 -0
  482. package/daemon/dist/routes/agents.js.map +1 -0
  483. package/daemon/dist/routes/ask.d.ts +3 -0
  484. package/daemon/dist/routes/ask.d.ts.map +1 -0
  485. package/daemon/dist/routes/ask.js +15 -0
  486. package/daemon/dist/routes/ask.js.map +1 -0
  487. package/daemon/dist/routes/bootstrap.d.ts +3 -0
  488. package/daemon/dist/routes/bootstrap.d.ts.map +1 -0
  489. package/daemon/dist/routes/bootstrap.js +137 -0
  490. package/daemon/dist/routes/bootstrap.js.map +1 -0
  491. package/daemon/dist/routes/bundles.d.ts +3 -0
  492. package/daemon/dist/routes/bundles.d.ts.map +1 -0
  493. package/daemon/dist/routes/bundles.js +334 -0
  494. package/daemon/dist/routes/bundles.js.map +1 -0
  495. package/daemon/dist/routes/chat.d.ts +3 -0
  496. package/daemon/dist/routes/chat.d.ts.map +1 -0
  497. package/daemon/dist/routes/chat.js +138 -0
  498. package/daemon/dist/routes/chat.js.map +1 -0
  499. package/daemon/dist/routes/discovery.d.ts +3 -0
  500. package/daemon/dist/routes/discovery.d.ts.map +1 -0
  501. package/daemon/dist/routes/discovery.js +200 -0
  502. package/daemon/dist/routes/discovery.js.map +1 -0
  503. package/daemon/dist/routes/down.d.ts +3 -0
  504. package/daemon/dist/routes/down.d.ts.map +1 -0
  505. package/daemon/dist/routes/down.js +55 -0
  506. package/daemon/dist/routes/down.js.map +1 -0
  507. package/daemon/dist/routes/events.d.ts +3 -0
  508. package/daemon/dist/routes/events.d.ts.map +1 -0
  509. package/daemon/dist/routes/events.js +71 -0
  510. package/daemon/dist/routes/events.js.map +1 -0
  511. package/daemon/dist/routes/packages.d.ts +3 -0
  512. package/daemon/dist/routes/packages.d.ts.map +1 -0
  513. package/daemon/dist/routes/packages.js +341 -0
  514. package/daemon/dist/routes/packages.js.map +1 -0
  515. package/daemon/dist/routes/ps.d.ts +3 -0
  516. package/daemon/dist/routes/ps.d.ts.map +1 -0
  517. package/daemon/dist/routes/ps.js +7 -0
  518. package/daemon/dist/routes/ps.js.map +1 -0
  519. package/daemon/dist/routes/rigs.d.ts +3 -0
  520. package/daemon/dist/routes/rigs.d.ts.map +1 -0
  521. package/daemon/dist/routes/rigs.js +329 -0
  522. package/daemon/dist/routes/rigs.js.map +1 -0
  523. package/daemon/dist/routes/rigspec.d.ts +6 -0
  524. package/daemon/dist/routes/rigspec.d.ts.map +1 -0
  525. package/daemon/dist/routes/rigspec.js +182 -0
  526. package/daemon/dist/routes/rigspec.js.map +1 -0
  527. package/daemon/dist/routes/sessions.d.ts +5 -0
  528. package/daemon/dist/routes/sessions.d.ts.map +1 -0
  529. package/daemon/dist/routes/sessions.js +125 -0
  530. package/daemon/dist/routes/sessions.js.map +1 -0
  531. package/daemon/dist/routes/snapshots.d.ts +4 -0
  532. package/daemon/dist/routes/snapshots.d.ts.map +1 -0
  533. package/daemon/dist/routes/snapshots.js +77 -0
  534. package/daemon/dist/routes/snapshots.js.map +1 -0
  535. package/daemon/dist/routes/spec-library.d.ts +3 -0
  536. package/daemon/dist/routes/spec-library.d.ts.map +1 -0
  537. package/daemon/dist/routes/spec-library.js +95 -0
  538. package/daemon/dist/routes/spec-library.js.map +1 -0
  539. package/daemon/dist/routes/spec-review.d.ts +3 -0
  540. package/daemon/dist/routes/spec-review.d.ts.map +1 -0
  541. package/daemon/dist/routes/spec-review.js +41 -0
  542. package/daemon/dist/routes/spec-review.js.map +1 -0
  543. package/daemon/dist/routes/transcripts.d.ts +3 -0
  544. package/daemon/dist/routes/transcripts.d.ts.map +1 -0
  545. package/daemon/dist/routes/transcripts.js +130 -0
  546. package/daemon/dist/routes/transcripts.js.map +1 -0
  547. package/daemon/dist/routes/transport.d.ts +3 -0
  548. package/daemon/dist/routes/transport.d.ts.map +1 -0
  549. package/daemon/dist/routes/transport.js +89 -0
  550. package/daemon/dist/routes/transport.js.map +1 -0
  551. package/daemon/dist/routes/up.d.ts +3 -0
  552. package/daemon/dist/routes/up.d.ts.map +1 -0
  553. package/daemon/dist/routes/up.js +175 -0
  554. package/daemon/dist/routes/up.js.map +1 -0
  555. package/daemon/dist/routes/whoami.d.ts +3 -0
  556. package/daemon/dist/routes/whoami.d.ts.map +1 -0
  557. package/daemon/dist/routes/whoami.js +33 -0
  558. package/daemon/dist/routes/whoami.js.map +1 -0
  559. package/daemon/dist/seed.d.ts +2 -0
  560. package/daemon/dist/seed.d.ts.map +1 -0
  561. package/daemon/dist/seed.js +41 -0
  562. package/daemon/dist/seed.js.map +1 -0
  563. package/daemon/dist/server.d.ts +78 -0
  564. package/daemon/dist/server.d.ts.map +1 -0
  565. package/daemon/dist/server.js +206 -0
  566. package/daemon/dist/server.js.map +1 -0
  567. package/daemon/dist/startup.d.ts +21 -0
  568. package/daemon/dist/startup.d.ts.map +1 -0
  569. package/daemon/dist/startup.js +348 -0
  570. package/daemon/dist/startup.js.map +1 -0
  571. package/daemon/specs/adversarial-review.yaml +40 -0
  572. package/daemon/specs/agents/analyst/agent.yaml +21 -0
  573. package/daemon/specs/agents/analyst/guidance/role.md +27 -0
  574. package/daemon/specs/agents/design/agent.yaml +21 -0
  575. package/daemon/specs/agents/design/guidance/role.md +26 -0
  576. package/daemon/specs/agents/impl/agent.yaml +21 -0
  577. package/daemon/specs/agents/impl/guidance/role.md +27 -0
  578. package/daemon/specs/agents/lead/agent.yaml +21 -0
  579. package/daemon/specs/agents/lead/guidance/role.md +33 -0
  580. package/daemon/specs/agents/qa/agent.yaml +21 -0
  581. package/daemon/specs/agents/qa/guidance/role.md +26 -0
  582. package/daemon/specs/agents/reviewer/agent.yaml +21 -0
  583. package/daemon/specs/agents/reviewer/guidance/role.md +26 -0
  584. package/daemon/specs/agents/synthesizer/agent.yaml +21 -0
  585. package/daemon/specs/agents/synthesizer/guidance/role.md +26 -0
  586. package/daemon/specs/implementation-pair.yaml +27 -0
  587. package/daemon/specs/product-team.yaml +90 -0
  588. package/daemon/specs/research-team.yaml +40 -0
  589. package/dist/bin-wrapper.d.ts +5 -0
  590. package/dist/bin-wrapper.d.ts.map +1 -0
  591. package/dist/bin-wrapper.js +32 -0
  592. package/dist/bin-wrapper.js.map +1 -0
  593. package/dist/client.d.ts +21 -0
  594. package/dist/client.d.ts.map +1 -0
  595. package/dist/client.js +76 -0
  596. package/dist/client.js.map +1 -0
  597. package/dist/commands/adopt.d.ts +6 -0
  598. package/dist/commands/adopt.d.ts.map +1 -0
  599. package/dist/commands/adopt.js +212 -0
  600. package/dist/commands/adopt.js.map +1 -0
  601. package/dist/commands/agent.d.ts +7 -0
  602. package/dist/commands/agent.d.ts.map +1 -0
  603. package/dist/commands/agent.js +79 -0
  604. package/dist/commands/agent.js.map +1 -0
  605. package/dist/commands/ask.d.ts +4 -0
  606. package/dist/commands/ask.d.ts.map +1 -0
  607. package/dist/commands/ask.js +92 -0
  608. package/dist/commands/ask.js.map +1 -0
  609. package/dist/commands/attach.d.ts +14 -0
  610. package/dist/commands/attach.d.ts.map +1 -0
  611. package/dist/commands/attach.js +146 -0
  612. package/dist/commands/attach.js.map +1 -0
  613. package/dist/commands/bind.d.ts +4 -0
  614. package/dist/commands/bind.d.ts.map +1 -0
  615. package/dist/commands/bind.js +70 -0
  616. package/dist/commands/bind.js.map +1 -0
  617. package/dist/commands/bootstrap.d.ts +4 -0
  618. package/dist/commands/bootstrap.d.ts.map +1 -0
  619. package/dist/commands/bootstrap.js +141 -0
  620. package/dist/commands/bootstrap.js.map +1 -0
  621. package/dist/commands/broadcast.d.ts +4 -0
  622. package/dist/commands/broadcast.d.ts.map +1 -0
  623. package/dist/commands/broadcast.js +71 -0
  624. package/dist/commands/broadcast.js.map +1 -0
  625. package/dist/commands/bundle.d.ts +4 -0
  626. package/dist/commands/bundle.d.ts.map +1 -0
  627. package/dist/commands/bundle.js +129 -0
  628. package/dist/commands/bundle.js.map +1 -0
  629. package/dist/commands/capture.d.ts +4 -0
  630. package/dist/commands/capture.d.ts.map +1 -0
  631. package/dist/commands/capture.js +80 -0
  632. package/dist/commands/capture.js.map +1 -0
  633. package/dist/commands/chatroom.d.ts +4 -0
  634. package/dist/commands/chatroom.d.ts.map +1 -0
  635. package/dist/commands/chatroom.js +314 -0
  636. package/dist/commands/chatroom.js.map +1 -0
  637. package/dist/commands/claim.d.ts +4 -0
  638. package/dist/commands/claim.d.ts.map +1 -0
  639. package/dist/commands/claim.js +40 -0
  640. package/dist/commands/claim.js.map +1 -0
  641. package/dist/commands/config.d.ts +3 -0
  642. package/dist/commands/config.d.ts.map +1 -0
  643. package/dist/commands/config.js +74 -0
  644. package/dist/commands/config.js.map +1 -0
  645. package/dist/commands/daemon.d.ts +11 -0
  646. package/dist/commands/daemon.d.ts.map +1 -0
  647. package/dist/commands/daemon.js +167 -0
  648. package/dist/commands/daemon.js.map +1 -0
  649. package/dist/commands/discover.d.ts +4 -0
  650. package/dist/commands/discover.d.ts.map +1 -0
  651. package/dist/commands/discover.js +60 -0
  652. package/dist/commands/discover.js.map +1 -0
  653. package/dist/commands/doctor.d.ts +25 -0
  654. package/dist/commands/doctor.d.ts.map +1 -0
  655. package/dist/commands/doctor.js +155 -0
  656. package/dist/commands/doctor.js.map +1 -0
  657. package/dist/commands/down.d.ts +9 -0
  658. package/dist/commands/down.d.ts.map +1 -0
  659. package/dist/commands/down.js +96 -0
  660. package/dist/commands/down.js.map +1 -0
  661. package/dist/commands/expand.d.ts +4 -0
  662. package/dist/commands/expand.d.ts.map +1 -0
  663. package/dist/commands/expand.js +98 -0
  664. package/dist/commands/expand.js.map +1 -0
  665. package/dist/commands/export.d.ts +7 -0
  666. package/dist/commands/export.d.ts.map +1 -0
  667. package/dist/commands/export.js +46 -0
  668. package/dist/commands/export.js.map +1 -0
  669. package/dist/commands/import.d.ts +7 -0
  670. package/dist/commands/import.d.ts.map +1 -0
  671. package/dist/commands/import.js +157 -0
  672. package/dist/commands/import.js.map +1 -0
  673. package/dist/commands/launch.d.ts +4 -0
  674. package/dist/commands/launch.d.ts.map +1 -0
  675. package/dist/commands/launch.js +45 -0
  676. package/dist/commands/launch.js.map +1 -0
  677. package/dist/commands/mcp.d.ts +9 -0
  678. package/dist/commands/mcp.d.ts.map +1 -0
  679. package/dist/commands/mcp.js +52 -0
  680. package/dist/commands/mcp.js.map +1 -0
  681. package/dist/commands/package.d.ts +4 -0
  682. package/dist/commands/package.d.ts.map +1 -0
  683. package/dist/commands/package.js +234 -0
  684. package/dist/commands/package.js.map +1 -0
  685. package/dist/commands/preflight.d.ts +11 -0
  686. package/dist/commands/preflight.d.ts.map +1 -0
  687. package/dist/commands/preflight.js +53 -0
  688. package/dist/commands/preflight.js.map +1 -0
  689. package/dist/commands/ps.d.ts +9 -0
  690. package/dist/commands/ps.d.ts.map +1 -0
  691. package/dist/commands/ps.js +129 -0
  692. package/dist/commands/ps.js.map +1 -0
  693. package/dist/commands/release.d.ts +4 -0
  694. package/dist/commands/release.d.ts.map +1 -0
  695. package/dist/commands/release.js +69 -0
  696. package/dist/commands/release.js.map +1 -0
  697. package/dist/commands/remove.d.ts +4 -0
  698. package/dist/commands/remove.d.ts.map +1 -0
  699. package/dist/commands/remove.js +43 -0
  700. package/dist/commands/remove.js.map +1 -0
  701. package/dist/commands/requirements.d.ts +4 -0
  702. package/dist/commands/requirements.d.ts.map +1 -0
  703. package/dist/commands/requirements.js +66 -0
  704. package/dist/commands/requirements.js.map +1 -0
  705. package/dist/commands/restore.d.ts +4 -0
  706. package/dist/commands/restore.d.ts.map +1 -0
  707. package/dist/commands/restore.js +57 -0
  708. package/dist/commands/restore.js.map +1 -0
  709. package/dist/commands/rig.d.ts +7 -0
  710. package/dist/commands/rig.d.ts.map +1 -0
  711. package/dist/commands/rig.js +139 -0
  712. package/dist/commands/rig.js.map +1 -0
  713. package/dist/commands/send.d.ts +4 -0
  714. package/dist/commands/send.d.ts.map +1 -0
  715. package/dist/commands/send.js +59 -0
  716. package/dist/commands/send.js.map +1 -0
  717. package/dist/commands/shrink.d.ts +4 -0
  718. package/dist/commands/shrink.d.ts.map +1 -0
  719. package/dist/commands/shrink.js +53 -0
  720. package/dist/commands/shrink.js.map +1 -0
  721. package/dist/commands/snapshot.d.ts +4 -0
  722. package/dist/commands/snapshot.d.ts.map +1 -0
  723. package/dist/commands/snapshot.js +74 -0
  724. package/dist/commands/snapshot.js.map +1 -0
  725. package/dist/commands/specs.d.ts +22 -0
  726. package/dist/commands/specs.d.ts.map +1 -0
  727. package/dist/commands/specs.js +260 -0
  728. package/dist/commands/specs.js.map +1 -0
  729. package/dist/commands/status.d.ts +9 -0
  730. package/dist/commands/status.d.ts.map +1 -0
  731. package/dist/commands/status.js +68 -0
  732. package/dist/commands/status.js.map +1 -0
  733. package/dist/commands/transcript.d.ts +4 -0
  734. package/dist/commands/transcript.d.ts.map +1 -0
  735. package/dist/commands/transcript.js +77 -0
  736. package/dist/commands/transcript.js.map +1 -0
  737. package/dist/commands/ui.d.ts +8 -0
  738. package/dist/commands/ui.d.ts.map +1 -0
  739. package/dist/commands/ui.js +57 -0
  740. package/dist/commands/ui.js.map +1 -0
  741. package/dist/commands/unclaim.d.ts +4 -0
  742. package/dist/commands/unclaim.d.ts.map +1 -0
  743. package/dist/commands/unclaim.js +46 -0
  744. package/dist/commands/unclaim.js.map +1 -0
  745. package/dist/commands/up.d.ts +7 -0
  746. package/dist/commands/up.d.ts.map +1 -0
  747. package/dist/commands/up.js +195 -0
  748. package/dist/commands/up.js.map +1 -0
  749. package/dist/commands/whoami.d.ts +24 -0
  750. package/dist/commands/whoami.d.ts.map +1 -0
  751. package/dist/commands/whoami.js +196 -0
  752. package/dist/commands/whoami.js.map +1 -0
  753. package/dist/config-store.d.ts +23 -0
  754. package/dist/config-store.d.ts.map +1 -0
  755. package/dist/config-store.js +141 -0
  756. package/dist/config-store.js.map +1 -0
  757. package/dist/daemon-lifecycle.d.ts +60 -0
  758. package/dist/daemon-lifecycle.d.ts.map +1 -0
  759. package/dist/daemon-lifecycle.js +225 -0
  760. package/dist/daemon-lifecycle.js.map +1 -0
  761. package/dist/index.d.ts +51 -0
  762. package/dist/index.d.ts.map +1 -0
  763. package/dist/index.js +103 -0
  764. package/dist/index.js.map +1 -0
  765. package/dist/mcp-server.d.ts +9 -0
  766. package/dist/mcp-server.d.ts.map +1 -0
  767. package/dist/mcp-server.js +308 -0
  768. package/dist/mcp-server.js.map +1 -0
  769. package/dist/openrig-compat.d.ts +9 -0
  770. package/dist/openrig-compat.d.ts.map +1 -0
  771. package/dist/openrig-compat.js +57 -0
  772. package/dist/openrig-compat.js.map +1 -0
  773. package/dist/system-preflight.d.ts +36 -0
  774. package/dist/system-preflight.d.ts.map +1 -0
  775. package/dist/system-preflight.js +136 -0
  776. package/dist/system-preflight.js.map +1 -0
  777. package/package.json +46 -3
  778. package/ui/dist/assets/index-B09doO8H.js +139 -0
  779. package/ui/dist/assets/index-CrjgHtlk.js +224 -0
  780. package/ui/dist/assets/index-DGPFTQEV.css +1 -0
  781. package/ui/dist/assets/inter-cyrillic-400-normal-HOLc17fK.woff +0 -0
  782. package/ui/dist/assets/inter-cyrillic-400-normal-obahsSVq.woff2 +0 -0
  783. package/ui/dist/assets/inter-cyrillic-500-normal-BasfLYem.woff2 +0 -0
  784. package/ui/dist/assets/inter-cyrillic-500-normal-CxZf_p3X.woff +0 -0
  785. package/ui/dist/assets/inter-cyrillic-600-normal-4D_pXhcN.woff +0 -0
  786. package/ui/dist/assets/inter-cyrillic-600-normal-CWCymEST.woff2 +0 -0
  787. package/ui/dist/assets/inter-cyrillic-700-normal-CjBOestx.woff2 +0 -0
  788. package/ui/dist/assets/inter-cyrillic-700-normal-DrXBdSj3.woff +0 -0
  789. package/ui/dist/assets/inter-cyrillic-ext-400-normal-BQZuk6qB.woff2 +0 -0
  790. package/ui/dist/assets/inter-cyrillic-ext-400-normal-DQukG94-.woff +0 -0
  791. package/ui/dist/assets/inter-cyrillic-ext-500-normal-B0yAr1jD.woff2 +0 -0
  792. package/ui/dist/assets/inter-cyrillic-ext-500-normal-BmqWE9Dz.woff +0 -0
  793. package/ui/dist/assets/inter-cyrillic-ext-600-normal-Bcila6Z-.woff +0 -0
  794. package/ui/dist/assets/inter-cyrillic-ext-600-normal-Dfes3d0z.woff2 +0 -0
  795. package/ui/dist/assets/inter-cyrillic-ext-700-normal-BjwYoWNd.woff2 +0 -0
  796. package/ui/dist/assets/inter-cyrillic-ext-700-normal-LO58E6JB.woff +0 -0
  797. package/ui/dist/assets/inter-greek-400-normal-B4URO6DV.woff2 +0 -0
  798. package/ui/dist/assets/inter-greek-400-normal-q2sYcFCs.woff +0 -0
  799. package/ui/dist/assets/inter-greek-500-normal-BIZE56-Y.woff2 +0 -0
  800. package/ui/dist/assets/inter-greek-500-normal-Xzm54t5V.woff +0 -0
  801. package/ui/dist/assets/inter-greek-600-normal-BZpKdvQh.woff +0 -0
  802. package/ui/dist/assets/inter-greek-600-normal-plRanbMR.woff2 +0 -0
  803. package/ui/dist/assets/inter-greek-700-normal-BUv2fZ6O.woff +0 -0
  804. package/ui/dist/assets/inter-greek-700-normal-C3JjAnD8.woff2 +0 -0
  805. package/ui/dist/assets/inter-greek-ext-400-normal-DGGRlc-M.woff2 +0 -0
  806. package/ui/dist/assets/inter-greek-ext-400-normal-KugGGMne.woff +0 -0
  807. package/ui/dist/assets/inter-greek-ext-500-normal-2j5mBUwD.woff +0 -0
  808. package/ui/dist/assets/inter-greek-ext-500-normal-C4iEst2y.woff2 +0 -0
  809. package/ui/dist/assets/inter-greek-ext-600-normal-B8X0CLgF.woff +0 -0
  810. package/ui/dist/assets/inter-greek-ext-600-normal-DRtmH8MT.woff2 +0 -0
  811. package/ui/dist/assets/inter-greek-ext-700-normal-BoQ6DsYi.woff +0 -0
  812. package/ui/dist/assets/inter-greek-ext-700-normal-qfdV9bQt.woff2 +0 -0
  813. package/ui/dist/assets/inter-latin-400-normal-C38fXH4l.woff2 +0 -0
  814. package/ui/dist/assets/inter-latin-400-normal-CyCys3Eg.woff +0 -0
  815. package/ui/dist/assets/inter-latin-500-normal-BL9OpVg8.woff +0 -0
  816. package/ui/dist/assets/inter-latin-500-normal-Cerq10X2.woff2 +0 -0
  817. package/ui/dist/assets/inter-latin-600-normal-CiBQ2DWP.woff +0 -0
  818. package/ui/dist/assets/inter-latin-600-normal-LgqL8muc.woff2 +0 -0
  819. package/ui/dist/assets/inter-latin-700-normal-BLAVimhd.woff +0 -0
  820. package/ui/dist/assets/inter-latin-700-normal-Yt3aPRUw.woff2 +0 -0
  821. package/ui/dist/assets/inter-latin-ext-400-normal-77YHD8bZ.woff +0 -0
  822. package/ui/dist/assets/inter-latin-ext-400-normal-C1nco2VV.woff2 +0 -0
  823. package/ui/dist/assets/inter-latin-ext-500-normal-BxGbmqWO.woff +0 -0
  824. package/ui/dist/assets/inter-latin-ext-500-normal-CV4jyFjo.woff2 +0 -0
  825. package/ui/dist/assets/inter-latin-ext-600-normal-CIVaiw4L.woff +0 -0
  826. package/ui/dist/assets/inter-latin-ext-600-normal-D2bJ5OIk.woff2 +0 -0
  827. package/ui/dist/assets/inter-latin-ext-700-normal-Ca8adRJv.woff2 +0 -0
  828. package/ui/dist/assets/inter-latin-ext-700-normal-TidjK2hL.woff +0 -0
  829. package/ui/dist/assets/inter-vietnamese-400-normal-Bbgyi5SW.woff +0 -0
  830. package/ui/dist/assets/inter-vietnamese-400-normal-DMkecbls.woff2 +0 -0
  831. package/ui/dist/assets/inter-vietnamese-500-normal-DOriooB6.woff2 +0 -0
  832. package/ui/dist/assets/inter-vietnamese-500-normal-mJboJaSs.woff +0 -0
  833. package/ui/dist/assets/inter-vietnamese-600-normal-BuLX-rYi.woff +0 -0
  834. package/ui/dist/assets/inter-vietnamese-600-normal-Cc8MFFhd.woff2 +0 -0
  835. package/ui/dist/assets/inter-vietnamese-700-normal-BZaoP0fm.woff +0 -0
  836. package/ui/dist/assets/inter-vietnamese-700-normal-DlLaEgI2.woff2 +0 -0
  837. package/ui/dist/assets/jetbrains-mono-cyrillic-wght-normal-D73BlboJ.woff2 +0 -0
  838. package/ui/dist/assets/jetbrains-mono-greek-wght-normal-Bw9x6K1M.woff2 +0 -0
  839. package/ui/dist/assets/jetbrains-mono-latin-ext-wght-normal-DBQx-q_a.woff2 +0 -0
  840. package/ui/dist/assets/jetbrains-mono-latin-wght-normal-B9CIFXIH.woff2 +0 -0
  841. package/ui/dist/assets/jetbrains-mono-vietnamese-wght-normal-Bt-aOZkq.woff2 +0 -0
  842. package/ui/dist/assets/space-grotesk-latin-ext-wght-normal-D9tNdqV9.woff2 +0 -0
  843. package/ui/dist/assets/space-grotesk-latin-wght-normal-BhU9QXUp.woff2 +0 -0
  844. package/ui/dist/assets/space-grotesk-vietnamese-wght-normal-D0rl6rjA.woff2 +0 -0
  845. package/ui/dist/index.html +14 -0
  846. package/index.js +0 -2
@@ -0,0 +1,154 @@
1
+ import path from "node:path";
2
+ import { createHash } from "node:crypto";
3
+ const BLOCK_START = (name) => `<!-- BEGIN RIGGED MANAGED BLOCK: ${name} -->`;
4
+ const BLOCK_END = (name) => `<!-- END RIGGED MANAGED BLOCK: ${name} -->`;
5
+ function hashContent(content) {
6
+ return createHash("sha256").update(content).digest("hex");
7
+ }
8
+ export class InstallEngine {
9
+ installRepo;
10
+ fs;
11
+ constructor(installRepo, fs) {
12
+ this.installRepo = installRepo;
13
+ this.fs = fs;
14
+ }
15
+ apply(policyResult, plan, packageId, targetRoot, bootstrapId) {
16
+ const install = this.installRepo.createInstall(packageId, targetRoot, "project_shared", bootstrapId);
17
+ const applied = [];
18
+ const backupRoot = path.join(targetRoot, ".rigged-backups", install.id);
19
+ try {
20
+ for (const entry of policyResult.approved) {
21
+ // Ensure target directory
22
+ this.fs.mkdirp(path.dirname(entry.targetPath));
23
+ // Backup existing file if it exists
24
+ let backupPath;
25
+ let beforeHash;
26
+ if (this.fs.exists(entry.targetPath)) {
27
+ const relativePath = path.relative(targetRoot, entry.targetPath);
28
+ backupPath = path.join(backupRoot, relativePath);
29
+ this.fs.mkdirp(path.dirname(backupPath));
30
+ this.fs.copyFile(entry.targetPath, backupPath);
31
+ beforeHash = hashContent(this.fs.readFile(entry.targetPath));
32
+ }
33
+ // Apply — guidance always uses managed-block merge (even for new files)
34
+ if (entry.exportType === "guidance") {
35
+ this.applyGuidanceMerge(entry, plan.packageName);
36
+ }
37
+ else if (entry.sourcePath) {
38
+ // Copy source to target (skills, agents)
39
+ this.fs.copyFile(entry.sourcePath, entry.targetPath);
40
+ }
41
+ const afterHash = this.fs.exists(entry.targetPath)
42
+ ? hashContent(this.fs.readFile(entry.targetPath))
43
+ : undefined;
44
+ try {
45
+ const journal = this.installRepo.createJournalEntry({
46
+ installId: install.id,
47
+ action: entry.classification === "managed_merge" ? "merge_block" : "copy",
48
+ exportType: entry.exportType,
49
+ classification: entry.classification,
50
+ targetPath: entry.targetPath,
51
+ backupPath,
52
+ beforeHash,
53
+ afterHash,
54
+ status: "applied",
55
+ });
56
+ applied.push(journal);
57
+ }
58
+ catch (journalErr) {
59
+ // Undo this entry's file mutation since it won't be in the rollback list
60
+ try {
61
+ if (backupPath && this.fs.exists(backupPath)) {
62
+ this.fs.copyFile(backupPath, entry.targetPath);
63
+ }
64
+ else if (this.fs.exists(entry.targetPath)) {
65
+ this.fs.deleteFile(entry.targetPath);
66
+ }
67
+ }
68
+ catch { /* best-effort undo */ }
69
+ throw journalErr;
70
+ }
71
+ }
72
+ this.installRepo.updateInstallStatus(install.id, "applied");
73
+ }
74
+ catch (err) {
75
+ // Compensating rollback on failure
76
+ this.rollbackEntries(install.id, applied);
77
+ this.installRepo.updateInstallStatus(install.id, "failed");
78
+ throw err;
79
+ }
80
+ return {
81
+ installId: install.id,
82
+ applied,
83
+ deferred: plan.deferred,
84
+ conflicts: plan.conflicts,
85
+ };
86
+ }
87
+ rollback(installId) {
88
+ const entries = this.installRepo.getJournalEntries(installId);
89
+ const applyEntries = entries.filter((e) => e.action !== "rollback");
90
+ const { restored, deleted } = this.rollbackEntries(installId, applyEntries);
91
+ this.installRepo.updateInstallStatus(installId, "rolled_back");
92
+ return { installId, restored, deleted };
93
+ }
94
+ rollbackEntries(installId, entries) {
95
+ const restored = [];
96
+ const deleted = [];
97
+ // Reverse order for rollback
98
+ for (const entry of [...entries].reverse()) {
99
+ try {
100
+ if (entry.backupPath && this.fs.exists(entry.backupPath)) {
101
+ // Restore from backup
102
+ this.fs.mkdirp(path.dirname(entry.targetPath));
103
+ this.fs.copyFile(entry.backupPath, entry.targetPath);
104
+ restored.push(entry.targetPath);
105
+ }
106
+ else if (this.fs.exists(entry.targetPath)) {
107
+ // No backup = new file, delete it
108
+ this.fs.deleteFile(entry.targetPath);
109
+ deleted.push(entry.targetPath);
110
+ }
111
+ // Journal the rollback action
112
+ this.installRepo.createJournalEntry({
113
+ installId,
114
+ action: "rollback",
115
+ exportType: entry.exportType,
116
+ classification: entry.classification,
117
+ targetPath: entry.targetPath,
118
+ status: "rolled_back",
119
+ });
120
+ }
121
+ catch {
122
+ // Best-effort rollback — continue with remaining entries
123
+ }
124
+ }
125
+ return { restored, deleted };
126
+ }
127
+ applyGuidanceMerge(entry, packageName) {
128
+ if (!entry.sourcePath)
129
+ return;
130
+ const content = this.fs.readFile(entry.sourcePath);
131
+ const block = `${BLOCK_START(packageName)}\n${content}\n${BLOCK_END(packageName)}`;
132
+ if (this.fs.exists(entry.targetPath)) {
133
+ const existing = this.fs.readFile(entry.targetPath);
134
+ const startMarker = BLOCK_START(packageName);
135
+ const endMarker = BLOCK_END(packageName);
136
+ const startIdx = existing.indexOf(startMarker);
137
+ const endIdx = existing.indexOf(endMarker);
138
+ if (startIdx !== -1 && endIdx !== -1) {
139
+ // Update existing block
140
+ const updated = existing.slice(0, startIdx) + block + existing.slice(endIdx + endMarker.length);
141
+ this.fs.writeFile(entry.targetPath, updated);
142
+ }
143
+ else {
144
+ // Insert new block at end
145
+ this.fs.writeFile(entry.targetPath, existing + "\n\n" + block + "\n");
146
+ }
147
+ }
148
+ else {
149
+ // New file
150
+ this.fs.writeFile(entry.targetPath, block + "\n");
151
+ }
152
+ }
153
+ }
154
+ //# sourceMappingURL=install-engine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-engine.js","sourceRoot":"","sources":["../../src/domain/install-engine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,38 @@
1
+ import type { ResolvedPackage, FsOps } from "./package-resolver.js";
2
+ export type ActionClassification = "safe_projection" | "managed_merge" | "config_mutation" | "external_install" | "manual_only";
3
+ export interface ConflictInfo {
4
+ existingPath: string;
5
+ existingHash?: string;
6
+ sourceHash?: string;
7
+ reason: string;
8
+ }
9
+ export interface InstallPlanEntry {
10
+ exportType: string;
11
+ exportName: string;
12
+ classification: ActionClassification;
13
+ targetPath: string;
14
+ scope: string;
15
+ sourcePath?: string;
16
+ conflict?: ConflictInfo;
17
+ deferred: boolean;
18
+ deferReason?: string;
19
+ }
20
+ export interface InstallPlan {
21
+ packageId?: string;
22
+ packageName: string;
23
+ packageVersion: string;
24
+ sourceRef: string;
25
+ entries: InstallPlanEntry[];
26
+ actionable: InstallPlanEntry[];
27
+ deferred: InstallPlanEntry[];
28
+ conflicts: InstallPlanEntry[];
29
+ }
30
+ export interface PlanOptions {
31
+ roleName?: string;
32
+ }
33
+ export declare class InstallPlanner {
34
+ private fs;
35
+ constructor(fs: FsOps);
36
+ plan(resolved: ResolvedPackage, targetRoot: string, runtime: "claude-code" | "codex", options?: PlanOptions): InstallPlan;
37
+ }
38
+ //# sourceMappingURL=install-planner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-planner.d.ts","sourceRoot":"","sources":["../../src/domain/install-planner.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,eAAe,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAKpE,MAAM,MAAM,oBAAoB,GAC5B,iBAAiB,GACjB,eAAe,GACf,iBAAiB,GACjB,kBAAkB,GAClB,aAAa,CAAC;AAElB,MAAM,WAAW,YAAY;IAC3B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,oBAAoB,CAAC;IACrC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,YAAY,CAAC;IACxB,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,WAAW;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,gBAAgB,EAAE,CAAC;IAC5B,UAAU,EAAE,gBAAgB,EAAE,CAAC;IAC/B,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,SAAS,EAAE,gBAAgB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAID,qBAAa,cAAc;IACzB,OAAO,CAAC,EAAE,CAAQ;gBAEN,EAAE,EAAE,KAAK;IAIrB,IAAI,CACF,QAAQ,EAAE,eAAe,EACzB,UAAU,EAAE,MAAM,EAClB,OAAO,EAAE,aAAa,GAAG,OAAO,EAChC,OAAO,CAAC,EAAE,WAAW,GACpB,WAAW;CAqQf"}
@@ -0,0 +1,243 @@
1
+ import path from "node:path";
2
+ import { resolveExports } from "./role-resolver.js";
3
+ // --- Planner ---
4
+ export class InstallPlanner {
5
+ fs;
6
+ constructor(fs) {
7
+ this.fs = fs;
8
+ }
9
+ plan(resolved, targetRoot, runtime, options) {
10
+ // R2-H2: Compatibility check — runtime must be in manifest's runtimes
11
+ if (!resolved.manifest.compatibility.runtimes.includes(runtime)) {
12
+ throw new Error(`Package '${resolved.manifest.name}' does not support runtime '${runtime}'. Supported: ${resolved.manifest.compatibility.runtimes.join(", ")}`);
13
+ }
14
+ const exports = resolveExports(resolved.manifest, options?.roleName);
15
+ const entries = [];
16
+ // Plan skills
17
+ for (const skill of exports.skills) {
18
+ // R2-H2: Scope enforcement — skip/defer entries that don't support project_shared
19
+ if (skill.supportedScopes && !skill.supportedScopes.includes("project_shared")) {
20
+ entries.push({
21
+ exportType: "skill",
22
+ exportName: skill.name,
23
+ classification: "config_mutation",
24
+ targetPath: "",
25
+ scope: "project_shared",
26
+ deferred: true,
27
+ deferReason: `Skill '${skill.name}' does not support project_shared scope`,
28
+ });
29
+ continue;
30
+ }
31
+ // R2-H1: Enumerate all files in the skill source directory
32
+ const sourceDir = path.join(resolved.sourceRef, skill.source);
33
+ const files = this.fs.listFiles ? this.fs.listFiles(sourceDir) : ["SKILL.md"];
34
+ for (const file of files) {
35
+ const targetPath = runtime === "claude-code"
36
+ ? path.join(targetRoot, ".claude", "skills", skill.name, file)
37
+ : path.join(targetRoot, ".agents", "skills", skill.name, file);
38
+ const exists = this.fs.exists(targetPath);
39
+ const entry = {
40
+ exportType: "skill",
41
+ exportName: `${skill.name}/${file}`,
42
+ classification: "safe_projection",
43
+ targetPath,
44
+ sourcePath: path.join(sourceDir, file),
45
+ scope: "project_shared",
46
+ deferred: false,
47
+ };
48
+ // F2.1: Source file existence check
49
+ if (!this.fs.exists(entry.sourcePath)) {
50
+ throw new Error(`Source file not found: ${entry.sourcePath}`);
51
+ }
52
+ if (exists) {
53
+ entry.conflict = {
54
+ existingPath: targetPath,
55
+ reason: `Skill '${skill.name}/${file}' already exists at target`,
56
+ };
57
+ }
58
+ entries.push(entry);
59
+ }
60
+ }
61
+ // Plan guidance
62
+ for (const g of exports.guidance) {
63
+ // R2-H2: Scope enforcement
64
+ if (g.supportedScopes && !g.supportedScopes.includes("project_shared")) {
65
+ entries.push({
66
+ exportType: "guidance",
67
+ exportName: g.name,
68
+ classification: "config_mutation",
69
+ targetPath: "",
70
+ scope: "project_shared",
71
+ deferred: true,
72
+ deferReason: `Guidance '${g.name}' does not support project_shared scope`,
73
+ });
74
+ continue;
75
+ }
76
+ // Runtime/guidance kind mismatch → defer
77
+ if (g.kind === "agents_md" && runtime === "claude-code") {
78
+ entries.push({
79
+ exportType: "guidance",
80
+ exportName: g.name,
81
+ classification: "config_mutation",
82
+ targetPath: "",
83
+ scope: "project_shared",
84
+ deferred: true,
85
+ deferReason: "agents_md guidance not applicable to claude-code",
86
+ });
87
+ continue;
88
+ }
89
+ if (g.kind === "claude_md" && runtime === "codex") {
90
+ entries.push({
91
+ exportType: "guidance",
92
+ exportName: g.name,
93
+ classification: "config_mutation",
94
+ targetPath: "",
95
+ scope: "project_shared",
96
+ deferred: true,
97
+ deferReason: "claude_md guidance not applicable to codex",
98
+ });
99
+ continue;
100
+ }
101
+ // generic_rules_overlay → defer
102
+ if (g.kind === "generic_rules_overlay") {
103
+ entries.push({
104
+ exportType: "guidance",
105
+ exportName: g.name,
106
+ classification: "config_mutation",
107
+ targetPath: "",
108
+ scope: "project_shared",
109
+ deferred: true,
110
+ deferReason: "generic_rules_overlay not supported in Phase 4",
111
+ });
112
+ continue;
113
+ }
114
+ // replace/manual strategy → defer
115
+ if (g.mergeStrategy === "replace" || g.mergeStrategy === "manual") {
116
+ entries.push({
117
+ exportType: "guidance",
118
+ exportName: g.name,
119
+ classification: "manual_only",
120
+ targetPath: "",
121
+ scope: "project_shared",
122
+ deferred: true,
123
+ deferReason: `${g.mergeStrategy} merge not supported in Phase 4`,
124
+ });
125
+ continue;
126
+ }
127
+ // Determine target path
128
+ const targetFile = g.kind === "agents_md" ? "AGENTS.md" : "CLAUDE.md";
129
+ const targetPath = path.join(targetRoot, targetFile);
130
+ const exists = this.fs.exists(targetPath);
131
+ const guidanceSourcePath = path.join(resolved.sourceRef, g.source);
132
+ // F2.1: Source file existence check
133
+ if (!this.fs.exists(guidanceSourcePath)) {
134
+ throw new Error(`Source file not found: ${guidanceSourcePath}`);
135
+ }
136
+ entries.push({
137
+ exportType: "guidance",
138
+ exportName: g.name,
139
+ classification: exists ? "managed_merge" : "safe_projection",
140
+ targetPath,
141
+ sourcePath: guidanceSourcePath,
142
+ scope: "project_shared",
143
+ deferred: false,
144
+ });
145
+ }
146
+ // Plan agents (single YAML files, not directories)
147
+ for (const agent of exports.agents) {
148
+ const agentName = agent.name ?? path.basename(agent.source, path.extname(agent.source));
149
+ // R2-H2: Scope enforcement
150
+ if (agent.supportedScopes && !agent.supportedScopes.includes("project_shared")) {
151
+ entries.push({
152
+ exportType: "agent",
153
+ exportName: agentName,
154
+ classification: "config_mutation",
155
+ targetPath: "",
156
+ scope: "project_shared",
157
+ deferred: true,
158
+ deferReason: `Agent '${agentName}' does not support project_shared scope`,
159
+ });
160
+ continue;
161
+ }
162
+ const targetPath = runtime === "claude-code"
163
+ ? path.join(targetRoot, ".claude", "agents", `${agentName}.yaml`)
164
+ : path.join(targetRoot, ".agents", `${agentName}.yaml`);
165
+ const agentSourcePath = path.join(resolved.sourceRef, agent.source);
166
+ // F2.1: Source file existence check
167
+ if (!this.fs.exists(agentSourcePath)) {
168
+ throw new Error(`Source file not found: ${agentSourcePath}`);
169
+ }
170
+ const exists = this.fs.exists(targetPath);
171
+ const entry = {
172
+ exportType: "agent",
173
+ exportName: agentName,
174
+ classification: "safe_projection",
175
+ targetPath,
176
+ sourcePath: agentSourcePath,
177
+ scope: "project_shared",
178
+ deferred: false,
179
+ };
180
+ if (exists) {
181
+ entry.conflict = {
182
+ existingPath: targetPath,
183
+ reason: `Agent '${agentName}' already exists at target`,
184
+ };
185
+ }
186
+ entries.push(entry);
187
+ }
188
+ // Plan deferred (hooks, mcp from role resolver)
189
+ for (const d of exports.deferred) {
190
+ entries.push({
191
+ exportType: d.exportType,
192
+ exportName: d.source,
193
+ classification: "config_mutation",
194
+ targetPath: "",
195
+ scope: "project_shared",
196
+ deferred: true,
197
+ deferReason: d.reason,
198
+ });
199
+ }
200
+ // Plan requirements as deferred
201
+ if (resolved.manifest.requirements?.cliTools) {
202
+ for (const tool of resolved.manifest.requirements.cliTools) {
203
+ entries.push({
204
+ exportType: "requirement",
205
+ exportName: tool.name,
206
+ classification: "external_install",
207
+ targetPath: "",
208
+ scope: "project_shared",
209
+ deferred: true,
210
+ deferReason: `CLI tool '${tool.name}' requires external install (Phase 5)`,
211
+ });
212
+ }
213
+ }
214
+ if (resolved.manifest.requirements?.systemPackages) {
215
+ for (const pkg of resolved.manifest.requirements.systemPackages) {
216
+ entries.push({
217
+ exportType: "requirement",
218
+ exportName: pkg.name,
219
+ classification: "external_install",
220
+ targetPath: "",
221
+ scope: "project_shared",
222
+ deferred: true,
223
+ deferReason: `System package '${pkg.name}' requires external install (Phase 5)`,
224
+ });
225
+ }
226
+ }
227
+ // Split into categories
228
+ const actionable = entries.filter((e) => !e.deferred && !e.conflict);
229
+ const deferred = entries.filter((e) => e.deferred);
230
+ const conflicts = entries.filter((e) => !!e.conflict && !e.deferred);
231
+ return {
232
+ // packageId is undefined until caller persists to DB
233
+ packageName: resolved.manifest.name,
234
+ packageVersion: resolved.manifest.version,
235
+ sourceRef: resolved.sourceRef,
236
+ entries,
237
+ actionable,
238
+ deferred,
239
+ conflicts,
240
+ };
241
+ }
242
+ }
243
+ //# sourceMappingURL=install-planner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-planner.js","sourceRoot":"","sources":["../../src/domain/install-planner.ts"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,WAAW,CAAC;AAE7B,OAAO,EAAE,cAAc,EAA6C,MAAM,oBAAoB,CAAC;AA6C/F,kBAAkB;AAElB,MAAM,OAAO,cAAc;IACjB,EAAE,CAAQ;IAElB,YAAY,EAAS;QACnB,IAAI,CAAC,EAAE,GAAG,EAAE,CAAC;IACf,CAAC;IAED,IAAI,CACF,QAAyB,EACzB,UAAkB,EAClB,OAAgC,EAChC,OAAqB;QAErB,sEAAsE;QACtE,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,EAAE,CAAC;YAChE,MAAM,IAAI,KAAK,CAAC,YAAY,QAAQ,CAAC,QAAQ,CAAC,IAAI,+BAA+B,OAAO,iBAAiB,QAAQ,CAAC,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAClK,CAAC;QAED,MAAM,OAAO,GAAG,cAAc,CAAC,QAAQ,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAC;QACrE,MAAM,OAAO,GAAuB,EAAE,CAAC;QAEvC,cAAc;QACd,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnC,kFAAkF;YAClF,IAAI,KAAK,CAAC,eAAe,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC/E,OAAO,CAAC,IAAI,CAAC;oBACX,UAAU,EAAE,OAAO;oBACnB,UAAU,EAAE,KAAK,CAAC,IAAI;oBACtB,cAAc,EAAE,iBAAiB;oBACjC,UAAU,EAAE,EAAE;oBACd,KAAK,EAAE,gBAAgB;oBACvB,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,UAAU,KAAK,CAAC,IAAI,yCAAyC;iBAC3E,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,2DAA2D;YAC3D,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YAC9D,MAAM,KAAK,GAAG,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YAE9E,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;gBACzB,MAAM,UAAU,GAAG,OAAO,KAAK,aAAa;oBAC1C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC;oBAC9D,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC;gBAEjE,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;gBAC1C,MAAM,KAAK,GAAqB;oBAC9B,UAAU,EAAE,OAAO;oBACnB,UAAU,EAAE,GAAG,KAAK,CAAC,IAAI,IAAI,IAAI,EAAE;oBACnC,cAAc,EAAE,iBAAiB;oBACjC,UAAU;oBACV,UAAU,EAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC;oBACtC,KAAK,EAAE,gBAAgB;oBACvB,QAAQ,EAAE,KAAK;iBAChB,CAAC;gBAEF,oCAAoC;gBACpC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,KAAK,CAAC,UAAW,CAAC,EAAE,CAAC;oBACvC,MAAM,IAAI,KAAK,CAAC,0BAA0B,KAAK,CAAC,UAAU,EAAE,CAAC,CAAC;gBAChE,CAAC;gBAED,IAAI,MAAM,EAAE,CAAC;oBACX,KAAK,CAAC,QAAQ,GAAG;wBACf,YAAY,EAAE,UAAU;wBACxB,MAAM,EAAE,UAAU,KAAK,CAAC,IAAI,IAAI,IAAI,4BAA4B;qBACjE,CAAC;gBACJ,CAAC;gBAED,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;YACtB,CAAC;QACH,CAAC;QAED,gBAAgB;QAChB,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACjC,2BAA2B;YAC3B,IAAI,CAAC,CAAC,eAAe,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBACvE,OAAO,CAAC,IAAI,CAAC;oBACX,UAAU,EAAE,UAAU;oBACtB,UAAU,EAAE,CAAC,CAAC,IAAI;oBAClB,cAAc,EAAE,iBAAiB;oBACjC,UAAU,EAAE,EAAE;oBACd,KAAK,EAAE,gBAAgB;oBACvB,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,aAAa,CAAC,CAAC,IAAI,yCAAyC;iBAC1E,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,yCAAyC;YACzC,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,KAAK,aAAa,EAAE,CAAC;gBACxD,OAAO,CAAC,IAAI,CAAC;oBACX,UAAU,EAAE,UAAU;oBACtB,UAAU,EAAE,CAAC,CAAC,IAAI;oBAClB,cAAc,EAAE,iBAAiB;oBACjC,UAAU,EAAE,EAAE;oBACd,KAAK,EAAE,gBAAgB;oBACvB,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,kDAAkD;iBAChE,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YACD,IAAI,CAAC,CAAC,IAAI,KAAK,WAAW,IAAI,OAAO,KAAK,OAAO,EAAE,CAAC;gBAClD,OAAO,CAAC,IAAI,CAAC;oBACX,UAAU,EAAE,UAAU;oBACtB,UAAU,EAAE,CAAC,CAAC,IAAI;oBAClB,cAAc,EAAE,iBAAiB;oBACjC,UAAU,EAAE,EAAE;oBACd,KAAK,EAAE,gBAAgB;oBACvB,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,4CAA4C;iBAC1D,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,gCAAgC;YAChC,IAAI,CAAC,CAAC,IAAI,KAAK,uBAAuB,EAAE,CAAC;gBACvC,OAAO,CAAC,IAAI,CAAC;oBACX,UAAU,EAAE,UAAU;oBACtB,UAAU,EAAE,CAAC,CAAC,IAAI;oBAClB,cAAc,EAAE,iBAAiB;oBACjC,UAAU,EAAE,EAAE;oBACd,KAAK,EAAE,gBAAgB;oBACvB,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,gDAAgD;iBAC9D,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,kCAAkC;YAClC,IAAI,CAAC,CAAC,aAAa,KAAK,SAAS,IAAI,CAAC,CAAC,aAAa,KAAK,QAAQ,EAAE,CAAC;gBAClE,OAAO,CAAC,IAAI,CAAC;oBACX,UAAU,EAAE,UAAU;oBACtB,UAAU,EAAE,CAAC,CAAC,IAAI;oBAClB,cAAc,EAAE,aAAa;oBAC7B,UAAU,EAAE,EAAE;oBACd,KAAK,EAAE,gBAAgB;oBACvB,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,GAAG,CAAC,CAAC,aAAa,iCAAiC;iBACjE,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,wBAAwB;YACxB,MAAM,UAAU,GAAG,CAAC,CAAC,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC;YACtE,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,UAAU,CAAC,CAAC;YACrD,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAE1C,MAAM,kBAAkB,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC;YAEnE,oCAAoC;YACpC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBACxC,MAAM,IAAI,KAAK,CAAC,0BAA0B,kBAAkB,EAAE,CAAC,CAAC;YAClE,CAAC;YAED,OAAO,CAAC,IAAI,CAAC;gBACX,UAAU,EAAE,UAAU;gBACtB,UAAU,EAAE,CAAC,CAAC,IAAI;gBAClB,cAAc,EAAE,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,iBAAiB;gBAC5D,UAAU;gBACV,UAAU,EAAE,kBAAkB;gBAC9B,KAAK,EAAE,gBAAgB;gBACvB,QAAQ,EAAE,KAAK;aAChB,CAAC,CAAC;QACL,CAAC;QAED,mDAAmD;QACnD,KAAK,MAAM,KAAK,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;YACnC,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,IAAI,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC;YAExF,2BAA2B;YAC3B,IAAI,KAAK,CAAC,eAAe,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC,QAAQ,CAAC,gBAAgB,CAAC,EAAE,CAAC;gBAC/E,OAAO,CAAC,IAAI,CAAC;oBACX,UAAU,EAAE,OAAO;oBACnB,UAAU,EAAE,SAAS;oBACrB,cAAc,EAAE,iBAAiB;oBACjC,UAAU,EAAE,EAAE;oBACd,KAAK,EAAE,gBAAgB;oBACvB,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,UAAU,SAAS,yCAAyC;iBAC1E,CAAC,CAAC;gBACH,SAAS;YACX,CAAC;YAED,MAAM,UAAU,GAAG,OAAO,KAAK,aAAa;gBAC1C,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,GAAG,SAAS,OAAO,CAAC;gBACjE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,GAAG,SAAS,OAAO,CAAC,CAAC;YAE1D,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,SAAS,EAAE,KAAK,CAAC,MAAM,CAAC,CAAC;YAEpE,oCAAoC;YACpC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,eAAe,CAAC,EAAE,CAAC;gBACrC,MAAM,IAAI,KAAK,CAAC,0BAA0B,eAAe,EAAE,CAAC,CAAC;YAC/D,CAAC;YAED,MAAM,MAAM,GAAG,IAAI,CAAC,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;YAC1C,MAAM,KAAK,GAAqB;gBAC9B,UAAU,EAAE,OAAO;gBACnB,UAAU,EAAE,SAAS;gBACrB,cAAc,EAAE,iBAAiB;gBACjC,UAAU;gBACV,UAAU,EAAE,eAAe;gBAC3B,KAAK,EAAE,gBAAgB;gBACvB,QAAQ,EAAE,KAAK;aAChB,CAAC;YAEF,IAAI,MAAM,EAAE,CAAC;gBACX,KAAK,CAAC,QAAQ,GAAG;oBACf,YAAY,EAAE,UAAU;oBACxB,MAAM,EAAE,UAAU,SAAS,4BAA4B;iBACxD,CAAC;YACJ,CAAC;YAED,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACtB,CAAC;QAED,gDAAgD;QAChD,KAAK,MAAM,CAAC,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;YACjC,OAAO,CAAC,IAAI,CAAC;gBACX,UAAU,EAAE,CAAC,CAAC,UAAU;gBACxB,UAAU,EAAE,CAAC,CAAC,MAAM;gBACpB,cAAc,EAAE,iBAAiB;gBACjC,UAAU,EAAE,EAAE;gBACd,KAAK,EAAE,gBAAgB;gBACvB,QAAQ,EAAE,IAAI;gBACd,WAAW,EAAE,CAAC,CAAC,MAAM;aACtB,CAAC,CAAC;QACL,CAAC;QAED,gCAAgC;QAChC,IAAI,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,QAAQ,EAAE,CAAC;YAC7C,KAAK,MAAM,IAAI,IAAI,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,QAAQ,EAAE,CAAC;gBAC3D,OAAO,CAAC,IAAI,CAAC;oBACX,UAAU,EAAE,aAAa;oBACzB,UAAU,EAAE,IAAI,CAAC,IAAI;oBACrB,cAAc,EAAE,kBAAkB;oBAClC,UAAU,EAAE,EAAE;oBACd,KAAK,EAAE,gBAAgB;oBACvB,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,aAAa,IAAI,CAAC,IAAI,uCAAuC;iBAC3E,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QACD,IAAI,QAAQ,CAAC,QAAQ,CAAC,YAAY,EAAE,cAAc,EAAE,CAAC;YACnD,KAAK,MAAM,GAAG,IAAI,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,cAAc,EAAE,CAAC;gBAChE,OAAO,CAAC,IAAI,CAAC;oBACX,UAAU,EAAE,aAAa;oBACzB,UAAU,EAAE,GAAG,CAAC,IAAI;oBACpB,cAAc,EAAE,kBAAkB;oBAClC,UAAU,EAAE,EAAE;oBACd,KAAK,EAAE,gBAAgB;oBACvB,QAAQ,EAAE,IAAI;oBACd,WAAW,EAAE,mBAAmB,GAAG,CAAC,IAAI,uCAAuC;iBAChF,CAAC,CAAC;YACL,CAAC;QACH,CAAC;QAED,wBAAwB;QACxB,MAAM,UAAU,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACrE,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QACnD,MAAM,SAAS,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;QAErE,OAAO;YACL,qDAAqD;YACrD,WAAW,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI;YACnC,cAAc,EAAE,QAAQ,CAAC,QAAQ,CAAC,OAAO;YACzC,SAAS,EAAE,QAAQ,CAAC,SAAS;YAC7B,OAAO;YACP,UAAU;YACV,QAAQ;YACR,SAAS;SACV,CAAC;IACJ,CAAC;CACF"}
@@ -0,0 +1,20 @@
1
+ import type { InstallPlanEntry } from "./install-planner.js";
2
+ import type { RefinedInstallPlan } from "./conflict-detector.js";
3
+ export interface PolicyRejection {
4
+ entry: InstallPlanEntry;
5
+ reason: string;
6
+ }
7
+ export interface PolicyResult {
8
+ approved: InstallPlanEntry[];
9
+ rejected: PolicyRejection[];
10
+ }
11
+ /**
12
+ * Thin policy gate for install plan entries.
13
+ * Processes plan.actionable for classification-based approval,
14
+ * and plan.conflicts as always-rejected. Does not double-process
15
+ * entries that appear in both arrays.
16
+ */
17
+ export declare function applyPolicy(plan: RefinedInstallPlan, options?: {
18
+ allowMerge?: boolean;
19
+ }): PolicyResult;
20
+ //# sourceMappingURL=install-policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-policy.d.ts","sourceRoot":"","sources":["../../src/domain/install-policy.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAEjE,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,gBAAgB,CAAC;IACxB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,gBAAgB,EAAE,CAAC;IAC7B,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,kBAAkB,EACxB,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAO,GACrC,YAAY,CAuDd"}
@@ -0,0 +1,56 @@
1
+ /**
2
+ * Thin policy gate for install plan entries.
3
+ * Processes plan.actionable for classification-based approval,
4
+ * and plan.conflicts as always-rejected. Does not double-process
5
+ * entries that appear in both arrays.
6
+ */
7
+ export function applyPolicy(plan, options = {}) {
8
+ const approved = [];
9
+ const rejected = [];
10
+ // Track processed entry identities to prevent double-rejection
11
+ const processed = new Set();
12
+ // Conflicts are always rejected first
13
+ for (const entry of plan.conflicts) {
14
+ const key = `${entry.exportType}:${entry.exportName}`;
15
+ if (!processed.has(key)) {
16
+ processed.add(key);
17
+ rejected.push({
18
+ entry,
19
+ reason: "Conflicts must be resolved before install",
20
+ });
21
+ }
22
+ }
23
+ // Actionable entries — classify
24
+ for (const entry of plan.actionable) {
25
+ const key = `${entry.exportType}:${entry.exportName}`;
26
+ if (processed.has(key))
27
+ continue; // Already handled as conflict
28
+ switch (entry.classification) {
29
+ case "safe_projection":
30
+ approved.push(entry);
31
+ break;
32
+ case "managed_merge":
33
+ if (options.allowMerge) {
34
+ approved.push(entry);
35
+ }
36
+ else {
37
+ rejected.push({
38
+ entry,
39
+ reason: "managed_merge requires allowMerge flag",
40
+ });
41
+ }
42
+ break;
43
+ case "config_mutation":
44
+ rejected.push({ entry, reason: "Deferred to Phase 5" });
45
+ break;
46
+ case "external_install":
47
+ rejected.push({ entry, reason: "Deferred to Phase 5" });
48
+ break;
49
+ case "manual_only":
50
+ rejected.push({ entry, reason: "Manual merge not supported in Phase 4" });
51
+ break;
52
+ }
53
+ }
54
+ return { approved, rejected };
55
+ }
56
+ //# sourceMappingURL=install-policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-policy.js","sourceRoot":"","sources":["../../src/domain/install-policy.ts"],"names":[],"mappings":"AAaA;;;;;GAKG;AACH,MAAM,UAAU,WAAW,CACzB,IAAwB,EACxB,UAAoC,EAAE;IAEtC,MAAM,QAAQ,GAAuB,EAAE,CAAC;IACxC,MAAM,QAAQ,GAAsB,EAAE,CAAC;IAEvC,+DAA+D;IAC/D,MAAM,SAAS,GAAG,IAAI,GAAG,EAAU,CAAC;IAEpC,sCAAsC;IACtC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;QACnC,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACtD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACxB,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YACnB,QAAQ,CAAC,IAAI,CAAC;gBACZ,KAAK;gBACL,MAAM,EAAE,2CAA2C;aACpD,CAAC,CAAC;QACL,CAAC;IACH,CAAC;IAED,gCAAgC;IAChC,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;QACpC,MAAM,GAAG,GAAG,GAAG,KAAK,CAAC,UAAU,IAAI,KAAK,CAAC,UAAU,EAAE,CAAC;QACtD,IAAI,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAS,CAAC,8BAA8B;QAEhE,QAAQ,KAAK,CAAC,cAAc,EAAE,CAAC;YAC7B,KAAK,iBAAiB;gBACpB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACrB,MAAM;YAER,KAAK,eAAe;gBAClB,IAAI,OAAO,CAAC,UAAU,EAAE,CAAC;oBACvB,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvB,CAAC;qBAAM,CAAC;oBACN,QAAQ,CAAC,IAAI,CAAC;wBACZ,KAAK;wBACL,MAAM,EAAE,wCAAwC;qBACjD,CAAC,CAAC;gBACL,CAAC;gBACD,MAAM;YAER,KAAK,iBAAiB;gBACpB,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC,CAAC;gBACxD,MAAM;YAER,KAAK,kBAAkB;gBACrB,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC,CAAC;gBACxD,MAAM;YAER,KAAK,aAAa;gBAChB,QAAQ,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,uCAAuC,EAAE,CAAC,CAAC;gBAC1E,MAAM;QACV,CAAC;IACH,CAAC;IAED,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;AAChC,CAAC"}
@@ -0,0 +1,55 @@
1
+ import type Database from "better-sqlite3";
2
+ export interface Install {
3
+ id: string;
4
+ packageId: string;
5
+ targetRoot: string;
6
+ scope: string;
7
+ status: string;
8
+ riskTier: string | null;
9
+ createdAt: string;
10
+ appliedAt: string | null;
11
+ rolledBackAt: string | null;
12
+ }
13
+ export interface InstallSummary extends Install {
14
+ appliedCount: number;
15
+ deferredCount: null;
16
+ }
17
+ export interface JournalEntry {
18
+ id: string;
19
+ installId: string;
20
+ seq: number;
21
+ action: string;
22
+ exportType: string;
23
+ classification: string;
24
+ targetPath: string;
25
+ backupPath: string | null;
26
+ beforeHash: string | null;
27
+ afterHash: string | null;
28
+ status: string;
29
+ createdAt: string;
30
+ }
31
+ export declare class InstallRepository {
32
+ readonly db: Database.Database;
33
+ constructor(db: Database.Database);
34
+ createInstall(packageId: string, targetRoot: string, scope: string, bootstrapId?: string): Install;
35
+ updateInstallStatus(installId: string, status: string): void;
36
+ getInstall(installId: string): Install | null;
37
+ listInstallSummaries(packageId: string): InstallSummary[];
38
+ listInstalls(packageId?: string): Install[];
39
+ createJournalEntry(opts: {
40
+ installId: string;
41
+ action: string;
42
+ exportType: string;
43
+ classification: string;
44
+ targetPath: string;
45
+ backupPath?: string;
46
+ beforeHash?: string;
47
+ afterHash?: string;
48
+ status?: string;
49
+ }): JournalEntry;
50
+ getJournalEntries(installId: string): JournalEntry[];
51
+ private getJournalEntry;
52
+ private rowToInstall;
53
+ private rowToJournalEntry;
54
+ }
55
+ //# sourceMappingURL=install-repository.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"install-repository.d.ts","sourceRoot":"","sources":["../../src/domain/install-repository.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,QAAQ,MAAM,gBAAgB,CAAC;AAG3C,MAAM,WAAW,OAAO;IACtB,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAED,MAAM,WAAW,cAAe,SAAQ,OAAO;IAC7C,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,IAAI,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,cAAc,EAAE,MAAM,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AA6BD,qBAAa,iBAAiB;IAC5B,QAAQ,CAAC,EAAE,EAAE,QAAQ,CAAC,QAAQ,CAAC;gBAEnB,EAAE,EAAE,QAAQ,CAAC,QAAQ;IAIjC,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO;IAclG,mBAAmB,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,IAAI;IAa5D,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI;IAO7C,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,EAAE;IAiBzD,YAAY,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,EAAE;IAa3C,kBAAkB,CAAC,IAAI,EAAE;QACvB,SAAS,EAAE,MAAM,CAAC;QAClB,MAAM,EAAE,MAAM,CAAC;QACf,UAAU,EAAE,MAAM,CAAC;QACnB,cAAc,EAAE,MAAM,CAAC;QACvB,UAAU,EAAE,MAAM,CAAC;QACnB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,GAAG,YAAY;IAqBhB,iBAAiB,CAAC,SAAS,EAAE,MAAM,GAAG,YAAY,EAAE;IAOpD,OAAO,CAAC,eAAe;IAOvB,OAAO,CAAC,YAAY;IAcpB,OAAO,CAAC,iBAAiB;CAgB1B"}