superceo 0.3.4 → 0.3.5

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 (157) hide show
  1. package/dist/index.js +80 -47
  2. package/dist/index.js.map +3 -3
  3. package/dist/migrations/0000_mature_masked_marvel.sql +208 -0
  4. package/dist/migrations/0001_fast_northstar.sql +87 -0
  5. package/dist/migrations/0002_big_zaladane.sql +1 -0
  6. package/dist/migrations/0003_shallow_quentin_quire.sql +5 -0
  7. package/dist/migrations/0004_issue_identifiers.sql +28 -0
  8. package/dist/migrations/0005_chief_luke_cage.sql +19 -0
  9. package/dist/migrations/0006_overjoyed_mister_sinister.sql +36 -0
  10. package/dist/migrations/0007_new_quentin_quire.sql +20 -0
  11. package/dist/migrations/0008_amused_zzzax.sql +1 -0
  12. package/dist/migrations/0009_fast_jackal.sql +36 -0
  13. package/dist/migrations/0010_stale_justin_hammer.sql +37 -0
  14. package/dist/migrations/0011_windy_corsair.sql +18 -0
  15. package/dist/migrations/0012_perpetual_ser_duncan.sql +2 -0
  16. package/dist/migrations/0013_dashing_wasp.sql +4 -0
  17. package/dist/migrations/0014_many_mikhail_rasputin.sql +135 -0
  18. package/dist/migrations/0015_project_color_archived.sql +2 -0
  19. package/dist/migrations/0016_agent_icon.sql +1 -0
  20. package/dist/migrations/0017_tiresome_gabe_jones.sql +51 -0
  21. package/dist/migrations/0018_flat_sleepwalker.sql +26 -0
  22. package/dist/migrations/0019_public_victor_mancha.sql +18 -0
  23. package/dist/migrations/0020_white_anita_blake.sql +1 -0
  24. package/dist/migrations/0021_chief_vindicator.sql +1 -0
  25. package/dist/migrations/0022_company_brand_color.sql +1 -0
  26. package/dist/migrations/0023_fair_lethal_legion.sql +3 -0
  27. package/dist/migrations/0024_far_beast.sql +2 -0
  28. package/dist/migrations/0025_nasty_salo.sql +15 -0
  29. package/dist/migrations/0026_lying_pete_wisdom.sql +39 -0
  30. package/dist/migrations/0027_tranquil_tenebrous.sql +2 -0
  31. package/dist/migrations/0028_harsh_goliath.sql +54 -0
  32. package/dist/migrations/0029_plugin_tables.sql +177 -0
  33. package/dist/migrations/0030_rich_magneto.sql +12 -0
  34. package/dist/migrations/0031_zippy_magma.sql +51 -0
  35. package/dist/migrations/0032_pretty_doctor_octopus.sql +102 -0
  36. package/dist/migrations/0033_shiny_black_tarantula.sql +2 -0
  37. package/dist/migrations/0034_fat_dormammu.sql +2 -0
  38. package/dist/migrations/0035_marvelous_satana.sql +91 -0
  39. package/dist/migrations/0036_cheerful_nitro.sql +9 -0
  40. package/dist/migrations/0037_friendly_eddie_brock.sql +29 -0
  41. package/dist/migrations/0038_careless_iron_monger.sql +5 -0
  42. package/dist/migrations/0039_fat_magneto.sql +161 -0
  43. package/dist/migrations/0040_eager_shotgun.sql +5 -0
  44. package/dist/migrations/0041_curly_maria_hill.sql +1 -0
  45. package/dist/migrations/0042_spotty_the_renegades.sql +26 -0
  46. package/dist/migrations/0043_reflective_captain_universe.sql +6 -0
  47. package/dist/migrations/0044_illegal_toad.sql +56 -0
  48. package/dist/migrations/0045_workable_shockwave.sql +17 -0
  49. package/dist/migrations/0046_smooth_sentinels.sql +11 -0
  50. package/dist/migrations/0047_overjoyed_groot.sql +102 -0
  51. package/dist/migrations/0048_flashy_marrow.sql +1 -0
  52. package/dist/migrations/0049_flawless_abomination.sql +21 -0
  53. package/dist/migrations/0050_stiff_luckman.sql +1 -0
  54. package/dist/migrations/0051_young_korg.sql +5 -0
  55. package/dist/migrations/0052_mushy_trauma.sql +26 -0
  56. package/dist/migrations/0053_sharp_wild_child.sql +18 -0
  57. package/dist/migrations/0054_draft_routines.sql +2 -0
  58. package/dist/migrations/0055_faithful_doctor_octopus.sql +48 -0
  59. package/dist/migrations/0056_equal_sabretooth.sql +34 -0
  60. package/dist/migrations/0057_ordinary_khan.sql +5 -0
  61. package/dist/migrations/0058_sad_wolf_cub.sql +2 -0
  62. package/dist/migrations/0059_rich_jackpot.sql +4 -0
  63. package/dist/migrations/0060_orange_nightshade.sql +60 -0
  64. package/dist/migrations/0061_parallel_puma.sql +1 -0
  65. package/dist/migrations/0062_goofy_lethal_legion.sql +26 -0
  66. package/dist/migrations/0063_luxuriant_doctor_spectrum.sql +23 -0
  67. package/dist/migrations/0064_lead_platform_user.sql +2 -0
  68. package/dist/migrations/0065_wild_next_avengers.sql +14 -0
  69. package/dist/migrations/0066_late_stark_industries.sql +5 -0
  70. package/dist/migrations/0067_instance_backup_settings.sql +1 -0
  71. package/dist/migrations/0068_tiresome_ma_gnuci.sql +1 -0
  72. package/dist/migrations/0069_lazy_zaladane.sql +106 -0
  73. package/dist/migrations/0070_lame_wendigo.sql +1 -0
  74. package/dist/migrations/0071_content_analytics.sql +71 -0
  75. package/dist/migrations/0072_quota_gate_feature_scope.sql +3 -0
  76. package/dist/migrations/0073_instance_update_settings.sql +1 -0
  77. package/dist/migrations/0074_local_tools_config.sql +1 -0
  78. package/dist/migrations/0075_liveness_recovery_dedupe.sql +15 -0
  79. package/dist/migrations/0076_active_run_output_watchdog.sql +91 -0
  80. package/dist/migrations/0077_issue_tree_holds.sql +107 -0
  81. package/dist/migrations/0078_issue_reference_mentions.sql +50 -0
  82. package/dist/migrations/0079_subscription_quota_lane.sql +4 -0
  83. package/dist/migrations/0080_lead_product_user.sql +3 -0
  84. package/dist/migrations/0081_lead_product_user_split_x.sql +8 -0
  85. package/dist/migrations/0082_agent_image_url.sql +1 -0
  86. package/dist/migrations/0083_chat_sessions_target_agent.sql +2 -0
  87. package/dist/migrations/0084_document_folders.sql +22 -0
  88. package/dist/migrations/0085_eager_mulholland_black.sql +4 -0
  89. package/dist/migrations/meta/0000_snapshot.json +1743 -0
  90. package/dist/migrations/meta/0001_snapshot.json +2441 -0
  91. package/dist/migrations/meta/0002_snapshot.json +2454 -0
  92. package/dist/migrations/meta/0003_snapshot.json +2502 -0
  93. package/dist/migrations/meta/0005_snapshot.json +2719 -0
  94. package/dist/migrations/meta/0006_snapshot.json +3048 -0
  95. package/dist/migrations/meta/0007_snapshot.json +3258 -0
  96. package/dist/migrations/meta/0008_snapshot.json +3264 -0
  97. package/dist/migrations/meta/0009_snapshot.json +3587 -0
  98. package/dist/migrations/meta/0010_snapshot.json +3929 -0
  99. package/dist/migrations/meta/0011_snapshot.json +4068 -0
  100. package/dist/migrations/meta/0012_snapshot.json +4087 -0
  101. package/dist/migrations/meta/0013_snapshot.json +4118 -0
  102. package/dist/migrations/meta/0014_snapshot.json +5187 -0
  103. package/dist/migrations/meta/0017_snapshot.json +5215 -0
  104. package/dist/migrations/meta/0018_snapshot.json +5450 -0
  105. package/dist/migrations/meta/0019_snapshot.json +5603 -0
  106. package/dist/migrations/meta/0020_snapshot.json +5603 -0
  107. package/dist/migrations/meta/0021_snapshot.json +5609 -0
  108. package/dist/migrations/meta/0023_snapshot.json +5633 -0
  109. package/dist/migrations/meta/0024_snapshot.json +5693 -0
  110. package/dist/migrations/meta/0025_snapshot.json +5849 -0
  111. package/dist/migrations/meta/0027_snapshot.json +6205 -0
  112. package/dist/migrations/meta/0028_snapshot.json +6710 -0
  113. package/dist/migrations/meta/0029_snapshot.json +7899 -0
  114. package/dist/migrations/meta/0030_snapshot.json +8003 -0
  115. package/dist/migrations/meta/0031_snapshot.json +7242 -0
  116. package/dist/migrations/meta/0032_snapshot.json +7733 -0
  117. package/dist/migrations/meta/0033_snapshot.json +9038 -0
  118. package/dist/migrations/meta/0034_snapshot.json +9039 -0
  119. package/dist/migrations/meta/0035_snapshot.json +9959 -0
  120. package/dist/migrations/meta/0036_snapshot.json +10023 -0
  121. package/dist/migrations/meta/0037_snapshot.json +10263 -0
  122. package/dist/migrations/meta/0038_snapshot.json +11350 -0
  123. package/dist/migrations/meta/0039_snapshot.json +10308 -0
  124. package/dist/migrations/meta/0040_snapshot.json +10481 -0
  125. package/dist/migrations/meta/0041_snapshot.json +11393 -0
  126. package/dist/migrations/meta/0044_snapshot.json +11701 -0
  127. package/dist/migrations/meta/0045_snapshot.json +11857 -0
  128. package/dist/migrations/meta/0046_snapshot.json +11870 -0
  129. package/dist/migrations/meta/0047_snapshot.json +12539 -0
  130. package/dist/migrations/meta/0048_snapshot.json +12546 -0
  131. package/dist/migrations/meta/0049_snapshot.json +12766 -0
  132. package/dist/migrations/meta/0050_snapshot.json +12772 -0
  133. package/dist/migrations/meta/0051_snapshot.json +12836 -0
  134. package/dist/migrations/meta/0052_snapshot.json +13057 -0
  135. package/dist/migrations/meta/0053_snapshot.json +12979 -0
  136. package/dist/migrations/meta/0055_snapshot.json +13586 -0
  137. package/dist/migrations/meta/0056_snapshot.json +13868 -0
  138. package/dist/migrations/meta/0057_snapshot.json +13906 -0
  139. package/dist/migrations/meta/0058_snapshot.json +13918 -0
  140. package/dist/migrations/meta/0059_snapshot.json +13942 -0
  141. package/dist/migrations/meta/0060_snapshot.json +14509 -0
  142. package/dist/migrations/meta/0061_snapshot.json +14515 -0
  143. package/dist/migrations/meta/0062_snapshot.json +14717 -0
  144. package/dist/migrations/meta/0063_snapshot.json +14941 -0
  145. package/dist/migrations/meta/0065_snapshot.json +15081 -0
  146. package/dist/migrations/meta/0066_snapshot.json +15112 -0
  147. package/dist/migrations/meta/0067_snapshot.json +15119 -0
  148. package/dist/migrations/meta/0068_snapshot.json +15125 -0
  149. package/dist/migrations/meta/0069_snapshot.json +16110 -0
  150. package/dist/migrations/meta/0070_snapshot.json +16116 -0
  151. package/dist/migrations/meta/0073_snapshot.json +16584 -0
  152. package/dist/migrations/meta/0079_snapshot.json +17847 -0
  153. package/dist/migrations/meta/0080_snapshot.json +17853 -0
  154. package/dist/migrations/meta/0081_snapshot.json +17853 -0
  155. package/dist/migrations/meta/0085_snapshot.json +18068 -0
  156. package/dist/migrations/meta/_journal.json +608 -0
  157. package/package.json +1 -1
@@ -0,0 +1,102 @@
1
+ CREATE TABLE IF NOT EXISTS "feedback_exports" (
2
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
3
+ "company_id" uuid NOT NULL,
4
+ "feedback_vote_id" uuid NOT NULL,
5
+ "issue_id" uuid NOT NULL,
6
+ "project_id" uuid,
7
+ "author_user_id" text NOT NULL,
8
+ "target_type" text NOT NULL,
9
+ "target_id" text NOT NULL,
10
+ "vote" text NOT NULL,
11
+ "status" text DEFAULT 'local_only' NOT NULL,
12
+ "destination" text,
13
+ "export_id" text,
14
+ "consent_version" text,
15
+ "schema_version" text DEFAULT 'paperclip-feedback-envelope-v2' NOT NULL,
16
+ "bundle_version" text DEFAULT 'paperclip-feedback-bundle-v2' NOT NULL,
17
+ "payload_version" text DEFAULT 'paperclip-feedback-v1' NOT NULL,
18
+ "payload_digest" text,
19
+ "payload_snapshot" jsonb,
20
+ "target_summary" jsonb NOT NULL,
21
+ "redaction_summary" jsonb,
22
+ "attempt_count" integer DEFAULT 0 NOT NULL,
23
+ "last_attempted_at" timestamp with time zone,
24
+ "exported_at" timestamp with time zone,
25
+ "failure_reason" text,
26
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
27
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
28
+ );
29
+ --> statement-breakpoint
30
+ CREATE TABLE IF NOT EXISTS "feedback_votes" (
31
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
32
+ "company_id" uuid NOT NULL,
33
+ "issue_id" uuid NOT NULL,
34
+ "target_type" text NOT NULL,
35
+ "target_id" text NOT NULL,
36
+ "author_user_id" text NOT NULL,
37
+ "vote" text NOT NULL,
38
+ "reason" text,
39
+ "shared_with_labs" boolean DEFAULT false NOT NULL,
40
+ "shared_at" timestamp with time zone,
41
+ "consent_version" text,
42
+ "redaction_summary" jsonb,
43
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
44
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
45
+ );
46
+ --> statement-breakpoint
47
+ ALTER TABLE "companies" ADD COLUMN IF NOT EXISTS "feedback_data_sharing_enabled" boolean DEFAULT false NOT NULL;--> statement-breakpoint
48
+ ALTER TABLE "companies" ADD COLUMN IF NOT EXISTS "feedback_data_sharing_consent_at" timestamp with time zone;--> statement-breakpoint
49
+ ALTER TABLE "companies" ADD COLUMN IF NOT EXISTS "feedback_data_sharing_consent_by_user_id" text;--> statement-breakpoint
50
+ ALTER TABLE "companies" ADD COLUMN IF NOT EXISTS "feedback_data_sharing_terms_version" text;--> statement-breakpoint
51
+ ALTER TABLE "document_revisions" ADD COLUMN IF NOT EXISTS "created_by_run_id" uuid;--> statement-breakpoint
52
+ ALTER TABLE "issue_comments" ADD COLUMN IF NOT EXISTS "created_by_run_id" uuid;--> statement-breakpoint
53
+ DO $$ BEGIN
54
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'feedback_exports_company_id_companies_id_fk') THEN
55
+ ALTER TABLE "feedback_exports" ADD CONSTRAINT "feedback_exports_company_id_companies_id_fk" FOREIGN KEY ("company_id") REFERENCES "public"."companies"("id") ON DELETE no action ON UPDATE no action;
56
+ END IF;
57
+ END $$;--> statement-breakpoint
58
+ DO $$ BEGIN
59
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'feedback_exports_feedback_vote_id_feedback_votes_id_fk') THEN
60
+ ALTER TABLE "feedback_exports" ADD CONSTRAINT "feedback_exports_feedback_vote_id_feedback_votes_id_fk" FOREIGN KEY ("feedback_vote_id") REFERENCES "public"."feedback_votes"("id") ON DELETE cascade ON UPDATE no action;
61
+ END IF;
62
+ END $$;--> statement-breakpoint
63
+ DO $$ BEGIN
64
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'feedback_exports_issue_id_issues_id_fk') THEN
65
+ ALTER TABLE "feedback_exports" ADD CONSTRAINT "feedback_exports_issue_id_issues_id_fk" FOREIGN KEY ("issue_id") REFERENCES "public"."issues"("id") ON DELETE cascade ON UPDATE no action;
66
+ END IF;
67
+ END $$;--> statement-breakpoint
68
+ DO $$ BEGIN
69
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'feedback_exports_project_id_projects_id_fk') THEN
70
+ ALTER TABLE "feedback_exports" ADD CONSTRAINT "feedback_exports_project_id_projects_id_fk" FOREIGN KEY ("project_id") REFERENCES "public"."projects"("id") ON DELETE set null ON UPDATE no action;
71
+ END IF;
72
+ END $$;--> statement-breakpoint
73
+ DO $$ BEGIN
74
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'feedback_votes_company_id_companies_id_fk') THEN
75
+ ALTER TABLE "feedback_votes" ADD CONSTRAINT "feedback_votes_company_id_companies_id_fk" FOREIGN KEY ("company_id") REFERENCES "public"."companies"("id") ON DELETE no action ON UPDATE no action;
76
+ END IF;
77
+ END $$;--> statement-breakpoint
78
+ DO $$ BEGIN
79
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'feedback_votes_issue_id_issues_id_fk') THEN
80
+ ALTER TABLE "feedback_votes" ADD CONSTRAINT "feedback_votes_issue_id_issues_id_fk" FOREIGN KEY ("issue_id") REFERENCES "public"."issues"("id") ON DELETE no action ON UPDATE no action;
81
+ END IF;
82
+ END $$;--> statement-breakpoint
83
+ CREATE UNIQUE INDEX IF NOT EXISTS "feedback_exports_feedback_vote_idx" ON "feedback_exports" USING btree ("feedback_vote_id");--> statement-breakpoint
84
+ CREATE INDEX IF NOT EXISTS "feedback_exports_company_created_idx" ON "feedback_exports" USING btree ("company_id","created_at");--> statement-breakpoint
85
+ CREATE INDEX IF NOT EXISTS "feedback_exports_company_status_idx" ON "feedback_exports" USING btree ("company_id","status","created_at");--> statement-breakpoint
86
+ CREATE INDEX IF NOT EXISTS "feedback_exports_company_issue_idx" ON "feedback_exports" USING btree ("company_id","issue_id","created_at");--> statement-breakpoint
87
+ CREATE INDEX IF NOT EXISTS "feedback_exports_company_project_idx" ON "feedback_exports" USING btree ("company_id","project_id","created_at");--> statement-breakpoint
88
+ CREATE INDEX IF NOT EXISTS "feedback_exports_company_author_idx" ON "feedback_exports" USING btree ("company_id","author_user_id","created_at");--> statement-breakpoint
89
+ CREATE INDEX IF NOT EXISTS "feedback_votes_company_issue_idx" ON "feedback_votes" USING btree ("company_id","issue_id");--> statement-breakpoint
90
+ CREATE INDEX IF NOT EXISTS "feedback_votes_issue_target_idx" ON "feedback_votes" USING btree ("issue_id","target_type","target_id");--> statement-breakpoint
91
+ CREATE INDEX IF NOT EXISTS "feedback_votes_author_idx" ON "feedback_votes" USING btree ("author_user_id","created_at");--> statement-breakpoint
92
+ CREATE UNIQUE INDEX IF NOT EXISTS "feedback_votes_company_target_author_idx" ON "feedback_votes" USING btree ("company_id","target_type","target_id","author_user_id");--> statement-breakpoint
93
+ DO $$ BEGIN
94
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'document_revisions_created_by_run_id_heartbeat_runs_id_fk') THEN
95
+ ALTER TABLE "document_revisions" ADD CONSTRAINT "document_revisions_created_by_run_id_heartbeat_runs_id_fk" FOREIGN KEY ("created_by_run_id") REFERENCES "public"."heartbeat_runs"("id") ON DELETE set null ON UPDATE no action;
96
+ END IF;
97
+ END $$;--> statement-breakpoint
98
+ DO $$ BEGIN
99
+ IF NOT EXISTS (SELECT 1 FROM pg_constraint WHERE conname = 'issue_comments_created_by_run_id_heartbeat_runs_id_fk') THEN
100
+ ALTER TABLE "issue_comments" ADD CONSTRAINT "issue_comments_created_by_run_id_heartbeat_runs_id_fk" FOREIGN KEY ("created_by_run_id") REFERENCES "public"."heartbeat_runs"("id") ON DELETE set null ON UPDATE no action;
101
+ END IF;
102
+ END $$;
@@ -0,0 +1 @@
1
+ ALTER TABLE "routines" ADD COLUMN IF NOT EXISTS "variables" jsonb DEFAULT '[]'::jsonb NOT NULL;
@@ -0,0 +1,21 @@
1
+ CREATE TABLE "issue_relations" (
2
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
3
+ "company_id" uuid NOT NULL,
4
+ "issue_id" uuid NOT NULL,
5
+ "related_issue_id" uuid NOT NULL,
6
+ "type" text NOT NULL,
7
+ "created_by_agent_id" uuid,
8
+ "created_by_user_id" text,
9
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
10
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
11
+ );
12
+ --> statement-breakpoint
13
+ ALTER TABLE "issue_relations" ADD CONSTRAINT "issue_relations_type_check" CHECK ("type" IN ('blocks'));--> statement-breakpoint
14
+ ALTER TABLE "issue_relations" ADD CONSTRAINT "issue_relations_company_id_companies_id_fk" FOREIGN KEY ("company_id") REFERENCES "public"."companies"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
15
+ ALTER TABLE "issue_relations" ADD CONSTRAINT "issue_relations_issue_id_issues_id_fk" FOREIGN KEY ("issue_id") REFERENCES "public"."issues"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
16
+ ALTER TABLE "issue_relations" ADD CONSTRAINT "issue_relations_related_issue_id_issues_id_fk" FOREIGN KEY ("related_issue_id") REFERENCES "public"."issues"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
17
+ ALTER TABLE "issue_relations" ADD CONSTRAINT "issue_relations_created_by_agent_id_agents_id_fk" FOREIGN KEY ("created_by_agent_id") REFERENCES "public"."agents"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
18
+ CREATE INDEX "issue_relations_company_issue_idx" ON "issue_relations" USING btree ("company_id","issue_id");--> statement-breakpoint
19
+ CREATE INDEX "issue_relations_company_related_issue_idx" ON "issue_relations" USING btree ("company_id","related_issue_id");--> statement-breakpoint
20
+ CREATE INDEX "issue_relations_company_type_idx" ON "issue_relations" USING btree ("company_id","type");--> statement-breakpoint
21
+ CREATE UNIQUE INDEX "issue_relations_company_edge_uq" ON "issue_relations" USING btree ("company_id","issue_id","related_issue_id","type");
@@ -0,0 +1 @@
1
+ ALTER TABLE "projects" ADD COLUMN IF NOT EXISTS "env" jsonb;
@@ -0,0 +1,5 @@
1
+ CREATE EXTENSION IF NOT EXISTS pg_trgm;--> statement-breakpoint
2
+ CREATE INDEX "issue_comments_body_search_idx" ON "issue_comments" USING gin ("body" gin_trgm_ops);--> statement-breakpoint
3
+ CREATE INDEX "issues_title_search_idx" ON "issues" USING gin ("title" gin_trgm_ops);--> statement-breakpoint
4
+ CREATE INDEX "issues_identifier_search_idx" ON "issues" USING gin ("identifier" gin_trgm_ops);--> statement-breakpoint
5
+ CREATE INDEX "issues_description_search_idx" ON "issues" USING gin ("description" gin_trgm_ops);
@@ -0,0 +1,26 @@
1
+ CREATE TABLE "issue_execution_decisions" (
2
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
3
+ "company_id" uuid NOT NULL,
4
+ "issue_id" uuid NOT NULL,
5
+ "stage_id" uuid NOT NULL,
6
+ "stage_type" text NOT NULL,
7
+ "actor_agent_id" uuid,
8
+ "actor_user_id" text,
9
+ "outcome" text NOT NULL,
10
+ "body" text NOT NULL,
11
+ "created_by_run_id" uuid,
12
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
13
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
14
+ );
15
+ --> statement-breakpoint
16
+ ALTER TABLE "heartbeat_runs" ADD COLUMN "issue_comment_status" text DEFAULT 'not_applicable' NOT NULL;--> statement-breakpoint
17
+ ALTER TABLE "heartbeat_runs" ADD COLUMN "issue_comment_satisfied_by_comment_id" uuid;--> statement-breakpoint
18
+ ALTER TABLE "heartbeat_runs" ADD COLUMN "issue_comment_retry_queued_at" timestamp with time zone;--> statement-breakpoint
19
+ ALTER TABLE "issues" ADD COLUMN "execution_policy" jsonb;--> statement-breakpoint
20
+ ALTER TABLE "issues" ADD COLUMN "execution_state" jsonb;--> statement-breakpoint
21
+ ALTER TABLE "issue_execution_decisions" ADD CONSTRAINT "issue_execution_decisions_company_id_companies_id_fk" FOREIGN KEY ("company_id") REFERENCES "public"."companies"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
22
+ ALTER TABLE "issue_execution_decisions" ADD CONSTRAINT "issue_execution_decisions_issue_id_issues_id_fk" FOREIGN KEY ("issue_id") REFERENCES "public"."issues"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
23
+ ALTER TABLE "issue_execution_decisions" ADD CONSTRAINT "issue_execution_decisions_actor_agent_id_agents_id_fk" FOREIGN KEY ("actor_agent_id") REFERENCES "public"."agents"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
24
+ ALTER TABLE "issue_execution_decisions" ADD CONSTRAINT "issue_execution_decisions_created_by_run_id_heartbeat_runs_id_fk" FOREIGN KEY ("created_by_run_id") REFERENCES "public"."heartbeat_runs"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
25
+ CREATE INDEX "issue_execution_decisions_company_issue_idx" ON "issue_execution_decisions" USING btree ("company_id","issue_id");--> statement-breakpoint
26
+ CREATE INDEX "issue_execution_decisions_stage_idx" ON "issue_execution_decisions" USING btree ("issue_id","stage_id","created_at");
@@ -0,0 +1,18 @@
1
+ CREATE TABLE IF NOT EXISTS "inbox_dismissals" (
2
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
3
+ "company_id" uuid NOT NULL,
4
+ "user_id" text NOT NULL,
5
+ "item_key" text NOT NULL,
6
+ "dismissed_at" timestamp with time zone DEFAULT now() NOT NULL,
7
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
8
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
9
+ );
10
+ --> statement-breakpoint
11
+ DO $$ BEGIN
12
+ ALTER TABLE "inbox_dismissals" ADD CONSTRAINT "inbox_dismissals_company_id_companies_id_fk" FOREIGN KEY ("company_id") REFERENCES "public"."companies"("id") ON DELETE no action ON UPDATE no action;
13
+ EXCEPTION
14
+ WHEN duplicate_object THEN null;
15
+ END $$;--> statement-breakpoint
16
+ CREATE INDEX IF NOT EXISTS "inbox_dismissals_company_user_idx" ON "inbox_dismissals" USING btree ("company_id","user_id");--> statement-breakpoint
17
+ CREATE INDEX IF NOT EXISTS "inbox_dismissals_company_item_idx" ON "inbox_dismissals" USING btree ("company_id","item_key");--> statement-breakpoint
18
+ CREATE UNIQUE INDEX IF NOT EXISTS "inbox_dismissals_company_user_item_idx" ON "inbox_dismissals" USING btree ("company_id","user_id","item_key");
@@ -0,0 +1,2 @@
1
+ ALTER TABLE "routines" ALTER COLUMN "project_id" DROP NOT NULL;
2
+ ALTER TABLE "routines" ALTER COLUMN "assignee_agent_id" DROP NOT NULL;
@@ -0,0 +1,48 @@
1
+ CREATE TABLE "creators" (
2
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
3
+ "display_name" text NOT NULL,
4
+ "handle" text,
5
+ "bio" text,
6
+ "avatar_url" text,
7
+ "notes" text,
8
+ "created_by_company_id" uuid,
9
+ "created_by_agent_id" uuid,
10
+ "created_by_user_id" text,
11
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
12
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
13
+ );
14
+ --> statement-breakpoint
15
+ CREATE TABLE "creator_accounts" (
16
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
17
+ "creator_id" uuid NOT NULL,
18
+ "platform" text NOT NULL,
19
+ "handle" text NOT NULL,
20
+ "url" text NOT NULL,
21
+ "external_id" text,
22
+ "follower_count" integer,
23
+ "last_seen_at" timestamp with time zone,
24
+ "last_scraped_at" timestamp with time zone,
25
+ "metadata" jsonb DEFAULT '{}'::jsonb NOT NULL,
26
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
27
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
28
+ );
29
+ --> statement-breakpoint
30
+ CREATE TABLE "creator_companies" (
31
+ "creator_id" uuid NOT NULL,
32
+ "company_id" uuid NOT NULL,
33
+ "relevance_note" text,
34
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
35
+ CONSTRAINT "creator_companies_creator_id_company_id_pk" PRIMARY KEY("creator_id","company_id")
36
+ );
37
+ --> statement-breakpoint
38
+ ALTER TABLE "creators" ADD CONSTRAINT "creators_created_by_company_id_companies_id_fk" FOREIGN KEY ("created_by_company_id") REFERENCES "public"."companies"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
39
+ ALTER TABLE "creators" ADD CONSTRAINT "creators_created_by_agent_id_agents_id_fk" FOREIGN KEY ("created_by_agent_id") REFERENCES "public"."agents"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
40
+ ALTER TABLE "creator_accounts" ADD CONSTRAINT "creator_accounts_creator_id_creators_id_fk" FOREIGN KEY ("creator_id") REFERENCES "public"."creators"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
41
+ ALTER TABLE "creator_companies" ADD CONSTRAINT "creator_companies_creator_id_creators_id_fk" FOREIGN KEY ("creator_id") REFERENCES "public"."creators"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
42
+ ALTER TABLE "creator_companies" ADD CONSTRAINT "creator_companies_company_id_companies_id_fk" FOREIGN KEY ("company_id") REFERENCES "public"."companies"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
43
+ CREATE INDEX "creators_updated_idx" ON "creators" USING btree ("updated_at");--> statement-breakpoint
44
+ CREATE INDEX "creators_display_name_search_idx" ON "creators" USING gin ("display_name" gin_trgm_ops);--> statement-breakpoint
45
+ CREATE INDEX "creators_handle_search_idx" ON "creators" USING gin ("handle" gin_trgm_ops);--> statement-breakpoint
46
+ CREATE INDEX "creator_accounts_creator_idx" ON "creator_accounts" USING btree ("creator_id");--> statement-breakpoint
47
+ CREATE UNIQUE INDEX "creator_accounts_platform_handle_key" ON "creator_accounts" USING btree ("platform",lower("handle"));--> statement-breakpoint
48
+ CREATE INDEX "creator_companies_company_idx" ON "creator_companies" USING btree ("company_id");
@@ -0,0 +1,34 @@
1
+ CREATE TABLE "creator_posts" (
2
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
3
+ "account_id" uuid NOT NULL,
4
+ "creator_id" uuid NOT NULL,
5
+ "platform" text NOT NULL,
6
+ "external_id" text NOT NULL,
7
+ "url" text NOT NULL,
8
+ "kind" text DEFAULT 'video' NOT NULL,
9
+ "title" text,
10
+ "caption" text,
11
+ "published_at" timestamp with time zone,
12
+ "duration_sec" integer,
13
+ "view_count" bigint,
14
+ "like_count" integer,
15
+ "comment_count" integer,
16
+ "thumbnail_url" text,
17
+ "media_url" text,
18
+ "transcript" text,
19
+ "transcript_language" text,
20
+ "transcript_source" text,
21
+ "transcript_segments" jsonb,
22
+ "metadata" jsonb DEFAULT '{}'::jsonb NOT NULL,
23
+ "source_issue_id" uuid,
24
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
25
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
26
+ );
27
+ --> statement-breakpoint
28
+ ALTER TABLE "creator_posts" ADD CONSTRAINT "creator_posts_account_id_creator_accounts_id_fk" FOREIGN KEY ("account_id") REFERENCES "public"."creator_accounts"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
29
+ ALTER TABLE "creator_posts" ADD CONSTRAINT "creator_posts_creator_id_creators_id_fk" FOREIGN KEY ("creator_id") REFERENCES "public"."creators"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
30
+ ALTER TABLE "creator_posts" ADD CONSTRAINT "creator_posts_source_issue_id_issues_id_fk" FOREIGN KEY ("source_issue_id") REFERENCES "public"."issues"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
31
+ CREATE UNIQUE INDEX "creator_posts_platform_external_key" ON "creator_posts" USING btree ("platform","external_id");--> statement-breakpoint
32
+ CREATE INDEX "creator_posts_account_published_idx" ON "creator_posts" USING btree ("account_id","published_at");--> statement-breakpoint
33
+ CREATE INDEX "creator_posts_creator_published_idx" ON "creator_posts" USING btree ("creator_id","published_at");--> statement-breakpoint
34
+ CREATE INDEX "creator_posts_transcript_search_idx" ON "creator_posts" USING gin ("transcript" gin_trgm_ops);
@@ -0,0 +1,5 @@
1
+ ALTER TABLE "companies" ADD COLUMN "default_creator_agent_id" uuid;--> statement-breakpoint
2
+ ALTER TABLE "creator_posts" ADD COLUMN "processing_state" text DEFAULT 'idle' NOT NULL;--> statement-breakpoint
3
+ ALTER TABLE "creator_posts" ADD COLUMN "processing_error" text;--> statement-breakpoint
4
+ ALTER TABLE "creator_posts" ADD COLUMN "processing_issue_id" uuid;--> statement-breakpoint
5
+ ALTER TABLE "creator_posts" ADD CONSTRAINT "creator_posts_processing_issue_id_issues_id_fk" FOREIGN KEY ("processing_issue_id") REFERENCES "public"."issues"("id") ON DELETE set null ON UPDATE no action;
@@ -0,0 +1,2 @@
1
+ ALTER TABLE "creator_posts" ADD COLUMN "metadata_fetched_at" timestamp with time zone;--> statement-breakpoint
2
+ ALTER TABLE "creator_posts" ADD COLUMN "transcript_fetched_at" timestamp with time zone;
@@ -0,0 +1,4 @@
1
+ ALTER TABLE "creator_posts" ADD COLUMN "local_thumbnail_path" text;--> statement-breakpoint
2
+ ALTER TABLE "creator_posts" ADD COLUMN "local_video_path" text;--> statement-breakpoint
3
+ ALTER TABLE "creator_posts" ADD COLUMN "media_fetched_at" timestamp with time zone;--> statement-breakpoint
4
+ ALTER TABLE "creator_posts" ADD COLUMN "media_file_size_bytes" bigint;
@@ -0,0 +1,60 @@
1
+ CREATE TABLE "lead_activities" (
2
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
3
+ "lead_id" uuid NOT NULL,
4
+ "kind" text NOT NULL,
5
+ "issue_id" uuid,
6
+ "agent_id" uuid,
7
+ "metadata" jsonb DEFAULT '{}'::jsonb NOT NULL,
8
+ "occurred_at" timestamp with time zone NOT NULL,
9
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL
10
+ );
11
+ --> statement-breakpoint
12
+ CREATE TABLE "lead_labels" (
13
+ "lead_id" uuid NOT NULL,
14
+ "label_id" uuid NOT NULL,
15
+ "company_id" uuid NOT NULL,
16
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
17
+ CONSTRAINT "lead_labels_pk" PRIMARY KEY("lead_id","label_id")
18
+ );
19
+ --> statement-breakpoint
20
+ CREATE TABLE "leads" (
21
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
22
+ "company_id" uuid NOT NULL,
23
+ "display_name" text NOT NULL,
24
+ "email" text,
25
+ "primary_handle" text,
26
+ "primary_platform" text,
27
+ "source_url" text,
28
+ "lead_kind" text DEFAULT 'editor' NOT NULL,
29
+ "status" text DEFAULT 'drafted' NOT NULL,
30
+ "hungry_signal" text,
31
+ "notes" text,
32
+ "last_contacted_at" timestamp with time zone,
33
+ "last_reply_at" timestamp with time zone,
34
+ "source_issue_id" uuid,
35
+ "created_by_agent_id" uuid,
36
+ "created_by_user_id" text,
37
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
38
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
39
+ );
40
+ --> statement-breakpoint
41
+ ALTER TABLE "lead_activities" ADD CONSTRAINT "lead_activities_lead_id_leads_id_fk" FOREIGN KEY ("lead_id") REFERENCES "public"."leads"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
42
+ ALTER TABLE "lead_activities" ADD CONSTRAINT "lead_activities_issue_id_issues_id_fk" FOREIGN KEY ("issue_id") REFERENCES "public"."issues"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
43
+ ALTER TABLE "lead_activities" ADD CONSTRAINT "lead_activities_agent_id_agents_id_fk" FOREIGN KEY ("agent_id") REFERENCES "public"."agents"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
44
+ ALTER TABLE "lead_labels" ADD CONSTRAINT "lead_labels_lead_id_leads_id_fk" FOREIGN KEY ("lead_id") REFERENCES "public"."leads"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
45
+ ALTER TABLE "lead_labels" ADD CONSTRAINT "lead_labels_label_id_labels_id_fk" FOREIGN KEY ("label_id") REFERENCES "public"."labels"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
46
+ ALTER TABLE "lead_labels" ADD CONSTRAINT "lead_labels_company_id_companies_id_fk" FOREIGN KEY ("company_id") REFERENCES "public"."companies"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
47
+ ALTER TABLE "leads" ADD CONSTRAINT "leads_company_id_companies_id_fk" FOREIGN KEY ("company_id") REFERENCES "public"."companies"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
48
+ ALTER TABLE "leads" ADD CONSTRAINT "leads_source_issue_id_issues_id_fk" FOREIGN KEY ("source_issue_id") REFERENCES "public"."issues"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
49
+ ALTER TABLE "leads" ADD CONSTRAINT "leads_created_by_agent_id_agents_id_fk" FOREIGN KEY ("created_by_agent_id") REFERENCES "public"."agents"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
50
+ CREATE INDEX "lead_activities_lead_occurred_idx" ON "lead_activities" USING btree ("lead_id","occurred_at");--> statement-breakpoint
51
+ CREATE INDEX "lead_activities_issue_idx" ON "lead_activities" USING btree ("issue_id");--> statement-breakpoint
52
+ CREATE INDEX "lead_labels_lead_idx" ON "lead_labels" USING btree ("lead_id");--> statement-breakpoint
53
+ CREATE INDEX "lead_labels_label_idx" ON "lead_labels" USING btree ("label_id");--> statement-breakpoint
54
+ CREATE INDEX "lead_labels_company_idx" ON "lead_labels" USING btree ("company_id");--> statement-breakpoint
55
+ CREATE INDEX "leads_company_kind_idx" ON "leads" USING btree ("company_id","lead_kind");--> statement-breakpoint
56
+ CREATE INDEX "leads_company_status_idx" ON "leads" USING btree ("company_id","status");--> statement-breakpoint
57
+ CREATE INDEX "leads_company_updated_idx" ON "leads" USING btree ("company_id","updated_at");--> statement-breakpoint
58
+ CREATE INDEX "leads_display_name_search_idx" ON "leads" USING gin ("display_name" gin_trgm_ops);--> statement-breakpoint
59
+ CREATE UNIQUE INDEX "leads_company_email_uq" ON "leads" USING btree ("company_id",lower("email"));--> statement-breakpoint
60
+ CREATE UNIQUE INDEX "leads_company_platform_handle_uq" ON "leads" USING btree ("company_id","primary_platform",lower("primary_handle"));
@@ -0,0 +1 @@
1
+ ALTER TABLE "leads" ADD COLUMN "last_synced_at" timestamp with time zone;
@@ -0,0 +1,26 @@
1
+ CREATE TABLE "chat_messages" (
2
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
3
+ "session_id" uuid NOT NULL,
4
+ "role" text NOT NULL,
5
+ "content" jsonb NOT NULL,
6
+ "resolutions" jsonb,
7
+ "stop_reason" text,
8
+ "usage" jsonb,
9
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL
10
+ );
11
+ --> statement-breakpoint
12
+ CREATE TABLE "chat_sessions" (
13
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
14
+ "company_id" uuid NOT NULL,
15
+ "title" text DEFAULT 'New chat' NOT NULL,
16
+ "model" text,
17
+ "last_message_at" timestamp with time zone DEFAULT now() NOT NULL,
18
+ "last_message_preview" text DEFAULT '' NOT NULL,
19
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
20
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
21
+ );
22
+ --> statement-breakpoint
23
+ ALTER TABLE "chat_messages" ADD CONSTRAINT "chat_messages_session_id_chat_sessions_id_fk" FOREIGN KEY ("session_id") REFERENCES "public"."chat_sessions"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
24
+ ALTER TABLE "chat_sessions" ADD CONSTRAINT "chat_sessions_company_id_companies_id_fk" FOREIGN KEY ("company_id") REFERENCES "public"."companies"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
25
+ CREATE INDEX "chat_messages_session_created_idx" ON "chat_messages" USING btree ("session_id","created_at");--> statement-breakpoint
26
+ CREATE INDEX "chat_sessions_company_last_message_idx" ON "chat_sessions" USING btree ("company_id","last_message_at");
@@ -0,0 +1,23 @@
1
+ CREATE TABLE "organizations" (
2
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
3
+ "company_id" uuid NOT NULL,
4
+ "name" text NOT NULL,
5
+ "website_url" text,
6
+ "domain" text,
7
+ "kind" text,
8
+ "notes" text,
9
+ "created_by_agent_id" uuid,
10
+ "created_by_user_id" text,
11
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
12
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
13
+ );
14
+ --> statement-breakpoint
15
+ ALTER TABLE "leads" ADD COLUMN "organization_id" uuid;--> statement-breakpoint
16
+ ALTER TABLE "organizations" ADD CONSTRAINT "organizations_company_id_companies_id_fk" FOREIGN KEY ("company_id") REFERENCES "public"."companies"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
17
+ ALTER TABLE "organizations" ADD CONSTRAINT "organizations_created_by_agent_id_agents_id_fk" FOREIGN KEY ("created_by_agent_id") REFERENCES "public"."agents"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
18
+ CREATE INDEX "organizations_company_updated_idx" ON "organizations" USING btree ("company_id","updated_at");--> statement-breakpoint
19
+ CREATE INDEX "organizations_name_search_idx" ON "organizations" USING gin ("name" gin_trgm_ops);--> statement-breakpoint
20
+ CREATE UNIQUE INDEX "organizations_company_name_uq" ON "organizations" USING btree ("company_id",lower("name"));--> statement-breakpoint
21
+ CREATE UNIQUE INDEX "organizations_company_domain_uq" ON "organizations" USING btree ("company_id",lower("domain")) WHERE "organizations"."domain" IS NOT NULL;--> statement-breakpoint
22
+ ALTER TABLE "leads" ADD CONSTRAINT "leads_organization_id_organizations_id_fk" FOREIGN KEY ("organization_id") REFERENCES "public"."organizations"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
23
+ CREATE INDEX "leads_organization_idx" ON "leads" USING btree ("organization_id");
@@ -0,0 +1,2 @@
1
+ ALTER TABLE "leads" ADD COLUMN "platform_user_id" text;
2
+ ALTER TABLE "leads" ADD COLUMN "signed_up_at" timestamp with time zone;
@@ -0,0 +1,14 @@
1
+ CREATE TABLE "agent_memory" (
2
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
3
+ "agent_id" uuid NOT NULL,
4
+ "company_id" uuid NOT NULL,
5
+ "key" text NOT NULL,
6
+ "value" jsonb NOT NULL,
7
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
8
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
9
+ );
10
+ --> statement-breakpoint
11
+ ALTER TABLE "agent_memory" ADD CONSTRAINT "agent_memory_agent_id_agents_id_fk" FOREIGN KEY ("agent_id") REFERENCES "public"."agents"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
12
+ ALTER TABLE "agent_memory" ADD CONSTRAINT "agent_memory_company_id_companies_id_fk" FOREIGN KEY ("company_id") REFERENCES "public"."companies"("id") ON DELETE no action ON UPDATE no action;--> statement-breakpoint
13
+ CREATE UNIQUE INDEX "agent_memory_agent_key_unique" ON "agent_memory" USING btree ("agent_id","key");--> statement-breakpoint
14
+ CREATE INDEX "agent_memory_company_agent_idx" ON "agent_memory" USING btree ("company_id","agent_id");
@@ -0,0 +1,5 @@
1
+ ALTER TABLE "chat_sessions" ADD COLUMN "continuation_run_id" uuid;--> statement-breakpoint
2
+ ALTER TABLE "chat_sessions" ADD COLUMN "continuation_status" text DEFAULT 'idle' NOT NULL;--> statement-breakpoint
3
+ ALTER TABLE "chat_sessions" ADD COLUMN "continuation_error" text;--> statement-breakpoint
4
+ ALTER TABLE "chat_sessions" ADD COLUMN "continuation_requested_at" timestamp with time zone;--> statement-breakpoint
5
+ ALTER TABLE "chat_sessions" ADD COLUMN "continuation_updated_at" timestamp with time zone;
@@ -0,0 +1 @@
1
+ ALTER TABLE "instance_settings" ADD COLUMN "backup" jsonb DEFAULT '{}'::jsonb NOT NULL;
@@ -0,0 +1 @@
1
+ ALTER TABLE "chat_sessions" ADD COLUMN "adapter_type" text;
@@ -0,0 +1,106 @@
1
+ CREATE TABLE "calendar_events" (
2
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
3
+ "company_id" uuid NOT NULL,
4
+ "title" text NOT NULL,
5
+ "description" text,
6
+ "kind" text DEFAULT 'reminder' NOT NULL,
7
+ "starts_at" timestamp with time zone NOT NULL,
8
+ "ends_at" timestamp with time zone,
9
+ "all_day" boolean DEFAULT false NOT NULL,
10
+ "recurrence_rule" text,
11
+ "location" text,
12
+ "url" text,
13
+ "linked_issue_id" uuid,
14
+ "linked_content_id" uuid,
15
+ "linked_goal_id" uuid,
16
+ "created_by_agent_id" uuid,
17
+ "created_by_user_id" text,
18
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
19
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
20
+ );
21
+ --> statement-breakpoint
22
+ CREATE TABLE "content_activities" (
23
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
24
+ "content_id" uuid NOT NULL,
25
+ "kind" text NOT NULL,
26
+ "issue_id" uuid,
27
+ "agent_id" uuid,
28
+ "metadata" jsonb DEFAULT '{}'::jsonb NOT NULL,
29
+ "occurred_at" timestamp with time zone NOT NULL,
30
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL
31
+ );
32
+ --> statement-breakpoint
33
+ CREATE TABLE "content_labels" (
34
+ "content_id" uuid NOT NULL,
35
+ "label_id" uuid NOT NULL,
36
+ "company_id" uuid NOT NULL,
37
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
38
+ CONSTRAINT "content_labels_pk" PRIMARY KEY("content_id","label_id")
39
+ );
40
+ --> statement-breakpoint
41
+ CREATE TABLE "contents" (
42
+ "id" uuid PRIMARY KEY DEFAULT gen_random_uuid() NOT NULL,
43
+ "company_id" uuid NOT NULL,
44
+ "kind" text DEFAULT 'other' NOT NULL,
45
+ "platform" text DEFAULT 'other' NOT NULL,
46
+ "account_handle" text,
47
+ "status" text DEFAULT 'drafted' NOT NULL,
48
+ "title" text,
49
+ "body" text NOT NULL,
50
+ "media" jsonb DEFAULT '[]'::jsonb NOT NULL,
51
+ "scheduled_at" timestamp with time zone,
52
+ "posted_at" timestamp with time zone,
53
+ "published_url" text,
54
+ "external_id" text,
55
+ "external_metadata" jsonb DEFAULT '{}'::jsonb NOT NULL,
56
+ "publish_method" text,
57
+ "publish_error" text,
58
+ "publish_attempts" integer DEFAULT 0 NOT NULL,
59
+ "source_issue_id" uuid,
60
+ "source_lead_id" uuid,
61
+ "parent_content_id" uuid,
62
+ "series_id" text,
63
+ "created_by_agent_id" uuid,
64
+ "created_by_user_id" text,
65
+ "assigned_agent_id" uuid,
66
+ "assigned_user_id" text,
67
+ "goal_id" uuid,
68
+ "created_at" timestamp with time zone DEFAULT now() NOT NULL,
69
+ "updated_at" timestamp with time zone DEFAULT now() NOT NULL
70
+ );
71
+ --> statement-breakpoint
72
+ ALTER TABLE "calendar_events" ADD CONSTRAINT "calendar_events_company_id_companies_id_fk" FOREIGN KEY ("company_id") REFERENCES "public"."companies"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
73
+ ALTER TABLE "calendar_events" ADD CONSTRAINT "calendar_events_linked_issue_id_issues_id_fk" FOREIGN KEY ("linked_issue_id") REFERENCES "public"."issues"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
74
+ ALTER TABLE "calendar_events" ADD CONSTRAINT "calendar_events_linked_content_id_contents_id_fk" FOREIGN KEY ("linked_content_id") REFERENCES "public"."contents"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
75
+ ALTER TABLE "calendar_events" ADD CONSTRAINT "calendar_events_linked_goal_id_goals_id_fk" FOREIGN KEY ("linked_goal_id") REFERENCES "public"."goals"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
76
+ ALTER TABLE "calendar_events" ADD CONSTRAINT "calendar_events_created_by_agent_id_agents_id_fk" FOREIGN KEY ("created_by_agent_id") REFERENCES "public"."agents"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
77
+ ALTER TABLE "content_activities" ADD CONSTRAINT "content_activities_content_id_contents_id_fk" FOREIGN KEY ("content_id") REFERENCES "public"."contents"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
78
+ ALTER TABLE "content_activities" ADD CONSTRAINT "content_activities_issue_id_issues_id_fk" FOREIGN KEY ("issue_id") REFERENCES "public"."issues"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
79
+ ALTER TABLE "content_activities" ADD CONSTRAINT "content_activities_agent_id_agents_id_fk" FOREIGN KEY ("agent_id") REFERENCES "public"."agents"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
80
+ ALTER TABLE "content_labels" ADD CONSTRAINT "content_labels_content_id_contents_id_fk" FOREIGN KEY ("content_id") REFERENCES "public"."contents"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
81
+ ALTER TABLE "content_labels" ADD CONSTRAINT "content_labels_label_id_labels_id_fk" FOREIGN KEY ("label_id") REFERENCES "public"."labels"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
82
+ ALTER TABLE "content_labels" ADD CONSTRAINT "content_labels_company_id_companies_id_fk" FOREIGN KEY ("company_id") REFERENCES "public"."companies"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
83
+ ALTER TABLE "contents" ADD CONSTRAINT "contents_company_id_companies_id_fk" FOREIGN KEY ("company_id") REFERENCES "public"."companies"("id") ON DELETE cascade ON UPDATE no action;--> statement-breakpoint
84
+ ALTER TABLE "contents" ADD CONSTRAINT "contents_source_issue_id_issues_id_fk" FOREIGN KEY ("source_issue_id") REFERENCES "public"."issues"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
85
+ ALTER TABLE "contents" ADD CONSTRAINT "contents_source_lead_id_leads_id_fk" FOREIGN KEY ("source_lead_id") REFERENCES "public"."leads"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
86
+ ALTER TABLE "contents" ADD CONSTRAINT "contents_parent_content_id_contents_id_fk" FOREIGN KEY ("parent_content_id") REFERENCES "public"."contents"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
87
+ ALTER TABLE "contents" ADD CONSTRAINT "contents_created_by_agent_id_agents_id_fk" FOREIGN KEY ("created_by_agent_id") REFERENCES "public"."agents"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
88
+ ALTER TABLE "contents" ADD CONSTRAINT "contents_assigned_agent_id_agents_id_fk" FOREIGN KEY ("assigned_agent_id") REFERENCES "public"."agents"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
89
+ ALTER TABLE "contents" ADD CONSTRAINT "contents_goal_id_goals_id_fk" FOREIGN KEY ("goal_id") REFERENCES "public"."goals"("id") ON DELETE set null ON UPDATE no action;--> statement-breakpoint
90
+ CREATE INDEX "calendar_events_company_starts_idx" ON "calendar_events" USING btree ("company_id","starts_at");--> statement-breakpoint
91
+ CREATE INDEX "calendar_events_company_kind_idx" ON "calendar_events" USING btree ("company_id","kind");--> statement-breakpoint
92
+ CREATE INDEX "content_activities_content_occurred_idx" ON "content_activities" USING btree ("content_id","occurred_at");--> statement-breakpoint
93
+ CREATE INDEX "content_activities_issue_idx" ON "content_activities" USING btree ("issue_id");--> statement-breakpoint
94
+ CREATE INDEX "content_labels_content_idx" ON "content_labels" USING btree ("content_id");--> statement-breakpoint
95
+ CREATE INDEX "content_labels_label_idx" ON "content_labels" USING btree ("label_id");--> statement-breakpoint
96
+ CREATE INDEX "content_labels_company_idx" ON "content_labels" USING btree ("company_id");--> statement-breakpoint
97
+ CREATE INDEX "contents_company_status_idx" ON "contents" USING btree ("company_id","status");--> statement-breakpoint
98
+ CREATE INDEX "contents_company_scheduled_idx" ON "contents" USING btree ("company_id","scheduled_at");--> statement-breakpoint
99
+ CREATE INDEX "contents_company_posted_idx" ON "contents" USING btree ("company_id","posted_at");--> statement-breakpoint
100
+ CREATE INDEX "contents_company_kind_idx" ON "contents" USING btree ("company_id","kind");--> statement-breakpoint
101
+ CREATE INDEX "contents_company_platform_idx" ON "contents" USING btree ("company_id","platform");--> statement-breakpoint
102
+ CREATE INDEX "contents_company_updated_idx" ON "contents" USING btree ("company_id","updated_at");--> statement-breakpoint
103
+ CREATE INDEX "contents_company_series_idx" ON "contents" USING btree ("company_id","series_id");--> statement-breakpoint
104
+ CREATE INDEX "contents_parent_idx" ON "contents" USING btree ("parent_content_id");--> statement-breakpoint
105
+ CREATE INDEX "contents_body_search_idx" ON "contents" USING gin ("body" gin_trgm_ops);--> statement-breakpoint
106
+ CREATE INDEX "contents_title_search_idx" ON "contents" USING gin ("title" gin_trgm_ops);
@@ -0,0 +1 @@
1
+ ALTER TABLE "heartbeat_runs" ADD COLUMN "prompt_chars" integer;