rivet-design 0.7.0 → 0.8.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 (121) hide show
  1. package/dist/config/evaluateFlags.d.ts +7 -0
  2. package/dist/config/evaluateFlags.d.ts.map +1 -0
  3. package/dist/config/evaluateFlags.js +27 -0
  4. package/dist/config/evaluateFlags.js.map +1 -0
  5. package/dist/config/flags.d.ts +25 -5
  6. package/dist/config/flags.d.ts.map +1 -1
  7. package/dist/config/flags.js +22 -18
  8. package/dist/config/flags.js.map +1 -1
  9. package/dist/demo/sessionRuntime.d.ts +2 -0
  10. package/dist/demo/sessionRuntime.d.ts.map +1 -0
  11. package/dist/demo/sessionRuntime.js +48 -0
  12. package/dist/demo/sessionRuntime.js.map +1 -0
  13. package/dist/hosted-demo.d.ts +2 -0
  14. package/dist/hosted-demo.d.ts.map +1 -0
  15. package/dist/hosted-demo.js +80 -0
  16. package/dist/hosted-demo.js.map +1 -0
  17. package/dist/index.d.ts +10 -0
  18. package/dist/index.d.ts.map +1 -1
  19. package/dist/index.js +110 -3
  20. package/dist/index.js.map +1 -1
  21. package/dist/mcp/server.d.ts.map +1 -1
  22. package/dist/mcp/server.js +35 -28
  23. package/dist/mcp/server.js.map +1 -1
  24. package/dist/proxy-middleware/proxy-config.js +1 -1
  25. package/dist/routes/demo.d.ts +33 -0
  26. package/dist/routes/demo.d.ts.map +1 -0
  27. package/dist/routes/demo.js +180 -0
  28. package/dist/routes/demo.js.map +1 -0
  29. package/dist/routes/git.d.ts +3 -1
  30. package/dist/routes/git.d.ts.map +1 -1
  31. package/dist/routes/git.js +15 -1
  32. package/dist/routes/git.js.map +1 -1
  33. package/dist/routes/modifications.d.ts +7 -0
  34. package/dist/routes/modifications.d.ts.map +1 -1
  35. package/dist/routes/modifications.js +81 -4
  36. package/dist/routes/modifications.js.map +1 -1
  37. package/dist/routes/static.d.ts.map +1 -1
  38. package/dist/routes/static.js +17 -2
  39. package/dist/routes/static.js.map +1 -1
  40. package/dist/server.d.ts +20 -1
  41. package/dist/server.d.ts.map +1 -1
  42. package/dist/server.js +530 -35
  43. package/dist/server.js.map +1 -1
  44. package/dist/services/AuthService.d.ts +1 -1
  45. package/dist/services/AuthService.js +1 -1
  46. package/dist/services/CSSTokenWriter.js +1 -1
  47. package/dist/services/CommentVariationService.js +1 -1
  48. package/dist/services/ConfigManager.d.ts.map +1 -1
  49. package/dist/services/ConfigManager.js +13 -0
  50. package/dist/services/ConfigManager.js.map +1 -1
  51. package/dist/services/FeatureFlagService.d.ts +18 -0
  52. package/dist/services/FeatureFlagService.d.ts.map +1 -0
  53. package/dist/services/FeatureFlagService.js +62 -0
  54. package/dist/services/FeatureFlagService.js.map +1 -0
  55. package/dist/services/HostedDemoAuthSessionService.d.ts +42 -0
  56. package/dist/services/HostedDemoAuthSessionService.d.ts.map +1 -0
  57. package/dist/services/HostedDemoAuthSessionService.js +179 -0
  58. package/dist/services/HostedDemoAuthSessionService.js.map +1 -0
  59. package/dist/services/HostedDemoAuthSessionStore.d.ts +43 -0
  60. package/dist/services/HostedDemoAuthSessionStore.d.ts.map +1 -0
  61. package/dist/services/HostedDemoAuthSessionStore.js +90 -0
  62. package/dist/services/HostedDemoAuthSessionStore.js.map +1 -0
  63. package/dist/services/HostedDemoSessionService.d.ts +91 -0
  64. package/dist/services/HostedDemoSessionService.d.ts.map +1 -0
  65. package/dist/services/HostedDemoSessionService.js +568 -0
  66. package/dist/services/HostedDemoSessionService.js.map +1 -0
  67. package/dist/services/HostedDemoSessionStore.d.ts +49 -0
  68. package/dist/services/HostedDemoSessionStore.d.ts.map +1 -0
  69. package/dist/services/HostedDemoSessionStore.js +90 -0
  70. package/dist/services/HostedDemoSessionStore.js.map +1 -0
  71. package/dist/services/ProjectDetectionService.d.ts +2 -2
  72. package/dist/services/ProjectDetectionService.d.ts.map +1 -1
  73. package/dist/services/ProjectDetectionService.js +26 -9
  74. package/dist/services/ProjectDetectionService.js.map +1 -1
  75. package/dist/services/RequestAuthContext.d.ts +8 -0
  76. package/dist/services/RequestAuthContext.d.ts.map +1 -0
  77. package/dist/services/RequestAuthContext.js +14 -0
  78. package/dist/services/RequestAuthContext.js.map +1 -0
  79. package/dist/services/SessionBridgeService.d.ts +3 -2
  80. package/dist/services/SessionBridgeService.d.ts.map +1 -1
  81. package/dist/services/SessionBridgeService.js +6 -8
  82. package/dist/services/SessionBridgeService.js.map +1 -1
  83. package/dist/services/TailwindConfigWriter.js +1 -1
  84. package/dist/services/TelemetryService.d.ts +95 -0
  85. package/dist/services/TelemetryService.d.ts.map +1 -1
  86. package/dist/services/TelemetryService.js +198 -0
  87. package/dist/services/TelemetryService.js.map +1 -1
  88. package/dist/services/accessTokenRefresh.d.ts +36 -0
  89. package/dist/services/accessTokenRefresh.d.ts.map +1 -0
  90. package/dist/services/accessTokenRefresh.js +102 -0
  91. package/dist/services/accessTokenRefresh.js.map +1 -0
  92. package/dist/services/agent/AgentCore.d.ts +1 -1
  93. package/dist/services/agent/AgentCore.js +2 -2
  94. package/dist/services/agent/AgentCore.js.map +1 -1
  95. package/dist/services/agent/AgentModService.d.ts +1 -1
  96. package/dist/services/agent/AgentModService.js +1 -1
  97. package/dist/services/hostedDemoSessionAuthRefresh.d.ts +18 -0
  98. package/dist/services/hostedDemoSessionAuthRefresh.d.ts.map +1 -0
  99. package/dist/services/hostedDemoSessionAuthRefresh.js +39 -0
  100. package/dist/services/hostedDemoSessionAuthRefresh.js.map +1 -0
  101. package/dist/utils/shouldRecordHostedDemoSessionAction.d.ts +8 -0
  102. package/dist/utils/shouldRecordHostedDemoSessionAction.d.ts.map +1 -0
  103. package/dist/utils/shouldRecordHostedDemoSessionAction.js +27 -0
  104. package/dist/utils/shouldRecordHostedDemoSessionAction.js.map +1 -0
  105. package/dist/utils/skills/claude-skill.d.ts +2 -2
  106. package/dist/utils/skills/claude-skill.d.ts.map +1 -1
  107. package/dist/utils/skills/claude-skill.js +29 -10
  108. package/dist/utils/skills/claude-skill.js.map +1 -1
  109. package/dist/utils/skills/cursor-rules.d.ts +2 -2
  110. package/dist/utils/skills/cursor-rules.d.ts.map +1 -1
  111. package/dist/utils/skills/cursor-rules.js +12 -8
  112. package/dist/utils/skills/cursor-rules.js.map +1 -1
  113. package/package.json +4 -2
  114. package/src/ui/dist/assets/logo.png +0 -0
  115. package/src/ui/dist/assets/main-BxL1kNtz.css +1 -0
  116. package/src/ui/dist/assets/{main-Dnm69Obb.js → main-BxYkrTpy.js} +138 -134
  117. package/src/ui/dist/assets/rivet.svg +3 -0
  118. package/src/ui/dist/fonts/Goldman-Bold.woff2 +0 -0
  119. package/src/ui/dist/fonts/Goldman-Regular.woff2 +0 -0
  120. package/src/ui/dist/index.html +3 -3
  121. package/src/ui/dist/assets/main-BsJYpJMo.css +0 -1
@@ -0,0 +1,90 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.RedisHostedDemoAuthSessionStore = exports.InMemoryHostedDemoAuthSessionStore = void 0;
4
+ const redis_1 = require("redis");
5
+ const logger_1 = require("../utils/logger");
6
+ const log = (0, logger_1.createLogger)('HostedDemoAuthSessionStore');
7
+ class InMemoryHostedDemoAuthSessionStore {
8
+ records = new Map();
9
+ async initialize() {
10
+ return Promise.resolve();
11
+ }
12
+ async loadAll() {
13
+ return [...this.records.entries()].map(([sessionId, value]) => ({
14
+ sessionId,
15
+ value,
16
+ }));
17
+ }
18
+ async set(sessionId, value, _ttlMs) {
19
+ this.records.set(sessionId, value);
20
+ }
21
+ async delete(sessionId) {
22
+ this.records.delete(sessionId);
23
+ }
24
+ async shutdown() {
25
+ this.records.clear();
26
+ }
27
+ }
28
+ exports.InMemoryHostedDemoAuthSessionStore = InMemoryHostedDemoAuthSessionStore;
29
+ class RedisHostedDemoAuthSessionStore {
30
+ client;
31
+ keyPrefix;
32
+ constructor(options) {
33
+ this.client = (0, redis_1.createClient)({ url: options.redisUrl });
34
+ this.keyPrefix = options.keyPrefix;
35
+ }
36
+ async initialize() {
37
+ if (this.client.isOpen) {
38
+ return;
39
+ }
40
+ this.client.on('error', (error) => {
41
+ log.warn('Redis auth session store error:', error);
42
+ });
43
+ await this.client.connect();
44
+ }
45
+ async loadAll() {
46
+ const records = [];
47
+ for await (const keyOrChunk of this.client.scanIterator({
48
+ MATCH: `${this.keyPrefix}:*`,
49
+ COUNT: 100,
50
+ })) {
51
+ const keys = Array.isArray(keyOrChunk) ? keyOrChunk : [keyOrChunk];
52
+ for (const key of keys) {
53
+ const raw = await this.client.get(key);
54
+ if (!raw) {
55
+ continue;
56
+ }
57
+ const sessionId = key.slice(`${this.keyPrefix}:`.length);
58
+ if (!sessionId) {
59
+ continue;
60
+ }
61
+ try {
62
+ const value = JSON.parse(raw);
63
+ records.push({ sessionId, value });
64
+ }
65
+ catch (error) {
66
+ log.warn(`Failed to parse auth session payload for ${sessionId}:`, error);
67
+ }
68
+ }
69
+ }
70
+ return records;
71
+ }
72
+ async set(sessionId, value, ttlMs) {
73
+ await this.client.set(this.getKey(sessionId), JSON.stringify(value), {
74
+ PX: ttlMs,
75
+ });
76
+ }
77
+ async delete(sessionId) {
78
+ await this.client.del(this.getKey(sessionId));
79
+ }
80
+ async shutdown() {
81
+ if (this.client.isOpen) {
82
+ await this.client.quit();
83
+ }
84
+ }
85
+ getKey(sessionId) {
86
+ return `${this.keyPrefix}:${sessionId}`;
87
+ }
88
+ }
89
+ exports.RedisHostedDemoAuthSessionStore = RedisHostedDemoAuthSessionStore;
90
+ //# sourceMappingURL=HostedDemoAuthSessionStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HostedDemoAuthSessionStore.js","sourceRoot":"","sources":["../../src/services/HostedDemoAuthSessionStore.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,91 @@
1
+ import { type ChildProcess } from 'child_process';
2
+ import { TelemetryService } from './TelemetryService';
3
+ import { type HostedDemoSessionPersistedRuntimeState, type HostedDemoSessionStore } from './HostedDemoSessionStore';
4
+ export type HostedDemoSession = {
5
+ sessionId: string;
6
+ userId: string;
7
+ createdAt: number;
8
+ expiresAt: number;
9
+ lastActionAt: number;
10
+ worktreePath: string;
11
+ projectPath: string;
12
+ rivetPort: number;
13
+ runtimeState: HostedDemoSessionPersistedRuntimeState;
14
+ };
15
+ export type HostedDemoSessionWithUrl = HostedDemoSession & {
16
+ sessionUrl: string;
17
+ };
18
+ type RuntimeStartParams = {
19
+ projectPath: string;
20
+ rivetPort: number;
21
+ sessionId: string;
22
+ };
23
+ type HostedDemoRuntimeDeps = {
24
+ now?: () => number;
25
+ runGitCommand?: (repoPath: string, args: string[]) => Promise<void>;
26
+ startRuntime?: (params: RuntimeStartParams) => Promise<ChildProcess>;
27
+ stopRuntime?: (runtimeProcess: ChildProcess) => Promise<void>;
28
+ waitForRuntimeHealth?: (rivetPort: number) => Promise<void>;
29
+ };
30
+ export type HostedDemoSessionConfig = {
31
+ repoPath: string;
32
+ templateProjectPath: string;
33
+ telemetry?: TelemetryService;
34
+ worktreesRootPath?: string;
35
+ sessionTtlMs?: number;
36
+ sessionIdleTtlMs?: number;
37
+ maxActiveSessions?: number;
38
+ baseRivetPort?: number;
39
+ publicBaseUrl?: string;
40
+ sessionMetadataStore?: HostedDemoSessionStore;
41
+ };
42
+ export declare class HostedDemoSessionService {
43
+ private readonly config;
44
+ private readonly deps;
45
+ private readonly telemetry;
46
+ private readonly sessionStore;
47
+ private readonly sessions;
48
+ private pendingSessionCreations;
49
+ private readonly cleanupTimer;
50
+ private readonly rehydrationLocks;
51
+ constructor(config: HostedDemoSessionConfig, deps?: HostedDemoRuntimeDeps);
52
+ /**
53
+ * Loads durable session rows into memory so stopped sessions can be rehydrated after deploy.
54
+ */
55
+ initialize(): Promise<void>;
56
+ createSession(userId: string): Promise<HostedDemoSessionWithUrl>;
57
+ getActiveSessionCount(): number;
58
+ getTemplateProjectPath(): string;
59
+ getSession(sessionId: string): HostedDemoSession | null;
60
+ getSessionOwnerUserId(sessionId: string): string | null;
61
+ /**
62
+ * Records a Rivet user action for idle TTL (does not extend idle on passive polling).
63
+ */
64
+ recordSessionAction(sessionId: string): Promise<void>;
65
+ getSessionProxyTarget(sessionId: string): string | null;
66
+ /**
67
+ * Starts the per-session runtime when it was stopped for idle or after process restart.
68
+ */
69
+ ensureRuntimeReady(sessionId: string): Promise<void>;
70
+ closeSession(sessionId: string, options?: {
71
+ removeWorktree?: boolean;
72
+ }): Promise<void>;
73
+ shutdown(): Promise<void>;
74
+ private readonly countRunningOrStartingSessions;
75
+ private readonly persistSession;
76
+ private readonly toPersisted;
77
+ private readonly internalFromPersisted;
78
+ private readonly runRehydration;
79
+ private readonly stopRuntimeForIdle;
80
+ private readonly cleanupExpiredSessions;
81
+ private readonly safeRemoveWorktree;
82
+ private readonly toErrorType;
83
+ getSessionUrl(sessionId: string): string;
84
+ private readonly toPublicSession;
85
+ private readonly defaultRunGitCommand;
86
+ private readonly defaultStartRuntime;
87
+ private readonly defaultStopRuntime;
88
+ private readonly defaultWaitForRuntimeHealth;
89
+ }
90
+ export {};
91
+ //# sourceMappingURL=HostedDemoSessionService.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HostedDemoSessionService.d.ts","sourceRoot":"","sources":["../../src/services/HostedDemoSessionService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,eAAe,CAAC;AAOnE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAEL,KAAK,sCAAsC,EAE3C,KAAK,sBAAsB,EAC5B,MAAM,0BAA0B,CAAC;AAWlC,MAAM,MAAM,iBAAiB,GAAG;IAC9B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,sCAAsC,CAAC;CACtD,CAAC;AAEF,MAAM,MAAM,wBAAwB,GAAG,iBAAiB,GAAG;IACzD,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAOF,KAAK,kBAAkB,GAAG;IACxB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,GAAG,CAAC,EAAE,MAAM,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,YAAY,CAAC,EAAE,CAAC,MAAM,EAAE,kBAAkB,KAAK,OAAO,CAAC,YAAY,CAAC,CAAC;IACrE,WAAW,CAAC,EAAE,CAAC,cAAc,EAAE,YAAY,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9D,oBAAoB,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CAC7D,CAAC;AAEF,MAAM,MAAM,uBAAuB,GAAG;IACpC,QAAQ,EAAE,MAAM,CAAC;IACjB,mBAAmB,EAAE,MAAM,CAAC;IAC5B,SAAS,CAAC,EAAE,gBAAgB,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,oBAAoB,CAAC,EAAE,sBAAsB,CAAC;CAC/C,CAAC;AAOF,qBAAa,wBAAwB;IACnC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA2C;IAClE,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAkC;IACvD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAA+B;IACzD,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAyB;IACtD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAgD;IACzE,OAAO,CAAC,uBAAuB,CAAK;IACpC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAiC;IAC9D,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAoC;gBAEzD,MAAM,EAAE,uBAAuB,EAAE,IAAI,CAAC,EAAE,qBAAqB;IAkCzE;;OAEG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAoB3B,aAAa,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,wBAAwB,CAAC;IAyGtE,qBAAqB,IAAI,MAAM;IAI/B,sBAAsB,IAAI,MAAM;IAIhC,UAAU,CAAC,SAAS,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI;IAQvD,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAQvD;;OAEG;IACG,mBAAmB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAS3D,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI;IAWvD;;OAEG;IACG,kBAAkB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiCpD,YAAY,CAChB,SAAS,EAAE,MAAM,EACjB,OAAO,CAAC,EAAE;QAAE,cAAc,CAAC,EAAE,OAAO,CAAA;KAAE,GACrC,OAAO,CAAC,IAAI,CAAC;IA+BV,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAS/B,OAAO,CAAC,QAAQ,CAAC,8BAA8B,CAQ7C;IAEF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAQ7B;IAEF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAe1B;IAEF,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAgBpC;IAEF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAsE7B;IAEF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAiCjC;IAEF,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CA+BrC;IAEF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAqBjC;IAEF,OAAO,CAAC,QAAQ,CAAC,WAAW,CAK1B;IAEF,aAAa,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAQxC,OAAO,CAAC,QAAQ,CAAC,eAAe,CAc9B;IAEF,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAKnC;IAEF,OAAO,CAAC,QAAQ,CAAC,mBAAmB,CA2BlC;IAEF,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAkBjC;IAEF,OAAO,CAAC,QAAQ,CAAC,2BAA2B,CAmC1C;CACH"}