@gurulu/cli 1.0.4 → 1.1.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.
package/dist/lib/api.d.ts CHANGED
@@ -22,6 +22,16 @@ export declare class ApiClient {
22
22
  private headers;
23
23
  get<T>(path: string, query?: Record<string, string | number>): Promise<T>;
24
24
  post<T>(path: string, body: unknown): Promise<T>;
25
+ listWorkspaces(): Promise<ListWorkspacesResponse>;
26
+ createWorkspace(body: CreateWorkspaceBody): Promise<CreateWorkspaceResponse>;
27
+ /** Mevcut workspace için taze public ingest key mint et (plaintext bir kez). */
28
+ issueWriteKey(workspaceId: string): Promise<IssueWriteKeyResponse>;
29
+ /** AI event planı (W2 gateway) — kod context'i → registry-bound plan. */
30
+ planEvents(body: PlanEventsBody): Promise<PlanEventsResponse>;
31
+ /** Yeni event önerisi → verification queue (W2.4 plan uygula). */
32
+ pushEvent(body: RegistryPushBody): Promise<RegistryPushResponse>;
33
+ /** Capture wire agent — tek tur (W3 ReAct; çok-tur CLI'da). */
34
+ agentStep(body: AgentStepBody): Promise<AgentStepResponse>;
25
35
  private handle;
26
36
  }
27
37
  export interface RegistryPullResponse {
@@ -121,6 +131,96 @@ export interface HealthOverviewResponse {
121
131
  clickhouse_available: boolean;
122
132
  };
123
133
  }
134
+ export interface CliWorkspace {
135
+ workspace_id: string;
136
+ name: string;
137
+ slug: string;
138
+ domain: string;
139
+ environment: 'production' | 'staging' | 'development';
140
+ sector_pack: string | null;
141
+ status: string;
142
+ created_at: string;
143
+ }
144
+ export interface ListWorkspacesResponse {
145
+ workspaces: CliWorkspace[];
146
+ }
147
+ export interface CreateWorkspaceBody {
148
+ name: string;
149
+ slug?: string;
150
+ domain: string;
151
+ environment?: 'production' | 'staging' | 'development';
152
+ sector_pack?: 'ecommerce' | 'saas' | 'fintech' | 'content' | 'gambling' | 'custom';
153
+ }
154
+ export interface CreateWorkspaceResponse extends CliWorkspace {
155
+ write_key: string;
156
+ }
157
+ export interface IssueWriteKeyResponse {
158
+ workspace_id: string;
159
+ write_key: string;
160
+ }
161
+ export type EventClass = 'interaction' | 'intent' | 'outcome';
162
+ export interface PlannedEvent {
163
+ event_key: string;
164
+ event_type: EventClass;
165
+ /** Bu event NEDEN var — Plan fazı açıklaması. */
166
+ reason: string;
167
+ /** Funnel/feature grubu. */
168
+ group: string;
169
+ /** Registry'de zaten var mı. */
170
+ existing: boolean;
171
+ capture_hint?: string;
172
+ }
173
+ export interface EventPlan {
174
+ summary: string;
175
+ events: PlannedEvent[];
176
+ identify_hint: string | null;
177
+ }
178
+ export interface PlanEventsBody {
179
+ framework: string;
180
+ files: Array<{
181
+ path: string;
182
+ content: string;
183
+ }>;
184
+ sector?: string;
185
+ }
186
+ export interface PlanEventsResponse {
187
+ plan: EventPlan;
188
+ status: 'success' | 'fallback' | 'stub' | 'failed';
189
+ provider: string;
190
+ }
191
+ export type AgentAction = {
192
+ tool: 'read';
193
+ path: string;
194
+ } | {
195
+ tool: 'edit';
196
+ path: string;
197
+ find: string;
198
+ replace: string;
199
+ } | {
200
+ tool: 'bash';
201
+ cmd: string;
202
+ } | {
203
+ tool: 'done';
204
+ summary: string;
205
+ };
206
+ export interface AgentStep {
207
+ reasoning: string;
208
+ action: AgentAction;
209
+ }
210
+ export interface AgentChatMessage {
211
+ role: 'system' | 'user' | 'assistant';
212
+ content: string;
213
+ }
214
+ export interface AgentStepBody {
215
+ messages: AgentChatMessage[];
216
+ /** Session ilk turu — quota debit burada (per-step değil). */
217
+ first?: boolean;
218
+ }
219
+ export interface AgentStepResponse {
220
+ step: AgentStep;
221
+ status: 'success' | 'fallback' | 'stub' | 'failed';
222
+ provider: string;
223
+ }
124
224
  export interface DeviceStartResponse {
125
225
  device_code: string;
126
226
  user_code: string;
@@ -1 +1 @@
1
- {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../src/lib/api.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,34 @@
1
+ export type EditorId = 'cursor' | 'claude' | 'windsurf' | 'vscode';
2
+ export interface McpServerConfig {
3
+ command: string;
4
+ args: string[];
5
+ env: Record<string, string>;
6
+ }
7
+ export interface McpCreds {
8
+ /** sk_xxx workspace API key (MCP server GURULU_API_KEY). */
9
+ apiKey: string;
10
+ workspaceId: string;
11
+ /** Control-plane endpoint (GURULU_ENDPOINT). */
12
+ endpoint: string;
13
+ }
14
+ export declare function buildMcpServerConfig(creds: McpCreds): McpServerConfig;
15
+ interface EditorSpec {
16
+ path: (cwd: string) => string;
17
+ /** JSON içinde server map anahtarı (Cursor/Claude/Windsurf: mcpServers, VS Code: servers). */
18
+ key: string;
19
+ label: string;
20
+ }
21
+ export declare const EDITORS: Record<EditorId, EditorSpec>;
22
+ /** gurulu server'ı config'e ekle (diğerlerini koru). Pure. */
23
+ export declare function mergeMcpConfig(existing: Record<string, unknown>, serverConfig: McpServerConfig, key: string): Record<string, unknown>;
24
+ /** gurulu server'ı config'ten çıkar. Pure. */
25
+ export declare function removeMcpConfig(existing: Record<string, unknown>, key: string): Record<string, unknown>;
26
+ export interface McpWriteResult {
27
+ editor: EditorId;
28
+ label: string;
29
+ path: string;
30
+ }
31
+ export declare function addMcp(editor: EditorId, creds: McpCreds, cwd: string): McpWriteResult;
32
+ export declare function removeMcp(editor: EditorId, cwd: string): McpWriteResult;
33
+ export {};
34
+ //# sourceMappingURL=editor-mcp.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"editor-mcp.d.ts","sourceRoot":"","sources":["../../src/lib/editor-mcp.ts"],"names":[],"mappings":"AAUA,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,UAAU,GAAG,QAAQ,CAAC;AAEnE,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,CAAC,KAAK,EAAE,QAAQ,GAAG,eAAe,CAUrE;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;CACf;AAED,eAAO,MAAM,OAAO,EAAE,MAAM,CAAC,QAAQ,EAAE,UAAU,CAShD,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;AAiBD,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,QAAQ,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;CACd;AAED,wBAAgB,MAAM,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,cAAc,CAKrF;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,GAAG,EAAE,MAAM,GAAG,cAAc,CAKvE"}
@@ -0,0 +1,42 @@
1
+ export interface EnvVar {
2
+ key: string;
3
+ value: string;
4
+ }
5
+ export interface WriteEnvOptions {
6
+ cwd: string;
7
+ /** Hedef dosya. Default `.env.local`. */
8
+ file?: string;
9
+ vars: EnvVar[];
10
+ /** Dosyayı .gitignore'a eklemeyi garanti et. Default true. */
11
+ gitignore?: boolean;
12
+ }
13
+ export interface WriteEnvResult {
14
+ file: string;
15
+ /** Yeni eklenen anahtarlar. */
16
+ added: string[];
17
+ /** Zaten var olan (user değeri korundu). */
18
+ skipped: string[];
19
+ /** Bu çalışmada dosya .gitignore'a eklendiyse true. */
20
+ gitignored: boolean;
21
+ }
22
+ /** Mevcut env dosyasındaki tanımlı anahtar isimleri (comment/boş satır atlanır). */
23
+ export declare function parseEnvKeys(content: string): Set<string>;
24
+ /**
25
+ * .env dosyasına eksik anahtarları ekler (mevcut değerleri korur) ve dosyayı
26
+ * .gitignore'a ekler. Dosya yoksa oluşturur.
27
+ */
28
+ export declare function writeEnvFile(opts: WriteEnvOptions): WriteEnvResult;
29
+ /**
30
+ * `file`'ı .gitignore'a ekler (zaten kapsanıyorsa dokunmaz). Eklediyse true.
31
+ * Basit eşleşme: tam satır veya `.env*` glob'u zaten varsa atlanır.
32
+ */
33
+ export declare function ensureGitignored(cwd: string, file: string): boolean;
34
+ /**
35
+ * Verilen prefix'lerle başlayan env anahtarlarını + `# Gurulu` marker'ını çıkar
36
+ * (uninstall). Pure — döndürülen içeriği caller yazar. Hangi anahtar silindi döner.
37
+ */
38
+ export declare function removeEnvKeys(content: string, prefixes: string[]): {
39
+ content: string;
40
+ removed: string[];
41
+ };
42
+ //# sourceMappingURL=env-file.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"env-file.d.ts","sourceRoot":"","sources":["../../src/lib/env-file.ts"],"names":[],"mappings":"AAYA,MAAM,WAAW,MAAM;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,MAAM,CAAC;IACZ,yCAAyC;IACzC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,8DAA8D;IAC9D,SAAS,CAAC,EAAE,OAAO,CAAC;CACrB;AAED,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,+BAA+B;IAC/B,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,4CAA4C;IAC5C,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,uDAAuD;IACvD,UAAU,EAAE,OAAO,CAAC;CACrB;AAID,oFAAoF;AACpF,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG,CAAC,MAAM,CAAC,CASzD;AAQD;;;GAGG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,eAAe,GAAG,cAAc,CA+BlE;AAED;;;GAGG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAkBnE;AAED;;;GAGG;AACH,wBAAgB,aAAa,CAC3B,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAAE,GACjB;IAAE,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,EAAE,CAAA;CAAE,CAcxC"}
@@ -0,0 +1,47 @@
1
+ import type { DetectedProject, Framework } from './detect.ts';
2
+ export interface InjectPieces {
3
+ /** Tek satır import — ör. `import gurulu from '@gurulu/web';` */
4
+ importLine: string;
5
+ /** Modül seviyesi init çağrısı — ör. `gurulu.init({ workspaceKey: '...' });` */
6
+ initCall: string;
7
+ /** Idempotency anahtarı — kaynakta bu varsa zaten entegre sayılır (ör. `@gurulu/web`). */
8
+ marker: string;
9
+ }
10
+ export type InjectTextReason = 'injected' | 'already-present';
11
+ export interface InjectTextResult {
12
+ changed: boolean;
13
+ output: string;
14
+ reason: InjectTextReason;
15
+ }
16
+ /**
17
+ * Kaynağa import + init enjekte eder (idempotent). marker zaten varsa dokunmaz.
18
+ */
19
+ export declare function injectInit(source: string, pieces: InjectPieces): InjectTextResult;
20
+ export declare function webPieces(workspaceKey: string, framework: Framework): InjectPieces;
21
+ export type InjectStrategy = 'prepend-entry' | 'create-module' | 'manual';
22
+ export declare function chooseStrategy(framework: Framework): InjectStrategy;
23
+ /** İlk var olan entry dosyası (cwd-relative) ya da null. */
24
+ export declare function discoverEntry(cwd: string): string | null;
25
+ export interface InjectionResult {
26
+ strategy: InjectStrategy;
27
+ changed: boolean;
28
+ /** Yazılan/değiştirilen dosya (cwd-relative) — manual'da null. */
29
+ file: string | null;
30
+ reason: InjectTextReason | 'no-entry' | 'manual' | 'created';
31
+ /** create-module/manual'da kullanıcıya gösterilecek wiring ipucu. */
32
+ wireHint?: string;
33
+ }
34
+ export interface ApplyInjectionOptions {
35
+ cwd: string;
36
+ detected: DetectedProject;
37
+ workspaceKey: string;
38
+ /** create-module/manual fallback için hazır snippet (install-plan.initSnippet). */
39
+ snippet: string;
40
+ placementHint: string;
41
+ }
42
+ /**
43
+ * Deterministik enjeksiyon: web plain → entry prepend; next/nuxt/... → init modülü
44
+ * yaz; node/bilinmeyen → manual (snippet döner, dosya yazılmaz).
45
+ */
46
+ export declare function applyInjection(opts: ApplyInjectionOptions): InjectionResult;
47
+ //# sourceMappingURL=inject.d.ts.map
@@ -0,0 +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,CAcjF;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,CA2B3E"}
@@ -50,46 +50,45 @@ export function GuruluProvider({ children }: { children: React.ReactNode }) {
50
50
  // Then wrap your root in app/layout.tsx:
51
51
  // <GuruluProvider>{children}</GuruluProvider>`;
52
52
  }
53
- function snippetNode(workspaceKey) {
53
+ function snippetNode() {
54
54
  return `import { createGurulu } from '@gurulu/node';
55
55
 
56
56
  const gurulu = createGurulu({
57
- workspaceKey: process.env.GURULU_WORKSPACE ?? '${workspaceKey}',
58
- apiKey: process.env.GURULU_API_KEY,
57
+ workspaceKey: process.env.GURULU_SECRET_KEY, // sk_xxx — server secret key
59
58
  endpoint: process.env.GURULU_ENDPOINT, // optional, defaults to https://ingest.gurulu.io
60
59
  });
61
60
 
62
61
  // In your handler:
63
- await gurulu.track('purchase_completed', {
62
+ gurulu.track('purchase_completed', {
64
63
  user_id: 'u_42',
65
64
  order_id: 'o_123',
66
65
  total: 49.99,
67
66
  });`;
68
67
  }
69
- function snippetExpress(workspaceKey) {
68
+ function snippetExpress() {
70
69
  return `import express from 'express';
71
- import { guruluMiddleware } from '@gurulu/node/middleware/express';
70
+ import { createGurulu } from '@gurulu/node';
71
+ import { createExpressMiddleware } from '@gurulu/node/middleware/express';
72
+
73
+ const gurulu = createGurulu({ workspaceKey: process.env.GURULU_SECRET_KEY });
72
74
 
73
75
  const app = express();
74
- app.use(guruluMiddleware({
75
- workspaceKey: process.env.GURULU_WORKSPACE ?? '${workspaceKey}',
76
- apiKey: process.env.GURULU_API_KEY,
77
- endpoint: process.env.GURULU_ENDPOINT,
78
- }));`;
76
+ app.use(createExpressMiddleware()); // propagates anonymous_id + request context
77
+
78
+ app.post('/checkout/complete', (req, res) => {
79
+ gurulu.track('purchase_completed', req.body);
80
+ res.json({ ok: true });
81
+ });`;
79
82
  }
80
- function snippetHono(workspaceKey) {
83
+ function snippetHono() {
81
84
  return `import { Hono } from 'hono';
82
85
  import { createGurulu } from '@gurulu/node';
83
86
 
84
- const gurulu = createGurulu({
85
- workspaceKey: process.env.GURULU_WORKSPACE ?? '${workspaceKey}',
86
- apiKey: process.env.GURULU_API_KEY,
87
- endpoint: process.env.GURULU_ENDPOINT,
88
- });
87
+ const gurulu = createGurulu({ workspaceKey: process.env.GURULU_SECRET_KEY });
89
88
 
90
89
  const app = new Hono();
91
90
  app.post('/checkout/complete', async (c) => {
92
- await gurulu.track('purchase_completed', await c.req.json());
91
+ gurulu.track('purchase_completed', await c.req.json());
93
92
  return c.json({ ok: true });
94
93
  });`;
95
94
  }
@@ -108,7 +107,7 @@ function placementHintFor(framework) {
108
107
  case "vue":
109
108
  return "Add to src/main.ts (or your entry file) before mounting the app.";
110
109
  case "express":
111
- return "Register guruluMiddleware before your route handlers in your app entry file.";
110
+ return "Create the SDK with createGurulu(), then register createExpressMiddleware() before your route handlers.";
112
111
  case "fastify":
113
112
  return "Register the Gurulu plugin via fastify.register() before route definitions.";
114
113
  case "hono":
@@ -124,10 +123,10 @@ function placementHintFor(framework) {
124
123
  function initSnippetFor(framework, sdk, workspaceKey) {
125
124
  if (sdk === "@gurulu/node") {
126
125
  if (framework === "express")
127
- return snippetExpress(workspaceKey);
126
+ return snippetExpress();
128
127
  if (framework === "hono")
129
- return snippetHono(workspaceKey);
130
- return snippetNode(workspaceKey);
128
+ return snippetHono();
129
+ return snippetNode();
131
130
  }
132
131
  if (framework === "next")
133
132
  return snippetNext(workspaceKey);
@@ -136,8 +135,7 @@ function initSnippetFor(framework, sdk, workspaceKey) {
136
135
  function envKeysFor(sdk, framework) {
137
136
  if (sdk === "@gurulu/node") {
138
137
  return [
139
- { key: "GURULU_WORKSPACE", example: "pk_live_xxxxxxxxxxxx", required: true },
140
- { key: "GURULU_API_KEY", example: "sk_live_xxxxxxxxxxxx", required: true },
138
+ { key: "GURULU_SECRET_KEY", example: "sk_live_xxxxxxxxxxxx", required: true },
141
139
  {
142
140
  key: "GURULU_ENDPOINT",
143
141
  example: "https://ingest.gurulu.io",
@@ -0,0 +1,22 @@
1
+ import type { AgentAction, PlannedEvent } from '../lib/api.ts';
2
+ export interface ToolResult {
3
+ ok: boolean;
4
+ observation: string;
5
+ /** Edit başarılıysa değişen dosya (diff/branch takibi için). */
6
+ changedFile?: string;
7
+ }
8
+ export interface ToolDeps {
9
+ cwd: string;
10
+ /** Test injection — default node execFile (shell yok, operatörsüz). */
11
+ runBash?: (cmd: string, cwd: string) => Promise<{
12
+ stdout: string;
13
+ stderr: string;
14
+ }>;
15
+ }
16
+ /** Tek action'ı guard + yürüt → observation. Asla throw etmez. */
17
+ export declare function executeTool(action: AgentAction, deps: ToolDeps): Promise<ToolResult>;
18
+ /** Wire agent system prompt (commandments) — pure. */
19
+ export declare function buildWireSystemPrompt(): string;
20
+ /** İlk user mesajı — onaylı plan + dosya listesi (pure). */
21
+ export declare function buildWireUserPrompt(events: PlannedEvent[], identifyHint: string | null, files: string[]): string;
22
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/wizard/agent.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAM/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;AAmBD,kEAAkE;AAClE,wBAAsB,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,CAAC,CAwC1F;AAED,sDAAsD;AACtD,wBAAgB,qBAAqB,IAAI,MAAM,CAc9C;AAED,4DAA4D;AAC5D,wBAAgB,mBAAmB,CACjC,MAAM,EAAE,YAAY,EAAE,EACtB,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,KAAK,EAAE,MAAM,EAAE,GACd,MAAM,CAYR"}
@@ -0,0 +1,16 @@
1
+ import type { ApiClient, PlannedEvent } from '../lib/api.ts';
2
+ export interface RegisterResult {
3
+ registered: string[];
4
+ failed: string[];
5
+ }
6
+ /**
7
+ * `existing:false` event'leri verification queue'ya öner (K17 — draft + human
8
+ * approval). Mevcut event'ler atlanır. Per-event hata izole (akış durmaz).
9
+ */
10
+ export declare function registerNewEvents(client: ApiClient, events: PlannedEvent[]): Promise<RegisterResult>;
11
+ /**
12
+ * Capture/identify snippet rehberi (pure). Kullanıcı bu track()/identify()
13
+ * çağrılarını capture_hint'teki yerlere ekler. Otomatik gömme W2.5.
14
+ */
15
+ export declare function captureGuide(events: PlannedEvent[], identifyHint: string | null, isNode: boolean): string;
16
+ //# sourceMappingURL=apply.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"apply.d.ts","sourceRoot":"","sources":["../../src/wizard/apply.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAoB,MAAM,eAAe,CAAC;AAE/E,MAAM,WAAW,cAAc;IAC7B,UAAU,EAAE,MAAM,EAAE,CAAC;IACrB,MAAM,EAAE,MAAM,EAAE,CAAC;CAClB;AAED;;;GAGG;AACH,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,SAAS,EACjB,MAAM,EAAE,YAAY,EAAE,GACrB,OAAO,CAAC,cAAc,CAAC,CAwBzB;AAED;;;GAGG;AACH,wBAAgB,YAAY,CAC1B,MAAM,EAAE,YAAY,EAAE,EACtB,YAAY,EAAE,MAAM,GAAG,IAAI,EAC3B,MAAM,EAAE,OAAO,GACd,MAAM,CAgBR"}
@@ -0,0 +1,13 @@
1
+ export interface WizardAuth {
2
+ apiKey: string;
3
+ workspaceId: string;
4
+ endpoint: string;
5
+ }
6
+ export interface EnsureAuthOptions {
7
+ endpoint?: string;
8
+ /** Non-interaktif: doğrudan sk_ bind. */
9
+ apiKey?: string;
10
+ workspaceId?: string;
11
+ }
12
+ export declare function ensureAuth(opts: EnsureAuthOptions): Promise<WizardAuth>;
13
+ //# sourceMappingURL=auth.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auth.d.ts","sourceRoot":"","sources":["../../src/wizard/auth.ts"],"names":[],"mappings":"AAeA,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yCAAyC;IACzC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,UAAU,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,UAAU,CAAC,CAkC7E"}
@@ -0,0 +1,27 @@
1
+ export interface ContextFile {
2
+ /** cwd-relative yol. */
3
+ path: string;
4
+ /** Truncate sonrası içerik. */
5
+ content: string;
6
+ /** Truncate edildi mi. */
7
+ truncated: boolean;
8
+ }
9
+ export interface CodeContext {
10
+ files: ContextFile[];
11
+ /** Dosya sayısı/boyut sınırına takıldı mı (bazı dosyalar atlandı). */
12
+ capped: boolean;
13
+ totalBytes: number;
14
+ }
15
+ export interface GatherOptions {
16
+ cwd: string;
17
+ maxFiles?: number;
18
+ maxFileBytes?: number;
19
+ maxTotalBytes?: number;
20
+ maxDepth?: number;
21
+ }
22
+ /**
23
+ * Relevance'a göre sıralı, boyut-sınırlı kod context'i topla. Root package.json
24
+ * (varsa) her zaman dahil — framework/deps sinyali.
25
+ */
26
+ export declare function gatherContext(opts: GatherOptions): CodeContext;
27
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +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;AAsGD;;;GAGG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,GAAG,WAAW,CAsC9D"}
@@ -0,0 +1,16 @@
1
+ export interface GuardResult {
2
+ ok: boolean;
3
+ reason?: string;
4
+ }
5
+ /**
6
+ * Additive-only invariant: `replace`, `find`'ı VERBATIM içermeli (D-W3b).
7
+ * Böylece edit sadece ekler — mevcut kod silinemez/yeniden yazılamaz.
8
+ */
9
+ export declare function isAdditiveEdit(find: string, replace: string): GuardResult;
10
+ /** Bash komutu allowlist'te mi + tehlikeli operatör yok mu. */
11
+ export declare function isAllowedBash(cmd: string): GuardResult;
12
+ /** Yol cwd altında mı + `.env*` değil mi. */
13
+ export declare function isAllowedPath(p: string, cwd: string): GuardResult;
14
+ /** Okunan içerikte prompt-injection işareti var mı (agent uyarılır). */
15
+ export declare function hasPromptInjection(content: string): boolean;
16
+ //# sourceMappingURL=guard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../../src/wizard/guard.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,OAAO,CAAC;IACZ,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;GAGG;AACH,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,WAAW,CAOzE;AAuBD,+DAA+D;AAC/D,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,WAAW,CAOtD;AAED,6CAA6C;AAC7C,wBAAgB,aAAa,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,WAAW,CAQjE;AAMD,wEAAwE;AACxE,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAE3D"}
@@ -0,0 +1,18 @@
1
+ import type { ApiClient, EventClass, EventPlan, PlannedEvent } from '../lib/api.ts';
2
+ import type { CodeContext } from './context.ts';
3
+ export interface FetchPlanInput {
4
+ framework: string;
5
+ sector?: string;
6
+ }
7
+ /** Gateway'den event planı al. Boş/stub/hata → null (floor devralır). */
8
+ export declare function fetchPlan(client: ApiClient, context: CodeContext, input: FetchPlanInput): Promise<EventPlan | null>;
9
+ /** Event'leri 3-sınıfa göre grupla (sınıf içinde verbatim sıra). Pure. */
10
+ export declare function groupByClass(events: PlannedEvent[]): Array<{
11
+ cls: EventClass;
12
+ events: PlannedEvent[];
13
+ }>;
14
+ /** Planı metne dök (clack note). Pure — test edilebilir. */
15
+ export declare function formatPlan(plan: EventPlan): string;
16
+ /** Plan fazı UX — göster + tek onay. Onaylı event listesi ya da null (reddetti). */
17
+ export declare function renderPlan(plan: EventPlan): Promise<PlannedEvent[] | null>;
18
+ //# sourceMappingURL=plan.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,16 @@
1
+ export interface WizardOptions {
2
+ cwd: string;
3
+ endpoint?: string;
4
+ apiKey?: string;
5
+ workspaceId?: string;
6
+ writeKey?: string;
7
+ framework?: string;
8
+ noInstall?: boolean;
9
+ noPull?: boolean;
10
+ /** AI Plan fazını atla → doğrudan deterministik floor. */
11
+ noAi?: boolean;
12
+ /** Onayları otomatik geç (--yes / --ci). */
13
+ yes?: boolean;
14
+ }
15
+ export declare function runWizard(opts: WizardOptions): Promise<void>;
16
+ //# sourceMappingURL=run.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"run.d.ts","sourceRoot":"","sources":["../../src/wizard/run.ts"],"names":[],"mappings":"AA+BA,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;CACf;AAsBD,wBAAsB,SAAS,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAuLlE"}
@@ -0,0 +1,32 @@
1
+ import type { ApiClient, PlannedEvent } from '../lib/api.ts';
2
+ export declare const MAX_STEPS = 25;
3
+ export interface WireEdit {
4
+ file: string;
5
+ find: string;
6
+ replace: string;
7
+ }
8
+ export interface WireOutcome {
9
+ edits: WireEdit[];
10
+ changedFiles: string[];
11
+ summary: string;
12
+ steps: number;
13
+ stoppedReason: 'done' | 'cap' | 'stub' | 'error';
14
+ }
15
+ export interface WireInput {
16
+ cwd: string;
17
+ events: PlannedEvent[];
18
+ identifyHint: string | null;
19
+ files: string[];
20
+ }
21
+ /**
22
+ * Agent döngüsü. `snapshots` (file → pre-edit içerik) revert için doldurulur.
23
+ * additive-only sayesinde agent yeni dosya yaratamaz → snapshot tüm değişimi kapsar.
24
+ */
25
+ export declare function runWireAgent(client: ApiClient, input: WireInput, snapshots: Map<string, string>): Promise<WireOutcome>;
26
+ /** Snapshot'lardan dosyaları geri yükle (kullanıcı reddetti). */
27
+ export declare function restoreSnapshots(cwd: string, snapshots: Map<string, string>): void;
28
+ /** İki içerik arası lokal unified-diff (ortak prefix/suffix trim). Pure. */
29
+ export declare function unifiedDiff(oldStr: string, newStr: string, file: string, context?: number): string;
30
+ /** Değişen dosyaların snapshot'a (pre-edit) göre gerçek diff'i. */
31
+ export declare function formatWireDiff(cwd: string, snapshots: Map<string, string>): string;
32
+ //# sourceMappingURL=wire.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"wire.d.ts","sourceRoot":"","sources":["../../src/wizard/wire.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAoB,SAAS,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAG/E,eAAO,MAAM,SAAS,KAAK,CAAC;AAE5B,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,CAAC;CAClD;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;CACjB;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,CAyCtB;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.0.4",
3
+ "version": "1.1.0",
4
4
  "private": false,
5
5
  "license": "BUSL-1.1",
6
6
  "publishConfig": {
@@ -45,17 +45,19 @@
45
45
  ],
46
46
  "scripts": {
47
47
  "build": "rm -rf dist && bun run build:js && bun run build:lib && bun run build:types && bun run build:bin",
48
- "build:js": "bun build ./src/index.ts --outdir ./dist --target node --format=esm",
48
+ "build:js": "bun build ./src/index.ts --outdir ./dist --target node --format=esm --external open --external @clack/prompts",
49
49
  "build:lib": "bun build ./src/lib/detect.ts ./src/lib/install-plan.ts --outdir ./dist/lib --target node --format=esm",
50
- "build:bin": "bun build ./src/bin.ts --outdir ./dist --target node --format=esm && chmod +x dist/bin.js",
50
+ "build:bin": "bun build ./src/bin.ts --outdir ./dist --target node --format=esm --external open --external @clack/prompts && chmod +x dist/bin.js",
51
51
  "build:types": "tsc -p tsconfig.build.json",
52
52
  "typecheck": "tsc --noEmit",
53
- "test": "echo no-tests-yet",
53
+ "test": "bun test",
54
54
  "prepublishOnly": "bun run build",
55
55
  "clean": "rm -rf dist .turbo"
56
56
  },
57
57
  "dependencies": {
58
+ "@clack/prompts": "^0.7.0",
58
59
  "citty": "^0.1.6",
60
+ "open": "^10.1.0",
59
61
  "undici": "^7.0.0"
60
62
  },
61
63
  "devDependencies": {