rivet-design 0.14.16 → 0.14.18

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 (87) hide show
  1. package/README.md +19 -0
  2. package/README.npm.md +19 -0
  3. package/bin/rivet.js +196 -28
  4. package/dist/agent-variants/WorktreeOrchestrator.d.ts.map +1 -1
  5. package/dist/agent-variants/WorktreeOrchestrator.js +10 -1
  6. package/dist/agent-variants/WorktreeOrchestrator.js.map +1 -1
  7. package/dist/agent-variants/contracts.d.ts +1 -1
  8. package/dist/agent-variants/contracts.js +4 -4
  9. package/dist/agent-variants/contracts.js.map +1 -1
  10. package/dist/agent-variants/directionAuthoring.d.ts +2 -0
  11. package/dist/agent-variants/directionAuthoring.d.ts.map +1 -1
  12. package/dist/agent-variants/directionAuthoring.js +2 -0
  13. package/dist/agent-variants/directionAuthoring.js.map +1 -1
  14. package/dist/agent-variants/workItemBriefing.d.ts +8 -1
  15. package/dist/agent-variants/workItemBriefing.d.ts.map +1 -1
  16. package/dist/agent-variants/workItemBriefing.js +19 -2
  17. package/dist/agent-variants/workItemBriefing.js.map +1 -1
  18. package/dist/cli/commandNames.d.ts.map +1 -1
  19. package/dist/cli/commandNames.js +1 -0
  20. package/dist/cli/commandNames.js.map +1 -1
  21. package/dist/cli/commands/mcpServe.d.ts.map +1 -1
  22. package/dist/cli/commands/mcpServe.js +3 -0
  23. package/dist/cli/commands/mcpServe.js.map +1 -1
  24. package/dist/cli/commands/update.d.ts +4 -0
  25. package/dist/cli/commands/update.d.ts.map +1 -0
  26. package/dist/cli/commands/update.js +71 -0
  27. package/dist/cli/commands/update.js.map +1 -0
  28. package/dist/cli/hostWorkNextAction.d.ts +3 -0
  29. package/dist/cli/hostWorkNextAction.d.ts.map +1 -1
  30. package/dist/cli/hostWorkNextAction.js +8 -2
  31. package/dist/cli/hostWorkNextAction.js.map +1 -1
  32. package/dist/cli/router.d.ts.map +1 -1
  33. package/dist/cli/router.js +8 -0
  34. package/dist/cli/router.js.map +1 -1
  35. package/dist/index.d.ts.map +1 -1
  36. package/dist/index.js +2 -8
  37. package/dist/index.js.map +1 -1
  38. package/dist/install/automaticCliUpdate.d.ts +50 -0
  39. package/dist/install/automaticCliUpdate.d.ts.map +1 -0
  40. package/dist/install/automaticCliUpdate.js +470 -0
  41. package/dist/install/automaticCliUpdate.js.map +1 -0
  42. package/dist/install/codexGuidance.d.ts +2 -0
  43. package/dist/install/codexGuidance.d.ts.map +1 -1
  44. package/dist/install/codexGuidance.js +13 -1
  45. package/dist/install/codexGuidance.js.map +1 -1
  46. package/dist/install/harnesses.d.ts +12 -2
  47. package/dist/install/harnesses.d.ts.map +1 -1
  48. package/dist/install/harnesses.js +78 -30
  49. package/dist/install/harnesses.js.map +1 -1
  50. package/dist/install/mcpRegistration.d.ts +4 -0
  51. package/dist/install/mcpRegistration.d.ts.map +1 -1
  52. package/dist/install/mcpRegistration.js +48 -6
  53. package/dist/install/mcpRegistration.js.map +1 -1
  54. package/dist/routes/agentVariants.d.ts.map +1 -1
  55. package/dist/routes/agentVariants.js +5 -0
  56. package/dist/routes/agentVariants.js.map +1 -1
  57. package/dist/services/TelemetryService.d.ts +5 -1
  58. package/dist/services/TelemetryService.d.ts.map +1 -1
  59. package/dist/services/TelemetryService.js +12 -1
  60. package/dist/services/TelemetryService.js.map +1 -1
  61. package/dist/services/VariantGenerationService.d.ts.map +1 -1
  62. package/dist/services/VariantGenerationService.js +32 -5
  63. package/dist/services/VariantGenerationService.js.map +1 -1
  64. package/dist/services/VariantRunService.d.ts +3 -0
  65. package/dist/services/VariantRunService.d.ts.map +1 -1
  66. package/dist/services/VariantRunService.js +26 -1
  67. package/dist/services/VariantRunService.js.map +1 -1
  68. package/dist/types/change-request-types.d.ts +3 -0
  69. package/dist/types/change-request-types.d.ts.map +1 -1
  70. package/dist/utils/displayLocale.d.ts +10 -0
  71. package/dist/utils/displayLocale.d.ts.map +1 -0
  72. package/dist/utils/displayLocale.js +30 -0
  73. package/dist/utils/displayLocale.js.map +1 -0
  74. package/dist/utils/skills/claude-skill.d.ts +1 -1
  75. package/dist/utils/skills/claude-skill.d.ts.map +1 -1
  76. package/dist/utils/skills/cli-guidance.d.ts +2 -2
  77. package/dist/utils/skills/cli-guidance.d.ts.map +1 -1
  78. package/dist/utils/skills/cli-guidance.js +7 -4
  79. package/dist/utils/skills/cli-guidance.js.map +1 -1
  80. package/dist/utils/skills/cursor-rules.d.ts +1 -1
  81. package/dist/utils/skills/cursor-rules.d.ts.map +1 -1
  82. package/package.json +1 -1
  83. package/src/ui/dist/assets/main-Dad5qwqj.css +1 -0
  84. package/src/ui/dist/assets/main-WNwLeuDz.js +422 -0
  85. package/src/ui/dist/index.html +2 -2
  86. package/src/ui/dist/assets/main-CrLtwwgK.css +0 -1
  87. package/src/ui/dist/assets/main-DEQafg4b.js +0 -422
@@ -0,0 +1,470 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.checkAndInstallCliUpdate = exports.automaticCliUpdateStatePath = exports.AUTOMATIC_UPDATE_CHECK_INTERVAL_MS = void 0;
7
+ const child_process_1 = require("child_process");
8
+ const crypto_1 = require("crypto");
9
+ const fs_1 = __importDefault(require("fs"));
10
+ const os_1 = __importDefault(require("os"));
11
+ const path_1 = __importDefault(require("path"));
12
+ const serverVersion_1 = require("../cli/serverVersion");
13
+ const AUTOMATIC_UPDATE_STATE_SCHEMA_VERSION = 1;
14
+ const AUTOMATIC_UPDATE_STATE_FILENAME = 'automatic-cli-update.json';
15
+ const NPM_INSTALL_TIMEOUT_MS = 120_000;
16
+ const NPM_ROOT_TIMEOUT_MS = 5_000;
17
+ const REGISTRY_REQUEST_TIMEOUT_MS = 2_000;
18
+ const FAILED_UPDATE_RETRY_INTERVAL_MS = 15 * 60 * 1_000;
19
+ const LOCK_INITIALIZATION_GRACE_MS = 1_000;
20
+ const LOCK_POLL_INTERVAL_MS = 25;
21
+ const LOCK_WAIT_TIMEOUT_MS = 10_000;
22
+ const RIVET_PACKAGE_NAME = 'rivet-design';
23
+ const RIVET_LATEST_PACKAGE_SPEC = `${RIVET_PACKAGE_NAME}@latest`;
24
+ const RIVET_LATEST_REGISTRY_URL = 'https://registry.npmjs.org/rivet-design/latest';
25
+ const SEMVER_PATTERN = /^\d+\.\d+\.\d+(?:-[0-9A-Za-z.-]+)?(?:\+[0-9A-Za-z.-]+)?$/;
26
+ const AUTOMATIC_UPDATE_FAILURE_PHASES = [
27
+ 'check',
28
+ 'install',
29
+ 'refresh',
30
+ 'restart',
31
+ ];
32
+ const AUTOMATIC_UPDATE_FAILURE_REASONS = [
33
+ 'global_root_unavailable',
34
+ 'integration_refresh_failed',
35
+ 'invalid_registry_response',
36
+ 'npm_install_failed',
37
+ 'registry_unavailable',
38
+ 'update_in_progress',
39
+ 'updated_cli_start_failed',
40
+ 'version_verification_failed',
41
+ ];
42
+ exports.AUTOMATIC_UPDATE_CHECK_INTERVAL_MS = 60 * 60 * 1_000;
43
+ /** Returns the user-scoped state file shared by Rivet CLI invocations. */
44
+ const automaticCliUpdateStatePath = (homeDirectory = os_1.default.homedir()) => path_1.default.join(homeDirectory, '.rivet', AUTOMATIC_UPDATE_STATE_FILENAME);
45
+ exports.automaticCliUpdateStatePath = automaticCliUpdateStatePath;
46
+ const isRegistryResponse = (value) => {
47
+ if (value === null || typeof value !== 'object' || Array.isArray(value)) {
48
+ return false;
49
+ }
50
+ const version = value.version;
51
+ return typeof version === 'string' && SEMVER_PATTERN.test(version);
52
+ };
53
+ const isFailurePhase = (value) => typeof value === 'string' &&
54
+ AUTOMATIC_UPDATE_FAILURE_PHASES.includes(value);
55
+ const isFailureReason = (value) => typeof value === 'string' &&
56
+ AUTOMATIC_UPDATE_FAILURE_REASONS.includes(value);
57
+ const isAutomaticCliUpdateState = (value) => {
58
+ if (value === null || typeof value !== 'object' || Array.isArray(value)) {
59
+ return false;
60
+ }
61
+ const state = value;
62
+ if (state.schemaVersion !== AUTOMATIC_UPDATE_STATE_SCHEMA_VERSION ||
63
+ typeof state.checkedAt !== 'number' ||
64
+ typeof state.packageRoot !== 'string' ||
65
+ (state.status !== 'current' && state.status !== 'failed')) {
66
+ return false;
67
+ }
68
+ if (state.latestVersion !== undefined &&
69
+ (typeof state.latestVersion !== 'string' ||
70
+ !SEMVER_PATTERN.test(state.latestVersion))) {
71
+ return false;
72
+ }
73
+ if (state.failure === undefined) {
74
+ return state.status === 'current';
75
+ }
76
+ return (state.status === 'failed' &&
77
+ isFailurePhase(state.failure.phase) &&
78
+ isFailureReason(state.failure.reason) &&
79
+ (state.failure.targetVersion === undefined ||
80
+ (typeof state.failure.targetVersion === 'string' &&
81
+ SEMVER_PATTERN.test(state.failure.targetVersion))));
82
+ };
83
+ const readUpdateState = (statePath) => {
84
+ try {
85
+ const parsed = JSON.parse(fs_1.default.readFileSync(statePath, 'utf8'));
86
+ return isAutomaticCliUpdateState(parsed) ? parsed : null;
87
+ }
88
+ catch {
89
+ return null;
90
+ }
91
+ };
92
+ /** Persists validated update metadata without leaving a partial state file. */
93
+ const writeUpdateState = (statePath, state) => {
94
+ fs_1.default.mkdirSync(path_1.default.dirname(statePath), { recursive: true });
95
+ const temporaryPath = `${statePath}.${process.pid}.tmp`;
96
+ fs_1.default.writeFileSync(temporaryPath, `${JSON.stringify(state, null, 2)}\n`, {
97
+ encoding: 'utf8',
98
+ mode: 0o600,
99
+ });
100
+ fs_1.default.renameSync(temporaryPath, statePath);
101
+ };
102
+ /** Keeps cache persistence failures from changing update or command outcomes. */
103
+ const persistUpdateState = (statePath, state) => {
104
+ try {
105
+ writeUpdateState(statePath, state);
106
+ }
107
+ catch {
108
+ // The cache is an optimization; the next invocation can check again.
109
+ }
110
+ };
111
+ const normalizedPath = (filePath) => {
112
+ try {
113
+ return path_1.default.normalize(fs_1.default.realpathSync(filePath));
114
+ }
115
+ catch {
116
+ return path_1.default.normalize(path_1.default.resolve(filePath));
117
+ }
118
+ };
119
+ const isExcludedExecution = (options) => {
120
+ const pathSegments = normalizedPath(options.packageRoot).split(path_1.default.sep);
121
+ return (options.env.NODE_ENV !== 'production' ||
122
+ options.env.RIVET_AUTO_UPDATE_DISABLED === '1' ||
123
+ options.binPath.split(path_1.default.sep).includes('_npx') ||
124
+ pathSegments.includes('_npx') ||
125
+ (pathSegments.includes('.rivet') && pathSegments.includes('channels')));
126
+ };
127
+ const resolveGlobalPackageRoot = (env) => {
128
+ const result = (0, child_process_1.spawnSync)('npm', ['root', '-g'], {
129
+ encoding: 'utf8',
130
+ env,
131
+ timeout: NPM_ROOT_TIMEOUT_MS,
132
+ });
133
+ if (result.error || result.status !== 0 || !result.stdout.trim()) {
134
+ return { failure: 'global_root_unavailable' };
135
+ }
136
+ return {
137
+ packageRoot: path_1.default.join(result.stdout.trim(), RIVET_PACKAGE_NAME),
138
+ };
139
+ };
140
+ const readPackageVersion = (packageRoot) => {
141
+ try {
142
+ const parsed = JSON.parse(fs_1.default.readFileSync(path_1.default.join(packageRoot, 'package.json'), 'utf8'));
143
+ if (parsed === null ||
144
+ typeof parsed !== 'object' ||
145
+ Array.isArray(parsed)) {
146
+ return null;
147
+ }
148
+ const version = parsed.version;
149
+ return typeof version === 'string' && SEMVER_PATTERN.test(version)
150
+ ? version
151
+ : null;
152
+ }
153
+ catch {
154
+ return null;
155
+ }
156
+ };
157
+ const checkLatestVersion = async (registryUrl) => {
158
+ try {
159
+ const response = await fetch(registryUrl, {
160
+ headers: { Accept: 'application/json' },
161
+ signal: AbortSignal.timeout(REGISTRY_REQUEST_TIMEOUT_MS),
162
+ });
163
+ if (!response.ok) {
164
+ return { ok: false, reason: 'registry_unavailable' };
165
+ }
166
+ const payload = await response.json();
167
+ return isRegistryResponse(payload)
168
+ ? { ok: true, version: payload.version }
169
+ : { ok: false, reason: 'invalid_registry_response' };
170
+ }
171
+ catch {
172
+ return { ok: false, reason: 'registry_unavailable' };
173
+ }
174
+ };
175
+ const failureWarning = (failure) => {
176
+ const recovery = 'Run: npm install -g rivet-design@latest';
177
+ if (failure.targetVersion) {
178
+ return (`Rivet could not update to v${failure.targetVersion}; continuing with v${failure.currentVersion}.\n` +
179
+ `${recovery}\n`);
180
+ }
181
+ return (`Rivet could not check for updates; continuing with v${failure.currentVersion}.\n` +
182
+ `${recovery}\n`);
183
+ };
184
+ const failedResult = (options) => {
185
+ const failure = options;
186
+ return { action: 'continue', failure, warning: failureWarning(failure) };
187
+ };
188
+ /** Reports an active installer without loading files it may be replacing. */
189
+ const activeUpdateResult = (options) => {
190
+ const failure = {
191
+ ...options,
192
+ phase: 'install',
193
+ reason: 'update_in_progress',
194
+ };
195
+ const message = 'Another Rivet process is updating the CLI.';
196
+ return {
197
+ action: 'blocked',
198
+ failure,
199
+ message,
200
+ warning: `${message} The update is still in progress; retry this command in a moment.\n`,
201
+ };
202
+ };
203
+ /** Stops startup when a completed install cannot be safely loaded. */
204
+ const unverifiableInstallResult = (options) => {
205
+ const failure = {
206
+ ...options,
207
+ phase: 'install',
208
+ reason: 'version_verification_failed',
209
+ };
210
+ const message = 'The installed Rivet CLI could not be verified.';
211
+ return {
212
+ action: 'blocked',
213
+ failure,
214
+ message,
215
+ warning: `${message} Rivet stopped before loading changed package files. Run: npm install -g rivet-design@latest\n`,
216
+ };
217
+ };
218
+ const isProcessRunning = (pid) => {
219
+ try {
220
+ process.kill(pid, 0);
221
+ return true;
222
+ }
223
+ catch (error) {
224
+ return error.code !== 'ESRCH';
225
+ }
226
+ };
227
+ /** Acquires the cross-process npm installation lock, removing only stale locks. */
228
+ const acquireUpdateLock = (lockPath) => {
229
+ fs_1.default.mkdirSync(path_1.default.dirname(lockPath), { recursive: true });
230
+ const tryAcquire = () => {
231
+ const candidatePath = `${lockPath}.${process.pid}.${(0, crypto_1.randomUUID)()}`;
232
+ try {
233
+ fs_1.default.writeFileSync(candidatePath, String(process.pid), {
234
+ encoding: 'utf8',
235
+ flag: 'wx',
236
+ mode: 0o600,
237
+ });
238
+ fs_1.default.linkSync(candidatePath, lockPath);
239
+ return true;
240
+ }
241
+ catch (error) {
242
+ if (error.code === 'EEXIST')
243
+ return false;
244
+ throw error;
245
+ }
246
+ finally {
247
+ fs_1.default.rmSync(candidatePath, { force: true });
248
+ }
249
+ };
250
+ let isAcquired = tryAcquire();
251
+ if (!isAcquired) {
252
+ try {
253
+ const owner = Number.parseInt(fs_1.default.readFileSync(lockPath, 'utf8'), 10);
254
+ if (!Number.isNaN(owner) && isProcessRunning(owner))
255
+ return null;
256
+ if (Number.isNaN(owner)) {
257
+ const lockAge = Date.now() - fs_1.default.statSync(lockPath).mtimeMs;
258
+ if (lockAge < LOCK_INITIALIZATION_GRACE_MS)
259
+ return null;
260
+ }
261
+ fs_1.default.rmSync(lockPath, { force: true });
262
+ isAcquired = tryAcquire();
263
+ }
264
+ catch {
265
+ return null;
266
+ }
267
+ }
268
+ if (!isAcquired)
269
+ return null;
270
+ return () => fs_1.default.rmSync(lockPath, { force: true });
271
+ };
272
+ /** Waits up to the deadline for exclusive ownership of the installation lock. */
273
+ const waitForUpdateLock = async (lockPath, timeoutMs) => {
274
+ const deadline = Date.now() + timeoutMs;
275
+ let releaseLock = acquireUpdateLock(lockPath);
276
+ while (releaseLock === null) {
277
+ const remainingMs = deadline - Date.now();
278
+ if (remainingMs <= 0)
279
+ return null;
280
+ await new Promise((resolve) => {
281
+ setTimeout(resolve, Math.min(LOCK_POLL_INTERVAL_MS, remainingMs));
282
+ });
283
+ releaseLock = acquireUpdateLock(lockPath);
284
+ }
285
+ return releaseLock;
286
+ };
287
+ const shouldUseCachedState = (options) => {
288
+ if (options.isForced || !options.state)
289
+ return false;
290
+ const interval = options.state.status === 'failed'
291
+ ? FAILED_UPDATE_RETRY_INTERVAL_MS
292
+ : exports.AUTOMATIC_UPDATE_CHECK_INTERVAL_MS;
293
+ return options.currentTime - options.state.checkedAt < interval;
294
+ };
295
+ /**
296
+ * Checks and installs the latest published CLI before command dispatch.
297
+ * Only the active global npm package is eligible; every failure returns a
298
+ * fail-open result with stderr-safe guidance.
299
+ */
300
+ const checkAndInstallCliUpdate = async (options) => {
301
+ const startedAt = (options.now ?? Date.now)();
302
+ const now = options.now ?? Date.now;
303
+ const env = options.env ?? process.env;
304
+ if (isExcludedExecution({
305
+ binPath: options.binPath,
306
+ env,
307
+ packageRoot: options.packageRoot,
308
+ })) {
309
+ return { action: 'continue' };
310
+ }
311
+ const statePath = (0, exports.automaticCliUpdateStatePath)(options.homeDirectory);
312
+ const state = readUpdateState(statePath);
313
+ const isKnownGlobalPackage = state !== null &&
314
+ normalizedPath(state.packageRoot) === normalizedPath(options.packageRoot);
315
+ if (!isKnownGlobalPackage) {
316
+ const globalPackage = resolveGlobalPackageRoot(env);
317
+ if (!globalPackage.packageRoot) {
318
+ return failedResult({
319
+ currentVersion: options.currentVersion,
320
+ durationMs: now() - startedAt,
321
+ phase: 'check',
322
+ reason: globalPackage.failure ?? 'global_root_unavailable',
323
+ });
324
+ }
325
+ if (normalizedPath(globalPackage.packageRoot) !==
326
+ normalizedPath(options.packageRoot)) {
327
+ return { action: 'continue' };
328
+ }
329
+ }
330
+ const isForced = options.args[0] === 'update';
331
+ const currentTime = now();
332
+ if (shouldUseCachedState({ currentTime, isForced, state })) {
333
+ if (state?.status === 'failed' && state.failure) {
334
+ return failedResult({
335
+ currentVersion: options.currentVersion,
336
+ durationMs: now() - startedAt,
337
+ ...state.failure,
338
+ });
339
+ }
340
+ if (state?.latestVersion &&
341
+ (0, serverVersion_1.isNewerVersion)(state.latestVersion, options.currentVersion) &&
342
+ readPackageVersion(options.packageRoot) === state.latestVersion) {
343
+ return {
344
+ action: 'restart',
345
+ binPath: options.binPath,
346
+ durationMs: now() - startedAt,
347
+ installedVersion: state.latestVersion,
348
+ previousVersion: options.currentVersion,
349
+ refreshIntegrations: true,
350
+ };
351
+ }
352
+ if (!state?.latestVersion ||
353
+ !(0, serverVersion_1.isNewerVersion)(state.latestVersion, options.currentVersion)) {
354
+ return { action: 'continue', checkedVersion: state?.latestVersion };
355
+ }
356
+ }
357
+ const registryUrl = env.RIVET_AUTO_UPDATE_REGISTRY_URL ?? RIVET_LATEST_REGISTRY_URL;
358
+ const latest = await checkLatestVersion(registryUrl);
359
+ if (!latest.ok) {
360
+ const failure = failedResult({
361
+ currentVersion: options.currentVersion,
362
+ durationMs: now() - startedAt,
363
+ phase: 'check',
364
+ reason: latest.reason,
365
+ });
366
+ persistUpdateState(statePath, {
367
+ checkedAt: currentTime,
368
+ failure: { phase: 'check', reason: latest.reason },
369
+ packageRoot: options.packageRoot,
370
+ schemaVersion: AUTOMATIC_UPDATE_STATE_SCHEMA_VERSION,
371
+ status: 'failed',
372
+ });
373
+ return failure;
374
+ }
375
+ if (!(0, serverVersion_1.isNewerVersion)(latest.version, options.currentVersion)) {
376
+ persistUpdateState(statePath, {
377
+ checkedAt: currentTime,
378
+ latestVersion: latest.version,
379
+ packageRoot: options.packageRoot,
380
+ schemaVersion: AUTOMATIC_UPDATE_STATE_SCHEMA_VERSION,
381
+ status: 'current',
382
+ });
383
+ return { action: 'continue', checkedVersion: latest.version };
384
+ }
385
+ const lockPath = `${statePath}.lock`;
386
+ const releaseLock = await waitForUpdateLock(lockPath, options.lockWaitTimeoutMs ?? LOCK_WAIT_TIMEOUT_MS);
387
+ if (releaseLock === null) {
388
+ return activeUpdateResult({
389
+ currentVersion: options.currentVersion,
390
+ durationMs: now() - startedAt,
391
+ targetVersion: latest.version,
392
+ });
393
+ }
394
+ try {
395
+ const packageVersion = readPackageVersion(options.packageRoot);
396
+ if (packageVersion === latest.version) {
397
+ persistUpdateState(statePath, {
398
+ checkedAt: currentTime,
399
+ latestVersion: packageVersion,
400
+ packageRoot: options.packageRoot,
401
+ schemaVersion: AUTOMATIC_UPDATE_STATE_SCHEMA_VERSION,
402
+ status: 'current',
403
+ });
404
+ return {
405
+ action: 'restart',
406
+ binPath: options.binPath,
407
+ durationMs: now() - startedAt,
408
+ installedVersion: packageVersion,
409
+ previousVersion: options.currentVersion,
410
+ refreshIntegrations: true,
411
+ };
412
+ }
413
+ const packageSpec = env.RIVET_AUTO_UPDATE_PACKAGE_SPEC ?? RIVET_LATEST_PACKAGE_SPEC;
414
+ const install = (0, child_process_1.spawnSync)('npm', ['install', '-g', packageSpec, '--no-audit', '--no-fund'], {
415
+ encoding: 'utf8',
416
+ env,
417
+ timeout: NPM_INSTALL_TIMEOUT_MS,
418
+ });
419
+ if (install.error || install.status !== 0) {
420
+ const failure = failedResult({
421
+ currentVersion: options.currentVersion,
422
+ durationMs: now() - startedAt,
423
+ phase: 'install',
424
+ reason: 'npm_install_failed',
425
+ targetVersion: latest.version,
426
+ });
427
+ persistUpdateState(statePath, {
428
+ checkedAt: currentTime,
429
+ failure: {
430
+ phase: 'install',
431
+ reason: 'npm_install_failed',
432
+ targetVersion: latest.version,
433
+ },
434
+ latestVersion: latest.version,
435
+ packageRoot: options.packageRoot,
436
+ schemaVersion: AUTOMATIC_UPDATE_STATE_SCHEMA_VERSION,
437
+ status: 'failed',
438
+ });
439
+ return failure;
440
+ }
441
+ const installedVersion = readPackageVersion(options.packageRoot);
442
+ if (installedVersion === null) {
443
+ return unverifiableInstallResult({
444
+ currentVersion: options.currentVersion,
445
+ durationMs: now() - startedAt,
446
+ targetVersion: latest.version,
447
+ });
448
+ }
449
+ persistUpdateState(statePath, {
450
+ checkedAt: currentTime,
451
+ latestVersion: installedVersion,
452
+ packageRoot: options.packageRoot,
453
+ schemaVersion: AUTOMATIC_UPDATE_STATE_SCHEMA_VERSION,
454
+ status: 'current',
455
+ });
456
+ return {
457
+ action: 'restart',
458
+ binPath: options.binPath,
459
+ durationMs: now() - startedAt,
460
+ installedVersion,
461
+ previousVersion: options.currentVersion,
462
+ refreshIntegrations: true,
463
+ };
464
+ }
465
+ finally {
466
+ releaseLock();
467
+ }
468
+ };
469
+ exports.checkAndInstallCliUpdate = checkAndInstallCliUpdate;
470
+ //# sourceMappingURL=automaticCliUpdate.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"automaticCliUpdate.js","sourceRoot":"","sources":["../../src/install/automaticCliUpdate.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,6 @@
1
1
  export declare const codexAgentsPath: (homeDir?: string) => string;
2
+ /** Returns whether the user-scope guidance contains Rivet's managed section. */
3
+ export declare const hasCodexGuidance: (homeDir?: string) => boolean;
2
4
  export type GuidanceResult = {
3
5
  ok: true;
4
6
  changed: boolean;
@@ -1 +1 @@
1
- {"version":3,"file":"codexGuidance.d.ts","sourceRoot":"","sources":["../../src/install/codexGuidance.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,eAAe,GAAI,UAAS,MAAqB,KAAG,MACtB,CAAC;AAyB5C,MAAM,MAAM,cAAc,GACxB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhE,eAAO,MAAM,kBAAkB,GAC7B,UAAS,MAAqB,KAC7B,cAsBF,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,UAAS,MAAqB,KAC7B,cAmBF,CAAC"}
1
+ {"version":3,"file":"codexGuidance.d.ts","sourceRoot":"","sources":["../../src/install/codexGuidance.ts"],"names":[],"mappings":"AAkBA,eAAO,MAAM,eAAe,GAAI,UAAS,MAAqB,KAAG,MACtB,CAAC;AAyB5C,gFAAgF;AAChF,eAAO,MAAM,gBAAgB,GAAI,UAAS,MAAqB,KAAG,OAQjE,CAAC;AAEF,MAAM,MAAM,cAAc,GACxB;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,GAAG;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAAC;AAEhE,eAAO,MAAM,kBAAkB,GAC7B,UAAS,MAAqB,KAC7B,cAsBF,CAAC;AAEF,eAAO,MAAM,mBAAmB,GAC9B,UAAS,MAAqB,KAC7B,cAmBF,CAAC"}
@@ -3,7 +3,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
3
3
  return (mod && mod.__esModule) ? mod : { "default": mod };
4
4
  };
5
5
  Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.removeCodexGuidance = exports.writeCodexGuidance = exports.codexAgentsPath = void 0;
6
+ exports.removeCodexGuidance = exports.writeCodexGuidance = exports.hasCodexGuidance = exports.codexAgentsPath = void 0;
7
7
  const fs_1 = __importDefault(require("fs"));
8
8
  const os_1 = __importDefault(require("os"));
9
9
  const path_1 = __importDefault(require("path"));
@@ -38,6 +38,18 @@ const stripSection = (contents) => {
38
38
  const sectionEnd = contents[afterMarker] === '\n' ? afterMarker + 1 : afterMarker;
39
39
  return `${contents.slice(0, sectionStart)}${contents.slice(sectionEnd)}`;
40
40
  };
41
+ /** Returns whether the user-scope guidance contains Rivet's managed section. */
42
+ const hasCodexGuidance = (homeDir = os_1.default.homedir()) => {
43
+ try {
44
+ return fs_1.default
45
+ .readFileSync((0, exports.codexAgentsPath)(homeDir), 'utf8')
46
+ .includes(SECTION_BEGIN);
47
+ }
48
+ catch {
49
+ return false;
50
+ }
51
+ };
52
+ exports.hasCodexGuidance = hasCodexGuidance;
41
53
  const writeCodexGuidance = (homeDir = os_1.default.homedir()) => {
42
54
  const filePath = (0, exports.codexAgentsPath)(homeDir);
43
55
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"codexGuidance.js","sourceRoot":"","sources":["../../src/install/codexGuidance.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"codexGuidance.js","sourceRoot":"","sources":["../../src/install/codexGuidance.ts"],"names":[],"mappings":"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"}
@@ -20,6 +20,14 @@ export type InstallOutcome = {
20
20
  export type HarnessInstallOptions = {
21
21
  mcp?: boolean;
22
22
  };
23
+ export type HarnessUpdateOptions = {
24
+ isQuiet?: boolean;
25
+ };
26
+ export type HarnessUpdateResult = {
27
+ detectedInstalledCount: number;
28
+ isSuccessful: boolean;
29
+ refreshedCount: number;
30
+ };
23
31
  /**
24
32
  * A single agent harness Rivet can install into (Claude Code, Cursor, …).
25
33
  *
@@ -54,13 +62,15 @@ export interface Harness {
54
62
  supportsMcp?: boolean;
55
63
  /** True when this harness appears present on the machine. */
56
64
  detect(): boolean;
65
+ /** True when Rivet already owns artifacts in this harness. */
66
+ isInstalled(): boolean;
57
67
  /** Message shown when a user explicitly targets a harness that isn't present. */
58
68
  notInstalledMessage(): string;
59
69
  install(options?: HarnessInstallOptions): InstallOutcome;
60
70
  /** Returns whether anything was actually removed. */
61
71
  uninstall(): boolean;
62
72
  /** Refresh guidance/allowlists only if already installed. Returns whether it updated. */
63
- update(): boolean;
73
+ update(options?: HarnessUpdateOptions): boolean;
64
74
  /** Multi-line "Next steps" block printed after a single-target install. */
65
75
  nextSteps: string;
66
76
  /** One-line hint shown next to this harness in the install-everywhere summary. */
@@ -96,6 +106,6 @@ export declare const uninstallHarnesses: (target?: string | string[]) => {
96
106
  exitCode: number;
97
107
  };
98
108
  /** Refresh guidance/allowlists for every detected, already-installed harness. */
99
- export declare const updateHarnesses: () => void;
109
+ export declare const updateHarnesses: (options?: HarnessUpdateOptions) => HarnessUpdateResult;
100
110
  export { verifyCodexRules };
101
111
  //# sourceMappingURL=harnesses.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"harnesses.d.ts","sourceRoot":"","sources":["../../src/install/harnesses.ts"],"names":[],"mappings":"AAUA,OAAO,EAIL,gBAAgB,EAQjB,MAAM,cAAc,CAAC;AAwBtB;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAE/D;;;;;;GAMG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEtD;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,OAAO;IACtB,kEAAkE;IAClE,EAAE,EAAE,MAAM,CAAC;IACX,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,eAAe,EAAE,MAAM,CAAC;IACxB,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,6DAA6D;IAC7D,MAAM,IAAI,OAAO,CAAC;IAClB,iFAAiF;IACjF,mBAAmB,IAAI,MAAM,CAAC;IAC9B,OAAO,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,cAAc,CAAC;IACzD,qDAAqD;IACrD,SAAS,IAAI,OAAO,CAAC;IACrB,yFAAyF;IACzF,MAAM,IAAI,OAAO,CAAC;IAClB,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAC;IAClB,kFAAkF;IAClF,WAAW,EAAE,MAAM,CAAC;IACpB,2FAA2F;IAC3F,WAAW,EAAE,MAAM,CAAC;CACrB;AA8CD,KAAK,8BAA8B,GAAG;IACpC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,+BAA+B,GAAI,kCAG7C,8BAA8B,KAAG,OAE+B,CAAC;AA8YpE,eAAO,MAAM,SAAS,EAAE,OAAO,EAK9B,CAAC;AAaF,eAAO,MAAM,WAAW,GAAI,IAAI,MAAM,KAAG,OAAO,GAAG,SACa,CAAC;AAEjE,eAAO,MAAM,iBAAiB,GAAI,UAAU,qBAAqB,KAAG,OAAO,EAKxE,CAAC;AAEJ,8DAA8D;AAC9D,eAAO,MAAM,kBAAkB,GAAI,KAAK,MAAM,KAAG,MACkB,CAAC;AA2CpE;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAC3B,SAAS,MAAM,GAAG,MAAM,EAAE,EAC1B,UAAU,qBAAqB,KAC9B;IAAE,QAAQ,EAAE,MAAM,CAAA;CAqEpB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC7B,SAAS,MAAM,GAAG,MAAM,EAAE,KACzB;IAAE,QAAQ,EAAE,MAAM,CAAA;CA2CpB,CAAC;AAEF,iFAAiF;AACjF,eAAO,MAAM,eAAe,QAAO,IAUlC,CAAC;AAEF,OAAO,EAAE,gBAAgB,EAAE,CAAC"}
1
+ {"version":3,"file":"harnesses.d.ts","sourceRoot":"","sources":["../../src/install/harnesses.ts"],"names":[],"mappings":"AAUA,OAAO,EAIL,gBAAgB,EAUjB,MAAM,cAAc,CAAC;AA+BtB;;;;;;GAMG;AACH,MAAM,MAAM,cAAc,GAAG;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC;AAE/D;;;;;;GAMG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAAE,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEtD,MAAM,MAAM,oBAAoB,GAAG;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAEzD,MAAM,MAAM,mBAAmB,GAAG;IAChC,sBAAsB,EAAE,MAAM,CAAC;IAC/B,YAAY,EAAE,OAAO,CAAC;IACtB,cAAc,EAAE,MAAM,CAAC;CACxB,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,OAAO;IACtB,kEAAkE;IAClE,EAAE,EAAE,MAAM,CAAC;IACX,uDAAuD;IACvD,KAAK,EAAE,MAAM,CAAC;IACd,+CAA+C;IAC/C,eAAe,EAAE,MAAM,CAAC;IACxB,8DAA8D;IAC9D,UAAU,EAAE,MAAM,CAAC;IACnB;;;OAGG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB;;;;OAIG;IACH,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,6DAA6D;IAC7D,MAAM,IAAI,OAAO,CAAC;IAClB,8DAA8D;IAC9D,WAAW,IAAI,OAAO,CAAC;IACvB,iFAAiF;IACjF,mBAAmB,IAAI,MAAM,CAAC;IAC9B,OAAO,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,cAAc,CAAC;IACzD,qDAAqD;IACrD,SAAS,IAAI,OAAO,CAAC;IACrB,yFAAyF;IACzF,MAAM,CAAC,OAAO,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC;IAChD,2EAA2E;IAC3E,SAAS,EAAE,MAAM,CAAC;IAClB,kFAAkF;IAClF,WAAW,EAAE,MAAM,CAAC;IACpB,2FAA2F;IAC3F,WAAW,EAAE,MAAM,CAAC;CACrB;AA8CD,KAAK,8BAA8B,GAAG;IACpC,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,2EAA2E;AAC3E,eAAO,MAAM,+BAA+B,GAAI,kCAG7C,8BAA8B,KAAG,OAE+B,CAAC;AA0apE,eAAO,MAAM,SAAS,EAAE,OAAO,EAK9B,CAAC;AAaF,eAAO,MAAM,WAAW,GAAI,IAAI,MAAM,KAAG,OAAO,GAAG,SACa,CAAC;AAEjE,eAAO,MAAM,iBAAiB,GAAI,UAAU,qBAAqB,KAAG,OAAO,EAKxE,CAAC;AAEJ,8DAA8D;AAC9D,eAAO,MAAM,kBAAkB,GAAI,KAAK,MAAM,KAAG,MACkB,CAAC;AA2CpE;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,GAC3B,SAAS,MAAM,GAAG,MAAM,EAAE,EAC1B,UAAU,qBAAqB,KAC9B;IAAE,QAAQ,EAAE,MAAM,CAAA;CAqEpB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,GAC7B,SAAS,MAAM,GAAG,MAAM,EAAE,KACzB;IAAE,QAAQ,EAAE,MAAM,CAAA;CA2CpB,CAAC;AAEF,iFAAiF;AACjF,eAAO,MAAM,eAAe,GAC1B,UAAU,oBAAoB,KAC7B,mBA2CF,CAAC;AAEF,OAAO,EAAE,gBAAgB,EAAE,CAAC"}