@codeyam/codeyam-cli 0.1.30 → 0.1.32

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 (64) hide show
  1. package/analyzer-template/.build-info.json +7 -7
  2. package/analyzer-template/log.txt +3 -3
  3. package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js +1 -0
  4. package/codeyam-cli/src/commands/__tests__/init.gitignore.test.js.map +1 -1
  5. package/codeyam-cli/src/commands/editor.js +39 -0
  6. package/codeyam-cli/src/commands/editor.js.map +1 -1
  7. package/codeyam-cli/src/commands/init.js +3 -2
  8. package/codeyam-cli/src/commands/init.js.map +1 -1
  9. package/codeyam-cli/src/utils/__tests__/devServerState.test.js +93 -1
  10. package/codeyam-cli/src/utils/__tests__/devServerState.test.js.map +1 -1
  11. package/codeyam-cli/src/utils/__tests__/editorRoadmap.test.js +712 -2
  12. package/codeyam-cli/src/utils/__tests__/editorRoadmap.test.js.map +1 -1
  13. package/codeyam-cli/src/utils/__tests__/envFile.test.js +125 -0
  14. package/codeyam-cli/src/utils/__tests__/envFile.test.js.map +1 -0
  15. package/codeyam-cli/src/utils/__tests__/handoffContext.test.js +500 -0
  16. package/codeyam-cli/src/utils/__tests__/handoffContext.test.js.map +1 -0
  17. package/codeyam-cli/src/utils/devServerState.js +32 -0
  18. package/codeyam-cli/src/utils/devServerState.js.map +1 -1
  19. package/codeyam-cli/src/utils/editorRoadmap.js +290 -17
  20. package/codeyam-cli/src/utils/editorRoadmap.js.map +1 -1
  21. package/codeyam-cli/src/utils/envFile.js +90 -0
  22. package/codeyam-cli/src/utils/envFile.js.map +1 -0
  23. package/codeyam-cli/src/utils/handoffContext.js +257 -0
  24. package/codeyam-cli/src/utils/handoffContext.js.map +1 -0
  25. package/codeyam-cli/src/utils/install-skills.js +9 -0
  26. package/codeyam-cli/src/utils/install-skills.js.map +1 -1
  27. package/codeyam-cli/src/utils/techStackConfig.js +38 -0
  28. package/codeyam-cli/src/utils/techStackConfig.js.map +1 -0
  29. package/codeyam-cli/src/utils/techStackConfig.test.js +85 -0
  30. package/codeyam-cli/src/utils/techStackConfig.test.js.map +1 -0
  31. package/codeyam-cli/src/webserver/__tests__/buildPtyEnv.test.js +119 -1
  32. package/codeyam-cli/src/webserver/__tests__/buildPtyEnv.test.js.map +1 -1
  33. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js +239 -1
  34. package/codeyam-cli/src/webserver/__tests__/editorProxy.test.js.map +1 -1
  35. package/codeyam-cli/src/webserver/app/lib/database.js.map +1 -1
  36. package/codeyam-cli/src/webserver/build/client/assets/{MiniClaudeChat-BusrvT2F.js → MiniClaudeChat-Bs2_Oua4.js} +1 -1
  37. package/codeyam-cli/src/webserver/build/client/assets/api.editor-database-verify-l0sNRNKZ.js +1 -0
  38. package/codeyam-cli/src/webserver/build/client/assets/api.editor-github-verify-l0sNRNKZ.js +1 -0
  39. package/codeyam-cli/src/webserver/build/client/assets/api.editor-handoff-l0sNRNKZ.js +1 -0
  40. package/codeyam-cli/src/webserver/build/client/assets/api.editor-hosting-verify-l0sNRNKZ.js +1 -0
  41. package/codeyam-cli/src/webserver/build/client/assets/editor.entity.(_sha)-DhtVC4aI.js +161 -0
  42. package/codeyam-cli/src/webserver/build/client/assets/{entity._sha._-Ce1s4OQ1.js → entity._sha._-pc-vc6wO.js} +1 -1
  43. package/codeyam-cli/src/webserver/build/client/assets/globals-L-aUIeux.css +1 -0
  44. package/codeyam-cli/src/webserver/build/client/assets/manifest-b0d69c06.js +1 -0
  45. package/codeyam-cli/src/webserver/build/client/assets/{root-Didv9PLi.js → root-CLedrjXQ.js} +3 -3
  46. package/codeyam-cli/src/webserver/build/server/assets/{analysisRunner-BKMsxwqe.js → analysisRunner-DPUEhrWo.js} +1 -1
  47. package/codeyam-cli/src/webserver/build/server/assets/{index-CvuvIPEn.js → index-oF2amaGI.js} +1 -1
  48. package/codeyam-cli/src/webserver/build/server/assets/init-C42BvUGp.js +14 -0
  49. package/codeyam-cli/src/webserver/build/server/assets/server-build-DiCdDL5d.js +853 -0
  50. package/codeyam-cli/src/webserver/build/server/index.js +1 -1
  51. package/codeyam-cli/src/webserver/build-info.json +5 -5
  52. package/codeyam-cli/src/webserver/editorProxy.js +178 -16
  53. package/codeyam-cli/src/webserver/editorProxy.js.map +1 -1
  54. package/codeyam-cli/src/webserver/terminalServer.js +81 -11
  55. package/codeyam-cli/src/webserver/terminalServer.js.map +1 -1
  56. package/codeyam-cli/templates/codeyam-editor-codex.md +61 -0
  57. package/codeyam-cli/templates/nextjs-prisma-sqlite/gitignore +1 -0
  58. package/codeyam-cli/templates/seed-adapters/supabase.ts +143 -31
  59. package/package.json +1 -1
  60. package/codeyam-cli/src/webserver/build/client/assets/editor.entity.(_sha)-CsYVRiNH.js +0 -147
  61. package/codeyam-cli/src/webserver/build/client/assets/globals-Gp2o-NMc.css +0 -1
  62. package/codeyam-cli/src/webserver/build/client/assets/manifest-ef0f624d.js +0 -1
  63. package/codeyam-cli/src/webserver/build/server/assets/init-B3gVLAAJ.js +0 -14
  64. package/codeyam-cli/src/webserver/build/server/assets/server-build-B4LxStYP.js +0 -741
@@ -6,6 +6,7 @@
6
6
  */
7
7
  import fs from 'fs';
8
8
  import path from 'path';
9
+ import { execSync } from 'child_process';
9
10
  // ── Default Predefined Tasks ────────────────────────────────────────────
10
11
  const DEFAULT_PLAN_TASKS = [
11
12
  {
@@ -33,15 +34,10 @@ const DEFAULT_PLAN_TASKS = [
33
34
  autoDetect: 'screen-sizes-configured',
34
35
  },
35
36
  {
36
- id: 'plan-pages-routes',
37
- label: 'Define pages and routes',
37
+ id: 'plan-github',
38
+ label: 'Setup GitHub repository',
38
39
  completed: false,
39
- },
40
- {
41
- id: 'plan-initial-scenarios',
42
- label: 'Create initial scenarios',
43
- completed: false,
44
- autoDetect: 'scenarios-exist',
40
+ autoDetect: 'github-configured',
45
41
  },
46
42
  ];
47
43
  const DEFAULT_DEPLOY_TASKS = [
@@ -49,11 +45,19 @@ const DEFAULT_DEPLOY_TASKS = [
49
45
  id: 'deploy-hosting',
50
46
  label: 'Set up hosting provider',
51
47
  completed: false,
48
+ autoDetect: 'hosting-configured',
49
+ },
50
+ {
51
+ id: 'deploy-database',
52
+ label: 'Set up hosted database',
53
+ completed: false,
54
+ autoDetect: 'database-configured',
52
55
  },
53
56
  {
54
57
  id: 'deploy-env-vars',
55
58
  label: 'Configure environment variables',
56
59
  completed: false,
60
+ autoDetect: 'env-vars-configured',
57
61
  },
58
62
  {
59
63
  id: 'deploy-cicd',
@@ -77,6 +81,59 @@ export function getDefaultRoadmap() {
77
81
  deploy: DEFAULT_DEPLOY_TASKS.map((t) => ({ ...t })),
78
82
  };
79
83
  }
84
+ // ── Dynamic Service Tasks ──────────────────────────────────────────────
85
+ const DEPLOY_RELEVANT_CATEGORIES = [
86
+ 'databases',
87
+ 'services',
88
+ 'infrastructure',
89
+ ];
90
+ function slugify(name) {
91
+ return name
92
+ .toLowerCase()
93
+ .replace(/[^a-z0-9]+/g, '-')
94
+ .replace(/^-|-$/g, '');
95
+ }
96
+ /**
97
+ * Generate deploy tasks from tech stack items that have envKeys.
98
+ * These tasks appear dynamically based on what services the project uses.
99
+ */
100
+ export function generateServiceDeployTasks(projectRoot) {
101
+ try {
102
+ const configPath = path.join(projectRoot, '.codeyam', 'config.json');
103
+ const config = JSON.parse(fs.readFileSync(configPath, 'utf8'));
104
+ const techStack = config.techStack;
105
+ if (!techStack || typeof techStack !== 'object')
106
+ return [];
107
+ // Services with dedicated predefined deploy tasks are excluded from dynamic generation
108
+ const DEDICATED_TASK_SERVICES = new Set(['supabase']);
109
+ const tasks = [];
110
+ for (const category of DEPLOY_RELEVANT_CATEGORIES) {
111
+ const items = techStack[category];
112
+ if (!Array.isArray(items))
113
+ continue;
114
+ for (const item of items) {
115
+ if (!item.envKeys ||
116
+ !Array.isArray(item.envKeys) ||
117
+ item.envKeys.length === 0)
118
+ continue;
119
+ const slug = slugify(item.name);
120
+ if (DEDICATED_TASK_SERVICES.has(slug))
121
+ continue;
122
+ tasks.push({
123
+ id: `deploy-svc-${slug}`,
124
+ label: `Set up ${item.name}`,
125
+ completed: false,
126
+ autoDetect: `svc-envkeys-${slug}`,
127
+ serviceRef: { name: item.name, category },
128
+ });
129
+ }
130
+ }
131
+ return tasks;
132
+ }
133
+ catch {
134
+ return [];
135
+ }
136
+ }
80
137
  // ── Read / Write ────────────────────────────────────────────────────────
81
138
  function roadmapPath(projectRoot) {
82
139
  return path.join(projectRoot, '.codeyam', 'roadmap.json');
@@ -84,15 +141,53 @@ function roadmapPath(projectRoot) {
84
141
  /**
85
142
  * Read roadmap data from `.codeyam/roadmap.json`.
86
143
  * Returns default tasks if the file is missing or invalid.
144
+ * Merges dynamic service tasks from the tech stack into the deploy list.
87
145
  */
88
146
  export function readRoadmap(projectRoot) {
147
+ let data;
89
148
  try {
90
149
  const raw = fs.readFileSync(roadmapPath(projectRoot), 'utf8');
91
- return sanitizeRoadmapData(JSON.parse(raw));
150
+ data = sanitizeRoadmapData(JSON.parse(raw));
92
151
  }
93
152
  catch {
94
- return getDefaultRoadmap();
153
+ data = getDefaultRoadmap();
154
+ }
155
+ // Merge dynamic service tasks from tech stack
156
+ const serviceTasks = generateServiceDeployTasks(projectRoot);
157
+ if (serviceTasks.length > 0) {
158
+ data.deploy = mergeServiceTasks(data.deploy, serviceTasks);
159
+ }
160
+ return data;
161
+ }
162
+ /**
163
+ * Merge dynamic service tasks into the deploy list.
164
+ * Inserts new tasks after deploy-hosting and before deploy-env-vars.
165
+ * Preserves existing tasks (and their completion status) by ID.
166
+ * Removes stale service tasks no longer generated from tech stack.
167
+ */
168
+ function mergeServiceTasks(existing, serviceTasks) {
169
+ const serviceIds = new Set(serviceTasks.map((t) => t.id));
170
+ const existingIds = new Set(existing.map((t) => t.id));
171
+ // Remove stale service tasks (deploy-svc-* IDs no longer in tech stack)
172
+ const filtered = existing.filter((t) => !t.id.startsWith('deploy-svc-') || serviceIds.has(t.id));
173
+ // Find insertion point: after deploy-database (or deploy-hosting as fallback)
174
+ const dbIdx = filtered.findIndex((t) => t.id === 'deploy-database');
175
+ const hostingIdx = filtered.findIndex((t) => t.id === 'deploy-hosting');
176
+ const insertAt = dbIdx >= 0 ? dbIdx + 1 : hostingIdx >= 0 ? hostingIdx + 1 : 0;
177
+ // Add only new service tasks (preserve existing ones with their status)
178
+ const newTasks = serviceTasks.filter((t) => !existingIds.has(t.id));
179
+ if (newTasks.length > 0) {
180
+ filtered.splice(insertAt, 0, ...newTasks);
95
181
  }
182
+ // Patch serviceRef onto existing service tasks that may lack it (from old roadmap.json)
183
+ const serviceMap = new Map(serviceTasks.map((t) => [t.id, t]));
184
+ return filtered.map((t) => {
185
+ const svc = serviceMap.get(t.id);
186
+ if (svc && !t.serviceRef) {
187
+ return { ...t, serviceRef: svc.serviceRef, autoDetect: svc.autoDetect };
188
+ }
189
+ return t;
190
+ });
96
191
  }
97
192
  /**
98
193
  * Write roadmap data to `.codeyam/roadmap.json`.
@@ -123,6 +218,18 @@ function sanitizeTodo(raw) {
123
218
  ? { autoDetect: obj.autoDetect }
124
219
  : {}),
125
220
  ...(obj.userCreated === true ? { userCreated: true } : {}),
221
+ ...(obj.serviceRef &&
222
+ typeof obj.serviceRef === 'object' &&
223
+ typeof obj.serviceRef.name === 'string' &&
224
+ typeof obj.serviceRef.category === 'string'
225
+ ? {
226
+ serviceRef: {
227
+ name: obj.serviceRef.name,
228
+ category: obj.serviceRef
229
+ .category,
230
+ },
231
+ }
232
+ : {}),
126
233
  };
127
234
  }
128
235
  /**
@@ -150,6 +257,21 @@ function mergeDefaults(existing, defaults) {
150
257
  }
151
258
  return merged;
152
259
  }
260
+ /**
261
+ * Copy autoDetect keys from defaults onto existing tasks that match by ID
262
+ * but are missing the key. Handles migration when autoDetect is added to
263
+ * a previously keyless default task.
264
+ */
265
+ function patchAutoDetectKeys(existing, defaults) {
266
+ const defaultMap = new Map(defaults.map((d) => [d.id, d]));
267
+ return existing.map((task) => {
268
+ const def = defaultMap.get(task.id);
269
+ if (def?.autoDetect && !task.autoDetect) {
270
+ return { ...task, autoDetect: def.autoDetect };
271
+ }
272
+ return task;
273
+ });
274
+ }
153
275
  /**
154
276
  * Defensively parse raw JSON into RoadmapData.
155
277
  * Invalid entries are dropped; missing sections get defaults.
@@ -160,12 +282,12 @@ export function sanitizeRoadmapData(raw) {
160
282
  if (typeof raw !== 'object' || raw === null)
161
283
  return defaults;
162
284
  const obj = raw;
163
- const plan = Array.isArray(obj.plan)
285
+ const plan = patchAutoDetectKeys(Array.isArray(obj.plan)
164
286
  ? mergeDefaults(obj.plan.map(sanitizeTodo).filter(Boolean), defaults.plan)
165
- : defaults.plan;
166
- const deploy = Array.isArray(obj.deploy)
287
+ : defaults.plan, defaults.plan);
288
+ const deploy = patchAutoDetectKeys(Array.isArray(obj.deploy)
167
289
  ? mergeDefaults(obj.deploy.map(sanitizeTodo).filter(Boolean), defaults.deploy)
168
- : defaults.deploy;
290
+ : defaults.deploy, defaults.deploy);
169
291
  return { plan, deploy };
170
292
  }
171
293
  const AUTO_DETECT_CHECKERS = {
@@ -220,6 +342,63 @@ const AUTO_DETECT_CHECKERS = {
220
342
  return false;
221
343
  }
222
344
  },
345
+ 'github-configured': (projectRoot) => {
346
+ try {
347
+ if (!fs.existsSync(path.join(projectRoot, '.git')))
348
+ return false;
349
+ const remote = execSync('git remote get-url origin', {
350
+ cwd: projectRoot,
351
+ encoding: 'utf8',
352
+ stdio: ['pipe', 'pipe', 'pipe'],
353
+ }).trim();
354
+ return remote.includes('github.com');
355
+ }
356
+ catch {
357
+ return false;
358
+ }
359
+ },
360
+ 'database-configured': (projectRoot) => {
361
+ try {
362
+ const configPath = path.join(projectRoot, '.codeyam', 'config.json');
363
+ const config = JSON.parse(fs.readFileSync(configPath, 'utf8'));
364
+ if (!config.database?.provider)
365
+ return false;
366
+ if (config.database.provider === 'supabase') {
367
+ if (!config.database.supabaseProjectRef)
368
+ return false;
369
+ const envVars = config.environmentVariables || [];
370
+ const configured = new Set();
371
+ for (const v of envVars) {
372
+ const k = v.key || v.name;
373
+ if (k && v.value)
374
+ configured.add(k);
375
+ }
376
+ return (configured.has('NEXT_PUBLIC_SUPABASE_URL') &&
377
+ configured.has('NEXT_PUBLIC_SUPABASE_ANON_KEY') &&
378
+ configured.has('DATABASE_URL'));
379
+ }
380
+ return true;
381
+ }
382
+ catch {
383
+ return false;
384
+ }
385
+ },
386
+ 'hosting-configured': (projectRoot) => {
387
+ try {
388
+ const configPath = path.join(projectRoot, '.codeyam', 'config.json');
389
+ const config = JSON.parse(fs.readFileSync(configPath, 'utf8'));
390
+ if (!config.hosting?.provider)
391
+ return false;
392
+ // For Vercel: also require a linked project
393
+ if (config.hosting.provider === 'vercel') {
394
+ return !!config.hosting.vercelProjectId;
395
+ }
396
+ return true;
397
+ }
398
+ catch {
399
+ return false;
400
+ }
401
+ },
223
402
  'scenarios-exist': (projectRoot) => {
224
403
  const scenariosDir = path.join(projectRoot, '.codeyam', 'editor-scenarios');
225
404
  try {
@@ -230,20 +409,107 @@ const AUTO_DETECT_CHECKERS = {
230
409
  return false;
231
410
  }
232
411
  },
412
+ 'env-vars-configured': (projectRoot) => {
413
+ try {
414
+ const configPath = path.join(projectRoot, '.codeyam', 'config.json');
415
+ const config = JSON.parse(fs.readFileSync(configPath, 'utf8'));
416
+ const allEnvKeys = collectAllEnvKeys(config.techStack);
417
+ if (allEnvKeys.length === 0)
418
+ return true; // No env vars needed
419
+ const configured = getConfiguredEnvKeys(config.environmentVariables);
420
+ return allEnvKeys.every((key) => configured.has(key));
421
+ }
422
+ catch {
423
+ return false;
424
+ }
425
+ },
233
426
  };
427
+ /** Collect all envKeys from deploy-relevant tech stack categories. */
428
+ function collectAllEnvKeys(techStack) {
429
+ if (!techStack || typeof techStack !== 'object')
430
+ return [];
431
+ const keys = [];
432
+ for (const cat of DEPLOY_RELEVANT_CATEGORIES) {
433
+ const items = techStack[cat];
434
+ if (!Array.isArray(items))
435
+ continue;
436
+ for (const item of items) {
437
+ if (item.envKeys && Array.isArray(item.envKeys)) {
438
+ keys.push(...item.envKeys);
439
+ }
440
+ }
441
+ }
442
+ return keys;
443
+ }
444
+ /** Get set of configured env var keys (supports both "key" and "name" fields). */
445
+ function getConfiguredEnvKeys(envVars) {
446
+ const configured = new Set();
447
+ if (!Array.isArray(envVars))
448
+ return configured;
449
+ for (const v of envVars) {
450
+ const k = v.key || v.name;
451
+ if (k && v.value)
452
+ configured.add(k);
453
+ }
454
+ return configured;
455
+ }
456
+ /**
457
+ * Dynamic checker for `svc-envkeys-{slug}` auto-detect keys.
458
+ * Finds the matching tech stack item and checks whether all its envKeys
459
+ * have corresponding values in environmentVariables.
460
+ */
461
+ function checkServiceEnvKeys(projectRoot, autoDetectKey) {
462
+ try {
463
+ const slug = autoDetectKey.replace('svc-envkeys-', '');
464
+ const configPath = path.join(projectRoot, '.codeyam', 'config.json');
465
+ const config = JSON.parse(fs.readFileSync(configPath, 'utf8'));
466
+ const techStack = config.techStack;
467
+ if (!techStack)
468
+ return false;
469
+ // Find the matching service item by slug
470
+ for (const cat of DEPLOY_RELEVANT_CATEGORIES) {
471
+ const items = techStack[cat];
472
+ if (!Array.isArray(items))
473
+ continue;
474
+ for (const item of items) {
475
+ if (slugify(item.name) === slug) {
476
+ if (!item.envKeys ||
477
+ !Array.isArray(item.envKeys) ||
478
+ item.envKeys.length === 0)
479
+ return false;
480
+ const configured = getConfiguredEnvKeys(config.environmentVariables);
481
+ return item.envKeys.every((k) => configured.has(k));
482
+ }
483
+ }
484
+ }
485
+ return false;
486
+ }
487
+ catch {
488
+ return false;
489
+ }
490
+ }
234
491
  /**
235
492
  * Evaluate auto-detect conditions for a list of todos.
236
493
  * Returns a new array with updated completion status for auto-detect tasks.
237
494
  * Manually completed tasks (no autoDetect key) are left unchanged.
495
+ * Supports dynamic `svc-envkeys-*` keys for service credential checking.
238
496
  */
239
497
  export function checkAutoDetections(projectRoot, todos) {
240
498
  return todos.map((todo) => {
241
499
  if (!todo.autoDetect)
242
500
  return todo;
501
+ // Try static checker first, then dynamic svc-envkeys-* checker
502
+ let detected;
243
503
  const checker = AUTO_DETECT_CHECKERS[todo.autoDetect];
244
- if (!checker)
504
+ if (checker) {
505
+ detected = checker(projectRoot);
506
+ }
507
+ else if (todo.autoDetect.startsWith('svc-envkeys-')) {
508
+ detected = checkServiceEnvKeys(projectRoot, todo.autoDetect);
509
+ }
510
+ else {
245
511
  return todo;
246
- const detected = checker(projectRoot);
512
+ }
247
513
  if (detected && !todo.completed) {
248
514
  return {
249
515
  ...todo,
@@ -275,7 +541,7 @@ export function countJournalEntries(projectRoot) {
275
541
  }
276
542
  /**
277
543
  * Return the most recent journal entries (newest first).
278
- * Only includes the fields needed for roadmap display.
544
+ * Includes full details for expandable roadmap display.
279
545
  */
280
546
  export function getRecentJournalEntries(projectRoot, limit = 3) {
281
547
  try {
@@ -292,6 +558,13 @@ export function getRecentJournalEntries(projectRoot, limit = 3) {
292
558
  title: e.title,
293
559
  time: e.time,
294
560
  type: e.type || 'feature',
561
+ description: e.description || undefined,
562
+ userPrompt: e.userPrompt || undefined,
563
+ scenarioScreenshots: e.scenarioScreenshots || undefined,
564
+ modifiedFiles: e.modifiedFiles || undefined,
565
+ entityChangeStatus: e.entityChangeStatus || undefined,
566
+ commitSha: e.commitSha || null,
567
+ commitMessage: e.commitMessage || null,
295
568
  }));
296
569
  }
297
570
  catch {
@@ -1 +1 @@
1
- {"version":3,"file":"editorRoadmap.js","sourceRoot":"","sources":["../../../../src/utils/editorRoadmap.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"editorRoadmap.js","sourceRoot":"","sources":["../../../../src/utils/editorRoadmap.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,90 @@
1
+ import fs from 'fs';
2
+ import path from 'path';
3
+ /**
4
+ * Read a specific env var from .env files following Next.js precedence.
5
+ * Checks: .env.local → .env → .env.development.local → .env.development
6
+ */
7
+ export function readEnvVar(projectRoot, key) {
8
+ for (const envFile of [
9
+ '.env.local',
10
+ '.env',
11
+ '.env.development.local',
12
+ '.env.development',
13
+ ]) {
14
+ try {
15
+ const envPath = path.join(projectRoot, envFile);
16
+ if (!fs.existsSync(envPath))
17
+ continue;
18
+ const content = fs.readFileSync(envPath, 'utf-8');
19
+ for (const line of content.split('\n')) {
20
+ const trimmed = line.trim();
21
+ if (!trimmed || trimmed.startsWith('#'))
22
+ continue;
23
+ const eqIdx = trimmed.indexOf('=');
24
+ if (eqIdx === -1)
25
+ continue;
26
+ const k = trimmed.slice(0, eqIdx).trim();
27
+ let value = trimmed.slice(eqIdx + 1).trim();
28
+ if ((value.startsWith('"') && value.endsWith('"')) ||
29
+ (value.startsWith("'") && value.endsWith("'"))) {
30
+ value = value.slice(1, -1);
31
+ }
32
+ if (k === key && value)
33
+ return value;
34
+ }
35
+ }
36
+ catch {
37
+ // Skip unreadable files
38
+ }
39
+ }
40
+ return null;
41
+ }
42
+ /**
43
+ * Write/update a key=value pair in .env.local (create if missing).
44
+ */
45
+ export function writeEnvVar(projectRoot, key, value) {
46
+ const envPath = path.join(projectRoot, '.env.local');
47
+ let lines = [];
48
+ try {
49
+ lines = fs.readFileSync(envPath, 'utf-8').split('\n');
50
+ }
51
+ catch {
52
+ // File doesn't exist yet
53
+ }
54
+ const idx = lines.findIndex((l) => {
55
+ const trimmed = l.trim();
56
+ if (trimmed.startsWith('#'))
57
+ return false;
58
+ const eqIdx = trimmed.indexOf('=');
59
+ if (eqIdx === -1)
60
+ return false;
61
+ return trimmed.slice(0, eqIdx).trim() === key;
62
+ });
63
+ const newLine = `${key}=${value}`;
64
+ if (idx >= 0) {
65
+ lines[idx] = newLine;
66
+ }
67
+ else {
68
+ if (lines.length > 0 && lines[lines.length - 1].trim() !== '') {
69
+ lines.push('');
70
+ }
71
+ lines.push(newLine);
72
+ }
73
+ fs.writeFileSync(envPath, lines.join('\n'));
74
+ }
75
+ /**
76
+ * Parse GitHub owner/repo from a git remote URL.
77
+ * Handles both HTTPS and SSH formats.
78
+ */
79
+ export function parseGitHubRepo(remoteUrl) {
80
+ // SSH: git@github.com:owner/repo.git
81
+ const sshMatch = remoteUrl.match(/github\.com[:/]([^/]+)\/([^/.]+)/);
82
+ if (sshMatch)
83
+ return { owner: sshMatch[1], repo: sshMatch[2] };
84
+ // HTTPS: https://github.com/owner/repo.git
85
+ const httpsMatch = remoteUrl.match(/github\.com\/([^/]+)\/([^/.]+)/);
86
+ if (httpsMatch)
87
+ return { owner: httpsMatch[1], repo: httpsMatch[2] };
88
+ return null;
89
+ }
90
+ //# sourceMappingURL=envFile.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"envFile.js","sourceRoot":"","sources":["../../../../src/utils/envFile.ts"],"names":[],"mappings":"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"}