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
@@ -1,582 +0,0 @@
1
- "use strict";
2
- var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
- if (k2 === undefined) k2 = k;
4
- var desc = Object.getOwnPropertyDescriptor(m, k);
5
- if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
- desc = { enumerable: true, get: function() { return m[k]; } };
7
- }
8
- Object.defineProperty(o, k2, desc);
9
- }) : (function(o, m, k, k2) {
10
- if (k2 === undefined) k2 = k;
11
- o[k2] = m[k];
12
- }));
13
- var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
- Object.defineProperty(o, "default", { enumerable: true, value: v });
15
- }) : function(o, v) {
16
- o["default"] = v;
17
- });
18
- var __importStar = (this && this.__importStar) || (function () {
19
- var ownKeys = function(o) {
20
- ownKeys = Object.getOwnPropertyNames || function (o) {
21
- var ar = [];
22
- for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
- return ar;
24
- };
25
- return ownKeys(o);
26
- };
27
- return function (mod) {
28
- if (mod && mod.__esModule) return mod;
29
- var result = {};
30
- if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
- __setModuleDefault(result, mod);
32
- return result;
33
- };
34
- })();
35
- var __importDefault = (this && this.__importDefault) || function (mod) {
36
- return (mod && mod.__esModule) ? mod : { "default": mod };
37
- };
38
- Object.defineProperty(exports, "__esModule", { value: true });
39
- exports.connectCommand = void 0;
40
- const commander_1 = require("commander");
41
- const inquirer_1 = __importDefault(require("inquirer"));
42
- const fs = __importStar(require("fs"));
43
- const path = __importStar(require("path"));
44
- const ui_1 = require("../lib/ui");
45
- const arkna_dir_1 = require("../lib/arkna-dir");
46
- const verify_1 = require("../lib/verify");
47
- const connectivity_1 = require("../lib/connectivity");
48
- const platforms_1 = require("../lib/platforms");
49
- const VALID_PLATFORMS = ['openclaw', 'crewai', 'langchain', 'custom'];
50
- // ── Admin session cache (login once, reuse for all agents) ──────────────────
51
- let cachedJwt = null;
52
- async function ensureAdminSession(url) {
53
- if (cachedJwt)
54
- return cachedJwt;
55
- console.log(`\n ${(0, ui_1.dim)('Login to ARKNA to auto-create integration tokens.')}`);
56
- const { email } = await inquirer_1.default.prompt([{
57
- type: 'input',
58
- name: 'email',
59
- message: (0, ui_1.dim)(' Email:'),
60
- prefix: '',
61
- validate: (v) => v.includes('@') || 'Enter a valid email',
62
- }]);
63
- const { password } = await inquirer_1.default.prompt([{
64
- type: 'password',
65
- name: 'password',
66
- message: (0, ui_1.dim)(' Password:'),
67
- mask: '\u25CF',
68
- prefix: '',
69
- validate: (v) => v.length > 0 || 'Password is required',
70
- }]);
71
- const s = (0, ui_1.startSpinner)('Authenticating...');
72
- const result = await (0, connectivity_1.adminLogin)(url, email, password);
73
- s.stop();
74
- if (!result.success || !result.session) {
75
- console.log(` ${(0, ui_1.warn)('\u2718')} Login failed: ${(0, ui_1.dim)(result.error || 'unknown error')}`);
76
- return null;
77
- }
78
- if (result.session.user.role !== 'Admin') {
79
- console.log(` ${(0, ui_1.warn)('\u2718')} ${(0, ui_1.dim)('Account is not an Admin. Token creation requires Admin role.')}`);
80
- return null;
81
- }
82
- console.log(` ${(0, ui_1.brand)('\u2714')} Logged in as ${result.session.user.email}`);
83
- cachedJwt = result.session.jwt;
84
- return cachedJwt;
85
- }
86
- // ── Token resolution ────────────────────────────────────────────────────────
87
- /**
88
- * Resolve token for an agent. Priority:
89
- * 1. ARKNA_TOKEN env var
90
- * 2. .arkna/.env file in the agent's directory
91
- * 3. -t flag
92
- * 4. Auto-create via admin API (login once, reuse session)
93
- * 5. Manual paste fallback
94
- */
95
- async function resolveToken(url, agentName, flagToken, baseDir) {
96
- // 1. Env var
97
- if (process.env.ARKNA_TOKEN) {
98
- console.log(` ${(0, ui_1.dim)('Token:')} from ARKNA_TOKEN env var`);
99
- return process.env.ARKNA_TOKEN;
100
- }
101
- // 2. .arkna/.env
102
- const envCreds = (0, arkna_dir_1.readArknaEnv)(baseDir);
103
- if (envCreds?.token) {
104
- console.log(` ${(0, ui_1.dim)('Token:')} from .arkna/.env`);
105
- return envCreds.token;
106
- }
107
- // 3. -t flag (warn about shell history)
108
- if (flagToken) {
109
- console.log(` ${(0, ui_1.warn)('\u26A0')} ${(0, ui_1.dim)('Token passed via -t flag (visible in shell history)')}`);
110
- return flagToken;
111
- }
112
- // 4. Offer auto-create vs manual paste
113
- const { method } = await inquirer_1.default.prompt([{
114
- type: 'list',
115
- name: 'method',
116
- message: 'No token found. How to authenticate?',
117
- choices: [
118
- { name: `Login to ARKNA ${(0, ui_1.dim)('(auto-create token)')}`, value: 'login' },
119
- { name: `Paste token manually`, value: 'paste' },
120
- ],
121
- }]);
122
- if (method === 'login') {
123
- const jwt = await ensureAdminSession(url);
124
- if (jwt) {
125
- const s = (0, ui_1.startSpinner)(`Creating token for ${agentName}...`);
126
- const result = await (0, connectivity_1.provisionToken)(url, jwt, agentName);
127
- s.stop();
128
- if (result.success && result.token) {
129
- console.log(` ${(0, ui_1.brand)('\u2714')} Token created ${(0, ui_1.dim)(`(${(0, ui_1.maskToken)(result.token)})`)}`);
130
- return result.token;
131
- }
132
- console.log(` ${(0, ui_1.warn)('\u2718')} Failed to create token: ${(0, ui_1.dim)(result.error || 'unknown')}`);
133
- console.log(` ${(0, ui_1.dim)('Falling back to manual paste...')}`);
134
- }
135
- }
136
- // 5. Manual paste fallback
137
- console.log(` ${(0, ui_1.dim)('Paste your token from Settings > External Agents:')}`);
138
- const { token } = await inquirer_1.default.prompt([{
139
- type: 'password',
140
- name: 'token',
141
- message: (0, ui_1.brand)(' Token:'),
142
- mask: '\u25CF',
143
- prefix: '',
144
- validate: (input) => {
145
- if (!input || !input.startsWith('intk_')) {
146
- return 'Token must start with intk_';
147
- }
148
- return true;
149
- },
150
- }]);
151
- return token;
152
- }
153
- /**
154
- * Resolve URL from (in priority order):
155
- * 1. -u flag
156
- * 2. ARKNA_URL env var
157
- * 3. .arkna/.env file
158
- * 4. Default
159
- */
160
- function resolveUrl(flagUrl, baseDir) {
161
- if (flagUrl)
162
- return flagUrl;
163
- if (process.env.ARKNA_URL)
164
- return process.env.ARKNA_URL;
165
- const envCreds = (0, arkna_dir_1.readArknaEnv)(baseDir);
166
- if (envCreds?.url)
167
- return envCreds.url;
168
- return 'https://api.arkna.com.au';
169
- }
170
- async function connectSingleAgent(platform, agentDir, configFile, agentName, url, token, stepOffset, replyUrl) {
171
- // ── Wire Agent ──────────────────────────────────────────────────────────
172
- (0, ui_1.step)(stepOffset.wire, stepOffset.total, `Wire Agent${stepOffset.total > 4 ? ` \u2014 ${agentName}` : ''}`);
173
- let patchText;
174
- switch (platform) {
175
- case 'openclaw': {
176
- if (configFile) {
177
- const spinner = (0, ui_1.startSpinner)('Modifying OpenClaw config...');
178
- const result = (0, platforms_1.wireOpenClaw)(configFile, url, agentName);
179
- spinner.stop();
180
- if (!result.success) {
181
- (0, ui_1.errorBox)('Failed to modify config', [result.error || 'Unknown error']);
182
- return { name: agentName, platform, ok: false };
183
- }
184
- if (result.alreadyConfigured) {
185
- console.log(` ${(0, ui_1.brand)('\u2714')} connectors.arkna already exists ${(0, ui_1.dim)('\u2014 skipping.')}`);
186
- }
187
- else {
188
- console.log(` ${(0, ui_1.brand)('\u2714')} Patched ${path.basename(configFile)} with ARKNA connector`);
189
- console.log(` ${(0, ui_1.dim)('Backup saved to ' + configFile + '.bak')}`);
190
- }
191
- }
192
- else {
193
- console.log(` ${(0, ui_1.dim)('No OpenClaw config YAML found. Add this to your config:')}\n`);
194
- console.log((0, ui_1.dim)((0, platforms_1.getOpenClawYamlBlock)(agentName)));
195
- patchText = 'Add the YAML block above to your OpenClaw config file.';
196
- }
197
- break;
198
- }
199
- case 'crewai': {
200
- const wrapperPath = path.join(agentDir, 'arkna_gateway.py');
201
- if (existsAndNotEmpty(wrapperPath)) {
202
- console.log(` ${(0, ui_1.brand)('\u2714')} arkna_gateway.py already exists ${(0, ui_1.dim)('\u2014 skipping.')}`);
203
- }
204
- else {
205
- const spinner = (0, ui_1.startSpinner)('Generating CrewAI wrapper...');
206
- const result = (0, platforms_1.wireCrewAI)(agentDir, agentName);
207
- spinner.stop();
208
- if (!result.success) {
209
- (0, ui_1.errorBox)('Failed to generate wrapper', [result.error || 'Unknown error']);
210
- return { name: agentName, platform, ok: false };
211
- }
212
- patchText = result.patch;
213
- console.log(` ${(0, ui_1.brand)('\u2714')} Created ${result.wrapperPath}`);
214
- }
215
- break;
216
- }
217
- case 'langchain': {
218
- const wrapperPath = path.join(agentDir, 'arkna_tool.py');
219
- if (existsAndNotEmpty(wrapperPath)) {
220
- console.log(` ${(0, ui_1.brand)('\u2714')} arkna_tool.py already exists ${(0, ui_1.dim)('\u2014 skipping.')}`);
221
- }
222
- else {
223
- const spinner = (0, ui_1.startSpinner)('Generating LangChain wrapper...');
224
- const result = (0, platforms_1.wireLangChain)(agentDir, agentName);
225
- spinner.stop();
226
- if (!result.success) {
227
- (0, ui_1.errorBox)('Failed to generate wrapper', [result.error || 'Unknown error']);
228
- return { name: agentName, platform, ok: false };
229
- }
230
- patchText = result.patch;
231
- console.log(` ${(0, ui_1.brand)('\u2714')} Created ${result.wrapperPath}`);
232
- }
233
- break;
234
- }
235
- case 'custom': {
236
- patchText = (0, platforms_1.getCustomPatch)(agentName);
237
- console.log(` ${(0, ui_1.dim)('Add these API calls to your agent:')}\n`);
238
- console.log((0, ui_1.dim)(patchText));
239
- break;
240
- }
241
- }
242
- // ── Register + Pull Config + Verify ──────────────────────────────────────
243
- (0, ui_1.step)(stepOffset.verify, stepOffset.total, `Register & Verify${stepOffset.total > 4 ? ` \u2014 ${agentName}` : ''}`);
244
- let activeToken = token;
245
- // If env var token failed, try .arkna/.env token
246
- {
247
- const { gatewayOk: gOk, tokenOk: tOk } = await (0, verify_1.verifyGateway)(url, activeToken);
248
- if (gOk && !tOk && process.env.ARKNA_TOKEN) {
249
- const fileEnv = (0, arkna_dir_1.readArknaEnv)(agentDir);
250
- if (fileEnv?.token && fileEnv.token !== activeToken) {
251
- console.log(` ${(0, ui_1.warn)('\u26A0')} ${(0, ui_1.dim)('Env var token rejected. Trying token from .arkna/.env...')}`);
252
- const retry = await (0, verify_1.verifyGateway)(url, fileEnv.token);
253
- if (retry.tokenOk) {
254
- activeToken = fileEnv.token;
255
- }
256
- }
257
- }
258
- if (!gOk) {
259
- (0, ui_1.errorBox)('Gateway unreachable', [(0, ui_1.dim)(`Could not reach ${url}`)]);
260
- return { name: agentName, platform, ok: false };
261
- }
262
- }
263
- // Register agent with ARKNA gateway
264
- const regSpinner = (0, ui_1.startSpinner)('Registering agent with ARKNA...');
265
- const regResult = await (0, connectivity_1.registerAgent)(url, activeToken, agentName, platform, replyUrl);
266
- regSpinner.stop();
267
- if (regResult.success) {
268
- console.log(` ${(0, ui_1.brand)('\u2714')} Agent registered ${(0, ui_1.dim)(`(${regResult.agent?.id?.substring(0, 8) || 'ok'}...)`)}`);
269
- }
270
- else {
271
- // "already registered" is fine — it means connect was run before
272
- if (regResult.error?.toLowerCase().includes('already')) {
273
- console.log(` ${(0, ui_1.brand)('\u2714')} Agent already registered`);
274
- }
275
- else {
276
- console.log(` ${(0, ui_1.warn)('\u26A0')} Registration: ${(0, ui_1.dim)(regResult.error || 'failed')} ${(0, ui_1.dim)('(continuing...)')}`);
277
- }
278
- }
279
- // Pull full policy envelope from gateway
280
- const cfgSpinner = (0, ui_1.startSpinner)('Pulling policy envelope...');
281
- const cfgResult = await (0, connectivity_1.pullConfig)(url, activeToken);
282
- cfgSpinner.stop();
283
- let files;
284
- if (cfgResult.success && cfgResult.data) {
285
- console.log(` ${(0, ui_1.brand)('\u2714')} Policy envelope pulled ${(0, ui_1.dim)(`(version ${cfgResult.data.config_version || '?'})`)}`);
286
- // Write full .arkna/ directory (config.json, tools.json, policy.json, .env, .gitignore)
287
- files = (0, arkna_dir_1.writeArknaDir)(cfgResult.data, url, activeToken, platform, agentDir);
288
- }
289
- else {
290
- console.log(` ${(0, ui_1.warn)('\u26A0')} Config pull: ${(0, ui_1.dim)(cfgResult.error || 'failed')} ${(0, ui_1.dim)('(saving credentials only)')}`);
291
- // Fallback: save just credentials
292
- files = (0, arkna_dir_1.writeTokenEnv)(url, activeToken, agentDir);
293
- }
294
- // Verify final state
295
- const { gatewayOk, tokenOk } = await (0, verify_1.verifyGateway)(url, activeToken);
296
- console.log(` ${gatewayOk ? (0, ui_1.brand)('\u2714') : (0, ui_1.warn)('\u2718')} Gateway reachable`);
297
- console.log(` ${tokenOk ? (0, ui_1.brand)('\u2714') : (0, ui_1.warn)('\u2718')} Token valid`);
298
- (0, ui_1.fileTree)(`${path.basename(agentDir)}/.arkna`, files);
299
- // Show patch text for single-agent flow
300
- if (patchText && platform !== 'custom' && platform !== 'openclaw' && stepOffset.total <= 4) {
301
- (0, ui_1.hint)([
302
- `${(0, ui_1.brandBold)('NEXT:')} Add these lines to your agent:`,
303
- '',
304
- ...patchText.split('\n').map(l => ` ${(0, ui_1.dim)(l)}`),
305
- ]);
306
- }
307
- return { name: agentName, platform, ok: gatewayOk && tokenOk };
308
- }
309
- // ── Command ─────────────────────────────────────────────────────────────────
310
- exports.connectCommand = new commander_1.Command('connect')
311
- .description('Wire an agent to route through the ARKNA governance gateway')
312
- .argument('[platform]', `Agent platform (${VALID_PLATFORMS.join(', ')}) \u2014 auto-detected if omitted`)
313
- .option('-t, --token <token>', 'Integration token (prefer ARKNA_TOKEN env var instead)')
314
- .option('-u, --url <url>', 'ARKNA gateway URL (or set ARKNA_URL env var)')
315
- .option('-n, --name <name>', 'Agent name (defaults to directory name)')
316
- .option('-c, --config <path>', 'Path to agent config file (OpenClaw: YAML to modify)')
317
- .option('-d, --dir <dir>', 'Output dir for wrapper files (CrewAI/LangChain)')
318
- .option('--reply-url <url>', 'URL where ARKNA sends visitor messages (enables push delivery)')
319
- .action(async (platformArg, options) => {
320
- (0, ui_1.banner)();
321
- const workDir = options.dir || process.cwd();
322
- // ── Step 1: Detect Agent(s) ─────────────────────────────────────────────
323
- (0, ui_1.step)(1, 4, 'Detect Agent');
324
- // Check for multi-agent project (only when no platform/config explicitly given)
325
- if (!platformArg && !options.config) {
326
- const agents = (0, platforms_1.detectAgents)(workDir);
327
- if (agents.length > 1) {
328
- // ── Multi-agent flow ──────────────────────────────────────────────
329
- console.log(` Found ${(0, ui_1.brand)(String(agents.length))} agents:\n`);
330
- for (const a of agents) {
331
- console.log(` ${(0, ui_1.brand)('\u2022')} ${a.name} ${(0, ui_1.dim)(`(${a.platform} \u2014 ${a.evidence})`)}`);
332
- }
333
- console.log('');
334
- const { selected } = await inquirer_1.default.prompt([{
335
- type: 'checkbox',
336
- name: 'selected',
337
- message: 'Select agents to connect:',
338
- choices: agents.map(a => ({
339
- name: `${a.name} ${(0, ui_1.dim)(`(${a.platform})`)}`,
340
- value: a.name,
341
- checked: true,
342
- })),
343
- validate: (input) => input.length > 0 || 'Select at least one agent',
344
- }]);
345
- const selectedAgents = agents.filter(a => selected.includes(a.name));
346
- console.log(`\n Connecting ${(0, ui_1.brand)(String(selectedAgents.length))} agent${selectedAgents.length > 1 ? 's' : ''}...`);
347
- const url = resolveUrl(options.url, workDir);
348
- if (!url.startsWith('http://') && !url.startsWith('https://')) {
349
- (0, ui_1.errorBox)('Invalid gateway URL', [`Got: ${url}`, (0, ui_1.dim)('URL must start with http:// or https://')]);
350
- process.exit(1);
351
- }
352
- // ── Resolve tokens ──────────────────────────────────────────────
353
- // Check which agents already have valid tokens
354
- (0, ui_1.step)(2, 4, 'Credentials');
355
- const resolved = [];
356
- const needsToken = [];
357
- for (const agent of selectedAgents) {
358
- const existing = (0, arkna_dir_1.readArknaEnv)(agent.path);
359
- if (existing?.token && !process.env.ARKNA_TOKEN) {
360
- const s = (0, ui_1.startSpinner)(`Checking ${agent.name}...`);
361
- const { tokenOk } = await (0, verify_1.verifyGateway)(existing.url || url, existing.token);
362
- s.stop();
363
- if (tokenOk) {
364
- console.log(` ${(0, ui_1.brand)('\u2714')} ${agent.name}: saved token valid`);
365
- resolved.push({ agent, token: existing.token });
366
- continue;
367
- }
368
- }
369
- needsToken.push(agent);
370
- }
371
- // Auto-provision tokens for agents that need them
372
- if (needsToken.length > 0) {
373
- console.log(`\n ${needsToken.length} agent${needsToken.length > 1 ? 's' : ''} need${needsToken.length === 1 ? 's' : ''} a new token.`);
374
- const jwt = await ensureAdminSession(url);
375
- if (jwt) {
376
- for (const agent of needsToken) {
377
- const s = (0, ui_1.startSpinner)(`Creating token for ${agent.name}...`);
378
- const result = await (0, connectivity_1.provisionToken)(url, jwt, agent.name);
379
- s.stop();
380
- if (result.success && result.token) {
381
- console.log(` ${(0, ui_1.brand)('\u2714')} ${agent.name}: token created ${(0, ui_1.dim)(`(${(0, ui_1.maskToken)(result.token)})`)}`);
382
- resolved.push({ agent, token: result.token });
383
- }
384
- else {
385
- console.log(` ${(0, ui_1.warn)('\u2718')} ${agent.name}: ${(0, ui_1.dim)(result.error || 'failed')}`);
386
- }
387
- }
388
- }
389
- else {
390
- // Login failed — fall back to manual paste per agent
391
- console.log(` ${(0, ui_1.dim)('Falling back to manual token entry...')}\n`);
392
- for (const agent of needsToken) {
393
- console.log(` ${(0, ui_1.dim)(`Paste token for ${(0, ui_1.brand)(agent.name)}:`)}`);
394
- const { token } = await inquirer_1.default.prompt([{
395
- type: 'password',
396
- name: 'token',
397
- message: (0, ui_1.brand)(` ${agent.name}:`),
398
- mask: '\u25CF',
399
- prefix: '',
400
- validate: (v) => v.startsWith('intk_') || 'Token must start with intk_',
401
- }]);
402
- resolved.push({ agent, token });
403
- }
404
- }
405
- }
406
- // ── Wire + Verify each agent ────────────────────────────────────
407
- const results = [];
408
- for (let i = 0; i < resolved.length; i++) {
409
- const { agent, token } = resolved[i];
410
- (0, ui_1.divider)();
411
- console.log(`\n ${(0, ui_1.brandBold)(`\u25B6 ${agent.name}`)} ${(0, ui_1.dim)(`(${i + 1}/${resolved.length})`)}`);
412
- let configFile = agent.configFile;
413
- if (agent.platform === 'openclaw' && !configFile) {
414
- configFile = (0, platforms_1.findOpenClawConfig)(agent.path) ?? undefined;
415
- }
416
- const result = await connectSingleAgent(agent.platform, agent.path, configFile, agent.name, url, token, { wire: 3, verify: 4, total: 4 });
417
- results.push(result);
418
- }
419
- // ── Multi-agent summary ──────────────────────────────────────────
420
- (0, ui_1.divider)();
421
- const okCount = results.filter(r => r.ok).length;
422
- const failCount = results.filter(r => !r.ok).length;
423
- const skippedCount = selectedAgents.length - resolved.length;
424
- if (failCount === 0 && skippedCount === 0) {
425
- (0, ui_1.successBox)(`${okCount} of ${selectedAgents.length} agents connected`, results.map(r => ` ${(0, ui_1.brand)('\u2714')} ${r.name} ${(0, ui_1.dim)(`(${r.platform})`)}`));
426
- }
427
- else {
428
- console.log('');
429
- for (const r of results) {
430
- const icon = r.ok ? (0, ui_1.brand)('\u2714') : (0, ui_1.warn)('\u2718');
431
- console.log(` ${icon} ${r.name} ${(0, ui_1.dim)(`(${r.platform})`)}`);
432
- }
433
- if (skippedCount > 0) {
434
- console.log(` ${(0, ui_1.warn)('\u2718')} ${skippedCount} agent${skippedCount > 1 ? 's' : ''} skipped (no token)`);
435
- }
436
- if (okCount > 0) {
437
- console.log(`\n ${(0, ui_1.brand)(String(okCount))} connected, ${(0, ui_1.warn)(String(failCount + skippedCount))} failed`);
438
- }
439
- }
440
- (0, ui_1.hint)([
441
- `${(0, ui_1.brandBold)('WHAT HAPPENS NEXT:')}`,
442
- ` Each agent registers itself when it starts.`,
443
- ` ${(0, ui_1.dim)('1.')} Set env vars per agent: ${(0, ui_1.brand)('source <agent-dir>/.arkna/.env')}`,
444
- ` ${(0, ui_1.dim)('2.')} Start your agents — ${(0, ui_1.brand)('enforcement is automatic')}`,
445
- ` Direct API calls to governed domains are intercepted by the SDK.`,
446
- ` ${(0, ui_1.dim)('Then:')} arkna status`,
447
- ]);
448
- return; // Done — multi-agent flow complete
449
- }
450
- }
451
- // ── Single-agent flow ───────────────────────────────────────────────────
452
- const baseDir = options.config ? path.dirname(options.config) : workDir;
453
- let platform;
454
- let configFile = options.config;
455
- if (platformArg) {
456
- if (!VALID_PLATFORMS.includes(platformArg)) {
457
- (0, ui_1.errorBox)('Invalid platform', [
458
- `Got: ${platformArg}`,
459
- (0, ui_1.dim)(`Valid platforms: ${VALID_PLATFORMS.join(', ')}`),
460
- ]);
461
- process.exit(1);
462
- }
463
- platform = platformArg;
464
- console.log(` ${(0, ui_1.brand)('\u2714')} ${platform} ${(0, ui_1.dim)('(specified)')}`);
465
- }
466
- else {
467
- const detection = (0, platforms_1.detectPlatform)(workDir);
468
- if (detection) {
469
- platform = detection.platform;
470
- console.log(` ${(0, ui_1.brand)('\u2714')} ${detection.platform} agent detected ${(0, ui_1.dim)(`(${detection.evidence})`)}`);
471
- if (detection.configFile && !configFile) {
472
- configFile = detection.configFile;
473
- }
474
- }
475
- else {
476
- const { selectedPlatform } = await inquirer_1.default.prompt([{
477
- type: 'list',
478
- name: 'selectedPlatform',
479
- message: 'What agent platform are you using?',
480
- choices: [
481
- { name: 'OpenClaw', value: 'openclaw' },
482
- { name: 'CrewAI', value: 'crewai' },
483
- { name: 'LangChain', value: 'langchain' },
484
- { name: 'Custom / Other', value: 'custom' },
485
- ],
486
- }]);
487
- platform = selectedPlatform;
488
- }
489
- }
490
- // For OpenClaw without a config file specified, try to auto-find one
491
- if (platform === 'openclaw' && !configFile) {
492
- configFile = (0, platforms_1.findOpenClawConfig)(workDir) ?? undefined;
493
- }
494
- // ── Step 2: Credentials ─────────────────────────────────────────────────
495
- (0, ui_1.step)(2, 4, 'Credentials');
496
- const url = resolveUrl(options.url, baseDir);
497
- if (!url.startsWith('http://') && !url.startsWith('https://')) {
498
- (0, ui_1.errorBox)('Invalid gateway URL', [
499
- `Got: ${url}`,
500
- (0, ui_1.dim)('URL must start with http:// or https://'),
501
- ]);
502
- process.exit(1);
503
- }
504
- const agentName = options.name || path.basename(process.cwd());
505
- // Check if existing .arkna/.env has a valid token — skip prompt if so
506
- const existingEnv = (0, arkna_dir_1.readArknaEnv)(baseDir);
507
- let skipTokenPrompt = false;
508
- if (existingEnv?.token && !options.token && !process.env.ARKNA_TOKEN) {
509
- const s = (0, ui_1.startSpinner)('Checking saved token...');
510
- const { tokenOk } = await (0, verify_1.verifyGateway)(existingEnv.url || url, existingEnv.token);
511
- s.stop();
512
- if (tokenOk) {
513
- skipTokenPrompt = true;
514
- console.log(` ${(0, ui_1.brand)('\u2714')} Saved token is valid ${(0, ui_1.dim)('(from .arkna/.env)')}`);
515
- }
516
- }
517
- const token = skipTokenPrompt
518
- ? existingEnv.token
519
- : await resolveToken(url, agentName, options.token, baseDir);
520
- if (!token.startsWith('intk_')) {
521
- (0, ui_1.errorBox)('Invalid token', [
522
- (0, ui_1.dim)('Token must start with intk_'),
523
- (0, ui_1.dim)('Create one in Settings > External Agents.'),
524
- ]);
525
- process.exit(1);
526
- }
527
- console.log(` ${(0, ui_1.brand)('\u2714')} Gateway: ${(0, ui_1.dim)(url)}`);
528
- // ── Steps 3-4: Wire + Verify ────────────────────────────────────────────
529
- const result = await connectSingleAgent(platform, workDir, configFile, agentName, url, token, { wire: 3, verify: 4, total: 4 }, options.replyUrl);
530
- // ── Summary ─────────────────────────────────────────────────────────────
531
- (0, ui_1.divider)();
532
- if (result.ok) {
533
- (0, ui_1.successBox)('CONFIGURED', [
534
- `${(0, ui_1.dim)('Agent:')} ${agentName}`,
535
- `${(0, ui_1.dim)('Platform:')} ${platform}`,
536
- `${(0, ui_1.dim)('Gateway:')} ${url}`,
537
- `${(0, ui_1.dim)('Token:')} valid`,
538
- ]);
539
- }
540
- else {
541
- const fileEnv = (0, arkna_dir_1.readArknaEnv)(baseDir);
542
- const usingEnvVar = !!process.env.ARKNA_TOKEN;
543
- const fileHasDifferentToken = fileEnv?.token && fileEnv.token !== token;
544
- if (usingEnvVar && fileHasDifferentToken) {
545
- (0, ui_1.errorBox)('Stale ARKNA_TOKEN env var', [
546
- `${(0, ui_1.dim)('The ARKNA_TOKEN env var contains an old token that the gateway rejected.')}`,
547
- `${(0, ui_1.dim)('.arkna/.env has a newer token (from arkna login).')}`,
548
- '',
549
- `${(0, ui_1.dim)('Fix:')} ${(0, ui_1.brand)('unset ARKNA_TOKEN')} ${(0, ui_1.dim)('then re-run this command.')}`,
550
- `${(0, ui_1.dim)(' or:')} ${(0, ui_1.brand)('source .arkna/.env')} ${(0, ui_1.dim)('then re-run this command.')}`,
551
- ]);
552
- }
553
- else {
554
- (0, ui_1.errorBox)('Gateway verification failed', [
555
- (0, ui_1.dim)('Check the errors above and run `arkna test` to retry.'),
556
- ]);
557
- }
558
- }
559
- // Streamlined "WHAT HAPPENS NEXT"
560
- (0, ui_1.hint)([
561
- `${(0, ui_1.brandBold)('WHAT HAPPENS NEXT:')}`,
562
- ` Agent is registered and governance enforcement is active.`,
563
- ` ${(0, ui_1.dim)('1.')} Set env vars: ${(0, ui_1.brand)('source .arkna/.env')}`,
564
- ` ${(0, ui_1.dim)('2.')} Start your agent — ${(0, ui_1.brand)('enforcement is automatic')}`,
565
- ` The SDK intercepts direct API calls to governed domains`,
566
- ` (Gmail, Slack, Calendly, etc.) and blocks them in strict mode.`,
567
- ` ${(0, ui_1.dim)('3.')} Check status: ${(0, ui_1.brand)('arkna status')}`,
568
- ``,
569
- ` ${(0, ui_1.dim)('Enforcement modes: strict (block) | advisory (warn) | transparent (log)')}`,
570
- ` ${(0, ui_1.dim)('Configure in ARKNA UI: Agents > [agent] > Governance tab')}`,
571
- ]);
572
- });
573
- function existsAndNotEmpty(filePath) {
574
- try {
575
- const stat = fs.statSync(filePath);
576
- return stat.isFile() && stat.size > 0;
577
- }
578
- catch {
579
- return false;
580
- }
581
- }
582
- //# sourceMappingURL=connect.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"connect.js","sourceRoot":"","sources":["../../src/commands/connect.ts"],"names":[],"mappings":"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"}
@@ -1,3 +0,0 @@
1
- import { Command } from 'commander';
2
- export declare const pullGovernanceCommand: Command;
3
- //# sourceMappingURL=pull-governance.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pull-governance.d.ts","sourceRoot":"","sources":["../../src/commands/pull-governance.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AASpC,eAAO,MAAM,qBAAqB,SAsF9B,CAAC"}