@gurulu/cli 1.6.3 → 1.6.5

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.
package/dist/bin.js CHANGED
@@ -41729,12 +41729,14 @@ function readTruncated(abs, maxBytes) {
41729
41729
  const raw = redactSecrets(readFileSync9(abs, "utf-8"));
41730
41730
  if (raw.length <= maxBytes)
41731
41731
  return { content: raw, truncated: false };
41732
- const head = Math.floor(maxBytes * 0.65);
41733
- const tail = maxBytes - head;
41734
- return {
41735
- content: `${raw.slice(0, head)}
41732
+ const marker = `
41736
41733
  /* …${raw.length - maxBytes} char kesildi… */
41737
- ${raw.slice(-tail)}`,
41734
+ `;
41735
+ const budget = Math.max(0, maxBytes - marker.length);
41736
+ const head = Math.floor(budget * 0.65);
41737
+ const tail = budget - head;
41738
+ return {
41739
+ content: `${raw.slice(0, head)}${marker}${tail > 0 ? raw.slice(-tail) : ""}`,
41738
41740
  truncated: true
41739
41741
  };
41740
41742
  } catch {
@@ -42112,7 +42114,26 @@ function buildWireSystemPrompt() {
42112
42114
  return [
42113
42115
  "You are Gurulu's capture wire agent. Add the approved analytics events to the user's code,",
42114
42116
  "plus any additional wiring tasks given (e.g. wrapping an LLM client, mounting a provider).",
42115
- "Tools (one JSON action per turn): read{path} | edit{path,find,replace} | bash{cmd} | done{summary}.",
42117
+ "",
42118
+ "OUTPUT: respond with ONLY a single JSON object per turn — no prose, no markdown fences,",
42119
+ 'no <think> blocks. Exact shape: {"reasoning": "<short why>", "action": <one action below>}',
42120
+ "action is exactly one of:",
42121
+ ' {"tool": "read", "path": "src/file.ts"}',
42122
+ ' {"tool": "edit", "path": "src/file.ts", "find": "<exact unique existing snippet>", "replace": "<that snippet plus added code>"}',
42123
+ ' {"tool": "bash", "cmd": "npm run typecheck"}',
42124
+ ' {"tool": "done", "summary": "<what was wired>"}',
42125
+ 'Example turn: {"reasoning": "Read entry to find the init call site", "action": {"tool": "read", "path": "src/main.tsx"}}',
42126
+ "",
42127
+ "SDK API (@gurulu/web) — use EXACTLY this; NEVER invent import style or option names:",
42128
+ " import gurulu from '@gurulu/web'; // DEFAULT import — NOT `import { gurulu }`",
42129
+ " gurulu.init({ workspaceKey: '<key>' }); // option is `workspaceKey`, NOT `apiKey`",
42130
+ " gurulu.track('event_key', { /* props */ });",
42131
+ " gurulu.identify(userId, { /* traits */ });",
42132
+ "- init() is added ONCE at the app entry. If an init call already exists in the file, NEVER add",
42133
+ ' a second one — do not duplicate or "re-initialize". Your main job is track()/identify()/wrapping.',
42134
+ "- If you must add init, use the EXACT snippet given in the user message verbatim (correct env var + key).",
42135
+ "- Put new imports at the TOP of the file with the other imports, never in the middle of the body.",
42136
+ "",
42116
42137
  "HARD RULES:",
42117
42138
  "- ADDITIVE-ONLY: every edit `replace` MUST contain `find` verbatim — you may only ADD code,",
42118
42139
  ' never delete or rewrite existing code. Edits violating this are rejected. To "wrap" an existing',
@@ -42132,8 +42153,11 @@ function buildWireSystemPrompt() {
42132
42153
  ].join(`
42133
42154
  `);
42134
42155
  }
42135
- function buildWireUserPrompt(events, identifyHint, files, extraTasks = []) {
42156
+ function buildWireUserPrompt(events, identifyHint, files, extraTasks = [], initSnippet) {
42136
42157
  const sections = [];
42158
+ if (initSnippet) {
42159
+ sections.push("SDK init snippet (add ONLY if an init call is not already present at the app entry;", "copy it VERBATIM — correct default import, `workspaceKey`, env var and key are already right):", initSnippet, "");
42160
+ }
42137
42161
  if (events.length > 0) {
42138
42162
  const evLines = events.map((e2) => `- ${e2.event_key} (${e2.event_type})${e2.capture_hint ? ` @ ${e2.capture_hint}` : ""}: ${e2.reason}`).join(`
42139
42163
  `);
@@ -42156,7 +42180,7 @@ async function runWireAgent(client, input, snapshots) {
42156
42180
  { role: "system", content: buildWireSystemPrompt() },
42157
42181
  {
42158
42182
  role: "user",
42159
- content: buildWireUserPrompt(input.events, input.identifyHint, input.files, input.extraTasks ?? [])
42183
+ content: buildWireUserPrompt(input.events, input.identifyHint, input.files, input.extraTasks ?? [], input.initSnippet)
42160
42184
  }
42161
42185
  ];
42162
42186
  const edits = [];
@@ -42341,19 +42365,21 @@ async function runWizard(opts) {
42341
42365
  p4.log.info(c3.dim(`Bu proje zaten bağlı (workspace ${priorConfig.workspace_id.slice(0, 8)}…) — güncelleme / yeni özellik ekleme modu.`));
42342
42366
  }
42343
42367
  const TOTAL = 6;
42344
- const phase = (n2, label) => {
42368
+ const phase = (n2, label, desc) => {
42345
42369
  p4.log.step(`${c3.dim(`[${n2}/${TOTAL}]`)} ${c3.bold(label)}`);
42370
+ if (desc)
42371
+ p4.log.message(c3.dim(desc));
42346
42372
  };
42347
- phase(1, "Kimlik doğrulama");
42373
+ phase(1, "Hesabına bağlanıyoruz", "Gurulu hesabınla güvenli oturum — ilk sefer tarayıcıda bir onay, sonra hatırlanır.");
42348
42374
  const auth = await ensureAuth({
42349
42375
  ...opts.endpoint ? { endpoint: opts.endpoint } : {},
42350
42376
  ...opts.apiKey ? { apiKey: opts.apiKey } : {},
42351
42377
  ...opts.workspaceId ? { workspaceId: opts.workspaceId } : {}
42352
42378
  });
42353
42379
  const client = new ApiClient({ endpoint: auth.endpoint, apiKey: auth.apiKey });
42354
- phase(2, "Workspace");
42380
+ phase(2, "Çalışma alanı seçiliyor", "Verilerinin akacağı workspace ayarlanıyor ve site anahtarı üretiliyor.");
42355
42381
  const { workspaceId, writeKey } = await resolveWorkspace(client, auth.workspaceId, opts);
42356
- phase(3, "Proje tespiti & plan");
42382
+ phase(3, "Projeni tanıyoruz", "Kodun okunuyor; hangi kullanıcı olaylarını (ör. kayıt, satın alma) izleyeceğimiz planlanıyor.");
42357
42383
  const detected = detectProject(opts.cwd);
42358
42384
  let framework = detected.framework;
42359
42385
  if (opts.framework && FRAMEWORKS.includes(opts.framework)) {
@@ -42423,7 +42449,7 @@ async function runWizard(opts) {
42423
42449
  });
42424
42450
  const isNode = plan.sdk === "@gurulu/node";
42425
42451
  const checkpoint = opts.autonomous ? createCheckpoint(opts.cwd) : null;
42426
- phase(4, "SDK kurulumu");
42452
+ phase(4, "SDK ekleniyor", "Ölçüm kütüphanesi (@gurulu/web) projene kuruluyor.");
42427
42453
  let installed = false;
42428
42454
  if (opts.noInstall) {
42429
42455
  p4.log.info(`SDK kurulumu atlandı — elle: ${plan.installCommand}`);
@@ -42449,7 +42475,7 @@ async function runWizard(opts) {
42449
42475
  s2.stop(`Kurulum başarısız (geri alındı) — elle çalıştır: ${plan.installCommand}`, 1);
42450
42476
  }
42451
42477
  }
42452
- phase(5, "Kod & env wiring");
42478
+ phase(5, "Koduna bağlanıyor", "SDK kodun içine otomatik yerleştiriliyor ve ayarlar (.env) yazılıyor.");
42453
42479
  const activationSelected = featuresResult.selected.some((f3) => f3.key === "activation");
42454
42480
  const inj = applyInjection({
42455
42481
  cwd: opts.cwd,
@@ -42496,7 +42522,7 @@ async function runWizard(opts) {
42496
42522
  endpoint: auth.endpoint,
42497
42523
  sdkPref: isNode ? "node" : "web"
42498
42524
  });
42499
- phase(6, "Registry & rapor");
42525
+ phase(6, "Kaydediliyor & özet", "Olay tanımların kaydediliyor, kurulum doğrulanıyor ve özet çıkarılıyor.");
42500
42526
  let pulled = false;
42501
42527
  if (!opts.noPull) {
42502
42528
  try {
@@ -42525,7 +42551,14 @@ ${captureGuide(approvedEvents, identifyHint, isNode)}`);
42525
42551
  const snapshots = new Map;
42526
42552
  const s2 = p4.spinner();
42527
42553
  s2.start("AI capture wiring (kod düzenleniyor)…");
42528
- const outcome = await runWireAgent(client, { cwd: opts.cwd, events: approvedEvents, identifyHint, files: wireFiles, extraTasks }, snapshots);
42554
+ const outcome = await runWireAgent(client, {
42555
+ cwd: opts.cwd,
42556
+ events: approvedEvents,
42557
+ identifyHint,
42558
+ files: wireFiles,
42559
+ extraTasks,
42560
+ initSnippet: inj.strategy === "manual" ? plan.initSnippet : undefined
42561
+ }, snapshots);
42529
42562
  s2.stop(`wire: ${outcome.changedFiles.length} dosya / ${outcome.steps} adım (${outcome.stoppedReason})`);
42530
42563
  if (outcome.changedFiles.length > 0) {
42531
42564
  p4.log.message(formatWireDiff(opts.cwd, snapshots));
@@ -43100,7 +43133,7 @@ var uninstallCmd = defineCommand({
43100
43133
  });
43101
43134
 
43102
43135
  // src/index.ts
43103
- var VERSION = "1.6.3";
43136
+ var VERSION = "1.6.5";
43104
43137
  var mainCmd = defineCommand({
43105
43138
  meta: {
43106
43139
  name: "gurulu",
package/dist/index.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- export declare const VERSION = "1.6.3";
1
+ export declare const VERSION = "1.6.5";
2
2
  declare const mainCmd: import("citty").CommandDef<{
3
3
  workspace: {
4
4
  type: "string";
package/dist/index.js CHANGED
@@ -41306,12 +41306,14 @@ function readTruncated(abs, maxBytes) {
41306
41306
  const raw = redactSecrets(readFileSync9(abs, "utf-8"));
41307
41307
  if (raw.length <= maxBytes)
41308
41308
  return { content: raw, truncated: false };
41309
- const head = Math.floor(maxBytes * 0.65);
41310
- const tail = maxBytes - head;
41311
- return {
41312
- content: `${raw.slice(0, head)}
41309
+ const marker = `
41313
41310
  /* …${raw.length - maxBytes} char kesildi… */
41314
- ${raw.slice(-tail)}`,
41311
+ `;
41312
+ const budget = Math.max(0, maxBytes - marker.length);
41313
+ const head = Math.floor(budget * 0.65);
41314
+ const tail = budget - head;
41315
+ return {
41316
+ content: `${raw.slice(0, head)}${marker}${tail > 0 ? raw.slice(-tail) : ""}`,
41315
41317
  truncated: true
41316
41318
  };
41317
41319
  } catch {
@@ -41689,7 +41691,26 @@ function buildWireSystemPrompt() {
41689
41691
  return [
41690
41692
  "You are Gurulu's capture wire agent. Add the approved analytics events to the user's code,",
41691
41693
  "plus any additional wiring tasks given (e.g. wrapping an LLM client, mounting a provider).",
41692
- "Tools (one JSON action per turn): read{path} | edit{path,find,replace} | bash{cmd} | done{summary}.",
41694
+ "",
41695
+ "OUTPUT: respond with ONLY a single JSON object per turn — no prose, no markdown fences,",
41696
+ 'no <think> blocks. Exact shape: {"reasoning": "<short why>", "action": <one action below>}',
41697
+ "action is exactly one of:",
41698
+ ' {"tool": "read", "path": "src/file.ts"}',
41699
+ ' {"tool": "edit", "path": "src/file.ts", "find": "<exact unique existing snippet>", "replace": "<that snippet plus added code>"}',
41700
+ ' {"tool": "bash", "cmd": "npm run typecheck"}',
41701
+ ' {"tool": "done", "summary": "<what was wired>"}',
41702
+ 'Example turn: {"reasoning": "Read entry to find the init call site", "action": {"tool": "read", "path": "src/main.tsx"}}',
41703
+ "",
41704
+ "SDK API (@gurulu/web) — use EXACTLY this; NEVER invent import style or option names:",
41705
+ " import gurulu from '@gurulu/web'; // DEFAULT import — NOT `import { gurulu }`",
41706
+ " gurulu.init({ workspaceKey: '<key>' }); // option is `workspaceKey`, NOT `apiKey`",
41707
+ " gurulu.track('event_key', { /* props */ });",
41708
+ " gurulu.identify(userId, { /* traits */ });",
41709
+ "- init() is added ONCE at the app entry. If an init call already exists in the file, NEVER add",
41710
+ ' a second one — do not duplicate or "re-initialize". Your main job is track()/identify()/wrapping.',
41711
+ "- If you must add init, use the EXACT snippet given in the user message verbatim (correct env var + key).",
41712
+ "- Put new imports at the TOP of the file with the other imports, never in the middle of the body.",
41713
+ "",
41693
41714
  "HARD RULES:",
41694
41715
  "- ADDITIVE-ONLY: every edit `replace` MUST contain `find` verbatim — you may only ADD code,",
41695
41716
  ' never delete or rewrite existing code. Edits violating this are rejected. To "wrap" an existing',
@@ -41709,8 +41730,11 @@ function buildWireSystemPrompt() {
41709
41730
  ].join(`
41710
41731
  `);
41711
41732
  }
41712
- function buildWireUserPrompt(events, identifyHint, files, extraTasks = []) {
41733
+ function buildWireUserPrompt(events, identifyHint, files, extraTasks = [], initSnippet) {
41713
41734
  const sections = [];
41735
+ if (initSnippet) {
41736
+ sections.push("SDK init snippet (add ONLY if an init call is not already present at the app entry;", "copy it VERBATIM — correct default import, `workspaceKey`, env var and key are already right):", initSnippet, "");
41737
+ }
41714
41738
  if (events.length > 0) {
41715
41739
  const evLines = events.map((e2) => `- ${e2.event_key} (${e2.event_type})${e2.capture_hint ? ` @ ${e2.capture_hint}` : ""}: ${e2.reason}`).join(`
41716
41740
  `);
@@ -41733,7 +41757,7 @@ async function runWireAgent(client, input, snapshots) {
41733
41757
  { role: "system", content: buildWireSystemPrompt() },
41734
41758
  {
41735
41759
  role: "user",
41736
- content: buildWireUserPrompt(input.events, input.identifyHint, input.files, input.extraTasks ?? [])
41760
+ content: buildWireUserPrompt(input.events, input.identifyHint, input.files, input.extraTasks ?? [], input.initSnippet)
41737
41761
  }
41738
41762
  ];
41739
41763
  const edits = [];
@@ -41918,19 +41942,21 @@ async function runWizard(opts) {
41918
41942
  p4.log.info(c3.dim(`Bu proje zaten bağlı (workspace ${priorConfig.workspace_id.slice(0, 8)}…) — güncelleme / yeni özellik ekleme modu.`));
41919
41943
  }
41920
41944
  const TOTAL = 6;
41921
- const phase = (n2, label) => {
41945
+ const phase = (n2, label, desc) => {
41922
41946
  p4.log.step(`${c3.dim(`[${n2}/${TOTAL}]`)} ${c3.bold(label)}`);
41947
+ if (desc)
41948
+ p4.log.message(c3.dim(desc));
41923
41949
  };
41924
- phase(1, "Kimlik doğrulama");
41950
+ phase(1, "Hesabına bağlanıyoruz", "Gurulu hesabınla güvenli oturum — ilk sefer tarayıcıda bir onay, sonra hatırlanır.");
41925
41951
  const auth = await ensureAuth({
41926
41952
  ...opts.endpoint ? { endpoint: opts.endpoint } : {},
41927
41953
  ...opts.apiKey ? { apiKey: opts.apiKey } : {},
41928
41954
  ...opts.workspaceId ? { workspaceId: opts.workspaceId } : {}
41929
41955
  });
41930
41956
  const client = new ApiClient({ endpoint: auth.endpoint, apiKey: auth.apiKey });
41931
- phase(2, "Workspace");
41957
+ phase(2, "Çalışma alanı seçiliyor", "Verilerinin akacağı workspace ayarlanıyor ve site anahtarı üretiliyor.");
41932
41958
  const { workspaceId, writeKey } = await resolveWorkspace(client, auth.workspaceId, opts);
41933
- phase(3, "Proje tespiti & plan");
41959
+ phase(3, "Projeni tanıyoruz", "Kodun okunuyor; hangi kullanıcı olaylarını (ör. kayıt, satın alma) izleyeceğimiz planlanıyor.");
41934
41960
  const detected = detectProject(opts.cwd);
41935
41961
  let framework = detected.framework;
41936
41962
  if (opts.framework && FRAMEWORKS.includes(opts.framework)) {
@@ -42000,7 +42026,7 @@ async function runWizard(opts) {
42000
42026
  });
42001
42027
  const isNode = plan.sdk === "@gurulu/node";
42002
42028
  const checkpoint = opts.autonomous ? createCheckpoint(opts.cwd) : null;
42003
- phase(4, "SDK kurulumu");
42029
+ phase(4, "SDK ekleniyor", "Ölçüm kütüphanesi (@gurulu/web) projene kuruluyor.");
42004
42030
  let installed = false;
42005
42031
  if (opts.noInstall) {
42006
42032
  p4.log.info(`SDK kurulumu atlandı — elle: ${plan.installCommand}`);
@@ -42026,7 +42052,7 @@ async function runWizard(opts) {
42026
42052
  s2.stop(`Kurulum başarısız (geri alındı) — elle çalıştır: ${plan.installCommand}`, 1);
42027
42053
  }
42028
42054
  }
42029
- phase(5, "Kod & env wiring");
42055
+ phase(5, "Koduna bağlanıyor", "SDK kodun içine otomatik yerleştiriliyor ve ayarlar (.env) yazılıyor.");
42030
42056
  const activationSelected = featuresResult.selected.some((f3) => f3.key === "activation");
42031
42057
  const inj = applyInjection({
42032
42058
  cwd: opts.cwd,
@@ -42073,7 +42099,7 @@ async function runWizard(opts) {
42073
42099
  endpoint: auth.endpoint,
42074
42100
  sdkPref: isNode ? "node" : "web"
42075
42101
  });
42076
- phase(6, "Registry & rapor");
42102
+ phase(6, "Kaydediliyor & özet", "Olay tanımların kaydediliyor, kurulum doğrulanıyor ve özet çıkarılıyor.");
42077
42103
  let pulled = false;
42078
42104
  if (!opts.noPull) {
42079
42105
  try {
@@ -42102,7 +42128,14 @@ ${captureGuide(approvedEvents, identifyHint, isNode)}`);
42102
42128
  const snapshots = new Map;
42103
42129
  const s2 = p4.spinner();
42104
42130
  s2.start("AI capture wiring (kod düzenleniyor)…");
42105
- const outcome = await runWireAgent(client, { cwd: opts.cwd, events: approvedEvents, identifyHint, files: wireFiles, extraTasks }, snapshots);
42131
+ const outcome = await runWireAgent(client, {
42132
+ cwd: opts.cwd,
42133
+ events: approvedEvents,
42134
+ identifyHint,
42135
+ files: wireFiles,
42136
+ extraTasks,
42137
+ initSnippet: inj.strategy === "manual" ? plan.initSnippet : undefined
42138
+ }, snapshots);
42106
42139
  s2.stop(`wire: ${outcome.changedFiles.length} dosya / ${outcome.steps} adım (${outcome.stoppedReason})`);
42107
42140
  if (outcome.changedFiles.length > 0) {
42108
42141
  p4.log.message(formatWireDiff(opts.cwd, snapshots));
@@ -42677,7 +42710,7 @@ var uninstallCmd = defineCommand({
42677
42710
  });
42678
42711
 
42679
42712
  // src/index.ts
42680
- var VERSION = "1.6.3";
42713
+ var VERSION = "1.6.5";
42681
42714
  var mainCmd = defineCommand({
42682
42715
  meta: {
42683
42716
  name: "gurulu",
@@ -18,5 +18,5 @@ export declare function executeTool(action: AgentAction, deps: ToolDeps): Promis
18
18
  /** Wire agent system prompt (commandments) — pure. */
19
19
  export declare function buildWireSystemPrompt(): string;
20
20
  /** İlk user mesajı — onaylı plan + ek görevler + dosya listesi (pure). */
21
- export declare function buildWireUserPrompt(events: PlannedEvent[], identifyHint: string | null, files: string[], extraTasks?: string[]): string;
21
+ export declare function buildWireUserPrompt(events: PlannedEvent[], identifyHint: string | null, files: string[], extraTasks?: string[], initSnippet?: string): string;
22
22
  //# sourceMappingURL=agent.d.ts.map
@@ -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,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"}
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,CAyC9C;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,EACzB,WAAW,CAAC,EAAE,MAAM,GACnB,MAAM,CAmCR"}
@@ -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;AAqGD;;;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;AAyGD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,WAAW,CAwC9D"}
@@ -1 +1 @@
1
- {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/wizard/run.ts"],"names":[],"mappings":"AAuCA,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;AA0DD,wBAAsB,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAwclE"}
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/wizard/run.ts"],"names":[],"mappings":"AAuCA,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;AA0DD,wBAAsB,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAidlE"}
@@ -21,6 +21,8 @@ export interface WireInput {
21
21
  files: string[];
22
22
  /** Feature/inject kaynaklı ek wire görevleri (LLM client sarma · provider mount). */
23
23
  extraTasks?: string[];
24
+ /** Doğru gurulu.init() snippet'i — AI'ın init API'sini uydurmasını engeller. */
25
+ initSnippet?: string;
24
26
  }
25
27
  /**
26
28
  * Agent döngüsü. `snapshots` (file → pre-edit içerik) revert için doldurulur.
@@ -1 +1 @@
1
- {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../src/wizard/wire.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAoB,SAAS,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAI/E,eAAO,MAAM,SAAS,KAAK,CAAC;AAC5B,kFAAkF;AAClF,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,aAAa,CAAC;CAClE;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,qFAAqF;IACrF,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACvB;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,SAAS,EAChB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,OAAO,CAAC,WAAW,CAAC,CAwFtB;AAED,iEAAiE;AACjE,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAIlF;AAED,4EAA4E;AAC5E,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,SAAI,GAAG,MAAM,CAiB7F;AAED,mEAAmE;AACnE,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAQlF"}
1
+ {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../src/wizard/wire.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAoB,SAAS,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAI/E,eAAO,MAAM,SAAS,KAAK,CAAC;AAC5B,kFAAkF;AAClF,eAAO,MAAM,eAAe,IAAI,CAAC;AAEjC,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,WAAW;IAC1B,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,aAAa,EAAE,MAAM,GAAG,KAAK,GAAG,MAAM,GAAG,OAAO,GAAG,aAAa,CAAC;CAClE;AAED,MAAM,WAAW,SAAS;IACxB,GAAG,EAAE,MAAM,CAAC;IACZ,MAAM,EAAE,YAAY,EAAE,CAAC;IACvB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,qFAAqF;IACrF,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;IACtB,gFAAgF;IAChF,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,MAAM,EAAE,SAAS,EACjB,KAAK,EAAE,SAAS,EAChB,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC7B,OAAO,CAAC,WAAW,CAAC,CAyFtB;AAED,iEAAiE;AACjE,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAIlF;AAED,4EAA4E;AAC5E,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,SAAI,GAAG,MAAM,CAiB7F;AAED,mEAAmE;AACnE,wBAAgB,cAAc,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAQlF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@gurulu/cli",
3
- "version": "1.6.3",
3
+ "version": "1.6.5",
4
4
  "private": false,
5
5
  "license": "BUSL-1.1",
6
6
  "publishConfig": {