@growthub/cli 0.3.13 → 0.3.15

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 (1699) hide show
  1. package/dist/index.js +190 -186
  2. package/dist/index.js.map +1 -1
  3. package/dist/runtime/server/dist/adapters/codex-models.d.ts +4 -0
  4. package/dist/runtime/server/dist/adapters/codex-models.d.ts.map +1 -0
  5. package/dist/runtime/server/dist/adapters/codex-models.js +98 -0
  6. package/dist/runtime/server/dist/adapters/codex-models.js.map +1 -0
  7. package/dist/runtime/server/dist/adapters/cursor-models.d.ts +13 -0
  8. package/dist/runtime/server/dist/adapters/cursor-models.d.ts.map +1 -0
  9. package/dist/runtime/server/dist/adapters/cursor-models.js +148 -0
  10. package/dist/runtime/server/dist/adapters/cursor-models.js.map +1 -0
  11. package/dist/runtime/server/dist/adapters/http/execute.d.ts +3 -0
  12. package/dist/runtime/server/dist/adapters/http/execute.d.ts.map +1 -0
  13. package/dist/runtime/server/dist/adapters/http/execute.js +39 -0
  14. package/dist/runtime/server/dist/adapters/http/execute.js.map +1 -0
  15. package/dist/runtime/server/dist/adapters/http/index.d.ts +3 -0
  16. package/dist/runtime/server/dist/adapters/http/index.d.ts.map +1 -0
  17. package/dist/runtime/server/dist/adapters/http/index.js +20 -0
  18. package/dist/runtime/server/dist/adapters/http/index.js.map +1 -0
  19. package/dist/runtime/server/dist/adapters/http/test.d.ts +3 -0
  20. package/dist/runtime/server/dist/adapters/http/test.d.ts.map +1 -0
  21. package/dist/runtime/server/dist/adapters/http/test.js +106 -0
  22. package/dist/runtime/server/dist/adapters/http/test.js.map +1 -0
  23. package/dist/runtime/server/dist/adapters/index.d.ts +4 -0
  24. package/dist/runtime/server/dist/adapters/index.d.ts.map +1 -0
  25. package/dist/runtime/server/dist/adapters/index.js +3 -0
  26. package/dist/runtime/server/dist/adapters/index.js.map +1 -0
  27. package/dist/runtime/server/dist/adapters/process/execute.d.ts +3 -0
  28. package/dist/runtime/server/dist/adapters/process/execute.d.ts.map +1 -0
  29. package/dist/runtime/server/dist/adapters/process/execute.js +63 -0
  30. package/dist/runtime/server/dist/adapters/process/execute.js.map +1 -0
  31. package/dist/runtime/server/dist/adapters/process/index.d.ts +3 -0
  32. package/dist/runtime/server/dist/adapters/process/index.d.ts.map +1 -0
  33. package/dist/runtime/server/dist/adapters/process/index.js +23 -0
  34. package/dist/runtime/server/dist/adapters/process/index.js.map +1 -0
  35. package/dist/runtime/server/dist/adapters/process/test.d.ts +3 -0
  36. package/dist/runtime/server/dist/adapters/process/test.d.ts.map +1 -0
  37. package/dist/runtime/server/dist/adapters/process/test.js +77 -0
  38. package/dist/runtime/server/dist/adapters/process/test.js.map +1 -0
  39. package/dist/runtime/server/dist/adapters/registry.d.ts +9 -0
  40. package/dist/runtime/server/dist/adapters/registry.d.ts.map +1 -0
  41. package/dist/runtime/server/dist/adapters/registry.js +142 -0
  42. package/dist/runtime/server/dist/adapters/registry.js.map +1 -0
  43. package/dist/runtime/server/dist/adapters/types.d.ts +2 -0
  44. package/dist/runtime/server/dist/adapters/types.d.ts.map +1 -0
  45. package/dist/runtime/server/dist/adapters/types.js +2 -0
  46. package/dist/runtime/server/dist/adapters/types.js.map +1 -0
  47. package/dist/runtime/server/dist/adapters/utils.d.ts +10 -0
  48. package/dist/runtime/server/dist/adapters/utils.d.ts.map +1 -0
  49. package/dist/runtime/server/dist/adapters/utils.js +14 -0
  50. package/dist/runtime/server/dist/adapters/utils.js.map +1 -0
  51. package/dist/runtime/server/dist/agent-auth-jwt.d.ts +14 -0
  52. package/dist/runtime/server/dist/agent-auth-jwt.d.ts.map +1 -0
  53. package/dist/runtime/server/dist/agent-auth-jwt.js +117 -0
  54. package/dist/runtime/server/dist/agent-auth-jwt.js.map +1 -0
  55. package/dist/runtime/server/dist/app.d.ts +26 -0
  56. package/dist/runtime/server/dist/app.d.ts.map +1 -0
  57. package/dist/runtime/server/dist/app.js +371 -0
  58. package/dist/runtime/server/dist/app.js.map +1 -0
  59. package/dist/runtime/server/dist/attachment-types.d.ts +33 -0
  60. package/dist/runtime/server/dist/attachment-types.d.ts.map +1 -0
  61. package/dist/runtime/server/dist/attachment-types.js +67 -0
  62. package/dist/runtime/server/dist/attachment-types.js.map +1 -0
  63. package/dist/runtime/server/dist/auth/better-auth.d.ts +24 -0
  64. package/dist/runtime/server/dist/auth/better-auth.d.ts.map +1 -0
  65. package/dist/runtime/server/dist/auth/better-auth.js +108 -0
  66. package/dist/runtime/server/dist/auth/better-auth.js.map +1 -0
  67. package/dist/runtime/server/dist/board-claim.d.ts +23 -0
  68. package/dist/runtime/server/dist/board-claim.d.ts.map +1 -0
  69. package/dist/runtime/server/dist/board-claim.js +115 -0
  70. package/dist/runtime/server/dist/board-claim.js.map +1 -0
  71. package/dist/runtime/server/dist/config-file.d.ts +4 -0
  72. package/dist/runtime/server/dist/config-file.d.ts.map +1 -0
  73. package/dist/runtime/server/dist/config-file.js +25 -0
  74. package/dist/runtime/server/dist/config-file.js.map +1 -0
  75. package/dist/runtime/server/dist/config.d.ts +39 -0
  76. package/dist/runtime/server/dist/config.d.ts.map +1 -0
  77. package/dist/runtime/server/dist/config.js +164 -0
  78. package/dist/runtime/server/dist/config.js.map +1 -0
  79. package/dist/runtime/server/dist/errors.d.ts +12 -0
  80. package/dist/runtime/server/dist/errors.d.ts.map +1 -0
  81. package/dist/runtime/server/dist/errors.js +28 -0
  82. package/dist/runtime/server/dist/errors.js.map +1 -0
  83. package/dist/runtime/server/dist/home-paths.d.ts +17 -0
  84. package/dist/runtime/server/dist/home-paths.d.ts.map +1 -0
  85. package/dist/runtime/server/dist/home-paths.js +75 -0
  86. package/dist/runtime/server/dist/home-paths.js.map +1 -0
  87. package/dist/runtime/server/dist/index.d.ts +10 -0
  88. package/dist/runtime/server/dist/index.d.ts.map +1 -0
  89. package/dist/runtime/server/dist/index.js +567 -0
  90. package/dist/runtime/server/dist/index.js.map +1 -0
  91. package/dist/runtime/server/dist/log-redaction.d.ts +10 -0
  92. package/dist/runtime/server/dist/log-redaction.d.ts.map +1 -0
  93. package/dist/runtime/server/dist/log-redaction.js +110 -0
  94. package/dist/runtime/server/dist/log-redaction.js.map +1 -0
  95. package/dist/runtime/server/dist/middleware/auth.d.ts +12 -0
  96. package/dist/runtime/server/dist/middleware/auth.d.ts.map +1 -0
  97. package/dist/runtime/server/dist/middleware/auth.js +124 -0
  98. package/dist/runtime/server/dist/middleware/auth.js.map +1 -0
  99. package/dist/runtime/server/dist/middleware/board-mutation-guard.d.ts +3 -0
  100. package/dist/runtime/server/dist/middleware/board-mutation-guard.d.ts.map +1 -0
  101. package/dist/runtime/server/dist/middleware/board-mutation-guard.js +60 -0
  102. package/dist/runtime/server/dist/middleware/board-mutation-guard.js.map +1 -0
  103. package/dist/runtime/server/dist/middleware/error-handler.d.ts +17 -0
  104. package/dist/runtime/server/dist/middleware/error-handler.d.ts.map +1 -0
  105. package/dist/runtime/server/dist/middleware/error-handler.js +37 -0
  106. package/dist/runtime/server/dist/middleware/error-handler.js.map +1 -0
  107. package/dist/runtime/server/dist/middleware/index.d.ts +4 -0
  108. package/dist/runtime/server/dist/middleware/index.d.ts.map +1 -0
  109. package/dist/runtime/server/dist/middleware/index.js +4 -0
  110. package/dist/runtime/server/dist/middleware/index.js.map +1 -0
  111. package/dist/runtime/server/dist/middleware/logger.d.ts +4 -0
  112. package/dist/runtime/server/dist/middleware/logger.d.ts.map +1 -0
  113. package/dist/runtime/server/dist/middleware/logger.js +87 -0
  114. package/dist/runtime/server/dist/middleware/logger.js.map +1 -0
  115. package/dist/runtime/server/dist/middleware/private-hostname-guard.d.ts +11 -0
  116. package/dist/runtime/server/dist/middleware/private-hostname-guard.d.ts.map +1 -0
  117. package/dist/runtime/server/dist/middleware/private-hostname-guard.js +78 -0
  118. package/dist/runtime/server/dist/middleware/private-hostname-guard.js.map +1 -0
  119. package/dist/runtime/server/dist/middleware/validate.d.ts +4 -0
  120. package/dist/runtime/server/dist/middleware/validate.d.ts.map +1 -0
  121. package/dist/runtime/server/dist/middleware/validate.js +7 -0
  122. package/dist/runtime/server/dist/middleware/validate.js.map +1 -0
  123. package/dist/runtime/server/dist/paths.d.ts +3 -0
  124. package/dist/runtime/server/dist/paths.d.ts.map +1 -0
  125. package/dist/runtime/server/dist/paths.js +31 -0
  126. package/dist/runtime/server/dist/paths.js.map +1 -0
  127. package/dist/runtime/server/dist/realtime/live-events-ws.d.ts +28 -0
  128. package/dist/runtime/server/dist/realtime/live-events-ws.d.ts.map +1 -0
  129. package/dist/runtime/server/dist/realtime/live-events-ws.js +187 -0
  130. package/dist/runtime/server/dist/realtime/live-events-ws.js.map +1 -0
  131. package/dist/runtime/server/dist/redaction.d.ts +4 -0
  132. package/dist/runtime/server/dist/redaction.d.ts.map +1 -0
  133. package/dist/runtime/server/dist/redaction.js +63 -0
  134. package/dist/runtime/server/dist/redaction.js.map +1 -0
  135. package/dist/runtime/server/dist/routes/access.d.ts +56 -0
  136. package/dist/runtime/server/dist/routes/access.d.ts.map +1 -0
  137. package/dist/runtime/server/dist/routes/access.js +2125 -0
  138. package/dist/runtime/server/dist/routes/access.js.map +1 -0
  139. package/dist/runtime/server/dist/routes/activity.d.ts +3 -0
  140. package/dist/runtime/server/dist/routes/activity.d.ts.map +1 -0
  141. package/dist/runtime/server/dist/routes/activity.js +78 -0
  142. package/dist/runtime/server/dist/routes/activity.js.map +1 -0
  143. package/dist/runtime/server/dist/routes/agents.d.ts +3 -0
  144. package/dist/runtime/server/dist/routes/agents.d.ts.map +1 -0
  145. package/dist/runtime/server/dist/routes/agents.js +1485 -0
  146. package/dist/runtime/server/dist/routes/agents.js.map +1 -0
  147. package/dist/runtime/server/dist/routes/approvals.d.ts +3 -0
  148. package/dist/runtime/server/dist/routes/approvals.d.ts.map +1 -0
  149. package/dist/runtime/server/dist/routes/approvals.js +275 -0
  150. package/dist/runtime/server/dist/routes/approvals.js.map +1 -0
  151. package/dist/runtime/server/dist/routes/assets.d.ts +4 -0
  152. package/dist/runtime/server/dist/routes/assets.d.ts.map +1 -0
  153. package/dist/runtime/server/dist/routes/assets.js +309 -0
  154. package/dist/runtime/server/dist/routes/assets.js.map +1 -0
  155. package/dist/runtime/server/dist/routes/authz.d.ts +15 -0
  156. package/dist/runtime/server/dist/routes/authz.d.ts.map +1 -0
  157. package/dist/runtime/server/dist/routes/authz.js +40 -0
  158. package/dist/runtime/server/dist/routes/authz.js.map +1 -0
  159. package/dist/runtime/server/dist/routes/companies.d.ts +3 -0
  160. package/dist/runtime/server/dist/routes/companies.d.ts.map +1 -0
  161. package/dist/runtime/server/dist/routes/companies.js +196 -0
  162. package/dist/runtime/server/dist/routes/companies.js.map +1 -0
  163. package/dist/runtime/server/dist/routes/costs.d.ts +3 -0
  164. package/dist/runtime/server/dist/routes/costs.d.ts.map +1 -0
  165. package/dist/runtime/server/dist/routes/costs.js +268 -0
  166. package/dist/runtime/server/dist/routes/costs.js.map +1 -0
  167. package/dist/runtime/server/dist/routes/dashboard.d.ts +3 -0
  168. package/dist/runtime/server/dist/routes/dashboard.d.ts.map +1 -0
  169. package/dist/runtime/server/dist/routes/dashboard.js +15 -0
  170. package/dist/runtime/server/dist/routes/dashboard.js.map +1 -0
  171. package/dist/runtime/server/dist/routes/execution-workspaces.d.ts +3 -0
  172. package/dist/runtime/server/dist/routes/execution-workspaces.d.ts.map +1 -0
  173. package/dist/runtime/server/dist/routes/execution-workspaces.js +165 -0
  174. package/dist/runtime/server/dist/routes/execution-workspaces.js.map +1 -0
  175. package/dist/runtime/server/dist/routes/goals.d.ts +3 -0
  176. package/dist/runtime/server/dist/routes/goals.d.ts.map +1 -0
  177. package/dist/runtime/server/dist/routes/goals.js +95 -0
  178. package/dist/runtime/server/dist/routes/goals.js.map +1 -0
  179. package/dist/runtime/server/dist/routes/gtm.d.ts +3 -0
  180. package/dist/runtime/server/dist/routes/gtm.d.ts.map +1 -0
  181. package/dist/runtime/server/dist/routes/gtm.js +555 -0
  182. package/dist/runtime/server/dist/routes/gtm.js.map +1 -0
  183. package/dist/runtime/server/dist/routes/health.d.ts +10 -0
  184. package/dist/runtime/server/dist/routes/health.d.ts.map +1 -0
  185. package/dist/runtime/server/dist/routes/health.js +53 -0
  186. package/dist/runtime/server/dist/routes/health.js.map +1 -0
  187. package/dist/runtime/server/dist/routes/index.d.ts +16 -0
  188. package/dist/runtime/server/dist/routes/index.d.ts.map +1 -0
  189. package/dist/runtime/server/dist/routes/index.js +16 -0
  190. package/dist/runtime/server/dist/routes/index.js.map +1 -0
  191. package/dist/runtime/server/dist/routes/instance-settings.d.ts +3 -0
  192. package/dist/runtime/server/dist/routes/instance-settings.d.ts.map +1 -0
  193. package/dist/runtime/server/dist/routes/instance-settings.js +46 -0
  194. package/dist/runtime/server/dist/routes/instance-settings.js.map +1 -0
  195. package/dist/runtime/server/dist/routes/issues-checkout-wakeup.d.ts +9 -0
  196. package/dist/runtime/server/dist/routes/issues-checkout-wakeup.d.ts.map +1 -0
  197. package/dist/runtime/server/dist/routes/issues-checkout-wakeup.js +12 -0
  198. package/dist/runtime/server/dist/routes/issues-checkout-wakeup.js.map +1 -0
  199. package/dist/runtime/server/dist/routes/issues.d.ts +4 -0
  200. package/dist/runtime/server/dist/routes/issues.d.ts.map +1 -0
  201. package/dist/runtime/server/dist/routes/issues.js +1454 -0
  202. package/dist/runtime/server/dist/routes/issues.js.map +1 -0
  203. package/dist/runtime/server/dist/routes/llms.d.ts +3 -0
  204. package/dist/runtime/server/dist/routes/llms.d.ts.map +1 -0
  205. package/dist/runtime/server/dist/routes/llms.js +78 -0
  206. package/dist/runtime/server/dist/routes/llms.js.map +1 -0
  207. package/dist/runtime/server/dist/routes/plugin-ui-static.d.ts +69 -0
  208. package/dist/runtime/server/dist/routes/plugin-ui-static.d.ts.map +1 -0
  209. package/dist/runtime/server/dist/routes/plugin-ui-static.js +411 -0
  210. package/dist/runtime/server/dist/routes/plugin-ui-static.js.map +1 -0
  211. package/dist/runtime/server/dist/routes/plugins.d.ts +120 -0
  212. package/dist/runtime/server/dist/routes/plugins.d.ts.map +1 -0
  213. package/dist/runtime/server/dist/routes/plugins.js +1784 -0
  214. package/dist/runtime/server/dist/routes/plugins.js.map +1 -0
  215. package/dist/runtime/server/dist/routes/projects.d.ts +3 -0
  216. package/dist/runtime/server/dist/routes/projects.d.ts.map +1 -0
  217. package/dist/runtime/server/dist/routes/projects.js +257 -0
  218. package/dist/runtime/server/dist/routes/projects.js.map +1 -0
  219. package/dist/runtime/server/dist/routes/secrets.d.ts +3 -0
  220. package/dist/runtime/server/dist/routes/secrets.d.ts.map +1 -0
  221. package/dist/runtime/server/dist/routes/secrets.js +128 -0
  222. package/dist/runtime/server/dist/routes/secrets.js.map +1 -0
  223. package/dist/runtime/server/dist/routes/sidebar-badges.d.ts +3 -0
  224. package/dist/runtime/server/dist/routes/sidebar-badges.d.ts.map +1 -0
  225. package/dist/runtime/server/dist/routes/sidebar-badges.js +45 -0
  226. package/dist/runtime/server/dist/routes/sidebar-badges.js.map +1 -0
  227. package/dist/runtime/server/dist/routes/tickets.d.ts +3 -0
  228. package/dist/runtime/server/dist/routes/tickets.d.ts.map +1 -0
  229. package/dist/runtime/server/dist/routes/tickets.js +112 -0
  230. package/dist/runtime/server/dist/routes/tickets.js.map +1 -0
  231. package/dist/runtime/server/dist/secrets/external-stub-providers.d.ts +5 -0
  232. package/dist/runtime/server/dist/secrets/external-stub-providers.d.ts.map +1 -0
  233. package/dist/runtime/server/dist/secrets/external-stub-providers.js +21 -0
  234. package/dist/runtime/server/dist/secrets/external-stub-providers.js.map +1 -0
  235. package/dist/runtime/server/dist/secrets/local-encrypted-provider.d.ts +3 -0
  236. package/dist/runtime/server/dist/secrets/local-encrypted-provider.d.ts.map +1 -0
  237. package/dist/runtime/server/dist/secrets/local-encrypted-provider.js +116 -0
  238. package/dist/runtime/server/dist/secrets/local-encrypted-provider.js.map +1 -0
  239. package/dist/runtime/server/dist/secrets/provider-registry.d.ts +5 -0
  240. package/dist/runtime/server/dist/secrets/provider-registry.d.ts.map +1 -0
  241. package/dist/runtime/server/dist/secrets/provider-registry.js +20 -0
  242. package/dist/runtime/server/dist/secrets/provider-registry.js.map +1 -0
  243. package/dist/runtime/server/dist/secrets/types.d.ts +21 -0
  244. package/dist/runtime/server/dist/secrets/types.d.ts.map +1 -0
  245. package/dist/runtime/server/dist/secrets/types.js +2 -0
  246. package/dist/runtime/server/dist/secrets/types.js.map +1 -0
  247. package/dist/runtime/server/dist/services/access.d.ts +93 -0
  248. package/dist/runtime/server/dist/services/access.d.ts.map +1 -0
  249. package/dist/runtime/server/dist/services/access.js +231 -0
  250. package/dist/runtime/server/dist/services/access.js.map +1 -0
  251. package/dist/runtime/server/dist/services/activity-log.d.ts +17 -0
  252. package/dist/runtime/server/dist/services/activity-log.d.ts.map +1 -0
  253. package/dist/runtime/server/dist/services/activity-log.js +68 -0
  254. package/dist/runtime/server/dist/services/activity-log.js.map +1 -0
  255. package/dist/runtime/server/dist/services/activity.d.ts +764 -0
  256. package/dist/runtime/server/dist/services/activity.d.ts.map +1 -0
  257. package/dist/runtime/server/dist/services/activity.js +105 -0
  258. package/dist/runtime/server/dist/services/activity.js.map +1 -0
  259. package/dist/runtime/server/dist/services/agent-permissions.d.ts +6 -0
  260. package/dist/runtime/server/dist/services/agent-permissions.d.ts.map +1 -0
  261. package/dist/runtime/server/dist/services/agent-permissions.js +18 -0
  262. package/dist/runtime/server/dist/services/agent-permissions.js.map +1 -0
  263. package/dist/runtime/server/dist/services/agents.d.ts +1670 -0
  264. package/dist/runtime/server/dist/services/agents.d.ts.map +1 -0
  265. package/dist/runtime/server/dist/services/agents.js +572 -0
  266. package/dist/runtime/server/dist/services/agents.js.map +1 -0
  267. package/dist/runtime/server/dist/services/approvals.d.ts +546 -0
  268. package/dist/runtime/server/dist/services/approvals.d.ts.map +1 -0
  269. package/dist/runtime/server/dist/services/approvals.js +206 -0
  270. package/dist/runtime/server/dist/services/approvals.js.map +1 -0
  271. package/dist/runtime/server/dist/services/assets.d.ts +33 -0
  272. package/dist/runtime/server/dist/services/assets.d.ts.map +1 -0
  273. package/dist/runtime/server/dist/services/assets.js +17 -0
  274. package/dist/runtime/server/dist/services/assets.js.map +1 -0
  275. package/dist/runtime/server/dist/services/budgets.d.ts +38 -0
  276. package/dist/runtime/server/dist/services/budgets.d.ts.map +1 -0
  277. package/dist/runtime/server/dist/services/budgets.js +784 -0
  278. package/dist/runtime/server/dist/services/budgets.js.map +1 -0
  279. package/dist/runtime/server/dist/services/companies.d.ts +124 -0
  280. package/dist/runtime/server/dist/services/companies.d.ts.map +1 -0
  281. package/dist/runtime/server/dist/services/companies.js +256 -0
  282. package/dist/runtime/server/dist/services/companies.js.map +1 -0
  283. package/dist/runtime/server/dist/services/company-portability.d.ts +8 -0
  284. package/dist/runtime/server/dist/services/company-portability.d.ts.map +1 -0
  285. package/dist/runtime/server/dist/services/company-portability.js +869 -0
  286. package/dist/runtime/server/dist/services/company-portability.js.map +1 -0
  287. package/dist/runtime/server/dist/services/costs.d.ts +114 -0
  288. package/dist/runtime/server/dist/services/costs.d.ts.map +1 -0
  289. package/dist/runtime/server/dist/services/costs.js +294 -0
  290. package/dist/runtime/server/dist/services/costs.js.map +1 -0
  291. package/dist/runtime/server/dist/services/cron.d.ts +80 -0
  292. package/dist/runtime/server/dist/services/cron.d.ts.map +1 -0
  293. package/dist/runtime/server/dist/services/cron.js +300 -0
  294. package/dist/runtime/server/dist/services/cron.js.map +1 -0
  295. package/dist/runtime/server/dist/services/dashboard.d.ts +26 -0
  296. package/dist/runtime/server/dist/services/dashboard.d.ts.map +1 -0
  297. package/dist/runtime/server/dist/services/dashboard.js +98 -0
  298. package/dist/runtime/server/dist/services/dashboard.js.map +1 -0
  299. package/dist/runtime/server/dist/services/documents.d.ts +164 -0
  300. package/dist/runtime/server/dist/services/documents.d.ts.map +1 -0
  301. package/dist/runtime/server/dist/services/documents.js +382 -0
  302. package/dist/runtime/server/dist/services/documents.js.map +1 -0
  303. package/dist/runtime/server/dist/services/execution-workspace-policy.d.ts +20 -0
  304. package/dist/runtime/server/dist/services/execution-workspace-policy.d.ts.map +1 -0
  305. package/dist/runtime/server/dist/services/execution-workspace-policy.js +165 -0
  306. package/dist/runtime/server/dist/services/execution-workspace-policy.js.map +1 -0
  307. package/dist/runtime/server/dist/services/execution-workspaces.d.ts +19 -0
  308. package/dist/runtime/server/dist/services/execution-workspaces.d.ts.map +1 -0
  309. package/dist/runtime/server/dist/services/execution-workspaces.js +87 -0
  310. package/dist/runtime/server/dist/services/execution-workspaces.js.map +1 -0
  311. package/dist/runtime/server/dist/services/finance.d.ts +93 -0
  312. package/dist/runtime/server/dist/services/finance.d.ts.map +1 -0
  313. package/dist/runtime/server/dist/services/finance.js +120 -0
  314. package/dist/runtime/server/dist/services/finance.js.map +1 -0
  315. package/dist/runtime/server/dist/services/goals.d.ts +433 -0
  316. package/dist/runtime/server/dist/services/goals.d.ts.map +1 -0
  317. package/dist/runtime/server/dist/services/goals.js +54 -0
  318. package/dist/runtime/server/dist/services/goals.js.map +1 -0
  319. package/dist/runtime/server/dist/services/gtm-state.d.ts +6 -0
  320. package/dist/runtime/server/dist/services/gtm-state.d.ts.map +1 -0
  321. package/dist/runtime/server/dist/services/gtm-state.js +88 -0
  322. package/dist/runtime/server/dist/services/gtm-state.js.map +1 -0
  323. package/dist/runtime/server/dist/services/heartbeat-run-summary.d.ts +2 -0
  324. package/dist/runtime/server/dist/services/heartbeat-run-summary.d.ts.map +1 -0
  325. package/dist/runtime/server/dist/services/heartbeat-run-summary.js +30 -0
  326. package/dist/runtime/server/dist/services/heartbeat-run-summary.js.map +1 -0
  327. package/dist/runtime/server/dist/services/heartbeat.d.ts +796 -0
  328. package/dist/runtime/server/dist/services/heartbeat.d.ts.map +1 -0
  329. package/dist/runtime/server/dist/services/heartbeat.js +3046 -0
  330. package/dist/runtime/server/dist/services/heartbeat.js.map +1 -0
  331. package/dist/runtime/server/dist/services/hire-hook.d.ts +14 -0
  332. package/dist/runtime/server/dist/services/hire-hook.d.ts.map +1 -0
  333. package/dist/runtime/server/dist/services/hire-hook.js +85 -0
  334. package/dist/runtime/server/dist/services/hire-hook.js.map +1 -0
  335. package/dist/runtime/server/dist/services/index.d.ts +30 -0
  336. package/dist/runtime/server/dist/services/index.d.ts.map +1 -0
  337. package/dist/runtime/server/dist/services/index.js +30 -0
  338. package/dist/runtime/server/dist/services/index.js.map +1 -0
  339. package/dist/runtime/server/dist/services/instance-settings.d.ts +9 -0
  340. package/dist/runtime/server/dist/services/instance-settings.d.ts.map +1 -0
  341. package/dist/runtime/server/dist/services/instance-settings.js +80 -0
  342. package/dist/runtime/server/dist/services/instance-settings.js.map +1 -0
  343. package/dist/runtime/server/dist/services/issue-approvals.d.ts +56 -0
  344. package/dist/runtime/server/dist/services/issue-approvals.d.ts.map +1 -0
  345. package/dist/runtime/server/dist/services/issue-approvals.js +153 -0
  346. package/dist/runtime/server/dist/services/issue-approvals.js.map +1 -0
  347. package/dist/runtime/server/dist/services/issue-goal-fallback.d.ts +15 -0
  348. package/dist/runtime/server/dist/services/issue-goal-fallback.d.ts.map +1 -0
  349. package/dist/runtime/server/dist/services/issue-goal-fallback.js +15 -0
  350. package/dist/runtime/server/dist/services/issue-goal-fallback.js.map +1 -0
  351. package/dist/runtime/server/dist/services/issues.d.ts +536 -0
  352. package/dist/runtime/server/dist/services/issues.d.ts.map +1 -0
  353. package/dist/runtime/server/dist/services/issues.js +1321 -0
  354. package/dist/runtime/server/dist/services/issues.js.map +1 -0
  355. package/dist/runtime/server/dist/services/live-events.d.ts +17 -0
  356. package/dist/runtime/server/dist/services/live-events.d.ts.map +1 -0
  357. package/dist/runtime/server/dist/services/live-events.js +33 -0
  358. package/dist/runtime/server/dist/services/live-events.js.map +1 -0
  359. package/dist/runtime/server/dist/services/plugin-capability-validator.d.ts +108 -0
  360. package/dist/runtime/server/dist/services/plugin-capability-validator.d.ts.map +1 -0
  361. package/dist/runtime/server/dist/services/plugin-capability-validator.js +268 -0
  362. package/dist/runtime/server/dist/services/plugin-capability-validator.js.map +1 -0
  363. package/dist/runtime/server/dist/services/plugin-config-validator.d.ts +26 -0
  364. package/dist/runtime/server/dist/services/plugin-config-validator.d.ts.map +1 -0
  365. package/dist/runtime/server/dist/services/plugin-config-validator.js +41 -0
  366. package/dist/runtime/server/dist/services/plugin-config-validator.js.map +1 -0
  367. package/dist/runtime/server/dist/services/plugin-dev-watcher.d.ts +30 -0
  368. package/dist/runtime/server/dist/services/plugin-dev-watcher.d.ts.map +1 -0
  369. package/dist/runtime/server/dist/services/plugin-dev-watcher.js +241 -0
  370. package/dist/runtime/server/dist/services/plugin-dev-watcher.js.map +1 -0
  371. package/dist/runtime/server/dist/services/plugin-event-bus.d.ts +149 -0
  372. package/dist/runtime/server/dist/services/plugin-event-bus.d.ts.map +1 -0
  373. package/dist/runtime/server/dist/services/plugin-event-bus.js +258 -0
  374. package/dist/runtime/server/dist/services/plugin-event-bus.js.map +1 -0
  375. package/dist/runtime/server/dist/services/plugin-host-service-cleanup.d.ts +14 -0
  376. package/dist/runtime/server/dist/services/plugin-host-service-cleanup.d.ts.map +1 -0
  377. package/dist/runtime/server/dist/services/plugin-host-service-cleanup.js +37 -0
  378. package/dist/runtime/server/dist/services/plugin-host-service-cleanup.js.map +1 -0
  379. package/dist/runtime/server/dist/services/plugin-host-services.d.ts +13 -0
  380. package/dist/runtime/server/dist/services/plugin-host-services.d.ts.map +1 -0
  381. package/dist/runtime/server/dist/services/plugin-host-services.js +969 -0
  382. package/dist/runtime/server/dist/services/plugin-host-services.js.map +1 -0
  383. package/dist/runtime/server/dist/services/plugin-job-coordinator.d.ts +81 -0
  384. package/dist/runtime/server/dist/services/plugin-job-coordinator.d.ts.map +1 -0
  385. package/dist/runtime/server/dist/services/plugin-job-coordinator.js +172 -0
  386. package/dist/runtime/server/dist/services/plugin-job-coordinator.js.map +1 -0
  387. package/dist/runtime/server/dist/services/plugin-job-scheduler.d.ts +163 -0
  388. package/dist/runtime/server/dist/services/plugin-job-scheduler.d.ts.map +1 -0
  389. package/dist/runtime/server/dist/services/plugin-job-scheduler.js +454 -0
  390. package/dist/runtime/server/dist/services/plugin-job-scheduler.js.map +1 -0
  391. package/dist/runtime/server/dist/services/plugin-job-store.d.ts +208 -0
  392. package/dist/runtime/server/dist/services/plugin-job-store.d.ts.map +1 -0
  393. package/dist/runtime/server/dist/services/plugin-job-store.js +350 -0
  394. package/dist/runtime/server/dist/services/plugin-job-store.js.map +1 -0
  395. package/dist/runtime/server/dist/services/plugin-lifecycle.d.ts +203 -0
  396. package/dist/runtime/server/dist/services/plugin-lifecycle.d.ts.map +1 -0
  397. package/dist/runtime/server/dist/services/plugin-lifecycle.js +476 -0
  398. package/dist/runtime/server/dist/services/plugin-lifecycle.js.map +1 -0
  399. package/dist/runtime/server/dist/services/plugin-loader.d.ts +441 -0
  400. package/dist/runtime/server/dist/services/plugin-loader.d.ts.map +1 -0
  401. package/dist/runtime/server/dist/services/plugin-loader.js +1192 -0
  402. package/dist/runtime/server/dist/services/plugin-loader.js.map +1 -0
  403. package/dist/runtime/server/dist/services/plugin-log-retention.d.ts +20 -0
  404. package/dist/runtime/server/dist/services/plugin-log-retention.d.ts.map +1 -0
  405. package/dist/runtime/server/dist/services/plugin-log-retention.js +63 -0
  406. package/dist/runtime/server/dist/services/plugin-log-retention.js.map +1 -0
  407. package/dist/runtime/server/dist/services/plugin-manifest-validator.d.ts +79 -0
  408. package/dist/runtime/server/dist/services/plugin-manifest-validator.d.ts.map +1 -0
  409. package/dist/runtime/server/dist/services/plugin-manifest-validator.js +84 -0
  410. package/dist/runtime/server/dist/services/plugin-manifest-validator.js.map +1 -0
  411. package/dist/runtime/server/dist/services/plugin-registry.d.ts +2542 -0
  412. package/dist/runtime/server/dist/services/plugin-registry.d.ts.map +1 -0
  413. package/dist/runtime/server/dist/services/plugin-registry.js +539 -0
  414. package/dist/runtime/server/dist/services/plugin-registry.js.map +1 -0
  415. package/dist/runtime/server/dist/services/plugin-runtime-sandbox.d.ts +40 -0
  416. package/dist/runtime/server/dist/services/plugin-runtime-sandbox.d.ts.map +1 -0
  417. package/dist/runtime/server/dist/services/plugin-runtime-sandbox.js +154 -0
  418. package/dist/runtime/server/dist/services/plugin-runtime-sandbox.js.map +1 -0
  419. package/dist/runtime/server/dist/services/plugin-secrets-handler.d.ts +81 -0
  420. package/dist/runtime/server/dist/services/plugin-secrets-handler.d.ts.map +1 -0
  421. package/dist/runtime/server/dist/services/plugin-secrets-handler.js +275 -0
  422. package/dist/runtime/server/dist/services/plugin-secrets-handler.js.map +1 -0
  423. package/dist/runtime/server/dist/services/plugin-state-store.d.ts +92 -0
  424. package/dist/runtime/server/dist/services/plugin-state-store.d.ts.map +1 -0
  425. package/dist/runtime/server/dist/services/plugin-state-store.js +190 -0
  426. package/dist/runtime/server/dist/services/plugin-state-store.js.map +1 -0
  427. package/dist/runtime/server/dist/services/plugin-stream-bus.d.ts +29 -0
  428. package/dist/runtime/server/dist/services/plugin-stream-bus.d.ts.map +1 -0
  429. package/dist/runtime/server/dist/services/plugin-stream-bus.js +48 -0
  430. package/dist/runtime/server/dist/services/plugin-stream-bus.js.map +1 -0
  431. package/dist/runtime/server/dist/services/plugin-tool-dispatcher.d.ts +180 -0
  432. package/dist/runtime/server/dist/services/plugin-tool-dispatcher.d.ts.map +1 -0
  433. package/dist/runtime/server/dist/services/plugin-tool-dispatcher.js +224 -0
  434. package/dist/runtime/server/dist/services/plugin-tool-dispatcher.js.map +1 -0
  435. package/dist/runtime/server/dist/services/plugin-tool-registry.d.ts +192 -0
  436. package/dist/runtime/server/dist/services/plugin-tool-registry.d.ts.map +1 -0
  437. package/dist/runtime/server/dist/services/plugin-tool-registry.js +224 -0
  438. package/dist/runtime/server/dist/services/plugin-tool-registry.js.map +1 -0
  439. package/dist/runtime/server/dist/services/plugin-worker-manager.d.ts +260 -0
  440. package/dist/runtime/server/dist/services/plugin-worker-manager.d.ts.map +1 -0
  441. package/dist/runtime/server/dist/services/plugin-worker-manager.js +835 -0
  442. package/dist/runtime/server/dist/services/plugin-worker-manager.js.map +1 -0
  443. package/dist/runtime/server/dist/services/projects.d.ts +87 -0
  444. package/dist/runtime/server/dist/services/projects.d.ts.map +1 -0
  445. package/dist/runtime/server/dist/services/projects.js +656 -0
  446. package/dist/runtime/server/dist/services/projects.js.map +1 -0
  447. package/dist/runtime/server/dist/services/quota-windows.d.ts +9 -0
  448. package/dist/runtime/server/dist/services/quota-windows.d.ts.map +1 -0
  449. package/dist/runtime/server/dist/services/quota-windows.js +56 -0
  450. package/dist/runtime/server/dist/services/quota-windows.js.map +1 -0
  451. package/dist/runtime/server/dist/services/run-log-store.d.ts +34 -0
  452. package/dist/runtime/server/dist/services/run-log-store.d.ts.map +1 -0
  453. package/dist/runtime/server/dist/services/run-log-store.js +109 -0
  454. package/dist/runtime/server/dist/services/run-log-store.js.map +1 -0
  455. package/dist/runtime/server/dist/services/secrets.d.ts +510 -0
  456. package/dist/runtime/server/dist/services/secrets.d.ts.map +1 -0
  457. package/dist/runtime/server/dist/services/secrets.js +288 -0
  458. package/dist/runtime/server/dist/services/secrets.js.map +1 -0
  459. package/dist/runtime/server/dist/services/sidebar-badges.d.ts +9 -0
  460. package/dist/runtime/server/dist/services/sidebar-badges.d.ts.map +1 -0
  461. package/dist/runtime/server/dist/services/sidebar-badges.js +33 -0
  462. package/dist/runtime/server/dist/services/sidebar-badges.js.map +1 -0
  463. package/dist/runtime/server/dist/services/tickets.d.ts +1869 -0
  464. package/dist/runtime/server/dist/services/tickets.d.ts.map +1 -0
  465. package/dist/runtime/server/dist/services/tickets.js +78 -0
  466. package/dist/runtime/server/dist/services/tickets.js.map +1 -0
  467. package/dist/runtime/server/dist/services/work-products.d.ts +14 -0
  468. package/dist/runtime/server/dist/services/work-products.d.ts.map +1 -0
  469. package/dist/runtime/server/dist/services/work-products.js +100 -0
  470. package/dist/runtime/server/dist/services/work-products.js.map +1 -0
  471. package/dist/runtime/server/dist/services/workspace-operation-log-store.d.ts +33 -0
  472. package/dist/runtime/server/dist/services/workspace-operation-log-store.d.ts.map +1 -0
  473. package/dist/runtime/server/dist/services/workspace-operation-log-store.js +110 -0
  474. package/dist/runtime/server/dist/services/workspace-operation-log-store.js.map +1 -0
  475. package/dist/runtime/server/dist/services/workspace-operations.d.ts +44 -0
  476. package/dist/runtime/server/dist/services/workspace-operations.d.ts.map +1 -0
  477. package/dist/runtime/server/dist/services/workspace-operations.js +204 -0
  478. package/dist/runtime/server/dist/services/workspace-operations.js.map +1 -0
  479. package/dist/runtime/server/dist/services/workspace-runtime.d.ts +164 -0
  480. package/dist/runtime/server/dist/services/workspace-runtime.d.ts.map +1 -0
  481. package/dist/runtime/server/dist/services/workspace-runtime.js +1235 -0
  482. package/dist/runtime/server/dist/services/workspace-runtime.js.map +1 -0
  483. package/dist/runtime/server/dist/startup-banner.d.ts +31 -0
  484. package/dist/runtime/server/dist/startup-banner.d.ts.map +1 -0
  485. package/dist/runtime/server/dist/startup-banner.js +117 -0
  486. package/dist/runtime/server/dist/startup-banner.js.map +1 -0
  487. package/dist/runtime/server/dist/storage/index.d.ts +6 -0
  488. package/dist/runtime/server/dist/storage/index.d.ts.map +1 -0
  489. package/dist/runtime/server/dist/storage/index.js +29 -0
  490. package/dist/runtime/server/dist/storage/index.js.map +1 -0
  491. package/dist/runtime/server/dist/storage/local-disk-provider.d.ts +3 -0
  492. package/dist/runtime/server/dist/storage/local-disk-provider.d.ts.map +1 -0
  493. package/dist/runtime/server/dist/storage/local-disk-provider.js +79 -0
  494. package/dist/runtime/server/dist/storage/local-disk-provider.js.map +1 -0
  495. package/dist/runtime/server/dist/storage/provider-registry.d.ts +4 -0
  496. package/dist/runtime/server/dist/storage/provider-registry.d.ts.map +1 -0
  497. package/dist/runtime/server/dist/storage/provider-registry.js +15 -0
  498. package/dist/runtime/server/dist/storage/provider-registry.js.map +1 -0
  499. package/dist/runtime/server/dist/storage/s3-provider.d.ts +11 -0
  500. package/dist/runtime/server/dist/storage/s3-provider.d.ts.map +1 -0
  501. package/dist/runtime/server/dist/storage/s3-provider.js +123 -0
  502. package/dist/runtime/server/dist/storage/s3-provider.js.map +1 -0
  503. package/dist/runtime/server/dist/storage/service.d.ts +3 -0
  504. package/dist/runtime/server/dist/storage/service.d.ts.map +1 -0
  505. package/dist/runtime/server/dist/storage/service.js +120 -0
  506. package/dist/runtime/server/dist/storage/service.js.map +1 -0
  507. package/dist/runtime/server/dist/storage/types.d.ts +55 -0
  508. package/dist/runtime/server/dist/storage/types.d.ts.map +1 -0
  509. package/dist/runtime/server/dist/storage/types.js +2 -0
  510. package/dist/runtime/server/dist/storage/types.js.map +1 -0
  511. package/dist/runtime/server/dist/ui-branding.d.ts +14 -0
  512. package/dist/runtime/server/dist/ui-branding.d.ts.map +1 -0
  513. package/dist/runtime/server/dist/ui-branding.js +189 -0
  514. package/dist/runtime/server/dist/ui-branding.js.map +1 -0
  515. package/dist/runtime/server/dist/version.d.ts +2 -0
  516. package/dist/runtime/server/dist/version.d.ts.map +1 -0
  517. package/dist/runtime/server/dist/version.js +5 -0
  518. package/dist/runtime/server/dist/version.js.map +1 -0
  519. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/cli/format-event.d.ts +2 -0
  520. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/cli/format-event.d.ts.map +1 -0
  521. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/cli/format-event.js +94 -0
  522. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/cli/format-event.js.map +1 -0
  523. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/cli/index.d.ts +2 -0
  524. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/cli/index.d.ts.map +1 -0
  525. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/cli/index.js +2 -0
  526. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/cli/index.js.map +1 -0
  527. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/cli/quota-probe.d.ts +3 -0
  528. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/cli/quota-probe.d.ts.map +1 -0
  529. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/cli/quota-probe.js +106 -0
  530. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/cli/quota-probe.js.map +1 -0
  531. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/index.d.ts +8 -0
  532. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/index.d.ts.map +1 -0
  533. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/index.js +36 -0
  534. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/index.js.map +1 -0
  535. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/server/execute.d.ts +18 -0
  536. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/server/execute.d.ts.map +1 -0
  537. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/server/execute.js +453 -0
  538. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/server/execute.js.map +1 -0
  539. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/server/index.d.ts +7 -0
  540. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/server/index.d.ts.map +1 -0
  541. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/server/index.js +56 -0
  542. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/server/index.js.map +1 -0
  543. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/server/parse.d.ts +22 -0
  544. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/server/parse.d.ts.map +1 -0
  545. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/server/parse.js +158 -0
  546. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/server/parse.js.map +1 -0
  547. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/server/quota.d.ts +20 -0
  548. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/server/quota.d.ts.map +1 -0
  549. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/server/quota.js +477 -0
  550. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/server/quota.js.map +1 -0
  551. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/server/test.d.ts +3 -0
  552. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/server/test.d.ts.map +1 -0
  553. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/server/test.js +201 -0
  554. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/server/test.js.map +1 -0
  555. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/ui/build-config.d.ts +3 -0
  556. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/ui/build-config.d.ts.map +1 -0
  557. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/ui/build-config.js +115 -0
  558. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/ui/build-config.js.map +1 -0
  559. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/ui/index.d.ts +3 -0
  560. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/ui/index.d.ts.map +1 -0
  561. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/ui/index.js +3 -0
  562. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/ui/index.js.map +1 -0
  563. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/ui/parse-stdout.d.ts +3 -0
  564. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/ui/parse-stdout.d.ts.map +1 -0
  565. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/ui/parse-stdout.js +149 -0
  566. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/dist/ui/parse-stdout.js.map +1 -0
  567. package/dist/runtime/server/node_modules/@paperclipai/adapter-claude-local/package.json +42 -0
  568. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/cli/format-event.d.ts +2 -0
  569. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/cli/format-event.d.ts.map +1 -0
  570. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/cli/format-event.js +213 -0
  571. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/cli/format-event.js.map +1 -0
  572. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/cli/index.d.ts +2 -0
  573. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/cli/index.d.ts.map +1 -0
  574. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/cli/index.js +2 -0
  575. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/cli/index.js.map +1 -0
  576. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/cli/quota-probe.d.ts +3 -0
  577. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/cli/quota-probe.d.ts.map +1 -0
  578. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/cli/quota-probe.js +97 -0
  579. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/cli/quota-probe.js.map +1 -0
  580. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/index.d.ts +10 -0
  581. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/index.d.ts.map +1 -0
  582. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/index.js +45 -0
  583. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/index.js.map +1 -0
  584. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/server/codex-home.d.ts +5 -0
  585. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/server/codex-home.d.ts.map +1 -0
  586. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/server/codex-home.js +86 -0
  587. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/server/codex-home.js.map +1 -0
  588. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/server/execute.d.ts +11 -0
  589. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/server/execute.d.ts.map +1 -0
  590. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/server/execute.js +451 -0
  591. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/server/execute.js.map +1 -0
  592. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/server/index.d.ts +7 -0
  593. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/server/index.d.ts.map +1 -0
  594. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/server/index.js +56 -0
  595. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/server/index.js.map +1 -0
  596. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/server/parse.d.ts +12 -0
  597. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/server/parse.d.ts.map +1 -0
  598. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/server/parse.js +67 -0
  599. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/server/parse.js.map +1 -0
  600. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/server/quota.d.ts +64 -0
  601. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/server/quota.d.ts.map +1 -0
  602. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/server/quota.js +425 -0
  603. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/server/quota.js.map +1 -0
  604. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/server/test.d.ts +3 -0
  605. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/server/test.d.ts.map +1 -0
  606. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/server/test.js +194 -0
  607. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/server/test.js.map +1 -0
  608. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/ui/build-config.d.ts +3 -0
  609. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/ui/build-config.d.ts.map +1 -0
  610. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/ui/build-config.js +116 -0
  611. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/ui/build-config.js.map +1 -0
  612. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/ui/index.d.ts +3 -0
  613. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/ui/index.d.ts.map +1 -0
  614. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/ui/index.js +3 -0
  615. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/ui/index.js.map +1 -0
  616. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/ui/parse-stdout.d.ts +3 -0
  617. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/ui/parse-stdout.d.ts.map +1 -0
  618. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/ui/parse-stdout.js +233 -0
  619. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/dist/ui/parse-stdout.js.map +1 -0
  620. package/dist/runtime/server/node_modules/@paperclipai/adapter-codex-local/package.json +42 -0
  621. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/cli/format-event.d.ts +2 -0
  622. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/cli/format-event.d.ts.map +1 -0
  623. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/cli/format-event.js +296 -0
  624. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/cli/format-event.js.map +1 -0
  625. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/cli/index.d.ts +2 -0
  626. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/cli/index.d.ts.map +1 -0
  627. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/cli/index.js +2 -0
  628. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/cli/index.js.map +1 -0
  629. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/index.d.ts +9 -0
  630. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/index.d.ts.map +1 -0
  631. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/index.js +81 -0
  632. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/index.js.map +1 -0
  633. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/server/execute.d.ts +14 -0
  634. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/server/execute.d.ts.map +1 -0
  635. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/server/execute.js +416 -0
  636. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/server/execute.js.map +1 -0
  637. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/server/index.d.ts +6 -0
  638. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/server/index.d.ts.map +1 -0
  639. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/server/index.js +61 -0
  640. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/server/index.js.map +1 -0
  641. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/server/parse.d.ts +13 -0
  642. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/server/parse.d.ts.map +1 -0
  643. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/server/parse.js +139 -0
  644. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/server/parse.js.map +1 -0
  645. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/server/test.d.ts +3 -0
  646. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/server/test.d.ts.map +1 -0
  647. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/server/test.js +188 -0
  648. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/server/test.js.map +1 -0
  649. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/shared/stream.d.ts +5 -0
  650. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/shared/stream.d.ts.map +1 -0
  651. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/shared/stream.js +13 -0
  652. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/shared/stream.js.map +1 -0
  653. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/shared/trust.d.ts +2 -0
  654. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/shared/trust.d.ts.map +1 -0
  655. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/shared/trust.js +7 -0
  656. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/shared/trust.js.map +1 -0
  657. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/ui/build-config.d.ts +3 -0
  658. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/ui/build-config.d.ts.map +1 -0
  659. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/ui/build-config.js +92 -0
  660. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/ui/build-config.js.map +1 -0
  661. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/ui/index.d.ts +3 -0
  662. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/ui/index.d.ts.map +1 -0
  663. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/ui/index.js +3 -0
  664. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/ui/index.js.map +1 -0
  665. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/ui/parse-stdout.d.ts +3 -0
  666. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/ui/parse-stdout.d.ts.map +1 -0
  667. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/ui/parse-stdout.js +373 -0
  668. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/dist/ui/parse-stdout.js.map +1 -0
  669. package/dist/runtime/server/node_modules/@paperclipai/adapter-cursor-local/package.json +42 -0
  670. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/cli/format-event.d.ts +2 -0
  671. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/cli/format-event.d.ts.map +1 -0
  672. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/cli/format-event.js +198 -0
  673. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/cli/format-event.js.map +1 -0
  674. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/cli/index.d.ts +2 -0
  675. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/cli/index.d.ts.map +1 -0
  676. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/cli/index.js +2 -0
  677. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/cli/index.js.map +1 -0
  678. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/index.d.ts +9 -0
  679. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/index.d.ts.map +1 -0
  680. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/index.js +46 -0
  681. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/index.js.map +1 -0
  682. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/server/execute.d.ts +3 -0
  683. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/server/execute.d.ts.map +1 -0
  684. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/server/execute.js +364 -0
  685. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/server/execute.js.map +1 -0
  686. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/server/index.d.ts +6 -0
  687. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/server/index.d.ts.map +1 -0
  688. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/server/index.js +61 -0
  689. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/server/index.js.map +1 -0
  690. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/server/parse.d.ts +31 -0
  691. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/server/parse.d.ts.map +1 -0
  692. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/server/parse.js +227 -0
  693. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/server/parse.js.map +1 -0
  694. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/server/test.d.ts +3 -0
  695. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/server/test.d.ts.map +1 -0
  696. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/server/test.js +203 -0
  697. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/server/test.js.map +1 -0
  698. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/server/utils.d.ts +2 -0
  699. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/server/utils.d.ts.map +1 -0
  700. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/server/utils.js +7 -0
  701. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/server/utils.js.map +1 -0
  702. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/ui/build-config.d.ts +3 -0
  703. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/ui/build-config.d.ts.map +1 -0
  704. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/ui/build-config.js +84 -0
  705. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/ui/build-config.js.map +1 -0
  706. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/ui/index.d.ts +3 -0
  707. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/ui/index.d.ts.map +1 -0
  708. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/ui/index.js +3 -0
  709. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/ui/index.js.map +1 -0
  710. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/ui/parse-stdout.d.ts +3 -0
  711. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/ui/parse-stdout.d.ts.map +1 -0
  712. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/ui/parse-stdout.js +247 -0
  713. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/dist/ui/parse-stdout.js.map +1 -0
  714. package/dist/runtime/server/node_modules/@paperclipai/adapter-gemini-local/package.json +42 -0
  715. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/cli/format-event.d.ts +2 -0
  716. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/cli/format-event.d.ts.map +1 -0
  717. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/cli/format-event.js +20 -0
  718. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/cli/format-event.js.map +1 -0
  719. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/cli/index.d.ts +2 -0
  720. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/cli/index.d.ts.map +1 -0
  721. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/cli/index.js +2 -0
  722. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/cli/index.js.map +1 -0
  723. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/index.d.ts +8 -0
  724. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/index.d.ts.map +1 -0
  725. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/index.js +53 -0
  726. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/index.js.map +1 -0
  727. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/server/execute.d.ts +3 -0
  728. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/server/execute.d.ts.map +1 -0
  729. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/server/execute.js +1146 -0
  730. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/server/execute.js.map +1 -0
  731. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/server/index.d.ts +3 -0
  732. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/server/index.d.ts.map +1 -0
  733. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/server/index.js +3 -0
  734. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/server/index.js.map +1 -0
  735. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/server/test.d.ts +3 -0
  736. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/server/test.d.ts.map +1 -0
  737. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/server/test.js +290 -0
  738. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/server/test.js.map +1 -0
  739. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/shared/stream.d.ts +5 -0
  740. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/shared/stream.d.ts.map +1 -0
  741. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/shared/stream.js +13 -0
  742. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/shared/stream.js.map +1 -0
  743. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/ui/build-config.d.ts +3 -0
  744. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/ui/build-config.d.ts.map +1 -0
  745. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/ui/build-config.js +33 -0
  746. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/ui/build-config.js.map +1 -0
  747. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/ui/index.d.ts +3 -0
  748. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/ui/index.d.ts.map +1 -0
  749. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/ui/index.js +3 -0
  750. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/ui/index.js.map +1 -0
  751. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/ui/parse-stdout.d.ts +3 -0
  752. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/ui/parse-stdout.d.ts.map +1 -0
  753. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/ui/parse-stdout.js +64 -0
  754. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/dist/ui/parse-stdout.js.map +1 -0
  755. package/dist/runtime/server/node_modules/@paperclipai/adapter-openclaw-gateway/package.json +43 -0
  756. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/cli/format-event.d.ts +2 -0
  757. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/cli/format-event.d.ts.map +1 -0
  758. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/cli/format-event.js +115 -0
  759. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/cli/format-event.js.map +1 -0
  760. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/cli/index.d.ts +2 -0
  761. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/cli/index.d.ts.map +1 -0
  762. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/cli/index.js +2 -0
  763. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/cli/index.js.map +1 -0
  764. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/index.d.ts +8 -0
  765. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/index.d.ts.map +1 -0
  766. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/index.js +39 -0
  767. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/index.js.map +1 -0
  768. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/server/execute.d.ts +3 -0
  769. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/server/execute.d.ts.map +1 -0
  770. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/server/execute.js +337 -0
  771. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/server/execute.js.map +1 -0
  772. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/server/index.d.ts +7 -0
  773. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/server/index.d.ts.map +1 -0
  774. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/server/index.js +62 -0
  775. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/server/index.js.map +1 -0
  776. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/server/models.d.ts +20 -0
  777. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/server/models.d.ts.map +1 -0
  778. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/server/models.js +165 -0
  779. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/server/models.js.map +1 -0
  780. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/server/models.test.d.ts +2 -0
  781. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/server/models.test.d.ts.map +1 -0
  782. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/server/models.test.js +22 -0
  783. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/server/models.test.js.map +1 -0
  784. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/server/parse.d.ts +13 -0
  785. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/server/parse.d.ts.map +1 -0
  786. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/server/parse.js +97 -0
  787. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/server/parse.js.map +1 -0
  788. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/server/parse.test.d.ts +2 -0
  789. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/server/parse.test.d.ts.map +1 -0
  790. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/server/parse.test.js +48 -0
  791. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/server/parse.test.js.map +1 -0
  792. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/server/test.d.ts +3 -0
  793. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/server/test.d.ts.map +1 -0
  794. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/server/test.js +300 -0
  795. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/server/test.js.map +1 -0
  796. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/ui/build-config.d.ts +3 -0
  797. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/ui/build-config.d.ts.map +1 -0
  798. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/ui/build-config.js +87 -0
  799. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/ui/build-config.js.map +1 -0
  800. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/ui/index.d.ts +3 -0
  801. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/ui/index.d.ts.map +1 -0
  802. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/ui/index.js +3 -0
  803. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/ui/index.js.map +1 -0
  804. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/ui/parse-stdout.d.ts +3 -0
  805. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/ui/parse-stdout.d.ts.map +1 -0
  806. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/ui/parse-stdout.js +141 -0
  807. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/dist/ui/parse-stdout.js.map +1 -0
  808. package/dist/runtime/server/node_modules/@paperclipai/adapter-opencode-local/package.json +42 -0
  809. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/cli/format-event.d.ts +2 -0
  810. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/cli/format-event.d.ts.map +1 -0
  811. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/cli/format-event.js +99 -0
  812. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/cli/format-event.js.map +1 -0
  813. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/cli/index.d.ts +2 -0
  814. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/cli/index.d.ts.map +1 -0
  815. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/cli/index.js +2 -0
  816. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/cli/index.js.map +1 -0
  817. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/index.d.ts +8 -0
  818. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/index.d.ts.map +1 -0
  819. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/index.js +39 -0
  820. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/index.js.map +1 -0
  821. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/server/execute.d.ts +3 -0
  822. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/server/execute.d.ts.map +1 -0
  823. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/server/execute.js +405 -0
  824. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/server/execute.js.map +1 -0
  825. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/server/index.d.ts +7 -0
  826. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/server/index.d.ts.map +1 -0
  827. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/server/index.js +50 -0
  828. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/server/index.js.map +1 -0
  829. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/server/models.d.ts +20 -0
  830. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/server/models.d.ts.map +1 -0
  831. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/server/models.js +161 -0
  832. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/server/models.js.map +1 -0
  833. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/server/models.test.d.ts +2 -0
  834. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/server/models.test.d.ts.map +1 -0
  835. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/server/models.test.js +22 -0
  836. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/server/models.test.js.map +1 -0
  837. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/server/parse.d.ts +23 -0
  838. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/server/parse.d.ts.map +1 -0
  839. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/server/parse.js +180 -0
  840. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/server/parse.js.map +1 -0
  841. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/server/parse.test.d.ts +2 -0
  842. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/server/parse.test.d.ts.map +1 -0
  843. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/server/parse.test.js +206 -0
  844. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/server/parse.test.js.map +1 -0
  845. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/server/test.d.ts +3 -0
  846. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/server/test.d.ts.map +1 -0
  847. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/server/test.js +257 -0
  848. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/server/test.js.map +1 -0
  849. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/ui/build-config.d.ts +3 -0
  850. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/ui/build-config.d.ts.map +1 -0
  851. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/ui/build-config.js +82 -0
  852. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/ui/build-config.js.map +1 -0
  853. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/ui/index.d.ts +3 -0
  854. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/ui/index.d.ts.map +1 -0
  855. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/ui/index.js +3 -0
  856. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/ui/index.js.map +1 -0
  857. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/ui/parse-stdout.d.ts +3 -0
  858. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/ui/parse-stdout.d.ts.map +1 -0
  859. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/ui/parse-stdout.js +163 -0
  860. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/dist/ui/parse-stdout.js.map +1 -0
  861. package/dist/runtime/server/node_modules/@paperclipai/adapter-pi-local/package.json +42 -0
  862. package/dist/runtime/server/node_modules/@paperclipai/adapter-utils/dist/billing.d.ts +2 -0
  863. package/dist/runtime/server/node_modules/@paperclipai/adapter-utils/dist/billing.d.ts.map +1 -0
  864. package/dist/runtime/server/node_modules/@paperclipai/adapter-utils/dist/billing.js +16 -0
  865. package/dist/runtime/server/node_modules/@paperclipai/adapter-utils/dist/billing.js.map +1 -0
  866. package/dist/runtime/server/node_modules/@paperclipai/adapter-utils/dist/billing.test.d.ts +2 -0
  867. package/dist/runtime/server/node_modules/@paperclipai/adapter-utils/dist/billing.test.d.ts.map +1 -0
  868. package/dist/runtime/server/node_modules/@paperclipai/adapter-utils/dist/billing.test.js +14 -0
  869. package/dist/runtime/server/node_modules/@paperclipai/adapter-utils/dist/billing.test.js.map +1 -0
  870. package/dist/runtime/server/node_modules/@paperclipai/adapter-utils/dist/index.d.ts +6 -0
  871. package/dist/runtime/server/node_modules/@paperclipai/adapter-utils/dist/index.d.ts.map +1 -0
  872. package/dist/runtime/server/node_modules/@paperclipai/adapter-utils/dist/index.js +4 -0
  873. package/dist/runtime/server/node_modules/@paperclipai/adapter-utils/dist/index.js.map +1 -0
  874. package/dist/runtime/server/node_modules/@paperclipai/adapter-utils/dist/log-redaction.d.ts +6 -0
  875. package/dist/runtime/server/node_modules/@paperclipai/adapter-utils/dist/log-redaction.d.ts.map +1 -0
  876. package/dist/runtime/server/node_modules/@paperclipai/adapter-utils/dist/log-redaction.js +75 -0
  877. package/dist/runtime/server/node_modules/@paperclipai/adapter-utils/dist/log-redaction.js.map +1 -0
  878. package/dist/runtime/server/node_modules/@paperclipai/adapter-utils/dist/server-utils.d.ts +62 -0
  879. package/dist/runtime/server/node_modules/@paperclipai/adapter-utils/dist/server-utils.d.ts.map +1 -0
  880. package/dist/runtime/server/node_modules/@paperclipai/adapter-utils/dist/server-utils.js +419 -0
  881. package/dist/runtime/server/node_modules/@paperclipai/adapter-utils/dist/server-utils.js.map +1 -0
  882. package/dist/runtime/server/node_modules/@paperclipai/adapter-utils/dist/session-compaction.d.ts +25 -0
  883. package/dist/runtime/server/node_modules/@paperclipai/adapter-utils/dist/session-compaction.d.ts.map +1 -0
  884. package/dist/runtime/server/node_modules/@paperclipai/adapter-utils/dist/session-compaction.js +142 -0
  885. package/dist/runtime/server/node_modules/@paperclipai/adapter-utils/dist/session-compaction.js.map +1 -0
  886. package/dist/runtime/server/node_modules/@paperclipai/adapter-utils/dist/types.d.ts +290 -0
  887. package/dist/runtime/server/node_modules/@paperclipai/adapter-utils/dist/types.d.ts.map +1 -0
  888. package/dist/runtime/server/node_modules/@paperclipai/adapter-utils/dist/types.js +5 -0
  889. package/dist/runtime/server/node_modules/@paperclipai/adapter-utils/dist/types.js.map +1 -0
  890. package/dist/runtime/server/node_modules/@paperclipai/adapter-utils/package.json +30 -0
  891. package/dist/runtime/server/node_modules/@paperclipai/db/dist/backup-lib.d.ts +24 -0
  892. package/dist/runtime/server/node_modules/@paperclipai/db/dist/backup-lib.d.ts.map +1 -0
  893. package/dist/runtime/server/node_modules/@paperclipai/db/dist/backup-lib.js +448 -0
  894. package/dist/runtime/server/node_modules/@paperclipai/db/dist/backup-lib.js.map +1 -0
  895. package/dist/runtime/server/node_modules/@paperclipai/db/dist/backup.d.ts +2 -0
  896. package/dist/runtime/server/node_modules/@paperclipai/db/dist/backup.d.ts.map +1 -0
  897. package/dist/runtime/server/node_modules/@paperclipai/db/dist/backup.js +103 -0
  898. package/dist/runtime/server/node_modules/@paperclipai/db/dist/backup.js.map +1 -0
  899. package/dist/runtime/server/node_modules/@paperclipai/db/dist/client.d.ts +43 -0
  900. package/dist/runtime/server/node_modules/@paperclipai/db/dist/client.d.ts.map +1 -0
  901. package/dist/runtime/server/node_modules/@paperclipai/db/dist/client.js +574 -0
  902. package/dist/runtime/server/node_modules/@paperclipai/db/dist/client.js.map +1 -0
  903. package/dist/runtime/server/node_modules/@paperclipai/db/dist/client.test.d.ts +2 -0
  904. package/dist/runtime/server/node_modules/@paperclipai/db/dist/client.test.d.ts.map +1 -0
  905. package/dist/runtime/server/node_modules/@paperclipai/db/dist/client.test.js +117 -0
  906. package/dist/runtime/server/node_modules/@paperclipai/db/dist/client.test.js.map +1 -0
  907. package/dist/runtime/server/node_modules/@paperclipai/db/dist/index.d.ts +4 -0
  908. package/dist/runtime/server/node_modules/@paperclipai/db/dist/index.d.ts.map +1 -0
  909. package/dist/runtime/server/node_modules/@paperclipai/db/dist/index.js +4 -0
  910. package/dist/runtime/server/node_modules/@paperclipai/db/dist/index.js.map +1 -0
  911. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrate.d.ts +2 -0
  912. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrate.d.ts.map +1 -0
  913. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrate.js +25 -0
  914. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrate.js.map +1 -0
  915. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migration-runtime.d.ts +7 -0
  916. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migration-runtime.d.ts.map +1 -0
  917. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migration-runtime.js +163 -0
  918. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migration-runtime.js.map +1 -0
  919. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migration-status.d.ts +2 -0
  920. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migration-status.d.ts.map +1 -0
  921. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migration-status.js +55 -0
  922. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migration-status.js.map +1 -0
  923. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0000_mature_masked_marvel.sql +208 -0
  924. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0001_fast_northstar.sql +87 -0
  925. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0002_big_zaladane.sql +1 -0
  926. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0003_shallow_quentin_quire.sql +5 -0
  927. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0004_issue_identifiers.sql +28 -0
  928. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0005_chief_luke_cage.sql +19 -0
  929. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0006_overjoyed_mister_sinister.sql +36 -0
  930. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0007_new_quentin_quire.sql +20 -0
  931. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0008_amused_zzzax.sql +1 -0
  932. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0009_fast_jackal.sql +36 -0
  933. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0010_stale_justin_hammer.sql +37 -0
  934. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0011_windy_corsair.sql +18 -0
  935. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0012_perpetual_ser_duncan.sql +2 -0
  936. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0013_dashing_wasp.sql +4 -0
  937. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0014_many_mikhail_rasputin.sql +135 -0
  938. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0015_project_color_archived.sql +2 -0
  939. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0016_agent_icon.sql +1 -0
  940. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0017_tiresome_gabe_jones.sql +51 -0
  941. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0018_flat_sleepwalker.sql +26 -0
  942. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0019_public_victor_mancha.sql +18 -0
  943. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0020_white_anita_blake.sql +1 -0
  944. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0021_chief_vindicator.sql +1 -0
  945. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0022_company_brand_color.sql +1 -0
  946. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0023_fair_lethal_legion.sql +3 -0
  947. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0024_far_beast.sql +2 -0
  948. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0025_nasty_salo.sql +15 -0
  949. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0026_lying_pete_wisdom.sql +39 -0
  950. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0027_tranquil_tenebrous.sql +2 -0
  951. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0028_harsh_goliath.sql +54 -0
  952. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0029_plugin_tables.sql +177 -0
  953. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0030_rich_magneto.sql +12 -0
  954. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0031_zippy_magma.sql +51 -0
  955. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0032_pretty_doctor_octopus.sql +102 -0
  956. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0033_shiny_black_tarantula.sql +2 -0
  957. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0034_fat_dormammu.sql +2 -0
  958. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0035_marvelous_satana.sql +91 -0
  959. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0036_cheerful_nitro.sql +9 -0
  960. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0037_friendly_eddie_brock.sql +29 -0
  961. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0038_careless_iron_monger.sql +5 -0
  962. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0039_tickets.sql +25 -0
  963. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/0040_ticket_meta.sql +3 -0
  964. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/meta/0000_snapshot.json +1743 -0
  965. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/meta/0001_snapshot.json +2441 -0
  966. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/meta/0002_snapshot.json +2454 -0
  967. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/meta/0003_snapshot.json +2502 -0
  968. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/meta/0005_snapshot.json +2719 -0
  969. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/meta/0006_snapshot.json +3048 -0
  970. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/meta/0007_snapshot.json +3258 -0
  971. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/meta/0008_snapshot.json +3264 -0
  972. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/meta/0009_snapshot.json +3587 -0
  973. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/meta/0010_snapshot.json +3929 -0
  974. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/meta/0011_snapshot.json +4068 -0
  975. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/meta/0012_snapshot.json +4087 -0
  976. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/meta/0013_snapshot.json +4118 -0
  977. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/meta/0014_snapshot.json +5187 -0
  978. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/meta/0017_snapshot.json +5215 -0
  979. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/meta/0018_snapshot.json +5450 -0
  980. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/meta/0019_snapshot.json +5603 -0
  981. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/meta/0020_snapshot.json +5603 -0
  982. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/meta/0021_snapshot.json +5609 -0
  983. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/meta/0023_snapshot.json +5633 -0
  984. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/meta/0024_snapshot.json +5693 -0
  985. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/meta/0025_snapshot.json +5849 -0
  986. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/meta/0027_snapshot.json +6205 -0
  987. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/meta/0028_snapshot.json +6710 -0
  988. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/meta/0029_snapshot.json +7899 -0
  989. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/meta/0030_snapshot.json +8003 -0
  990. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/meta/0031_snapshot.json +7242 -0
  991. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/meta/0032_snapshot.json +7733 -0
  992. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/meta/0033_snapshot.json +9038 -0
  993. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/meta/0034_snapshot.json +9039 -0
  994. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/meta/0035_snapshot.json +9959 -0
  995. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/meta/0036_snapshot.json +10023 -0
  996. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/meta/0037_snapshot.json +10263 -0
  997. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/meta/0038_snapshot.json +10301 -0
  998. package/dist/runtime/server/node_modules/@paperclipai/db/dist/migrations/meta/_journal.json +293 -0
  999. package/dist/runtime/server/node_modules/@paperclipai/db/dist/runtime-config.d.ts +16 -0
  1000. package/dist/runtime/server/node_modules/@paperclipai/db/dist/runtime-config.d.ts.map +1 -0
  1001. package/dist/runtime/server/node_modules/@paperclipai/db/dist/runtime-config.js +197 -0
  1002. package/dist/runtime/server/node_modules/@paperclipai/db/dist/runtime-config.js.map +1 -0
  1003. package/dist/runtime/server/node_modules/@paperclipai/db/dist/runtime-config.test.d.ts +2 -0
  1004. package/dist/runtime/server/node_modules/@paperclipai/db/dist/runtime-config.test.d.ts.map +1 -0
  1005. package/dist/runtime/server/node_modules/@paperclipai/db/dist/runtime-config.test.js +93 -0
  1006. package/dist/runtime/server/node_modules/@paperclipai/db/dist/runtime-config.test.js.map +1 -0
  1007. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/activity_log.d.ts +197 -0
  1008. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/activity_log.d.ts.map +1 -0
  1009. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/activity_log.js +22 -0
  1010. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/activity_log.js.map +1 -0
  1011. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/agent_api_keys.d.ts +144 -0
  1012. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/agent_api_keys.d.ts.map +1 -0
  1013. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/agent_api_keys.js +17 -0
  1014. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/agent_api_keys.js.map +1 -0
  1015. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/agent_config_revisions.d.ts +201 -0
  1016. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/agent_config_revisions.d.ts.map +1 -0
  1017. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/agent_config_revisions.js +20 -0
  1018. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/agent_config_revisions.js.map +1 -0
  1019. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/agent_runtime_state.d.ts +248 -0
  1020. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/agent_runtime_state.d.ts.map +1 -0
  1021. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/agent_runtime_state.js +23 -0
  1022. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/agent_runtime_state.js.map +1 -0
  1023. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/agent_task_sessions.d.ts +197 -0
  1024. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/agent_task_sessions.d.ts.map +1 -0
  1025. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/agent_task_sessions.js +22 -0
  1026. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/agent_task_sessions.js.map +1 -0
  1027. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/agent_wakeup_requests.d.ts +333 -0
  1028. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/agent_wakeup_requests.d.ts.map +1 -0
  1029. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/agent_wakeup_requests.js +29 -0
  1030. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/agent_wakeup_requests.js.map +1 -0
  1031. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/agents.d.ts +373 -0
  1032. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/agents.d.ts.map +1 -0
  1033. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/agents.js +29 -0
  1034. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/agents.js.map +1 -0
  1035. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/approval_comments.d.ts +144 -0
  1036. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/approval_comments.d.ts.map +1 -0
  1037. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/approval_comments.js +19 -0
  1038. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/approval_comments.js.map +1 -0
  1039. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/approvals.d.ts +214 -0
  1040. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/approvals.d.ts.map +1 -0
  1041. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/approvals.js +20 -0
  1042. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/approvals.js.map +1 -0
  1043. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/assets.d.ts +212 -0
  1044. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/assets.d.ts.map +1 -0
  1045. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/assets.js +22 -0
  1046. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/assets.js.map +1 -0
  1047. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/auth.d.ts +607 -0
  1048. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/auth.d.ts.map +1 -0
  1049. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/auth.js +44 -0
  1050. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/auth.js.map +1 -0
  1051. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/budget_incidents.d.ts +297 -0
  1052. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/budget_incidents.d.ts.map +1 -0
  1053. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/budget_incidents.js +29 -0
  1054. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/budget_incidents.js.map +1 -0
  1055. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/budget_policies.d.ts +263 -0
  1056. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/budget_policies.d.ts.map +1 -0
  1057. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/budget_policies.js +24 -0
  1058. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/budget_policies.js.map +1 -0
  1059. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/companies.d.ts +246 -0
  1060. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/companies.d.ts.map +1 -0
  1061. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/companies.js +22 -0
  1062. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/companies.js.map +1 -0
  1063. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/company_logos.d.ts +93 -0
  1064. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/company_logos.d.ts.map +1 -0
  1065. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/company_logos.js +14 -0
  1066. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/company_logos.js.map +1 -0
  1067. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/company_memberships.d.ts +144 -0
  1068. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/company_memberships.d.ts.map +1 -0
  1069. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/company_memberships.js +17 -0
  1070. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/company_memberships.js.map +1 -0
  1071. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/company_secret_versions.d.ts +163 -0
  1072. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/company_secret_versions.d.ts.map +1 -0
  1073. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/company_secret_versions.js +19 -0
  1074. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/company_secret_versions.js.map +1 -0
  1075. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/company_secrets.d.ts +195 -0
  1076. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/company_secrets.d.ts.map +1 -0
  1077. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/company_secrets.js +21 -0
  1078. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/company_secrets.js.map +1 -0
  1079. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/cost_events.d.ts +314 -0
  1080. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/cost_events.d.ts.map +1 -0
  1081. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/cost_events.js +34 -0
  1082. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/cost_events.js.map +1 -0
  1083. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/document_revisions.d.ts +161 -0
  1084. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/document_revisions.d.ts.map +1 -0
  1085. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/document_revisions.js +19 -0
  1086. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/document_revisions.js.map +1 -0
  1087. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/documents.d.ts +229 -0
  1088. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/documents.d.ts.map +1 -0
  1089. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/documents.js +22 -0
  1090. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/documents.js.map +1 -0
  1091. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/execution_workspaces.d.ts +418 -0
  1092. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/execution_workspaces.d.ts.map +1 -0
  1093. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/execution_workspaces.js +39 -0
  1094. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/execution_workspaces.js.map +1 -0
  1095. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/finance_events.d.ts +469 -0
  1096. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/finance_events.d.ts.map +1 -0
  1097. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/finance_events.js +45 -0
  1098. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/finance_events.js.map +1 -0
  1099. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/goals.d.ts +178 -0
  1100. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/goals.d.ts.map +1 -0
  1101. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/goals.js +18 -0
  1102. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/goals.js.map +1 -0
  1103. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/heartbeat_run_events.d.ts +214 -0
  1104. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/heartbeat_run_events.d.ts.map +1 -0
  1105. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/heartbeat_run_events.js +23 -0
  1106. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/heartbeat_run_events.js.map +1 -0
  1107. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/heartbeat_runs.d.ts +558 -0
  1108. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/heartbeat_runs.d.ts.map +1 -0
  1109. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/heartbeat_runs.js +43 -0
  1110. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/heartbeat_runs.js.map +1 -0
  1111. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/index.d.ts +55 -0
  1112. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/index.d.ts.map +1 -0
  1113. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/index.js +55 -0
  1114. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/index.js.map +1 -0
  1115. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/instance_settings.d.ts +95 -0
  1116. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/instance_settings.d.ts.map +1 -0
  1117. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/instance_settings.js +11 -0
  1118. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/instance_settings.js.map +1 -0
  1119. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/instance_user_roles.d.ts +93 -0
  1120. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/instance_user_roles.d.ts.map +1 -0
  1121. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/instance_user_roles.js +12 -0
  1122. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/instance_user_roles.js.map +1 -0
  1123. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/invites.d.ts +214 -0
  1124. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/invites.d.ts.map +1 -0
  1125. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/invites.js +20 -0
  1126. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/invites.js.map +1 -0
  1127. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/issue_approvals.d.ts +110 -0
  1128. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/issue_approvals.d.ts.map +1 -0
  1129. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/issue_approvals.js +19 -0
  1130. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/issue_approvals.js.map +1 -0
  1131. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/issue_attachments.d.ts +127 -0
  1132. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/issue_attachments.d.ts.map +1 -0
  1133. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/issue_attachments.js +19 -0
  1134. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/issue_attachments.js.map +1 -0
  1135. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/issue_comments.d.ts +144 -0
  1136. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/issue_comments.d.ts.map +1 -0
  1137. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/issue_comments.js +20 -0
  1138. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/issue_comments.js.map +1 -0
  1139. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/issue_documents.d.ts +127 -0
  1140. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/issue_documents.d.ts.map +1 -0
  1141. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/issue_documents.js +18 -0
  1142. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/issue_documents.js.map +1 -0
  1143. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/issue_labels.d.ts +76 -0
  1144. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/issue_labels.d.ts.map +1 -0
  1145. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/issue_labels.js +16 -0
  1146. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/issue_labels.js.map +1 -0
  1147. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/issue_read_states.d.ts +127 -0
  1148. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/issue_read_states.d.ts.map +1 -0
  1149. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/issue_read_states.js +17 -0
  1150. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/issue_read_states.js.map +1 -0
  1151. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/issue_work_products.d.ts +350 -0
  1152. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/issue_work_products.d.ts.map +1 -0
  1153. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/issue_work_products.js +37 -0
  1154. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/issue_work_products.js.map +1 -0
  1155. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/issues.d.ts +590 -0
  1156. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/issues.d.ts.map +1 -0
  1157. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/issues.js +58 -0
  1158. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/issues.js.map +1 -0
  1159. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/join_requests.d.ts +384 -0
  1160. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/join_requests.d.ts.map +1 -0
  1161. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/join_requests.js +32 -0
  1162. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/join_requests.js.map +1 -0
  1163. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/labels.d.ts +110 -0
  1164. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/labels.d.ts.map +1 -0
  1165. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/labels.js +14 -0
  1166. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/labels.js.map +1 -0
  1167. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/plugin_company_settings.d.ts +158 -0
  1168. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/plugin_company_settings.d.ts.map +1 -0
  1169. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/plugin_company_settings.js +34 -0
  1170. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/plugin_company_settings.js.map +1 -0
  1171. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/plugin_config.d.ts +123 -0
  1172. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/plugin_config.d.ts.map +1 -0
  1173. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/plugin_config.js +26 -0
  1174. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/plugin_config.js.map +1 -0
  1175. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/plugin_entities.d.ts +213 -0
  1176. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/plugin_entities.d.ts.map +1 -0
  1177. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/plugin_entities.js +37 -0
  1178. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/plugin_entities.js.map +1 -0
  1179. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/plugin_jobs.d.ts +392 -0
  1180. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/plugin_jobs.d.ts.map +1 -0
  1181. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/plugin_jobs.js +83 -0
  1182. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/plugin_jobs.js.map +1 -0
  1183. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/plugin_logs.d.ts +125 -0
  1184. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/plugin_logs.d.ts.map +1 -0
  1185. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/plugin_logs.js +29 -0
  1186. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/plugin_logs.js.map +1 -0
  1187. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/plugin_state.d.ts +169 -0
  1188. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/plugin_state.d.ts.map +1 -0
  1189. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/plugin_state.js +68 -0
  1190. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/plugin_state.js.map +1 -0
  1191. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/plugin_webhooks.d.ts +239 -0
  1192. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/plugin_webhooks.d.ts.map +1 -0
  1193. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/plugin_webhooks.js +52 -0
  1194. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/plugin_webhooks.js.map +1 -0
  1195. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/plugins.d.ts +246 -0
  1196. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/plugins.d.ts.map +1 -0
  1197. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/plugins.js +31 -0
  1198. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/plugins.js.map +1 -0
  1199. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/principal_permission_grants.d.ts +163 -0
  1200. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/principal_permission_grants.d.ts.map +1 -0
  1201. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/principal_permission_grants.js +17 -0
  1202. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/principal_permission_grants.js.map +1 -0
  1203. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/project_goals.d.ts +93 -0
  1204. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/project_goals.d.ts.map +1 -0
  1205. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/project_goals.js +17 -0
  1206. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/project_goals.js.map +1 -0
  1207. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/project_workspaces.d.ts +333 -0
  1208. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/project_workspaces.d.ts.map +1 -0
  1209. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/project_workspaces.js +32 -0
  1210. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/project_workspaces.js.map +1 -0
  1211. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/projects.d.ts +265 -0
  1212. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/projects.d.ts.map +1 -0
  1213. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/projects.js +24 -0
  1214. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/projects.js.map +1 -0
  1215. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/tickets.d.ts +284 -0
  1216. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/tickets.d.ts.map +1 -0
  1217. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/tickets.js +24 -0
  1218. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/tickets.js.map +1 -0
  1219. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/workspace_operations.d.ts +367 -0
  1220. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/workspace_operations.d.ts.map +1 -0
  1221. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/workspace_operations.js +35 -0
  1222. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/workspace_operations.js.map +1 -0
  1223. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/workspace_runtime_services.d.ts +469 -0
  1224. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/workspace_runtime_services.d.ts.map +1 -0
  1225. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/workspace_runtime_services.js +44 -0
  1226. package/dist/runtime/server/node_modules/@paperclipai/db/dist/schema/workspace_runtime_services.js.map +1 -0
  1227. package/dist/runtime/server/node_modules/@paperclipai/db/dist/seed.d.ts +2 -0
  1228. package/dist/runtime/server/node_modules/@paperclipai/db/dist/seed.d.ts.map +1 -0
  1229. package/dist/runtime/server/node_modules/@paperclipai/db/dist/seed.js +91 -0
  1230. package/dist/runtime/server/node_modules/@paperclipai/db/dist/seed.js.map +1 -0
  1231. package/dist/runtime/server/node_modules/@paperclipai/db/package.json +36 -0
  1232. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/bundlers.d.ts +57 -0
  1233. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/bundlers.d.ts.map +1 -0
  1234. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/bundlers.js +105 -0
  1235. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/bundlers.js.map +1 -0
  1236. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/define-plugin.d.ts +218 -0
  1237. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/define-plugin.d.ts.map +1 -0
  1238. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/define-plugin.js +85 -0
  1239. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/define-plugin.js.map +1 -0
  1240. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/dev-cli.d.ts +3 -0
  1241. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/dev-cli.d.ts.map +1 -0
  1242. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/dev-cli.js +49 -0
  1243. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/dev-cli.js.map +1 -0
  1244. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/dev-server.d.ts +34 -0
  1245. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/dev-server.d.ts.map +1 -0
  1246. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/dev-server.js +194 -0
  1247. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/dev-server.js.map +1 -0
  1248. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/host-client-factory.d.ts +229 -0
  1249. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/host-client-factory.d.ts.map +1 -0
  1250. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/host-client-factory.js +353 -0
  1251. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/host-client-factory.js.map +1 -0
  1252. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/index.d.ts +84 -0
  1253. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/index.d.ts.map +1 -0
  1254. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/index.js +84 -0
  1255. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/index.js.map +1 -0
  1256. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/protocol.d.ts +881 -0
  1257. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/protocol.d.ts.map +1 -0
  1258. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/protocol.js +297 -0
  1259. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/protocol.js.map +1 -0
  1260. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/testing.d.ts +63 -0
  1261. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/testing.d.ts.map +1 -0
  1262. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/testing.js +702 -0
  1263. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/testing.js.map +1 -0
  1264. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/types.d.ts +982 -0
  1265. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/types.d.ts.map +1 -0
  1266. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/types.js +12 -0
  1267. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/types.js.map +1 -0
  1268. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/ui/components.d.ts +257 -0
  1269. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/ui/components.d.ts.map +1 -0
  1270. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/ui/components.js +97 -0
  1271. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/ui/components.js.map +1 -0
  1272. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/ui/hooks.d.ts +120 -0
  1273. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/ui/hooks.d.ts.map +1 -0
  1274. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/ui/hooks.js +148 -0
  1275. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/ui/hooks.js.map +1 -0
  1276. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/ui/index.d.ts +50 -0
  1277. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/ui/index.d.ts.map +1 -0
  1278. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/ui/index.js +48 -0
  1279. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/ui/index.js.map +1 -0
  1280. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/ui/runtime.d.ts +3 -0
  1281. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/ui/runtime.d.ts.map +1 -0
  1282. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/ui/runtime.js +30 -0
  1283. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/ui/runtime.js.map +1 -0
  1284. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/ui/types.d.ts +308 -0
  1285. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/ui/types.d.ts.map +1 -0
  1286. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/ui/types.js +17 -0
  1287. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/ui/types.js.map +1 -0
  1288. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/worker-rpc-host.d.ts +127 -0
  1289. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/worker-rpc-host.d.ts.map +1 -0
  1290. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/worker-rpc-host.js +941 -0
  1291. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/dist/worker-rpc-host.js.map +1 -0
  1292. package/dist/runtime/server/node_modules/@paperclipai/plugin-sdk/package.json +74 -0
  1293. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/agent-url-key.d.ts +4 -0
  1294. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/agent-url-key.d.ts.map +1 -0
  1295. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/agent-url-key.js +22 -0
  1296. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/agent-url-key.js.map +1 -0
  1297. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/api.d.ts +20 -0
  1298. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/api.d.ts.map +1 -0
  1299. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/api.js +20 -0
  1300. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/api.js.map +1 -0
  1301. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/config-schema.d.ts +755 -0
  1302. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/config-schema.d.ts.map +1 -0
  1303. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/config-schema.js +154 -0
  1304. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/config-schema.js.map +1 -0
  1305. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/constants.d.ts +214 -0
  1306. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/constants.d.ts.map +1 -0
  1307. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/constants.js +553 -0
  1308. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/constants.js.map +1 -0
  1309. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/gtm.d.ts +116 -0
  1310. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/gtm.d.ts.map +1 -0
  1311. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/gtm.js +181 -0
  1312. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/gtm.js.map +1 -0
  1313. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/index.d.ts +12 -0
  1314. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/index.d.ts.map +1 -0
  1315. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/index.js +11 -0
  1316. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/index.js.map +1 -0
  1317. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/project-mentions.d.ts +9 -0
  1318. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/project-mentions.d.ts.map +1 -0
  1319. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/project-mentions.js +71 -0
  1320. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/project-mentions.js.map +1 -0
  1321. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/project-url-key.d.ts +3 -0
  1322. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/project-url-key.d.ts.map +1 -0
  1323. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/project-url-key.js +16 -0
  1324. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/project-url-key.js.map +1 -0
  1325. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/surface-runtime.d.ts +15 -0
  1326. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/surface-runtime.d.ts.map +1 -0
  1327. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/surface-runtime.js +40 -0
  1328. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/surface-runtime.js.map +1 -0
  1329. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/access.d.ts +67 -0
  1330. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/access.d.ts.map +1 -0
  1331. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/access.js +2 -0
  1332. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/access.js.map +1 -0
  1333. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/activity.d.ts +14 -0
  1334. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/activity.d.ts.map +1 -0
  1335. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/activity.js +2 -0
  1336. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/activity.js.map +1 -0
  1337. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/agent.d.ts +80 -0
  1338. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/agent.d.ts.map +1 -0
  1339. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/agent.js +2 -0
  1340. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/agent.js.map +1 -0
  1341. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/approval.d.ts +26 -0
  1342. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/approval.d.ts.map +1 -0
  1343. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/approval.js +2 -0
  1344. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/approval.js.map +1 -0
  1345. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/asset.d.ts +16 -0
  1346. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/asset.d.ts.map +1 -0
  1347. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/asset.js +2 -0
  1348. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/asset.js.map +1 -0
  1349. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/budget.d.ts +86 -0
  1350. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/budget.d.ts.map +1 -0
  1351. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/budget.js +2 -0
  1352. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/budget.js.map +1 -0
  1353. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/company-portability.d.ts +120 -0
  1354. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/company-portability.d.ts.map +1 -0
  1355. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/company-portability.js +2 -0
  1356. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/company-portability.js.map +1 -0
  1357. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/company.d.ts +20 -0
  1358. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/company.d.ts.map +1 -0
  1359. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/company.js +2 -0
  1360. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/company.js.map +1 -0
  1361. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/cost.d.ts +106 -0
  1362. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/cost.d.ts.map +1 -0
  1363. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/cost.js +2 -0
  1364. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/cost.js.map +1 -0
  1365. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/dashboard.d.ts +28 -0
  1366. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/dashboard.d.ts.map +1 -0
  1367. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/dashboard.js +2 -0
  1368. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/dashboard.js.map +1 -0
  1369. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/finance.d.ts +57 -0
  1370. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/finance.d.ts.map +1 -0
  1371. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/finance.js +2 -0
  1372. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/finance.js.map +1 -0
  1373. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/goal.d.ts +14 -0
  1374. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/goal.d.ts.map +1 -0
  1375. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/goal.js +2 -0
  1376. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/goal.js.map +1 -0
  1377. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/heartbeat.d.ts +118 -0
  1378. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/heartbeat.d.ts.map +1 -0
  1379. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/heartbeat.js +2 -0
  1380. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/heartbeat.js.map +1 -0
  1381. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/index.d.ts +26 -0
  1382. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/index.d.ts.map +1 -0
  1383. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/index.js +2 -0
  1384. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/index.js.map +1 -0
  1385. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/instance.d.ts +10 -0
  1386. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/instance.d.ts.map +1 -0
  1387. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/instance.js +2 -0
  1388. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/instance.js.map +1 -0
  1389. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/issue.d.ts +164 -0
  1390. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/issue.d.ts.map +1 -0
  1391. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/issue.js +2 -0
  1392. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/issue.js.map +1 -0
  1393. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/live.d.ts +9 -0
  1394. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/live.d.ts.map +1 -0
  1395. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/live.js +2 -0
  1396. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/live.js.map +1 -0
  1397. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/plugin.d.ts +419 -0
  1398. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/plugin.d.ts.map +1 -0
  1399. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/plugin.js +2 -0
  1400. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/plugin.js.map +1 -0
  1401. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/project.d.ts +67 -0
  1402. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/project.d.ts.map +1 -0
  1403. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/project.js +2 -0
  1404. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/project.js.map +1 -0
  1405. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/quota.d.ts +26 -0
  1406. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/quota.d.ts.map +1 -0
  1407. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/quota.js +2 -0
  1408. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/quota.js.map +1 -0
  1409. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/secrets.d.ts +32 -0
  1410. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/secrets.d.ts.map +1 -0
  1411. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/secrets.js +2 -0
  1412. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/secrets.js.map +1 -0
  1413. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/sidebar-badges.d.ts +7 -0
  1414. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/sidebar-badges.d.ts.map +1 -0
  1415. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/sidebar-badges.js +2 -0
  1416. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/sidebar-badges.js.map +1 -0
  1417. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/ticket.d.ts +26 -0
  1418. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/ticket.d.ts.map +1 -0
  1419. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/ticket.js +2 -0
  1420. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/ticket.js.map +1 -0
  1421. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/work-product.d.ts +27 -0
  1422. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/work-product.d.ts.map +1 -0
  1423. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/work-product.js +2 -0
  1424. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/work-product.js.map +1 -0
  1425. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/workspace-operation.d.ts +26 -0
  1426. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/workspace-operation.d.ts.map +1 -0
  1427. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/workspace-operation.js +2 -0
  1428. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/workspace-operation.js.map +1 -0
  1429. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/workspace-runtime.d.ts +86 -0
  1430. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/workspace-runtime.d.ts.map +1 -0
  1431. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/workspace-runtime.js +2 -0
  1432. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/types/workspace-runtime.js.map +1 -0
  1433. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/access.d.ts +109 -0
  1434. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/access.d.ts.map +1 -0
  1435. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/access.js +40 -0
  1436. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/access.js.map +1 -0
  1437. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/agent.d.ts +235 -0
  1438. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/agent.d.ts.map +1 -0
  1439. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/agent.js +71 -0
  1440. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/agent.js.map +1 -0
  1441. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/approval.d.ts +57 -0
  1442. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/approval.d.ts.map +1 -0
  1443. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/approval.js +23 -0
  1444. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/approval.js.map +1 -0
  1445. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/asset.d.ts +10 -0
  1446. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/asset.d.ts.map +1 -0
  1447. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/asset.js +11 -0
  1448. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/asset.js.map +1 -0
  1449. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/budget.d.ts +56 -0
  1450. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/budget.d.ts.map +1 -0
  1451. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/budget.js +27 -0
  1452. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/budget.js.map +1 -0
  1453. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/company-portability.d.ts +1535 -0
  1454. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/company-portability.d.ts.map +1 -0
  1455. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/company-portability.js +95 -0
  1456. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/company-portability.js.map +1 -0
  1457. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/company.d.ts +64 -0
  1458. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/company.d.ts.map +1 -0
  1459. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/company.js +25 -0
  1460. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/company.js.map +1 -0
  1461. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/cost.d.ts +92 -0
  1462. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/cost.d.ts.map +1 -0
  1463. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/cost.js +26 -0
  1464. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/cost.js.map +1 -0
  1465. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/execution-workspace.d.ts +20 -0
  1466. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/execution-workspace.d.ts.map +1 -0
  1467. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/execution-workspace.js +15 -0
  1468. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/execution-workspace.js.map +1 -0
  1469. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/finance.d.ts +129 -0
  1470. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/finance.d.ts.map +1 -0
  1471. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/finance.js +32 -0
  1472. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/finance.js.map +1 -0
  1473. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/goal.d.ts +48 -0
  1474. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/goal.d.ts.map +1 -0
  1475. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/goal.js +12 -0
  1476. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/goal.js.map +1 -0
  1477. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/index.d.ts +19 -0
  1478. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/index.d.ts.map +1 -0
  1479. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/index.js +19 -0
  1480. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/index.js.map +1 -0
  1481. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/instance.d.ts +18 -0
  1482. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/instance.d.ts.map +1 -0
  1483. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/instance.js +6 -0
  1484. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/instance.js.map +1 -0
  1485. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/issue.d.ts +656 -0
  1486. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/issue.d.ts.map +1 -0
  1487. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/issue.js +95 -0
  1488. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/issue.js.map +1 -0
  1489. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/plugin.d.ts +1173 -0
  1490. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/plugin.d.ts.map +1 -0
  1491. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/plugin.js +547 -0
  1492. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/plugin.js.map +1 -0
  1493. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/project.d.ts +583 -0
  1494. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/project.d.ts.map +1 -0
  1495. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/project.js +93 -0
  1496. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/project.js.map +1 -0
  1497. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/secret.d.ts +114 -0
  1498. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/secret.d.ts.map +1 -0
  1499. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/secret.js +35 -0
  1500. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/secret.js.map +1 -0
  1501. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/ticket.d.ts +56 -0
  1502. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/ticket.d.ts.map +1 -0
  1503. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/ticket.js +22 -0
  1504. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/ticket.js.map +1 -0
  1505. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/work-product.d.ts +105 -0
  1506. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/work-product.d.ts.map +1 -0
  1507. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/work-product.js +46 -0
  1508. package/dist/runtime/server/node_modules/@paperclipai/shared/dist/validators/work-product.js.map +1 -0
  1509. package/dist/runtime/server/node_modules/@paperclipai/shared/package.json +33 -0
  1510. package/dist/runtime/server/package.json +5 -0
  1511. package/dist/runtime/server/ui-dist/android-chrome-192x192.png +0 -0
  1512. package/dist/runtime/server/ui-dist/android-chrome-512x512.png +0 -0
  1513. package/dist/runtime/server/ui-dist/apple-touch-icon.png +0 -0
  1514. package/dist/runtime/server/ui-dist/assets/OnboardingWizard-DQqBk_u-.js +839 -0
  1515. package/dist/runtime/server/ui-dist/assets/_basePickBy-CycqvnCH.js +1 -0
  1516. package/dist/runtime/server/ui-dist/assets/_baseUniq-jJI66QE5.js +1 -0
  1517. package/dist/runtime/server/ui-dist/assets/apl-B4CMkyY2.js +1 -0
  1518. package/dist/runtime/server/ui-dist/assets/arc-DAfOGkhs.js +1 -0
  1519. package/dist/runtime/server/ui-dist/assets/architectureDiagram-VXUJARFQ-Bseplhn_.js +36 -0
  1520. package/dist/runtime/server/ui-dist/assets/asciiarmor-Df11BRmG.js +1 -0
  1521. package/dist/runtime/server/ui-dist/assets/asn1-EdZsLKOL.js +1 -0
  1522. package/dist/runtime/server/ui-dist/assets/asterisk-B-8jnY81.js +1 -0
  1523. package/dist/runtime/server/ui-dist/assets/blockDiagram-VD42YOAC-CImRkHxE.js +122 -0
  1524. package/dist/runtime/server/ui-dist/assets/brainfuck-C4LP7Hcl.js +1 -0
  1525. package/dist/runtime/server/ui-dist/assets/c4Diagram-YG6GDRKO-DocRJ0-4.js +10 -0
  1526. package/dist/runtime/server/ui-dist/assets/channel-BBXTGjGr.js +1 -0
  1527. package/dist/runtime/server/ui-dist/assets/chunk-4BX2VUAB-C_QZ3yOc.js +1 -0
  1528. package/dist/runtime/server/ui-dist/assets/chunk-55IACEB6-B83lcfpC.js +1 -0
  1529. package/dist/runtime/server/ui-dist/assets/chunk-B4BG7PRW-_ZGkSCBB.js +165 -0
  1530. package/dist/runtime/server/ui-dist/assets/chunk-DI55MBZ5-D84JXXQK.js +220 -0
  1531. package/dist/runtime/server/ui-dist/assets/chunk-FMBD7UC4-MA5md7TF.js +15 -0
  1532. package/dist/runtime/server/ui-dist/assets/chunk-QN33PNHL-pBntDM8z.js +1 -0
  1533. package/dist/runtime/server/ui-dist/assets/chunk-QZHKN3VN-BaIMiSo-.js +1 -0
  1534. package/dist/runtime/server/ui-dist/assets/chunk-TZMSLE5B-CrjyhaCL.js +1 -0
  1535. package/dist/runtime/server/ui-dist/assets/classDiagram-2ON5EDUG-BNttVhse.js +1 -0
  1536. package/dist/runtime/server/ui-dist/assets/classDiagram-v2-WZHVMYZB-BNttVhse.js +1 -0
  1537. package/dist/runtime/server/ui-dist/assets/clike-B9uivgTg.js +1 -0
  1538. package/dist/runtime/server/ui-dist/assets/clojure-BMjYHr_A.js +1 -0
  1539. package/dist/runtime/server/ui-dist/assets/clone-dcpmW7Wd.js +1 -0
  1540. package/dist/runtime/server/ui-dist/assets/cmake-BQqOBYOt.js +1 -0
  1541. package/dist/runtime/server/ui-dist/assets/cobol-CWcv1MsR.js +1 -0
  1542. package/dist/runtime/server/ui-dist/assets/coffeescript-S37ZYGWr.js +1 -0
  1543. package/dist/runtime/server/ui-dist/assets/commonlisp-DBKNyK5s.js +1 -0
  1544. package/dist/runtime/server/ui-dist/assets/cose-bilkent-S5V4N54A-mNFISgZf.js +1 -0
  1545. package/dist/runtime/server/ui-dist/assets/crystal-SjHAIU92.js +1 -0
  1546. package/dist/runtime/server/ui-dist/assets/css-BnMrqG3P.js +1 -0
  1547. package/dist/runtime/server/ui-dist/assets/cypher-C_CwsFkJ.js +1 -0
  1548. package/dist/runtime/server/ui-dist/assets/cytoscape.esm-BQaXIfA_.js +331 -0
  1549. package/dist/runtime/server/ui-dist/assets/d-pRatUO7H.js +1 -0
  1550. package/dist/runtime/server/ui-dist/assets/dagre-6UL2VRFP-BW8ACip_.js +4 -0
  1551. package/dist/runtime/server/ui-dist/assets/defaultLocale-DX6XiGOO.js +1 -0
  1552. package/dist/runtime/server/ui-dist/assets/diagram-PSM6KHXK-ByQfKnwU.js +24 -0
  1553. package/dist/runtime/server/ui-dist/assets/diagram-QEK2KX5R-CVMlaNLR.js +43 -0
  1554. package/dist/runtime/server/ui-dist/assets/diagram-S2PKOQOG-CfBIwKQh.js +24 -0
  1555. package/dist/runtime/server/ui-dist/assets/diff-DbItnlRl.js +1 -0
  1556. package/dist/runtime/server/ui-dist/assets/dockerfile-BKs6k2Af.js +1 -0
  1557. package/dist/runtime/server/ui-dist/assets/dtd-DF_7sFjM.js +1 -0
  1558. package/dist/runtime/server/ui-dist/assets/dx-root-DH9to-bY.js +280 -0
  1559. package/dist/runtime/server/ui-dist/assets/dylan-DwRh75JA.js +1 -0
  1560. package/dist/runtime/server/ui-dist/assets/ebnf-CDyGwa7X.js +1 -0
  1561. package/dist/runtime/server/ui-dist/assets/ecl-Cabwm37j.js +1 -0
  1562. package/dist/runtime/server/ui-dist/assets/eiffel-CnydiIhH.js +1 -0
  1563. package/dist/runtime/server/ui-dist/assets/elm-vLlmbW-K.js +1 -0
  1564. package/dist/runtime/server/ui-dist/assets/erDiagram-Q2GNP2WA-DjZOGwrs.js +60 -0
  1565. package/dist/runtime/server/ui-dist/assets/erlang-BNw1qcRV.js +1 -0
  1566. package/dist/runtime/server/ui-dist/assets/factor-kuTfRLto.js +1 -0
  1567. package/dist/runtime/server/ui-dist/assets/fcl-Kvtd6kyn.js +1 -0
  1568. package/dist/runtime/server/ui-dist/assets/flowDiagram-NV44I4VS-BpGnGwpO.js +162 -0
  1569. package/dist/runtime/server/ui-dist/assets/forth-Ffai-XNe.js +1 -0
  1570. package/dist/runtime/server/ui-dist/assets/fortran-DYz_wnZ1.js +1 -0
  1571. package/dist/runtime/server/ui-dist/assets/ganttDiagram-JELNMOA3-CpTGtCqK.js +267 -0
  1572. package/dist/runtime/server/ui-dist/assets/gas-Bneqetm1.js +1 -0
  1573. package/dist/runtime/server/ui-dist/assets/gherkin-heZmZLOM.js +1 -0
  1574. package/dist/runtime/server/ui-dist/assets/gitGraphDiagram-V2S2FVAM-BQaWuAZj.js +65 -0
  1575. package/dist/runtime/server/ui-dist/assets/graph-DXdHsjCL.js +1 -0
  1576. package/dist/runtime/server/ui-dist/assets/groovy-D9Dt4D0W.js +1 -0
  1577. package/dist/runtime/server/ui-dist/assets/gtm-root-Bz1qVp9E.js +11 -0
  1578. package/dist/runtime/server/ui-dist/assets/haskell-Cw1EW3IL.js +1 -0
  1579. package/dist/runtime/server/ui-dist/assets/haxe-H-WmDvRZ.js +1 -0
  1580. package/dist/runtime/server/ui-dist/assets/http-DBlCnlav.js +1 -0
  1581. package/dist/runtime/server/ui-dist/assets/idl-BEugSyMb.js +1 -0
  1582. package/dist/runtime/server/ui-dist/assets/index-B8I0xKWu.js +1 -0
  1583. package/dist/runtime/server/ui-dist/assets/index-B8TKmcyb.js +6 -0
  1584. package/dist/runtime/server/ui-dist/assets/index-BMSNv6QN.js +13 -0
  1585. package/dist/runtime/server/ui-dist/assets/index-BYHJbnHR.js +1 -0
  1586. package/dist/runtime/server/ui-dist/assets/index-BgVlUrJs.js +2 -0
  1587. package/dist/runtime/server/ui-dist/assets/index-Bq-1_kyP.js +1 -0
  1588. package/dist/runtime/server/ui-dist/assets/index-BqPQYsKl.js +50 -0
  1589. package/dist/runtime/server/ui-dist/assets/index-BzMyBmxt.js +7 -0
  1590. package/dist/runtime/server/ui-dist/assets/index-CFpWwIka.js +1 -0
  1591. package/dist/runtime/server/ui-dist/assets/index-CKSID6Zp.js +1 -0
  1592. package/dist/runtime/server/ui-dist/assets/index-CQebjpNv.js +1 -0
  1593. package/dist/runtime/server/ui-dist/assets/index-CmOpk52T.css +1 -0
  1594. package/dist/runtime/server/ui-dist/assets/index-CmWaG74-.js +1 -0
  1595. package/dist/runtime/server/ui-dist/assets/index-CpAx3Tjk.js +3 -0
  1596. package/dist/runtime/server/ui-dist/assets/index-Crtq9e3P.js +1 -0
  1597. package/dist/runtime/server/ui-dist/assets/index-D5QPPm5h.js +1 -0
  1598. package/dist/runtime/server/ui-dist/assets/index-D8pJptAs.js +1 -0
  1599. package/dist/runtime/server/ui-dist/assets/index-DKPn8Zd0.js +1 -0
  1600. package/dist/runtime/server/ui-dist/assets/index-DRwidkWV.js +1 -0
  1601. package/dist/runtime/server/ui-dist/assets/index-DwTdFnM5.js +1 -0
  1602. package/dist/runtime/server/ui-dist/assets/index-KhE_p8qv.js +1 -0
  1603. package/dist/runtime/server/ui-dist/assets/index-LPZbBYTO.js +1 -0
  1604. package/dist/runtime/server/ui-dist/assets/index-mMQEcPHs.js +1 -0
  1605. package/dist/runtime/server/ui-dist/assets/index-nPSc8Rbx.js +1 -0
  1606. package/dist/runtime/server/ui-dist/assets/infoDiagram-HS3SLOUP-Du9idGhC.js +2 -0
  1607. package/dist/runtime/server/ui-dist/assets/init-Gi6I4Gst.js +1 -0
  1608. package/dist/runtime/server/ui-dist/assets/javascript-iXu5QeM3.js +1 -0
  1609. package/dist/runtime/server/ui-dist/assets/journeyDiagram-XKPGCS4Q-DQHmnv0N.js +139 -0
  1610. package/dist/runtime/server/ui-dist/assets/julia-DuME0IfC.js +1 -0
  1611. package/dist/runtime/server/ui-dist/assets/kanban-definition-3W4ZIXB7-D1us-ZVV.js +89 -0
  1612. package/dist/runtime/server/ui-dist/assets/katex-O9d3_IXG.js +261 -0
  1613. package/dist/runtime/server/ui-dist/assets/layout-CLyzF__I.js +1 -0
  1614. package/dist/runtime/server/ui-dist/assets/linear-DCEHrHNY.js +1 -0
  1615. package/dist/runtime/server/ui-dist/assets/livescript-BwQOo05w.js +1 -0
  1616. package/dist/runtime/server/ui-dist/assets/lua-BgMRiT3U.js +1 -0
  1617. package/dist/runtime/server/ui-dist/assets/mathematica-DTrFuWx2.js +1 -0
  1618. package/dist/runtime/server/ui-dist/assets/mbox-CNhZ1qSd.js +1 -0
  1619. package/dist/runtime/server/ui-dist/assets/mermaid.core-DPCeJESB.js +256 -0
  1620. package/dist/runtime/server/ui-dist/assets/mindmap-definition-VGOIOE7T-BmEem54z.js +68 -0
  1621. package/dist/runtime/server/ui-dist/assets/mirc-CjQqDB4T.js +1 -0
  1622. package/dist/runtime/server/ui-dist/assets/mllike-CXdrOF99.js +1 -0
  1623. package/dist/runtime/server/ui-dist/assets/modelica-Dc1JOy9r.js +1 -0
  1624. package/dist/runtime/server/ui-dist/assets/mscgen-BA5vi2Kp.js +1 -0
  1625. package/dist/runtime/server/ui-dist/assets/mumps-BT43cFF4.js +1 -0
  1626. package/dist/runtime/server/ui-dist/assets/nginx-DdIZxoE0.js +1 -0
  1627. package/dist/runtime/server/ui-dist/assets/nsis-LdVXkNf5.js +1 -0
  1628. package/dist/runtime/server/ui-dist/assets/ntriples-BfvgReVJ.js +1 -0
  1629. package/dist/runtime/server/ui-dist/assets/octave-Ck1zUtKM.js +1 -0
  1630. package/dist/runtime/server/ui-dist/assets/ordinal-Cboi1Yqb.js +1 -0
  1631. package/dist/runtime/server/ui-dist/assets/oz-BzwKVEFT.js +1 -0
  1632. package/dist/runtime/server/ui-dist/assets/pascal--L3eBynH.js +1 -0
  1633. package/dist/runtime/server/ui-dist/assets/perl-CdXCOZ3F.js +1 -0
  1634. package/dist/runtime/server/ui-dist/assets/pieDiagram-ADFJNKIX-DjIZtNwx.js +30 -0
  1635. package/dist/runtime/server/ui-dist/assets/pig-CevX1Tat.js +1 -0
  1636. package/dist/runtime/server/ui-dist/assets/powershell-CFHJl5sT.js +1 -0
  1637. package/dist/runtime/server/ui-dist/assets/properties-C78fOPTZ.js +1 -0
  1638. package/dist/runtime/server/ui-dist/assets/protobuf-ChK-085T.js +1 -0
  1639. package/dist/runtime/server/ui-dist/assets/pug-DeIclll2.js +1 -0
  1640. package/dist/runtime/server/ui-dist/assets/puppet-DMA9R1ak.js +1 -0
  1641. package/dist/runtime/server/ui-dist/assets/python-BuPzkPfP.js +1 -0
  1642. package/dist/runtime/server/ui-dist/assets/q-pXgVlZs6.js +1 -0
  1643. package/dist/runtime/server/ui-dist/assets/quadrantDiagram-AYHSOK5B-ba-xD4cb.js +7 -0
  1644. package/dist/runtime/server/ui-dist/assets/r-B6wPVr8A.js +1 -0
  1645. package/dist/runtime/server/ui-dist/assets/requirementDiagram-UZGBJVZJ-CB358t-a.js +64 -0
  1646. package/dist/runtime/server/ui-dist/assets/rpm-CTu-6PCP.js +1 -0
  1647. package/dist/runtime/server/ui-dist/assets/ruby-B2Rjki9n.js +1 -0
  1648. package/dist/runtime/server/ui-dist/assets/sankeyDiagram-TZEHDZUN-B0oPaNiW.js +10 -0
  1649. package/dist/runtime/server/ui-dist/assets/sas-B4kiWyti.js +1 -0
  1650. package/dist/runtime/server/ui-dist/assets/scheme-C41bIUwD.js +1 -0
  1651. package/dist/runtime/server/ui-dist/assets/sequenceDiagram-WL72ISMW-D7n_ZO5c.js +145 -0
  1652. package/dist/runtime/server/ui-dist/assets/shell-CjFT_Tl9.js +1 -0
  1653. package/dist/runtime/server/ui-dist/assets/sieve-C3Gn_uJK.js +1 -0
  1654. package/dist/runtime/server/ui-dist/assets/simple-mode-GW_nhZxv.js +1 -0
  1655. package/dist/runtime/server/ui-dist/assets/smalltalk-CnHTOXQT.js +1 -0
  1656. package/dist/runtime/server/ui-dist/assets/solr-DehyRSwq.js +1 -0
  1657. package/dist/runtime/server/ui-dist/assets/sparql-DkYu6x3z.js +1 -0
  1658. package/dist/runtime/server/ui-dist/assets/spreadsheet-BCZA_wO0.js +1 -0
  1659. package/dist/runtime/server/ui-dist/assets/sql-D0XecflT.js +1 -0
  1660. package/dist/runtime/server/ui-dist/assets/stateDiagram-FKZM4ZOC-MkMtXK-v.js +1 -0
  1661. package/dist/runtime/server/ui-dist/assets/stateDiagram-v2-4FDKWEC3-Cah7upY-.js +1 -0
  1662. package/dist/runtime/server/ui-dist/assets/stex-C3f8Ysf7.js +1 -0
  1663. package/dist/runtime/server/ui-dist/assets/stylus-B533Al4x.js +1 -0
  1664. package/dist/runtime/server/ui-dist/assets/swift-BzpIVaGY.js +1 -0
  1665. package/dist/runtime/server/ui-dist/assets/tcl-DVfN8rqt.js +1 -0
  1666. package/dist/runtime/server/ui-dist/assets/textile-CnDTJFAw.js +1 -0
  1667. package/dist/runtime/server/ui-dist/assets/tiddlywiki-DO-Gjzrf.js +1 -0
  1668. package/dist/runtime/server/ui-dist/assets/tiki-DGYXhP31.js +1 -0
  1669. package/dist/runtime/server/ui-dist/assets/timeline-definition-IT6M3QCI-CjBjKaYS.js +61 -0
  1670. package/dist/runtime/server/ui-dist/assets/toml-Bm5Em-hy.js +1 -0
  1671. package/dist/runtime/server/ui-dist/assets/treemap-GDKQZRPO-JNjc1ydw.js +162 -0
  1672. package/dist/runtime/server/ui-dist/assets/troff-wAsdV37c.js +1 -0
  1673. package/dist/runtime/server/ui-dist/assets/ttcn-CfJYG6tj.js +1 -0
  1674. package/dist/runtime/server/ui-dist/assets/ttcn-cfg-B9xdYoR4.js +1 -0
  1675. package/dist/runtime/server/ui-dist/assets/turtle-B1tBg_DP.js +1 -0
  1676. package/dist/runtime/server/ui-dist/assets/vb-CmGdzxic.js +1 -0
  1677. package/dist/runtime/server/ui-dist/assets/vbscript-BuJXcnF6.js +1 -0
  1678. package/dist/runtime/server/ui-dist/assets/velocity-D8B20fx6.js +1 -0
  1679. package/dist/runtime/server/ui-dist/assets/verilog-C6RDOZhf.js +1 -0
  1680. package/dist/runtime/server/ui-dist/assets/vhdl-lSbBsy5d.js +1 -0
  1681. package/dist/runtime/server/ui-dist/assets/webidl-ZXfAyPTL.js +1 -0
  1682. package/dist/runtime/server/ui-dist/assets/xquery-DzFWVndE.js +1 -0
  1683. package/dist/runtime/server/ui-dist/assets/xychartDiagram-PRI3JC2R-DU-mF_06.js +7 -0
  1684. package/dist/runtime/server/ui-dist/assets/yacas-BJ4BC0dw.js +1 -0
  1685. package/dist/runtime/server/ui-dist/assets/z80-Hz9HOZM7.js +1 -0
  1686. package/dist/runtime/server/ui-dist/brands/opencode-logo-dark-square.svg +18 -0
  1687. package/dist/runtime/server/ui-dist/brands/opencode-logo-light-square.svg +18 -0
  1688. package/dist/runtime/server/ui-dist/favicon-16x16.png +0 -0
  1689. package/dist/runtime/server/ui-dist/favicon-32x32.png +0 -0
  1690. package/dist/runtime/server/ui-dist/favicon.ico +0 -0
  1691. package/dist/runtime/server/ui-dist/favicon.svg +9 -0
  1692. package/dist/runtime/server/ui-dist/index.html +48 -0
  1693. package/dist/runtime/server/ui-dist/site.webmanifest +30 -0
  1694. package/dist/runtime/server/ui-dist/sw.js +42 -0
  1695. package/dist/runtime/server/ui-dist/worktree-favicon-16x16.png +0 -0
  1696. package/dist/runtime/server/ui-dist/worktree-favicon-32x32.png +0 -0
  1697. package/dist/runtime/server/ui-dist/worktree-favicon.ico +0 -0
  1698. package/dist/runtime/server/ui-dist/worktree-favicon.svg +9 -0
  1699. package/package.json +7 -4
@@ -0,0 +1,1784 @@
1
+ /**
2
+ * @fileoverview Plugin management REST API routes
3
+ *
4
+ * This module provides Express routes for managing the complete plugin lifecycle:
5
+ * - Listing and filtering plugins by status
6
+ * - Installing plugins from npm or local paths
7
+ * - Uninstalling plugins (soft delete or hard purge)
8
+ * - Enabling/disabling plugins
9
+ * - Running health diagnostics
10
+ * - Upgrading plugins
11
+ * - Retrieving UI slot contributions for frontend rendering
12
+ * - Discovering and executing plugin-contributed agent tools
13
+ *
14
+ * All routes require board-level authentication (assertBoard middleware).
15
+ *
16
+ * @module server/routes/plugins
17
+ * @see doc/plugins/PLUGIN_SPEC.md for the full plugin specification
18
+ */
19
+ import { existsSync } from "node:fs";
20
+ import path from "node:path";
21
+ import { randomUUID } from "node:crypto";
22
+ import { fileURLToPath } from "node:url";
23
+ import { Router } from "express";
24
+ import { and, desc, eq, gte } from "drizzle-orm";
25
+ import { companies, pluginLogs, pluginWebhookDeliveries } from "@paperclipai/db";
26
+ import { PLUGIN_STATUSES, } from "@paperclipai/shared";
27
+ import { pluginRegistryService } from "../services/plugin-registry.js";
28
+ import { pluginLifecycleManager } from "../services/plugin-lifecycle.js";
29
+ import { getPluginUiContributionMetadata } from "../services/plugin-loader.js";
30
+ import { logActivity } from "../services/activity-log.js";
31
+ import { publishGlobalLiveEvent } from "../services/live-events.js";
32
+ import { JsonRpcCallError, PLUGIN_RPC_ERROR_CODES } from "@paperclipai/plugin-sdk";
33
+ import { assertBoard, assertCompanyAccess, getActorInfo } from "./authz.js";
34
+ import { validateInstanceConfig } from "../services/plugin-config-validator.js";
35
+ /** UUID v4 regex used for plugin ID route resolution. */
36
+ const UUID_REGEX = /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/i;
37
+ const __dirname = path.dirname(fileURLToPath(import.meta.url));
38
+ const REPO_ROOT = path.resolve(__dirname, "../../..");
39
+ const BUNDLED_PLUGIN_EXAMPLES = [
40
+ {
41
+ packageName: "@paperclipai/plugin-hello-world-example",
42
+ pluginKey: "paperclip.hello-world-example",
43
+ displayName: "Hello World Widget (Example)",
44
+ description: "Reference UI plugin that adds a simple Hello World widget to the Paperclip dashboard.",
45
+ localPath: "packages/plugins/examples/plugin-hello-world-example",
46
+ tag: "example",
47
+ },
48
+ {
49
+ packageName: "@paperclipai/plugin-file-browser-example",
50
+ pluginKey: "paperclip-file-browser-example",
51
+ displayName: "File Browser (Example)",
52
+ description: "Example plugin that adds a Files link in project navigation plus a project detail file browser.",
53
+ localPath: "packages/plugins/examples/plugin-file-browser-example",
54
+ tag: "example",
55
+ },
56
+ {
57
+ packageName: "@paperclipai/plugin-kitchen-sink-example",
58
+ pluginKey: "paperclip-kitchen-sink-example",
59
+ displayName: "Kitchen Sink (Example)",
60
+ description: "Reference plugin that demonstrates the current Paperclip plugin API surface, bridge flows, UI extension surfaces, jobs, webhooks, tools, streams, and trusted local workspace/process demos.",
61
+ localPath: "packages/plugins/examples/plugin-kitchen-sink-example",
62
+ tag: "example",
63
+ },
64
+ ];
65
+ function listBundledPluginExamples() {
66
+ return BUNDLED_PLUGIN_EXAMPLES.flatMap((plugin) => {
67
+ const absoluteLocalPath = path.resolve(REPO_ROOT, plugin.localPath);
68
+ if (!existsSync(absoluteLocalPath))
69
+ return [];
70
+ return [{ ...plugin, localPath: absoluteLocalPath }];
71
+ });
72
+ }
73
+ /**
74
+ * Resolve a plugin by either database ID or plugin key.
75
+ *
76
+ * Lookup order:
77
+ * - UUID-like IDs: getById first, then getByKey.
78
+ * - Scoped package keys (e.g. "@scope/name"): getByKey only, never getById.
79
+ * - Other non-UUID IDs: try getById first (test/memory registries may allow this),
80
+ * then fallback to getByKey. Any UUID parse error from getById is ignored.
81
+ *
82
+ * @param registry - The plugin registry service instance
83
+ * @param pluginId - Either a database UUID or plugin key (manifest id)
84
+ * @returns Plugin record or null if not found
85
+ */
86
+ async function resolvePlugin(registry, pluginId) {
87
+ const isUuid = UUID_REGEX.test(pluginId);
88
+ const isScopedPackageKey = pluginId.startsWith("@") || pluginId.includes("/");
89
+ // Scoped package IDs are valid plugin keys but invalid UUIDs.
90
+ // Skip getById() entirely to avoid Postgres uuid parse errors.
91
+ if (isScopedPackageKey && !isUuid) {
92
+ return registry.getByKey(pluginId);
93
+ }
94
+ try {
95
+ const byId = await registry.getById(pluginId);
96
+ if (byId)
97
+ return byId;
98
+ }
99
+ catch (error) {
100
+ const maybeCode = typeof error === "object" && error !== null && "code" in error
101
+ ? error.code
102
+ : undefined;
103
+ // Ignore invalid UUID cast errors and continue with key lookup.
104
+ if (maybeCode !== "22P02") {
105
+ throw error;
106
+ }
107
+ }
108
+ return registry.getByKey(pluginId);
109
+ }
110
+ /**
111
+ * Create Express router for plugin management API.
112
+ *
113
+ * Routes provided:
114
+ *
115
+ * | Method | Path | Description |
116
+ * |--------|------|-------------|
117
+ * | GET | /plugins | List all plugins (optional ?status= filter) |
118
+ * | GET | /plugins/ui-contributions | Get UI slots from ready plugins |
119
+ * | GET | /plugins/:pluginId | Get single plugin by ID or key |
120
+ * | POST | /plugins/install | Install from npm or local path |
121
+ * | DELETE | /plugins/:pluginId | Uninstall (optional ?purge=true) |
122
+ * | POST | /plugins/:pluginId/enable | Enable a plugin |
123
+ * | POST | /plugins/:pluginId/disable | Disable a plugin |
124
+ * | GET | /plugins/:pluginId/health | Run health diagnostics |
125
+ * | POST | /plugins/:pluginId/upgrade | Upgrade to newer version |
126
+ * | GET | /plugins/:pluginId/jobs | List jobs for a plugin |
127
+ * | GET | /plugins/:pluginId/jobs/:jobId/runs | List runs for a job |
128
+ * | POST | /plugins/:pluginId/jobs/:jobId/trigger | Manually trigger a job |
129
+ * | POST | /plugins/:pluginId/webhooks/:endpointKey | Receive inbound webhook |
130
+ * | GET | /plugins/tools | List all available plugin tools |
131
+ * | GET | /plugins/tools?pluginId=... | List tools for a specific plugin |
132
+ * | POST | /plugins/tools/execute | Execute a plugin tool |
133
+ * | GET | /plugins/:pluginId/config | Get current plugin config |
134
+ * | POST | /plugins/:pluginId/config | Save (upsert) plugin config |
135
+ * | POST | /plugins/:pluginId/config/test | Test config via validateConfig RPC |
136
+ * | POST | /plugins/:pluginId/bridge/data | Proxy getData to plugin worker |
137
+ * | POST | /plugins/:pluginId/bridge/action | Proxy performAction to plugin worker |
138
+ * | POST | /plugins/:pluginId/data/:key | Proxy getData to plugin worker (key in URL) |
139
+ * | POST | /plugins/:pluginId/actions/:key | Proxy performAction to plugin worker (key in URL) |
140
+ * | GET | /plugins/:pluginId/bridge/stream/:channel | SSE stream from worker to UI |
141
+ * | GET | /plugins/:pluginId/dashboard | Aggregated health dashboard data |
142
+ *
143
+ * **Route Ordering Note:** Static routes (like /ui-contributions, /tools) must be
144
+ * registered before parameterized routes (like /:pluginId) to prevent Express from
145
+ * matching them as a plugin ID.
146
+ *
147
+ * @param db - Database connection instance
148
+ * @param jobDeps - Optional job scheduling dependencies
149
+ * @param webhookDeps - Optional webhook ingestion dependencies
150
+ * @param toolDeps - Optional tool dispatcher dependencies
151
+ * @param bridgeDeps - Optional bridge proxy dependencies for getData/performAction
152
+ * @returns Express router with plugin routes mounted
153
+ */
154
+ export function pluginRoutes(db, loader, jobDeps, webhookDeps, toolDeps, bridgeDeps) {
155
+ const router = Router();
156
+ const registry = pluginRegistryService(db);
157
+ const lifecycle = pluginLifecycleManager(db, {
158
+ loader,
159
+ workerManager: bridgeDeps?.workerManager ?? webhookDeps?.workerManager,
160
+ });
161
+ async function resolvePluginAuditCompanyIds(req) {
162
+ if (typeof db.select === "function") {
163
+ const rows = await db
164
+ .select({ id: companies.id })
165
+ .from(companies);
166
+ return rows.map((row) => row.id);
167
+ }
168
+ if (req.actor.type === "agent" && req.actor.companyId) {
169
+ return [req.actor.companyId];
170
+ }
171
+ if (req.actor.type === "board") {
172
+ return req.actor.companyIds ?? [];
173
+ }
174
+ return [];
175
+ }
176
+ async function logPluginMutationActivity(req, action, entityId, details) {
177
+ const companyIds = await resolvePluginAuditCompanyIds(req);
178
+ if (companyIds.length === 0)
179
+ return;
180
+ const actor = getActorInfo(req);
181
+ await Promise.all(companyIds.map((companyId) => logActivity(db, {
182
+ companyId,
183
+ actorType: actor.actorType,
184
+ actorId: actor.actorId,
185
+ agentId: actor.agentId,
186
+ runId: actor.runId,
187
+ action,
188
+ entityType: "plugin",
189
+ entityId,
190
+ details,
191
+ })));
192
+ }
193
+ /**
194
+ * GET /api/plugins
195
+ *
196
+ * List all installed plugins, optionally filtered by lifecycle status.
197
+ *
198
+ * Query params:
199
+ * - `status` (optional): Filter by lifecycle status. Must be one of the
200
+ * values in `PLUGIN_STATUSES` (`installed`, `ready`, `error`,
201
+ * `upgrade_pending`, `uninstalled`). Returns HTTP 400 if the value is
202
+ * not a recognised status string.
203
+ *
204
+ * Response: `PluginRecord[]`
205
+ */
206
+ router.get("/plugins", async (req, res) => {
207
+ assertBoard(req);
208
+ const rawStatus = req.query.status;
209
+ if (rawStatus !== undefined) {
210
+ if (typeof rawStatus !== "string" || !PLUGIN_STATUSES.includes(rawStatus)) {
211
+ res.status(400).json({
212
+ error: `Invalid status '${String(rawStatus)}'. Must be one of: ${PLUGIN_STATUSES.join(", ")}`,
213
+ });
214
+ return;
215
+ }
216
+ }
217
+ const status = rawStatus;
218
+ const plugins = status
219
+ ? await registry.listByStatus(status)
220
+ : await registry.listInstalled();
221
+ res.json(plugins);
222
+ });
223
+ /**
224
+ * GET /api/plugins/examples
225
+ *
226
+ * Return first-party example plugins bundled in this repo, if present.
227
+ * These can be installed through the normal local-path install flow.
228
+ */
229
+ router.get("/plugins/examples", async (req, res) => {
230
+ assertBoard(req);
231
+ res.json(listBundledPluginExamples());
232
+ });
233
+ // IMPORTANT: Static routes must come before parameterized routes
234
+ // to avoid Express matching "ui-contributions" as a :pluginId
235
+ /**
236
+ * GET /api/plugins/ui-contributions
237
+ *
238
+ * Return UI contributions from all plugins in 'ready' state.
239
+ * Used by the frontend to discover plugin UI slots and launcher metadata.
240
+ *
241
+ * The response is normalized for the frontend slot host:
242
+ * - Only includes plugins with at least one declared UI slot or launcher
243
+ * - Excludes plugins with null/missing manifestJson (defensive)
244
+ * - Slots are extracted from manifest.ui.slots
245
+ * - Launchers are aggregated from legacy manifest.launchers and manifest.ui.launchers
246
+ *
247
+ * Example response:
248
+ * ```json
249
+ * [
250
+ * {
251
+ * "pluginId": "plg_123",
252
+ * "pluginKey": "paperclip.claude-usage",
253
+ * "displayName": "Claude Usage",
254
+ * "version": "1.0.0",
255
+ * "uiEntryFile": "index.js",
256
+ * "slots": [],
257
+ * "launchers": [
258
+ * {
259
+ * "id": "claude-usage-toolbar",
260
+ * "displayName": "Claude Usage",
261
+ * "placementZone": "toolbarButton",
262
+ * "action": { "type": "openModal", "target": "ClaudeUsageView" },
263
+ * "render": { "environment": "hostOverlay", "bounds": "wide" }
264
+ * }
265
+ * ]
266
+ * }
267
+ * ]
268
+ * ```
269
+ *
270
+ * Response: PluginUiContribution[]
271
+ */
272
+ router.get("/plugins/ui-contributions", async (req, res) => {
273
+ assertBoard(req);
274
+ const plugins = await registry.listByStatus("ready");
275
+ const contributions = plugins
276
+ .map((plugin) => {
277
+ // Safety check: manifestJson should always exist for ready plugins, but guard against null
278
+ const manifest = plugin.manifestJson;
279
+ if (!manifest)
280
+ return null;
281
+ const uiMetadata = getPluginUiContributionMetadata(manifest);
282
+ if (!uiMetadata)
283
+ return null;
284
+ return {
285
+ pluginId: plugin.id,
286
+ pluginKey: plugin.pluginKey,
287
+ displayName: manifest.displayName,
288
+ version: plugin.version,
289
+ updatedAt: plugin.updatedAt.toISOString(),
290
+ uiEntryFile: uiMetadata.uiEntryFile,
291
+ slots: uiMetadata.slots,
292
+ launchers: uiMetadata.launchers,
293
+ };
294
+ })
295
+ .filter((item) => item !== null);
296
+ res.json(contributions);
297
+ });
298
+ // ===========================================================================
299
+ // Tool discovery and execution routes
300
+ // ===========================================================================
301
+ /**
302
+ * GET /api/plugins/tools
303
+ *
304
+ * List all available plugin-contributed tools in an agent-friendly format.
305
+ *
306
+ * Query params:
307
+ * - `pluginId` (optional): Filter to tools from a specific plugin
308
+ *
309
+ * Response: `AgentToolDescriptor[]`
310
+ * Errors: 501 if tool dispatcher is not configured
311
+ */
312
+ router.get("/plugins/tools", async (req, res) => {
313
+ assertBoard(req);
314
+ if (!toolDeps) {
315
+ res.status(501).json({ error: "Plugin tool dispatch is not enabled" });
316
+ return;
317
+ }
318
+ const pluginId = req.query.pluginId;
319
+ const filter = pluginId ? { pluginId } : undefined;
320
+ const tools = toolDeps.toolDispatcher.listToolsForAgent(filter);
321
+ res.json(tools);
322
+ });
323
+ /**
324
+ * POST /api/plugins/tools/execute
325
+ *
326
+ * Execute a plugin-contributed tool by its namespaced name.
327
+ *
328
+ * This is the primary endpoint used by the agent service to invoke
329
+ * plugin tools during an agent run.
330
+ *
331
+ * Request body:
332
+ * - `tool`: Fully namespaced tool name (e.g., "acme.linear:search-issues")
333
+ * - `parameters`: Parameters matching the tool's declared JSON Schema
334
+ * - `runContext`: Agent run context with agentId, runId, companyId, projectId
335
+ *
336
+ * Response: `ToolExecutionResult`
337
+ * Errors:
338
+ * - 400 if request validation fails
339
+ * - 404 if tool is not found
340
+ * - 501 if tool dispatcher is not configured
341
+ * - 502 if the plugin worker is unavailable or the RPC call fails
342
+ */
343
+ router.post("/plugins/tools/execute", async (req, res) => {
344
+ assertBoard(req);
345
+ if (!toolDeps) {
346
+ res.status(501).json({ error: "Plugin tool dispatch is not enabled" });
347
+ return;
348
+ }
349
+ const body = req.body;
350
+ if (!body) {
351
+ res.status(400).json({ error: "Request body is required" });
352
+ return;
353
+ }
354
+ const { tool, parameters, runContext } = body;
355
+ // Validate required fields
356
+ if (!tool || typeof tool !== "string") {
357
+ res.status(400).json({ error: '"tool" is required and must be a string' });
358
+ return;
359
+ }
360
+ if (!runContext || typeof runContext !== "object") {
361
+ res.status(400).json({ error: '"runContext" is required and must be an object' });
362
+ return;
363
+ }
364
+ if (!runContext.agentId || !runContext.runId || !runContext.companyId || !runContext.projectId) {
365
+ res.status(400).json({
366
+ error: '"runContext" must include agentId, runId, companyId, and projectId',
367
+ });
368
+ return;
369
+ }
370
+ assertCompanyAccess(req, runContext.companyId);
371
+ // Verify the tool exists
372
+ const registeredTool = toolDeps.toolDispatcher.getTool(tool);
373
+ if (!registeredTool) {
374
+ res.status(404).json({ error: `Tool "${tool}" not found` });
375
+ return;
376
+ }
377
+ try {
378
+ const result = await toolDeps.toolDispatcher.executeTool(tool, parameters ?? {}, runContext);
379
+ res.json(result);
380
+ }
381
+ catch (err) {
382
+ const message = err instanceof Error ? err.message : String(err);
383
+ // Distinguish between "worker not running" (502) and other errors (500)
384
+ if (message.includes("not running") || message.includes("worker")) {
385
+ res.status(502).json({ error: message });
386
+ }
387
+ else {
388
+ res.status(500).json({ error: message });
389
+ }
390
+ }
391
+ });
392
+ /**
393
+ * POST /api/plugins/install
394
+ *
395
+ * Install a plugin from npm or a local filesystem path.
396
+ *
397
+ * Request body:
398
+ * - packageName: npm package name or local path (required)
399
+ * - version: Target version for npm packages (optional)
400
+ * - isLocalPath: Set true if packageName is a local path
401
+ *
402
+ * The installer:
403
+ * 1. Downloads from npm or loads from local path
404
+ * 2. Validates the manifest (schema + capability consistency)
405
+ * 3. Registers in the database
406
+ * 4. Transitions to `ready` state if no new capability approval is needed
407
+ *
408
+ * Response: `PluginRecord`
409
+ *
410
+ * Errors:
411
+ * - `400` — validation failure or install error (package not found, bad manifest, etc.)
412
+ * - `500` — installation succeeded but manifest is missing (indicates a loader bug)
413
+ */
414
+ router.post("/plugins/install", async (req, res) => {
415
+ assertBoard(req);
416
+ const { packageName, version, isLocalPath } = req.body;
417
+ // Input validation
418
+ if (!packageName || typeof packageName !== "string") {
419
+ res.status(400).json({ error: "packageName is required and must be a string" });
420
+ return;
421
+ }
422
+ if (version !== undefined && typeof version !== "string") {
423
+ res.status(400).json({ error: "version must be a string if provided" });
424
+ return;
425
+ }
426
+ if (isLocalPath !== undefined && typeof isLocalPath !== "boolean") {
427
+ res.status(400).json({ error: "isLocalPath must be a boolean if provided" });
428
+ return;
429
+ }
430
+ // Validate package name format
431
+ const trimmedPackage = packageName.trim();
432
+ if (trimmedPackage.length === 0) {
433
+ res.status(400).json({ error: "packageName cannot be empty" });
434
+ return;
435
+ }
436
+ // Basic security check for package name (prevent injection)
437
+ if (!isLocalPath && /[<>:"|?*]/.test(trimmedPackage)) {
438
+ res.status(400).json({ error: "packageName contains invalid characters" });
439
+ return;
440
+ }
441
+ try {
442
+ const installOptions = isLocalPath
443
+ ? { localPath: trimmedPackage }
444
+ : { packageName: trimmedPackage, version: version?.trim() };
445
+ const discovered = await loader.installPlugin(installOptions);
446
+ if (!discovered.manifest) {
447
+ res.status(500).json({ error: "Plugin installed but manifest is missing" });
448
+ return;
449
+ }
450
+ // Transition to ready state
451
+ const existingPlugin = await registry.getByKey(discovered.manifest.id);
452
+ if (existingPlugin) {
453
+ await lifecycle.load(existingPlugin.id);
454
+ const updated = await registry.getById(existingPlugin.id);
455
+ await logPluginMutationActivity(req, "plugin.installed", existingPlugin.id, {
456
+ pluginId: existingPlugin.id,
457
+ pluginKey: existingPlugin.pluginKey,
458
+ packageName: updated?.packageName ?? existingPlugin.packageName,
459
+ version: updated?.version ?? existingPlugin.version,
460
+ source: isLocalPath ? "local_path" : "npm",
461
+ });
462
+ publishGlobalLiveEvent({ type: "plugin.ui.updated", payload: { pluginId: existingPlugin.id, action: "installed" } });
463
+ res.json(updated);
464
+ }
465
+ else {
466
+ // This shouldn't happen since installPlugin already registers in the DB
467
+ res.status(500).json({ error: "Plugin installed but not found in registry" });
468
+ }
469
+ }
470
+ catch (err) {
471
+ const message = err instanceof Error ? err.message : String(err);
472
+ res.status(400).json({ error: message });
473
+ }
474
+ });
475
+ /**
476
+ * Map a worker RPC error to a bridge-level error code.
477
+ *
478
+ * JsonRpcCallError carries numeric codes from the plugin RPC error code space.
479
+ * This helper maps them to the string error codes defined in PluginBridgeErrorCode.
480
+ *
481
+ * @see PLUGIN_SPEC.md §19.7 — Error Propagation Through The Bridge
482
+ */
483
+ function mapRpcErrorToBridgeError(err) {
484
+ if (err instanceof JsonRpcCallError) {
485
+ switch (err.code) {
486
+ case PLUGIN_RPC_ERROR_CODES.WORKER_UNAVAILABLE:
487
+ return {
488
+ code: "WORKER_UNAVAILABLE",
489
+ message: err.message,
490
+ details: err.data,
491
+ };
492
+ case PLUGIN_RPC_ERROR_CODES.CAPABILITY_DENIED:
493
+ return {
494
+ code: "CAPABILITY_DENIED",
495
+ message: err.message,
496
+ details: err.data,
497
+ };
498
+ case PLUGIN_RPC_ERROR_CODES.TIMEOUT:
499
+ return {
500
+ code: "TIMEOUT",
501
+ message: err.message,
502
+ details: err.data,
503
+ };
504
+ case PLUGIN_RPC_ERROR_CODES.WORKER_ERROR:
505
+ return {
506
+ code: "WORKER_ERROR",
507
+ message: err.message,
508
+ details: err.data,
509
+ };
510
+ default:
511
+ return {
512
+ code: "UNKNOWN",
513
+ message: err.message,
514
+ details: err.data,
515
+ };
516
+ }
517
+ }
518
+ const message = err instanceof Error ? err.message : String(err);
519
+ // Worker not running — surface as WORKER_UNAVAILABLE
520
+ if (message.includes("not running") || message.includes("not registered")) {
521
+ return {
522
+ code: "WORKER_UNAVAILABLE",
523
+ message,
524
+ };
525
+ }
526
+ return {
527
+ code: "UNKNOWN",
528
+ message,
529
+ };
530
+ }
531
+ /**
532
+ * POST /api/plugins/:pluginId/bridge/data
533
+ *
534
+ * Proxy a `getData` call from the plugin UI to the plugin worker.
535
+ *
536
+ * This is the server-side half of the `usePluginData(key, params)` bridge hook.
537
+ * The frontend sends a POST with the data key and optional params; the host
538
+ * forwards the call to the worker via the `getData` RPC method and returns
539
+ * the result.
540
+ *
541
+ * Request body:
542
+ * - `key`: Plugin-defined data key (e.g. `"sync-health"`)
543
+ * - `params`: Optional query parameters forwarded to the worker handler
544
+ *
545
+ * Response: The raw result from the worker's `getData` handler
546
+ *
547
+ * Error response body follows the `PluginBridgeError` shape:
548
+ * `{ code: PluginBridgeErrorCode, message: string, details?: unknown }`
549
+ *
550
+ * Errors:
551
+ * - 400 if request validation fails
552
+ * - 404 if plugin not found
553
+ * - 501 if bridge deps are not configured
554
+ * - 502 if the worker is unavailable or returns an error
555
+ *
556
+ * @see PLUGIN_SPEC.md §13.8 — `getData`
557
+ * @see PLUGIN_SPEC.md §19.7 — Error Propagation Through The Bridge
558
+ */
559
+ router.post("/plugins/:pluginId/bridge/data", async (req, res) => {
560
+ assertBoard(req);
561
+ if (!bridgeDeps) {
562
+ res.status(501).json({ error: "Plugin bridge is not enabled" });
563
+ return;
564
+ }
565
+ const { pluginId } = req.params;
566
+ // Resolve plugin
567
+ const plugin = await resolvePlugin(registry, pluginId);
568
+ if (!plugin) {
569
+ res.status(404).json({ error: "Plugin not found" });
570
+ return;
571
+ }
572
+ // Validate plugin is in ready state
573
+ if (plugin.status !== "ready") {
574
+ const bridgeError = {
575
+ code: "WORKER_UNAVAILABLE",
576
+ message: `Plugin is not ready (current status: ${plugin.status})`,
577
+ };
578
+ res.status(502).json(bridgeError);
579
+ return;
580
+ }
581
+ // Validate request body
582
+ const body = req.body;
583
+ if (!body || !body.key || typeof body.key !== "string") {
584
+ res.status(400).json({ error: '"key" is required and must be a string' });
585
+ return;
586
+ }
587
+ if (body.companyId) {
588
+ assertCompanyAccess(req, body.companyId);
589
+ }
590
+ try {
591
+ const result = await bridgeDeps.workerManager.call(plugin.id, "getData", {
592
+ key: body.key,
593
+ params: body.params ?? {},
594
+ renderEnvironment: body.renderEnvironment ?? null,
595
+ });
596
+ res.json({ data: result });
597
+ }
598
+ catch (err) {
599
+ const bridgeError = mapRpcErrorToBridgeError(err);
600
+ res.status(502).json(bridgeError);
601
+ }
602
+ });
603
+ /**
604
+ * POST /api/plugins/:pluginId/bridge/action
605
+ *
606
+ * Proxy a `performAction` call from the plugin UI to the plugin worker.
607
+ *
608
+ * This is the server-side half of the `usePluginAction(key)` bridge hook.
609
+ * The frontend sends a POST with the action key and optional params; the host
610
+ * forwards the call to the worker via the `performAction` RPC method and
611
+ * returns the result.
612
+ *
613
+ * Request body:
614
+ * - `key`: Plugin-defined action key (e.g. `"resync"`)
615
+ * - `params`: Optional parameters forwarded to the worker handler
616
+ *
617
+ * Response: The raw result from the worker's `performAction` handler
618
+ *
619
+ * Error response body follows the `PluginBridgeError` shape:
620
+ * `{ code: PluginBridgeErrorCode, message: string, details?: unknown }`
621
+ *
622
+ * Errors:
623
+ * - 400 if request validation fails
624
+ * - 404 if plugin not found
625
+ * - 501 if bridge deps are not configured
626
+ * - 502 if the worker is unavailable or returns an error
627
+ *
628
+ * @see PLUGIN_SPEC.md §13.9 — `performAction`
629
+ * @see PLUGIN_SPEC.md §19.7 — Error Propagation Through The Bridge
630
+ */
631
+ router.post("/plugins/:pluginId/bridge/action", async (req, res) => {
632
+ assertBoard(req);
633
+ if (!bridgeDeps) {
634
+ res.status(501).json({ error: "Plugin bridge is not enabled" });
635
+ return;
636
+ }
637
+ const { pluginId } = req.params;
638
+ // Resolve plugin
639
+ const plugin = await resolvePlugin(registry, pluginId);
640
+ if (!plugin) {
641
+ res.status(404).json({ error: "Plugin not found" });
642
+ return;
643
+ }
644
+ // Validate plugin is in ready state
645
+ if (plugin.status !== "ready") {
646
+ const bridgeError = {
647
+ code: "WORKER_UNAVAILABLE",
648
+ message: `Plugin is not ready (current status: ${plugin.status})`,
649
+ };
650
+ res.status(502).json(bridgeError);
651
+ return;
652
+ }
653
+ // Validate request body
654
+ const body = req.body;
655
+ if (!body || !body.key || typeof body.key !== "string") {
656
+ res.status(400).json({ error: '"key" is required and must be a string' });
657
+ return;
658
+ }
659
+ if (body.companyId) {
660
+ assertCompanyAccess(req, body.companyId);
661
+ }
662
+ try {
663
+ const result = await bridgeDeps.workerManager.call(plugin.id, "performAction", {
664
+ key: body.key,
665
+ params: body.params ?? {},
666
+ renderEnvironment: body.renderEnvironment ?? null,
667
+ });
668
+ res.json({ data: result });
669
+ }
670
+ catch (err) {
671
+ const bridgeError = mapRpcErrorToBridgeError(err);
672
+ res.status(502).json(bridgeError);
673
+ }
674
+ });
675
+ // ===========================================================================
676
+ // URL-keyed bridge routes (key as path parameter)
677
+ // ===========================================================================
678
+ /**
679
+ * POST /api/plugins/:pluginId/data/:key
680
+ *
681
+ * Proxy a `getData` call from the plugin UI to the plugin worker, with the
682
+ * data key specified as a URL path parameter instead of in the request body.
683
+ *
684
+ * This is a REST-friendly alternative to `POST /plugins/:pluginId/bridge/data`.
685
+ * The frontend bridge hooks use this endpoint for cleaner URLs.
686
+ *
687
+ * Request body (optional):
688
+ * - `params`: Optional query parameters forwarded to the worker handler
689
+ *
690
+ * Response: The raw result from the worker's `getData` handler wrapped as `{ data: T }`
691
+ *
692
+ * Error response body follows the `PluginBridgeError` shape:
693
+ * `{ code: PluginBridgeErrorCode, message: string, details?: unknown }`
694
+ *
695
+ * Errors:
696
+ * - 404 if plugin not found
697
+ * - 501 if bridge deps are not configured
698
+ * - 502 if the worker is unavailable or returns an error
699
+ *
700
+ * @see PLUGIN_SPEC.md §13.8 — `getData`
701
+ * @see PLUGIN_SPEC.md §19.7 — Error Propagation Through The Bridge
702
+ */
703
+ router.post("/plugins/:pluginId/data/:key", async (req, res) => {
704
+ assertBoard(req);
705
+ if (!bridgeDeps) {
706
+ res.status(501).json({ error: "Plugin bridge is not enabled" });
707
+ return;
708
+ }
709
+ const { pluginId, key } = req.params;
710
+ // Resolve plugin
711
+ const plugin = await resolvePlugin(registry, pluginId);
712
+ if (!plugin) {
713
+ res.status(404).json({ error: "Plugin not found" });
714
+ return;
715
+ }
716
+ // Validate plugin is in ready state
717
+ if (plugin.status !== "ready") {
718
+ const bridgeError = {
719
+ code: "WORKER_UNAVAILABLE",
720
+ message: `Plugin is not ready (current status: ${plugin.status})`,
721
+ };
722
+ res.status(502).json(bridgeError);
723
+ return;
724
+ }
725
+ const body = req.body;
726
+ if (body?.companyId) {
727
+ assertCompanyAccess(req, body.companyId);
728
+ }
729
+ try {
730
+ const result = await bridgeDeps.workerManager.call(plugin.id, "getData", {
731
+ key,
732
+ params: body?.params ?? {},
733
+ renderEnvironment: body?.renderEnvironment ?? null,
734
+ });
735
+ res.json({ data: result });
736
+ }
737
+ catch (err) {
738
+ const bridgeError = mapRpcErrorToBridgeError(err);
739
+ res.status(502).json(bridgeError);
740
+ }
741
+ });
742
+ /**
743
+ * POST /api/plugins/:pluginId/actions/:key
744
+ *
745
+ * Proxy a `performAction` call from the plugin UI to the plugin worker, with
746
+ * the action key specified as a URL path parameter instead of in the request body.
747
+ *
748
+ * This is a REST-friendly alternative to `POST /plugins/:pluginId/bridge/action`.
749
+ * The frontend bridge hooks use this endpoint for cleaner URLs.
750
+ *
751
+ * Request body (optional):
752
+ * - `params`: Optional parameters forwarded to the worker handler
753
+ *
754
+ * Response: The raw result from the worker's `performAction` handler wrapped as `{ data: T }`
755
+ *
756
+ * Error response body follows the `PluginBridgeError` shape:
757
+ * `{ code: PluginBridgeErrorCode, message: string, details?: unknown }`
758
+ *
759
+ * Errors:
760
+ * - 404 if plugin not found
761
+ * - 501 if bridge deps are not configured
762
+ * - 502 if the worker is unavailable or returns an error
763
+ *
764
+ * @see PLUGIN_SPEC.md §13.9 — `performAction`
765
+ * @see PLUGIN_SPEC.md §19.7 — Error Propagation Through The Bridge
766
+ */
767
+ router.post("/plugins/:pluginId/actions/:key", async (req, res) => {
768
+ assertBoard(req);
769
+ if (!bridgeDeps) {
770
+ res.status(501).json({ error: "Plugin bridge is not enabled" });
771
+ return;
772
+ }
773
+ const { pluginId, key } = req.params;
774
+ // Resolve plugin
775
+ const plugin = await resolvePlugin(registry, pluginId);
776
+ if (!plugin) {
777
+ res.status(404).json({ error: "Plugin not found" });
778
+ return;
779
+ }
780
+ // Validate plugin is in ready state
781
+ if (plugin.status !== "ready") {
782
+ const bridgeError = {
783
+ code: "WORKER_UNAVAILABLE",
784
+ message: `Plugin is not ready (current status: ${plugin.status})`,
785
+ };
786
+ res.status(502).json(bridgeError);
787
+ return;
788
+ }
789
+ const body = req.body;
790
+ if (body?.companyId) {
791
+ assertCompanyAccess(req, body.companyId);
792
+ }
793
+ try {
794
+ const result = await bridgeDeps.workerManager.call(plugin.id, "performAction", {
795
+ key,
796
+ params: body?.params ?? {},
797
+ renderEnvironment: body?.renderEnvironment ?? null,
798
+ });
799
+ res.json({ data: result });
800
+ }
801
+ catch (err) {
802
+ const bridgeError = mapRpcErrorToBridgeError(err);
803
+ res.status(502).json(bridgeError);
804
+ }
805
+ });
806
+ // ===========================================================================
807
+ // SSE stream bridge route
808
+ // ===========================================================================
809
+ /**
810
+ * GET /api/plugins/:pluginId/bridge/stream/:channel
811
+ *
812
+ * Server-Sent Events endpoint for real-time streaming from plugin worker to UI.
813
+ *
814
+ * The worker pushes events via `ctx.streams.emit(channel, event)` which arrive
815
+ * as JSON-RPC notifications to the host, get published on the PluginStreamBus,
816
+ * and are fanned out to all connected SSE clients matching (pluginId, channel,
817
+ * companyId).
818
+ *
819
+ * Query parameters:
820
+ * - `companyId` (required): Scope events to a specific company
821
+ *
822
+ * SSE event types:
823
+ * - `message`: A data event from the worker (default)
824
+ * - `open`: The worker opened the stream channel
825
+ * - `close`: The worker closed the stream channel — client should disconnect
826
+ *
827
+ * Errors:
828
+ * - 400 if companyId is missing
829
+ * - 404 if plugin not found
830
+ * - 501 if bridge deps or stream bus are not configured
831
+ */
832
+ router.get("/plugins/:pluginId/bridge/stream/:channel", async (req, res) => {
833
+ assertBoard(req);
834
+ if (!bridgeDeps?.streamBus) {
835
+ res.status(501).json({ error: "Plugin stream bridge is not enabled" });
836
+ return;
837
+ }
838
+ const { pluginId, channel } = req.params;
839
+ const companyId = req.query.companyId;
840
+ if (!companyId) {
841
+ res.status(400).json({ error: '"companyId" query parameter is required' });
842
+ return;
843
+ }
844
+ const plugin = await resolvePlugin(registry, pluginId);
845
+ if (!plugin) {
846
+ res.status(404).json({ error: "Plugin not found" });
847
+ return;
848
+ }
849
+ assertCompanyAccess(req, companyId);
850
+ // Set SSE headers
851
+ res.writeHead(200, {
852
+ "Content-Type": "text/event-stream",
853
+ "Cache-Control": "no-cache",
854
+ "Connection": "keep-alive",
855
+ "X-Accel-Buffering": "no",
856
+ });
857
+ res.flushHeaders();
858
+ // Send initial comment to establish the connection
859
+ res.write(":ok\n\n");
860
+ let unsubscribed = false;
861
+ const safeUnsubscribe = () => {
862
+ if (!unsubscribed) {
863
+ unsubscribed = true;
864
+ unsubscribe();
865
+ }
866
+ };
867
+ const unsubscribe = bridgeDeps.streamBus.subscribe(plugin.id, channel, companyId, (event, eventType) => {
868
+ if (unsubscribed || !res.writable)
869
+ return;
870
+ try {
871
+ if (eventType !== "message") {
872
+ res.write(`event: ${eventType}\n`);
873
+ }
874
+ res.write(`data: ${JSON.stringify(event)}\n\n`);
875
+ }
876
+ catch {
877
+ // Connection closed or write error — stop delivering
878
+ safeUnsubscribe();
879
+ }
880
+ });
881
+ req.on("close", safeUnsubscribe);
882
+ res.on("error", safeUnsubscribe);
883
+ });
884
+ /**
885
+ * GET /api/plugins/:pluginId
886
+ *
887
+ * Get detailed information about a single plugin.
888
+ *
889
+ * The :pluginId parameter accepts either:
890
+ * - Database UUID (e.g., "abc123-def456")
891
+ * - Plugin key (e.g., "acme.linear")
892
+ *
893
+ * Response: PluginRecord
894
+ * Errors: 404 if plugin not found
895
+ */
896
+ router.get("/plugins/:pluginId", async (req, res) => {
897
+ assertBoard(req);
898
+ const { pluginId } = req.params;
899
+ const plugin = await resolvePlugin(registry, pluginId);
900
+ if (!plugin) {
901
+ res.status(404).json({ error: "Plugin not found" });
902
+ return;
903
+ }
904
+ // Enrich with worker capabilities when available
905
+ const worker = bridgeDeps?.workerManager.getWorker(plugin.id);
906
+ const supportsConfigTest = worker
907
+ ? worker.supportedMethods.includes("validateConfig")
908
+ : false;
909
+ res.json({ ...plugin, supportsConfigTest });
910
+ });
911
+ /**
912
+ * DELETE /api/plugins/:pluginId
913
+ *
914
+ * Uninstall a plugin.
915
+ *
916
+ * Query params:
917
+ * - purge: If "true", permanently delete all plugin data (hard delete)
918
+ * Otherwise, soft-delete with 30-day data retention
919
+ *
920
+ * Response: PluginRecord (the deleted record)
921
+ * Errors: 404 if plugin not found, 400 for lifecycle errors
922
+ */
923
+ router.delete("/plugins/:pluginId", async (req, res) => {
924
+ assertBoard(req);
925
+ const { pluginId } = req.params;
926
+ const purge = req.query.purge === "true";
927
+ const plugin = await resolvePlugin(registry, pluginId);
928
+ if (!plugin) {
929
+ res.status(404).json({ error: "Plugin not found" });
930
+ return;
931
+ }
932
+ try {
933
+ const result = await lifecycle.unload(plugin.id, purge);
934
+ await logPluginMutationActivity(req, "plugin.uninstalled", plugin.id, {
935
+ pluginId: plugin.id,
936
+ pluginKey: plugin.pluginKey,
937
+ purge,
938
+ });
939
+ publishGlobalLiveEvent({ type: "plugin.ui.updated", payload: { pluginId: plugin.id, action: "uninstalled" } });
940
+ res.json(result);
941
+ }
942
+ catch (err) {
943
+ const message = err instanceof Error ? err.message : String(err);
944
+ res.status(400).json({ error: message });
945
+ }
946
+ });
947
+ /**
948
+ * POST /api/plugins/:pluginId/enable
949
+ *
950
+ * Enable a plugin that is currently disabled or in error state.
951
+ *
952
+ * Transitions the plugin to 'ready' state after loading and validation.
953
+ *
954
+ * Response: PluginRecord
955
+ * Errors: 404 if plugin not found, 400 for lifecycle errors
956
+ */
957
+ router.post("/plugins/:pluginId/enable", async (req, res) => {
958
+ assertBoard(req);
959
+ const { pluginId } = req.params;
960
+ const plugin = await resolvePlugin(registry, pluginId);
961
+ if (!plugin) {
962
+ res.status(404).json({ error: "Plugin not found" });
963
+ return;
964
+ }
965
+ try {
966
+ const result = await lifecycle.enable(plugin.id);
967
+ await logPluginMutationActivity(req, "plugin.enabled", plugin.id, {
968
+ pluginId: plugin.id,
969
+ pluginKey: plugin.pluginKey,
970
+ version: result?.version ?? plugin.version,
971
+ });
972
+ publishGlobalLiveEvent({ type: "plugin.ui.updated", payload: { pluginId: plugin.id, action: "enabled" } });
973
+ res.json(result);
974
+ }
975
+ catch (err) {
976
+ const message = err instanceof Error ? err.message : String(err);
977
+ res.status(400).json({ error: message });
978
+ }
979
+ });
980
+ /**
981
+ * POST /api/plugins/:pluginId/disable
982
+ *
983
+ * Disable a running plugin.
984
+ *
985
+ * Request body (optional):
986
+ * - reason: Human-readable reason for disabling
987
+ *
988
+ * The plugin transitions to 'installed' state and stops processing events.
989
+ *
990
+ * Response: PluginRecord
991
+ * Errors: 404 if plugin not found, 400 for lifecycle errors
992
+ */
993
+ router.post("/plugins/:pluginId/disable", async (req, res) => {
994
+ assertBoard(req);
995
+ const { pluginId } = req.params;
996
+ const body = req.body;
997
+ const reason = body?.reason;
998
+ const plugin = await resolvePlugin(registry, pluginId);
999
+ if (!plugin) {
1000
+ res.status(404).json({ error: "Plugin not found" });
1001
+ return;
1002
+ }
1003
+ try {
1004
+ const result = await lifecycle.disable(plugin.id, reason);
1005
+ await logPluginMutationActivity(req, "plugin.disabled", plugin.id, {
1006
+ pluginId: plugin.id,
1007
+ pluginKey: plugin.pluginKey,
1008
+ reason: reason ?? null,
1009
+ });
1010
+ publishGlobalLiveEvent({ type: "plugin.ui.updated", payload: { pluginId: plugin.id, action: "disabled" } });
1011
+ res.json(result);
1012
+ }
1013
+ catch (err) {
1014
+ const message = err instanceof Error ? err.message : String(err);
1015
+ res.status(400).json({ error: message });
1016
+ }
1017
+ });
1018
+ /**
1019
+ * GET /api/plugins/:pluginId/health
1020
+ *
1021
+ * Run health diagnostics on a plugin.
1022
+ *
1023
+ * Performs the following checks:
1024
+ * 1. Registry: Plugin is registered in the database
1025
+ * 2. Manifest: Manifest is valid and parseable
1026
+ * 3. Status: Plugin is in 'ready' state
1027
+ * 4. Error state: Plugin has no unhandled errors
1028
+ *
1029
+ * Response: PluginHealthCheckResult
1030
+ * Errors: 404 if plugin not found
1031
+ */
1032
+ router.get("/plugins/:pluginId/health", async (req, res) => {
1033
+ assertBoard(req);
1034
+ const { pluginId } = req.params;
1035
+ const plugin = await resolvePlugin(registry, pluginId);
1036
+ if (!plugin) {
1037
+ res.status(404).json({ error: "Plugin not found" });
1038
+ return;
1039
+ }
1040
+ const checks = [];
1041
+ // Check 1: Plugin is registered
1042
+ checks.push({
1043
+ name: "registry",
1044
+ passed: true,
1045
+ message: "Plugin found in registry",
1046
+ });
1047
+ // Check 2: Manifest is valid
1048
+ const hasValidManifest = Boolean(plugin.manifestJson?.id);
1049
+ checks.push({
1050
+ name: "manifest",
1051
+ passed: hasValidManifest,
1052
+ message: hasValidManifest ? "Manifest is valid" : "Manifest is invalid or missing",
1053
+ });
1054
+ // Check 3: Plugin status
1055
+ const isHealthy = plugin.status === "ready";
1056
+ checks.push({
1057
+ name: "status",
1058
+ passed: isHealthy,
1059
+ message: `Current status: ${plugin.status}`,
1060
+ });
1061
+ // Check 4: No last error
1062
+ const hasNoError = !plugin.lastError;
1063
+ if (!hasNoError) {
1064
+ checks.push({
1065
+ name: "error_state",
1066
+ passed: false,
1067
+ message: plugin.lastError ?? undefined,
1068
+ });
1069
+ }
1070
+ const result = {
1071
+ pluginId: plugin.id,
1072
+ status: plugin.status,
1073
+ healthy: isHealthy && hasValidManifest && hasNoError,
1074
+ checks,
1075
+ lastError: plugin.lastError ?? undefined,
1076
+ };
1077
+ res.json(result);
1078
+ });
1079
+ /**
1080
+ * GET /api/plugins/:pluginId/logs
1081
+ *
1082
+ * Query recent log entries for a plugin.
1083
+ *
1084
+ * Query params:
1085
+ * - limit: Maximum number of entries (default 25, max 500)
1086
+ * - level: Filter by log level (info, warn, error, debug)
1087
+ * - since: ISO timestamp to filter logs newer than this time
1088
+ *
1089
+ * Response: Array of log entries, newest first.
1090
+ */
1091
+ router.get("/plugins/:pluginId/logs", async (req, res) => {
1092
+ assertBoard(req);
1093
+ const { pluginId } = req.params;
1094
+ const plugin = await resolvePlugin(registry, pluginId);
1095
+ if (!plugin) {
1096
+ res.status(404).json({ error: "Plugin not found" });
1097
+ return;
1098
+ }
1099
+ const limit = Math.min(Math.max(parseInt(req.query.limit, 10) || 25, 1), 500);
1100
+ const level = req.query.level;
1101
+ const since = req.query.since;
1102
+ const conditions = [eq(pluginLogs.pluginId, plugin.id)];
1103
+ if (level) {
1104
+ conditions.push(eq(pluginLogs.level, level));
1105
+ }
1106
+ if (since) {
1107
+ const sinceDate = new Date(since);
1108
+ if (!isNaN(sinceDate.getTime())) {
1109
+ conditions.push(gte(pluginLogs.createdAt, sinceDate));
1110
+ }
1111
+ }
1112
+ const rows = await db
1113
+ .select()
1114
+ .from(pluginLogs)
1115
+ .where(and(...conditions))
1116
+ .orderBy(desc(pluginLogs.createdAt))
1117
+ .limit(limit);
1118
+ res.json(rows);
1119
+ });
1120
+ /**
1121
+ * POST /api/plugins/:pluginId/upgrade
1122
+ *
1123
+ * Upgrade a plugin to a newer version.
1124
+ *
1125
+ * Request body (optional):
1126
+ * - version: Target version (defaults to latest)
1127
+ *
1128
+ * If the upgrade adds new capabilities, the plugin transitions to
1129
+ * 'upgrade_pending' state for board approval. Otherwise, it goes
1130
+ * directly to 'ready'.
1131
+ *
1132
+ * Response: PluginRecord
1133
+ * Errors: 404 if plugin not found, 400 for lifecycle errors
1134
+ */
1135
+ router.post("/plugins/:pluginId/upgrade", async (req, res) => {
1136
+ assertBoard(req);
1137
+ const { pluginId } = req.params;
1138
+ const body = req.body;
1139
+ const version = body?.version;
1140
+ const plugin = await resolvePlugin(registry, pluginId);
1141
+ if (!plugin) {
1142
+ res.status(404).json({ error: "Plugin not found" });
1143
+ return;
1144
+ }
1145
+ try {
1146
+ // Upgrade the plugin - this would typically:
1147
+ // 1. Download the new version
1148
+ // 2. Compare capabilities
1149
+ // 3. If new capabilities, mark as upgrade_pending
1150
+ // 4. Otherwise, transition to ready
1151
+ const result = await lifecycle.upgrade(plugin.id, version);
1152
+ await logPluginMutationActivity(req, "plugin.upgraded", plugin.id, {
1153
+ pluginId: plugin.id,
1154
+ pluginKey: plugin.pluginKey,
1155
+ previousVersion: plugin.version,
1156
+ version: result?.version ?? plugin.version,
1157
+ targetVersion: version ?? null,
1158
+ });
1159
+ publishGlobalLiveEvent({ type: "plugin.ui.updated", payload: { pluginId: plugin.id, action: "upgraded" } });
1160
+ res.json(result);
1161
+ }
1162
+ catch (err) {
1163
+ const message = err instanceof Error ? err.message : String(err);
1164
+ res.status(400).json({ error: message });
1165
+ }
1166
+ });
1167
+ // ===========================================================================
1168
+ // Plugin configuration routes
1169
+ // ===========================================================================
1170
+ /**
1171
+ * GET /api/plugins/:pluginId/config
1172
+ *
1173
+ * Retrieve the current instance configuration for a plugin.
1174
+ *
1175
+ * Returns the `PluginConfig` record if one exists, or `null` if the plugin
1176
+ * has not yet been configured.
1177
+ *
1178
+ * Response: `PluginConfig | null`
1179
+ * Errors: 404 if plugin not found
1180
+ */
1181
+ router.get("/plugins/:pluginId/config", async (req, res) => {
1182
+ assertBoard(req);
1183
+ const { pluginId } = req.params;
1184
+ const plugin = await resolvePlugin(registry, pluginId);
1185
+ if (!plugin) {
1186
+ res.status(404).json({ error: "Plugin not found" });
1187
+ return;
1188
+ }
1189
+ const config = await registry.getConfig(plugin.id);
1190
+ res.json(config);
1191
+ });
1192
+ /**
1193
+ * POST /api/plugins/:pluginId/config
1194
+ *
1195
+ * Save (create or replace) the instance configuration for a plugin.
1196
+ *
1197
+ * The caller provides the full `configJson` object. The server persists it
1198
+ * via `registry.upsertConfig()`.
1199
+ *
1200
+ * Request body:
1201
+ * - `configJson`: Configuration values matching the plugin's `instanceConfigSchema`
1202
+ *
1203
+ * Response: `PluginConfig`
1204
+ * Errors:
1205
+ * - 400 if request validation fails
1206
+ * - 404 if plugin not found
1207
+ */
1208
+ router.post("/plugins/:pluginId/config", async (req, res) => {
1209
+ assertBoard(req);
1210
+ const { pluginId } = req.params;
1211
+ const plugin = await resolvePlugin(registry, pluginId);
1212
+ if (!plugin) {
1213
+ res.status(404).json({ error: "Plugin not found" });
1214
+ return;
1215
+ }
1216
+ const body = req.body;
1217
+ if (!body?.configJson || typeof body.configJson !== "object") {
1218
+ res.status(400).json({ error: '"configJson" is required and must be an object' });
1219
+ return;
1220
+ }
1221
+ // Strip devUiUrl unless the caller is an instance admin. devUiUrl activates
1222
+ // a dev-proxy in the static file route that could be abused for SSRF if any
1223
+ // board-level user were allowed to set it.
1224
+ if ("devUiUrl" in body.configJson &&
1225
+ !(req.actor.type === "board" && req.actor.isInstanceAdmin)) {
1226
+ delete body.configJson.devUiUrl;
1227
+ }
1228
+ // Validate configJson against the plugin's instanceConfigSchema (if declared).
1229
+ // This ensures CLI/API callers get the same validation the UI performs client-side.
1230
+ const schema = plugin.manifestJson?.instanceConfigSchema;
1231
+ if (schema && Object.keys(schema).length > 0) {
1232
+ const validation = validateInstanceConfig(body.configJson, schema);
1233
+ if (!validation.valid) {
1234
+ res.status(400).json({
1235
+ error: "Configuration does not match the plugin's instanceConfigSchema",
1236
+ fieldErrors: validation.errors,
1237
+ });
1238
+ return;
1239
+ }
1240
+ }
1241
+ try {
1242
+ const result = await registry.upsertConfig(plugin.id, {
1243
+ configJson: body.configJson,
1244
+ });
1245
+ await logPluginMutationActivity(req, "plugin.config.updated", plugin.id, {
1246
+ pluginId: plugin.id,
1247
+ pluginKey: plugin.pluginKey,
1248
+ configKeyCount: Object.keys(body.configJson).length,
1249
+ });
1250
+ // Notify the running worker about the config change (PLUGIN_SPEC §25.4.4).
1251
+ // If the worker implements onConfigChanged, send the new config via RPC.
1252
+ // If it doesn't (METHOD_NOT_IMPLEMENTED), restart the worker so it picks
1253
+ // up the new config on re-initialize. If no worker is running, skip.
1254
+ if (bridgeDeps?.workerManager.isRunning(plugin.id)) {
1255
+ try {
1256
+ await bridgeDeps.workerManager.call(plugin.id, "configChanged", { config: body.configJson });
1257
+ }
1258
+ catch (rpcErr) {
1259
+ if (rpcErr instanceof JsonRpcCallError &&
1260
+ rpcErr.code === PLUGIN_RPC_ERROR_CODES.METHOD_NOT_IMPLEMENTED) {
1261
+ // Worker doesn't handle live config — restart it.
1262
+ try {
1263
+ await lifecycle.restartWorker(plugin.id);
1264
+ }
1265
+ catch {
1266
+ // Restart failure is non-fatal for the config save response.
1267
+ }
1268
+ }
1269
+ // Other RPC errors (timeout, unavailable) are non-fatal — config is
1270
+ // already persisted and will take effect on next worker restart.
1271
+ }
1272
+ }
1273
+ res.json(result);
1274
+ }
1275
+ catch (err) {
1276
+ const message = err instanceof Error ? err.message : String(err);
1277
+ res.status(400).json({ error: message });
1278
+ }
1279
+ });
1280
+ /**
1281
+ * POST /api/plugins/:pluginId/config/test
1282
+ *
1283
+ * Test a plugin configuration without persisting it by calling the plugin
1284
+ * worker's `validateConfig` RPC method.
1285
+ *
1286
+ * Only works when the plugin's worker implements `onValidateConfig`.
1287
+ * If the worker does not implement the method, returns
1288
+ * `{ valid: false, supported: false, message: "..." }` with HTTP 200.
1289
+ *
1290
+ * Request body:
1291
+ * - `configJson`: Configuration values to validate
1292
+ *
1293
+ * Response: `{ valid: boolean; message?: string; supported?: boolean }`
1294
+ * Errors:
1295
+ * - 400 if request validation fails
1296
+ * - 404 if plugin not found
1297
+ * - 501 if bridge deps (worker manager) are not configured
1298
+ * - 502 if the worker is unavailable
1299
+ */
1300
+ router.post("/plugins/:pluginId/config/test", async (req, res) => {
1301
+ assertBoard(req);
1302
+ if (!bridgeDeps) {
1303
+ res.status(501).json({ error: "Plugin bridge is not enabled" });
1304
+ return;
1305
+ }
1306
+ const { pluginId } = req.params;
1307
+ const plugin = await resolvePlugin(registry, pluginId);
1308
+ if (!plugin) {
1309
+ res.status(404).json({ error: "Plugin not found" });
1310
+ return;
1311
+ }
1312
+ if (plugin.status !== "ready") {
1313
+ res.status(400).json({
1314
+ error: `Plugin is not ready (current status: ${plugin.status})`,
1315
+ });
1316
+ return;
1317
+ }
1318
+ const body = req.body;
1319
+ if (!body?.configJson || typeof body.configJson !== "object") {
1320
+ res.status(400).json({ error: '"configJson" is required and must be an object' });
1321
+ return;
1322
+ }
1323
+ // Fast schema-level rejection before hitting the worker RPC.
1324
+ const schema = plugin.manifestJson?.instanceConfigSchema;
1325
+ if (schema && Object.keys(schema).length > 0) {
1326
+ const validation = validateInstanceConfig(body.configJson, schema);
1327
+ if (!validation.valid) {
1328
+ res.status(400).json({
1329
+ error: "Configuration does not match the plugin's instanceConfigSchema",
1330
+ fieldErrors: validation.errors,
1331
+ });
1332
+ return;
1333
+ }
1334
+ }
1335
+ try {
1336
+ const result = await bridgeDeps.workerManager.call(plugin.id, "validateConfig", { config: body.configJson });
1337
+ // The worker returns PluginConfigValidationResult { ok, warnings?, errors? }
1338
+ // Map to the frontend-expected shape { valid, message? }
1339
+ if (result.ok) {
1340
+ const warningText = result.warnings?.length
1341
+ ? `Warnings: ${result.warnings.join("; ")}`
1342
+ : undefined;
1343
+ res.json({ valid: true, message: warningText });
1344
+ }
1345
+ else {
1346
+ const errorText = result.errors?.length
1347
+ ? result.errors.join("; ")
1348
+ : "Configuration validation failed.";
1349
+ res.json({ valid: false, message: errorText });
1350
+ }
1351
+ }
1352
+ catch (err) {
1353
+ // If the worker does not implement validateConfig, return a structured response
1354
+ if (err instanceof JsonRpcCallError &&
1355
+ err.code === PLUGIN_RPC_ERROR_CODES.METHOD_NOT_IMPLEMENTED) {
1356
+ res.json({
1357
+ valid: false,
1358
+ supported: false,
1359
+ message: "This plugin does not support configuration testing.",
1360
+ });
1361
+ return;
1362
+ }
1363
+ // Worker unavailable or other RPC errors
1364
+ const bridgeError = mapRpcErrorToBridgeError(err);
1365
+ res.status(502).json(bridgeError);
1366
+ }
1367
+ });
1368
+ // ===========================================================================
1369
+ // Job scheduling routes
1370
+ // ===========================================================================
1371
+ /**
1372
+ * GET /api/plugins/:pluginId/jobs
1373
+ *
1374
+ * List all scheduled jobs for a plugin.
1375
+ *
1376
+ * Query params:
1377
+ * - `status` (optional): Filter by job status (`active`, `paused`, `failed`)
1378
+ *
1379
+ * Response: PluginJobRecord[]
1380
+ * Errors: 404 if plugin not found
1381
+ */
1382
+ router.get("/plugins/:pluginId/jobs", async (req, res) => {
1383
+ assertBoard(req);
1384
+ if (!jobDeps) {
1385
+ res.status(501).json({ error: "Job scheduling is not enabled" });
1386
+ return;
1387
+ }
1388
+ const { pluginId } = req.params;
1389
+ const plugin = await resolvePlugin(registry, pluginId);
1390
+ if (!plugin) {
1391
+ res.status(404).json({ error: "Plugin not found" });
1392
+ return;
1393
+ }
1394
+ const rawStatus = req.query.status;
1395
+ const validStatuses = ["active", "paused", "failed"];
1396
+ if (rawStatus !== undefined && !validStatuses.includes(rawStatus)) {
1397
+ res.status(400).json({
1398
+ error: `Invalid status '${rawStatus}'. Must be one of: ${validStatuses.join(", ")}`,
1399
+ });
1400
+ return;
1401
+ }
1402
+ try {
1403
+ const jobs = await jobDeps.jobStore.listJobs(plugin.id, rawStatus);
1404
+ res.json(jobs);
1405
+ }
1406
+ catch (err) {
1407
+ const message = err instanceof Error ? err.message : String(err);
1408
+ res.status(500).json({ error: message });
1409
+ }
1410
+ });
1411
+ /**
1412
+ * GET /api/plugins/:pluginId/jobs/:jobId/runs
1413
+ *
1414
+ * List execution history for a specific job.
1415
+ *
1416
+ * Query params:
1417
+ * - `limit` (optional): Maximum number of runs to return (default: 50)
1418
+ *
1419
+ * Response: PluginJobRunRecord[]
1420
+ * Errors: 404 if plugin not found
1421
+ */
1422
+ router.get("/plugins/:pluginId/jobs/:jobId/runs", async (req, res) => {
1423
+ assertBoard(req);
1424
+ if (!jobDeps) {
1425
+ res.status(501).json({ error: "Job scheduling is not enabled" });
1426
+ return;
1427
+ }
1428
+ const { pluginId, jobId } = req.params;
1429
+ const plugin = await resolvePlugin(registry, pluginId);
1430
+ if (!plugin) {
1431
+ res.status(404).json({ error: "Plugin not found" });
1432
+ return;
1433
+ }
1434
+ const job = await jobDeps.jobStore.getJobByIdForPlugin(plugin.id, jobId);
1435
+ if (!job) {
1436
+ res.status(404).json({ error: "Job not found" });
1437
+ return;
1438
+ }
1439
+ const limit = req.query.limit ? parseInt(req.query.limit, 10) : 25;
1440
+ if (isNaN(limit) || limit < 1 || limit > 500) {
1441
+ res.status(400).json({ error: "limit must be a number between 1 and 500" });
1442
+ return;
1443
+ }
1444
+ try {
1445
+ const runs = await jobDeps.jobStore.listRunsByJob(jobId, limit);
1446
+ res.json(runs);
1447
+ }
1448
+ catch (err) {
1449
+ const message = err instanceof Error ? err.message : String(err);
1450
+ res.status(500).json({ error: message });
1451
+ }
1452
+ });
1453
+ /**
1454
+ * POST /api/plugins/:pluginId/jobs/:jobId/trigger
1455
+ *
1456
+ * Manually trigger a job execution outside its cron schedule.
1457
+ *
1458
+ * Creates a run with `trigger: "manual"` and dispatches immediately.
1459
+ * The response returns before the job completes (non-blocking).
1460
+ *
1461
+ * Response: `{ runId: string, jobId: string }`
1462
+ * Errors:
1463
+ * - 404 if plugin not found
1464
+ * - 400 if job not found, not active, already running, or worker unavailable
1465
+ */
1466
+ router.post("/plugins/:pluginId/jobs/:jobId/trigger", async (req, res) => {
1467
+ assertBoard(req);
1468
+ if (!jobDeps) {
1469
+ res.status(501).json({ error: "Job scheduling is not enabled" });
1470
+ return;
1471
+ }
1472
+ const { pluginId, jobId } = req.params;
1473
+ const plugin = await resolvePlugin(registry, pluginId);
1474
+ if (!plugin) {
1475
+ res.status(404).json({ error: "Plugin not found" });
1476
+ return;
1477
+ }
1478
+ const job = await jobDeps.jobStore.getJobByIdForPlugin(plugin.id, jobId);
1479
+ if (!job) {
1480
+ res.status(404).json({ error: "Job not found" });
1481
+ return;
1482
+ }
1483
+ try {
1484
+ const result = await jobDeps.scheduler.triggerJob(jobId, "manual");
1485
+ res.json(result);
1486
+ }
1487
+ catch (err) {
1488
+ const message = err instanceof Error ? err.message : String(err);
1489
+ res.status(400).json({ error: message });
1490
+ }
1491
+ });
1492
+ // ===========================================================================
1493
+ // Webhook ingestion route
1494
+ // ===========================================================================
1495
+ /**
1496
+ * POST /api/plugins/:pluginId/webhooks/:endpointKey
1497
+ *
1498
+ * Receive an inbound webhook delivery for a plugin.
1499
+ *
1500
+ * This route is called by external systems (e.g. GitHub, Linear, Stripe) to
1501
+ * deliver webhook payloads to a plugin. The host validates that:
1502
+ * 1. The plugin exists and is in 'ready' state
1503
+ * 2. The plugin declares the `webhooks.receive` capability
1504
+ * 3. The `endpointKey` matches a declared webhook in the manifest
1505
+ *
1506
+ * The delivery is recorded in the `plugin_webhook_deliveries` table and
1507
+ * dispatched to the worker via the `handleWebhook` RPC method.
1508
+ *
1509
+ * **Note:** This route does NOT require board authentication — webhook
1510
+ * endpoints must be publicly accessible for external callers. Signature
1511
+ * verification is the plugin's responsibility.
1512
+ *
1513
+ * Response: `{ deliveryId: string, status: string }`
1514
+ * Errors:
1515
+ * - 404 if plugin not found or endpointKey not declared
1516
+ * - 400 if plugin is not in ready state or lacks webhooks.receive capability
1517
+ * - 502 if the worker is unavailable or the RPC call fails
1518
+ */
1519
+ router.post("/plugins/:pluginId/webhooks/:endpointKey", async (req, res) => {
1520
+ if (!webhookDeps) {
1521
+ res.status(501).json({ error: "Webhook ingestion is not enabled" });
1522
+ return;
1523
+ }
1524
+ const { pluginId, endpointKey } = req.params;
1525
+ // Step 1: Resolve the plugin
1526
+ const plugin = await resolvePlugin(registry, pluginId);
1527
+ if (!plugin) {
1528
+ res.status(404).json({ error: "Plugin not found" });
1529
+ return;
1530
+ }
1531
+ // Step 2: Validate the plugin is in 'ready' state
1532
+ if (plugin.status !== "ready") {
1533
+ res.status(400).json({
1534
+ error: `Plugin is not ready (current status: ${plugin.status})`,
1535
+ });
1536
+ return;
1537
+ }
1538
+ // Step 3: Validate the plugin has webhooks.receive capability
1539
+ const manifest = plugin.manifestJson;
1540
+ if (!manifest) {
1541
+ res.status(400).json({ error: "Plugin manifest is missing" });
1542
+ return;
1543
+ }
1544
+ const capabilities = manifest.capabilities ?? [];
1545
+ if (!capabilities.includes("webhooks.receive")) {
1546
+ res.status(400).json({
1547
+ error: "Plugin does not have the webhooks.receive capability",
1548
+ });
1549
+ return;
1550
+ }
1551
+ // Step 4: Validate the endpointKey exists in the manifest's webhook declarations
1552
+ const declaredWebhooks = manifest.webhooks ?? [];
1553
+ const webhookDecl = declaredWebhooks.find((w) => w.endpointKey === endpointKey);
1554
+ if (!webhookDecl) {
1555
+ res.status(404).json({
1556
+ error: `Webhook endpoint '${endpointKey}' is not declared by this plugin`,
1557
+ });
1558
+ return;
1559
+ }
1560
+ // Step 5: Extract request data
1561
+ const requestId = randomUUID();
1562
+ const rawHeaders = {};
1563
+ for (const [key, value] of Object.entries(req.headers)) {
1564
+ if (typeof value === "string") {
1565
+ rawHeaders[key] = value;
1566
+ }
1567
+ else if (Array.isArray(value)) {
1568
+ rawHeaders[key] = value.join(", ");
1569
+ }
1570
+ }
1571
+ // Use the raw buffer stashed by the express.json() `verify` callback.
1572
+ // This preserves the exact bytes the provider signed, whereas
1573
+ // JSON.stringify(req.body) would re-serialize and break HMAC verification.
1574
+ const stashedRaw = req.rawBody;
1575
+ const rawBody = stashedRaw ? stashedRaw.toString("utf-8") : "";
1576
+ const parsedBody = req.body;
1577
+ const payload = req.body ?? {};
1578
+ // Step 6: Record the delivery in the database
1579
+ const startedAt = new Date();
1580
+ const [delivery] = await db
1581
+ .insert(pluginWebhookDeliveries)
1582
+ .values({
1583
+ pluginId: plugin.id,
1584
+ webhookKey: endpointKey,
1585
+ status: "pending",
1586
+ payload,
1587
+ headers: rawHeaders,
1588
+ startedAt,
1589
+ })
1590
+ .returning({ id: pluginWebhookDeliveries.id });
1591
+ // Step 7: Dispatch to the worker via handleWebhook RPC
1592
+ try {
1593
+ await webhookDeps.workerManager.call(plugin.id, "handleWebhook", {
1594
+ endpointKey,
1595
+ headers: req.headers,
1596
+ rawBody,
1597
+ parsedBody,
1598
+ requestId,
1599
+ });
1600
+ // Step 8: Update delivery record to success
1601
+ const finishedAt = new Date();
1602
+ const durationMs = finishedAt.getTime() - startedAt.getTime();
1603
+ await db
1604
+ .update(pluginWebhookDeliveries)
1605
+ .set({
1606
+ status: "success",
1607
+ durationMs,
1608
+ finishedAt,
1609
+ })
1610
+ .where(eq(pluginWebhookDeliveries.id, delivery.id));
1611
+ res.status(200).json({
1612
+ deliveryId: delivery.id,
1613
+ status: "success",
1614
+ });
1615
+ }
1616
+ catch (err) {
1617
+ // Step 8 (error): Update delivery record to failed
1618
+ const finishedAt = new Date();
1619
+ const durationMs = finishedAt.getTime() - startedAt.getTime();
1620
+ const errorMessage = err instanceof Error ? err.message : String(err);
1621
+ await db
1622
+ .update(pluginWebhookDeliveries)
1623
+ .set({
1624
+ status: "failed",
1625
+ durationMs,
1626
+ error: errorMessage,
1627
+ finishedAt,
1628
+ })
1629
+ .where(eq(pluginWebhookDeliveries.id, delivery.id));
1630
+ res.status(502).json({
1631
+ deliveryId: delivery.id,
1632
+ status: "failed",
1633
+ error: errorMessage,
1634
+ });
1635
+ }
1636
+ });
1637
+ // ===========================================================================
1638
+ // Plugin health dashboard — aggregated diagnostics for the settings page
1639
+ // ===========================================================================
1640
+ /**
1641
+ * GET /api/plugins/:pluginId/dashboard
1642
+ *
1643
+ * Aggregated health dashboard data for a plugin's settings page.
1644
+ *
1645
+ * Returns worker diagnostics (status, uptime, crash history), recent job
1646
+ * runs, recent webhook deliveries, and the current health check result —
1647
+ * all in a single response to avoid multiple round-trips.
1648
+ *
1649
+ * Response: PluginDashboardData
1650
+ * Errors: 404 if plugin not found
1651
+ */
1652
+ router.get("/plugins/:pluginId/dashboard", async (req, res) => {
1653
+ assertBoard(req);
1654
+ const { pluginId } = req.params;
1655
+ const plugin = await resolvePlugin(registry, pluginId);
1656
+ if (!plugin) {
1657
+ res.status(404).json({ error: "Plugin not found" });
1658
+ return;
1659
+ }
1660
+ // --- Worker diagnostics ---
1661
+ let worker = null;
1662
+ // Try bridgeDeps first (primary source for worker manager), fallback to webhookDeps
1663
+ const wm = bridgeDeps?.workerManager ?? webhookDeps?.workerManager ?? null;
1664
+ if (wm) {
1665
+ const handle = wm.getWorker(plugin.id);
1666
+ if (handle) {
1667
+ const diag = handle.diagnostics();
1668
+ worker = {
1669
+ status: diag.status,
1670
+ pid: diag.pid,
1671
+ uptime: diag.uptime,
1672
+ consecutiveCrashes: diag.consecutiveCrashes,
1673
+ totalCrashes: diag.totalCrashes,
1674
+ pendingRequests: diag.pendingRequests,
1675
+ lastCrashAt: diag.lastCrashAt,
1676
+ nextRestartAt: diag.nextRestartAt,
1677
+ };
1678
+ }
1679
+ }
1680
+ // --- Recent job runs (last 10, newest first) ---
1681
+ let recentJobRuns = [];
1682
+ if (jobDeps) {
1683
+ try {
1684
+ const runs = await jobDeps.jobStore.listRunsByPlugin(plugin.id, undefined, 10);
1685
+ // Also fetch job definitions so we can include jobKey
1686
+ const jobs = await jobDeps.jobStore.listJobs(plugin.id);
1687
+ const jobKeyMap = new Map(jobs.map((j) => [j.id, j.jobKey]));
1688
+ recentJobRuns = runs
1689
+ .sort((a, b) => new Date(b.createdAt).getTime() - new Date(a.createdAt).getTime())
1690
+ .map((r) => ({
1691
+ id: r.id,
1692
+ jobId: r.jobId,
1693
+ jobKey: jobKeyMap.get(r.jobId) ?? undefined,
1694
+ trigger: r.trigger,
1695
+ status: r.status,
1696
+ durationMs: r.durationMs,
1697
+ error: r.error,
1698
+ startedAt: r.startedAt ? new Date(r.startedAt).toISOString() : null,
1699
+ finishedAt: r.finishedAt ? new Date(r.finishedAt).toISOString() : null,
1700
+ createdAt: new Date(r.createdAt).toISOString(),
1701
+ }));
1702
+ }
1703
+ catch {
1704
+ // Job data unavailable — leave empty
1705
+ }
1706
+ }
1707
+ // --- Recent webhook deliveries (last 10, newest first) ---
1708
+ let recentWebhookDeliveries = [];
1709
+ try {
1710
+ const deliveries = await db
1711
+ .select({
1712
+ id: pluginWebhookDeliveries.id,
1713
+ webhookKey: pluginWebhookDeliveries.webhookKey,
1714
+ status: pluginWebhookDeliveries.status,
1715
+ durationMs: pluginWebhookDeliveries.durationMs,
1716
+ error: pluginWebhookDeliveries.error,
1717
+ startedAt: pluginWebhookDeliveries.startedAt,
1718
+ finishedAt: pluginWebhookDeliveries.finishedAt,
1719
+ createdAt: pluginWebhookDeliveries.createdAt,
1720
+ })
1721
+ .from(pluginWebhookDeliveries)
1722
+ .where(eq(pluginWebhookDeliveries.pluginId, plugin.id))
1723
+ .orderBy(desc(pluginWebhookDeliveries.createdAt))
1724
+ .limit(10);
1725
+ recentWebhookDeliveries = deliveries.map((d) => ({
1726
+ id: d.id,
1727
+ webhookKey: d.webhookKey,
1728
+ status: d.status,
1729
+ durationMs: d.durationMs,
1730
+ error: d.error,
1731
+ startedAt: d.startedAt ? d.startedAt.toISOString() : null,
1732
+ finishedAt: d.finishedAt ? d.finishedAt.toISOString() : null,
1733
+ createdAt: d.createdAt.toISOString(),
1734
+ }));
1735
+ }
1736
+ catch {
1737
+ // Webhook data unavailable — leave empty
1738
+ }
1739
+ // --- Health check (same logic as GET /health) ---
1740
+ const checks = [];
1741
+ checks.push({
1742
+ name: "registry",
1743
+ passed: true,
1744
+ message: "Plugin found in registry",
1745
+ });
1746
+ const hasValidManifest = Boolean(plugin.manifestJson?.id);
1747
+ checks.push({
1748
+ name: "manifest",
1749
+ passed: hasValidManifest,
1750
+ message: hasValidManifest ? "Manifest is valid" : "Manifest is invalid or missing",
1751
+ });
1752
+ const isHealthy = plugin.status === "ready";
1753
+ checks.push({
1754
+ name: "status",
1755
+ passed: isHealthy,
1756
+ message: `Current status: ${plugin.status}`,
1757
+ });
1758
+ const hasNoError = !plugin.lastError;
1759
+ if (!hasNoError) {
1760
+ checks.push({
1761
+ name: "error_state",
1762
+ passed: false,
1763
+ message: plugin.lastError ?? undefined,
1764
+ });
1765
+ }
1766
+ const health = {
1767
+ pluginId: plugin.id,
1768
+ status: plugin.status,
1769
+ healthy: isHealthy && hasValidManifest && hasNoError,
1770
+ checks,
1771
+ lastError: plugin.lastError ?? undefined,
1772
+ };
1773
+ res.json({
1774
+ pluginId: plugin.id,
1775
+ worker,
1776
+ recentJobRuns,
1777
+ recentWebhookDeliveries,
1778
+ health,
1779
+ checkedAt: new Date().toISOString(),
1780
+ });
1781
+ });
1782
+ return router;
1783
+ }
1784
+ //# sourceMappingURL=plugins.js.map