@slaw-ai/server 2026.611.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 (1198) hide show
  1. package/LICENSE +26 -0
  2. package/dist/adapters/builtin-adapter-types.d.ts +5 -0
  3. package/dist/adapters/builtin-adapter-types.d.ts.map +1 -0
  4. package/dist/adapters/builtin-adapter-types.js +18 -0
  5. package/dist/adapters/builtin-adapter-types.js.map +1 -0
  6. package/dist/adapters/codex-models.d.ts +5 -0
  7. package/dist/adapters/codex-models.d.ts.map +1 -0
  8. package/dist/adapters/codex-models.js +105 -0
  9. package/dist/adapters/codex-models.js.map +1 -0
  10. package/dist/adapters/cursor-models.d.ts +13 -0
  11. package/dist/adapters/cursor-models.d.ts.map +1 -0
  12. package/dist/adapters/cursor-models.js +148 -0
  13. package/dist/adapters/cursor-models.js.map +1 -0
  14. package/dist/adapters/http/execute.d.ts +3 -0
  15. package/dist/adapters/http/execute.d.ts.map +1 -0
  16. package/dist/adapters/http/execute.js +51 -0
  17. package/dist/adapters/http/execute.js.map +1 -0
  18. package/dist/adapters/http/execute.test.d.ts +2 -0
  19. package/dist/adapters/http/execute.test.d.ts.map +1 -0
  20. package/dist/adapters/http/execute.test.js +40 -0
  21. package/dist/adapters/http/execute.test.js.map +1 -0
  22. package/dist/adapters/http/index.d.ts +3 -0
  23. package/dist/adapters/http/index.d.ts.map +1 -0
  24. package/dist/adapters/http/index.js +20 -0
  25. package/dist/adapters/http/index.js.map +1 -0
  26. package/dist/adapters/http/test.d.ts +3 -0
  27. package/dist/adapters/http/test.d.ts.map +1 -0
  28. package/dist/adapters/http/test.js +106 -0
  29. package/dist/adapters/http/test.js.map +1 -0
  30. package/dist/adapters/index.d.ts +4 -0
  31. package/dist/adapters/index.d.ts.map +1 -0
  32. package/dist/adapters/index.js +3 -0
  33. package/dist/adapters/index.js.map +1 -0
  34. package/dist/adapters/plugin-loader.d.ts +28 -0
  35. package/dist/adapters/plugin-loader.d.ts.map +1 -0
  36. package/dist/adapters/plugin-loader.js +196 -0
  37. package/dist/adapters/plugin-loader.js.map +1 -0
  38. package/dist/adapters/process/execute.d.ts +3 -0
  39. package/dist/adapters/process/execute.d.ts.map +1 -0
  40. package/dist/adapters/process/execute.js +70 -0
  41. package/dist/adapters/process/execute.js.map +1 -0
  42. package/dist/adapters/process/index.d.ts +3 -0
  43. package/dist/adapters/process/index.d.ts.map +1 -0
  44. package/dist/adapters/process/index.js +23 -0
  45. package/dist/adapters/process/index.js.map +1 -0
  46. package/dist/adapters/process/test.d.ts +3 -0
  47. package/dist/adapters/process/test.d.ts.map +1 -0
  48. package/dist/adapters/process/test.js +77 -0
  49. package/dist/adapters/process/test.js.map +1 -0
  50. package/dist/adapters/registry.d.ts +69 -0
  51. package/dist/adapters/registry.d.ts.map +1 -0
  52. package/dist/adapters/registry.js +598 -0
  53. package/dist/adapters/registry.js.map +1 -0
  54. package/dist/adapters/types.d.ts +2 -0
  55. package/dist/adapters/types.d.ts.map +1 -0
  56. package/dist/adapters/types.js +2 -0
  57. package/dist/adapters/types.js.map +1 -0
  58. package/dist/adapters/utils.d.ts +43 -0
  59. package/dist/adapters/utils.d.ts.map +1 -0
  60. package/dist/adapters/utils.js +52 -0
  61. package/dist/adapters/utils.js.map +1 -0
  62. package/dist/agent-auth-jwt.d.ts +14 -0
  63. package/dist/agent-auth-jwt.d.ts.map +1 -0
  64. package/dist/agent-auth-jwt.js +117 -0
  65. package/dist/agent-auth-jwt.js.map +1 -0
  66. package/dist/app.d.ts +39 -0
  67. package/dist/app.d.ts.map +1 -0
  68. package/dist/app.js +386 -0
  69. package/dist/app.js.map +1 -0
  70. package/dist/attachment-types.d.ts +23 -0
  71. package/dist/attachment-types.d.ts.map +1 -0
  72. package/dist/attachment-types.js +98 -0
  73. package/dist/attachment-types.js.map +1 -0
  74. package/dist/auth/better-auth.d.ts +40 -0
  75. package/dist/auth/better-auth.d.ts.map +1 -0
  76. package/dist/auth/better-auth.js +148 -0
  77. package/dist/auth/better-auth.js.map +1 -0
  78. package/dist/config-file.d.ts +24 -0
  79. package/dist/config-file.d.ts.map +1 -0
  80. package/dist/config-file.js +73 -0
  81. package/dist/config-file.js.map +1 -0
  82. package/dist/config.d.ts +44 -0
  83. package/dist/config.d.ts.map +1 -0
  84. package/dist/config.js +247 -0
  85. package/dist/config.js.map +1 -0
  86. package/dist/dev-runner-worktree.d.ts +15 -0
  87. package/dist/dev-runner-worktree.d.ts.map +1 -0
  88. package/dist/dev-runner-worktree.js +101 -0
  89. package/dist/dev-runner-worktree.js.map +1 -0
  90. package/dist/dev-server-status.d.ts +33 -0
  91. package/dist/dev-server-status.d.ts.map +1 -0
  92. package/dist/dev-server-status.js +89 -0
  93. package/dist/dev-server-status.js.map +1 -0
  94. package/dist/dev-watch-ignore.d.ts +2 -0
  95. package/dist/dev-watch-ignore.d.ts.map +1 -0
  96. package/dist/dev-watch-ignore.js +36 -0
  97. package/dist/dev-watch-ignore.js.map +1 -0
  98. package/dist/errors.d.ts +12 -0
  99. package/dist/errors.d.ts.map +1 -0
  100. package/dist/errors.js +28 -0
  101. package/dist/errors.js.map +1 -0
  102. package/dist/first-admin-claim.d.ts +17 -0
  103. package/dist/first-admin-claim.d.ts.map +1 -0
  104. package/dist/first-admin-claim.js +30 -0
  105. package/dist/first-admin-claim.js.map +1 -0
  106. package/dist/home-paths.d.ts +15 -0
  107. package/dist/home-paths.d.ts.map +1 -0
  108. package/dist/home-paths.js +48 -0
  109. package/dist/home-paths.js.map +1 -0
  110. package/dist/http/body-limits.d.ts +4 -0
  111. package/dist/http/body-limits.d.ts.map +1 -0
  112. package/dist/http/body-limits.js +4 -0
  113. package/dist/http/body-limits.js.map +1 -0
  114. package/dist/index.d.ts +10 -0
  115. package/dist/index.d.ts.map +1 -0
  116. package/dist/index.js +786 -0
  117. package/dist/index.js.map +1 -0
  118. package/dist/instance-claim.d.ts +23 -0
  119. package/dist/instance-claim.d.ts.map +1 -0
  120. package/dist/instance-claim.js +126 -0
  121. package/dist/instance-claim.js.map +1 -0
  122. package/dist/lib/join-request-dedupe.d.ts +11 -0
  123. package/dist/lib/join-request-dedupe.d.ts.map +1 -0
  124. package/dist/lib/join-request-dedupe.js +49 -0
  125. package/dist/lib/join-request-dedupe.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 +122 -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 +302 -0
  133. package/dist/middleware/auth.js.map +1 -0
  134. package/dist/middleware/error-handler.d.ts +17 -0
  135. package/dist/middleware/error-handler.d.ts.map +1 -0
  136. package/dist/middleware/error-handler.js +46 -0
  137. package/dist/middleware/error-handler.js.map +1 -0
  138. package/dist/middleware/http-log-policy.d.ts +2 -0
  139. package/dist/middleware/http-log-policy.d.ts.map +1 -0
  140. package/dist/middleware/http-log-policy.js +52 -0
  141. package/dist/middleware/http-log-policy.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 +92 -0
  149. package/dist/middleware/logger.js.map +1 -0
  150. package/dist/middleware/operator-mutation-guard.d.ts +3 -0
  151. package/dist/middleware/operator-mutation-guard.d.ts.map +1 -0
  152. package/dist/middleware/operator-mutation-guard.js +70 -0
  153. package/dist/middleware/operator-mutation-guard.js.map +1 -0
  154. package/dist/middleware/private-hostname-guard.d.ts +11 -0
  155. package/dist/middleware/private-hostname-guard.d.ts.map +1 -0
  156. package/dist/middleware/private-hostname-guard.js +78 -0
  157. package/dist/middleware/private-hostname-guard.js.map +1 -0
  158. package/dist/middleware/validate.d.ts +4 -0
  159. package/dist/middleware/validate.d.ts.map +1 -0
  160. package/dist/middleware/validate.js +7 -0
  161. package/dist/middleware/validate.js.map +1 -0
  162. package/dist/onboarding-assets/default/AGENTS.md +18 -0
  163. package/dist/onboarding-assets/squad_lead/AGENTS.md +61 -0
  164. package/dist/onboarding-assets/squad_lead/HEARTBEAT.md +85 -0
  165. package/dist/onboarding-assets/squad_lead/SOUL.md +33 -0
  166. package/dist/onboarding-assets/squad_lead/TOOLS.md +3 -0
  167. package/dist/paths.d.ts +3 -0
  168. package/dist/paths.d.ts.map +1 -0
  169. package/dist/paths.js +31 -0
  170. package/dist/paths.js.map +1 -0
  171. package/dist/realtime/live-events-ws.d.ts +28 -0
  172. package/dist/realtime/live-events-ws.d.ts.map +1 -0
  173. package/dist/realtime/live-events-ws.js +187 -0
  174. package/dist/realtime/live-events-ws.js.map +1 -0
  175. package/dist/redaction.d.ts +5 -0
  176. package/dist/redaction.d.ts.map +1 -0
  177. package/dist/redaction.js +125 -0
  178. package/dist/redaction.js.map +1 -0
  179. package/dist/routes/access.d.ts +75 -0
  180. package/dist/routes/access.d.ts.map +1 -0
  181. package/dist/routes/access.js +3070 -0
  182. package/dist/routes/access.js.map +1 -0
  183. package/dist/routes/activity.d.ts +3 -0
  184. package/dist/routes/activity.d.ts.map +1 -0
  185. package/dist/routes/activity.js +90 -0
  186. package/dist/routes/activity.js.map +1 -0
  187. package/dist/routes/adapters.d.ts +16 -0
  188. package/dist/routes/adapters.d.ts.map +1 -0
  189. package/dist/routes/adapters.js +539 -0
  190. package/dist/routes/adapters.js.map +1 -0
  191. package/dist/routes/agents.d.ts +6 -0
  192. package/dist/routes/agents.d.ts.map +1 -0
  193. package/dist/routes/agents.js +2733 -0
  194. package/dist/routes/agents.js.map +1 -0
  195. package/dist/routes/approvals.d.ts +6 -0
  196. package/dist/routes/approvals.d.ts.map +1 -0
  197. package/dist/routes/approvals.js +300 -0
  198. package/dist/routes/approvals.js.map +1 -0
  199. package/dist/routes/assets.d.ts +4 -0
  200. package/dist/routes/assets.d.ts.map +1 -0
  201. package/dist/routes/assets.js +309 -0
  202. package/dist/routes/assets.js.map +1 -0
  203. package/dist/routes/auth.d.ts +3 -0
  204. package/dist/routes/auth.d.ts.map +1 -0
  205. package/dist/routes/auth.js +82 -0
  206. package/dist/routes/auth.js.map +1 -0
  207. package/dist/routes/authz.d.ts +19 -0
  208. package/dist/routes/authz.d.ts.map +1 -0
  209. package/dist/routes/authz.js +75 -0
  210. package/dist/routes/authz.js.map +1 -0
  211. package/dist/routes/botfather.d.ts +9 -0
  212. package/dist/routes/botfather.d.ts.map +1 -0
  213. package/dist/routes/botfather.js +127 -0
  214. package/dist/routes/botfather.js.map +1 -0
  215. package/dist/routes/cloud-upstreams.d.ts +5 -0
  216. package/dist/routes/cloud-upstreams.d.ts.map +1 -0
  217. package/dist/routes/cloud-upstreams.js +103 -0
  218. package/dist/routes/cloud-upstreams.js.map +1 -0
  219. package/dist/routes/costs.d.ts +11 -0
  220. package/dist/routes/costs.d.ts.map +1 -0
  221. package/dist/routes/costs.js +285 -0
  222. package/dist/routes/costs.js.map +1 -0
  223. package/dist/routes/dashboard.d.ts +3 -0
  224. package/dist/routes/dashboard.d.ts.map +1 -0
  225. package/dist/routes/dashboard.js +15 -0
  226. package/dist/routes/dashboard.js.map +1 -0
  227. package/dist/routes/environment-selection.d.ts +13 -0
  228. package/dist/routes/environment-selection.d.ts.map +1 -0
  229. package/dist/routes/environment-selection.js +30 -0
  230. package/dist/routes/environment-selection.js.map +1 -0
  231. package/dist/routes/environments.d.ts +6 -0
  232. package/dist/routes/environments.d.ts.map +1 -0
  233. package/dist/routes/environments.js +414 -0
  234. package/dist/routes/environments.js.map +1 -0
  235. package/dist/routes/execution-workspaces.d.ts +3 -0
  236. package/dist/routes/execution-workspaces.d.ts.map +1 -0
  237. package/dist/routes/execution-workspaces.js +537 -0
  238. package/dist/routes/execution-workspaces.js.map +1 -0
  239. package/dist/routes/goals.d.ts +3 -0
  240. package/dist/routes/goals.d.ts.map +1 -0
  241. package/dist/routes/goals.js +95 -0
  242. package/dist/routes/goals.js.map +1 -0
  243. package/dist/routes/health.d.ts +9 -0
  244. package/dist/routes/health.d.ts.map +1 -0
  245. package/dist/routes/health.js +143 -0
  246. package/dist/routes/health.js.map +1 -0
  247. package/dist/routes/inbox-dismissals.d.ts +3 -0
  248. package/dist/routes/inbox-dismissals.d.ts.map +1 -0
  249. package/dist/routes/inbox-dismissals.js +58 -0
  250. package/dist/routes/inbox-dismissals.js.map +1 -0
  251. package/dist/routes/index.d.ts +24 -0
  252. package/dist/routes/index.d.ts.map +1 -0
  253. package/dist/routes/index.js +24 -0
  254. package/dist/routes/index.js.map +1 -0
  255. package/dist/routes/instance-database-backups.d.ts +15 -0
  256. package/dist/routes/instance-database-backups.d.ts.map +1 -0
  257. package/dist/routes/instance-database-backups.js +12 -0
  258. package/dist/routes/instance-database-backups.js.map +1 -0
  259. package/dist/routes/instance-settings.d.ts +3 -0
  260. package/dist/routes/instance-settings.d.ts.map +1 -0
  261. package/dist/routes/instance-settings.js +110 -0
  262. package/dist/routes/instance-settings.js.map +1 -0
  263. package/dist/routes/issue-tree-control.d.ts +3 -0
  264. package/dist/routes/issue-tree-control.d.ts.map +1 -0
  265. package/dist/routes/issue-tree-control.js +373 -0
  266. package/dist/routes/issue-tree-control.js.map +1 -0
  267. package/dist/routes/issues-checkout-wakeup.d.ts +9 -0
  268. package/dist/routes/issues-checkout-wakeup.d.ts.map +1 -0
  269. package/dist/routes/issues-checkout-wakeup.js +12 -0
  270. package/dist/routes/issues-checkout-wakeup.js.map +1 -0
  271. package/dist/routes/issues.d.ts +15 -0
  272. package/dist/routes/issues.d.ts.map +1 -0
  273. package/dist/routes/issues.js +5276 -0
  274. package/dist/routes/issues.js.map +1 -0
  275. package/dist/routes/llms.d.ts +3 -0
  276. package/dist/routes/llms.d.ts.map +1 -0
  277. package/dist/routes/llms.js +80 -0
  278. package/dist/routes/llms.js.map +1 -0
  279. package/dist/routes/openapi.d.ts +4 -0
  280. package/dist/routes/openapi.d.ts.map +1 -0
  281. package/dist/routes/openapi.js +3284 -0
  282. package/dist/routes/openapi.js.map +1 -0
  283. package/dist/routes/org-chart-svg.d.ts +25 -0
  284. package/dist/routes/org-chart-svg.d.ts.map +1 -0
  285. package/dist/routes/org-chart-svg.js +656 -0
  286. package/dist/routes/org-chart-svg.js.map +1 -0
  287. package/dist/routes/plugin-ui-static.d.ts +69 -0
  288. package/dist/routes/plugin-ui-static.d.ts.map +1 -0
  289. package/dist/routes/plugin-ui-static.js +411 -0
  290. package/dist/routes/plugin-ui-static.js.map +1 -0
  291. package/dist/routes/plugins.d.ts +121 -0
  292. package/dist/routes/plugins.d.ts.map +1 -0
  293. package/dist/routes/plugins.js +2390 -0
  294. package/dist/routes/plugins.js.map +1 -0
  295. package/dist/routes/projects.d.ts +3 -0
  296. package/dist/routes/projects.d.ts.map +1 -0
  297. package/dist/routes/projects.js +566 -0
  298. package/dist/routes/projects.js.map +1 -0
  299. package/dist/routes/resource-memberships.d.ts +3 -0
  300. package/dist/routes/resource-memberships.d.ts.map +1 -0
  301. package/dist/routes/resource-memberships.js +97 -0
  302. package/dist/routes/resource-memberships.js.map +1 -0
  303. package/dist/routes/routines.d.ts +6 -0
  304. package/dist/routes/routines.d.ts.map +1 -0
  305. package/dist/routes/routines.js +411 -0
  306. package/dist/routes/routines.js.map +1 -0
  307. package/dist/routes/secrets.d.ts +3 -0
  308. package/dist/routes/secrets.d.ts.map +1 -0
  309. package/dist/routes/secrets.js +419 -0
  310. package/dist/routes/secrets.js.map +1 -0
  311. package/dist/routes/sidebar-badges.d.ts +3 -0
  312. package/dist/routes/sidebar-badges.d.ts.map +1 -0
  313. package/dist/routes/sidebar-badges.js +68 -0
  314. package/dist/routes/sidebar-badges.js.map +1 -0
  315. package/dist/routes/sidebar-preferences.d.ts +3 -0
  316. package/dist/routes/sidebar-preferences.d.ts.map +1 -0
  317. package/dist/routes/sidebar-preferences.js +63 -0
  318. package/dist/routes/sidebar-preferences.js.map +1 -0
  319. package/dist/routes/squad-import-paths.d.ts +3 -0
  320. package/dist/routes/squad-import-paths.d.ts.map +1 -0
  321. package/dist/routes/squad-import-paths.js +3 -0
  322. package/dist/routes/squad-import-paths.js.map +1 -0
  323. package/dist/routes/squad-skills.d.ts +3 -0
  324. package/dist/routes/squad-skills.d.ts.map +1 -0
  325. package/dist/routes/squad-skills.js +366 -0
  326. package/dist/routes/squad-skills.js.map +1 -0
  327. package/dist/routes/squads.d.ts +4 -0
  328. package/dist/routes/squads.d.ts.map +1 -0
  329. package/dist/routes/squads.js +450 -0
  330. package/dist/routes/squads.js.map +1 -0
  331. package/dist/routes/user-profiles.d.ts +3 -0
  332. package/dist/routes/user-profiles.d.ts.map +1 -0
  333. package/dist/routes/user-profiles.js +337 -0
  334. package/dist/routes/user-profiles.js.map +1 -0
  335. package/dist/routes/workspace-command-authz.d.ts +14 -0
  336. package/dist/routes/workspace-command-authz.d.ts.map +1 -0
  337. package/dist/routes/workspace-command-authz.js +83 -0
  338. package/dist/routes/workspace-command-authz.js.map +1 -0
  339. package/dist/routes/workspace-runtime-service-authz.d.ts +12 -0
  340. package/dist/routes/workspace-runtime-service-authz.d.ts.map +1 -0
  341. package/dist/routes/workspace-runtime-service-authz.js +96 -0
  342. package/dist/routes/workspace-runtime-service-authz.js.map +1 -0
  343. package/dist/runtime-api.d.ts +19 -0
  344. package/dist/runtime-api.d.ts.map +1 -0
  345. package/dist/runtime-api.js +137 -0
  346. package/dist/runtime-api.js.map +1 -0
  347. package/dist/secrets/aws-secrets-manager-provider.d.ts +87 -0
  348. package/dist/secrets/aws-secrets-manager-provider.d.ts.map +1 -0
  349. package/dist/secrets/aws-secrets-manager-provider.js +964 -0
  350. package/dist/secrets/aws-secrets-manager-provider.js.map +1 -0
  351. package/dist/secrets/configured-provider.d.ts +3 -0
  352. package/dist/secrets/configured-provider.d.ts.map +1 -0
  353. package/dist/secrets/configured-provider.js +8 -0
  354. package/dist/secrets/configured-provider.js.map +1 -0
  355. package/dist/secrets/external-stub-providers.d.ts +5 -0
  356. package/dist/secrets/external-stub-providers.d.ts.map +1 -0
  357. package/dist/secrets/external-stub-providers.js +71 -0
  358. package/dist/secrets/external-stub-providers.js.map +1 -0
  359. package/dist/secrets/local-encrypted-provider.d.ts +3 -0
  360. package/dist/secrets/local-encrypted-provider.d.ts.map +1 -0
  361. package/dist/secrets/local-encrypted-provider.js +244 -0
  362. package/dist/secrets/local-encrypted-provider.js.map +1 -0
  363. package/dist/secrets/provider-registry.d.ts +6 -0
  364. package/dist/secrets/provider-registry.d.ts.map +1 -0
  365. package/dist/secrets/provider-registry.js +24 -0
  366. package/dist/secrets/provider-registry.js.map +1 -0
  367. package/dist/secrets/types.d.ts +138 -0
  368. package/dist/secrets/types.d.ts.map +1 -0
  369. package/dist/secrets/types.js +36 -0
  370. package/dist/secrets/types.js.map +1 -0
  371. package/dist/services/access.d.ts +184 -0
  372. package/dist/services/access.d.ts.map +1 -0
  373. package/dist/services/access.js +542 -0
  374. package/dist/services/access.js.map +1 -0
  375. package/dist/services/activity-log.d.ts +19 -0
  376. package/dist/services/activity-log.d.ts.map +1 -0
  377. package/dist/services/activity-log.js +99 -0
  378. package/dist/services/activity-log.js.map +1 -0
  379. package/dist/services/activity.d.ts +462 -0
  380. package/dist/services/activity.d.ts.map +1 -0
  381. package/dist/services/activity.js +443 -0
  382. package/dist/services/activity.js.map +1 -0
  383. package/dist/services/adapter-plugin-store.d.ts +36 -0
  384. package/dist/services/adapter-plugin-store.d.ts.map +1 -0
  385. package/dist/services/adapter-plugin-store.js +154 -0
  386. package/dist/services/adapter-plugin-store.js.map +1 -0
  387. package/dist/services/agent-instructions.d.ts +91 -0
  388. package/dist/services/agent-instructions.d.ts.map +1 -0
  389. package/dist/services/agent-instructions.js +580 -0
  390. package/dist/services/agent-instructions.js.map +1 -0
  391. package/dist/services/agent-permissions.d.ts +6 -0
  392. package/dist/services/agent-permissions.d.ts.map +1 -0
  393. package/dist/services/agent-permissions.js +20 -0
  394. package/dist/services/agent-permissions.js.map +1 -0
  395. package/dist/services/agent-start-lock.d.ts +2 -0
  396. package/dist/services/agent-start-lock.d.ts.map +1 -0
  397. package/dist/services/agent-start-lock.js +43 -0
  398. package/dist/services/agent-start-lock.js.map +1 -0
  399. package/dist/services/agents.d.ts +2253 -0
  400. package/dist/services/agents.d.ts.map +1 -0
  401. package/dist/services/agents.js +609 -0
  402. package/dist/services/agents.js.map +1 -0
  403. package/dist/services/approvals.d.ts +546 -0
  404. package/dist/services/approvals.d.ts.map +1 -0
  405. package/dist/services/approvals.js +212 -0
  406. package/dist/services/approvals.js.map +1 -0
  407. package/dist/services/assets.d.ts +33 -0
  408. package/dist/services/assets.d.ts.map +1 -0
  409. package/dist/services/assets.js +17 -0
  410. package/dist/services/assets.js.map +1 -0
  411. package/dist/services/authorization.d.ts +67 -0
  412. package/dist/services/authorization.d.ts.map +1 -0
  413. package/dist/services/authorization.js +608 -0
  414. package/dist/services/authorization.js.map +1 -0
  415. package/dist/services/botfather/authoring-lock.d.ts +17 -0
  416. package/dist/services/botfather/authoring-lock.d.ts.map +1 -0
  417. package/dist/services/botfather/authoring-lock.js +23 -0
  418. package/dist/services/botfather/authoring-lock.js.map +1 -0
  419. package/dist/services/botfather/authoring-lock.test.d.ts +2 -0
  420. package/dist/services/botfather/authoring-lock.test.d.ts.map +1 -0
  421. package/dist/services/botfather/authoring-lock.test.js +25 -0
  422. package/dist/services/botfather/authoring-lock.test.js.map +1 -0
  423. package/dist/services/botfather/client.d.ts +26 -0
  424. package/dist/services/botfather/client.d.ts.map +1 -0
  425. package/dist/services/botfather/client.js +113 -0
  426. package/dist/services/botfather/client.js.map +1 -0
  427. package/dist/services/botfather/credentials.d.ts +15 -0
  428. package/dist/services/botfather/credentials.d.ts.map +1 -0
  429. package/dist/services/botfather/credentials.js +39 -0
  430. package/dist/services/botfather/credentials.js.map +1 -0
  431. package/dist/services/botfather/enrollment.d.ts +49 -0
  432. package/dist/services/botfather/enrollment.d.ts.map +1 -0
  433. package/dist/services/botfather/enrollment.js +145 -0
  434. package/dist/services/botfather/enrollment.js.map +1 -0
  435. package/dist/services/botfather/instance-limit-enforcement.d.ts +44 -0
  436. package/dist/services/botfather/instance-limit-enforcement.d.ts.map +1 -0
  437. package/dist/services/botfather/instance-limit-enforcement.js +83 -0
  438. package/dist/services/botfather/instance-limit-enforcement.js.map +1 -0
  439. package/dist/services/botfather/instance-limit-enforcement.test.d.ts +2 -0
  440. package/dist/services/botfather/instance-limit-enforcement.test.d.ts.map +1 -0
  441. package/dist/services/botfather/instance-limit-enforcement.test.js +66 -0
  442. package/dist/services/botfather/instance-limit-enforcement.test.js.map +1 -0
  443. package/dist/services/botfather/limits-store.d.ts +36 -0
  444. package/dist/services/botfather/limits-store.d.ts.map +1 -0
  445. package/dist/services/botfather/limits-store.js +94 -0
  446. package/dist/services/botfather/limits-store.js.map +1 -0
  447. package/dist/services/botfather/limits-store.test.d.ts +2 -0
  448. package/dist/services/botfather/limits-store.test.d.ts.map +1 -0
  449. package/dist/services/botfather/limits-store.test.js +70 -0
  450. package/dist/services/botfather/limits-store.test.js.map +1 -0
  451. package/dist/services/botfather/reporter.d.ts +41 -0
  452. package/dist/services/botfather/reporter.d.ts.map +1 -0
  453. package/dist/services/botfather/reporter.js +448 -0
  454. package/dist/services/botfather/reporter.js.map +1 -0
  455. package/dist/services/botfather/service.d.ts +84 -0
  456. package/dist/services/botfather/service.d.ts.map +1 -0
  457. package/dist/services/botfather/service.js +229 -0
  458. package/dist/services/botfather/service.js.map +1 -0
  459. package/dist/services/botfather/service.test.d.ts +2 -0
  460. package/dist/services/botfather/service.test.d.ts.map +1 -0
  461. package/dist/services/botfather/service.test.js +120 -0
  462. package/dist/services/botfather/service.test.js.map +1 -0
  463. package/dist/services/botfather/skill-catalog.d.ts +28 -0
  464. package/dist/services/botfather/skill-catalog.d.ts.map +1 -0
  465. package/dist/services/botfather/skill-catalog.js +101 -0
  466. package/dist/services/botfather/skill-catalog.js.map +1 -0
  467. package/dist/services/botfather/skill-catalog.test.d.ts +2 -0
  468. package/dist/services/botfather/skill-catalog.test.d.ts.map +1 -0
  469. package/dist/services/botfather/skill-catalog.test.js +151 -0
  470. package/dist/services/botfather/skill-catalog.test.js.map +1 -0
  471. package/dist/services/budgets.d.ts +38 -0
  472. package/dist/services/budgets.d.ts.map +1 -0
  473. package/dist/services/budgets.js +833 -0
  474. package/dist/services/budgets.js.map +1 -0
  475. package/dist/services/catalog-provenance.d.ts +7 -0
  476. package/dist/services/catalog-provenance.d.ts.map +1 -0
  477. package/dist/services/catalog-provenance.js +64 -0
  478. package/dist/services/catalog-provenance.js.map +1 -0
  479. package/dist/services/cloud-upstreams.d.ts +42 -0
  480. package/dist/services/cloud-upstreams.d.ts.map +1 -0
  481. package/dist/services/cloud-upstreams.js +1071 -0
  482. package/dist/services/cloud-upstreams.js.map +1 -0
  483. package/dist/services/costs.d.ts +127 -0
  484. package/dist/services/costs.d.ts.map +1 -0
  485. package/dist/services/costs.js +409 -0
  486. package/dist/services/costs.js.map +1 -0
  487. package/dist/services/cron.d.ts +80 -0
  488. package/dist/services/cron.d.ts.map +1 -0
  489. package/dist/services/cron.js +300 -0
  490. package/dist/services/cron.js.map +1 -0
  491. package/dist/services/dashboard.d.ts +34 -0
  492. package/dist/services/dashboard.d.ts.map +1 -0
  493. package/dist/services/dashboard.js +142 -0
  494. package/dist/services/dashboard.js.map +1 -0
  495. package/dist/services/default-agent-instructions.d.ts +9 -0
  496. package/dist/services/default-agent-instructions.d.ts.map +1 -0
  497. package/dist/services/default-agent-instructions.js +20 -0
  498. package/dist/services/default-agent-instructions.js.map +1 -0
  499. package/dist/services/document-annotations.d.ts +160 -0
  500. package/dist/services/document-annotations.d.ts.map +1 -0
  501. package/dist/services/document-annotations.js +324 -0
  502. package/dist/services/document-annotations.js.map +1 -0
  503. package/dist/services/documents.d.ts +347 -0
  504. package/dist/services/documents.d.ts.map +1 -0
  505. package/dist/services/documents.js +638 -0
  506. package/dist/services/documents.js.map +1 -0
  507. package/dist/services/environment-config.d.ts +55 -0
  508. package/dist/services/environment-config.d.ts.map +1 -0
  509. package/dist/services/environment-config.js +441 -0
  510. package/dist/services/environment-config.js.map +1 -0
  511. package/dist/services/environment-execution-target.d.ts +21 -0
  512. package/dist/services/environment-execution-target.d.ts.map +1 -0
  513. package/dist/services/environment-execution-target.js +121 -0
  514. package/dist/services/environment-execution-target.js.map +1 -0
  515. package/dist/services/environment-probe.d.ts +9 -0
  516. package/dist/services/environment-probe.d.ts.map +1 -0
  517. package/dist/services/environment-probe.js +106 -0
  518. package/dist/services/environment-probe.js.map +1 -0
  519. package/dist/services/environment-run-orchestrator.d.ts +124 -0
  520. package/dist/services/environment-run-orchestrator.d.ts.map +1 -0
  521. package/dist/services/environment-run-orchestrator.js +392 -0
  522. package/dist/services/environment-run-orchestrator.js.map +1 -0
  523. package/dist/services/environment-runtime.d.ts +90 -0
  524. package/dist/services/environment-runtime.d.ts.map +1 -0
  525. package/dist/services/environment-runtime.js +968 -0
  526. package/dist/services/environment-runtime.js.map +1 -0
  527. package/dist/services/environments.d.ts +36 -0
  528. package/dist/services/environments.d.ts.map +1 -0
  529. package/dist/services/environments.js +260 -0
  530. package/dist/services/environments.js.map +1 -0
  531. package/dist/services/execution-workspace-policy.d.ts +42 -0
  532. package/dist/services/execution-workspace-policy.d.ts.map +1 -0
  533. package/dist/services/execution-workspace-policy.js +262 -0
  534. package/dist/services/execution-workspace-policy.js.map +1 -0
  535. package/dist/services/execution-workspaces.d.ts +30 -0
  536. package/dist/services/execution-workspaces.d.ts.map +1 -0
  537. package/dist/services/execution-workspaces.js +645 -0
  538. package/dist/services/execution-workspaces.js.map +1 -0
  539. package/dist/services/finance.d.ts +93 -0
  540. package/dist/services/finance.d.ts.map +1 -0
  541. package/dist/services/finance.js +120 -0
  542. package/dist/services/finance.js.map +1 -0
  543. package/dist/services/github-fetch.d.ts +4 -0
  544. package/dist/services/github-fetch.d.ts.map +1 -0
  545. package/dist/services/github-fetch.js +23 -0
  546. package/dist/services/github-fetch.js.map +1 -0
  547. package/dist/services/goals.d.ts +433 -0
  548. package/dist/services/goals.d.ts.map +1 -0
  549. package/dist/services/goals.js +54 -0
  550. package/dist/services/goals.js.map +1 -0
  551. package/dist/services/heartbeat-circuit-breaker.d.ts +89 -0
  552. package/dist/services/heartbeat-circuit-breaker.d.ts.map +1 -0
  553. package/dist/services/heartbeat-circuit-breaker.js +156 -0
  554. package/dist/services/heartbeat-circuit-breaker.js.map +1 -0
  555. package/dist/services/heartbeat-circuit-breaker.test.d.ts +2 -0
  556. package/dist/services/heartbeat-circuit-breaker.test.d.ts.map +1 -0
  557. package/dist/services/heartbeat-circuit-breaker.test.js +97 -0
  558. package/dist/services/heartbeat-circuit-breaker.test.js.map +1 -0
  559. package/dist/services/heartbeat-run-summary.d.ts +7 -0
  560. package/dist/services/heartbeat-run-summary.d.ts.map +1 -0
  561. package/dist/services/heartbeat-run-summary.js +84 -0
  562. package/dist/services/heartbeat-run-summary.js.map +1 -0
  563. package/dist/services/heartbeat-stop-metadata.d.ts +28 -0
  564. package/dist/services/heartbeat-stop-metadata.d.ts.map +1 -0
  565. package/dist/services/heartbeat-stop-metadata.js +86 -0
  566. package/dist/services/heartbeat-stop-metadata.js.map +1 -0
  567. package/dist/services/heartbeat-stop-metadata.test.d.ts +2 -0
  568. package/dist/services/heartbeat-stop-metadata.test.d.ts.map +1 -0
  569. package/dist/services/heartbeat-stop-metadata.test.js +93 -0
  570. package/dist/services/heartbeat-stop-metadata.test.js.map +1 -0
  571. package/dist/services/heartbeat.d.ts +1578 -0
  572. package/dist/services/heartbeat.d.ts.map +1 -0
  573. package/dist/services/heartbeat.js +8274 -0
  574. package/dist/services/heartbeat.js.map +1 -0
  575. package/dist/services/hire-hook.d.ts +14 -0
  576. package/dist/services/hire-hook.d.ts.map +1 -0
  577. package/dist/services/hire-hook.js +85 -0
  578. package/dist/services/hire-hook.js.map +1 -0
  579. package/dist/services/inbox-dismissals.d.ts +22 -0
  580. package/dist/services/inbox-dismissals.d.ts.map +1 -0
  581. package/dist/services/inbox-dismissals.js +33 -0
  582. package/dist/services/inbox-dismissals.js.map +1 -0
  583. package/dist/services/index.d.ts +50 -0
  584. package/dist/services/index.d.ts.map +1 -0
  585. package/dist/services/index.js +49 -0
  586. package/dist/services/index.js.map +1 -0
  587. package/dist/services/instance-settings.d.ts +12 -0
  588. package/dist/services/instance-settings.d.ts.map +1 -0
  589. package/dist/services/instance-settings.js +142 -0
  590. package/dist/services/instance-settings.js.map +1 -0
  591. package/dist/services/invite-grants.d.ts +15 -0
  592. package/dist/services/invite-grants.d.ts.map +1 -0
  593. package/dist/services/invite-grants.js +50 -0
  594. package/dist/services/invite-grants.js.map +1 -0
  595. package/dist/services/issue-approvals.d.ts +56 -0
  596. package/dist/services/issue-approvals.d.ts.map +1 -0
  597. package/dist/services/issue-approvals.js +153 -0
  598. package/dist/services/issue-approvals.js.map +1 -0
  599. package/dist/services/issue-assignment-wakeup.d.ts +29 -0
  600. package/dist/services/issue-assignment-wakeup.d.ts.map +1 -0
  601. package/dist/services/issue-assignment-wakeup.js +22 -0
  602. package/dist/services/issue-assignment-wakeup.js.map +1 -0
  603. package/dist/services/issue-continuation-summary.d.ts +71 -0
  604. package/dist/services/issue-continuation-summary.d.ts.map +1 -0
  605. package/dist/services/issue-continuation-summary.js +222 -0
  606. package/dist/services/issue-continuation-summary.js.map +1 -0
  607. package/dist/services/issue-execution-policy.d.ts +93 -0
  608. package/dist/services/issue-execution-policy.d.ts.map +1 -0
  609. package/dist/services/issue-execution-policy.js +838 -0
  610. package/dist/services/issue-execution-policy.js.map +1 -0
  611. package/dist/services/issue-goal-fallback.d.ts +18 -0
  612. package/dist/services/issue-goal-fallback.d.ts.map +1 -0
  613. package/dist/services/issue-goal-fallback.js +33 -0
  614. package/dist/services/issue-goal-fallback.js.map +1 -0
  615. package/dist/services/issue-liveness.d.ts +3 -0
  616. package/dist/services/issue-liveness.d.ts.map +1 -0
  617. package/dist/services/issue-liveness.js +2 -0
  618. package/dist/services/issue-liveness.js.map +1 -0
  619. package/dist/services/issue-recovery-actions.d.ts +40 -0
  620. package/dist/services/issue-recovery-actions.d.ts.map +1 -0
  621. package/dist/services/issue-recovery-actions.js +204 -0
  622. package/dist/services/issue-recovery-actions.js.map +1 -0
  623. package/dist/services/issue-references.d.ts +22 -0
  624. package/dist/services/issue-references.d.ts.map +1 -0
  625. package/dist/services/issue-references.js +341 -0
  626. package/dist/services/issue-references.js.map +1 -0
  627. package/dist/services/issue-thread-interactions.d.ts +81 -0
  628. package/dist/services/issue-thread-interactions.d.ts.map +1 -0
  629. package/dist/services/issue-thread-interactions.js +1017 -0
  630. package/dist/services/issue-thread-interactions.js.map +1 -0
  631. package/dist/services/issue-thread-interactions.test.d.ts +2 -0
  632. package/dist/services/issue-thread-interactions.test.d.ts.map +1 -0
  633. package/dist/services/issue-thread-interactions.test.js +195 -0
  634. package/dist/services/issue-thread-interactions.test.js.map +1 -0
  635. package/dist/services/issue-tree-control.d.ts +89 -0
  636. package/dist/services/issue-tree-control.d.ts.map +1 -0
  637. package/dist/services/issue-tree-control.js +933 -0
  638. package/dist/services/issue-tree-control.js.map +1 -0
  639. package/dist/services/issues.d.ts +898 -0
  640. package/dist/services/issues.d.ts.map +1 -0
  641. package/dist/services/issues.js +4705 -0
  642. package/dist/services/issues.js.map +1 -0
  643. package/dist/services/json-schema-secret-refs.d.ts +5 -0
  644. package/dist/services/json-schema-secret-refs.d.ts.map +1 -0
  645. package/dist/services/json-schema-secret-refs.js +67 -0
  646. package/dist/services/json-schema-secret-refs.js.map +1 -0
  647. package/dist/services/live-events.d.ts +17 -0
  648. package/dist/services/live-events.d.ts.map +1 -0
  649. package/dist/services/live-events.js +33 -0
  650. package/dist/services/live-events.js.map +1 -0
  651. package/dist/services/local-service-supervisor.d.ts +56 -0
  652. package/dist/services/local-service-supervisor.d.ts.map +1 -0
  653. package/dist/services/local-service-supervisor.js +284 -0
  654. package/dist/services/local-service-supervisor.js.map +1 -0
  655. package/dist/services/operator-auth.d.ts +271 -0
  656. package/dist/services/operator-auth.d.ts.map +1 -0
  657. package/dist/services/operator-auth.js +361 -0
  658. package/dist/services/operator-auth.js.map +1 -0
  659. package/dist/services/plugin-capability-validator.d.ts +108 -0
  660. package/dist/services/plugin-capability-validator.d.ts.map +1 -0
  661. package/dist/services/plugin-capability-validator.js +314 -0
  662. package/dist/services/plugin-capability-validator.js.map +1 -0
  663. package/dist/services/plugin-config-validator.d.ts +26 -0
  664. package/dist/services/plugin-config-validator.d.ts.map +1 -0
  665. package/dist/services/plugin-config-validator.js +41 -0
  666. package/dist/services/plugin-config-validator.js.map +1 -0
  667. package/dist/services/plugin-database.d.ts +49 -0
  668. package/dist/services/plugin-database.d.ts.map +1 -0
  669. package/dist/services/plugin-database.js +475 -0
  670. package/dist/services/plugin-database.js.map +1 -0
  671. package/dist/services/plugin-dev-watcher.d.ts +30 -0
  672. package/dist/services/plugin-dev-watcher.d.ts.map +1 -0
  673. package/dist/services/plugin-dev-watcher.js +246 -0
  674. package/dist/services/plugin-dev-watcher.js.map +1 -0
  675. package/dist/services/plugin-environment-driver.d.ts +126 -0
  676. package/dist/services/plugin-environment-driver.d.ts.map +1 -0
  677. package/dist/services/plugin-environment-driver.js +226 -0
  678. package/dist/services/plugin-environment-driver.js.map +1 -0
  679. package/dist/services/plugin-event-bus.d.ts +149 -0
  680. package/dist/services/plugin-event-bus.d.ts.map +1 -0
  681. package/dist/services/plugin-event-bus.js +258 -0
  682. package/dist/services/plugin-event-bus.js.map +1 -0
  683. package/dist/services/plugin-host-service-cleanup.d.ts +14 -0
  684. package/dist/services/plugin-host-service-cleanup.d.ts.map +1 -0
  685. package/dist/services/plugin-host-service-cleanup.js +37 -0
  686. package/dist/services/plugin-host-service-cleanup.js.map +1 -0
  687. package/dist/services/plugin-host-services.d.ts +17 -0
  688. package/dist/services/plugin-host-services.d.ts.map +1 -0
  689. package/dist/services/plugin-host-services.js +2460 -0
  690. package/dist/services/plugin-host-services.js.map +1 -0
  691. package/dist/services/plugin-job-coordinator.d.ts +81 -0
  692. package/dist/services/plugin-job-coordinator.d.ts.map +1 -0
  693. package/dist/services/plugin-job-coordinator.js +172 -0
  694. package/dist/services/plugin-job-coordinator.js.map +1 -0
  695. package/dist/services/plugin-job-scheduler.d.ts +163 -0
  696. package/dist/services/plugin-job-scheduler.d.ts.map +1 -0
  697. package/dist/services/plugin-job-scheduler.js +454 -0
  698. package/dist/services/plugin-job-scheduler.js.map +1 -0
  699. package/dist/services/plugin-job-store.d.ts +208 -0
  700. package/dist/services/plugin-job-store.d.ts.map +1 -0
  701. package/dist/services/plugin-job-store.js +350 -0
  702. package/dist/services/plugin-job-store.js.map +1 -0
  703. package/dist/services/plugin-lifecycle.d.ts +203 -0
  704. package/dist/services/plugin-lifecycle.d.ts.map +1 -0
  705. package/dist/services/plugin-lifecycle.js +501 -0
  706. package/dist/services/plugin-lifecycle.js.map +1 -0
  707. package/dist/services/plugin-loader.d.ts +453 -0
  708. package/dist/services/plugin-loader.d.ts.map +1 -0
  709. package/dist/services/plugin-loader.js +1295 -0
  710. package/dist/services/plugin-loader.js.map +1 -0
  711. package/dist/services/plugin-local-folders.d.ts +49 -0
  712. package/dist/services/plugin-local-folders.d.ts.map +1 -0
  713. package/dist/services/plugin-local-folders.js +510 -0
  714. package/dist/services/plugin-local-folders.js.map +1 -0
  715. package/dist/services/plugin-log-retention.d.ts +20 -0
  716. package/dist/services/plugin-log-retention.d.ts.map +1 -0
  717. package/dist/services/plugin-log-retention.js +63 -0
  718. package/dist/services/plugin-log-retention.js.map +1 -0
  719. package/dist/services/plugin-managed-agents.d.ts +15 -0
  720. package/dist/services/plugin-managed-agents.d.ts.map +1 -0
  721. package/dist/services/plugin-managed-agents.js +457 -0
  722. package/dist/services/plugin-managed-agents.js.map +1 -0
  723. package/dist/services/plugin-managed-routines.d.ts +42 -0
  724. package/dist/services/plugin-managed-routines.d.ts.map +1 -0
  725. package/dist/services/plugin-managed-routines.js +416 -0
  726. package/dist/services/plugin-managed-routines.js.map +1 -0
  727. package/dist/services/plugin-managed-skills.d.ts +14 -0
  728. package/dist/services/plugin-managed-skills.d.ts.map +1 -0
  729. package/dist/services/plugin-managed-skills.js +264 -0
  730. package/dist/services/plugin-managed-skills.js.map +1 -0
  731. package/dist/services/plugin-manifest-validator.d.ts +79 -0
  732. package/dist/services/plugin-manifest-validator.d.ts.map +1 -0
  733. package/dist/services/plugin-manifest-validator.js +84 -0
  734. package/dist/services/plugin-manifest-validator.js.map +1 -0
  735. package/dist/services/plugin-registry.d.ts +2550 -0
  736. package/dist/services/plugin-registry.d.ts.map +1 -0
  737. package/dist/services/plugin-registry.js +581 -0
  738. package/dist/services/plugin-registry.js.map +1 -0
  739. package/dist/services/plugin-runtime-sandbox.d.ts +40 -0
  740. package/dist/services/plugin-runtime-sandbox.d.ts.map +1 -0
  741. package/dist/services/plugin-runtime-sandbox.js +154 -0
  742. package/dist/services/plugin-runtime-sandbox.js.map +1 -0
  743. package/dist/services/plugin-secrets-handler.d.ts +83 -0
  744. package/dist/services/plugin-secrets-handler.d.ts.map +1 -0
  745. package/dist/services/plugin-secrets-handler.js +168 -0
  746. package/dist/services/plugin-secrets-handler.js.map +1 -0
  747. package/dist/services/plugin-state-store.d.ts +92 -0
  748. package/dist/services/plugin-state-store.d.ts.map +1 -0
  749. package/dist/services/plugin-state-store.js +190 -0
  750. package/dist/services/plugin-state-store.js.map +1 -0
  751. package/dist/services/plugin-stream-bus.d.ts +29 -0
  752. package/dist/services/plugin-stream-bus.d.ts.map +1 -0
  753. package/dist/services/plugin-stream-bus.js +48 -0
  754. package/dist/services/plugin-stream-bus.js.map +1 -0
  755. package/dist/services/plugin-tool-dispatcher.d.ts +181 -0
  756. package/dist/services/plugin-tool-dispatcher.d.ts.map +1 -0
  757. package/dist/services/plugin-tool-dispatcher.js +224 -0
  758. package/dist/services/plugin-tool-dispatcher.js.map +1 -0
  759. package/dist/services/plugin-tool-registry.d.ts +192 -0
  760. package/dist/services/plugin-tool-registry.d.ts.map +1 -0
  761. package/dist/services/plugin-tool-registry.js +224 -0
  762. package/dist/services/plugin-tool-registry.js.map +1 -0
  763. package/dist/services/plugin-worker-manager.d.ts +262 -0
  764. package/dist/services/plugin-worker-manager.d.ts.map +1 -0
  765. package/dist/services/plugin-worker-manager.js +942 -0
  766. package/dist/services/plugin-worker-manager.js.map +1 -0
  767. package/dist/services/portable-path.d.ts +2 -0
  768. package/dist/services/portable-path.d.ts.map +1 -0
  769. package/dist/services/portable-path.js +15 -0
  770. package/dist/services/portable-path.js.map +1 -0
  771. package/dist/services/principal-access-compatibility.d.ts +26 -0
  772. package/dist/services/principal-access-compatibility.d.ts.map +1 -0
  773. package/dist/services/principal-access-compatibility.js +94 -0
  774. package/dist/services/principal-access-compatibility.js.map +1 -0
  775. package/dist/services/productivity-review.d.ts +83 -0
  776. package/dist/services/productivity-review.d.ts.map +1 -0
  777. package/dist/services/productivity-review.js +652 -0
  778. package/dist/services/productivity-review.js.map +1 -0
  779. package/dist/services/project-workspace-runtime-config.d.ts +4 -0
  780. package/dist/services/project-workspace-runtime-config.d.ts.map +1 -0
  781. package/dist/services/project-workspace-runtime-config.js +54 -0
  782. package/dist/services/project-workspace-runtime-config.js.map +1 -0
  783. package/dist/services/projects.d.ts +99 -0
  784. package/dist/services/projects.d.ts.map +1 -0
  785. package/dist/services/projects.js +879 -0
  786. package/dist/services/projects.js.map +1 -0
  787. package/dist/services/quota-windows.d.ts +9 -0
  788. package/dist/services/quota-windows.d.ts.map +1 -0
  789. package/dist/services/quota-windows.js +56 -0
  790. package/dist/services/quota-windows.js.map +1 -0
  791. package/dist/services/recovery/index.d.ts +10 -0
  792. package/dist/services/recovery/index.d.ts.map +1 -0
  793. package/dist/services/recovery/index.js +6 -0
  794. package/dist/services/recovery/index.js.map +1 -0
  795. package/dist/services/recovery/issue-graph-liveness.d.ts +85 -0
  796. package/dist/services/recovery/issue-graph-liveness.d.ts.map +1 -0
  797. package/dist/services/recovery/issue-graph-liveness.js +356 -0
  798. package/dist/services/recovery/issue-graph-liveness.js.map +1 -0
  799. package/dist/services/recovery/model-profile-hint.d.ts +21 -0
  800. package/dist/services/recovery/model-profile-hint.d.ts.map +1 -0
  801. package/dist/services/recovery/model-profile-hint.js +36 -0
  802. package/dist/services/recovery/model-profile-hint.js.map +1 -0
  803. package/dist/services/recovery/model-profile-hint.test.d.ts +2 -0
  804. package/dist/services/recovery/model-profile-hint.test.d.ts.map +1 -0
  805. package/dist/services/recovery/model-profile-hint.test.js +38 -0
  806. package/dist/services/recovery/model-profile-hint.test.js.map +1 -0
  807. package/dist/services/recovery/origins.d.ts +36 -0
  808. package/dist/services/recovery/origins.d.ts.map +1 -0
  809. package/dist/services/recovery/origins.js +45 -0
  810. package/dist/services/recovery/origins.js.map +1 -0
  811. package/dist/services/recovery/pause-hold-guard.d.ts +6 -0
  812. package/dist/services/recovery/pause-hold-guard.d.ts.map +1 -0
  813. package/dist/services/recovery/pause-hold-guard.js +6 -0
  814. package/dist/services/recovery/pause-hold-guard.js.map +1 -0
  815. package/dist/services/recovery/run-liveness-continuations.d.ts +50 -0
  816. package/dist/services/recovery/run-liveness-continuations.d.ts.map +1 -0
  817. package/dist/services/recovery/run-liveness-continuations.js +117 -0
  818. package/dist/services/recovery/run-liveness-continuations.js.map +1 -0
  819. package/dist/services/recovery/service.d.ts +258 -0
  820. package/dist/services/recovery/service.d.ts.map +1 -0
  821. package/dist/services/recovery/service.js +2892 -0
  822. package/dist/services/recovery/service.js.map +1 -0
  823. package/dist/services/recovery/successful-run-handoff.d.ts +89 -0
  824. package/dist/services/recovery/successful-run-handoff.d.ts.map +1 -0
  825. package/dist/services/recovery/successful-run-handoff.js +304 -0
  826. package/dist/services/recovery/successful-run-handoff.js.map +1 -0
  827. package/dist/services/recovery/successful-run-handoff.test.d.ts +2 -0
  828. package/dist/services/recovery/successful-run-handoff.test.d.ts.map +1 -0
  829. package/dist/services/recovery/successful-run-handoff.test.js +276 -0
  830. package/dist/services/recovery/successful-run-handoff.test.js.map +1 -0
  831. package/dist/services/resource-memberships.d.ts +55 -0
  832. package/dist/services/resource-memberships.d.ts.map +1 -0
  833. package/dist/services/resource-memberships.js +213 -0
  834. package/dist/services/resource-memberships.js.map +1 -0
  835. package/dist/services/routines.d.ts +170 -0
  836. package/dist/services/routines.d.ts.map +1 -0
  837. package/dist/services/routines.js +2015 -0
  838. package/dist/services/routines.js.map +1 -0
  839. package/dist/services/run-continuations.d.ts +3 -0
  840. package/dist/services/run-continuations.d.ts.map +1 -0
  841. package/dist/services/run-continuations.js +2 -0
  842. package/dist/services/run-continuations.js.map +1 -0
  843. package/dist/services/run-liveness.d.ts +46 -0
  844. package/dist/services/run-liveness.d.ts.map +1 -0
  845. package/dist/services/run-liveness.js +275 -0
  846. package/dist/services/run-liveness.js.map +1 -0
  847. package/dist/services/run-log-store.d.ts +34 -0
  848. package/dist/services/run-log-store.d.ts.map +1 -0
  849. package/dist/services/run-log-store.js +111 -0
  850. package/dist/services/run-log-store.js.map +1 -0
  851. package/dist/services/sandbox-provider-runtime.d.ts +132 -0
  852. package/dist/services/sandbox-provider-runtime.d.ts.map +1 -0
  853. package/dist/services/sandbox-provider-runtime.js +216 -0
  854. package/dist/services/sandbox-provider-runtime.js.map +1 -0
  855. package/dist/services/secrets.d.ts +1991 -0
  856. package/dist/services/secrets.d.ts.map +1 -0
  857. package/dist/services/secrets.js +1781 -0
  858. package/dist/services/secrets.js.map +1 -0
  859. package/dist/services/session-workspace-cwd.d.ts +2 -0
  860. package/dist/services/session-workspace-cwd.d.ts.map +1 -0
  861. package/dist/services/session-workspace-cwd.js +24 -0
  862. package/dist/services/session-workspace-cwd.js.map +1 -0
  863. package/dist/services/session-workspace-cwd.test.d.ts +2 -0
  864. package/dist/services/session-workspace-cwd.test.d.ts.map +1 -0
  865. package/dist/services/session-workspace-cwd.test.js +25 -0
  866. package/dist/services/session-workspace-cwd.test.js.map +1 -0
  867. package/dist/services/sidebar-badges.d.ts +14 -0
  868. package/dist/services/sidebar-badges.d.ts.map +1 -0
  869. package/dist/services/sidebar-badges.js +48 -0
  870. package/dist/services/sidebar-badges.js.map +1 -0
  871. package/dist/services/sidebar-preferences.d.ts +9 -0
  872. package/dist/services/sidebar-preferences.d.ts.map +1 -0
  873. package/dist/services/sidebar-preferences.js +82 -0
  874. package/dist/services/sidebar-preferences.js.map +1 -0
  875. package/dist/services/skills-catalog.d.ts +14 -0
  876. package/dist/services/skills-catalog.d.ts.map +1 -0
  877. package/dist/services/skills-catalog.js +171 -0
  878. package/dist/services/skills-catalog.js.map +1 -0
  879. package/dist/services/squad-export-readme.d.ts +17 -0
  880. package/dist/services/squad-export-readme.d.ts.map +1 -0
  881. package/dist/services/squad-export-readme.js +148 -0
  882. package/dist/services/squad-export-readme.js.map +1 -0
  883. package/dist/services/squad-member-roles.d.ts +9 -0
  884. package/dist/services/squad-member-roles.d.ts.map +1 -0
  885. package/dist/services/squad-member-roles.js +48 -0
  886. package/dist/services/squad-member-roles.js.map +1 -0
  887. package/dist/services/squad-portability.d.ts +24 -0
  888. package/dist/services/squad-portability.d.ts.map +1 -0
  889. package/dist/services/squad-portability.js +4093 -0
  890. package/dist/services/squad-portability.js.map +1 -0
  891. package/dist/services/squad-search-rate-limit.d.ts +22 -0
  892. package/dist/services/squad-search-rate-limit.d.ts.map +1 -0
  893. package/dist/services/squad-search-rate-limit.js +38 -0
  894. package/dist/services/squad-search-rate-limit.js.map +1 -0
  895. package/dist/services/squad-search.d.ts +8 -0
  896. package/dist/services/squad-search.d.ts.map +1 -0
  897. package/dist/services/squad-search.js +626 -0
  898. package/dist/services/squad-search.js.map +1 -0
  899. package/dist/services/squad-skills.d.ts +107 -0
  900. package/dist/services/squad-skills.d.ts.map +1 -0
  901. package/dist/services/squad-skills.js +3044 -0
  902. package/dist/services/squad-skills.js.map +1 -0
  903. package/dist/services/squads.d.ts +154 -0
  904. package/dist/services/squads.d.ts.map +1 -0
  905. package/dist/services/squads.js +278 -0
  906. package/dist/services/squads.js.map +1 -0
  907. package/dist/services/wake-cycle-guard.d.ts +44 -0
  908. package/dist/services/wake-cycle-guard.d.ts.map +1 -0
  909. package/dist/services/wake-cycle-guard.js +79 -0
  910. package/dist/services/wake-cycle-guard.js.map +1 -0
  911. package/dist/services/wake-cycle-guard.test.d.ts +2 -0
  912. package/dist/services/wake-cycle-guard.test.d.ts.map +1 -0
  913. package/dist/services/wake-cycle-guard.test.js +67 -0
  914. package/dist/services/wake-cycle-guard.test.js.map +1 -0
  915. package/dist/services/work-products.d.ts +14 -0
  916. package/dist/services/work-products.d.ts.map +1 -0
  917. package/dist/services/work-products.js +100 -0
  918. package/dist/services/work-products.js.map +1 -0
  919. package/dist/services/workspace-operation-log-store.d.ts +33 -0
  920. package/dist/services/workspace-operation-log-store.d.ts.map +1 -0
  921. package/dist/services/workspace-operation-log-store.js +110 -0
  922. package/dist/services/workspace-operation-log-store.js.map +1 -0
  923. package/dist/services/workspace-operations.d.ts +44 -0
  924. package/dist/services/workspace-operations.d.ts.map +1 -0
  925. package/dist/services/workspace-operations.js +211 -0
  926. package/dist/services/workspace-operations.js.map +1 -0
  927. package/dist/services/workspace-realization.d.ts +33 -0
  928. package/dist/services/workspace-realization.d.ts.map +1 -0
  929. package/dist/services/workspace-realization.js +221 -0
  930. package/dist/services/workspace-realization.js.map +1 -0
  931. package/dist/services/workspace-runtime-read-model.d.ts +92 -0
  932. package/dist/services/workspace-runtime-read-model.d.ts.map +1 -0
  933. package/dist/services/workspace-runtime-read-model.js +67 -0
  934. package/dist/services/workspace-runtime-read-model.js.map +1 -0
  935. package/dist/services/workspace-runtime.d.ts +252 -0
  936. package/dist/services/workspace-runtime.d.ts.map +1 -0
  937. package/dist/services/workspace-runtime.js +2519 -0
  938. package/dist/services/workspace-runtime.js.map +1 -0
  939. package/dist/startup-banner.d.ts +32 -0
  940. package/dist/startup-banner.d.ts.map +1 -0
  941. package/dist/startup-banner.js +118 -0
  942. package/dist/startup-banner.js.map +1 -0
  943. package/dist/static-index-html.d.ts +2 -0
  944. package/dist/static-index-html.d.ts.map +1 -0
  945. package/dist/static-index-html.js +7 -0
  946. package/dist/static-index-html.js.map +1 -0
  947. package/dist/storage/index.d.ts +6 -0
  948. package/dist/storage/index.d.ts.map +1 -0
  949. package/dist/storage/index.js +29 -0
  950. package/dist/storage/index.js.map +1 -0
  951. package/dist/storage/local-disk-provider.d.ts +3 -0
  952. package/dist/storage/local-disk-provider.d.ts.map +1 -0
  953. package/dist/storage/local-disk-provider.js +85 -0
  954. package/dist/storage/local-disk-provider.js.map +1 -0
  955. package/dist/storage/provider-registry.d.ts +4 -0
  956. package/dist/storage/provider-registry.d.ts.map +1 -0
  957. package/dist/storage/provider-registry.js +15 -0
  958. package/dist/storage/provider-registry.js.map +1 -0
  959. package/dist/storage/s3-provider.d.ts +11 -0
  960. package/dist/storage/s3-provider.d.ts.map +1 -0
  961. package/dist/storage/s3-provider.js +124 -0
  962. package/dist/storage/s3-provider.js.map +1 -0
  963. package/dist/storage/service.d.ts +3 -0
  964. package/dist/storage/service.d.ts.map +1 -0
  965. package/dist/storage/service.js +120 -0
  966. package/dist/storage/service.js.map +1 -0
  967. package/dist/storage/types.d.ts +59 -0
  968. package/dist/storage/types.d.ts.map +1 -0
  969. package/dist/storage/types.js +2 -0
  970. package/dist/storage/types.js.map +1 -0
  971. package/dist/ui-branding.d.ts +13 -0
  972. package/dist/ui-branding.d.ts.map +1 -0
  973. package/dist/ui-branding.js +187 -0
  974. package/dist/ui-branding.js.map +1 -0
  975. package/dist/version.d.ts +2 -0
  976. package/dist/version.d.ts.map +1 -0
  977. package/dist/version.js +5 -0
  978. package/dist/version.js.map +1 -0
  979. package/dist/vite-html-renderer.d.ts +18 -0
  980. package/dist/vite-html-renderer.d.ts.map +1 -0
  981. package/dist/vite-html-renderer.js +61 -0
  982. package/dist/vite-html-renderer.js.map +1 -0
  983. package/dist/worktree-config.d.ts +19 -0
  984. package/dist/worktree-config.d.ts.map +1 -0
  985. package/dist/worktree-config.js +373 -0
  986. package/dist/worktree-config.js.map +1 -0
  987. package/package.json +92 -0
  988. package/skills/diagnose-why-work-stopped/SKILL.md +161 -0
  989. package/skills/para-memory-files/SKILL.md +104 -0
  990. package/skills/para-memory-files/references/schemas.md +35 -0
  991. package/skills/slaw/SKILL.md +371 -0
  992. package/skills/slaw/references/api-reference.md +879 -0
  993. package/skills/slaw/references/artifacts.md +44 -0
  994. package/skills/slaw/references/issue-workspaces.md +80 -0
  995. package/skills/slaw/references/routines.md +187 -0
  996. package/skills/slaw/references/squad-skills.md +258 -0
  997. package/skills/slaw/references/workflows.md +113 -0
  998. package/skills/slaw/scripts/slaw-upload-artifact.sh +371 -0
  999. package/skills/slaw-converting-plans-to-tasks/SKILL.md +42 -0
  1000. package/skills/slaw-create-agent/SKILL.md +163 -0
  1001. package/skills/slaw-create-agent/references/agent-instruction-templates.md +123 -0
  1002. package/skills/slaw-create-agent/references/agents/coder.md +64 -0
  1003. package/skills/slaw-create-agent/references/agents/qa.md +88 -0
  1004. package/skills/slaw-create-agent/references/agents/securityengineer.md +135 -0
  1005. package/skills/slaw-create-agent/references/agents/uxdesigner.md +115 -0
  1006. package/skills/slaw-create-agent/references/api-reference.md +110 -0
  1007. package/skills/slaw-create-agent/references/baseline-role-guide.md +168 -0
  1008. package/skills/slaw-create-agent/references/draft-review-checklist.md +95 -0
  1009. package/skills/slaw-create-plugin/SKILL.md +154 -0
  1010. package/skills/slaw-dev/SKILL.md +267 -0
  1011. package/skills/terminal-bench-loop/SKILL.md +236 -0
  1012. package/ui-dist/android-chrome-192x192.png +0 -0
  1013. package/ui-dist/android-chrome-512x512.png +0 -0
  1014. package/ui-dist/apple-touch-icon.png +0 -0
  1015. package/ui-dist/assets/apl-B4CMkyY2.js +1 -0
  1016. package/ui-dist/assets/arc-xbLjL0VN.js +1 -0
  1017. package/ui-dist/assets/architectureDiagram-3BPJPVTR-KcFd4B-U.js +36 -0
  1018. package/ui-dist/assets/asciiarmor-Df11BRmG.js +1 -0
  1019. package/ui-dist/assets/asn1-EdZsLKOL.js +1 -0
  1020. package/ui-dist/assets/asterisk-B-8jnY81.js +1 -0
  1021. package/ui-dist/assets/blockDiagram-GPEHLZMM-CSD4otEL.js +132 -0
  1022. package/ui-dist/assets/brainfuck-C4LP7Hcl.js +1 -0
  1023. package/ui-dist/assets/c4Diagram-AAUBKEIU-Cre_NEHp.js +10 -0
  1024. package/ui-dist/assets/channel-BFN8obi8.js +1 -0
  1025. package/ui-dist/assets/chunk-2J33WTMH-CssLBsbh.js +1 -0
  1026. package/ui-dist/assets/chunk-4BX2VUAB-DjiavNFv.js +1 -0
  1027. package/ui-dist/assets/chunk-55IACEB6-C_F0yeYq.js +1 -0
  1028. package/ui-dist/assets/chunk-727SXJPM-B1FAOW4a.js +206 -0
  1029. package/ui-dist/assets/chunk-AQP2D5EJ-Do1241W-.js +231 -0
  1030. package/ui-dist/assets/chunk-FMBD7UC4-BQRrOMZD.js +15 -0
  1031. package/ui-dist/assets/chunk-ND2GUHAM-BPSt3kZ1.js +1 -0
  1032. package/ui-dist/assets/chunk-QZHKN3VN-BSpmhWDD.js +1 -0
  1033. package/ui-dist/assets/classDiagram-4FO5ZUOK-1Ay0zFCU.js +1 -0
  1034. package/ui-dist/assets/classDiagram-v2-Q7XG4LA2-1Ay0zFCU.js +1 -0
  1035. package/ui-dist/assets/clike-B9uivgTg.js +1 -0
  1036. package/ui-dist/assets/clojure-BMjYHr_A.js +1 -0
  1037. package/ui-dist/assets/cmake-BQqOBYOt.js +1 -0
  1038. package/ui-dist/assets/cobol-CWcv1MsR.js +1 -0
  1039. package/ui-dist/assets/coffeescript-S37ZYGWr.js +1 -0
  1040. package/ui-dist/assets/commonlisp-DBKNyK5s.js +1 -0
  1041. package/ui-dist/assets/cose-bilkent-S5V4N54A-CK2f2Te4.js +1 -0
  1042. package/ui-dist/assets/crystal-SjHAIU92.js +1 -0
  1043. package/ui-dist/assets/css-BnMrqG3P.js +1 -0
  1044. package/ui-dist/assets/cypher-C_CwsFkJ.js +1 -0
  1045. package/ui-dist/assets/cytoscape.esm-D8joxN9f.js +321 -0
  1046. package/ui-dist/assets/d-pRatUO7H.js +1 -0
  1047. package/ui-dist/assets/dagre-BM42HDAG-DaOXTN9-.js +4 -0
  1048. package/ui-dist/assets/defaultLocale-DX6XiGOO.js +1 -0
  1049. package/ui-dist/assets/diagram-2AECGRRQ-D0ScQUGy.js +43 -0
  1050. package/ui-dist/assets/diagram-5GNKFQAL-7mH4Cncd.js +10 -0
  1051. package/ui-dist/assets/diagram-KO2AKTUF-aA9kuK-7.js +3 -0
  1052. package/ui-dist/assets/diagram-LMA3HP47-C9UXfmdK.js +24 -0
  1053. package/ui-dist/assets/diagram-OG6HWLK6-Ba3U-x1r.js +24 -0
  1054. package/ui-dist/assets/diff-DbItnlRl.js +1 -0
  1055. package/ui-dist/assets/dockerfile-BKs6k2Af.js +1 -0
  1056. package/ui-dist/assets/dtd-DF_7sFjM.js +1 -0
  1057. package/ui-dist/assets/dylan-DwRh75JA.js +1 -0
  1058. package/ui-dist/assets/ebnf-CDyGwa7X.js +1 -0
  1059. package/ui-dist/assets/ecl-Cabwm37j.js +1 -0
  1060. package/ui-dist/assets/eiffel-CnydiIhH.js +1 -0
  1061. package/ui-dist/assets/elm-vLlmbW-K.js +1 -0
  1062. package/ui-dist/assets/erDiagram-TEJ5UH35-CmskPKH1.js +85 -0
  1063. package/ui-dist/assets/erlang-BNw1qcRV.js +1 -0
  1064. package/ui-dist/assets/factor-kuTfRLto.js +1 -0
  1065. package/ui-dist/assets/fcl-Kvtd6kyn.js +1 -0
  1066. package/ui-dist/assets/flowDiagram-I6XJVG4X-B0iEPqGd.js +162 -0
  1067. package/ui-dist/assets/forth-Ffai-XNe.js +1 -0
  1068. package/ui-dist/assets/fortran-DYz_wnZ1.js +1 -0
  1069. package/ui-dist/assets/ganttDiagram-6RSMTGT7-DtpxlgWQ.js +292 -0
  1070. package/ui-dist/assets/gas-Bneqetm1.js +1 -0
  1071. package/ui-dist/assets/gherkin-heZmZLOM.js +1 -0
  1072. package/ui-dist/assets/gitGraphDiagram-PVQCEYII-VefBjqya.js +106 -0
  1073. package/ui-dist/assets/graph-CAnANduQ.js +1 -0
  1074. package/ui-dist/assets/groovy-D9Dt4D0W.js +1 -0
  1075. package/ui-dist/assets/haskell-Cw1EW3IL.js +1 -0
  1076. package/ui-dist/assets/haxe-H-WmDvRZ.js +1 -0
  1077. package/ui-dist/assets/http-DBlCnlav.js +1 -0
  1078. package/ui-dist/assets/idl-BEugSyMb.js +1 -0
  1079. package/ui-dist/assets/index-B9KxOFt-.js +1 -0
  1080. package/ui-dist/assets/index-BMPCuc-W.js +1 -0
  1081. package/ui-dist/assets/index-Bbfs2D7R.js +1 -0
  1082. package/ui-dist/assets/index-BrgHE5Lg.js +1 -0
  1083. package/ui-dist/assets/index-C5q-Cwlp.js +7 -0
  1084. package/ui-dist/assets/index-C6LpKpr3.js +1 -0
  1085. package/ui-dist/assets/index-CIzt5DFV.js +1 -0
  1086. package/ui-dist/assets/index-CRwAuYPj.js +1 -0
  1087. package/ui-dist/assets/index-CTEnIXsJ.js +1 -0
  1088. package/ui-dist/assets/index-CXGemv2V.js +1 -0
  1089. package/ui-dist/assets/index-ClDiS51u.js +1 -0
  1090. package/ui-dist/assets/index-CvKYfvpz.js +1 -0
  1091. package/ui-dist/assets/index-D2IqxlXD.js +1 -0
  1092. package/ui-dist/assets/index-D97fJMFR.js +522 -0
  1093. package/ui-dist/assets/index-DDHdUa2f.js +1 -0
  1094. package/ui-dist/assets/index-DMZ0QXqi.js +1 -0
  1095. package/ui-dist/assets/index-DMi4KpxO.js +6 -0
  1096. package/ui-dist/assets/index-DZB48Gve.js +1 -0
  1097. package/ui-dist/assets/index-Drr9zRdK.css +1 -0
  1098. package/ui-dist/assets/index-DtGqpE43.js +1 -0
  1099. package/ui-dist/assets/index-Du18kURt.js +2 -0
  1100. package/ui-dist/assets/index-KaLXuTqA.js +1 -0
  1101. package/ui-dist/assets/index-j5NgiILm.js +13 -0
  1102. package/ui-dist/assets/index-u0SfLZ3g.js +3 -0
  1103. package/ui-dist/assets/infoDiagram-5YYISTIA-D2OGH-dO.js +2 -0
  1104. package/ui-dist/assets/init-Gi6I4Gst.js +1 -0
  1105. package/ui-dist/assets/ishikawaDiagram-YF4QCWOH-CnMf3BJj.js +70 -0
  1106. package/ui-dist/assets/javascript-iXu5QeM3.js +1 -0
  1107. package/ui-dist/assets/journeyDiagram-JHISSGLW-BaXdD53T.js +139 -0
  1108. package/ui-dist/assets/julia-DuME0IfC.js +1 -0
  1109. package/ui-dist/assets/kanban-definition-UN3LZRKU-Brt7LjHm.js +89 -0
  1110. package/ui-dist/assets/katex-yT8l5JNH.js +257 -0
  1111. package/ui-dist/assets/layout-DGIYPm2g.js +1 -0
  1112. package/ui-dist/assets/linear-536T6Mkh.js +1 -0
  1113. package/ui-dist/assets/livescript-BwQOo05w.js +1 -0
  1114. package/ui-dist/assets/lua-VAEuO923.js +1 -0
  1115. package/ui-dist/assets/mathematica-DTrFuWx2.js +1 -0
  1116. package/ui-dist/assets/mbox-CNhZ1qSd.js +1 -0
  1117. package/ui-dist/assets/mermaid.core-CURTLVBm.js +303 -0
  1118. package/ui-dist/assets/mindmap-definition-RKZ34NQL-S2tDCU-U.js +96 -0
  1119. package/ui-dist/assets/mirc-CjQqDB4T.js +1 -0
  1120. package/ui-dist/assets/mllike-CXdrOF99.js +1 -0
  1121. package/ui-dist/assets/modelica-Dc1JOy9r.js +1 -0
  1122. package/ui-dist/assets/mscgen-BA5vi2Kp.js +1 -0
  1123. package/ui-dist/assets/mumps-BT43cFF4.js +1 -0
  1124. package/ui-dist/assets/nginx-DdIZxoE0.js +1 -0
  1125. package/ui-dist/assets/nsis-LdVXkNf5.js +1 -0
  1126. package/ui-dist/assets/ntriples-BfvgReVJ.js +1 -0
  1127. package/ui-dist/assets/octave-Ck1zUtKM.js +1 -0
  1128. package/ui-dist/assets/ordinal-Cboi1Yqb.js +1 -0
  1129. package/ui-dist/assets/oz-BzwKVEFT.js +1 -0
  1130. package/ui-dist/assets/pascal--L3eBynH.js +1 -0
  1131. package/ui-dist/assets/perl-CdXCOZ3F.js +1 -0
  1132. package/ui-dist/assets/pieDiagram-4H26LBE5-DD_Ih32z.js +30 -0
  1133. package/ui-dist/assets/pig-CevX1Tat.js +1 -0
  1134. package/ui-dist/assets/powershell-CFHJl5sT.js +1 -0
  1135. package/ui-dist/assets/properties-C78fOPTZ.js +1 -0
  1136. package/ui-dist/assets/protobuf-ChK-085T.js +1 -0
  1137. package/ui-dist/assets/pug-DeIclll2.js +1 -0
  1138. package/ui-dist/assets/puppet-DMA9R1ak.js +1 -0
  1139. package/ui-dist/assets/python-BuPzkPfP.js +1 -0
  1140. package/ui-dist/assets/q-pXgVlZs6.js +1 -0
  1141. package/ui-dist/assets/quadrantDiagram-W4KKPZXB-DA5BPBIK.js +7 -0
  1142. package/ui-dist/assets/r-B6wPVr8A.js +1 -0
  1143. package/ui-dist/assets/requirementDiagram-4Y6WPE33-Em8SPCro.js +84 -0
  1144. package/ui-dist/assets/rpm-CTu-6PCP.js +1 -0
  1145. package/ui-dist/assets/ruby-B2Rjki9n.js +1 -0
  1146. package/ui-dist/assets/sankeyDiagram-5OEKKPKP-BJVC4haY.js +40 -0
  1147. package/ui-dist/assets/sas-B4kiWyti.js +1 -0
  1148. package/ui-dist/assets/scheme-C41bIUwD.js +1 -0
  1149. package/ui-dist/assets/sequenceDiagram-3UESZ5HK-Cskntadf.js +162 -0
  1150. package/ui-dist/assets/shell-CjFT_Tl9.js +1 -0
  1151. package/ui-dist/assets/sieve-C3Gn_uJK.js +1 -0
  1152. package/ui-dist/assets/simple-mode-GW_nhZxv.js +1 -0
  1153. package/ui-dist/assets/smalltalk-CnHTOXQT.js +1 -0
  1154. package/ui-dist/assets/solr-DehyRSwq.js +1 -0
  1155. package/ui-dist/assets/sparql-DkYu6x3z.js +1 -0
  1156. package/ui-dist/assets/spreadsheet-BCZA_wO0.js +1 -0
  1157. package/ui-dist/assets/sql-D0XecflT.js +1 -0
  1158. package/ui-dist/assets/stateDiagram-AJRCARHV-CxlfdaOi.js +1 -0
  1159. package/ui-dist/assets/stateDiagram-v2-BHNVJYJU-eTgftUjW.js +1 -0
  1160. package/ui-dist/assets/stex-C3f8Ysf7.js +1 -0
  1161. package/ui-dist/assets/stylus-B533Al4x.js +1 -0
  1162. package/ui-dist/assets/swift-BzpIVaGY.js +1 -0
  1163. package/ui-dist/assets/tcl-DVfN8rqt.js +1 -0
  1164. package/ui-dist/assets/textile-CnDTJFAw.js +1 -0
  1165. package/ui-dist/assets/tiddlywiki-DO-Gjzrf.js +1 -0
  1166. package/ui-dist/assets/tiki-DGYXhP31.js +1 -0
  1167. package/ui-dist/assets/timeline-definition-PNZ67QCA-LOdaWSSa.js +120 -0
  1168. package/ui-dist/assets/toml-Bm5Em-hy.js +1 -0
  1169. package/ui-dist/assets/troff-wAsdV37c.js +1 -0
  1170. package/ui-dist/assets/ttcn-CfJYG6tj.js +1 -0
  1171. package/ui-dist/assets/ttcn-cfg-B9xdYoR4.js +1 -0
  1172. package/ui-dist/assets/turtle-B1tBg_DP.js +1 -0
  1173. package/ui-dist/assets/vb-CmGdzxic.js +1 -0
  1174. package/ui-dist/assets/vbscript-BuJXcnF6.js +1 -0
  1175. package/ui-dist/assets/velocity-D8B20fx6.js +1 -0
  1176. package/ui-dist/assets/vennDiagram-CIIHVFJN-CJ4ji6B3.js +34 -0
  1177. package/ui-dist/assets/verilog-C6RDOZhf.js +1 -0
  1178. package/ui-dist/assets/vhdl-lSbBsy5d.js +1 -0
  1179. package/ui-dist/assets/wardley-L42UT6IY-CxnVdUVH.js +153 -0
  1180. package/ui-dist/assets/wardleyDiagram-YWT4CUSO-CgGDttpl.js +78 -0
  1181. package/ui-dist/assets/webidl-ZXfAyPTL.js +1 -0
  1182. package/ui-dist/assets/xquery-DzFWVndE.js +1 -0
  1183. package/ui-dist/assets/xychartDiagram-2RQKCTM6-zuQa7bqx.js +7 -0
  1184. package/ui-dist/assets/yacas-BJ4BC0dw.js +1 -0
  1185. package/ui-dist/assets/z80-Hz9HOZM7.js +1 -0
  1186. package/ui-dist/brands/opencode-logo-dark-square.svg +18 -0
  1187. package/ui-dist/brands/opencode-logo-light-square.svg +18 -0
  1188. package/ui-dist/favicon-16x16.png +0 -0
  1189. package/ui-dist/favicon-32x32.png +0 -0
  1190. package/ui-dist/favicon.ico +0 -0
  1191. package/ui-dist/favicon.svg +8 -0
  1192. package/ui-dist/index.html +46 -0
  1193. package/ui-dist/site.webmanifest +30 -0
  1194. package/ui-dist/sw.js +42 -0
  1195. package/ui-dist/worktree-favicon-16x16.png +0 -0
  1196. package/ui-dist/worktree-favicon-32x32.png +0 -0
  1197. package/ui-dist/worktree-favicon.ico +0 -0
  1198. package/ui-dist/worktree-favicon.svg +9 -0
@@ -0,0 +1,833 @@
1
+ import { and, desc, eq, gte, inArray, lt, ne, sql } from "drizzle-orm";
2
+ import { agents, approvals, budgetIncidents, budgetPolicies, squads, costEvents, projects, } from "@slaw-ai/db";
3
+ import { notFound, unprocessable } from "../errors.js";
4
+ import { logActivity } from "./activity-log.js";
5
+ import { getInstanceLimitBlock, computeInstanceUsageMtd, evaluateInstanceLimit, } from "./botfather/instance-limit-enforcement.js";
6
+ import { readInstanceLimit } from "./botfather/limits-store.js";
7
+ function currentUtcMonthWindow(now = new Date()) {
8
+ const year = now.getUTCFullYear();
9
+ const month = now.getUTCMonth();
10
+ const start = new Date(Date.UTC(year, month, 1, 0, 0, 0, 0));
11
+ const end = new Date(Date.UTC(year, month + 1, 1, 0, 0, 0, 0));
12
+ return { start, end };
13
+ }
14
+ function resolveWindow(windowKind, now = new Date()) {
15
+ if (windowKind === "lifetime") {
16
+ return {
17
+ start: new Date(Date.UTC(1970, 0, 1, 0, 0, 0, 0)),
18
+ end: new Date(Date.UTC(9999, 0, 1, 0, 0, 0, 0)),
19
+ };
20
+ }
21
+ return currentUtcMonthWindow(now);
22
+ }
23
+ function budgetStatusFromObserved(observedAmount, amount, warnPercent) {
24
+ if (amount <= 0)
25
+ return "ok";
26
+ if (observedAmount >= amount)
27
+ return "hard_stop";
28
+ if (observedAmount >= Math.ceil((amount * warnPercent) / 100))
29
+ return "warning";
30
+ return "ok";
31
+ }
32
+ function normalizeScopeName(scopeType, name) {
33
+ if (scopeType === "squad")
34
+ return name;
35
+ return name.trim().length > 0 ? name : scopeType;
36
+ }
37
+ async function resolveScopeRecord(db, scopeType, scopeId) {
38
+ if (scopeType === "squad") {
39
+ const row = await db
40
+ .select({
41
+ squadId: squads.id,
42
+ name: squads.name,
43
+ status: squads.status,
44
+ pauseReason: squads.pauseReason,
45
+ pausedAt: squads.pausedAt,
46
+ })
47
+ .from(squads)
48
+ .where(eq(squads.id, scopeId))
49
+ .then((rows) => rows[0] ?? null);
50
+ if (!row)
51
+ throw notFound("Squad not found");
52
+ return {
53
+ squadId: row.squadId,
54
+ name: row.name,
55
+ paused: row.status === "paused" || Boolean(row.pausedAt),
56
+ pauseReason: row.pauseReason ?? null,
57
+ };
58
+ }
59
+ if (scopeType === "agent") {
60
+ const row = await db
61
+ .select({
62
+ squadId: agents.squadId,
63
+ name: agents.name,
64
+ status: agents.status,
65
+ pauseReason: agents.pauseReason,
66
+ })
67
+ .from(agents)
68
+ .where(eq(agents.id, scopeId))
69
+ .then((rows) => rows[0] ?? null);
70
+ if (!row)
71
+ throw notFound("Agent not found");
72
+ return {
73
+ squadId: row.squadId,
74
+ name: row.name,
75
+ paused: row.status === "paused",
76
+ pauseReason: row.pauseReason ?? null,
77
+ };
78
+ }
79
+ const row = await db
80
+ .select({
81
+ squadId: projects.squadId,
82
+ name: projects.name,
83
+ pauseReason: projects.pauseReason,
84
+ pausedAt: projects.pausedAt,
85
+ })
86
+ .from(projects)
87
+ .where(eq(projects.id, scopeId))
88
+ .then((rows) => rows[0] ?? null);
89
+ if (!row)
90
+ throw notFound("Project not found");
91
+ return {
92
+ squadId: row.squadId,
93
+ name: row.name,
94
+ paused: Boolean(row.pausedAt),
95
+ pauseReason: row.pauseReason ?? null,
96
+ };
97
+ }
98
+ async function computeObservedAmount(db, policy) {
99
+ if (policy.metric !== "billed_cents")
100
+ return 0;
101
+ const conditions = [eq(costEvents.squadId, policy.squadId)];
102
+ if (policy.scopeType === "agent")
103
+ conditions.push(eq(costEvents.agentId, policy.scopeId));
104
+ if (policy.scopeType === "project")
105
+ conditions.push(eq(costEvents.projectId, policy.scopeId));
106
+ const { start, end } = resolveWindow(policy.windowKind);
107
+ if (policy.windowKind === "calendar_month_utc") {
108
+ conditions.push(gte(costEvents.occurredAt, start));
109
+ conditions.push(lt(costEvents.occurredAt, end));
110
+ }
111
+ const [row] = await db
112
+ .select({
113
+ total: sql `coalesce(sum(${costEvents.costCents}), 0)::double precision`,
114
+ })
115
+ .from(costEvents)
116
+ .where(and(...conditions));
117
+ return Number(row?.total ?? 0);
118
+ }
119
+ function buildApprovalPayload(input) {
120
+ return {
121
+ scopeType: input.policy.scopeType,
122
+ scopeId: input.policy.scopeId,
123
+ scopeName: input.scopeName,
124
+ metric: input.policy.metric,
125
+ windowKind: input.policy.windowKind,
126
+ thresholdType: input.thresholdType,
127
+ budgetAmount: input.policy.amount,
128
+ observedAmount: input.amountObserved,
129
+ warnPercent: input.policy.warnPercent,
130
+ windowStart: input.windowStart.toISOString(),
131
+ windowEnd: input.windowEnd.toISOString(),
132
+ policyId: input.policy.id,
133
+ guidance: "Raise the budget and resume the scope, or keep the scope paused.",
134
+ };
135
+ }
136
+ async function markApprovalStatus(db, approvalId, status, decisionNote, decidedByUserId) {
137
+ if (!approvalId)
138
+ return;
139
+ await db
140
+ .update(approvals)
141
+ .set({
142
+ status,
143
+ decisionNote: decisionNote ?? null,
144
+ decidedByUserId,
145
+ decidedAt: new Date(),
146
+ updatedAt: new Date(),
147
+ })
148
+ .where(eq(approvals.id, approvalId));
149
+ }
150
+ export function budgetService(db, hooks = {}) {
151
+ async function pauseScopeForBudget(policy) {
152
+ const now = new Date();
153
+ if (policy.scopeType === "agent") {
154
+ await db
155
+ .update(agents)
156
+ .set({
157
+ status: "paused",
158
+ pauseReason: "budget",
159
+ pausedAt: now,
160
+ updatedAt: now,
161
+ })
162
+ .where(and(eq(agents.id, policy.scopeId), inArray(agents.status, ["active", "idle", "running", "error"])));
163
+ return;
164
+ }
165
+ if (policy.scopeType === "project") {
166
+ await db
167
+ .update(projects)
168
+ .set({
169
+ pauseReason: "budget",
170
+ pausedAt: now,
171
+ updatedAt: now,
172
+ })
173
+ .where(eq(projects.id, policy.scopeId));
174
+ return;
175
+ }
176
+ await db
177
+ .update(squads)
178
+ .set({
179
+ status: "paused",
180
+ pauseReason: "budget",
181
+ pausedAt: now,
182
+ updatedAt: now,
183
+ })
184
+ .where(eq(squads.id, policy.scopeId));
185
+ }
186
+ async function pauseAndCancelScopeForBudget(policy) {
187
+ await pauseScopeForBudget(policy);
188
+ await hooks.cancelWorkForScope?.({
189
+ squadId: policy.squadId,
190
+ scopeType: policy.scopeType,
191
+ scopeId: policy.scopeId,
192
+ });
193
+ }
194
+ async function resumeScopeFromBudget(policy) {
195
+ const now = new Date();
196
+ if (policy.scopeType === "agent") {
197
+ await db
198
+ .update(agents)
199
+ .set({
200
+ status: "idle",
201
+ pauseReason: null,
202
+ pausedAt: null,
203
+ updatedAt: now,
204
+ })
205
+ .where(and(eq(agents.id, policy.scopeId), eq(agents.pauseReason, "budget")));
206
+ return;
207
+ }
208
+ if (policy.scopeType === "project") {
209
+ await db
210
+ .update(projects)
211
+ .set({
212
+ pauseReason: null,
213
+ pausedAt: null,
214
+ updatedAt: now,
215
+ })
216
+ .where(and(eq(projects.id, policy.scopeId), eq(projects.pauseReason, "budget")));
217
+ return;
218
+ }
219
+ await db
220
+ .update(squads)
221
+ .set({
222
+ status: "active",
223
+ pauseReason: null,
224
+ pausedAt: null,
225
+ updatedAt: now,
226
+ })
227
+ .where(and(eq(squads.id, policy.scopeId), eq(squads.pauseReason, "budget")));
228
+ }
229
+ async function getPolicyRow(policyId) {
230
+ const policy = await db
231
+ .select()
232
+ .from(budgetPolicies)
233
+ .where(eq(budgetPolicies.id, policyId))
234
+ .then((rows) => rows[0] ?? null);
235
+ if (!policy)
236
+ throw notFound("Budget policy not found");
237
+ return policy;
238
+ }
239
+ async function listPolicyRows(squadId) {
240
+ return db
241
+ .select()
242
+ .from(budgetPolicies)
243
+ .where(eq(budgetPolicies.squadId, squadId))
244
+ .orderBy(desc(budgetPolicies.updatedAt));
245
+ }
246
+ async function buildPolicySummary(policy) {
247
+ const scope = await resolveScopeRecord(db, policy.scopeType, policy.scopeId);
248
+ const observedAmount = await computeObservedAmount(db, policy);
249
+ const { start, end } = resolveWindow(policy.windowKind);
250
+ const amount = policy.isActive ? policy.amount : 0;
251
+ const utilizationPercent = amount > 0 ? Number(((observedAmount / amount) * 100).toFixed(2)) : 0;
252
+ return {
253
+ policyId: policy.id,
254
+ squadId: policy.squadId,
255
+ scopeType: policy.scopeType,
256
+ scopeId: policy.scopeId,
257
+ scopeName: normalizeScopeName(policy.scopeType, scope.name),
258
+ metric: policy.metric,
259
+ windowKind: policy.windowKind,
260
+ amount,
261
+ observedAmount,
262
+ remainingAmount: amount > 0 ? Math.max(0, amount - observedAmount) : 0,
263
+ utilizationPercent,
264
+ warnPercent: policy.warnPercent,
265
+ hardStopEnabled: policy.hardStopEnabled,
266
+ notifyEnabled: policy.notifyEnabled,
267
+ isActive: policy.isActive,
268
+ status: policy.isActive
269
+ ? budgetStatusFromObserved(observedAmount, amount, policy.warnPercent)
270
+ : "ok",
271
+ paused: scope.paused,
272
+ pauseReason: scope.pauseReason,
273
+ windowStart: start,
274
+ windowEnd: end,
275
+ };
276
+ }
277
+ async function createIncidentIfNeeded(policy, thresholdType, amountObserved) {
278
+ const { start, end } = resolveWindow(policy.windowKind);
279
+ const existing = await db
280
+ .select()
281
+ .from(budgetIncidents)
282
+ .where(and(eq(budgetIncidents.policyId, policy.id), eq(budgetIncidents.windowStart, start), eq(budgetIncidents.thresholdType, thresholdType), ne(budgetIncidents.status, "dismissed")))
283
+ .then((rows) => rows[0] ?? null);
284
+ if (existing)
285
+ return existing;
286
+ const scope = await resolveScopeRecord(db, policy.scopeType, policy.scopeId);
287
+ const payload = buildApprovalPayload({
288
+ policy,
289
+ scopeName: normalizeScopeName(policy.scopeType, scope.name),
290
+ thresholdType,
291
+ amountObserved,
292
+ windowStart: start,
293
+ windowEnd: end,
294
+ });
295
+ const approval = thresholdType === "hard"
296
+ ? await db
297
+ .insert(approvals)
298
+ .values({
299
+ squadId: policy.squadId,
300
+ type: "budget_override_required",
301
+ requestedByUserId: null,
302
+ requestedByAgentId: null,
303
+ status: "pending",
304
+ payload,
305
+ })
306
+ .returning()
307
+ .then((rows) => rows[0] ?? null)
308
+ : null;
309
+ return db
310
+ .insert(budgetIncidents)
311
+ .values({
312
+ squadId: policy.squadId,
313
+ policyId: policy.id,
314
+ scopeType: policy.scopeType,
315
+ scopeId: policy.scopeId,
316
+ metric: policy.metric,
317
+ windowKind: policy.windowKind,
318
+ windowStart: start,
319
+ windowEnd: end,
320
+ thresholdType,
321
+ amountLimit: policy.amount,
322
+ amountObserved,
323
+ status: "open",
324
+ approvalId: approval?.id ?? null,
325
+ })
326
+ .returning()
327
+ .then((rows) => rows[0] ?? null);
328
+ }
329
+ async function resolveOpenSoftIncidents(policyId) {
330
+ await db
331
+ .update(budgetIncidents)
332
+ .set({
333
+ status: "resolved",
334
+ resolvedAt: new Date(),
335
+ updatedAt: new Date(),
336
+ })
337
+ .where(and(eq(budgetIncidents.policyId, policyId), eq(budgetIncidents.thresholdType, "soft"), eq(budgetIncidents.status, "open")));
338
+ }
339
+ async function resolveOpenIncidentsForPolicy(policyId, approvalStatus, decidedByUserId) {
340
+ const openRows = await db
341
+ .select()
342
+ .from(budgetIncidents)
343
+ .where(and(eq(budgetIncidents.policyId, policyId), eq(budgetIncidents.status, "open")));
344
+ await db
345
+ .update(budgetIncidents)
346
+ .set({
347
+ status: "resolved",
348
+ resolvedAt: new Date(),
349
+ updatedAt: new Date(),
350
+ })
351
+ .where(and(eq(budgetIncidents.policyId, policyId), eq(budgetIncidents.status, "open")));
352
+ if (!approvalStatus || !decidedByUserId)
353
+ return;
354
+ for (const row of openRows) {
355
+ await markApprovalStatus(db, row.approvalId ?? null, approvalStatus, "Resolved via budget update", decidedByUserId);
356
+ }
357
+ }
358
+ async function hydrateIncidentRows(rows) {
359
+ const approvalIds = rows.map((row) => row.approvalId).filter((value) => Boolean(value));
360
+ const approvalRows = approvalIds.length > 0
361
+ ? await db
362
+ .select({ id: approvals.id, status: approvals.status })
363
+ .from(approvals)
364
+ .where(inArray(approvals.id, approvalIds))
365
+ : [];
366
+ const approvalStatusById = new Map(approvalRows.map((row) => [row.id, row.status]));
367
+ return Promise.all(rows.map(async (row) => {
368
+ const scope = await resolveScopeRecord(db, row.scopeType, row.scopeId);
369
+ return {
370
+ id: row.id,
371
+ squadId: row.squadId,
372
+ policyId: row.policyId,
373
+ scopeType: row.scopeType,
374
+ scopeId: row.scopeId,
375
+ scopeName: normalizeScopeName(row.scopeType, scope.name),
376
+ metric: row.metric,
377
+ windowKind: row.windowKind,
378
+ windowStart: row.windowStart,
379
+ windowEnd: row.windowEnd,
380
+ thresholdType: row.thresholdType,
381
+ amountLimit: row.amountLimit,
382
+ amountObserved: row.amountObserved,
383
+ status: row.status,
384
+ approvalId: row.approvalId ?? null,
385
+ approvalStatus: row.approvalId ? approvalStatusById.get(row.approvalId) ?? null : null,
386
+ resolvedAt: row.resolvedAt ?? null,
387
+ createdAt: row.createdAt,
388
+ updatedAt: row.updatedAt,
389
+ };
390
+ }));
391
+ }
392
+ return {
393
+ listPolicies: async (squadId) => {
394
+ const rows = await listPolicyRows(squadId);
395
+ return rows.map((row) => ({
396
+ ...row,
397
+ scopeType: row.scopeType,
398
+ metric: row.metric,
399
+ windowKind: row.windowKind,
400
+ }));
401
+ },
402
+ upsertPolicy: async (squadId, input, actorUserId) => {
403
+ const scope = await resolveScopeRecord(db, input.scopeType, input.scopeId);
404
+ if (scope.squadId !== squadId) {
405
+ throw unprocessable("Budget scope does not belong to squad");
406
+ }
407
+ const metric = input.metric ?? "billed_cents";
408
+ const windowKind = input.windowKind ?? (input.scopeType === "project" ? "lifetime" : "calendar_month_utc");
409
+ const amount = Math.max(0, Math.floor(input.amount));
410
+ const nextIsActive = amount > 0 && (input.isActive ?? true);
411
+ const existing = await db
412
+ .select()
413
+ .from(budgetPolicies)
414
+ .where(and(eq(budgetPolicies.squadId, squadId), eq(budgetPolicies.scopeType, input.scopeType), eq(budgetPolicies.scopeId, input.scopeId), eq(budgetPolicies.metric, metric), eq(budgetPolicies.windowKind, windowKind)))
415
+ .then((rows) => rows[0] ?? null);
416
+ const now = new Date();
417
+ const row = existing
418
+ ? await db
419
+ .update(budgetPolicies)
420
+ .set({
421
+ amount,
422
+ warnPercent: input.warnPercent ?? existing.warnPercent,
423
+ hardStopEnabled: input.hardStopEnabled ?? existing.hardStopEnabled,
424
+ notifyEnabled: input.notifyEnabled ?? existing.notifyEnabled,
425
+ isActive: nextIsActive,
426
+ updatedByUserId: actorUserId,
427
+ updatedAt: now,
428
+ })
429
+ .where(eq(budgetPolicies.id, existing.id))
430
+ .returning()
431
+ .then((rows) => rows[0])
432
+ : await db
433
+ .insert(budgetPolicies)
434
+ .values({
435
+ squadId,
436
+ scopeType: input.scopeType,
437
+ scopeId: input.scopeId,
438
+ metric,
439
+ windowKind,
440
+ amount,
441
+ warnPercent: input.warnPercent ?? 80,
442
+ hardStopEnabled: input.hardStopEnabled ?? true,
443
+ notifyEnabled: input.notifyEnabled ?? true,
444
+ isActive: nextIsActive,
445
+ createdByUserId: actorUserId,
446
+ updatedByUserId: actorUserId,
447
+ })
448
+ .returning()
449
+ .then((rows) => rows[0]);
450
+ if (input.scopeType === "squad" && windowKind === "calendar_month_utc") {
451
+ await db
452
+ .update(squads)
453
+ .set({
454
+ budgetMonthlyCents: amount,
455
+ updatedAt: now,
456
+ })
457
+ .where(eq(squads.id, input.scopeId));
458
+ }
459
+ if (input.scopeType === "agent" && windowKind === "calendar_month_utc") {
460
+ await db
461
+ .update(agents)
462
+ .set({
463
+ budgetMonthlyCents: amount,
464
+ updatedAt: now,
465
+ })
466
+ .where(eq(agents.id, input.scopeId));
467
+ }
468
+ if (amount > 0) {
469
+ const observedAmount = await computeObservedAmount(db, row);
470
+ if (observedAmount < amount) {
471
+ await resumeScopeFromBudget(row);
472
+ await resolveOpenIncidentsForPolicy(row.id, actorUserId ? "approved" : null, actorUserId);
473
+ }
474
+ else {
475
+ const softThreshold = Math.ceil((row.amount * row.warnPercent) / 100);
476
+ if (row.notifyEnabled && observedAmount >= softThreshold) {
477
+ await createIncidentIfNeeded(row, "soft", observedAmount);
478
+ }
479
+ if (row.hardStopEnabled && observedAmount >= row.amount) {
480
+ await resolveOpenSoftIncidents(row.id);
481
+ await createIncidentIfNeeded(row, "hard", observedAmount);
482
+ await pauseAndCancelScopeForBudget(row);
483
+ }
484
+ }
485
+ }
486
+ else {
487
+ await resumeScopeFromBudget(row);
488
+ await resolveOpenIncidentsForPolicy(row.id, actorUserId ? "approved" : null, actorUserId);
489
+ }
490
+ await logActivity(db, {
491
+ squadId,
492
+ actorType: "user",
493
+ actorId: actorUserId ?? "operator",
494
+ action: "budget.policy_upserted",
495
+ entityType: "budget_policy",
496
+ entityId: row.id,
497
+ details: {
498
+ scopeType: row.scopeType,
499
+ scopeId: row.scopeId,
500
+ amount: row.amount,
501
+ windowKind: row.windowKind,
502
+ },
503
+ });
504
+ return buildPolicySummary(row);
505
+ },
506
+ overview: async (squadId) => {
507
+ const rows = await listPolicyRows(squadId);
508
+ const policies = await Promise.all(rows.map((row) => buildPolicySummary(row)));
509
+ const activeIncidentRows = await db
510
+ .select()
511
+ .from(budgetIncidents)
512
+ .where(and(eq(budgetIncidents.squadId, squadId), eq(budgetIncidents.status, "open")))
513
+ .orderBy(desc(budgetIncidents.createdAt));
514
+ const activeIncidents = await hydrateIncidentRows(activeIncidentRows);
515
+ return {
516
+ squadId,
517
+ policies,
518
+ activeIncidents,
519
+ pausedAgentCount: policies.filter((policy) => policy.scopeType === "agent" && policy.paused).length,
520
+ pausedProjectCount: policies.filter((policy) => policy.scopeType === "project" && policy.paused).length,
521
+ pendingApprovalCount: activeIncidents.filter((incident) => incident.approvalStatus === "pending").length,
522
+ };
523
+ },
524
+ evaluateCostEvent: async (event) => {
525
+ const candidatePolicies = await db
526
+ .select()
527
+ .from(budgetPolicies)
528
+ .where(and(eq(budgetPolicies.squadId, event.squadId), eq(budgetPolicies.isActive, true), inArray(budgetPolicies.scopeType, ["squad", "agent", "project"])));
529
+ const relevantPolicies = candidatePolicies.filter((policy) => {
530
+ if (policy.scopeType === "squad")
531
+ return policy.scopeId === event.squadId;
532
+ if (policy.scopeType === "agent")
533
+ return policy.scopeId === event.agentId;
534
+ if (policy.scopeType === "project")
535
+ return Boolean(event.projectId) && policy.scopeId === event.projectId;
536
+ return false;
537
+ });
538
+ for (const policy of relevantPolicies) {
539
+ if (policy.metric !== "billed_cents" || policy.amount <= 0)
540
+ continue;
541
+ const observedAmount = await computeObservedAmount(db, policy);
542
+ const softThreshold = Math.ceil((policy.amount * policy.warnPercent) / 100);
543
+ if (policy.notifyEnabled && observedAmount >= softThreshold) {
544
+ const softIncident = await createIncidentIfNeeded(policy, "soft", observedAmount);
545
+ if (softIncident) {
546
+ await logActivity(db, {
547
+ squadId: policy.squadId,
548
+ actorType: "system",
549
+ actorId: "budget_service",
550
+ action: "budget.soft_threshold_crossed",
551
+ entityType: "budget_incident",
552
+ entityId: softIncident.id,
553
+ details: {
554
+ scopeType: policy.scopeType,
555
+ scopeId: policy.scopeId,
556
+ amountObserved: observedAmount,
557
+ amountLimit: policy.amount,
558
+ },
559
+ });
560
+ }
561
+ }
562
+ if (policy.hardStopEnabled && observedAmount >= policy.amount) {
563
+ await resolveOpenSoftIncidents(policy.id);
564
+ const hardIncident = await createIncidentIfNeeded(policy, "hard", observedAmount);
565
+ await pauseAndCancelScopeForBudget(policy);
566
+ if (hardIncident) {
567
+ await logActivity(db, {
568
+ squadId: policy.squadId,
569
+ actorType: "system",
570
+ actorId: "budget_service",
571
+ action: "budget.hard_threshold_crossed",
572
+ entityType: "budget_incident",
573
+ entityId: hardIncident.id,
574
+ details: {
575
+ scopeType: policy.scopeType,
576
+ scopeId: policy.scopeId,
577
+ amountObserved: observedAmount,
578
+ amountLimit: policy.amount,
579
+ approvalId: hardIncident.approvalId ?? null,
580
+ },
581
+ });
582
+ }
583
+ }
584
+ }
585
+ // Tower-governed instance-wide limit (additive to the squad policies
586
+ // above). Emit a budget threshold activity when the instance crosses its
587
+ // warn/ceiling so the control tower alerts on it. Hard blocking happens at
588
+ // run start (getInvocationBlock); here we only signal.
589
+ try {
590
+ const instLimit = await readInstanceLimit(db);
591
+ if (instLimit.mode !== "off") {
592
+ const usage = await computeInstanceUsageMtd(db);
593
+ const ev = evaluateInstanceLimit(instLimit, usage);
594
+ if (ev.metric && (ev.exceeded || ev.warned)) {
595
+ await logActivity(db, {
596
+ squadId: event.squadId,
597
+ actorType: "system",
598
+ actorId: "budget_service",
599
+ action: ev.exceeded
600
+ ? "budget.hard_threshold_crossed"
601
+ : "budget.soft_threshold_crossed",
602
+ entityType: "instance_limit",
603
+ entityId: "default",
604
+ details: {
605
+ scopeType: "instance",
606
+ metric: ev.metric,
607
+ amountObserved: Math.round(ev.observed),
608
+ amountLimit: ev.ceiling,
609
+ percent: ev.percent,
610
+ mode: instLimit.mode,
611
+ },
612
+ });
613
+ }
614
+ }
615
+ }
616
+ catch {
617
+ // never let limit signalling break cost ingestion
618
+ }
619
+ },
620
+ getInvocationBlock: async (squadId, agentId, context) => {
621
+ // Tower-governed instance-wide ceiling (hard mode only). This is ADDITIVE
622
+ // — local squad/agent budget checks below still apply and may be stricter.
623
+ // Surfaced with the squad scope (the block shape is squad/agent/project);
624
+ // the reason text identifies it as a control-tower limit.
625
+ const instanceBlock = await getInstanceLimitBlock(db);
626
+ if (instanceBlock) {
627
+ return {
628
+ scopeType: "squad",
629
+ scopeId: squadId,
630
+ scopeName: "Control tower limit",
631
+ reason: instanceBlock.reason,
632
+ };
633
+ }
634
+ const agent = await db
635
+ .select({
636
+ status: agents.status,
637
+ pauseReason: agents.pauseReason,
638
+ squadId: agents.squadId,
639
+ name: agents.name,
640
+ })
641
+ .from(agents)
642
+ .where(eq(agents.id, agentId))
643
+ .then((rows) => rows[0] ?? null);
644
+ if (!agent || agent.squadId !== squadId)
645
+ throw notFound("Agent not found");
646
+ const squad = await db
647
+ .select({
648
+ status: squads.status,
649
+ pauseReason: squads.pauseReason,
650
+ name: squads.name,
651
+ })
652
+ .from(squads)
653
+ .where(eq(squads.id, squadId))
654
+ .then((rows) => rows[0] ?? null);
655
+ if (!squad)
656
+ throw notFound("Squad not found");
657
+ if (squad.status === "paused") {
658
+ return {
659
+ scopeType: "squad",
660
+ scopeId: squadId,
661
+ scopeName: squad.name,
662
+ reason: squad.pauseReason === "budget"
663
+ ? "Squad is paused because its budget hard-stop was reached."
664
+ : "Squad is paused and cannot start new work.",
665
+ };
666
+ }
667
+ const squadPolicy = await db
668
+ .select()
669
+ .from(budgetPolicies)
670
+ .where(and(eq(budgetPolicies.squadId, squadId), eq(budgetPolicies.scopeType, "squad"), eq(budgetPolicies.scopeId, squadId), eq(budgetPolicies.isActive, true), eq(budgetPolicies.metric, "billed_cents")))
671
+ .then((rows) => rows[0] ?? null);
672
+ if (squadPolicy && squadPolicy.hardStopEnabled && squadPolicy.amount > 0) {
673
+ const observed = await computeObservedAmount(db, squadPolicy);
674
+ if (observed >= squadPolicy.amount) {
675
+ return {
676
+ scopeType: "squad",
677
+ scopeId: squadId,
678
+ scopeName: squad.name,
679
+ reason: "Squad cannot start new work because its budget hard-stop is exceeded.",
680
+ };
681
+ }
682
+ }
683
+ if (agent.status === "paused" && agent.pauseReason === "budget") {
684
+ return {
685
+ scopeType: "agent",
686
+ scopeId: agentId,
687
+ scopeName: agent.name,
688
+ reason: "Agent is paused because its budget hard-stop was reached.",
689
+ };
690
+ }
691
+ const agentPolicy = await db
692
+ .select()
693
+ .from(budgetPolicies)
694
+ .where(and(eq(budgetPolicies.squadId, squadId), eq(budgetPolicies.scopeType, "agent"), eq(budgetPolicies.scopeId, agentId), eq(budgetPolicies.isActive, true), eq(budgetPolicies.metric, "billed_cents")))
695
+ .then((rows) => rows[0] ?? null);
696
+ if (agentPolicy && agentPolicy.hardStopEnabled && agentPolicy.amount > 0) {
697
+ const observed = await computeObservedAmount(db, agentPolicy);
698
+ if (observed >= agentPolicy.amount) {
699
+ return {
700
+ scopeType: "agent",
701
+ scopeId: agentId,
702
+ scopeName: agent.name,
703
+ reason: "Agent cannot start because its budget hard-stop is still exceeded.",
704
+ };
705
+ }
706
+ }
707
+ const candidateProjectId = context?.projectId ?? null;
708
+ if (!candidateProjectId)
709
+ return null;
710
+ const project = await db
711
+ .select({
712
+ id: projects.id,
713
+ name: projects.name,
714
+ squadId: projects.squadId,
715
+ pauseReason: projects.pauseReason,
716
+ pausedAt: projects.pausedAt,
717
+ })
718
+ .from(projects)
719
+ .where(eq(projects.id, candidateProjectId))
720
+ .then((rows) => rows[0] ?? null);
721
+ if (!project || project.squadId !== squadId)
722
+ return null;
723
+ const projectPolicy = await db
724
+ .select()
725
+ .from(budgetPolicies)
726
+ .where(and(eq(budgetPolicies.squadId, squadId), eq(budgetPolicies.scopeType, "project"), eq(budgetPolicies.scopeId, project.id), eq(budgetPolicies.isActive, true), eq(budgetPolicies.metric, "billed_cents")))
727
+ .then((rows) => rows[0] ?? null);
728
+ if (projectPolicy && projectPolicy.hardStopEnabled && projectPolicy.amount > 0) {
729
+ const observed = await computeObservedAmount(db, projectPolicy);
730
+ if (observed >= projectPolicy.amount) {
731
+ return {
732
+ scopeType: "project",
733
+ scopeId: project.id,
734
+ scopeName: project.name,
735
+ reason: "Project cannot start work because its budget hard-stop is still exceeded.",
736
+ };
737
+ }
738
+ }
739
+ if (!project.pausedAt || project.pauseReason !== "budget")
740
+ return null;
741
+ return {
742
+ scopeType: "project",
743
+ scopeId: project.id,
744
+ scopeName: project.name,
745
+ reason: "Project is paused because its budget hard-stop was reached.",
746
+ };
747
+ },
748
+ resolveIncident: async (squadId, incidentId, input, actorUserId) => {
749
+ const incident = await db
750
+ .select()
751
+ .from(budgetIncidents)
752
+ .where(eq(budgetIncidents.id, incidentId))
753
+ .then((rows) => rows[0] ?? null);
754
+ if (!incident)
755
+ throw notFound("Budget incident not found");
756
+ if (incident.squadId !== squadId)
757
+ throw notFound("Budget incident not found");
758
+ const policy = await getPolicyRow(incident.policyId);
759
+ if (input.action === "raise_budget_and_resume") {
760
+ const nextAmount = Math.max(0, Math.floor(input.amount ?? 0));
761
+ const currentObserved = await computeObservedAmount(db, policy);
762
+ if (nextAmount <= currentObserved) {
763
+ throw unprocessable("New budget must exceed current observed spend");
764
+ }
765
+ const now = new Date();
766
+ await db
767
+ .update(budgetPolicies)
768
+ .set({
769
+ amount: nextAmount,
770
+ isActive: true,
771
+ updatedByUserId: actorUserId,
772
+ updatedAt: now,
773
+ })
774
+ .where(eq(budgetPolicies.id, policy.id));
775
+ if (policy.scopeType === "squad" && policy.windowKind === "calendar_month_utc") {
776
+ await db
777
+ .update(squads)
778
+ .set({ budgetMonthlyCents: nextAmount, updatedAt: now })
779
+ .where(eq(squads.id, policy.scopeId));
780
+ }
781
+ if (policy.scopeType === "agent" && policy.windowKind === "calendar_month_utc") {
782
+ await db
783
+ .update(agents)
784
+ .set({ budgetMonthlyCents: nextAmount, updatedAt: now })
785
+ .where(eq(agents.id, policy.scopeId));
786
+ }
787
+ await resumeScopeFromBudget(policy);
788
+ await db
789
+ .update(budgetIncidents)
790
+ .set({
791
+ status: "resolved",
792
+ resolvedAt: now,
793
+ updatedAt: now,
794
+ })
795
+ .where(and(eq(budgetIncidents.policyId, policy.id), eq(budgetIncidents.status, "open")));
796
+ await markApprovalStatus(db, incident.approvalId ?? null, "approved", input.decisionNote, actorUserId);
797
+ }
798
+ else {
799
+ await db
800
+ .update(budgetIncidents)
801
+ .set({
802
+ status: "dismissed",
803
+ resolvedAt: new Date(),
804
+ updatedAt: new Date(),
805
+ })
806
+ .where(eq(budgetIncidents.id, incident.id));
807
+ await markApprovalStatus(db, incident.approvalId ?? null, "rejected", input.decisionNote, actorUserId);
808
+ }
809
+ await logActivity(db, {
810
+ squadId: incident.squadId,
811
+ actorType: "user",
812
+ actorId: actorUserId,
813
+ action: "budget.incident_resolved",
814
+ entityType: "budget_incident",
815
+ entityId: incident.id,
816
+ details: {
817
+ action: input.action,
818
+ amount: input.amount ?? null,
819
+ scopeType: incident.scopeType,
820
+ scopeId: incident.scopeId,
821
+ },
822
+ });
823
+ const [updated] = await hydrateIncidentRows([{
824
+ ...incident,
825
+ status: input.action === "raise_budget_and_resume" ? "resolved" : "dismissed",
826
+ resolvedAt: new Date(),
827
+ updatedAt: new Date(),
828
+ }]);
829
+ return updated;
830
+ },
831
+ };
832
+ }
833
+ //# sourceMappingURL=budgets.js.map