rivet-design 0.8.4 → 0.8.6

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 (37) hide show
  1. package/dist/config/evaluateFlags.d.ts.map +1 -1
  2. package/dist/config/evaluateFlags.js +13 -4
  3. package/dist/config/evaluateFlags.js.map +1 -1
  4. package/dist/config/flags.d.ts +3 -0
  5. package/dist/config/flags.d.ts.map +1 -1
  6. package/dist/config/flags.js +1 -0
  7. package/dist/config/flags.js.map +1 -1
  8. package/dist/mcp/server.d.ts.map +1 -1
  9. package/dist/mcp/server.js +11 -0
  10. package/dist/mcp/server.js.map +1 -1
  11. package/dist/server.d.ts.map +1 -1
  12. package/dist/server.js +6 -1
  13. package/dist/server.js.map +1 -1
  14. package/dist/services/CommentVariationService.d.ts +3 -1
  15. package/dist/services/CommentVariationService.d.ts.map +1 -1
  16. package/dist/services/CommentVariationService.js +5 -2
  17. package/dist/services/CommentVariationService.js.map +1 -1
  18. package/dist/services/DesktopVersionPolicyService.d.ts +21 -0
  19. package/dist/services/DesktopVersionPolicyService.d.ts.map +1 -0
  20. package/dist/services/DesktopVersionPolicyService.js +151 -0
  21. package/dist/services/DesktopVersionPolicyService.js.map +1 -0
  22. package/dist/services/FeatureFlagService.d.ts +5 -0
  23. package/dist/services/FeatureFlagService.d.ts.map +1 -1
  24. package/dist/services/FeatureFlagService.js +18 -0
  25. package/dist/services/FeatureFlagService.js.map +1 -1
  26. package/dist/services/GatewayClient.d.ts +3 -0
  27. package/dist/services/GatewayClient.d.ts.map +1 -1
  28. package/dist/services/GatewayClient.js +17 -10
  29. package/dist/services/GatewayClient.js.map +1 -1
  30. package/dist/services/VariantCodeGeneratorService.d.ts.map +1 -1
  31. package/dist/services/VariantCodeGeneratorService.js +17 -5
  32. package/dist/services/VariantCodeGeneratorService.js.map +1 -1
  33. package/package.json +1 -1
  34. package/src/ui/dist/assets/{main-CFAr6Qon.js → main-DpcUh_b_.js} +108 -108
  35. package/src/ui/dist/assets/main-wC0IkT-I.css +1 -0
  36. package/src/ui/dist/index.html +2 -2
  37. package/src/ui/dist/assets/main-DcbpRHzm.css +0 -1
@@ -0,0 +1,151 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.resetDesktopVersionPolicyServiceForTests = exports.getDesktopVersionPolicyService = void 0;
4
+ const logger_1 = require("../utils/logger");
5
+ const log = (0, logger_1.createLogger)('DesktopVersionPolicyService');
6
+ const DEFAULT_POLICY_URL = 'https://releases.rivet.design/desktop-version-policy.json';
7
+ const DEFAULT_CACHE_TTL_MS = 5 * 60 * 1000;
8
+ const DEFAULT_POLICY_FETCH_TIMEOUT_MS = 5000;
9
+ const normalizeSemverCore = (version) => {
10
+ const [core] = version.trim().split('-');
11
+ const parts = core.split('.');
12
+ if (parts.length !== 3) {
13
+ return null;
14
+ }
15
+ const [major, minor, patch] = parts.map((part) => Number.parseInt(part, 10));
16
+ if (!Number.isInteger(major) ||
17
+ !Number.isInteger(minor) ||
18
+ !Number.isInteger(patch)) {
19
+ return null;
20
+ }
21
+ return `${major}.${minor}.${patch}`;
22
+ };
23
+ const computeMinorFloor = (version) => {
24
+ const normalized = normalizeSemverCore(version);
25
+ if (!normalized) {
26
+ return null;
27
+ }
28
+ const [major, minor] = normalized.split('.');
29
+ return `${major}.${minor}.0`;
30
+ };
31
+ const parseDesktopVersionPolicy = (payload) => {
32
+ if (!payload || typeof payload !== 'object') {
33
+ return null;
34
+ }
35
+ const record = payload;
36
+ if (typeof record.latestVersion !== 'string') {
37
+ return null;
38
+ }
39
+ const normalizedLatest = normalizeSemverCore(record.latestVersion);
40
+ if (!normalizedLatest) {
41
+ return null;
42
+ }
43
+ const normalizedMinimumFromPayload = typeof record.minimumVersion === 'string'
44
+ ? normalizeSemverCore(record.minimumVersion)
45
+ : null;
46
+ const minimumVersion = normalizedMinimumFromPayload ?? computeMinorFloor(normalizedLatest);
47
+ if (!minimumVersion) {
48
+ return null;
49
+ }
50
+ const sourceTimestamp = typeof record.publishedAt === 'string' && record.publishedAt.length > 0
51
+ ? record.publishedAt
52
+ : new Date().toISOString();
53
+ return {
54
+ minimumVersion,
55
+ latestVersion: normalizedLatest,
56
+ downloadUrl: typeof record.downloadUrl === 'string' ? record.downloadUrl : undefined,
57
+ sourceTimestamp,
58
+ };
59
+ };
60
+ class DesktopVersionPolicyService {
61
+ cache = {
62
+ value: null,
63
+ fetchedAtMs: 0,
64
+ };
65
+ inFlightFetch = null;
66
+ policyUrl;
67
+ cacheTtlMs;
68
+ fetchTimeoutMs;
69
+ constructor() {
70
+ this.policyUrl = process.env.RIVET_DESKTOP_POLICY_URL ?? DEFAULT_POLICY_URL;
71
+ const ttlFromEnv = Number.parseInt(process.env.RIVET_DESKTOP_POLICY_CACHE_TTL_MS ?? '', 10);
72
+ this.cacheTtlMs =
73
+ Number.isInteger(ttlFromEnv) && ttlFromEnv > 0
74
+ ? ttlFromEnv
75
+ : DEFAULT_CACHE_TTL_MS;
76
+ const timeoutFromEnv = Number.parseInt(process.env.RIVET_DESKTOP_POLICY_FETCH_TIMEOUT_MS ?? '', 10);
77
+ this.fetchTimeoutMs =
78
+ Number.isInteger(timeoutFromEnv) && timeoutFromEnv > 0
79
+ ? timeoutFromEnv
80
+ : DEFAULT_POLICY_FETCH_TIMEOUT_MS;
81
+ }
82
+ shouldUseFreshCache(nowMs) {
83
+ if (this.cache.fetchedAtMs <= 0) {
84
+ return false;
85
+ }
86
+ return nowMs - this.cache.fetchedAtMs < this.cacheTtlMs;
87
+ }
88
+ async getPolicy() {
89
+ const nowMs = Date.now();
90
+ if (this.shouldUseFreshCache(nowMs)) {
91
+ return this.cache.value;
92
+ }
93
+ if (!this.inFlightFetch) {
94
+ this.inFlightFetch = this.fetchAndCachePolicy().finally(() => {
95
+ this.inFlightFetch = null;
96
+ });
97
+ }
98
+ const fetched = await this.inFlightFetch;
99
+ if (fetched) {
100
+ return fetched;
101
+ }
102
+ // Fail open: stale cached value is still returned if network fetch fails.
103
+ return this.cache.value;
104
+ }
105
+ async fetchAndCachePolicy() {
106
+ try {
107
+ const abortController = new AbortController();
108
+ const timeoutId = setTimeout(() => abortController.abort(), this.fetchTimeoutMs);
109
+ const response = await fetch(this.policyUrl, {
110
+ signal: abortController.signal,
111
+ }).finally(() => {
112
+ clearTimeout(timeoutId);
113
+ });
114
+ if (!response.ok) {
115
+ throw new Error(`Policy request failed with status ${response.status}`);
116
+ }
117
+ const parsed = parseDesktopVersionPolicy(await response.json());
118
+ if (!parsed) {
119
+ throw new Error('Policy payload shape is invalid');
120
+ }
121
+ this.cache = {
122
+ value: parsed,
123
+ fetchedAtMs: Date.now(),
124
+ };
125
+ return parsed;
126
+ }
127
+ catch (error) {
128
+ log.warn('Failed to fetch desktop version policy:', error);
129
+ // Negative cache failures so repeated /api/config calls don't trigger
130
+ // a fresh network timeout every time while the policy endpoint is down.
131
+ this.cache = {
132
+ value: this.cache.value,
133
+ fetchedAtMs: Date.now(),
134
+ };
135
+ return null;
136
+ }
137
+ }
138
+ }
139
+ let instance = null;
140
+ const getDesktopVersionPolicyService = () => {
141
+ if (!instance) {
142
+ instance = new DesktopVersionPolicyService();
143
+ }
144
+ return instance;
145
+ };
146
+ exports.getDesktopVersionPolicyService = getDesktopVersionPolicyService;
147
+ const resetDesktopVersionPolicyServiceForTests = () => {
148
+ instance = null;
149
+ };
150
+ exports.resetDesktopVersionPolicyServiceForTests = resetDesktopVersionPolicyServiceForTests;
151
+ //# sourceMappingURL=DesktopVersionPolicyService.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"DesktopVersionPolicyService.js","sourceRoot":"","sources":["../../src/services/DesktopVersionPolicyService.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,11 @@ declare class FeatureFlagService {
11
11
  * Fetch all flags for the current user in a single request.
12
12
  */
13
13
  getAllFlags(): Promise<Record<string, boolean | string>>;
14
+ /**
15
+ * Evaluate a single flag for the current user.
16
+ * Useful when a flag key is missing from getAllFlags() (e.g. inactive flags).
17
+ */
18
+ isFeatureEnabled(key: string): Promise<boolean | null>;
14
19
  shutdown(): Promise<void>;
15
20
  }
16
21
  export declare function getFeatureFlagService(): FeatureFlagService;
@@ -1 +1 @@
1
- {"version":3,"file":"FeatureFlagService.d.ts","sourceRoot":"","sources":["../../src/services/FeatureFlagService.ts"],"names":[],"mappings":"AASA;;;;GAIG;AACH,cAAM,kBAAkB;IACtB,OAAO,CAAC,OAAO,CAAwB;;IAgBvC,OAAO,KAAK,UAAU,GAErB;IAED;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC;IAWxD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAMhC;AAID,wBAAgB,qBAAqB,IAAI,kBAAkB,CAK1D"}
1
+ {"version":3,"file":"FeatureFlagService.d.ts","sourceRoot":"","sources":["../../src/services/FeatureFlagService.ts"],"names":[],"mappings":"AASA;;;;GAIG;AACH,cAAM,kBAAkB;IACtB,OAAO,CAAC,OAAO,CAAwB;;IAgBvC,OAAO,KAAK,UAAU,GAErB;IAED;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,CAAC;IAW9D;;;OAGG;IACG,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;IActD,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;CAMhC;AAID,wBAAgB,qBAAqB,IAAI,kBAAkB,CAK1D"}
@@ -45,6 +45,24 @@ class FeatureFlagService {
45
45
  return {};
46
46
  }
47
47
  }
48
+ /**
49
+ * Evaluate a single flag for the current user.
50
+ * Useful when a flag key is missing from getAllFlags() (e.g. inactive flags).
51
+ */
52
+ async isFeatureEnabled(key) {
53
+ if (!this.posthog)
54
+ return null;
55
+ try {
56
+ const enabled = await this.posthog.isFeatureEnabled(key, this.distinctId);
57
+ // PostHog can return undefined for flags that are inactive/unresolved.
58
+ // Treat unresolved as disabled; reserve null for transport/runtime failures.
59
+ return enabled ?? false;
60
+ }
61
+ catch (error) {
62
+ log.warn(`Failed to evaluate feature flag "${key}":`, error);
63
+ return null;
64
+ }
65
+ }
48
66
  async shutdown() {
49
67
  if (this.posthog) {
50
68
  await this.posthog.shutdown();
@@ -1 +1 @@
1
- {"version":3,"file":"FeatureFlagService.js","sourceRoot":"","sources":["../../src/services/FeatureFlagService.ts"],"names":[],"mappings":";;AA2DA,sDAKC;AAhED,+CAAuC;AACvC,4CAA+C;AAC/C,mDAAmD;AAEnD,MAAM,GAAG,GAAG,IAAA,qBAAY,EAAC,oBAAoB,CAAC,CAAC;AAE/C,MAAM,sBAAsB,GAAG,gDAAgD,CAAC;AAChF,MAAM,mBAAmB,GAAG,0BAA0B,CAAC;AAEvD;;;;GAIG;AACH,MAAM,kBAAkB;IACd,OAAO,GAAmB,IAAI,CAAC;IAEvC;QACE,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,GAAG,IAAI,sBAAO,CAAC,sBAAsB,EAAE;gBACjD,IAAI,EAAE,mBAAmB;gBACzB,sEAAsE;gBACtE,OAAO,EAAE,CAAC;gBACV,aAAa,EAAE,CAAC;aACjB,CAAC,CAAC;YACH,GAAG,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,IAAI,CAAC,0CAA0C,EAAE,KAAK,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,IAAY,UAAU;QACpB,OAAO,IAAA,gCAAgB,GAAE,CAAC,QAAQ,EAAE,IAAI,IAAA,gCAAgB,GAAE,CAAC,cAAc,EAAE,CAAC;IAC9E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW;QACf,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QAE7B,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,IAAI,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;YAClD,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC;IACH,CAAC;CACF;AAED,IAAI,QAAQ,GAA8B,IAAI,CAAC;AAE/C,SAAgB,qBAAqB;IACnC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG,IAAI,kBAAkB,EAAE,CAAC;IACtC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
1
+ {"version":3,"file":"FeatureFlagService.js","sourceRoot":"","sources":["../../src/services/FeatureFlagService.ts"],"names":[],"mappings":";;AA6EA,sDAKC;AAlFD,+CAAuC;AACvC,4CAA+C;AAC/C,mDAAmD;AAEnD,MAAM,GAAG,GAAG,IAAA,qBAAY,EAAC,oBAAoB,CAAC,CAAC;AAE/C,MAAM,sBAAsB,GAAG,gDAAgD,CAAC;AAChF,MAAM,mBAAmB,GAAG,0BAA0B,CAAC;AAEvD;;;;GAIG;AACH,MAAM,kBAAkB;IACd,OAAO,GAAmB,IAAI,CAAC;IAEvC;QACE,IAAI,CAAC;YACH,IAAI,CAAC,OAAO,GAAG,IAAI,sBAAO,CAAC,sBAAsB,EAAE;gBACjD,IAAI,EAAE,mBAAmB;gBACzB,sEAAsE;gBACtE,OAAO,EAAE,CAAC;gBACV,aAAa,EAAE,CAAC;aACjB,CAAC,CAAC;YACH,GAAG,CAAC,IAAI,CAAC,gCAAgC,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,IAAI,CAAC,0CAA0C,EAAE,KAAK,CAAC,CAAC;QAC9D,CAAC;IACH,CAAC;IAED,IAAY,UAAU;QACpB,OAAO,IAAA,gCAAgB,GAAE,CAAC,QAAQ,EAAE,IAAI,IAAA,gCAAgB,GAAE,CAAC,cAAc,EAAE,CAAC;IAC9E,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,WAAW;QACf,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,EAAE,CAAC;QAE7B,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACzD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,IAAI,CAAC,gCAAgC,EAAE,KAAK,CAAC,CAAC;YAClD,OAAO,EAAE,CAAC;QACZ,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,gBAAgB,CAAC,GAAW;QAChC,IAAI,CAAC,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE/B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC,GAAG,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAC1E,uEAAuE;YACvE,6EAA6E;YAC7E,OAAO,OAAO,IAAI,KAAK,CAAC;QAC1B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,GAAG,CAAC,IAAI,CAAC,oCAAoC,GAAG,IAAI,EAAE,KAAK,CAAC,CAAC;YAC7D,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,QAAQ;QACZ,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,OAAO,CAAC,QAAQ,EAAE,CAAC;YAC9B,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;QACtB,CAAC;IACH,CAAC;CACF;AAED,IAAI,QAAQ,GAA8B,IAAI,CAAC;AAE/C,SAAgB,qBAAqB;IACnC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,QAAQ,GAAG,IAAI,kBAAkB,EAAE,CAAC;IACtC,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -14,7 +14,10 @@ type GatewayToolUseOptions = {
14
14
  name: string;
15
15
  description: string;
16
16
  input_schema: Record<string, unknown>;
17
+ strict?: boolean;
17
18
  };
19
+ /** Wrap the system prompt in a cache_control block for prompt caching. */
20
+ cacheSystemPrompt?: boolean;
18
21
  };
19
22
  export declare const asReasonText: (value: unknown) => string;
20
23
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"GatewayClient.d.ts","sourceRoot":"","sources":["../../src/services/GatewayClient.ts"],"names":[],"mappings":"AAMA,KAAK,qBAAqB,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;KACvC,CAAC;CACH,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,OAAO,OAAO,KAAG,MAsB7C,CAAC;AAEF;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAS;gBAEb,UAAU,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAKlD,sEAAsE;IAChE,WAAW,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAkBlE;;;;;OAKG;IACG,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;YAsB5D,YAAY;IA6D1B,+DAA+D;YACjD,kBAAkB;CAoCjC"}
1
+ {"version":3,"file":"GatewayClient.d.ts","sourceRoot":"","sources":["../../src/services/GatewayClient.ts"],"names":[],"mappings":"AAMA,KAAK,qBAAqB,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB,CAAC;AAEF,KAAK,qBAAqB,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE;QACJ,IAAI,EAAE,MAAM,CAAC;QACb,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;QACtC,MAAM,CAAC,EAAE,OAAO,CAAC;KAClB,CAAC;IACF,0EAA0E;IAC1E,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B,CAAC;AAEF,eAAO,MAAM,YAAY,GAAI,OAAO,OAAO,KAAG,MAsB7C,CAAC;AAEF;;;GAGG;AACH,qBAAa,aAAa;IACxB,OAAO,CAAC,aAAa,CAAsB;IAC3C,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAS;gBAEb,UAAU,CAAC,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM;IAKlD,sEAAsE;IAChE,WAAW,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;IAkBlE;;;;;OAKG;IACG,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,MAAM,CAAC;YA0B5D,YAAY;IAmE1B,+DAA+D;YACjD,kBAAkB;CAoCjC"}
@@ -63,15 +63,18 @@ class GatewayClient {
63
63
  * 'tool' }`, but we check anyway).
64
64
  */
65
65
  async sendToolUse(options) {
66
+ const systemContent = options.cacheSystemPrompt
67
+ ? [{ type: 'text', text: options.system, cache_control: { type: 'ephemeral' } }]
68
+ : options.system;
66
69
  const result = await this.postMessages({
67
70
  model: options.model,
68
71
  max_tokens: options.maxTokens,
69
72
  temperature: options.temperature,
70
- system: options.system,
73
+ system: systemContent,
71
74
  messages: [{ role: 'user', content: options.prompt }],
72
75
  tools: [options.tool],
73
76
  tool_choice: { type: 'tool', name: options.tool.name },
74
- }, 0);
77
+ }, 0, { enableCaching: options.cacheSystemPrompt });
75
78
  const toolUse = result.content
76
79
  ?.find((b) => b.type === 'tool_use');
77
80
  if (!toolUse || toolUse.input === undefined) {
@@ -79,19 +82,23 @@ class GatewayClient {
79
82
  }
80
83
  return toolUse.input;
81
84
  }
82
- async postMessages(body, retryCount) {
85
+ async postMessages(body, retryCount, options) {
83
86
  const authToken = this.configManager.getAuthToken();
84
87
  if (!authToken) {
85
88
  throw new Error('Not authenticated. Please run `rivet login` to authenticate.');
86
89
  }
90
+ const headers = {
91
+ Authorization: `Bearer ${authToken}`,
92
+ 'Content-Type': 'application/json',
93
+ 'anthropic-version': '2023-06-01',
94
+ };
95
+ if (options?.enableCaching) {
96
+ headers['anthropic-beta'] = 'prompt-caching-2024-07-31';
97
+ }
87
98
  const response = await fetch(`${this.gatewayUrl}/v1/messages`, {
88
99
  method: 'POST',
89
- headers: {
90
- Authorization: `Bearer ${authToken}`,
91
- 'Content-Type': 'application/json',
92
- 'anthropic-version': '2023-06-01',
93
- },
94
- body: JSON.stringify(body),
100
+ headers,
101
+ body: JSON.stringify({ ...body, service_tier: 'auto' }),
95
102
  });
96
103
  // Handle 401 — could be token expiry or a spend limit rejection from the gateway
97
104
  if (response.status === 401 && retryCount === 0) {
@@ -103,7 +110,7 @@ class GatewayClient {
103
110
  log.warn('Token expired, attempting to refresh...');
104
111
  const isRefreshed = await this.refreshAccessToken();
105
112
  if (isRefreshed) {
106
- return this.postMessages(body, retryCount + 1);
113
+ return this.postMessages(body, retryCount + 1, options);
107
114
  }
108
115
  throw new Error('Authentication expired. Please run `rivet logout` and `rivet login` to re-authenticate.');
109
116
  }
@@ -1 +1 @@
1
- {"version":3,"file":"GatewayClient.js","sourceRoot":"","sources":["../../src/services/GatewayClient.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"GatewayClient.js","sourceRoot":"","sources":["../../src/services/GatewayClient.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"VariantCodeGeneratorService.d.ts","sourceRoot":"","sources":["../../src/services/VariantCodeGeneratorService.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAK5D,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACjE;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC9D;IAAE,IAAI,EAAE,kBAAkB,CAAA;CAAE,CAAC;AAEjC,KAAK,YAAY,GAAG;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,cAAc,CAAC;IACxB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC3C,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC,CAAC;AA2BF,eAAO,MAAM,mBAAmB,GAAU,2GASvC,cAAc,KAAG,OAAO,CAAC,IAAI,CA8E/B,CAAC"}
1
+ {"version":3,"file":"VariantCodeGeneratorService.d.ts","sourceRoot":"","sources":["../../src/services/VariantCodeGeneratorService.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAM5D,MAAM,MAAM,gBAAgB,GACxB;IAAE,IAAI,EAAE,iBAAiB,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,GACjD;IAAE,IAAI,EAAE,mBAAmB,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAA;CAAE,GACjE;IAAE,IAAI,EAAE,eAAe,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC9D;IAAE,IAAI,EAAE,kBAAkB,CAAA;CAAE,CAAC;AAEjC,KAAK,YAAY,GAAG;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,KAAK,cAAc,GAAG;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,cAAc,CAAC;IACxB,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB;;;;;OAKG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,OAAO,EAAE,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC3C,eAAe,CAAC,EAAE,eAAe,CAAC;CACnC,CAAC;AAsCF,eAAO,MAAM,mBAAmB,GAAU,2GASvC,cAAc,KAAG,OAAO,CAAC,IAAI,CAiF/B,CAAC"}
@@ -4,12 +4,18 @@ exports.generateVariantCode = void 0;
4
4
  const AgentCore_1 = require("./agent/AgentCore");
5
5
  const WorktreeManager_1 = require("./WorktreeManager");
6
6
  const logger_1 = require("../utils/logger");
7
+ const CommentVariationService_1 = require("./CommentVariationService");
7
8
  const log = (0, logger_1.createLogger)('VariantCodeGeneratorService');
8
- const buildAgentPrompt = (instruction, changeSpec, element) => {
9
+ const buildAgentPrompt = (instruction, changeSpec, element, fileExcerpts) => {
9
10
  const filePath = element.filePaths?.[0]?.filePath ?? 'unknown';
10
11
  const componentTree = element.componentTree
11
12
  ? element.componentTree.map((n) => n.name).join(' > ')
12
13
  : '';
14
+ const fileSection = fileExcerpts.length > 0
15
+ ? `\nRelevant source files (use these directly — no need to re-read):\n${fileExcerpts
16
+ .map((f) => `\`\`\`\n// ${f.path}\n${f.content}\n\`\`\``)
17
+ .join('\n\n')}`
18
+ : '';
13
19
  return `Implement this design direction in the codebase.
14
20
 
15
21
  Original user instruction: ${instruction}
@@ -22,8 +28,10 @@ Target element:
22
28
  - Tag: <${element.tagName}>
23
29
  - Component hierarchy: ${componentTree}
24
30
  - Text content: ${element.textContent?.slice(0, 80) ?? '(none)'}
25
-
26
- Read the relevant source files, then implement exactly the design direction described above. Focus only on this specific change. Make the minimal changes needed to achieve the direction. Do not make unrelated modifications.`;
31
+ ${fileSection}
32
+ ${fileExcerpts.length > 0
33
+ ? 'Implement exactly the design direction described above using the file contents above as your starting point.'
34
+ : 'Read the relevant source files, then implement exactly the design direction described above.'} Focus only on this specific change. Make the minimal changes needed to achieve the direction. Do not make unrelated modifications.`;
27
35
  };
28
36
  const generateVariantCode = async ({ sessionId, projectPath, instruction, element, variants, currentAppliedDiff, onEvent, abortController, }) => {
29
37
  const manager = new WorktreeManager_1.WorktreeManager(projectPath);
@@ -48,6 +56,7 @@ const generateVariantCode = async ({ sessionId, projectPath, instruction, elemen
48
56
  }
49
57
  }
50
58
  try {
59
+ const fileExcerpts = await (0, CommentVariationService_1.readFileExcerpts)(projectPath, element);
51
60
  worktreePaths = await manager.createWorktrees(sessionId, variants.length);
52
61
  await Promise.all(variants.map(async (variant, i) => {
53
62
  const worktreePath = worktreePaths[i];
@@ -55,13 +64,16 @@ const generateVariantCode = async ({ sessionId, projectPath, instruction, elemen
55
64
  try {
56
65
  const agentCore = new AgentCore_1.AgentCore();
57
66
  await agentCore.execute({
58
- systemPrompt: 'You are a frontend engineer implementing a specific design direction. Read the relevant files, then make the targeted code change described. Minimal, focused changes only.',
59
- userPrompt: buildAgentPrompt(instruction, variant.changeSpec, element),
67
+ systemPrompt: fileExcerpts.length > 0
68
+ ? 'You are a frontend engineer implementing a specific design direction. The relevant source files are already provided in the prompt — use them directly without re-reading. Make the targeted code change described. Minimal, focused changes only.'
69
+ : 'You are a frontend engineer implementing a specific design direction. Read the relevant files, then make the targeted code change described. Minimal, focused changes only.',
70
+ userPrompt: buildAgentPrompt(instruction, variant.changeSpec, element, fileExcerpts),
60
71
  allowedTools: ['Read', 'Glob', 'Grep', 'Edit', 'Write'],
61
72
  permissionMode: 'bypassPermissions',
62
73
  cwd: worktreePath,
63
74
  abortController,
64
75
  onProgress: () => { },
76
+ executionPolicy: { disableSubagents: true },
65
77
  });
66
78
  const diff = await manager.getDiff(worktreePath);
67
79
  onEvent({ type: 'variant_completed', variantIndex: variant.index, diff });
@@ -1 +1 @@
1
- {"version":3,"file":"VariantCodeGeneratorService.js","sourceRoot":"","sources":["../../src/services/VariantCodeGeneratorService.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"VariantCodeGeneratorService.js","sourceRoot":"","sources":["../../src/services/VariantCodeGeneratorService.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "rivet-design",
3
- "version": "0.8.4",
3
+ "version": "0.8.6",
4
4
  "description": "Local visual web development tool with AI-powered code modification",
5
5
  "main": "dist/index.js",
6
6
  "workspaces": [