arkna 1.4.0 → 2.0.1

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 (58) hide show
  1. package/dist/commands/init.d.ts +3 -0
  2. package/dist/commands/init.d.ts.map +1 -0
  3. package/dist/commands/init.js +276 -0
  4. package/dist/commands/init.js.map +1 -0
  5. package/dist/commands/login.d.ts.map +1 -1
  6. package/dist/commands/login.js +2 -5
  7. package/dist/commands/login.js.map +1 -1
  8. package/dist/commands/status.d.ts.map +1 -1
  9. package/dist/commands/status.js +47 -116
  10. package/dist/commands/status.js.map +1 -1
  11. package/dist/commands/verify.d.ts.map +1 -1
  12. package/dist/commands/verify.js +87 -114
  13. package/dist/commands/verify.js.map +1 -1
  14. package/dist/index.js +6 -16
  15. package/dist/index.js.map +1 -1
  16. package/dist/lib/arkna-dir.d.ts +4 -86
  17. package/dist/lib/arkna-dir.d.ts.map +1 -1
  18. package/dist/lib/arkna-dir.js +6 -110
  19. package/dist/lib/arkna-dir.js.map +1 -1
  20. package/dist/lib/connectivity.d.ts +7 -50
  21. package/dist/lib/connectivity.d.ts.map +1 -1
  22. package/dist/lib/connectivity.js +39 -255
  23. package/dist/lib/connectivity.js.map +1 -1
  24. package/dist/lib/detect.d.ts +35 -0
  25. package/dist/lib/detect.d.ts.map +1 -0
  26. package/dist/lib/detect.js +335 -0
  27. package/dist/lib/detect.js.map +1 -0
  28. package/dist/lib/ui.js +2 -2
  29. package/dist/lib/ui.js.map +1 -1
  30. package/package.json +8 -7
  31. package/dist/commands/action.d.ts +0 -3
  32. package/dist/commands/action.d.ts.map +0 -1
  33. package/dist/commands/action.js +0 -333
  34. package/dist/commands/action.js.map +0 -1
  35. package/dist/commands/connect.d.ts +0 -3
  36. package/dist/commands/connect.d.ts.map +0 -1
  37. package/dist/commands/connect.js +0 -582
  38. package/dist/commands/connect.js.map +0 -1
  39. package/dist/commands/pull-governance.d.ts +0 -3
  40. package/dist/commands/pull-governance.d.ts.map +0 -1
  41. package/dist/commands/pull-governance.js +0 -116
  42. package/dist/commands/pull-governance.js.map +0 -1
  43. package/dist/commands/push-manifest.d.ts +0 -3
  44. package/dist/commands/push-manifest.d.ts.map +0 -1
  45. package/dist/commands/push-manifest.js +0 -138
  46. package/dist/commands/push-manifest.js.map +0 -1
  47. package/dist/commands/sync.d.ts +0 -3
  48. package/dist/commands/sync.d.ts.map +0 -1
  49. package/dist/commands/sync.js +0 -65
  50. package/dist/commands/sync.js.map +0 -1
  51. package/dist/commands/test.d.ts +0 -3
  52. package/dist/commands/test.d.ts.map +0 -1
  53. package/dist/commands/test.js +0 -142
  54. package/dist/commands/test.js.map +0 -1
  55. package/dist/lib/platforms.d.ts +0 -45
  56. package/dist/lib/platforms.d.ts.map +0 -1
  57. package/dist/lib/platforms.js +0 -638
  58. package/dist/lib/platforms.js.map +0 -1
@@ -6,7 +6,6 @@ export interface TestResult {
6
6
  detail: string;
7
7
  }
8
8
  export declare function checkHealth(url: string): Promise<TestResult>;
9
- export declare function checkToken(url: string, token: string): Promise<TestResult>;
10
9
  export interface TokenValidResult extends TestResult {
11
10
  agentRegistered: boolean;
12
11
  toolCount: number;
@@ -18,57 +17,15 @@ export interface TokenValidResult extends TestResult {
18
17
  * - 401/403 = token invalid (fail)
19
18
  */
20
19
  export declare function checkTokenValid(url: string, token: string): Promise<TokenValidResult>;
21
- export declare function checkDryRun(url: string, token: string): Promise<TestResult>;
22
- export declare function runAllChecks(url: string, token: string): Promise<TestResult[]>;
23
- export declare function registerAgent(url: string, token: string, name: string, platform: string, replyUrl?: string): Promise<{
24
- success: boolean;
25
- agent?: Record<string, unknown>;
26
- error?: string;
27
- }>;
28
- export declare function pullConfig(url: string, token: string): Promise<{
29
- success: boolean;
30
- data?: Record<string, unknown>;
31
- error?: string;
32
- }>;
33
- export declare function pushManifest(url: string, token: string, manifest: Record<string, unknown>): Promise<{
34
- success: boolean;
35
- agentId?: string;
36
- pushedAt?: string;
37
- error?: string;
38
- }>;
39
- export declare function pullGovernance(url: string, token: string): Promise<{
40
- success: boolean;
41
- data?: Record<string, unknown>;
42
- error?: string;
43
- }>;
44
- export declare function checkConfigPull(url: string, token: string): Promise<TestResult>;
45
- export interface AdminSession {
46
- jwt: string;
47
- user: {
48
- email: string;
49
- role: string;
50
- firstName: string;
51
- lastName: string;
52
- };
20
+ export interface TestRunResult extends TestResult {
21
+ runId?: string;
53
22
  }
54
23
  /**
55
- * Login as admin via email + password → JWT.
56
- * Used by `arkna connect` to auto-provision integration tokens.
24
+ * Send a test run through the ingestion pipeline:
25
+ * 1. POST /api/v1/runs create a run
26
+ * 2. PATCH /api/v1/runs/:id — complete the run
27
+ * Returns success if both succeed.
57
28
  */
58
- export declare function adminLogin(url: string, email: string, password: string): Promise<{
59
- success: boolean;
60
- session?: AdminSession;
61
- error?: string;
62
- }>;
63
- /**
64
- * Create an integration token via the admin API.
65
- * Returns the plaintext token (only available at creation time).
66
- */
67
- export declare function provisionToken(url: string, jwt: string, agentName: string): Promise<{
68
- success: boolean;
69
- token?: string;
70
- tokenId?: string;
71
- error?: string;
72
- }>;
29
+ export declare function sendTestRun(url: string, token: string): Promise<TestRunResult>;
73
30
  export declare function printSummary(results: TestResult[]): void;
74
31
  //# sourceMappingURL=connectivity.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"connectivity.d.ts","sourceRoot":"","sources":["../../src/lib/connectivity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connectivity.d.ts","sourceRoot":"","sources":["../../src/lib/connectivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAA+C,MAAM,MAAM,CAAC;AAE/E,OAAO,EAAE,UAAU,EAAE,CAAC;AAEtB,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAID,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAWlE;AAID,MAAM,WAAW,gBAAiB,SAAQ,UAAU;IAClD,eAAe,EAAE,OAAO,CAAC;IACzB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAiB3F;AAID,MAAM,WAAW,aAAc,SAAQ,UAAU;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;;;;GAKG;AACH,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,CAAC,CAmDpF;AAID,wBAAgB,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAWxD"}
@@ -2,51 +2,23 @@
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.resultLine = void 0;
4
4
  exports.checkHealth = checkHealth;
5
- exports.checkToken = checkToken;
6
5
  exports.checkTokenValid = checkTokenValid;
7
- exports.checkDryRun = checkDryRun;
8
- exports.runAllChecks = runAllChecks;
9
- exports.registerAgent = registerAgent;
10
- exports.pullConfig = pullConfig;
11
- exports.pushManifest = pushManifest;
12
- exports.pullGovernance = pullGovernance;
13
- exports.checkConfigPull = checkConfigPull;
14
- exports.adminLogin = adminLogin;
15
- exports.provisionToken = provisionToken;
6
+ exports.sendTestRun = sendTestRun;
16
7
  exports.printSummary = printSummary;
17
8
  const ui_1 = require("./ui");
18
9
  Object.defineProperty(exports, "resultLine", { enumerable: true, get: function () { return ui_1.resultLine; } });
10
+ // ── Health Check ────────────────────────────────────────────────────────────
19
11
  async function checkHealth(url) {
20
12
  try {
21
- const resp = await fetch(`${url}/api/gateway/health`);
13
+ const resp = await fetch(`${url}/api/health`);
22
14
  if (!resp.ok) {
23
- return { name: 'Gateway reachable', passed: false, detail: `HTTP ${resp.status}` };
15
+ return { name: 'API reachable', passed: false, detail: `HTTP ${resp.status}` };
24
16
  }
25
17
  const data = await resp.json();
26
- return { name: 'Gateway reachable', passed: true, detail: `v${data.version || '?'}` };
18
+ return { name: 'API reachable', passed: true, detail: `v${data.version || '?'}` };
27
19
  }
28
20
  catch (err) {
29
- return { name: 'Gateway reachable', passed: false, detail: err.message || 'Connection failed' };
30
- }
31
- }
32
- async function checkToken(url, token) {
33
- try {
34
- const resp = await fetch(`${url}/api/gateway/tools`, {
35
- headers: { 'X-Integration-Token': token },
36
- });
37
- if (resp.ok) {
38
- const data = await resp.json();
39
- return { name: 'Token valid', passed: true, detail: `${data.count || 0} tools available` };
40
- }
41
- // 400 = token is valid but not yet bound to an agent (pre-registration)
42
- if (resp.status === 400) {
43
- return { name: 'Token valid', passed: true, detail: 'authenticated (agent not registered yet)' };
44
- }
45
- // 401/403 = actually invalid token
46
- return { name: 'Token valid', passed: false, detail: `HTTP ${resp.status} — check token ${(0, ui_1.maskToken)(token)}` };
47
- }
48
- catch (err) {
49
- return { name: 'Token valid', passed: false, detail: err.message || 'Request failed' };
21
+ return { name: 'API reachable', passed: false, detail: err.message || 'Connection failed' };
50
22
  }
51
23
  }
52
24
  /**
@@ -74,248 +46,60 @@ async function checkTokenValid(url, token) {
74
46
  return { name: 'Token valid', passed: false, detail: err.message || 'Request failed', agentRegistered: false, toolCount: 0 };
75
47
  }
76
48
  }
77
- async function checkDryRun(url, token) {
49
+ /**
50
+ * Send a test run through the ingestion pipeline:
51
+ * 1. POST /api/v1/runs — create a run
52
+ * 2. PATCH /api/v1/runs/:id — complete the run
53
+ * Returns success if both succeed.
54
+ */
55
+ async function sendTestRun(url, token) {
78
56
  try {
79
- const resp = await fetch(`${url}/api/gateway/actions`, {
57
+ // 1. Create run
58
+ const createResp = await fetch(`${url}/api/v1/runs`, {
80
59
  method: 'POST',
81
60
  headers: {
82
61
  'X-Integration-Token': token,
83
62
  'Content-Type': 'application/json',
84
63
  },
85
64
  body: JSON.stringify({
86
- tool: 'email.send_bulk',
87
- parameters: { to: ['test@example.com'], subject: 'Test', body: 'Test' },
88
- request_id: `dry_cli_${Date.now()}`,
89
- dry_run: true,
65
+ trigger_type: 'api',
66
+ input: 'ARKNA CLI test event verifying ingestion pipeline',
67
+ metadata: { source: 'arkna-cli', event: 'init-test' },
90
68
  }),
91
69
  });
92
- if (resp.ok) {
93
- const data = await resp.json();
94
- const decision = data.decision || 'OK';
95
- const evidenceId = data.evidence_id || data.request_id || data.id;
96
- if (evidenceId) {
97
- return { name: 'Policy pipeline', passed: true, detail: `${decision} · evidence: ${String(evidenceId).substring(0, 12)}…` };
98
- }
99
- return { name: 'Policy pipeline', passed: true, detail: decision };
100
- }
101
- // 400 = token valid but agent not registered yet — expected for fresh tokens
102
- if (resp.status === 400) {
103
- return { name: 'Policy pipeline', passed: true, detail: 'ready (agent not registered yet)' };
104
- }
105
- return { name: 'Policy pipeline', passed: false, detail: `HTTP ${resp.status}` };
106
- }
107
- catch (err) {
108
- return { name: 'Policy pipeline', passed: false, detail: err.message || 'Request failed' };
109
- }
110
- }
111
- async function runAllChecks(url, token) {
112
- const results = [];
113
- const spinner1 = (0, ui_1.startSpinner)('Checking gateway...');
114
- const health = await checkHealth(url);
115
- spinner1.stop();
116
- results.push(health);
117
- (0, ui_1.resultLine)(health.passed, health.name, health.detail);
118
- if (!health.passed) {
119
- return results;
120
- }
121
- const spinner2 = (0, ui_1.startSpinner)('Validating token...');
122
- const tokenCheck = await checkToken(url, token);
123
- spinner2.stop();
124
- results.push(tokenCheck);
125
- (0, ui_1.resultLine)(tokenCheck.passed, tokenCheck.name, tokenCheck.detail);
126
- if (!tokenCheck.passed) {
127
- return results;
128
- }
129
- const spinner3 = (0, ui_1.startSpinner)('Testing policy pipeline...');
130
- const dryRun = await checkDryRun(url, token);
131
- spinner3.stop();
132
- results.push(dryRun);
133
- (0, ui_1.resultLine)(dryRun.passed, dryRun.name, dryRun.detail);
134
- return results;
135
- }
136
- async function registerAgent(url, token, name, platform, replyUrl) {
137
- try {
138
- const body = { name, platform };
139
- if (replyUrl)
140
- body.reply_url = replyUrl;
141
- const resp = await fetch(`${url}/api/gateway/register`, {
142
- method: 'POST',
70
+ if (!createResp.ok) {
71
+ const errBody = await createResp.json().catch(() => ({}));
72
+ const errMsg = errBody.error || `HTTP ${createResp.status}`;
73
+ return { name: 'Test ingestion', passed: false, detail: `Failed to create run: ${errMsg}` };
74
+ }
75
+ const createData = await createResp.json();
76
+ const runId = (createData.run_id || createData.id);
77
+ if (!runId) {
78
+ return { name: 'Test ingestion', passed: false, detail: 'No run ID returned' };
79
+ }
80
+ // 2. Complete run
81
+ const patchResp = await fetch(`${url}/api/v1/runs/${runId}`, {
82
+ method: 'PATCH',
143
83
  headers: {
144
84
  'X-Integration-Token': token,
145
85
  'Content-Type': 'application/json',
146
86
  },
147
- body: JSON.stringify(body),
148
- });
149
- const data = await resp.json();
150
- if (resp.ok) {
151
- return { success: true, agent: data.agent };
152
- }
153
- const errMsg = data.error || `HTTP ${resp.status}`;
154
- // Ensure token is never leaked in error messages
155
- return { success: false, error: errMsg.replace(/intk_[a-f0-9]+/gi, (m) => (0, ui_1.maskToken)(m)) };
156
- }
157
- catch (err) {
158
- const errMsg = err.message || 'Connection failed';
159
- return { success: false, error: errMsg.replace(/intk_[a-f0-9]+/gi, (m) => (0, ui_1.maskToken)(m)) };
160
- }
161
- }
162
- async function pullConfig(url, token) {
163
- try {
164
- const resp = await fetch(`${url}/api/gateway/config`, {
165
- headers: { 'X-Integration-Token': token },
166
- });
167
- if (resp.ok) {
168
- const data = await resp.json();
169
- return { success: true, data };
170
- }
171
- const contentType = resp.headers.get('content-type') || '';
172
- if (contentType.includes('application/json')) {
173
- const err = await resp.json();
174
- const errMsg = err.error || `HTTP ${resp.status}`;
175
- return { success: false, error: errMsg.replace(/intk_[a-f0-9]+/gi, (m) => (0, ui_1.maskToken)(m)) };
176
- }
177
- return { success: false, error: `HTTP ${resp.status} (${resp.statusText})` };
178
- }
179
- catch (err) {
180
- const errMsg = err.message || 'Connection failed';
181
- return { success: false, error: errMsg.replace(/intk_[a-f0-9]+/gi, (m) => (0, ui_1.maskToken)(m)) };
182
- }
183
- }
184
- async function pushManifest(url, token, manifest) {
185
- try {
186
- const resp = await fetch(`${url}/api/gateway/manifest`, {
187
- method: 'POST',
188
- headers: {
189
- 'X-Integration-Token': token,
190
- 'Content-Type': 'application/json',
191
- },
192
- body: JSON.stringify(manifest),
193
- });
194
- if (resp.ok) {
195
- const data = await resp.json();
196
- return {
197
- success: true,
198
- agentId: data.agent_id,
199
- pushedAt: data.manifest_pushed_at,
200
- };
201
- }
202
- const contentType = resp.headers.get('content-type') || '';
203
- if (contentType.includes('application/json')) {
204
- const err = await resp.json();
205
- const errMsg = err.error || `HTTP ${resp.status}`;
206
- return { success: false, error: errMsg.replace(/intk_[a-f0-9]+/gi, (m) => (0, ui_1.maskToken)(m)) };
207
- }
208
- return { success: false, error: `HTTP ${resp.status} (${resp.statusText})` };
209
- }
210
- catch (err) {
211
- const errMsg = err.message || 'Connection failed';
212
- return { success: false, error: errMsg.replace(/intk_[a-f0-9]+/gi, (m) => (0, ui_1.maskToken)(m)) };
213
- }
214
- }
215
- async function pullGovernance(url, token) {
216
- try {
217
- const resp = await fetch(`${url}/api/gateway/governance`, {
218
- headers: { 'X-Integration-Token': token },
219
- });
220
- if (resp.ok) {
221
- const data = await resp.json();
222
- return { success: true, data };
223
- }
224
- const contentType = resp.headers.get('content-type') || '';
225
- if (contentType.includes('application/json')) {
226
- const err = await resp.json();
227
- const errMsg = err.error || `HTTP ${resp.status}`;
228
- return { success: false, error: errMsg.replace(/intk_[a-f0-9]+/gi, (m) => (0, ui_1.maskToken)(m)) };
229
- }
230
- return { success: false, error: `HTTP ${resp.status} (${resp.statusText})` };
231
- }
232
- catch (err) {
233
- const errMsg = err.message || 'Connection failed';
234
- return { success: false, error: errMsg.replace(/intk_[a-f0-9]+/gi, (m) => (0, ui_1.maskToken)(m)) };
235
- }
236
- }
237
- async function checkConfigPull(url, token) {
238
- try {
239
- const resp = await fetch(`${url}/api/gateway/config`, {
240
- headers: { 'X-Integration-Token': token },
241
- });
242
- if (resp.ok) {
243
- const data = await resp.json();
244
- return { name: 'Config pull', passed: true, detail: `version ${data.config_version || '?'}` };
245
- }
246
- if (resp.status === 400) {
247
- return { name: 'Config pull', passed: true, detail: 'ready (agent not registered yet)' };
248
- }
249
- return { name: 'Config pull', passed: false, detail: `HTTP ${resp.status}` };
250
- }
251
- catch (err) {
252
- return { name: 'Config pull', passed: false, detail: err.message || 'Request failed' };
253
- }
254
- }
255
- /**
256
- * Login as admin via email + password → JWT.
257
- * Used by `arkna connect` to auto-provision integration tokens.
258
- */
259
- async function adminLogin(url, email, password) {
260
- try {
261
- const resp = await fetch(`${url}/api/auth/login`, {
262
- method: 'POST',
263
- headers: { 'Content-Type': 'application/json' },
264
- body: JSON.stringify({ email, password }),
265
- });
266
- const data = await resp.json();
267
- if (resp.ok && data.token) {
268
- const user = data.user;
269
- return {
270
- success: true,
271
- session: {
272
- jwt: data.token,
273
- user: {
274
- email: user.email,
275
- role: user.role,
276
- firstName: user.firstName,
277
- lastName: user.lastName,
278
- },
279
- },
280
- };
281
- }
282
- return { success: false, error: data.error || `HTTP ${resp.status}` };
283
- }
284
- catch (err) {
285
- return { success: false, error: err.message || 'Connection failed' };
286
- }
287
- }
288
- /**
289
- * Create an integration token via the admin API.
290
- * Returns the plaintext token (only available at creation time).
291
- */
292
- async function provisionToken(url, jwt, agentName) {
293
- try {
294
- const resp = await fetch(`${url}/api/admin/integration-tokens`, {
295
- method: 'POST',
296
- headers: {
297
- 'Content-Type': 'application/json',
298
- 'Authorization': `Bearer ${jwt}`,
299
- },
300
87
  body: JSON.stringify({
301
- name: `${agentName} (via CLI)`,
302
- scopes: ['agent:register', 'agent:heartbeat', 'agent:actions', 'agent:tools', 'agent:config', 'agent:messages'],
88
+ status: 'completed',
89
+ output: 'CLI init test pipeline verified',
303
90
  }),
304
91
  });
305
- const data = await resp.json();
306
- if (resp.ok && data.token) {
307
- return {
308
- success: true,
309
- token: data.token,
310
- tokenId: data.id,
311
- };
92
+ if (!patchResp.ok) {
93
+ // Run was created but couldn't be completed — still partially working
94
+ return { name: 'Test ingestion', passed: true, detail: `Run ${runId.substring(0, 8)}... created (completion returned ${patchResp.status})`, runId };
312
95
  }
313
- return { success: false, error: data.error || `HTTP ${resp.status}` };
96
+ return { name: 'Test ingestion', passed: true, detail: `Run recorded`, runId };
314
97
  }
315
98
  catch (err) {
316
- return { success: false, error: err.message || 'Connection failed' };
99
+ return { name: 'Test ingestion', passed: false, detail: err.message || 'Request failed' };
317
100
  }
318
101
  }
102
+ // ── Summary ─────────────────────────────────────────────────────────────────
319
103
  function printSummary(results) {
320
104
  const allPassed = results.every(r => r.passed);
321
105
  const passed = results.filter(r => r.passed).length;
@@ -1 +1 @@
1
- {"version":3,"file":"connectivity.js","sourceRoot":"","sources":["../../src/lib/connectivity.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"connectivity.js","sourceRoot":"","sources":["../../src/lib/connectivity.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ export type Runtime = 'node' | 'python' | 'unknown';
2
+ export type LlmSdk = 'openai' | 'anthropic' | 'langchain' | 'vercel-ai' | 'crewai' | 'unknown';
3
+ export type PackageManager = 'npm' | 'yarn' | 'pnpm' | 'pip' | 'poetry' | 'uv' | 'unknown';
4
+ export interface ProjectInfo {
5
+ runtime: Runtime;
6
+ llmSdk: LlmSdk;
7
+ packageManager: PackageManager;
8
+ entryFile: string | null;
9
+ sdkInstalled: boolean;
10
+ }
11
+ export declare function getInitSnippet(runtime: Runtime): {
12
+ importLine: string;
13
+ initLine: string;
14
+ };
15
+ /**
16
+ * Get the require-style snippet for CommonJS Node.js projects.
17
+ */
18
+ export declare function getRequireSnippet(): {
19
+ importLine: string;
20
+ initLine: string;
21
+ };
22
+ export declare function getInstallCommand(pm: PackageManager): string;
23
+ export declare function runtimeLabel(runtime: Runtime): string;
24
+ export declare function sdkLabel(sdk: LlmSdk): string;
25
+ export declare function detectProject(dir?: string): ProjectInfo;
26
+ /**
27
+ * Check if the entry file uses CommonJS (require) or ES modules (import).
28
+ */
29
+ export declare function isCommonJS(dir: string, entryFile: string): boolean;
30
+ /**
31
+ * Find the injection point — line number after the last import/require.
32
+ * Returns 0-indexed line number to insert after.
33
+ */
34
+ export declare function findInjectionPoint(content: string, runtime: Runtime): number;
35
+ //# sourceMappingURL=detect.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"detect.d.ts","sourceRoot":"","sources":["../../src/lib/detect.ts"],"names":[],"mappings":"AAKA,MAAM,MAAM,OAAO,GAAG,MAAM,GAAG,QAAQ,GAAG,SAAS,CAAC;AAEpD,MAAM,MAAM,MAAM,GACd,QAAQ,GACR,WAAW,GACX,WAAW,GACX,WAAW,GACX,QAAQ,GACR,SAAS,CAAC;AAEd,MAAM,MAAM,cAAc,GAAG,KAAK,GAAG,MAAM,GAAG,MAAM,GAAG,KAAK,GAAG,QAAQ,GAAG,IAAI,GAAG,SAAS,CAAC;AAE3F,MAAM,WAAW,WAAW;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,cAAc,CAAC;IAC/B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,YAAY,EAAE,OAAO,CAAC;CACvB;AA0KD,wBAAgB,cAAc,CAAC,OAAO,EAAE,OAAO,GAAG;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAYzF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,IAAI;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAK5E;AAID,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,cAAc,GAAG,MAAM,CAU5D;AAID,wBAAgB,YAAY,CAAC,OAAO,EAAE,OAAO,GAAG,MAAM,CAMrD;AAED,wBAAgB,QAAQ,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAS5C;AAID,wBAAgB,aAAa,CAAC,GAAG,CAAC,EAAE,MAAM,GAAG,WAAW,CAQvD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAqBlE;AAED;;;GAGG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAwB5E"}