@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,102 @@
1
+ CREATE TABLE IF NOT EXISTS "feedback_exports" (
2
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
3
+ "squad_id" uuid NOT NULL,
4
+ "feedback_vote_id" uuid NOT NULL,
5
+ "issue_id" uuid NOT NULL,
6
+ "project_id" uuid,
7
+ "author_user_id" text NOT NULL,
8
+ "target_type" text NOT NULL,
9
+ "target_id" text NOT NULL,
10
+ "vote" text NOT NULL,
11
+ "status" text DEFAULT 'local_only' NOT NULL,
12
+ "destination" text,
13
+ "export_id" text,
14
+ "consent_version" text,
15
+ "schema_version" text DEFAULT 'slaw-feedback-envelope-v2' NOT NULL,
16
+ "bundle_version" text DEFAULT 'slaw-feedback-bundle-v2' NOT NULL,
17
+ "payload_version" text DEFAULT 'slaw-feedback-v1' NOT NULL,
18
+ "payload_digest" text,
19
+ "payload_snapshot" jsonb,
20
+ "target_summary" jsonb NOT NULL,
21
+ "redaction_summary" jsonb,
22
+ "attempt_count" integer DEFAULT 0 NOT NULL,
23
+ "last_attempted_at" timestamp with time zone,
24
+ "exported_at" timestamp with time zone,
25
+ "failure_reason" text,
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
+ CREATE TABLE IF NOT EXISTS "feedback_votes" (
31
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
32
+ "squad_id" uuid NOT NULL,
33
+ "issue_id" uuid NOT NULL,
34
+ "target_type" text NOT NULL,
35
+ "target_id" text NOT NULL,
36
+ "author_user_id" text NOT NULL,
37
+ "vote" text NOT NULL,
38
+ "reason" text,
39
+ "shared_with_labs" boolean DEFAULT false NOT NULL,
40
+ "shared_at" timestamp with time zone,
41
+ "consent_version" text,
42
+ "redaction_summary" jsonb,
43
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
44
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
45
+ );
46
+ --> statement-breakpoint
47
+ ALTER TABLE "squads" ADD COLUMN IF NOT EXISTS "feedback_data_sharing_enabled" boolean DEFAULT false NOT NULL;--> statement-breakpoint
48
+ ALTER TABLE "squads" ADD COLUMN IF NOT EXISTS "feedback_data_sharing_consent_at" timestamp with time zone;--> statement-breakpoint
49
+ ALTER TABLE "squads" ADD COLUMN IF NOT EXISTS "feedback_data_sharing_consent_by_user_id" text;--> statement-breakpoint
50
+ ALTER TABLE "squads" ADD COLUMN IF NOT EXISTS "feedback_data_sharing_terms_version" text;--> statement-breakpoint
51
+ ALTER TABLE "document_revisions" ADD COLUMN IF NOT EXISTS "created_by_run_id" uuid;--> statement-breakpoint
52
+ ALTER TABLE "issue_comments" ADD COLUMN IF NOT EXISTS "created_by_run_id" uuid;--> statement-breakpoint
53
+ DO $$ BEGIN
54
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'feedback_exports_squad_id_squads_id_fk') THEN
55
+ ALTER TABLE "feedback_exports" ADD CONSTRAINT "feedback_exports_squad_id_squads_id_fk" FOREIGN KEY ("squad_id") REFERENCES "public"."squads"("id") ON DELETE no action ON UPDATE no action;
56
+ END IF;
57
+ END $$;--> statement-breakpoint
58
+ DO $$ BEGIN
59
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'feedback_exports_feedback_vote_id_feedback_votes_id_fk') THEN
60
+ ALTER TABLE "feedback_exports" ADD CONSTRAINT "feedback_exports_feedback_vote_id_feedback_votes_id_fk" FOREIGN KEY ("feedback_vote_id") REFERENCES "public"."feedback_votes"("id") ON DELETE cascade ON UPDATE no action;
61
+ END IF;
62
+ END $$;--> statement-breakpoint
63
+ DO $$ BEGIN
64
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'feedback_exports_issue_id_issues_id_fk') THEN
65
+ ALTER TABLE "feedback_exports" ADD CONSTRAINT "feedback_exports_issue_id_issues_id_fk" FOREIGN KEY ("issue_id") REFERENCES "public"."issues"("id") ON DELETE cascade ON UPDATE no action;
66
+ END IF;
67
+ END $$;--> statement-breakpoint
68
+ DO $$ BEGIN
69
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'feedback_exports_project_id_projects_id_fk') THEN
70
+ ALTER TABLE "feedback_exports" ADD CONSTRAINT "feedback_exports_project_id_projects_id_fk" FOREIGN KEY ("project_id") REFERENCES "public"."projects"("id") ON DELETE set null ON UPDATE no action;
71
+ END IF;
72
+ END $$;--> statement-breakpoint
73
+ DO $$ BEGIN
74
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'feedback_votes_squad_id_squads_id_fk') THEN
75
+ ALTER TABLE "feedback_votes" ADD CONSTRAINT "feedback_votes_squad_id_squads_id_fk" FOREIGN KEY ("squad_id") REFERENCES "public"."squads"("id") ON DELETE no action ON UPDATE no action;
76
+ END IF;
77
+ END $$;--> statement-breakpoint
78
+ DO $$ BEGIN
79
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'feedback_votes_issue_id_issues_id_fk') THEN
80
+ ALTER TABLE "feedback_votes" ADD CONSTRAINT "feedback_votes_issue_id_issues_id_fk" FOREIGN KEY ("issue_id") REFERENCES "public"."issues"("id") ON DELETE no action ON UPDATE no action;
81
+ END IF;
82
+ END $$;--> statement-breakpoint
83
+ CREATE UNIQUE INDEX IF NOT EXISTS "feedback_exports_feedback_vote_idx" ON "feedback_exports" USING btree ("feedback_vote_id");--> statement-breakpoint
84
+ CREATE INDEX IF NOT EXISTS "feedback_exports_squad_created_idx" ON "feedback_exports" USING btree ("squad_id","created_at");--> statement-breakpoint
85
+ CREATE INDEX IF NOT EXISTS "feedback_exports_squad_status_idx" ON "feedback_exports" USING btree ("squad_id","status","created_at");--> statement-breakpoint
86
+ CREATE INDEX IF NOT EXISTS "feedback_exports_squad_issue_idx" ON "feedback_exports" USING btree ("squad_id","issue_id","created_at");--> statement-breakpoint
87
+ CREATE INDEX IF NOT EXISTS "feedback_exports_squad_project_idx" ON "feedback_exports" USING btree ("squad_id","project_id","created_at");--> statement-breakpoint
88
+ CREATE INDEX IF NOT EXISTS "feedback_exports_squad_author_idx" ON "feedback_exports" USING btree ("squad_id","author_user_id","created_at");--> statement-breakpoint
89
+ CREATE INDEX IF NOT EXISTS "feedback_votes_squad_issue_idx" ON "feedback_votes" USING btree ("squad_id","issue_id");--> statement-breakpoint
90
+ CREATE INDEX IF NOT EXISTS "feedback_votes_issue_target_idx" ON "feedback_votes" USING btree ("issue_id","target_type","target_id");--> statement-breakpoint
91
+ CREATE INDEX IF NOT EXISTS "feedback_votes_author_idx" ON "feedback_votes" USING btree ("author_user_id","created_at");--> statement-breakpoint
92
+ CREATE UNIQUE INDEX IF NOT EXISTS "feedback_votes_squad_target_author_idx" ON "feedback_votes" USING btree ("squad_id","target_type","target_id","author_user_id");--> statement-breakpoint
93
+ DO $$ BEGIN
94
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'document_revisions_created_by_run_id_heartbeat_runs_id_fk') THEN
95
+ ALTER TABLE "document_revisions" ADD CONSTRAINT "document_revisions_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;
96
+ END IF;
97
+ END $$;--> statement-breakpoint
98
+ DO $$ BEGIN
99
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'issue_comments_created_by_run_id_heartbeat_runs_id_fk') THEN
100
+ ALTER TABLE "issue_comments" ADD CONSTRAINT "issue_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;
101
+ END IF;
102
+ END $$;
@@ -0,0 +1 @@
1
+ ALTER TABLE "routines" ADD COLUMN IF NOT EXISTS "variables" jsonb DEFAULT '[]'::jsonb NOT NULL;
@@ -0,0 +1,21 @@
1
+ CREATE TABLE "issue_relations" (
2
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
3
+ "squad_id" uuid NOT NULL,
4
+ "issue_id" uuid NOT NULL,
5
+ "related_issue_id" uuid NOT NULL,
6
+ "type" text NOT NULL,
7
+ "created_by_agent_id" uuid,
8
+ "created_by_user_id" text,
9
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
10
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
11
+ );
12
+ --> statement-breakpoint
13
+ ALTER TABLE "issue_relations" ADD CONSTRAINT "issue_relations_type_check" CHECK ("type" IN ('blocks'));--> statement-breakpoint
14
+ ALTER TABLE "issue_relations" ADD CONSTRAINT "issue_relations_squad_id_squads_id_fk" FOREIGN KEY ("squad_id") REFERENCES "public"."squads"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
15
+ ALTER TABLE "issue_relations" ADD CONSTRAINT "issue_relations_issue_id_issues_id_fk" FOREIGN KEY ("issue_id") REFERENCES "public"."issues"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
16
+ ALTER TABLE "issue_relations" ADD CONSTRAINT "issue_relations_related_issue_id_issues_id_fk" FOREIGN KEY ("related_issue_id") REFERENCES "public"."issues"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
17
+ ALTER TABLE "issue_relations" ADD CONSTRAINT "issue_relations_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;--> statement-breakpoint
18
+ CREATE INDEX "issue_relations_squad_issue_idx" ON "issue_relations" USING btree ("squad_id","issue_id");--> statement-breakpoint
19
+ CREATE INDEX "issue_relations_squad_related_issue_idx" ON "issue_relations" USING btree ("squad_id","related_issue_id");--> statement-breakpoint
20
+ CREATE INDEX "issue_relations_squad_type_idx" ON "issue_relations" USING btree ("squad_id","type");--> statement-breakpoint
21
+ CREATE UNIQUE INDEX "issue_relations_squad_edge_uq" ON "issue_relations" USING btree ("squad_id","issue_id","related_issue_id","type");
@@ -0,0 +1 @@
1
+ ALTER TABLE "projects" ADD COLUMN IF NOT EXISTS "env" jsonb;
@@ -0,0 +1,5 @@
1
+ CREATE EXTENSION IF NOT EXISTS pg_trgm;--> statement-breakpoint
2
+ CREATE INDEX "issue_comments_body_search_idx" ON "issue_comments" USING gin ("body" gin_trgm_ops);--> statement-breakpoint
3
+ CREATE INDEX "issues_title_search_idx" ON "issues" USING gin ("title" gin_trgm_ops);--> statement-breakpoint
4
+ CREATE INDEX "issues_identifier_search_idx" ON "issues" USING gin ("identifier" gin_trgm_ops);--> statement-breakpoint
5
+ CREATE INDEX "issues_description_search_idx" ON "issues" USING gin ("description" gin_trgm_ops);
@@ -0,0 +1,26 @@
1
+ CREATE TABLE "issue_execution_decisions" (
2
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
3
+ "squad_id" uuid NOT NULL,
4
+ "issue_id" uuid NOT NULL,
5
+ "stage_id" uuid NOT NULL,
6
+ "stage_type" text NOT NULL,
7
+ "actor_agent_id" uuid,
8
+ "actor_user_id" text,
9
+ "outcome" text NOT NULL,
10
+ "body" text NOT NULL,
11
+ "created_by_run_id" uuid,
12
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
13
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
14
+ );
15
+ --> statement-breakpoint
16
+ ALTER TABLE "heartbeat_runs" ADD COLUMN "issue_comment_status" text DEFAULT 'not_applicable' NOT NULL;--> statement-breakpoint
17
+ ALTER TABLE "heartbeat_runs" ADD COLUMN "issue_comment_satisfied_by_comment_id" uuid;--> statement-breakpoint
18
+ ALTER TABLE "heartbeat_runs" ADD COLUMN "issue_comment_retry_queued_at" timestamp with time zone;--> statement-breakpoint
19
+ ALTER TABLE "issues" ADD COLUMN "execution_policy" jsonb;--> statement-breakpoint
20
+ ALTER TABLE "issues" ADD COLUMN "execution_state" jsonb;--> statement-breakpoint
21
+ ALTER TABLE "issue_execution_decisions" ADD CONSTRAINT "issue_execution_decisions_squad_id_squads_id_fk" FOREIGN KEY ("squad_id") REFERENCES "public"."squads"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
22
+ ALTER TABLE "issue_execution_decisions" ADD CONSTRAINT "issue_execution_decisions_issue_id_issues_id_fk" FOREIGN KEY ("issue_id") REFERENCES "public"."issues"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
23
+ ALTER TABLE "issue_execution_decisions" ADD CONSTRAINT "issue_execution_decisions_actor_agent_id_agents_id_fk" FOREIGN KEY ("actor_agent_id") REFERENCES "public"."agents"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
24
+ ALTER TABLE "issue_execution_decisions" ADD CONSTRAINT "issue_execution_decisions_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;--> statement-breakpoint
25
+ CREATE INDEX "issue_execution_decisions_squad_issue_idx" ON "issue_execution_decisions" USING btree ("squad_id","issue_id");--> statement-breakpoint
26
+ CREATE INDEX "issue_execution_decisions_stage_idx" ON "issue_execution_decisions" USING btree ("issue_id","stage_id","created_at");
@@ -0,0 +1,18 @@
1
+ CREATE TABLE IF NOT EXISTS "inbox_dismissals" (
2
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
3
+ "squad_id" uuid NOT NULL,
4
+ "user_id" text NOT NULL,
5
+ "item_key" text NOT NULL,
6
+ "dismissed_at" timestamp with time zone DEFAULT now() 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
+ DO $$ BEGIN
12
+ ALTER TABLE "inbox_dismissals" ADD CONSTRAINT "inbox_dismissals_squad_id_squads_id_fk" FOREIGN KEY ("squad_id") REFERENCES "public"."squads"("id") ON DELETE no action ON UPDATE no action;
13
+ EXCEPTION
14
+ WHEN duplicate_object THEN null;
15
+ END $$;--> statement-breakpoint
16
+ CREATE INDEX IF NOT EXISTS "inbox_dismissals_squad_user_idx" ON "inbox_dismissals" USING btree ("squad_id","user_id");--> statement-breakpoint
17
+ CREATE INDEX IF NOT EXISTS "inbox_dismissals_squad_item_idx" ON "inbox_dismissals" USING btree ("squad_id","item_key");--> statement-breakpoint
18
+ CREATE UNIQUE INDEX IF NOT EXISTS "inbox_dismissals_squad_user_item_idx" ON "inbox_dismissals" USING btree ("squad_id","user_id","item_key");
@@ -0,0 +1,2 @@
1
+ ALTER TABLE "routines" ALTER COLUMN "project_id" DROP NOT NULL;
2
+ ALTER TABLE "routines" ALTER COLUMN "assignee_agent_id" DROP NOT NULL;
@@ -0,0 +1 @@
1
+ ALTER TABLE "heartbeat_runs" ADD COLUMN "process_group_id" integer;--> statement-breakpoint
@@ -0,0 +1,22 @@
1
+ CREATE TABLE "squad_user_sidebar_preferences" (
2
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
3
+ "squad_id" uuid NOT NULL,
4
+ "user_id" text NOT NULL,
5
+ "project_order" jsonb DEFAULT '[]'::jsonb NOT NULL,
6
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
7
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
8
+ );
9
+ --> statement-breakpoint
10
+ CREATE TABLE "user_sidebar_preferences" (
11
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
12
+ "user_id" text NOT NULL,
13
+ "squad_order" jsonb DEFAULT '[]'::jsonb NOT NULL,
14
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
15
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
16
+ );
17
+ --> statement-breakpoint
18
+ ALTER TABLE "squad_user_sidebar_preferences" ADD CONSTRAINT "squad_user_sidebar_preferences_squad_id_squads_id_fk" FOREIGN KEY ("squad_id") REFERENCES "public"."squads"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
19
+ CREATE INDEX "squad_user_sidebar_preferences_squad_idx" ON "squad_user_sidebar_preferences" USING btree ("squad_id");--> statement-breakpoint
20
+ CREATE INDEX "squad_user_sidebar_preferences_user_idx" ON "squad_user_sidebar_preferences" USING btree ("user_id");--> statement-breakpoint
21
+ CREATE UNIQUE INDEX "squad_user_sidebar_preferences_squad_user_uq" ON "squad_user_sidebar_preferences" USING btree ("squad_id","user_id");--> statement-breakpoint
22
+ CREATE UNIQUE INDEX "user_sidebar_preferences_user_uq" ON "user_sidebar_preferences" USING btree ("user_id");
@@ -0,0 +1,57 @@
1
+ WITH ranked_user_requests AS (
2
+ SELECT
3
+ id,
4
+ row_number() OVER (
5
+ PARTITION BY squad_id, requesting_user_id
6
+ ORDER BY created_at ASC, id ASC
7
+ ) AS rank
8
+ FROM join_requests
9
+ WHERE request_type = 'human'
10
+ AND status = 'pending_approval'
11
+ AND requesting_user_id IS NOT NULL
12
+ )
13
+ UPDATE join_requests
14
+ SET
15
+ status = 'rejected',
16
+ rejected_at = COALESCE(rejected_at, now()),
17
+ updated_at = now()
18
+ WHERE id IN (
19
+ SELECT id
20
+ FROM ranked_user_requests
21
+ WHERE rank > 1
22
+ );
23
+ --> statement-breakpoint
24
+ WITH ranked_email_requests AS (
25
+ SELECT
26
+ id,
27
+ row_number() OVER (
28
+ PARTITION BY squad_id, lower(request_email_snapshot)
29
+ ORDER BY created_at ASC, id ASC
30
+ ) AS rank
31
+ FROM join_requests
32
+ WHERE request_type = 'human'
33
+ AND status = 'pending_approval'
34
+ AND request_email_snapshot IS NOT NULL
35
+ )
36
+ UPDATE join_requests
37
+ SET
38
+ status = 'rejected',
39
+ rejected_at = COALESCE(rejected_at, now()),
40
+ updated_at = now()
41
+ WHERE id IN (
42
+ SELECT id
43
+ FROM ranked_email_requests
44
+ WHERE rank > 1
45
+ );
46
+ --> statement-breakpoint
47
+ CREATE UNIQUE INDEX IF NOT EXISTS "join_requests_pending_human_user_uq"
48
+ ON "join_requests" USING btree ("squad_id", "requesting_user_id")
49
+ WHERE "request_type" = 'human'
50
+ AND "status" = 'pending_approval'
51
+ AND "requesting_user_id" IS NOT NULL;
52
+ --> statement-breakpoint
53
+ CREATE UNIQUE INDEX IF NOT EXISTS "join_requests_pending_human_email_uq"
54
+ ON "join_requests" USING btree ("squad_id", lower("request_email_snapshot"))
55
+ WHERE "request_type" = 'human'
56
+ AND "status" = 'pending_approval'
57
+ AND "request_email_snapshot" IS NOT NULL;
@@ -0,0 +1,6 @@
1
+ ALTER TABLE "heartbeat_runs" ADD COLUMN IF NOT EXISTS "liveness_state" text;--> statement-breakpoint
2
+ ALTER TABLE "heartbeat_runs" ADD COLUMN IF NOT EXISTS "liveness_reason" text;--> statement-breakpoint
3
+ ALTER TABLE "heartbeat_runs" ADD COLUMN IF NOT EXISTS "continuation_attempt" integer DEFAULT 0 NOT NULL;--> statement-breakpoint
4
+ ALTER TABLE "heartbeat_runs" ADD COLUMN IF NOT EXISTS "last_useful_action_at" timestamp with time zone;--> statement-breakpoint
5
+ ALTER TABLE "heartbeat_runs" ADD COLUMN IF NOT EXISTS "next_action" text;--> statement-breakpoint
6
+ CREATE INDEX IF NOT EXISTS "heartbeat_runs_squad_liveness_idx" ON "heartbeat_runs" USING btree ("squad_id","liveness_state","created_at");
@@ -0,0 +1,41 @@
1
+ CREATE TABLE IF NOT EXISTS "plugin_database_namespaces" (
2
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
3
+ "plugin_id" uuid NOT NULL,
4
+ "plugin_key" text NOT NULL,
5
+ "namespace_name" text NOT NULL,
6
+ "namespace_mode" text DEFAULT 'schema' NOT NULL,
7
+ "status" text DEFAULT 'active' NOT NULL,
8
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
9
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
10
+ );
11
+ --> statement-breakpoint
12
+ CREATE TABLE IF NOT EXISTS "plugin_migrations" (
13
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
14
+ "plugin_id" uuid NOT NULL,
15
+ "plugin_key" text NOT NULL,
16
+ "namespace_name" text NOT NULL,
17
+ "migration_key" text NOT NULL,
18
+ "checksum" text NOT NULL,
19
+ "plugin_version" text NOT NULL,
20
+ "status" text NOT NULL,
21
+ "started_at" timestamp with time zone DEFAULT now() NOT NULL,
22
+ "applied_at" timestamp with time zone,
23
+ "error_message" text
24
+ );
25
+ --> statement-breakpoint
26
+ DO $$ BEGIN
27
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'plugin_database_namespaces_plugin_id_plugins_id_fk') THEN
28
+ ALTER TABLE "plugin_database_namespaces" ADD CONSTRAINT "plugin_database_namespaces_plugin_id_plugins_id_fk" FOREIGN KEY ("plugin_id") REFERENCES "public"."plugins"("id") ON DELETE cascade ON UPDATE no action;
29
+ END IF;
30
+ END $$;--> statement-breakpoint
31
+ DO $$ BEGIN
32
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'plugin_migrations_plugin_id_plugins_id_fk') THEN
33
+ ALTER TABLE "plugin_migrations" ADD CONSTRAINT "plugin_migrations_plugin_id_plugins_id_fk" FOREIGN KEY ("plugin_id") REFERENCES "public"."plugins"("id") ON DELETE cascade ON UPDATE no action;
34
+ END IF;
35
+ END $$;--> statement-breakpoint
36
+ CREATE UNIQUE INDEX IF NOT EXISTS "plugin_database_namespaces_plugin_idx" ON "plugin_database_namespaces" USING btree ("plugin_id");--> statement-breakpoint
37
+ CREATE UNIQUE INDEX IF NOT EXISTS "plugin_database_namespaces_namespace_idx" ON "plugin_database_namespaces" USING btree ("namespace_name");--> statement-breakpoint
38
+ CREATE INDEX IF NOT EXISTS "plugin_database_namespaces_status_idx" ON "plugin_database_namespaces" USING btree ("status");--> statement-breakpoint
39
+ CREATE UNIQUE INDEX IF NOT EXISTS "plugin_migrations_plugin_key_idx" ON "plugin_migrations" USING btree ("plugin_id","migration_key");--> statement-breakpoint
40
+ CREATE INDEX IF NOT EXISTS "plugin_migrations_plugin_idx" ON "plugin_migrations" USING btree ("plugin_id");--> statement-breakpoint
41
+ CREATE INDEX IF NOT EXISTS "plugin_migrations_status_idx" ON "plugin_migrations" USING btree ("status");
@@ -0,0 +1,50 @@
1
+ CREATE TABLE IF NOT EXISTS "issue_reference_mentions" (
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
+ "target_issue_id" uuid NOT NULL,
6
+ "source_kind" text NOT NULL,
7
+ "source_record_id" uuid,
8
+ "document_key" text,
9
+ "matched_text" text,
10
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
11
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
12
+ );
13
+ --> statement-breakpoint
14
+ DO $$ BEGIN
15
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'issue_reference_mentions_squad_id_squads_id_fk') THEN
16
+ ALTER TABLE "issue_reference_mentions" ADD CONSTRAINT "issue_reference_mentions_squad_id_squads_id_fk" FOREIGN KEY ("squad_id") REFERENCES "public"."squads"("id") ON DELETE no action ON UPDATE no action;
17
+ END IF;
18
+ END $$;
19
+ --> statement-breakpoint
20
+ DO $$ BEGIN
21
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'issue_reference_mentions_source_issue_id_issues_id_fk') THEN
22
+ ALTER TABLE "issue_reference_mentions" ADD CONSTRAINT "issue_reference_mentions_source_issue_id_issues_id_fk" FOREIGN KEY ("source_issue_id") REFERENCES "public"."issues"("id") ON DELETE cascade ON UPDATE no action;
23
+ END IF;
24
+ END $$;
25
+ --> statement-breakpoint
26
+ DO $$ BEGIN
27
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'issue_reference_mentions_target_issue_id_issues_id_fk') THEN
28
+ ALTER TABLE "issue_reference_mentions" ADD CONSTRAINT "issue_reference_mentions_target_issue_id_issues_id_fk" FOREIGN KEY ("target_issue_id") REFERENCES "public"."issues"("id") ON DELETE cascade ON UPDATE no action;
29
+ END IF;
30
+ END $$;--> statement-breakpoint
31
+ CREATE INDEX IF NOT EXISTS "issue_reference_mentions_squad_source_issue_idx" ON "issue_reference_mentions" USING btree ("squad_id","source_issue_id");--> statement-breakpoint
32
+ CREATE INDEX IF NOT EXISTS "issue_reference_mentions_squad_target_issue_idx" ON "issue_reference_mentions" USING btree ("squad_id","target_issue_id");--> statement-breakpoint
33
+ CREATE INDEX IF NOT EXISTS "issue_reference_mentions_squad_issue_pair_idx" ON "issue_reference_mentions" USING btree ("squad_id","source_issue_id","target_issue_id");--> statement-breakpoint
34
+ DELETE FROM "issue_reference_mentions"
35
+ WHERE "id" IN (
36
+ SELECT "id"
37
+ FROM (
38
+ SELECT
39
+ "id",
40
+ row_number() OVER (
41
+ PARTITION BY "squad_id", "source_issue_id", "target_issue_id", "source_kind", "source_record_id"
42
+ ORDER BY "created_at", "id"
43
+ ) AS "row_number"
44
+ FROM "issue_reference_mentions"
45
+ ) AS "duplicates"
46
+ WHERE "duplicates"."row_number" > 1
47
+ );--> statement-breakpoint
48
+ DROP INDEX IF EXISTS "issue_reference_mentions_squad_source_mention_uq";--> statement-breakpoint
49
+ CREATE UNIQUE INDEX IF NOT EXISTS "issue_reference_mentions_squad_source_mention_record_uq" ON "issue_reference_mentions" USING btree ("squad_id","source_issue_id","target_issue_id","source_kind","source_record_id") WHERE "source_record_id" IS NOT NULL;--> statement-breakpoint
50
+ CREATE UNIQUE INDEX IF NOT EXISTS "issue_reference_mentions_squad_source_mention_null_record_uq" ON "issue_reference_mentions" USING btree ("squad_id","source_issue_id","target_issue_id","source_kind") WHERE "source_record_id" IS NULL;
@@ -0,0 +1,3 @@
1
+ ALTER TABLE "heartbeat_runs" ADD COLUMN IF NOT EXISTS "scheduled_retry_at" timestamp with time zone;--> statement-breakpoint
2
+ ALTER TABLE "heartbeat_runs" ADD COLUMN IF NOT EXISTS "scheduled_retry_attempt" integer DEFAULT 0 NOT NULL;--> statement-breakpoint
3
+ ALTER TABLE "heartbeat_runs" ADD COLUMN IF NOT EXISTS "scheduled_retry_reason" text;
@@ -0,0 +1,9 @@
1
+ ALTER TABLE "routine_runs" ADD COLUMN IF NOT EXISTS "dispatch_fingerprint" text;--> statement-breakpoint
2
+ ALTER TABLE "issues" ADD COLUMN IF NOT EXISTS "origin_fingerprint" text DEFAULT 'default' NOT NULL;--> statement-breakpoint
3
+ DROP INDEX IF EXISTS "issues_open_routine_execution_uq";--> statement-breakpoint
4
+ CREATE UNIQUE INDEX IF NOT EXISTS "issues_open_routine_execution_uq" ON "issues" USING btree ("squad_id","origin_kind","origin_id","origin_fingerprint") WHERE "issues"."origin_kind" = 'routine_execution'
5
+ and "issues"."origin_id" is not null
6
+ and "issues"."hidden_at" is null
7
+ and "issues"."execution_run_id" is not null
8
+ and "issues"."status" in ('backlog', 'todo', 'in_progress', 'in_review', 'blocked');--> statement-breakpoint
9
+ CREATE INDEX IF NOT EXISTS "routine_runs_dispatch_fingerprint_idx" ON "routine_runs" USING btree ("routine_id","dispatch_fingerprint");
@@ -0,0 +1,65 @@
1
+ CREATE TABLE IF NOT EXISTS "issue_thread_interactions" (
2
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
3
+ "squad_id" uuid NOT NULL,
4
+ "issue_id" uuid NOT NULL,
5
+ "kind" text NOT NULL,
6
+ "status" text DEFAULT 'pending' NOT NULL,
7
+ "continuation_policy" text DEFAULT 'wake_assignee' NOT NULL,
8
+ "source_comment_id" uuid,
9
+ "source_run_id" uuid,
10
+ "title" text,
11
+ "summary" text,
12
+ "created_by_agent_id" uuid,
13
+ "created_by_user_id" text,
14
+ "resolved_by_agent_id" uuid,
15
+ "resolved_by_user_id" text,
16
+ "payload" jsonb NOT NULL,
17
+ "result" jsonb,
18
+ "resolved_at" timestamp with time zone,
19
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
20
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
21
+ );
22
+ --> statement-breakpoint
23
+ DO $$ BEGIN
24
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'issue_thread_interactions_squad_id_squads_id_fk') THEN
25
+ ALTER TABLE "issue_thread_interactions" ADD CONSTRAINT "issue_thread_interactions_squad_id_squads_id_fk" FOREIGN KEY ("squad_id") REFERENCES "public"."squads"("id") ON DELETE no action ON UPDATE no action;
26
+ END IF;
27
+ END $$;
28
+ --> statement-breakpoint
29
+ DO $$ BEGIN
30
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'issue_thread_interactions_issue_id_issues_id_fk') THEN
31
+ ALTER TABLE "issue_thread_interactions" ADD CONSTRAINT "issue_thread_interactions_issue_id_issues_id_fk" FOREIGN KEY ("issue_id") REFERENCES "public"."issues"("id") ON DELETE no action ON UPDATE no action;
32
+ END IF;
33
+ END $$;
34
+ --> statement-breakpoint
35
+ DO $$ BEGIN
36
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'issue_thread_interactions_source_comment_id_issue_comments_id_fk') THEN
37
+ ALTER TABLE "issue_thread_interactions" ADD CONSTRAINT "issue_thread_interactions_source_comment_id_issue_comments_id_fk" FOREIGN KEY ("source_comment_id") REFERENCES "public"."issue_comments"("id") ON DELETE set null ON UPDATE no action;
38
+ END IF;
39
+ END $$;
40
+ --> statement-breakpoint
41
+ DO $$ BEGIN
42
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'issue_thread_interactions_source_run_id_heartbeat_runs_id_fk') THEN
43
+ ALTER TABLE "issue_thread_interactions" ADD CONSTRAINT "issue_thread_interactions_source_run_id_heartbeat_runs_id_fk" FOREIGN KEY ("source_run_id") REFERENCES "public"."heartbeat_runs"("id") ON DELETE set null ON UPDATE no action;
44
+ END IF;
45
+ END $$;
46
+ --> statement-breakpoint
47
+ DO $$ BEGIN
48
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'issue_thread_interactions_created_by_agent_id_agents_id_fk') THEN
49
+ ALTER TABLE "issue_thread_interactions" ADD CONSTRAINT "issue_thread_interactions_created_by_agent_id_agents_id_fk" FOREIGN KEY ("created_by_agent_id") REFERENCES "public"."agents"("id") ON DELETE no action ON UPDATE no action;
50
+ END IF;
51
+ END $$;
52
+ --> statement-breakpoint
53
+ DO $$ BEGIN
54
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'issue_thread_interactions_resolved_by_agent_id_agents_id_fk') THEN
55
+ ALTER TABLE "issue_thread_interactions" ADD CONSTRAINT "issue_thread_interactions_resolved_by_agent_id_agents_id_fk" FOREIGN KEY ("resolved_by_agent_id") REFERENCES "public"."agents"("id") ON DELETE no action ON UPDATE no action;
56
+ END IF;
57
+ END $$;
58
+ --> statement-breakpoint
59
+ CREATE INDEX IF NOT EXISTS "issue_thread_interactions_issue_idx" ON "issue_thread_interactions" USING btree ("issue_id");
60
+ --> statement-breakpoint
61
+ CREATE INDEX IF NOT EXISTS "issue_thread_interactions_squad_issue_created_at_idx" ON "issue_thread_interactions" USING btree ("squad_id","issue_id","created_at");
62
+ --> statement-breakpoint
63
+ CREATE INDEX IF NOT EXISTS "issue_thread_interactions_squad_issue_status_idx" ON "issue_thread_interactions" USING btree ("squad_id","issue_id","status");
64
+ --> statement-breakpoint
65
+ CREATE INDEX IF NOT EXISTS "issue_thread_interactions_source_comment_idx" ON "issue_thread_interactions" USING btree ("source_comment_id");
@@ -0,0 +1,4 @@
1
+ ALTER TABLE "issue_thread_interactions" ADD COLUMN IF NOT EXISTS "idempotency_key" text;--> statement-breakpoint
2
+ CREATE UNIQUE INDEX IF NOT EXISTS "issue_thread_interactions_squad_issue_idempotency_uq"
3
+ ON "issue_thread_interactions" USING btree ("squad_id","issue_id","idempotency_key")
4
+ WHERE "issue_thread_interactions"."idempotency_key" IS NOT NULL;
@@ -0,0 +1,50 @@
1
+ CREATE TABLE "environments" (
2
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
3
+ "squad_id" uuid NOT NULL,
4
+ "name" text NOT NULL,
5
+ "description" text,
6
+ "driver" text DEFAULT 'local' NOT NULL,
7
+ "status" text DEFAULT 'active' NOT NULL,
8
+ "config" jsonb DEFAULT '{}'::jsonb NOT NULL,
9
+ "metadata" jsonb,
10
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
11
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
12
+ );
13
+ --> statement-breakpoint
14
+ CREATE TABLE "environment_leases" (
15
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
16
+ "squad_id" uuid NOT NULL,
17
+ "environment_id" uuid NOT NULL,
18
+ "execution_workspace_id" uuid,
19
+ "issue_id" uuid,
20
+ "heartbeat_run_id" uuid,
21
+ "status" text DEFAULT 'active' NOT NULL,
22
+ "lease_policy" text DEFAULT 'ephemeral' NOT NULL,
23
+ "provider" text,
24
+ "provider_lease_id" text,
25
+ "acquired_at" timestamp with time zone DEFAULT now() NOT NULL,
26
+ "last_used_at" timestamp with time zone DEFAULT now() NOT NULL,
27
+ "expires_at" timestamp with time zone,
28
+ "released_at" timestamp with time zone,
29
+ "failure_reason" text,
30
+ "cleanup_status" text,
31
+ "metadata" jsonb,
32
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
33
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
34
+ );
35
+ --> statement-breakpoint
36
+ ALTER TABLE "environments" ADD CONSTRAINT "environments_squad_id_squads_id_fk" FOREIGN KEY ("squad_id") REFERENCES "public"."squads"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
37
+ ALTER TABLE "environment_leases" ADD CONSTRAINT "environment_leases_squad_id_squads_id_fk" FOREIGN KEY ("squad_id") REFERENCES "public"."squads"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
38
+ ALTER TABLE "environment_leases" ADD CONSTRAINT "environment_leases_environment_id_environments_id_fk" FOREIGN KEY ("environment_id") REFERENCES "public"."environments"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
39
+ ALTER TABLE "environment_leases" ADD CONSTRAINT "environment_leases_execution_workspace_id_execution_workspaces_id_fk" FOREIGN KEY ("execution_workspace_id") REFERENCES "public"."execution_workspaces"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
40
+ ALTER TABLE "environment_leases" ADD CONSTRAINT "environment_leases_issue_id_issues_id_fk" FOREIGN KEY ("issue_id") REFERENCES "public"."issues"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
41
+ ALTER TABLE "environment_leases" ADD CONSTRAINT "environment_leases_heartbeat_run_id_heartbeat_runs_id_fk" FOREIGN KEY ("heartbeat_run_id") REFERENCES "public"."heartbeat_runs"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
42
+ CREATE INDEX "environments_squad_status_idx" ON "environments" USING btree ("squad_id","status");--> statement-breakpoint
43
+ CREATE UNIQUE INDEX "environments_squad_driver_idx" ON "environments" USING btree ("squad_id","driver");--> statement-breakpoint
44
+ CREATE INDEX "environments_squad_name_idx" ON "environments" USING btree ("squad_id","name");--> statement-breakpoint
45
+ CREATE INDEX "environment_leases_squad_environment_status_idx" ON "environment_leases" USING btree ("squad_id","environment_id","status");--> statement-breakpoint
46
+ CREATE INDEX "environment_leases_squad_execution_workspace_idx" ON "environment_leases" USING btree ("squad_id","execution_workspace_id");--> statement-breakpoint
47
+ CREATE INDEX "environment_leases_squad_issue_idx" ON "environment_leases" USING btree ("squad_id","issue_id");--> statement-breakpoint
48
+ CREATE INDEX "environment_leases_heartbeat_run_idx" ON "environment_leases" USING btree ("heartbeat_run_id");--> statement-breakpoint
49
+ CREATE INDEX "environment_leases_squad_last_used_idx" ON "environment_leases" USING btree ("squad_id","last_used_at");--> statement-breakpoint
50
+ CREATE INDEX "environment_leases_provider_lease_idx" ON "environment_leases" USING btree ("provider_lease_id");