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.
- package/bin/arkna.js +2 -0
- package/dist/commands/connect.d.ts +3 -0
- package/dist/commands/connect.d.ts.map +1 -0
- package/dist/commands/connect.js +307 -0
- package/dist/commands/connect.js.map +1 -0
- package/dist/commands/login.d.ts +3 -0
- package/dist/commands/login.d.ts.map +1 -0
- package/dist/commands/login.js +292 -0
- package/dist/commands/login.js.map +1 -0
- package/dist/commands/status.d.ts +3 -0
- package/dist/commands/status.d.ts.map +1 -0
- package/dist/commands/status.js +119 -0
- package/dist/commands/status.js.map +1 -0
- package/dist/commands/sync.d.ts +3 -0
- package/dist/commands/sync.d.ts.map +1 -0
- package/dist/commands/sync.js +65 -0
- package/dist/commands/sync.js.map +1 -0
- package/dist/commands/test.d.ts +3 -0
- package/dist/commands/test.d.ts.map +1 -0
- package/dist/commands/test.js +142 -0
- package/dist/commands/test.js.map +1 -0
- package/dist/commands/verify.d.ts +3 -0
- package/dist/commands/verify.d.ts.map +1 -0
- package/dist/commands/verify.js +139 -0
- package/dist/commands/verify.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +27 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/arkna-dir.d.ts +83 -0
- package/dist/lib/arkna-dir.d.ts.map +1 -0
- package/dist/lib/arkna-dir.js +184 -0
- package/dist/lib/arkna-dir.js.map +1 -0
- package/dist/lib/connectivity.d.ts +35 -0
- package/dist/lib/connectivity.d.ts.map +1 -0
- package/dist/lib/connectivity.js +208 -0
- package/dist/lib/connectivity.js.map +1 -0
- package/dist/lib/platforms.d.ts +13 -0
- package/dist/lib/platforms.d.ts.map +1 -0
- package/dist/lib/platforms.js +348 -0
- package/dist/lib/platforms.js.map +1 -0
- package/dist/lib/ui.d.ts +28 -0
- package/dist/lib/ui.d.ts.map +1 -0
- package/dist/lib/ui.js +176 -0
- package/dist/lib/ui.js.map +1 -0
- package/dist/lib/verify.d.ts +15 -0
- package/dist/lib/verify.d.ts.map +1 -0
- package/dist/lib/verify.js +33 -0
- package/dist/lib/verify.js.map +1 -0
- package/package.json +42 -0
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
export interface ArknaConfig {
|
|
2
|
+
agent_id: string;
|
|
3
|
+
agent_name: string;
|
|
4
|
+
platform: string;
|
|
5
|
+
gateway_url: string;
|
|
6
|
+
endpoints: {
|
|
7
|
+
health: string;
|
|
8
|
+
heartbeat: string;
|
|
9
|
+
actions: string;
|
|
10
|
+
tools: string;
|
|
11
|
+
config: string;
|
|
12
|
+
};
|
|
13
|
+
config_version: string;
|
|
14
|
+
enrolled_at: string;
|
|
15
|
+
last_synced_at: string;
|
|
16
|
+
}
|
|
17
|
+
export interface PolicyEnvelope {
|
|
18
|
+
agent: {
|
|
19
|
+
id: string;
|
|
20
|
+
name: string;
|
|
21
|
+
status: string;
|
|
22
|
+
risk_tier: string;
|
|
23
|
+
agent_source: string;
|
|
24
|
+
external_platform: string;
|
|
25
|
+
agent_type: string;
|
|
26
|
+
};
|
|
27
|
+
tools: Array<{
|
|
28
|
+
name: string;
|
|
29
|
+
description: string;
|
|
30
|
+
parameters: Record<string, unknown>;
|
|
31
|
+
}>;
|
|
32
|
+
permissions: Record<string, {
|
|
33
|
+
permission: string;
|
|
34
|
+
config: Record<string, unknown>;
|
|
35
|
+
}>;
|
|
36
|
+
policies: Array<{
|
|
37
|
+
id: string;
|
|
38
|
+
name: string;
|
|
39
|
+
description: string;
|
|
40
|
+
priority: number;
|
|
41
|
+
scope: string;
|
|
42
|
+
}>;
|
|
43
|
+
constitution: Array<{
|
|
44
|
+
category: string;
|
|
45
|
+
rule: string;
|
|
46
|
+
severity: string;
|
|
47
|
+
}>;
|
|
48
|
+
kill_switch: {
|
|
49
|
+
active: boolean;
|
|
50
|
+
reason: string | null;
|
|
51
|
+
};
|
|
52
|
+
gateway: {
|
|
53
|
+
url: string;
|
|
54
|
+
endpoints: {
|
|
55
|
+
health: string;
|
|
56
|
+
heartbeat: string;
|
|
57
|
+
actions: string;
|
|
58
|
+
tools: string;
|
|
59
|
+
config: string;
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
config_version: string;
|
|
63
|
+
refresh_interval_seconds: number;
|
|
64
|
+
}
|
|
65
|
+
export declare function arknaConfigExists(baseDir?: string): boolean;
|
|
66
|
+
export declare function readArknaConfig(baseDir?: string): ArknaConfig | null;
|
|
67
|
+
export declare function readArknaEnv(baseDir?: string): {
|
|
68
|
+
url: string;
|
|
69
|
+
token: string;
|
|
70
|
+
agentId?: string;
|
|
71
|
+
} | null;
|
|
72
|
+
export declare function writeArknaDir(envelope: PolicyEnvelope, url: string, token: string, platform: string, baseDir?: string): string[];
|
|
73
|
+
/**
|
|
74
|
+
* Write just the .arkna/.env + .gitignore files (no config.json, tools.json, policy.json).
|
|
75
|
+
* Used by `arkna connect` before the agent has registered — only stores credentials.
|
|
76
|
+
*/
|
|
77
|
+
export declare function writeTokenEnv(url: string, token: string, baseDir?: string): string[];
|
|
78
|
+
export declare function updateArknaDir(envelope: PolicyEnvelope, baseDir?: string): {
|
|
79
|
+
updated: boolean;
|
|
80
|
+
previousVersion: string;
|
|
81
|
+
newVersion: string;
|
|
82
|
+
};
|
|
83
|
+
//# sourceMappingURL=arkna-dir.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arkna-dir.d.ts","sourceRoot":"","sources":["../../src/lib/arkna-dir.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,184 @@
|
|
|
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.arknaConfigExists = arknaConfigExists;
|
|
37
|
+
exports.readArknaConfig = readArknaConfig;
|
|
38
|
+
exports.readArknaEnv = readArknaEnv;
|
|
39
|
+
exports.writeArknaDir = writeArknaDir;
|
|
40
|
+
exports.writeTokenEnv = writeTokenEnv;
|
|
41
|
+
exports.updateArknaDir = updateArknaDir;
|
|
42
|
+
const fs = __importStar(require("fs"));
|
|
43
|
+
const path = __importStar(require("path"));
|
|
44
|
+
const ARKNA_DIR = '.arkna';
|
|
45
|
+
function getArknaDir(baseDir) {
|
|
46
|
+
return path.join(baseDir || process.cwd(), ARKNA_DIR);
|
|
47
|
+
}
|
|
48
|
+
function arknaConfigExists(baseDir) {
|
|
49
|
+
return fs.existsSync(path.join(getArknaDir(baseDir), 'config.json'));
|
|
50
|
+
}
|
|
51
|
+
function readArknaConfig(baseDir) {
|
|
52
|
+
const configPath = path.join(getArknaDir(baseDir), 'config.json');
|
|
53
|
+
if (!fs.existsSync(configPath)) {
|
|
54
|
+
return null;
|
|
55
|
+
}
|
|
56
|
+
return JSON.parse(fs.readFileSync(configPath, 'utf-8'));
|
|
57
|
+
}
|
|
58
|
+
function readArknaEnv(baseDir) {
|
|
59
|
+
const envPath = path.join(getArknaDir(baseDir), '.env');
|
|
60
|
+
if (!fs.existsSync(envPath)) {
|
|
61
|
+
return null;
|
|
62
|
+
}
|
|
63
|
+
const vars = {};
|
|
64
|
+
const lines = fs.readFileSync(envPath, 'utf-8').split('\n');
|
|
65
|
+
for (const line of lines) {
|
|
66
|
+
const match = line.match(/^([^#][^=]+)=(.+)$/);
|
|
67
|
+
if (match) {
|
|
68
|
+
vars[match[1].trim()] = match[2].trim();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
if (!vars.ARKNA_URL || !vars.ARKNA_TOKEN) {
|
|
72
|
+
return null;
|
|
73
|
+
}
|
|
74
|
+
return { url: vars.ARKNA_URL, token: vars.ARKNA_TOKEN, agentId: vars.ARKNA_AGENT_ID };
|
|
75
|
+
}
|
|
76
|
+
function writeArknaDir(envelope, url, token, platform, baseDir) {
|
|
77
|
+
const dir = getArknaDir(baseDir);
|
|
78
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
79
|
+
const files = [];
|
|
80
|
+
const now = new Date().toISOString();
|
|
81
|
+
// config.json — agent identity + gateway info
|
|
82
|
+
const config = {
|
|
83
|
+
agent_id: envelope.agent.id,
|
|
84
|
+
agent_name: envelope.agent.name,
|
|
85
|
+
platform,
|
|
86
|
+
gateway_url: url,
|
|
87
|
+
endpoints: envelope.gateway.endpoints,
|
|
88
|
+
config_version: envelope.config_version,
|
|
89
|
+
enrolled_at: now,
|
|
90
|
+
last_synced_at: now,
|
|
91
|
+
};
|
|
92
|
+
fs.writeFileSync(path.join(dir, 'config.json'), JSON.stringify(config, null, 2) + '\n');
|
|
93
|
+
files.push('config.json');
|
|
94
|
+
// tools.json — available tools with full schemas
|
|
95
|
+
fs.writeFileSync(path.join(dir, 'tools.json'), JSON.stringify(envelope.tools, null, 2) + '\n');
|
|
96
|
+
files.push('tools.json');
|
|
97
|
+
// policy.json — permissions, policies, constitution, kill switch
|
|
98
|
+
const policy = {
|
|
99
|
+
permissions: envelope.permissions,
|
|
100
|
+
policies: envelope.policies,
|
|
101
|
+
constitution: envelope.constitution,
|
|
102
|
+
kill_switch: envelope.kill_switch,
|
|
103
|
+
};
|
|
104
|
+
fs.writeFileSync(path.join(dir, 'policy.json'), JSON.stringify(policy, null, 2) + '\n');
|
|
105
|
+
files.push('policy.json');
|
|
106
|
+
// .env — secrets (gitignored)
|
|
107
|
+
const envContent = `# ARKNA Agent Enrollment — Environment Variables
|
|
108
|
+
# This file is gitignored. Do NOT commit this file.
|
|
109
|
+
ARKNA_URL=${url}
|
|
110
|
+
ARKNA_TOKEN=${token}
|
|
111
|
+
ARKNA_AGENT_ID=${envelope.agent.id}
|
|
112
|
+
`;
|
|
113
|
+
fs.writeFileSync(path.join(dir, '.env'), envContent);
|
|
114
|
+
files.push('.env');
|
|
115
|
+
// .gitignore — block EVERYTHING from git (secrets + config are local-only)
|
|
116
|
+
const gitignore = `# .arkna/ contains secrets — never commit any of it
|
|
117
|
+
*
|
|
118
|
+
!.gitignore
|
|
119
|
+
`;
|
|
120
|
+
fs.writeFileSync(path.join(dir, '.gitignore'), gitignore);
|
|
121
|
+
files.push('.gitignore');
|
|
122
|
+
return files;
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Write just the .arkna/.env + .gitignore files (no config.json, tools.json, policy.json).
|
|
126
|
+
* Used by `arkna connect` before the agent has registered — only stores credentials.
|
|
127
|
+
*/
|
|
128
|
+
function writeTokenEnv(url, token, baseDir) {
|
|
129
|
+
const dir = getArknaDir(baseDir);
|
|
130
|
+
fs.mkdirSync(dir, { recursive: true });
|
|
131
|
+
const files = [];
|
|
132
|
+
// Remove stale config files from previous enrollment — they belong to a
|
|
133
|
+
// different agent/token and will confuse `status` and `sync`.
|
|
134
|
+
for (const staleFile of ['config.json', 'tools.json', 'policy.json']) {
|
|
135
|
+
const p = path.join(dir, staleFile);
|
|
136
|
+
if (fs.existsSync(p)) {
|
|
137
|
+
fs.unlinkSync(p);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
// .env — secrets (gitignored)
|
|
141
|
+
const envContent = `# ARKNA Agent Configuration — Environment Variables
|
|
142
|
+
# This file is gitignored. Do NOT commit this file.
|
|
143
|
+
ARKNA_URL=${url}
|
|
144
|
+
ARKNA_TOKEN=${token}
|
|
145
|
+
`;
|
|
146
|
+
fs.writeFileSync(path.join(dir, '.env'), envContent);
|
|
147
|
+
files.push('.env');
|
|
148
|
+
// .gitignore — block EVERYTHING from git (secrets + config are local-only)
|
|
149
|
+
const gitignore = `# .arkna/ contains secrets — never commit any of it
|
|
150
|
+
*
|
|
151
|
+
!.gitignore
|
|
152
|
+
`;
|
|
153
|
+
fs.writeFileSync(path.join(dir, '.gitignore'), gitignore);
|
|
154
|
+
files.push('.gitignore');
|
|
155
|
+
return files;
|
|
156
|
+
}
|
|
157
|
+
function updateArknaDir(envelope, baseDir) {
|
|
158
|
+
const dir = getArknaDir(baseDir);
|
|
159
|
+
const configPath = path.join(dir, 'config.json');
|
|
160
|
+
if (!fs.existsSync(configPath)) {
|
|
161
|
+
return { updated: false, previousVersion: '', newVersion: envelope.config_version };
|
|
162
|
+
}
|
|
163
|
+
const existing = JSON.parse(fs.readFileSync(configPath, 'utf-8'));
|
|
164
|
+
const previousVersion = existing.config_version;
|
|
165
|
+
if (previousVersion === envelope.config_version) {
|
|
166
|
+
return { updated: false, previousVersion, newVersion: envelope.config_version };
|
|
167
|
+
}
|
|
168
|
+
// Update tools.json
|
|
169
|
+
fs.writeFileSync(path.join(dir, 'tools.json'), JSON.stringify(envelope.tools, null, 2) + '\n');
|
|
170
|
+
// Update policy.json
|
|
171
|
+
const policy = {
|
|
172
|
+
permissions: envelope.permissions,
|
|
173
|
+
policies: envelope.policies,
|
|
174
|
+
constitution: envelope.constitution,
|
|
175
|
+
kill_switch: envelope.kill_switch,
|
|
176
|
+
};
|
|
177
|
+
fs.writeFileSync(path.join(dir, 'policy.json'), JSON.stringify(policy, null, 2) + '\n');
|
|
178
|
+
// Update config.json (preserve enrolled_at)
|
|
179
|
+
existing.config_version = envelope.config_version;
|
|
180
|
+
existing.last_synced_at = new Date().toISOString();
|
|
181
|
+
fs.writeFileSync(configPath, JSON.stringify(existing, null, 2) + '\n');
|
|
182
|
+
return { updated: true, previousVersion, newVersion: envelope.config_version };
|
|
183
|
+
}
|
|
184
|
+
//# sourceMappingURL=arkna-dir.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"arkna-dir.js","sourceRoot":"","sources":["../../src/lib/arkna-dir.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { resultLine } from './ui';
|
|
2
|
+
export { resultLine };
|
|
3
|
+
export interface TestResult {
|
|
4
|
+
name: string;
|
|
5
|
+
passed: boolean;
|
|
6
|
+
detail: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function checkHealth(url: string): Promise<TestResult>;
|
|
9
|
+
export declare function checkToken(url: string, token: string): Promise<TestResult>;
|
|
10
|
+
export interface TokenValidResult extends TestResult {
|
|
11
|
+
agentRegistered: boolean;
|
|
12
|
+
toolCount: number;
|
|
13
|
+
}
|
|
14
|
+
/**
|
|
15
|
+
* Validate token via GET /api/gateway/tools.
|
|
16
|
+
* - 200 = token valid, agent registered (returns tool count)
|
|
17
|
+
* - 400 "not bound" = token valid, agent not yet registered (still a pass)
|
|
18
|
+
* - 401/403 = token invalid (fail)
|
|
19
|
+
*/
|
|
20
|
+
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): 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 checkConfigPull(url: string, token: string): Promise<TestResult>;
|
|
34
|
+
export declare function printSummary(results: TestResult[]): void;
|
|
35
|
+
//# sourceMappingURL=connectivity.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connectivity.d.ts","sourceRoot":"","sources":["../../src/lib/connectivity.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAsD,MAAM,MAAM,CAAC;AAEtF,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;AAED,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAWlE;AAED,wBAAsB,UAAU,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAkBhF;AAED,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;AAED,wBAAsB,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAgCjF;AAED,wBAAsB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,CAAC,CA8BpF;AAED,wBAAsB,aAAa,CACjC,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,EACb,IAAI,EAAE,MAAM,EACZ,QAAQ,EAAE,MAAM,GACf,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAqBhF;AAED,wBAAsB,UAAU,CAC9B,GAAG,EAAE,MAAM,EACX,KAAK,EAAE,MAAM,GACZ,OAAO,CAAC;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAoB/E;AAED,wBAAsB,eAAe,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC,CAgBrF;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,UAAU,EAAE,GAAG,IAAI,CAWxD"}
|
|
@@ -0,0 +1,208 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resultLine = void 0;
|
|
4
|
+
exports.checkHealth = checkHealth;
|
|
5
|
+
exports.checkToken = checkToken;
|
|
6
|
+
exports.checkTokenValid = checkTokenValid;
|
|
7
|
+
exports.checkDryRun = checkDryRun;
|
|
8
|
+
exports.runAllChecks = runAllChecks;
|
|
9
|
+
exports.registerAgent = registerAgent;
|
|
10
|
+
exports.pullConfig = pullConfig;
|
|
11
|
+
exports.checkConfigPull = checkConfigPull;
|
|
12
|
+
exports.printSummary = printSummary;
|
|
13
|
+
const ui_1 = require("./ui");
|
|
14
|
+
Object.defineProperty(exports, "resultLine", { enumerable: true, get: function () { return ui_1.resultLine; } });
|
|
15
|
+
async function checkHealth(url) {
|
|
16
|
+
try {
|
|
17
|
+
const resp = await fetch(`${url}/api/gateway/health`);
|
|
18
|
+
if (!resp.ok) {
|
|
19
|
+
return { name: 'Gateway reachable', passed: false, detail: `HTTP ${resp.status}` };
|
|
20
|
+
}
|
|
21
|
+
const data = await resp.json();
|
|
22
|
+
return { name: 'Gateway reachable', passed: true, detail: `v${data.version || '?'}` };
|
|
23
|
+
}
|
|
24
|
+
catch (err) {
|
|
25
|
+
return { name: 'Gateway reachable', passed: false, detail: err.message || 'Connection failed' };
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
async function checkToken(url, token) {
|
|
29
|
+
try {
|
|
30
|
+
const resp = await fetch(`${url}/api/gateway/tools`, {
|
|
31
|
+
headers: { 'X-Integration-Token': token },
|
|
32
|
+
});
|
|
33
|
+
if (resp.ok) {
|
|
34
|
+
const data = await resp.json();
|
|
35
|
+
return { name: 'Token valid', passed: true, detail: `${data.count || 0} tools available` };
|
|
36
|
+
}
|
|
37
|
+
// 400 = token is valid but not yet bound to an agent (pre-registration)
|
|
38
|
+
if (resp.status === 400) {
|
|
39
|
+
return { name: 'Token valid', passed: true, detail: 'authenticated (agent not registered yet)' };
|
|
40
|
+
}
|
|
41
|
+
// 401/403 = actually invalid token
|
|
42
|
+
return { name: 'Token valid', passed: false, detail: `HTTP ${resp.status} — check token ${(0, ui_1.maskToken)(token)}` };
|
|
43
|
+
}
|
|
44
|
+
catch (err) {
|
|
45
|
+
return { name: 'Token valid', passed: false, detail: err.message || 'Request failed' };
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
/**
|
|
49
|
+
* Validate token via GET /api/gateway/tools.
|
|
50
|
+
* - 200 = token valid, agent registered (returns tool count)
|
|
51
|
+
* - 400 "not bound" = token valid, agent not yet registered (still a pass)
|
|
52
|
+
* - 401/403 = token invalid (fail)
|
|
53
|
+
*/
|
|
54
|
+
async function checkTokenValid(url, token) {
|
|
55
|
+
try {
|
|
56
|
+
const resp = await fetch(`${url}/api/gateway/tools`, {
|
|
57
|
+
headers: { 'X-Integration-Token': token },
|
|
58
|
+
});
|
|
59
|
+
if (resp.ok) {
|
|
60
|
+
const data = await resp.json();
|
|
61
|
+
const count = data.count || 0;
|
|
62
|
+
return { name: 'Token valid', passed: true, detail: `${count} tools available`, agentRegistered: true, toolCount: count };
|
|
63
|
+
}
|
|
64
|
+
if (resp.status === 400) {
|
|
65
|
+
return { name: 'Token valid', passed: true, detail: 'authenticated (agent not registered yet)', agentRegistered: false, toolCount: 0 };
|
|
66
|
+
}
|
|
67
|
+
return { name: 'Token valid', passed: false, detail: `HTTP ${resp.status} — check token ${(0, ui_1.maskToken)(token)}`, agentRegistered: false, toolCount: 0 };
|
|
68
|
+
}
|
|
69
|
+
catch (err) {
|
|
70
|
+
return { name: 'Token valid', passed: false, detail: err.message || 'Request failed', agentRegistered: false, toolCount: 0 };
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
async function checkDryRun(url, token) {
|
|
74
|
+
try {
|
|
75
|
+
const resp = await fetch(`${url}/api/gateway/actions`, {
|
|
76
|
+
method: 'POST',
|
|
77
|
+
headers: {
|
|
78
|
+
'X-Integration-Token': token,
|
|
79
|
+
'Content-Type': 'application/json',
|
|
80
|
+
},
|
|
81
|
+
body: JSON.stringify({
|
|
82
|
+
tool: 'email.send_bulk',
|
|
83
|
+
parameters: { to: ['test@example.com'], subject: 'Test', body: 'Test' },
|
|
84
|
+
request_id: `dry_cli_${Date.now()}`,
|
|
85
|
+
dry_run: true,
|
|
86
|
+
}),
|
|
87
|
+
});
|
|
88
|
+
if (resp.ok) {
|
|
89
|
+
const data = await resp.json();
|
|
90
|
+
const decision = data.decision || 'OK';
|
|
91
|
+
const evidenceId = data.evidence_id || data.request_id || data.id;
|
|
92
|
+
if (evidenceId) {
|
|
93
|
+
return { name: 'Policy pipeline', passed: true, detail: `${decision} · evidence: ${String(evidenceId).substring(0, 12)}…` };
|
|
94
|
+
}
|
|
95
|
+
return { name: 'Policy pipeline', passed: true, detail: decision };
|
|
96
|
+
}
|
|
97
|
+
// 400 = token valid but agent not registered yet — expected for fresh tokens
|
|
98
|
+
if (resp.status === 400) {
|
|
99
|
+
return { name: 'Policy pipeline', passed: true, detail: 'ready (agent not registered yet)' };
|
|
100
|
+
}
|
|
101
|
+
return { name: 'Policy pipeline', passed: false, detail: `HTTP ${resp.status}` };
|
|
102
|
+
}
|
|
103
|
+
catch (err) {
|
|
104
|
+
return { name: 'Policy pipeline', passed: false, detail: err.message || 'Request failed' };
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
async function runAllChecks(url, token) {
|
|
108
|
+
const results = [];
|
|
109
|
+
const spinner1 = (0, ui_1.startSpinner)('Checking gateway...');
|
|
110
|
+
const health = await checkHealth(url);
|
|
111
|
+
spinner1.stop();
|
|
112
|
+
results.push(health);
|
|
113
|
+
(0, ui_1.resultLine)(health.passed, health.name, health.detail);
|
|
114
|
+
if (!health.passed) {
|
|
115
|
+
return results;
|
|
116
|
+
}
|
|
117
|
+
const spinner2 = (0, ui_1.startSpinner)('Validating token...');
|
|
118
|
+
const tokenCheck = await checkToken(url, token);
|
|
119
|
+
spinner2.stop();
|
|
120
|
+
results.push(tokenCheck);
|
|
121
|
+
(0, ui_1.resultLine)(tokenCheck.passed, tokenCheck.name, tokenCheck.detail);
|
|
122
|
+
if (!tokenCheck.passed) {
|
|
123
|
+
return results;
|
|
124
|
+
}
|
|
125
|
+
const spinner3 = (0, ui_1.startSpinner)('Testing policy pipeline...');
|
|
126
|
+
const dryRun = await checkDryRun(url, token);
|
|
127
|
+
spinner3.stop();
|
|
128
|
+
results.push(dryRun);
|
|
129
|
+
(0, ui_1.resultLine)(dryRun.passed, dryRun.name, dryRun.detail);
|
|
130
|
+
return results;
|
|
131
|
+
}
|
|
132
|
+
async function registerAgent(url, token, name, platform) {
|
|
133
|
+
try {
|
|
134
|
+
const resp = await fetch(`${url}/api/gateway/register`, {
|
|
135
|
+
method: 'POST',
|
|
136
|
+
headers: {
|
|
137
|
+
'X-Integration-Token': token,
|
|
138
|
+
'Content-Type': 'application/json',
|
|
139
|
+
},
|
|
140
|
+
body: JSON.stringify({ name, platform }),
|
|
141
|
+
});
|
|
142
|
+
const data = await resp.json();
|
|
143
|
+
if (resp.ok) {
|
|
144
|
+
return { success: true, agent: data.agent };
|
|
145
|
+
}
|
|
146
|
+
const errMsg = data.error || `HTTP ${resp.status}`;
|
|
147
|
+
// Ensure token is never leaked in error messages
|
|
148
|
+
return { success: false, error: errMsg.replace(/intk_[a-f0-9]+/gi, (m) => (0, ui_1.maskToken)(m)) };
|
|
149
|
+
}
|
|
150
|
+
catch (err) {
|
|
151
|
+
const errMsg = err.message || 'Connection failed';
|
|
152
|
+
return { success: false, error: errMsg.replace(/intk_[a-f0-9]+/gi, (m) => (0, ui_1.maskToken)(m)) };
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
async function pullConfig(url, token) {
|
|
156
|
+
try {
|
|
157
|
+
const resp = await fetch(`${url}/api/gateway/config`, {
|
|
158
|
+
headers: { 'X-Integration-Token': token },
|
|
159
|
+
});
|
|
160
|
+
if (resp.ok) {
|
|
161
|
+
const data = await resp.json();
|
|
162
|
+
return { success: true, data };
|
|
163
|
+
}
|
|
164
|
+
const contentType = resp.headers.get('content-type') || '';
|
|
165
|
+
if (contentType.includes('application/json')) {
|
|
166
|
+
const err = await resp.json();
|
|
167
|
+
const errMsg = err.error || `HTTP ${resp.status}`;
|
|
168
|
+
return { success: false, error: errMsg.replace(/intk_[a-f0-9]+/gi, (m) => (0, ui_1.maskToken)(m)) };
|
|
169
|
+
}
|
|
170
|
+
return { success: false, error: `HTTP ${resp.status} (${resp.statusText})` };
|
|
171
|
+
}
|
|
172
|
+
catch (err) {
|
|
173
|
+
const errMsg = err.message || 'Connection failed';
|
|
174
|
+
return { success: false, error: errMsg.replace(/intk_[a-f0-9]+/gi, (m) => (0, ui_1.maskToken)(m)) };
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
async function checkConfigPull(url, token) {
|
|
178
|
+
try {
|
|
179
|
+
const resp = await fetch(`${url}/api/gateway/config`, {
|
|
180
|
+
headers: { 'X-Integration-Token': token },
|
|
181
|
+
});
|
|
182
|
+
if (resp.ok) {
|
|
183
|
+
const data = await resp.json();
|
|
184
|
+
return { name: 'Config pull', passed: true, detail: `version ${data.config_version || '?'}` };
|
|
185
|
+
}
|
|
186
|
+
if (resp.status === 400) {
|
|
187
|
+
return { name: 'Config pull', passed: true, detail: 'ready (agent not registered yet)' };
|
|
188
|
+
}
|
|
189
|
+
return { name: 'Config pull', passed: false, detail: `HTTP ${resp.status}` };
|
|
190
|
+
}
|
|
191
|
+
catch (err) {
|
|
192
|
+
return { name: 'Config pull', passed: false, detail: err.message || 'Request failed' };
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
function printSummary(results) {
|
|
196
|
+
const allPassed = results.every(r => r.passed);
|
|
197
|
+
const passed = results.filter(r => r.passed).length;
|
|
198
|
+
console.log('');
|
|
199
|
+
if (allPassed) {
|
|
200
|
+
console.log(` ${(0, ui_1.success)('✔')} ${ui_1.success.bold(`All ${passed} checks passed`)}`);
|
|
201
|
+
}
|
|
202
|
+
else {
|
|
203
|
+
const failed = results.filter(r => !r.passed);
|
|
204
|
+
console.log(` ${(0, ui_1.fail)('✘')} ${ui_1.fail.bold(`${failed.length} of ${results.length} check(s) failed`)}`);
|
|
205
|
+
}
|
|
206
|
+
console.log('');
|
|
207
|
+
}
|
|
208
|
+
//# sourceMappingURL=connectivity.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"connectivity.js","sourceRoot":"","sources":["../../src/lib/connectivity.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface WireResult {
|
|
2
|
+
success: boolean;
|
|
3
|
+
alreadyConfigured?: boolean;
|
|
4
|
+
wrapperPath?: string;
|
|
5
|
+
patch?: string;
|
|
6
|
+
error?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function wireOpenClaw(configPath: string, url: string, agentName: string): WireResult;
|
|
9
|
+
export declare function getOpenClawYamlBlock(agentName: string): string;
|
|
10
|
+
export declare function wireCrewAI(outputDir: string, agentName: string): WireResult;
|
|
11
|
+
export declare function wireLangChain(outputDir: string, agentName: string): WireResult;
|
|
12
|
+
export declare function getCustomPatch(agentName: string): string;
|
|
13
|
+
//# sourceMappingURL=platforms.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"platforms.d.ts","sourceRoot":"","sources":["../../src/lib/platforms.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,OAAO,CAAC;IACjB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAID,wBAAgB,YAAY,CAC1B,UAAU,EAAE,MAAM,EAClB,GAAG,EAAE,MAAM,EACX,SAAS,EAAE,MAAM,GAChB,UAAU,CAsEZ;AAED,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAgC9D;AAID,wBAAgB,UAAU,CACxB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,UAAU,CAgGZ;AAID,wBAAgB,aAAa,CAC3B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,MAAM,GAChB,UAAU,CAqFZ;AAID,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CA0BxD"}
|