@gurulu/cli 1.5.0 → 1.5.2

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.
@@ -1,7 +1,14 @@
1
1
  export type Framework = 'next' | 'react' | 'vue' | 'nuxt' | 'svelte' | 'astro' | 'vite' | 'express' | 'fastify' | 'hono' | 'koa' | 'node-server' | 'unknown';
2
2
  export type Runtime = 'browser' | 'node' | 'unknown';
3
3
  export type LlmFramework = 'openai' | 'anthropic' | 'langchain' | 'google-genai' | 'vercel-ai' | 'cohere' | 'mistral' | 'ollama';
4
+ export type Competitor = 'posthog' | 'mixpanel' | 'amplitude' | 'segment' | 'ga4' | 'heap';
5
+ /** Rakip analytics SDK'larını package.json'dan tespit eder (augmentation için). */
6
+ export declare function detectCompetitors(pkg: PackageJsonShape | null): Competitor[];
4
7
  export type PackageManager = 'bun' | 'pnpm' | 'yarn' | 'npm';
8
+ export type ModuleType = 'esm' | 'cjs';
9
+ export type Language = 'js' | 'python' | 'go' | 'unknown';
10
+ /** Proje dilini dosya sinyallerinden tespit et (package.json öncelikli — JS). */
11
+ export declare function detectLanguage(dir: string): Language;
5
12
  export interface DetectedProject {
6
13
  dir: string;
7
14
  hasPackageJson: boolean;
@@ -11,13 +18,38 @@ export interface DetectedProject {
11
18
  packageJson: PackageJsonShape | null;
12
19
  /** M46 (K31) — tespit edilen LLM/AI bağımlılıkları (boş = yok). */
13
20
  llmFrameworks: LlmFramework[];
21
+ /** import vs require — snippet varyantı için (pkg.type==='module' → esm). */
22
+ moduleType: ModuleType;
23
+ /** Workspace root (lockfile dizini); cwd ile aynıysa monorepo değil. */
24
+ rootDir: string;
25
+ /** cwd bir monorepo paketi mi (root farklı + workspaces sinyali). */
26
+ isMonorepo: boolean;
27
+ /** Tespit edilen rakip analytics SDK'ları (augmentation/twin için, boş = yok). */
28
+ competitors: Competitor[];
29
+ /** Proje dili — JS dışında (python/go) non-JS install+snippet yolu izlenir. */
30
+ language: Language;
14
31
  }
15
32
  interface PackageJsonShape {
16
33
  name?: string;
17
34
  type?: 'module' | 'commonjs';
18
35
  dependencies?: Record<string, string>;
19
36
  devDependencies?: Record<string, string>;
37
+ /** npm/yarn/bun workspaces (pnpm ayrı dosyada — root tespitinde ele alınır). */
38
+ workspaces?: string[] | {
39
+ packages?: string[];
40
+ };
20
41
  }
42
+ /** import vs require kararı — pkg.type==='module' → ESM, aksi Node default CJS. */
43
+ export declare function detectModuleType(pkg: PackageJsonShape | null): ModuleType;
44
+ /**
45
+ * Workspace root'unu bul: lockfile VEYA workspaces tanımı taşıyan en yakın üst dizin.
46
+ * Bulunamazsa cwd döner (monorepo değil). Monorepo'da .env + framework root'tan da
47
+ * kontrol edilir (apps/web/ minimal package.json sorununu çözer).
48
+ */
49
+ export declare function findWorkspaceRoot(dir: string): {
50
+ root: string;
51
+ isMonorepo: boolean;
52
+ };
21
53
  /**
22
54
  * Walk up the directory tree (max 6 levels) looking for a lockfile.
23
55
  * Monorepo workspaces typically have the lockfile at the repo root.
@@ -1 +1 @@
1
- {"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../src/lib/detect.ts"],"names":[],"mappings":"AAMA,MAAM,MAAM,SAAS,GACjB,MAAM,GACN,OAAO,GACP,KAAK,GACL,MAAM,GACN,QAAQ,GACR,OAAO,GACP,MAAM,GACN,SAAS,GACT,SAAS,GACT,MAAM,GACN,KAAK,GACL,aAAa,GACb,SAAS,CAAC;AAEd,MAAM,MAAM,OAAO,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;AAGrD,MAAM,MAAM,YAAY,GACpB,QAAQ,GACR,WAAW,GACX,WAAW,GACX,cAAc,GACd,WAAW,GACX,QAAQ,GACR,SAAS,GACT,QAAQ,CAAC;AAeb,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,CAAC;AAE7D,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,OAAO,CAAC;IACxB,SAAS,EAAE,SAAS,CAAC;IACrB,OAAO,EAAE,OAAO,CAAC;IACjB,cAAc,EAAE,cAAc,CAAC;IAC/B,WAAW,EAAE,gBAAgB,GAAG,IAAI,CAAC;IACrC,mEAAmE;IACnE,aAAa,EAAE,YAAY,EAAE,CAAC;CAC/B;AAED,UAAU,gBAAgB;IACxB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,QAAQ,GAAG,UAAU,CAAC;IAC7B,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,eAAe,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC1C;AAiBD;;;GAGG;AACH,wBAAgB,oBAAoB,CAAC,GAAG,EAAE,MAAM,GAAG,cAAc,CAchE;AAED,wBAAgB,eAAe,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI,EAAE,GAAG,EAAE,MAAM,GAAG,SAAS,CAmBpF;AAED,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,SAAS,GAAG,OAAO,CAmBvD;AAED,8EAA8E;AAC9E,wBAAgB,mBAAmB,CAAC,GAAG,EAAE,gBAAgB,GAAG,IAAI,GAAG,YAAY,EAAE,CAMhF;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,eAAe,CAY1D"}
1
+ {"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../src/lib/detect.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,29 @@
1
1
  // src/lib/detect.ts
2
2
  import { existsSync, readFileSync } from "node:fs";
3
3
  import { dirname, join, parse } from "node:path";
4
+ var COMPETITOR_DEP_MAP = {
5
+ "posthog-js": "posthog",
6
+ "posthog-node": "posthog",
7
+ "mixpanel-browser": "mixpanel",
8
+ mixpanel: "mixpanel",
9
+ "@amplitude/analytics-browser": "amplitude",
10
+ "@amplitude/analytics-node": "amplitude",
11
+ "amplitude-js": "amplitude",
12
+ "@segment/analytics-next": "segment",
13
+ "analytics-node": "segment",
14
+ "react-ga4": "ga4",
15
+ "react-ga": "ga4",
16
+ "ga-gtag": "ga4",
17
+ "heap-js": "heap"
18
+ };
19
+ function detectCompetitors(pkg) {
20
+ const found = new Set;
21
+ for (const [dep, comp] of Object.entries(COMPETITOR_DEP_MAP)) {
22
+ if (hasDep(pkg, dep))
23
+ found.add(comp);
24
+ }
25
+ return [...found];
26
+ }
4
27
  var LLM_DEP_MAP = {
5
28
  openai: "openai",
6
29
  "@anthropic-ai/sdk": "anthropic",
@@ -12,6 +35,43 @@ var LLM_DEP_MAP = {
12
35
  "@mistralai/mistralai": "mistral",
13
36
  ollama: "ollama"
14
37
  };
38
+ function detectLanguage(dir) {
39
+ if (existsSync(join(dir, "package.json")))
40
+ return "js";
41
+ if (existsSync(join(dir, "pyproject.toml")) || existsSync(join(dir, "requirements.txt")) || existsSync(join(dir, "setup.py")) || existsSync(join(dir, "Pipfile"))) {
42
+ return "python";
43
+ }
44
+ if (existsSync(join(dir, "go.mod")))
45
+ return "go";
46
+ return "unknown";
47
+ }
48
+ function detectModuleType(pkg) {
49
+ return pkg?.type === "module" ? "esm" : "cjs";
50
+ }
51
+ function findWorkspaceRoot(dir) {
52
+ const start = dir;
53
+ const fsRoot = parse(dir).root;
54
+ let cur = dir;
55
+ for (let i = 0;i < 8; i++) {
56
+ const pkg = readPackageJson(cur);
57
+ const hasWorkspaces = Boolean(pkg?.workspaces);
58
+ const hasPnpmWs = existsSync(join(cur, "pnpm-workspace.yaml"));
59
+ const hasLock = existsSync(join(cur, "bun.lock")) || existsSync(join(cur, "bun.lockb")) || existsSync(join(cur, "pnpm-lock.yaml")) || existsSync(join(cur, "yarn.lock")) || existsSync(join(cur, "package-lock.json"));
60
+ if ((hasWorkspaces || hasPnpmWs) && cur !== start) {
61
+ return { root: cur, isMonorepo: true };
62
+ }
63
+ if (hasLock) {
64
+ return { root: cur, isMonorepo: cur !== start };
65
+ }
66
+ if (cur === fsRoot)
67
+ break;
68
+ const parent = dirname(cur);
69
+ if (parent === cur)
70
+ break;
71
+ cur = parent;
72
+ }
73
+ return { root: start, isMonorepo: false };
74
+ }
15
75
  function readPackageJson(dir) {
16
76
  const p = join(dir, "package.json");
17
77
  if (!existsSync(p))
@@ -107,7 +167,17 @@ function detectLlmFrameworks(pkg) {
107
167
  }
108
168
  function detectProject(dir) {
109
169
  const pkg = readPackageJson(dir);
110
- const framework = detectFramework(pkg, dir);
170
+ let framework = detectFramework(pkg, dir);
171
+ const { root, isMonorepo } = findWorkspaceRoot(dir);
172
+ let effectivePkg = pkg;
173
+ if (framework === "unknown" && isMonorepo && root !== dir) {
174
+ const rootPkg = readPackageJson(root);
175
+ const rootFw = detectFramework(rootPkg, root);
176
+ if (rootFw !== "unknown") {
177
+ framework = rootFw;
178
+ effectivePkg = pkg ?? rootPkg;
179
+ }
180
+ }
111
181
  return {
112
182
  dir,
113
183
  hasPackageJson: pkg !== null,
@@ -115,13 +185,22 @@ function detectProject(dir) {
115
185
  runtime: frameworkRuntime(framework),
116
186
  packageManager: detectPackageManager(dir),
117
187
  packageJson: pkg,
118
- llmFrameworks: detectLlmFrameworks(pkg)
188
+ llmFrameworks: detectLlmFrameworks(pkg),
189
+ moduleType: detectModuleType(effectivePkg),
190
+ rootDir: root,
191
+ isMonorepo,
192
+ competitors: detectCompetitors(pkg),
193
+ language: detectLanguage(dir)
119
194
  };
120
195
  }
121
196
  export {
122
197
  frameworkRuntime,
198
+ findWorkspaceRoot,
123
199
  detectProject,
124
200
  detectPackageManager,
201
+ detectModuleType,
125
202
  detectLlmFrameworks,
126
- detectFramework
203
+ detectLanguage,
204
+ detectFramework,
205
+ detectCompetitors
127
206
  };
@@ -29,6 +29,11 @@ interface EditorSpec {
29
29
  gitignorePath?: string;
30
30
  }
31
31
  export declare const EDITORS: Record<EditorId, EditorSpec>;
32
+ /**
33
+ * Kurulu AI-editörleri tespit et (agent-native onboarding) — config dizini/işareti
34
+ * varsa o editöre MCP otomatik kurulur.
35
+ */
36
+ export declare function detectInstalledEditors(cwd: string): EditorId[];
32
37
  /** gurulu server'ı config'e ekle (diğerlerini koru). Pure. */
33
38
  export declare function mergeMcpConfig(existing: Record<string, unknown>, serverConfig: McpServerConfig, key: string): Record<string, unknown>;
34
39
  /** gurulu server'ı config'ten çıkar. Pure. */
@@ -1 +1 @@
1
- {"version":3,"file":"editor-mcp.d.ts","sourceRoot":"","sources":["../../src/lib/editor-mcp.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;AAUnE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,QAAQ;IACvB,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,QAAQ,EACf,IAAI,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5B,eAAe,CAYjB;AAED,UAAU,UAAU;IAClB,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9B,8FAA8F;IAC9F,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,UAAU,CAmBhD,CAAC;AAEF,8DAA8D;AAC9D,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,YAAY,EAAE,eAAe,EAC7B,GAAG,EAAE,MAAM,GACV,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAGzB;AAED,8CAA8C;AAC9C,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,GAAG,EAAE,MAAM,GACV,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAIzB;AA4BD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,QAAQ,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,uFAAuF;IACvF,YAAY,EAAE,OAAO,CAAC;IACtB,iFAAiF;IACjF,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,cAAc,CAgBrF;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,cAAc,CAcvE"}
1
+ {"version":3,"file":"editor-mcp.d.ts","sourceRoot":"","sources":["../../src/lib/editor-mcp.ts"],"names":[],"mappings":"AAWA,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;AAUnE,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B;AAED,MAAM,WAAW,QAAQ;IACvB,4DAA4D;IAC5D,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,gDAAgD;IAChD,QAAQ,EAAE,MAAM,CAAC;CAClB;AAID,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,QAAQ,EACf,IAAI,CAAC,EAAE;IAAE,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,GAC5B,eAAe,CAYjB;AAED,UAAU,UAAU;IAClB,IAAI,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,CAAC;IAC9B,8FAA8F;IAC9F,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,6DAA6D;IAC7D,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,UAAU,CAmBhD,CAAC;AAEF;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,EAAE,CAS9D;AAED,8DAA8D;AAC9D,wBAAgB,cAAc,CAC5B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,YAAY,EAAE,eAAe,EAC7B,GAAG,EAAE,MAAM,GACV,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAGzB;AAED,8CAA8C;AAC9C,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EACjC,GAAG,EAAE,MAAM,GACV,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAIzB;AA4BD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,QAAQ,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,uFAAuF;IACvF,YAAY,EAAE,OAAO,CAAC;IACtB,iFAAiF;IACjF,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,cAAc,CAgBrF;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,cAAc,CAcvE"}
@@ -13,11 +13,10 @@ export interface InjectTextResult {
13
13
  output: string;
14
14
  reason: InjectTextReason;
15
15
  }
16
- /**
17
- * Kaynağa import + init enjekte eder (idempotent). marker zaten varsa dokunmaz.
18
- */
19
16
  export declare function injectInit(source: string, pieces: InjectPieces): InjectTextResult;
20
- export declare function webPieces(workspaceKey: string, framework: Framework): InjectPieces;
17
+ export declare function webPieces(workspaceKey: string, framework: Framework, opts?: {
18
+ activation?: boolean;
19
+ }): InjectPieces;
21
20
  export type InjectStrategy = 'prepend-entry' | 'create-module' | 'manual';
22
21
  export declare function chooseStrategy(framework: Framework): InjectStrategy;
23
22
  /** İlk var olan entry dosyası (cwd-relative) ya da null. */
@@ -38,6 +37,8 @@ export interface ApplyInjectionOptions {
38
37
  /** create-module/manual fallback için hazır snippet (install-plan.initSnippet). */
39
38
  snippet: string;
40
39
  placementHint: string;
40
+ /** K37 Activation seçildi mi — prepend-entry'de runActivation deterministik eklenir. */
41
+ activation?: boolean;
41
42
  }
42
43
  /**
43
44
  * Deterministik enjeksiyon: web plain → entry prepend; next/nuxt/... → init modülü
@@ -1 +1 @@
1
- {"version":3,"file":"inject.d.ts","sourceRoot":"","sources":["../../src/lib/inject.ts"],"names":[],"mappings":"AAaA,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE9D,MAAM,WAAW,YAAY;IAC3B,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;IACnB,gFAAgF;IAChF,QAAQ,EAAE,MAAM,CAAC;IACjB,0FAA0F;IAC1F,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,iBAAiB,CAAC;AAE9D,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,gBAAgB,CAAC;CAC1B;AAqDD;;GAEG;AACH,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,gBAAgB,CAiBjF;AAQD,wBAAgB,SAAS,CAAC,YAAY,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,GAAG,YAAY,CAOlF;AAID,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG,eAAe,GAAG,QAAQ,CAAC;AAE1E,wBAAgB,cAAc,CAAC,SAAS,EAAE,SAAS,GAAG,cAAc,CAcnE;AAiBD,4DAA4D;AAC5D,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKxD;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,kEAAkE;IAClE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,gBAAgB,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC7D,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,eAAe,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,mFAAmF;IACnF,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,qBAAqB,GAAG,eAAe,CA6C3E"}
1
+ {"version":3,"file":"inject.d.ts","sourceRoot":"","sources":["../../src/lib/inject.ts"],"names":[],"mappings":"AAcA,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE9D,MAAM,WAAW,YAAY;IAC3B,iEAAiE;IACjE,UAAU,EAAE,MAAM,CAAC;IACnB,gFAAgF;IAChF,QAAQ,EAAE,MAAM,CAAC;IACjB,0FAA0F;IAC1F,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,gBAAgB,GAAG,UAAU,GAAG,iBAAiB,CAAC;AAE9D,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,gBAAgB,CAAC;CAC1B;AA2GD,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,YAAY,GAAG,gBAAgB,CAqBjF;AAQD,wBAAgB,SAAS,CACvB,YAAY,EAAE,MAAM,EACpB,SAAS,EAAE,SAAS,EACpB,IAAI,GAAE;IAAE,UAAU,CAAC,EAAE,OAAO,CAAA;CAAO,GAClC,YAAY,CAWd;AAID,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG,eAAe,GAAG,QAAQ,CAAC;AAE1E,wBAAgB,cAAc,CAAC,SAAS,EAAE,SAAS,GAAG,cAAc,CAcnE;AAiBD,4DAA4D;AAC5D,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKxD;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,cAAc,CAAC;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,kEAAkE;IAClE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,MAAM,EAAE,gBAAgB,GAAG,UAAU,GAAG,QAAQ,GAAG,SAAS,CAAC;IAC7D,qEAAqE;IACrE,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,eAAe,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,mFAAmF;IACnF,OAAO,EAAE,MAAM,CAAC;IAChB,aAAa,EAAE,MAAM,CAAC;IACtB,wFAAwF;IACxF,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,qBAAqB,GAAG,eAAe,CAgD3E"}
@@ -27,5 +27,21 @@ export interface InstallPlan {
27
27
  placementHint: string;
28
28
  framework: Framework;
29
29
  }
30
+ /**
31
+ * ESM init snippet'ini CommonJS'e çevir (CJS projelerinde `import` çalışmaz).
32
+ * `import gurulu from 'x'` → `const gurulu = require('x')`;
33
+ * `import { a, b } from 'x'` → `const { a, b } = require('x')`. Browser/JSX
34
+ * snippet'leri (Next/web) bundle edildiği için dönüştürülmez — yalnız node SDK.
35
+ */
36
+ export declare function cjsifySnippet(snippet: string): string;
37
+ export interface NonJsPlan {
38
+ language: 'python' | 'go';
39
+ sdk: string;
40
+ installCommand: string;
41
+ initSnippet: string;
42
+ envKey: string;
43
+ }
44
+ /** Non-JS dil için install komutu + init snippet (AI-wire yerine kopyala-yapıştır). */
45
+ export declare function buildNonJsPlan(language: 'python' | 'go', writeKey: string): NonJsPlan;
30
46
  export declare function buildInstallPlan(detected: DetectedProject, ctx?: InstallPlanContext): InstallPlan;
31
47
  //# sourceMappingURL=install-plan.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"install-plan.d.ts","sourceRoot":"","sources":["../../src/lib/install-plan.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE9E,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,cAAc,CAAC;AAExD,MAAM,WAAW,kBAAkB;IACjC,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,UAAU,CAAC;IAChB,cAAc,EAAE,cAAc,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACpE,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,SAAS,CAAC;CACtB;AAqND,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,eAAe,EACzB,GAAG,GAAE,kBAAuB,GAC3B,WAAW,CAYb"}
1
+ {"version":3,"file":"install-plan.d.ts","sourceRoot":"","sources":["../../src/lib/install-plan.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,eAAe,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE9E,MAAM,MAAM,UAAU,GAAG,aAAa,GAAG,cAAc,CAAC;AAExD,MAAM,WAAW,kBAAkB;IACjC,iEAAiE;IACjE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,0CAA0C;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kDAAkD;IAClD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;CAC9B;AAED,MAAM,WAAW,WAAW;IAC1B,GAAG,EAAE,UAAU,CAAC;IAChB,cAAc,EAAE,cAAc,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC;IACpE,aAAa,EAAE,MAAM,CAAC;IACtB,SAAS,EAAE,SAAS,CAAC;CACtB;AAqND;;;;;GAKG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAIrD;AAID,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,GAAG,EAAE,MAAM,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,uFAAuF;AACvF,wBAAgB,cAAc,CAAC,QAAQ,EAAE,QAAQ,GAAG,IAAI,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,CA0BrF;AAED,wBAAgB,gBAAgB,CAC9B,QAAQ,EAAE,eAAe,EACzB,GAAG,GAAE,kBAAuB,GAC3B,WAAW,CAiBb"}
@@ -187,19 +187,55 @@ function envKeysFor(sdk, framework) {
187
187
  { key: `${prefix}_ENDPOINT`, example: "https://ingest.gurulu.io", required: false }
188
188
  ];
189
189
  }
190
+ function cjsifySnippet(snippet) {
191
+ return snippet.replace(/^import\s+\{([^}]+)\}\s+from\s+(['"][^'"]+['"]);?$/gm, "const {$1} = require($2);").replace(/^import\s+(\w+)\s+from\s+(['"][^'"]+['"]);?$/gm, "const $1 = require($2);");
192
+ }
193
+ function buildNonJsPlan(language, writeKey) {
194
+ if (language === "python") {
195
+ return {
196
+ language,
197
+ sdk: "gurulu (PyPI)",
198
+ installCommand: "pip install gurulu",
199
+ initSnippet: `import os
200
+ from gurulu import Gurulu
201
+
202
+ gurulu = Gurulu(write_key=os.environ.get("GURULU_WRITE_KEY", "${writeKey}"))
203
+
204
+ gurulu.track("purchase_completed", {"order_id": "o_123", "total": 49.99})`,
205
+ envKey: "GURULU_WRITE_KEY"
206
+ };
207
+ }
208
+ return {
209
+ language,
210
+ sdk: "gurulu.io/sdk (Go)",
211
+ installCommand: "go get gurulu.io/sdk",
212
+ initSnippet: `import gurulu "gurulu.io/sdk"
213
+
214
+ client := gurulu.New(os.Getenv("GURULU_WRITE_KEY")) // fallback: "${writeKey}"
215
+
216
+ client.Track("purchase_completed", map[string]any{"order_id": "o_123", "total": 49.99})`,
217
+ envKey: "GURULU_WRITE_KEY"
218
+ };
219
+ }
190
220
  function buildInstallPlan(detected, ctx = {}) {
191
221
  const sdk = sdkFor(detected.framework);
192
222
  const workspaceKey = ctx.writeKey ?? "pk_xxxxxxxxxxxx";
223
+ let initSnippet = initSnippetFor(detected.framework, sdk, workspaceKey, ctx.autocaptureJsError);
224
+ if (sdk === "@gurulu/node" && detected.moduleType === "cjs") {
225
+ initSnippet = cjsifySnippet(initSnippet);
226
+ }
193
227
  return {
194
228
  sdk,
195
229
  packageManager: detected.packageManager,
196
230
  installCommand: installCmdFor(detected.packageManager, sdk),
197
- initSnippet: initSnippetFor(detected.framework, sdk, workspaceKey, ctx.autocaptureJsError),
231
+ initSnippet,
198
232
  envKeys: envKeysFor(sdk, detected.framework),
199
233
  placementHint: placementHintFor(detected.framework),
200
234
  framework: detected.framework
201
235
  };
202
236
  }
203
237
  export {
238
+ cjsifySnippet,
239
+ buildNonJsPlan,
204
240
  buildInstallPlan
205
241
  };
@@ -0,0 +1,22 @@
1
+ export interface AgentNativeContext {
2
+ cwd: string;
3
+ workspaceId: string;
4
+ endpoint: string;
5
+ apiKey: string;
6
+ writeKey: string;
7
+ language: string;
8
+ installCommand: string;
9
+ snippet: string;
10
+ envKey: string;
11
+ events: string[];
12
+ competitors: string[];
13
+ }
14
+ /** IDE coding-agent için Markdown handoff — tek dosyada tüm bağlam + adımlar. */
15
+ export declare function buildImplementationDoc(ctx: AgentNativeContext): string;
16
+ export interface AgentNativeResult {
17
+ editors: string[];
18
+ docWritten: boolean;
19
+ }
20
+ /** Kurulu editörlere MCP kur + handoff doc yaz. Hiç editör yoksa sadece doc. */
21
+ export declare function setupAgentNative(ctx: AgentNativeContext): AgentNativeResult;
22
+ //# sourceMappingURL=agent-native.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent-native.d.ts","sourceRoot":"","sources":["../../src/wizard/agent-native.ts"],"names":[],"mappings":"AAUA,MAAM,WAAW,kBAAkB;IACjC,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB;AAED,iFAAiF;AACjF,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,kBAAkB,GAAG,MAAM,CA+CtE;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;CACrB;AAED,gFAAgF;AAChF,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,kBAAkB,GAAG,iBAAiB,CAuB3E"}
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/wizard/agent.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAuC/D,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,uEAAuE;IACvE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrF;AAuBD,kEAAkE;AAClE,wBAAsB,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CA0C1F;AAED,sDAAsD;AACtD,wBAAgB,qBAAqB,IAAI,MAAM,CAsB9C;AAED,0EAA0E;AAC1E,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EAAE,EACtB,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,GAAE,MAAM,EAAO,GACxB,MAAM,CA2BR"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/wizard/agent.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAuC/D,MAAM,WAAW,UAAU;IACzB,EAAE,EAAE,OAAO,CAAC;IACZ,WAAW,EAAE,MAAM,CAAC;IACpB,gEAAgE;IAChE,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,uEAAuE;IACvE,OAAO,CAAC,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CACrF;AAuBD,kEAAkE;AAClE,wBAAsB,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CA+C1F;AAED,sDAAsD;AACtD,wBAAgB,qBAAqB,IAAI,MAAM,CAsB9C;AAED,0EAA0E;AAC1E,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EAAE,EACtB,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,KAAK,EAAE,MAAM,EAAE,EACf,UAAU,GAAE,MAAM,EAAO,GACxB,MAAM,CA2BR"}
@@ -0,0 +1,7 @@
1
+ import type { Competitor } from '../lib/detect.ts';
2
+ /**
3
+ * Tespit edilen rakipler için wire-agent'a verilecek twin görevini üretir.
4
+ * Boş competitors → null (görev yok).
5
+ */
6
+ export declare function buildAugmentTask(competitors: Competitor[]): string | null;
7
+ //# sourceMappingURL=augment.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"augment.d.ts","sourceRoot":"","sources":["../../src/wizard/augment.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAYnD;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,WAAW,EAAE,UAAU,EAAE,GAAG,MAAM,GAAG,IAAI,CAYzE"}
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/wizard/context.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,WAAW;IAC1B,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,0BAA0B;IAC1B,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,sEAAsE;IACtE,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAsBD,oFAAoF;AACpF,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAWrD;AA8FD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,WAAW,CAwC9D"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/wizard/context.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,WAAW;IAC1B,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,OAAO,EAAE,MAAM,CAAC;IAChB,0BAA0B;IAC1B,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,sEAAsE;IACtE,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAsBD,oFAAoF;AACpF,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAWrD;AAqGD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,WAAW,CAwC9D"}
@@ -1,5 +1,7 @@
1
1
  import type { ApiClient, EventClass, EventPlan, PlannedEvent } from '../lib/api.ts';
2
2
  import type { CodeContext } from './context.ts';
3
+ /** Plan hatasını sınıflandır — fallback gerekçesi kullanıcıya net gösterilsin. */
4
+ export declare function classifyPlanError(err: unknown): string;
3
5
  export interface FetchPlanInput {
4
6
  framework: string;
5
7
  sector?: string;
@@ -1 +1 @@
1
- {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/wizard/plan.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AACpF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,yEAAyE;AACzE,wBAAsB,SAAS,CAC7B,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAa3B;AAUD,0EAA0E;AAC1E,wBAAgB,YAAY,CAC1B,MAAM,EAAE,YAAY,EAAE,GACrB,KAAK,CAAC;IAAE,GAAG,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC,CAKpD;AAED,4DAA4D;AAC5D,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAYlD;AAED,oFAAoF;AACpF,wBAAsB,UAAU,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,CAQhF"}
1
+ {"version":3,"file":"plan.d.ts","sourceRoot":"","sources":["../../src/wizard/plan.ts"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,SAAS,EAAE,UAAU,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAEpF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAEhD,kFAAkF;AAClF,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,CAWtD;AAED,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,yEAAyE;AACzE,wBAAsB,SAAS,CAC7B,MAAM,EAAE,SAAS,EACjB,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,cAAc,GACpB,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAc3B;AAUD,0EAA0E;AAC1E,wBAAgB,YAAY,CAC1B,MAAM,EAAE,YAAY,EAAE,GACrB,KAAK,CAAC;IAAE,GAAG,EAAE,UAAU,CAAC;IAAC,MAAM,EAAE,YAAY,EAAE,CAAA;CAAE,CAAC,CAKpD;AAED,4DAA4D;AAC5D,wBAAgB,UAAU,CAAC,IAAI,EAAE,SAAS,GAAG,MAAM,CAYlD;AAED,oFAAoF;AACpF,wBAAsB,UAAU,CAAC,IAAI,EAAE,SAAS,GAAG,OAAO,CAAC,YAAY,EAAE,GAAG,IAAI,CAAC,CAQhF"}
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/wizard/run.ts"],"names":[],"mappings":"AAmCA,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,0DAA0D;IAC1D,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,4CAA4C;IAC5C,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,sFAAsF;IACtF,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAsBD,wBAAsB,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAkWlE"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/wizard/run.ts"],"names":[],"mappings":"AAqCA,MAAM,WAAW,aAAa;IAC5B,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,0DAA0D;IAC1D,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,4CAA4C;IAC5C,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,sFAAsF;IACtF,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AA6BD,wBAAsB,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAkalE"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gurulu/cli",
3
- "version": "1.5.0",
3
+ "version": "1.5.2",
4
4
  "private": false,
5
5
  "license": "BUSL-1.1",
6
6
  "publishConfig": {
@@ -55,6 +55,7 @@
55
55
  "clean": "rm -rf dist .turbo"
56
56
  },
57
57
  "dependencies": {
58
+ "@babel/parser": "^7.26.0",
58
59
  "@clack/prompts": "^0.7.0",
59
60
  "citty": "^0.1.6",
60
61
  "open": "^10.1.0",