@rudderhq/server 0.1.0-canary.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (902) hide show
  1. package/LICENSE +14 -0
  2. package/dist/agent-auth-jwt.d.ts +14 -0
  3. package/dist/agent-auth-jwt.d.ts.map +1 -0
  4. package/dist/agent-auth-jwt.js +119 -0
  5. package/dist/agent-auth-jwt.js.map +1 -0
  6. package/dist/agent-runtimes/codex-models.d.ts +4 -0
  7. package/dist/agent-runtimes/codex-models.d.ts.map +1 -0
  8. package/dist/agent-runtimes/codex-models.js +98 -0
  9. package/dist/agent-runtimes/codex-models.js.map +1 -0
  10. package/dist/agent-runtimes/cursor-models.d.ts +13 -0
  11. package/dist/agent-runtimes/cursor-models.d.ts.map +1 -0
  12. package/dist/agent-runtimes/cursor-models.js +148 -0
  13. package/dist/agent-runtimes/cursor-models.js.map +1 -0
  14. package/dist/agent-runtimes/http/execute.d.ts +3 -0
  15. package/dist/agent-runtimes/http/execute.d.ts.map +1 -0
  16. package/dist/agent-runtimes/http/execute.js +39 -0
  17. package/dist/agent-runtimes/http/execute.js.map +1 -0
  18. package/dist/agent-runtimes/http/index.d.ts +3 -0
  19. package/dist/agent-runtimes/http/index.d.ts.map +1 -0
  20. package/dist/agent-runtimes/http/index.js +20 -0
  21. package/dist/agent-runtimes/http/index.js.map +1 -0
  22. package/dist/agent-runtimes/http/test.d.ts +3 -0
  23. package/dist/agent-runtimes/http/test.d.ts.map +1 -0
  24. package/dist/agent-runtimes/http/test.js +106 -0
  25. package/dist/agent-runtimes/http/test.js.map +1 -0
  26. package/dist/agent-runtimes/index.d.ts +4 -0
  27. package/dist/agent-runtimes/index.d.ts.map +1 -0
  28. package/dist/agent-runtimes/index.js +3 -0
  29. package/dist/agent-runtimes/index.js.map +1 -0
  30. package/dist/agent-runtimes/process/execute.d.ts +3 -0
  31. package/dist/agent-runtimes/process/execute.d.ts.map +1 -0
  32. package/dist/agent-runtimes/process/execute.js +63 -0
  33. package/dist/agent-runtimes/process/execute.js.map +1 -0
  34. package/dist/agent-runtimes/process/index.d.ts +3 -0
  35. package/dist/agent-runtimes/process/index.d.ts.map +1 -0
  36. package/dist/agent-runtimes/process/index.js +23 -0
  37. package/dist/agent-runtimes/process/index.js.map +1 -0
  38. package/dist/agent-runtimes/process/test.d.ts +3 -0
  39. package/dist/agent-runtimes/process/test.d.ts.map +1 -0
  40. package/dist/agent-runtimes/process/test.js +77 -0
  41. package/dist/agent-runtimes/process/test.js.map +1 -0
  42. package/dist/agent-runtimes/registry.d.ts +9 -0
  43. package/dist/agent-runtimes/registry.d.ts.map +1 -0
  44. package/dist/agent-runtimes/registry.js +189 -0
  45. package/dist/agent-runtimes/registry.js.map +1 -0
  46. package/dist/agent-runtimes/types.d.ts +2 -0
  47. package/dist/agent-runtimes/types.d.ts.map +1 -0
  48. package/dist/agent-runtimes/types.js +2 -0
  49. package/dist/agent-runtimes/types.js.map +1 -0
  50. package/dist/agent-runtimes/utils.d.ts +10 -0
  51. package/dist/agent-runtimes/utils.d.ts.map +1 -0
  52. package/dist/agent-runtimes/utils.js +14 -0
  53. package/dist/agent-runtimes/utils.js.map +1 -0
  54. package/dist/agent-workspace-key.d.ts +17 -0
  55. package/dist/agent-workspace-key.d.ts.map +1 -0
  56. package/dist/agent-workspace-key.js +49 -0
  57. package/dist/agent-workspace-key.js.map +1 -0
  58. package/dist/app.d.ts +14 -0
  59. package/dist/app.d.ts.map +1 -0
  60. package/dist/app.js +19 -0
  61. package/dist/app.js.map +1 -0
  62. package/dist/attachment-types.d.ts +33 -0
  63. package/dist/attachment-types.d.ts.map +1 -0
  64. package/dist/attachment-types.js +67 -0
  65. package/dist/attachment-types.js.map +1 -0
  66. package/dist/auth/better-auth.d.ts +24 -0
  67. package/dist/auth/better-auth.d.ts.map +1 -0
  68. package/dist/auth/better-auth.js +108 -0
  69. package/dist/auth/better-auth.js.map +1 -0
  70. package/dist/board-claim.d.ts +23 -0
  71. package/dist/board-claim.d.ts.map +1 -0
  72. package/dist/board-claim.js +115 -0
  73. package/dist/board-claim.js.map +1 -0
  74. package/dist/bootstrap/create-http-app.d.ts +6 -0
  75. package/dist/bootstrap/create-http-app.d.ts.map +1 -0
  76. package/dist/bootstrap/create-http-app.js +122 -0
  77. package/dist/bootstrap/create-http-app.js.map +1 -0
  78. package/dist/bootstrap/plugin-host-runtime.d.ts +116 -0
  79. package/dist/bootstrap/plugin-host-runtime.d.ts.map +1 -0
  80. package/dist/bootstrap/plugin-host-runtime.js +121 -0
  81. package/dist/bootstrap/plugin-host-runtime.js.map +1 -0
  82. package/dist/bootstrap/register-api-routes.d.ts +5 -0
  83. package/dist/bootstrap/register-api-routes.d.ts.map +1 -0
  84. package/dist/bootstrap/register-api-routes.js +65 -0
  85. package/dist/bootstrap/register-api-routes.js.map +1 -0
  86. package/dist/bootstrap/types.d.ts +24 -0
  87. package/dist/bootstrap/types.d.ts.map +1 -0
  88. package/dist/bootstrap/types.js +2 -0
  89. package/dist/bootstrap/types.js.map +1 -0
  90. package/dist/config-file.d.ts +5 -0
  91. package/dist/config-file.d.ts.map +1 -0
  92. package/dist/config-file.js +48 -0
  93. package/dist/config-file.js.map +1 -0
  94. package/dist/config.d.ts +45 -0
  95. package/dist/config.d.ts.map +1 -0
  96. package/dist/config.js +233 -0
  97. package/dist/config.js.map +1 -0
  98. package/dist/dev-server-status.d.ts +29 -0
  99. package/dist/dev-server-status.d.ts.map +1 -0
  100. package/dist/dev-server-status.js +75 -0
  101. package/dist/dev-server-status.js.map +1 -0
  102. package/dist/errors.d.ts +12 -0
  103. package/dist/errors.d.ts.map +1 -0
  104. package/dist/errors.js +28 -0
  105. package/dist/errors.js.map +1 -0
  106. package/dist/home-paths.d.ts +50 -0
  107. package/dist/home-paths.d.ts.map +1 -0
  108. package/dist/home-paths.js +183 -0
  109. package/dist/home-paths.js.map +1 -0
  110. package/dist/index.d.ts +69 -0
  111. package/dist/index.d.ts.map +1 -0
  112. package/dist/index.js +827 -0
  113. package/dist/index.js.map +1 -0
  114. package/dist/langfuse-transcript.d.ts +32 -0
  115. package/dist/langfuse-transcript.d.ts.map +1 -0
  116. package/dist/langfuse-transcript.js +341 -0
  117. package/dist/langfuse-transcript.js.map +1 -0
  118. package/dist/langfuse.d.ts +93 -0
  119. package/dist/langfuse.d.ts.map +1 -0
  120. package/dist/langfuse.js +412 -0
  121. package/dist/langfuse.js.map +1 -0
  122. package/dist/local-runtime.d.ts +67 -0
  123. package/dist/local-runtime.d.ts.map +1 -0
  124. package/dist/local-runtime.js +302 -0
  125. package/dist/local-runtime.js.map +1 -0
  126. package/dist/log-redaction.d.ts +11 -0
  127. package/dist/log-redaction.d.ts.map +1 -0
  128. package/dist/log-redaction.js +118 -0
  129. package/dist/log-redaction.js.map +1 -0
  130. package/dist/middleware/auth.d.ts +12 -0
  131. package/dist/middleware/auth.d.ts.map +1 -0
  132. package/dist/middleware/auth.js +144 -0
  133. package/dist/middleware/auth.js.map +1 -0
  134. package/dist/middleware/board-mutation-guard.d.ts +3 -0
  135. package/dist/middleware/board-mutation-guard.d.ts.map +1 -0
  136. package/dist/middleware/board-mutation-guard.js +59 -0
  137. package/dist/middleware/board-mutation-guard.js.map +1 -0
  138. package/dist/middleware/error-handler.d.ts +17 -0
  139. package/dist/middleware/error-handler.d.ts.map +1 -0
  140. package/dist/middleware/error-handler.js +37 -0
  141. package/dist/middleware/error-handler.js.map +1 -0
  142. package/dist/middleware/index.d.ts +4 -0
  143. package/dist/middleware/index.d.ts.map +1 -0
  144. package/dist/middleware/index.js +4 -0
  145. package/dist/middleware/index.js.map +1 -0
  146. package/dist/middleware/logger.d.ts +4 -0
  147. package/dist/middleware/logger.d.ts.map +1 -0
  148. package/dist/middleware/logger.js +133 -0
  149. package/dist/middleware/logger.js.map +1 -0
  150. package/dist/middleware/private-hostname-guard.d.ts +11 -0
  151. package/dist/middleware/private-hostname-guard.d.ts.map +1 -0
  152. package/dist/middleware/private-hostname-guard.js +78 -0
  153. package/dist/middleware/private-hostname-guard.js.map +1 -0
  154. package/dist/middleware/validate.d.ts +4 -0
  155. package/dist/middleware/validate.d.ts.map +1 -0
  156. package/dist/middleware/validate.js +7 -0
  157. package/dist/middleware/validate.js.map +1 -0
  158. package/dist/onboarding-assets/ceo/AGENTS.md +33 -0
  159. package/dist/onboarding-assets/ceo/HEARTBEAT.md +77 -0
  160. package/dist/onboarding-assets/ceo/SOUL.md +33 -0
  161. package/dist/onboarding-assets/ceo/TOOLS.md +3 -0
  162. package/dist/onboarding-assets/default/AGENTS.md +9 -0
  163. package/dist/onboarding-assets/default/HEARTBEAT.md +36 -0
  164. package/dist/onboarding-assets/default/SOUL.md +23 -0
  165. package/dist/onboarding-assets/default/TOOLS.md +3 -0
  166. package/dist/paths.d.ts +3 -0
  167. package/dist/paths.d.ts.map +1 -0
  168. package/dist/paths.js +31 -0
  169. package/dist/paths.js.map +1 -0
  170. package/dist/realtime/live-events-ws.d.ts +28 -0
  171. package/dist/realtime/live-events-ws.d.ts.map +1 -0
  172. package/dist/realtime/live-events-ws.js +187 -0
  173. package/dist/realtime/live-events-ws.js.map +1 -0
  174. package/dist/redaction.d.ts +4 -0
  175. package/dist/redaction.d.ts.map +1 -0
  176. package/dist/redaction.js +63 -0
  177. package/dist/redaction.js.map +1 -0
  178. package/dist/routes/access.d.ts +57 -0
  179. package/dist/routes/access.d.ts.map +1 -0
  180. package/dist/routes/access.js +2266 -0
  181. package/dist/routes/access.js.map +1 -0
  182. package/dist/routes/activity.d.ts +3 -0
  183. package/dist/routes/activity.d.ts.map +1 -0
  184. package/dist/routes/activity.js +78 -0
  185. package/dist/routes/activity.js.map +1 -0
  186. package/dist/routes/agents.d.ts +3 -0
  187. package/dist/routes/agents.d.ts.map +1 -0
  188. package/dist/routes/agents.js +1913 -0
  189. package/dist/routes/agents.js.map +1 -0
  190. package/dist/routes/approvals.d.ts +3 -0
  191. package/dist/routes/approvals.d.ts.map +1 -0
  192. package/dist/routes/approvals.js +365 -0
  193. package/dist/routes/approvals.js.map +1 -0
  194. package/dist/routes/assets.d.ts +4 -0
  195. package/dist/routes/assets.d.ts.map +1 -0
  196. package/dist/routes/assets.js +309 -0
  197. package/dist/routes/assets.js.map +1 -0
  198. package/dist/routes/authz.d.ts +16 -0
  199. package/dist/routes/authz.d.ts.map +1 -0
  200. package/dist/routes/authz.js +47 -0
  201. package/dist/routes/authz.js.map +1 -0
  202. package/dist/routes/automations.d.ts +3 -0
  203. package/dist/routes/automations.d.ts.map +1 -0
  204. package/dist/routes/automations.js +277 -0
  205. package/dist/routes/automations.js.map +1 -0
  206. package/dist/routes/chats.d.ts +4 -0
  207. package/dist/routes/chats.d.ts.map +1 -0
  208. package/dist/routes/chats.js +1162 -0
  209. package/dist/routes/chats.js.map +1 -0
  210. package/dist/routes/costs.d.ts +3 -0
  211. package/dist/routes/costs.d.ts.map +1 -0
  212. package/dist/routes/costs.js +268 -0
  213. package/dist/routes/costs.js.map +1 -0
  214. package/dist/routes/dashboard.d.ts +3 -0
  215. package/dist/routes/dashboard.d.ts.map +1 -0
  216. package/dist/routes/dashboard.js +15 -0
  217. package/dist/routes/dashboard.js.map +1 -0
  218. package/dist/routes/execution-workspaces.d.ts +3 -0
  219. package/dist/routes/execution-workspaces.d.ts.map +1 -0
  220. package/dist/routes/execution-workspaces.js +165 -0
  221. package/dist/routes/execution-workspaces.js.map +1 -0
  222. package/dist/routes/goals.d.ts +3 -0
  223. package/dist/routes/goals.d.ts.map +1 -0
  224. package/dist/routes/goals.js +95 -0
  225. package/dist/routes/goals.js.map +1 -0
  226. package/dist/routes/health.d.ts +12 -0
  227. package/dist/routes/health.d.ts.map +1 -0
  228. package/dist/routes/health.js +85 -0
  229. package/dist/routes/health.js.map +1 -0
  230. package/dist/routes/index.d.ts +19 -0
  231. package/dist/routes/index.d.ts.map +1 -0
  232. package/dist/routes/index.js +19 -0
  233. package/dist/routes/index.js.map +1 -0
  234. package/dist/routes/instance-settings.d.ts +6 -0
  235. package/dist/routes/instance-settings.d.ts.map +1 -0
  236. package/dist/routes/instance-settings.js +250 -0
  237. package/dist/routes/instance-settings.js.map +1 -0
  238. package/dist/routes/issues-checkout-wakeup.d.ts +9 -0
  239. package/dist/routes/issues-checkout-wakeup.d.ts.map +1 -0
  240. package/dist/routes/issues-checkout-wakeup.js +12 -0
  241. package/dist/routes/issues-checkout-wakeup.js.map +1 -0
  242. package/dist/routes/issues.d.ts +4 -0
  243. package/dist/routes/issues.d.ts.map +1 -0
  244. package/dist/routes/issues.js +1615 -0
  245. package/dist/routes/issues.js.map +1 -0
  246. package/dist/routes/llms.d.ts +3 -0
  247. package/dist/routes/llms.d.ts.map +1 -0
  248. package/dist/routes/llms.js +78 -0
  249. package/dist/routes/llms.js.map +1 -0
  250. package/dist/routes/messenger.d.ts +3 -0
  251. package/dist/routes/messenger.d.ts.map +1 -0
  252. package/dist/routes/messenger.js +108 -0
  253. package/dist/routes/messenger.js.map +1 -0
  254. package/dist/routes/org-chart-logo.d.ts +2 -0
  255. package/dist/routes/org-chart-logo.d.ts.map +1 -0
  256. package/dist/routes/org-chart-logo.js +2 -0
  257. package/dist/routes/org-chart-logo.js.map +1 -0
  258. package/dist/routes/org-chart-svg.d.ts +25 -0
  259. package/dist/routes/org-chart-svg.d.ts.map +1 -0
  260. package/dist/routes/org-chart-svg.js +652 -0
  261. package/dist/routes/org-chart-svg.js.map +1 -0
  262. package/dist/routes/organization-skills.d.ts +3 -0
  263. package/dist/routes/organization-skills.d.ts.map +1 -0
  264. package/dist/routes/organization-skills.js +253 -0
  265. package/dist/routes/organization-skills.js.map +1 -0
  266. package/dist/routes/orgs.d.ts +4 -0
  267. package/dist/routes/orgs.d.ts.map +1 -0
  268. package/dist/routes/orgs.js +575 -0
  269. package/dist/routes/orgs.js.map +1 -0
  270. package/dist/routes/plugin-ui-static.d.ts +69 -0
  271. package/dist/routes/plugin-ui-static.d.ts.map +1 -0
  272. package/dist/routes/plugin-ui-static.js +411 -0
  273. package/dist/routes/plugin-ui-static.js.map +1 -0
  274. package/dist/routes/plugins.d.ts +120 -0
  275. package/dist/routes/plugins.d.ts.map +1 -0
  276. package/dist/routes/plugins.js +1776 -0
  277. package/dist/routes/plugins.js.map +1 -0
  278. package/dist/routes/projects.d.ts +3 -0
  279. package/dist/routes/projects.d.ts.map +1 -0
  280. package/dist/routes/projects.js +235 -0
  281. package/dist/routes/projects.js.map +1 -0
  282. package/dist/routes/run-intelligence.d.ts +3 -0
  283. package/dist/routes/run-intelligence.d.ts.map +1 -0
  284. package/dist/routes/run-intelligence.js +58 -0
  285. package/dist/routes/run-intelligence.js.map +1 -0
  286. package/dist/routes/secrets.d.ts +3 -0
  287. package/dist/routes/secrets.d.ts.map +1 -0
  288. package/dist/routes/secrets.js +128 -0
  289. package/dist/routes/secrets.js.map +1 -0
  290. package/dist/routes/sidebar-badges.d.ts +3 -0
  291. package/dist/routes/sidebar-badges.d.ts.map +1 -0
  292. package/dist/routes/sidebar-badges.js +70 -0
  293. package/dist/routes/sidebar-badges.js.map +1 -0
  294. package/dist/secrets/external-stub-providers.d.ts +5 -0
  295. package/dist/secrets/external-stub-providers.d.ts.map +1 -0
  296. package/dist/secrets/external-stub-providers.js +21 -0
  297. package/dist/secrets/external-stub-providers.js.map +1 -0
  298. package/dist/secrets/local-encrypted-provider.d.ts +3 -0
  299. package/dist/secrets/local-encrypted-provider.d.ts.map +1 -0
  300. package/dist/secrets/local-encrypted-provider.js +116 -0
  301. package/dist/secrets/local-encrypted-provider.js.map +1 -0
  302. package/dist/secrets/provider-registry.d.ts +5 -0
  303. package/dist/secrets/provider-registry.d.ts.map +1 -0
  304. package/dist/secrets/provider-registry.js +20 -0
  305. package/dist/secrets/provider-registry.js.map +1 -0
  306. package/dist/secrets/types.d.ts +21 -0
  307. package/dist/secrets/types.d.ts.map +1 -0
  308. package/dist/secrets/types.js +2 -0
  309. package/dist/secrets/types.js.map +1 -0
  310. package/dist/services/access.d.ts +113 -0
  311. package/dist/services/access.d.ts.map +1 -0
  312. package/dist/services/access.js +247 -0
  313. package/dist/services/access.js.map +1 -0
  314. package/dist/services/activity-log.d.ts +17 -0
  315. package/dist/services/activity-log.d.ts.map +1 -0
  316. package/dist/services/activity-log.js +109 -0
  317. package/dist/services/activity-log.js.map +1 -0
  318. package/dist/services/activity.d.ts +472 -0
  319. package/dist/services/activity.d.ts.map +1 -0
  320. package/dist/services/activity.js +134 -0
  321. package/dist/services/activity.js.map +1 -0
  322. package/dist/services/agent-enabled-skills.d.ts +9 -0
  323. package/dist/services/agent-enabled-skills.d.ts.map +1 -0
  324. package/dist/services/agent-enabled-skills.js +89 -0
  325. package/dist/services/agent-enabled-skills.js.map +1 -0
  326. package/dist/services/agent-instructions.d.ts +98 -0
  327. package/dist/services/agent-instructions.d.ts.map +1 -0
  328. package/dist/services/agent-instructions.js +596 -0
  329. package/dist/services/agent-instructions.js.map +1 -0
  330. package/dist/services/agent-name-pool.d.ts +10 -0
  331. package/dist/services/agent-name-pool.d.ts.map +1 -0
  332. package/dist/services/agent-name-pool.js +230 -0
  333. package/dist/services/agent-name-pool.js.map +1 -0
  334. package/dist/services/agent-permissions.d.ts +6 -0
  335. package/dist/services/agent-permissions.d.ts.map +1 -0
  336. package/dist/services/agent-permissions.js +18 -0
  337. package/dist/services/agent-permissions.js.map +1 -0
  338. package/dist/services/agent-run-context.d.ts +142 -0
  339. package/dist/services/agent-run-context.d.ts.map +1 -0
  340. package/dist/services/agent-run-context.js +451 -0
  341. package/dist/services/agent-run-context.js.map +1 -0
  342. package/dist/services/agents.d.ts +1713 -0
  343. package/dist/services/agents.d.ts.map +1 -0
  344. package/dist/services/agents.js +750 -0
  345. package/dist/services/agents.js.map +1 -0
  346. package/dist/services/approvals.d.ts +546 -0
  347. package/dist/services/approvals.d.ts.map +1 -0
  348. package/dist/services/approvals.js +212 -0
  349. package/dist/services/approvals.js.map +1 -0
  350. package/dist/services/assets.d.ts +33 -0
  351. package/dist/services/assets.d.ts.map +1 -0
  352. package/dist/services/assets.js +17 -0
  353. package/dist/services/assets.js.map +1 -0
  354. package/dist/services/automations.d.ts +135 -0
  355. package/dist/services/automations.d.ts.map +1 -0
  356. package/dist/services/automations.js +1105 -0
  357. package/dist/services/automations.js.map +1 -0
  358. package/dist/services/board-auth.d.ts +234 -0
  359. package/dist/services/board-auth.d.ts.map +1 -0
  360. package/dist/services/board-auth.js +295 -0
  361. package/dist/services/board-auth.js.map +1 -0
  362. package/dist/services/budgets.d.ts +38 -0
  363. package/dist/services/budgets.d.ts.map +1 -0
  364. package/dist/services/budgets.js +784 -0
  365. package/dist/services/budgets.js.map +1 -0
  366. package/dist/services/chat-assistant.d.ts +62 -0
  367. package/dist/services/chat-assistant.d.ts.map +1 -0
  368. package/dist/services/chat-assistant.js +943 -0
  369. package/dist/services/chat-assistant.js.map +1 -0
  370. package/dist/services/chat-generation-locks.d.ts +3 -0
  371. package/dist/services/chat-generation-locks.d.ts.map +1 -0
  372. package/dist/services/chat-generation-locks.js +16 -0
  373. package/dist/services/chat-generation-locks.js.map +1 -0
  374. package/dist/services/chats.d.ts +723 -0
  375. package/dist/services/chats.d.ts.map +1 -0
  376. package/dist/services/chats.js +1188 -0
  377. package/dist/services/chats.js.map +1 -0
  378. package/dist/services/costs.d.ts +114 -0
  379. package/dist/services/costs.d.ts.map +1 -0
  380. package/dist/services/costs.js +326 -0
  381. package/dist/services/costs.js.map +1 -0
  382. package/dist/services/cron.d.ts +80 -0
  383. package/dist/services/cron.d.ts.map +1 -0
  384. package/dist/services/cron.js +300 -0
  385. package/dist/services/cron.js.map +1 -0
  386. package/dist/services/dashboard.d.ts +26 -0
  387. package/dist/services/dashboard.d.ts.map +1 -0
  388. package/dist/services/dashboard.js +98 -0
  389. package/dist/services/dashboard.js.map +1 -0
  390. package/dist/services/default-agent-instructions.d.ts +9 -0
  391. package/dist/services/default-agent-instructions.d.ts.map +1 -0
  392. package/dist/services/default-agent-instructions.js +20 -0
  393. package/dist/services/default-agent-instructions.js.map +1 -0
  394. package/dist/services/documents.d.ts +164 -0
  395. package/dist/services/documents.d.ts.map +1 -0
  396. package/dist/services/documents.js +382 -0
  397. package/dist/services/documents.js.map +1 -0
  398. package/dist/services/execution-workspace-policy.d.ts +20 -0
  399. package/dist/services/execution-workspace-policy.d.ts.map +1 -0
  400. package/dist/services/execution-workspace-policy.js +172 -0
  401. package/dist/services/execution-workspace-policy.js.map +1 -0
  402. package/dist/services/execution-workspaces.d.ts +19 -0
  403. package/dist/services/execution-workspaces.d.ts.map +1 -0
  404. package/dist/services/execution-workspaces.js +87 -0
  405. package/dist/services/execution-workspaces.js.map +1 -0
  406. package/dist/services/finance.d.ts +93 -0
  407. package/dist/services/finance.d.ts.map +1 -0
  408. package/dist/services/finance.js +120 -0
  409. package/dist/services/finance.js.map +1 -0
  410. package/dist/services/goals.d.ts +433 -0
  411. package/dist/services/goals.d.ts.map +1 -0
  412. package/dist/services/goals.js +54 -0
  413. package/dist/services/goals.js.map +1 -0
  414. package/dist/services/heartbeat-run-summary.d.ts +2 -0
  415. package/dist/services/heartbeat-run-summary.d.ts.map +1 -0
  416. package/dist/services/heartbeat-run-summary.js +131 -0
  417. package/dist/services/heartbeat-run-summary.js.map +1 -0
  418. package/dist/services/heartbeat.d.ts +2 -0
  419. package/dist/services/heartbeat.d.ts.map +1 -0
  420. package/dist/services/heartbeat.js +2 -0
  421. package/dist/services/heartbeat.js.map +1 -0
  422. package/dist/services/hire-hook.d.ts +14 -0
  423. package/dist/services/hire-hook.d.ts.map +1 -0
  424. package/dist/services/hire-hook.js +85 -0
  425. package/dist/services/hire-hook.js.map +1 -0
  426. package/dist/services/index.d.ts +38 -0
  427. package/dist/services/index.d.ts.map +1 -0
  428. package/dist/services/index.js +38 -0
  429. package/dist/services/index.js.map +1 -0
  430. package/dist/services/instance-settings.d.ts +14 -0
  431. package/dist/services/instance-settings.d.ts.map +1 -0
  432. package/dist/services/instance-settings.js +158 -0
  433. package/dist/services/instance-settings.js.map +1 -0
  434. package/dist/services/issue-approvals.d.ts +56 -0
  435. package/dist/services/issue-approvals.d.ts.map +1 -0
  436. package/dist/services/issue-approvals.js +153 -0
  437. package/dist/services/issue-approvals.js.map +1 -0
  438. package/dist/services/issue-assignment-wakeup.d.ts +32 -0
  439. package/dist/services/issue-assignment-wakeup.d.ts.map +1 -0
  440. package/dist/services/issue-assignment-wakeup.js +43 -0
  441. package/dist/services/issue-assignment-wakeup.js.map +1 -0
  442. package/dist/services/issue-goal-fallback.d.ts +15 -0
  443. package/dist/services/issue-goal-fallback.d.ts.map +1 -0
  444. package/dist/services/issue-goal-fallback.js +15 -0
  445. package/dist/services/issue-goal-fallback.js.map +1 -0
  446. package/dist/services/issues.d.ts +580 -0
  447. package/dist/services/issues.d.ts.map +1 -0
  448. package/dist/services/issues.js +1464 -0
  449. package/dist/services/issues.js.map +1 -0
  450. package/dist/services/knowledge-portability/organization-portability.d.ts +23 -0
  451. package/dist/services/knowledge-portability/organization-portability.d.ts.map +1 -0
  452. package/dist/services/knowledge-portability/organization-portability.js +3795 -0
  453. package/dist/services/knowledge-portability/organization-portability.js.map +1 -0
  454. package/dist/services/knowledge-portability/organization-skills.d.ts +105 -0
  455. package/dist/services/knowledge-portability/organization-skills.d.ts.map +1 -0
  456. package/dist/services/knowledge-portability/organization-skills.js +3172 -0
  457. package/dist/services/knowledge-portability/organization-skills.js.map +1 -0
  458. package/dist/services/live-events.d.ts +17 -0
  459. package/dist/services/live-events.d.ts.map +1 -0
  460. package/dist/services/live-events.js +33 -0
  461. package/dist/services/live-events.js.map +1 -0
  462. package/dist/services/messenger.d.ts +111 -0
  463. package/dist/services/messenger.d.ts.map +1 -0
  464. package/dist/services/messenger.js +774 -0
  465. package/dist/services/messenger.js.map +1 -0
  466. package/dist/services/native-path-picker.d.ts +18 -0
  467. package/dist/services/native-path-picker.d.ts.map +1 -0
  468. package/dist/services/native-path-picker.js +119 -0
  469. package/dist/services/native-path-picker.js.map +1 -0
  470. package/dist/services/operator-profile.d.ts +7 -0
  471. package/dist/services/operator-profile.d.ts.map +1 -0
  472. package/dist/services/operator-profile.js +66 -0
  473. package/dist/services/operator-profile.js.map +1 -0
  474. package/dist/services/organization-export-readme.d.ts +17 -0
  475. package/dist/services/organization-export-readme.d.ts.map +1 -0
  476. package/dist/services/organization-export-readme.js +148 -0
  477. package/dist/services/organization-export-readme.js.map +1 -0
  478. package/dist/services/organization-portability.d.ts +2 -0
  479. package/dist/services/organization-portability.d.ts.map +1 -0
  480. package/dist/services/organization-portability.js +2 -0
  481. package/dist/services/organization-portability.js.map +1 -0
  482. package/dist/services/organization-skills.d.ts +2 -0
  483. package/dist/services/organization-skills.d.ts.map +1 -0
  484. package/dist/services/organization-skills.js +2 -0
  485. package/dist/services/organization-skills.js.map +1 -0
  486. package/dist/services/organization-workspace-browser.d.ts +8 -0
  487. package/dist/services/organization-workspace-browser.d.ts.map +1 -0
  488. package/dist/services/organization-workspace-browser.js +229 -0
  489. package/dist/services/organization-workspace-browser.js.map +1 -0
  490. package/dist/services/organization-workspace.d.ts +5 -0
  491. package/dist/services/organization-workspace.d.ts.map +1 -0
  492. package/dist/services/organization-workspace.js +71 -0
  493. package/dist/services/organization-workspace.js.map +1 -0
  494. package/dist/services/orgs.d.ts +163 -0
  495. package/dist/services/orgs.d.ts.map +1 -0
  496. package/dist/services/orgs.js +327 -0
  497. package/dist/services/orgs.js.map +1 -0
  498. package/dist/services/plugin-capability-validator.d.ts +108 -0
  499. package/dist/services/plugin-capability-validator.d.ts.map +1 -0
  500. package/dist/services/plugin-capability-validator.js +268 -0
  501. package/dist/services/plugin-capability-validator.js.map +1 -0
  502. package/dist/services/plugin-config-validator.d.ts +26 -0
  503. package/dist/services/plugin-config-validator.d.ts.map +1 -0
  504. package/dist/services/plugin-config-validator.js +41 -0
  505. package/dist/services/plugin-config-validator.js.map +1 -0
  506. package/dist/services/plugin-dev-watcher.d.ts +30 -0
  507. package/dist/services/plugin-dev-watcher.d.ts.map +1 -0
  508. package/dist/services/plugin-dev-watcher.js +241 -0
  509. package/dist/services/plugin-dev-watcher.js.map +1 -0
  510. package/dist/services/plugin-event-bus.d.ts +149 -0
  511. package/dist/services/plugin-event-bus.d.ts.map +1 -0
  512. package/dist/services/plugin-event-bus.js +258 -0
  513. package/dist/services/plugin-event-bus.js.map +1 -0
  514. package/dist/services/plugin-host-service-cleanup.d.ts +14 -0
  515. package/dist/services/plugin-host-service-cleanup.d.ts.map +1 -0
  516. package/dist/services/plugin-host-service-cleanup.js +37 -0
  517. package/dist/services/plugin-host-service-cleanup.js.map +1 -0
  518. package/dist/services/plugin-host-services.d.ts +13 -0
  519. package/dist/services/plugin-host-services.d.ts.map +1 -0
  520. package/dist/services/plugin-host-services.js +973 -0
  521. package/dist/services/plugin-host-services.js.map +1 -0
  522. package/dist/services/plugin-job-coordinator.d.ts +81 -0
  523. package/dist/services/plugin-job-coordinator.d.ts.map +1 -0
  524. package/dist/services/plugin-job-coordinator.js +172 -0
  525. package/dist/services/plugin-job-coordinator.js.map +1 -0
  526. package/dist/services/plugin-job-scheduler.d.ts +163 -0
  527. package/dist/services/plugin-job-scheduler.d.ts.map +1 -0
  528. package/dist/services/plugin-job-scheduler.js +564 -0
  529. package/dist/services/plugin-job-scheduler.js.map +1 -0
  530. package/dist/services/plugin-job-store.d.ts +208 -0
  531. package/dist/services/plugin-job-store.d.ts.map +1 -0
  532. package/dist/services/plugin-job-store.js +350 -0
  533. package/dist/services/plugin-job-store.js.map +1 -0
  534. package/dist/services/plugin-lifecycle.d.ts +203 -0
  535. package/dist/services/plugin-lifecycle.d.ts.map +1 -0
  536. package/dist/services/plugin-lifecycle.js +476 -0
  537. package/dist/services/plugin-lifecycle.js.map +1 -0
  538. package/dist/services/plugin-loader.d.ts +441 -0
  539. package/dist/services/plugin-loader.d.ts.map +1 -0
  540. package/dist/services/plugin-loader.js +1192 -0
  541. package/dist/services/plugin-loader.js.map +1 -0
  542. package/dist/services/plugin-log-retention.d.ts +20 -0
  543. package/dist/services/plugin-log-retention.d.ts.map +1 -0
  544. package/dist/services/plugin-log-retention.js +63 -0
  545. package/dist/services/plugin-log-retention.js.map +1 -0
  546. package/dist/services/plugin-manifest-validator.d.ts +79 -0
  547. package/dist/services/plugin-manifest-validator.d.ts.map +1 -0
  548. package/dist/services/plugin-manifest-validator.js +84 -0
  549. package/dist/services/plugin-manifest-validator.js.map +1 -0
  550. package/dist/services/plugin-registry.d.ts +2542 -0
  551. package/dist/services/plugin-registry.d.ts.map +1 -0
  552. package/dist/services/plugin-registry.js +539 -0
  553. package/dist/services/plugin-registry.js.map +1 -0
  554. package/dist/services/plugin-runtime-sandbox.d.ts +40 -0
  555. package/dist/services/plugin-runtime-sandbox.d.ts.map +1 -0
  556. package/dist/services/plugin-runtime-sandbox.js +154 -0
  557. package/dist/services/plugin-runtime-sandbox.js.map +1 -0
  558. package/dist/services/plugin-secrets-handler.d.ts +81 -0
  559. package/dist/services/plugin-secrets-handler.d.ts.map +1 -0
  560. package/dist/services/plugin-secrets-handler.js +275 -0
  561. package/dist/services/plugin-secrets-handler.js.map +1 -0
  562. package/dist/services/plugin-state-store.d.ts +92 -0
  563. package/dist/services/plugin-state-store.d.ts.map +1 -0
  564. package/dist/services/plugin-state-store.js +190 -0
  565. package/dist/services/plugin-state-store.js.map +1 -0
  566. package/dist/services/plugin-stream-bus.d.ts +29 -0
  567. package/dist/services/plugin-stream-bus.d.ts.map +1 -0
  568. package/dist/services/plugin-stream-bus.js +48 -0
  569. package/dist/services/plugin-stream-bus.js.map +1 -0
  570. package/dist/services/plugin-tool-dispatcher.d.ts +180 -0
  571. package/dist/services/plugin-tool-dispatcher.d.ts.map +1 -0
  572. package/dist/services/plugin-tool-dispatcher.js +224 -0
  573. package/dist/services/plugin-tool-dispatcher.js.map +1 -0
  574. package/dist/services/plugin-tool-registry.d.ts +192 -0
  575. package/dist/services/plugin-tool-registry.d.ts.map +1 -0
  576. package/dist/services/plugin-tool-registry.js +224 -0
  577. package/dist/services/plugin-tool-registry.js.map +1 -0
  578. package/dist/services/plugin-worker-manager.d.ts +260 -0
  579. package/dist/services/plugin-worker-manager.d.ts.map +1 -0
  580. package/dist/services/plugin-worker-manager.js +835 -0
  581. package/dist/services/plugin-worker-manager.js.map +1 -0
  582. package/dist/services/projects.d.ts +92 -0
  583. package/dist/services/projects.d.ts.map +1 -0
  584. package/dist/services/projects.js +705 -0
  585. package/dist/services/projects.js.map +1 -0
  586. package/dist/services/quota-windows.d.ts +9 -0
  587. package/dist/services/quota-windows.d.ts.map +1 -0
  588. package/dist/services/quota-windows.js +56 -0
  589. package/dist/services/quota-windows.js.map +1 -0
  590. package/dist/services/resource-catalog.d.ts +29 -0
  591. package/dist/services/resource-catalog.d.ts.map +1 -0
  592. package/dist/services/resource-catalog.js +298 -0
  593. package/dist/services/resource-catalog.js.map +1 -0
  594. package/dist/services/run-intelligence.d.ts +31 -0
  595. package/dist/services/run-intelligence.d.ts.map +1 -0
  596. package/dist/services/run-intelligence.js +315 -0
  597. package/dist/services/run-intelligence.js.map +1 -0
  598. package/dist/services/run-log-store.d.ts +36 -0
  599. package/dist/services/run-log-store.d.ts.map +1 -0
  600. package/dist/services/run-log-store.js +114 -0
  601. package/dist/services/run-log-store.js.map +1 -0
  602. package/dist/services/runtime-kernel/heartbeat.d.ts +882 -0
  603. package/dist/services/runtime-kernel/heartbeat.d.ts.map +1 -0
  604. package/dist/services/runtime-kernel/heartbeat.js +4345 -0
  605. package/dist/services/runtime-kernel/heartbeat.js.map +1 -0
  606. package/dist/services/runtime-trace-metadata.d.ts +12 -0
  607. package/dist/services/runtime-trace-metadata.d.ts.map +1 -0
  608. package/dist/services/runtime-trace-metadata.js +13 -0
  609. package/dist/services/runtime-trace-metadata.js.map +1 -0
  610. package/dist/services/secrets.d.ts +511 -0
  611. package/dist/services/secrets.d.ts.map +1 -0
  612. package/dist/services/secrets.js +289 -0
  613. package/dist/services/secrets.js.map +1 -0
  614. package/dist/services/sidebar-badges.d.ts +11 -0
  615. package/dist/services/sidebar-badges.d.ts.map +1 -0
  616. package/dist/services/sidebar-badges.js +43 -0
  617. package/dist/services/sidebar-badges.js.map +1 -0
  618. package/dist/services/work-products.d.ts +14 -0
  619. package/dist/services/work-products.d.ts.map +1 -0
  620. package/dist/services/work-products.js +100 -0
  621. package/dist/services/work-products.js.map +1 -0
  622. package/dist/services/workspace-operation-log-store.d.ts +35 -0
  623. package/dist/services/workspace-operation-log-store.d.ts.map +1 -0
  624. package/dist/services/workspace-operation-log-store.js +115 -0
  625. package/dist/services/workspace-operation-log-store.js.map +1 -0
  626. package/dist/services/workspace-operations.d.ts +46 -0
  627. package/dist/services/workspace-operations.d.ts.map +1 -0
  628. package/dist/services/workspace-operations.js +237 -0
  629. package/dist/services/workspace-operations.js.map +1 -0
  630. package/dist/services/workspace-runtime.d.ts +164 -0
  631. package/dist/services/workspace-runtime.d.ts.map +1 -0
  632. package/dist/services/workspace-runtime.js +1235 -0
  633. package/dist/services/workspace-runtime.js.map +1 -0
  634. package/dist/startup-banner.d.ts +31 -0
  635. package/dist/startup-banner.d.ts.map +1 -0
  636. package/dist/startup-banner.js +121 -0
  637. package/dist/startup-banner.js.map +1 -0
  638. package/dist/storage/index.d.ts +6 -0
  639. package/dist/storage/index.d.ts.map +1 -0
  640. package/dist/storage/index.js +29 -0
  641. package/dist/storage/index.js.map +1 -0
  642. package/dist/storage/local-disk-provider.d.ts +3 -0
  643. package/dist/storage/local-disk-provider.d.ts.map +1 -0
  644. package/dist/storage/local-disk-provider.js +79 -0
  645. package/dist/storage/local-disk-provider.js.map +1 -0
  646. package/dist/storage/provider-registry.d.ts +4 -0
  647. package/dist/storage/provider-registry.d.ts.map +1 -0
  648. package/dist/storage/provider-registry.js +15 -0
  649. package/dist/storage/provider-registry.js.map +1 -0
  650. package/dist/storage/s3-provider.d.ts +11 -0
  651. package/dist/storage/s3-provider.d.ts.map +1 -0
  652. package/dist/storage/s3-provider.js +123 -0
  653. package/dist/storage/s3-provider.js.map +1 -0
  654. package/dist/storage/service.d.ts +3 -0
  655. package/dist/storage/service.d.ts.map +1 -0
  656. package/dist/storage/service.js +120 -0
  657. package/dist/storage/service.js.map +1 -0
  658. package/dist/storage/types.d.ts +55 -0
  659. package/dist/storage/types.d.ts.map +1 -0
  660. package/dist/storage/types.js +2 -0
  661. package/dist/storage/types.js.map +1 -0
  662. package/dist/ui-branding.d.ts +14 -0
  663. package/dist/ui-branding.d.ts.map +1 -0
  664. package/dist/ui-branding.js +201 -0
  665. package/dist/ui-branding.js.map +1 -0
  666. package/dist/version.d.ts +2 -0
  667. package/dist/version.d.ts.map +1 -0
  668. package/dist/version.js +5 -0
  669. package/dist/version.js.map +1 -0
  670. package/package.json +101 -0
  671. package/resources/bundled-skills/para-memory-files/SKILL.md +114 -0
  672. package/resources/bundled-skills/para-memory-files/references/schemas.md +35 -0
  673. package/resources/bundled-skills/rudder/SKILL.md +265 -0
  674. package/resources/bundled-skills/rudder/references/api-reference.md +253 -0
  675. package/resources/bundled-skills/rudder/references/cli-reference.md +67 -0
  676. package/resources/bundled-skills/rudder/references/organization-skills.md +155 -0
  677. package/resources/bundled-skills/rudder-create-agent/SKILL.md +166 -0
  678. package/resources/bundled-skills/rudder-create-agent/references/api-reference.md +172 -0
  679. package/resources/bundled-skills/rudder-create-agent/references/cli-reference.md +126 -0
  680. package/resources/bundled-skills/rudder-create-plugin/SKILL.md +103 -0
  681. package/resources/community-skills/deep-research/README.md +124 -0
  682. package/resources/community-skills/deep-research/SKILL.md +107 -0
  683. package/resources/community-skills/deep-research/reference/continuation.md +169 -0
  684. package/resources/community-skills/deep-research/reference/html-generation.md +103 -0
  685. package/resources/community-skills/deep-research/reference/methodology.md +421 -0
  686. package/resources/community-skills/deep-research/reference/quality-gates.md +197 -0
  687. package/resources/community-skills/deep-research/reference/report-assembly.md +119 -0
  688. package/resources/community-skills/deep-research/reference/weasyprint_guidelines.md +324 -0
  689. package/resources/community-skills/deep-research/requirements.txt +14 -0
  690. package/resources/community-skills/deep-research/scripts/citation_manager.py +177 -0
  691. package/resources/community-skills/deep-research/scripts/md_to_html.py +330 -0
  692. package/resources/community-skills/deep-research/scripts/research_engine.py +582 -0
  693. package/resources/community-skills/deep-research/scripts/source_evaluator.py +292 -0
  694. package/resources/community-skills/deep-research/scripts/validate_report.py +403 -0
  695. package/resources/community-skills/deep-research/scripts/verify_citations.py +426 -0
  696. package/resources/community-skills/deep-research/scripts/verify_html.py +220 -0
  697. package/resources/community-skills/deep-research/templates/mckinsey_report_template.html +443 -0
  698. package/resources/community-skills/deep-research/templates/report_template.md +433 -0
  699. package/resources/community-skills/skill-creator/SKILL.md +9 -0
  700. package/resources/community-skills/software-product-advisor/SKILL.md +290 -0
  701. package/skills/para-memory-files/SKILL.md +114 -0
  702. package/skills/para-memory-files/references/schemas.md +35 -0
  703. package/skills/rudder/SKILL.md +265 -0
  704. package/skills/rudder/references/api-reference.md +253 -0
  705. package/skills/rudder/references/cli-reference.md +67 -0
  706. package/skills/rudder/references/organization-skills.md +155 -0
  707. package/skills/rudder-create-agent/SKILL.md +166 -0
  708. package/skills/rudder-create-agent/references/api-reference.md +172 -0
  709. package/skills/rudder-create-agent/references/cli-reference.md +126 -0
  710. package/skills/rudder-create-plugin/SKILL.md +103 -0
  711. package/ui-dist/android-chrome-192x192.png +0 -0
  712. package/ui-dist/android-chrome-512x512.png +0 -0
  713. package/ui-dist/android-chrome-maskable-512x512.png +0 -0
  714. package/ui-dist/apple-touch-icon.png +0 -0
  715. package/ui-dist/assets/_basePickBy-CjUu04_e.js +1 -0
  716. package/ui-dist/assets/_baseUniq-C9YNlrVG.js +1 -0
  717. package/ui-dist/assets/apl-B4CMkyY2.js +1 -0
  718. package/ui-dist/assets/arc-CSSZfktq.js +1 -0
  719. package/ui-dist/assets/architectureDiagram-2XIMDMQ5-Co78JKUi.js +36 -0
  720. package/ui-dist/assets/asciiarmor-Df11BRmG.js +1 -0
  721. package/ui-dist/assets/asn1-EdZsLKOL.js +1 -0
  722. package/ui-dist/assets/asterisk-B-8jnY81.js +1 -0
  723. package/ui-dist/assets/blockDiagram-WCTKOSBZ-2KUUIzzz.js +132 -0
  724. package/ui-dist/assets/brainfuck-C4LP7Hcl.js +1 -0
  725. package/ui-dist/assets/c4Diagram-IC4MRINW-C6pq8tPP.js +10 -0
  726. package/ui-dist/assets/channel-BEODbRMk.js +1 -0
  727. package/ui-dist/assets/chunk-4BX2VUAB-ojCLkixe.js +1 -0
  728. package/ui-dist/assets/chunk-55IACEB6-MGONqzmz.js +1 -0
  729. package/ui-dist/assets/chunk-FMBD7UC4-CmGuLv2P.js +15 -0
  730. package/ui-dist/assets/chunk-JSJVCQXG-BNBefVr6.js +1 -0
  731. package/ui-dist/assets/chunk-KX2RTZJC-DIGBQLn5.js +1 -0
  732. package/ui-dist/assets/chunk-NQ4KR5QH-_KEutsaQ.js +220 -0
  733. package/ui-dist/assets/chunk-QZHKN3VN-B6pzyuwm.js +1 -0
  734. package/ui-dist/assets/chunk-WL4C6EOR-B8NDzcfm.js +189 -0
  735. package/ui-dist/assets/classDiagram-VBA2DB6C-CsSqaaRj.js +1 -0
  736. package/ui-dist/assets/classDiagram-v2-RAHNMMFH-CsSqaaRj.js +1 -0
  737. package/ui-dist/assets/clike-B9uivgTg.js +1 -0
  738. package/ui-dist/assets/clojure-BMjYHr_A.js +1 -0
  739. package/ui-dist/assets/clone-5oWMCI0u.js +1 -0
  740. package/ui-dist/assets/cmake-BQqOBYOt.js +1 -0
  741. package/ui-dist/assets/cobol-CWcv1MsR.js +1 -0
  742. package/ui-dist/assets/coffeescript-S37ZYGWr.js +1 -0
  743. package/ui-dist/assets/commonlisp-DBKNyK5s.js +1 -0
  744. package/ui-dist/assets/cose-bilkent-S5V4N54A-B1t6ulcV.js +1 -0
  745. package/ui-dist/assets/crystal-SjHAIU92.js +1 -0
  746. package/ui-dist/assets/css-BnMrqG3P.js +1 -0
  747. package/ui-dist/assets/cypher-C_CwsFkJ.js +1 -0
  748. package/ui-dist/assets/cytoscape.esm-BQaXIfA_.js +331 -0
  749. package/ui-dist/assets/d-pRatUO7H.js +1 -0
  750. package/ui-dist/assets/dagre-KLK3FWXG-DWVC5_HJ.js +4 -0
  751. package/ui-dist/assets/defaultLocale-DX6XiGOO.js +1 -0
  752. package/ui-dist/assets/diagram-E7M64L7V-C4ztYLox.js +24 -0
  753. package/ui-dist/assets/diagram-IFDJBPK2-DtWBGLnA.js +43 -0
  754. package/ui-dist/assets/diagram-P4PSJMXO-BiqiI4Df.js +24 -0
  755. package/ui-dist/assets/diff-DbItnlRl.js +1 -0
  756. package/ui-dist/assets/dockerfile-BKs6k2Af.js +1 -0
  757. package/ui-dist/assets/dtd-DF_7sFjM.js +1 -0
  758. package/ui-dist/assets/dylan-DwRh75JA.js +1 -0
  759. package/ui-dist/assets/ebnf-CDyGwa7X.js +1 -0
  760. package/ui-dist/assets/ecl-Cabwm37j.js +1 -0
  761. package/ui-dist/assets/eiffel-CnydiIhH.js +1 -0
  762. package/ui-dist/assets/elm-vLlmbW-K.js +1 -0
  763. package/ui-dist/assets/erDiagram-INFDFZHY-CUhr9rIh.js +70 -0
  764. package/ui-dist/assets/erlang-BNw1qcRV.js +1 -0
  765. package/ui-dist/assets/factor-kuTfRLto.js +1 -0
  766. package/ui-dist/assets/fcl-Kvtd6kyn.js +1 -0
  767. package/ui-dist/assets/flowDiagram-PKNHOUZH-BEqBmNL-.js +162 -0
  768. package/ui-dist/assets/forth-Ffai-XNe.js +1 -0
  769. package/ui-dist/assets/fortran-DYz_wnZ1.js +1 -0
  770. package/ui-dist/assets/ganttDiagram-A5KZAMGK-CdeWhdno.js +292 -0
  771. package/ui-dist/assets/gas-Bneqetm1.js +1 -0
  772. package/ui-dist/assets/gherkin-heZmZLOM.js +1 -0
  773. package/ui-dist/assets/gitGraphDiagram-K3NZZRJ6-CgG66QFg.js +65 -0
  774. package/ui-dist/assets/graph-rmownl79.js +1 -0
  775. package/ui-dist/assets/groovy-D9Dt4D0W.js +1 -0
  776. package/ui-dist/assets/haskell-Cw1EW3IL.js +1 -0
  777. package/ui-dist/assets/haxe-H-WmDvRZ.js +1 -0
  778. package/ui-dist/assets/http-DBlCnlav.js +1 -0
  779. package/ui-dist/assets/idl-BEugSyMb.js +1 -0
  780. package/ui-dist/assets/index-B1YyDqaG.js +1 -0
  781. package/ui-dist/assets/index-B7exNxYd.js +1 -0
  782. package/ui-dist/assets/index-BIuriVDl.js +1 -0
  783. package/ui-dist/assets/index-BT9rfwYt.js +1 -0
  784. package/ui-dist/assets/index-BZhmacJG.js +1 -0
  785. package/ui-dist/assets/index-B_ebS3U_.js +3 -0
  786. package/ui-dist/assets/index-BnQqZOsc.js +1 -0
  787. package/ui-dist/assets/index-BwPbAax6.js +1 -0
  788. package/ui-dist/assets/index-C5i670o5.js +1 -0
  789. package/ui-dist/assets/index-C9KwE7Yr.js +1 -0
  790. package/ui-dist/assets/index-CDId_UjP.js +1 -0
  791. package/ui-dist/assets/index-CI9ydSGM.js +1 -0
  792. package/ui-dist/assets/index-CKpm3WGI.css +1 -0
  793. package/ui-dist/assets/index-CMP_bzP3.js +2 -0
  794. package/ui-dist/assets/index-CRcHIoCW.js +1 -0
  795. package/ui-dist/assets/index-DZqNY-Lg.js +1 -0
  796. package/ui-dist/assets/index-DbDKJhW-.js +7 -0
  797. package/ui-dist/assets/index-Dkg6MwQ_.js +1 -0
  798. package/ui-dist/assets/index-Dn0iitKg.js +1 -0
  799. package/ui-dist/assets/index-GvHywIOA.js +1323 -0
  800. package/ui-dist/assets/index-WtX4Y4Fx.js +13 -0
  801. package/ui-dist/assets/index-iyC5PHC3.js +6 -0
  802. package/ui-dist/assets/index-jMlzlqoV.js +1 -0
  803. package/ui-dist/assets/index-pTIOLGTe.js +1 -0
  804. package/ui-dist/assets/infoDiagram-LFFYTUFH-CEhdbTYQ.js +2 -0
  805. package/ui-dist/assets/init-Gi6I4Gst.js +1 -0
  806. package/ui-dist/assets/ishikawaDiagram-PHBUUO56-g9GiiXI2.js +70 -0
  807. package/ui-dist/assets/javascript-iXu5QeM3.js +1 -0
  808. package/ui-dist/assets/journeyDiagram-4ABVD52K-CheeZzlg.js +139 -0
  809. package/ui-dist/assets/julia-DuME0IfC.js +1 -0
  810. package/ui-dist/assets/kanban-definition-K7BYSVSG-BTpuAgUJ.js +89 -0
  811. package/ui-dist/assets/katex-B1X10hvy.js +261 -0
  812. package/ui-dist/assets/layout-CuBgufef.js +1 -0
  813. package/ui-dist/assets/linear-CnXO6wXw.js +1 -0
  814. package/ui-dist/assets/livescript-BwQOo05w.js +1 -0
  815. package/ui-dist/assets/lua-BgMRiT3U.js +1 -0
  816. package/ui-dist/assets/mathematica-DTrFuWx2.js +1 -0
  817. package/ui-dist/assets/mbox-CNhZ1qSd.js +1 -0
  818. package/ui-dist/assets/mermaid.core-DVaYxfh9.js +255 -0
  819. package/ui-dist/assets/mindmap-definition-YRQLILUH-00nAuexq.js +68 -0
  820. package/ui-dist/assets/mirc-CjQqDB4T.js +1 -0
  821. package/ui-dist/assets/mllike-CXdrOF99.js +1 -0
  822. package/ui-dist/assets/modelica-Dc1JOy9r.js +1 -0
  823. package/ui-dist/assets/mscgen-BA5vi2Kp.js +1 -0
  824. package/ui-dist/assets/mumps-BT43cFF4.js +1 -0
  825. package/ui-dist/assets/nginx-DdIZxoE0.js +1 -0
  826. package/ui-dist/assets/nsis-LdVXkNf5.js +1 -0
  827. package/ui-dist/assets/ntriples-BfvgReVJ.js +1 -0
  828. package/ui-dist/assets/octave-Ck1zUtKM.js +1 -0
  829. package/ui-dist/assets/ordinal-Cboi1Yqb.js +1 -0
  830. package/ui-dist/assets/oz-BzwKVEFT.js +1 -0
  831. package/ui-dist/assets/pascal--L3eBynH.js +1 -0
  832. package/ui-dist/assets/perl-CdXCOZ3F.js +1 -0
  833. package/ui-dist/assets/pieDiagram-SKSYHLDU-NaOgRqIj.js +30 -0
  834. package/ui-dist/assets/pig-CevX1Tat.js +1 -0
  835. package/ui-dist/assets/powershell-CFHJl5sT.js +1 -0
  836. package/ui-dist/assets/properties-C78fOPTZ.js +1 -0
  837. package/ui-dist/assets/protobuf-ChK-085T.js +1 -0
  838. package/ui-dist/assets/pug-DeIclll2.js +1 -0
  839. package/ui-dist/assets/puppet-DMA9R1ak.js +1 -0
  840. package/ui-dist/assets/python-BuPzkPfP.js +1 -0
  841. package/ui-dist/assets/q-pXgVlZs6.js +1 -0
  842. package/ui-dist/assets/quadrantDiagram-337W2JSQ-Bnf9OCW0.js +7 -0
  843. package/ui-dist/assets/r-B6wPVr8A.js +1 -0
  844. package/ui-dist/assets/requirementDiagram-Z7DCOOCP-BiacZTTh.js +73 -0
  845. package/ui-dist/assets/rpm-CTu-6PCP.js +1 -0
  846. package/ui-dist/assets/ruby-B2Rjki9n.js +1 -0
  847. package/ui-dist/assets/sankeyDiagram-WA2Y5GQK-DOuD4D2Q.js +10 -0
  848. package/ui-dist/assets/sas-B4kiWyti.js +1 -0
  849. package/ui-dist/assets/scheme-C41bIUwD.js +1 -0
  850. package/ui-dist/assets/sequenceDiagram-2WXFIKYE-oV3M_w-H.js +145 -0
  851. package/ui-dist/assets/shell-CjFT_Tl9.js +1 -0
  852. package/ui-dist/assets/sieve-C3Gn_uJK.js +1 -0
  853. package/ui-dist/assets/simple-mode-GW_nhZxv.js +1 -0
  854. package/ui-dist/assets/smalltalk-CnHTOXQT.js +1 -0
  855. package/ui-dist/assets/solr-DehyRSwq.js +1 -0
  856. package/ui-dist/assets/sparql-DkYu6x3z.js +1 -0
  857. package/ui-dist/assets/spreadsheet-BCZA_wO0.js +1 -0
  858. package/ui-dist/assets/sql-D0XecflT.js +1 -0
  859. package/ui-dist/assets/stateDiagram-RAJIS63D-CdRc2Pqb.js +1 -0
  860. package/ui-dist/assets/stateDiagram-v2-FVOUBMTO-CIMHFJYg.js +1 -0
  861. package/ui-dist/assets/stex-C3f8Ysf7.js +1 -0
  862. package/ui-dist/assets/stylus-B533Al4x.js +1 -0
  863. package/ui-dist/assets/swift-BzpIVaGY.js +1 -0
  864. package/ui-dist/assets/tcl-DVfN8rqt.js +1 -0
  865. package/ui-dist/assets/textile-CnDTJFAw.js +1 -0
  866. package/ui-dist/assets/tiddlywiki-DO-Gjzrf.js +1 -0
  867. package/ui-dist/assets/tiki-DGYXhP31.js +1 -0
  868. package/ui-dist/assets/timeline-definition-YZTLITO2-BCWQDIwt.js +61 -0
  869. package/ui-dist/assets/toml-Bm5Em-hy.js +1 -0
  870. package/ui-dist/assets/treemap-KZPCXAKY-BvsIxXAi.js +162 -0
  871. package/ui-dist/assets/troff-wAsdV37c.js +1 -0
  872. package/ui-dist/assets/ttcn-CfJYG6tj.js +1 -0
  873. package/ui-dist/assets/ttcn-cfg-B9xdYoR4.js +1 -0
  874. package/ui-dist/assets/turtle-B1tBg_DP.js +1 -0
  875. package/ui-dist/assets/vb-CmGdzxic.js +1 -0
  876. package/ui-dist/assets/vbscript-BuJXcnF6.js +1 -0
  877. package/ui-dist/assets/velocity-D8B20fx6.js +1 -0
  878. package/ui-dist/assets/vennDiagram-LZ73GAT5-BzibHs4r.js +34 -0
  879. package/ui-dist/assets/verilog-C6RDOZhf.js +1 -0
  880. package/ui-dist/assets/vhdl-lSbBsy5d.js +1 -0
  881. package/ui-dist/assets/webidl-ZXfAyPTL.js +1 -0
  882. package/ui-dist/assets/xquery-DzFWVndE.js +1 -0
  883. package/ui-dist/assets/xychartDiagram-JWTSCODW-CX_Xt_y-.js +7 -0
  884. package/ui-dist/assets/yacas-BJ4BC0dw.js +1 -0
  885. package/ui-dist/assets/z80-Hz9HOZM7.js +1 -0
  886. package/ui-dist/brands/opencode-logo-dark-square.svg +18 -0
  887. package/ui-dist/brands/opencode-logo-light-square.svg +18 -0
  888. package/ui-dist/favicon-16x16.png +0 -0
  889. package/ui-dist/favicon-32x32.png +0 -0
  890. package/ui-dist/favicon-dev-16x16.png +0 -0
  891. package/ui-dist/favicon-dev-32x32.png +0 -0
  892. package/ui-dist/favicon-dev.ico +0 -0
  893. package/ui-dist/favicon.ico +0 -0
  894. package/ui-dist/favicon.svg +1 -0
  895. package/ui-dist/index.html +61 -0
  896. package/ui-dist/rudder-logo.png +0 -0
  897. package/ui-dist/site.webmanifest +30 -0
  898. package/ui-dist/sw.js +42 -0
  899. package/ui-dist/worktree-favicon-16x16.png +0 -0
  900. package/ui-dist/worktree-favicon-32x32.png +0 -0
  901. package/ui-dist/worktree-favicon.ico +0 -0
  902. package/ui-dist/worktree-favicon.svg +1 -0
@@ -0,0 +1,705 @@
1
+ import { and, asc, desc, eq, inArray } from "drizzle-orm";
2
+ import { projects, projectGoals, goals, projectWorkspaces } from "@rudderhq/db";
3
+ import { PROJECT_COLORS, deriveProjectUrlKey, isUuidLike, normalizeProjectUrlKey, } from "@rudderhq/shared";
4
+ import { listWorkspaceRuntimeServicesForProjectWorkspaces } from "./workspace-runtime.js";
5
+ import { parseProjectExecutionWorkspacePolicy } from "./execution-workspace-policy.js";
6
+ import { listProjectResourceAttachmentsByProjectIds, replaceProjectResourceAttachments, } from "./resource-catalog.js";
7
+ import { ensureOrganizationWorkspaceLayout, resolveOrganizationWorkspaceRoot, } from "../home-paths.js";
8
+ const REPO_ONLY_CWD_SENTINEL = "/__paperclip_repo_only__";
9
+ /** Batch-load goal refs for a set of projects. */
10
+ async function attachGoals(db, rows) {
11
+ if (rows.length === 0)
12
+ return [];
13
+ const projectIds = rows.map((r) => r.id);
14
+ // Fetch join rows + goal titles in one query
15
+ const links = await db
16
+ .select({
17
+ projectId: projectGoals.projectId,
18
+ goalId: projectGoals.goalId,
19
+ goalTitle: goals.title,
20
+ })
21
+ .from(projectGoals)
22
+ .innerJoin(goals, eq(projectGoals.goalId, goals.id))
23
+ .where(inArray(projectGoals.projectId, projectIds));
24
+ const map = new Map();
25
+ for (const link of links) {
26
+ let arr = map.get(link.projectId);
27
+ if (!arr) {
28
+ arr = [];
29
+ map.set(link.projectId, arr);
30
+ }
31
+ arr.push({ id: link.goalId, title: link.goalTitle });
32
+ }
33
+ return rows.map((r) => {
34
+ const g = map.get(r.id) ?? [];
35
+ return {
36
+ ...r,
37
+ urlKey: deriveProjectUrlKey(r.name, r.id),
38
+ goalIds: g.map((x) => x.id),
39
+ goals: g,
40
+ executionWorkspacePolicy: parseProjectExecutionWorkspacePolicy(r.executionWorkspacePolicy),
41
+ codebase: deriveProjectCodebase({ orgId: r.orgId }),
42
+ resources: [],
43
+ workspaces: [],
44
+ primaryWorkspace: null,
45
+ };
46
+ });
47
+ }
48
+ function toRuntimeService(row) {
49
+ return {
50
+ id: row.id,
51
+ orgId: row.orgId,
52
+ projectId: row.projectId ?? null,
53
+ projectWorkspaceId: row.projectWorkspaceId ?? null,
54
+ executionWorkspaceId: row.executionWorkspaceId ?? null,
55
+ issueId: row.issueId ?? null,
56
+ scopeType: row.scopeType,
57
+ scopeId: row.scopeId ?? null,
58
+ serviceName: row.serviceName,
59
+ status: row.status,
60
+ lifecycle: row.lifecycle,
61
+ reuseKey: row.reuseKey ?? null,
62
+ command: row.command ?? null,
63
+ cwd: row.cwd ?? null,
64
+ port: row.port ?? null,
65
+ url: row.url ?? null,
66
+ provider: row.provider,
67
+ providerRef: row.providerRef ?? null,
68
+ ownerAgentId: row.ownerAgentId ?? null,
69
+ startedByRunId: row.startedByRunId ?? null,
70
+ lastUsedAt: row.lastUsedAt,
71
+ startedAt: row.startedAt,
72
+ stoppedAt: row.stoppedAt ?? null,
73
+ stopPolicy: row.stopPolicy ?? null,
74
+ healthStatus: row.healthStatus,
75
+ createdAt: row.createdAt,
76
+ updatedAt: row.updatedAt,
77
+ };
78
+ }
79
+ function toWorkspace(row, runtimeServices = []) {
80
+ return {
81
+ id: row.id,
82
+ orgId: row.orgId,
83
+ projectId: row.projectId,
84
+ name: row.name,
85
+ sourceType: row.sourceType,
86
+ cwd: normalizeWorkspaceCwd(row.cwd),
87
+ repoUrl: row.repoUrl ?? null,
88
+ repoRef: row.repoRef ?? null,
89
+ defaultRef: row.defaultRef ?? row.repoRef ?? null,
90
+ visibility: row.visibility,
91
+ setupCommand: row.setupCommand ?? null,
92
+ cleanupCommand: row.cleanupCommand ?? null,
93
+ remoteProvider: row.remoteProvider ?? null,
94
+ remoteWorkspaceRef: row.remoteWorkspaceRef ?? null,
95
+ sharedWorkspaceKey: row.sharedWorkspaceKey ?? null,
96
+ metadata: row.metadata ?? null,
97
+ isPrimary: row.isPrimary,
98
+ runtimeServices,
99
+ createdAt: row.createdAt,
100
+ updatedAt: row.updatedAt,
101
+ };
102
+ }
103
+ function deriveProjectCodebase(input) {
104
+ const localFolder = resolveOrganizationWorkspaceRoot(input.orgId);
105
+ const managedFolder = localFolder;
106
+ return {
107
+ configured: true,
108
+ scope: "organization",
109
+ workspaceId: null,
110
+ repoUrl: null,
111
+ repoRef: null,
112
+ defaultRef: null,
113
+ repoName: null,
114
+ localFolder,
115
+ managedFolder,
116
+ effectiveLocalFolder: localFolder,
117
+ origin: "local_folder",
118
+ };
119
+ }
120
+ function pickPrimaryWorkspace(rows, runtimeServicesByWorkspaceId) {
121
+ if (rows.length === 0)
122
+ return null;
123
+ const explicitPrimary = rows.find((row) => row.isPrimary);
124
+ const primary = explicitPrimary ?? rows[0];
125
+ return toWorkspace(primary, runtimeServicesByWorkspaceId?.get(primary.id) ?? []);
126
+ }
127
+ /** Batch-load workspace refs for a set of projects. */
128
+ async function attachWorkspaces(db, rows) {
129
+ if (rows.length === 0)
130
+ return [];
131
+ const projectIds = rows.map((r) => r.id);
132
+ const orgIds = [...new Set(rows.map((row) => row.orgId))];
133
+ await Promise.all(orgIds.map((orgId) => ensureOrganizationWorkspaceLayout(orgId)));
134
+ const workspaceRows = await db
135
+ .select()
136
+ .from(projectWorkspaces)
137
+ .where(inArray(projectWorkspaces.projectId, projectIds))
138
+ .orderBy(desc(projectWorkspaces.isPrimary), asc(projectWorkspaces.createdAt), asc(projectWorkspaces.id));
139
+ const runtimeServicesByWorkspaceId = await listWorkspaceRuntimeServicesForProjectWorkspaces(db, rows[0].orgId, workspaceRows.map((workspace) => workspace.id));
140
+ const sharedRuntimeServicesByWorkspaceId = new Map(Array.from(runtimeServicesByWorkspaceId.entries()).map(([workspaceId, services]) => [
141
+ workspaceId,
142
+ services.map(toRuntimeService),
143
+ ]));
144
+ const map = new Map();
145
+ for (const row of workspaceRows) {
146
+ let arr = map.get(row.projectId);
147
+ if (!arr) {
148
+ arr = [];
149
+ map.set(row.projectId, arr);
150
+ }
151
+ arr.push(row);
152
+ }
153
+ return rows.map((row) => {
154
+ const projectWorkspaceRows = map.get(row.id) ?? [];
155
+ const workspaces = projectWorkspaceRows.map((workspace) => toWorkspace(workspace, sharedRuntimeServicesByWorkspaceId.get(workspace.id) ?? []));
156
+ const primaryWorkspace = pickPrimaryWorkspace(projectWorkspaceRows, sharedRuntimeServicesByWorkspaceId);
157
+ return {
158
+ ...row,
159
+ codebase: deriveProjectCodebase({
160
+ orgId: row.orgId,
161
+ }),
162
+ workspaces,
163
+ primaryWorkspace,
164
+ };
165
+ });
166
+ }
167
+ /** Sync the project_goals join table for a single project. */
168
+ async function syncGoalLinks(dbOrTx, projectId, orgId, goalIds) {
169
+ // Delete existing links
170
+ await dbOrTx.delete(projectGoals).where(eq(projectGoals.projectId, projectId));
171
+ // Insert new links
172
+ if (goalIds.length > 0) {
173
+ await dbOrTx.insert(projectGoals).values(goalIds.map((goalId) => ({ projectId, goalId, orgId })));
174
+ }
175
+ }
176
+ async function attachResources(db, rows) {
177
+ if (rows.length === 0)
178
+ return [];
179
+ const projectIds = rows.map((row) => row.id);
180
+ const rowsByOrgId = new Map();
181
+ for (const row of rows) {
182
+ const existing = rowsByOrgId.get(row.orgId);
183
+ if (existing)
184
+ existing.push(row);
185
+ else
186
+ rowsByOrgId.set(row.orgId, [row]);
187
+ }
188
+ const attachmentsByProjectId = new Map();
189
+ for (const [orgId, orgRows] of rowsByOrgId.entries()) {
190
+ const byProjectId = await listProjectResourceAttachmentsByProjectIds(db, orgId, orgRows.map((row) => row.id));
191
+ for (const [projectId, attachments] of byProjectId.entries()) {
192
+ attachmentsByProjectId.set(projectId, attachments);
193
+ }
194
+ }
195
+ return rows.map((row) => ({
196
+ ...row,
197
+ resources: attachmentsByProjectId.get(row.id) ?? [],
198
+ }));
199
+ }
200
+ /** Resolve goalIds from input, handling the legacy goalId field. */
201
+ function resolveGoalIds(data) {
202
+ if (data.goalIds !== undefined)
203
+ return data.goalIds;
204
+ if (data.goalId !== undefined) {
205
+ return data.goalId ? [data.goalId] : [];
206
+ }
207
+ return undefined;
208
+ }
209
+ function readNonEmptyString(value) {
210
+ if (typeof value !== "string")
211
+ return null;
212
+ const trimmed = value.trim();
213
+ return trimmed.length > 0 ? trimmed : null;
214
+ }
215
+ function normalizeWorkspaceCwd(value) {
216
+ const cwd = readNonEmptyString(value);
217
+ if (!cwd)
218
+ return null;
219
+ return cwd === REPO_ONLY_CWD_SENTINEL ? null : cwd;
220
+ }
221
+ function deriveNameFromCwd(cwd) {
222
+ const normalized = cwd.replace(/[\\/]+$/, "");
223
+ const segments = normalized.split(/[\\/]/).filter(Boolean);
224
+ return segments[segments.length - 1] ?? "Local folder";
225
+ }
226
+ function deriveNameFromRepoUrl(repoUrl) {
227
+ try {
228
+ const url = new URL(repoUrl);
229
+ const cleanedPath = url.pathname.replace(/\/+$/, "");
230
+ const lastSegment = cleanedPath.split("/").filter(Boolean).pop() ?? "";
231
+ const noGitSuffix = lastSegment.replace(/\.git$/i, "");
232
+ return noGitSuffix || repoUrl;
233
+ }
234
+ catch {
235
+ return repoUrl;
236
+ }
237
+ }
238
+ function deriveWorkspaceName(input) {
239
+ const explicit = readNonEmptyString(input.name);
240
+ if (explicit)
241
+ return explicit;
242
+ const cwd = readNonEmptyString(input.cwd);
243
+ if (cwd)
244
+ return deriveNameFromCwd(cwd);
245
+ const repoUrl = readNonEmptyString(input.repoUrl);
246
+ if (repoUrl)
247
+ return deriveNameFromRepoUrl(repoUrl);
248
+ return "Workspace";
249
+ }
250
+ export function resolveProjectNameForUniqueShortname(requestedName, existingProjects, options) {
251
+ const requestedShortname = normalizeProjectUrlKey(requestedName);
252
+ if (!requestedShortname)
253
+ return requestedName;
254
+ const usedShortnames = new Set(existingProjects
255
+ .filter((project) => !(options?.excludeProjectId && project.id === options.excludeProjectId))
256
+ .map((project) => normalizeProjectUrlKey(project.name))
257
+ .filter((value) => value !== null));
258
+ if (!usedShortnames.has(requestedShortname))
259
+ return requestedName;
260
+ for (let suffix = 2; suffix < 10_000; suffix += 1) {
261
+ const candidateName = `${requestedName} ${suffix}`;
262
+ const candidateShortname = normalizeProjectUrlKey(candidateName);
263
+ if (candidateShortname && !usedShortnames.has(candidateShortname)) {
264
+ return candidateName;
265
+ }
266
+ }
267
+ // Fallback guard for pathological naming collisions.
268
+ return `${requestedName} ${Date.now()}`;
269
+ }
270
+ async function ensureSinglePrimaryWorkspace(dbOrTx, input) {
271
+ await dbOrTx
272
+ .update(projectWorkspaces)
273
+ .set({ isPrimary: false, updatedAt: new Date() })
274
+ .where(and(eq(projectWorkspaces.orgId, input.orgId), eq(projectWorkspaces.projectId, input.projectId)));
275
+ await dbOrTx
276
+ .update(projectWorkspaces)
277
+ .set({ isPrimary: true, updatedAt: new Date() })
278
+ .where(and(eq(projectWorkspaces.orgId, input.orgId), eq(projectWorkspaces.projectId, input.projectId), eq(projectWorkspaces.id, input.keepWorkspaceId)));
279
+ }
280
+ export function projectService(db) {
281
+ return {
282
+ list: async (orgId) => {
283
+ const rows = await db.select().from(projects).where(eq(projects.orgId, orgId));
284
+ const withGoals = await attachGoals(db, rows);
285
+ const withWorkspaces = await attachWorkspaces(db, withGoals);
286
+ return attachResources(db, withWorkspaces);
287
+ },
288
+ listByIds: async (orgId, ids) => {
289
+ const dedupedIds = [...new Set(ids)];
290
+ if (dedupedIds.length === 0)
291
+ return [];
292
+ const rows = await db
293
+ .select()
294
+ .from(projects)
295
+ .where(and(eq(projects.orgId, orgId), inArray(projects.id, dedupedIds)));
296
+ const withGoals = await attachGoals(db, rows);
297
+ const withWorkspaces = await attachWorkspaces(db, withGoals);
298
+ const withResources = await attachResources(db, withWorkspaces);
299
+ const byId = new Map(withResources.map((project) => [project.id, project]));
300
+ return dedupedIds.map((id) => byId.get(id)).filter((project) => Boolean(project));
301
+ },
302
+ getById: async (id) => {
303
+ const row = await db
304
+ .select()
305
+ .from(projects)
306
+ .where(eq(projects.id, id))
307
+ .then((rows) => rows[0] ?? null);
308
+ if (!row)
309
+ return null;
310
+ const [withGoals] = await attachGoals(db, [row]);
311
+ if (!withGoals)
312
+ return null;
313
+ const [withWorkspaces] = await attachWorkspaces(db, [withGoals]);
314
+ if (!withWorkspaces)
315
+ return null;
316
+ const [enriched] = await attachResources(db, [withWorkspaces]);
317
+ return enriched ?? null;
318
+ },
319
+ create: async (orgId, data) => {
320
+ const { goalIds: inputGoalIds, resourceAttachments, newResources, ...projectData } = data;
321
+ const ids = resolveGoalIds({ goalIds: inputGoalIds, goalId: projectData.goalId });
322
+ // Auto-assign a color from the palette if none provided
323
+ if (!projectData.color) {
324
+ const existing = await db.select({ color: projects.color }).from(projects).where(eq(projects.orgId, orgId));
325
+ const usedColors = new Set(existing.map((r) => r.color).filter(Boolean));
326
+ const nextColor = PROJECT_COLORS.find((c) => !usedColors.has(c)) ?? PROJECT_COLORS[existing.length % PROJECT_COLORS.length];
327
+ projectData.color = nextColor;
328
+ }
329
+ const existingProjects = await db
330
+ .select({ id: projects.id, name: projects.name })
331
+ .from(projects)
332
+ .where(eq(projects.orgId, orgId));
333
+ projectData.name = resolveProjectNameForUniqueShortname(projectData.name, existingProjects);
334
+ // Also write goalId to the legacy column (first goal or null)
335
+ const legacyGoalId = ids && ids.length > 0 ? ids[0] : projectData.goalId ?? null;
336
+ const row = await db.transaction(async (tx) => {
337
+ const created = await tx
338
+ .insert(projects)
339
+ .values({ ...projectData, goalId: legacyGoalId, orgId })
340
+ .returning()
341
+ .then((rows) => rows[0]);
342
+ if (ids && ids.length > 0) {
343
+ await syncGoalLinks(tx, created.id, orgId, ids);
344
+ }
345
+ if ((resourceAttachments?.length ?? 0) > 0 || (newResources?.length ?? 0) > 0) {
346
+ await replaceProjectResourceAttachments(tx, {
347
+ orgId,
348
+ projectId: created.id,
349
+ attachments: resourceAttachments ?? [],
350
+ newResources,
351
+ });
352
+ }
353
+ return created;
354
+ });
355
+ await ensureOrganizationWorkspaceLayout(orgId);
356
+ const [withGoals] = await attachGoals(db, [row]);
357
+ const [withWorkspaces] = withGoals ? await attachWorkspaces(db, [withGoals]) : [];
358
+ const [enriched] = withWorkspaces ? await attachResources(db, [withWorkspaces]) : [];
359
+ return enriched;
360
+ },
361
+ update: async (id, data) => {
362
+ const { goalIds: inputGoalIds, resourceAttachments, newResources, ...projectData } = data;
363
+ const ids = resolveGoalIds({ goalIds: inputGoalIds, goalId: projectData.goalId });
364
+ const existingProject = await db
365
+ .select({ id: projects.id, orgId: projects.orgId, name: projects.name })
366
+ .from(projects)
367
+ .where(eq(projects.id, id))
368
+ .then((rows) => rows[0] ?? null);
369
+ if (!existingProject)
370
+ return null;
371
+ if (projectData.name !== undefined) {
372
+ const existingShortname = normalizeProjectUrlKey(existingProject.name);
373
+ const nextShortname = normalizeProjectUrlKey(projectData.name);
374
+ if (existingShortname !== nextShortname) {
375
+ const existingProjects = await db
376
+ .select({ id: projects.id, name: projects.name })
377
+ .from(projects)
378
+ .where(eq(projects.orgId, existingProject.orgId));
379
+ projectData.name = resolveProjectNameForUniqueShortname(projectData.name, existingProjects, {
380
+ excludeProjectId: id,
381
+ });
382
+ }
383
+ }
384
+ // Keep legacy goalId column in sync
385
+ const updates = {
386
+ ...projectData,
387
+ updatedAt: new Date(),
388
+ };
389
+ if (ids !== undefined) {
390
+ updates.goalId = ids.length > 0 ? ids[0] : null;
391
+ }
392
+ const existingAttachments = resourceAttachments !== undefined || newResources !== undefined
393
+ ? await listProjectResourceAttachmentsByProjectIds(db, existingProject.orgId, [id]).then((byProjectId) => byProjectId.get(id) ?? [])
394
+ : [];
395
+ const row = await db.transaction(async (tx) => {
396
+ const updatedRow = await tx
397
+ .update(projects)
398
+ .set(updates)
399
+ .where(eq(projects.id, id))
400
+ .returning()
401
+ .then((rows) => rows[0] ?? null);
402
+ if (!updatedRow)
403
+ return null;
404
+ if (ids !== undefined) {
405
+ await syncGoalLinks(tx, id, updatedRow.orgId, ids);
406
+ }
407
+ if (resourceAttachments !== undefined || newResources !== undefined) {
408
+ await replaceProjectResourceAttachments(tx, {
409
+ orgId: updatedRow.orgId,
410
+ projectId: id,
411
+ attachments: resourceAttachments ?? existingAttachments.map((attachment) => ({
412
+ resourceId: attachment.resourceId,
413
+ role: attachment.role,
414
+ note: attachment.note,
415
+ sortOrder: attachment.sortOrder,
416
+ })),
417
+ newResources,
418
+ });
419
+ }
420
+ return updatedRow;
421
+ });
422
+ if (!row)
423
+ return null;
424
+ const [withGoals] = await attachGoals(db, [row]);
425
+ const [withWorkspaces] = withGoals ? await attachWorkspaces(db, [withGoals]) : [];
426
+ const [enriched] = withWorkspaces ? await attachResources(db, [withWorkspaces]) : [];
427
+ return enriched ?? null;
428
+ },
429
+ remove: (id) => db
430
+ .delete(projects)
431
+ .where(eq(projects.id, id))
432
+ .returning()
433
+ .then((rows) => {
434
+ const row = rows[0] ?? null;
435
+ if (!row)
436
+ return null;
437
+ return { ...row, urlKey: deriveProjectUrlKey(row.name, row.id) };
438
+ }),
439
+ listWorkspaces: async (projectId) => {
440
+ const rows = await db
441
+ .select()
442
+ .from(projectWorkspaces)
443
+ .where(eq(projectWorkspaces.projectId, projectId))
444
+ .orderBy(desc(projectWorkspaces.isPrimary), asc(projectWorkspaces.createdAt), asc(projectWorkspaces.id));
445
+ if (rows.length === 0)
446
+ return [];
447
+ const runtimeServicesByWorkspaceId = await listWorkspaceRuntimeServicesForProjectWorkspaces(db, rows[0].orgId, rows.map((workspace) => workspace.id));
448
+ return rows.map((row) => toWorkspace(row, (runtimeServicesByWorkspaceId.get(row.id) ?? []).map(toRuntimeService)));
449
+ },
450
+ createWorkspace: async (projectId, data) => {
451
+ const project = await db
452
+ .select()
453
+ .from(projects)
454
+ .where(eq(projects.id, projectId))
455
+ .then((rows) => rows[0] ?? null);
456
+ if (!project)
457
+ return null;
458
+ const cwd = normalizeWorkspaceCwd(data.cwd);
459
+ const repoUrl = readNonEmptyString(data.repoUrl);
460
+ const sourceType = readNonEmptyString(data.sourceType) ?? (repoUrl ? "git_repo" : cwd ? "local_path" : "remote_managed");
461
+ const remoteWorkspaceRef = readNonEmptyString(data.remoteWorkspaceRef);
462
+ if (sourceType === "remote_managed") {
463
+ if (!remoteWorkspaceRef && !repoUrl)
464
+ return null;
465
+ }
466
+ else if (!cwd && !repoUrl) {
467
+ return null;
468
+ }
469
+ const name = deriveWorkspaceName({
470
+ name: data.name,
471
+ cwd,
472
+ repoUrl,
473
+ });
474
+ const existing = await db
475
+ .select()
476
+ .from(projectWorkspaces)
477
+ .where(eq(projectWorkspaces.projectId, projectId))
478
+ .orderBy(asc(projectWorkspaces.createdAt))
479
+ .then((rows) => rows);
480
+ const shouldBePrimary = data.isPrimary === true || existing.length === 0;
481
+ const created = await db.transaction(async (tx) => {
482
+ if (shouldBePrimary) {
483
+ await tx
484
+ .update(projectWorkspaces)
485
+ .set({ isPrimary: false, updatedAt: new Date() })
486
+ .where(and(eq(projectWorkspaces.orgId, project.orgId), eq(projectWorkspaces.projectId, projectId)));
487
+ }
488
+ const row = await tx
489
+ .insert(projectWorkspaces)
490
+ .values({
491
+ orgId: project.orgId,
492
+ projectId,
493
+ name,
494
+ sourceType,
495
+ cwd: cwd ?? null,
496
+ repoUrl: repoUrl ?? null,
497
+ repoRef: readNonEmptyString(data.repoRef),
498
+ defaultRef: readNonEmptyString(data.defaultRef) ?? readNonEmptyString(data.repoRef),
499
+ visibility: readNonEmptyString(data.visibility) ?? "default",
500
+ setupCommand: readNonEmptyString(data.setupCommand),
501
+ cleanupCommand: readNonEmptyString(data.cleanupCommand),
502
+ remoteProvider: readNonEmptyString(data.remoteProvider),
503
+ remoteWorkspaceRef,
504
+ sharedWorkspaceKey: readNonEmptyString(data.sharedWorkspaceKey),
505
+ metadata: data.metadata ?? null,
506
+ isPrimary: shouldBePrimary,
507
+ })
508
+ .returning()
509
+ .then((rows) => rows[0] ?? null);
510
+ return row;
511
+ });
512
+ return created ? toWorkspace(created) : null;
513
+ },
514
+ updateWorkspace: async (projectId, workspaceId, data) => {
515
+ const existing = await db
516
+ .select()
517
+ .from(projectWorkspaces)
518
+ .where(and(eq(projectWorkspaces.id, workspaceId), eq(projectWorkspaces.projectId, projectId)))
519
+ .then((rows) => rows[0] ?? null);
520
+ if (!existing)
521
+ return null;
522
+ const nextCwd = data.cwd !== undefined
523
+ ? normalizeWorkspaceCwd(data.cwd)
524
+ : normalizeWorkspaceCwd(existing.cwd);
525
+ const nextRepoUrl = data.repoUrl !== undefined
526
+ ? readNonEmptyString(data.repoUrl)
527
+ : readNonEmptyString(existing.repoUrl);
528
+ const nextSourceType = data.sourceType !== undefined
529
+ ? readNonEmptyString(data.sourceType)
530
+ : readNonEmptyString(existing.sourceType);
531
+ const nextRemoteWorkspaceRef = data.remoteWorkspaceRef !== undefined
532
+ ? readNonEmptyString(data.remoteWorkspaceRef)
533
+ : readNonEmptyString(existing.remoteWorkspaceRef);
534
+ if (nextSourceType === "remote_managed") {
535
+ if (!nextRemoteWorkspaceRef && !nextRepoUrl)
536
+ return null;
537
+ }
538
+ else if (!nextCwd && !nextRepoUrl) {
539
+ return null;
540
+ }
541
+ const patch = {
542
+ updatedAt: new Date(),
543
+ };
544
+ if (data.name !== undefined)
545
+ patch.name = deriveWorkspaceName({ name: data.name, cwd: nextCwd, repoUrl: nextRepoUrl });
546
+ if (data.name === undefined && (data.cwd !== undefined || data.repoUrl !== undefined)) {
547
+ patch.name = deriveWorkspaceName({ cwd: nextCwd, repoUrl: nextRepoUrl });
548
+ }
549
+ if (data.cwd !== undefined)
550
+ patch.cwd = nextCwd ?? null;
551
+ if (data.repoUrl !== undefined)
552
+ patch.repoUrl = nextRepoUrl ?? null;
553
+ if (data.repoRef !== undefined)
554
+ patch.repoRef = readNonEmptyString(data.repoRef);
555
+ if (data.sourceType !== undefined && nextSourceType)
556
+ patch.sourceType = nextSourceType;
557
+ if (data.defaultRef !== undefined)
558
+ patch.defaultRef = readNonEmptyString(data.defaultRef);
559
+ if (data.visibility !== undefined && readNonEmptyString(data.visibility)) {
560
+ patch.visibility = readNonEmptyString(data.visibility);
561
+ }
562
+ if (data.setupCommand !== undefined)
563
+ patch.setupCommand = readNonEmptyString(data.setupCommand);
564
+ if (data.cleanupCommand !== undefined)
565
+ patch.cleanupCommand = readNonEmptyString(data.cleanupCommand);
566
+ if (data.remoteProvider !== undefined)
567
+ patch.remoteProvider = readNonEmptyString(data.remoteProvider);
568
+ if (data.remoteWorkspaceRef !== undefined)
569
+ patch.remoteWorkspaceRef = nextRemoteWorkspaceRef;
570
+ if (data.sharedWorkspaceKey !== undefined)
571
+ patch.sharedWorkspaceKey = readNonEmptyString(data.sharedWorkspaceKey);
572
+ if (data.metadata !== undefined)
573
+ patch.metadata = data.metadata;
574
+ const updated = await db.transaction(async (tx) => {
575
+ if (data.isPrimary === true) {
576
+ await tx
577
+ .update(projectWorkspaces)
578
+ .set({ isPrimary: false, updatedAt: new Date() })
579
+ .where(and(eq(projectWorkspaces.orgId, existing.orgId), eq(projectWorkspaces.projectId, projectId)));
580
+ patch.isPrimary = true;
581
+ }
582
+ else if (data.isPrimary === false) {
583
+ patch.isPrimary = false;
584
+ }
585
+ const row = await tx
586
+ .update(projectWorkspaces)
587
+ .set(patch)
588
+ .where(eq(projectWorkspaces.id, workspaceId))
589
+ .returning()
590
+ .then((rows) => rows[0] ?? null);
591
+ if (!row)
592
+ return null;
593
+ if (row.isPrimary)
594
+ return row;
595
+ const hasPrimary = await tx
596
+ .select({ id: projectWorkspaces.id })
597
+ .from(projectWorkspaces)
598
+ .where(and(eq(projectWorkspaces.orgId, row.orgId), eq(projectWorkspaces.projectId, row.projectId), eq(projectWorkspaces.isPrimary, true)))
599
+ .then((rows) => rows[0] ?? null);
600
+ if (!hasPrimary) {
601
+ const nextPrimaryCandidate = await tx
602
+ .select({ id: projectWorkspaces.id })
603
+ .from(projectWorkspaces)
604
+ .where(and(eq(projectWorkspaces.orgId, row.orgId), eq(projectWorkspaces.projectId, row.projectId), eq(projectWorkspaces.id, row.id)))
605
+ .then((rows) => rows[0] ?? null);
606
+ const alternateCandidate = await tx
607
+ .select({ id: projectWorkspaces.id })
608
+ .from(projectWorkspaces)
609
+ .where(and(eq(projectWorkspaces.orgId, row.orgId), eq(projectWorkspaces.projectId, row.projectId)))
610
+ .orderBy(asc(projectWorkspaces.createdAt), asc(projectWorkspaces.id))
611
+ .then((rows) => rows.find((candidate) => candidate.id !== row.id) ?? null);
612
+ await ensureSinglePrimaryWorkspace(tx, {
613
+ orgId: row.orgId,
614
+ projectId: row.projectId,
615
+ keepWorkspaceId: alternateCandidate?.id ?? nextPrimaryCandidate?.id ?? row.id,
616
+ });
617
+ const refreshed = await tx
618
+ .select()
619
+ .from(projectWorkspaces)
620
+ .where(eq(projectWorkspaces.id, row.id))
621
+ .then((rows) => rows[0] ?? row);
622
+ return refreshed;
623
+ }
624
+ return row;
625
+ });
626
+ return updated ? toWorkspace(updated) : null;
627
+ },
628
+ removeWorkspace: async (projectId, workspaceId) => {
629
+ const existing = await db
630
+ .select()
631
+ .from(projectWorkspaces)
632
+ .where(and(eq(projectWorkspaces.id, workspaceId), eq(projectWorkspaces.projectId, projectId)))
633
+ .then((rows) => rows[0] ?? null);
634
+ if (!existing)
635
+ return null;
636
+ const removed = await db.transaction(async (tx) => {
637
+ const row = await tx
638
+ .delete(projectWorkspaces)
639
+ .where(eq(projectWorkspaces.id, workspaceId))
640
+ .returning()
641
+ .then((rows) => rows[0] ?? null);
642
+ if (!row)
643
+ return null;
644
+ if (!row.isPrimary)
645
+ return row;
646
+ const next = await tx
647
+ .select()
648
+ .from(projectWorkspaces)
649
+ .where(and(eq(projectWorkspaces.orgId, row.orgId), eq(projectWorkspaces.projectId, row.projectId)))
650
+ .orderBy(asc(projectWorkspaces.createdAt), asc(projectWorkspaces.id))
651
+ .limit(1)
652
+ .then((rows) => rows[0] ?? null);
653
+ if (next) {
654
+ await ensureSinglePrimaryWorkspace(tx, {
655
+ orgId: row.orgId,
656
+ projectId: row.projectId,
657
+ keepWorkspaceId: next.id,
658
+ });
659
+ }
660
+ return row;
661
+ });
662
+ return removed ? toWorkspace(removed) : null;
663
+ },
664
+ resolveByReference: async (orgId, reference) => {
665
+ const raw = reference.trim();
666
+ if (raw.length === 0) {
667
+ return { project: null, ambiguous: false };
668
+ }
669
+ if (isUuidLike(raw)) {
670
+ const row = await db
671
+ .select({ id: projects.id, orgId: projects.orgId, name: projects.name })
672
+ .from(projects)
673
+ .where(and(eq(projects.id, raw), eq(projects.orgId, orgId)))
674
+ .then((rows) => rows[0] ?? null);
675
+ if (!row)
676
+ return { project: null, ambiguous: false };
677
+ return {
678
+ project: { id: row.id, orgId: row.orgId, urlKey: deriveProjectUrlKey(row.name, row.id) },
679
+ ambiguous: false,
680
+ };
681
+ }
682
+ const urlKey = normalizeProjectUrlKey(raw);
683
+ if (!urlKey) {
684
+ return { project: null, ambiguous: false };
685
+ }
686
+ const rows = await db
687
+ .select({ id: projects.id, orgId: projects.orgId, name: projects.name })
688
+ .from(projects)
689
+ .where(eq(projects.orgId, orgId));
690
+ const matches = rows.filter((row) => deriveProjectUrlKey(row.name, row.id) === urlKey);
691
+ if (matches.length === 1) {
692
+ const match = matches[0];
693
+ return {
694
+ project: { id: match.id, orgId: match.orgId, urlKey: deriveProjectUrlKey(match.name, match.id) },
695
+ ambiguous: false,
696
+ };
697
+ }
698
+ if (matches.length > 1) {
699
+ return { project: null, ambiguous: true };
700
+ }
701
+ return { project: null, ambiguous: false };
702
+ },
703
+ };
704
+ }
705
+ //# sourceMappingURL=projects.js.map