@fidelios/server 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (743) hide show
  1. package/dist/adapters/codex-models.d.ts +4 -0
  2. package/dist/adapters/codex-models.d.ts.map +1 -0
  3. package/dist/adapters/codex-models.js +98 -0
  4. package/dist/adapters/codex-models.js.map +1 -0
  5. package/dist/adapters/cursor-models.d.ts +13 -0
  6. package/dist/adapters/cursor-models.d.ts.map +1 -0
  7. package/dist/adapters/cursor-models.js +148 -0
  8. package/dist/adapters/cursor-models.js.map +1 -0
  9. package/dist/adapters/http/execute.d.ts +3 -0
  10. package/dist/adapters/http/execute.d.ts.map +1 -0
  11. package/dist/adapters/http/execute.js +39 -0
  12. package/dist/adapters/http/execute.js.map +1 -0
  13. package/dist/adapters/http/index.d.ts +3 -0
  14. package/dist/adapters/http/index.d.ts.map +1 -0
  15. package/dist/adapters/http/index.js +20 -0
  16. package/dist/adapters/http/index.js.map +1 -0
  17. package/dist/adapters/http/test.d.ts +3 -0
  18. package/dist/adapters/http/test.d.ts.map +1 -0
  19. package/dist/adapters/http/test.js +106 -0
  20. package/dist/adapters/http/test.js.map +1 -0
  21. package/dist/adapters/index.d.ts +4 -0
  22. package/dist/adapters/index.d.ts.map +1 -0
  23. package/dist/adapters/index.js +3 -0
  24. package/dist/adapters/index.js.map +1 -0
  25. package/dist/adapters/process/execute.d.ts +3 -0
  26. package/dist/adapters/process/execute.d.ts.map +1 -0
  27. package/dist/adapters/process/execute.js +63 -0
  28. package/dist/adapters/process/execute.js.map +1 -0
  29. package/dist/adapters/process/index.d.ts +3 -0
  30. package/dist/adapters/process/index.d.ts.map +1 -0
  31. package/dist/adapters/process/index.js +23 -0
  32. package/dist/adapters/process/index.js.map +1 -0
  33. package/dist/adapters/process/test.d.ts +3 -0
  34. package/dist/adapters/process/test.d.ts.map +1 -0
  35. package/dist/adapters/process/test.js +77 -0
  36. package/dist/adapters/process/test.js.map +1 -0
  37. package/dist/adapters/registry.d.ts +14 -0
  38. package/dist/adapters/registry.d.ts.map +1 -0
  39. package/dist/adapters/registry.js +164 -0
  40. package/dist/adapters/registry.js.map +1 -0
  41. package/dist/adapters/types.d.ts +2 -0
  42. package/dist/adapters/types.d.ts.map +1 -0
  43. package/dist/adapters/types.js +2 -0
  44. package/dist/adapters/types.js.map +1 -0
  45. package/dist/adapters/utils.d.ts +10 -0
  46. package/dist/adapters/utils.d.ts.map +1 -0
  47. package/dist/adapters/utils.js +14 -0
  48. package/dist/adapters/utils.js.map +1 -0
  49. package/dist/agent-auth-jwt.d.ts +14 -0
  50. package/dist/agent-auth-jwt.d.ts.map +1 -0
  51. package/dist/agent-auth-jwt.js +117 -0
  52. package/dist/agent-auth-jwt.js.map +1 -0
  53. package/dist/app.d.ts +25 -0
  54. package/dist/app.d.ts.map +1 -0
  55. package/dist/app.js +265 -0
  56. package/dist/app.js.map +1 -0
  57. package/dist/attachment-types.d.ts +33 -0
  58. package/dist/attachment-types.d.ts.map +1 -0
  59. package/dist/attachment-types.js +67 -0
  60. package/dist/attachment-types.js.map +1 -0
  61. package/dist/auth/better-auth.d.ts +24 -0
  62. package/dist/auth/better-auth.d.ts.map +1 -0
  63. package/dist/auth/better-auth.js +108 -0
  64. package/dist/auth/better-auth.js.map +1 -0
  65. package/dist/board-claim.d.ts +23 -0
  66. package/dist/board-claim.d.ts.map +1 -0
  67. package/dist/board-claim.js +115 -0
  68. package/dist/board-claim.js.map +1 -0
  69. package/dist/config-file.d.ts +3 -0
  70. package/dist/config-file.d.ts.map +1 -0
  71. package/dist/config-file.js +16 -0
  72. package/dist/config-file.js.map +1 -0
  73. package/dist/config.d.ts +45 -0
  74. package/dist/config.d.ts.map +1 -0
  75. package/dist/config.js +171 -0
  76. package/dist/config.js.map +1 -0
  77. package/dist/dev-server-status.d.ts +27 -0
  78. package/dist/dev-server-status.d.ts.map +1 -0
  79. package/dist/dev-server-status.js +70 -0
  80. package/dist/dev-server-status.js.map +1 -0
  81. package/dist/dev-watch-ignore.d.ts +2 -0
  82. package/dist/dev-watch-ignore.d.ts.map +1 -0
  83. package/dist/dev-watch-ignore.js +33 -0
  84. package/dist/dev-watch-ignore.js.map +1 -0
  85. package/dist/errors.d.ts +12 -0
  86. package/dist/errors.d.ts.map +1 -0
  87. package/dist/errors.js +28 -0
  88. package/dist/errors.js.map +1 -0
  89. package/dist/home-paths.d.ts +17 -0
  90. package/dist/home-paths.d.ts.map +1 -0
  91. package/dist/home-paths.js +75 -0
  92. package/dist/home-paths.js.map +1 -0
  93. package/dist/index.d.ts +10 -0
  94. package/dist/index.d.ts.map +1 -0
  95. package/dist/index.js +642 -0
  96. package/dist/index.js.map +1 -0
  97. package/dist/log-redaction.d.ts +11 -0
  98. package/dist/log-redaction.d.ts.map +1 -0
  99. package/dist/log-redaction.js +118 -0
  100. package/dist/log-redaction.js.map +1 -0
  101. package/dist/middleware/auth.d.ts +12 -0
  102. package/dist/middleware/auth.d.ts.map +1 -0
  103. package/dist/middleware/auth.js +144 -0
  104. package/dist/middleware/auth.js.map +1 -0
  105. package/dist/middleware/board-mutation-guard.d.ts +3 -0
  106. package/dist/middleware/board-mutation-guard.d.ts.map +1 -0
  107. package/dist/middleware/board-mutation-guard.js +59 -0
  108. package/dist/middleware/board-mutation-guard.js.map +1 -0
  109. package/dist/middleware/error-handler.d.ts +17 -0
  110. package/dist/middleware/error-handler.d.ts.map +1 -0
  111. package/dist/middleware/error-handler.js +37 -0
  112. package/dist/middleware/error-handler.js.map +1 -0
  113. package/dist/middleware/index.d.ts +4 -0
  114. package/dist/middleware/index.d.ts.map +1 -0
  115. package/dist/middleware/index.js +4 -0
  116. package/dist/middleware/index.js.map +1 -0
  117. package/dist/middleware/logger.d.ts +4 -0
  118. package/dist/middleware/logger.d.ts.map +1 -0
  119. package/dist/middleware/logger.js +87 -0
  120. package/dist/middleware/logger.js.map +1 -0
  121. package/dist/middleware/private-hostname-guard.d.ts +11 -0
  122. package/dist/middleware/private-hostname-guard.d.ts.map +1 -0
  123. package/dist/middleware/private-hostname-guard.js +78 -0
  124. package/dist/middleware/private-hostname-guard.js.map +1 -0
  125. package/dist/middleware/validate.d.ts +4 -0
  126. package/dist/middleware/validate.d.ts.map +1 -0
  127. package/dist/middleware/validate.js +7 -0
  128. package/dist/middleware/validate.js.map +1 -0
  129. package/dist/onboarding-assets/ceo/AGENTS.md +54 -0
  130. package/dist/onboarding-assets/ceo/HEARTBEAT.md +72 -0
  131. package/dist/onboarding-assets/ceo/SOUL.md +33 -0
  132. package/dist/onboarding-assets/ceo/TOOLS.md +3 -0
  133. package/dist/onboarding-assets/default/AGENTS.md +3 -0
  134. package/dist/paths.d.ts +3 -0
  135. package/dist/paths.d.ts.map +1 -0
  136. package/dist/paths.js +31 -0
  137. package/dist/paths.js.map +1 -0
  138. package/dist/realtime/live-events-ws.d.ts +28 -0
  139. package/dist/realtime/live-events-ws.d.ts.map +1 -0
  140. package/dist/realtime/live-events-ws.js +187 -0
  141. package/dist/realtime/live-events-ws.js.map +1 -0
  142. package/dist/redaction.d.ts +4 -0
  143. package/dist/redaction.d.ts.map +1 -0
  144. package/dist/redaction.js +63 -0
  145. package/dist/redaction.js.map +1 -0
  146. package/dist/routes/access.d.ts +61 -0
  147. package/dist/routes/access.d.ts.map +1 -0
  148. package/dist/routes/access.js +2265 -0
  149. package/dist/routes/access.js.map +1 -0
  150. package/dist/routes/activity.d.ts +3 -0
  151. package/dist/routes/activity.d.ts.map +1 -0
  152. package/dist/routes/activity.js +78 -0
  153. package/dist/routes/activity.js.map +1 -0
  154. package/dist/routes/agents.d.ts +3 -0
  155. package/dist/routes/agents.d.ts.map +1 -0
  156. package/dist/routes/agents.js +1828 -0
  157. package/dist/routes/agents.js.map +1 -0
  158. package/dist/routes/approvals.d.ts +3 -0
  159. package/dist/routes/approvals.d.ts.map +1 -0
  160. package/dist/routes/approvals.js +275 -0
  161. package/dist/routes/approvals.js.map +1 -0
  162. package/dist/routes/assets.d.ts +4 -0
  163. package/dist/routes/assets.d.ts.map +1 -0
  164. package/dist/routes/assets.js +309 -0
  165. package/dist/routes/assets.js.map +1 -0
  166. package/dist/routes/authz.d.ts +16 -0
  167. package/dist/routes/authz.d.ts.map +1 -0
  168. package/dist/routes/authz.js +47 -0
  169. package/dist/routes/authz.js.map +1 -0
  170. package/dist/routes/companies.d.ts +4 -0
  171. package/dist/routes/companies.d.ts.map +1 -0
  172. package/dist/routes/companies.js +303 -0
  173. package/dist/routes/companies.js.map +1 -0
  174. package/dist/routes/company-skills.d.ts +3 -0
  175. package/dist/routes/company-skills.d.ts.map +1 -0
  176. package/dist/routes/company-skills.js +228 -0
  177. package/dist/routes/company-skills.js.map +1 -0
  178. package/dist/routes/costs.d.ts +3 -0
  179. package/dist/routes/costs.d.ts.map +1 -0
  180. package/dist/routes/costs.js +268 -0
  181. package/dist/routes/costs.js.map +1 -0
  182. package/dist/routes/dashboard.d.ts +3 -0
  183. package/dist/routes/dashboard.d.ts.map +1 -0
  184. package/dist/routes/dashboard.js +15 -0
  185. package/dist/routes/dashboard.js.map +1 -0
  186. package/dist/routes/execution-workspaces.d.ts +3 -0
  187. package/dist/routes/execution-workspaces.d.ts.map +1 -0
  188. package/dist/routes/execution-workspaces.js +165 -0
  189. package/dist/routes/execution-workspaces.js.map +1 -0
  190. package/dist/routes/goals.d.ts +3 -0
  191. package/dist/routes/goals.d.ts.map +1 -0
  192. package/dist/routes/goals.js +95 -0
  193. package/dist/routes/goals.js.map +1 -0
  194. package/dist/routes/health.d.ts +9 -0
  195. package/dist/routes/health.d.ts.map +1 -0
  196. package/dist/routes/health.js +69 -0
  197. package/dist/routes/health.js.map +1 -0
  198. package/dist/routes/index.d.ts +18 -0
  199. package/dist/routes/index.d.ts.map +1 -0
  200. package/dist/routes/index.js +18 -0
  201. package/dist/routes/index.js.map +1 -0
  202. package/dist/routes/instance-settings.d.ts +3 -0
  203. package/dist/routes/instance-settings.d.ts.map +1 -0
  204. package/dist/routes/instance-settings.js +71 -0
  205. package/dist/routes/instance-settings.js.map +1 -0
  206. package/dist/routes/issues-checkout-wakeup.d.ts +9 -0
  207. package/dist/routes/issues-checkout-wakeup.d.ts.map +1 -0
  208. package/dist/routes/issues-checkout-wakeup.js +12 -0
  209. package/dist/routes/issues-checkout-wakeup.js.map +1 -0
  210. package/dist/routes/issues.d.ts +4 -0
  211. package/dist/routes/issues.d.ts.map +1 -0
  212. package/dist/routes/issues.js +1520 -0
  213. package/dist/routes/issues.js.map +1 -0
  214. package/dist/routes/llms.d.ts +3 -0
  215. package/dist/routes/llms.d.ts.map +1 -0
  216. package/dist/routes/llms.js +78 -0
  217. package/dist/routes/llms.js.map +1 -0
  218. package/dist/routes/org-chart-svg.d.ts +25 -0
  219. package/dist/routes/org-chart-svg.d.ts.map +1 -0
  220. package/dist/routes/org-chart-svg.js +656 -0
  221. package/dist/routes/org-chart-svg.js.map +1 -0
  222. package/dist/routes/plugin-ui-static.d.ts +69 -0
  223. package/dist/routes/plugin-ui-static.d.ts.map +1 -0
  224. package/dist/routes/plugin-ui-static.js +411 -0
  225. package/dist/routes/plugin-ui-static.js.map +1 -0
  226. package/dist/routes/plugins.d.ts +120 -0
  227. package/dist/routes/plugins.d.ts.map +1 -0
  228. package/dist/routes/plugins.js +1784 -0
  229. package/dist/routes/plugins.js.map +1 -0
  230. package/dist/routes/projects.d.ts +3 -0
  231. package/dist/routes/projects.d.ts.map +1 -0
  232. package/dist/routes/projects.js +257 -0
  233. package/dist/routes/projects.js.map +1 -0
  234. package/dist/routes/routines.d.ts +3 -0
  235. package/dist/routes/routines.d.ts.map +1 -0
  236. package/dist/routes/routines.js +277 -0
  237. package/dist/routes/routines.js.map +1 -0
  238. package/dist/routes/secrets.d.ts +3 -0
  239. package/dist/routes/secrets.d.ts.map +1 -0
  240. package/dist/routes/secrets.js +128 -0
  241. package/dist/routes/secrets.js.map +1 -0
  242. package/dist/routes/sidebar-badges.d.ts +3 -0
  243. package/dist/routes/sidebar-badges.d.ts.map +1 -0
  244. package/dist/routes/sidebar-badges.js +45 -0
  245. package/dist/routes/sidebar-badges.js.map +1 -0
  246. package/dist/secrets/external-stub-providers.d.ts +5 -0
  247. package/dist/secrets/external-stub-providers.d.ts.map +1 -0
  248. package/dist/secrets/external-stub-providers.js +21 -0
  249. package/dist/secrets/external-stub-providers.js.map +1 -0
  250. package/dist/secrets/local-encrypted-provider.d.ts +3 -0
  251. package/dist/secrets/local-encrypted-provider.d.ts.map +1 -0
  252. package/dist/secrets/local-encrypted-provider.js +116 -0
  253. package/dist/secrets/local-encrypted-provider.js.map +1 -0
  254. package/dist/secrets/provider-registry.d.ts +5 -0
  255. package/dist/secrets/provider-registry.d.ts.map +1 -0
  256. package/dist/secrets/provider-registry.js +20 -0
  257. package/dist/secrets/provider-registry.js.map +1 -0
  258. package/dist/secrets/types.d.ts +21 -0
  259. package/dist/secrets/types.d.ts.map +1 -0
  260. package/dist/secrets/types.js +2 -0
  261. package/dist/secrets/types.js.map +1 -0
  262. package/dist/services/access.d.ts +113 -0
  263. package/dist/services/access.d.ts.map +1 -0
  264. package/dist/services/access.js +247 -0
  265. package/dist/services/access.js.map +1 -0
  266. package/dist/services/activity-log.d.ts +17 -0
  267. package/dist/services/activity-log.d.ts.map +1 -0
  268. package/dist/services/activity-log.js +74 -0
  269. package/dist/services/activity-log.js.map +1 -0
  270. package/dist/services/activity.d.ts +764 -0
  271. package/dist/services/activity.d.ts.map +1 -0
  272. package/dist/services/activity.js +105 -0
  273. package/dist/services/activity.js.map +1 -0
  274. package/dist/services/agent-instructions.d.ts +91 -0
  275. package/dist/services/agent-instructions.d.ts.map +1 -0
  276. package/dist/services/agent-instructions.js +580 -0
  277. package/dist/services/agent-instructions.js.map +1 -0
  278. package/dist/services/agent-permissions.d.ts +6 -0
  279. package/dist/services/agent-permissions.d.ts.map +1 -0
  280. package/dist/services/agent-permissions.js +18 -0
  281. package/dist/services/agent-permissions.js.map +1 -0
  282. package/dist/services/agents.d.ts +1670 -0
  283. package/dist/services/agents.d.ts.map +1 -0
  284. package/dist/services/agents.js +566 -0
  285. package/dist/services/agents.js.map +1 -0
  286. package/dist/services/approvals.d.ts +546 -0
  287. package/dist/services/approvals.d.ts.map +1 -0
  288. package/dist/services/approvals.js +212 -0
  289. package/dist/services/approvals.js.map +1 -0
  290. package/dist/services/assets.d.ts +33 -0
  291. package/dist/services/assets.d.ts.map +1 -0
  292. package/dist/services/assets.js +17 -0
  293. package/dist/services/assets.js.map +1 -0
  294. package/dist/services/board-auth.d.ts +234 -0
  295. package/dist/services/board-auth.d.ts.map +1 -0
  296. package/dist/services/board-auth.js +295 -0
  297. package/dist/services/board-auth.js.map +1 -0
  298. package/dist/services/budgets.d.ts +38 -0
  299. package/dist/services/budgets.d.ts.map +1 -0
  300. package/dist/services/budgets.js +784 -0
  301. package/dist/services/budgets.js.map +1 -0
  302. package/dist/services/companies.d.ts +124 -0
  303. package/dist/services/companies.d.ts.map +1 -0
  304. package/dist/services/companies.js +256 -0
  305. package/dist/services/companies.js.map +1 -0
  306. package/dist/services/company-export-readme.d.ts +17 -0
  307. package/dist/services/company-export-readme.d.ts.map +1 -0
  308. package/dist/services/company-export-readme.js +148 -0
  309. package/dist/services/company-export-readme.js.map +1 -0
  310. package/dist/services/company-portability.d.ts +23 -0
  311. package/dist/services/company-portability.d.ts.map +1 -0
  312. package/dist/services/company-portability.js +3739 -0
  313. package/dist/services/company-portability.js.map +1 -0
  314. package/dist/services/company-skills.d.ts +77 -0
  315. package/dist/services/company-skills.d.ts.map +1 -0
  316. package/dist/services/company-skills.js +2042 -0
  317. package/dist/services/company-skills.js.map +1 -0
  318. package/dist/services/costs.d.ts +114 -0
  319. package/dist/services/costs.d.ts.map +1 -0
  320. package/dist/services/costs.js +294 -0
  321. package/dist/services/costs.js.map +1 -0
  322. package/dist/services/cron.d.ts +80 -0
  323. package/dist/services/cron.d.ts.map +1 -0
  324. package/dist/services/cron.js +300 -0
  325. package/dist/services/cron.js.map +1 -0
  326. package/dist/services/dashboard.d.ts +26 -0
  327. package/dist/services/dashboard.d.ts.map +1 -0
  328. package/dist/services/dashboard.js +98 -0
  329. package/dist/services/dashboard.js.map +1 -0
  330. package/dist/services/default-agent-instructions.d.ts +9 -0
  331. package/dist/services/default-agent-instructions.d.ts.map +1 -0
  332. package/dist/services/default-agent-instructions.js +20 -0
  333. package/dist/services/default-agent-instructions.js.map +1 -0
  334. package/dist/services/documents.d.ts +164 -0
  335. package/dist/services/documents.d.ts.map +1 -0
  336. package/dist/services/documents.js +382 -0
  337. package/dist/services/documents.js.map +1 -0
  338. package/dist/services/execution-workspace-policy.d.ts +21 -0
  339. package/dist/services/execution-workspace-policy.d.ts.map +1 -0
  340. package/dist/services/execution-workspace-policy.js +177 -0
  341. package/dist/services/execution-workspace-policy.js.map +1 -0
  342. package/dist/services/execution-workspaces.d.ts +19 -0
  343. package/dist/services/execution-workspaces.d.ts.map +1 -0
  344. package/dist/services/execution-workspaces.js +87 -0
  345. package/dist/services/execution-workspaces.js.map +1 -0
  346. package/dist/services/finance.d.ts +93 -0
  347. package/dist/services/finance.d.ts.map +1 -0
  348. package/dist/services/finance.js +120 -0
  349. package/dist/services/finance.js.map +1 -0
  350. package/dist/services/goals.d.ts +433 -0
  351. package/dist/services/goals.d.ts.map +1 -0
  352. package/dist/services/goals.js +54 -0
  353. package/dist/services/goals.js.map +1 -0
  354. package/dist/services/heartbeat-run-summary.d.ts +2 -0
  355. package/dist/services/heartbeat-run-summary.d.ts.map +1 -0
  356. package/dist/services/heartbeat-run-summary.js +30 -0
  357. package/dist/services/heartbeat-run-summary.js.map +1 -0
  358. package/dist/services/heartbeat.d.ts +812 -0
  359. package/dist/services/heartbeat.d.ts.map +1 -0
  360. package/dist/services/heartbeat.js +3156 -0
  361. package/dist/services/heartbeat.js.map +1 -0
  362. package/dist/services/hire-hook.d.ts +14 -0
  363. package/dist/services/hire-hook.d.ts.map +1 -0
  364. package/dist/services/hire-hook.js +85 -0
  365. package/dist/services/hire-hook.js.map +1 -0
  366. package/dist/services/index.d.ts +33 -0
  367. package/dist/services/index.d.ts.map +1 -0
  368. package/dist/services/index.js +33 -0
  369. package/dist/services/index.js.map +1 -0
  370. package/dist/services/instance-settings.d.ts +11 -0
  371. package/dist/services/instance-settings.d.ts.map +1 -0
  372. package/dist/services/instance-settings.js +116 -0
  373. package/dist/services/instance-settings.js.map +1 -0
  374. package/dist/services/issue-approvals.d.ts +56 -0
  375. package/dist/services/issue-approvals.d.ts.map +1 -0
  376. package/dist/services/issue-approvals.js +153 -0
  377. package/dist/services/issue-approvals.js.map +1 -0
  378. package/dist/services/issue-assignment-wakeup.d.ts +29 -0
  379. package/dist/services/issue-assignment-wakeup.d.ts.map +1 -0
  380. package/dist/services/issue-assignment-wakeup.js +22 -0
  381. package/dist/services/issue-assignment-wakeup.js.map +1 -0
  382. package/dist/services/issue-goal-fallback.d.ts +18 -0
  383. package/dist/services/issue-goal-fallback.d.ts.map +1 -0
  384. package/dist/services/issue-goal-fallback.js +33 -0
  385. package/dist/services/issue-goal-fallback.js.map +1 -0
  386. package/dist/services/issues.d.ts +560 -0
  387. package/dist/services/issues.d.ts.map +1 -0
  388. package/dist/services/issues.js +1478 -0
  389. package/dist/services/issues.js.map +1 -0
  390. package/dist/services/live-events.d.ts +17 -0
  391. package/dist/services/live-events.d.ts.map +1 -0
  392. package/dist/services/live-events.js +33 -0
  393. package/dist/services/live-events.js.map +1 -0
  394. package/dist/services/plugin-capability-validator.d.ts +108 -0
  395. package/dist/services/plugin-capability-validator.d.ts.map +1 -0
  396. package/dist/services/plugin-capability-validator.js +268 -0
  397. package/dist/services/plugin-capability-validator.js.map +1 -0
  398. package/dist/services/plugin-config-validator.d.ts +26 -0
  399. package/dist/services/plugin-config-validator.d.ts.map +1 -0
  400. package/dist/services/plugin-config-validator.js +41 -0
  401. package/dist/services/plugin-config-validator.js.map +1 -0
  402. package/dist/services/plugin-dev-watcher.d.ts +30 -0
  403. package/dist/services/plugin-dev-watcher.d.ts.map +1 -0
  404. package/dist/services/plugin-dev-watcher.js +241 -0
  405. package/dist/services/plugin-dev-watcher.js.map +1 -0
  406. package/dist/services/plugin-event-bus.d.ts +149 -0
  407. package/dist/services/plugin-event-bus.d.ts.map +1 -0
  408. package/dist/services/plugin-event-bus.js +258 -0
  409. package/dist/services/plugin-event-bus.js.map +1 -0
  410. package/dist/services/plugin-host-service-cleanup.d.ts +14 -0
  411. package/dist/services/plugin-host-service-cleanup.d.ts.map +1 -0
  412. package/dist/services/plugin-host-service-cleanup.js +37 -0
  413. package/dist/services/plugin-host-service-cleanup.js.map +1 -0
  414. package/dist/services/plugin-host-services.d.ts +13 -0
  415. package/dist/services/plugin-host-services.d.ts.map +1 -0
  416. package/dist/services/plugin-host-services.js +969 -0
  417. package/dist/services/plugin-host-services.js.map +1 -0
  418. package/dist/services/plugin-job-coordinator.d.ts +81 -0
  419. package/dist/services/plugin-job-coordinator.d.ts.map +1 -0
  420. package/dist/services/plugin-job-coordinator.js +172 -0
  421. package/dist/services/plugin-job-coordinator.js.map +1 -0
  422. package/dist/services/plugin-job-scheduler.d.ts +163 -0
  423. package/dist/services/plugin-job-scheduler.d.ts.map +1 -0
  424. package/dist/services/plugin-job-scheduler.js +454 -0
  425. package/dist/services/plugin-job-scheduler.js.map +1 -0
  426. package/dist/services/plugin-job-store.d.ts +208 -0
  427. package/dist/services/plugin-job-store.d.ts.map +1 -0
  428. package/dist/services/plugin-job-store.js +350 -0
  429. package/dist/services/plugin-job-store.js.map +1 -0
  430. package/dist/services/plugin-lifecycle.d.ts +203 -0
  431. package/dist/services/plugin-lifecycle.d.ts.map +1 -0
  432. package/dist/services/plugin-lifecycle.js +476 -0
  433. package/dist/services/plugin-lifecycle.js.map +1 -0
  434. package/dist/services/plugin-loader.d.ts +441 -0
  435. package/dist/services/plugin-loader.d.ts.map +1 -0
  436. package/dist/services/plugin-loader.js +1192 -0
  437. package/dist/services/plugin-loader.js.map +1 -0
  438. package/dist/services/plugin-log-retention.d.ts +20 -0
  439. package/dist/services/plugin-log-retention.d.ts.map +1 -0
  440. package/dist/services/plugin-log-retention.js +63 -0
  441. package/dist/services/plugin-log-retention.js.map +1 -0
  442. package/dist/services/plugin-manifest-validator.d.ts +79 -0
  443. package/dist/services/plugin-manifest-validator.d.ts.map +1 -0
  444. package/dist/services/plugin-manifest-validator.js +84 -0
  445. package/dist/services/plugin-manifest-validator.js.map +1 -0
  446. package/dist/services/plugin-registry.d.ts +2542 -0
  447. package/dist/services/plugin-registry.d.ts.map +1 -0
  448. package/dist/services/plugin-registry.js +539 -0
  449. package/dist/services/plugin-registry.js.map +1 -0
  450. package/dist/services/plugin-runtime-sandbox.d.ts +40 -0
  451. package/dist/services/plugin-runtime-sandbox.d.ts.map +1 -0
  452. package/dist/services/plugin-runtime-sandbox.js +154 -0
  453. package/dist/services/plugin-runtime-sandbox.js.map +1 -0
  454. package/dist/services/plugin-secrets-handler.d.ts +81 -0
  455. package/dist/services/plugin-secrets-handler.d.ts.map +1 -0
  456. package/dist/services/plugin-secrets-handler.js +275 -0
  457. package/dist/services/plugin-secrets-handler.js.map +1 -0
  458. package/dist/services/plugin-state-store.d.ts +92 -0
  459. package/dist/services/plugin-state-store.d.ts.map +1 -0
  460. package/dist/services/plugin-state-store.js +190 -0
  461. package/dist/services/plugin-state-store.js.map +1 -0
  462. package/dist/services/plugin-stream-bus.d.ts +29 -0
  463. package/dist/services/plugin-stream-bus.d.ts.map +1 -0
  464. package/dist/services/plugin-stream-bus.js +48 -0
  465. package/dist/services/plugin-stream-bus.js.map +1 -0
  466. package/dist/services/plugin-tool-dispatcher.d.ts +180 -0
  467. package/dist/services/plugin-tool-dispatcher.d.ts.map +1 -0
  468. package/dist/services/plugin-tool-dispatcher.js +224 -0
  469. package/dist/services/plugin-tool-dispatcher.js.map +1 -0
  470. package/dist/services/plugin-tool-registry.d.ts +192 -0
  471. package/dist/services/plugin-tool-registry.d.ts.map +1 -0
  472. package/dist/services/plugin-tool-registry.js +224 -0
  473. package/dist/services/plugin-tool-registry.js.map +1 -0
  474. package/dist/services/plugin-worker-manager.d.ts +260 -0
  475. package/dist/services/plugin-worker-manager.d.ts.map +1 -0
  476. package/dist/services/plugin-worker-manager.js +835 -0
  477. package/dist/services/plugin-worker-manager.js.map +1 -0
  478. package/dist/services/projects.d.ts +87 -0
  479. package/dist/services/projects.d.ts.map +1 -0
  480. package/dist/services/projects.js +656 -0
  481. package/dist/services/projects.js.map +1 -0
  482. package/dist/services/quota-windows.d.ts +9 -0
  483. package/dist/services/quota-windows.d.ts.map +1 -0
  484. package/dist/services/quota-windows.js +56 -0
  485. package/dist/services/quota-windows.js.map +1 -0
  486. package/dist/services/routines.d.ts +135 -0
  487. package/dist/services/routines.d.ts.map +1 -0
  488. package/dist/services/routines.js +1105 -0
  489. package/dist/services/routines.js.map +1 -0
  490. package/dist/services/run-log-store.d.ts +34 -0
  491. package/dist/services/run-log-store.d.ts.map +1 -0
  492. package/dist/services/run-log-store.js +109 -0
  493. package/dist/services/run-log-store.js.map +1 -0
  494. package/dist/services/secrets.d.ts +511 -0
  495. package/dist/services/secrets.d.ts.map +1 -0
  496. package/dist/services/secrets.js +289 -0
  497. package/dist/services/secrets.js.map +1 -0
  498. package/dist/services/sidebar-badges.d.ts +9 -0
  499. package/dist/services/sidebar-badges.d.ts.map +1 -0
  500. package/dist/services/sidebar-badges.js +33 -0
  501. package/dist/services/sidebar-badges.js.map +1 -0
  502. package/dist/services/work-products.d.ts +14 -0
  503. package/dist/services/work-products.d.ts.map +1 -0
  504. package/dist/services/work-products.js +100 -0
  505. package/dist/services/work-products.js.map +1 -0
  506. package/dist/services/workspace-operation-log-store.d.ts +33 -0
  507. package/dist/services/workspace-operation-log-store.d.ts.map +1 -0
  508. package/dist/services/workspace-operation-log-store.js +110 -0
  509. package/dist/services/workspace-operation-log-store.js.map +1 -0
  510. package/dist/services/workspace-operations.d.ts +44 -0
  511. package/dist/services/workspace-operations.d.ts.map +1 -0
  512. package/dist/services/workspace-operations.js +211 -0
  513. package/dist/services/workspace-operations.js.map +1 -0
  514. package/dist/services/workspace-runtime.d.ts +164 -0
  515. package/dist/services/workspace-runtime.d.ts.map +1 -0
  516. package/dist/services/workspace-runtime.js +1235 -0
  517. package/dist/services/workspace-runtime.js.map +1 -0
  518. package/dist/startup-banner.d.ts +31 -0
  519. package/dist/startup-banner.d.ts.map +1 -0
  520. package/dist/startup-banner.js +117 -0
  521. package/dist/startup-banner.js.map +1 -0
  522. package/dist/storage/index.d.ts +6 -0
  523. package/dist/storage/index.d.ts.map +1 -0
  524. package/dist/storage/index.js +29 -0
  525. package/dist/storage/index.js.map +1 -0
  526. package/dist/storage/local-disk-provider.d.ts +3 -0
  527. package/dist/storage/local-disk-provider.d.ts.map +1 -0
  528. package/dist/storage/local-disk-provider.js +79 -0
  529. package/dist/storage/local-disk-provider.js.map +1 -0
  530. package/dist/storage/provider-registry.d.ts +4 -0
  531. package/dist/storage/provider-registry.d.ts.map +1 -0
  532. package/dist/storage/provider-registry.js +15 -0
  533. package/dist/storage/provider-registry.js.map +1 -0
  534. package/dist/storage/s3-provider.d.ts +11 -0
  535. package/dist/storage/s3-provider.d.ts.map +1 -0
  536. package/dist/storage/s3-provider.js +123 -0
  537. package/dist/storage/s3-provider.js.map +1 -0
  538. package/dist/storage/service.d.ts +3 -0
  539. package/dist/storage/service.d.ts.map +1 -0
  540. package/dist/storage/service.js +120 -0
  541. package/dist/storage/service.js.map +1 -0
  542. package/dist/storage/types.d.ts +55 -0
  543. package/dist/storage/types.d.ts.map +1 -0
  544. package/dist/storage/types.js +2 -0
  545. package/dist/storage/types.js.map +1 -0
  546. package/dist/ui-branding.d.ts +13 -0
  547. package/dist/ui-branding.d.ts.map +1 -0
  548. package/dist/ui-branding.js +187 -0
  549. package/dist/ui-branding.js.map +1 -0
  550. package/dist/version.d.ts +2 -0
  551. package/dist/version.d.ts.map +1 -0
  552. package/dist/version.js +5 -0
  553. package/dist/version.js.map +1 -0
  554. package/dist/worktree-config.d.ts +19 -0
  555. package/dist/worktree-config.d.ts.map +1 -0
  556. package/dist/worktree-config.js +365 -0
  557. package/dist/worktree-config.js.map +1 -0
  558. package/package.json +95 -0
  559. package/ui-dist/android-chrome-192x192.png +0 -0
  560. package/ui-dist/android-chrome-512x512.png +0 -0
  561. package/ui-dist/apple-touch-icon.png +0 -0
  562. package/ui-dist/assets/_basePickBy-BB1S19s0.js +1 -0
  563. package/ui-dist/assets/_baseUniq-BNk0p-bq.js +1 -0
  564. package/ui-dist/assets/apl-B4CMkyY2.js +1 -0
  565. package/ui-dist/assets/arc-Ds13x1NW.js +1 -0
  566. package/ui-dist/assets/architectureDiagram-VXUJARFQ-D8Br-_jt.js +36 -0
  567. package/ui-dist/assets/asciiarmor-Df11BRmG.js +1 -0
  568. package/ui-dist/assets/asn1-EdZsLKOL.js +1 -0
  569. package/ui-dist/assets/asterisk-B-8jnY81.js +1 -0
  570. package/ui-dist/assets/blockDiagram-VD42YOAC-CCYsAhQ5.js +122 -0
  571. package/ui-dist/assets/brainfuck-C4LP7Hcl.js +1 -0
  572. package/ui-dist/assets/c4Diagram-YG6GDRKO-CsrnTJYB.js +10 -0
  573. package/ui-dist/assets/channel-Df4ReTUQ.js +1 -0
  574. package/ui-dist/assets/chunk-4BX2VUAB-s-S3bm2a.js +1 -0
  575. package/ui-dist/assets/chunk-55IACEB6-AlPeSG3C.js +1 -0
  576. package/ui-dist/assets/chunk-B4BG7PRW-Dlv3zmp0.js +165 -0
  577. package/ui-dist/assets/chunk-DI55MBZ5-y3Hfc2F6.js +220 -0
  578. package/ui-dist/assets/chunk-FMBD7UC4-ZbmFZ8uD.js +15 -0
  579. package/ui-dist/assets/chunk-QN33PNHL-g7XrAaL5.js +1 -0
  580. package/ui-dist/assets/chunk-QZHKN3VN-DQz2X_ZR.js +1 -0
  581. package/ui-dist/assets/chunk-TZMSLE5B-NRbDhryd.js +1 -0
  582. package/ui-dist/assets/classDiagram-2ON5EDUG-CdLb01dH.js +1 -0
  583. package/ui-dist/assets/classDiagram-v2-WZHVMYZB-CdLb01dH.js +1 -0
  584. package/ui-dist/assets/clike-B9uivgTg.js +1 -0
  585. package/ui-dist/assets/clojure-BMjYHr_A.js +1 -0
  586. package/ui-dist/assets/clone-ycTwxHSX.js +1 -0
  587. package/ui-dist/assets/cmake-BQqOBYOt.js +1 -0
  588. package/ui-dist/assets/cobol-CWcv1MsR.js +1 -0
  589. package/ui-dist/assets/coffeescript-S37ZYGWr.js +1 -0
  590. package/ui-dist/assets/commonlisp-DBKNyK5s.js +1 -0
  591. package/ui-dist/assets/cose-bilkent-S5V4N54A-CifA3UGC.js +1 -0
  592. package/ui-dist/assets/crystal-SjHAIU92.js +1 -0
  593. package/ui-dist/assets/css-BnMrqG3P.js +1 -0
  594. package/ui-dist/assets/cypher-C_CwsFkJ.js +1 -0
  595. package/ui-dist/assets/cytoscape.esm-BQaXIfA_.js +331 -0
  596. package/ui-dist/assets/d-pRatUO7H.js +1 -0
  597. package/ui-dist/assets/dagre-6UL2VRFP-Cy4_402x.js +4 -0
  598. package/ui-dist/assets/defaultLocale-DX6XiGOO.js +1 -0
  599. package/ui-dist/assets/diagram-PSM6KHXK-CUA-Vqxe.js +24 -0
  600. package/ui-dist/assets/diagram-QEK2KX5R-D763Ackt.js +43 -0
  601. package/ui-dist/assets/diagram-S2PKOQOG-Cu1xEKHt.js +24 -0
  602. package/ui-dist/assets/diff-DbItnlRl.js +1 -0
  603. package/ui-dist/assets/dockerfile-BKs6k2Af.js +1 -0
  604. package/ui-dist/assets/dtd-DF_7sFjM.js +1 -0
  605. package/ui-dist/assets/dylan-DwRh75JA.js +1 -0
  606. package/ui-dist/assets/ebnf-CDyGwa7X.js +1 -0
  607. package/ui-dist/assets/ecl-Cabwm37j.js +1 -0
  608. package/ui-dist/assets/eiffel-CnydiIhH.js +1 -0
  609. package/ui-dist/assets/elm-vLlmbW-K.js +1 -0
  610. package/ui-dist/assets/erDiagram-Q2GNP2WA-9RlN9oCi.js +60 -0
  611. package/ui-dist/assets/erlang-BNw1qcRV.js +1 -0
  612. package/ui-dist/assets/factor-kuTfRLto.js +1 -0
  613. package/ui-dist/assets/fcl-Kvtd6kyn.js +1 -0
  614. package/ui-dist/assets/flowDiagram-NV44I4VS-Ddv1tq-H.js +162 -0
  615. package/ui-dist/assets/forth-Ffai-XNe.js +1 -0
  616. package/ui-dist/assets/fortran-DYz_wnZ1.js +1 -0
  617. package/ui-dist/assets/ganttDiagram-JELNMOA3-DAw7UfVT.js +267 -0
  618. package/ui-dist/assets/gas-Bneqetm1.js +1 -0
  619. package/ui-dist/assets/gherkin-heZmZLOM.js +1 -0
  620. package/ui-dist/assets/gitGraphDiagram-V2S2FVAM-CLPkzwpF.js +65 -0
  621. package/ui-dist/assets/graph-B1ThnnK5.js +1 -0
  622. package/ui-dist/assets/groovy-D9Dt4D0W.js +1 -0
  623. package/ui-dist/assets/haskell-Cw1EW3IL.js +1 -0
  624. package/ui-dist/assets/haxe-H-WmDvRZ.js +1 -0
  625. package/ui-dist/assets/http-DBlCnlav.js +1 -0
  626. package/ui-dist/assets/idl-BEugSyMb.js +1 -0
  627. package/ui-dist/assets/index-0DYmQxT3.js +2 -0
  628. package/ui-dist/assets/index-1BRIjwwa.js +1 -0
  629. package/ui-dist/assets/index-4pxn9bje.js +1 -0
  630. package/ui-dist/assets/index-B02pjBpR.js +7 -0
  631. package/ui-dist/assets/index-BGjMkZzC.js +1 -0
  632. package/ui-dist/assets/index-BHsjaYJ1.js +1 -0
  633. package/ui-dist/assets/index-BTwpjL-6.js +1 -0
  634. package/ui-dist/assets/index-BZ72uG4K.js +6 -0
  635. package/ui-dist/assets/index-BpC8VHcj.js +3 -0
  636. package/ui-dist/assets/index-BrvXvCkd.js +1 -0
  637. package/ui-dist/assets/index-CEBcI-2f.js +1 -0
  638. package/ui-dist/assets/index-CkmjCahV.js +1 -0
  639. package/ui-dist/assets/index-Cp84QmJD.css +1 -0
  640. package/ui-dist/assets/index-CpVjtxma.js +1 -0
  641. package/ui-dist/assets/index-D3AJPUjv.js +1 -0
  642. package/ui-dist/assets/index-DRkeP4vs.js +13 -0
  643. package/ui-dist/assets/index-DXeNhnre.js +1180 -0
  644. package/ui-dist/assets/index-DXvXmooU.js +1 -0
  645. package/ui-dist/assets/index-DZdwValG.js +1 -0
  646. package/ui-dist/assets/index-DbWj5-qO.js +1 -0
  647. package/ui-dist/assets/index-DbcKBTbp.js +1 -0
  648. package/ui-dist/assets/index-DdAQdjTR.js +1 -0
  649. package/ui-dist/assets/index-DlImcHKo.js +1 -0
  650. package/ui-dist/assets/index-X9LdJDbl.js +1 -0
  651. package/ui-dist/assets/infoDiagram-HS3SLOUP-CbJm6kuq.js +2 -0
  652. package/ui-dist/assets/init-Gi6I4Gst.js +1 -0
  653. package/ui-dist/assets/javascript-iXu5QeM3.js +1 -0
  654. package/ui-dist/assets/journeyDiagram-XKPGCS4Q-CeNVFpGu.js +139 -0
  655. package/ui-dist/assets/julia-DuME0IfC.js +1 -0
  656. package/ui-dist/assets/kanban-definition-3W4ZIXB7-DRqPoDRI.js +89 -0
  657. package/ui-dist/assets/katex-O9d3_IXG.js +261 -0
  658. package/ui-dist/assets/layout-CZTKj8OD.js +1 -0
  659. package/ui-dist/assets/linear-BDJjeIco.js +1 -0
  660. package/ui-dist/assets/livescript-BwQOo05w.js +1 -0
  661. package/ui-dist/assets/lua-BgMRiT3U.js +1 -0
  662. package/ui-dist/assets/mathematica-DTrFuWx2.js +1 -0
  663. package/ui-dist/assets/mbox-CNhZ1qSd.js +1 -0
  664. package/ui-dist/assets/mermaid.core-B5v7dPHY.js +256 -0
  665. package/ui-dist/assets/mindmap-definition-VGOIOE7T-zjw0AyzL.js +68 -0
  666. package/ui-dist/assets/mirc-CjQqDB4T.js +1 -0
  667. package/ui-dist/assets/mllike-CXdrOF99.js +1 -0
  668. package/ui-dist/assets/modelica-Dc1JOy9r.js +1 -0
  669. package/ui-dist/assets/mscgen-BA5vi2Kp.js +1 -0
  670. package/ui-dist/assets/mumps-BT43cFF4.js +1 -0
  671. package/ui-dist/assets/nginx-DdIZxoE0.js +1 -0
  672. package/ui-dist/assets/nsis-LdVXkNf5.js +1 -0
  673. package/ui-dist/assets/ntriples-BfvgReVJ.js +1 -0
  674. package/ui-dist/assets/octave-Ck1zUtKM.js +1 -0
  675. package/ui-dist/assets/ordinal-Cboi1Yqb.js +1 -0
  676. package/ui-dist/assets/oz-BzwKVEFT.js +1 -0
  677. package/ui-dist/assets/pascal--L3eBynH.js +1 -0
  678. package/ui-dist/assets/perl-CdXCOZ3F.js +1 -0
  679. package/ui-dist/assets/pieDiagram-ADFJNKIX-ojNQ8Ukr.js +30 -0
  680. package/ui-dist/assets/pig-CevX1Tat.js +1 -0
  681. package/ui-dist/assets/powershell-CFHJl5sT.js +1 -0
  682. package/ui-dist/assets/properties-C78fOPTZ.js +1 -0
  683. package/ui-dist/assets/protobuf-ChK-085T.js +1 -0
  684. package/ui-dist/assets/pug-DeIclll2.js +1 -0
  685. package/ui-dist/assets/puppet-DMA9R1ak.js +1 -0
  686. package/ui-dist/assets/python-BuPzkPfP.js +1 -0
  687. package/ui-dist/assets/q-pXgVlZs6.js +1 -0
  688. package/ui-dist/assets/quadrantDiagram-AYHSOK5B-B8K2F86x.js +7 -0
  689. package/ui-dist/assets/r-B6wPVr8A.js +1 -0
  690. package/ui-dist/assets/requirementDiagram-UZGBJVZJ-DA_Bjcpk.js +64 -0
  691. package/ui-dist/assets/rpm-CTu-6PCP.js +1 -0
  692. package/ui-dist/assets/ruby-B2Rjki9n.js +1 -0
  693. package/ui-dist/assets/sankeyDiagram-TZEHDZUN-yQfMgroQ.js +10 -0
  694. package/ui-dist/assets/sas-B4kiWyti.js +1 -0
  695. package/ui-dist/assets/scheme-C41bIUwD.js +1 -0
  696. package/ui-dist/assets/sequenceDiagram-WL72ISMW-CWQm0UQc.js +145 -0
  697. package/ui-dist/assets/shell-CjFT_Tl9.js +1 -0
  698. package/ui-dist/assets/sieve-C3Gn_uJK.js +1 -0
  699. package/ui-dist/assets/simple-mode-GW_nhZxv.js +1 -0
  700. package/ui-dist/assets/smalltalk-CnHTOXQT.js +1 -0
  701. package/ui-dist/assets/solr-DehyRSwq.js +1 -0
  702. package/ui-dist/assets/sparql-DkYu6x3z.js +1 -0
  703. package/ui-dist/assets/spreadsheet-BCZA_wO0.js +1 -0
  704. package/ui-dist/assets/sql-D0XecflT.js +1 -0
  705. package/ui-dist/assets/stateDiagram-FKZM4ZOC-C9L_ELvE.js +1 -0
  706. package/ui-dist/assets/stateDiagram-v2-4FDKWEC3-D3i22gRM.js +1 -0
  707. package/ui-dist/assets/stex-C3f8Ysf7.js +1 -0
  708. package/ui-dist/assets/stylus-B533Al4x.js +1 -0
  709. package/ui-dist/assets/swift-BzpIVaGY.js +1 -0
  710. package/ui-dist/assets/tcl-DVfN8rqt.js +1 -0
  711. package/ui-dist/assets/textile-CnDTJFAw.js +1 -0
  712. package/ui-dist/assets/tiddlywiki-DO-Gjzrf.js +1 -0
  713. package/ui-dist/assets/tiki-DGYXhP31.js +1 -0
  714. package/ui-dist/assets/timeline-definition-IT6M3QCI-Bfva-2zq.js +61 -0
  715. package/ui-dist/assets/toml-Bm5Em-hy.js +1 -0
  716. package/ui-dist/assets/treemap-GDKQZRPO-6wTQWQt4.js +162 -0
  717. package/ui-dist/assets/troff-wAsdV37c.js +1 -0
  718. package/ui-dist/assets/ttcn-CfJYG6tj.js +1 -0
  719. package/ui-dist/assets/ttcn-cfg-B9xdYoR4.js +1 -0
  720. package/ui-dist/assets/turtle-B1tBg_DP.js +1 -0
  721. package/ui-dist/assets/vb-CmGdzxic.js +1 -0
  722. package/ui-dist/assets/vbscript-BuJXcnF6.js +1 -0
  723. package/ui-dist/assets/velocity-D8B20fx6.js +1 -0
  724. package/ui-dist/assets/verilog-C6RDOZhf.js +1 -0
  725. package/ui-dist/assets/vhdl-lSbBsy5d.js +1 -0
  726. package/ui-dist/assets/webidl-ZXfAyPTL.js +1 -0
  727. package/ui-dist/assets/xquery-DzFWVndE.js +1 -0
  728. package/ui-dist/assets/xychartDiagram-PRI3JC2R-DNsmIw3v.js +7 -0
  729. package/ui-dist/assets/yacas-BJ4BC0dw.js +1 -0
  730. package/ui-dist/assets/z80-Hz9HOZM7.js +1 -0
  731. package/ui-dist/brands/opencode-logo-dark-square.svg +18 -0
  732. package/ui-dist/brands/opencode-logo-light-square.svg +18 -0
  733. package/ui-dist/favicon-16x16.png +0 -0
  734. package/ui-dist/favicon-32x32.png +0 -0
  735. package/ui-dist/favicon.ico +0 -0
  736. package/ui-dist/favicon.svg +9 -0
  737. package/ui-dist/index.html +48 -0
  738. package/ui-dist/site.webmanifest +30 -0
  739. package/ui-dist/sw.js +42 -0
  740. package/ui-dist/worktree-favicon-16x16.png +0 -0
  741. package/ui-dist/worktree-favicon-32x32.png +0 -0
  742. package/ui-dist/worktree-favicon.ico +0 -0
  743. package/ui-dist/worktree-favicon.svg +9 -0
@@ -0,0 +1,224 @@
1
+ /**
2
+ * PluginToolDispatcher — orchestrates plugin tool discovery, lifecycle
3
+ * integration, and execution routing for the agent service.
4
+ *
5
+ * This service sits between the agent service and the lower-level
6
+ * `PluginToolRegistry` + `PluginWorkerManager`, providing a clean API that:
7
+ *
8
+ * - Discovers tools from loaded plugin manifests and registers them
9
+ * in the tool registry.
10
+ * - Hooks into `PluginLifecycleManager` events to automatically register
11
+ * and unregister tools when plugins are enabled or disabled.
12
+ * - Exposes the tool list in an agent-friendly format (with namespaced
13
+ * names, descriptions, parameter schemas).
14
+ * - Routes `executeTool` calls to the correct plugin worker and returns
15
+ * structured results.
16
+ * - Validates tool parameters against declared schemas before dispatch.
17
+ *
18
+ * The dispatcher is created once at server startup and shared across
19
+ * the application.
20
+ *
21
+ * @see PLUGIN_SPEC.md §11 — Agent Tools
22
+ * @see PLUGIN_SPEC.md §13.10 — `executeTool`
23
+ */
24
+ import { createPluginToolRegistry, } from "./plugin-tool-registry.js";
25
+ import { pluginRegistryService } from "./plugin-registry.js";
26
+ import { logger } from "../middleware/logger.js";
27
+ // ---------------------------------------------------------------------------
28
+ // Factory: createPluginToolDispatcher
29
+ // ---------------------------------------------------------------------------
30
+ /**
31
+ * Create a new `PluginToolDispatcher`.
32
+ *
33
+ * The dispatcher:
34
+ * 1. Creates and owns a `PluginToolRegistry` backed by the given worker manager.
35
+ * 2. Listens for lifecycle events (plugin.enabled, plugin.disabled, plugin.unloaded)
36
+ * to automatically register and unregister tools.
37
+ * 3. On `initialize()`, loads tools from all currently-ready plugins via the DB.
38
+ *
39
+ * @param options - Configuration options
40
+ *
41
+ * @example
42
+ * ```ts
43
+ * // At server startup
44
+ * const dispatcher = createPluginToolDispatcher({
45
+ * workerManager,
46
+ * lifecycleManager,
47
+ * db,
48
+ * });
49
+ * await dispatcher.initialize();
50
+ *
51
+ * // In agent service — list tools for prompt construction
52
+ * const tools = dispatcher.listToolsForAgent();
53
+ *
54
+ * // In agent service — execute a tool
55
+ * const result = await dispatcher.executeTool(
56
+ * "acme.linear:search-issues",
57
+ * { query: "auth bug" },
58
+ * { agentId: "a-1", runId: "r-1", companyId: "c-1", projectId: "p-1" },
59
+ * );
60
+ * ```
61
+ */
62
+ export function createPluginToolDispatcher(options = {}) {
63
+ const { workerManager, lifecycleManager, db } = options;
64
+ const log = logger.child({ service: "plugin-tool-dispatcher" });
65
+ // Create the underlying tool registry, backed by the worker manager
66
+ const registry = createPluginToolRegistry(workerManager);
67
+ // Track lifecycle event listeners so we can remove them on teardown
68
+ let enabledListener = null;
69
+ let disabledListener = null;
70
+ let unloadedListener = null;
71
+ let initialized = false;
72
+ // -----------------------------------------------------------------------
73
+ // Internal helpers
74
+ // -----------------------------------------------------------------------
75
+ /**
76
+ * Attempt to register tools for a plugin by looking up its manifest
77
+ * from the DB. No-ops gracefully if the plugin or manifest is missing.
78
+ */
79
+ async function registerFromDb(pluginId) {
80
+ if (!db) {
81
+ log.warn({ pluginId }, "cannot register tools from DB — no database connection configured");
82
+ return;
83
+ }
84
+ const pluginRegistry = pluginRegistryService(db);
85
+ const plugin = await pluginRegistry.getById(pluginId);
86
+ if (!plugin) {
87
+ log.warn({ pluginId }, "plugin not found in registry, cannot register tools");
88
+ return;
89
+ }
90
+ const manifest = plugin.manifestJson;
91
+ if (!manifest) {
92
+ log.warn({ pluginId }, "plugin has no manifest, cannot register tools");
93
+ return;
94
+ }
95
+ registry.registerPlugin(plugin.pluginKey, manifest, plugin.id);
96
+ }
97
+ /**
98
+ * Convert a `RegisteredTool` to an `AgentToolDescriptor`.
99
+ */
100
+ function toAgentDescriptor(tool) {
101
+ return {
102
+ name: tool.namespacedName,
103
+ displayName: tool.displayName,
104
+ description: tool.description,
105
+ parametersSchema: tool.parametersSchema,
106
+ pluginId: tool.pluginDbId,
107
+ };
108
+ }
109
+ // -----------------------------------------------------------------------
110
+ // Lifecycle event handlers
111
+ // -----------------------------------------------------------------------
112
+ function handlePluginEnabled(payload) {
113
+ log.debug({ pluginId: payload.pluginId, pluginKey: payload.pluginKey }, "plugin enabled — registering tools");
114
+ // Async registration from DB — we fire-and-forget since the lifecycle
115
+ // event handler must be synchronous. Any errors are logged.
116
+ void registerFromDb(payload.pluginId).catch((err) => {
117
+ log.error({ pluginId: payload.pluginId, err: err instanceof Error ? err.message : String(err) }, "failed to register tools after plugin enabled");
118
+ });
119
+ }
120
+ function handlePluginDisabled(payload) {
121
+ log.debug({ pluginId: payload.pluginId, pluginKey: payload.pluginKey }, "plugin disabled — unregistering tools");
122
+ registry.unregisterPlugin(payload.pluginKey);
123
+ }
124
+ function handlePluginUnloaded(payload) {
125
+ log.debug({ pluginId: payload.pluginId, pluginKey: payload.pluginKey }, "plugin unloaded — unregistering tools");
126
+ registry.unregisterPlugin(payload.pluginKey);
127
+ }
128
+ // -----------------------------------------------------------------------
129
+ // Public API
130
+ // -----------------------------------------------------------------------
131
+ return {
132
+ async initialize() {
133
+ if (initialized) {
134
+ log.warn("dispatcher already initialized, skipping");
135
+ return;
136
+ }
137
+ log.info("initializing plugin tool dispatcher");
138
+ // Step 1: Load tools from all currently-ready plugins
139
+ if (db) {
140
+ const pluginRegistry = pluginRegistryService(db);
141
+ const readyPlugins = await pluginRegistry.listByStatus("ready");
142
+ let totalTools = 0;
143
+ for (const plugin of readyPlugins) {
144
+ const manifest = plugin.manifestJson;
145
+ if (manifest?.tools && manifest.tools.length > 0) {
146
+ registry.registerPlugin(plugin.pluginKey, manifest, plugin.id);
147
+ totalTools += manifest.tools.length;
148
+ }
149
+ }
150
+ log.info({ readyPlugins: readyPlugins.length, registeredTools: totalTools }, "loaded tools from ready plugins");
151
+ }
152
+ // Step 2: Subscribe to lifecycle events for dynamic updates
153
+ if (lifecycleManager) {
154
+ enabledListener = handlePluginEnabled;
155
+ disabledListener = handlePluginDisabled;
156
+ unloadedListener = handlePluginUnloaded;
157
+ lifecycleManager.on("plugin.enabled", enabledListener);
158
+ lifecycleManager.on("plugin.disabled", disabledListener);
159
+ lifecycleManager.on("plugin.unloaded", unloadedListener);
160
+ log.debug("subscribed to lifecycle events");
161
+ }
162
+ else {
163
+ log.warn("no lifecycle manager provided — tools will not auto-update on plugin state changes");
164
+ }
165
+ initialized = true;
166
+ log.info({ totalTools: registry.toolCount() }, "plugin tool dispatcher initialized");
167
+ },
168
+ teardown() {
169
+ if (!initialized)
170
+ return;
171
+ // Unsubscribe from lifecycle events
172
+ if (lifecycleManager) {
173
+ if (enabledListener)
174
+ lifecycleManager.off("plugin.enabled", enabledListener);
175
+ if (disabledListener)
176
+ lifecycleManager.off("plugin.disabled", disabledListener);
177
+ if (unloadedListener)
178
+ lifecycleManager.off("plugin.unloaded", unloadedListener);
179
+ enabledListener = null;
180
+ disabledListener = null;
181
+ unloadedListener = null;
182
+ }
183
+ // Note: we do NOT clear the registry here because teardown may be
184
+ // called during graceful shutdown where in-flight tool calls should
185
+ // still be able to resolve their tool entries.
186
+ initialized = false;
187
+ log.info("plugin tool dispatcher torn down");
188
+ },
189
+ listToolsForAgent(filter) {
190
+ return registry.listTools(filter).map(toAgentDescriptor);
191
+ },
192
+ getTool(namespacedName) {
193
+ return registry.getTool(namespacedName);
194
+ },
195
+ async executeTool(namespacedName, parameters, runContext) {
196
+ log.debug({
197
+ tool: namespacedName,
198
+ agentId: runContext.agentId,
199
+ runId: runContext.runId,
200
+ }, "dispatching tool execution");
201
+ const result = await registry.executeTool(namespacedName, parameters, runContext);
202
+ log.debug({
203
+ tool: namespacedName,
204
+ pluginId: result.pluginId,
205
+ hasContent: !!result.result.content,
206
+ hasError: !!result.result.error,
207
+ }, "tool execution completed");
208
+ return result;
209
+ },
210
+ registerPluginTools(pluginId, manifest) {
211
+ registry.registerPlugin(pluginId, manifest);
212
+ },
213
+ unregisterPluginTools(pluginId) {
214
+ registry.unregisterPlugin(pluginId);
215
+ },
216
+ toolCount(pluginId) {
217
+ return registry.toolCount(pluginId);
218
+ },
219
+ getRegistry() {
220
+ return registry;
221
+ },
222
+ };
223
+ }
224
+ //# sourceMappingURL=plugin-tool-dispatcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-tool-dispatcher.js","sourceRoot":"","sources":["../../src/services/plugin-tool-dispatcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,192 @@
1
+ /**
2
+ * PluginToolRegistry — host-side registry for plugin-contributed agent tools.
3
+ *
4
+ * Responsibilities:
5
+ * - Store tool declarations (from plugin manifests) alongside routing metadata
6
+ * so the host can resolve namespaced tool names to the owning plugin worker.
7
+ * - Namespace tools automatically: a tool `"search-issues"` from plugin
8
+ * `"acme.linear"` is exposed to agents as `"acme.linear:search-issues"`.
9
+ * - Route `executeTool` calls to the correct plugin worker via the
10
+ * `PluginWorkerManager`.
11
+ * - Provide tool discovery queries so agents can list available tools.
12
+ * - Clean up tool registrations when a plugin is unloaded or its worker stops.
13
+ *
14
+ * The registry is an in-memory structure — tool declarations are derived from
15
+ * the plugin manifest at load time and do not need persistence. When a plugin
16
+ * worker restarts, the host re-registers its manifest tools.
17
+ *
18
+ * @see PLUGIN_SPEC.md §11 — Agent Tools
19
+ * @see PLUGIN_SPEC.md §13.10 — `executeTool`
20
+ */
21
+ import type { FideliOSPluginManifestV1 } from "@fidelios/shared";
22
+ import type { ToolRunContext, ToolResult } from "@fidelios/plugin-sdk";
23
+ import type { PluginWorkerManager } from "./plugin-worker-manager.js";
24
+ /**
25
+ * Separator between plugin ID and tool name in the namespaced tool identifier.
26
+ *
27
+ * Example: `"acme.linear:search-issues"`
28
+ */
29
+ export declare const TOOL_NAMESPACE_SEPARATOR = ":";
30
+ /**
31
+ * A registered tool entry stored in the registry.
32
+ *
33
+ * Combines the manifest-level declaration with routing metadata so the host
34
+ * can resolve a namespaced tool name → plugin worker in O(1).
35
+ */
36
+ export interface RegisteredTool {
37
+ /** The plugin key used for namespacing (e.g. `"acme.linear"`). */
38
+ pluginId: string;
39
+ /**
40
+ * The plugin's database UUID, used for worker routing and availability
41
+ * checks. Falls back to `pluginId` when not provided (e.g. in tests
42
+ * where `id === pluginKey`).
43
+ */
44
+ pluginDbId: string;
45
+ /** The tool's bare name (without namespace prefix). */
46
+ name: string;
47
+ /** Fully namespaced identifier: `"<pluginId>:<toolName>"`. */
48
+ namespacedName: string;
49
+ /** Human-readable display name. */
50
+ displayName: string;
51
+ /** Description provided to the agent so it knows when to use this tool. */
52
+ description: string;
53
+ /** JSON Schema describing the tool's input parameters. */
54
+ parametersSchema: Record<string, unknown>;
55
+ }
56
+ /**
57
+ * Filter criteria for listing available tools.
58
+ */
59
+ export interface ToolListFilter {
60
+ /** Only return tools owned by this plugin. */
61
+ pluginId?: string;
62
+ }
63
+ /**
64
+ * Result of executing a tool, extending `ToolResult` with routing metadata.
65
+ */
66
+ export interface ToolExecutionResult {
67
+ /** The plugin that handled the tool call. */
68
+ pluginId: string;
69
+ /** The bare tool name that was executed. */
70
+ toolName: string;
71
+ /** The result returned by the plugin's tool handler. */
72
+ result: ToolResult;
73
+ }
74
+ /**
75
+ * The host-side tool registry — held by the host process.
76
+ *
77
+ * Created once at server startup and shared across the application. Plugins
78
+ * register their tools when their worker starts, and unregister when the
79
+ * worker stops or the plugin is uninstalled.
80
+ */
81
+ export interface PluginToolRegistry {
82
+ /**
83
+ * Register all tools declared in a plugin's manifest.
84
+ *
85
+ * Called when a plugin worker starts and its manifest is loaded. Any
86
+ * previously registered tools for the same plugin are replaced (idempotent).
87
+ *
88
+ * @param pluginId - The plugin's unique identifier (e.g. `"acme.linear"`)
89
+ * @param manifest - The plugin manifest containing the `tools` array
90
+ * @param pluginDbId - The plugin's database UUID, used for worker routing
91
+ * and availability checks. If omitted, `pluginId` is used (backwards-compat).
92
+ */
93
+ registerPlugin(pluginId: string, manifest: FideliOSPluginManifestV1, pluginDbId?: string): void;
94
+ /**
95
+ * Remove all tool registrations for a plugin.
96
+ *
97
+ * Called when a plugin worker stops, crashes, or is uninstalled.
98
+ *
99
+ * @param pluginId - The plugin to clear
100
+ */
101
+ unregisterPlugin(pluginId: string): void;
102
+ /**
103
+ * Look up a registered tool by its namespaced name.
104
+ *
105
+ * @param namespacedName - Fully qualified name, e.g. `"acme.linear:search-issues"`
106
+ * @returns The registered tool entry, or `null` if not found
107
+ */
108
+ getTool(namespacedName: string): RegisteredTool | null;
109
+ /**
110
+ * Look up a registered tool by plugin ID and bare tool name.
111
+ *
112
+ * @param pluginId - The owning plugin
113
+ * @param toolName - The bare tool name (without namespace prefix)
114
+ * @returns The registered tool entry, or `null` if not found
115
+ */
116
+ getToolByPlugin(pluginId: string, toolName: string): RegisteredTool | null;
117
+ /**
118
+ * List all registered tools, optionally filtered.
119
+ *
120
+ * @param filter - Optional filter criteria
121
+ * @returns Array of registered tool entries
122
+ */
123
+ listTools(filter?: ToolListFilter): RegisteredTool[];
124
+ /**
125
+ * Parse a namespaced tool name into plugin ID and bare tool name.
126
+ *
127
+ * @param namespacedName - e.g. `"acme.linear:search-issues"`
128
+ * @returns `{ pluginId, toolName }` or `null` if the format is invalid
129
+ */
130
+ parseNamespacedName(namespacedName: string): {
131
+ pluginId: string;
132
+ toolName: string;
133
+ } | null;
134
+ /**
135
+ * Build a namespaced tool name from a plugin ID and bare tool name.
136
+ *
137
+ * @param pluginId - e.g. `"acme.linear"`
138
+ * @param toolName - e.g. `"search-issues"`
139
+ * @returns The namespaced name, e.g. `"acme.linear:search-issues"`
140
+ */
141
+ buildNamespacedName(pluginId: string, toolName: string): string;
142
+ /**
143
+ * Execute a tool by its namespaced name, routing to the correct plugin worker.
144
+ *
145
+ * Resolves the namespaced name to the owning plugin, validates the tool
146
+ * exists, and dispatches the `executeTool` RPC call to the worker.
147
+ *
148
+ * @param namespacedName - Fully qualified tool name (e.g. `"acme.linear:search-issues"`)
149
+ * @param parameters - The parsed parameters matching the tool's schema
150
+ * @param runContext - Agent run context
151
+ * @returns The execution result with routing metadata
152
+ * @throws {Error} if the tool is not found or the worker is not running
153
+ */
154
+ executeTool(namespacedName: string, parameters: unknown, runContext: ToolRunContext): Promise<ToolExecutionResult>;
155
+ /**
156
+ * Get the number of registered tools, optionally scoped to a plugin.
157
+ *
158
+ * @param pluginId - If provided, count only this plugin's tools
159
+ */
160
+ toolCount(pluginId?: string): number;
161
+ }
162
+ /**
163
+ * Create a new `PluginToolRegistry`.
164
+ *
165
+ * The registry is backed by two in-memory maps:
166
+ * - `byNamespace`: namespaced name → `RegisteredTool` for O(1) lookups.
167
+ * - `byPlugin`: pluginId → Set of namespaced names for efficient per-plugin ops.
168
+ *
169
+ * @param workerManager - The worker manager used to dispatch `executeTool` RPC
170
+ * calls to plugin workers. If not provided, `executeTool` will throw.
171
+ *
172
+ * @example
173
+ * ```ts
174
+ * const toolRegistry = createPluginToolRegistry(workerManager);
175
+ *
176
+ * // Register tools from a plugin manifest
177
+ * toolRegistry.registerPlugin("acme.linear", linearManifest);
178
+ *
179
+ * // List all available tools for agents
180
+ * const tools = toolRegistry.listTools();
181
+ * // → [{ namespacedName: "acme.linear:search-issues", ... }]
182
+ *
183
+ * // Execute a tool
184
+ * const result = await toolRegistry.executeTool(
185
+ * "acme.linear:search-issues",
186
+ * { query: "auth bug" },
187
+ * { agentId: "agent-1", runId: "run-1", companyId: "co-1", projectId: "proj-1" },
188
+ * );
189
+ * ```
190
+ */
191
+ export declare function createPluginToolRegistry(workerManager?: PluginWorkerManager): PluginToolRegistry;
192
+ //# sourceMappingURL=plugin-tool-registry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-tool-registry.d.ts","sourceRoot":"","sources":["../../src/services/plugin-tool-registry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAEH,OAAO,KAAK,EACV,wBAAwB,EAEzB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,cAAc,EAAE,UAAU,EAAqB,MAAM,sBAAsB,CAAC;AAC1F,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,4BAA4B,CAAC;AAOtE;;;;GAIG;AACH,eAAO,MAAM,wBAAwB,MAAM,CAAC;AAM5C;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,kEAAkE;IAClE,QAAQ,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,uDAAuD;IACvD,IAAI,EAAE,MAAM,CAAC;IACb,8DAA8D;IAC9D,cAAc,EAAE,MAAM,CAAC;IACvB,mCAAmC;IACnC,WAAW,EAAE,MAAM,CAAC;IACpB,2EAA2E;IAC3E,WAAW,EAAE,MAAM,CAAC;IACpB,0DAA0D;IAC1D,gBAAgB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC3C;AAED;;GAEG;AACH,MAAM,WAAW,cAAc;IAC7B,8CAA8C;IAC9C,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,6CAA6C;IAC7C,QAAQ,EAAE,MAAM,CAAC;IACjB,4CAA4C;IAC5C,QAAQ,EAAE,MAAM,CAAC;IACjB,wDAAwD;IACxD,MAAM,EAAE,UAAU,CAAC;CACpB;AAMD;;;;;;GAMG;AACH,MAAM,WAAW,kBAAkB;IACjC;;;;;;;;;;OAUG;IACH,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,wBAAwB,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAEhG;;;;;;OAMG;IACH,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IAEzC;;;;;OAKG;IACH,OAAO,CAAC,cAAc,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAAC;IAEvD;;;;;;OAMG;IACH,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,cAAc,GAAG,IAAI,CAAC;IAE3E;;;;;OAKG;IACH,SAAS,CAAC,MAAM,CAAC,EAAE,cAAc,GAAG,cAAc,EAAE,CAAC;IAErD;;;;;OAKG;IACH,mBAAmB,CAAC,cAAc,EAAE,MAAM,GAAG;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAE3F;;;;;;OAMG;IACH,mBAAmB,CAAC,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC;IAEhE;;;;;;;;;;;OAWG;IACH,WAAW,CACT,cAAc,EAAE,MAAM,EACtB,UAAU,EAAE,OAAO,EACnB,UAAU,EAAE,cAAc,GACzB,OAAO,CAAC,mBAAmB,CAAC,CAAC;IAEhC;;;;OAIG;IACH,SAAS,CAAC,QAAQ,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACtC;AAMD;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,wBAAgB,wBAAwB,CACtC,aAAa,CAAC,EAAE,mBAAmB,GAClC,kBAAkB,CA4NpB"}
@@ -0,0 +1,224 @@
1
+ /**
2
+ * PluginToolRegistry — host-side registry for plugin-contributed agent tools.
3
+ *
4
+ * Responsibilities:
5
+ * - Store tool declarations (from plugin manifests) alongside routing metadata
6
+ * so the host can resolve namespaced tool names to the owning plugin worker.
7
+ * - Namespace tools automatically: a tool `"search-issues"` from plugin
8
+ * `"acme.linear"` is exposed to agents as `"acme.linear:search-issues"`.
9
+ * - Route `executeTool` calls to the correct plugin worker via the
10
+ * `PluginWorkerManager`.
11
+ * - Provide tool discovery queries so agents can list available tools.
12
+ * - Clean up tool registrations when a plugin is unloaded or its worker stops.
13
+ *
14
+ * The registry is an in-memory structure — tool declarations are derived from
15
+ * the plugin manifest at load time and do not need persistence. When a plugin
16
+ * worker restarts, the host re-registers its manifest tools.
17
+ *
18
+ * @see PLUGIN_SPEC.md §11 — Agent Tools
19
+ * @see PLUGIN_SPEC.md §13.10 — `executeTool`
20
+ */
21
+ import { logger } from "../middleware/logger.js";
22
+ // ---------------------------------------------------------------------------
23
+ // Constants
24
+ // ---------------------------------------------------------------------------
25
+ /**
26
+ * Separator between plugin ID and tool name in the namespaced tool identifier.
27
+ *
28
+ * Example: `"acme.linear:search-issues"`
29
+ */
30
+ export const TOOL_NAMESPACE_SEPARATOR = ":";
31
+ // ---------------------------------------------------------------------------
32
+ // Factory: createPluginToolRegistry
33
+ // ---------------------------------------------------------------------------
34
+ /**
35
+ * Create a new `PluginToolRegistry`.
36
+ *
37
+ * The registry is backed by two in-memory maps:
38
+ * - `byNamespace`: namespaced name → `RegisteredTool` for O(1) lookups.
39
+ * - `byPlugin`: pluginId → Set of namespaced names for efficient per-plugin ops.
40
+ *
41
+ * @param workerManager - The worker manager used to dispatch `executeTool` RPC
42
+ * calls to plugin workers. If not provided, `executeTool` will throw.
43
+ *
44
+ * @example
45
+ * ```ts
46
+ * const toolRegistry = createPluginToolRegistry(workerManager);
47
+ *
48
+ * // Register tools from a plugin manifest
49
+ * toolRegistry.registerPlugin("acme.linear", linearManifest);
50
+ *
51
+ * // List all available tools for agents
52
+ * const tools = toolRegistry.listTools();
53
+ * // → [{ namespacedName: "acme.linear:search-issues", ... }]
54
+ *
55
+ * // Execute a tool
56
+ * const result = await toolRegistry.executeTool(
57
+ * "acme.linear:search-issues",
58
+ * { query: "auth bug" },
59
+ * { agentId: "agent-1", runId: "run-1", companyId: "co-1", projectId: "proj-1" },
60
+ * );
61
+ * ```
62
+ */
63
+ export function createPluginToolRegistry(workerManager) {
64
+ const log = logger.child({ service: "plugin-tool-registry" });
65
+ // Primary index: namespaced name → tool entry
66
+ const byNamespace = new Map();
67
+ // Secondary index: pluginId → set of namespaced names (for bulk operations)
68
+ const byPlugin = new Map();
69
+ // -----------------------------------------------------------------------
70
+ // Internal helpers
71
+ // -----------------------------------------------------------------------
72
+ function buildName(pluginId, toolName) {
73
+ return `${pluginId}${TOOL_NAMESPACE_SEPARATOR}${toolName}`;
74
+ }
75
+ function parseName(namespacedName) {
76
+ const sepIndex = namespacedName.lastIndexOf(TOOL_NAMESPACE_SEPARATOR);
77
+ if (sepIndex <= 0 || sepIndex >= namespacedName.length - 1) {
78
+ return null;
79
+ }
80
+ return {
81
+ pluginId: namespacedName.slice(0, sepIndex),
82
+ toolName: namespacedName.slice(sepIndex + 1),
83
+ };
84
+ }
85
+ function addTool(pluginId, decl, pluginDbId) {
86
+ const namespacedName = buildName(pluginId, decl.name);
87
+ const entry = {
88
+ pluginId,
89
+ pluginDbId,
90
+ name: decl.name,
91
+ namespacedName,
92
+ displayName: decl.displayName,
93
+ description: decl.description,
94
+ parametersSchema: decl.parametersSchema,
95
+ };
96
+ byNamespace.set(namespacedName, entry);
97
+ let pluginTools = byPlugin.get(pluginId);
98
+ if (!pluginTools) {
99
+ pluginTools = new Set();
100
+ byPlugin.set(pluginId, pluginTools);
101
+ }
102
+ pluginTools.add(namespacedName);
103
+ }
104
+ function removePluginTools(pluginId) {
105
+ const pluginTools = byPlugin.get(pluginId);
106
+ if (!pluginTools)
107
+ return 0;
108
+ const count = pluginTools.size;
109
+ for (const name of pluginTools) {
110
+ byNamespace.delete(name);
111
+ }
112
+ byPlugin.delete(pluginId);
113
+ return count;
114
+ }
115
+ // -----------------------------------------------------------------------
116
+ // Public API
117
+ // -----------------------------------------------------------------------
118
+ return {
119
+ registerPlugin(pluginId, manifest, pluginDbId) {
120
+ const dbId = pluginDbId ?? pluginId;
121
+ // Remove any previously registered tools for this plugin (idempotent)
122
+ const previousCount = removePluginTools(pluginId);
123
+ if (previousCount > 0) {
124
+ log.debug({ pluginId, previousCount }, "cleared previous tool registrations before re-registering");
125
+ }
126
+ const tools = manifest.tools ?? [];
127
+ if (tools.length === 0) {
128
+ log.debug({ pluginId }, "plugin declares no tools");
129
+ return;
130
+ }
131
+ for (const decl of tools) {
132
+ addTool(pluginId, decl, dbId);
133
+ }
134
+ log.info({
135
+ pluginId,
136
+ toolCount: tools.length,
137
+ tools: tools.map((t) => buildName(pluginId, t.name)),
138
+ }, `registered ${tools.length} tool(s) for plugin`);
139
+ },
140
+ unregisterPlugin(pluginId) {
141
+ const removed = removePluginTools(pluginId);
142
+ if (removed > 0) {
143
+ log.info({ pluginId, removedCount: removed }, `unregistered ${removed} tool(s) for plugin`);
144
+ }
145
+ },
146
+ getTool(namespacedName) {
147
+ return byNamespace.get(namespacedName) ?? null;
148
+ },
149
+ getToolByPlugin(pluginId, toolName) {
150
+ const namespacedName = buildName(pluginId, toolName);
151
+ return byNamespace.get(namespacedName) ?? null;
152
+ },
153
+ listTools(filter) {
154
+ if (filter?.pluginId) {
155
+ const pluginTools = byPlugin.get(filter.pluginId);
156
+ if (!pluginTools)
157
+ return [];
158
+ const result = [];
159
+ for (const name of pluginTools) {
160
+ const tool = byNamespace.get(name);
161
+ if (tool)
162
+ result.push(tool);
163
+ }
164
+ return result;
165
+ }
166
+ return Array.from(byNamespace.values());
167
+ },
168
+ parseNamespacedName(namespacedName) {
169
+ return parseName(namespacedName);
170
+ },
171
+ buildNamespacedName(pluginId, toolName) {
172
+ return buildName(pluginId, toolName);
173
+ },
174
+ async executeTool(namespacedName, parameters, runContext) {
175
+ // 1. Resolve the namespaced name
176
+ const parsed = parseName(namespacedName);
177
+ if (!parsed) {
178
+ throw new Error(`Invalid tool name "${namespacedName}". Expected format: "<pluginId>${TOOL_NAMESPACE_SEPARATOR}<toolName>"`);
179
+ }
180
+ const { pluginId, toolName } = parsed;
181
+ // 2. Verify the tool is registered
182
+ const tool = byNamespace.get(namespacedName);
183
+ if (!tool) {
184
+ throw new Error(`Tool "${namespacedName}" is not registered. ` +
185
+ `The plugin may not be installed or its worker may not be running.`);
186
+ }
187
+ // 3. Verify the worker manager is available
188
+ if (!workerManager) {
189
+ throw new Error(`Cannot execute tool "${namespacedName}" — no worker manager configured. ` +
190
+ `Tool execution requires a PluginWorkerManager.`);
191
+ }
192
+ // 4. Verify the plugin worker is running (use DB UUID for worker lookup)
193
+ const dbId = tool.pluginDbId;
194
+ if (!workerManager.isRunning(dbId)) {
195
+ throw new Error(`Cannot execute tool "${namespacedName}" — ` +
196
+ `worker for plugin "${pluginId}" is not running.`);
197
+ }
198
+ // 5. Dispatch the executeTool RPC call to the worker
199
+ log.debug({ pluginId, pluginDbId: dbId, toolName, namespacedName, agentId: runContext.agentId, runId: runContext.runId }, "executing tool via plugin worker");
200
+ const rpcParams = {
201
+ toolName,
202
+ parameters,
203
+ runContext,
204
+ };
205
+ const result = await workerManager.call(dbId, "executeTool", rpcParams);
206
+ log.debug({
207
+ pluginId,
208
+ toolName,
209
+ namespacedName,
210
+ hasContent: !!result.content,
211
+ hasData: result.data !== undefined,
212
+ hasError: !!result.error,
213
+ }, "tool execution completed");
214
+ return { pluginId, toolName, result };
215
+ },
216
+ toolCount(pluginId) {
217
+ if (pluginId !== undefined) {
218
+ return byPlugin.get(pluginId)?.size ?? 0;
219
+ }
220
+ return byNamespace.size;
221
+ },
222
+ };
223
+ }
224
+ //# sourceMappingURL=plugin-tool-registry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"plugin-tool-registry.js","sourceRoot":"","sources":["../../src/services/plugin-tool-registry.ts"],"names":[],"mappings":"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"}