rivet-design 0.19.0 → 0.19.1

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 (47) hide show
  1. package/README.md +1 -1
  2. package/README.npm.md +1 -1
  3. package/dist/agent-variants/PreviewRuntime.d.ts +100 -0
  4. package/dist/agent-variants/PreviewRuntime.d.ts.map +1 -0
  5. package/dist/agent-variants/PreviewRuntime.js +577 -0
  6. package/dist/agent-variants/PreviewRuntime.js.map +1 -0
  7. package/dist/agent-variants/WorkspaceInventory.d.ts +81 -0
  8. package/dist/agent-variants/WorkspaceInventory.d.ts.map +1 -0
  9. package/dist/agent-variants/WorkspaceInventory.js +172 -0
  10. package/dist/agent-variants/WorkspaceInventory.js.map +1 -0
  11. package/dist/agent-variants/WorkspaceProvisioning.d.ts +40 -0
  12. package/dist/agent-variants/WorkspaceProvisioning.d.ts.map +1 -0
  13. package/dist/agent-variants/WorkspaceProvisioning.js +419 -0
  14. package/dist/agent-variants/WorkspaceProvisioning.js.map +1 -0
  15. package/dist/agent-variants/WorktreeOrchestrator.d.ts +9 -178
  16. package/dist/agent-variants/WorktreeOrchestrator.d.ts.map +1 -1
  17. package/dist/agent-variants/WorktreeOrchestrator.js +190 -2213
  18. package/dist/agent-variants/WorktreeOrchestrator.js.map +1 -1
  19. package/dist/agent-variants/designContextArtifacts.d.ts +25 -0
  20. package/dist/agent-variants/designContextArtifacts.d.ts.map +1 -0
  21. package/dist/agent-variants/designContextArtifacts.js +471 -0
  22. package/dist/agent-variants/designContextArtifacts.js.map +1 -0
  23. package/dist/agent-variants/variant-project-runtime.d.ts +40 -0
  24. package/dist/agent-variants/variant-project-runtime.d.ts.map +1 -0
  25. package/dist/agent-variants/variant-project-runtime.js +3 -0
  26. package/dist/agent-variants/variant-project-runtime.js.map +1 -0
  27. package/dist/agent-variants/variantWorkspaceFiles.d.ts +44 -0
  28. package/dist/agent-variants/variantWorkspaceFiles.d.ts.map +1 -0
  29. package/dist/agent-variants/variantWorkspaceFiles.js +426 -0
  30. package/dist/agent-variants/variantWorkspaceFiles.js.map +1 -0
  31. package/dist/agent-variants/variantsTelemetry.d.ts +189 -0
  32. package/dist/agent-variants/variantsTelemetry.d.ts.map +1 -0
  33. package/dist/agent-variants/variantsTelemetry.js +160 -0
  34. package/dist/agent-variants/variantsTelemetry.js.map +1 -0
  35. package/dist/utils/skills/claude-skill.d.ts +1 -1
  36. package/dist/utils/skills/claude-skill.d.ts.map +1 -1
  37. package/dist/utils/skills/claude-skill.js +1 -1
  38. package/dist/utils/skills/claude-skill.js.map +1 -1
  39. package/dist/utils/skills/cli-guidance.d.ts +1 -1
  40. package/dist/utils/skills/cli-guidance.js +4 -4
  41. package/dist/utils/skills/codex-skill.d.ts +1 -1
  42. package/dist/utils/skills/codex-skill.d.ts.map +1 -1
  43. package/dist/utils/skills/codex-skill.js +2 -2
  44. package/package.json +1 -1
  45. package/src/ui/dist/assets/{LibraryApp-B4ztVk52.js → LibraryApp-Sm0rsDtm.js} +8 -8
  46. package/src/ui/dist/assets/{main-CAPEQf84.js → main-5v9Ic8BN.js} +94 -94
  47. package/src/ui/dist/index.html +1 -1
@@ -0,0 +1,419 @@
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.WorkspaceProvisioning = void 0;
7
+ const crypto_1 = require("crypto");
8
+ const fs_1 = __importDefault(require("fs"));
9
+ const os_1 = __importDefault(require("os"));
10
+ const path_1 = __importDefault(require("path"));
11
+ const viteReactTs_1 = require("../services/templates/viteReactTs");
12
+ const logger_1 = require("../utils/logger");
13
+ const contextAssets_1 = require("./contextAssets");
14
+ const errors_1 = require("./errors");
15
+ const runPlan_1 = require("./runPlan");
16
+ const variantsTelemetry_1 = require("./variantsTelemetry");
17
+ const variantWorkspaceFiles_1 = require("./variantWorkspaceFiles");
18
+ const log = (0, logger_1.createLogger)('WorkspaceProvisioning');
19
+ class ProvisionTimeoutError extends Error {
20
+ }
21
+ const withProvisionTimeout = (work, timeoutMs) => {
22
+ let timer;
23
+ const timeout = new Promise((_, reject) => {
24
+ timer = setTimeout(() => reject(new ProvisionTimeoutError()), timeoutMs);
25
+ timer.unref?.();
26
+ });
27
+ return Promise.race([work, timeout]).finally(() => clearTimeout(timer));
28
+ };
29
+ const isImplementationWorkItem = (kind) => kind === 'static_preview' || kind === 'refine_variant' || kind === 'code_gen';
30
+ const isPathWithinRoot = (absolutePath, root) => {
31
+ const relative = path_1.default.relative(root, absolutePath);
32
+ return (relative === '' ||
33
+ (relative.length > 0 &&
34
+ !relative.startsWith('..') &&
35
+ !path_1.default.isAbsolute(relative)));
36
+ };
37
+ const SENSITIVE_PATH_SEGMENTS = new Set([
38
+ '.ssh',
39
+ '.aws',
40
+ '.gnupg',
41
+ '.kube',
42
+ '.docker',
43
+ '.config',
44
+ '.npm',
45
+ '.cargo',
46
+ '.gem',
47
+ '.netrc',
48
+ 'private',
49
+ 'secrets',
50
+ 'credentials',
51
+ ]);
52
+ const hasSensitivePathSegment = (absolutePath) => absolutePath
53
+ .split(/[/\\]/)
54
+ .filter(Boolean)
55
+ .some((segment) => SENSITIVE_PATH_SEGMENTS.has(segment.toLowerCase()));
56
+ const copyAssetIntoWorktree = (worktreePath, entry, assetSourceRoot) => {
57
+ if (!assetSourceRoot) {
58
+ throw new errors_1.AgentVariantsError('RUNTIME_VALIDATION_FAILED', `assetPlan.source requires an approved asset root before copying '${entry.source}'`);
59
+ }
60
+ if (!path_1.default.isAbsolute(assetSourceRoot)) {
61
+ throw new errors_1.AgentVariantsError('RUNTIME_VALIDATION_FAILED', `assetSourceRoot must be an absolute path, got '${assetSourceRoot}'`);
62
+ }
63
+ const absoluteSource = path_1.default.isAbsolute(entry.source)
64
+ ? entry.source
65
+ : path_1.default.resolve(assetSourceRoot, entry.source);
66
+ const extension = path_1.default.extname(absoluteSource).toLowerCase();
67
+ if (!variantWorkspaceFiles_1.ALLOWED_INERT_ASSET_EXTENSIONS.has(extension)) {
68
+ throw new errors_1.AgentVariantsError('RUNTIME_VALIDATION_FAILED', `assetPlan.source extension '${extension || '(none)'}' is not on the allowlist (got '${entry.source}'). Only inert media/font/document assets may be copied.`);
69
+ }
70
+ let sourceStat;
71
+ try {
72
+ sourceStat = fs_1.default.lstatSync(absoluteSource);
73
+ }
74
+ catch {
75
+ throw new errors_1.AgentVariantsError('RUNTIME_VALIDATION_FAILED', `assetPlan.source not found on disk: ${entry.source}`);
76
+ }
77
+ if (sourceStat.isSymbolicLink()) {
78
+ throw new errors_1.AgentVariantsError('RUNTIME_VALIDATION_FAILED', `assetPlan.source must not be a symlink: ${entry.source}`);
79
+ }
80
+ if (!sourceStat.isFile()) {
81
+ throw new errors_1.AgentVariantsError('RUNTIME_VALIDATION_FAILED', `assetPlan.source must be a regular file: ${entry.source}`);
82
+ }
83
+ let resolvedSource;
84
+ try {
85
+ resolvedSource = fs_1.default.realpathSync(absoluteSource);
86
+ }
87
+ catch {
88
+ throw new errors_1.AgentVariantsError('RUNTIME_VALIDATION_FAILED', `assetPlan.source could not be resolved: ${entry.source}`);
89
+ }
90
+ let resolvedRoot;
91
+ try {
92
+ resolvedRoot = fs_1.default.realpathSync(assetSourceRoot);
93
+ }
94
+ catch {
95
+ throw new errors_1.AgentVariantsError('RUNTIME_VALIDATION_FAILED', `assetSourceRoot could not be resolved: ${assetSourceRoot}`);
96
+ }
97
+ if (!fs_1.default.statSync(resolvedSource).isFile()) {
98
+ throw new errors_1.AgentVariantsError('RUNTIME_VALIDATION_FAILED', `assetPlan.source resolved target must be a regular file: ${entry.source}`);
99
+ }
100
+ if (!isPathWithinRoot(resolvedSource, resolvedRoot)) {
101
+ throw new errors_1.AgentVariantsError('RUNTIME_VALIDATION_FAILED', `assetPlan.source must stay inside the approved asset root: ${entry.source}`);
102
+ }
103
+ if (hasSensitivePathSegment(path_1.default.relative(resolvedRoot, resolvedSource))) {
104
+ throw new errors_1.AgentVariantsError('RUNTIME_VALIDATION_FAILED', `assetPlan.source traverses a sensitive directory and is refused: ${entry.source}`);
105
+ }
106
+ const resolvedExtension = path_1.default.extname(resolvedSource).toLowerCase();
107
+ if (!variantWorkspaceFiles_1.ALLOWED_INERT_ASSET_EXTENSIONS.has(resolvedExtension)) {
108
+ throw new errors_1.AgentVariantsError('RUNTIME_VALIDATION_FAILED', `assetPlan.source resolved extension '${resolvedExtension || '(none)'}' is not on the allowlist (resolved from '${entry.source}').`);
109
+ }
110
+ const normalizedDestination = path_1.default.normalize(entry.destination);
111
+ if (normalizedDestination.startsWith('..') ||
112
+ path_1.default.isAbsolute(normalizedDestination)) {
113
+ throw new errors_1.AgentVariantsError('RUNTIME_VALIDATION_FAILED', `assetPlan.destination must stay inside the worktree, got '${entry.destination}'`);
114
+ }
115
+ const destination = path_1.default.join(worktreePath, normalizedDestination);
116
+ fs_1.default.mkdirSync(path_1.default.dirname(destination), { recursive: true });
117
+ fs_1.default.copyFileSync(resolvedSource, destination);
118
+ };
119
+ class WorkspaceProvisioning {
120
+ deps;
121
+ constructor(deps) {
122
+ this.deps = deps;
123
+ }
124
+ async resolveContextAssetPreviewKind(sessionId) {
125
+ try {
126
+ const environment = await this.deps.resolveProjectEnvironment(sessionId);
127
+ this.deps.inventory.setContextAssetPreviewKind(sessionId, environment.framework === 'static' ? 'static_artifact' : 'dev_server');
128
+ }
129
+ catch (error) {
130
+ this.deps.inventory.setContextAssetPreviewKind(sessionId, 'dev_server');
131
+ log.warn(`Failed to resolve context asset preview kind for ${sessionId}; using dev-server references`, error);
132
+ }
133
+ }
134
+ assignImplementationWorkspaces(sessionId, items) {
135
+ this.deps.inventory.openSession(sessionId);
136
+ const projectContext = this.deps.store.getProjectContext(sessionId);
137
+ const provisionStartedAt = Date.now();
138
+ let assignedCount = 0;
139
+ for (const item of items) {
140
+ if (item.kind === 'static_preview' || item.kind === 'refine_variant') {
141
+ if (!this.deps.inventory.getAssignedWorkspace(sessionId, item.id)) {
142
+ assignedCount += 1;
143
+ const input = (item.input ?? {});
144
+ const existingProjectPath = projectContext.kind === 'existing'
145
+ ? projectContext.projectPath
146
+ : undefined;
147
+ const existingParent = existingProjectPath && fs_1.default.existsSync(existingProjectPath)
148
+ ? path_1.default.join(existingProjectPath, '.rivet', 'variant-work', sessionId)
149
+ : path_1.default.join(os_1.default.tmpdir(), 'rivet-variant-work', sessionId);
150
+ const parent = projectContext.kind === 'fresh'
151
+ ? projectContext.workspacePath
152
+ : existingParent;
153
+ const rootPath = projectContext.kind === 'fresh'
154
+ ? path_1.default.join(parent, `.rivet-preview-${item.id}`)
155
+ : path_1.default.join(parent, item.id);
156
+ const sourceVariantId = input.sourceVariantId ?? input.variantId;
157
+ const sourceDirectory = sourceVariantId
158
+ ? this.deps.inventory.getStaticPreview(sessionId, sourceVariantId)
159
+ ?.assetBase
160
+ : undefined;
161
+ this.deps.inventory.assignArtifactWorkspace({
162
+ sessionId,
163
+ workItemId: item.id,
164
+ rootPath,
165
+ allowedRoot: parent,
166
+ entryPath: 'index.html',
167
+ sourceDirectory,
168
+ seedHtml: input.currentHtml,
169
+ });
170
+ }
171
+ }
172
+ if (!isImplementationWorkItem(item.kind))
173
+ continue;
174
+ const input = (item.input ?? {});
175
+ const assets = input.context?.contextAssets ?? [];
176
+ if (assets.length === 0)
177
+ continue;
178
+ const workspace = this.deps.inventory.getAssignedWorkspace(sessionId, item.id);
179
+ if (!workspace) {
180
+ throw new errors_1.AgentVariantsError('RUNTIME_VALIDATION_FAILED', `Variant ${item.id} has no assigned workspace`);
181
+ }
182
+ const previewKind = workspace.kind === 'artifact_directory'
183
+ ? 'static_artifact'
184
+ : (this.deps.inventory.getContextAssetPreviewKind(sessionId) ??
185
+ 'dev_server');
186
+ this.deps.inventory.setContextAssets(sessionId, item.id, (0, contextAssets_1.materializeContextAssets)({ assets, workspace, previewKind }));
187
+ }
188
+ if (assignedCount > 0) {
189
+ this.deps.telemetry.track('agent_variants.provisioning_completed', {
190
+ source: 'mcp',
191
+ sessionId,
192
+ kind: 'artifact_directory',
193
+ variantCount: assignedCount,
194
+ durationMs: Date.now() - provisionStartedAt,
195
+ });
196
+ }
197
+ }
198
+ readArtifact(sessionId, workItemId) {
199
+ if (!this.deps.inventory.hasSession(sessionId)) {
200
+ throw new errors_1.AgentVariantsError('SESSION_NOT_FOUND', `No live resources for session ${sessionId}`);
201
+ }
202
+ return this.deps.inventory.readArtifact(sessionId, workItemId);
203
+ }
204
+ async provisionAppended(sessionId, workItemIds) {
205
+ if (workItemIds.length === 0)
206
+ return;
207
+ await this.withTelemetry({
208
+ sessionId,
209
+ kind: 'appended_existing',
210
+ variantCount: workItemIds.length,
211
+ }, async () => {
212
+ const paths = await withProvisionTimeout(this.deps.worktreeManager.createWorktrees(sessionId, workItemIds.length, `a${(0, crypto_1.randomUUID)().slice(0, 8)}-`), this.deps.provisionTimeoutMs);
213
+ await Promise.all(workItemIds.map((workItemId, index) => this.deps.inventory.registerWorktree(sessionId, {
214
+ workItemId,
215
+ worktreePath: paths[index],
216
+ })));
217
+ });
218
+ }
219
+ async provisionForked(sessionId, sourceVariantId, workItemIds) {
220
+ if (workItemIds.length === 0)
221
+ return;
222
+ const sourcePath = this.deps.inventory.getWorktree(sessionId, sourceVariantId)?.worktreePath;
223
+ if (!sourcePath) {
224
+ throw new errors_1.AgentVariantsError('VARIANT_NOT_EDITABLE', `Cannot fork from variant ${sourceVariantId}: no worktree path`);
225
+ }
226
+ const fork = this.deps.worktreeManager.forkWorktreesFrom?.bind(this.deps.worktreeManager);
227
+ if (!fork) {
228
+ throw new errors_1.AgentVariantsError('RUNTIME_VALIDATION_FAILED', 'worktreeManager does not implement forkWorktreesFrom');
229
+ }
230
+ await this.withTelemetry({ sessionId, kind: 'forked_variant', variantCount: workItemIds.length }, async () => {
231
+ const paths = await withProvisionTimeout(fork(sourcePath, sessionId, workItemIds.length, `f${(0, crypto_1.randomUUID)().slice(0, 8)}-`), this.deps.provisionTimeoutMs);
232
+ await Promise.all(workItemIds.map((workItemId, index) => this.deps.inventory.registerWorktree(sessionId, {
233
+ workItemId,
234
+ worktreePath: paths[index],
235
+ })));
236
+ });
237
+ }
238
+ async provision(sessionId, approveResult) {
239
+ const projectContext = this.deps.store.getProjectContext(sessionId);
240
+ if ((0, runPlan_1.resolveRunPlanPolicy)(projectContext).provision === 'none')
241
+ return;
242
+ const variantCount = approveResult.codeGenWorkItemIds.length +
243
+ (approveResult.scaffoldBaseWorkItemId ? 1 : 0);
244
+ try {
245
+ await this.withTelemetry({ sessionId, kind: projectContext.kind, variantCount }, async () => {
246
+ if (projectContext.kind === 'fresh') {
247
+ await this.provisionFresh(sessionId, approveResult, projectContext);
248
+ }
249
+ else {
250
+ await this.provisionExisting(sessionId, approveResult);
251
+ }
252
+ }, this.deps.provisionTimeoutMs);
253
+ }
254
+ catch (error) {
255
+ void this.deps.cancelSession(sessionId).catch((cleanupError) => {
256
+ log.warn(`cleanup after provisioning failure for ${sessionId} failed`, cleanupError);
257
+ });
258
+ if (error instanceof ProvisionTimeoutError) {
259
+ throw new errors_1.AgentVariantsError('RUNTIME_VALIDATION_FAILED', `Provisioning ${variantCount} variant worktree(s) timed out after ` +
260
+ `${Math.round(this.deps.provisionTimeoutMs / 1000)}s. This usually means the ` +
261
+ `project is very large or slow to clone (e.g. a big monorepo, or a ` +
262
+ `React Native tree with native build dirs that aren't git-ignored). ` +
263
+ `Try git-ignoring build artifacts, or generate standalone variants ` +
264
+ `with start_variants(mode='zero_to_one') instead of cloning this project.`);
265
+ }
266
+ throw error;
267
+ }
268
+ }
269
+ async provisionExisting(sessionId, approveResult) {
270
+ const workItemIds = [
271
+ ...(approveResult.scaffoldBaseWorkItemId
272
+ ? [approveResult.scaffoldBaseWorkItemId]
273
+ : []),
274
+ ...approveResult.codeGenWorkItemIds,
275
+ ];
276
+ if (workItemIds.length === 0)
277
+ return;
278
+ const paths = await this.deps.worktreeManager.createWorktrees(sessionId, workItemIds.length);
279
+ if (approveResult.scaffoldBaseWorkItemId) {
280
+ this.deps.inventory.setScaffoldBaseWorkItemId(sessionId, approveResult.scaffoldBaseWorkItemId);
281
+ }
282
+ await Promise.all(workItemIds.map((workItemId, index) => this.deps.inventory.registerWorktree(sessionId, {
283
+ workItemId,
284
+ worktreePath: paths[index],
285
+ })));
286
+ }
287
+ async provisionFresh(sessionId, approveResult, projectContext) {
288
+ const scaffoldId = approveResult.scaffoldBaseWorkItemId;
289
+ if (!scaffoldId) {
290
+ throw new errors_1.AgentVariantsError('INVALID_STAGE_ACTION', `Fresh session ${sessionId} approved without a scaffold_base item`);
291
+ }
292
+ const workItemIds = approveResult.codeGenWorkItemIds;
293
+ if (workItemIds.length === 0)
294
+ return;
295
+ const createFresh = this.deps.worktreeManager.createFreshWorktrees;
296
+ if (!createFresh) {
297
+ throw new errors_1.AgentVariantsError('RUNTIME_VALIDATION_FAILED', 'worktreeManager does not implement createFreshWorktrees');
298
+ }
299
+ const designContext = projectContext.designContext
300
+ ? workItemIds.map((workItemId) => this.deps.store.getWorkItemInput(sessionId, workItemId).designContextEntry)
301
+ : undefined;
302
+ const scaffoldStartedAt = Date.now();
303
+ (0, variantsTelemetry_1.trackScaffoldStarted)(this.deps.telemetry, {
304
+ sessionId,
305
+ variantCount: workItemIds.length,
306
+ designContext: (0, variantsTelemetry_1.summarizeDesignContext)(designContext),
307
+ });
308
+ const paths = await createFresh.call(this.deps.worktreeManager, sessionId, workItemIds.length, viteReactTs_1.VITE_REACT_TS_TEMPLATE, designContext, projectContext.workspaceRoot);
309
+ this.deps.inventory.setScaffoldBaseWorkItemId(sessionId, scaffoldId);
310
+ this.deps.inventory.setFreshDestinationParent(sessionId, projectContext.workspaceRoot);
311
+ await Promise.all(workItemIds.map((workItemId, index) => this.deps.inventory.registerWorktree(sessionId, {
312
+ workItemId,
313
+ worktreePath: paths[index],
314
+ })));
315
+ try {
316
+ for (const worktreePath of paths) {
317
+ for (const entry of projectContext.executionPlan?.assetPlan ?? []) {
318
+ copyAssetIntoWorktree(worktreePath, entry, projectContext.assetSourceRoot);
319
+ }
320
+ }
321
+ }
322
+ catch (error) {
323
+ this.failScaffold(sessionId, scaffoldId, scaffoldStartedAt, error);
324
+ return;
325
+ }
326
+ void this.installFreshDependencies(sessionId, scaffoldId, paths, scaffoldStartedAt).catch((error) => {
327
+ log.error(`installFreshDependencies failed for session ${sessionId}`, error);
328
+ });
329
+ }
330
+ async installFreshDependencies(sessionId, scaffoldId, worktreePaths, scaffoldStartedAt) {
331
+ const installStartedAt = Date.now();
332
+ try {
333
+ await Promise.all(worktreePaths.map((worktreePath) => this.deps.installDependencies(worktreePath, {
334
+ workspaceRoot: worktreePath,
335
+ signal: this.deps.inventory.getDependencySignal(sessionId),
336
+ })));
337
+ }
338
+ catch (error) {
339
+ if (!this.deps.isSessionLive(sessionId) ||
340
+ this.deps.inventory.isCleanupStarted(sessionId)) {
341
+ return;
342
+ }
343
+ this.failScaffold(sessionId, scaffoldId, scaffoldStartedAt, error);
344
+ return;
345
+ }
346
+ try {
347
+ this.deps.store.completeInternal({
348
+ sessionId,
349
+ workItemId: scaffoldId,
350
+ output: { worktreePaths },
351
+ });
352
+ this.deps.changed();
353
+ }
354
+ catch (error) {
355
+ log.warn(`completeInternal failed for ${sessionId}/${scaffoldId}`, error);
356
+ }
357
+ (0, variantsTelemetry_1.trackScaffoldCompleted)(this.deps.telemetry, {
358
+ sessionId,
359
+ durationMs: Date.now() - scaffoldStartedAt,
360
+ installDurationMs: Date.now() - installStartedAt,
361
+ variantCount: worktreePaths.length,
362
+ });
363
+ }
364
+ failScaffold(sessionId, scaffoldId, scaffoldStartedAt, error) {
365
+ (0, variantsTelemetry_1.trackScaffoldFailed)(this.deps.telemetry, {
366
+ sessionId,
367
+ errorCode: 'SCAFFOLD_FAILED',
368
+ durationMs: Date.now() - scaffoldStartedAt,
369
+ });
370
+ try {
371
+ this.deps.store.failInternal({
372
+ sessionId,
373
+ workItemId: scaffoldId,
374
+ error: {
375
+ code: 'SCAFFOLD_FAILED',
376
+ message: error instanceof Error ? error.message : String(error),
377
+ },
378
+ });
379
+ this.deps.changed();
380
+ }
381
+ catch (storeError) {
382
+ log.error(`failInternal failed for ${sessionId}/${scaffoldId}`, storeError);
383
+ }
384
+ }
385
+ async withTelemetry(args, run, timeoutMs) {
386
+ const startedAt = Date.now();
387
+ this.deps.telemetry.track('agent_variants.provisioning_started', {
388
+ source: 'mcp',
389
+ ...args,
390
+ });
391
+ try {
392
+ const result = await (timeoutMs
393
+ ? withProvisionTimeout(run(), timeoutMs)
394
+ : run());
395
+ this.deps.telemetry.track('agent_variants.provisioning_completed', {
396
+ source: 'mcp',
397
+ ...args,
398
+ durationMs: Date.now() - startedAt,
399
+ });
400
+ return result;
401
+ }
402
+ catch (error) {
403
+ this.deps.telemetry.track('agent_variants.provisioning_failed', {
404
+ source: 'mcp',
405
+ ...args,
406
+ durationMs: Date.now() - startedAt,
407
+ timedOut: error instanceof ProvisionTimeoutError,
408
+ errorCode: error instanceof ProvisionTimeoutError
409
+ ? 'PROVISION_TIMEOUT'
410
+ : error instanceof errors_1.AgentVariantsError
411
+ ? error.code
412
+ : 'PROVISION_FAILED',
413
+ });
414
+ throw error;
415
+ }
416
+ }
417
+ }
418
+ exports.WorkspaceProvisioning = WorkspaceProvisioning;
419
+ //# sourceMappingURL=WorkspaceProvisioning.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"WorkspaceProvisioning.js","sourceRoot":"","sources":["../../src/agent-variants/WorkspaceProvisioning.ts"],"names":[],"mappings":"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"}