raptor-aios 0.1.0

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 (719) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/LICENSE +21 -0
  3. package/README.md +315 -0
  4. package/bin/raptor.js +5 -0
  5. package/dist/_core/dist/agents/adapters/antigravity.d.ts +9 -0
  6. package/dist/_core/dist/agents/adapters/antigravity.d.ts.map +1 -0
  7. package/dist/_core/dist/agents/adapters/antigravity.js +72 -0
  8. package/dist/_core/dist/agents/adapters/antigravity.js.map +1 -0
  9. package/dist/_core/dist/agents/adapters/claude-code.d.ts +9 -0
  10. package/dist/_core/dist/agents/adapters/claude-code.d.ts.map +1 -0
  11. package/dist/_core/dist/agents/adapters/claude-code.js +71 -0
  12. package/dist/_core/dist/agents/adapters/claude-code.js.map +1 -0
  13. package/dist/_core/dist/agents/adapters/codex.d.ts +12 -0
  14. package/dist/_core/dist/agents/adapters/codex.d.ts.map +1 -0
  15. package/dist/_core/dist/agents/adapters/codex.js +69 -0
  16. package/dist/_core/dist/agents/adapters/codex.js.map +1 -0
  17. package/dist/_core/dist/agents/adapters/copilot.d.ts +12 -0
  18. package/dist/_core/dist/agents/adapters/copilot.d.ts.map +1 -0
  19. package/dist/_core/dist/agents/adapters/copilot.js +71 -0
  20. package/dist/_core/dist/agents/adapters/copilot.js.map +1 -0
  21. package/dist/_core/dist/agents/adapters/cursor.d.ts +9 -0
  22. package/dist/_core/dist/agents/adapters/cursor.d.ts.map +1 -0
  23. package/dist/_core/dist/agents/adapters/cursor.js +62 -0
  24. package/dist/_core/dist/agents/adapters/cursor.js.map +1 -0
  25. package/dist/_core/dist/agents/adapters/gemini.d.ts +11 -0
  26. package/dist/_core/dist/agents/adapters/gemini.d.ts.map +1 -0
  27. package/dist/_core/dist/agents/adapters/gemini.js +68 -0
  28. package/dist/_core/dist/agents/adapters/gemini.js.map +1 -0
  29. package/dist/_core/dist/agents/adapters/human.d.ts +10 -0
  30. package/dist/_core/dist/agents/adapters/human.d.ts.map +1 -0
  31. package/dist/_core/dist/agents/adapters/human.js +48 -0
  32. package/dist/_core/dist/agents/adapters/human.js.map +1 -0
  33. package/dist/_core/dist/agents/artifact-watcher.d.ts +86 -0
  34. package/dist/_core/dist/agents/artifact-watcher.d.ts.map +1 -0
  35. package/dist/_core/dist/agents/artifact-watcher.js +214 -0
  36. package/dist/_core/dist/agents/artifact-watcher.js.map +1 -0
  37. package/dist/_core/dist/agents/backup.d.ts +69 -0
  38. package/dist/_core/dist/agents/backup.d.ts.map +1 -0
  39. package/dist/_core/dist/agents/backup.js +107 -0
  40. package/dist/_core/dist/agents/backup.js.map +1 -0
  41. package/dist/_core/dist/agents/config.d.ts +36 -0
  42. package/dist/_core/dist/agents/config.d.ts.map +1 -0
  43. package/dist/_core/dist/agents/config.js +270 -0
  44. package/dist/_core/dist/agents/config.js.map +1 -0
  45. package/dist/_core/dist/agents/context-file.d.ts +35 -0
  46. package/dist/_core/dist/agents/context-file.d.ts.map +1 -0
  47. package/dist/_core/dist/agents/context-file.js +106 -0
  48. package/dist/_core/dist/agents/context-file.js.map +1 -0
  49. package/dist/_core/dist/agents/handoff.d.ts +57 -0
  50. package/dist/_core/dist/agents/handoff.d.ts.map +1 -0
  51. package/dist/_core/dist/agents/handoff.js +71 -0
  52. package/dist/_core/dist/agents/handoff.js.map +1 -0
  53. package/dist/_core/dist/agents/index.d.ts +32 -0
  54. package/dist/_core/dist/agents/index.d.ts.map +1 -0
  55. package/dist/_core/dist/agents/index.js +37 -0
  56. package/dist/_core/dist/agents/index.js.map +1 -0
  57. package/dist/_core/dist/agents/keys.d.ts +50 -0
  58. package/dist/_core/dist/agents/keys.d.ts.map +1 -0
  59. package/dist/_core/dist/agents/keys.js +91 -0
  60. package/dist/_core/dist/agents/keys.js.map +1 -0
  61. package/dist/_core/dist/agents/materialize.d.ts +37 -0
  62. package/dist/_core/dist/agents/materialize.d.ts.map +1 -0
  63. package/dist/_core/dist/agents/materialize.js +157 -0
  64. package/dist/_core/dist/agents/materialize.js.map +1 -0
  65. package/dist/_core/dist/agents/prompt-builder.d.ts +35 -0
  66. package/dist/_core/dist/agents/prompt-builder.d.ts.map +1 -0
  67. package/dist/_core/dist/agents/prompt-builder.js +261 -0
  68. package/dist/_core/dist/agents/prompt-builder.js.map +1 -0
  69. package/dist/_core/dist/agents/prompt-markers.d.ts +69 -0
  70. package/dist/_core/dist/agents/prompt-markers.d.ts.map +1 -0
  71. package/dist/_core/dist/agents/prompt-markers.js +111 -0
  72. package/dist/_core/dist/agents/prompt-markers.js.map +1 -0
  73. package/dist/_core/dist/agents/registry.d.ts +35 -0
  74. package/dist/_core/dist/agents/registry.d.ts.map +1 -0
  75. package/dist/_core/dist/agents/registry.js +102 -0
  76. package/dist/_core/dist/agents/registry.js.map +1 -0
  77. package/dist/_core/dist/agents/selector.d.ts +33 -0
  78. package/dist/_core/dist/agents/selector.d.ts.map +1 -0
  79. package/dist/_core/dist/agents/selector.js +120 -0
  80. package/dist/_core/dist/agents/selector.js.map +1 -0
  81. package/dist/_core/dist/agents/slash-materializer.d.ts +63 -0
  82. package/dist/_core/dist/agents/slash-materializer.d.ts.map +1 -0
  83. package/dist/_core/dist/agents/slash-materializer.js +131 -0
  84. package/dist/_core/dist/agents/slash-materializer.js.map +1 -0
  85. package/dist/_core/dist/agents/types.d.ts +121 -0
  86. package/dist/_core/dist/agents/types.d.ts.map +1 -0
  87. package/dist/_core/dist/agents/types.js +10 -0
  88. package/dist/_core/dist/agents/types.js.map +1 -0
  89. package/dist/_core/dist/audit/hash.d.ts +4 -0
  90. package/dist/_core/dist/audit/hash.d.ts.map +1 -0
  91. package/dist/_core/dist/audit/hash.js +12 -0
  92. package/dist/_core/dist/audit/hash.js.map +1 -0
  93. package/dist/_core/dist/audit/index.d.ts +6 -0
  94. package/dist/_core/dist/audit/index.d.ts.map +1 -0
  95. package/dist/_core/dist/audit/index.js +6 -0
  96. package/dist/_core/dist/audit/index.js.map +1 -0
  97. package/dist/_core/dist/audit/logger.d.ts +77 -0
  98. package/dist/_core/dist/audit/logger.d.ts.map +1 -0
  99. package/dist/_core/dist/audit/logger.js +93 -0
  100. package/dist/_core/dist/audit/logger.js.map +1 -0
  101. package/dist/_core/dist/audit/query.d.ts +13 -0
  102. package/dist/_core/dist/audit/query.d.ts.map +1 -0
  103. package/dist/_core/dist/audit/query.js +57 -0
  104. package/dist/_core/dist/audit/query.js.map +1 -0
  105. package/dist/_core/dist/audit/schema.d.ts +455 -0
  106. package/dist/_core/dist/audit/schema.d.ts.map +1 -0
  107. package/dist/_core/dist/audit/schema.js +341 -0
  108. package/dist/_core/dist/audit/schema.js.map +1 -0
  109. package/dist/_core/dist/audit/validate.d.ts +21 -0
  110. package/dist/_core/dist/audit/validate.d.ts.map +1 -0
  111. package/dist/_core/dist/audit/validate.js +139 -0
  112. package/dist/_core/dist/audit/validate.js.map +1 -0
  113. package/dist/_core/dist/constitution/core.d.ts +22 -0
  114. package/dist/_core/dist/constitution/core.d.ts.map +1 -0
  115. package/dist/_core/dist/constitution/core.js +102 -0
  116. package/dist/_core/dist/constitution/core.js.map +1 -0
  117. package/dist/_core/dist/constitution/index.d.ts +2 -0
  118. package/dist/_core/dist/constitution/index.d.ts.map +1 -0
  119. package/dist/_core/dist/constitution/index.js +2 -0
  120. package/dist/_core/dist/constitution/index.js.map +1 -0
  121. package/dist/_core/dist/extensions/index.d.ts +12 -0
  122. package/dist/_core/dist/extensions/index.d.ts.map +1 -0
  123. package/dist/_core/dist/extensions/index.js +12 -0
  124. package/dist/_core/dist/extensions/index.js.map +1 -0
  125. package/dist/_core/dist/extensions/integrate.d.ts +69 -0
  126. package/dist/_core/dist/extensions/integrate.d.ts.map +1 -0
  127. package/dist/_core/dist/extensions/integrate.js +181 -0
  128. package/dist/_core/dist/extensions/integrate.js.map +1 -0
  129. package/dist/_core/dist/extensions/loader.d.ts +24 -0
  130. package/dist/_core/dist/extensions/loader.d.ts.map +1 -0
  131. package/dist/_core/dist/extensions/loader.js +73 -0
  132. package/dist/_core/dist/extensions/loader.js.map +1 -0
  133. package/dist/_core/dist/extensions/manifest.d.ts +23 -0
  134. package/dist/_core/dist/extensions/manifest.d.ts.map +1 -0
  135. package/dist/_core/dist/extensions/manifest.js +176 -0
  136. package/dist/_core/dist/extensions/manifest.js.map +1 -0
  137. package/dist/_core/dist/extensions/registry.d.ts +32 -0
  138. package/dist/_core/dist/extensions/registry.d.ts.map +1 -0
  139. package/dist/_core/dist/extensions/registry.js +57 -0
  140. package/dist/_core/dist/extensions/registry.js.map +1 -0
  141. package/dist/_core/dist/extensions/resolver.d.ts +55 -0
  142. package/dist/_core/dist/extensions/resolver.d.ts.map +1 -0
  143. package/dist/_core/dist/extensions/resolver.js +143 -0
  144. package/dist/_core/dist/extensions/resolver.js.map +1 -0
  145. package/dist/_core/dist/extensions/types.d.ts +173 -0
  146. package/dist/_core/dist/extensions/types.d.ts.map +1 -0
  147. package/dist/_core/dist/extensions/types.js +83 -0
  148. package/dist/_core/dist/extensions/types.js.map +1 -0
  149. package/dist/_core/dist/frontmatter/index.d.ts +10 -0
  150. package/dist/_core/dist/frontmatter/index.d.ts.map +1 -0
  151. package/dist/_core/dist/frontmatter/index.js +24 -0
  152. package/dist/_core/dist/frontmatter/index.js.map +1 -0
  153. package/dist/_core/dist/gates/agent-gates.d.ts +16 -0
  154. package/dist/_core/dist/gates/agent-gates.d.ts.map +1 -0
  155. package/dist/_core/dist/gates/agent-gates.js +205 -0
  156. package/dist/_core/dist/gates/agent-gates.js.map +1 -0
  157. package/dist/_core/dist/gates/builtin.d.ts +18 -0
  158. package/dist/_core/dist/gates/builtin.d.ts.map +1 -0
  159. package/dist/_core/dist/gates/builtin.js +860 -0
  160. package/dist/_core/dist/gates/builtin.js.map +1 -0
  161. package/dist/_core/dist/gates/index.d.ts +7 -0
  162. package/dist/_core/dist/gates/index.d.ts.map +1 -0
  163. package/dist/_core/dist/gates/index.js +7 -0
  164. package/dist/_core/dist/gates/index.js.map +1 -0
  165. package/dist/_core/dist/gates/m7-gates.d.ts +17 -0
  166. package/dist/_core/dist/gates/m7-gates.d.ts.map +1 -0
  167. package/dist/_core/dist/gates/m7-gates.js +309 -0
  168. package/dist/_core/dist/gates/m7-gates.js.map +1 -0
  169. package/dist/_core/dist/gates/phase-gates.d.ts +18 -0
  170. package/dist/_core/dist/gates/phase-gates.d.ts.map +1 -0
  171. package/dist/_core/dist/gates/phase-gates.js +275 -0
  172. package/dist/_core/dist/gates/phase-gates.js.map +1 -0
  173. package/dist/_core/dist/gates/runner.d.ts +4 -0
  174. package/dist/_core/dist/gates/runner.d.ts.map +1 -0
  175. package/dist/_core/dist/gates/runner.js +64 -0
  176. package/dist/_core/dist/gates/runner.js.map +1 -0
  177. package/dist/_core/dist/gates/types.d.ts +36 -0
  178. package/dist/_core/dist/gates/types.d.ts.map +1 -0
  179. package/dist/_core/dist/gates/types.js +2 -0
  180. package/dist/_core/dist/gates/types.js.map +1 -0
  181. package/dist/_core/dist/hooks/index.d.ts +4 -0
  182. package/dist/_core/dist/hooks/index.d.ts.map +1 -0
  183. package/dist/_core/dist/hooks/index.js +4 -0
  184. package/dist/_core/dist/hooks/index.js.map +1 -0
  185. package/dist/_core/dist/hooks/runner.d.ts +28 -0
  186. package/dist/_core/dist/hooks/runner.d.ts.map +1 -0
  187. package/dist/_core/dist/hooks/runner.js +294 -0
  188. package/dist/_core/dist/hooks/runner.js.map +1 -0
  189. package/dist/_core/dist/hooks/runtime.d.ts +65 -0
  190. package/dist/_core/dist/hooks/runtime.d.ts.map +1 -0
  191. package/dist/_core/dist/hooks/runtime.js +212 -0
  192. package/dist/_core/dist/hooks/runtime.js.map +1 -0
  193. package/dist/_core/dist/hooks/types.d.ts +36 -0
  194. package/dist/_core/dist/hooks/types.d.ts.map +1 -0
  195. package/dist/_core/dist/hooks/types.js +23 -0
  196. package/dist/_core/dist/hooks/types.js.map +1 -0
  197. package/dist/_core/dist/index.d.ts +21 -0
  198. package/dist/_core/dist/index.d.ts.map +1 -0
  199. package/dist/_core/dist/index.js +20 -0
  200. package/dist/_core/dist/index.js.map +1 -0
  201. package/dist/_core/dist/manifest/index.d.ts +119 -0
  202. package/dist/_core/dist/manifest/index.d.ts.map +1 -0
  203. package/dist/_core/dist/manifest/index.js +125 -0
  204. package/dist/_core/dist/manifest/index.js.map +1 -0
  205. package/dist/_core/dist/markers/index.d.ts +47 -0
  206. package/dist/_core/dist/markers/index.d.ts.map +1 -0
  207. package/dist/_core/dist/markers/index.js +97 -0
  208. package/dist/_core/dist/markers/index.js.map +1 -0
  209. package/dist/_core/dist/mcp/config.d.ts +19 -0
  210. package/dist/_core/dist/mcp/config.d.ts.map +1 -0
  211. package/dist/_core/dist/mcp/config.js +114 -0
  212. package/dist/_core/dist/mcp/config.js.map +1 -0
  213. package/dist/_core/dist/mcp/index.d.ts +9 -0
  214. package/dist/_core/dist/mcp/index.d.ts.map +1 -0
  215. package/dist/_core/dist/mcp/index.js +8 -0
  216. package/dist/_core/dist/mcp/index.js.map +1 -0
  217. package/dist/_core/dist/mcp/materializer.d.ts +40 -0
  218. package/dist/_core/dist/mcp/materializer.d.ts.map +1 -0
  219. package/dist/_core/dist/mcp/materializer.js +161 -0
  220. package/dist/_core/dist/mcp/materializer.js.map +1 -0
  221. package/dist/_core/dist/mcp/targets.d.ts +37 -0
  222. package/dist/_core/dist/mcp/targets.d.ts.map +1 -0
  223. package/dist/_core/dist/mcp/targets.js +56 -0
  224. package/dist/_core/dist/mcp/targets.js.map +1 -0
  225. package/dist/_core/dist/mcp/types.d.ts +34 -0
  226. package/dist/_core/dist/mcp/types.d.ts.map +1 -0
  227. package/dist/_core/dist/mcp/types.js +8 -0
  228. package/dist/_core/dist/mcp/types.js.map +1 -0
  229. package/dist/_core/dist/models/analyze.d.ts +131 -0
  230. package/dist/_core/dist/models/analyze.d.ts.map +1 -0
  231. package/dist/_core/dist/models/analyze.js +301 -0
  232. package/dist/_core/dist/models/analyze.js.map +1 -0
  233. package/dist/_core/dist/models/checklist.d.ts +113 -0
  234. package/dist/_core/dist/models/checklist.d.ts.map +1 -0
  235. package/dist/_core/dist/models/checklist.js +159 -0
  236. package/dist/_core/dist/models/checklist.js.map +1 -0
  237. package/dist/_core/dist/models/clarify.d.ts +116 -0
  238. package/dist/_core/dist/models/clarify.d.ts.map +1 -0
  239. package/dist/_core/dist/models/clarify.js +166 -0
  240. package/dist/_core/dist/models/clarify.js.map +1 -0
  241. package/dist/_core/dist/models/impl-log.d.ts +64 -0
  242. package/dist/_core/dist/models/impl-log.d.ts.map +1 -0
  243. package/dist/_core/dist/models/impl-log.js +137 -0
  244. package/dist/_core/dist/models/impl-log.js.map +1 -0
  245. package/dist/_core/dist/models/index.d.ts +8 -0
  246. package/dist/_core/dist/models/index.d.ts.map +1 -0
  247. package/dist/_core/dist/models/index.js +8 -0
  248. package/dist/_core/dist/models/index.js.map +1 -0
  249. package/dist/_core/dist/models/plan.d.ts +24 -0
  250. package/dist/_core/dist/models/plan.d.ts.map +1 -0
  251. package/dist/_core/dist/models/plan.js +15 -0
  252. package/dist/_core/dist/models/plan.js.map +1 -0
  253. package/dist/_core/dist/models/spec.d.ts +23 -0
  254. package/dist/_core/dist/models/spec.d.ts.map +1 -0
  255. package/dist/_core/dist/models/spec.js +22 -0
  256. package/dist/_core/dist/models/spec.js.map +1 -0
  257. package/dist/_core/dist/models/tasks.d.ts +33 -0
  258. package/dist/_core/dist/models/tasks.d.ts.map +1 -0
  259. package/dist/_core/dist/models/tasks.js +78 -0
  260. package/dist/_core/dist/models/tasks.js.map +1 -0
  261. package/dist/_core/dist/presets/gates.d.ts +9 -0
  262. package/dist/_core/dist/presets/gates.d.ts.map +1 -0
  263. package/dist/_core/dist/presets/gates.js +173 -0
  264. package/dist/_core/dist/presets/gates.js.map +1 -0
  265. package/dist/_core/dist/presets/index.d.ts +10 -0
  266. package/dist/_core/dist/presets/index.d.ts.map +1 -0
  267. package/dist/_core/dist/presets/index.js +7 -0
  268. package/dist/_core/dist/presets/index.js.map +1 -0
  269. package/dist/_core/dist/presets/loader.d.ts +56 -0
  270. package/dist/_core/dist/presets/loader.d.ts.map +1 -0
  271. package/dist/_core/dist/presets/loader.js +216 -0
  272. package/dist/_core/dist/presets/loader.js.map +1 -0
  273. package/dist/_core/dist/presets/mobile-opinionated.d.ts +3 -0
  274. package/dist/_core/dist/presets/mobile-opinionated.d.ts.map +1 -0
  275. package/dist/_core/dist/presets/mobile-opinionated.js +78 -0
  276. package/dist/_core/dist/presets/mobile-opinionated.js.map +1 -0
  277. package/dist/_core/dist/presets/registry.d.ts +5 -0
  278. package/dist/_core/dist/presets/registry.d.ts.map +1 -0
  279. package/dist/_core/dist/presets/registry.js +14 -0
  280. package/dist/_core/dist/presets/registry.js.map +1 -0
  281. package/dist/_core/dist/presets/renderer.d.ts +5 -0
  282. package/dist/_core/dist/presets/renderer.d.ts.map +1 -0
  283. package/dist/_core/dist/presets/renderer.js +37 -0
  284. package/dist/_core/dist/presets/renderer.js.map +1 -0
  285. package/dist/_core/dist/presets/stacking.d.ts +29 -0
  286. package/dist/_core/dist/presets/stacking.d.ts.map +1 -0
  287. package/dist/_core/dist/presets/stacking.js +91 -0
  288. package/dist/_core/dist/presets/stacking.js.map +1 -0
  289. package/dist/_core/dist/presets/types.d.ts +22 -0
  290. package/dist/_core/dist/presets/types.d.ts.map +1 -0
  291. package/dist/_core/dist/presets/types.js +2 -0
  292. package/dist/_core/dist/presets/types.js.map +1 -0
  293. package/dist/_core/dist/prompts/audit-log.d.ts +73 -0
  294. package/dist/_core/dist/prompts/audit-log.d.ts.map +1 -0
  295. package/dist/_core/dist/prompts/audit-log.js +73 -0
  296. package/dist/_core/dist/prompts/audit-log.js.map +1 -0
  297. package/dist/_core/dist/prompts/index.d.ts +9 -0
  298. package/dist/_core/dist/prompts/index.d.ts.map +1 -0
  299. package/dist/_core/dist/prompts/index.js +7 -0
  300. package/dist/_core/dist/prompts/index.js.map +1 -0
  301. package/dist/_core/dist/prompts/renderer.d.ts +73 -0
  302. package/dist/_core/dist/prompts/renderer.d.ts.map +1 -0
  303. package/dist/_core/dist/prompts/renderer.js +179 -0
  304. package/dist/_core/dist/prompts/renderer.js.map +1 -0
  305. package/dist/_core/dist/prompts/resumption.d.ts +59 -0
  306. package/dist/_core/dist/prompts/resumption.d.ts.map +1 -0
  307. package/dist/_core/dist/prompts/resumption.js +149 -0
  308. package/dist/_core/dist/prompts/resumption.js.map +1 -0
  309. package/dist/_core/dist/skills/config.d.ts +27 -0
  310. package/dist/_core/dist/skills/config.d.ts.map +1 -0
  311. package/dist/_core/dist/skills/config.js +102 -0
  312. package/dist/_core/dist/skills/config.js.map +1 -0
  313. package/dist/_core/dist/skills/index.d.ts +9 -0
  314. package/dist/_core/dist/skills/index.d.ts.map +1 -0
  315. package/dist/_core/dist/skills/index.js +8 -0
  316. package/dist/_core/dist/skills/index.js.map +1 -0
  317. package/dist/_core/dist/skills/materializer.d.ts +45 -0
  318. package/dist/_core/dist/skills/materializer.d.ts.map +1 -0
  319. package/dist/_core/dist/skills/materializer.js +97 -0
  320. package/dist/_core/dist/skills/materializer.js.map +1 -0
  321. package/dist/_core/dist/skills/registry.d.ts +18 -0
  322. package/dist/_core/dist/skills/registry.d.ts.map +1 -0
  323. package/dist/_core/dist/skills/registry.js +36 -0
  324. package/dist/_core/dist/skills/registry.js.map +1 -0
  325. package/dist/_core/dist/skills/types.d.ts +39 -0
  326. package/dist/_core/dist/skills/types.d.ts.map +1 -0
  327. package/dist/_core/dist/skills/types.js +13 -0
  328. package/dist/_core/dist/skills/types.js.map +1 -0
  329. package/dist/_core/dist/state/feature.d.ts +58 -0
  330. package/dist/_core/dist/state/feature.d.ts.map +1 -0
  331. package/dist/_core/dist/state/feature.js +81 -0
  332. package/dist/_core/dist/state/feature.js.map +1 -0
  333. package/dist/_core/dist/state/index.d.ts +8 -0
  334. package/dist/_core/dist/state/index.d.ts.map +1 -0
  335. package/dist/_core/dist/state/index.js +6 -0
  336. package/dist/_core/dist/state/index.js.map +1 -0
  337. package/dist/_core/dist/state/init-options.d.ts +60 -0
  338. package/dist/_core/dist/state/init-options.d.ts.map +1 -0
  339. package/dist/_core/dist/state/init-options.js +74 -0
  340. package/dist/_core/dist/state/init-options.js.map +1 -0
  341. package/dist/_core/dist/template/engine.d.ts +7 -0
  342. package/dist/_core/dist/template/engine.d.ts.map +1 -0
  343. package/dist/_core/dist/template/engine.js +86 -0
  344. package/dist/_core/dist/template/engine.js.map +1 -0
  345. package/dist/_core/dist/template/helpers.d.ts +5 -0
  346. package/dist/_core/dist/template/helpers.d.ts.map +1 -0
  347. package/dist/_core/dist/template/helpers.js +59 -0
  348. package/dist/_core/dist/template/helpers.js.map +1 -0
  349. package/dist/_core/dist/template/index.d.ts +6 -0
  350. package/dist/_core/dist/template/index.d.ts.map +1 -0
  351. package/dist/_core/dist/template/index.js +6 -0
  352. package/dist/_core/dist/template/index.js.map +1 -0
  353. package/dist/_core/dist/template/loader.d.ts +36 -0
  354. package/dist/_core/dist/template/loader.d.ts.map +1 -0
  355. package/dist/_core/dist/template/loader.js +62 -0
  356. package/dist/_core/dist/template/loader.js.map +1 -0
  357. package/dist/_core/dist/template/parser.d.ts +3 -0
  358. package/dist/_core/dist/template/parser.d.ts.map +1 -0
  359. package/dist/_core/dist/template/parser.js +234 -0
  360. package/dist/_core/dist/template/parser.js.map +1 -0
  361. package/dist/_core/dist/template/types.d.ts +40 -0
  362. package/dist/_core/dist/template/types.d.ts.map +1 -0
  363. package/dist/_core/dist/template/types.js +14 -0
  364. package/dist/_core/dist/template/types.js.map +1 -0
  365. package/dist/_core/dist/verify/a11y.d.ts +36 -0
  366. package/dist/_core/dist/verify/a11y.d.ts.map +1 -0
  367. package/dist/_core/dist/verify/a11y.js +153 -0
  368. package/dist/_core/dist/verify/a11y.js.map +1 -0
  369. package/dist/_core/dist/verify/architecture.d.ts +37 -0
  370. package/dist/_core/dist/verify/architecture.d.ts.map +1 -0
  371. package/dist/_core/dist/verify/architecture.js +113 -0
  372. package/dist/_core/dist/verify/architecture.js.map +1 -0
  373. package/dist/_core/dist/verify/index.d.ts +10 -0
  374. package/dist/_core/dist/verify/index.d.ts.map +1 -0
  375. package/dist/_core/dist/verify/index.js +10 -0
  376. package/dist/_core/dist/verify/index.js.map +1 -0
  377. package/dist/_core/dist/verify/os-matrix.d.ts +35 -0
  378. package/dist/_core/dist/verify/os-matrix.d.ts.map +1 -0
  379. package/dist/_core/dist/verify/os-matrix.js +104 -0
  380. package/dist/_core/dist/verify/os-matrix.js.map +1 -0
  381. package/dist/_core/dist/verify/perf.d.ts +43 -0
  382. package/dist/_core/dist/verify/perf.d.ts.map +1 -0
  383. package/dist/_core/dist/verify/perf.js +69 -0
  384. package/dist/_core/dist/verify/perf.js.map +1 -0
  385. package/dist/_core/dist/verify/stores.d.ts +38 -0
  386. package/dist/_core/dist/verify/stores.d.ts.map +1 -0
  387. package/dist/_core/dist/verify/stores.js +57 -0
  388. package/dist/_core/dist/verify/stores.js.map +1 -0
  389. package/dist/_core/dist/version.d.ts +8 -0
  390. package/dist/_core/dist/version.d.ts.map +1 -0
  391. package/dist/_core/dist/version.js +11 -0
  392. package/dist/_core/dist/version.js.map +1 -0
  393. package/dist/_core/dist/workflows/bundled.d.ts +32 -0
  394. package/dist/_core/dist/workflows/bundled.d.ts.map +1 -0
  395. package/dist/_core/dist/workflows/bundled.js +254 -0
  396. package/dist/_core/dist/workflows/bundled.js.map +1 -0
  397. package/dist/_core/dist/workflows/engine.d.ts +74 -0
  398. package/dist/_core/dist/workflows/engine.d.ts.map +1 -0
  399. package/dist/_core/dist/workflows/engine.js +574 -0
  400. package/dist/_core/dist/workflows/engine.js.map +1 -0
  401. package/dist/_core/dist/workflows/expressions.d.ts +48 -0
  402. package/dist/_core/dist/workflows/expressions.d.ts.map +1 -0
  403. package/dist/_core/dist/workflows/expressions.js +336 -0
  404. package/dist/_core/dist/workflows/expressions.js.map +1 -0
  405. package/dist/_core/dist/workflows/index.d.ts +16 -0
  406. package/dist/_core/dist/workflows/index.d.ts.map +1 -0
  407. package/dist/_core/dist/workflows/index.js +15 -0
  408. package/dist/_core/dist/workflows/index.js.map +1 -0
  409. package/dist/_core/dist/workflows/parser.d.ts +38 -0
  410. package/dist/_core/dist/workflows/parser.d.ts.map +1 -0
  411. package/dist/_core/dist/workflows/parser.js +386 -0
  412. package/dist/_core/dist/workflows/parser.js.map +1 -0
  413. package/dist/_core/dist/workflows/sdd-flow.d.ts +85 -0
  414. package/dist/_core/dist/workflows/sdd-flow.d.ts.map +1 -0
  415. package/dist/_core/dist/workflows/sdd-flow.js +269 -0
  416. package/dist/_core/dist/workflows/sdd-flow.js.map +1 -0
  417. package/dist/_core/dist/workflows/types.d.ts +285 -0
  418. package/dist/_core/dist/workflows/types.d.ts.map +1 -0
  419. package/dist/_core/dist/workflows/types.js +13 -0
  420. package/dist/_core/dist/workflows/types.js.map +1 -0
  421. package/dist/_core/package.json +6 -0
  422. package/dist/_core/templates/constitution.md.hbs +46 -0
  423. package/dist/_core/templates/ghaWorkflow.yml.hbs +58 -0
  424. package/dist/_core/templates/hotfix.md.hbs +39 -0
  425. package/dist/_core/templates/plan.md.hbs +212 -0
  426. package/dist/_core/templates/preCommitHook.sh.hbs +30 -0
  427. package/dist/_core/templates/prePushHook.sh.hbs +45 -0
  428. package/dist/_core/templates/raptor.yml.hbs +24 -0
  429. package/dist/_core/templates/spec.md.hbs +127 -0
  430. package/dist/_core/templates/tasks.md.hbs +71 -0
  431. package/dist/commands/add-agent.d.ts +22 -0
  432. package/dist/commands/add-agent.d.ts.map +1 -0
  433. package/dist/commands/add-agent.js +121 -0
  434. package/dist/commands/add-agent.js.map +1 -0
  435. package/dist/commands/add-extension.d.ts +18 -0
  436. package/dist/commands/add-extension.d.ts.map +1 -0
  437. package/dist/commands/add-extension.js +83 -0
  438. package/dist/commands/add-extension.js.map +1 -0
  439. package/dist/commands/analyze.d.ts +18 -0
  440. package/dist/commands/analyze.d.ts.map +1 -0
  441. package/dist/commands/analyze.js +323 -0
  442. package/dist/commands/analyze.js.map +1 -0
  443. package/dist/commands/approve.d.ts +14 -0
  444. package/dist/commands/approve.d.ts.map +1 -0
  445. package/dist/commands/approve.js +116 -0
  446. package/dist/commands/approve.js.map +1 -0
  447. package/dist/commands/audit/query.d.ts +23 -0
  448. package/dist/commands/audit/query.d.ts.map +1 -0
  449. package/dist/commands/audit/query.js +118 -0
  450. package/dist/commands/audit/query.js.map +1 -0
  451. package/dist/commands/audit/show.d.ts +17 -0
  452. package/dist/commands/audit/show.d.ts.map +1 -0
  453. package/dist/commands/audit/show.js +53 -0
  454. package/dist/commands/audit/show.js.map +1 -0
  455. package/dist/commands/checklist.d.ts +17 -0
  456. package/dist/commands/checklist.d.ts.map +1 -0
  457. package/dist/commands/checklist.js +255 -0
  458. package/dist/commands/checklist.js.map +1 -0
  459. package/dist/commands/clarify.d.ts +17 -0
  460. package/dist/commands/clarify.d.ts.map +1 -0
  461. package/dist/commands/clarify.js +254 -0
  462. package/dist/commands/clarify.js.map +1 -0
  463. package/dist/commands/doctor.d.ts +8 -0
  464. package/dist/commands/doctor.d.ts.map +1 -0
  465. package/dist/commands/doctor.js +435 -0
  466. package/dist/commands/doctor.js.map +1 -0
  467. package/dist/commands/extension/add.d.ts +15 -0
  468. package/dist/commands/extension/add.d.ts.map +1 -0
  469. package/dist/commands/extension/add.js +93 -0
  470. package/dist/commands/extension/add.js.map +1 -0
  471. package/dist/commands/extension/info.d.ts +13 -0
  472. package/dist/commands/extension/info.d.ts.map +1 -0
  473. package/dist/commands/extension/info.js +75 -0
  474. package/dist/commands/extension/info.js.map +1 -0
  475. package/dist/commands/extension/list.d.ts +10 -0
  476. package/dist/commands/extension/list.d.ts.map +1 -0
  477. package/dist/commands/extension/list.js +71 -0
  478. package/dist/commands/extension/list.js.map +1 -0
  479. package/dist/commands/extension/remove.d.ts +14 -0
  480. package/dist/commands/extension/remove.d.ts.map +1 -0
  481. package/dist/commands/extension/remove.js +49 -0
  482. package/dist/commands/extension/remove.js.map +1 -0
  483. package/dist/commands/gate/approve.d.ts +15 -0
  484. package/dist/commands/gate/approve.d.ts.map +1 -0
  485. package/dist/commands/gate/approve.js +106 -0
  486. package/dist/commands/gate/approve.js.map +1 -0
  487. package/dist/commands/gate/list.d.ts +6 -0
  488. package/dist/commands/gate/list.d.ts.map +1 -0
  489. package/dist/commands/gate/list.js +38 -0
  490. package/dist/commands/gate/list.js.map +1 -0
  491. package/dist/commands/gate/skip.d.ts +14 -0
  492. package/dist/commands/gate/skip.d.ts.map +1 -0
  493. package/dist/commands/gate/skip.js +95 -0
  494. package/dist/commands/gate/skip.js.map +1 -0
  495. package/dist/commands/hook/list.d.ts +11 -0
  496. package/dist/commands/hook/list.d.ts.map +1 -0
  497. package/dist/commands/hook/list.js +152 -0
  498. package/dist/commands/hook/list.js.map +1 -0
  499. package/dist/commands/hook/run.d.ts +16 -0
  500. package/dist/commands/hook/run.d.ts.map +1 -0
  501. package/dist/commands/hook/run.js +74 -0
  502. package/dist/commands/hook/run.js.map +1 -0
  503. package/dist/commands/hotfix.d.ts +21 -0
  504. package/dist/commands/hotfix.d.ts.map +1 -0
  505. package/dist/commands/hotfix.js +216 -0
  506. package/dist/commands/hotfix.js.map +1 -0
  507. package/dist/commands/implement.d.ts +19 -0
  508. package/dist/commands/implement.d.ts.map +1 -0
  509. package/dist/commands/implement.js +282 -0
  510. package/dist/commands/implement.js.map +1 -0
  511. package/dist/commands/init.d.ts +43 -0
  512. package/dist/commands/init.d.ts.map +1 -0
  513. package/dist/commands/init.js +465 -0
  514. package/dist/commands/init.js.map +1 -0
  515. package/dist/commands/list-agents.d.ts +12 -0
  516. package/dist/commands/list-agents.d.ts.map +1 -0
  517. package/dist/commands/list-agents.js +55 -0
  518. package/dist/commands/list-agents.js.map +1 -0
  519. package/dist/commands/mcp/add.d.ts +21 -0
  520. package/dist/commands/mcp/add.d.ts.map +1 -0
  521. package/dist/commands/mcp/add.js +119 -0
  522. package/dist/commands/mcp/add.js.map +1 -0
  523. package/dist/commands/mcp/list.d.ts +10 -0
  524. package/dist/commands/mcp/list.d.ts.map +1 -0
  525. package/dist/commands/mcp/list.js +54 -0
  526. package/dist/commands/mcp/list.js.map +1 -0
  527. package/dist/commands/mcp/remove.d.ts +10 -0
  528. package/dist/commands/mcp/remove.d.ts.map +1 -0
  529. package/dist/commands/mcp/remove.js +53 -0
  530. package/dist/commands/mcp/remove.js.map +1 -0
  531. package/dist/commands/mcp/sync.d.ts +7 -0
  532. package/dist/commands/mcp/sync.d.ts.map +1 -0
  533. package/dist/commands/mcp/sync.js +31 -0
  534. package/dist/commands/mcp/sync.js.map +1 -0
  535. package/dist/commands/new.d.ts +19 -0
  536. package/dist/commands/new.d.ts.map +1 -0
  537. package/dist/commands/new.js +306 -0
  538. package/dist/commands/new.js.map +1 -0
  539. package/dist/commands/plan.d.ts +17 -0
  540. package/dist/commands/plan.d.ts.map +1 -0
  541. package/dist/commands/plan.js +200 -0
  542. package/dist/commands/plan.js.map +1 -0
  543. package/dist/commands/preset/add.d.ts +13 -0
  544. package/dist/commands/preset/add.d.ts.map +1 -0
  545. package/dist/commands/preset/add.js +66 -0
  546. package/dist/commands/preset/add.js.map +1 -0
  547. package/dist/commands/preset/info.d.ts +13 -0
  548. package/dist/commands/preset/info.d.ts.map +1 -0
  549. package/dist/commands/preset/info.js +80 -0
  550. package/dist/commands/preset/info.js.map +1 -0
  551. package/dist/commands/preset/list.d.ts +10 -0
  552. package/dist/commands/preset/list.d.ts.map +1 -0
  553. package/dist/commands/preset/list.js +63 -0
  554. package/dist/commands/preset/list.js.map +1 -0
  555. package/dist/commands/preset/remove.d.ts +14 -0
  556. package/dist/commands/preset/remove.d.ts.map +1 -0
  557. package/dist/commands/preset/remove.js +60 -0
  558. package/dist/commands/preset/remove.js.map +1 -0
  559. package/dist/commands/repair/constitution.d.ts +11 -0
  560. package/dist/commands/repair/constitution.d.ts.map +1 -0
  561. package/dist/commands/repair/constitution.js +117 -0
  562. package/dist/commands/repair/constitution.js.map +1 -0
  563. package/dist/commands/resync.d.ts +22 -0
  564. package/dist/commands/resync.d.ts.map +1 -0
  565. package/dist/commands/resync.js +103 -0
  566. package/dist/commands/resync.js.map +1 -0
  567. package/dist/commands/skill/add.d.ts +19 -0
  568. package/dist/commands/skill/add.d.ts.map +1 -0
  569. package/dist/commands/skill/add.js +107 -0
  570. package/dist/commands/skill/add.js.map +1 -0
  571. package/dist/commands/skill/list.d.ts +10 -0
  572. package/dist/commands/skill/list.d.ts.map +1 -0
  573. package/dist/commands/skill/list.js +56 -0
  574. package/dist/commands/skill/list.js.map +1 -0
  575. package/dist/commands/skill/remove.d.ts +10 -0
  576. package/dist/commands/skill/remove.d.ts.map +1 -0
  577. package/dist/commands/skill/remove.js +47 -0
  578. package/dist/commands/skill/remove.js.map +1 -0
  579. package/dist/commands/skill/sync.d.ts +7 -0
  580. package/dist/commands/skill/sync.d.ts.map +1 -0
  581. package/dist/commands/skill/sync.js +30 -0
  582. package/dist/commands/skill/sync.js.map +1 -0
  583. package/dist/commands/status.d.ts +17 -0
  584. package/dist/commands/status.d.ts.map +1 -0
  585. package/dist/commands/status.js +265 -0
  586. package/dist/commands/status.js.map +1 -0
  587. package/dist/commands/tasks.d.ts +16 -0
  588. package/dist/commands/tasks.d.ts.map +1 -0
  589. package/dist/commands/tasks.js +176 -0
  590. package/dist/commands/tasks.js.map +1 -0
  591. package/dist/commands/trace.d.ts +16 -0
  592. package/dist/commands/trace.d.ts.map +1 -0
  593. package/dist/commands/trace.js +113 -0
  594. package/dist/commands/trace.js.map +1 -0
  595. package/dist/commands/upgrade.d.ts +20 -0
  596. package/dist/commands/upgrade.d.ts.map +1 -0
  597. package/dist/commands/upgrade.js +178 -0
  598. package/dist/commands/upgrade.js.map +1 -0
  599. package/dist/commands/verify/a11y.d.ts +15 -0
  600. package/dist/commands/verify/a11y.d.ts.map +1 -0
  601. package/dist/commands/verify/a11y.js +121 -0
  602. package/dist/commands/verify/a11y.js.map +1 -0
  603. package/dist/commands/verify/architecture.d.ts +11 -0
  604. package/dist/commands/verify/architecture.d.ts.map +1 -0
  605. package/dist/commands/verify/architecture.js +71 -0
  606. package/dist/commands/verify/architecture.js.map +1 -0
  607. package/dist/commands/verify/audit.d.ts +18 -0
  608. package/dist/commands/verify/audit.d.ts.map +1 -0
  609. package/dist/commands/verify/audit.js +108 -0
  610. package/dist/commands/verify/audit.js.map +1 -0
  611. package/dist/commands/verify/constitution.d.ts +10 -0
  612. package/dist/commands/verify/constitution.d.ts.map +1 -0
  613. package/dist/commands/verify/constitution.js +91 -0
  614. package/dist/commands/verify/constitution.js.map +1 -0
  615. package/dist/commands/verify/os-matrix.d.ts +14 -0
  616. package/dist/commands/verify/os-matrix.d.ts.map +1 -0
  617. package/dist/commands/verify/os-matrix.js +108 -0
  618. package/dist/commands/verify/os-matrix.js.map +1 -0
  619. package/dist/commands/verify/perf.d.ts +17 -0
  620. package/dist/commands/verify/perf.d.ts.map +1 -0
  621. package/dist/commands/verify/perf.js +106 -0
  622. package/dist/commands/verify/perf.js.map +1 -0
  623. package/dist/commands/verify/stores.d.ts +14 -0
  624. package/dist/commands/verify/stores.d.ts.map +1 -0
  625. package/dist/commands/verify/stores.js +98 -0
  626. package/dist/commands/verify/stores.js.map +1 -0
  627. package/dist/commands/verify.d.ts +14 -0
  628. package/dist/commands/verify.d.ts.map +1 -0
  629. package/dist/commands/verify.js +97 -0
  630. package/dist/commands/verify.js.map +1 -0
  631. package/dist/commands/workflow/catalog.d.ts +11 -0
  632. package/dist/commands/workflow/catalog.d.ts.map +1 -0
  633. package/dist/commands/workflow/catalog.js +164 -0
  634. package/dist/commands/workflow/catalog.js.map +1 -0
  635. package/dist/commands/workflow/list.d.ts +7 -0
  636. package/dist/commands/workflow/list.d.ts.map +1 -0
  637. package/dist/commands/workflow/list.js +50 -0
  638. package/dist/commands/workflow/list.js.map +1 -0
  639. package/dist/commands/workflow/resume.d.ts +13 -0
  640. package/dist/commands/workflow/resume.d.ts.map +1 -0
  641. package/dist/commands/workflow/resume.js +126 -0
  642. package/dist/commands/workflow/resume.js.map +1 -0
  643. package/dist/commands/workflow/run.d.ts +14 -0
  644. package/dist/commands/workflow/run.d.ts.map +1 -0
  645. package/dist/commands/workflow/run.js +139 -0
  646. package/dist/commands/workflow/run.js.map +1 -0
  647. package/dist/commands/workflow/status.d.ts +10 -0
  648. package/dist/commands/workflow/status.d.ts.map +1 -0
  649. package/dist/commands/workflow/status.js +86 -0
  650. package/dist/commands/workflow/status.js.map +1 -0
  651. package/dist/index.d.ts +2 -0
  652. package/dist/index.d.ts.map +1 -0
  653. package/dist/index.js +2 -0
  654. package/dist/index.js.map +1 -0
  655. package/dist/shared/agents.d.ts +12 -0
  656. package/dist/shared/agents.d.ts.map +1 -0
  657. package/dist/shared/agents.js +31 -0
  658. package/dist/shared/agents.js.map +1 -0
  659. package/dist/shared/artifact-io.d.ts +54 -0
  660. package/dist/shared/artifact-io.d.ts.map +1 -0
  661. package/dist/shared/artifact-io.js +71 -0
  662. package/dist/shared/artifact-io.js.map +1 -0
  663. package/dist/shared/feature-prompt.d.ts +18 -0
  664. package/dist/shared/feature-prompt.d.ts.map +1 -0
  665. package/dist/shared/feature-prompt.js +21 -0
  666. package/dist/shared/feature-prompt.js.map +1 -0
  667. package/dist/shared/hooks.d.ts +7 -0
  668. package/dist/shared/hooks.d.ts.map +1 -0
  669. package/dist/shared/hooks.js +52 -0
  670. package/dist/shared/hooks.js.map +1 -0
  671. package/dist/shared/mcp.d.ts +9 -0
  672. package/dist/shared/mcp.d.ts.map +1 -0
  673. package/dist/shared/mcp.js +15 -0
  674. package/dist/shared/mcp.js.map +1 -0
  675. package/dist/shared/project.d.ts +42 -0
  676. package/dist/shared/project.d.ts.map +1 -0
  677. package/dist/shared/project.js +98 -0
  678. package/dist/shared/project.js.map +1 -0
  679. package/dist/shared/workflow-resolver.d.ts +19 -0
  680. package/dist/shared/workflow-resolver.d.ts.map +1 -0
  681. package/dist/shared/workflow-resolver.js +71 -0
  682. package/dist/shared/workflow-resolver.js.map +1 -0
  683. package/dist/workflow/args-builder.d.ts +31 -0
  684. package/dist/workflow/args-builder.d.ts.map +1 -0
  685. package/dist/workflow/args-builder.js +110 -0
  686. package/dist/workflow/args-builder.js.map +1 -0
  687. package/dist/workflow/executor.d.ts +18 -0
  688. package/dist/workflow/executor.d.ts.map +1 -0
  689. package/dist/workflow/executor.js +112 -0
  690. package/dist/workflow/executor.js.map +1 -0
  691. package/extensions/git/commands/rpt.git.feature.md +85 -0
  692. package/extensions/git/extension.yml +47 -0
  693. package/package.json +58 -0
  694. package/scripts/bash/check-prerequisites.sh +149 -0
  695. package/scripts/bash/common.sh +389 -0
  696. package/scripts/bash/create-new-feature.sh +164 -0
  697. package/scripts/bash/setup-plan.sh +113 -0
  698. package/scripts/check-naming.sh +138 -0
  699. package/scripts/check-prompts.sh +165 -0
  700. package/scripts/check-tasks.sh +166 -0
  701. package/scripts/powershell/check-prerequisites.ps1 +117 -0
  702. package/scripts/powershell/common.ps1 +328 -0
  703. package/scripts/powershell/create-new-feature.ps1 +138 -0
  704. package/scripts/powershell/setup-plan.ps1 +96 -0
  705. package/scripts/prepare-npm.mjs +157 -0
  706. package/templates/checklist-template.md +103 -0
  707. package/templates/commands/analyze.md +103 -0
  708. package/templates/commands/checklist.md +87 -0
  709. package/templates/commands/clarify.md +85 -0
  710. package/templates/commands/constitution.md +126 -0
  711. package/templates/commands/implement.md +117 -0
  712. package/templates/commands/plan.md +125 -0
  713. package/templates/commands/specify.md +127 -0
  714. package/templates/commands/tasks.md +98 -0
  715. package/templates/commands/taskstoissues.md +81 -0
  716. package/templates/constitution-template.md +48 -0
  717. package/templates/plan-template.md +150 -0
  718. package/templates/spec-template.md +116 -0
  719. package/templates/tasks-template.md +77 -0
@@ -0,0 +1,261 @@
1
+ /**
2
+ * Canonical Prompt Builder.
3
+ *
4
+ * Assembles a CanonicalPrompt from the feature context.
5
+ * The canonical body is byte-identical across agents (I-04).
6
+ *
7
+ * Blueprint ref: 17.6 — "Prompt canônico normalizado".
8
+ */
9
+ import { existsSync } from "node:fs";
10
+ import { join } from "node:path";
11
+ import { hashString, hashFile } from "../audit/hash.js";
12
+ import { wrapSpec, wrapUntrusted } from "./prompt-markers.js";
13
+ const PHASE_MAP = {
14
+ new: {
15
+ command: "new",
16
+ inputs: [{ filename: "constitution.md", role: "constitution" }],
17
+ expectedOutput: "specs/{feature}/spec.md",
18
+ outputSchema: "raptor.spec/v1",
19
+ scope: {
20
+ read: ["specs/**", ".raptor/constitution.md"],
21
+ write: ["specs/{feature}/**"],
22
+ forbidden: [".raptor/audit.jsonl", ".raptor/constitution.md"],
23
+ },
24
+ bodyTemplate: [
25
+ "## Instrução",
26
+ "",
27
+ "Você é o agente de especificação do Raptor.",
28
+ "Crie o arquivo `spec.md` para a feature descrita abaixo,",
29
+ "seguindo o template de especificação SDD.",
30
+ "",
31
+ "### Requisitos obrigatórios:",
32
+ "1. Toda user story deve ter critérios de aceite mensuráveis.",
33
+ "2. Use marcadores `[NEEDS CLARIFICATION]` para ambiguidades.",
34
+ "3. Inclua seção de Riscos e Dependências.",
35
+ "4. Reference artigos constitucionais aplicáveis.",
36
+ "5. Use numeração sequencial para user stories ([US1], [US2]...).",
37
+ "",
38
+ "### Feature a especificar:",
39
+ "",
40
+ "{{DESCRIPTION}}",
41
+ ].join("\n"),
42
+ },
43
+ plan: {
44
+ command: "plan",
45
+ inputs: [
46
+ { filename: "spec.md", role: "spec" },
47
+ { filename: "constitution.md", role: "constitution" },
48
+ ],
49
+ expectedOutput: "specs/{feature}/plan.md",
50
+ outputSchema: "raptor.plan/v1",
51
+ scope: {
52
+ read: ["specs/{feature}/**", ".raptor/constitution.md"],
53
+ write: ["specs/{feature}/**"],
54
+ forbidden: [".raptor/audit.jsonl", ".raptor/constitution.md"],
55
+ },
56
+ bodyTemplate: [
57
+ "## Instrução",
58
+ "",
59
+ "Você é o agente de planejamento do Raptor.",
60
+ "Gere o `plan.md` traduzindo a spec em decisões técnicas.",
61
+ "",
62
+ "### Requisitos obrigatórios:",
63
+ "1. Execute Phase -1 (Gates Constitucionais) antes de decidir.",
64
+ "2. Referencie cada decisão ao artigo constitucional (C3).",
65
+ "3. Inclua Data Model, Contracts e Research quando aplicável.",
66
+ "4. Gere Complexity Tracking se algum gate for violado.",
67
+ "5. Não invente onde a spec tem `[NEEDS CLARIFICATION]`.",
68
+ ].join("\n"),
69
+ },
70
+ tasks: {
71
+ command: "tasks",
72
+ inputs: [
73
+ { filename: "spec.md", role: "spec" },
74
+ { filename: "plan.md", role: "plan" },
75
+ { filename: "constitution.md", role: "constitution" },
76
+ ],
77
+ expectedOutput: "specs/{feature}/tasks.md",
78
+ outputSchema: "raptor.tasks/v1",
79
+ scope: {
80
+ read: ["specs/{feature}/**", ".raptor/constitution.md"],
81
+ write: ["specs/{feature}/**"],
82
+ forbidden: [".raptor/audit.jsonl", ".raptor/constitution.md"],
83
+ },
84
+ bodyTemplate: [
85
+ "## Instrução",
86
+ "",
87
+ "Você é o agente de decomposição do Raptor.",
88
+ "Gere `tasks.md` quebrando o plano em unidades executáveis.",
89
+ "",
90
+ "### Requisitos obrigatórios:",
91
+ "1. Cada task deve mapear para uma user story ([US1], [US2]...).",
92
+ "2. Marque tasks paralelizáveis com [P].",
93
+ "3. Inclua critério de aceite técnico por task.",
94
+ "4. Ordene pela dependência natural (build-order).",
95
+ "5. Toda task deve ser completável em ≤4h.",
96
+ ].join("\n"),
97
+ },
98
+ implement: {
99
+ command: "implement",
100
+ inputs: [
101
+ { filename: "spec.md", role: "spec" },
102
+ { filename: "plan.md", role: "plan" },
103
+ { filename: "tasks.md", role: "tasks" },
104
+ { filename: "constitution.md", role: "constitution" },
105
+ ],
106
+ expectedOutput: "specs/{feature}/code/**",
107
+ outputSchema: "raptor.code/v1",
108
+ scope: {
109
+ read: ["specs/{feature}/**", "src/**", ".raptor/constitution.md"],
110
+ write: ["src/**", "specs/{feature}/tasks.md"],
111
+ forbidden: [
112
+ ".raptor/audit.jsonl",
113
+ ".raptor/constitution.md",
114
+ "specs/{feature}/spec.md",
115
+ "specs/{feature}/plan.md",
116
+ ],
117
+ },
118
+ bodyTemplate: [
119
+ "## Instrução",
120
+ "",
121
+ "Você é o agente de implementação do Raptor.",
122
+ "Execute as tasks do `tasks.md` em ordem, respeitando o plan.md.",
123
+ "",
124
+ "### Requisitos obrigatórios:",
125
+ "1. Marque cada task como [x] conforme for completando.",
126
+ "2. Respeite EXATAMENTE o escopo de escrita definido.",
127
+ "3. Toda mudança deve ser referenciável à task correspondente.",
128
+ "4. Não altere spec.md nem plan.md — são contratos aprovados.",
129
+ "5. Escreva testes conforme o critério de aceite de cada task.",
130
+ ].join("\n"),
131
+ },
132
+ clarify: {
133
+ command: "clarify",
134
+ inputs: [
135
+ { filename: "spec.md", role: "spec" },
136
+ { filename: "constitution.md", role: "constitution" },
137
+ ],
138
+ expectedOutput: "answers.json",
139
+ outputSchema: "raptor.answers/v1",
140
+ scope: {
141
+ read: ["specs/{feature}/**", ".raptor/constitution.md"],
142
+ write: ["specs/{feature}/answers.json"],
143
+ forbidden: [".raptor/audit.jsonl"],
144
+ },
145
+ bodyTemplate: [
146
+ "## Instrução",
147
+ "",
148
+ "Você é o agente de esclarecimento do Raptor.",
149
+ "Analise os marcadores `[NEEDS CLARIFICATION]` no `spec.md` e sugira resoluções.",
150
+ "",
151
+ "### Saída esperada:",
152
+ 'Um arquivo JSON contendo um array de objetos `{ "label": string, "answer": string }`.',
153
+ ].join("\n"),
154
+ },
155
+ analyze: {
156
+ command: "analyze",
157
+ inputs: [
158
+ { filename: "spec.md", role: "spec" },
159
+ { filename: "plan.md", role: "plan" },
160
+ { filename: "tasks.md", role: "tasks" },
161
+ { filename: "constitution.md", role: "constitution" },
162
+ ],
163
+ expectedOutput: "specs/{feature}/analysis.md",
164
+ outputSchema: "raptor.analysis/v1",
165
+ scope: {
166
+ read: ["specs/{feature}/**", ".raptor/constitution.md"],
167
+ write: ["specs/{feature}/analysis.md"],
168
+ forbidden: [".raptor/audit.jsonl"],
169
+ },
170
+ bodyTemplate: [
171
+ "## Instrução",
172
+ "",
173
+ "Você é o agente de auditoria do Raptor.",
174
+ "Realize uma análise cruzada entre spec, plan e tasks buscando drift ou falhas de cobertura.",
175
+ ].join("\n"),
176
+ },
177
+ checklist: {
178
+ command: "checklist",
179
+ inputs: [
180
+ { filename: "spec.md", role: "spec" },
181
+ { filename: "plan.md", role: "plan" },
182
+ { filename: "constitution.md", role: "constitution" },
183
+ ],
184
+ expectedOutput: "specs/{feature}/checklists/*.md",
185
+ outputSchema: "raptor.checklist/v1",
186
+ scope: {
187
+ read: ["specs/{feature}/**", "src/**", ".raptor/constitution.md"],
188
+ write: ["specs/{feature}/checklists/**"],
189
+ forbidden: [".raptor/audit.jsonl"],
190
+ },
191
+ bodyTemplate: [
192
+ "## Instrução",
193
+ "",
194
+ "Você é o agente de validação do Raptor.",
195
+ "Avalie a implementação ou o design frente aos critérios do checklist.",
196
+ ].join("\n"),
197
+ },
198
+ };
199
+ /**
200
+ * Build a CanonicalPrompt for a given SDD phase.
201
+ *
202
+ * The body is deterministic for a given set of inputs —
203
+ * calling this with the same inputs produces the same hash (I-04).
204
+ */
205
+ export function buildCanonicalPrompt(input) {
206
+ const phase = PHASE_MAP[input.command];
207
+ if (!phase) {
208
+ throw new Error(`Unknown command "${input.command}" — no phase definition found.`);
209
+ }
210
+ const featureDir = join(input.projectRoot, "specs", input.feature);
211
+ const raptorDir = join(input.projectRoot, ".raptor");
212
+ // Resolve inputs
213
+ const inputs = [];
214
+ for (const inp of phase.inputs) {
215
+ const path = inp.filename === "constitution.md"
216
+ ? join(raptorDir, "constitution.md")
217
+ : join(featureDir, inp.filename);
218
+ if (existsSync(path)) {
219
+ inputs.push({ path: inp.filename, hash: hashFile(path), role: inp.role });
220
+ }
221
+ }
222
+ // Resolve body — untrusted user input is wrapped in sanitized markers
223
+ // so an agent cannot be tricked into treating a feature description as
224
+ // a Raptor instruction.
225
+ let body = phase.bodyTemplate;
226
+ if (body.includes("{{DESCRIPTION}}")) {
227
+ const userText = typeof input.description === "string" && input.description.length > 0
228
+ ? input.description
229
+ : "(sem descrição fornecida)";
230
+ body = body.replace("{{DESCRIPTION}}", wrapUntrusted(userText));
231
+ }
232
+ body = wrapSpec(body);
233
+ // Resolve scope with feature substitution
234
+ const resolvePattern = (p) => p.replace("{feature}", input.feature);
235
+ const scope = {
236
+ read: phase.scope.read.map(resolvePattern),
237
+ write: phase.scope.write.map(resolvePattern),
238
+ forbidden: phase.scope.forbidden.map(resolvePattern),
239
+ };
240
+ const promptHash = hashString(body);
241
+ return {
242
+ command: input.command,
243
+ feature: input.feature,
244
+ promptHash,
245
+ generatedAt: new Date().toISOString(),
246
+ body,
247
+ scope,
248
+ invariants: input.invariants ?? [],
249
+ inputs,
250
+ expectedOutput: resolvePattern(phase.expectedOutput),
251
+ outputSchema: phase.outputSchema,
252
+ articles: input.constitutionArticles ?? [],
253
+ };
254
+ }
255
+ /**
256
+ * Get the list of known SDD command names.
257
+ */
258
+ export function knownCommands() {
259
+ return Object.keys(PHASE_MAP);
260
+ }
261
+ //# sourceMappingURL=prompt-builder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-builder.js","sourceRoot":"","sources":["../../src/agents/prompt-builder.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,69 @@
1
+ /**
2
+ * Prompt Markers — delimiters that hedge against prompt injection and
3
+ * let adapters (and downstream parsers) unambiguously extract the
4
+ * canonical body, user description, and untrusted inputs.
5
+ *
6
+ * Rationale:
7
+ * - The canonical prompt is byte-identical across agents (I-04). That
8
+ * means a compromised user description cannot silently inject new
9
+ * instructions — the agent sees the same body regardless.
10
+ * - Markers give the agent an explicit frame: "what's inside BEGIN/END
11
+ * is Raptor's contract; what's inside UNTRUSTED INPUT is user text
12
+ * and MUST NOT be executed as instructions."
13
+ *
14
+ * Blueprint ref: 17.6 — "Prompt canônico normalizado".
15
+ */
16
+ export declare const MARKERS: {
17
+ readonly specBegin: "<<< RAPTOR SPEC BEGIN >>>";
18
+ readonly specEnd: "<<< RAPTOR SPEC END >>>";
19
+ readonly untrustedBegin: "<<< UNTRUSTED INPUT BEGIN >>>";
20
+ readonly untrustedEnd: "<<< UNTRUSTED INPUT END >>>";
21
+ };
22
+ export type MarkerName = keyof typeof MARKERS;
23
+ /**
24
+ * Wrap a body of canonical-spec text between BEGIN/END markers. The body
25
+ * is written as-is (newlines preserved). The body is allowed to already
26
+ * contain UNTRUSTED markers (from `wrapUntrusted`) but must not contain
27
+ * SPEC markers — nesting specs would break `extractSpec`.
28
+ */
29
+ export declare function wrapSpec(body: string): string;
30
+ /**
31
+ * Wrap a block of untrusted user input (e.g. the feature description
32
+ * passed to `raptor new`) between UNTRUSTED markers and strip any
33
+ * occurrence of the control markers from the payload itself.
34
+ *
35
+ * Unlike `wrapSpec`, untrusted content is allowed to "contain" what
36
+ * looks like a marker — we sanitize by replacing those literals with
37
+ * their visually similar counterparts (angle brackets with fullwidth
38
+ * form) so the file stays readable and the real markers remain unique.
39
+ */
40
+ export declare function wrapUntrusted(raw: string): string;
41
+ /**
42
+ * Replace any occurrence of Raptor's marker strings inside untrusted
43
+ * input with a safe placeholder. This prevents a malicious description
44
+ * from ending the untrusted block early and injecting fake "spec" text.
45
+ */
46
+ export declare function sanitizeUntrusted(raw: string): string;
47
+ /**
48
+ * Throw if the input contains any Raptor control marker verbatim.
49
+ * Used on trusted-source text (templates, scope sections) where we
50
+ * expect the author to never include a marker by accident.
51
+ */
52
+ export declare function assertNoMarkers(input: string, label: string): void;
53
+ /**
54
+ * Extract the first spec block from a prompt string. Returns `null` if
55
+ * no complete BEGIN/END pair is found. Used by the artifact verifier to
56
+ * confirm an agent preserved the canonical body.
57
+ */
58
+ export declare function extractSpec(full: string): string | null;
59
+ /**
60
+ * Extract the first untrusted block from a prompt string. Returns `null`
61
+ * if no complete pair is found.
62
+ */
63
+ export declare function extractUntrusted(full: string): string | null;
64
+ /**
65
+ * Return true when the given text contains both the BEGIN and END spec
66
+ * markers in the correct order.
67
+ */
68
+ export declare function hasSpecMarkers(full: string): boolean;
69
+ //# sourceMappingURL=prompt-markers.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-markers.d.ts","sourceRoot":"","sources":["../../src/agents/prompt-markers.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,eAAO,MAAM,OAAO;;;;;CAKV,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,MAAM,OAAO,OAAO,CAAC;AAE9C;;;;;GAKG;AACH,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO7C;AAED;;;;;;;;;GASG;AACH,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAGjD;AAED;;;;GAIG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAQrD;AAED;;;;GAIG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CASlE;AAED;;;;GAIG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAMvD;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAS5D;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAIpD"}
@@ -0,0 +1,111 @@
1
+ /**
2
+ * Prompt Markers — delimiters that hedge against prompt injection and
3
+ * let adapters (and downstream parsers) unambiguously extract the
4
+ * canonical body, user description, and untrusted inputs.
5
+ *
6
+ * Rationale:
7
+ * - The canonical prompt is byte-identical across agents (I-04). That
8
+ * means a compromised user description cannot silently inject new
9
+ * instructions — the agent sees the same body regardless.
10
+ * - Markers give the agent an explicit frame: "what's inside BEGIN/END
11
+ * is Raptor's contract; what's inside UNTRUSTED INPUT is user text
12
+ * and MUST NOT be executed as instructions."
13
+ *
14
+ * Blueprint ref: 17.6 — "Prompt canônico normalizado".
15
+ */
16
+ export const MARKERS = {
17
+ specBegin: "<<< RAPTOR SPEC BEGIN >>>",
18
+ specEnd: "<<< RAPTOR SPEC END >>>",
19
+ untrustedBegin: "<<< UNTRUSTED INPUT BEGIN >>>",
20
+ untrustedEnd: "<<< UNTRUSTED INPUT END >>>",
21
+ };
22
+ /**
23
+ * Wrap a body of canonical-spec text between BEGIN/END markers. The body
24
+ * is written as-is (newlines preserved). The body is allowed to already
25
+ * contain UNTRUSTED markers (from `wrapUntrusted`) but must not contain
26
+ * SPEC markers — nesting specs would break `extractSpec`.
27
+ */
28
+ export function wrapSpec(body) {
29
+ if (body.includes(MARKERS.specBegin) || body.includes(MARKERS.specEnd)) {
30
+ throw new Error(`spec body already contains SPEC BEGIN/END markers. Nested specs are not allowed.`);
31
+ }
32
+ return `${MARKERS.specBegin}\n${body.trim()}\n${MARKERS.specEnd}`;
33
+ }
34
+ /**
35
+ * Wrap a block of untrusted user input (e.g. the feature description
36
+ * passed to `raptor new`) between UNTRUSTED markers and strip any
37
+ * occurrence of the control markers from the payload itself.
38
+ *
39
+ * Unlike `wrapSpec`, untrusted content is allowed to "contain" what
40
+ * looks like a marker — we sanitize by replacing those literals with
41
+ * their visually similar counterparts (angle brackets with fullwidth
42
+ * form) so the file stays readable and the real markers remain unique.
43
+ */
44
+ export function wrapUntrusted(raw) {
45
+ const sanitized = sanitizeUntrusted(raw);
46
+ return `${MARKERS.untrustedBegin}\n${sanitized.trim()}\n${MARKERS.untrustedEnd}`;
47
+ }
48
+ /**
49
+ * Replace any occurrence of Raptor's marker strings inside untrusted
50
+ * input with a safe placeholder. This prevents a malicious description
51
+ * from ending the untrusted block early and injecting fake "spec" text.
52
+ */
53
+ export function sanitizeUntrusted(raw) {
54
+ let out = raw;
55
+ for (const marker of Object.values(MARKERS)) {
56
+ // Escape regex meta chars in the marker before building the pattern.
57
+ const escaped = marker.replace(/[.*+?^${}()|[\]\\]/g, "\\$&");
58
+ out = out.replace(new RegExp(escaped, "g"), "[marker removed]");
59
+ }
60
+ return out;
61
+ }
62
+ /**
63
+ * Throw if the input contains any Raptor control marker verbatim.
64
+ * Used on trusted-source text (templates, scope sections) where we
65
+ * expect the author to never include a marker by accident.
66
+ */
67
+ export function assertNoMarkers(input, label) {
68
+ for (const [name, marker] of Object.entries(MARKERS)) {
69
+ if (input.includes(marker)) {
70
+ throw new Error(`${label} contains reserved marker "${name}" (${marker}). ` +
71
+ `Rename the occurrence — Raptor reserves BEGIN/END and UNTRUSTED markers.`);
72
+ }
73
+ }
74
+ }
75
+ /**
76
+ * Extract the first spec block from a prompt string. Returns `null` if
77
+ * no complete BEGIN/END pair is found. Used by the artifact verifier to
78
+ * confirm an agent preserved the canonical body.
79
+ */
80
+ export function extractSpec(full) {
81
+ const start = full.indexOf(MARKERS.specBegin);
82
+ if (start === -1)
83
+ return null;
84
+ const end = full.indexOf(MARKERS.specEnd, start + MARKERS.specBegin.length);
85
+ if (end === -1)
86
+ return null;
87
+ return full.slice(start + MARKERS.specBegin.length, end).trim();
88
+ }
89
+ /**
90
+ * Extract the first untrusted block from a prompt string. Returns `null`
91
+ * if no complete pair is found.
92
+ */
93
+ export function extractUntrusted(full) {
94
+ const start = full.indexOf(MARKERS.untrustedBegin);
95
+ if (start === -1)
96
+ return null;
97
+ const end = full.indexOf(MARKERS.untrustedEnd, start + MARKERS.untrustedBegin.length);
98
+ if (end === -1)
99
+ return null;
100
+ return full.slice(start + MARKERS.untrustedBegin.length, end).trim();
101
+ }
102
+ /**
103
+ * Return true when the given text contains both the BEGIN and END spec
104
+ * markers in the correct order.
105
+ */
106
+ export function hasSpecMarkers(full) {
107
+ const start = full.indexOf(MARKERS.specBegin);
108
+ const end = full.indexOf(MARKERS.specEnd);
109
+ return start !== -1 && end !== -1 && end > start;
110
+ }
111
+ //# sourceMappingURL=prompt-markers.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"prompt-markers.js","sourceRoot":"","sources":["../../src/agents/prompt-markers.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Agent Registry — singleton that manages all known agent adapters.
3
+ *
4
+ * This is the ONLY entry point for the rest of the system to access agents.
5
+ * No other module should import adapters directly (blueprint 03§4).
6
+ */
7
+ import type { AgentAdapter } from "./types.js";
8
+ /**
9
+ * Register a custom agent adapter (for extensions).
10
+ * Throws if an adapter with the same id already exists.
11
+ */
12
+ export declare function registerAgent(adapter: AgentAdapter): void;
13
+ /**
14
+ * Get an adapter by its canonical key.
15
+ */
16
+ export declare function getAgent(id: string): AgentAdapter | undefined;
17
+ /**
18
+ * List all registered adapters.
19
+ */
20
+ export declare function listAgents(): AgentAdapter[];
21
+ /**
22
+ * List adapter keys in deterministic order.
23
+ */
24
+ export declare function knownAgentIds(): string[];
25
+ /**
26
+ * Detect which agents are actually installed on this system.
27
+ * Runs each adapter's `installCheck` command and returns those that succeed.
28
+ */
29
+ export declare function detectInstalledAgents(): AgentAdapter[];
30
+ /**
31
+ * Resolve an agent by kind string (used when parsing agents.yml).
32
+ * "kind" maps to adapter "id".
33
+ */
34
+ export declare function getAgentByKind(kind: string): AgentAdapter | undefined;
35
+ //# sourceMappingURL=registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/agents/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AA+B/C;;;GAGG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI,CAMzD;AAED;;GAEG;AACH,wBAAgB,QAAQ,CAAC,EAAE,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAG7D;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,YAAY,EAAE,CAG3C;AAED;;GAEG;AACH,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAGxC;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,IAAI,YAAY,EAAE,CAgBtD;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,SAAS,CAMrE"}
@@ -0,0 +1,102 @@
1
+ /**
2
+ * Agent Registry — singleton that manages all known agent adapters.
3
+ *
4
+ * This is the ONLY entry point for the rest of the system to access agents.
5
+ * No other module should import adapters directly (blueprint 03§4).
6
+ */
7
+ import { claudeCodeAdapter } from "./adapters/claude-code.js";
8
+ import { cursorAdapter } from "./adapters/cursor.js";
9
+ import { antigravityAdapter } from "./adapters/antigravity.js";
10
+ import { geminiAdapter } from "./adapters/gemini.js";
11
+ import { copilotAdapter } from "./adapters/copilot.js";
12
+ import { codexAdapter } from "./adapters/codex.js";
13
+ import { humanAdapter } from "./adapters/human.js";
14
+ import { execSync } from "node:child_process";
15
+ // ---------------------------------------------------------------------------
16
+ // Registry singleton
17
+ // ---------------------------------------------------------------------------
18
+ const REGISTRY = new Map();
19
+ function ensureBuiltins() {
20
+ if (REGISTRY.size > 0)
21
+ return;
22
+ for (const adapter of [
23
+ claudeCodeAdapter,
24
+ cursorAdapter,
25
+ antigravityAdapter,
26
+ geminiAdapter,
27
+ copilotAdapter,
28
+ codexAdapter,
29
+ humanAdapter,
30
+ ]) {
31
+ REGISTRY.set(adapter.id, adapter);
32
+ }
33
+ }
34
+ /**
35
+ * Register a custom agent adapter (for extensions).
36
+ * Throws if an adapter with the same id already exists.
37
+ */
38
+ export function registerAgent(adapter) {
39
+ ensureBuiltins();
40
+ if (REGISTRY.has(adapter.id)) {
41
+ throw new Error(`Agent adapter "${adapter.id}" is already registered.`);
42
+ }
43
+ REGISTRY.set(adapter.id, adapter);
44
+ }
45
+ /**
46
+ * Get an adapter by its canonical key.
47
+ */
48
+ export function getAgent(id) {
49
+ ensureBuiltins();
50
+ return REGISTRY.get(id);
51
+ }
52
+ /**
53
+ * List all registered adapters.
54
+ */
55
+ export function listAgents() {
56
+ ensureBuiltins();
57
+ return [...REGISTRY.values()];
58
+ }
59
+ /**
60
+ * List adapter keys in deterministic order.
61
+ */
62
+ export function knownAgentIds() {
63
+ ensureBuiltins();
64
+ return [...REGISTRY.keys()];
65
+ }
66
+ /**
67
+ * Detect which agents are actually installed on this system.
68
+ * Runs each adapter's `installCheck` command and returns those that succeed.
69
+ */
70
+ export function detectInstalledAgents() {
71
+ ensureBuiltins();
72
+ const installed = [];
73
+ for (const adapter of REGISTRY.values()) {
74
+ if (adapter.id === "human")
75
+ continue; // always available
76
+ if (!adapter.installCheck)
77
+ continue;
78
+ try {
79
+ execSync(adapter.installCheck, { stdio: "ignore", timeout: 5000 });
80
+ installed.push(adapter);
81
+ }
82
+ catch {
83
+ // not installed or check failed
84
+ }
85
+ }
86
+ // Human is always available as the ultimate fallback
87
+ installed.push(humanAdapter);
88
+ return installed;
89
+ }
90
+ /**
91
+ * Resolve an agent by kind string (used when parsing agents.yml).
92
+ * "kind" maps to adapter "id".
93
+ */
94
+ export function getAgentByKind(kind) {
95
+ ensureBuiltins();
96
+ for (const adapter of REGISTRY.values()) {
97
+ if (adapter.id === kind)
98
+ return adapter;
99
+ }
100
+ return undefined;
101
+ }
102
+ //# sourceMappingURL=registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/agents/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Agent Selector — deterministic agent selection algorithm.
3
+ *
4
+ * Implements the selection policy from §17.4:
5
+ * 1. --agent flag → manual override
6
+ * 2. policy.byCommand[command] → command-specific default
7
+ * 3. policy.default → global fallback
8
+ * 4. installCheck → validate availability, else fallback_chain[next]
9
+ * 5. chain exhausted → abort
10
+ *
11
+ * Blueprint ref: 17.4 — "Algoritmo de seleção de agente".
12
+ */
13
+ import type { AgentsConfig, AgentAdapter } from "./types.js";
14
+ export interface SelectionResult {
15
+ /** Selected agent adapter. */
16
+ agent: AgentAdapter;
17
+ /** Agent entry id from agents.yml. */
18
+ agentEntryId: string;
19
+ /** Why this agent was selected. */
20
+ reason: "flag_override" | "command_policy" | "default_policy" | "fallback_chain" | "human_fallback";
21
+ }
22
+ export declare class AgentSelectionError extends Error {
23
+ constructor(command: string, triedIds: string[]);
24
+ }
25
+ /**
26
+ * Select the appropriate agent for a command.
27
+ *
28
+ * @param config — Parsed agents.yml
29
+ * @param command — The SDD command being executed (new, plan, tasks, implement)
30
+ * @param flagOverride — Optional --agent CLI flag value (agent entry id)
31
+ */
32
+ export declare function selectAgent(config: AgentsConfig, command: string, flagOverride?: string): SelectionResult;
33
+ //# sourceMappingURL=selector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"selector.d.ts","sourceRoot":"","sources":["../../src/agents/selector.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAQ7D,MAAM,WAAW,eAAe;IAC9B,8BAA8B;IAC9B,KAAK,EAAE,YAAY,CAAC;IACpB,sCAAsC;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,mCAAmC;IACnC,MAAM,EACF,eAAe,GACf,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,GAChB,gBAAgB,CAAC;CACtB;AAED,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE;CAQhD;AAMD;;;;;;GAMG;AACH,wBAAgB,WAAW,CACzB,MAAM,EAAE,YAAY,EACpB,OAAO,EAAE,MAAM,EACf,YAAY,CAAC,EAAE,MAAM,GACpB,eAAe,CA0EjB"}