rivet-design 0.18.1 → 0.18.3

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 (239) hide show
  1. package/README.md +1 -1
  2. package/README.npm.md +1 -1
  3. package/dist/agent-variants/SessionStore.d.ts.map +1 -1
  4. package/dist/agent-variants/SessionStore.js +9 -2
  5. package/dist/agent-variants/SessionStore.js.map +1 -1
  6. package/dist/agent-variants/WorktreeOrchestrator.d.ts +5 -1
  7. package/dist/agent-variants/WorktreeOrchestrator.d.ts.map +1 -1
  8. package/dist/agent-variants/WorktreeOrchestrator.js +193 -39
  9. package/dist/agent-variants/WorktreeOrchestrator.js.map +1 -1
  10. package/dist/agent-variants/contracts.d.ts +669 -234
  11. package/dist/agent-variants/contracts.d.ts.map +1 -1
  12. package/dist/cli/client.d.ts.map +1 -1
  13. package/dist/cli/client.js +11 -3
  14. package/dist/cli/client.js.map +1 -1
  15. package/dist/cli/commands/generationPreflight.d.ts +12 -0
  16. package/dist/cli/commands/generationPreflight.d.ts.map +1 -0
  17. package/dist/cli/commands/generationPreflight.js +40 -0
  18. package/dist/cli/commands/generationPreflight.js.map +1 -0
  19. package/dist/cli/commands/mcpServe.d.ts.map +1 -1
  20. package/dist/cli/commands/mcpServe.js +54 -12
  21. package/dist/cli/commands/mcpServe.js.map +1 -1
  22. package/dist/cli/commands/open.d.ts.map +1 -1
  23. package/dist/cli/commands/open.js +110 -76
  24. package/dist/cli/commands/open.js.map +1 -1
  25. package/dist/cli/commands/profile.d.ts.map +1 -1
  26. package/dist/cli/commands/profile.js +75 -2
  27. package/dist/cli/commands/profile.js.map +1 -1
  28. package/dist/cli/commands/serve.d.ts.map +1 -1
  29. package/dist/cli/commands/serve.js +20 -0
  30. package/dist/cli/commands/serve.js.map +1 -1
  31. package/dist/cli/commands/shared.d.ts.map +1 -1
  32. package/dist/cli/commands/shared.js +2 -2
  33. package/dist/cli/commands/shared.js.map +1 -1
  34. package/dist/cli/commands/stop.d.ts.map +1 -1
  35. package/dist/cli/commands/stop.js +29 -5
  36. package/dist/cli/commands/stop.js.map +1 -1
  37. package/dist/cli/commands/variants.d.ts +8 -1
  38. package/dist/cli/commands/variants.d.ts.map +1 -1
  39. package/dist/cli/commands/variants.js +13 -4
  40. package/dist/cli/commands/variants.js.map +1 -1
  41. package/dist/cli/referenceOnboarding.d.ts +3 -0
  42. package/dist/cli/referenceOnboarding.d.ts.map +1 -0
  43. package/dist/cli/referenceOnboarding.js +82 -0
  44. package/dist/cli/referenceOnboarding.js.map +1 -0
  45. package/dist/cli/router.d.ts.map +1 -1
  46. package/dist/cli/router.js +7 -7
  47. package/dist/cli/router.js.map +1 -1
  48. package/dist/cli/serverHandshake.d.ts +5 -4
  49. package/dist/cli/serverHandshake.d.ts.map +1 -1
  50. package/dist/cli/serverHandshake.js +66 -57
  51. package/dist/cli/serverHandshake.js.map +1 -1
  52. package/dist/cli/serverShutdown.d.ts +4 -0
  53. package/dist/cli/serverShutdown.d.ts.map +1 -0
  54. package/dist/cli/serverShutdown.js +20 -0
  55. package/dist/cli/serverShutdown.js.map +1 -0
  56. package/dist/cli/serverUnavailable.d.ts +1 -1
  57. package/dist/cli/serverUnavailable.d.ts.map +1 -1
  58. package/dist/cli/serverUnavailable.js +4 -0
  59. package/dist/cli/serverUnavailable.js.map +1 -1
  60. package/dist/cli/serverVersion.d.ts +1 -1
  61. package/dist/cli/serverVersion.d.ts.map +1 -1
  62. package/dist/cli/serverVersion.js +5 -23
  63. package/dist/cli/serverVersion.js.map +1 -1
  64. package/dist/install/codexSkill.d.ts +13 -0
  65. package/dist/install/codexSkill.d.ts.map +1 -0
  66. package/dist/install/codexSkill.js +64 -0
  67. package/dist/install/codexSkill.js.map +1 -0
  68. package/dist/install/harnesses.d.ts.map +1 -1
  69. package/dist/install/harnesses.js +25 -4
  70. package/dist/install/harnesses.js.map +1 -1
  71. package/dist/routes/agentVariants.d.ts +2 -1
  72. package/dist/routes/agentVariants.d.ts.map +1 -1
  73. package/dist/routes/agentVariants.js +26 -28
  74. package/dist/routes/agentVariants.js.map +1 -1
  75. package/dist/routes/cli.d.ts +3 -0
  76. package/dist/routes/cli.d.ts.map +1 -1
  77. package/dist/routes/cli.js +66 -9
  78. package/dist/routes/cli.js.map +1 -1
  79. package/dist/routes/library/index.d.ts.map +1 -1
  80. package/dist/routes/library/index.js +2 -0
  81. package/dist/routes/library/index.js.map +1 -1
  82. package/dist/routes/library/profiles.d.ts.map +1 -1
  83. package/dist/routes/library/profiles.js +5 -4
  84. package/dist/routes/library/profiles.js.map +1 -1
  85. package/dist/routes/library/referenceOnboarding.d.ts +4 -0
  86. package/dist/routes/library/referenceOnboarding.d.ts.map +1 -0
  87. package/dist/routes/library/referenceOnboarding.js +94 -0
  88. package/dist/routes/library/referenceOnboarding.js.map +1 -0
  89. package/dist/routes/runtimeAdmission.d.ts +13 -0
  90. package/dist/routes/runtimeAdmission.d.ts.map +1 -0
  91. package/dist/routes/runtimeAdmission.js +42 -0
  92. package/dist/routes/runtimeAdmission.js.map +1 -0
  93. package/dist/server.d.ts +1 -0
  94. package/dist/server.d.ts.map +1 -1
  95. package/dist/server.js +7 -4
  96. package/dist/server.js.map +1 -1
  97. package/dist/services/IntegrationsClient.d.ts +77 -0
  98. package/dist/services/IntegrationsClient.d.ts.map +1 -1
  99. package/dist/services/IntegrationsClient.js +123 -6
  100. package/dist/services/IntegrationsClient.js.map +1 -1
  101. package/dist/services/ProjectImport.d.ts.map +1 -1
  102. package/dist/services/ProjectImport.js +5 -12
  103. package/dist/services/ProjectImport.js.map +1 -1
  104. package/dist/services/RuntimeAdmission.d.ts +31 -0
  105. package/dist/services/RuntimeAdmission.d.ts.map +1 -0
  106. package/dist/services/RuntimeAdmission.js +77 -0
  107. package/dist/services/RuntimeAdmission.js.map +1 -0
  108. package/dist/services/TelemetryService.d.ts +1 -1
  109. package/dist/services/TelemetryService.d.ts.map +1 -1
  110. package/dist/services/TelemetryService.js.map +1 -1
  111. package/dist/services/TreeStore.d.ts +7 -0
  112. package/dist/services/TreeStore.d.ts.map +1 -1
  113. package/dist/services/TreeStore.js +18 -0
  114. package/dist/services/TreeStore.js.map +1 -1
  115. package/dist/services/VariantHistoryService.js +1 -1
  116. package/dist/services/VariantHistoryService.js.map +1 -1
  117. package/dist/services/VariantRunService.d.ts.map +1 -1
  118. package/dist/services/VariantRunService.js +38 -29
  119. package/dist/services/VariantRunService.js.map +1 -1
  120. package/dist/services/profiles/DesignProfiles.d.ts +244 -17
  121. package/dist/services/profiles/DesignProfiles.d.ts.map +1 -1
  122. package/dist/services/profiles/DesignProfiles.js +257 -6
  123. package/dist/services/profiles/DesignProfiles.js.map +1 -1
  124. package/dist/services/profiles/ProfileImports.d.ts +3 -3
  125. package/dist/services/profiles/ProfileImports.d.ts.map +1 -1
  126. package/dist/services/profiles/ProfileImports.js +25 -1
  127. package/dist/services/profiles/ProfileImports.js.map +1 -1
  128. package/dist/services/profiles/ProfilePlanning.d.ts +96 -0
  129. package/dist/services/profiles/ProfilePlanning.d.ts.map +1 -0
  130. package/dist/services/profiles/ProfilePlanning.js +187 -0
  131. package/dist/services/profiles/ProfilePlanning.js.map +1 -0
  132. package/dist/services/profiles/ProfilePreparation.d.ts +6 -1
  133. package/dist/services/profiles/ProfilePreparation.d.ts.map +1 -1
  134. package/dist/services/profiles/ProfilePreparation.js +8 -4
  135. package/dist/services/profiles/ProfilePreparation.js.map +1 -1
  136. package/dist/services/profiles/ReferenceReader.d.ts +75 -0
  137. package/dist/services/profiles/ReferenceReader.d.ts.map +1 -0
  138. package/dist/services/profiles/ReferenceReader.js +97 -0
  139. package/dist/services/profiles/ReferenceReader.js.map +1 -0
  140. package/dist/services/profiles/analysisBatch.js +1 -1
  141. package/dist/services/profiles/analysisBatch.js.map +1 -1
  142. package/dist/services/profiles/boardPage.d.ts +2 -1
  143. package/dist/services/profiles/boardPage.d.ts.map +1 -1
  144. package/dist/services/profiles/boardPage.js.map +1 -1
  145. package/dist/services/profiles/cosmosPage.d.ts +10 -0
  146. package/dist/services/profiles/cosmosPage.d.ts.map +1 -0
  147. package/dist/services/profiles/cosmosPage.js +104 -0
  148. package/dist/services/profiles/cosmosPage.js.map +1 -0
  149. package/dist/services/profiles/profileAccount.d.ts.map +1 -1
  150. package/dist/services/profiles/profileAccount.js +3 -1
  151. package/dist/services/profiles/profileAccount.js.map +1 -1
  152. package/dist/services/profiles/profileContext.d.ts +1 -1
  153. package/dist/services/profiles/profileContext.d.ts.map +1 -1
  154. package/dist/services/profiles/profileContext.js +28 -5
  155. package/dist/services/profiles/profileContext.js.map +1 -1
  156. package/dist/services/runtimeActivity.d.ts +3 -0
  157. package/dist/services/runtimeActivity.d.ts.map +1 -0
  158. package/dist/services/runtimeActivity.js +70 -0
  159. package/dist/services/runtimeActivity.js.map +1 -0
  160. package/dist/services/runtimeVersion.d.ts +4 -0
  161. package/dist/services/runtimeVersion.d.ts.map +1 -0
  162. package/dist/services/runtimeVersion.js +30 -0
  163. package/dist/services/runtimeVersion.js.map +1 -0
  164. package/dist/storage/library/ProjectRuntimeRecords.d.ts +15 -0
  165. package/dist/storage/library/ProjectRuntimeRecords.d.ts.map +1 -0
  166. package/dist/storage/library/ProjectRuntimeRecords.js +66 -0
  167. package/dist/storage/library/ProjectRuntimeRecords.js.map +1 -0
  168. package/dist/storage/library/migrations.d.ts +1 -0
  169. package/dist/storage/library/migrations.d.ts.map +1 -1
  170. package/dist/storage/library/migrations.js +9 -1
  171. package/dist/storage/library/migrations.js.map +1 -1
  172. package/dist/storage/library/schema/projectRuntime.d.ts +72 -0
  173. package/dist/storage/library/schema/projectRuntime.d.ts.map +1 -0
  174. package/dist/storage/library/schema/projectRuntime.js +16 -0
  175. package/dist/storage/library/schema/projectRuntime.js.map +1 -0
  176. package/dist/storage/profiles/ProfilePlans.d.ts +320 -0
  177. package/dist/storage/profiles/ProfilePlans.d.ts.map +1 -0
  178. package/dist/storage/profiles/ProfilePlans.js +256 -0
  179. package/dist/storage/profiles/ProfilePlans.js.map +1 -0
  180. package/dist/storage/profiles/ProfileRecords.d.ts +71 -10
  181. package/dist/storage/profiles/ProfileRecords.d.ts.map +1 -1
  182. package/dist/storage/profiles/ProfileRecords.js +152 -62
  183. package/dist/storage/profiles/ProfileRecords.js.map +1 -1
  184. package/dist/storage/profiles/migrations.d.ts +2 -2
  185. package/dist/storage/profiles/migrations.d.ts.map +1 -1
  186. package/dist/storage/profiles/migrations.js +14 -0
  187. package/dist/storage/profiles/migrations.js.map +1 -1
  188. package/dist/storage/profiles/planSchema.d.ts +347 -0
  189. package/dist/storage/profiles/planSchema.d.ts.map +1 -0
  190. package/dist/storage/profiles/planSchema.js +34 -0
  191. package/dist/storage/profiles/planSchema.js.map +1 -0
  192. package/dist/storage/profiles/schema.d.ts +59 -4
  193. package/dist/storage/profiles/schema.d.ts.map +1 -1
  194. package/dist/storage/profiles/schema.js +14 -1
  195. package/dist/storage/profiles/schema.js.map +1 -1
  196. package/dist/types/cosmos-profile.d.ts +130 -0
  197. package/dist/types/cosmos-profile.d.ts.map +1 -0
  198. package/dist/types/cosmos-profile.js +27 -0
  199. package/dist/types/cosmos-profile.js.map +1 -0
  200. package/dist/types/cosmos.d.ts +330 -0
  201. package/dist/types/cosmos.d.ts.map +1 -0
  202. package/dist/types/cosmos.js +157 -0
  203. package/dist/types/cosmos.js.map +1 -0
  204. package/dist/types/design-profile.d.ts +129 -16
  205. package/dist/types/design-profile.d.ts.map +1 -1
  206. package/dist/types/design-profile.js +50 -2
  207. package/dist/types/design-profile.js.map +1 -1
  208. package/dist/types/reference-connectors.d.ts +226 -0
  209. package/dist/types/reference-connectors.d.ts.map +1 -0
  210. package/dist/types/reference-connectors.js +92 -0
  211. package/dist/types/reference-connectors.js.map +1 -0
  212. package/dist/types/reference-onboarding.d.ts +1065 -0
  213. package/dist/types/reference-onboarding.d.ts.map +1 -0
  214. package/dist/types/reference-onboarding.js +108 -0
  215. package/dist/types/reference-onboarding.js.map +1 -0
  216. package/dist/types/reference-pages.d.ts +168 -0
  217. package/dist/types/reference-pages.d.ts.map +1 -0
  218. package/dist/types/reference-pages.js +26 -0
  219. package/dist/types/reference-pages.js.map +1 -0
  220. package/dist/types/variant-reference.d.ts +19 -4
  221. package/dist/types/variant-reference.d.ts.map +1 -1
  222. package/dist/types/variant-reference.js +20 -8
  223. package/dist/types/variant-reference.js.map +1 -1
  224. package/dist/types/x-bookmarks.d.ts +8 -8
  225. package/dist/utils/skills/cli-guidance.d.ts +1 -1
  226. package/dist/utils/skills/cli-guidance.d.ts.map +1 -1
  227. package/dist/utils/skills/cli-guidance.js +6 -2
  228. package/dist/utils/skills/cli-guidance.js.map +1 -1
  229. package/dist/utils/skills/codex-skill.d.ts +3 -0
  230. package/dist/utils/skills/codex-skill.d.ts.map +1 -0
  231. package/dist/utils/skills/codex-skill.js +30 -0
  232. package/dist/utils/skills/codex-skill.js.map +1 -0
  233. package/package.json +2 -1
  234. package/src/ui/dist/assets/{LibraryApp-BzcRWsfQ.js → LibraryApp-DFhxcf--.js} +5 -5
  235. package/src/ui/dist/assets/main-Ayzl0f1H.css +1 -0
  236. package/src/ui/dist/assets/main-D5n04THm.js +438 -0
  237. package/src/ui/dist/index.html +2 -2
  238. package/src/ui/dist/assets/main-CHCea2Fu.css +0 -1
  239. package/src/ui/dist/assets/main-DXqdB6Oi.js +0 -438
@@ -0,0 +1,72 @@
1
+ export declare const projectRuntime: import("drizzle-orm/sqlite-core").SQLiteTableWithColumns<{
2
+ name: "project_runtime";
3
+ schema: undefined;
4
+ columns: {
5
+ singleton: import("drizzle-orm/sqlite-core").SQLiteColumn<{
6
+ name: string;
7
+ tableName: "project_runtime";
8
+ dataType: "number int53";
9
+ data: number;
10
+ driverParam: number;
11
+ notNull: true;
12
+ hasDefault: true;
13
+ isPrimaryKey: true;
14
+ isAutoincrement: false;
15
+ hasRuntimeDefault: false;
16
+ enumValues: undefined;
17
+ baseColumn: never;
18
+ identity: undefined;
19
+ generated: undefined;
20
+ }, {}>;
21
+ pid: import("drizzle-orm/sqlite-core").SQLiteColumn<{
22
+ name: string;
23
+ tableName: "project_runtime";
24
+ dataType: "number int53";
25
+ data: number;
26
+ driverParam: number;
27
+ notNull: true;
28
+ hasDefault: false;
29
+ isPrimaryKey: false;
30
+ isAutoincrement: false;
31
+ hasRuntimeDefault: false;
32
+ enumValues: undefined;
33
+ baseColumn: never;
34
+ identity: undefined;
35
+ generated: undefined;
36
+ }, {}>;
37
+ token: import("drizzle-orm/sqlite-core").SQLiteColumn<{
38
+ name: string;
39
+ tableName: "project_runtime";
40
+ dataType: "string";
41
+ data: string;
42
+ driverParam: string;
43
+ notNull: true;
44
+ hasDefault: false;
45
+ isPrimaryKey: false;
46
+ isAutoincrement: false;
47
+ hasRuntimeDefault: false;
48
+ enumValues: [string, ...string[]];
49
+ baseColumn: never;
50
+ identity: undefined;
51
+ generated: undefined;
52
+ }, {}>;
53
+ phase: import("drizzle-orm/sqlite-core").SQLiteColumn<{
54
+ name: string;
55
+ tableName: "project_runtime";
56
+ dataType: "string enum";
57
+ data: "active" | "starting" | "retiring";
58
+ driverParam: string;
59
+ notNull: true;
60
+ hasDefault: false;
61
+ isPrimaryKey: false;
62
+ isAutoincrement: false;
63
+ hasRuntimeDefault: false;
64
+ enumValues: ["active", "starting", "retiring"];
65
+ baseColumn: never;
66
+ identity: undefined;
67
+ generated: undefined;
68
+ }, {}>;
69
+ };
70
+ dialect: "sqlite";
71
+ }>;
72
+ //# sourceMappingURL=projectRuntime.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectRuntime.d.ts","sourceRoot":"","sources":["../../../../src/storage/library/schema/projectRuntime.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,cAAc;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAgB1B,CAAC"}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.projectRuntime = void 0;
4
+ const drizzle_orm_1 = require("drizzle-orm");
5
+ const sqlite_core_1 = require("drizzle-orm/sqlite-core");
6
+ exports.projectRuntime = (0, sqlite_core_1.sqliteTable)('project_runtime', {
7
+ singleton: (0, sqlite_core_1.integer)().primaryKey(),
8
+ pid: (0, sqlite_core_1.integer)().notNull(),
9
+ token: (0, sqlite_core_1.text)().notNull(),
10
+ phase: (0, sqlite_core_1.text)({ enum: ['active', 'starting', 'retiring'] }).notNull(),
11
+ }, (table) => [
12
+ (0, sqlite_core_1.check)('project_runtime_singleton', (0, drizzle_orm_1.sql) `${table.singleton} = 1`),
13
+ (0, sqlite_core_1.check)('project_runtime_pid', (0, drizzle_orm_1.sql) `${table.pid} > 0`),
14
+ (0, sqlite_core_1.check)('project_runtime_phase', (0, drizzle_orm_1.sql) `${table.phase} IN ('active', 'starting', 'retiring')`),
15
+ ]);
16
+ //# sourceMappingURL=projectRuntime.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projectRuntime.js","sourceRoot":"","sources":["../../../../src/storage/library/schema/projectRuntime.ts"],"names":[],"mappings":";;;AAAA,6CAAkC;AAClC,yDAA4E;AAE/D,QAAA,cAAc,GAAG,IAAA,yBAAW,EACvC,iBAAiB,EACjB;IACE,SAAS,EAAE,IAAA,qBAAO,GAAE,CAAC,UAAU,EAAE;IACjC,GAAG,EAAE,IAAA,qBAAO,GAAE,CAAC,OAAO,EAAE;IACxB,KAAK,EAAE,IAAA,kBAAI,GAAE,CAAC,OAAO,EAAE;IACvB,KAAK,EAAE,IAAA,kBAAI,EAAC,EAAE,IAAI,EAAE,CAAC,QAAQ,EAAE,UAAU,EAAE,UAAU,CAAC,EAAE,CAAC,CAAC,OAAO,EAAE;CACpE,EACD,CAAC,KAAK,EAAE,EAAE,CAAC;IACT,IAAA,mBAAK,EAAC,2BAA2B,EAAE,IAAA,iBAAG,EAAA,GAAG,KAAK,CAAC,SAAS,MAAM,CAAC;IAC/D,IAAA,mBAAK,EAAC,qBAAqB,EAAE,IAAA,iBAAG,EAAA,GAAG,KAAK,CAAC,GAAG,MAAM,CAAC;IACnD,IAAA,mBAAK,EACH,uBAAuB,EACvB,IAAA,iBAAG,EAAA,GAAG,KAAK,CAAC,KAAK,wCAAwC,CAC1D;CACF,CACF,CAAC"}
@@ -0,0 +1,320 @@
1
+ import { type ReferenceProvider } from '../../types/reference-connectors';
2
+ import { z } from 'zod';
3
+ import { type openDurableDatabase } from '../library/database';
4
+ import { ReferenceDiscoveryInputSchema, ReferencePlanInputSchema, type ReferenceImportPlan, type ReferenceOnboardingAction } from '../../types/reference-onboarding';
5
+ type Database = Awaited<ReturnType<typeof openDurableDatabase>>;
6
+ export declare class ProfilePlans {
7
+ private readonly db;
8
+ constructor(db: Database);
9
+ saveDiscovery(input: z.input<typeof ReferenceDiscoveryInputSchema>): {
10
+ id: string;
11
+ total: number;
12
+ collections: {
13
+ id: string;
14
+ url: string | null;
15
+ title: string;
16
+ description: string | null;
17
+ children: string[];
18
+ total: number | null;
19
+ parentId: string | null;
20
+ }[];
21
+ profile: {
22
+ id: string;
23
+ url: string;
24
+ title: string;
25
+ username: string;
26
+ };
27
+ createdAt: string;
28
+ };
29
+ discovery(id: string): {
30
+ id: string;
31
+ total: number;
32
+ collections: {
33
+ id: string;
34
+ url: string | null;
35
+ title: string;
36
+ description: string | null;
37
+ children: string[];
38
+ total: number | null;
39
+ parentId: string | null;
40
+ }[];
41
+ profile: {
42
+ id: string;
43
+ url: string;
44
+ title: string;
45
+ username: string;
46
+ };
47
+ createdAt: string;
48
+ };
49
+ discoveries(): {
50
+ id: string;
51
+ total: number;
52
+ collections: {
53
+ id: string;
54
+ url: string | null;
55
+ title: string;
56
+ description: string | null;
57
+ children: string[];
58
+ total: number | null;
59
+ parentId: string | null;
60
+ }[];
61
+ profile: {
62
+ id: string;
63
+ url: string;
64
+ title: string;
65
+ username: string;
66
+ };
67
+ createdAt: string;
68
+ }[];
69
+ savePlan(input: z.input<typeof ReferencePlanInputSchema>): {
70
+ id: string;
71
+ runtime: "claude" | "codex" | "cursor";
72
+ revision: string;
73
+ profile: {
74
+ id: string;
75
+ url: string;
76
+ title: string;
77
+ username: string;
78
+ };
79
+ createdAt: string;
80
+ discoveryId: string;
81
+ sources: {
82
+ references: {
83
+ text: string;
84
+ provider: "arena" | "pinterest" | "x" | "cosmos";
85
+ title: string;
86
+ remoteId: string;
87
+ media: {
88
+ hash: string;
89
+ mimeType: "image/png" | "image/jpeg" | "image/webp" | "image/gif";
90
+ bytes: number;
91
+ representation: "image" | "variant" | "video-cover" | "page";
92
+ page?: number | undefined;
93
+ }[];
94
+ url?: string | undefined;
95
+ variant?: {
96
+ sessionId: string;
97
+ projectId: string;
98
+ variantId: string;
99
+ treeSha?: string | undefined;
100
+ } | undefined;
101
+ note?: string | undefined;
102
+ remoteImages?: string[] | undefined;
103
+ remoteImageRepresentations?: ("image" | "video-cover")[] | undefined;
104
+ unsupportedReason?: string | undefined;
105
+ }[];
106
+ collection: {
107
+ id: string;
108
+ url: string | null;
109
+ title: string;
110
+ description: string | null;
111
+ children: string[];
112
+ total: number | null;
113
+ parentId: string | null;
114
+ };
115
+ collectionIds: string[];
116
+ }[];
117
+ reusableCount: number;
118
+ expiresAt: string;
119
+ approvedAt: string | null;
120
+ jobIds: string[];
121
+ };
122
+ plan(id: string): {
123
+ id: string;
124
+ runtime: "claude" | "codex" | "cursor";
125
+ revision: string;
126
+ profile: {
127
+ id: string;
128
+ url: string;
129
+ title: string;
130
+ username: string;
131
+ };
132
+ createdAt: string;
133
+ discoveryId: string;
134
+ sources: {
135
+ references: {
136
+ text: string;
137
+ provider: "arena" | "pinterest" | "x" | "cosmos";
138
+ title: string;
139
+ remoteId: string;
140
+ media: {
141
+ hash: string;
142
+ mimeType: "image/png" | "image/jpeg" | "image/webp" | "image/gif";
143
+ bytes: number;
144
+ representation: "image" | "variant" | "video-cover" | "page";
145
+ page?: number | undefined;
146
+ }[];
147
+ url?: string | undefined;
148
+ variant?: {
149
+ sessionId: string;
150
+ projectId: string;
151
+ variantId: string;
152
+ treeSha?: string | undefined;
153
+ } | undefined;
154
+ note?: string | undefined;
155
+ remoteImages?: string[] | undefined;
156
+ remoteImageRepresentations?: ("image" | "video-cover")[] | undefined;
157
+ unsupportedReason?: string | undefined;
158
+ }[];
159
+ collection: {
160
+ id: string;
161
+ url: string | null;
162
+ title: string;
163
+ description: string | null;
164
+ children: string[];
165
+ total: number | null;
166
+ parentId: string | null;
167
+ };
168
+ collectionIds: string[];
169
+ }[];
170
+ reusableCount: number;
171
+ expiresAt: string;
172
+ approvedAt: string | null;
173
+ jobIds: string[];
174
+ };
175
+ plans(): {
176
+ id: string;
177
+ runtime: "claude" | "codex" | "cursor";
178
+ revision: string;
179
+ profile: {
180
+ id: string;
181
+ url: string;
182
+ title: string;
183
+ username: string;
184
+ };
185
+ createdAt: string;
186
+ discoveryId: string;
187
+ sources: {
188
+ references: {
189
+ text: string;
190
+ provider: "arena" | "pinterest" | "x" | "cosmos";
191
+ title: string;
192
+ remoteId: string;
193
+ media: {
194
+ hash: string;
195
+ mimeType: "image/png" | "image/jpeg" | "image/webp" | "image/gif";
196
+ bytes: number;
197
+ representation: "image" | "variant" | "video-cover" | "page";
198
+ page?: number | undefined;
199
+ }[];
200
+ url?: string | undefined;
201
+ variant?: {
202
+ sessionId: string;
203
+ projectId: string;
204
+ variantId: string;
205
+ treeSha?: string | undefined;
206
+ } | undefined;
207
+ note?: string | undefined;
208
+ remoteImages?: string[] | undefined;
209
+ remoteImageRepresentations?: ("image" | "video-cover")[] | undefined;
210
+ unsupportedReason?: string | undefined;
211
+ }[];
212
+ collection: {
213
+ id: string;
214
+ url: string | null;
215
+ title: string;
216
+ description: string | null;
217
+ children: string[];
218
+ total: number | null;
219
+ parentId: string | null;
220
+ };
221
+ collectionIds: string[];
222
+ }[];
223
+ reusableCount: number;
224
+ expiresAt: string;
225
+ approvedAt: string | null;
226
+ jobIds: string[];
227
+ }[];
228
+ approve({ id, revision, isApproved, createJobs, }: {
229
+ id: string;
230
+ revision: string;
231
+ isApproved: boolean;
232
+ createJobs: (plan: ReferenceImportPlan) => Array<{
233
+ id: string;
234
+ sourceId: string;
235
+ collectionId: string;
236
+ }>;
237
+ }): {
238
+ id: string;
239
+ runtime: "claude" | "codex" | "cursor";
240
+ revision: string;
241
+ profile: {
242
+ id: string;
243
+ url: string;
244
+ title: string;
245
+ username: string;
246
+ };
247
+ createdAt: string;
248
+ discoveryId: string;
249
+ sources: {
250
+ references: {
251
+ text: string;
252
+ provider: "arena" | "pinterest" | "x" | "cosmos";
253
+ title: string;
254
+ remoteId: string;
255
+ media: {
256
+ hash: string;
257
+ mimeType: "image/png" | "image/jpeg" | "image/webp" | "image/gif";
258
+ bytes: number;
259
+ representation: "image" | "variant" | "video-cover" | "page";
260
+ page?: number | undefined;
261
+ }[];
262
+ url?: string | undefined;
263
+ variant?: {
264
+ sessionId: string;
265
+ projectId: string;
266
+ variantId: string;
267
+ treeSha?: string | undefined;
268
+ } | undefined;
269
+ note?: string | undefined;
270
+ remoteImages?: string[] | undefined;
271
+ remoteImageRepresentations?: ("image" | "video-cover")[] | undefined;
272
+ unsupportedReason?: string | undefined;
273
+ }[];
274
+ collection: {
275
+ id: string;
276
+ url: string | null;
277
+ title: string;
278
+ description: string | null;
279
+ children: string[];
280
+ total: number | null;
281
+ parentId: string | null;
282
+ };
283
+ collectionIds: string[];
284
+ }[];
285
+ reusableCount: number;
286
+ expiresAt: string;
287
+ approvedAt: string | null;
288
+ jobIds: string[];
289
+ };
290
+ sourcePlan(sourceId: string): {
291
+ sourceId: string;
292
+ discoveryId: string;
293
+ collectionId: string;
294
+ } | null;
295
+ sourceByUrl(url: string): {
296
+ sourceId: string;
297
+ } | null;
298
+ isPlannedSource(sourceId: string): boolean;
299
+ onboarding(provider?: ReferenceProvider): {
300
+ provider: "arena" | "pinterest" | "x" | "cosmos";
301
+ state: "pending" | "complete" | "later" | "dismissed";
302
+ offeredAt: string | null;
303
+ remindAt: string | null;
304
+ };
305
+ updateOnboarding(action: ReferenceOnboardingAction, provider?: ReferenceProvider): {
306
+ provider: "arena" | "pinterest" | "x" | "cosmos";
307
+ state: "pending" | "complete" | "later" | "dismissed";
308
+ offeredAt: string | null;
309
+ remindAt: string | null;
310
+ };
311
+ notice(provider?: ReferenceProvider): {
312
+ provider: "arena" | "pinterest" | "x" | "cosmos";
313
+ message: string;
314
+ command: string;
315
+ laterCommand: string;
316
+ dismissCommand: string;
317
+ } | null;
318
+ }
319
+ export {};
320
+ //# sourceMappingURL=ProfilePlans.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ProfilePlans.d.ts","sourceRoot":"","sources":["../../../src/storage/profiles/ProfilePlans.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,iBAAiB,EACvB,MAAM,kCAAkC,CAAC;AAG1C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAe,KAAK,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAS5E,OAAO,EAKL,6BAA6B,EAE7B,wBAAwB,EAExB,KAAK,mBAAmB,EACxB,KAAK,yBAAyB,EAC/B,MAAM,kCAAkC,CAAC;AAE1C,KAAK,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,OAAO,mBAAmB,CAAC,CAAC,CAAC;AAEhE,qBAAa,YAAY;IACX,OAAO,CAAC,QAAQ,CAAC,EAAE;gBAAF,EAAE,EAAE,QAAQ;IAczC,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,6BAA6B,CAAC;;;;;;;;;;;;;;;;;;;;IAmBlE,SAAS,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;IAUpB,WAAW;;;;;;;;;;;;;;;;;;;;IAQX,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,KAAK,CAAC,OAAO,wBAAwB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAsDxD,IAAI,CAAC,EAAE,EAAE,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAUf,KAAK;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAQL,OAAO,CAAC,EACN,EAAE,EACF,QAAQ,EACR,UAAU,EACV,UAAU,GACX,EAAE;QACD,EAAE,EAAE,MAAM,CAAC;QACX,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,OAAO,CAAC;QACpB,UAAU,EAAE,CACV,IAAI,EAAE,mBAAmB,KACtB,KAAK,CAAC;YAAE,EAAE,EAAE,MAAM,CAAC;YAAC,QAAQ,EAAE,MAAM,CAAC;YAAC,YAAY,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;KACpE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAuDD,UAAU,CAAC,QAAQ,EAAE,MAAM;;;;;IAU3B,WAAW,CAAC,GAAG,EAAE,MAAM;;;IAWvB,eAAe,CAAC,QAAQ,EAAE,MAAM;IAIhC,UAAU,CAAC,QAAQ,GAAE,iBAA4B;;;;;;IAejD,gBAAgB,CACd,MAAM,EAAE,yBAAyB,EACjC,QAAQ,GAAE,iBAA4B;;;;;;IA6BxC,MAAM,CAAC,QAAQ,GAAE,iBAA4B;;;;;;;CA0C9C"}
@@ -0,0 +1,256 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ProfilePlans = void 0;
4
+ const reference_connectors_1 = require("../../types/reference-connectors");
5
+ const crypto_1 = require("crypto");
6
+ const drizzle_orm_1 = require("drizzle-orm");
7
+ const database_1 = require("../library/database");
8
+ const planSchema_1 = require("./planSchema");
9
+ const schema_1 = require("./schema");
10
+ const reference_onboarding_1 = require("../../types/reference-onboarding");
11
+ class ProfilePlans {
12
+ db;
13
+ constructor(db) {
14
+ this.db = db;
15
+ const preference = db.select().from(planSchema_1.referenceOnboarding).get();
16
+ if (preference)
17
+ db.insert(planSchema_1.connectorOnboarding)
18
+ .values({
19
+ provider: 'cosmos',
20
+ state: preference.state,
21
+ offeredAt: preference.offeredAt,
22
+ remindAt: preference.remindAt,
23
+ })
24
+ .onConflictDoNothing()
25
+ .run();
26
+ }
27
+ saveDiscovery(input) {
28
+ const parsed = reference_onboarding_1.ReferenceDiscoveryInputSchema.parse(input);
29
+ if (parsed.total !== parsed.collections.length ||
30
+ new Set(parsed.collections.map((item) => item.id)).size !== parsed.total)
31
+ throw new Error('Incomplete profile collection discovery');
32
+ const discovery = reference_onboarding_1.ReferenceDiscoverySchema.parse({
33
+ ...parsed,
34
+ id: (0, crypto_1.randomUUID)(),
35
+ createdAt: new Date().toISOString(),
36
+ });
37
+ this.db
38
+ .insert(planSchema_1.referenceDiscoveries)
39
+ .values({ id: discovery.id, body: discovery })
40
+ .run();
41
+ return discovery;
42
+ }
43
+ discovery(id) {
44
+ const record = this.db
45
+ .select()
46
+ .from(planSchema_1.referenceDiscoveries)
47
+ .where((0, drizzle_orm_1.eq)(planSchema_1.referenceDiscoveries.id, id))
48
+ .get();
49
+ if (!record)
50
+ throw new Error('Unknown reference discovery');
51
+ return reference_onboarding_1.ReferenceDiscoverySchema.parse(record.body);
52
+ }
53
+ discoveries() {
54
+ return this.db
55
+ .select()
56
+ .from(planSchema_1.referenceDiscoveries)
57
+ .all()
58
+ .map((record) => reference_onboarding_1.ReferenceDiscoverySchema.parse(record.body));
59
+ }
60
+ savePlan(input) {
61
+ const parsed = reference_onboarding_1.ReferencePlanInputSchema.parse(input);
62
+ const discovery = this.discovery(parsed.discoveryId);
63
+ const available = new Set(discovery.collections.map((collection) => collection.id));
64
+ if (parsed.sources.some((source) => !available.has(source.collection.id)) ||
65
+ new Set(parsed.sources.map((source) => source.collection.id)).size !==
66
+ parsed.sources.length)
67
+ throw new Error('Choose each collection from this discovery only once');
68
+ if (parsed.sources.some((source) => source.references.some((reference) => reference.provider !== (0, reference_connectors_1.referenceProvider)(discovery.profile))))
69
+ throw new Error('Reference provider does not match the discovered account');
70
+ const unique = new Set(parsed.sources.flatMap((source) => source.references.map((reference) => reference.remoteId)));
71
+ if (unique.size > reference_onboarding_1.REFERENCE_PLAN_LIMIT ||
72
+ parsed.reusableCount > unique.size)
73
+ throw new Error('Reference plan exceeds its coverage limit; select fewer collections');
74
+ const body = JSON.stringify(parsed);
75
+ if (Buffer.byteLength(body) > reference_onboarding_1.REFERENCE_PLAN_BYTES)
76
+ throw new Error('Reference plan is too large; select fewer collections');
77
+ const plan = reference_onboarding_1.ReferencePlanSchema.parse({
78
+ ...parsed,
79
+ id: (0, crypto_1.randomUUID)(),
80
+ profile: discovery.profile,
81
+ revision: (0, crypto_1.createHash)('sha256').update(body).digest('hex'),
82
+ createdAt: new Date().toISOString(),
83
+ expiresAt: new Date(Date.now() + reference_onboarding_1.REFERENCE_PLAN_LIFETIME_MS).toISOString(),
84
+ approvedAt: null,
85
+ jobIds: [],
86
+ });
87
+ this.db.insert(planSchema_1.referencePlans).values({ id: plan.id, body: plan }).run();
88
+ return plan;
89
+ }
90
+ plan(id) {
91
+ const record = this.db
92
+ .select()
93
+ .from(planSchema_1.referencePlans)
94
+ .where((0, drizzle_orm_1.eq)(planSchema_1.referencePlans.id, id))
95
+ .get();
96
+ if (!record)
97
+ throw new Error('Unknown reference import plan');
98
+ return reference_onboarding_1.ReferencePlanSchema.parse(record.body);
99
+ }
100
+ plans() {
101
+ return this.db
102
+ .select()
103
+ .from(planSchema_1.referencePlans)
104
+ .all()
105
+ .map((record) => reference_onboarding_1.ReferencePlanSchema.parse(record.body));
106
+ }
107
+ approve({ id, revision, isApproved, createJobs, }) {
108
+ if (!isApproved)
109
+ throw new Error('Explicit user approval is required');
110
+ return (0, database_1.transaction)(this.db, () => {
111
+ const plan = this.plan(id);
112
+ if (plan.revision !== revision)
113
+ throw new Error('Import plan revision does not match the reviewed plan');
114
+ if (plan.approvedAt)
115
+ return plan;
116
+ if (Date.now() >= Date.parse(plan.expiresAt))
117
+ throw new Error('Import plan expired; prepare and review another plan');
118
+ const jobs = createJobs(plan);
119
+ for (const job of jobs)
120
+ this.db
121
+ .insert(planSchema_1.plannedSources)
122
+ .values({
123
+ sourceId: job.sourceId,
124
+ collectionId: job.collectionId,
125
+ discoveryId: plan.discoveryId,
126
+ })
127
+ .onConflictDoUpdate({
128
+ target: planSchema_1.plannedSources.sourceId,
129
+ set: {
130
+ discoveryId: plan.discoveryId,
131
+ collectionId: job.collectionId,
132
+ },
133
+ })
134
+ .run();
135
+ const approved = {
136
+ ...plan,
137
+ approvedAt: new Date().toISOString(),
138
+ jobIds: jobs.map((job) => job.id),
139
+ };
140
+ this.db
141
+ .update(planSchema_1.referencePlans)
142
+ .set({ body: approved })
143
+ .where((0, drizzle_orm_1.eq)(planSchema_1.referencePlans.id, id))
144
+ .run();
145
+ this.db
146
+ .insert(planSchema_1.connectorOnboarding)
147
+ .values({
148
+ provider: (0, reference_connectors_1.referenceProvider)(plan.profile),
149
+ state: 'complete',
150
+ offeredAt: null,
151
+ remindAt: null,
152
+ })
153
+ .onConflictDoUpdate({
154
+ target: planSchema_1.connectorOnboarding.provider,
155
+ set: { state: 'complete', remindAt: null },
156
+ })
157
+ .run();
158
+ return approved;
159
+ });
160
+ }
161
+ sourcePlan(sourceId) {
162
+ return (this.db
163
+ .select()
164
+ .from(planSchema_1.plannedSources)
165
+ .where((0, drizzle_orm_1.eq)(planSchema_1.plannedSources.sourceId, sourceId))
166
+ .get() ?? null);
167
+ }
168
+ sourceByUrl(url) {
169
+ return (this.db
170
+ .select({ sourceId: planSchema_1.plannedSources.sourceId })
171
+ .from(planSchema_1.plannedSources)
172
+ .innerJoin(schema_1.sources, (0, drizzle_orm_1.eq)(schema_1.sources.id, planSchema_1.plannedSources.sourceId))
173
+ .where((0, drizzle_orm_1.eq)(schema_1.sources.url, url))
174
+ .get() ?? null);
175
+ }
176
+ isPlannedSource(sourceId) {
177
+ return this.sourcePlan(sourceId) !== null;
178
+ }
179
+ onboarding(provider = 'cosmos') {
180
+ return (this.db
181
+ .select()
182
+ .from(planSchema_1.connectorOnboarding)
183
+ .where((0, drizzle_orm_1.eq)(planSchema_1.connectorOnboarding.provider, provider))
184
+ .get() ?? {
185
+ provider,
186
+ state: 'pending',
187
+ offeredAt: null,
188
+ remindAt: null,
189
+ });
190
+ }
191
+ updateOnboarding(action, provider = 'cosmos') {
192
+ const state = action === 'dismiss' ? 'dismissed' : action;
193
+ this.db
194
+ .insert(planSchema_1.connectorOnboarding)
195
+ .values({
196
+ provider,
197
+ state: state === 'reset' ? 'pending' : state,
198
+ offeredAt: null,
199
+ remindAt: action === 'later'
200
+ ? new Date(Date.now() + reference_onboarding_1.REFERENCE_REMINDER_DELAY_MS).toISOString()
201
+ : null,
202
+ })
203
+ .onConflictDoUpdate({
204
+ target: planSchema_1.connectorOnboarding.provider,
205
+ set: {
206
+ state: state === 'reset' ? 'pending' : state,
207
+ offeredAt: null,
208
+ remindAt: action === 'later'
209
+ ? new Date(Date.now() + reference_onboarding_1.REFERENCE_REMINDER_DELAY_MS).toISOString()
210
+ : null,
211
+ },
212
+ })
213
+ .run();
214
+ return this.onboarding(provider);
215
+ }
216
+ notice(provider = 'cosmos') {
217
+ return (0, database_1.transaction)(this.db, () => {
218
+ const state = this.onboarding(provider);
219
+ if (state.state === 'complete' ||
220
+ state.state === 'dismissed' ||
221
+ state.offeredAt ||
222
+ (state.remindAt && Date.now() < Date.parse(state.remindAt)))
223
+ return null;
224
+ this.db
225
+ .insert(planSchema_1.connectorOnboarding)
226
+ .values({
227
+ provider,
228
+ state: 'pending',
229
+ offeredAt: new Date().toISOString(),
230
+ remindAt: null,
231
+ })
232
+ .onConflictDoUpdate({
233
+ target: planSchema_1.connectorOnboarding.provider,
234
+ set: {
235
+ state: 'pending',
236
+ offeredAt: new Date().toISOString(),
237
+ remindAt: null,
238
+ },
239
+ })
240
+ .run();
241
+ return {
242
+ provider,
243
+ message: provider === 'cosmos'
244
+ ? 'Offer to connect a public Cosmos profile. Ask for its URL, discover collections, and present an import plan. Analysis consumes the selected agent usage allowance. Wait for explicit approval before importing.'
245
+ : `Offer to connect ${provider} so Rivet can draw on saved inspiration across projects. Discover collections, complete OAuth if requested, then repeat discovery. Show the import plan and agent usage disclosure, and wait for explicit user approval.`,
246
+ command: provider === 'cosmos'
247
+ ? 'rivet profile discover <public-profile-url>'
248
+ : `rivet profile discover ${provider}`,
249
+ laterCommand: `rivet profile onboarding later --provider ${provider}`,
250
+ dismissCommand: `rivet profile onboarding dismiss --provider ${provider}`,
251
+ };
252
+ });
253
+ }
254
+ }
255
+ exports.ProfilePlans = ProfilePlans;
256
+ //# sourceMappingURL=ProfilePlans.js.map