arkna 1.0.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.
Files changed (50) hide show
  1. package/bin/arkna.js +2 -0
  2. package/dist/commands/connect.d.ts +3 -0
  3. package/dist/commands/connect.d.ts.map +1 -0
  4. package/dist/commands/connect.js +307 -0
  5. package/dist/commands/connect.js.map +1 -0
  6. package/dist/commands/login.d.ts +3 -0
  7. package/dist/commands/login.d.ts.map +1 -0
  8. package/dist/commands/login.js +292 -0
  9. package/dist/commands/login.js.map +1 -0
  10. package/dist/commands/status.d.ts +3 -0
  11. package/dist/commands/status.d.ts.map +1 -0
  12. package/dist/commands/status.js +119 -0
  13. package/dist/commands/status.js.map +1 -0
  14. package/dist/commands/sync.d.ts +3 -0
  15. package/dist/commands/sync.d.ts.map +1 -0
  16. package/dist/commands/sync.js +65 -0
  17. package/dist/commands/sync.js.map +1 -0
  18. package/dist/commands/test.d.ts +3 -0
  19. package/dist/commands/test.d.ts.map +1 -0
  20. package/dist/commands/test.js +142 -0
  21. package/dist/commands/test.js.map +1 -0
  22. package/dist/commands/verify.d.ts +3 -0
  23. package/dist/commands/verify.d.ts.map +1 -0
  24. package/dist/commands/verify.js +139 -0
  25. package/dist/commands/verify.js.map +1 -0
  26. package/dist/index.d.ts +2 -0
  27. package/dist/index.d.ts.map +1 -0
  28. package/dist/index.js +27 -0
  29. package/dist/index.js.map +1 -0
  30. package/dist/lib/arkna-dir.d.ts +83 -0
  31. package/dist/lib/arkna-dir.d.ts.map +1 -0
  32. package/dist/lib/arkna-dir.js +184 -0
  33. package/dist/lib/arkna-dir.js.map +1 -0
  34. package/dist/lib/connectivity.d.ts +35 -0
  35. package/dist/lib/connectivity.d.ts.map +1 -0
  36. package/dist/lib/connectivity.js +208 -0
  37. package/dist/lib/connectivity.js.map +1 -0
  38. package/dist/lib/platforms.d.ts +13 -0
  39. package/dist/lib/platforms.d.ts.map +1 -0
  40. package/dist/lib/platforms.js +348 -0
  41. package/dist/lib/platforms.js.map +1 -0
  42. package/dist/lib/ui.d.ts +28 -0
  43. package/dist/lib/ui.d.ts.map +1 -0
  44. package/dist/lib/ui.js +176 -0
  45. package/dist/lib/ui.js.map +1 -0
  46. package/dist/lib/verify.d.ts +15 -0
  47. package/dist/lib/verify.d.ts.map +1 -0
  48. package/dist/lib/verify.js +33 -0
  49. package/dist/lib/verify.js.map +1 -0
  50. package/package.json +42 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,eAAO,MAAM,aAAa,SAkItB,CAAC"}
@@ -0,0 +1,119 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.statusCommand = void 0;
4
+ const commander_1 = require("commander");
5
+ const ui_1 = require("../lib/ui");
6
+ const connectivity_1 = require("../lib/connectivity");
7
+ const arkna_dir_1 = require("../lib/arkna-dir");
8
+ exports.statusCommand = new commander_1.Command('status')
9
+ .description('Check agent enrollment status')
10
+ .option('-d, --dir <dir>', 'Base directory containing .arkna/ (default: current directory)')
11
+ .action(async (options) => {
12
+ const baseDir = options.dir || process.cwd();
13
+ (0, ui_1.miniBanner)('Agent Status');
14
+ // ── Check for .arkna/.env (credentials) ──────────────────────────────
15
+ const env = (0, arkna_dir_1.readArknaEnv)(baseDir);
16
+ const config = (0, arkna_dir_1.readArknaConfig)(baseDir);
17
+ if (!env && !config) {
18
+ console.log(` ${(0, ui_1.fail)('\u2718')} ${(0, ui_1.fail)('Not configured')}`);
19
+ console.log((0, ui_1.dim)(' Run `arkna connect <platform>` to configure your agent.'));
20
+ console.log('');
21
+ process.exit(1);
22
+ }
23
+ // ── Pre-registration state: .arkna/.env exists but no config.json ────
24
+ if (env && !config) {
25
+ (0, ui_1.kvLine)('Gateway', env.url);
26
+ (0, ui_1.kvLine)('Token', 'present');
27
+ (0, ui_1.kvLine)('Agent', `${(0, ui_1.warn)('not yet registered')}`);
28
+ console.log('');
29
+ console.log(` ${(0, ui_1.dim)('Token is saved but no agent has registered with it yet.')}`);
30
+ console.log(` ${(0, ui_1.dim)('Your agent must be running and call POST /api/gateway/register on startup.')}`);
31
+ console.log(` ${(0, ui_1.dim)('Make sure you are in your')} ${(0, ui_1.brand)('agent project directory')} ${(0, ui_1.dim)('and it is started.')}`);
32
+ // Still do live checks on gateway + token
33
+ (0, ui_1.divider)();
34
+ (0, ui_1.section)('Live Status');
35
+ console.log('');
36
+ const spinner1 = (0, ui_1.startSpinner)('Checking gateway...');
37
+ const health = await (0, connectivity_1.checkHealth)(env.url);
38
+ spinner1.stop();
39
+ (0, connectivity_1.resultLine)(health.passed, health.name, health.detail);
40
+ if (health.passed) {
41
+ const spinner2 = (0, ui_1.startSpinner)('Validating token...');
42
+ const tokenCheck = await (0, connectivity_1.checkTokenValid)(env.url, env.token);
43
+ spinner2.stop();
44
+ (0, connectivity_1.resultLine)(tokenCheck.passed, tokenCheck.name, tokenCheck.detail);
45
+ if (tokenCheck.agentRegistered) {
46
+ (0, connectivity_1.resultLine)(true, 'Agent registered', 'bound to token');
47
+ console.log(` ${(0, ui_1.dim)('Run')} ${(0, ui_1.brand)('arkna verify')} ${(0, ui_1.dim)('to pull config and complete setup.')}`);
48
+ }
49
+ }
50
+ console.log('');
51
+ process.exit(0);
52
+ }
53
+ // ── Full enrollment: config.json exists ──────────────────────────────
54
+ if (config) {
55
+ (0, ui_1.kvLine)('Agent ID', config.agent_id);
56
+ (0, ui_1.kvLine)('Name', config.agent_name);
57
+ (0, ui_1.kvLine)('Platform', config.platform);
58
+ (0, ui_1.kvLine)('Gateway', config.gateway_url);
59
+ (0, ui_1.kvLine)('Config version', config.config_version);
60
+ (0, ui_1.kvLine)('Enrolled', config.enrolled_at);
61
+ (0, ui_1.kvLine)('Last synced', config.last_synced_at);
62
+ }
63
+ // ── Live checks ──────────────────────────────────────────────────────
64
+ (0, ui_1.divider)();
65
+ (0, ui_1.section)('Live Status');
66
+ console.log('');
67
+ if (!env) {
68
+ console.log(` ${(0, ui_1.fail)('\u2718')} ${(0, ui_1.fail)('Missing .arkna/.env')} ${(0, ui_1.dim)('\u2014 cannot check live status')}`);
69
+ console.log('');
70
+ process.exit(1);
71
+ }
72
+ // Health check
73
+ const spinner1 = (0, ui_1.startSpinner)('Checking gateway...');
74
+ const health = await (0, connectivity_1.checkHealth)(env.url);
75
+ spinner1.stop();
76
+ (0, connectivity_1.resultLine)(health.passed, health.name, health.detail);
77
+ if (!health.passed) {
78
+ console.log('');
79
+ process.exit(1);
80
+ }
81
+ // Config freshness
82
+ const spinner2 = (0, ui_1.startSpinner)('Checking config...');
83
+ const configResult = await (0, connectivity_1.pullConfig)(env.url, env.token);
84
+ spinner2.stop();
85
+ if (configResult.success) {
86
+ const envelope = configResult.data;
87
+ if (config) {
88
+ const isStale = envelope.config_version !== config.config_version;
89
+ if (isStale) {
90
+ (0, connectivity_1.resultLine)(false, 'Config stale', `local v${config.config_version} \u2192 remote v${envelope.config_version}`);
91
+ console.log((0, ui_1.dim)(' Run `arkna sync` to update.'));
92
+ }
93
+ else {
94
+ (0, connectivity_1.resultLine)(true, 'Config fresh', `v${config.config_version}`);
95
+ }
96
+ }
97
+ // Kill switch
98
+ if (envelope.kill_switch?.active) {
99
+ (0, connectivity_1.resultLine)(false, 'Kill switch', `ACTIVE \u2014 ${envelope.kill_switch.reason || 'no reason'}`);
100
+ }
101
+ else {
102
+ (0, connectivity_1.resultLine)(true, 'Kill switch', 'inactive');
103
+ }
104
+ // Permissions summary
105
+ const permissions = envelope.permissions || {};
106
+ const allowed = Object.entries(permissions).filter(([, p]) => p.permission === 'allow').length;
107
+ const review = Object.entries(permissions).filter(([, p]) => p.permission === 'review').length;
108
+ const denied = Object.entries(permissions).filter(([, p]) => p.permission === 'deny').length;
109
+ (0, connectivity_1.resultLine)(true, 'Permissions', `${allowed} allow, ${review} review, ${denied} deny`);
110
+ // Tools
111
+ const toolCount = envelope.tools?.length || 0;
112
+ (0, connectivity_1.resultLine)(true, 'Tools', `${toolCount} available`);
113
+ }
114
+ else {
115
+ (0, connectivity_1.resultLine)(false, 'Config pull', configResult.error || 'failed');
116
+ }
117
+ console.log('');
118
+ });
119
+ //# sourceMappingURL=status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"status.js","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const syncCommand: Command;
3
+ //# sourceMappingURL=sync.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.d.ts","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAOpC,eAAO,MAAM,WAAW,SAgEpB,CAAC"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.syncCommand = void 0;
4
+ const commander_1 = require("commander");
5
+ const ui_1 = require("../lib/ui");
6
+ const connectivity_1 = require("../lib/connectivity");
7
+ const arkna_dir_1 = require("../lib/arkna-dir");
8
+ exports.syncCommand = new commander_1.Command('sync')
9
+ .description('Re-pull config from the ARKNA gateway')
10
+ .option('-d, --dir <dir>', 'Base directory containing .arkna/ (default: current directory)')
11
+ .action(async (options) => {
12
+ const baseDir = options.dir || process.cwd();
13
+ (0, ui_1.miniBanner)('Sync Config');
14
+ // Read existing enrollment
15
+ const config = (0, arkna_dir_1.readArknaConfig)(baseDir);
16
+ if (!config) {
17
+ (0, ui_1.errorBox)('Not enrolled', [
18
+ (0, ui_1.dim)('No .arkna/config.json found.'),
19
+ (0, ui_1.dim)('Run `arkna connect` to enroll your agent first.'),
20
+ ]);
21
+ process.exit(1);
22
+ }
23
+ const env = (0, arkna_dir_1.readArknaEnv)(baseDir);
24
+ if (!env) {
25
+ (0, ui_1.errorBox)('Missing credentials', [
26
+ (0, ui_1.dim)('No .arkna/.env found or missing ARKNA_TOKEN/ARKNA_URL.'),
27
+ (0, ui_1.dim)('Run `arkna connect` to re-enroll.'),
28
+ ]);
29
+ process.exit(1);
30
+ }
31
+ (0, ui_1.kvLine)('Agent', `${config.agent_name} (${config.agent_id.substring(0, 8)}...)`);
32
+ (0, ui_1.kvLine)('Gateway', config.gateway_url);
33
+ (0, ui_1.kvLine)('Current version', config.config_version);
34
+ console.log('');
35
+ // Pull latest config
36
+ const spinner = (0, ui_1.startSpinner)('Pulling config...');
37
+ const result = await (0, connectivity_1.pullConfig)(env.url, env.token);
38
+ spinner.stop();
39
+ if (!result.success) {
40
+ (0, ui_1.errorBox)('Config pull failed', [
41
+ result.error || 'Unknown error',
42
+ (0, ui_1.dim)('Check your connection and token.'),
43
+ ]);
44
+ process.exit(1);
45
+ }
46
+ const envelope = result.data;
47
+ // Update local files
48
+ const { updated, previousVersion, newVersion } = (0, arkna_dir_1.updateArknaDir)(envelope, baseDir);
49
+ if (updated) {
50
+ (0, connectivity_1.resultLine)(true, 'Config updated', `${previousVersion} → ${newVersion}`);
51
+ const toolCount = envelope.tools?.length || 0;
52
+ const policyCount = envelope.policies?.length || 0;
53
+ (0, ui_1.successBox)('Sync complete', [
54
+ `${(0, ui_1.dim)('Version:')} ${newVersion}`,
55
+ `${(0, ui_1.dim)('Tools:')} ${toolCount}`,
56
+ `${(0, ui_1.dim)('Policies:')} ${policyCount}`,
57
+ `${(0, ui_1.dim)('Files:')} tools.json, policy.json updated`,
58
+ ]);
59
+ }
60
+ else {
61
+ (0, connectivity_1.resultLine)(true, 'Already up to date', `v${newVersion}`);
62
+ console.log('');
63
+ }
64
+ });
65
+ //# sourceMappingURL=sync.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"sync.js","sourceRoot":"","sources":["../../src/commands/sync.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const testCommand: Command;
3
+ //# sourceMappingURL=test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.d.ts","sourceRoot":"","sources":["../../src/commands/test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAqBpC,eAAO,MAAM,WAAW,SAgGpB,CAAC"}
@@ -0,0 +1,142 @@
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
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.testCommand = void 0;
37
+ const commander_1 = require("commander");
38
+ const fs = __importStar(require("fs"));
39
+ const path = __importStar(require("path"));
40
+ const connectivity_1 = require("../lib/connectivity");
41
+ const ui_1 = require("../lib/ui");
42
+ const arkna_dir_1 = require("../lib/arkna-dir");
43
+ function loadEnvFile(envPath) {
44
+ const vars = {};
45
+ if (fs.existsSync(envPath)) {
46
+ const lines = fs.readFileSync(envPath, 'utf-8').split('\n');
47
+ for (const line of lines) {
48
+ const match = line.match(/^([^#][^=]+)=(.+)$/);
49
+ if (match) {
50
+ vars[match[1].trim()] = match[2].trim();
51
+ }
52
+ }
53
+ }
54
+ return vars;
55
+ }
56
+ exports.testCommand = new commander_1.Command('test')
57
+ .description('Test connectivity to the ARKNA gateway')
58
+ .option('-u, --url <url>', 'ARKNA URL (default: from env or .env)')
59
+ .option('-t, --token <token>', 'Integration token (default: from env or .env)')
60
+ .action(async (options) => {
61
+ // Load from .arkna/.env first, then .env, then env vars
62
+ const arknaEnv = (0, arkna_dir_1.readArknaEnv)();
63
+ const dotEnvVars = loadEnvFile(path.join(process.cwd(), '.env'));
64
+ const url = options.url
65
+ || process.env.ARKNA_URL
66
+ || arknaEnv?.url
67
+ || dotEnvVars.ARKNA_URL
68
+ || 'https://api.arkna.com.au';
69
+ const token = options.token
70
+ || process.env.ARKNA_TOKEN
71
+ || arknaEnv?.token
72
+ || dotEnvVars.ARKNA_TOKEN;
73
+ // Determine source for display
74
+ let source = (0, ui_1.dim)('default');
75
+ if (options.token)
76
+ source = 'CLI flag';
77
+ else if (process.env.ARKNA_TOKEN)
78
+ source = 'env var';
79
+ else if (arknaEnv?.token)
80
+ source = '.arkna/.env';
81
+ else if (dotEnvVars.ARKNA_TOKEN)
82
+ source = '.env file';
83
+ (0, ui_1.miniBanner)('Connectivity Test');
84
+ (0, ui_1.kvLine)('Gateway', url);
85
+ (0, ui_1.kvLine)('Token', token ? `${token.substring(0, 13)}...` : (0, ui_1.dim)('(not set)'));
86
+ (0, ui_1.kvLine)('Source', source);
87
+ console.log('');
88
+ if (!token) {
89
+ (0, ui_1.errorBox)('No token found', [
90
+ (0, ui_1.dim)('Set ARKNA_TOKEN in one of:'),
91
+ '',
92
+ ` ${(0, ui_1.dim)('1.')} arkna connect ${(0, ui_1.dim)('\u2014 enroll and auto-configure')}`,
93
+ ` ${(0, ui_1.dim)('2.')} .arkna/.env ${(0, ui_1.dim)('\u2014 created by arkna connect')}`,
94
+ ` ${(0, ui_1.dim)('3.')} .env file ${(0, ui_1.dim)('\u2014 ARKNA_TOKEN=intk_...')}`,
95
+ ` ${(0, ui_1.dim)('4.')} env var ${(0, ui_1.dim)('\u2014 export ARKNA_TOKEN=intk_...')}`,
96
+ ` ${(0, ui_1.dim)('5.')} CLI flag ${(0, ui_1.dim)('\u2014 arkna test --token intk_...')}`,
97
+ ]);
98
+ console.log('');
99
+ process.exit(1);
100
+ }
101
+ const results = [];
102
+ // 1. Health check
103
+ const spinner1 = (0, ui_1.startSpinner)('Checking gateway...');
104
+ const health = await (0, connectivity_1.checkHealth)(url);
105
+ spinner1.stop();
106
+ results.push(health);
107
+ (0, connectivity_1.resultLine)(health.passed, health.name, health.detail);
108
+ if (!health.passed) {
109
+ (0, connectivity_1.printSummary)(results);
110
+ process.exit(1);
111
+ }
112
+ // 2. Token validity (using checkTokenValid for honest reporting)
113
+ const spinner2 = (0, ui_1.startSpinner)('Validating token...');
114
+ const tokenCheck = await (0, connectivity_1.checkTokenValid)(url, token);
115
+ spinner2.stop();
116
+ results.push(tokenCheck);
117
+ (0, connectivity_1.resultLine)(tokenCheck.passed, tokenCheck.name, tokenCheck.detail);
118
+ if (!tokenCheck.passed) {
119
+ (0, connectivity_1.printSummary)(results);
120
+ process.exit(1);
121
+ }
122
+ // 3. Dry run (only if agent is registered)
123
+ if (tokenCheck.agentRegistered) {
124
+ const spinner3 = (0, ui_1.startSpinner)('Testing policy pipeline...');
125
+ const dryRun = await (0, connectivity_1.checkDryRun)(url, token);
126
+ spinner3.stop();
127
+ results.push(dryRun);
128
+ (0, connectivity_1.resultLine)(dryRun.passed, dryRun.name, dryRun.detail);
129
+ // 4. Config pull
130
+ if (dryRun.passed) {
131
+ const spinner4 = (0, ui_1.startSpinner)('Checking config pull...');
132
+ const configCheck = await (0, connectivity_1.checkConfigPull)(url, token);
133
+ spinner4.stop();
134
+ results.push(configCheck);
135
+ (0, connectivity_1.resultLine)(configCheck.passed, configCheck.name, configCheck.detail);
136
+ }
137
+ }
138
+ (0, connectivity_1.printSummary)(results);
139
+ const allPassed = results.every(r => r.passed);
140
+ process.exit(allPassed ? 0 : 1);
141
+ });
142
+ //# sourceMappingURL=test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test.js","sourceRoot":"","sources":["../../src/commands/test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare const verifyCommand: Command;
3
+ //# sourceMappingURL=verify.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify.d.ts","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAQpC,eAAO,MAAM,aAAa,SA8GtB,CAAC"}
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.verifyCommand = void 0;
4
+ const commander_1 = require("commander");
5
+ const ui_1 = require("../lib/ui");
6
+ const connectivity_1 = require("../lib/connectivity");
7
+ const arkna_dir_1 = require("../lib/arkna-dir");
8
+ exports.verifyCommand = new commander_1.Command('verify')
9
+ .description('Verify that the gateway and agent are operational')
10
+ .option('-d, --dir <dir>', 'Base directory containing .arkna/ (default: current directory)')
11
+ .option('-w, --watch', 'Poll until the agent registers (waiting mode)')
12
+ .option('--timeout <seconds>', 'Timeout for --watch mode in seconds (default: 120)', '120')
13
+ .action(async (options) => {
14
+ const baseDir = options.dir || process.cwd();
15
+ (0, ui_1.miniBanner)('Verify');
16
+ // ── Read credentials ─────────────────────────────────────────────────
17
+ const env = (0, arkna_dir_1.readArknaEnv)(baseDir);
18
+ if (!env) {
19
+ (0, ui_1.errorBox)('No credentials found', [
20
+ (0, ui_1.dim)('No .arkna/.env found or missing ARKNA_URL/ARKNA_TOKEN.'),
21
+ (0, ui_1.dim)('Run `arkna connect <platform>` first.'),
22
+ ]);
23
+ process.exit(1);
24
+ }
25
+ (0, ui_1.kvLine)('Gateway', env.url);
26
+ console.log('');
27
+ // ── Gateway check ────────────────────────────────────────────────────
28
+ const s1 = (0, ui_1.startSpinner)('Checking gateway...');
29
+ const health = await (0, connectivity_1.checkHealth)(env.url);
30
+ s1.stop();
31
+ (0, ui_1.resultLine)(health.passed, health.name, health.detail);
32
+ if (!health.passed) {
33
+ (0, ui_1.errorBox)('Gateway unreachable', [
34
+ (0, ui_1.dim)('Check your ARKNA_URL and network connection.'),
35
+ ]);
36
+ process.exit(1);
37
+ }
38
+ // ── Token check ──────────────────────────────────────────────────────
39
+ const s2 = (0, ui_1.startSpinner)('Validating token...');
40
+ const tokenCheck = await (0, connectivity_1.checkTokenValid)(env.url, env.token);
41
+ s2.stop();
42
+ (0, ui_1.resultLine)(tokenCheck.passed, tokenCheck.name, tokenCheck.detail);
43
+ if (!tokenCheck.passed) {
44
+ (0, ui_1.errorBox)('Token invalid', [
45
+ (0, ui_1.dim)('Check your ARKNA_TOKEN or create a new one in Settings > External Agents.'),
46
+ ]);
47
+ process.exit(1);
48
+ }
49
+ // ── Agent registered? ────────────────────────────────────────────────
50
+ if (tokenCheck.agentRegistered) {
51
+ // Agent is registered — pull config and show full status
52
+ (0, ui_1.resultLine)(true, 'Agent registered', 'bound to token');
53
+ await showRegisteredStatus(env.url, env.token, baseDir);
54
+ process.exit(0);
55
+ }
56
+ // Agent not yet registered
57
+ if (!options.watch) {
58
+ // Instant mode — just report what we know
59
+ (0, ui_1.resultLine)(false, 'Agent registered', 'waiting \u2014 no agent has called POST /register yet');
60
+ console.log('');
61
+ console.log(` ${(0, ui_1.warn)('\u26A0')} ${(0, ui_1.dim)('No agent found.')}`);
62
+ console.log(` ${(0, ui_1.dim)(' This means your agent has not started yet, or it is not configured')}`);
63
+ console.log(` ${(0, ui_1.dim)(' to call POST /api/gateway/register on startup.')}`);
64
+ console.log('');
65
+ console.log(` ${(0, ui_1.dim)(' Make sure you are running this from your')} ${(0, ui_1.brand)('agent project directory')}`);
66
+ console.log(` ${(0, ui_1.dim)(' and that your agent has been wired with')} ${(0, ui_1.brand)('arkna connect')}`);
67
+ console.log('');
68
+ console.log(` ${(0, ui_1.dim)(' To wait for your agent to register:')} ${(0, ui_1.brand)('arkna verify --watch')}`);
69
+ console.log('');
70
+ process.exit(0);
71
+ }
72
+ // ── Watch mode — poll until agent registers ──────────────────────────
73
+ const timeoutSec = parseInt(options.timeout || '120', 10);
74
+ console.log('');
75
+ console.log(` ${(0, ui_1.dim)('\u23F3')} ${(0, ui_1.dim)(`Waiting for agent to register (timeout: ${timeoutSec}s)...`)}`);
76
+ console.log(` ${(0, ui_1.dim)(' Start your agent now — it should call POST /api/gateway/register on startup.')}`);
77
+ console.log('');
78
+ const startTime = Date.now();
79
+ const pollInterval = 5000; // 5 seconds
80
+ while (true) {
81
+ const elapsed = (Date.now() - startTime) / 1000;
82
+ if (elapsed >= timeoutSec) {
83
+ (0, ui_1.errorBox)('Timeout', [
84
+ `${(0, ui_1.dim)(`Agent did not register within ${timeoutSec}s.`)}`,
85
+ (0, ui_1.dim)('Check that your agent is running and has the correct ARKNA_TOKEN.'),
86
+ (0, ui_1.dim)('You can increase timeout: arkna verify --watch --timeout 300'),
87
+ ]);
88
+ process.exit(1);
89
+ }
90
+ // Poll
91
+ const check = await (0, connectivity_1.checkTokenValid)(env.url, env.token);
92
+ if (check.agentRegistered) {
93
+ (0, ui_1.resultLine)(true, 'Agent registered', `detected after ${Math.round(elapsed)}s`);
94
+ await showRegisteredStatus(env.url, env.token, baseDir);
95
+ process.exit(0);
96
+ }
97
+ // Show progress dot
98
+ const remaining = Math.round(timeoutSec - elapsed);
99
+ process.stdout.write(`\r ${(0, ui_1.dim)('\u23F3')} ${(0, ui_1.dim)(`Polling... ${remaining}s remaining`)}`);
100
+ await sleep(pollInterval);
101
+ }
102
+ });
103
+ async function showRegisteredStatus(url, token, baseDir) {
104
+ // Pull config
105
+ const s3 = (0, ui_1.startSpinner)('Pulling config...');
106
+ const configResult = await (0, connectivity_1.pullConfig)(url, token);
107
+ s3.stop();
108
+ if (!configResult.success) {
109
+ (0, ui_1.resultLine)(false, 'Config pull', configResult.error || 'failed');
110
+ return;
111
+ }
112
+ const envelope = configResult.data;
113
+ const toolCount = envelope.tools?.length || 0;
114
+ const policyCount = envelope.policies?.length || 0;
115
+ (0, ui_1.resultLine)(true, 'Config pulled', `${toolCount} tools, ${policyCount} policies`);
116
+ // Kill switch
117
+ if (envelope.kill_switch?.active) {
118
+ (0, ui_1.resultLine)(false, 'Kill switch', `ACTIVE \u2014 ${envelope.kill_switch.reason || 'no reason'}`);
119
+ }
120
+ else {
121
+ (0, ui_1.resultLine)(true, 'Kill switch', 'inactive');
122
+ }
123
+ // Write full .arkna/ directory
124
+ const files = (0, arkna_dir_1.writeArknaDir)(envelope, url, token, envelope.agent?.external_platform || 'custom', baseDir);
125
+ (0, ui_1.fileTree)('.arkna', files);
126
+ (0, ui_1.divider)();
127
+ (0, ui_1.successBox)('GOVERNED', [
128
+ `${(0, ui_1.dim)('Agent:')} ${envelope.agent?.name || 'unknown'}`,
129
+ `${(0, ui_1.dim)('Agent ID:')} ${envelope.agent?.id || 'unknown'}`,
130
+ `${(0, ui_1.dim)('Platform:')} ${envelope.agent?.external_platform || 'unknown'}`,
131
+ `${(0, ui_1.dim)('Tools:')} ${toolCount}`,
132
+ `${(0, ui_1.dim)('Policies:')} ${policyCount}`,
133
+ `${(0, ui_1.dim)('Version:')} ${envelope.config_version || '?'}`,
134
+ ]);
135
+ }
136
+ function sleep(ms) {
137
+ return new Promise(resolve => setTimeout(resolve, ms));
138
+ }
139
+ //# sourceMappingURL=verify.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"verify.js","sourceRoot":"","sources":["../../src/commands/verify.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}
package/dist/index.js ADDED
@@ -0,0 +1,27 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ const commander_1 = require("commander");
7
+ const chalk_1 = __importDefault(require("chalk"));
8
+ const login_1 = require("./commands/login");
9
+ const connect_1 = require("./commands/connect");
10
+ const verify_1 = require("./commands/verify");
11
+ const sync_1 = require("./commands/sync");
12
+ const status_1 = require("./commands/status");
13
+ const test_1 = require("./commands/test");
14
+ const brand = chalk_1.default.hex('#3B82F6');
15
+ const program = new commander_1.Command();
16
+ program
17
+ .name('arkna')
18
+ .description(brand('\u25B2 ARKNA CLI') + chalk_1.default.dim(' \u2014 Connect agents to the AI Trust Gateway'))
19
+ .version('1.0.0', '-v, --version');
20
+ program.addCommand(login_1.loginCommand);
21
+ program.addCommand(connect_1.connectCommand);
22
+ program.addCommand(verify_1.verifyCommand);
23
+ program.addCommand(sync_1.syncCommand);
24
+ program.addCommand(status_1.statusCommand);
25
+ program.addCommand(test_1.testCommand);
26
+ program.parse();
27
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;;;AAAA,yCAAoC;AACpC,kDAA0B;AAC1B,4CAAgD;AAChD,gDAAoD;AACpD,8CAAkD;AAClD,0CAA8C;AAC9C,8CAAkD;AAClD,0CAA8C;AAE9C,MAAM,KAAK,GAAG,eAAK,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;AAEnC,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,OAAO,CAAC;KACb,WAAW,CAAC,KAAK,CAAC,kBAAkB,CAAC,GAAG,eAAK,CAAC,GAAG,CAAC,gDAAgD,CAAC,CAAC;KACpG,OAAO,CAAC,OAAO,EAAE,eAAe,CAAC,CAAC;AAErC,OAAO,CAAC,UAAU,CAAC,oBAAY,CAAC,CAAC;AACjC,OAAO,CAAC,UAAU,CAAC,wBAAc,CAAC,CAAC;AACnC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,kBAAW,CAAC,CAAC;AAChC,OAAO,CAAC,UAAU,CAAC,sBAAa,CAAC,CAAC;AAClC,OAAO,CAAC,UAAU,CAAC,kBAAW,CAAC,CAAC;AAEhC,OAAO,CAAC,KAAK,EAAE,CAAC"}