@stoneforge/smithy 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 (497) hide show
  1. package/LICENSE +13 -0
  2. package/README.md +114 -0
  3. package/dist/api/index.d.ts +7 -0
  4. package/dist/api/index.d.ts.map +1 -0
  5. package/dist/api/index.js +7 -0
  6. package/dist/api/index.js.map +1 -0
  7. package/dist/api/orchestrator-api.d.ts +153 -0
  8. package/dist/api/orchestrator-api.d.ts.map +1 -0
  9. package/dist/api/orchestrator-api.js +374 -0
  10. package/dist/api/orchestrator-api.js.map +1 -0
  11. package/dist/bin/sf.d.ts +3 -0
  12. package/dist/bin/sf.d.ts.map +1 -0
  13. package/dist/bin/sf.js +10 -0
  14. package/dist/bin/sf.js.map +1 -0
  15. package/dist/cli/commands/agent.d.ts +20 -0
  16. package/dist/cli/commands/agent.d.ts.map +1 -0
  17. package/dist/cli/commands/agent.js +861 -0
  18. package/dist/cli/commands/agent.js.map +1 -0
  19. package/dist/cli/commands/daemon.d.ts +14 -0
  20. package/dist/cli/commands/daemon.d.ts.map +1 -0
  21. package/dist/cli/commands/daemon.js +272 -0
  22. package/dist/cli/commands/daemon.js.map +1 -0
  23. package/dist/cli/commands/dispatch.d.ts +9 -0
  24. package/dist/cli/commands/dispatch.d.ts.map +1 -0
  25. package/dist/cli/commands/dispatch.js +128 -0
  26. package/dist/cli/commands/dispatch.js.map +1 -0
  27. package/dist/cli/commands/merge.d.ts +11 -0
  28. package/dist/cli/commands/merge.d.ts.map +1 -0
  29. package/dist/cli/commands/merge.js +246 -0
  30. package/dist/cli/commands/merge.js.map +1 -0
  31. package/dist/cli/commands/pool.d.ts +21 -0
  32. package/dist/cli/commands/pool.d.ts.map +1 -0
  33. package/dist/cli/commands/pool.js +762 -0
  34. package/dist/cli/commands/pool.js.map +1 -0
  35. package/dist/cli/commands/serve.d.ts +54 -0
  36. package/dist/cli/commands/serve.d.ts.map +1 -0
  37. package/dist/cli/commands/serve.js +57 -0
  38. package/dist/cli/commands/serve.js.map +1 -0
  39. package/dist/cli/commands/task.d.ts +36 -0
  40. package/dist/cli/commands/task.d.ts.map +1 -0
  41. package/dist/cli/commands/task.js +889 -0
  42. package/dist/cli/commands/task.js.map +1 -0
  43. package/dist/cli/commands/test-orchestration.d.ts +32 -0
  44. package/dist/cli/commands/test-orchestration.d.ts.map +1 -0
  45. package/dist/cli/commands/test-orchestration.js +392 -0
  46. package/dist/cli/commands/test-orchestration.js.map +1 -0
  47. package/dist/cli/index.d.ts +13 -0
  48. package/dist/cli/index.d.ts.map +1 -0
  49. package/dist/cli/index.js +15 -0
  50. package/dist/cli/index.js.map +1 -0
  51. package/dist/cli/plugin.d.ts +23 -0
  52. package/dist/cli/plugin.d.ts.map +1 -0
  53. package/dist/cli/plugin.js +36 -0
  54. package/dist/cli/plugin.js.map +1 -0
  55. package/dist/git/index.d.ts +10 -0
  56. package/dist/git/index.d.ts.map +1 -0
  57. package/dist/git/index.js +12 -0
  58. package/dist/git/index.js.map +1 -0
  59. package/dist/git/merge.d.ts +79 -0
  60. package/dist/git/merge.d.ts.map +1 -0
  61. package/dist/git/merge.js +254 -0
  62. package/dist/git/merge.js.map +1 -0
  63. package/dist/git/worktree-manager.d.ts +299 -0
  64. package/dist/git/worktree-manager.d.ts.map +1 -0
  65. package/dist/git/worktree-manager.js +744 -0
  66. package/dist/git/worktree-manager.js.map +1 -0
  67. package/dist/index.d.ts +24 -0
  68. package/dist/index.d.ts.map +1 -0
  69. package/dist/index.js +31 -0
  70. package/dist/index.js.map +1 -0
  71. package/dist/prompts/director.md +272 -0
  72. package/dist/prompts/index.d.ts +100 -0
  73. package/dist/prompts/index.d.ts.map +1 -0
  74. package/dist/prompts/index.js +294 -0
  75. package/dist/prompts/index.js.map +1 -0
  76. package/dist/prompts/message-triage.md +50 -0
  77. package/dist/prompts/persistent-worker.md +240 -0
  78. package/dist/prompts/steward-base.md +64 -0
  79. package/dist/prompts/steward-docs.md +118 -0
  80. package/dist/prompts/steward-health.md +39 -0
  81. package/dist/prompts/steward-merge.md +168 -0
  82. package/dist/prompts/steward-ops.md +28 -0
  83. package/dist/prompts/steward-reminder.md +26 -0
  84. package/dist/prompts/worker.md +282 -0
  85. package/dist/providers/claude/headless.d.ts +18 -0
  86. package/dist/providers/claude/headless.d.ts.map +1 -0
  87. package/dist/providers/claude/headless.js +307 -0
  88. package/dist/providers/claude/headless.js.map +1 -0
  89. package/dist/providers/claude/index.d.ts +24 -0
  90. package/dist/providers/claude/index.d.ts.map +1 -0
  91. package/dist/providers/claude/index.js +80 -0
  92. package/dist/providers/claude/index.js.map +1 -0
  93. package/dist/providers/claude/interactive.d.ts +21 -0
  94. package/dist/providers/claude/interactive.d.ts.map +1 -0
  95. package/dist/providers/claude/interactive.js +142 -0
  96. package/dist/providers/claude/interactive.js.map +1 -0
  97. package/dist/providers/codex/event-mapper.d.ts +91 -0
  98. package/dist/providers/codex/event-mapper.d.ts.map +1 -0
  99. package/dist/providers/codex/event-mapper.js +299 -0
  100. package/dist/providers/codex/event-mapper.js.map +1 -0
  101. package/dist/providers/codex/headless.d.ts +20 -0
  102. package/dist/providers/codex/headless.d.ts.map +1 -0
  103. package/dist/providers/codex/headless.js +174 -0
  104. package/dist/providers/codex/headless.js.map +1 -0
  105. package/dist/providers/codex/index.d.ts +30 -0
  106. package/dist/providers/codex/index.d.ts.map +1 -0
  107. package/dist/providers/codex/index.js +55 -0
  108. package/dist/providers/codex/index.js.map +1 -0
  109. package/dist/providers/codex/interactive.d.ts +21 -0
  110. package/dist/providers/codex/interactive.d.ts.map +1 -0
  111. package/dist/providers/codex/interactive.js +141 -0
  112. package/dist/providers/codex/interactive.js.map +1 -0
  113. package/dist/providers/codex/jsonrpc-client.d.ts +52 -0
  114. package/dist/providers/codex/jsonrpc-client.d.ts.map +1 -0
  115. package/dist/providers/codex/jsonrpc-client.js +141 -0
  116. package/dist/providers/codex/jsonrpc-client.js.map +1 -0
  117. package/dist/providers/codex/server-manager.d.ts +100 -0
  118. package/dist/providers/codex/server-manager.d.ts.map +1 -0
  119. package/dist/providers/codex/server-manager.js +153 -0
  120. package/dist/providers/codex/server-manager.js.map +1 -0
  121. package/dist/providers/index.d.ts +15 -0
  122. package/dist/providers/index.d.ts.map +1 -0
  123. package/dist/providers/index.js +19 -0
  124. package/dist/providers/index.js.map +1 -0
  125. package/dist/providers/opencode/async-queue.d.ts +21 -0
  126. package/dist/providers/opencode/async-queue.d.ts.map +1 -0
  127. package/dist/providers/opencode/async-queue.js +51 -0
  128. package/dist/providers/opencode/async-queue.js.map +1 -0
  129. package/dist/providers/opencode/event-mapper.d.ts +132 -0
  130. package/dist/providers/opencode/event-mapper.d.ts.map +1 -0
  131. package/dist/providers/opencode/event-mapper.js +204 -0
  132. package/dist/providers/opencode/event-mapper.js.map +1 -0
  133. package/dist/providers/opencode/headless.d.ts +25 -0
  134. package/dist/providers/opencode/headless.d.ts.map +1 -0
  135. package/dist/providers/opencode/headless.js +190 -0
  136. package/dist/providers/opencode/headless.js.map +1 -0
  137. package/dist/providers/opencode/index.d.ts +33 -0
  138. package/dist/providers/opencode/index.d.ts.map +1 -0
  139. package/dist/providers/opencode/index.js +42 -0
  140. package/dist/providers/opencode/index.js.map +1 -0
  141. package/dist/providers/opencode/interactive.d.ts +21 -0
  142. package/dist/providers/opencode/interactive.d.ts.map +1 -0
  143. package/dist/providers/opencode/interactive.js +135 -0
  144. package/dist/providers/opencode/interactive.js.map +1 -0
  145. package/dist/providers/opencode/server-manager.d.ts +145 -0
  146. package/dist/providers/opencode/server-manager.d.ts.map +1 -0
  147. package/dist/providers/opencode/server-manager.js +163 -0
  148. package/dist/providers/opencode/server-manager.js.map +1 -0
  149. package/dist/providers/registry.d.ts +38 -0
  150. package/dist/providers/registry.d.ts.map +1 -0
  151. package/dist/providers/registry.js +82 -0
  152. package/dist/providers/registry.js.map +1 -0
  153. package/dist/providers/types.d.ts +144 -0
  154. package/dist/providers/types.d.ts.map +1 -0
  155. package/dist/providers/types.js +25 -0
  156. package/dist/providers/types.js.map +1 -0
  157. package/dist/runtime/event-utils.d.ts +8 -0
  158. package/dist/runtime/event-utils.d.ts.map +1 -0
  159. package/dist/runtime/event-utils.js +23 -0
  160. package/dist/runtime/event-utils.js.map +1 -0
  161. package/dist/runtime/handoff.d.ts +195 -0
  162. package/dist/runtime/handoff.d.ts.map +1 -0
  163. package/dist/runtime/handoff.js +332 -0
  164. package/dist/runtime/handoff.js.map +1 -0
  165. package/dist/runtime/index.d.ts +17 -0
  166. package/dist/runtime/index.d.ts.map +1 -0
  167. package/dist/runtime/index.js +60 -0
  168. package/dist/runtime/index.js.map +1 -0
  169. package/dist/runtime/message-mapper.d.ts +99 -0
  170. package/dist/runtime/message-mapper.d.ts.map +1 -0
  171. package/dist/runtime/message-mapper.js +202 -0
  172. package/dist/runtime/message-mapper.js.map +1 -0
  173. package/dist/runtime/predecessor-query.d.ts +212 -0
  174. package/dist/runtime/predecessor-query.d.ts.map +1 -0
  175. package/dist/runtime/predecessor-query.js +283 -0
  176. package/dist/runtime/predecessor-query.js.map +1 -0
  177. package/dist/runtime/session-manager.d.ts +466 -0
  178. package/dist/runtime/session-manager.d.ts.map +1 -0
  179. package/dist/runtime/session-manager.js +986 -0
  180. package/dist/runtime/session-manager.js.map +1 -0
  181. package/dist/runtime/spawner.d.ts +407 -0
  182. package/dist/runtime/spawner.d.ts.map +1 -0
  183. package/dist/runtime/spawner.js +781 -0
  184. package/dist/runtime/spawner.js.map +1 -0
  185. package/dist/server/config.d.ts +22 -0
  186. package/dist/server/config.d.ts.map +1 -0
  187. package/dist/server/config.js +59 -0
  188. package/dist/server/config.js.map +1 -0
  189. package/dist/server/daemon-state.d.ts +50 -0
  190. package/dist/server/daemon-state.d.ts.map +1 -0
  191. package/dist/server/daemon-state.js +100 -0
  192. package/dist/server/daemon-state.js.map +1 -0
  193. package/dist/server/events-websocket.d.ts +32 -0
  194. package/dist/server/events-websocket.d.ts.map +1 -0
  195. package/dist/server/events-websocket.js +96 -0
  196. package/dist/server/events-websocket.js.map +1 -0
  197. package/dist/server/formatters.d.ts +94 -0
  198. package/dist/server/formatters.d.ts.map +1 -0
  199. package/dist/server/formatters.js +142 -0
  200. package/dist/server/formatters.js.map +1 -0
  201. package/dist/server/index.d.ts +17 -0
  202. package/dist/server/index.d.ts.map +1 -0
  203. package/dist/server/index.js +153 -0
  204. package/dist/server/index.js.map +1 -0
  205. package/dist/server/lsp-websocket.d.ts +33 -0
  206. package/dist/server/lsp-websocket.d.ts.map +1 -0
  207. package/dist/server/lsp-websocket.js +161 -0
  208. package/dist/server/lsp-websocket.js.map +1 -0
  209. package/dist/server/routes/agents.d.ts +9 -0
  210. package/dist/server/routes/agents.d.ts.map +1 -0
  211. package/dist/server/routes/agents.js +369 -0
  212. package/dist/server/routes/agents.js.map +1 -0
  213. package/dist/server/routes/daemon.d.ts +13 -0
  214. package/dist/server/routes/daemon.d.ts.map +1 -0
  215. package/dist/server/routes/daemon.js +187 -0
  216. package/dist/server/routes/daemon.js.map +1 -0
  217. package/dist/server/routes/events.d.ts +23 -0
  218. package/dist/server/routes/events.d.ts.map +1 -0
  219. package/dist/server/routes/events.js +282 -0
  220. package/dist/server/routes/events.js.map +1 -0
  221. package/dist/server/routes/extensions.d.ts +9 -0
  222. package/dist/server/routes/extensions.d.ts.map +1 -0
  223. package/dist/server/routes/extensions.js +202 -0
  224. package/dist/server/routes/extensions.js.map +1 -0
  225. package/dist/server/routes/health.d.ts +7 -0
  226. package/dist/server/routes/health.d.ts.map +1 -0
  227. package/dist/server/routes/health.js +33 -0
  228. package/dist/server/routes/health.js.map +1 -0
  229. package/dist/server/routes/index.d.ts +21 -0
  230. package/dist/server/routes/index.d.ts.map +1 -0
  231. package/dist/server/routes/index.js +21 -0
  232. package/dist/server/routes/index.js.map +1 -0
  233. package/dist/server/routes/lsp.d.ts +9 -0
  234. package/dist/server/routes/lsp.d.ts.map +1 -0
  235. package/dist/server/routes/lsp.js +50 -0
  236. package/dist/server/routes/lsp.js.map +1 -0
  237. package/dist/server/routes/plugins.d.ts +9 -0
  238. package/dist/server/routes/plugins.d.ts.map +1 -0
  239. package/dist/server/routes/plugins.js +109 -0
  240. package/dist/server/routes/plugins.js.map +1 -0
  241. package/dist/server/routes/pools.d.ts +9 -0
  242. package/dist/server/routes/pools.d.ts.map +1 -0
  243. package/dist/server/routes/pools.js +189 -0
  244. package/dist/server/routes/pools.js.map +1 -0
  245. package/dist/server/routes/scheduler.d.ts +9 -0
  246. package/dist/server/routes/scheduler.d.ts.map +1 -0
  247. package/dist/server/routes/scheduler.js +162 -0
  248. package/dist/server/routes/scheduler.js.map +1 -0
  249. package/dist/server/routes/sessions.d.ts +27 -0
  250. package/dist/server/routes/sessions.d.ts.map +1 -0
  251. package/dist/server/routes/sessions.js +773 -0
  252. package/dist/server/routes/sessions.js.map +1 -0
  253. package/dist/server/routes/tasks.d.ts +9 -0
  254. package/dist/server/routes/tasks.d.ts.map +1 -0
  255. package/dist/server/routes/tasks.js +954 -0
  256. package/dist/server/routes/tasks.js.map +1 -0
  257. package/dist/server/routes/upload.d.ts +8 -0
  258. package/dist/server/routes/upload.d.ts.map +1 -0
  259. package/dist/server/routes/upload.js +40 -0
  260. package/dist/server/routes/upload.js.map +1 -0
  261. package/dist/server/routes/workflows.d.ts +9 -0
  262. package/dist/server/routes/workflows.d.ts.map +1 -0
  263. package/dist/server/routes/workflows.js +532 -0
  264. package/dist/server/routes/workflows.js.map +1 -0
  265. package/dist/server/routes/workspace-files.d.ts +12 -0
  266. package/dist/server/routes/workspace-files.d.ts.map +1 -0
  267. package/dist/server/routes/workspace-files.js +520 -0
  268. package/dist/server/routes/workspace-files.js.map +1 -0
  269. package/dist/server/routes/worktrees.d.ts +9 -0
  270. package/dist/server/routes/worktrees.d.ts.map +1 -0
  271. package/dist/server/routes/worktrees.js +94 -0
  272. package/dist/server/routes/worktrees.js.map +1 -0
  273. package/dist/server/server.d.ts +14 -0
  274. package/dist/server/server.d.ts.map +1 -0
  275. package/dist/server/server.js +258 -0
  276. package/dist/server/server.js.map +1 -0
  277. package/dist/server/services/lsp-manager.d.ts +93 -0
  278. package/dist/server/services/lsp-manager.d.ts.map +1 -0
  279. package/dist/server/services/lsp-manager.js +291 -0
  280. package/dist/server/services/lsp-manager.js.map +1 -0
  281. package/dist/server/services/session-messages.d.ts +61 -0
  282. package/dist/server/services/session-messages.d.ts.map +1 -0
  283. package/dist/server/services/session-messages.js +101 -0
  284. package/dist/server/services/session-messages.js.map +1 -0
  285. package/dist/server/services.d.ts +35 -0
  286. package/dist/server/services.d.ts.map +1 -0
  287. package/dist/server/services.js +159 -0
  288. package/dist/server/services.js.map +1 -0
  289. package/dist/server/static.d.ts +18 -0
  290. package/dist/server/static.d.ts.map +1 -0
  291. package/dist/server/static.js +71 -0
  292. package/dist/server/static.js.map +1 -0
  293. package/dist/server/types.d.ts +20 -0
  294. package/dist/server/types.d.ts.map +1 -0
  295. package/dist/server/types.js +7 -0
  296. package/dist/server/types.js.map +1 -0
  297. package/dist/server/websocket.d.ts +16 -0
  298. package/dist/server/websocket.d.ts.map +1 -0
  299. package/dist/server/websocket.js +143 -0
  300. package/dist/server/websocket.js.map +1 -0
  301. package/dist/services/agent-pool-service.d.ts +181 -0
  302. package/dist/services/agent-pool-service.d.ts.map +1 -0
  303. package/dist/services/agent-pool-service.js +590 -0
  304. package/dist/services/agent-pool-service.js.map +1 -0
  305. package/dist/services/agent-registry.d.ts +185 -0
  306. package/dist/services/agent-registry.d.ts.map +1 -0
  307. package/dist/services/agent-registry.js +432 -0
  308. package/dist/services/agent-registry.js.map +1 -0
  309. package/dist/services/dispatch-daemon.d.ts +429 -0
  310. package/dist/services/dispatch-daemon.d.ts.map +1 -0
  311. package/dist/services/dispatch-daemon.js +1833 -0
  312. package/dist/services/dispatch-daemon.js.map +1 -0
  313. package/dist/services/dispatch-service.d.ts +148 -0
  314. package/dist/services/dispatch-service.d.ts.map +1 -0
  315. package/dist/services/dispatch-service.js +170 -0
  316. package/dist/services/dispatch-service.js.map +1 -0
  317. package/dist/services/docs-steward-service.d.ts +199 -0
  318. package/dist/services/docs-steward-service.d.ts.map +1 -0
  319. package/dist/services/docs-steward-service.js +599 -0
  320. package/dist/services/docs-steward-service.js.map +1 -0
  321. package/dist/services/health-steward-service.d.ts +446 -0
  322. package/dist/services/health-steward-service.d.ts.map +1 -0
  323. package/dist/services/health-steward-service.js +866 -0
  324. package/dist/services/health-steward-service.js.map +1 -0
  325. package/dist/services/index.d.ts +26 -0
  326. package/dist/services/index.d.ts.map +1 -0
  327. package/dist/services/index.js +111 -0
  328. package/dist/services/index.js.map +1 -0
  329. package/dist/services/merge-request-provider.d.ts +59 -0
  330. package/dist/services/merge-request-provider.d.ts.map +1 -0
  331. package/dist/services/merge-request-provider.js +89 -0
  332. package/dist/services/merge-request-provider.js.map +1 -0
  333. package/dist/services/merge-steward-service.d.ts +268 -0
  334. package/dist/services/merge-steward-service.d.ts.map +1 -0
  335. package/dist/services/merge-steward-service.js +568 -0
  336. package/dist/services/merge-steward-service.js.map +1 -0
  337. package/dist/services/plugin-executor.d.ts +247 -0
  338. package/dist/services/plugin-executor.d.ts.map +1 -0
  339. package/dist/services/plugin-executor.js +451 -0
  340. package/dist/services/plugin-executor.js.map +1 -0
  341. package/dist/services/role-definition-service.d.ts +117 -0
  342. package/dist/services/role-definition-service.d.ts.map +1 -0
  343. package/dist/services/role-definition-service.js +289 -0
  344. package/dist/services/role-definition-service.js.map +1 -0
  345. package/dist/services/steward-scheduler.d.ts +336 -0
  346. package/dist/services/steward-scheduler.d.ts.map +1 -0
  347. package/dist/services/steward-scheduler.js +732 -0
  348. package/dist/services/steward-scheduler.js.map +1 -0
  349. package/dist/services/task-assignment-service.d.ts +291 -0
  350. package/dist/services/task-assignment-service.d.ts.map +1 -0
  351. package/dist/services/task-assignment-service.js +454 -0
  352. package/dist/services/task-assignment-service.js.map +1 -0
  353. package/dist/services/worker-task-service.d.ts +202 -0
  354. package/dist/services/worker-task-service.d.ts.map +1 -0
  355. package/dist/services/worker-task-service.js +228 -0
  356. package/dist/services/worker-task-service.js.map +1 -0
  357. package/dist/testing/index.d.ts +13 -0
  358. package/dist/testing/index.d.ts.map +1 -0
  359. package/dist/testing/index.js +17 -0
  360. package/dist/testing/index.js.map +1 -0
  361. package/dist/testing/orchestration-tests.d.ts +62 -0
  362. package/dist/testing/orchestration-tests.d.ts.map +1 -0
  363. package/dist/testing/orchestration-tests.js +1115 -0
  364. package/dist/testing/orchestration-tests.js.map +1 -0
  365. package/dist/testing/test-context.d.ts +171 -0
  366. package/dist/testing/test-context.d.ts.map +1 -0
  367. package/dist/testing/test-context.js +665 -0
  368. package/dist/testing/test-context.js.map +1 -0
  369. package/dist/testing/test-prompts.d.ts +46 -0
  370. package/dist/testing/test-prompts.d.ts.map +1 -0
  371. package/dist/testing/test-prompts.js +140 -0
  372. package/dist/testing/test-prompts.js.map +1 -0
  373. package/dist/testing/test-utils.d.ts +200 -0
  374. package/dist/testing/test-utils.d.ts.map +1 -0
  375. package/dist/testing/test-utils.js +378 -0
  376. package/dist/testing/test-utils.js.map +1 -0
  377. package/dist/types/agent-pool.d.ts +215 -0
  378. package/dist/types/agent-pool.d.ts.map +1 -0
  379. package/dist/types/agent-pool.js +143 -0
  380. package/dist/types/agent-pool.js.map +1 -0
  381. package/dist/types/agent.d.ts +265 -0
  382. package/dist/types/agent.d.ts.map +1 -0
  383. package/dist/types/agent.js +127 -0
  384. package/dist/types/agent.js.map +1 -0
  385. package/dist/types/index.d.ts +11 -0
  386. package/dist/types/index.d.ts.map +1 -0
  387. package/dist/types/index.js +40 -0
  388. package/dist/types/index.js.map +1 -0
  389. package/dist/types/message-types.d.ts +294 -0
  390. package/dist/types/message-types.d.ts.map +1 -0
  391. package/dist/types/message-types.js +354 -0
  392. package/dist/types/message-types.js.map +1 -0
  393. package/dist/types/role-definition.d.ts +272 -0
  394. package/dist/types/role-definition.d.ts.map +1 -0
  395. package/dist/types/role-definition.js +144 -0
  396. package/dist/types/role-definition.js.map +1 -0
  397. package/dist/types/task-meta.d.ts +248 -0
  398. package/dist/types/task-meta.d.ts.map +1 -0
  399. package/dist/types/task-meta.js +213 -0
  400. package/dist/types/task-meta.js.map +1 -0
  401. package/package.json +120 -0
  402. package/web/assets/abap-BrgZPUOV.js +6 -0
  403. package/web/assets/apex-DyP6w7ZV.js +6 -0
  404. package/web/assets/azcli-BaLxmfj-.js +6 -0
  405. package/web/assets/bat-CFOPXBzS.js +6 -0
  406. package/web/assets/bicep-BfEKNvv3.js +7 -0
  407. package/web/assets/cameligo-BFG1Mk7z.js +6 -0
  408. package/web/assets/clojure-DTECt2xU.js +6 -0
  409. package/web/assets/codicon-DCmgc-ay.ttf +0 -0
  410. package/web/assets/coffee-CDGzqUPQ.js +6 -0
  411. package/web/assets/cpp-CLLBncYj.js +6 -0
  412. package/web/assets/csharp-dUCx_-0o.js +6 -0
  413. package/web/assets/csp-5Rap-vPy.js +6 -0
  414. package/web/assets/css-D3h14YRZ.js +8 -0
  415. package/web/assets/cssMode-DMo-5YLA.js +9 -0
  416. package/web/assets/cypher-DrQuvNYM.js +6 -0
  417. package/web/assets/dart-CFKIUWau.js +6 -0
  418. package/web/assets/dockerfile-Zznr-cwX.js +6 -0
  419. package/web/assets/ecl-Ce3n6wWz.js +6 -0
  420. package/web/assets/elixir-deUWdS0T.js +6 -0
  421. package/web/assets/flow9-i9-g7ZhI.js +6 -0
  422. package/web/assets/freemarker2-D4qgkQzN.js +8 -0
  423. package/web/assets/fsharp-CzKuDChf.js +6 -0
  424. package/web/assets/go-Cphgjts3.js +6 -0
  425. package/web/assets/graphql-Cg7bfA9N.js +6 -0
  426. package/web/assets/handlebars-CXFvNjQC.js +6 -0
  427. package/web/assets/hcl-0cvrggvQ.js +6 -0
  428. package/web/assets/html-oyuB_D-B.js +6 -0
  429. package/web/assets/htmlMode-iWuZ24-r.js +9 -0
  430. package/web/assets/index-DqP-_E4F.css +32 -0
  431. package/web/assets/index-R1cylSgw.js +1665 -0
  432. package/web/assets/ini-Drc7WvVn.js +6 -0
  433. package/web/assets/java-B_fMsGYe.js +6 -0
  434. package/web/assets/javascript-CRIkN2Pg.js +6 -0
  435. package/web/assets/jsonMode-DVDkDgex.js +15 -0
  436. package/web/assets/julia-Bqgm2twL.js +6 -0
  437. package/web/assets/kotlin-BSkB5QuD.js +6 -0
  438. package/web/assets/less-BsTHnhdd.js +7 -0
  439. package/web/assets/lexon-YWi4-JPR.js +6 -0
  440. package/web/assets/liquid-CSfldbB5.js +6 -0
  441. package/web/assets/lua-nf6ki56Z.js +6 -0
  442. package/web/assets/m3-Cpb6xl2v.js +6 -0
  443. package/web/assets/markdown-DSZPf7rp.js +6 -0
  444. package/web/assets/mdx-Dd58iymR.js +6 -0
  445. package/web/assets/mips-B_c3zf-v.js +6 -0
  446. package/web/assets/monaco-editor-B4lwqA13.js +751 -0
  447. package/web/assets/monaco-editor-CQpyCxOA.css +1 -0
  448. package/web/assets/msdax-rUNN04Wq.js +6 -0
  449. package/web/assets/mysql-DDwshQtU.js +6 -0
  450. package/web/assets/objective-c-B5zXfXm9.js +6 -0
  451. package/web/assets/pascal-CXOwvkN_.js +6 -0
  452. package/web/assets/pascaligo-Bc-ZgV77.js +6 -0
  453. package/web/assets/perl-CwNk8-XU.js +6 -0
  454. package/web/assets/pgsql-tGk8EFnU.js +6 -0
  455. package/web/assets/php-CpIb_Oan.js +6 -0
  456. package/web/assets/pla-B03wrqEc.js +6 -0
  457. package/web/assets/postiats-BKlk5iyT.js +6 -0
  458. package/web/assets/powerquery-Bhzvs7bI.js +6 -0
  459. package/web/assets/powershell-Dd3NCNK9.js +6 -0
  460. package/web/assets/protobuf-COyEY5Pt.js +7 -0
  461. package/web/assets/pug-BaJupSGV.js +6 -0
  462. package/web/assets/python-XWrMqdhO.js +6 -0
  463. package/web/assets/qsharp-DXyYeYxl.js +6 -0
  464. package/web/assets/r-CdQndTaG.js +6 -0
  465. package/web/assets/razor-DPlhCpIs.js +6 -0
  466. package/web/assets/redis-CVwtpugi.js +6 -0
  467. package/web/assets/redshift-25W9uPmb.js +6 -0
  468. package/web/assets/restructuredtext-DfzH4Xui.js +6 -0
  469. package/web/assets/router-vendor-DHlGizSU.js +41 -0
  470. package/web/assets/ruby-Cp1zYvxS.js +6 -0
  471. package/web/assets/rust-D5C2fndG.js +6 -0
  472. package/web/assets/sb-CDntyWJ8.js +6 -0
  473. package/web/assets/scala-BoFRg7Ot.js +6 -0
  474. package/web/assets/scheme-Bio4gycK.js +6 -0
  475. package/web/assets/scss-4Ik7cdeQ.js +8 -0
  476. package/web/assets/shell-CX-rkNHf.js +6 -0
  477. package/web/assets/solidity-Tw7wswEv.js +6 -0
  478. package/web/assets/sophia-C5WLch3f.js +6 -0
  479. package/web/assets/sparql-DHaeiCBh.js +6 -0
  480. package/web/assets/sql-CCSDG5nI.js +6 -0
  481. package/web/assets/st-pnP8ivHi.js +6 -0
  482. package/web/assets/swift-DwJ7jVG9.js +8 -0
  483. package/web/assets/systemverilog-B9Xyijhd.js +6 -0
  484. package/web/assets/tcl-DnHyzjbg.js +6 -0
  485. package/web/assets/tsMode-BbA1Jbf3.js +16 -0
  486. package/web/assets/twig-CPajHgWi.js +6 -0
  487. package/web/assets/typescript-DcLHYzvH.js +6 -0
  488. package/web/assets/typespec-D-MeaMDU.js +6 -0
  489. package/web/assets/ui-vendor-BSco96uv.js +51 -0
  490. package/web/assets/utils-vendor-DaJ2Dubl.js +911 -0
  491. package/web/assets/vb-DgyLZaXg.js +6 -0
  492. package/web/assets/wgsl-DYQUnd45.js +303 -0
  493. package/web/assets/xml-xKYS3dO6.js +6 -0
  494. package/web/assets/yaml-CNmlXqzH.js +6 -0
  495. package/web/favicon.ico +0 -0
  496. package/web/index.html +22 -0
  497. package/web/logo.png +0 -0
@@ -0,0 +1,451 @@
1
+ /**
2
+ * Plugin Executor Service
3
+ *
4
+ * This service executes plugins for stewards. Plugins enable custom automated
5
+ * maintenance tasks via playbooks, scripts, or commands.
6
+ *
7
+ * TB-O23a: Plugin System for Stewards
8
+ *
9
+ * @module
10
+ */
11
+ import { spawn } from 'node:child_process';
12
+ import * as fs from 'node:fs';
13
+ import * as path from 'node:path';
14
+ import { createTimestamp } from '@stoneforge/core';
15
+ /**
16
+ * All valid plugin type values
17
+ */
18
+ export const PluginTypeValues = ['playbook', 'script', 'command'];
19
+ /**
20
+ * Type guard for plugin type
21
+ */
22
+ export function isPluginType(value) {
23
+ return typeof value === 'string' && PluginTypeValues.includes(value);
24
+ }
25
+ /**
26
+ * Type guard for PlaybookPlugin
27
+ */
28
+ export function isPlaybookPlugin(plugin) {
29
+ return plugin.type === 'playbook';
30
+ }
31
+ /**
32
+ * Type guard for ScriptPlugin
33
+ */
34
+ export function isScriptPlugin(plugin) {
35
+ return plugin.type === 'script';
36
+ }
37
+ /**
38
+ * Type guard for CommandPlugin
39
+ */
40
+ export function isCommandPlugin(plugin) {
41
+ return plugin.type === 'command';
42
+ }
43
+ /**
44
+ * Validates that a value is a valid StewardPlugin
45
+ */
46
+ export function isValidPlugin(value) {
47
+ if (typeof value !== 'object' || value === null) {
48
+ return false;
49
+ }
50
+ const obj = value;
51
+ if (typeof obj.name !== 'string' || obj.name.length === 0) {
52
+ return false;
53
+ }
54
+ if (!isPluginType(obj.type)) {
55
+ return false;
56
+ }
57
+ switch (obj.type) {
58
+ case 'playbook':
59
+ return typeof obj.playbookId === 'string';
60
+ case 'script':
61
+ return typeof obj.path === 'string';
62
+ case 'command':
63
+ return typeof obj.command === 'string';
64
+ default:
65
+ return false;
66
+ }
67
+ }
68
+ // ============================================================================
69
+ // Built-in Plugin Definitions
70
+ // ============================================================================
71
+ /**
72
+ * Built-in plugin: Garbage collect ephemeral workflows
73
+ */
74
+ export const GcEphemeralTasksPlugin = {
75
+ type: 'command',
76
+ name: 'gc-ephemeral-tasks',
77
+ description: 'Garbage collect old ephemeral workflows (older than 24 hours)',
78
+ command: 'sf gc workflows --age 1',
79
+ timeout: 60000, // 1 minute
80
+ continueOnError: true,
81
+ tags: ['gc', 'cleanup', 'maintenance'],
82
+ };
83
+ /**
84
+ * Built-in plugin: Cleanup stale worktrees
85
+ */
86
+ export const CleanupStaleWorktreesPlugin = {
87
+ type: 'command',
88
+ name: 'cleanup-stale-worktrees',
89
+ description: 'Clean up worktrees that have been archived or abandoned',
90
+ // Uses git worktree prune to clean up stale worktree references
91
+ command: 'git worktree prune',
92
+ timeout: 60000, // 1 minute
93
+ continueOnError: true,
94
+ tags: ['git', 'worktree', 'cleanup'],
95
+ };
96
+ /**
97
+ * Built-in plugin: Garbage collect ephemeral workflows
98
+ */
99
+ export const GcEphemeralWorkflowsPlugin = {
100
+ type: 'command',
101
+ name: 'gc-ephemeral-workflows',
102
+ description: 'Garbage collect old ephemeral workflows (older than 24 hours)',
103
+ command: 'sf gc workflows --age 1',
104
+ timeout: 60000, // 1 minute
105
+ continueOnError: true,
106
+ tags: ['gc', 'cleanup', 'maintenance'],
107
+ };
108
+ /**
109
+ * Built-in plugin: Health check agents
110
+ * This is a placeholder - actual implementation would query agent statuses
111
+ */
112
+ export const HealthCheckAgentsPlugin = {
113
+ type: 'command',
114
+ name: 'health-check-agents',
115
+ description: 'Check health status of all registered agents',
116
+ // Uses the sf CLI to list agents and check their status
117
+ command: 'sf agent list --json',
118
+ timeout: 30000, // 30 seconds
119
+ continueOnError: true,
120
+ tags: ['health', 'agents', 'monitoring'],
121
+ };
122
+ /**
123
+ * All built-in plugins
124
+ */
125
+ export const BuiltInPlugins = {
126
+ 'gc-ephemeral-tasks': GcEphemeralTasksPlugin,
127
+ 'cleanup-stale-worktrees': CleanupStaleWorktreesPlugin,
128
+ 'gc-ephemeral-workflows': GcEphemeralWorkflowsPlugin,
129
+ 'health-check-agents': HealthCheckAgentsPlugin,
130
+ };
131
+ /**
132
+ * Get a built-in plugin by name
133
+ */
134
+ export function getBuiltInPlugin(name) {
135
+ return BuiltInPlugins[name];
136
+ }
137
+ /**
138
+ * List all built-in plugin names
139
+ */
140
+ export function listBuiltInPlugins() {
141
+ return Object.keys(BuiltInPlugins);
142
+ }
143
+ // ============================================================================
144
+ // Plugin Executor Implementation
145
+ // ============================================================================
146
+ /**
147
+ * Default configuration
148
+ */
149
+ const DEFAULT_TIMEOUT = 5 * 60 * 1000; // 5 minutes
150
+ const MAX_OUTPUT_LENGTH = 100000; // 100KB max output capture
151
+ /**
152
+ * Implementation of the Plugin Executor service
153
+ */
154
+ export class PluginExecutorImpl {
155
+ api;
156
+ defaultWorkspaceRoot;
157
+ constructor(options) {
158
+ this.api = options?.api;
159
+ this.defaultWorkspaceRoot = options?.workspaceRoot ?? process.cwd();
160
+ }
161
+ async execute(plugin, options) {
162
+ const startedAt = createTimestamp();
163
+ const startTime = Date.now();
164
+ try {
165
+ const validation = this.validate(plugin);
166
+ if (!validation.valid) {
167
+ return {
168
+ pluginName: plugin.name,
169
+ pluginType: plugin.type,
170
+ success: false,
171
+ error: `Validation failed: ${validation.errors.join(', ')}`,
172
+ durationMs: Date.now() - startTime,
173
+ startedAt,
174
+ completedAt: createTimestamp(),
175
+ };
176
+ }
177
+ switch (plugin.type) {
178
+ case 'playbook':
179
+ return this.executePlaybook(plugin, options, startedAt, startTime);
180
+ case 'script':
181
+ return this.executeScript(plugin, options, startedAt, startTime);
182
+ case 'command':
183
+ return this.executeCommand(plugin, options, startedAt, startTime);
184
+ }
185
+ }
186
+ catch (error) {
187
+ return {
188
+ pluginName: plugin.name,
189
+ pluginType: plugin.type,
190
+ success: false,
191
+ error: error instanceof Error ? error.message : String(error),
192
+ durationMs: Date.now() - startTime,
193
+ startedAt,
194
+ completedAt: createTimestamp(),
195
+ };
196
+ }
197
+ }
198
+ async executeBatch(plugins, options) {
199
+ const startTime = Date.now();
200
+ const results = [];
201
+ let skipped = 0;
202
+ let shouldStop = false;
203
+ for (const plugin of plugins) {
204
+ if (shouldStop) {
205
+ skipped++;
206
+ continue;
207
+ }
208
+ const result = await this.execute(plugin, options);
209
+ results.push(result);
210
+ if (!result.success) {
211
+ const continueOnError = plugin.continueOnError ?? true;
212
+ if (!continueOnError || options?.stopOnError) {
213
+ shouldStop = true;
214
+ }
215
+ }
216
+ }
217
+ const succeeded = results.filter(r => r.success).length;
218
+ const failed = results.filter(r => !r.success).length;
219
+ return {
220
+ total: plugins.length,
221
+ succeeded,
222
+ failed,
223
+ skipped,
224
+ results,
225
+ durationMs: Date.now() - startTime,
226
+ allSucceeded: failed === 0 && skipped === 0,
227
+ };
228
+ }
229
+ validate(plugin) {
230
+ const errors = [];
231
+ if (!plugin.name || typeof plugin.name !== 'string') {
232
+ errors.push('Plugin name is required and must be a string');
233
+ }
234
+ if (!isPluginType(plugin.type)) {
235
+ errors.push(`Invalid plugin type: ${plugin.type}`);
236
+ return { valid: false, errors };
237
+ }
238
+ switch (plugin.type) {
239
+ case 'playbook':
240
+ if (!plugin.playbookId || typeof plugin.playbookId !== 'string') {
241
+ errors.push('Playbook plugin requires a playbookId');
242
+ }
243
+ break;
244
+ case 'script':
245
+ if (!plugin.path || typeof plugin.path !== 'string') {
246
+ errors.push('Script plugin requires a path');
247
+ }
248
+ break;
249
+ case 'command':
250
+ if (!plugin.command || typeof plugin.command !== 'string') {
251
+ errors.push('Command plugin requires a command');
252
+ }
253
+ break;
254
+ }
255
+ if (plugin.timeout !== undefined) {
256
+ if (typeof plugin.timeout !== 'number' || plugin.timeout <= 0) {
257
+ errors.push('Timeout must be a positive number');
258
+ }
259
+ }
260
+ return {
261
+ valid: errors.length === 0,
262
+ errors,
263
+ };
264
+ }
265
+ getBuiltIn(name) {
266
+ return getBuiltInPlugin(name);
267
+ }
268
+ listBuiltIns() {
269
+ return listBuiltInPlugins();
270
+ }
271
+ // ----------------------------------------
272
+ // Private Execution Methods
273
+ // ----------------------------------------
274
+ async executePlaybook(plugin, _options, startedAt, startTime) {
275
+ // Playbook execution requires the API
276
+ if (!this.api) {
277
+ return {
278
+ pluginName: plugin.name,
279
+ pluginType: 'playbook',
280
+ success: false,
281
+ error: 'Playbook execution requires QuarryAPI to be provided',
282
+ durationMs: Date.now() - startTime,
283
+ startedAt,
284
+ completedAt: createTimestamp(),
285
+ };
286
+ }
287
+ try {
288
+ // Look up the playbook
289
+ const playbook = await this.api.get(plugin.playbookId);
290
+ if (!playbook) {
291
+ return {
292
+ pluginName: plugin.name,
293
+ pluginType: 'playbook',
294
+ success: false,
295
+ error: `Playbook not found: ${plugin.playbookId}`,
296
+ durationMs: Date.now() - startTime,
297
+ startedAt,
298
+ completedAt: createTimestamp(),
299
+ };
300
+ }
301
+ // For now, we'll just report that the playbook was found
302
+ // Full playbook execution would require the create workflow system
303
+ return {
304
+ pluginName: plugin.name,
305
+ pluginType: 'playbook',
306
+ success: true,
307
+ stdout: `Playbook ${plugin.playbookId} found. Full execution requires workflow system.`,
308
+ durationMs: Date.now() - startTime,
309
+ startedAt,
310
+ completedAt: createTimestamp(),
311
+ };
312
+ }
313
+ catch (error) {
314
+ return {
315
+ pluginName: plugin.name,
316
+ pluginType: 'playbook',
317
+ success: false,
318
+ error: error instanceof Error ? error.message : String(error),
319
+ durationMs: Date.now() - startTime,
320
+ startedAt,
321
+ completedAt: createTimestamp(),
322
+ };
323
+ }
324
+ }
325
+ async executeScript(plugin, options, startedAt, startTime) {
326
+ const workspaceRoot = options?.workspaceRoot ?? this.defaultWorkspaceRoot;
327
+ const cwd = plugin.cwd ?? workspaceRoot;
328
+ const timeout = plugin.timeout ?? options?.defaultTimeout ?? DEFAULT_TIMEOUT;
329
+ // Resolve script path
330
+ const scriptPath = path.isAbsolute(plugin.path)
331
+ ? plugin.path
332
+ : path.join(workspaceRoot, plugin.path);
333
+ // Check if script exists
334
+ if (!fs.existsSync(scriptPath)) {
335
+ return {
336
+ pluginName: plugin.name,
337
+ pluginType: 'script',
338
+ success: false,
339
+ error: `Script not found: ${scriptPath}`,
340
+ durationMs: Date.now() - startTime,
341
+ startedAt,
342
+ completedAt: createTimestamp(),
343
+ };
344
+ }
345
+ // Build environment
346
+ const env = {
347
+ ...process.env,
348
+ ...options?.env,
349
+ ...plugin.env,
350
+ };
351
+ // Build command
352
+ const args = plugin.args ?? [];
353
+ const command = `"${scriptPath}" ${args.map(a => `"${a}"`).join(' ')}`.trim();
354
+ return this.runShellCommand(plugin.name, 'script', command, cwd, env, timeout, startedAt, startTime);
355
+ }
356
+ async executeCommand(plugin, options, startedAt, startTime) {
357
+ const workspaceRoot = options?.workspaceRoot ?? this.defaultWorkspaceRoot;
358
+ const cwd = plugin.cwd ?? workspaceRoot;
359
+ const timeout = plugin.timeout ?? options?.defaultTimeout ?? DEFAULT_TIMEOUT;
360
+ // Build environment
361
+ const env = {
362
+ ...process.env,
363
+ ...options?.env,
364
+ ...plugin.env,
365
+ };
366
+ return this.runShellCommand(plugin.name, 'command', plugin.command, cwd, env, timeout, startedAt, startTime);
367
+ }
368
+ async runShellCommand(pluginName, pluginType, command, cwd, env, timeout, startedAt, startTime) {
369
+ return new Promise((resolve) => {
370
+ let stdout = '';
371
+ let stderr = '';
372
+ let timedOut = false;
373
+ const child = spawn(command, {
374
+ shell: true,
375
+ cwd,
376
+ env,
377
+ });
378
+ const timeoutHandle = setTimeout(() => {
379
+ timedOut = true;
380
+ child.kill('SIGTERM');
381
+ }, timeout);
382
+ child.stdout?.on('data', (data) => {
383
+ const chunk = data.toString();
384
+ if (stdout.length + chunk.length <= MAX_OUTPUT_LENGTH) {
385
+ stdout += chunk;
386
+ }
387
+ });
388
+ child.stderr?.on('data', (data) => {
389
+ const chunk = data.toString();
390
+ if (stderr.length + chunk.length <= MAX_OUTPUT_LENGTH) {
391
+ stderr += chunk;
392
+ }
393
+ });
394
+ child.on('error', (error) => {
395
+ clearTimeout(timeoutHandle);
396
+ resolve({
397
+ pluginName,
398
+ pluginType,
399
+ success: false,
400
+ error: error.message,
401
+ stdout: stdout.trim() || undefined,
402
+ stderr: stderr.trim() || undefined,
403
+ durationMs: Date.now() - startTime,
404
+ startedAt,
405
+ completedAt: createTimestamp(),
406
+ });
407
+ });
408
+ child.on('close', (code) => {
409
+ clearTimeout(timeoutHandle);
410
+ if (timedOut) {
411
+ resolve({
412
+ pluginName,
413
+ pluginType,
414
+ success: false,
415
+ error: `Execution timed out after ${timeout}ms`,
416
+ stdout: stdout.trim() || undefined,
417
+ stderr: stderr.trim() || undefined,
418
+ exitCode: code ?? undefined,
419
+ durationMs: Date.now() - startTime,
420
+ startedAt,
421
+ completedAt: createTimestamp(),
422
+ });
423
+ return;
424
+ }
425
+ const success = code === 0;
426
+ resolve({
427
+ pluginName,
428
+ pluginType,
429
+ success,
430
+ error: success ? undefined : `Command exited with code ${code}`,
431
+ stdout: stdout.trim() || undefined,
432
+ stderr: stderr.trim() || undefined,
433
+ exitCode: code ?? undefined,
434
+ durationMs: Date.now() - startTime,
435
+ startedAt,
436
+ completedAt: createTimestamp(),
437
+ });
438
+ });
439
+ });
440
+ }
441
+ }
442
+ // ============================================================================
443
+ // Factory Function
444
+ // ============================================================================
445
+ /**
446
+ * Creates a PluginExecutor instance
447
+ */
448
+ export function createPluginExecutor(options) {
449
+ return new PluginExecutorImpl(options);
450
+ }
451
+ //# sourceMappingURL=plugin-executor.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-executor.js","sourceRoot":"","sources":["../../src/services/plugin-executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,117 @@
1
+ /**
2
+ * Role Definition Service
3
+ *
4
+ * This service provides methods for managing agent role definitions.
5
+ * Role definitions store system prompts and behavioral configurations
6
+ * for agents, enabling consistent agent behavior across the workspace.
7
+ *
8
+ * Key features:
9
+ * - Create role definitions with system prompts stored as Documents
10
+ * - Update role definitions (creates new Document versions for prompt changes)
11
+ * - Query role definitions by various criteria
12
+ * - Link role definitions to agents
13
+ *
14
+ * @module
15
+ */
16
+ import type { DocumentId, ElementId } from '@stoneforge/core';
17
+ import type { QuarryAPI } from '@stoneforge/quarry';
18
+ import type { AgentRole, CreateRoleDefinitionInput, UpdateRoleDefinitionInput, RoleDefinitionFilter, StoredRoleDefinition } from '../types/index.js';
19
+ /**
20
+ * Service interface for managing agent role definitions
21
+ */
22
+ export interface RoleDefinitionService {
23
+ /**
24
+ * Creates a new role definition.
25
+ *
26
+ * This creates:
27
+ * 1. A Document with the system prompt content
28
+ * 2. Stores the role definition data in the Document's metadata
29
+ *
30
+ * @param input - The role definition to create
31
+ * @returns The created role definition with its ID
32
+ */
33
+ createRoleDefinition(input: CreateRoleDefinitionInput): Promise<StoredRoleDefinition>;
34
+ /**
35
+ * Gets a role definition by its ID.
36
+ *
37
+ * @param id - The element ID of the role definition document
38
+ * @returns The role definition, or undefined if not found
39
+ */
40
+ getRoleDefinition(id: ElementId): Promise<StoredRoleDefinition | undefined>;
41
+ /**
42
+ * Gets the system prompt content for a role definition.
43
+ *
44
+ * @param id - The element ID of the role definition document
45
+ * @returns The system prompt text, or undefined if not found
46
+ */
47
+ getSystemPrompt(id: ElementId): Promise<string | undefined>;
48
+ /**
49
+ * Gets the system prompt content from a Document reference.
50
+ *
51
+ * @param documentId - The document ID containing the system prompt
52
+ * @returns The system prompt text, or undefined if not found
53
+ */
54
+ getSystemPromptFromRef(documentId: DocumentId): Promise<string | undefined>;
55
+ /**
56
+ * Updates an existing role definition.
57
+ *
58
+ * If the system prompt is updated, a new version of the Document is created.
59
+ *
60
+ * @param id - The element ID of the role definition document
61
+ * @param updates - The fields to update
62
+ * @returns The updated role definition
63
+ */
64
+ updateRoleDefinition(id: ElementId, updates: UpdateRoleDefinitionInput): Promise<StoredRoleDefinition>;
65
+ /**
66
+ * Lists role definitions matching the filter.
67
+ *
68
+ * @param filter - Optional filter criteria
69
+ * @returns Array of matching role definitions
70
+ */
71
+ listRoleDefinitions(filter?: RoleDefinitionFilter): Promise<StoredRoleDefinition[]>;
72
+ /**
73
+ * Gets all role definitions for a specific role type.
74
+ *
75
+ * @param role - The role type to filter by
76
+ * @returns Array of role definitions for that role
77
+ */
78
+ getRoleDefinitionsByRole(role: AgentRole): Promise<StoredRoleDefinition[]>;
79
+ /**
80
+ * Gets the default role definition for a role type.
81
+ *
82
+ * This returns the first role definition found for the role, or undefined
83
+ * if no definitions exist. For more control, use listRoleDefinitions with filters.
84
+ *
85
+ * @param role - The role type
86
+ * @returns The default role definition, or undefined
87
+ */
88
+ getDefaultRoleDefinition(role: AgentRole): Promise<StoredRoleDefinition | undefined>;
89
+ /**
90
+ * Deletes a role definition.
91
+ *
92
+ * @param id - The element ID of the role definition document
93
+ * @returns True if deleted, false if not found
94
+ */
95
+ deleteRoleDefinition(id: ElementId): Promise<boolean>;
96
+ }
97
+ /**
98
+ * Implementation of the Role Definition Service
99
+ */
100
+ export declare class RoleDefinitionServiceImpl implements RoleDefinitionService {
101
+ private readonly api;
102
+ constructor(api: QuarryAPI);
103
+ createRoleDefinition(input: CreateRoleDefinitionInput): Promise<StoredRoleDefinition>;
104
+ getRoleDefinition(id: ElementId): Promise<StoredRoleDefinition | undefined>;
105
+ getSystemPrompt(id: ElementId): Promise<string | undefined>;
106
+ getSystemPromptFromRef(documentId: DocumentId): Promise<string | undefined>;
107
+ updateRoleDefinition(id: ElementId, updates: UpdateRoleDefinitionInput): Promise<StoredRoleDefinition>;
108
+ listRoleDefinitions(filter?: RoleDefinitionFilter): Promise<StoredRoleDefinition[]>;
109
+ getRoleDefinitionsByRole(role: AgentRole): Promise<StoredRoleDefinition[]>;
110
+ getDefaultRoleDefinition(role: AgentRole): Promise<StoredRoleDefinition | undefined>;
111
+ deleteRoleDefinition(id: ElementId): Promise<boolean>;
112
+ }
113
+ /**
114
+ * Creates a RoleDefinitionService instance
115
+ */
116
+ export declare function createRoleDefinitionService(api: QuarryAPI): RoleDefinitionService;
117
+ //# sourceMappingURL=role-definition-service.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role-definition-service.d.ts","sourceRoot":"","sources":["../../src/services/role-definition-service.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;GAcG;AAEH,OAAO,KAAK,EAAY,UAAU,EAAY,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAElF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AACpD,OAAO,KAAK,EACV,SAAS,EAKT,yBAAyB,EACzB,yBAAyB,EACzB,oBAAoB,EACpB,oBAAoB,EAErB,MAAM,mBAAmB,CAAC;AAyB3B;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC;;;;;;;;;OASG;IACH,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEtF;;;;;OAKG;IACH,iBAAiB,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAAC;IAE5E;;;;;OAKG;IACH,eAAe,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAE5D;;;;;OAKG;IACH,sBAAsB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC,CAAC;IAE5E;;;;;;;;OAQG;IACH,oBAAoB,CAAC,EAAE,EAAE,SAAS,EAAE,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,oBAAoB,CAAC,CAAC;IAEvG;;;;;OAKG;IACH,mBAAmB,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAEpF;;;;;OAKG;IACH,wBAAwB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC,CAAC;IAE3E;;;;;;;;OAQG;IACH,wBAAwB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC,CAAC;IAErF;;;;;OAKG;IACH,oBAAoB,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CACvD;AAMD;;GAEG;AACH,qBAAa,yBAA0B,YAAW,qBAAqB;IACrE,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAY;gBAEpB,GAAG,EAAE,SAAS;IAIpB,oBAAoB,CAAC,KAAK,EAAE,yBAAyB,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAwFrF,iBAAiB,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC;IAwC3E,eAAe,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAQ3D,sBAAsB,CAAC,UAAU,EAAE,UAAU,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAQ3E,oBAAoB,CACxB,EAAE,EAAE,SAAS,EACb,OAAO,EAAE,yBAAyB,GACjC,OAAO,CAAC,oBAAoB,CAAC;IAiE1B,mBAAmB,CAAC,MAAM,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IA4DnF,wBAAwB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,oBAAoB,EAAE,CAAC;IAI1E,wBAAwB,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,oBAAoB,GAAG,SAAS,CAAC;IAKpF,oBAAoB,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC;CAc5D;AAMD;;GAEG;AACH,wBAAgB,2BAA2B,CAAC,GAAG,EAAE,SAAS,GAAG,qBAAqB,CAEjF"}