@embeddables/cli 0.10.0 → 0.11.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 (57) hide show
  1. package/.prompts/embeddables-cli.md +66 -3
  2. package/dist/assets-manifest.d.ts +31 -0
  3. package/dist/assets-manifest.d.ts.map +1 -0
  4. package/dist/assets-manifest.js +59 -0
  5. package/dist/assets-manifest.js.map +1 -0
  6. package/dist/cli.js +43 -0
  7. package/dist/cli.js.map +1 -1
  8. package/dist/commands/assets-sync.d.ts +6 -0
  9. package/dist/commands/assets-sync.d.ts.map +1 -0
  10. package/dist/commands/assets-sync.js +35 -0
  11. package/dist/commands/assets-sync.js.map +1 -0
  12. package/dist/commands/assets-upload.d.ts +13 -0
  13. package/dist/commands/assets-upload.d.ts.map +1 -0
  14. package/dist/commands/assets-upload.js +475 -0
  15. package/dist/commands/assets-upload.js.map +1 -0
  16. package/dist/commands/experiments-connect.js +22 -19
  17. package/dist/commands/experiments-connect.js.map +1 -1
  18. package/dist/commands/init.d.ts.map +1 -1
  19. package/dist/commands/init.js +11 -90
  20. package/dist/commands/init.js.map +1 -1
  21. package/dist/commands/pull.d.ts.map +1 -1
  22. package/dist/commands/pull.js +3 -0
  23. package/dist/commands/pull.js.map +1 -1
  24. package/dist/constants/defaultTagStylesV4.d.ts +6 -0
  25. package/dist/constants/defaultTagStylesV4.d.ts.map +1 -0
  26. package/dist/constants/defaultTagStylesV4.js +659 -0
  27. package/dist/constants/defaultTagStylesV4.js.map +1 -0
  28. package/dist/constants.d.ts +2 -0
  29. package/dist/constants.d.ts.map +1 -1
  30. package/dist/constants.js +2 -0
  31. package/dist/constants.js.map +1 -1
  32. package/dist/group-context.d.ts +2 -0
  33. package/dist/group-context.d.ts.map +1 -0
  34. package/dist/group-context.js +29 -0
  35. package/dist/group-context.js.map +1 -0
  36. package/dist/helpers/typeStubs.d.ts +25 -0
  37. package/dist/helpers/typeStubs.d.ts.map +1 -0
  38. package/dist/helpers/typeStubs.js +153 -0
  39. package/dist/helpers/typeStubs.js.map +1 -0
  40. package/dist/prompts/experiments.d.ts +3 -1
  41. package/dist/prompts/experiments.d.ts.map +1 -1
  42. package/dist/prompts/experiments.js +12 -5
  43. package/dist/prompts/experiments.js.map +1 -1
  44. package/dist/workbench/FieldEditorPanel.d.ts +2 -1
  45. package/dist/workbench/FieldEditorPanel.d.ts.map +1 -1
  46. package/dist/workbench/FieldEditorPanel.js +21 -10
  47. package/dist/workbench/FieldEditorPanel.js.map +1 -1
  48. package/dist/workbench/UserDataPanel.d.ts.map +1 -1
  49. package/dist/workbench/UserDataPanel.js +103 -3
  50. package/dist/workbench/UserDataPanel.js.map +1 -1
  51. package/dist/{commands/build-workbench.d.ts → workbench/build.d.ts} +1 -1
  52. package/dist/workbench/build.d.ts.map +1 -0
  53. package/dist/{commands/build-workbench.js → workbench/build.js} +1 -1
  54. package/dist/workbench/build.js.map +1 -0
  55. package/package.json +1 -1
  56. package/dist/commands/build-workbench.d.ts.map +0 -1
  57. package/dist/commands/build-workbench.js.map +0 -1
@@ -0,0 +1,475 @@
1
+ import fs from 'node:fs';
2
+ import path from 'node:path';
3
+ import pc from 'picocolors';
4
+ import * as Sentry from '@sentry/node';
5
+ import { getAuthenticatedSupabaseClient, isLoggedIn } from '../auth/index.js';
6
+ import { readAssetsManifest, syncAssetsManifest } from '../assets-manifest.js';
7
+ import { ASSETS_UPLOAD_WORKER_BASE_URL } from '../constants.js';
8
+ import { resolveGroupId } from '../group-context.js';
9
+ import { captureException, createLogger, exit } from '../logger.js';
10
+ import { promptForLocalEmbeddable } from '../prompts/index.js';
11
+ import { getSentryContextFromEmbeddableConfig, getSentryContextFromProjectConfig, setSentryContext, } from '../sentry-context.js';
12
+ import * as stdout from '../stdout.js';
13
+ import { inferEmbeddableFromCwd } from '../helpers/utils.js';
14
+ import { withSpan } from '../tracing.js';
15
+ const ALLOWED_EXTENSIONS = new Set([
16
+ '.png',
17
+ '.jpg',
18
+ '.jpeg',
19
+ '.gif',
20
+ '.webp',
21
+ '.svg',
22
+ '.ico',
23
+ '.bmp',
24
+ '.tiff',
25
+ '.tif',
26
+ '.avif',
27
+ '.mp4',
28
+ '.webm',
29
+ '.ogg',
30
+ '.mp3',
31
+ '.wav',
32
+ '.pdf',
33
+ '.json',
34
+ '.woff',
35
+ '.woff2',
36
+ '.ttf',
37
+ '.otf',
38
+ '.eot',
39
+ '.css',
40
+ '.js',
41
+ ]);
42
+ const EXTENSION_TO_MIME = {
43
+ '.png': 'image/png',
44
+ '.jpg': 'image/jpeg',
45
+ '.jpeg': 'image/jpeg',
46
+ '.gif': 'image/gif',
47
+ '.webp': 'image/webp',
48
+ '.svg': 'image/svg+xml',
49
+ '.ico': 'image/x-icon',
50
+ '.bmp': 'image/bmp',
51
+ '.tiff': 'image/tiff',
52
+ '.tif': 'image/tiff',
53
+ '.avif': 'image/avif',
54
+ '.mp4': 'video/mp4',
55
+ '.webm': 'video/webm',
56
+ '.ogg': 'audio/ogg',
57
+ '.mp3': 'audio/mpeg',
58
+ '.wav': 'audio/wav',
59
+ '.pdf': 'application/pdf',
60
+ '.json': 'application/json',
61
+ '.woff': 'font/woff',
62
+ '.woff2': 'font/woff2',
63
+ '.ttf': 'font/ttf',
64
+ '.otf': 'font/otf',
65
+ '.eot': 'application/vnd.ms-fontobject',
66
+ '.css': 'text/css',
67
+ '.js': 'text/javascript',
68
+ };
69
+ function getMimeType(filePath) {
70
+ const ext = path.extname(filePath).toLowerCase();
71
+ return EXTENSION_TO_MIME[ext] ?? 'application/octet-stream';
72
+ }
73
+ function isAllowedFile(filePath) {
74
+ const ext = path.extname(filePath).toLowerCase();
75
+ return ALLOWED_EXTENSIONS.has(ext);
76
+ }
77
+ /** Recursively collect all files from a directory. */
78
+ function collectFiles(dir, recursive) {
79
+ const results = [];
80
+ if (!fs.existsSync(dir))
81
+ return results;
82
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
83
+ for (const entry of entries) {
84
+ const fullPath = path.join(dir, entry.name);
85
+ if (entry.isDirectory()) {
86
+ if (recursive) {
87
+ results.push(...collectFiles(fullPath, recursive));
88
+ }
89
+ }
90
+ else if (entry.isFile()) {
91
+ results.push(fullPath);
92
+ }
93
+ }
94
+ return results;
95
+ }
96
+ /** Apply include/exclude glob filters to a list of file paths. */
97
+ async function applyGlobFilters(files, include, exclude) {
98
+ if (!include && !exclude)
99
+ return files;
100
+ const { default: fg } = await import('fast-glob');
101
+ let filtered = files;
102
+ if (include) {
103
+ const patterns = include.split(',').map((p) => p.trim());
104
+ const matched = new Set(await fg(patterns, { absolute: true }));
105
+ filtered = filtered.filter((f) => matched.has(path.resolve(f)));
106
+ }
107
+ if (exclude) {
108
+ const patterns = exclude.split(',').map((p) => p.trim());
109
+ const excluded = new Set(await fg(patterns, { absolute: true }));
110
+ filtered = filtered.filter((f) => !excluded.has(path.resolve(f)));
111
+ }
112
+ return filtered;
113
+ }
114
+ const MAX_FILE_SIZE = 50 * 1024 * 1024; // 50 MB
115
+ function normalizeRelativePath(relativePath) {
116
+ return relativePath.replace(/\\/g, '/').replace(/^\.?\//, '');
117
+ }
118
+ async function uploadSingleFile(filePath) {
119
+ const fileBuffer = fs.readFileSync(filePath);
120
+ const fileName = path.basename(filePath);
121
+ const mimeType = getMimeType(filePath);
122
+ const parsed = path.parse(fileName);
123
+ const safeBaseName = parsed.name.replace(/[^a-zA-Z0-9-_.]/g, '') || 'asset';
124
+ const workerFileName = `${safeBaseName}_${Math.random().toString(36).slice(2, 8)}${parsed.ext}`;
125
+ const uploadUrl = `${ASSETS_UPLOAD_WORKER_BASE_URL}/${encodeURIComponent(workerFileName)}`;
126
+ const response = await fetch(uploadUrl, {
127
+ method: 'POST',
128
+ headers: {
129
+ 'Content-Type': mimeType,
130
+ },
131
+ body: fileBuffer,
132
+ });
133
+ if (response.status === 413) {
134
+ throw new Error(`File too large: ${fileName}`);
135
+ }
136
+ if (!response.ok) {
137
+ let errorMessage = `HTTP ${response.status}`;
138
+ try {
139
+ const bodyText = await response.text();
140
+ if (bodyText.trim().length > 0)
141
+ errorMessage = `${errorMessage}: ${bodyText.trim()}`;
142
+ }
143
+ catch {
144
+ // use default HTTP status message
145
+ }
146
+ throw new Error(errorMessage);
147
+ }
148
+ let uploadedUrl = '';
149
+ try {
150
+ const result = (await response.json());
151
+ uploadedUrl = result?.data?.url ?? '';
152
+ }
153
+ catch {
154
+ // If the worker returns no JSON body, return the canonical object URL.
155
+ uploadedUrl = `${ASSETS_UPLOAD_WORKER_BASE_URL}/${workerFileName}`;
156
+ }
157
+ return { url: uploadedUrl };
158
+ }
159
+ export async function runAssetsUpload(opts) {
160
+ const logger = createLogger('runAssetsUpload');
161
+ const uploadStart = performance.now();
162
+ try {
163
+ await runAssetsUploadInner(opts);
164
+ Sentry.metrics.distribution('cli.assets_upload.duration', performance.now() - uploadStart, {
165
+ unit: 'millisecond',
166
+ attributes: { embeddableId: opts.id ?? 'unknown' },
167
+ });
168
+ }
169
+ catch (error) {
170
+ Sentry.metrics.count('cli.assets_upload.failed', 1, {
171
+ attributes: { embeddableId: opts.id ?? 'unknown' },
172
+ });
173
+ captureException(error, 'Assets upload failed');
174
+ if (error instanceof Error) {
175
+ stdout.error(`Assets upload failed: ${error.message}`);
176
+ }
177
+ else {
178
+ stdout.error('Assets upload failed with an unexpected error.');
179
+ }
180
+ logger.error('assets upload failed', {
181
+ message: error instanceof Error ? error.message : 'unexpected error',
182
+ });
183
+ await exit(1);
184
+ }
185
+ }
186
+ async function runAssetsUploadInner(opts) {
187
+ const logger = createLogger('runAssetsUpload');
188
+ // 1. Check login
189
+ if (!isLoggedIn()) {
190
+ stdout.warn('Not logged in.');
191
+ stdout.dim('Run "embeddables login" first.');
192
+ logger.error('not logged in');
193
+ await exit(1);
194
+ return;
195
+ }
196
+ // 2. Resolve embeddable ID / project-level mode
197
+ const inferred = inferEmbeddableFromCwd();
198
+ let embeddableId = opts.id ?? inferred?.embeddableId;
199
+ if (inferred && !opts.id && embeddableId) {
200
+ process.chdir(inferred.projectRoot);
201
+ }
202
+ setSentryContext(getSentryContextFromProjectConfig());
203
+ const projectLevelUpload = opts.project === true || opts.dir === 'assets';
204
+ if (!projectLevelUpload && !embeddableId) {
205
+ const selected = await promptForLocalEmbeddable({
206
+ message: 'Select an embeddable to upload assets for:',
207
+ });
208
+ if (!selected) {
209
+ await exit(1);
210
+ return;
211
+ }
212
+ embeddableId = selected;
213
+ stdout.gap();
214
+ }
215
+ if (embeddableId) {
216
+ const embeddableCtx = getSentryContextFromEmbeddableConfig(embeddableId);
217
+ setSentryContext({
218
+ embeddable: { id: embeddableId },
219
+ ...embeddableCtx,
220
+ });
221
+ }
222
+ // 4. Resolve group ID
223
+ const groupId = await resolveGroupId(opts.groupId);
224
+ if (!groupId) {
225
+ stdout.error('Could not determine group ID for this project.');
226
+ stdout.dim('Set `org_id` in embeddables.json or pass `--group-id`.');
227
+ await exit(1);
228
+ return;
229
+ }
230
+ // 5. Resolve asset directory
231
+ const assetDir = opts.dir ?? (projectLevelUpload ? 'assets' : path.join('embeddables', embeddableId, 'assets'));
232
+ const resolvedDir = path.resolve(assetDir);
233
+ if (!fs.existsSync(resolvedDir)) {
234
+ stdout.error(`Asset directory not found: ${resolvedDir}`);
235
+ stdout.dim('Create the directory and add files, or use --dir to specify a different path.');
236
+ logger.error('asset directory not found', { dir: resolvedDir });
237
+ await exit(1);
238
+ return;
239
+ }
240
+ if (!fs.statSync(resolvedDir).isDirectory()) {
241
+ stdout.error(`Not a directory: ${resolvedDir}`);
242
+ logger.error('path is not a directory', { dir: resolvedDir });
243
+ await exit(1);
244
+ return;
245
+ }
246
+ // 6. Enumerate files
247
+ const recursive = opts.recursive ?? false;
248
+ const allFiles = collectFiles(resolvedDir, recursive);
249
+ if (allFiles.length === 0) {
250
+ stdout.warn(`No files found in ${resolvedDir}`);
251
+ if (!recursive) {
252
+ stdout.dim('Use --recursive to include files in subdirectories.');
253
+ }
254
+ logger.info('no files found', { dir: resolvedDir, recursive });
255
+ await exit(0);
256
+ return;
257
+ }
258
+ // Apply glob filters
259
+ let files = await applyGlobFilters(allFiles, opts.include, opts.exclude);
260
+ if (files.length === 0) {
261
+ stdout.warn('No files match the include/exclude filters.');
262
+ logger.info('no files after filtering');
263
+ await exit(0);
264
+ return;
265
+ }
266
+ // 7. Validate files and split into uploadable vs skipped
267
+ const toUpload = [];
268
+ const results = [];
269
+ const manifestPath = path.resolve('assets.json');
270
+ const existingManifest = readAssetsManifest(manifestPath);
271
+ const existingRelativePaths = new Set((existingManifest?.assets ?? [])
272
+ .filter((asset) => {
273
+ if (!asset.relativePath)
274
+ return false;
275
+ if (projectLevelUpload)
276
+ return asset.flow_id === null;
277
+ return asset.flow_id === embeddableId;
278
+ })
279
+ .map((asset) => normalizeRelativePath(asset.relativePath)));
280
+ for (const file of files) {
281
+ const relativePath = normalizeRelativePath(path.relative(resolvedDir, file));
282
+ if (!isAllowedFile(file)) {
283
+ results.push({
284
+ file: relativePath,
285
+ status: 'skipped',
286
+ reason: `Unsupported file type: ${path.extname(file) || '(no extension)'}`,
287
+ });
288
+ continue;
289
+ }
290
+ const stat = fs.statSync(file);
291
+ if (stat.size > MAX_FILE_SIZE) {
292
+ results.push({
293
+ file: relativePath,
294
+ status: 'skipped',
295
+ reason: `File too large (${(stat.size / 1024 / 1024).toFixed(1)} MB, max ${MAX_FILE_SIZE / 1024 / 1024} MB)`,
296
+ });
297
+ continue;
298
+ }
299
+ if (stat.size === 0) {
300
+ results.push({
301
+ file: relativePath,
302
+ status: 'skipped',
303
+ reason: 'Empty file',
304
+ });
305
+ continue;
306
+ }
307
+ if (existingRelativePaths.has(relativePath)) {
308
+ results.push({
309
+ file: relativePath,
310
+ status: 'skipped',
311
+ reason: 'Already uploaded (tracked in assets.json)',
312
+ });
313
+ continue;
314
+ }
315
+ toUpload.push(file);
316
+ }
317
+ const totalDiscovered = files.length;
318
+ const skippedCount = results.filter((r) => r.status === 'skipped').length;
319
+ stdout.gap();
320
+ stdout.step(`Found ${totalDiscovered} file${totalDiscovered !== 1 ? 's' : ''} in ${pc.cyan(assetDir)}${skippedCount > 0 ? ` (${skippedCount} skipped)` : ''}`);
321
+ if (skippedCount > 0) {
322
+ for (const r of results.filter((r) => r.status === 'skipped')) {
323
+ stdout.dim(` Skipped: ${r.file} — ${r.reason}`);
324
+ }
325
+ }
326
+ if (toUpload.length === 0) {
327
+ stdout.warn('No files to upload after validation.');
328
+ logger.info('no uploadable files');
329
+ await exit(0);
330
+ return;
331
+ }
332
+ // 8. Dry run mode
333
+ if (opts.dryRun) {
334
+ stdout.gap();
335
+ stdout.step(`Dry run — ${toUpload.length} file${toUpload.length !== 1 ? 's' : ''} would be uploaded:`);
336
+ for (const file of toUpload) {
337
+ const relPath = path.relative(resolvedDir, file);
338
+ const mime = getMimeType(file);
339
+ const size = fs.statSync(file).size;
340
+ const sizeStr = size >= 1024 * 1024
341
+ ? `${(size / 1024 / 1024).toFixed(1)} MB`
342
+ : `${(size / 1024).toFixed(1)} KB`;
343
+ stdout.dim(` ${relPath} (${mime}, ${sizeStr})`);
344
+ }
345
+ stdout.gap();
346
+ stdout.successBox(`Dry run complete. ${toUpload.length} file${toUpload.length !== 1 ? 's' : ''} would be uploaded.`, { title: 'Dry Run' });
347
+ stdout.gap();
348
+ return;
349
+ }
350
+ // 9. Upload files with concurrency
351
+ const concurrency = Math.max(1, Math.min(20, parseInt(opts.concurrency ?? '5', 10) || 5));
352
+ let uploadedCount = 0;
353
+ let failedCount = 0;
354
+ const uploadedByUrl = new Map();
355
+ await stdout.withSpinner(`Uploading ${toUpload.length} file${toUpload.length !== 1 ? 's' : ''}…`, async (s) => {
356
+ await withSpan('assets_upload.upload_all', 'cli.assets_upload', async () => {
357
+ const queue = [...toUpload];
358
+ const workers = Array.from({ length: Math.min(concurrency, queue.length) }, async () => {
359
+ while (queue.length > 0) {
360
+ const file = queue.shift();
361
+ const relPath = path.relative(resolvedDir, file);
362
+ try {
363
+ const result = await uploadSingleFile(file);
364
+ results.push({ file: relPath, status: 'uploaded', url: result.url });
365
+ if (result.url)
366
+ uploadedByUrl.set(result.url, normalizeRelativePath(relPath));
367
+ uploadedCount++;
368
+ }
369
+ catch (err) {
370
+ const message = err instanceof Error ? err.message : String(err);
371
+ results.push({ file: relPath, status: 'failed', reason: message });
372
+ failedCount++;
373
+ logger.warn('file upload failed', { file: relPath, error: message });
374
+ }
375
+ s.text = `Uploading… (${uploadedCount + failedCount}/${toUpload.length})`;
376
+ }
377
+ });
378
+ await Promise.all(workers);
379
+ }, { embeddableId: embeddableId ?? 'project_assets', groupId, fileCount: toUpload.length });
380
+ }, {
381
+ successText: `Uploaded ${uploadedCount} file${uploadedCount !== 1 ? 's' : ''}${failedCount > 0 ? ` (${failedCount} failed)` : ''}`,
382
+ failText: 'Upload failed',
383
+ });
384
+ // 10. Print summary
385
+ Sentry.metrics.count('cli.assets_upload.completed', 1, {
386
+ attributes: {
387
+ embeddableId: embeddableId ?? 'project_assets',
388
+ uploaded: uploadedCount,
389
+ failed: failedCount,
390
+ skipped: skippedCount,
391
+ },
392
+ });
393
+ stdout.gap();
394
+ if (failedCount > 0) {
395
+ stdout.warn(`${failedCount} file${failedCount !== 1 ? 's' : ''} failed to upload:`);
396
+ for (const r of results.filter((r) => r.status === 'failed')) {
397
+ stdout.dim(` ${r.file} — ${r.reason}`);
398
+ }
399
+ stdout.gap();
400
+ }
401
+ const uploadedResults = results.filter((r) => r.status === 'uploaded');
402
+ if (uploadedResults.length > 0) {
403
+ stdout.step('Uploaded URLs:');
404
+ for (const r of uploadedResults) {
405
+ stdout.dim(` ${r.file} → ${r.url || '(no URL returned)'}`);
406
+ }
407
+ stdout.gap();
408
+ }
409
+ const successfulAssets = uploadedResults
410
+ .map((r) => ({ file: r.file, url: r.url ?? '', name: path.basename(r.file) }))
411
+ .filter((asset) => asset.url.length > 0);
412
+ if (successfulAssets.length > 0) {
413
+ const supabase = await getAuthenticatedSupabaseClient();
414
+ if (!supabase) {
415
+ stdout.warn('Could not sync assets metadata (not authenticated Supabase client).');
416
+ stdout.dim('Run "embeddables login" and then "embeddables assets sync".');
417
+ }
418
+ else {
419
+ const flowId = projectLevelUpload ? null : embeddableId;
420
+ const rows = successfulAssets.map((asset) => ({
421
+ group_id: groupId,
422
+ flow_id: flowId,
423
+ name: asset.name,
424
+ url: asset.url,
425
+ archived: false,
426
+ }));
427
+ const { error: insertError } = await supabase.from('assets').insert(rows);
428
+ if (insertError) {
429
+ stdout.warn(`Uploaded files, but failed to write metadata: ${insertError.message}`);
430
+ stdout.dim('You can run "embeddables assets sync" after fixing permissions.');
431
+ }
432
+ else {
433
+ try {
434
+ await syncAssetsManifest({
435
+ supabase,
436
+ groupId,
437
+ outFilePath: manifestPath,
438
+ relativePathByUrl: uploadedByUrl,
439
+ });
440
+ stdout.success(`Synced ${path.basename(manifestPath)} after upload.`);
441
+ }
442
+ catch (syncError) {
443
+ const message = syncError instanceof Error ? syncError.message : String(syncError);
444
+ stdout.warn(`Uploaded files, but failed to sync assets.json: ${message}`);
445
+ }
446
+ }
447
+ }
448
+ }
449
+ const summaryLines = [
450
+ `${pc.bold('Discovered:')} ${totalDiscovered}`,
451
+ `${pc.bold('Uploaded:')} ${uploadedCount}`,
452
+ `${pc.bold('Skipped:')} ${skippedCount}`,
453
+ `${pc.bold('Failed:')} ${failedCount}`,
454
+ ];
455
+ if (failedCount > 0) {
456
+ stdout.box(summaryLines.join('\n'), {
457
+ title: 'Upload Summary',
458
+ borderColor: 'yellow',
459
+ });
460
+ }
461
+ else {
462
+ stdout.successBox(summaryLines.join('\n'), { title: 'Upload Complete' });
463
+ }
464
+ stdout.gap();
465
+ logger.info('assets upload complete', {
466
+ discovered: totalDiscovered,
467
+ uploaded: uploadedCount,
468
+ skipped: skippedCount,
469
+ failed: failedCount,
470
+ });
471
+ if (failedCount > 0) {
472
+ await exit(1);
473
+ }
474
+ }
475
+ //# sourceMappingURL=assets-upload.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"assets-upload.js","sourceRoot":"","sources":["../../src/commands/assets-upload.ts"],"names":[],"mappings":"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"}
@@ -96,22 +96,7 @@ async function runExperimentsConnectInner(opts) {
96
96
  logger.error('missing experiment-id flag');
97
97
  await exit(1);
98
98
  }
99
- if (!experimentId || !experimentKey) {
100
- const selected = await stdout.withSpinner('Fetching experiments…', async () => {
101
- return promptForExperiment(projectId, {
102
- message: 'Select an experiment to connect:',
103
- excludeConnectedTo: embeddableId,
104
- });
105
- }, { successText: 'Experiments loaded' });
106
- if (!selected) {
107
- await exit(1);
108
- return;
109
- }
110
- experimentId = selected.experiment_id;
111
- experimentKey = selected.experiment_key;
112
- stdout.gap();
113
- }
114
- // 6. Read config.json
99
+ // 5b. Read config.json early so we can filter already-connected experiments
115
100
  const configPath = path.join('embeddables', embeddableId, 'config.json');
116
101
  if (!fs.existsSync(configPath)) {
117
102
  stdout.error(`No config.json found at ${configPath}`);
@@ -130,8 +115,26 @@ async function runExperimentsConnectInner(opts) {
130
115
  await exit(1);
131
116
  return;
132
117
  }
133
- // 7. Append to connected_experiments
134
- const connectedExperiments = Array.isArray(config.connected_experiments) ? [...config.connected_experiments] : [];
118
+ const existingConnected = Array.isArray(config.connected_experiments)
119
+ ? config.connected_experiments
120
+ : [];
121
+ if (!experimentId || !experimentKey) {
122
+ const selected = await stdout.withSpinner('Fetching experiments…', async () => {
123
+ return promptForExperiment(projectId, {
124
+ message: 'Select an experiment to connect:',
125
+ excludeExperimentIds: existingConnected.map((e) => e.experiment_id),
126
+ });
127
+ }, { successText: 'Experiments loaded' });
128
+ if (!selected) {
129
+ await exit(1);
130
+ return;
131
+ }
132
+ experimentId = selected.experiment_id;
133
+ experimentKey = selected.experiment_key;
134
+ stdout.gap();
135
+ }
136
+ // 6. Append to connected_experiments
137
+ const connectedExperiments = [...existingConnected];
135
138
  const alreadyConnected = connectedExperiments.some((e) => e.experiment_id === experimentId && e.experiment_key === experimentKey);
136
139
  if (alreadyConnected) {
137
140
  stdout.warn(`Experiment "${experimentKey}" is already connected to this embeddable.`);
@@ -139,7 +142,7 @@ async function runExperimentsConnectInner(opts) {
139
142
  }
140
143
  connectedExperiments.push({ experiment_id: experimentId, experiment_key: experimentKey });
141
144
  config.connected_experiments = connectedExperiments;
142
- // 8. Write the modified config back
145
+ // 7. Write the modified config back
143
146
  await withSpan('experiments.write_config', 'cli.experiments', async () => {
144
147
  fs.writeFileSync(configPath, JSON.stringify(config, null, 2), 'utf8');
145
148
  }, { embeddableId: embeddableId, experimentId });
@@ -1 +1 @@
1
- {"version":3,"file":"experiments-connect.js","sourceRoot":"","sources":["../../src/commands/experiments-connect.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"experiments-connect.js","sourceRoot":"","sources":["../../src/commands/experiments-connect.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAsIA,wBAAsB,OAAO,CAAC,IAAI,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,iBAqBxE"}
1
+ {"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AA8BA,wBAAsB,OAAO,CAAC,IAAI,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAC;IAAC,GAAG,CAAC,EAAE,OAAO,CAAA;CAAE,iBAqBxE"}