@indx-workspace/embedded 0.0.0-bootstrap → 0.3.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 (619) hide show
  1. package/CHANGELOG.md +72 -0
  2. package/LICENSE +202 -0
  3. package/README.md +309 -0
  4. package/dist/bin.js +73 -0
  5. package/dist/launch.js +28617 -0
  6. package/dist/migrations/0000_init.sql +119 -0
  7. package/dist/migrations/0001_w2_resources.sql +177 -0
  8. package/dist/migrations/0002_w3_runtime_profiles.sql +34 -0
  9. package/dist/migrations/0003_steep_galactus.sql +91 -0
  10. package/dist/migrations/0004_overconfident_lake.sql +16 -0
  11. package/dist/migrations/0005_durable_sessions_run_tokens.sql +46 -0
  12. package/dist/migrations/0006_familiar_karnak.sql +2 -0
  13. package/dist/migrations/0007_fast_hannibal_king.sql +1 -0
  14. package/dist/migrations/0008_damp_nemesis.sql +31 -0
  15. package/dist/migrations/0009_special_thena.sql +2 -0
  16. package/dist/migrations/0010_little_power_pack.sql +66 -0
  17. package/dist/migrations/0011_goofy_storm.sql +14 -0
  18. package/dist/migrations/0012_legal_shatterstar.sql +14 -0
  19. package/dist/migrations/0013_secret_namora.sql +9 -0
  20. package/dist/migrations/0014_premium_vengeance.sql +16 -0
  21. package/dist/migrations/0015_amazing_screwball.sql +1 -0
  22. package/dist/migrations/0016_next_satana.sql +29 -0
  23. package/dist/migrations/0017_wild_the_executioner.sql +1 -0
  24. package/dist/migrations/0018_heavy_stone_men.sql +2 -0
  25. package/dist/migrations/0019_repair_legacy_run_accounting.sql +20 -0
  26. package/dist/migrations/0020_sparkling_nova.sql +340 -0
  27. package/dist/migrations/0021_slippery_sister_grimm.sql +1 -0
  28. package/dist/migrations/0022_warm_paibok.sql +26 -0
  29. package/dist/migrations/0023_colorful_shotgun.sql +2 -0
  30. package/dist/migrations/0024_curly_molten_man.sql +9 -0
  31. package/dist/migrations/0025_name_the_engine_in_stored_rows.sql +50 -0
  32. package/dist/migrations/0026_create_the_engine_scoped_session_state_store.sql +47 -0
  33. package/dist/migrations/0027_backfill_claude_session_state.sql +66 -0
  34. package/dist/migrations/0028_widen_the_engine_checks_to_openai_agents.sql +14 -0
  35. package/dist/migrations/0029_widen_the_engine_checks_to_pi.sql +14 -0
  36. package/dist/migrations/0030_create_the_cli_sessions_table.sql +23 -0
  37. package/dist/migrations/0031_widen_the_engine_checks_to_mastra.sql +17 -0
  38. package/dist/migrations/0032_mark_the_setup_agent.sql +7 -0
  39. package/dist/migrations/0033_create_the_agent_version_store.sql +41 -0
  40. package/dist/migrations/0034_mark_the_workspace_default_runtime_profile.sql +15 -0
  41. package/dist/migrations/0035_record_who_a_local_runtime_key_acts_for.sql +19 -0
  42. package/dist/migrations/0036_add_connector_kinds_and_the_run_tool_snapshot.sql +34 -0
  43. package/dist/migrations/0037_create_the_surface_session_keys.sql +20 -0
  44. package/dist/migrations/0038_record_feedback_on_a_run.sql +14 -0
  45. package/dist/migrations/0039_record_an_evaluation_of_a_version.sql +18 -0
  46. package/dist/migrations/0040_record_the_materialised_version.sql +23 -0
  47. package/dist/migrations/0041_pin_a_session_to_its_agent_version.sql +4 -0
  48. package/dist/migrations/0042_store_the_prompt_of_a_run.sql +1 -0
  49. package/dist/migrations/0043_record_every_pointer_move.sql +30 -0
  50. package/dist/migrations/meta/0000_snapshot.json +964 -0
  51. package/dist/migrations/meta/0001_snapshot.json +2278 -0
  52. package/dist/migrations/meta/0002_snapshot.json +2550 -0
  53. package/dist/migrations/meta/0003_snapshot.json +3295 -0
  54. package/dist/migrations/meta/0004_snapshot.json +3452 -0
  55. package/dist/migrations/meta/0005_snapshot.json +3921 -0
  56. package/dist/migrations/meta/0006_snapshot.json +3949 -0
  57. package/dist/migrations/meta/0007_snapshot.json +3956 -0
  58. package/dist/migrations/meta/0008_snapshot.json +4177 -0
  59. package/dist/migrations/meta/0009_snapshot.json +4177 -0
  60. package/dist/migrations/meta/0010_snapshot.json +3988 -0
  61. package/dist/migrations/meta/0011_snapshot.json +4491 -0
  62. package/dist/migrations/meta/0012_snapshot.json +4629 -0
  63. package/dist/migrations/meta/0013_snapshot.json +4646 -0
  64. package/dist/migrations/meta/0014_snapshot.json +4313 -0
  65. package/dist/migrations/meta/0015_snapshot.json +4775 -0
  66. package/dist/migrations/meta/0016_snapshot.json +4976 -0
  67. package/dist/migrations/meta/0017_snapshot.json +4982 -0
  68. package/dist/migrations/meta/0018_snapshot.json +4982 -0
  69. package/dist/migrations/meta/0019_snapshot.json +4990 -0
  70. package/dist/migrations/meta/0020_snapshot.json +5469 -0
  71. package/dist/migrations/meta/0021_snapshot.json +5475 -0
  72. package/dist/migrations/meta/0022_snapshot.json +5711 -0
  73. package/dist/migrations/meta/0023_snapshot.json +5722 -0
  74. package/dist/migrations/meta/0024_snapshot.json +5748 -0
  75. package/dist/migrations/meta/0025_snapshot.json +5748 -0
  76. package/dist/migrations/meta/0026_snapshot.json +6151 -0
  77. package/dist/migrations/meta/0027_snapshot.json +6151 -0
  78. package/dist/migrations/meta/0028_snapshot.json +6151 -0
  79. package/dist/migrations/meta/0029_snapshot.json +6151 -0
  80. package/dist/migrations/meta/0030_snapshot.json +6328 -0
  81. package/dist/migrations/meta/0031_snapshot.json +6328 -0
  82. package/dist/migrations/meta/0032_snapshot.json +6334 -0
  83. package/dist/migrations/meta/0033_snapshot.json +6615 -0
  84. package/dist/migrations/meta/0034_snapshot.json +6633 -0
  85. package/dist/migrations/meta/0035_snapshot.json +6662 -0
  86. package/dist/migrations/meta/0036_snapshot.json +6706 -0
  87. package/dist/migrations/meta/0037_snapshot.json +6816 -0
  88. package/dist/migrations/meta/0038_snapshot.json +6927 -0
  89. package/dist/migrations/meta/0039_snapshot.json +7073 -0
  90. package/dist/migrations/meta/0040_snapshot.json +7096 -0
  91. package/dist/migrations/meta/0041_snapshot.json +7119 -0
  92. package/dist/migrations/meta/0042_snapshot.json +7125 -0
  93. package/dist/migrations/meta/0043_snapshot.json +7292 -0
  94. package/dist/migrations/meta/_journal.json +314 -0
  95. package/dist/web/.next-embedded/BUILD_ID +1 -0
  96. package/dist/web/.next-embedded/app-path-routes-manifest.json +108 -0
  97. package/dist/web/.next-embedded/build-manifest.json +20 -0
  98. package/dist/web/.next-embedded/diagnostics/build-diagnostics.json +6 -0
  99. package/dist/web/.next-embedded/diagnostics/framework.json +1 -0
  100. package/dist/web/.next-embedded/export-marker.json +6 -0
  101. package/dist/web/.next-embedded/images-manifest.json +68 -0
  102. package/dist/web/.next-embedded/package.json +1 -0
  103. package/dist/web/.next-embedded/prerender-manifest.json +97 -0
  104. package/dist/web/.next-embedded/react-loadable-manifest.json +1 -0
  105. package/dist/web/.next-embedded/required-server-files.js +355 -0
  106. package/dist/web/.next-embedded/required-server-files.json +355 -0
  107. package/dist/web/.next-embedded/routes-manifest.json +786 -0
  108. package/dist/web/.next-embedded/server/app/(shell)/admin/api-keys/page.js +1 -0
  109. package/dist/web/.next-embedded/server/app/(shell)/admin/api-keys/page_client-reference-manifest.js +1 -0
  110. package/dist/web/.next-embedded/server/app/(shell)/admin/models/new/page.js +1 -0
  111. package/dist/web/.next-embedded/server/app/(shell)/admin/models/new/page_client-reference-manifest.js +1 -0
  112. package/dist/web/.next-embedded/server/app/(shell)/admin/models/page.js +1 -0
  113. package/dist/web/.next-embedded/server/app/(shell)/admin/models/page_client-reference-manifest.js +1 -0
  114. package/dist/web/.next-embedded/server/app/(shell)/admin/runtimes/page.js +1 -0
  115. package/dist/web/.next-embedded/server/app/(shell)/admin/runtimes/page_client-reference-manifest.js +1 -0
  116. package/dist/web/.next-embedded/server/app/(shell)/admin/settings/page.js +1 -0
  117. package/dist/web/.next-embedded/server/app/(shell)/admin/settings/page_client-reference-manifest.js +1 -0
  118. package/dist/web/.next-embedded/server/app/(shell)/admin/shares/page.js +1 -0
  119. package/dist/web/.next-embedded/server/app/(shell)/admin/shares/page_client-reference-manifest.js +1 -0
  120. package/dist/web/.next-embedded/server/app/(shell)/admin/users/page.js +1 -0
  121. package/dist/web/.next-embedded/server/app/(shell)/admin/users/page_client-reference-manifest.js +1 -0
  122. package/dist/web/.next-embedded/server/app/(shell)/agents/[id]/page.js +1 -0
  123. package/dist/web/.next-embedded/server/app/(shell)/agents/[id]/page_client-reference-manifest.js +1 -0
  124. package/dist/web/.next-embedded/server/app/(shell)/agents/new/page.js +1 -0
  125. package/dist/web/.next-embedded/server/app/(shell)/agents/new/page_client-reference-manifest.js +1 -0
  126. package/dist/web/.next-embedded/server/app/(shell)/agents/page.js +1 -0
  127. package/dist/web/.next-embedded/server/app/(shell)/agents/page_client-reference-manifest.js +1 -0
  128. package/dist/web/.next-embedded/server/app/(shell)/connectors/new/page.js +1 -0
  129. package/dist/web/.next-embedded/server/app/(shell)/connectors/new/page_client-reference-manifest.js +1 -0
  130. package/dist/web/.next-embedded/server/app/(shell)/connectors/page.js +1 -0
  131. package/dist/web/.next-embedded/server/app/(shell)/connectors/page_client-reference-manifest.js +1 -0
  132. package/dist/web/.next-embedded/server/app/(shell)/files/page.js +1 -0
  133. package/dist/web/.next-embedded/server/app/(shell)/files/page_client-reference-manifest.js +1 -0
  134. package/dist/web/.next-embedded/server/app/(shell)/page.js +1 -0
  135. package/dist/web/.next-embedded/server/app/(shell)/page_client-reference-manifest.js +1 -0
  136. package/dist/web/.next-embedded/server/app/(shell)/projects/[id]/page.js +1 -0
  137. package/dist/web/.next-embedded/server/app/(shell)/projects/[id]/page_client-reference-manifest.js +1 -0
  138. package/dist/web/.next-embedded/server/app/(shell)/projects/page.js +1 -0
  139. package/dist/web/.next-embedded/server/app/(shell)/projects/page_client-reference-manifest.js +1 -0
  140. package/dist/web/.next-embedded/server/app/(shell)/runs/page.js +1 -0
  141. package/dist/web/.next-embedded/server/app/(shell)/runs/page_client-reference-manifest.js +1 -0
  142. package/dist/web/.next-embedded/server/app/(shell)/skills/[name]/page.js +1 -0
  143. package/dist/web/.next-embedded/server/app/(shell)/skills/[name]/page_client-reference-manifest.js +1 -0
  144. package/dist/web/.next-embedded/server/app/(shell)/skills/page.js +1 -0
  145. package/dist/web/.next-embedded/server/app/(shell)/skills/page_client-reference-manifest.js +1 -0
  146. package/dist/web/.next-embedded/server/app/(shell)/workspaces/page.js +1 -0
  147. package/dist/web/.next-embedded/server/app/(shell)/workspaces/page_client-reference-manifest.js +1 -0
  148. package/dist/web/.next-embedded/server/app/_global-error/page.js +31 -0
  149. package/dist/web/.next-embedded/server/app/_global-error/page_client-reference-manifest.js +1 -0
  150. package/dist/web/.next-embedded/server/app/_global-error.html +1 -0
  151. package/dist/web/.next-embedded/server/app/_global-error.meta +27 -0
  152. package/dist/web/.next-embedded/server/app/_global-error.rsc +14 -0
  153. package/dist/web/.next-embedded/server/app/_global-error.segments/_full.segment.rsc +14 -0
  154. package/dist/web/.next-embedded/server/app/_global-error.segments/_global-error/__PAGE__.segment.rsc +20 -0
  155. package/dist/web/.next-embedded/server/app/_global-error.segments/_tree.segment.rsc +1 -0
  156. package/dist/web/.next-embedded/server/app/_not-found/page.js +1 -0
  157. package/dist/web/.next-embedded/server/app/_not-found/page_client-reference-manifest.js +1 -0
  158. package/dist/web/.next-embedded/server/app/_not-found.html +1 -0
  159. package/dist/web/.next-embedded/server/app/_not-found.meta +27 -0
  160. package/dist/web/.next-embedded/server/app/_not-found.rsc +15 -0
  161. package/dist/web/.next-embedded/server/app/_not-found.segments/_full.segment.rsc +15 -0
  162. package/dist/web/.next-embedded/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +21 -0
  163. package/dist/web/.next-embedded/server/app/_not-found.segments/_tree.segment.rsc +2 -0
  164. package/dist/web/.next-embedded/server/app/api/agents/[id]/evaluations/route.js +1 -0
  165. package/dist/web/.next-embedded/server/app/api/agents/[id]/evaluations/route_client-reference-manifest.js +1 -0
  166. package/dist/web/.next-embedded/server/app/api/agents/[id]/feedback/route.js +1 -0
  167. package/dist/web/.next-embedded/server/app/api/agents/[id]/feedback/route_client-reference-manifest.js +1 -0
  168. package/dist/web/.next-embedded/server/app/api/agents/[id]/grants/route.js +1 -0
  169. package/dist/web/.next-embedded/server/app/api/agents/[id]/grants/route_client-reference-manifest.js +1 -0
  170. package/dist/web/.next-embedded/server/app/api/agents/[id]/pointers/route.js +1 -0
  171. package/dist/web/.next-embedded/server/app/api/agents/[id]/pointers/route_client-reference-manifest.js +1 -0
  172. package/dist/web/.next-embedded/server/app/api/agents/[id]/policy/route.js +1 -0
  173. package/dist/web/.next-embedded/server/app/api/agents/[id]/policy/route_client-reference-manifest.js +1 -0
  174. package/dist/web/.next-embedded/server/app/api/agents/[id]/promote/route.js +1 -0
  175. package/dist/web/.next-embedded/server/app/api/agents/[id]/promote/route_client-reference-manifest.js +1 -0
  176. package/dist/web/.next-embedded/server/app/api/agents/[id]/resources/route.js +1 -0
  177. package/dist/web/.next-embedded/server/app/api/agents/[id]/resources/route_client-reference-manifest.js +1 -0
  178. package/dist/web/.next-embedded/server/app/api/agents/[id]/rollback/route.js +1 -0
  179. package/dist/web/.next-embedded/server/app/api/agents/[id]/rollback/route_client-reference-manifest.js +1 -0
  180. package/dist/web/.next-embedded/server/app/api/agents/[id]/route.js +1 -0
  181. package/dist/web/.next-embedded/server/app/api/agents/[id]/route_client-reference-manifest.js +1 -0
  182. package/dist/web/.next-embedded/server/app/api/agents/[id]/runs/route.js +1 -0
  183. package/dist/web/.next-embedded/server/app/api/agents/[id]/runs/route_client-reference-manifest.js +1 -0
  184. package/dist/web/.next-embedded/server/app/api/agents/[id]/versions/route.js +1 -0
  185. package/dist/web/.next-embedded/server/app/api/agents/[id]/versions/route_client-reference-manifest.js +1 -0
  186. package/dist/web/.next-embedded/server/app/api/agents/route.js +1 -0
  187. package/dist/web/.next-embedded/server/app/api/agents/route_client-reference-manifest.js +1 -0
  188. package/dist/web/.next-embedded/server/app/api/api-keys/[id]/route.js +1 -0
  189. package/dist/web/.next-embedded/server/app/api/api-keys/[id]/route_client-reference-manifest.js +1 -0
  190. package/dist/web/.next-embedded/server/app/api/api-keys/route.js +1 -0
  191. package/dist/web/.next-embedded/server/app/api/api-keys/route_client-reference-manifest.js +1 -0
  192. package/dist/web/.next-embedded/server/app/api/audit-events/route.js +1 -0
  193. package/dist/web/.next-embedded/server/app/api/audit-events/route_client-reference-manifest.js +1 -0
  194. package/dist/web/.next-embedded/server/app/api/auth/callback/route.js +1 -0
  195. package/dist/web/.next-embedded/server/app/api/auth/callback/route_client-reference-manifest.js +1 -0
  196. package/dist/web/.next-embedded/server/app/api/auth/cli-device/route.js +1 -0
  197. package/dist/web/.next-embedded/server/app/api/auth/cli-device/route_client-reference-manifest.js +1 -0
  198. package/dist/web/.next-embedded/server/app/api/auth/cli-token/route.js +1 -0
  199. package/dist/web/.next-embedded/server/app/api/auth/cli-token/route_client-reference-manifest.js +1 -0
  200. package/dist/web/.next-embedded/server/app/api/auth/cli-verify/route.js +1 -0
  201. package/dist/web/.next-embedded/server/app/api/auth/cli-verify/route_client-reference-manifest.js +1 -0
  202. package/dist/web/.next-embedded/server/app/api/auth/cli-workspace/route.js +1 -0
  203. package/dist/web/.next-embedded/server/app/api/auth/cli-workspace/route_client-reference-manifest.js +1 -0
  204. package/dist/web/.next-embedded/server/app/api/auth/login/route.js +1 -0
  205. package/dist/web/.next-embedded/server/app/api/auth/login/route_client-reference-manifest.js +1 -0
  206. package/dist/web/.next-embedded/server/app/api/auth/workspace/route.js +13 -0
  207. package/dist/web/.next-embedded/server/app/api/auth/workspace/route_client-reference-manifest.js +1 -0
  208. package/dist/web/.next-embedded/server/app/api/connectors/[id]/route.js +1 -0
  209. package/dist/web/.next-embedded/server/app/api/connectors/[id]/route_client-reference-manifest.js +1 -0
  210. package/dist/web/.next-embedded/server/app/api/connectors/[id]/test-connection/route.js +1 -0
  211. package/dist/web/.next-embedded/server/app/api/connectors/[id]/test-connection/route_client-reference-manifest.js +1 -0
  212. package/dist/web/.next-embedded/server/app/api/connectors/route.js +1 -0
  213. package/dist/web/.next-embedded/server/app/api/connectors/route_client-reference-manifest.js +1 -0
  214. package/dist/web/.next-embedded/server/app/api/engines/route.js +1 -0
  215. package/dist/web/.next-embedded/server/app/api/engines/route_client-reference-manifest.js +1 -0
  216. package/dist/web/.next-embedded/server/app/api/files/[id]/route.js +1 -0
  217. package/dist/web/.next-embedded/server/app/api/files/[id]/route_client-reference-manifest.js +1 -0
  218. package/dist/web/.next-embedded/server/app/api/files/route.js +1 -0
  219. package/dist/web/.next-embedded/server/app/api/files/route_client-reference-manifest.js +1 -0
  220. package/dist/web/.next-embedded/server/app/api/invitations/[id]/accept/route.js +1 -0
  221. package/dist/web/.next-embedded/server/app/api/invitations/[id]/accept/route_client-reference-manifest.js +1 -0
  222. package/dist/web/.next-embedded/server/app/api/invitations/[id]/resend/route.js +1 -0
  223. package/dist/web/.next-embedded/server/app/api/invitations/[id]/resend/route_client-reference-manifest.js +1 -0
  224. package/dist/web/.next-embedded/server/app/api/invitations/[id]/route.js +1 -0
  225. package/dist/web/.next-embedded/server/app/api/invitations/[id]/route_client-reference-manifest.js +1 -0
  226. package/dist/web/.next-embedded/server/app/api/invitations/route.js +1 -0
  227. package/dist/web/.next-embedded/server/app/api/invitations/route_client-reference-manifest.js +1 -0
  228. package/dist/web/.next-embedded/server/app/api/me/route.js +1 -0
  229. package/dist/web/.next-embedded/server/app/api/me/route_client-reference-manifest.js +1 -0
  230. package/dist/web/.next-embedded/server/app/api/memberships/[id]/route.js +1 -0
  231. package/dist/web/.next-embedded/server/app/api/memberships/[id]/route_client-reference-manifest.js +1 -0
  232. package/dist/web/.next-embedded/server/app/api/memberships/route.js +1 -0
  233. package/dist/web/.next-embedded/server/app/api/memberships/route_client-reference-manifest.js +1 -0
  234. package/dist/web/.next-embedded/server/app/api/metrics/route.js +1 -0
  235. package/dist/web/.next-embedded/server/app/api/metrics/route_client-reference-manifest.js +1 -0
  236. package/dist/web/.next-embedded/server/app/api/model-connections/[id]/credential/route.js +1 -0
  237. package/dist/web/.next-embedded/server/app/api/model-connections/[id]/credential/route_client-reference-manifest.js +1 -0
  238. package/dist/web/.next-embedded/server/app/api/model-connections/[id]/route.js +1 -0
  239. package/dist/web/.next-embedded/server/app/api/model-connections/[id]/route_client-reference-manifest.js +1 -0
  240. package/dist/web/.next-embedded/server/app/api/model-connections/[id]/test/route.js +1 -0
  241. package/dist/web/.next-embedded/server/app/api/model-connections/[id]/test/route_client-reference-manifest.js +1 -0
  242. package/dist/web/.next-embedded/server/app/api/model-connections/route.js +1 -0
  243. package/dist/web/.next-embedded/server/app/api/model-connections/route_client-reference-manifest.js +1 -0
  244. package/dist/web/.next-embedded/server/app/api/models/route.js +1 -0
  245. package/dist/web/.next-embedded/server/app/api/models/route_client-reference-manifest.js +1 -0
  246. package/dist/web/.next-embedded/server/app/api/projects/[id]/archive/route.js +1 -0
  247. package/dist/web/.next-embedded/server/app/api/projects/[id]/archive/route_client-reference-manifest.js +1 -0
  248. package/dist/web/.next-embedded/server/app/api/projects/[id]/restore/route.js +1 -0
  249. package/dist/web/.next-embedded/server/app/api/projects/[id]/restore/route_client-reference-manifest.js +1 -0
  250. package/dist/web/.next-embedded/server/app/api/projects/[id]/route.js +1 -0
  251. package/dist/web/.next-embedded/server/app/api/projects/[id]/route_client-reference-manifest.js +1 -0
  252. package/dist/web/.next-embedded/server/app/api/projects/[id]/sessions/route.js +1 -0
  253. package/dist/web/.next-embedded/server/app/api/projects/[id]/sessions/route_client-reference-manifest.js +1 -0
  254. package/dist/web/.next-embedded/server/app/api/projects/route.js +1 -0
  255. package/dist/web/.next-embedded/server/app/api/projects/route_client-reference-manifest.js +1 -0
  256. package/dist/web/.next-embedded/server/app/api/runs/[id]/events/route.js +1 -0
  257. package/dist/web/.next-embedded/server/app/api/runs/[id]/events/route_client-reference-manifest.js +1 -0
  258. package/dist/web/.next-embedded/server/app/api/runs/[id]/feedback/route.js +1 -0
  259. package/dist/web/.next-embedded/server/app/api/runs/[id]/feedback/route_client-reference-manifest.js +1 -0
  260. package/dist/web/.next-embedded/server/app/api/runs/[id]/interrupt/route.js +1 -0
  261. package/dist/web/.next-embedded/server/app/api/runs/[id]/interrupt/route_client-reference-manifest.js +1 -0
  262. package/dist/web/.next-embedded/server/app/api/runs/[id]/revoke-tokens/route.js +1 -0
  263. package/dist/web/.next-embedded/server/app/api/runs/[id]/revoke-tokens/route_client-reference-manifest.js +1 -0
  264. package/dist/web/.next-embedded/server/app/api/runs/[id]/route.js +1 -0
  265. package/dist/web/.next-embedded/server/app/api/runs/[id]/route_client-reference-manifest.js +1 -0
  266. package/dist/web/.next-embedded/server/app/api/runs/route.js +1 -0
  267. package/dist/web/.next-embedded/server/app/api/runs/route_client-reference-manifest.js +1 -0
  268. package/dist/web/.next-embedded/server/app/api/runtime-connections/route.js +1 -0
  269. package/dist/web/.next-embedded/server/app/api/runtime-connections/route_client-reference-manifest.js +1 -0
  270. package/dist/web/.next-embedded/server/app/api/runtime-profiles/[id]/route.js +1 -0
  271. package/dist/web/.next-embedded/server/app/api/runtime-profiles/[id]/route_client-reference-manifest.js +1 -0
  272. package/dist/web/.next-embedded/server/app/api/runtime-profiles/route.js +1 -0
  273. package/dist/web/.next-embedded/server/app/api/runtime-profiles/route_client-reference-manifest.js +1 -0
  274. package/dist/web/.next-embedded/server/app/api/runtimes/[id]/route.js +1 -0
  275. package/dist/web/.next-embedded/server/app/api/runtimes/[id]/route_client-reference-manifest.js +1 -0
  276. package/dist/web/.next-embedded/server/app/api/secrets/[id]/route.js +1 -0
  277. package/dist/web/.next-embedded/server/app/api/secrets/[id]/route_client-reference-manifest.js +1 -0
  278. package/dist/web/.next-embedded/server/app/api/secrets/route.js +1 -0
  279. package/dist/web/.next-embedded/server/app/api/secrets/route_client-reference-manifest.js +1 -0
  280. package/dist/web/.next-embedded/server/app/api/sessions/[engineSessionId]/route.js +1 -0
  281. package/dist/web/.next-embedded/server/app/api/sessions/[engineSessionId]/route_client-reference-manifest.js +1 -0
  282. package/dist/web/.next-embedded/server/app/api/sessions/[engineSessionId]/state-blobs/route.js +1 -0
  283. package/dist/web/.next-embedded/server/app/api/sessions/[engineSessionId]/state-blobs/route_client-reference-manifest.js +1 -0
  284. package/dist/web/.next-embedded/server/app/api/sessions/[engineSessionId]/state-entries/route.js +1 -0
  285. package/dist/web/.next-embedded/server/app/api/sessions/[engineSessionId]/state-entries/route_client-reference-manifest.js +1 -0
  286. package/dist/web/.next-embedded/server/app/api/sessions/[engineSessionId]/state-streams/route.js +1 -0
  287. package/dist/web/.next-embedded/server/app/api/sessions/[engineSessionId]/state-streams/route_client-reference-manifest.js +1 -0
  288. package/dist/web/.next-embedded/server/app/api/sessions/[engineSessionId]/subkeys/route.js +1 -0
  289. package/dist/web/.next-embedded/server/app/api/sessions/[engineSessionId]/subkeys/route_client-reference-manifest.js +1 -0
  290. package/dist/web/.next-embedded/server/app/api/sessions/[engineSessionId]/transcript/route.js +1 -0
  291. package/dist/web/.next-embedded/server/app/api/sessions/[engineSessionId]/transcript/route_client-reference-manifest.js +1 -0
  292. package/dist/web/.next-embedded/server/app/api/sessions/route.js +1 -0
  293. package/dist/web/.next-embedded/server/app/api/sessions/route_client-reference-manifest.js +1 -0
  294. package/dist/web/.next-embedded/server/app/api/setup/route.js +1 -0
  295. package/dist/web/.next-embedded/server/app/api/setup/route_client-reference-manifest.js +1 -0
  296. package/dist/web/.next-embedded/server/app/api/setup/runtime-detect/route.js +1 -0
  297. package/dist/web/.next-embedded/server/app/api/setup/runtime-detect/route_client-reference-manifest.js +1 -0
  298. package/dist/web/.next-embedded/server/app/api/shares/[id]/route.js +1 -0
  299. package/dist/web/.next-embedded/server/app/api/shares/[id]/route_client-reference-manifest.js +1 -0
  300. package/dist/web/.next-embedded/server/app/api/shares/route.js +1 -0
  301. package/dist/web/.next-embedded/server/app/api/shares/route_client-reference-manifest.js +1 -0
  302. package/dist/web/.next-embedded/server/app/api/sharing-policies/route.js +1 -0
  303. package/dist/web/.next-embedded/server/app/api/sharing-policies/route_client-reference-manifest.js +1 -0
  304. package/dist/web/.next-embedded/server/app/api/skills/[name]/route.js +1 -0
  305. package/dist/web/.next-embedded/server/app/api/skills/[name]/route_client-reference-manifest.js +1 -0
  306. package/dist/web/.next-embedded/server/app/api/skills/route.js +1 -0
  307. package/dist/web/.next-embedded/server/app/api/skills/route_client-reference-manifest.js +1 -0
  308. package/dist/web/.next-embedded/server/app/api/tokens/route.js +1 -0
  309. package/dist/web/.next-embedded/server/app/api/tokens/route_client-reference-manifest.js +1 -0
  310. package/dist/web/.next-embedded/server/app/api/users/route.js +1 -0
  311. package/dist/web/.next-embedded/server/app/api/users/route_client-reference-manifest.js +1 -0
  312. package/dist/web/.next-embedded/server/app/api/workspaces/[id]/route.js +1 -0
  313. package/dist/web/.next-embedded/server/app/api/workspaces/[id]/route_client-reference-manifest.js +1 -0
  314. package/dist/web/.next-embedded/server/app/api/workspaces/route.js +1 -0
  315. package/dist/web/.next-embedded/server/app/api/workspaces/route_client-reference-manifest.js +1 -0
  316. package/dist/web/.next-embedded/server/app/p/[token]/messages/route.js +1 -0
  317. package/dist/web/.next-embedded/server/app/p/[token]/messages/route_client-reference-manifest.js +1 -0
  318. package/dist/web/.next-embedded/server/app/p/[token]/page.js +1 -0
  319. package/dist/web/.next-embedded/server/app/p/[token]/page_client-reference-manifest.js +1 -0
  320. package/dist/web/.next-embedded/server/app/p/s/[name]/page.js +1 -0
  321. package/dist/web/.next-embedded/server/app/p/s/[name]/page_client-reference-manifest.js +1 -0
  322. package/dist/web/.next-embedded/server/app/p/s/[name]/sessions/route.js +1 -0
  323. package/dist/web/.next-embedded/server/app/p/s/[name]/sessions/route_client-reference-manifest.js +1 -0
  324. package/dist/web/.next-embedded/server/app/p/s/[name]/try/page.js +1 -0
  325. package/dist/web/.next-embedded/server/app/p/s/[name]/try/page_client-reference-manifest.js +1 -0
  326. package/dist/web/.next-embedded/server/app/p/s/[name]/widget.js/route.js +156 -0
  327. package/dist/web/.next-embedded/server/app/p/s/[name]/widget.js/route_client-reference-manifest.js +1 -0
  328. package/dist/web/.next-embedded/server/app/setup/page.js +1 -0
  329. package/dist/web/.next-embedded/server/app/setup/page_client-reference-manifest.js +1 -0
  330. package/dist/web/.next-embedded/server/app/setup.html +1 -0
  331. package/dist/web/.next-embedded/server/app/setup.meta +26 -0
  332. package/dist/web/.next-embedded/server/app/setup.rsc +16 -0
  333. package/dist/web/.next-embedded/server/app/setup.segments/_full.segment.rsc +16 -0
  334. package/dist/web/.next-embedded/server/app/setup.segments/_tree.segment.rsc +2 -0
  335. package/dist/web/.next-embedded/server/app/setup.segments/setup/__PAGE__.segment.rsc +22 -0
  336. package/dist/web/.next-embedded/server/app/signin/page.js +2 -0
  337. package/dist/web/.next-embedded/server/app/signin/page_client-reference-manifest.js +1 -0
  338. package/dist/web/.next-embedded/server/app-paths-manifest.json +108 -0
  339. package/dist/web/.next-embedded/server/chunks/1117.js +1 -0
  340. package/dist/web/.next-embedded/server/chunks/1173.js +1 -0
  341. package/dist/web/.next-embedded/server/chunks/1190.js +1 -0
  342. package/dist/web/.next-embedded/server/chunks/121.js +1 -0
  343. package/dist/web/.next-embedded/server/chunks/1231.js +8 -0
  344. package/dist/web/.next-embedded/server/chunks/1252.js +1 -0
  345. package/dist/web/.next-embedded/server/chunks/1328.js +1 -0
  346. package/dist/web/.next-embedded/server/chunks/1503.js +1 -0
  347. package/dist/web/.next-embedded/server/chunks/1519.js +1 -0
  348. package/dist/web/.next-embedded/server/chunks/1610.js +1 -0
  349. package/dist/web/.next-embedded/server/chunks/1614.js +1 -0
  350. package/dist/web/.next-embedded/server/chunks/1794.js +1 -0
  351. package/dist/web/.next-embedded/server/chunks/1804.js +1 -0
  352. package/dist/web/.next-embedded/server/chunks/1924.js +1 -0
  353. package/dist/web/.next-embedded/server/chunks/1947.js +1 -0
  354. package/dist/web/.next-embedded/server/chunks/1998.js +1 -0
  355. package/dist/web/.next-embedded/server/chunks/2026.js +1 -0
  356. package/dist/web/.next-embedded/server/chunks/2030.js +39 -0
  357. package/dist/web/.next-embedded/server/chunks/2049.js +12 -0
  358. package/dist/web/.next-embedded/server/chunks/2192.js +1 -0
  359. package/dist/web/.next-embedded/server/chunks/2208.js +3 -0
  360. package/dist/web/.next-embedded/server/chunks/2239.js +1 -0
  361. package/dist/web/.next-embedded/server/chunks/2250.js +1 -0
  362. package/dist/web/.next-embedded/server/chunks/2294.js +1 -0
  363. package/dist/web/.next-embedded/server/chunks/2300.js +1 -0
  364. package/dist/web/.next-embedded/server/chunks/235.js +1 -0
  365. package/dist/web/.next-embedded/server/chunks/240.js +2 -0
  366. package/dist/web/.next-embedded/server/chunks/2400.js +1 -0
  367. package/dist/web/.next-embedded/server/chunks/2438.js +2 -0
  368. package/dist/web/.next-embedded/server/chunks/2448.js +1 -0
  369. package/dist/web/.next-embedded/server/chunks/2502.js +1 -0
  370. package/dist/web/.next-embedded/server/chunks/2580.js +1 -0
  371. package/dist/web/.next-embedded/server/chunks/2587.js +1 -0
  372. package/dist/web/.next-embedded/server/chunks/2610.js +1 -0
  373. package/dist/web/.next-embedded/server/chunks/2670.js +1 -0
  374. package/dist/web/.next-embedded/server/chunks/2780.js +165 -0
  375. package/dist/web/.next-embedded/server/chunks/2792.js +1 -0
  376. package/dist/web/.next-embedded/server/chunks/2857.js +1 -0
  377. package/dist/web/.next-embedded/server/chunks/2884.js +1 -0
  378. package/dist/web/.next-embedded/server/chunks/2895.js +19 -0
  379. package/dist/web/.next-embedded/server/chunks/2961.js +1 -0
  380. package/dist/web/.next-embedded/server/chunks/3171.js +1 -0
  381. package/dist/web/.next-embedded/server/chunks/3222.js +2 -0
  382. package/dist/web/.next-embedded/server/chunks/3351.js +1 -0
  383. package/dist/web/.next-embedded/server/chunks/3381.js +1 -0
  384. package/dist/web/.next-embedded/server/chunks/3520.js +8 -0
  385. package/dist/web/.next-embedded/server/chunks/364.js +1 -0
  386. package/dist/web/.next-embedded/server/chunks/411.js +1 -0
  387. package/dist/web/.next-embedded/server/chunks/4119.js +1 -0
  388. package/dist/web/.next-embedded/server/chunks/4128.js +1 -0
  389. package/dist/web/.next-embedded/server/chunks/4191.js +1 -0
  390. package/dist/web/.next-embedded/server/chunks/4200.js +1 -0
  391. package/dist/web/.next-embedded/server/chunks/434.js +1 -0
  392. package/dist/web/.next-embedded/server/chunks/4368.js +1 -0
  393. package/dist/web/.next-embedded/server/chunks/4463.js +1 -0
  394. package/dist/web/.next-embedded/server/chunks/4467.js +1 -0
  395. package/dist/web/.next-embedded/server/chunks/4543.js +8 -0
  396. package/dist/web/.next-embedded/server/chunks/468.js +1 -0
  397. package/dist/web/.next-embedded/server/chunks/4741.js +1 -0
  398. package/dist/web/.next-embedded/server/chunks/4755.js +1 -0
  399. package/dist/web/.next-embedded/server/chunks/4758.js +21 -0
  400. package/dist/web/.next-embedded/server/chunks/4870.js +1 -0
  401. package/dist/web/.next-embedded/server/chunks/4877.js +1 -0
  402. package/dist/web/.next-embedded/server/chunks/4888.js +1 -0
  403. package/dist/web/.next-embedded/server/chunks/491.js +1 -0
  404. package/dist/web/.next-embedded/server/chunks/4911.js +1 -0
  405. package/dist/web/.next-embedded/server/chunks/5036.js +27 -0
  406. package/dist/web/.next-embedded/server/chunks/5052.js +134 -0
  407. package/dist/web/.next-embedded/server/chunks/5057.js +55 -0
  408. package/dist/web/.next-embedded/server/chunks/5126.js +8 -0
  409. package/dist/web/.next-embedded/server/chunks/5133.js +1 -0
  410. package/dist/web/.next-embedded/server/chunks/5173.js +1 -0
  411. package/dist/web/.next-embedded/server/chunks/5225.js +2 -0
  412. package/dist/web/.next-embedded/server/chunks/5277.js +324 -0
  413. package/dist/web/.next-embedded/server/chunks/5398.js +1 -0
  414. package/dist/web/.next-embedded/server/chunks/5568.js +1 -0
  415. package/dist/web/.next-embedded/server/chunks/5576.js +1 -0
  416. package/dist/web/.next-embedded/server/chunks/5634.js +19 -0
  417. package/dist/web/.next-embedded/server/chunks/5645.js +1 -0
  418. package/dist/web/.next-embedded/server/chunks/5684.js +5 -0
  419. package/dist/web/.next-embedded/server/chunks/5699.js +1 -0
  420. package/dist/web/.next-embedded/server/chunks/57.js +2 -0
  421. package/dist/web/.next-embedded/server/chunks/5734.js +1 -0
  422. package/dist/web/.next-embedded/server/chunks/5787.js +1 -0
  423. package/dist/web/.next-embedded/server/chunks/5796.js +1 -0
  424. package/dist/web/.next-embedded/server/chunks/5933.js +1 -0
  425. package/dist/web/.next-embedded/server/chunks/5945.js +1 -0
  426. package/dist/web/.next-embedded/server/chunks/5961.js +1 -0
  427. package/dist/web/.next-embedded/server/chunks/6445.js +55 -0
  428. package/dist/web/.next-embedded/server/chunks/6511.js +18 -0
  429. package/dist/web/.next-embedded/server/chunks/6518.js +1 -0
  430. package/dist/web/.next-embedded/server/chunks/6572.js +1 -0
  431. package/dist/web/.next-embedded/server/chunks/6672.js +2 -0
  432. package/dist/web/.next-embedded/server/chunks/6773.js +1 -0
  433. package/dist/web/.next-embedded/server/chunks/6821.js +1 -0
  434. package/dist/web/.next-embedded/server/chunks/6926.js +1 -0
  435. package/dist/web/.next-embedded/server/chunks/7090.js +25 -0
  436. package/dist/web/.next-embedded/server/chunks/7206.js +1 -0
  437. package/dist/web/.next-embedded/server/chunks/7269.js +1 -0
  438. package/dist/web/.next-embedded/server/chunks/7380.js +1 -0
  439. package/dist/web/.next-embedded/server/chunks/7395.js +1 -0
  440. package/dist/web/.next-embedded/server/chunks/7466.js +1 -0
  441. package/dist/web/.next-embedded/server/chunks/7571.js +1 -0
  442. package/dist/web/.next-embedded/server/chunks/769.js +1 -0
  443. package/dist/web/.next-embedded/server/chunks/784.js +1 -0
  444. package/dist/web/.next-embedded/server/chunks/7861.js +1 -0
  445. package/dist/web/.next-embedded/server/chunks/7944.js +1 -0
  446. package/dist/web/.next-embedded/server/chunks/8020.js +1 -0
  447. package/dist/web/.next-embedded/server/chunks/8061.js +2 -0
  448. package/dist/web/.next-embedded/server/chunks/822.js +1 -0
  449. package/dist/web/.next-embedded/server/chunks/8302.js +1 -0
  450. package/dist/web/.next-embedded/server/chunks/8336.js +1 -0
  451. package/dist/web/.next-embedded/server/chunks/8376.js +1 -0
  452. package/dist/web/.next-embedded/server/chunks/841.js +2 -0
  453. package/dist/web/.next-embedded/server/chunks/8430.js +1 -0
  454. package/dist/web/.next-embedded/server/chunks/8563.js +2 -0
  455. package/dist/web/.next-embedded/server/chunks/8576.js +193 -0
  456. package/dist/web/.next-embedded/server/chunks/8656.js +1 -0
  457. package/dist/web/.next-embedded/server/chunks/8726.js +1 -0
  458. package/dist/web/.next-embedded/server/chunks/8935.js +1 -0
  459. package/dist/web/.next-embedded/server/chunks/9260.js +1 -0
  460. package/dist/web/.next-embedded/server/chunks/9314.js +1 -0
  461. package/dist/web/.next-embedded/server/chunks/9332.js +1 -0
  462. package/dist/web/.next-embedded/server/chunks/9380.js +13 -0
  463. package/dist/web/.next-embedded/server/chunks/951.js +2 -0
  464. package/dist/web/.next-embedded/server/chunks/9537.js +1 -0
  465. package/dist/web/.next-embedded/server/chunks/9840.js +1 -0
  466. package/dist/web/.next-embedded/server/chunks/9913.js +1 -0
  467. package/dist/web/.next-embedded/server/functions-config-manifest.json +97 -0
  468. package/dist/web/.next-embedded/server/instrumentation.js +1 -0
  469. package/dist/web/.next-embedded/server/interception-route-rewrite-manifest.js +1 -0
  470. package/dist/web/.next-embedded/server/middleware-build-manifest.js +1 -0
  471. package/dist/web/.next-embedded/server/middleware-manifest.json +6 -0
  472. package/dist/web/.next-embedded/server/middleware-react-loadable-manifest.js +1 -0
  473. package/dist/web/.next-embedded/server/middleware.js +217 -0
  474. package/dist/web/.next-embedded/server/next-font-manifest.js +1 -0
  475. package/dist/web/.next-embedded/server/next-font-manifest.json +1 -0
  476. package/dist/web/.next-embedded/server/pages/404.html +1 -0
  477. package/dist/web/.next-embedded/server/pages/500.html +1 -0
  478. package/dist/web/.next-embedded/server/pages-manifest.json +4 -0
  479. package/dist/web/.next-embedded/server/prefetch-hints.json +44 -0
  480. package/dist/web/.next-embedded/server/server-reference-manifest.js +1 -0
  481. package/dist/web/.next-embedded/server/server-reference-manifest.json +1 -0
  482. package/dist/web/.next-embedded/server/webpack-runtime.js +1 -0
  483. package/dist/web/.next-embedded/static/DkxmcmiDAUutpm9e7G9xn/_buildManifest.js +1 -0
  484. package/dist/web/.next-embedded/static/DkxmcmiDAUutpm9e7G9xn/_ssgManifest.js +1 -0
  485. package/dist/web/.next-embedded/static/chunks/1000-501917027865ec48.js +52 -0
  486. package/dist/web/.next-embedded/static/chunks/1435-55acf1390b3a2da1.js +1 -0
  487. package/dist/web/.next-embedded/static/chunks/2349-3254a65053329135.js +1 -0
  488. package/dist/web/.next-embedded/static/chunks/2378-4ca744bf47c3dabb.js +1 -0
  489. package/dist/web/.next-embedded/static/chunks/2685-42c2a4f17fb6adb1.js +18 -0
  490. package/dist/web/.next-embedded/static/chunks/5633-9a07d4830813ece7.js +1 -0
  491. package/dist/web/.next-embedded/static/chunks/6365-04af34ae5b1497e3.js +1 -0
  492. package/dist/web/.next-embedded/static/chunks/6482-ecc9c62a178ba724.js +1 -0
  493. package/dist/web/.next-embedded/static/chunks/7413-3a721e7c495f89fb.js +55 -0
  494. package/dist/web/.next-embedded/static/chunks/9595-fea797909cd07d91.js +1 -0
  495. package/dist/web/.next-embedded/static/chunks/app/(shell)/admin/api-keys/page-5fe6d7717b0565f1.js +1 -0
  496. package/dist/web/.next-embedded/static/chunks/app/(shell)/admin/models/new/page-875800e6afa2dac3.js +1 -0
  497. package/dist/web/.next-embedded/static/chunks/app/(shell)/admin/models/page-7c39ee3c51034f12.js +1 -0
  498. package/dist/web/.next-embedded/static/chunks/app/(shell)/admin/runtimes/page-d51caeefc8b5ed98.js +1 -0
  499. package/dist/web/.next-embedded/static/chunks/app/(shell)/admin/settings/page-7f1874c14b33856a.js +1 -0
  500. package/dist/web/.next-embedded/static/chunks/app/(shell)/admin/shares/page-c194edfd7701dc77.js +1 -0
  501. package/dist/web/.next-embedded/static/chunks/app/(shell)/admin/users/page-463489ca2ebf664f.js +1 -0
  502. package/dist/web/.next-embedded/static/chunks/app/(shell)/agents/[id]/page-febe3b0582c996ae.js +1 -0
  503. package/dist/web/.next-embedded/static/chunks/app/(shell)/agents/new/page-a5ba72c5bc40b6e1.js +1 -0
  504. package/dist/web/.next-embedded/static/chunks/app/(shell)/agents/page-89d6af2961318db8.js +1 -0
  505. package/dist/web/.next-embedded/static/chunks/app/(shell)/connectors/new/page-b7ab59a7697ce004.js +1 -0
  506. package/dist/web/.next-embedded/static/chunks/app/(shell)/connectors/page-be6a19d14cc78f0f.js +1 -0
  507. package/dist/web/.next-embedded/static/chunks/app/(shell)/files/page-63febed6b4433238.js +1 -0
  508. package/dist/web/.next-embedded/static/chunks/app/(shell)/layout-4667e8f589776bbe.js +1 -0
  509. package/dist/web/.next-embedded/static/chunks/app/(shell)/page-2cd836e518729ee6.js +1 -0
  510. package/dist/web/.next-embedded/static/chunks/app/(shell)/projects/[id]/page-e6bc2217623b8939.js +1 -0
  511. package/dist/web/.next-embedded/static/chunks/app/(shell)/projects/page-3db56f853165c53c.js +1 -0
  512. package/dist/web/.next-embedded/static/chunks/app/(shell)/runs/page-fe28919e456c3966.js +1 -0
  513. package/dist/web/.next-embedded/static/chunks/app/(shell)/skills/[name]/page-69390975e9417783.js +1 -0
  514. package/dist/web/.next-embedded/static/chunks/app/(shell)/skills/page-1e756149864de860.js +1 -0
  515. package/dist/web/.next-embedded/static/chunks/app/(shell)/workspaces/page-47afb61daed3bbb2.js +1 -0
  516. package/dist/web/.next-embedded/static/chunks/app/_global-error/page-259206b8559c1c4b.js +1 -0
  517. package/dist/web/.next-embedded/static/chunks/app/_not-found/page-1e20f0faf42b5dab.js +1 -0
  518. package/dist/web/.next-embedded/static/chunks/app/api/agents/[id]/evaluations/route-259206b8559c1c4b.js +1 -0
  519. package/dist/web/.next-embedded/static/chunks/app/api/agents/[id]/feedback/route-259206b8559c1c4b.js +1 -0
  520. package/dist/web/.next-embedded/static/chunks/app/api/agents/[id]/grants/route-259206b8559c1c4b.js +1 -0
  521. package/dist/web/.next-embedded/static/chunks/app/api/agents/[id]/pointers/route-259206b8559c1c4b.js +1 -0
  522. package/dist/web/.next-embedded/static/chunks/app/api/agents/[id]/policy/route-259206b8559c1c4b.js +1 -0
  523. package/dist/web/.next-embedded/static/chunks/app/api/agents/[id]/promote/route-259206b8559c1c4b.js +1 -0
  524. package/dist/web/.next-embedded/static/chunks/app/api/agents/[id]/resources/route-259206b8559c1c4b.js +1 -0
  525. package/dist/web/.next-embedded/static/chunks/app/api/agents/[id]/rollback/route-259206b8559c1c4b.js +1 -0
  526. package/dist/web/.next-embedded/static/chunks/app/api/agents/[id]/route-259206b8559c1c4b.js +1 -0
  527. package/dist/web/.next-embedded/static/chunks/app/api/agents/[id]/runs/route-259206b8559c1c4b.js +1 -0
  528. package/dist/web/.next-embedded/static/chunks/app/api/agents/[id]/versions/route-259206b8559c1c4b.js +1 -0
  529. package/dist/web/.next-embedded/static/chunks/app/api/agents/route-259206b8559c1c4b.js +1 -0
  530. package/dist/web/.next-embedded/static/chunks/app/api/api-keys/[id]/route-259206b8559c1c4b.js +1 -0
  531. package/dist/web/.next-embedded/static/chunks/app/api/api-keys/route-259206b8559c1c4b.js +1 -0
  532. package/dist/web/.next-embedded/static/chunks/app/api/audit-events/route-259206b8559c1c4b.js +1 -0
  533. package/dist/web/.next-embedded/static/chunks/app/api/auth/callback/route-259206b8559c1c4b.js +1 -0
  534. package/dist/web/.next-embedded/static/chunks/app/api/auth/cli-device/route-259206b8559c1c4b.js +1 -0
  535. package/dist/web/.next-embedded/static/chunks/app/api/auth/cli-token/route-259206b8559c1c4b.js +1 -0
  536. package/dist/web/.next-embedded/static/chunks/app/api/auth/cli-verify/route-259206b8559c1c4b.js +1 -0
  537. package/dist/web/.next-embedded/static/chunks/app/api/auth/cli-workspace/route-259206b8559c1c4b.js +1 -0
  538. package/dist/web/.next-embedded/static/chunks/app/api/auth/login/route-259206b8559c1c4b.js +1 -0
  539. package/dist/web/.next-embedded/static/chunks/app/api/auth/workspace/route-259206b8559c1c4b.js +1 -0
  540. package/dist/web/.next-embedded/static/chunks/app/api/connectors/[id]/route-259206b8559c1c4b.js +1 -0
  541. package/dist/web/.next-embedded/static/chunks/app/api/connectors/[id]/test-connection/route-259206b8559c1c4b.js +1 -0
  542. package/dist/web/.next-embedded/static/chunks/app/api/connectors/route-259206b8559c1c4b.js +1 -0
  543. package/dist/web/.next-embedded/static/chunks/app/api/engines/route-259206b8559c1c4b.js +1 -0
  544. package/dist/web/.next-embedded/static/chunks/app/api/files/[id]/route-259206b8559c1c4b.js +1 -0
  545. package/dist/web/.next-embedded/static/chunks/app/api/files/route-259206b8559c1c4b.js +1 -0
  546. package/dist/web/.next-embedded/static/chunks/app/api/invitations/[id]/accept/route-259206b8559c1c4b.js +1 -0
  547. package/dist/web/.next-embedded/static/chunks/app/api/invitations/[id]/resend/route-259206b8559c1c4b.js +1 -0
  548. package/dist/web/.next-embedded/static/chunks/app/api/invitations/[id]/route-259206b8559c1c4b.js +1 -0
  549. package/dist/web/.next-embedded/static/chunks/app/api/invitations/route-259206b8559c1c4b.js +1 -0
  550. package/dist/web/.next-embedded/static/chunks/app/api/me/route-259206b8559c1c4b.js +1 -0
  551. package/dist/web/.next-embedded/static/chunks/app/api/memberships/[id]/route-259206b8559c1c4b.js +1 -0
  552. package/dist/web/.next-embedded/static/chunks/app/api/memberships/route-259206b8559c1c4b.js +1 -0
  553. package/dist/web/.next-embedded/static/chunks/app/api/metrics/route-259206b8559c1c4b.js +1 -0
  554. package/dist/web/.next-embedded/static/chunks/app/api/model-connections/[id]/credential/route-259206b8559c1c4b.js +1 -0
  555. package/dist/web/.next-embedded/static/chunks/app/api/model-connections/[id]/route-259206b8559c1c4b.js +1 -0
  556. package/dist/web/.next-embedded/static/chunks/app/api/model-connections/[id]/test/route-259206b8559c1c4b.js +1 -0
  557. package/dist/web/.next-embedded/static/chunks/app/api/model-connections/route-259206b8559c1c4b.js +1 -0
  558. package/dist/web/.next-embedded/static/chunks/app/api/models/route-259206b8559c1c4b.js +1 -0
  559. package/dist/web/.next-embedded/static/chunks/app/api/projects/[id]/archive/route-259206b8559c1c4b.js +1 -0
  560. package/dist/web/.next-embedded/static/chunks/app/api/projects/[id]/restore/route-259206b8559c1c4b.js +1 -0
  561. package/dist/web/.next-embedded/static/chunks/app/api/projects/[id]/route-259206b8559c1c4b.js +1 -0
  562. package/dist/web/.next-embedded/static/chunks/app/api/projects/[id]/sessions/route-259206b8559c1c4b.js +1 -0
  563. package/dist/web/.next-embedded/static/chunks/app/api/projects/route-259206b8559c1c4b.js +1 -0
  564. package/dist/web/.next-embedded/static/chunks/app/api/runs/[id]/events/route-259206b8559c1c4b.js +1 -0
  565. package/dist/web/.next-embedded/static/chunks/app/api/runs/[id]/feedback/route-259206b8559c1c4b.js +1 -0
  566. package/dist/web/.next-embedded/static/chunks/app/api/runs/[id]/interrupt/route-259206b8559c1c4b.js +1 -0
  567. package/dist/web/.next-embedded/static/chunks/app/api/runs/[id]/revoke-tokens/route-259206b8559c1c4b.js +1 -0
  568. package/dist/web/.next-embedded/static/chunks/app/api/runs/[id]/route-259206b8559c1c4b.js +1 -0
  569. package/dist/web/.next-embedded/static/chunks/app/api/runs/route-259206b8559c1c4b.js +1 -0
  570. package/dist/web/.next-embedded/static/chunks/app/api/runtime-connections/route-259206b8559c1c4b.js +1 -0
  571. package/dist/web/.next-embedded/static/chunks/app/api/runtime-profiles/[id]/route-259206b8559c1c4b.js +1 -0
  572. package/dist/web/.next-embedded/static/chunks/app/api/runtime-profiles/route-259206b8559c1c4b.js +1 -0
  573. package/dist/web/.next-embedded/static/chunks/app/api/runtimes/[id]/route-259206b8559c1c4b.js +1 -0
  574. package/dist/web/.next-embedded/static/chunks/app/api/secrets/[id]/route-259206b8559c1c4b.js +1 -0
  575. package/dist/web/.next-embedded/static/chunks/app/api/secrets/route-259206b8559c1c4b.js +1 -0
  576. package/dist/web/.next-embedded/static/chunks/app/api/sessions/[engineSessionId]/route-259206b8559c1c4b.js +1 -0
  577. package/dist/web/.next-embedded/static/chunks/app/api/sessions/[engineSessionId]/state-blobs/route-259206b8559c1c4b.js +1 -0
  578. package/dist/web/.next-embedded/static/chunks/app/api/sessions/[engineSessionId]/state-entries/route-259206b8559c1c4b.js +1 -0
  579. package/dist/web/.next-embedded/static/chunks/app/api/sessions/[engineSessionId]/state-streams/route-259206b8559c1c4b.js +1 -0
  580. package/dist/web/.next-embedded/static/chunks/app/api/sessions/[engineSessionId]/subkeys/route-259206b8559c1c4b.js +1 -0
  581. package/dist/web/.next-embedded/static/chunks/app/api/sessions/[engineSessionId]/transcript/route-259206b8559c1c4b.js +1 -0
  582. package/dist/web/.next-embedded/static/chunks/app/api/sessions/route-259206b8559c1c4b.js +1 -0
  583. package/dist/web/.next-embedded/static/chunks/app/api/setup/route-259206b8559c1c4b.js +1 -0
  584. package/dist/web/.next-embedded/static/chunks/app/api/setup/runtime-detect/route-259206b8559c1c4b.js +1 -0
  585. package/dist/web/.next-embedded/static/chunks/app/api/shares/[id]/route-259206b8559c1c4b.js +1 -0
  586. package/dist/web/.next-embedded/static/chunks/app/api/shares/route-259206b8559c1c4b.js +1 -0
  587. package/dist/web/.next-embedded/static/chunks/app/api/sharing-policies/route-259206b8559c1c4b.js +1 -0
  588. package/dist/web/.next-embedded/static/chunks/app/api/skills/[name]/route-259206b8559c1c4b.js +1 -0
  589. package/dist/web/.next-embedded/static/chunks/app/api/skills/route-259206b8559c1c4b.js +1 -0
  590. package/dist/web/.next-embedded/static/chunks/app/api/tokens/route-259206b8559c1c4b.js +1 -0
  591. package/dist/web/.next-embedded/static/chunks/app/api/users/route-259206b8559c1c4b.js +1 -0
  592. package/dist/web/.next-embedded/static/chunks/app/api/workspaces/[id]/route-259206b8559c1c4b.js +1 -0
  593. package/dist/web/.next-embedded/static/chunks/app/api/workspaces/route-259206b8559c1c4b.js +1 -0
  594. package/dist/web/.next-embedded/static/chunks/app/layout-2f33ac5af1408328.js +1 -0
  595. package/dist/web/.next-embedded/static/chunks/app/p/[token]/layout-259206b8559c1c4b.js +1 -0
  596. package/dist/web/.next-embedded/static/chunks/app/p/[token]/messages/route-259206b8559c1c4b.js +1 -0
  597. package/dist/web/.next-embedded/static/chunks/app/p/[token]/page-6cd5f2bd228d80dc.js +1 -0
  598. package/dist/web/.next-embedded/static/chunks/app/p/s/[name]/page-3bbe19f3f8fa0cd8.js +1 -0
  599. package/dist/web/.next-embedded/static/chunks/app/p/s/[name]/sessions/route-259206b8559c1c4b.js +1 -0
  600. package/dist/web/.next-embedded/static/chunks/app/p/s/[name]/try/layout-259206b8559c1c4b.js +1 -0
  601. package/dist/web/.next-embedded/static/chunks/app/p/s/[name]/try/page-259206b8559c1c4b.js +1 -0
  602. package/dist/web/.next-embedded/static/chunks/app/p/s/[name]/widget.js/route-259206b8559c1c4b.js +1 -0
  603. package/dist/web/.next-embedded/static/chunks/app/setup/page-1ffa2012b2226832.js +1 -0
  604. package/dist/web/.next-embedded/static/chunks/app/signin/layout-259206b8559c1c4b.js +1 -0
  605. package/dist/web/.next-embedded/static/chunks/app/signin/page-259206b8559c1c4b.js +1 -0
  606. package/dist/web/.next-embedded/static/chunks/b7e071c5-1178abcc3dcc97b7.js +1 -0
  607. package/dist/web/.next-embedded/static/chunks/framework-bd8f371b90cbf524.js +1 -0
  608. package/dist/web/.next-embedded/static/chunks/main-5f1d9db627247614.js +5 -0
  609. package/dist/web/.next-embedded/static/chunks/main-app-736eb94d950bf794.js +1 -0
  610. package/dist/web/.next-embedded/static/chunks/next/dist/client/components/builtin/app-error-259206b8559c1c4b.js +1 -0
  611. package/dist/web/.next-embedded/static/chunks/next/dist/client/components/builtin/forbidden-259206b8559c1c4b.js +1 -0
  612. package/dist/web/.next-embedded/static/chunks/next/dist/client/components/builtin/global-error-bcd4657bc775688d.js +1 -0
  613. package/dist/web/.next-embedded/static/chunks/next/dist/client/components/builtin/not-found-259206b8559c1c4b.js +1 -0
  614. package/dist/web/.next-embedded/static/chunks/next/dist/client/components/builtin/unauthorized-259206b8559c1c4b.js +1 -0
  615. package/dist/web/.next-embedded/static/chunks/polyfills-42372ed130431b0a.js +1 -0
  616. package/dist/web/.next-embedded/static/chunks/webpack-e654bfe3f030a510.js +1 -0
  617. package/dist/web/.next-embedded/static/css/85d72f669bcd1172.css +1 -0
  618. package/dist/web/next.config.mjs +1 -0
  619. package/package.json +51 -3
@@ -0,0 +1,50 @@
1
+ -- ADR-0065 gives the harness that runs an agent loop its own name, `engine`, because `provider`
2
+ -- already means the *model* provider on `runs` and on `model_connections`. Migration 0024 renamed
3
+ -- `sessions.claude_session_id` to `sessions.engine_session_id` and added `sessions.engine`,
4
+ -- `runs.engine` and `runs.engine_version`. This migration moves the data that the rename leaves
5
+ -- behind — the discriminant inside the `agents.policy` JSON document, which no `ALTER TABLE` can
6
+ -- reach — and backfills the engine of every session that already has an identity.
7
+ --
8
+ -- Every statement is idempotent and order-independent with respect to the rows it does not touch,
9
+ -- so re-running the migration set against a partially migrated database is safe.
10
+ --
11
+ -- `runs.engine` is deliberately NOT backfilled. A historic run row never recorded which engine
12
+ -- executed it, and writing `claude-agent-sdk` onto it would make a guess indistinguishable from a
13
+ -- measurement — the same false-zero mistake `runs.accounting_state` exists to avoid (issue #134).
14
+ -- `NULL` reads as "this run predates the column", which is the truth. Stated here so a later reader
15
+ -- does not take the omission for an oversight.
16
+
17
+ -- `agents.policy` is a jsonb document whose discriminant was `provider`. Rewrite the key in place:
18
+ -- `- 'provider'` removes the old key and `|| jsonb_build_object(...)` adds the new one, carrying the
19
+ -- value across rather than assuming it. Only `claude-agent-sdk` was ever storable there — the
20
+ -- column has always been written through `AgentPolicySchema` — so the value needs no mapping table.
21
+ --
22
+ -- A row that already carries `engine` is left alone, which is what makes this re-runnable. A row
23
+ -- carrying NEITHER key is not a policy this schema ever wrote and is left for a reader to find,
24
+ -- rather than being given an invented engine.
25
+ UPDATE "agents"
26
+ SET "policy" = ("policy" - 'provider') || jsonb_build_object('engine', "policy" ->> 'provider')
27
+ WHERE "policy" IS NOT NULL
28
+ AND "policy" ? 'provider'
29
+ AND NOT ("policy" ? 'engine');
30
+ --> statement-breakpoint
31
+ -- Every session that already has an engine session id got it from the only engine this platform
32
+ -- has ever run, so its engine is known rather than guessed. A session with no identity yet is left
33
+ -- NULL: nothing has pinned it, and #318 is what pins it at first run.
34
+ --
35
+ -- This is the statement that makes the release's invariant hold:
36
+ -- select count(*) from sessions where engine is null and engine_session_id is not null -- 0
37
+ UPDATE "sessions"
38
+ SET "engine" = 'claude-agent-sdk'
39
+ WHERE "engine" IS NULL
40
+ AND "engine_session_id" IS NOT NULL;
41
+ --> statement-breakpoint
42
+ -- Migration 0024 added both engine CHECK constraints `NOT VALID`, and this migration validates
43
+ -- them. That split does NOT buy a weaker lock or a shorter cutover: drizzle's `migrate()` applies
44
+ -- every pending migration in one transaction, so 0024's ACCESS EXCLUSIVE locks are still held
45
+ -- while these scans run. What it buys is control over where the scan happens — here, after the
46
+ -- backfill above, so it checks the rows this migration wrote — and re-runnability: `VALIDATE` on
47
+ -- an already-validated constraint is a no-op (ADR-0069).
48
+ ALTER TABLE "runs" VALIDATE CONSTRAINT "runs_engine_valid";
49
+ --> statement-breakpoint
50
+ ALTER TABLE "sessions" VALIDATE CONSTRAINT "sessions_engine_valid";
@@ -0,0 +1,47 @@
1
+ CREATE TABLE "session_state_blobs" (
2
+ "workspace_id" uuid NOT NULL,
3
+ "session_id" uuid NOT NULL,
4
+ "engine" text NOT NULL,
5
+ "blob_key" text NOT NULL,
6
+ "storage_key" text NOT NULL,
7
+ "size_bytes" bigint NOT NULL,
8
+ "sha256" text NOT NULL,
9
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
10
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL,
11
+ CONSTRAINT "session_state_blobs_pkey" PRIMARY KEY("workspace_id","session_id","engine","blob_key"),
12
+ CONSTRAINT "session_state_blobs_engine_valid" CHECK ("session_state_blobs"."engine" in ('claude-agent-sdk'))
13
+ );
14
+ --> statement-breakpoint
15
+ CREATE TABLE "session_state_entries" (
16
+ "workspace_id" uuid NOT NULL,
17
+ "session_id" uuid NOT NULL,
18
+ "engine" text NOT NULL,
19
+ "stream_key" text NOT NULL,
20
+ "sequence" bigint NOT NULL,
21
+ "entry_key" text,
22
+ "entry" jsonb NOT NULL,
23
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
24
+ CONSTRAINT "session_state_entries_pkey" PRIMARY KEY("workspace_id","session_id","engine","stream_key","sequence"),
25
+ CONSTRAINT "session_state_entries_engine_valid" CHECK ("session_state_entries"."engine" in ('claude-agent-sdk'))
26
+ );
27
+ --> statement-breakpoint
28
+ CREATE TABLE "session_state_streams" (
29
+ "workspace_id" uuid NOT NULL,
30
+ "session_id" uuid NOT NULL,
31
+ "engine" text NOT NULL,
32
+ "stream_key" text NOT NULL,
33
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
34
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL,
35
+ CONSTRAINT "session_state_streams_pkey" PRIMARY KEY("workspace_id","session_id","engine","stream_key"),
36
+ CONSTRAINT "session_state_streams_engine_valid" CHECK ("session_state_streams"."engine" in ('claude-agent-sdk'))
37
+ );
38
+ --> statement-breakpoint
39
+ ALTER TABLE "session_state_blobs" ADD CONSTRAINT "session_state_blobs_workspace_id_workspaces_id_fk" FOREIGN KEY ("workspace_id") REFERENCES "public"."workspaces"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
40
+ ALTER TABLE "session_state_blobs" ADD CONSTRAINT "session_state_blobs_session_workspace_fk" FOREIGN KEY ("session_id","workspace_id") REFERENCES "public"."sessions"("id","workspace_id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
41
+ ALTER TABLE "session_state_entries" ADD CONSTRAINT "session_state_entries_workspace_id_workspaces_id_fk" FOREIGN KEY ("workspace_id") REFERENCES "public"."workspaces"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
42
+ ALTER TABLE "session_state_entries" ADD CONSTRAINT "session_state_entries_stream_fk" FOREIGN KEY ("workspace_id","session_id","engine","stream_key") REFERENCES "public"."session_state_streams"("workspace_id","session_id","engine","stream_key") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
43
+ ALTER TABLE "session_state_streams" ADD CONSTRAINT "session_state_streams_workspace_id_workspaces_id_fk" FOREIGN KEY ("workspace_id") REFERENCES "public"."workspaces"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
44
+ ALTER TABLE "session_state_streams" ADD CONSTRAINT "session_state_streams_session_workspace_fk" FOREIGN KEY ("session_id","workspace_id") REFERENCES "public"."sessions"("id","workspace_id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
45
+ CREATE INDEX "session_state_blobs_workspace_updated_idx" ON "session_state_blobs" USING btree ("workspace_id","updated_at");--> statement-breakpoint
46
+ CREATE UNIQUE INDEX "session_state_entries_key_unique" ON "session_state_entries" USING btree ("workspace_id","session_id","engine","stream_key","entry_key");--> statement-breakpoint
47
+ CREATE INDEX "session_state_streams_workspace_updated_idx" ON "session_state_streams" USING btree ("workspace_id","updated_at");
@@ -0,0 +1,66 @@
1
+ -- ENG-06 (#305): move every existing Claude transcript into the engine-scoped session store that
2
+ -- migration 0026 created, so a session that existed before the upgrade resumes after it with its
3
+ -- full history. ADR-0071 records the shape; this file is the data half of it.
4
+ --
5
+ -- **A single-revision cutover** (ADR-0071, in the sense of `docs/adr/0069-*`). The schema is
6
+ -- additive — `session_transcripts` and `session_messages` are left exactly as they are — but this
7
+ -- copy is ONE-SHOT: it moves what the legacy tables hold when `migrate` runs, and nothing copies
8
+ -- anything after that. A previous-release revision still serving during a rolling update keeps
9
+ -- appending to the legacy tables, and those turns would be missing from every later resume. So the
10
+ -- old revision is drained, or scaled to zero, before the new one starts and migrates; rollback is
11
+ -- restoring the pre-upgrade backup. Every `docs/deploy/*` guide carries the step. Removing the old
12
+ -- pair is the contract half, and it is a later unit's work, not this one's.
13
+ --
14
+ -- Every statement is idempotent: re-running the migration set against a partially migrated
15
+ -- database inserts nothing a previous run already inserted, so a retry is safe.
16
+ --
17
+ -- `session_transcripts.session_id` holds the id the ENGINE reported, and for a Claude session that
18
+ -- is the platform's own `sessions.id` — the platform passes `sessions.id` as `Options.sessionId`,
19
+ -- which is also why `session_transcripts_session_workspace_fk` has always held. The new tables key
20
+ -- on `sessions.id` deliberately (no other engine promises the two are equal), so the copy carries
21
+ -- `session_id` across unchanged and the existing foreign key is the evidence that it resolves.
22
+
23
+ -- One stream per old transcript key. `stream_key` is `project_key || '/' || subpath`, which is the
24
+ -- Claude adapter's own key rendered into the one field the platform promises not to interpret —
25
+ -- the main transcript's `subpath` is the empty string, so its stream key ends in a bare `/`.
26
+ INSERT INTO "session_state_streams" ("workspace_id", "session_id", "engine", "stream_key", "created_at", "updated_at")
27
+ SELECT "workspace_id", "session_id", 'claude-agent-sdk', "project_key" || '/' || "subpath", "created_at", "updated_at"
28
+ FROM "session_transcripts"
29
+ ON CONFLICT DO NOTHING;
30
+ --> statement-breakpoint
31
+ -- The entries, folded the way `load()` already folded them.
32
+ --
33
+ -- `session_messages` is append-only: a redelivered entry got a NEW `sequence` and kept its
34
+ -- `position`, and a read folded the LATEST delivery into the FIRST position. The new store holds one
35
+ -- row per entry instead, so the fold happens here, once, rather than on every read:
36
+ --
37
+ -- * `latest` picks the highest-`sequence` delivery of each `position` — the entry as the last
38
+ -- delivery left it, which is exactly what `load()` returned;
39
+ -- * `dense_rank()` over `position` renumbers the survivors from 1 with no gaps, because the new
40
+ -- store's `sequence` is dense within a stream and `replace-all`/`delete-last` depend on it;
41
+ -- * `entry_uuid` becomes `entry_key`, NULL and all: an entry the SDK gave no uuid has no
42
+ -- identity to dedup on (R-01 §7), and inventing one here would be an idempotency claim about
43
+ -- an entry that has none.
44
+ --
45
+ -- ORDER BY inside `dense_rank()` is `position` alone: `position` is a first-delivery sequence, so it
46
+ -- is already unique per key and already the order `load()` produced.
47
+ INSERT INTO "session_state_entries" ("workspace_id", "session_id", "engine", "stream_key", "sequence", "entry_key", "entry", "created_at")
48
+ SELECT
49
+ "latest"."workspace_id",
50
+ "latest"."session_id",
51
+ 'claude-agent-sdk',
52
+ "latest"."project_key" || '/' || "latest"."subpath",
53
+ dense_rank() OVER (
54
+ PARTITION BY "latest"."workspace_id", "latest"."session_id", "latest"."project_key", "latest"."subpath"
55
+ ORDER BY "latest"."position"
56
+ ),
57
+ "latest"."entry_uuid",
58
+ "latest"."entry",
59
+ "latest"."created_at"
60
+ FROM (
61
+ SELECT DISTINCT ON ("workspace_id", "project_key", "session_id", "subpath", "position")
62
+ "workspace_id", "project_key", "session_id", "subpath", "position", "entry_uuid", "entry", "created_at"
63
+ FROM "session_messages"
64
+ ORDER BY "workspace_id", "project_key", "session_id", "subpath", "position", "sequence" DESC
65
+ ) AS "latest"
66
+ ON CONFLICT DO NOTHING;
@@ -0,0 +1,14 @@
1
+ -- ENG-09 (#308, ADR-0074): `openai-agents` joins `claude-agent-sdk` in every engine CHECK.
2
+ -- Additive: each constraint is widened, never narrowed, and a revision from the previous release
3
+ -- only ever writes `claude-agent-sdk`, which both the old and the new constraint admit — so no
4
+ -- single-revision cutover is needed (ADR-0069's rule applies to incompatible changes).
5
+ ALTER TABLE "runs" DROP CONSTRAINT "runs_engine_valid";--> statement-breakpoint
6
+ ALTER TABLE "session_state_blobs" DROP CONSTRAINT "session_state_blobs_engine_valid";--> statement-breakpoint
7
+ ALTER TABLE "session_state_entries" DROP CONSTRAINT "session_state_entries_engine_valid";--> statement-breakpoint
8
+ ALTER TABLE "session_state_streams" DROP CONSTRAINT "session_state_streams_engine_valid";--> statement-breakpoint
9
+ ALTER TABLE "sessions" DROP CONSTRAINT "sessions_engine_valid";--> statement-breakpoint
10
+ ALTER TABLE "runs" ADD CONSTRAINT "runs_engine_valid" CHECK ("runs"."engine" in ('claude-agent-sdk', 'openai-agents'));--> statement-breakpoint
11
+ ALTER TABLE "session_state_blobs" ADD CONSTRAINT "session_state_blobs_engine_valid" CHECK ("session_state_blobs"."engine" in ('claude-agent-sdk', 'openai-agents'));--> statement-breakpoint
12
+ ALTER TABLE "session_state_entries" ADD CONSTRAINT "session_state_entries_engine_valid" CHECK ("session_state_entries"."engine" in ('claude-agent-sdk', 'openai-agents'));--> statement-breakpoint
13
+ ALTER TABLE "session_state_streams" ADD CONSTRAINT "session_state_streams_engine_valid" CHECK ("session_state_streams"."engine" in ('claude-agent-sdk', 'openai-agents'));--> statement-breakpoint
14
+ ALTER TABLE "sessions" ADD CONSTRAINT "sessions_engine_valid" CHECK ("sessions"."engine" in ('claude-agent-sdk', 'openai-agents'));
@@ -0,0 +1,14 @@
1
+ -- ENG-08 (#307, ADR-0081): `pi` joins `claude-agent-sdk` and `openai-agents` in every engine CHECK.
2
+ -- Additive: each constraint is widened, never narrowed, and a revision from the previous release
3
+ -- only ever writes `claude-agent-sdk` or `openai-agents`, which both the old and the new constraint
4
+ -- admit — so no single-revision cutover is needed (ADR-0069's rule applies to incompatible changes).
5
+ ALTER TABLE "runs" DROP CONSTRAINT "runs_engine_valid";--> statement-breakpoint
6
+ ALTER TABLE "session_state_blobs" DROP CONSTRAINT "session_state_blobs_engine_valid";--> statement-breakpoint
7
+ ALTER TABLE "session_state_entries" DROP CONSTRAINT "session_state_entries_engine_valid";--> statement-breakpoint
8
+ ALTER TABLE "session_state_streams" DROP CONSTRAINT "session_state_streams_engine_valid";--> statement-breakpoint
9
+ ALTER TABLE "sessions" DROP CONSTRAINT "sessions_engine_valid";--> statement-breakpoint
10
+ ALTER TABLE "runs" ADD CONSTRAINT "runs_engine_valid" CHECK ("runs"."engine" in ('claude-agent-sdk', 'openai-agents', 'pi'));--> statement-breakpoint
11
+ ALTER TABLE "session_state_blobs" ADD CONSTRAINT "session_state_blobs_engine_valid" CHECK ("session_state_blobs"."engine" in ('claude-agent-sdk', 'openai-agents', 'pi'));--> statement-breakpoint
12
+ ALTER TABLE "session_state_entries" ADD CONSTRAINT "session_state_entries_engine_valid" CHECK ("session_state_entries"."engine" in ('claude-agent-sdk', 'openai-agents', 'pi'));--> statement-breakpoint
13
+ ALTER TABLE "session_state_streams" ADD CONSTRAINT "session_state_streams_engine_valid" CHECK ("session_state_streams"."engine" in ('claude-agent-sdk', 'openai-agents', 'pi'));--> statement-breakpoint
14
+ ALTER TABLE "sessions" ADD CONSTRAINT "sessions_engine_valid" CHECK ("sessions"."engine" in ('claude-agent-sdk', 'openai-agents', 'pi'));
@@ -0,0 +1,23 @@
1
+ CREATE TABLE "cli_sessions" (
2
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
3
+ "workspace_id" uuid NOT NULL,
4
+ "user_id" uuid NOT NULL,
5
+ "user_code" text NOT NULL,
6
+ "status" text NOT NULL,
7
+ "approval_expires_at" timestamp with time zone NOT NULL,
8
+ "token_hash" text,
9
+ "expires_at" timestamp with time zone,
10
+ "revoked_at" timestamp with time zone,
11
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
12
+ CONSTRAINT "cli_sessions_status_valid" CHECK ("cli_sessions"."status" in ('approved', 'denied', 'active', 'revoked')),
13
+ CONSTRAINT "cli_sessions_user_code_shape" CHECK ("cli_sessions"."user_code" ~ '^[A-Z]{8}$'),
14
+ CONSTRAINT "cli_sessions_token_iff_issued" CHECK (("cli_sessions"."status" in ('active', 'revoked')) = ("cli_sessions"."token_hash" is not null and "cli_sessions"."expires_at" is not null)),
15
+ CONSTRAINT "cli_sessions_revoked_iff_status" CHECK (("cli_sessions"."status" = 'revoked') = ("cli_sessions"."revoked_at" is not null)),
16
+ CONSTRAINT "cli_sessions_expiry_after_created" CHECK ("cli_sessions"."expires_at" is null or "cli_sessions"."expires_at" > "cli_sessions"."created_at")
17
+ );
18
+ --> statement-breakpoint
19
+ ALTER TABLE "cli_sessions" ADD CONSTRAINT "cli_sessions_workspace_id_workspaces_id_fk" FOREIGN KEY ("workspace_id") REFERENCES "public"."workspaces"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
20
+ ALTER TABLE "cli_sessions" ADD CONSTRAINT "cli_sessions_member_workspace_fk" FOREIGN KEY ("workspace_id","user_id") REFERENCES "public"."memberships"("workspace_id","user_id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
21
+ CREATE UNIQUE INDEX "cli_sessions_user_code_key" ON "cli_sessions" USING btree ("user_code");--> statement-breakpoint
22
+ CREATE UNIQUE INDEX "cli_sessions_token_hash_key" ON "cli_sessions" USING btree ("token_hash");--> statement-breakpoint
23
+ CREATE INDEX "cli_sessions_workspace_user_idx" ON "cli_sessions" USING btree ("workspace_id","user_id");
@@ -0,0 +1,17 @@
1
+ -- ENG-10 (#309, ADR-0084): `mastra` joins `claude-agent-sdk`, `openai-agents` and `pi` in every engine
2
+ -- CHECK. Additive: each constraint is widened, never narrowed, and a revision from the previous release
3
+ -- only ever writes one of the three earlier ids, which both the old and the new constraint admit — so
4
+ -- no single-revision cutover is needed (ADR-0069's rule applies to incompatible changes). Numbered
5
+ -- 0031 so the file prefix equals the journal `idx` (31): `drizzle-kit generate` names the next
6
+ -- migration `lastEntry.idx + 1`, so a gap would make it reuse this prefix and overwrite
7
+ -- `meta/0032_snapshot.json`. It follows 0030 (`cli_sessions`, #356, ADR-0083), which merged first.
8
+ ALTER TABLE "runs" DROP CONSTRAINT "runs_engine_valid";--> statement-breakpoint
9
+ ALTER TABLE "session_state_blobs" DROP CONSTRAINT "session_state_blobs_engine_valid";--> statement-breakpoint
10
+ ALTER TABLE "session_state_entries" DROP CONSTRAINT "session_state_entries_engine_valid";--> statement-breakpoint
11
+ ALTER TABLE "session_state_streams" DROP CONSTRAINT "session_state_streams_engine_valid";--> statement-breakpoint
12
+ ALTER TABLE "sessions" DROP CONSTRAINT "sessions_engine_valid";--> statement-breakpoint
13
+ ALTER TABLE "runs" ADD CONSTRAINT "runs_engine_valid" CHECK ("runs"."engine" in ('claude-agent-sdk', 'openai-agents', 'pi', 'mastra'));--> statement-breakpoint
14
+ ALTER TABLE "session_state_blobs" ADD CONSTRAINT "session_state_blobs_engine_valid" CHECK ("session_state_blobs"."engine" in ('claude-agent-sdk', 'openai-agents', 'pi', 'mastra'));--> statement-breakpoint
15
+ ALTER TABLE "session_state_entries" ADD CONSTRAINT "session_state_entries_engine_valid" CHECK ("session_state_entries"."engine" in ('claude-agent-sdk', 'openai-agents', 'pi', 'mastra'));--> statement-breakpoint
16
+ ALTER TABLE "session_state_streams" ADD CONSTRAINT "session_state_streams_engine_valid" CHECK ("session_state_streams"."engine" in ('claude-agent-sdk', 'openai-agents', 'pi', 'mastra'));--> statement-breakpoint
17
+ ALTER TABLE "sessions" ADD CONSTRAINT "sessions_engine_valid" CHECK ("sessions"."engine" in ('claude-agent-sdk', 'openai-agents', 'pi', 'mastra'));
@@ -0,0 +1,7 @@
1
+ -- PR #403 review (issue #393): first-run setup marks the agent it configured and tested, so the
2
+ -- composer selects that agent before the user chooses one. Recorded on the agent, not as an id on
3
+ -- `workspaces`, so no reference points back into `agents` and a deleted agent takes its mark with it.
4
+ -- Additive and nullable; no revision from the previous release reads or writes it, so no
5
+ -- single-revision cutover is needed (ADR-0069). Numbered 0032 so the file prefix equals the journal
6
+ -- idx (32).
7
+ ALTER TABLE "agents" ADD COLUMN "setup_configured_at" timestamp with time zone;
@@ -0,0 +1,41 @@
1
+ -- Issue #442 (S1-04, ADR-0101): the agent version store. `agent_versions` holds each agent's
2
+ -- immutable, numbered definitions and `agent_version_pointers` records which version is live in an
3
+ -- environment. The pointer → version FK carries `workspace_id` as a third column so the reference is
4
+ -- tenant-paired (tenancy.test.ts bucket 3). Additive: it creates two tables with their constraints
5
+ -- and index, and no revision from the previous release reads or writes them, so no single-revision
6
+ -- cutover is needed (ADR-0069). Numbered 0033 so the file prefix equals the journal idx (33).
7
+ CREATE TABLE "agent_version_pointers" (
8
+ "workspace_id" uuid NOT NULL,
9
+ "agent_id" uuid NOT NULL,
10
+ "environment" text NOT NULL,
11
+ "version_id" uuid NOT NULL,
12
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
13
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL,
14
+ CONSTRAINT "agent_version_pointers_pkey" PRIMARY KEY("agent_id","environment"),
15
+ CONSTRAINT "agent_version_pointers_environment_valid" CHECK ("agent_version_pointers"."environment" in ('local'))
16
+ );
17
+ --> statement-breakpoint
18
+ CREATE TABLE "agent_versions" (
19
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
20
+ "workspace_id" uuid NOT NULL,
21
+ "agent_id" uuid NOT NULL,
22
+ "number" integer NOT NULL,
23
+ "summary" text NOT NULL,
24
+ "via" text NOT NULL,
25
+ "body" jsonb NOT NULL,
26
+ "created_by_principal_id" uuid NOT NULL,
27
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
28
+ CONSTRAINT "agent_versions_workspace_agent_number_key" UNIQUE("workspace_id","agent_id","number"),
29
+ CONSTRAINT "agent_versions_id_workspace_key" UNIQUE("id","workspace_id"),
30
+ CONSTRAINT "agent_versions_id_agent_workspace_key" UNIQUE("id","agent_id","workspace_id"),
31
+ CONSTRAINT "agent_versions_via_valid" CHECK ("agent_versions"."via" in ('ui', 'aw-push', 'api')),
32
+ CONSTRAINT "agent_versions_number_positive" CHECK ("agent_versions"."number" > 0)
33
+ );
34
+ --> statement-breakpoint
35
+ ALTER TABLE "agent_version_pointers" ADD CONSTRAINT "agent_version_pointers_workspace_id_workspaces_id_fk" FOREIGN KEY ("workspace_id") REFERENCES "public"."workspaces"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
36
+ ALTER TABLE "agent_version_pointers" ADD CONSTRAINT "agent_version_pointers_agent_workspace_fk" FOREIGN KEY ("agent_id","workspace_id") REFERENCES "public"."agents"("id","workspace_id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
37
+ ALTER TABLE "agent_version_pointers" ADD CONSTRAINT "agent_version_pointers_version_fk" FOREIGN KEY ("version_id","agent_id","workspace_id") REFERENCES "public"."agent_versions"("id","agent_id","workspace_id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
38
+ ALTER TABLE "agent_versions" ADD CONSTRAINT "agent_versions_workspace_id_workspaces_id_fk" FOREIGN KEY ("workspace_id") REFERENCES "public"."workspaces"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
39
+ ALTER TABLE "agent_versions" ADD CONSTRAINT "agent_versions_agent_workspace_fk" FOREIGN KEY ("agent_id","workspace_id") REFERENCES "public"."agents"("id","workspace_id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
40
+ ALTER TABLE "agent_versions" ADD CONSTRAINT "agent_versions_created_by_principal_workspace_fk" FOREIGN KEY ("workspace_id","created_by_principal_id") REFERENCES "public"."workspace_principals"("workspace_id","id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
41
+ CREATE INDEX "agent_version_pointers_workspace_environment_idx" ON "agent_version_pointers" USING btree ("workspace_id","environment");
@@ -0,0 +1,15 @@
1
+ -- Issue #504 (S1-22): a workspace may mark one runtime profile as its default. An agent version
2
+ -- that names no runtime profile (`runtimeProfileName: null`) resolves to it when the version is
3
+ -- applied, so the stored agent row carries a concrete profile id and run preflight stays strict.
4
+ -- The mark lives on `runtime_profiles` rather than as an id on `workspaces`, so the tenant root
5
+ -- gains no reference back into a tenant table (no second schema cycle), a workspace can never
6
+ -- default to another workspace's profile, and deleting the profile removes the default with it.
7
+ -- `workspace_default` is `true` or NULL, never `false`, so the plain unique key on
8
+ -- (workspace_id, workspace_default) allows at most one default per workspace.
9
+ -- Additive and nullable, with no backfill: every existing profile stays unmarked, which means "no
10
+ -- default" (agents that name no profile stay refused, as before). No revision from the previous
11
+ -- release reads or writes it, so no single-revision cutover is needed (ADR-0069). Numbered 0034 so
12
+ -- the file prefix equals the journal idx (34).
13
+ ALTER TABLE "runtime_profiles" ADD COLUMN "workspace_default" boolean;--> statement-breakpoint
14
+ ALTER TABLE "runtime_profiles" ADD CONSTRAINT "runtime_profiles_workspace_default_key" UNIQUE("workspace_id","workspace_default");--> statement-breakpoint
15
+ ALTER TABLE "runtime_profiles" ADD CONSTRAINT "runtime_profiles_workspace_default_true_or_null" CHECK ("runtime_profiles"."workspace_default" is null or "runtime_profiles"."workspace_default");
@@ -0,0 +1,19 @@
1
+ -- Issue #509 (S1-24): an API-key principal may record the membership principal it acts for. The
2
+ -- per-run local runtime key `aw dev` mints (ADR-0109, S1-21) acts for the bootstrap admin who
3
+ -- issued it, so what that key writes (agents, sessions, skills, files, MCP servers, projects and
4
+ -- shares) is owned by that admin rather than by a key the next start sweeps or that expires after
5
+ -- 12 h. Audit, version and browser-token attribution keep the acting key.
6
+ -- The column lives on `workspace_principals` rather than on `api_keys`: a reference from
7
+ -- `api_keys` to this table would close a schema cycle, while a self-reference is none. The pair
8
+ -- FK is tenant-paired and NO ACTION, like every owner FK, so a membership principal a key acted
9
+ -- for cannot be deleted while that key principal remains. The two checks keep the column on
10
+ -- API-key principals only and never pointing at the principal itself.
11
+ -- Additive and nullable, with no backfill: every existing principal stays unset, which means "owns
12
+ -- what it writes" (today's semantics; hosted keys never set it). The local start's repair step
13
+ -- fills it for earlier local runtime keys. No revision from the previous release reads or writes
14
+ -- it, so no single-revision cutover is needed (ADR-0069). Numbered 0035 so the file prefix equals
15
+ -- the journal idx (35).
16
+ ALTER TABLE "workspace_principals" ADD COLUMN "acts_for_principal_id" uuid;--> statement-breakpoint
17
+ ALTER TABLE "workspace_principals" ADD CONSTRAINT "workspace_principals_acts_for_workspace_fk" FOREIGN KEY ("workspace_id","acts_for_principal_id") REFERENCES "public"."workspace_principals"("workspace_id","id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
18
+ ALTER TABLE "workspace_principals" ADD CONSTRAINT "workspace_principals_acts_for_api_key_only" CHECK ("workspace_principals"."acts_for_principal_id" is null or "workspace_principals"."kind" = 'api_key');--> statement-breakpoint
19
+ ALTER TABLE "workspace_principals" ADD CONSTRAINT "workspace_principals_acts_for_not_self" CHECK ("workspace_principals"."acts_for_principal_id" is null or "workspace_principals"."acts_for_principal_id" <> "workspace_principals"."id");
@@ -0,0 +1,34 @@
1
+ -- Issue #527 (S2-02b, ADR-0113 C15/C16): connector kinds and the run tool snapshot.
2
+ -- `mcp_servers` gains `kind` ('mcp', 'openapi' or 'postgres'; default 'mcp') and `tool_config`, a
3
+ -- JSON object a tool connector carries instead of a transport, command, args or URL. `runs` gains
4
+ -- `tool_connector_ids`, the sorted, distinct set of tool connectors a run may call, snapshotted
5
+ -- before launch (C16); it has no foreign key because PostgreSQL cannot put one on an array element,
6
+ -- and the gateway re-checks tenancy, kind and existence on every call. There is no secret-by-name
7
+ -- column (SD3): a tool connector's credential stays a reference by id into `secrets`.
8
+ -- Additive except two things: `transport` drops NOT NULL (a tool row has none), and the four
9
+ -- transport and credential checks are dropped and re-added under the same names, guarded by
10
+ -- `kind <> 'mcp' or (...)` so they mean exactly what they meant for every MCP row. Every existing
11
+ -- row becomes kind 'mcp' with tool_config NULL, and every constraint is added VALID, so applying
12
+ -- this migration proves that the existing rows satisfy the new checks. A revision from the previous
13
+ -- release inserts without `kind` and gets 'mcp', and reads neither new column, so no
14
+ -- single-revision cutover is needed (ADR-0069); tool rows cannot exist until S2-02c ships. The
15
+ -- openapi auth/credential pairing lives in tool_config and is enforced by the server and the
16
+ -- resource schema, not here. Numbered 0036 so the file prefix equals the journal idx (36).
17
+ ALTER TABLE "mcp_servers" DROP CONSTRAINT "mcp_servers_stdio_has_command";--> statement-breakpoint
18
+ ALTER TABLE "mcp_servers" DROP CONSTRAINT "mcp_servers_remote_has_url";--> statement-breakpoint
19
+ ALTER TABLE "mcp_servers" DROP CONSTRAINT "mcp_servers_args_are_stdio_only";--> statement-breakpoint
20
+ ALTER TABLE "mcp_servers" DROP CONSTRAINT "mcp_servers_credential_required";--> statement-breakpoint
21
+ ALTER TABLE "mcp_servers" ALTER COLUMN "transport" DROP NOT NULL;--> statement-breakpoint
22
+ ALTER TABLE "mcp_servers" ADD COLUMN "kind" text DEFAULT 'mcp' NOT NULL;--> statement-breakpoint
23
+ ALTER TABLE "mcp_servers" ADD COLUMN "tool_config" jsonb;--> statement-breakpoint
24
+ ALTER TABLE "runs" ADD COLUMN "tool_connector_ids" uuid[] DEFAULT '{}'::uuid[] NOT NULL;--> statement-breakpoint
25
+ ALTER TABLE "mcp_servers" ADD CONSTRAINT "mcp_servers_kind_valid" CHECK ("mcp_servers"."kind" in ('mcp', 'openapi', 'postgres'));--> statement-breakpoint
26
+ ALTER TABLE "mcp_servers" ADD CONSTRAINT "mcp_servers_transport_by_kind" CHECK (("mcp_servers"."kind" = 'mcp') = ("mcp_servers"."transport" is not null));--> statement-breakpoint
27
+ ALTER TABLE "mcp_servers" ADD CONSTRAINT "mcp_servers_tool_kind_fields" CHECK ("mcp_servers"."kind" = 'mcp' or ("mcp_servers"."command" is null and "mcp_servers"."args" is null and "mcp_servers"."url" is null));--> statement-breakpoint
28
+ ALTER TABLE "mcp_servers" ADD CONSTRAINT "mcp_servers_tool_config_by_kind" CHECK (("mcp_servers"."kind" = 'mcp') = ("mcp_servers"."tool_config" is null));--> statement-breakpoint
29
+ ALTER TABLE "mcp_servers" ADD CONSTRAINT "mcp_servers_tool_config_is_object" CHECK ("mcp_servers"."tool_config" is null or jsonb_typeof("mcp_servers"."tool_config") = 'object');--> statement-breakpoint
30
+ ALTER TABLE "mcp_servers" ADD CONSTRAINT "mcp_servers_tool_credential" CHECK ("mcp_servers"."kind" = 'mcp' or ("mcp_servers"."auth_type" = 'none' and ("mcp_servers"."kind" <> 'postgres' or "mcp_servers"."credential_secret_id" is not null)));--> statement-breakpoint
31
+ ALTER TABLE "mcp_servers" ADD CONSTRAINT "mcp_servers_stdio_has_command" CHECK ("mcp_servers"."kind" <> 'mcp' or (("mcp_servers"."transport" = 'stdio') = ("mcp_servers"."command" is not null)));--> statement-breakpoint
32
+ ALTER TABLE "mcp_servers" ADD CONSTRAINT "mcp_servers_remote_has_url" CHECK ("mcp_servers"."kind" <> 'mcp' or (("mcp_servers"."transport" in ('http', 'sse')) = ("mcp_servers"."url" is not null)));--> statement-breakpoint
33
+ ALTER TABLE "mcp_servers" ADD CONSTRAINT "mcp_servers_args_are_stdio_only" CHECK ("mcp_servers"."kind" <> 'mcp' or ("mcp_servers"."args" is null or "mcp_servers"."transport" = 'stdio'));--> statement-breakpoint
34
+ ALTER TABLE "mcp_servers" ADD CONSTRAINT "mcp_servers_credential_required" CHECK ("mcp_servers"."kind" <> 'mcp' or (("mcp_servers"."auth_type" in ('api-key', 'bearer', 'oauth')) = ("mcp_servers"."credential_secret_id" is not null)));
@@ -0,0 +1,20 @@
1
+ -- Issue #538 (S2-05b, C18, ADR-0105): the resume key of a hosted surface session.
2
+ -- `surface_session_keys` holds one row per session a surface bootstrap opened: the SHA-256 digest
3
+ -- of the key (never the key), and the surface name and agent it was issued for, so a reloaded page
4
+ -- resumes exactly that (surface, agent) session. Both references are tenant-paired and cascade.
5
+ -- Additive: one new table, its constraints and one index. No revision from the previous release
6
+ -- reads or writes it, so no single-revision cutover is needed (ADR-0069). Numbered 0037 so the
7
+ -- file prefix equals the journal idx (37).
8
+ CREATE TABLE "surface_session_keys" (
9
+ "session_id" uuid PRIMARY KEY NOT NULL,
10
+ "workspace_id" uuid NOT NULL,
11
+ "surface_name" text NOT NULL,
12
+ "agent_id" uuid NOT NULL,
13
+ "key_hash" text NOT NULL,
14
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL
15
+ );
16
+ --> statement-breakpoint
17
+ ALTER TABLE "surface_session_keys" ADD CONSTRAINT "surface_session_keys_workspace_id_workspaces_id_fk" FOREIGN KEY ("workspace_id") REFERENCES "public"."workspaces"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
18
+ ALTER TABLE "surface_session_keys" ADD CONSTRAINT "surface_session_keys_session_workspace_fk" FOREIGN KEY ("session_id","workspace_id") REFERENCES "public"."sessions"("id","workspace_id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
19
+ ALTER TABLE "surface_session_keys" ADD CONSTRAINT "surface_session_keys_agent_workspace_fk" FOREIGN KEY ("agent_id","workspace_id") REFERENCES "public"."agents"("id","workspace_id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
20
+ CREATE INDEX "surface_session_keys_workspace_idx" ON "surface_session_keys" USING btree ("workspace_id");
@@ -0,0 +1,14 @@
1
+ CREATE TABLE "run_feedback" (
2
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
3
+ "workspace_id" uuid NOT NULL,
4
+ "run_id" uuid NOT NULL,
5
+ "rating" text NOT NULL,
6
+ "comment" text,
7
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
8
+ CONSTRAINT "run_feedback_rating_valid" CHECK ("run_feedback"."rating" in ('up', 'down')),
9
+ CONSTRAINT "run_feedback_comment_length" CHECK ("run_feedback"."comment" is null or char_length("run_feedback"."comment") <= 1000)
10
+ );
11
+ --> statement-breakpoint
12
+ ALTER TABLE "run_feedback" ADD CONSTRAINT "run_feedback_workspace_id_workspaces_id_fk" FOREIGN KEY ("workspace_id") REFERENCES "public"."workspaces"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
13
+ ALTER TABLE "run_feedback" ADD CONSTRAINT "run_feedback_run_workspace_fk" FOREIGN KEY ("run_id","workspace_id") REFERENCES "public"."runs"("id","workspace_id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
14
+ CREATE INDEX "run_feedback_workspace_run_idx" ON "run_feedback" USING btree ("workspace_id","run_id");
@@ -0,0 +1,18 @@
1
+ CREATE TABLE "agent_version_evaluations" (
2
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
3
+ "workspace_id" uuid NOT NULL,
4
+ "version_id" uuid NOT NULL,
5
+ "score" numeric(5, 4) NOT NULL,
6
+ "passed" integer NOT NULL,
7
+ "total" integer NOT NULL,
8
+ "cases_snapshot" jsonb NOT NULL,
9
+ "results" jsonb NOT NULL,
10
+ "created_by_principal_id" uuid NOT NULL,
11
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
12
+ CONSTRAINT "agent_version_evaluations_counts" CHECK ("agent_version_evaluations"."total" > 0 and "agent_version_evaluations"."passed" >= 0 and "agent_version_evaluations"."passed" <= "agent_version_evaluations"."total")
13
+ );
14
+ --> statement-breakpoint
15
+ ALTER TABLE "agent_version_evaluations" ADD CONSTRAINT "agent_version_evaluations_workspace_id_workspaces_id_fk" FOREIGN KEY ("workspace_id") REFERENCES "public"."workspaces"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
16
+ ALTER TABLE "agent_version_evaluations" ADD CONSTRAINT "agent_version_evaluations_version_workspace_fk" FOREIGN KEY ("version_id","workspace_id") REFERENCES "public"."agent_versions"("id","workspace_id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
17
+ ALTER TABLE "agent_version_evaluations" ADD CONSTRAINT "agent_version_evaluations_created_by_principal_workspace_fk" FOREIGN KEY ("workspace_id","created_by_principal_id") REFERENCES "public"."workspace_principals"("workspace_id","id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
18
+ CREATE INDEX "agent_version_evaluations_workspace_version_idx" ON "agent_version_evaluations" USING btree ("workspace_id","version_id");
@@ -0,0 +1,23 @@
1
+ -- Issue #613: `agents.materialised_version_id` records the version the agent row was last written
2
+ -- from, so "edited since the pointer moved" is `materialised_version_id IS DISTINCT FROM
3
+ -- pointer.version_id` instead of the `agents.updated_at <= agent_version_pointers.updated_at`
4
+ -- timestamp proxy.
5
+ --
6
+ -- Additive and nullable, so no single-revision cutover is needed (ADR-0069): a revision that
7
+ -- predates this column ignores it. During a rollout, an old revision that still serves a legacy
8
+ -- `PATCH` does not clear the column, so `aw dev` misses that one edit until the agent is edited
9
+ -- again. The result is the overwrite `aw push` already does by default.
10
+ --
11
+ -- ON DELETE is NO ACTION: a version is only deleted by its agent's cascade, which removes the
12
+ -- referencing row in the same statement. MATCH SIMPLE leaves NULL unchecked.
13
+ ALTER TABLE "agents" ADD COLUMN "materialised_version_id" uuid;--> statement-breakpoint
14
+ ALTER TABLE "agents" ADD CONSTRAINT "agents_materialised_version_fk" FOREIGN KEY ("materialised_version_id","id","workspace_id") REFERENCES "public"."agent_versions"("id","agent_id","workspace_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
15
+ -- The backfill uses the old proxy one last time, so no existing agent reads as edited on upgrade:
16
+ -- an agent whose row was not written after its `local` pointer moved still equals that version.
17
+ UPDATE "agents" AS a
18
+ SET "materialised_version_id" = p."version_id"
19
+ FROM "agent_version_pointers" AS p
20
+ WHERE p."agent_id" = a."id"
21
+ AND p."workspace_id" = a."workspace_id"
22
+ AND p."environment" = 'local'
23
+ AND a."updated_at" <= p."updated_at";
@@ -0,0 +1,4 @@
1
+ ALTER TABLE "agent_version_pointers" DROP CONSTRAINT "agent_version_pointers_environment_valid";--> statement-breakpoint
2
+ ALTER TABLE "sessions" ADD COLUMN "agent_version_id" uuid;--> statement-breakpoint
3
+ ALTER TABLE "sessions" ADD CONSTRAINT "sessions_agent_version_fk" FOREIGN KEY ("agent_version_id","agent_id","workspace_id") REFERENCES "public"."agent_versions"("id","agent_id","workspace_id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
4
+ ALTER TABLE "agent_version_pointers" ADD CONSTRAINT "agent_version_pointers_environment_valid" CHECK ("agent_version_pointers"."environment" in ('local', 'production'));
@@ -0,0 +1 @@
1
+ ALTER TABLE "runs" ADD COLUMN "prompt" text;
@@ -0,0 +1,30 @@
1
+ -- Issue #615 (80-08): `agent_pointer_moves` is every version an environment has pointed at. The
2
+ -- repository appends one row in the transaction that moves a pointer, so the newest row of an
3
+ -- (agent, environment) is its pointer and a rollback is the row before it.
4
+ --
5
+ -- Additive, so no single-revision cutover is needed (ADR-0069). During a rollout an old revision
6
+ -- still moves pointers without a row, so a history head can lag its pointer until the next move;
7
+ -- a rollback in that window steps back from the last recorded move.
8
+ CREATE TABLE "agent_pointer_moves" (
9
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
10
+ "workspace_id" uuid NOT NULL,
11
+ "agent_id" uuid NOT NULL,
12
+ "environment" text NOT NULL,
13
+ "version_id" uuid NOT NULL,
14
+ "moved_by" uuid,
15
+ "moved_at" timestamp with time zone DEFAULT clock_timestamp() NOT NULL,
16
+ "reason" text NOT NULL,
17
+ CONSTRAINT "agent_pointer_moves_environment_valid" CHECK ("agent_pointer_moves"."environment" in ('local', 'production')),
18
+ CONSTRAINT "agent_pointer_moves_reason_valid" CHECK ("agent_pointer_moves"."reason" in ('set', 'promote', 'rollback'))
19
+ );
20
+ --> statement-breakpoint
21
+ ALTER TABLE "agent_pointer_moves" ADD CONSTRAINT "agent_pointer_moves_workspace_id_workspaces_id_fk" FOREIGN KEY ("workspace_id") REFERENCES "public"."workspaces"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
22
+ ALTER TABLE "agent_pointer_moves" ADD CONSTRAINT "agent_pointer_moves_agent_workspace_fk" FOREIGN KEY ("agent_id","workspace_id") REFERENCES "public"."agents"("id","workspace_id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
23
+ ALTER TABLE "agent_pointer_moves" ADD CONSTRAINT "agent_pointer_moves_version_fk" FOREIGN KEY ("version_id","agent_id","workspace_id") REFERENCES "public"."agent_versions"("id","agent_id","workspace_id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
24
+ ALTER TABLE "agent_pointer_moves" ADD CONSTRAINT "agent_pointer_moves_moved_by_principal_workspace_fk" FOREIGN KEY ("workspace_id","moved_by") REFERENCES "public"."workspace_principals"("workspace_id","id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
25
+ CREATE INDEX "agent_pointer_moves_workspace_agent_environment_idx" ON "agent_pointer_moves" USING btree ("workspace_id","agent_id","environment","moved_at");--> statement-breakpoint
26
+ -- The backfill gives every existing pointer one `set` row, so each head equals its pointer from the
27
+ -- start. `moved_by` is NULL: the pointer row never recorded who moved it.
28
+ INSERT INTO "agent_pointer_moves" ("workspace_id", "agent_id", "environment", "version_id", "moved_by", "moved_at", "reason")
29
+ SELECT p."workspace_id", p."agent_id", p."environment", p."version_id", NULL, p."updated_at", 'set'
30
+ FROM "agent_version_pointers" AS p;