@slaw-ai/db 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 (590) hide show
  1. package/LICENSE +26 -0
  2. package/dist/backup-lib.d.ts +42 -0
  3. package/dist/backup-lib.d.ts.map +1 -0
  4. package/dist/backup-lib.js +862 -0
  5. package/dist/backup-lib.js.map +1 -0
  6. package/dist/backup-lib.test.d.ts +2 -0
  7. package/dist/backup-lib.test.d.ts.map +1 -0
  8. package/dist/backup-lib.test.js +376 -0
  9. package/dist/backup-lib.test.js.map +1 -0
  10. package/dist/backup.d.ts +2 -0
  11. package/dist/backup.d.ts.map +1 -0
  12. package/dist/backup.js +77 -0
  13. package/dist/backup.js.map +1 -0
  14. package/dist/check-migration-numbering.d.ts +2 -0
  15. package/dist/check-migration-numbering.d.ts.map +1 -0
  16. package/dist/check-migration-numbering.js +64 -0
  17. package/dist/check-migration-numbering.js.map +1 -0
  18. package/dist/client.d.ts +43 -0
  19. package/dist/client.d.ts.map +1 -0
  20. package/dist/client.js +586 -0
  21. package/dist/client.js.map +1 -0
  22. package/dist/client.test.d.ts +2 -0
  23. package/dist/client.test.d.ts.map +1 -0
  24. package/dist/client.test.js +400 -0
  25. package/dist/client.test.js.map +1 -0
  26. package/dist/embedded-postgres-error.d.ts +9 -0
  27. package/dist/embedded-postgres-error.d.ts.map +1 -0
  28. package/dist/embedded-postgres-error.js +73 -0
  29. package/dist/embedded-postgres-error.js.map +1 -0
  30. package/dist/embedded-postgres-error.test.d.ts +2 -0
  31. package/dist/embedded-postgres-error.test.d.ts.map +1 -0
  32. package/dist/embedded-postgres-error.test.js +25 -0
  33. package/dist/embedded-postgres-error.test.js.map +1 -0
  34. package/dist/embedded-postgres-native.d.ts +3 -0
  35. package/dist/embedded-postgres-native.d.ts.map +1 -0
  36. package/dist/embedded-postgres-native.js +83 -0
  37. package/dist/embedded-postgres-native.js.map +1 -0
  38. package/dist/embedded-postgres-native.test.d.ts +2 -0
  39. package/dist/embedded-postgres-native.test.d.ts.map +1 -0
  40. package/dist/embedded-postgres-native.test.js +36 -0
  41. package/dist/embedded-postgres-native.test.js.map +1 -0
  42. package/dist/index.d.ts +9 -0
  43. package/dist/index.d.ts.map +1 -0
  44. package/dist/index.js +9 -0
  45. package/dist/index.js.map +1 -0
  46. package/dist/migrate.d.ts +2 -0
  47. package/dist/migrate.d.ts.map +1 -0
  48. package/dist/migrate.js +25 -0
  49. package/dist/migrate.js.map +1 -0
  50. package/dist/migration-runtime.d.ts +7 -0
  51. package/dist/migration-runtime.d.ts.map +1 -0
  52. package/dist/migration-runtime.js +159 -0
  53. package/dist/migration-runtime.js.map +1 -0
  54. package/dist/migration-status.d.ts +2 -0
  55. package/dist/migration-status.d.ts.map +1 -0
  56. package/dist/migration-status.js +55 -0
  57. package/dist/migration-status.js.map +1 -0
  58. package/dist/migrations/0000_mature_masked_marvel.sql +208 -0
  59. package/dist/migrations/0001_fast_northstar.sql +87 -0
  60. package/dist/migrations/0002_big_zaladane.sql +1 -0
  61. package/dist/migrations/0003_shallow_quentin_quire.sql +5 -0
  62. package/dist/migrations/0004_issue_identifiers.sql +28 -0
  63. package/dist/migrations/0005_chief_luke_cage.sql +19 -0
  64. package/dist/migrations/0006_overjoyed_mister_sinister.sql +36 -0
  65. package/dist/migrations/0007_new_quentin_quire.sql +20 -0
  66. package/dist/migrations/0008_amused_zzzax.sql +1 -0
  67. package/dist/migrations/0009_fast_jackal.sql +36 -0
  68. package/dist/migrations/0010_stale_justin_hammer.sql +37 -0
  69. package/dist/migrations/0011_windy_corsair.sql +18 -0
  70. package/dist/migrations/0012_perpetual_ser_duncan.sql +2 -0
  71. package/dist/migrations/0013_dashing_wasp.sql +4 -0
  72. package/dist/migrations/0014_many_mikhail_rasputin.sql +135 -0
  73. package/dist/migrations/0015_project_color_archived.sql +2 -0
  74. package/dist/migrations/0016_agent_icon.sql +1 -0
  75. package/dist/migrations/0017_tiresome_gabe_jones.sql +51 -0
  76. package/dist/migrations/0018_flat_sleepwalker.sql +26 -0
  77. package/dist/migrations/0019_public_victor_mancha.sql +18 -0
  78. package/dist/migrations/0020_white_anita_blake.sql +1 -0
  79. package/dist/migrations/0021_chief_vindicator.sql +1 -0
  80. package/dist/migrations/0022_squad_brand_color.sql +1 -0
  81. package/dist/migrations/0023_fair_lethal_legion.sql +3 -0
  82. package/dist/migrations/0024_far_beast.sql +2 -0
  83. package/dist/migrations/0025_nasty_salo.sql +15 -0
  84. package/dist/migrations/0026_lying_pete_wisdom.sql +39 -0
  85. package/dist/migrations/0027_tranquil_tenebrous.sql +2 -0
  86. package/dist/migrations/0028_harsh_goliath.sql +54 -0
  87. package/dist/migrations/0029_plugin_tables.sql +177 -0
  88. package/dist/migrations/0030_rich_magneto.sql +12 -0
  89. package/dist/migrations/0031_zippy_magma.sql +51 -0
  90. package/dist/migrations/0032_pretty_doctor_octopus.sql +102 -0
  91. package/dist/migrations/0033_shiny_black_tarantula.sql +2 -0
  92. package/dist/migrations/0034_fat_dormammu.sql +2 -0
  93. package/dist/migrations/0035_marvelous_satana.sql +91 -0
  94. package/dist/migrations/0036_cheerful_nitro.sql +9 -0
  95. package/dist/migrations/0037_friendly_eddie_brock.sql +29 -0
  96. package/dist/migrations/0038_careless_iron_monger.sql +5 -0
  97. package/dist/migrations/0039_fat_magneto.sql +161 -0
  98. package/dist/migrations/0040_eager_shotgun.sql +5 -0
  99. package/dist/migrations/0041_curly_maria_hill.sql +1 -0
  100. package/dist/migrations/0042_spotty_the_renegades.sql +26 -0
  101. package/dist/migrations/0043_reflective_captain_universe.sql +6 -0
  102. package/dist/migrations/0044_illegal_toad.sql +56 -0
  103. package/dist/migrations/0045_workable_shockwave.sql +17 -0
  104. package/dist/migrations/0046_smooth_sentinels.sql +11 -0
  105. package/dist/migrations/0047_overjoyed_groot.sql +102 -0
  106. package/dist/migrations/0048_flashy_marrow.sql +1 -0
  107. package/dist/migrations/0049_flawless_abomination.sql +21 -0
  108. package/dist/migrations/0050_stiff_luckman.sql +1 -0
  109. package/dist/migrations/0051_young_korg.sql +5 -0
  110. package/dist/migrations/0052_mushy_trauma.sql +26 -0
  111. package/dist/migrations/0053_sharp_wild_child.sql +18 -0
  112. package/dist/migrations/0054_draft_routines.sql +2 -0
  113. package/dist/migrations/0055_kind_weapon_omega.sql +1 -0
  114. package/dist/migrations/0056_spooky_ultragirl.sql +22 -0
  115. package/dist/migrations/0057_tidy_join_requests.sql +57 -0
  116. package/dist/migrations/0058_wealthy_starbolt.sql +6 -0
  117. package/dist/migrations/0059_plugin_database_namespaces.sql +41 -0
  118. package/dist/migrations/0060_orange_annihilus.sql +50 -0
  119. package/dist/migrations/0061_lively_thor_girl.sql +3 -0
  120. package/dist/migrations/0062_routine_run_dispatch_fingerprint.sql +9 -0
  121. package/dist/migrations/0063_issue_thread_interactions.sql +65 -0
  122. package/dist/migrations/0064_issue_thread_interaction_idempotency.sql +4 -0
  123. package/dist/migrations/0065_environments.sql +50 -0
  124. package/dist/migrations/0066_issue_tree_holds.sql +107 -0
  125. package/dist/migrations/0067_agent_default_environment.sql +3 -0
  126. package/dist/migrations/0068_environment_local_driver_unique.sql +2 -0
  127. package/dist/migrations/0069_liveness_recovery_dedupe.sql +13 -0
  128. package/dist/migrations/0070_active_run_output_watchdog.sql +70 -0
  129. package/dist/migrations/0071_default_hire_approval_off.sql +1 -0
  130. package/dist/migrations/0072_large_sandman.sql +6 -0
  131. package/dist/migrations/0073_shiny_salo.sql +1 -0
  132. package/dist/migrations/0074_striped_genesis.sql +4 -0
  133. package/dist/migrations/0075_cultured_sebastian_shaw.sql +7 -0
  134. package/dist/migrations/0076_useful_elektra.sql +29 -0
  135. package/dist/migrations/0077_unusual_karnak.sql +140 -0
  136. package/dist/migrations/0078_white_darwin.sql +3 -0
  137. package/dist/migrations/0079_squad_search_document_indexes.sql +2 -0
  138. package/dist/migrations/0080_squad_search_fuzzystrmatch.sql +1 -0
  139. package/dist/migrations/0081_optimal_dormammu.sql +1 -0
  140. package/dist/migrations/0082_dry_vision.sql +124 -0
  141. package/dist/migrations/0083_squad_secret_provider_configs.sql +51 -0
  142. package/dist/migrations/0084_issue_recovery_actions.sql +64 -0
  143. package/dist/migrations/0085_tranquil_the_executioner.sql +8 -0
  144. package/dist/migrations/0086_routine_env_runtime_contract.sql +8 -0
  145. package/dist/migrations/0087_backfill_environment_manage_human_defaults.sql +29 -0
  146. package/dist/migrations/0088_backfill_principal_access_compatibility.sql +75 -0
  147. package/dist/migrations/0089_cloud_upstreams.sql +71 -0
  148. package/dist/migrations/0090_resource_memberships.sql +55 -0
  149. package/dist/migrations/0091_old_swarm.sql +189 -0
  150. package/dist/migrations/0092_mighty_puma.sql +28 -0
  151. package/dist/migrations/0093_giant_green_goblin.sql +6 -0
  152. package/dist/migrations/0094_botfather_sync_state.sql +7 -0
  153. package/dist/migrations/0095_instance_limits.sql +10 -0
  154. package/dist/migrations/0096_squad_skills_tower_managed.sql +4 -0
  155. package/dist/migrations/0097_board_to_operator.sql +52 -0
  156. package/dist/migrations/0098_roles_to_leads.sql +13 -0
  157. package/dist/migrations/meta/0000_snapshot.json +1743 -0
  158. package/dist/migrations/meta/0001_snapshot.json +2441 -0
  159. package/dist/migrations/meta/0002_snapshot.json +2454 -0
  160. package/dist/migrations/meta/0003_snapshot.json +2502 -0
  161. package/dist/migrations/meta/0005_snapshot.json +2719 -0
  162. package/dist/migrations/meta/0006_snapshot.json +3048 -0
  163. package/dist/migrations/meta/0007_snapshot.json +3258 -0
  164. package/dist/migrations/meta/0008_snapshot.json +3264 -0
  165. package/dist/migrations/meta/0009_snapshot.json +3587 -0
  166. package/dist/migrations/meta/0010_snapshot.json +3929 -0
  167. package/dist/migrations/meta/0011_snapshot.json +4068 -0
  168. package/dist/migrations/meta/0012_snapshot.json +4087 -0
  169. package/dist/migrations/meta/0013_snapshot.json +4118 -0
  170. package/dist/migrations/meta/0014_snapshot.json +5187 -0
  171. package/dist/migrations/meta/0017_snapshot.json +5215 -0
  172. package/dist/migrations/meta/0018_snapshot.json +5450 -0
  173. package/dist/migrations/meta/0019_snapshot.json +5603 -0
  174. package/dist/migrations/meta/0020_snapshot.json +5603 -0
  175. package/dist/migrations/meta/0021_snapshot.json +5609 -0
  176. package/dist/migrations/meta/0023_snapshot.json +5633 -0
  177. package/dist/migrations/meta/0024_snapshot.json +5693 -0
  178. package/dist/migrations/meta/0025_snapshot.json +5849 -0
  179. package/dist/migrations/meta/0027_snapshot.json +6205 -0
  180. package/dist/migrations/meta/0028_snapshot.json +6710 -0
  181. package/dist/migrations/meta/0029_snapshot.json +7899 -0
  182. package/dist/migrations/meta/0030_snapshot.json +8003 -0
  183. package/dist/migrations/meta/0031_snapshot.json +7242 -0
  184. package/dist/migrations/meta/0032_snapshot.json +7733 -0
  185. package/dist/migrations/meta/0033_snapshot.json +9038 -0
  186. package/dist/migrations/meta/0034_snapshot.json +9039 -0
  187. package/dist/migrations/meta/0035_snapshot.json +9959 -0
  188. package/dist/migrations/meta/0036_snapshot.json +10023 -0
  189. package/dist/migrations/meta/0037_snapshot.json +10263 -0
  190. package/dist/migrations/meta/0038_snapshot.json +11350 -0
  191. package/dist/migrations/meta/0039_snapshot.json +10308 -0
  192. package/dist/migrations/meta/0040_snapshot.json +10481 -0
  193. package/dist/migrations/meta/0041_snapshot.json +11393 -0
  194. package/dist/migrations/meta/0044_snapshot.json +11701 -0
  195. package/dist/migrations/meta/0045_snapshot.json +11857 -0
  196. package/dist/migrations/meta/0046_snapshot.json +11870 -0
  197. package/dist/migrations/meta/0047_snapshot.json +12539 -0
  198. package/dist/migrations/meta/0048_snapshot.json +12546 -0
  199. package/dist/migrations/meta/0049_snapshot.json +12766 -0
  200. package/dist/migrations/meta/0050_snapshot.json +12772 -0
  201. package/dist/migrations/meta/0051_snapshot.json +12836 -0
  202. package/dist/migrations/meta/0052_snapshot.json +13057 -0
  203. package/dist/migrations/meta/0053_snapshot.json +12979 -0
  204. package/dist/migrations/meta/0055_snapshot.json +13206 -0
  205. package/dist/migrations/meta/0056_snapshot.json +13388 -0
  206. package/dist/migrations/meta/0057_snapshot.json +13432 -0
  207. package/dist/migrations/meta/0058_snapshot.json +13490 -0
  208. package/dist/migrations/meta/0060_snapshot.json +14023 -0
  209. package/dist/migrations/meta/0061_snapshot.json +14042 -0
  210. package/dist/migrations/meta/0072_snapshot.json +15852 -0
  211. package/dist/migrations/meta/0073_snapshot.json +15859 -0
  212. package/dist/migrations/meta/0074_snapshot.json +15887 -0
  213. package/dist/migrations/meta/0075_snapshot.json +15945 -0
  214. package/dist/migrations/meta/0077_snapshot.json +16355 -0
  215. package/dist/migrations/meta/0078_snapshot.json +16373 -0
  216. package/dist/migrations/meta/0081_snapshot.json +16380 -0
  217. package/dist/migrations/meta/0090_snapshot.json +17974 -0
  218. package/dist/migrations/meta/0091_snapshot.json +18843 -0
  219. package/dist/migrations/meta/0092_snapshot.json +19543 -0
  220. package/dist/migrations/meta/0093_snapshot.json +19543 -0
  221. package/dist/migrations/meta/_journal.json +699 -0
  222. package/dist/runtime-config.d.ts +16 -0
  223. package/dist/runtime-config.d.ts.map +1 -0
  224. package/dist/runtime-config.js +168 -0
  225. package/dist/runtime-config.js.map +1 -0
  226. package/dist/runtime-config.test.d.ts +2 -0
  227. package/dist/runtime-config.test.d.ts.map +1 -0
  228. package/dist/runtime-config.test.js +111 -0
  229. package/dist/runtime-config.test.js.map +1 -0
  230. package/dist/schema/activity_log.d.ts +197 -0
  231. package/dist/schema/activity_log.d.ts.map +1 -0
  232. package/dist/schema/activity_log.js +22 -0
  233. package/dist/schema/activity_log.js.map +1 -0
  234. package/dist/schema/agent_api_keys.d.ts +144 -0
  235. package/dist/schema/agent_api_keys.d.ts.map +1 -0
  236. package/dist/schema/agent_api_keys.js +17 -0
  237. package/dist/schema/agent_api_keys.js.map +1 -0
  238. package/dist/schema/agent_config_revisions.d.ts +201 -0
  239. package/dist/schema/agent_config_revisions.d.ts.map +1 -0
  240. package/dist/schema/agent_config_revisions.js +20 -0
  241. package/dist/schema/agent_config_revisions.js.map +1 -0
  242. package/dist/schema/agent_memberships.d.ts +127 -0
  243. package/dist/schema/agent_memberships.d.ts.map +1 -0
  244. package/dist/schema/agent_memberships.js +17 -0
  245. package/dist/schema/agent_memberships.js.map +1 -0
  246. package/dist/schema/agent_runtime_state.d.ts +248 -0
  247. package/dist/schema/agent_runtime_state.d.ts.map +1 -0
  248. package/dist/schema/agent_runtime_state.js +23 -0
  249. package/dist/schema/agent_runtime_state.js.map +1 -0
  250. package/dist/schema/agent_task_sessions.d.ts +197 -0
  251. package/dist/schema/agent_task_sessions.d.ts.map +1 -0
  252. package/dist/schema/agent_task_sessions.js +22 -0
  253. package/dist/schema/agent_task_sessions.js.map +1 -0
  254. package/dist/schema/agent_wakeup_requests.d.ts +333 -0
  255. package/dist/schema/agent_wakeup_requests.d.ts.map +1 -0
  256. package/dist/schema/agent_wakeup_requests.js +29 -0
  257. package/dist/schema/agent_wakeup_requests.js.map +1 -0
  258. package/dist/schema/agents.d.ts +390 -0
  259. package/dist/schema/agents.d.ts.map +1 -0
  260. package/dist/schema/agents.js +32 -0
  261. package/dist/schema/agents.js.map +1 -0
  262. package/dist/schema/approval_comments.d.ts +144 -0
  263. package/dist/schema/approval_comments.d.ts.map +1 -0
  264. package/dist/schema/approval_comments.js +19 -0
  265. package/dist/schema/approval_comments.js.map +1 -0
  266. package/dist/schema/approvals.d.ts +214 -0
  267. package/dist/schema/approvals.d.ts.map +1 -0
  268. package/dist/schema/approvals.js +20 -0
  269. package/dist/schema/approvals.js.map +1 -0
  270. package/dist/schema/assets.d.ts +212 -0
  271. package/dist/schema/assets.d.ts.map +1 -0
  272. package/dist/schema/assets.js +22 -0
  273. package/dist/schema/assets.js.map +1 -0
  274. package/dist/schema/auth.d.ts +607 -0
  275. package/dist/schema/auth.d.ts.map +1 -0
  276. package/dist/schema/auth.js +44 -0
  277. package/dist/schema/auth.js.map +1 -0
  278. package/dist/schema/botfather_sync_state.d.ts +103 -0
  279. package/dist/schema/botfather_sync_state.d.ts.map +1 -0
  280. package/dist/schema/botfather_sync_state.js +22 -0
  281. package/dist/schema/botfather_sync_state.js.map +1 -0
  282. package/dist/schema/budget_incidents.d.ts +297 -0
  283. package/dist/schema/budget_incidents.d.ts.map +1 -0
  284. package/dist/schema/budget_incidents.js +29 -0
  285. package/dist/schema/budget_incidents.js.map +1 -0
  286. package/dist/schema/budget_policies.d.ts +263 -0
  287. package/dist/schema/budget_policies.d.ts.map +1 -0
  288. package/dist/schema/budget_policies.js +24 -0
  289. package/dist/schema/budget_policies.js.map +1 -0
  290. package/dist/schema/cli_auth_challenges.d.ts +263 -0
  291. package/dist/schema/cli_auth_challenges.d.ts.map +1 -0
  292. package/dist/schema/cli_auth_challenges.js +26 -0
  293. package/dist/schema/cli_auth_challenges.js.map +1 -0
  294. package/dist/schema/cloud_upstreams.d.ts +884 -0
  295. package/dist/schema/cloud_upstreams.d.ts.map +1 -0
  296. package/dist/schema/cloud_upstreams.js +63 -0
  297. package/dist/schema/cloud_upstreams.js.map +1 -0
  298. package/dist/schema/cost_events.d.ts +314 -0
  299. package/dist/schema/cost_events.d.ts.map +1 -0
  300. package/dist/schema/cost_events.js +34 -0
  301. package/dist/schema/cost_events.js.map +1 -0
  302. package/dist/schema/document_annotation_anchor_snapshots.d.ts +255 -0
  303. package/dist/schema/document_annotation_anchor_snapshots.d.ts.map +1 -0
  304. package/dist/schema/document_annotation_anchor_snapshots.js +25 -0
  305. package/dist/schema/document_annotation_anchor_snapshots.js.map +1 -0
  306. package/dist/schema/document_annotation_comments.d.ts +214 -0
  307. package/dist/schema/document_annotation_comments.d.ts.map +1 -0
  308. package/dist/schema/document_annotation_comments.js +27 -0
  309. package/dist/schema/document_annotation_comments.js.map +1 -0
  310. package/dist/schema/document_annotation_threads.d.ts +476 -0
  311. package/dist/schema/document_annotation_threads.d.ts.map +1 -0
  312. package/dist/schema/document_annotation_threads.js +44 -0
  313. package/dist/schema/document_annotation_threads.js.map +1 -0
  314. package/dist/schema/document_revisions.d.ts +212 -0
  315. package/dist/schema/document_revisions.d.ts.map +1 -0
  316. package/dist/schema/document_revisions.js +23 -0
  317. package/dist/schema/document_revisions.js.map +1 -0
  318. package/dist/schema/documents.d.ts +280 -0
  319. package/dist/schema/documents.d.ts.map +1 -0
  320. package/dist/schema/documents.js +27 -0
  321. package/dist/schema/documents.js.map +1 -0
  322. package/dist/schema/environment_leases.d.ts +333 -0
  323. package/dist/schema/environment_leases.d.ts.map +1 -0
  324. package/dist/schema/environment_leases.js +35 -0
  325. package/dist/schema/environment_leases.js.map +1 -0
  326. package/dist/schema/environments.d.ts +182 -0
  327. package/dist/schema/environments.d.ts.map +1 -0
  328. package/dist/schema/environments.js +22 -0
  329. package/dist/schema/environments.js.map +1 -0
  330. package/dist/schema/execution_workspaces.d.ts +418 -0
  331. package/dist/schema/execution_workspaces.d.ts.map +1 -0
  332. package/dist/schema/execution_workspaces.js +39 -0
  333. package/dist/schema/execution_workspaces.js.map +1 -0
  334. package/dist/schema/feedback_exports.d.ts +450 -0
  335. package/dist/schema/feedback_exports.d.ts.map +1 -0
  336. package/dist/schema/feedback_exports.js +41 -0
  337. package/dist/schema/feedback_exports.js.map +1 -0
  338. package/dist/schema/feedback_votes.d.ts +246 -0
  339. package/dist/schema/feedback_votes.d.ts.map +1 -0
  340. package/dist/schema/feedback_votes.js +25 -0
  341. package/dist/schema/feedback_votes.js.map +1 -0
  342. package/dist/schema/finance_events.d.ts +469 -0
  343. package/dist/schema/finance_events.d.ts.map +1 -0
  344. package/dist/schema/finance_events.js +45 -0
  345. package/dist/schema/finance_events.js.map +1 -0
  346. package/dist/schema/goals.d.ts +178 -0
  347. package/dist/schema/goals.d.ts.map +1 -0
  348. package/dist/schema/goals.js +18 -0
  349. package/dist/schema/goals.js.map +1 -0
  350. package/dist/schema/heartbeat_run_events.d.ts +214 -0
  351. package/dist/schema/heartbeat_run_events.d.ts.map +1 -0
  352. package/dist/schema/heartbeat_run_events.js +23 -0
  353. package/dist/schema/heartbeat_run_events.js.map +1 -0
  354. package/dist/schema/heartbeat_run_watchdog_decisions.d.ts +195 -0
  355. package/dist/schema/heartbeat_run_watchdog_decisions.d.ts.map +1 -0
  356. package/dist/schema/heartbeat_run_watchdog_decisions.js +22 -0
  357. package/dist/schema/heartbeat_run_watchdog_decisions.js.map +1 -0
  358. package/dist/schema/heartbeat_runs.d.ts +830 -0
  359. package/dist/schema/heartbeat_runs.d.ts.map +1 -0
  360. package/dist/schema/heartbeat_runs.js +62 -0
  361. package/dist/schema/heartbeat_runs.js.map +1 -0
  362. package/dist/schema/inbox_dismissals.d.ts +127 -0
  363. package/dist/schema/inbox_dismissals.d.ts.map +1 -0
  364. package/dist/schema/inbox_dismissals.js +16 -0
  365. package/dist/schema/inbox_dismissals.js.map +1 -0
  366. package/dist/schema/index.d.ts +88 -0
  367. package/dist/schema/index.d.ts.map +1 -0
  368. package/dist/schema/index.js +88 -0
  369. package/dist/schema/index.js.map +1 -0
  370. package/dist/schema/instance_limits.d.ts +155 -0
  371. package/dist/schema/instance_limits.d.ts.map +1 -0
  372. package/dist/schema/instance_limits.js +26 -0
  373. package/dist/schema/instance_limits.js.map +1 -0
  374. package/dist/schema/instance_settings.d.ts +114 -0
  375. package/dist/schema/instance_settings.d.ts.map +1 -0
  376. package/dist/schema/instance_settings.js +12 -0
  377. package/dist/schema/instance_settings.js.map +1 -0
  378. package/dist/schema/instance_user_roles.d.ts +93 -0
  379. package/dist/schema/instance_user_roles.d.ts.map +1 -0
  380. package/dist/schema/instance_user_roles.js +12 -0
  381. package/dist/schema/instance_user_roles.js.map +1 -0
  382. package/dist/schema/invites.d.ts +214 -0
  383. package/dist/schema/invites.d.ts.map +1 -0
  384. package/dist/schema/invites.js +20 -0
  385. package/dist/schema/invites.js.map +1 -0
  386. package/dist/schema/issue_approvals.d.ts +110 -0
  387. package/dist/schema/issue_approvals.d.ts.map +1 -0
  388. package/dist/schema/issue_approvals.js +19 -0
  389. package/dist/schema/issue_approvals.js.map +1 -0
  390. package/dist/schema/issue_attachments.d.ts +127 -0
  391. package/dist/schema/issue_attachments.d.ts.map +1 -0
  392. package/dist/schema/issue_attachments.js +19 -0
  393. package/dist/schema/issue_attachments.js.map +1 -0
  394. package/dist/schema/issue_comments.d.ts +219 -0
  395. package/dist/schema/issue_comments.d.ts.map +1 -0
  396. package/dist/schema/issue_comments.js +26 -0
  397. package/dist/schema/issue_comments.js.map +1 -0
  398. package/dist/schema/issue_documents.d.ts +127 -0
  399. package/dist/schema/issue_documents.d.ts.map +1 -0
  400. package/dist/schema/issue_documents.js +18 -0
  401. package/dist/schema/issue_documents.js.map +1 -0
  402. package/dist/schema/issue_execution_decisions.d.ts +212 -0
  403. package/dist/schema/issue_execution_decisions.d.ts.map +1 -0
  404. package/dist/schema/issue_execution_decisions.js +23 -0
  405. package/dist/schema/issue_execution_decisions.js.map +1 -0
  406. package/dist/schema/issue_inbox_archives.d.ts +127 -0
  407. package/dist/schema/issue_inbox_archives.d.ts.map +1 -0
  408. package/dist/schema/issue_inbox_archives.js +17 -0
  409. package/dist/schema/issue_inbox_archives.js.map +1 -0
  410. package/dist/schema/issue_labels.d.ts +76 -0
  411. package/dist/schema/issue_labels.d.ts.map +1 -0
  412. package/dist/schema/issue_labels.js +16 -0
  413. package/dist/schema/issue_labels.js.map +1 -0
  414. package/dist/schema/issue_plan_decompositions.d.ts +284 -0
  415. package/dist/schema/issue_plan_decompositions.d.ts.map +1 -0
  416. package/dist/schema/issue_plan_decompositions.js +36 -0
  417. package/dist/schema/issue_plan_decompositions.js.map +1 -0
  418. package/dist/schema/issue_read_states.d.ts +127 -0
  419. package/dist/schema/issue_read_states.d.ts.map +1 -0
  420. package/dist/schema/issue_read_states.js +17 -0
  421. package/dist/schema/issue_read_states.js.map +1 -0
  422. package/dist/schema/issue_recovery_actions.d.ts +456 -0
  423. package/dist/schema/issue_recovery_actions.d.ts.map +1 -0
  424. package/dist/schema/issue_recovery_actions.js +44 -0
  425. package/dist/schema/issue_recovery_actions.js.map +1 -0
  426. package/dist/schema/issue_reference_mentions.d.ts +180 -0
  427. package/dist/schema/issue_reference_mentions.d.ts.map +1 -0
  428. package/dist/schema/issue_reference_mentions.js +23 -0
  429. package/dist/schema/issue_reference_mentions.js.map +1 -0
  430. package/dist/schema/issue_relations.d.ts +163 -0
  431. package/dist/schema/issue_relations.d.ts.map +1 -0
  432. package/dist/schema/issue_relations.js +21 -0
  433. package/dist/schema/issue_relations.js.map +1 -0
  434. package/dist/schema/issue_thread_interactions.d.ts +353 -0
  435. package/dist/schema/issue_thread_interactions.d.ts.map +1 -0
  436. package/dist/schema/issue_thread_interactions.js +38 -0
  437. package/dist/schema/issue_thread_interactions.js.map +1 -0
  438. package/dist/schema/issue_tree_hold_members.d.ts +280 -0
  439. package/dist/schema/issue_tree_hold_members.d.ts.map +1 -0
  440. package/dist/schema/issue_tree_hold_members.js +29 -0
  441. package/dist/schema/issue_tree_hold_members.js.map +1 -0
  442. package/dist/schema/issue_tree_holds.d.ts +352 -0
  443. package/dist/schema/issue_tree_holds.d.ts.map +1 -0
  444. package/dist/schema/issue_tree_holds.js +31 -0
  445. package/dist/schema/issue_tree_holds.js.map +1 -0
  446. package/dist/schema/issue_work_products.d.ts +350 -0
  447. package/dist/schema/issue_work_products.d.ts.map +1 -0
  448. package/dist/schema/issue_work_products.js +37 -0
  449. package/dist/schema/issue_work_products.js.map +1 -0
  450. package/dist/schema/issues.d.ts +781 -0
  451. package/dist/schema/issues.d.ts.map +1 -0
  452. package/dist/schema/issues.js +109 -0
  453. package/dist/schema/issues.js.map +1 -0
  454. package/dist/schema/join_requests.d.ts +384 -0
  455. package/dist/schema/join_requests.d.ts.map +1 -0
  456. package/dist/schema/join_requests.js +39 -0
  457. package/dist/schema/join_requests.js.map +1 -0
  458. package/dist/schema/labels.d.ts +110 -0
  459. package/dist/schema/labels.d.ts.map +1 -0
  460. package/dist/schema/labels.js +14 -0
  461. package/dist/schema/labels.js.map +1 -0
  462. package/dist/schema/operator_api_keys.d.ts +144 -0
  463. package/dist/schema/operator_api_keys.d.ts.map +1 -0
  464. package/dist/schema/operator_api_keys.js +16 -0
  465. package/dist/schema/operator_api_keys.js.map +1 -0
  466. package/dist/schema/plugin_config.d.ts +123 -0
  467. package/dist/schema/plugin_config.d.ts.map +1 -0
  468. package/dist/schema/plugin_config.js +26 -0
  469. package/dist/schema/plugin_config.js.map +1 -0
  470. package/dist/schema/plugin_database.d.ts +357 -0
  471. package/dist/schema/plugin_database.d.ts.map +1 -0
  472. package/dist/schema/plugin_database.js +51 -0
  473. package/dist/schema/plugin_database.js.map +1 -0
  474. package/dist/schema/plugin_entities.d.ts +213 -0
  475. package/dist/schema/plugin_entities.d.ts.map +1 -0
  476. package/dist/schema/plugin_entities.js +37 -0
  477. package/dist/schema/plugin_entities.js.map +1 -0
  478. package/dist/schema/plugin_jobs.d.ts +392 -0
  479. package/dist/schema/plugin_jobs.d.ts.map +1 -0
  480. package/dist/schema/plugin_jobs.js +83 -0
  481. package/dist/schema/plugin_jobs.js.map +1 -0
  482. package/dist/schema/plugin_logs.d.ts +125 -0
  483. package/dist/schema/plugin_logs.d.ts.map +1 -0
  484. package/dist/schema/plugin_logs.js +29 -0
  485. package/dist/schema/plugin_logs.js.map +1 -0
  486. package/dist/schema/plugin_managed_resources.d.ts +180 -0
  487. package/dist/schema/plugin_managed_resources.d.ts.map +1 -0
  488. package/dist/schema/plugin_managed_resources.js +25 -0
  489. package/dist/schema/plugin_managed_resources.js.map +1 -0
  490. package/dist/schema/plugin_squad_settings.d.ts +158 -0
  491. package/dist/schema/plugin_squad_settings.d.ts.map +1 -0
  492. package/dist/schema/plugin_squad_settings.js +34 -0
  493. package/dist/schema/plugin_squad_settings.js.map +1 -0
  494. package/dist/schema/plugin_state.d.ts +169 -0
  495. package/dist/schema/plugin_state.d.ts.map +1 -0
  496. package/dist/schema/plugin_state.js +68 -0
  497. package/dist/schema/plugin_state.js.map +1 -0
  498. package/dist/schema/plugin_webhooks.d.ts +239 -0
  499. package/dist/schema/plugin_webhooks.d.ts.map +1 -0
  500. package/dist/schema/plugin_webhooks.js +52 -0
  501. package/dist/schema/plugin_webhooks.js.map +1 -0
  502. package/dist/schema/plugins.d.ts +246 -0
  503. package/dist/schema/plugins.d.ts.map +1 -0
  504. package/dist/schema/plugins.js +31 -0
  505. package/dist/schema/plugins.js.map +1 -0
  506. package/dist/schema/principal_permission_grants.d.ts +163 -0
  507. package/dist/schema/principal_permission_grants.d.ts.map +1 -0
  508. package/dist/schema/principal_permission_grants.js +17 -0
  509. package/dist/schema/principal_permission_grants.js.map +1 -0
  510. package/dist/schema/project_goals.d.ts +93 -0
  511. package/dist/schema/project_goals.d.ts.map +1 -0
  512. package/dist/schema/project_goals.js +17 -0
  513. package/dist/schema/project_goals.js.map +1 -0
  514. package/dist/schema/project_memberships.d.ts +127 -0
  515. package/dist/schema/project_memberships.d.ts.map +1 -0
  516. package/dist/schema/project_memberships.js +17 -0
  517. package/dist/schema/project_memberships.js.map +1 -0
  518. package/dist/schema/project_workspaces.d.ts +333 -0
  519. package/dist/schema/project_workspaces.d.ts.map +1 -0
  520. package/dist/schema/project_workspaces.js +32 -0
  521. package/dist/schema/project_workspaces.js.map +1 -0
  522. package/dist/schema/projects.d.ts +285 -0
  523. package/dist/schema/projects.d.ts.map +1 -0
  524. package/dist/schema/projects.js +25 -0
  525. package/dist/schema/projects.js.map +1 -0
  526. package/dist/schema/routines.d.ts +1330 -0
  527. package/dist/schema/routines.d.ts.map +1 -0
  528. package/dist/schema/routines.js +113 -0
  529. package/dist/schema/routines.js.map +1 -0
  530. package/dist/schema/secret_access_events.d.ts +280 -0
  531. package/dist/schema/secret_access_events.d.ts.map +1 -0
  532. package/dist/schema/secret_access_events.js +30 -0
  533. package/dist/schema/secret_access_events.js.map +1 -0
  534. package/dist/schema/squad_logos.d.ts +93 -0
  535. package/dist/schema/squad_logos.d.ts.map +1 -0
  536. package/dist/schema/squad_logos.js +14 -0
  537. package/dist/schema/squad_logos.js.map +1 -0
  538. package/dist/schema/squad_memberships.d.ts +144 -0
  539. package/dist/schema/squad_memberships.d.ts.map +1 -0
  540. package/dist/schema/squad_memberships.js +17 -0
  541. package/dist/schema/squad_memberships.js.map +1 -0
  542. package/dist/schema/squad_secret_bindings.d.ts +195 -0
  543. package/dist/schema/squad_secret_bindings.d.ts.map +1 -0
  544. package/dist/schema/squad_secret_bindings.js +22 -0
  545. package/dist/schema/squad_secret_bindings.js.map +1 -0
  546. package/dist/schema/squad_secret_provider_configs.d.ts +284 -0
  547. package/dist/schema/squad_secret_provider_configs.d.ts.map +1 -0
  548. package/dist/schema/squad_secret_provider_configs.js +29 -0
  549. package/dist/schema/squad_secret_provider_configs.js.map +1 -0
  550. package/dist/schema/squad_secret_versions.d.ts +231 -0
  551. package/dist/schema/squad_secret_versions.d.ts.map +1 -0
  552. package/dist/schema/squad_secret_versions.js +24 -0
  553. package/dist/schema/squad_secret_versions.js.map +1 -0
  554. package/dist/schema/squad_secrets.d.ts +333 -0
  555. package/dist/schema/squad_secrets.d.ts.map +1 -0
  556. package/dist/schema/squad_secrets.js +32 -0
  557. package/dist/schema/squad_secrets.js.map +1 -0
  558. package/dist/schema/squad_skills.d.ts +335 -0
  559. package/dist/schema/squad_skills.d.ts.map +1 -0
  560. package/dist/schema/squad_skills.js +32 -0
  561. package/dist/schema/squad_skills.js.map +1 -0
  562. package/dist/schema/squad_user_sidebar_preferences.d.ts +112 -0
  563. package/dist/schema/squad_user_sidebar_preferences.d.ts.map +1 -0
  564. package/dist/schema/squad_user_sidebar_preferences.js +15 -0
  565. package/dist/schema/squad_user_sidebar_preferences.js.map +1 -0
  566. package/dist/schema/squads.d.ts +331 -0
  567. package/dist/schema/squads.d.ts.map +1 -0
  568. package/dist/schema/squads.js +31 -0
  569. package/dist/schema/squads.js.map +1 -0
  570. package/dist/schema/user_sidebar_preferences.d.ts +95 -0
  571. package/dist/schema/user_sidebar_preferences.d.ts.map +1 -0
  572. package/dist/schema/user_sidebar_preferences.js +11 -0
  573. package/dist/schema/user_sidebar_preferences.js.map +1 -0
  574. package/dist/schema/workspace_operations.d.ts +367 -0
  575. package/dist/schema/workspace_operations.d.ts.map +1 -0
  576. package/dist/schema/workspace_operations.js +35 -0
  577. package/dist/schema/workspace_operations.js.map +1 -0
  578. package/dist/schema/workspace_runtime_services.d.ts +469 -0
  579. package/dist/schema/workspace_runtime_services.d.ts.map +1 -0
  580. package/dist/schema/workspace_runtime_services.js +44 -0
  581. package/dist/schema/workspace_runtime_services.js.map +1 -0
  582. package/dist/seed.d.ts +2 -0
  583. package/dist/seed.d.ts.map +1 -0
  584. package/dist/seed.js +91 -0
  585. package/dist/seed.js.map +1 -0
  586. package/dist/test-embedded-postgres.d.ts +11 -0
  587. package/dist/test-embedded-postgres.d.ts.map +1 -0
  588. package/dist/test-embedded-postgres.js +138 -0
  589. package/dist/test-embedded-postgres.js.map +1 -0
  590. package/package.json +55 -0
@@ -0,0 +1,64 @@
1
+ CREATE TABLE IF NOT EXISTS "issue_recovery_actions" (
2
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
3
+ "squad_id" uuid NOT NULL,
4
+ "source_issue_id" uuid NOT NULL,
5
+ "recovery_issue_id" uuid,
6
+ "kind" text NOT NULL,
7
+ "status" text DEFAULT 'active' NOT NULL,
8
+ "owner_type" text DEFAULT 'agent' NOT NULL,
9
+ "owner_agent_id" uuid,
10
+ "owner_user_id" text,
11
+ "previous_owner_agent_id" uuid,
12
+ "return_owner_agent_id" uuid,
13
+ "cause" text NOT NULL,
14
+ "fingerprint" text NOT NULL,
15
+ "evidence" jsonb DEFAULT '{}'::jsonb NOT NULL,
16
+ "next_action" text NOT NULL,
17
+ "wake_policy" jsonb,
18
+ "monitor_policy" jsonb,
19
+ "attempt_count" integer DEFAULT 0 NOT NULL,
20
+ "max_attempts" integer,
21
+ "timeout_at" timestamp with time zone,
22
+ "last_attempt_at" timestamp with time zone,
23
+ "outcome" text,
24
+ "resolution_note" text,
25
+ "resolved_at" timestamp with time zone,
26
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
27
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
28
+ );
29
+ --> statement-breakpoint
30
+ DO $$ BEGIN
31
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'issue_recovery_actions_squad_id_squads_id_fk') THEN
32
+ ALTER TABLE "issue_recovery_actions" ADD CONSTRAINT "issue_recovery_actions_squad_id_squads_id_fk" FOREIGN KEY ("squad_id") REFERENCES "public"."squads"("id") ON DELETE no action ON UPDATE no action;
33
+ END IF;
34
+ END $$;--> statement-breakpoint
35
+ DO $$ BEGIN
36
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'issue_recovery_actions_source_issue_id_issues_id_fk') THEN
37
+ ALTER TABLE "issue_recovery_actions" ADD CONSTRAINT "issue_recovery_actions_source_issue_id_issues_id_fk" FOREIGN KEY ("source_issue_id") REFERENCES "public"."issues"("id") ON DELETE cascade ON UPDATE no action;
38
+ END IF;
39
+ END $$;--> statement-breakpoint
40
+ DO $$ BEGIN
41
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'issue_recovery_actions_recovery_issue_id_issues_id_fk') THEN
42
+ ALTER TABLE "issue_recovery_actions" ADD CONSTRAINT "issue_recovery_actions_recovery_issue_id_issues_id_fk" FOREIGN KEY ("recovery_issue_id") REFERENCES "public"."issues"("id") ON DELETE set null ON UPDATE no action;
43
+ END IF;
44
+ END $$;--> statement-breakpoint
45
+ DO $$ BEGIN
46
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'issue_recovery_actions_owner_agent_id_agents_id_fk') THEN
47
+ ALTER TABLE "issue_recovery_actions" ADD CONSTRAINT "issue_recovery_actions_owner_agent_id_agents_id_fk" FOREIGN KEY ("owner_agent_id") REFERENCES "public"."agents"("id") ON DELETE set null ON UPDATE no action;
48
+ END IF;
49
+ END $$;--> statement-breakpoint
50
+ DO $$ BEGIN
51
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'issue_recovery_actions_previous_owner_agent_id_agents_id_fk') THEN
52
+ ALTER TABLE "issue_recovery_actions" ADD CONSTRAINT "issue_recovery_actions_previous_owner_agent_id_agents_id_fk" FOREIGN KEY ("previous_owner_agent_id") REFERENCES "public"."agents"("id") ON DELETE set null ON UPDATE no action;
53
+ END IF;
54
+ END $$;--> statement-breakpoint
55
+ DO $$ BEGIN
56
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'issue_recovery_actions_return_owner_agent_id_agents_id_fk') THEN
57
+ ALTER TABLE "issue_recovery_actions" ADD CONSTRAINT "issue_recovery_actions_return_owner_agent_id_agents_id_fk" FOREIGN KEY ("return_owner_agent_id") REFERENCES "public"."agents"("id") ON DELETE set null ON UPDATE no action;
58
+ END IF;
59
+ END $$;--> statement-breakpoint
60
+ CREATE INDEX IF NOT EXISTS "issue_recovery_actions_squad_source_status_idx" ON "issue_recovery_actions" USING btree ("squad_id","source_issue_id","status");--> statement-breakpoint
61
+ CREATE INDEX IF NOT EXISTS "issue_recovery_actions_squad_owner_status_idx" ON "issue_recovery_actions" USING btree ("squad_id","owner_agent_id","status");--> statement-breakpoint
62
+ CREATE INDEX IF NOT EXISTS "issue_recovery_actions_squad_recovery_issue_idx" ON "issue_recovery_actions" USING btree ("squad_id","recovery_issue_id");--> statement-breakpoint
63
+ CREATE UNIQUE INDEX IF NOT EXISTS "issue_recovery_actions_active_source_uq" ON "issue_recovery_actions" USING btree ("squad_id","source_issue_id") WHERE "issue_recovery_actions"."status" in ('active', 'escalated');--> statement-breakpoint
64
+ CREATE UNIQUE INDEX IF NOT EXISTS "issue_recovery_actions_active_fingerprint_uq" ON "issue_recovery_actions" USING btree ("squad_id","source_issue_id","cause","fingerprint") WHERE "issue_recovery_actions"."status" in ('active', 'escalated');
@@ -0,0 +1,8 @@
1
+ ALTER TABLE "documents" ADD COLUMN IF NOT EXISTS "locked_at" timestamp with time zone;--> statement-breakpoint
2
+ ALTER TABLE "documents" ADD COLUMN IF NOT EXISTS "locked_by_agent_id" uuid;--> statement-breakpoint
3
+ ALTER TABLE "documents" ADD COLUMN IF NOT EXISTS "locked_by_user_id" text;--> statement-breakpoint
4
+ DO $$ BEGIN
5
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'documents_locked_by_agent_id_agents_id_fk') THEN
6
+ ALTER TABLE "documents" ADD CONSTRAINT "documents_locked_by_agent_id_agents_id_fk" FOREIGN KEY ("locked_by_agent_id") REFERENCES "public"."agents"("id") ON DELETE set null ON UPDATE no action;
7
+ END IF;
8
+ END $$;
@@ -0,0 +1,8 @@
1
+ ALTER TABLE "routines" ADD COLUMN IF NOT EXISTS "env" jsonb;--> statement-breakpoint
2
+ ALTER TABLE "routine_runs" ADD COLUMN IF NOT EXISTS "routine_revision_id" uuid;--> statement-breakpoint
3
+ DO $$ BEGIN
4
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'routine_runs_routine_revision_id_routine_revisions_id_fk') THEN
5
+ ALTER TABLE "routine_runs" ADD CONSTRAINT "routine_runs_routine_revision_id_routine_revisions_id_fk" FOREIGN KEY ("routine_revision_id") REFERENCES "public"."routine_revisions"("id") ON DELETE set null ON UPDATE no action;
6
+ END IF;
7
+ END $$;--> statement-breakpoint
8
+ CREATE INDEX IF NOT EXISTS "routine_runs_revision_idx" ON "routine_runs" USING btree ("routine_revision_id");
@@ -0,0 +1,29 @@
1
+ INSERT INTO "principal_permission_grants" (
2
+ "squad_id",
3
+ "principal_type",
4
+ "principal_id",
5
+ "permission_key",
6
+ "scope",
7
+ "granted_by_user_id",
8
+ "created_at",
9
+ "updated_at"
10
+ )
11
+ SELECT
12
+ "squad_id",
13
+ 'user',
14
+ "principal_id",
15
+ 'environments:manage',
16
+ NULL,
17
+ NULL,
18
+ now(),
19
+ now()
20
+ FROM "squad_memberships"
21
+ WHERE "principal_type" = 'user'
22
+ AND "status" = 'active'
23
+ AND "membership_role" IN ('owner', 'admin')
24
+ ON CONFLICT (
25
+ "squad_id",
26
+ "principal_type",
27
+ "principal_id",
28
+ "permission_key"
29
+ ) DO NOTHING;
@@ -0,0 +1,75 @@
1
+ INSERT INTO "squad_memberships" (
2
+ "squad_id",
3
+ "principal_type",
4
+ "principal_id",
5
+ "status",
6
+ "membership_role",
7
+ "created_at",
8
+ "updated_at"
9
+ )
10
+ SELECT
11
+ "squad_id",
12
+ 'agent',
13
+ "id",
14
+ 'active',
15
+ 'member',
16
+ now(),
17
+ now()
18
+ FROM "agents"
19
+ WHERE "status" NOT IN ('pending_approval', 'terminated')
20
+ ON CONFLICT (
21
+ "squad_id",
22
+ "principal_type",
23
+ "principal_id"
24
+ ) DO NOTHING;
25
+
26
+ INSERT INTO "principal_permission_grants" (
27
+ "squad_id",
28
+ "principal_type",
29
+ "principal_id",
30
+ "permission_key",
31
+ "scope",
32
+ "granted_by_user_id",
33
+ "created_at",
34
+ "updated_at"
35
+ )
36
+ SELECT
37
+ memberships."squad_id",
38
+ 'user',
39
+ memberships."principal_id",
40
+ role_defaults."permission_key",
41
+ NULL,
42
+ NULL,
43
+ now(),
44
+ now()
45
+ FROM "squad_memberships" memberships
46
+ JOIN (
47
+ VALUES
48
+ ('owner', 'agents:create'),
49
+ ('owner', 'environments:manage'),
50
+ ('owner', 'users:invite'),
51
+ ('owner', 'users:manage_permissions'),
52
+ ('owner', 'tasks:assign'),
53
+ ('owner', 'joins:approve'),
54
+ ('admin', 'agents:create'),
55
+ ('admin', 'environments:manage'),
56
+ ('admin', 'users:invite'),
57
+ ('admin', 'tasks:assign'),
58
+ ('admin', 'joins:approve'),
59
+ ('operator', 'tasks:assign')
60
+ ) AS role_defaults("membership_role", "permission_key")
61
+ ON role_defaults."membership_role" = CASE
62
+ WHEN memberships."membership_role" = 'owner' THEN 'owner'
63
+ WHEN memberships."membership_role" = 'admin' THEN 'admin'
64
+ WHEN memberships."membership_role" = 'viewer' THEN 'viewer'
65
+ WHEN memberships."membership_role" = 'member' THEN 'operator'
66
+ ELSE 'operator'
67
+ END
68
+ WHERE memberships."principal_type" = 'user'
69
+ AND memberships."status" = 'active'
70
+ ON CONFLICT (
71
+ "squad_id",
72
+ "principal_type",
73
+ "principal_id",
74
+ "permission_key"
75
+ ) DO NOTHING;
@@ -0,0 +1,71 @@
1
+ CREATE TABLE IF NOT EXISTS "cloud_upstream_connections" (
2
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
3
+ "squad_id" uuid NOT NULL,
4
+ "remote_url" text NOT NULL,
5
+ "source_instance_id" text NOT NULL,
6
+ "source_instance_fingerprint" text NOT NULL,
7
+ "source_public_key" text NOT NULL,
8
+ "private_key_pem" text NOT NULL,
9
+ "token_status" text NOT NULL,
10
+ "scopes" text[] DEFAULT '{}' NOT NULL,
11
+ "authorized_global_user_id" text,
12
+ "access_token" text,
13
+ "token_id" text,
14
+ "token_expires_at" timestamp with time zone,
15
+ "target_stack_id" text NOT NULL,
16
+ "target_stack_slug" text,
17
+ "target_stack_display_name" text,
18
+ "target_squad_id" text NOT NULL,
19
+ "target_origin" text NOT NULL,
20
+ "target_primary_host" text NOT NULL,
21
+ "target_product" text NOT NULL,
22
+ "target_schema_major" integer NOT NULL,
23
+ "target_max_chunk_bytes" integer NOT NULL,
24
+ "pending_state" text,
25
+ "pending_code_verifier" text,
26
+ "pending_redirect_uri" text,
27
+ "pending_token_url" text,
28
+ "last_run_id" uuid,
29
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
30
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
31
+ );--> statement-breakpoint
32
+ CREATE TABLE IF NOT EXISTS "cloud_upstream_runs" (
33
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
34
+ "connection_id" uuid NOT NULL,
35
+ "squad_id" uuid NOT NULL,
36
+ "remote_run_id" text,
37
+ "status" text NOT NULL,
38
+ "active_step" text NOT NULL,
39
+ "progress_percent" integer DEFAULT 0 NOT NULL,
40
+ "dry_run" boolean DEFAULT false NOT NULL,
41
+ "retry_of_run_id" uuid,
42
+ "summary" jsonb DEFAULT '[]'::jsonb NOT NULL,
43
+ "warnings" jsonb DEFAULT '[]'::jsonb NOT NULL,
44
+ "conflicts" jsonb DEFAULT '[]'::jsonb NOT NULL,
45
+ "events" jsonb DEFAULT '[]'::jsonb NOT NULL,
46
+ "report" jsonb DEFAULT '{}'::jsonb NOT NULL,
47
+ "idempotency_key" text NOT NULL,
48
+ "manifest_hash" text NOT NULL,
49
+ "target_url" text,
50
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
51
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL,
52
+ "completed_at" timestamp with time zone
53
+ );--> statement-breakpoint
54
+ DO $$ BEGIN
55
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'cloud_upstream_connections_squad_id_squads_id_fk') THEN
56
+ ALTER TABLE "cloud_upstream_connections" ADD CONSTRAINT "cloud_upstream_connections_squad_id_squads_id_fk" FOREIGN KEY ("squad_id") REFERENCES "public"."squads"("id") ON DELETE cascade ON UPDATE no action;
57
+ END IF;
58
+ END $$;--> statement-breakpoint
59
+ DO $$ BEGIN
60
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'cloud_upstream_runs_connection_id_cloud_upstream_connections_id_fk') THEN
61
+ ALTER TABLE "cloud_upstream_runs" ADD CONSTRAINT "cloud_upstream_runs_connection_id_cloud_upstream_connections_id_fk" FOREIGN KEY ("connection_id") REFERENCES "public"."cloud_upstream_connections"("id") ON DELETE cascade ON UPDATE no action;
62
+ END IF;
63
+ END $$;--> statement-breakpoint
64
+ DO $$ BEGIN
65
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'cloud_upstream_runs_squad_id_squads_id_fk') THEN
66
+ ALTER TABLE "cloud_upstream_runs" ADD CONSTRAINT "cloud_upstream_runs_squad_id_squads_id_fk" FOREIGN KEY ("squad_id") REFERENCES "public"."squads"("id") ON DELETE cascade ON UPDATE no action;
67
+ END IF;
68
+ END $$;--> statement-breakpoint
69
+ CREATE INDEX IF NOT EXISTS "cloud_upstream_connections_squad_idx" ON "cloud_upstream_connections" USING btree ("squad_id");--> statement-breakpoint
70
+ CREATE INDEX IF NOT EXISTS "cloud_upstream_runs_squad_created_idx" ON "cloud_upstream_runs" USING btree ("squad_id","created_at");--> statement-breakpoint
71
+ CREATE INDEX IF NOT EXISTS "cloud_upstream_runs_connection_idx" ON "cloud_upstream_runs" USING btree ("connection_id");
@@ -0,0 +1,55 @@
1
+ CREATE TABLE IF NOT EXISTS "agent_memberships" (
2
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
3
+ "squad_id" uuid NOT NULL,
4
+ "agent_id" uuid NOT NULL,
5
+ "user_id" text NOT NULL,
6
+ "state" text DEFAULT 'joined' NOT NULL,
7
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
8
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
9
+ );
10
+ --> statement-breakpoint
11
+ CREATE TABLE IF NOT EXISTS "project_memberships" (
12
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
13
+ "squad_id" uuid NOT NULL,
14
+ "project_id" uuid NOT NULL,
15
+ "user_id" text NOT NULL,
16
+ "state" text DEFAULT 'joined' NOT NULL,
17
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
18
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
19
+ );
20
+ --> statement-breakpoint
21
+ DO $$ BEGIN
22
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'agent_memberships_squad_id_squads_id_fk') THEN
23
+ ALTER TABLE "agent_memberships" ADD CONSTRAINT "agent_memberships_squad_id_squads_id_fk" FOREIGN KEY ("squad_id") REFERENCES "public"."squads"("id") ON DELETE cascade ON UPDATE no action;
24
+ END IF;
25
+ END $$;
26
+ --> statement-breakpoint
27
+ DO $$ BEGIN
28
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'agent_memberships_agent_id_agents_id_fk') THEN
29
+ ALTER TABLE "agent_memberships" ADD CONSTRAINT "agent_memberships_agent_id_agents_id_fk" FOREIGN KEY ("agent_id") REFERENCES "public"."agents"("id") ON DELETE cascade ON UPDATE no action;
30
+ END IF;
31
+ END $$;
32
+ --> statement-breakpoint
33
+ DO $$ BEGIN
34
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'project_memberships_squad_id_squads_id_fk') THEN
35
+ ALTER TABLE "project_memberships" ADD CONSTRAINT "project_memberships_squad_id_squads_id_fk" FOREIGN KEY ("squad_id") REFERENCES "public"."squads"("id") ON DELETE cascade ON UPDATE no action;
36
+ END IF;
37
+ END $$;
38
+ --> statement-breakpoint
39
+ DO $$ BEGIN
40
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'project_memberships_project_id_projects_id_fk') THEN
41
+ ALTER TABLE "project_memberships" ADD CONSTRAINT "project_memberships_project_id_projects_id_fk" FOREIGN KEY ("project_id") REFERENCES "public"."projects"("id") ON DELETE cascade ON UPDATE no action;
42
+ END IF;
43
+ END $$;
44
+ --> statement-breakpoint
45
+ CREATE INDEX IF NOT EXISTS "agent_memberships_squad_user_idx" ON "agent_memberships" USING btree ("squad_id","user_id");
46
+ --> statement-breakpoint
47
+ CREATE INDEX IF NOT EXISTS "agent_memberships_agent_idx" ON "agent_memberships" USING btree ("agent_id");
48
+ --> statement-breakpoint
49
+ CREATE UNIQUE INDEX IF NOT EXISTS "agent_memberships_squad_user_agent_uq" ON "agent_memberships" USING btree ("squad_id","user_id","agent_id");
50
+ --> statement-breakpoint
51
+ CREATE INDEX IF NOT EXISTS "project_memberships_squad_user_idx" ON "project_memberships" USING btree ("squad_id","user_id");
52
+ --> statement-breakpoint
53
+ CREATE INDEX IF NOT EXISTS "project_memberships_project_idx" ON "project_memberships" USING btree ("project_id");
54
+ --> statement-breakpoint
55
+ CREATE UNIQUE INDEX IF NOT EXISTS "project_memberships_squad_user_project_uq" ON "project_memberships" USING btree ("squad_id","user_id","project_id");
@@ -0,0 +1,189 @@
1
+ CREATE TABLE IF NOT EXISTS "document_annotation_threads" (
2
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
3
+ "squad_id" uuid NOT NULL,
4
+ "issue_id" uuid NOT NULL,
5
+ "document_id" uuid NOT NULL,
6
+ "document_key" text NOT NULL,
7
+ "status" text DEFAULT 'open' NOT NULL,
8
+ "anchor_state" text DEFAULT 'active' NOT NULL,
9
+ "original_revision_id" uuid,
10
+ "original_revision_number" integer NOT NULL,
11
+ "current_revision_id" uuid,
12
+ "current_revision_number" integer NOT NULL,
13
+ "selected_text" text NOT NULL,
14
+ "prefix_text" text DEFAULT '' NOT NULL,
15
+ "suffix_text" text DEFAULT '' NOT NULL,
16
+ "normalized_start" integer NOT NULL,
17
+ "normalized_end" integer NOT NULL,
18
+ "markdown_start" integer NOT NULL,
19
+ "markdown_end" integer NOT NULL,
20
+ "anchor_confidence" text DEFAULT 'exact' NOT NULL,
21
+ "anchor_selector" jsonb NOT NULL,
22
+ "created_by_agent_id" uuid,
23
+ "created_by_user_id" text,
24
+ "resolved_by_agent_id" uuid,
25
+ "resolved_by_user_id" text,
26
+ "resolved_at" timestamp with time zone,
27
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
28
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
29
+ );
30
+ --> statement-breakpoint
31
+ CREATE TABLE IF NOT EXISTS "document_annotation_comments" (
32
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
33
+ "squad_id" uuid NOT NULL,
34
+ "thread_id" uuid NOT NULL,
35
+ "issue_id" uuid NOT NULL,
36
+ "document_id" uuid NOT NULL,
37
+ "body" text NOT NULL,
38
+ "author_type" text NOT NULL,
39
+ "author_agent_id" uuid,
40
+ "author_user_id" text,
41
+ "created_by_run_id" uuid,
42
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
43
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
44
+ );
45
+ --> statement-breakpoint
46
+ CREATE TABLE IF NOT EXISTS "document_annotation_anchor_snapshots" (
47
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
48
+ "squad_id" uuid NOT NULL,
49
+ "thread_id" uuid NOT NULL,
50
+ "document_id" uuid NOT NULL,
51
+ "from_revision_id" uuid,
52
+ "from_revision_number" integer,
53
+ "to_revision_id" uuid,
54
+ "to_revision_number" integer NOT NULL,
55
+ "previous_anchor" jsonb NOT NULL,
56
+ "next_anchor" jsonb,
57
+ "anchor_state" text NOT NULL,
58
+ "anchor_confidence" text NOT NULL,
59
+ "failure_reason" text,
60
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL
61
+ );
62
+ --> statement-breakpoint
63
+ DO $$ BEGIN
64
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'document_annotation_threads_squad_id_squads_id_fk') THEN
65
+ ALTER TABLE "document_annotation_threads" ADD CONSTRAINT "document_annotation_threads_squad_id_squads_id_fk" FOREIGN KEY ("squad_id") REFERENCES "public"."squads"("id") ON DELETE no action ON UPDATE no action;
66
+ END IF;
67
+ END $$;
68
+ --> statement-breakpoint
69
+ DO $$ BEGIN
70
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'document_annotation_threads_issue_id_issues_id_fk') THEN
71
+ ALTER TABLE "document_annotation_threads" ADD CONSTRAINT "document_annotation_threads_issue_id_issues_id_fk" FOREIGN KEY ("issue_id") REFERENCES "public"."issues"("id") ON DELETE cascade ON UPDATE no action;
72
+ END IF;
73
+ END $$;
74
+ --> statement-breakpoint
75
+ DO $$ BEGIN
76
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'document_annotation_threads_document_id_documents_id_fk') THEN
77
+ ALTER TABLE "document_annotation_threads" ADD CONSTRAINT "document_annotation_threads_document_id_documents_id_fk" FOREIGN KEY ("document_id") REFERENCES "public"."documents"("id") ON DELETE cascade ON UPDATE no action;
78
+ END IF;
79
+ END $$;
80
+ --> statement-breakpoint
81
+ DO $$ BEGIN
82
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'document_annotation_threads_original_revision_id_document_revisions_id_fk') THEN
83
+ ALTER TABLE "document_annotation_threads" ADD CONSTRAINT "document_annotation_threads_original_revision_id_document_revisions_id_fk" FOREIGN KEY ("original_revision_id") REFERENCES "public"."document_revisions"("id") ON DELETE set null ON UPDATE no action;
84
+ END IF;
85
+ END $$;
86
+ --> statement-breakpoint
87
+ DO $$ BEGIN
88
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'document_annotation_threads_current_revision_id_document_revisions_id_fk') THEN
89
+ ALTER TABLE "document_annotation_threads" ADD CONSTRAINT "document_annotation_threads_current_revision_id_document_revisions_id_fk" FOREIGN KEY ("current_revision_id") REFERENCES "public"."document_revisions"("id") ON DELETE set null ON UPDATE no action;
90
+ END IF;
91
+ END $$;
92
+ --> statement-breakpoint
93
+ DO $$ BEGIN
94
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'document_annotation_threads_created_by_agent_id_agents_id_fk') THEN
95
+ ALTER TABLE "document_annotation_threads" ADD CONSTRAINT "document_annotation_threads_created_by_agent_id_agents_id_fk" FOREIGN KEY ("created_by_agent_id") REFERENCES "public"."agents"("id") ON DELETE set null ON UPDATE no action;
96
+ END IF;
97
+ END $$;
98
+ --> statement-breakpoint
99
+ DO $$ BEGIN
100
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'document_annotation_threads_resolved_by_agent_id_agents_id_fk') THEN
101
+ ALTER TABLE "document_annotation_threads" ADD CONSTRAINT "document_annotation_threads_resolved_by_agent_id_agents_id_fk" FOREIGN KEY ("resolved_by_agent_id") REFERENCES "public"."agents"("id") ON DELETE set null ON UPDATE no action;
102
+ END IF;
103
+ END $$;
104
+ --> statement-breakpoint
105
+ DO $$ BEGIN
106
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'document_annotation_comments_squad_id_squads_id_fk') THEN
107
+ ALTER TABLE "document_annotation_comments" ADD CONSTRAINT "document_annotation_comments_squad_id_squads_id_fk" FOREIGN KEY ("squad_id") REFERENCES "public"."squads"("id") ON DELETE no action ON UPDATE no action;
108
+ END IF;
109
+ END $$;
110
+ --> statement-breakpoint
111
+ DO $$ BEGIN
112
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'document_annotation_comments_thread_id_document_annotation_threads_id_fk') THEN
113
+ ALTER TABLE "document_annotation_comments" ADD CONSTRAINT "document_annotation_comments_thread_id_document_annotation_threads_id_fk" FOREIGN KEY ("thread_id") REFERENCES "public"."document_annotation_threads"("id") ON DELETE cascade ON UPDATE no action;
114
+ END IF;
115
+ END $$;
116
+ --> statement-breakpoint
117
+ DO $$ BEGIN
118
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'document_annotation_comments_issue_id_issues_id_fk') THEN
119
+ ALTER TABLE "document_annotation_comments" ADD CONSTRAINT "document_annotation_comments_issue_id_issues_id_fk" FOREIGN KEY ("issue_id") REFERENCES "public"."issues"("id") ON DELETE cascade ON UPDATE no action;
120
+ END IF;
121
+ END $$;
122
+ --> statement-breakpoint
123
+ DO $$ BEGIN
124
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'document_annotation_comments_document_id_documents_id_fk') THEN
125
+ ALTER TABLE "document_annotation_comments" ADD CONSTRAINT "document_annotation_comments_document_id_documents_id_fk" FOREIGN KEY ("document_id") REFERENCES "public"."documents"("id") ON DELETE cascade ON UPDATE no action;
126
+ END IF;
127
+ END $$;
128
+ --> statement-breakpoint
129
+ DO $$ BEGIN
130
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'document_annotation_comments_author_agent_id_agents_id_fk') THEN
131
+ ALTER TABLE "document_annotation_comments" ADD CONSTRAINT "document_annotation_comments_author_agent_id_agents_id_fk" FOREIGN KEY ("author_agent_id") REFERENCES "public"."agents"("id") ON DELETE set null ON UPDATE no action;
132
+ END IF;
133
+ END $$;
134
+ --> statement-breakpoint
135
+ DO $$ BEGIN
136
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'document_annotation_comments_created_by_run_id_heartbeat_runs_id_fk') THEN
137
+ ALTER TABLE "document_annotation_comments" ADD CONSTRAINT "document_annotation_comments_created_by_run_id_heartbeat_runs_id_fk" FOREIGN KEY ("created_by_run_id") REFERENCES "public"."heartbeat_runs"("id") ON DELETE set null ON UPDATE no action;
138
+ END IF;
139
+ END $$;
140
+ --> statement-breakpoint
141
+ DO $$ BEGIN
142
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'document_annotation_anchor_snapshots_squad_id_squads_id_fk') THEN
143
+ ALTER TABLE "document_annotation_anchor_snapshots" ADD CONSTRAINT "document_annotation_anchor_snapshots_squad_id_squads_id_fk" FOREIGN KEY ("squad_id") REFERENCES "public"."squads"("id") ON DELETE no action ON UPDATE no action;
144
+ END IF;
145
+ END $$;
146
+ --> statement-breakpoint
147
+ DO $$ BEGIN
148
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'document_annotation_anchor_snapshots_thread_id_document_annotation_threads_id_fk') THEN
149
+ ALTER TABLE "document_annotation_anchor_snapshots" ADD CONSTRAINT "document_annotation_anchor_snapshots_thread_id_document_annotation_threads_id_fk" FOREIGN KEY ("thread_id") REFERENCES "public"."document_annotation_threads"("id") ON DELETE cascade ON UPDATE no action;
150
+ END IF;
151
+ END $$;
152
+ --> statement-breakpoint
153
+ DO $$ BEGIN
154
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'document_annotation_anchor_snapshots_document_id_documents_id_fk') THEN
155
+ ALTER TABLE "document_annotation_anchor_snapshots" ADD CONSTRAINT "document_annotation_anchor_snapshots_document_id_documents_id_fk" FOREIGN KEY ("document_id") REFERENCES "public"."documents"("id") ON DELETE cascade ON UPDATE no action;
156
+ END IF;
157
+ END $$;
158
+ --> statement-breakpoint
159
+ DO $$ BEGIN
160
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'document_annotation_anchor_snapshots_from_revision_id_document_revisions_id_fk') THEN
161
+ ALTER TABLE "document_annotation_anchor_snapshots" ADD CONSTRAINT "document_annotation_anchor_snapshots_from_revision_id_document_revisions_id_fk" FOREIGN KEY ("from_revision_id") REFERENCES "public"."document_revisions"("id") ON DELETE set null ON UPDATE no action;
162
+ END IF;
163
+ END $$;
164
+ --> statement-breakpoint
165
+ DO $$ BEGIN
166
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'document_annotation_anchor_snapshots_to_revision_id_document_revisions_id_fk') THEN
167
+ ALTER TABLE "document_annotation_anchor_snapshots" ADD CONSTRAINT "document_annotation_anchor_snapshots_to_revision_id_document_revisions_id_fk" FOREIGN KEY ("to_revision_id") REFERENCES "public"."document_revisions"("id") ON DELETE set null ON UPDATE no action;
168
+ END IF;
169
+ END $$;
170
+ --> statement-breakpoint
171
+ CREATE INDEX IF NOT EXISTS "document_annotation_threads_squad_document_status_idx" ON "document_annotation_threads" USING btree ("squad_id","document_id","status");
172
+ --> statement-breakpoint
173
+ CREATE INDEX IF NOT EXISTS "document_annotation_threads_squad_issue_status_idx" ON "document_annotation_threads" USING btree ("squad_id","issue_id","status");
174
+ --> statement-breakpoint
175
+ CREATE INDEX IF NOT EXISTS "document_annotation_threads_squad_current_revision_open_idx" ON "document_annotation_threads" USING btree ("squad_id","document_id","current_revision_id","status");
176
+ --> statement-breakpoint
177
+ CREATE INDEX IF NOT EXISTS "document_annotation_threads_squad_anchor_state_idx" ON "document_annotation_threads" USING btree ("squad_id","anchor_state");
178
+ --> statement-breakpoint
179
+ CREATE INDEX IF NOT EXISTS "document_annotation_comments_squad_thread_created_at_idx" ON "document_annotation_comments" USING btree ("squad_id","thread_id","created_at");
180
+ --> statement-breakpoint
181
+ CREATE INDEX IF NOT EXISTS "document_annotation_comments_squad_issue_created_at_idx" ON "document_annotation_comments" USING btree ("squad_id","issue_id","created_at");
182
+ --> statement-breakpoint
183
+ CREATE INDEX IF NOT EXISTS "document_annotation_comments_squad_document_created_at_idx" ON "document_annotation_comments" USING btree ("squad_id","document_id","created_at");
184
+ --> statement-breakpoint
185
+ CREATE INDEX IF NOT EXISTS "document_annotation_comments_body_search_idx" ON "document_annotation_comments" USING gin ("body" gin_trgm_ops);
186
+ --> statement-breakpoint
187
+ CREATE INDEX IF NOT EXISTS "document_annotation_anchor_snapshots_squad_thread_created_at_idx" ON "document_annotation_anchor_snapshots" USING btree ("squad_id","thread_id","created_at");
188
+ --> statement-breakpoint
189
+ CREATE INDEX IF NOT EXISTS "document_annotation_anchor_snapshots_squad_document_revision_idx" ON "document_annotation_anchor_snapshots" USING btree ("squad_id","document_id","to_revision_number");
@@ -0,0 +1,28 @@
1
+ CREATE TABLE "issue_plan_decompositions" (
2
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
3
+ "squad_id" uuid NOT NULL,
4
+ "source_issue_id" uuid NOT NULL,
5
+ "accepted_plan_revision_id" uuid NOT NULL,
6
+ "accepted_interaction_id" uuid,
7
+ "status" text DEFAULT 'in_flight' NOT NULL,
8
+ "request_fingerprint" text NOT NULL,
9
+ "requested_child_count" integer DEFAULT 0 NOT NULL,
10
+ "requested_children" jsonb DEFAULT '[]'::jsonb NOT NULL,
11
+ "child_issue_ids" jsonb DEFAULT '[]'::jsonb NOT NULL,
12
+ "owner_agent_id" uuid,
13
+ "owner_user_id" text,
14
+ "owner_run_id" uuid,
15
+ "completed_at" timestamp with time zone,
16
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
17
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
18
+ );
19
+ --> statement-breakpoint
20
+ ALTER TABLE "issue_plan_decompositions" ADD CONSTRAINT "issue_plan_decompositions_squad_id_squads_id_fk" FOREIGN KEY ("squad_id") REFERENCES "public"."squads"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
21
+ ALTER TABLE "issue_plan_decompositions" ADD CONSTRAINT "issue_plan_decompositions_source_issue_id_issues_id_fk" FOREIGN KEY ("source_issue_id") REFERENCES "public"."issues"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
22
+ ALTER TABLE "issue_plan_decompositions" ADD CONSTRAINT "issue_plan_decompositions_accepted_plan_revision_id_document_revisions_id_fk" FOREIGN KEY ("accepted_plan_revision_id") REFERENCES "public"."document_revisions"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
23
+ ALTER TABLE "issue_plan_decompositions" ADD CONSTRAINT "issue_plan_decompositions_accepted_interaction_id_issue_thread_interactions_id_fk" FOREIGN KEY ("accepted_interaction_id") REFERENCES "public"."issue_thread_interactions"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
24
+ ALTER TABLE "issue_plan_decompositions" ADD CONSTRAINT "issue_plan_decompositions_owner_agent_id_agents_id_fk" FOREIGN KEY ("owner_agent_id") REFERENCES "public"."agents"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
25
+ ALTER TABLE "issue_plan_decompositions" ADD CONSTRAINT "issue_plan_decompositions_owner_run_id_heartbeat_runs_id_fk" FOREIGN KEY ("owner_run_id") REFERENCES "public"."heartbeat_runs"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
26
+ CREATE INDEX "issue_plan_decompositions_squad_source_status_idx" ON "issue_plan_decompositions" USING btree ("squad_id","source_issue_id","status");--> statement-breakpoint
27
+ CREATE INDEX "issue_plan_decompositions_active_owner_idx" ON "issue_plan_decompositions" USING btree ("squad_id","owner_agent_id") WHERE "issue_plan_decompositions"."status" = 'in_flight';--> statement-breakpoint
28
+ CREATE UNIQUE INDEX "issue_plan_decompositions_source_revision_uq" ON "issue_plan_decompositions" USING btree ("squad_id","source_issue_id","accepted_plan_revision_id");
@@ -0,0 +1,6 @@
1
+ ALTER TABLE "execution_workspaces" DROP CONSTRAINT "execution_workspaces_squad_id_squads_id_fk";
2
+ --> statement-breakpoint
3
+ ALTER TABLE "workspace_operations" DROP CONSTRAINT "workspace_operations_squad_id_squads_id_fk";
4
+ --> statement-breakpoint
5
+ ALTER TABLE "execution_workspaces" ADD CONSTRAINT "execution_workspaces_squad_id_squads_id_fk" FOREIGN KEY ("squad_id") REFERENCES "public"."squads"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
6
+ ALTER TABLE "workspace_operations" ADD CONSTRAINT "workspace_operations_squad_id_squads_id_fk" FOREIGN KEY ("squad_id") REFERENCES "public"."squads"("id") ON DELETE cascade ON UPDATE no action;
@@ -0,0 +1,7 @@
1
+ CREATE TABLE IF NOT EXISTS "botfather_sync_state" (
2
+ "entity_type" text PRIMARY KEY NOT NULL,
3
+ "last_synced_at" timestamp with time zone,
4
+ "last_synced_id" text,
5
+ "sent_count" bigint DEFAULT 0 NOT NULL,
6
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
7
+ );
@@ -0,0 +1,10 @@
1
+ CREATE TABLE IF NOT EXISTS "instance_limits" (
2
+ "singleton_key" text PRIMARY KEY DEFAULT 'default' NOT NULL,
3
+ "source" text DEFAULT 'tower' NOT NULL,
4
+ "cost_limit_cents" integer,
5
+ "token_limit" bigint,
6
+ "warn_percent" integer DEFAULT 80 NOT NULL,
7
+ "mode" text DEFAULT 'off' NOT NULL,
8
+ "version" integer DEFAULT 0 NOT NULL,
9
+ "applied_at" timestamp with time zone
10
+ );
@@ -0,0 +1,4 @@
1
+ ALTER TABLE "squad_skills" ADD COLUMN IF NOT EXISTS "is_tower_managed" boolean DEFAULT false NOT NULL;--> statement-breakpoint
2
+ ALTER TABLE "squad_skills" ADD COLUMN IF NOT EXISTS "tower_skill_key" text;--> statement-breakpoint
3
+ ALTER TABLE "squad_skills" ADD COLUMN IF NOT EXISTS "tower_skill_version" integer;--> statement-breakpoint
4
+ CREATE INDEX IF NOT EXISTS "squad_skills_tower_key_idx" ON "squad_skills" USING btree ("tower_skill_key");
@@ -0,0 +1,52 @@
1
+ -- 0097: Retire "board" governance terminology → "operator".
2
+ -- Structural renames only. On a fresh DB these run after the original creating
3
+ -- migrations (which still use the old names), renaming them to the new names.
4
+ -- No data-value rekey is needed: a fresh DB seeds the local actor directly as
5
+ -- 'local-operator' / name 'Operator' at boot (see server/src/index.ts).
6
+ -- (Existing pre-rename DBs should be wiped and re-seeded rather than migrated in
7
+ -- place — a partial id rekey across the many free-text user_id columns is unsafe.)
8
+
9
+ -- Rename board_api_keys → operator_api_keys + its indexes
10
+ ALTER TABLE IF EXISTS "board_api_keys" RENAME TO "operator_api_keys";
11
+ --> statement-breakpoint
12
+ ALTER INDEX IF EXISTS "board_api_keys_key_hash_idx" RENAME TO "operator_api_keys_key_hash_idx";
13
+ --> statement-breakpoint
14
+ ALTER INDEX IF EXISTS "board_api_keys_user_idx" RENAME TO "operator_api_keys_user_idx";
15
+ --> statement-breakpoint
16
+
17
+ -- Rename the FK column on cli_auth_challenges if it still has the old name
18
+ DO $$
19
+ BEGIN
20
+ IF EXISTS (
21
+ SELECT 1 FROM information_schema.columns
22
+ WHERE table_name = 'cli_auth_challenges' AND column_name = 'board_api_key_id'
23
+ ) THEN
24
+ ALTER TABLE "cli_auth_challenges" RENAME COLUMN "board_api_key_id" TO "operator_api_key_id";
25
+ END IF;
26
+ END $$;
27
+ --> statement-breakpoint
28
+
29
+ -- Rename squads.require_board_approval_for_new_agents → require_operator_approval_for_new_agents
30
+ DO $$
31
+ BEGIN
32
+ IF EXISTS (
33
+ SELECT 1 FROM information_schema.columns
34
+ WHERE table_name = 'squads' AND column_name = 'require_board_approval_for_new_agents'
35
+ ) THEN
36
+ ALTER TABLE "squads" RENAME COLUMN "require_board_approval_for_new_agents" TO "require_operator_approval_for_new_agents";
37
+ END IF;
38
+ END $$;
39
+ --> statement-breakpoint
40
+
41
+ -- cli_auth_challenges.requested_access: migrate stored value + default ('board' → 'operator')
42
+ DO $$
43
+ BEGIN
44
+ IF EXISTS (
45
+ SELECT 1 FROM information_schema.columns
46
+ WHERE table_name = 'cli_auth_challenges' AND column_name = 'requested_access'
47
+ ) THEN
48
+ ALTER TABLE "cli_auth_challenges" ALTER COLUMN "requested_access" DROP DEFAULT;
49
+ UPDATE "cli_auth_challenges" SET "requested_access" = 'operator' WHERE "requested_access" = 'board';
50
+ ALTER TABLE "cli_auth_challenges" ALTER COLUMN "requested_access" SET DEFAULT 'operator';
51
+ END IF;
52
+ END $$;
@@ -0,0 +1,13 @@
1
+ -- 0098: Retire paperclip-era C-suite agent roles → leads-based roles.
2
+ -- The agents.role column is free-text (text NOT NULL DEFAULT 'general'), NOT a
3
+ -- Postgres enum, and the value is not used as a cross-table foreign key, so an
4
+ -- in-place rekey is safe here (unlike the board→operator actor-id rename in 0097).
5
+ -- Idempotent: each UPDATE is a no-op when no rows hold the legacy value.
6
+ -- cto → engineering_lead
7
+ -- cmo → marketing_lead
8
+ -- cfo → finance_lead
9
+ UPDATE "agents" SET "role" = 'engineering_lead' WHERE "role" = 'cto';
10
+ --> statement-breakpoint
11
+ UPDATE "agents" SET "role" = 'marketing_lead' WHERE "role" = 'cmo';
12
+ --> statement-breakpoint
13
+ UPDATE "agents" SET "role" = 'finance_lead' WHERE "role" = 'cfo';