@tickernelz/paperclip-pro-db 2026.1011.2 → 2026.1012.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 (224) hide show
  1. package/dist/backup-lib.d.ts +2 -0
  2. package/dist/backup-lib.d.ts.map +1 -1
  3. package/dist/backup-lib.js +52 -15
  4. package/dist/backup-lib.js.map +1 -1
  5. package/dist/backup-lib.test.js +64 -2
  6. package/dist/backup-lib.test.js.map +1 -1
  7. package/dist/client.d.ts.map +1 -1
  8. package/dist/client.js +81 -42
  9. package/dist/client.js.map +1 -1
  10. package/dist/client.test.js +33 -0
  11. package/dist/client.test.js.map +1 -1
  12. package/dist/connections-v3-schema-core-migration.test.js +3 -0
  13. package/dist/connections-v3-schema-core-migration.test.js.map +1 -1
  14. package/dist/heartbeat-run-issue-privacy-migration.test.d.ts +2 -0
  15. package/dist/heartbeat-run-issue-privacy-migration.test.d.ts.map +1 -0
  16. package/dist/heartbeat-run-issue-privacy-migration.test.js +265 -0
  17. package/dist/heartbeat-run-issue-privacy-migration.test.js.map +1 -0
  18. package/dist/index.d.ts +1 -0
  19. package/dist/index.d.ts.map +1 -1
  20. package/dist/index.js +1 -0
  21. package/dist/index.js.map +1 -1
  22. package/dist/migrations/0315_chunky_chamber.sql +3 -0
  23. package/dist/migrations/0316_lumpy_maria_hill.sql +157 -0
  24. package/dist/migrations/0317_colossal_otto_octavius.sql +24 -0
  25. package/dist/migrations/0318_supreme_garia.sql +1 -0
  26. package/dist/migrations/0319_curvy_shadow_king.sql +27 -0
  27. package/dist/migrations/0320_chubby_vin_gonzales.sql +7 -0
  28. package/dist/migrations/0321_familiar_titania.sql +4 -0
  29. package/dist/migrations/0322_cool_naoko.sql +3 -0
  30. package/dist/migrations/0323_whole_steel_serpent.sql +20 -0
  31. package/dist/migrations/0324_loving_the_hood.sql +77 -0
  32. package/dist/migrations/0325_agent_commentary.sql +33 -0
  33. package/dist/migrations/0326_mcp_file_transfers.sql +48 -0
  34. package/dist/migrations/0327_easy_eternity.sql +232 -0
  35. package/dist/migrations/0328_private_task_access.sql +278 -0
  36. package/dist/migrations/0329_private_task_draft_assets.sql +28 -0
  37. package/dist/migrations/0330_rapid_emma_frost.sql +44 -0
  38. package/dist/migrations/0331_premium_slayback.sql +81 -0
  39. package/dist/migrations/0332_messy_famine.sql +189 -0
  40. package/dist/migrations/0333_strong_blacklash.sql +23 -0
  41. package/dist/migrations/0334_heavy_captain_midlands.sql +15 -0
  42. package/dist/migrations/0335_daily_onslaught.sql +16 -0
  43. package/dist/migrations/0336_acoustic_human_fly.sql +1 -0
  44. package/dist/migrations/0337_reflective_kree.sql +98 -0
  45. package/dist/migrations/0338_petite_shockwave.sql +4 -0
  46. package/dist/migrations/0339_long_franklin_storm.sql +153 -0
  47. package/dist/migrations/0340_aberrant_machine_man.sql +6 -0
  48. package/dist/migrations/0341_blushing_screwball.sql +17 -0
  49. package/dist/migrations/0342_sad_proteus.sql +23 -0
  50. package/dist/migrations/0343_chunky_mentallo.sql +52 -0
  51. package/dist/migrations/0344_free_wolf_cub.sql +18 -0
  52. package/dist/migrations/0345_spooky_white_tiger.sql +7 -0
  53. package/dist/migrations/0346_panoramic_spyke.sql +74 -0
  54. package/dist/migrations/0347_little_night_nurse.sql +1 -0
  55. package/dist/migrations/meta/_journal.json +232 -1
  56. package/dist/private-task-draft-assets-migration.test.d.ts +2 -0
  57. package/dist/private-task-draft-assets-migration.test.d.ts.map +1 -0
  58. package/dist/private-task-draft-assets-migration.test.js +35 -0
  59. package/dist/private-task-draft-assets-migration.test.js.map +1 -0
  60. package/dist/question-response-history-migration.test.d.ts +2 -0
  61. package/dist/question-response-history-migration.test.d.ts.map +1 -0
  62. package/dist/question-response-history-migration.test.js +53 -0
  63. package/dist/question-response-history-migration.test.js.map +1 -0
  64. package/dist/schema/accounting.d.ts +1282 -0
  65. package/dist/schema/accounting.d.ts.map +1 -0
  66. package/dist/schema/accounting.js +120 -0
  67. package/dist/schema/accounting.js.map +1 -0
  68. package/dist/schema/adapter_auth_sessions.d.ts +2 -2
  69. package/dist/schema/agent_commentary.d.ts +181 -0
  70. package/dist/schema/agent_commentary.d.ts.map +1 -0
  71. package/dist/schema/agent_commentary.js +24 -0
  72. package/dist/schema/agent_commentary.js.map +1 -0
  73. package/dist/schema/agent_identity_keys.d.ts +131 -0
  74. package/dist/schema/agent_identity_keys.d.ts.map +1 -0
  75. package/dist/schema/agent_identity_keys.js +20 -0
  76. package/dist/schema/agent_identity_keys.js.map +1 -0
  77. package/dist/schema/agent_runtime_state.d.ts +2 -2
  78. package/dist/schema/agent_runtime_state.js +2 -2
  79. package/dist/schema/agent_runtime_state.js.map +1 -1
  80. package/dist/schema/agent_wakeup_requests.d.ts.map +1 -1
  81. package/dist/schema/agent_wakeup_requests.js +6 -0
  82. package/dist/schema/agent_wakeup_requests.js.map +1 -1
  83. package/dist/schema/agents.d.ts +132 -2
  84. package/dist/schema/agents.d.ts.map +1 -1
  85. package/dist/schema/agents.js +10 -2
  86. package/dist/schema/agents.js.map +1 -1
  87. package/dist/schema/ai_connection_defaults.d.ts +2 -2
  88. package/dist/schema/ai_connection_defaults.js +1 -1
  89. package/dist/schema/ai_connection_defaults.js.map +1 -1
  90. package/dist/schema/ai_connection_routing.d.ts +8 -8
  91. package/dist/schema/ai_provider_defaults.d.ts +2 -2
  92. package/dist/schema/ai_provider_defaults.js +1 -1
  93. package/dist/schema/ai_provider_defaults.js.map +1 -1
  94. package/dist/schema/ai_subscriptions.d.ts +619 -0
  95. package/dist/schema/ai_subscriptions.d.ts.map +1 -0
  96. package/dist/schema/ai_subscriptions.js +61 -0
  97. package/dist/schema/ai_subscriptions.js.map +1 -0
  98. package/dist/schema/budget_incidents.d.ts +2 -2
  99. package/dist/schema/budget_incidents.js +3 -3
  100. package/dist/schema/budget_incidents.js.map +1 -1
  101. package/dist/schema/budget_policies.d.ts +68 -0
  102. package/dist/schema/budget_policies.d.ts.map +1 -1
  103. package/dist/schema/budget_policies.js +7 -1
  104. package/dist/schema/budget_policies.js.map +1 -1
  105. package/dist/schema/chat_channels.d.ts +21 -4
  106. package/dist/schema/chat_channels.d.ts.map +1 -1
  107. package/dist/schema/chat_channels.js +3 -2
  108. package/dist/schema/chat_channels.js.map +1 -1
  109. package/dist/schema/chat_github.d.ts +108 -0
  110. package/dist/schema/chat_github.d.ts.map +1 -1
  111. package/dist/schema/chat_github.js +7 -0
  112. package/dist/schema/chat_github.js.map +1 -1
  113. package/dist/schema/chat_slack_registrations.d.ts +287 -0
  114. package/dist/schema/chat_slack_registrations.d.ts.map +1 -0
  115. package/dist/schema/chat_slack_registrations.js +26 -0
  116. package/dist/schema/chat_slack_registrations.js.map +1 -0
  117. package/dist/schema/chat_voice_callbacks.d.ts +128 -0
  118. package/dist/schema/chat_voice_callbacks.d.ts.map +1 -0
  119. package/dist/schema/chat_voice_callbacks.js +18 -0
  120. package/dist/schema/chat_voice_callbacks.js.map +1 -0
  121. package/dist/schema/chat_voice_inbound.d.ts +461 -0
  122. package/dist/schema/chat_voice_inbound.d.ts.map +1 -0
  123. package/dist/schema/chat_voice_inbound.js +45 -0
  124. package/dist/schema/chat_voice_inbound.js.map +1 -0
  125. package/dist/schema/chat_voice_reports.d.ts +184 -0
  126. package/dist/schema/chat_voice_reports.d.ts.map +1 -0
  127. package/dist/schema/chat_voice_reports.js +24 -0
  128. package/dist/schema/chat_voice_reports.js.map +1 -0
  129. package/dist/schema/chat_voice_sessions.d.ts +730 -0
  130. package/dist/schema/chat_voice_sessions.d.ts.map +1 -0
  131. package/dist/schema/chat_voice_sessions.js +85 -0
  132. package/dist/schema/chat_voice_sessions.js.map +1 -0
  133. package/dist/schema/companies.d.ts +19 -2
  134. package/dist/schema/companies.d.ts.map +1 -1
  135. package/dist/schema/companies.js +3 -2
  136. package/dist/schema/companies.js.map +1 -1
  137. package/dist/schema/cost_events.d.ts +141 -3
  138. package/dist/schema/cost_events.d.ts.map +1 -1
  139. package/dist/schema/cost_events.js +20 -3
  140. package/dist/schema/cost_events.js.map +1 -1
  141. package/dist/schema/decision_models.d.ts +579 -0
  142. package/dist/schema/decision_models.d.ts.map +1 -0
  143. package/dist/schema/decision_models.js +50 -0
  144. package/dist/schema/decision_models.js.map +1 -0
  145. package/dist/schema/dot_runner.d.ts +980 -0
  146. package/dist/schema/dot_runner.d.ts.map +1 -0
  147. package/dist/schema/dot_runner.js +82 -0
  148. package/dist/schema/dot_runner.js.map +1 -0
  149. package/dist/schema/fast_responses.d.ts +662 -0
  150. package/dist/schema/fast_responses.d.ts.map +1 -0
  151. package/dist/schema/fast_responses.js +65 -0
  152. package/dist/schema/fast_responses.js.map +1 -0
  153. package/dist/schema/finance_events.d.ts +36 -2
  154. package/dist/schema/finance_events.d.ts.map +1 -1
  155. package/dist/schema/finance_events.js +5 -2
  156. package/dist/schema/finance_events.js.map +1 -1
  157. package/dist/schema/heartbeat_runs.d.ts +138 -0
  158. package/dist/schema/heartbeat_runs.d.ts.map +1 -1
  159. package/dist/schema/heartbeat_runs.js +17 -1
  160. package/dist/schema/heartbeat_runs.js.map +1 -1
  161. package/dist/schema/index.d.ts +17 -0
  162. package/dist/schema/index.d.ts.map +1 -1
  163. package/dist/schema/index.js +17 -0
  164. package/dist/schema/index.js.map +1 -1
  165. package/dist/schema/issue_access_grants.d.ts +161 -0
  166. package/dist/schema/issue_access_grants.d.ts.map +1 -0
  167. package/dist/schema/issue_access_grants.js +21 -0
  168. package/dist/schema/issue_access_grants.js.map +1 -0
  169. package/dist/schema/issue_comments.d.ts +36 -0
  170. package/dist/schema/issue_comments.d.ts.map +1 -1
  171. package/dist/schema/issue_comments.js +2 -0
  172. package/dist/schema/issue_comments.js.map +1 -1
  173. package/dist/schema/issues.d.ts +51 -0
  174. package/dist/schema/issues.d.ts.map +1 -1
  175. package/dist/schema/issues.js +6 -0
  176. package/dist/schema/issues.js.map +1 -1
  177. package/dist/schema/plugin_lifecycle_acknowledgments.d.ts +59 -0
  178. package/dist/schema/plugin_lifecycle_acknowledgments.d.ts.map +1 -0
  179. package/dist/schema/plugin_lifecycle_acknowledgments.js +12 -0
  180. package/dist/schema/plugin_lifecycle_acknowledgments.js.map +1 -0
  181. package/dist/schema/project_access_members.d.ts +111 -0
  182. package/dist/schema/project_access_members.d.ts.map +1 -0
  183. package/dist/schema/project_access_members.js +18 -0
  184. package/dist/schema/project_access_members.js.map +1 -0
  185. package/dist/schema/projects.d.ts +51 -0
  186. package/dist/schema/projects.d.ts.map +1 -1
  187. package/dist/schema/projects.js +9 -1
  188. package/dist/schema/projects.js.map +1 -1
  189. package/dist/schema/public_mcp.d.ts +2100 -0
  190. package/dist/schema/public_mcp.d.ts.map +1 -0
  191. package/dist/schema/public_mcp.js +191 -0
  192. package/dist/schema/public_mcp.js.map +1 -0
  193. package/dist/schema/resource_lifecycle_events.d.ts +2 -2
  194. package/dist/schema/resource_lifecycle_events.d.ts.map +1 -1
  195. package/dist/schema/resource_lifecycle_events.js +2 -1
  196. package/dist/schema/resource_lifecycle_events.js.map +1 -1
  197. package/dist/schema/status_cards.d.ts +2 -2
  198. package/dist/schema/status_cards.js +2 -2
  199. package/dist/schema/status_cards.js.map +1 -1
  200. package/dist/schema/tool_access.d.ts +18 -0
  201. package/dist/schema/tool_access.d.ts.map +1 -1
  202. package/dist/schema/tool_access.js +3 -3
  203. package/dist/schema/tool_access.js.map +1 -1
  204. package/dist/schema/user_company_preferences.d.ts +127 -0
  205. package/dist/schema/user_company_preferences.d.ts.map +1 -0
  206. package/dist/schema/user_company_preferences.js +16 -0
  207. package/dist/schema/user_company_preferences.js.map +1 -0
  208. package/dist/speko-voice-migration.test.d.ts +2 -0
  209. package/dist/speko-voice-migration.test.d.ts.map +1 -0
  210. package/dist/speko-voice-migration.test.js +88 -0
  211. package/dist/speko-voice-migration.test.js.map +1 -0
  212. package/dist/work-signals.d.ts +20 -0
  213. package/dist/work-signals.d.ts.map +1 -0
  214. package/dist/work-signals.js +123 -0
  215. package/dist/work-signals.js.map +1 -0
  216. package/dist/work-signals.test.d.ts +2 -0
  217. package/dist/work-signals.test.d.ts.map +1 -0
  218. package/dist/work-signals.test.js +177 -0
  219. package/dist/work-signals.test.js.map +1 -0
  220. package/package.json +4 -4
  221. package/dist/seed.d.ts +0 -2
  222. package/dist/seed.d.ts.map +0 -1
  223. package/dist/seed.js +0 -91
  224. package/dist/seed.js.map +0 -1
@@ -0,0 +1,619 @@
1
+ /** An estimate of a recurring account fee, deliberately separate from receipts. */
2
+ export declare const aiSubscriptions: import("drizzle-orm/pg-core").PgTableWithColumns<{
3
+ name: "ai_subscriptions";
4
+ schema: undefined;
5
+ columns: {
6
+ id: import("drizzle-orm/pg-core").PgColumn<{
7
+ name: "id";
8
+ tableName: "ai_subscriptions";
9
+ dataType: "string";
10
+ columnType: "PgUUID";
11
+ data: string;
12
+ driverParam: string;
13
+ notNull: true;
14
+ hasDefault: true;
15
+ isPrimaryKey: true;
16
+ isAutoincrement: false;
17
+ hasRuntimeDefault: false;
18
+ enumValues: undefined;
19
+ baseColumn: never;
20
+ identity: undefined;
21
+ generated: undefined;
22
+ }, {}, {}>;
23
+ companyId: import("drizzle-orm/pg-core").PgColumn<{
24
+ name: "company_id";
25
+ tableName: "ai_subscriptions";
26
+ dataType: "string";
27
+ columnType: "PgUUID";
28
+ data: string;
29
+ driverParam: string;
30
+ notNull: true;
31
+ hasDefault: false;
32
+ isPrimaryKey: false;
33
+ isAutoincrement: false;
34
+ hasRuntimeDefault: false;
35
+ enumValues: undefined;
36
+ baseColumn: never;
37
+ identity: undefined;
38
+ generated: undefined;
39
+ }, {}, {}>;
40
+ provider: import("drizzle-orm/pg-core").PgColumn<{
41
+ name: "provider";
42
+ tableName: "ai_subscriptions";
43
+ dataType: "string";
44
+ columnType: "PgText";
45
+ data: string;
46
+ driverParam: string;
47
+ notNull: true;
48
+ hasDefault: false;
49
+ isPrimaryKey: false;
50
+ isAutoincrement: false;
51
+ hasRuntimeDefault: false;
52
+ enumValues: [string, ...string[]];
53
+ baseColumn: never;
54
+ identity: undefined;
55
+ generated: undefined;
56
+ }, {}, {}>;
57
+ accountKey: import("drizzle-orm/pg-core").PgColumn<{
58
+ name: "account_key";
59
+ tableName: "ai_subscriptions";
60
+ dataType: "string";
61
+ columnType: "PgText";
62
+ data: string;
63
+ driverParam: string;
64
+ notNull: true;
65
+ hasDefault: false;
66
+ isPrimaryKey: false;
67
+ isAutoincrement: false;
68
+ hasRuntimeDefault: false;
69
+ enumValues: [string, ...string[]];
70
+ baseColumn: never;
71
+ identity: undefined;
72
+ generated: undefined;
73
+ }, {}, {}>;
74
+ identityVerified: import("drizzle-orm/pg-core").PgColumn<{
75
+ name: "identity_verified";
76
+ tableName: "ai_subscriptions";
77
+ dataType: "boolean";
78
+ columnType: "PgBoolean";
79
+ data: boolean;
80
+ driverParam: boolean;
81
+ notNull: true;
82
+ hasDefault: true;
83
+ isPrimaryKey: false;
84
+ isAutoincrement: false;
85
+ hasRuntimeDefault: false;
86
+ enumValues: undefined;
87
+ baseColumn: never;
88
+ identity: undefined;
89
+ generated: undefined;
90
+ }, {}, {}>;
91
+ name: import("drizzle-orm/pg-core").PgColumn<{
92
+ name: "name";
93
+ tableName: "ai_subscriptions";
94
+ dataType: "string";
95
+ columnType: "PgText";
96
+ data: string;
97
+ driverParam: string;
98
+ notNull: true;
99
+ hasDefault: false;
100
+ isPrimaryKey: false;
101
+ isAutoincrement: false;
102
+ hasRuntimeDefault: false;
103
+ enumValues: [string, ...string[]];
104
+ baseColumn: never;
105
+ identity: undefined;
106
+ generated: undefined;
107
+ }, {}, {}>;
108
+ ownerUserIds: import("drizzle-orm/pg-core").PgColumn<{
109
+ name: "owner_user_ids";
110
+ tableName: "ai_subscriptions";
111
+ dataType: "array";
112
+ columnType: "PgArray";
113
+ data: string[];
114
+ driverParam: string | string[];
115
+ notNull: true;
116
+ hasDefault: true;
117
+ isPrimaryKey: false;
118
+ isAutoincrement: false;
119
+ hasRuntimeDefault: false;
120
+ enumValues: [string, ...string[]];
121
+ baseColumn: import("drizzle-orm").Column<{
122
+ name: "owner_user_ids";
123
+ tableName: "ai_subscriptions";
124
+ dataType: "string";
125
+ columnType: "PgText";
126
+ data: string;
127
+ driverParam: string;
128
+ notNull: false;
129
+ hasDefault: false;
130
+ isPrimaryKey: false;
131
+ isAutoincrement: false;
132
+ hasRuntimeDefault: false;
133
+ enumValues: [string, ...string[]];
134
+ baseColumn: never;
135
+ identity: undefined;
136
+ generated: undefined;
137
+ }, {}, {}>;
138
+ identity: undefined;
139
+ generated: undefined;
140
+ }, {}, {
141
+ baseBuilder: import("drizzle-orm/pg-core").PgColumnBuilder<{
142
+ name: "owner_user_ids";
143
+ dataType: 'string';
144
+ columnType: 'PgText';
145
+ data: string;
146
+ enumValues: [string, ...string[]];
147
+ driverParam: string;
148
+ }, {}, {}, import("drizzle-orm").ColumnBuilderExtraConfig>;
149
+ size: undefined;
150
+ }>;
151
+ shared: import("drizzle-orm/pg-core").PgColumn<{
152
+ name: "shared";
153
+ tableName: "ai_subscriptions";
154
+ dataType: "boolean";
155
+ columnType: "PgBoolean";
156
+ data: boolean;
157
+ driverParam: boolean;
158
+ notNull: true;
159
+ hasDefault: true;
160
+ isPrimaryKey: false;
161
+ isAutoincrement: false;
162
+ hasRuntimeDefault: false;
163
+ enumValues: undefined;
164
+ baseColumn: never;
165
+ identity: undefined;
166
+ generated: undefined;
167
+ }, {}, {}>;
168
+ detectedPlan: import("drizzle-orm/pg-core").PgColumn<{
169
+ name: "detected_plan";
170
+ tableName: "ai_subscriptions";
171
+ dataType: "string";
172
+ columnType: "PgText";
173
+ data: string;
174
+ driverParam: string;
175
+ notNull: false;
176
+ hasDefault: false;
177
+ isPrimaryKey: false;
178
+ isAutoincrement: false;
179
+ hasRuntimeDefault: false;
180
+ enumValues: [string, ...string[]];
181
+ baseColumn: never;
182
+ identity: undefined;
183
+ generated: undefined;
184
+ }, {}, {}>;
185
+ observedAt: import("drizzle-orm/pg-core").PgColumn<{
186
+ name: "observed_at";
187
+ tableName: "ai_subscriptions";
188
+ dataType: "date";
189
+ columnType: "PgTimestamp";
190
+ data: Date;
191
+ driverParam: string;
192
+ notNull: false;
193
+ hasDefault: false;
194
+ isPrimaryKey: false;
195
+ isAutoincrement: false;
196
+ hasRuntimeDefault: false;
197
+ enumValues: undefined;
198
+ baseColumn: never;
199
+ identity: undefined;
200
+ generated: undefined;
201
+ }, {}, {}>;
202
+ lastCheckedAt: import("drizzle-orm/pg-core").PgColumn<{
203
+ name: "last_checked_at";
204
+ tableName: "ai_subscriptions";
205
+ dataType: "date";
206
+ columnType: "PgTimestamp";
207
+ data: Date;
208
+ driverParam: string;
209
+ notNull: false;
210
+ hasDefault: false;
211
+ isPrimaryKey: false;
212
+ isAutoincrement: false;
213
+ hasRuntimeDefault: false;
214
+ enumValues: undefined;
215
+ baseColumn: never;
216
+ identity: undefined;
217
+ generated: undefined;
218
+ }, {}, {}>;
219
+ refreshStatus: import("drizzle-orm/pg-core").PgColumn<{
220
+ name: "refresh_status";
221
+ tableName: "ai_subscriptions";
222
+ dataType: "string";
223
+ columnType: "PgText";
224
+ data: "ok" | "unavailable";
225
+ driverParam: string;
226
+ notNull: false;
227
+ hasDefault: false;
228
+ isPrimaryKey: false;
229
+ isAutoincrement: false;
230
+ hasRuntimeDefault: false;
231
+ enumValues: [string, ...string[]];
232
+ baseColumn: never;
233
+ identity: undefined;
234
+ generated: undefined;
235
+ }, {}, {
236
+ $type: "ok" | "unavailable";
237
+ }>;
238
+ mergedIntoId: import("drizzle-orm/pg-core").PgColumn<{
239
+ name: "merged_into_id";
240
+ tableName: "ai_subscriptions";
241
+ dataType: "string";
242
+ columnType: "PgUUID";
243
+ data: string;
244
+ driverParam: string;
245
+ notNull: false;
246
+ hasDefault: false;
247
+ isPrimaryKey: false;
248
+ isAutoincrement: false;
249
+ hasRuntimeDefault: false;
250
+ enumValues: undefined;
251
+ baseColumn: never;
252
+ identity: undefined;
253
+ generated: undefined;
254
+ }, {}, {}>;
255
+ revision: import("drizzle-orm/pg-core").PgColumn<{
256
+ name: "revision";
257
+ tableName: "ai_subscriptions";
258
+ dataType: "number";
259
+ columnType: "PgInteger";
260
+ data: number;
261
+ driverParam: string | number;
262
+ notNull: true;
263
+ hasDefault: true;
264
+ isPrimaryKey: false;
265
+ isAutoincrement: false;
266
+ hasRuntimeDefault: false;
267
+ enumValues: undefined;
268
+ baseColumn: never;
269
+ identity: undefined;
270
+ generated: undefined;
271
+ }, {}, {}>;
272
+ createdAt: import("drizzle-orm/pg-core").PgColumn<{
273
+ name: "created_at";
274
+ tableName: "ai_subscriptions";
275
+ dataType: "date";
276
+ columnType: "PgTimestamp";
277
+ data: Date;
278
+ driverParam: string;
279
+ notNull: true;
280
+ hasDefault: true;
281
+ isPrimaryKey: false;
282
+ isAutoincrement: false;
283
+ hasRuntimeDefault: false;
284
+ enumValues: undefined;
285
+ baseColumn: never;
286
+ identity: undefined;
287
+ generated: undefined;
288
+ }, {}, {}>;
289
+ };
290
+ dialect: 'pg';
291
+ }>;
292
+ export declare const aiSubscriptionPrices: import("drizzle-orm/pg-core").PgTableWithColumns<{
293
+ name: "ai_subscription_prices";
294
+ schema: undefined;
295
+ columns: {
296
+ id: import("drizzle-orm/pg-core").PgColumn<{
297
+ name: "id";
298
+ tableName: "ai_subscription_prices";
299
+ dataType: "string";
300
+ columnType: "PgUUID";
301
+ data: string;
302
+ driverParam: string;
303
+ notNull: true;
304
+ hasDefault: true;
305
+ isPrimaryKey: true;
306
+ isAutoincrement: false;
307
+ hasRuntimeDefault: false;
308
+ enumValues: undefined;
309
+ baseColumn: never;
310
+ identity: undefined;
311
+ generated: undefined;
312
+ }, {}, {}>;
313
+ companyId: import("drizzle-orm/pg-core").PgColumn<{
314
+ name: "company_id";
315
+ tableName: "ai_subscription_prices";
316
+ dataType: "string";
317
+ columnType: "PgUUID";
318
+ data: string;
319
+ driverParam: string;
320
+ notNull: true;
321
+ hasDefault: false;
322
+ isPrimaryKey: false;
323
+ isAutoincrement: false;
324
+ hasRuntimeDefault: false;
325
+ enumValues: undefined;
326
+ baseColumn: never;
327
+ identity: undefined;
328
+ generated: undefined;
329
+ }, {}, {}>;
330
+ subscriptionId: import("drizzle-orm/pg-core").PgColumn<{
331
+ name: "subscription_id";
332
+ tableName: "ai_subscription_prices";
333
+ dataType: "string";
334
+ columnType: "PgUUID";
335
+ data: string;
336
+ driverParam: string;
337
+ notNull: true;
338
+ hasDefault: false;
339
+ isPrimaryKey: false;
340
+ isAutoincrement: false;
341
+ hasRuntimeDefault: false;
342
+ enumValues: undefined;
343
+ baseColumn: never;
344
+ identity: undefined;
345
+ generated: undefined;
346
+ }, {}, {}>;
347
+ revision: import("drizzle-orm/pg-core").PgColumn<{
348
+ name: "revision";
349
+ tableName: "ai_subscription_prices";
350
+ dataType: "number";
351
+ columnType: "PgInteger";
352
+ data: number;
353
+ driverParam: string | number;
354
+ notNull: true;
355
+ hasDefault: false;
356
+ isPrimaryKey: false;
357
+ isAutoincrement: false;
358
+ hasRuntimeDefault: false;
359
+ enumValues: undefined;
360
+ baseColumn: never;
361
+ identity: undefined;
362
+ generated: undefined;
363
+ }, {}, {}>;
364
+ plan: import("drizzle-orm/pg-core").PgColumn<{
365
+ name: "plan";
366
+ tableName: "ai_subscription_prices";
367
+ dataType: "string";
368
+ columnType: "PgText";
369
+ data: string;
370
+ driverParam: string;
371
+ notNull: true;
372
+ hasDefault: false;
373
+ isPrimaryKey: false;
374
+ isAutoincrement: false;
375
+ hasRuntimeDefault: false;
376
+ enumValues: [string, ...string[]];
377
+ baseColumn: never;
378
+ identity: undefined;
379
+ generated: undefined;
380
+ }, {}, {}>;
381
+ amountCents: import("drizzle-orm/pg-core").PgColumn<{
382
+ name: "amount_cents";
383
+ tableName: "ai_subscription_prices";
384
+ dataType: "string";
385
+ columnType: "PgNumeric";
386
+ data: string;
387
+ driverParam: string;
388
+ notNull: false;
389
+ hasDefault: false;
390
+ isPrimaryKey: false;
391
+ isAutoincrement: false;
392
+ hasRuntimeDefault: false;
393
+ enumValues: undefined;
394
+ baseColumn: never;
395
+ identity: undefined;
396
+ generated: undefined;
397
+ }, {}, {}>;
398
+ currency: import("drizzle-orm/pg-core").PgColumn<{
399
+ name: "currency";
400
+ tableName: "ai_subscription_prices";
401
+ dataType: "string";
402
+ columnType: "PgText";
403
+ data: string;
404
+ driverParam: string;
405
+ notNull: true;
406
+ hasDefault: true;
407
+ isPrimaryKey: false;
408
+ isAutoincrement: false;
409
+ hasRuntimeDefault: false;
410
+ enumValues: [string, ...string[]];
411
+ baseColumn: never;
412
+ identity: undefined;
413
+ generated: undefined;
414
+ }, {}, {}>;
415
+ cadence: import("drizzle-orm/pg-core").PgColumn<{
416
+ name: "cadence";
417
+ tableName: "ai_subscription_prices";
418
+ dataType: "string";
419
+ columnType: "PgText";
420
+ data: "month" | "year";
421
+ driverParam: string;
422
+ notNull: true;
423
+ hasDefault: true;
424
+ isPrimaryKey: false;
425
+ isAutoincrement: false;
426
+ hasRuntimeDefault: false;
427
+ enumValues: [string, ...string[]];
428
+ baseColumn: never;
429
+ identity: undefined;
430
+ generated: undefined;
431
+ }, {}, {
432
+ $type: "month" | "year";
433
+ }>;
434
+ status: import("drizzle-orm/pg-core").PgColumn<{
435
+ name: "status";
436
+ tableName: "ai_subscription_prices";
437
+ dataType: "string";
438
+ columnType: "PgText";
439
+ data: "active" | "ended" | "excluded";
440
+ driverParam: string;
441
+ notNull: true;
442
+ hasDefault: true;
443
+ isPrimaryKey: false;
444
+ isAutoincrement: false;
445
+ hasRuntimeDefault: false;
446
+ enumValues: [string, ...string[]];
447
+ baseColumn: never;
448
+ identity: undefined;
449
+ generated: undefined;
450
+ }, {}, {
451
+ $type: "active" | "ended" | "excluded";
452
+ }>;
453
+ source: import("drizzle-orm/pg-core").PgColumn<{
454
+ name: "source";
455
+ tableName: "ai_subscription_prices";
456
+ dataType: "string";
457
+ columnType: "PgText";
458
+ data: "catalog" | "unknown" | "user";
459
+ driverParam: string;
460
+ notNull: true;
461
+ hasDefault: false;
462
+ isPrimaryKey: false;
463
+ isAutoincrement: false;
464
+ hasRuntimeDefault: false;
465
+ enumValues: [string, ...string[]];
466
+ baseColumn: never;
467
+ identity: undefined;
468
+ generated: undefined;
469
+ }, {}, {
470
+ $type: "catalog" | "unknown" | "user";
471
+ }>;
472
+ sourceUrl: import("drizzle-orm/pg-core").PgColumn<{
473
+ name: "source_url";
474
+ tableName: "ai_subscription_prices";
475
+ dataType: "string";
476
+ columnType: "PgText";
477
+ data: string;
478
+ driverParam: string;
479
+ notNull: false;
480
+ hasDefault: false;
481
+ isPrimaryKey: false;
482
+ isAutoincrement: false;
483
+ hasRuntimeDefault: false;
484
+ enumValues: [string, ...string[]];
485
+ baseColumn: never;
486
+ identity: undefined;
487
+ generated: undefined;
488
+ }, {}, {}>;
489
+ effectiveAt: import("drizzle-orm/pg-core").PgColumn<{
490
+ name: "effective_at";
491
+ tableName: "ai_subscription_prices";
492
+ dataType: "date";
493
+ columnType: "PgTimestamp";
494
+ data: Date;
495
+ driverParam: string;
496
+ notNull: true;
497
+ hasDefault: true;
498
+ isPrimaryKey: false;
499
+ isAutoincrement: false;
500
+ hasRuntimeDefault: false;
501
+ enumValues: undefined;
502
+ baseColumn: never;
503
+ identity: undefined;
504
+ generated: undefined;
505
+ }, {}, {}>;
506
+ };
507
+ dialect: 'pg';
508
+ }>;
509
+ /** Current credential-to-account binding. Runs snapshot the subscription ID. */
510
+ export declare const aiSubscriptionConnections: import("drizzle-orm/pg-core").PgTableWithColumns<{
511
+ name: "ai_subscription_connections";
512
+ schema: undefined;
513
+ columns: {
514
+ id: import("drizzle-orm/pg-core").PgColumn<{
515
+ name: "id";
516
+ tableName: "ai_subscription_connections";
517
+ dataType: "string";
518
+ columnType: "PgUUID";
519
+ data: string;
520
+ driverParam: string;
521
+ notNull: true;
522
+ hasDefault: true;
523
+ isPrimaryKey: true;
524
+ isAutoincrement: false;
525
+ hasRuntimeDefault: false;
526
+ enumValues: undefined;
527
+ baseColumn: never;
528
+ identity: undefined;
529
+ generated: undefined;
530
+ }, {}, {}>;
531
+ companyId: import("drizzle-orm/pg-core").PgColumn<{
532
+ name: "company_id";
533
+ tableName: "ai_subscription_connections";
534
+ dataType: "string";
535
+ columnType: "PgUUID";
536
+ data: string;
537
+ driverParam: string;
538
+ notNull: true;
539
+ hasDefault: false;
540
+ isPrimaryKey: false;
541
+ isAutoincrement: false;
542
+ hasRuntimeDefault: false;
543
+ enumValues: undefined;
544
+ baseColumn: never;
545
+ identity: undefined;
546
+ generated: undefined;
547
+ }, {}, {}>;
548
+ connectionId: import("drizzle-orm/pg-core").PgColumn<{
549
+ name: "connection_id";
550
+ tableName: "ai_subscription_connections";
551
+ dataType: "string";
552
+ columnType: "PgUUID";
553
+ data: string;
554
+ driverParam: string;
555
+ notNull: true;
556
+ hasDefault: false;
557
+ isPrimaryKey: false;
558
+ isAutoincrement: false;
559
+ hasRuntimeDefault: false;
560
+ enumValues: undefined;
561
+ baseColumn: never;
562
+ identity: undefined;
563
+ generated: undefined;
564
+ }, {}, {}>;
565
+ grantId: import("drizzle-orm/pg-core").PgColumn<{
566
+ name: "grant_id";
567
+ tableName: "ai_subscription_connections";
568
+ dataType: "string";
569
+ columnType: "PgUUID";
570
+ data: string;
571
+ driverParam: string;
572
+ notNull: true;
573
+ hasDefault: false;
574
+ isPrimaryKey: false;
575
+ isAutoincrement: false;
576
+ hasRuntimeDefault: false;
577
+ enumValues: undefined;
578
+ baseColumn: never;
579
+ identity: undefined;
580
+ generated: undefined;
581
+ }, {}, {}>;
582
+ credentialKey: import("drizzle-orm/pg-core").PgColumn<{
583
+ name: "credential_key";
584
+ tableName: "ai_subscription_connections";
585
+ dataType: "string";
586
+ columnType: "PgText";
587
+ data: string;
588
+ driverParam: string;
589
+ notNull: true;
590
+ hasDefault: false;
591
+ isPrimaryKey: false;
592
+ isAutoincrement: false;
593
+ hasRuntimeDefault: false;
594
+ enumValues: [string, ...string[]];
595
+ baseColumn: never;
596
+ identity: undefined;
597
+ generated: undefined;
598
+ }, {}, {}>;
599
+ subscriptionId: import("drizzle-orm/pg-core").PgColumn<{
600
+ name: "subscription_id";
601
+ tableName: "ai_subscription_connections";
602
+ dataType: "string";
603
+ columnType: "PgUUID";
604
+ data: string;
605
+ driverParam: string;
606
+ notNull: true;
607
+ hasDefault: false;
608
+ isPrimaryKey: false;
609
+ isAutoincrement: false;
610
+ hasRuntimeDefault: false;
611
+ enumValues: undefined;
612
+ baseColumn: never;
613
+ identity: undefined;
614
+ generated: undefined;
615
+ }, {}, {}>;
616
+ };
617
+ dialect: 'pg';
618
+ }>;
619
+ //# sourceMappingURL=ai_subscriptions.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ai_subscriptions.d.ts","sourceRoot":"","sources":["../../src/schema/ai_subscriptions.ts"],"names":[],"mappings":"AAKA,mFAAmF;AACnF,eAAO,MAAM,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAuBzB,CAAC;AAEJ,eAAO,MAAM,oBAAoB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAiB9B,CAAC;AAEJ,gFAAgF;AAChF,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAWnC,CAAC"}
@@ -0,0 +1,61 @@
1
+ import { sql } from "drizzle-orm";
2
+ import { pgTable, uuid, text, timestamp, boolean, integer, numeric, index, uniqueIndex, check } from "drizzle-orm/pg-core";
3
+ import { companies } from "./companies.js";
4
+ import { connectionGrants, toolConnections } from "./tool_access.js";
5
+ /** An estimate of a recurring account fee, deliberately separate from receipts. */
6
+ export const aiSubscriptions = pgTable("ai_subscriptions", {
7
+ id: uuid("id").primaryKey().defaultRandom(),
8
+ companyId: uuid("company_id").notNull().references(() => companies.id, { onDelete: "cascade" }),
9
+ provider: text("provider").notNull(),
10
+ // Company-scoped digest of provider account AND seat, or an unverified credential.
11
+ accountKey: text("account_key").notNull(),
12
+ identityVerified: boolean("identity_verified").notNull().default(false),
13
+ name: text("name").notNull(),
14
+ // A paid seat can be connected personally and shared. Retain all billing
15
+ // editors even after a connection is deleted; disconnecting is not cancellation.
16
+ ownerUserIds: text("owner_user_ids").array().notNull().default(sql `'{}'::text[]`),
17
+ shared: boolean("shared").notNull().default(false),
18
+ detectedPlan: text("detected_plan"),
19
+ observedAt: timestamp("observed_at", { withTimezone: true }),
20
+ lastCheckedAt: timestamp("last_checked_at", { withTimezone: true }),
21
+ refreshStatus: text("refresh_status").$type(),
22
+ mergedIntoId: uuid("merged_into_id").references(() => aiSubscriptions.id),
23
+ revision: integer("revision").notNull().default(0),
24
+ createdAt: timestamp("created_at", { withTimezone: true }).notNull().defaultNow(),
25
+ }, table => ({
26
+ identity: uniqueIndex("ai_subscriptions_identity_idx").on(table.companyId, table.provider, table.accountKey),
27
+ company: index("ai_subscriptions_company_idx").on(table.companyId),
28
+ noSelfMerge: check("ai_subscriptions_no_self_merge", sql `${table.mergedIntoId} is null or ${table.mergedIntoId} <> ${table.id}`),
29
+ }));
30
+ export const aiSubscriptionPrices = pgTable("ai_subscription_prices", {
31
+ id: uuid("id").primaryKey().defaultRandom(),
32
+ companyId: uuid("company_id").notNull().references(() => companies.id, { onDelete: "cascade" }),
33
+ subscriptionId: uuid("subscription_id").notNull().references(() => aiSubscriptions.id, { onDelete: "cascade" }),
34
+ revision: integer("revision").notNull(),
35
+ plan: text("plan").notNull(),
36
+ amountCents: numeric("amount_cents", { precision: 24, scale: 7 }),
37
+ currency: text("currency").notNull().default("USD"),
38
+ cadence: text("cadence").$type().notNull().default("month"),
39
+ status: text("status").$type().notNull().default("active"),
40
+ source: text("source").$type().notNull(),
41
+ sourceUrl: text("source_url"),
42
+ effectiveAt: timestamp("effective_at", { withTimezone: true }).notNull().defaultNow(),
43
+ }, table => ({
44
+ version: uniqueIndex("ai_subscription_prices_revision_idx").on(table.subscriptionId, table.revision),
45
+ company: index("ai_subscription_prices_company_idx").on(table.companyId),
46
+ valid: check("ai_subscription_prices_valid", sql `(${table.amountCents} is null or ${table.amountCents} >= 0) and ${table.cadence} in ('month','year') and ${table.status} in ('active','ended','excluded') and ${table.source} in ('catalog','user','unknown')`),
47
+ }));
48
+ /** Current credential-to-account binding. Runs snapshot the subscription ID. */
49
+ export const aiSubscriptionConnections = pgTable("ai_subscription_connections", {
50
+ id: uuid("id").primaryKey().defaultRandom(),
51
+ companyId: uuid("company_id").notNull().references(() => companies.id, { onDelete: "cascade" }),
52
+ connectionId: uuid("connection_id").notNull().references(() => toolConnections.id, { onDelete: "cascade" }),
53
+ grantId: uuid("grant_id").notNull().references(() => connectionGrants.id, { onDelete: "cascade" }),
54
+ credentialKey: text("credential_key").notNull(),
55
+ subscriptionId: uuid("subscription_id").notNull().references(() => aiSubscriptions.id, { onDelete: "cascade" }),
56
+ }, table => ({
57
+ grant: uniqueIndex("ai_subscription_connections_grant_idx").on(table.companyId, table.grantId),
58
+ credential: index("ai_subscription_connections_credential_idx").on(table.companyId, table.credentialKey),
59
+ account: index("ai_subscription_connections_account_idx").on(table.companyId, table.subscriptionId),
60
+ }));
61
+ //# sourceMappingURL=ai_subscriptions.js.map