arkna 2.0.1 → 3.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/dist/client.d.ts +257 -0
- package/dist/client.d.ts.map +1 -0
- package/dist/client.js +948 -0
- package/dist/client.js.map +1 -0
- package/dist/diagnostics.d.ts +41 -0
- package/dist/diagnostics.d.ts.map +1 -0
- package/dist/diagnostics.js +146 -0
- package/dist/diagnostics.js.map +1 -0
- package/dist/enforcement.d.ts +67 -0
- package/dist/enforcement.d.ts.map +1 -0
- package/dist/enforcement.js +303 -0
- package/dist/enforcement.js.map +1 -0
- package/dist/index.d.ts +27 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +32 -27
- package/dist/index.js.map +1 -1
- package/dist/init.d.ts +74 -0
- package/dist/init.d.ts.map +1 -0
- package/dist/init.js +333 -0
- package/dist/init.js.map +1 -0
- package/dist/instrumentations/langchain.d.ts +79 -0
- package/dist/instrumentations/langchain.d.ts.map +1 -0
- package/dist/instrumentations/langchain.js +398 -0
- package/dist/instrumentations/langchain.js.map +1 -0
- package/dist/instrumentations/vercel-ai.d.ts +40 -0
- package/dist/instrumentations/vercel-ai.d.ts.map +1 -0
- package/dist/instrumentations/vercel-ai.js +212 -0
- package/dist/instrumentations/vercel-ai.js.map +1 -0
- package/dist/license.d.ts +89 -0
- package/dist/license.d.ts.map +1 -0
- package/dist/license.js +198 -0
- package/dist/license.js.map +1 -0
- package/dist/types.d.ts +402 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +8 -0
- package/dist/types.js.map +1 -0
- package/package.json +23 -25
- package/bin/arkna.js +0 -2
- package/dist/commands/init.d.ts +0 -3
- package/dist/commands/init.d.ts.map +0 -1
- package/dist/commands/init.js +0 -276
- package/dist/commands/init.js.map +0 -1
- package/dist/commands/login.d.ts +0 -3
- package/dist/commands/login.d.ts.map +0 -1
- package/dist/commands/login.js +0 -289
- package/dist/commands/login.js.map +0 -1
- package/dist/commands/status.d.ts +0 -3
- package/dist/commands/status.d.ts.map +0 -1
- package/dist/commands/status.js +0 -108
- package/dist/commands/status.js.map +0 -1
- package/dist/commands/verify.d.ts +0 -3
- package/dist/commands/verify.d.ts.map +0 -1
- package/dist/commands/verify.js +0 -112
- package/dist/commands/verify.js.map +0 -1
- package/dist/lib/arkna-dir.d.ts +0 -12
- package/dist/lib/arkna-dir.d.ts.map +0 -1
- package/dist/lib/arkna-dir.js +0 -89
- package/dist/lib/arkna-dir.js.map +0 -1
- package/dist/lib/connectivity.d.ts +0 -31
- package/dist/lib/connectivity.d.ts.map +0 -1
- package/dist/lib/connectivity.js +0 -116
- package/dist/lib/connectivity.js.map +0 -1
- package/dist/lib/detect.d.ts +0 -35
- package/dist/lib/detect.d.ts.map +0 -1
- package/dist/lib/detect.js +0 -335
- package/dist/lib/detect.js.map +0 -1
- package/dist/lib/ui.d.ts +0 -28
- package/dist/lib/ui.d.ts.map +0 -1
- package/dist/lib/ui.js +0 -176
- package/dist/lib/ui.js.map +0 -1
- package/dist/lib/update-check.d.ts +0 -7
- package/dist/lib/update-check.d.ts.map +0 -1
- package/dist/lib/update-check.js +0 -94
- package/dist/lib/update-check.js.map +0 -1
- package/dist/lib/verify.d.ts +0 -15
- package/dist/lib/verify.d.ts.map +0 -1
- package/dist/lib/verify.js +0 -33
- package/dist/lib/verify.js.map +0 -1
package/dist/commands/init.js
DELETED
|
@@ -1,276 +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.initCommand = void 0;
|
|
40
|
-
const commander_1 = require("commander");
|
|
41
|
-
const child_process_1 = require("child_process");
|
|
42
|
-
const fs = __importStar(require("fs"));
|
|
43
|
-
const path = __importStar(require("path"));
|
|
44
|
-
const inquirer_1 = __importDefault(require("inquirer"));
|
|
45
|
-
const ui_1 = require("../lib/ui");
|
|
46
|
-
const connectivity_1 = require("../lib/connectivity");
|
|
47
|
-
const arkna_dir_1 = require("../lib/arkna-dir");
|
|
48
|
-
const detect_1 = require("../lib/detect");
|
|
49
|
-
const DEFAULT_URL = 'https://api.arkna.com.au';
|
|
50
|
-
/**
|
|
51
|
-
* Resolve ARKNA URL from env/config/default.
|
|
52
|
-
*/
|
|
53
|
-
function resolveUrl() {
|
|
54
|
-
if (process.env.ARKNA_URL)
|
|
55
|
-
return process.env.ARKNA_URL;
|
|
56
|
-
const envCreds = (0, arkna_dir_1.readArknaEnv)();
|
|
57
|
-
if (envCreds?.url)
|
|
58
|
-
return envCreds.url;
|
|
59
|
-
return DEFAULT_URL;
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Resolve ARKNA token from env → .env → .arkna/.env → null.
|
|
63
|
-
*/
|
|
64
|
-
function resolveExistingToken() {
|
|
65
|
-
if (process.env.ARKNA_TOKEN)
|
|
66
|
-
return process.env.ARKNA_TOKEN;
|
|
67
|
-
// Check project .env
|
|
68
|
-
const dotEnvPath = path.join(process.cwd(), '.env');
|
|
69
|
-
if (fs.existsSync(dotEnvPath)) {
|
|
70
|
-
const content = fs.readFileSync(dotEnvPath, 'utf-8');
|
|
71
|
-
const match = content.match(/^ARKNA_TOKEN=(.+)$/m);
|
|
72
|
-
if (match)
|
|
73
|
-
return match[1].trim();
|
|
74
|
-
}
|
|
75
|
-
// Check .arkna/.env
|
|
76
|
-
const arknaEnv = (0, arkna_dir_1.readArknaEnv)();
|
|
77
|
-
if (arknaEnv?.token)
|
|
78
|
-
return arknaEnv.token;
|
|
79
|
-
return null;
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Add ARKNA_TOKEN to .env file (create or append).
|
|
83
|
-
*/
|
|
84
|
-
function writeProjectEnv(token, url) {
|
|
85
|
-
const dotEnvPath = path.join(process.cwd(), '.env');
|
|
86
|
-
let content = '';
|
|
87
|
-
if (fs.existsSync(dotEnvPath)) {
|
|
88
|
-
content = fs.readFileSync(dotEnvPath, 'utf-8');
|
|
89
|
-
// Replace existing token line
|
|
90
|
-
if (/^ARKNA_TOKEN=.+$/m.test(content)) {
|
|
91
|
-
content = content.replace(/^ARKNA_TOKEN=.+$/m, `ARKNA_TOKEN=${token}`);
|
|
92
|
-
}
|
|
93
|
-
else {
|
|
94
|
-
content = content.trimEnd() + `\nARKNA_TOKEN=${token}\n`;
|
|
95
|
-
}
|
|
96
|
-
// Replace/add URL
|
|
97
|
-
if (/^ARKNA_URL=.+$/m.test(content)) {
|
|
98
|
-
content = content.replace(/^ARKNA_URL=.+$/m, `ARKNA_URL=${url}`);
|
|
99
|
-
}
|
|
100
|
-
else {
|
|
101
|
-
content = content.trimEnd() + `\nARKNA_URL=${url}\n`;
|
|
102
|
-
}
|
|
103
|
-
}
|
|
104
|
-
else {
|
|
105
|
-
content = `# ARKNA — Agent Observability\nARKNA_URL=${url}\nARKNA_TOKEN=${token}\n`;
|
|
106
|
-
}
|
|
107
|
-
fs.writeFileSync(dotEnvPath, content);
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Ensure .env is listed in .gitignore.
|
|
111
|
-
*/
|
|
112
|
-
function ensureGitignore() {
|
|
113
|
-
const gitignorePath = path.join(process.cwd(), '.gitignore');
|
|
114
|
-
if (fs.existsSync(gitignorePath)) {
|
|
115
|
-
const content = fs.readFileSync(gitignorePath, 'utf-8');
|
|
116
|
-
if (/^\.env$/m.test(content))
|
|
117
|
-
return; // Already has .env
|
|
118
|
-
fs.writeFileSync(gitignorePath, content.trimEnd() + '\n.env\n');
|
|
119
|
-
}
|
|
120
|
-
else {
|
|
121
|
-
fs.writeFileSync(gitignorePath, '.env\n');
|
|
122
|
-
}
|
|
123
|
-
}
|
|
124
|
-
/**
|
|
125
|
-
* Inject init snippet into entry file.
|
|
126
|
-
*/
|
|
127
|
-
function wireEntryFile(dir, entryFile, project) {
|
|
128
|
-
const filePath = path.join(dir, entryFile);
|
|
129
|
-
if (!fs.existsSync(filePath))
|
|
130
|
-
return false;
|
|
131
|
-
const content = fs.readFileSync(filePath, 'utf-8');
|
|
132
|
-
// Check if already wired
|
|
133
|
-
if (content.includes('arknaInit') || content.includes('arkna.init')) {
|
|
134
|
-
return false; // Already wired
|
|
135
|
-
}
|
|
136
|
-
const snippet = project.runtime === 'node' && (0, detect_1.isCommonJS)(dir, entryFile)
|
|
137
|
-
? (0, detect_1.getRequireSnippet)()
|
|
138
|
-
: (0, detect_1.getInitSnippet)(project.runtime);
|
|
139
|
-
const injectionLine = (0, detect_1.findInjectionPoint)(content, project.runtime);
|
|
140
|
-
const lines = content.split('\n');
|
|
141
|
-
// Insert import + init call after last import
|
|
142
|
-
lines.splice(injectionLine, 0, snippet.importLine, snippet.initLine, '');
|
|
143
|
-
fs.writeFileSync(filePath, lines.join('\n'));
|
|
144
|
-
return true;
|
|
145
|
-
}
|
|
146
|
-
// ── Main Command ────────────────────────────────────────────────────────────
|
|
147
|
-
exports.initCommand = new commander_1.Command('init')
|
|
148
|
-
.description('Set up ARKNA observability in your project')
|
|
149
|
-
.option('-t, --token <token>', 'Integration token (skip prompt)')
|
|
150
|
-
.option('-u, --url <url>', 'ARKNA API URL')
|
|
151
|
-
.option('--skip-install', 'Skip SDK installation')
|
|
152
|
-
.option('--skip-wire', 'Skip code injection')
|
|
153
|
-
.action(async (options) => {
|
|
154
|
-
(0, ui_1.banner)();
|
|
155
|
-
const dir = process.cwd();
|
|
156
|
-
const url = options.url || resolveUrl();
|
|
157
|
-
// ── Phase 1: Detect Project ──────────────────────────────────────────
|
|
158
|
-
const detectSpinner = (0, ui_1.startSpinner)('Detecting project...');
|
|
159
|
-
const project = (0, detect_1.detectProject)(dir);
|
|
160
|
-
detectSpinner.stop();
|
|
161
|
-
if (project.runtime === 'unknown') {
|
|
162
|
-
console.log(` ${(0, ui_1.warn)('!')} Could not detect project type`);
|
|
163
|
-
console.log(` ${(0, ui_1.dim)('Expected: package.json (Node.js) or requirements.txt / pyproject.toml (Python)')}`);
|
|
164
|
-
console.log('');
|
|
165
|
-
}
|
|
166
|
-
else {
|
|
167
|
-
const sdkInfo = project.llmSdk !== 'unknown' ? ` (uses ${(0, detect_1.sdkLabel)(project.llmSdk)})` : '';
|
|
168
|
-
console.log(` ${(0, ui_1.success)('✔')} Detected ${(0, ui_1.brand)((0, detect_1.runtimeLabel)(project.runtime))}${(0, ui_1.dim)(sdkInfo)}`);
|
|
169
|
-
}
|
|
170
|
-
// ── Phase 2: Collect Token ───────────────────────────────────────────
|
|
171
|
-
let token = options.token || resolveExistingToken();
|
|
172
|
-
if (token) {
|
|
173
|
-
console.log(` ${(0, ui_1.success)('✔')} Token found`);
|
|
174
|
-
}
|
|
175
|
-
else {
|
|
176
|
-
console.log('');
|
|
177
|
-
const answer = await inquirer_1.default.prompt([{
|
|
178
|
-
type: 'input',
|
|
179
|
-
name: 'token',
|
|
180
|
-
message: `Paste your integration token ${(0, ui_1.dim)('(get one at app.arkna.com.au/setup)')}:`,
|
|
181
|
-
validate: (input) => {
|
|
182
|
-
if (!input.trim())
|
|
183
|
-
return 'Token is required';
|
|
184
|
-
if (!input.trim().startsWith('intk_'))
|
|
185
|
-
return 'Token must start with intk_';
|
|
186
|
-
return true;
|
|
187
|
-
},
|
|
188
|
-
}]);
|
|
189
|
-
token = answer.token.trim();
|
|
190
|
-
}
|
|
191
|
-
// Validate token format
|
|
192
|
-
if (!token.startsWith('intk_')) {
|
|
193
|
-
(0, ui_1.errorBox)('Invalid token format', [
|
|
194
|
-
(0, ui_1.dim)('Token must start with intk_'),
|
|
195
|
-
(0, ui_1.dim)('Get one at app.arkna.com.au/setup'),
|
|
196
|
-
]);
|
|
197
|
-
process.exit(1);
|
|
198
|
-
}
|
|
199
|
-
// Validate token against API
|
|
200
|
-
const tokenSpinner = (0, ui_1.startSpinner)('Verifying token...');
|
|
201
|
-
const tokenResult = await (0, connectivity_1.checkTokenValid)(url, token);
|
|
202
|
-
tokenSpinner.stop();
|
|
203
|
-
if (!tokenResult.passed) {
|
|
204
|
-
(0, ui_1.errorBox)('Token verification failed', [
|
|
205
|
-
tokenResult.detail,
|
|
206
|
-
(0, ui_1.dim)(`API: ${url}`),
|
|
207
|
-
]);
|
|
208
|
-
process.exit(1);
|
|
209
|
-
}
|
|
210
|
-
console.log(` ${(0, ui_1.success)('✔')} Token verified`);
|
|
211
|
-
// ── Phase 3: Install SDK ─────────────────────────────────────────────
|
|
212
|
-
if (!options.skipInstall && project.runtime !== 'unknown') {
|
|
213
|
-
if (project.sdkInstalled) {
|
|
214
|
-
console.log(` ${(0, ui_1.success)('✔')} SDK already installed`);
|
|
215
|
-
}
|
|
216
|
-
else {
|
|
217
|
-
const installCmd = (0, detect_1.getInstallCommand)(project.packageManager);
|
|
218
|
-
const installSpinner = (0, ui_1.startSpinner)(`Installing SDK... (${installCmd})`);
|
|
219
|
-
try {
|
|
220
|
-
(0, child_process_1.execSync)(installCmd, { cwd: dir, stdio: 'pipe', timeout: 120000 });
|
|
221
|
-
installSpinner.stop(`${(0, ui_1.success)('✔')} SDK installed`);
|
|
222
|
-
}
|
|
223
|
-
catch (err) {
|
|
224
|
-
installSpinner.stop(`${(0, ui_1.fail)('✘')} SDK install failed`);
|
|
225
|
-
console.log(` ${(0, ui_1.dim)(err.message || 'Unknown error')}`);
|
|
226
|
-
console.log(` ${(0, ui_1.dim)('Run manually:')} ${(0, ui_1.brand)(installCmd)}`);
|
|
227
|
-
console.log('');
|
|
228
|
-
}
|
|
229
|
-
}
|
|
230
|
-
}
|
|
231
|
-
// ── Phase 4: Wire Init Call ──────────────────────────────────────────
|
|
232
|
-
console.log('');
|
|
233
|
-
console.log(` ${(0, ui_1.brand)('Wiring ARKNA into your project...')}`);
|
|
234
|
-
// Write token to .env
|
|
235
|
-
writeProjectEnv(token, url);
|
|
236
|
-
console.log(` ${(0, ui_1.success)('✔')} Added ARKNA_TOKEN to .env`);
|
|
237
|
-
// Ensure .env in .gitignore
|
|
238
|
-
ensureGitignore();
|
|
239
|
-
// Also write to .arkna/.env for CLI tools
|
|
240
|
-
(0, arkna_dir_1.writeTokenEnv)(url, token);
|
|
241
|
-
// Inject init call into entry file
|
|
242
|
-
if (!options.skipWire && project.entryFile && project.runtime !== 'unknown') {
|
|
243
|
-
const wired = wireEntryFile(dir, project.entryFile, project);
|
|
244
|
-
if (wired) {
|
|
245
|
-
console.log(` ${(0, ui_1.success)('✔')} Added init() to ${project.entryFile}`);
|
|
246
|
-
}
|
|
247
|
-
else {
|
|
248
|
-
console.log(` ${(0, ui_1.dim)('─')} ${project.entryFile} already has ARKNA init`);
|
|
249
|
-
}
|
|
250
|
-
}
|
|
251
|
-
else if (!options.skipWire && !project.entryFile && project.runtime !== 'unknown') {
|
|
252
|
-
const snippet = (0, detect_1.getInitSnippet)(project.runtime);
|
|
253
|
-
console.log(` ${(0, ui_1.warn)('!')} No entry file found — add manually:`);
|
|
254
|
-
console.log(` ${(0, ui_1.dim)(snippet.importLine)}`);
|
|
255
|
-
console.log(` ${(0, ui_1.dim)(snippet.initLine)}`);
|
|
256
|
-
}
|
|
257
|
-
// ── Phase 5: Test Event ──────────────────────────────────────────────
|
|
258
|
-
console.log('');
|
|
259
|
-
const testSpinner = (0, ui_1.startSpinner)('Sending test event...');
|
|
260
|
-
const testResult = await (0, connectivity_1.sendTestRun)(url, token);
|
|
261
|
-
testSpinner.stop();
|
|
262
|
-
(0, ui_1.resultLine)(testResult.passed, testResult.name, testResult.detail);
|
|
263
|
-
// ── Done ─────────────────────────────────────────────────────────────
|
|
264
|
-
if (testResult.passed) {
|
|
265
|
-
(0, ui_1.successBox)('ARKNA is now recording', [
|
|
266
|
-
`${(0, ui_1.dim)('Dashboard:')} ${(0, ui_1.brand)('app.arkna.com.au')}`,
|
|
267
|
-
]);
|
|
268
|
-
}
|
|
269
|
-
else {
|
|
270
|
-
console.log('');
|
|
271
|
-
console.log(` ${(0, ui_1.warn)('!')} Test event failed, but setup is complete.`);
|
|
272
|
-
console.log(` ${(0, ui_1.dim)('Run')} ${(0, ui_1.brand)('arkna verify')} ${(0, ui_1.dim)('to diagnose.')}`);
|
|
273
|
-
}
|
|
274
|
-
console.log('');
|
|
275
|
-
});
|
|
276
|
-
//# sourceMappingURL=init.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"init.js","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/login.d.ts
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAyFpC,eAAO,MAAM,YAAY,SA8LrB,CAAC"}
|
package/dist/commands/login.js
DELETED
|
@@ -1,289 +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
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
36
|
-
exports.loginCommand = void 0;
|
|
37
|
-
const commander_1 = require("commander");
|
|
38
|
-
const child_process_1 = require("child_process");
|
|
39
|
-
const fs = __importStar(require("fs"));
|
|
40
|
-
const path = __importStar(require("path"));
|
|
41
|
-
const ui_1 = require("../lib/ui");
|
|
42
|
-
const connectivity_1 = require("../lib/connectivity");
|
|
43
|
-
const arkna_dir_1 = require("../lib/arkna-dir");
|
|
44
|
-
/**
|
|
45
|
-
* Resolve URL from (in priority order):
|
|
46
|
-
* 1. --url flag
|
|
47
|
-
* 2. ARKNA_URL env var
|
|
48
|
-
* 3. .arkna/.env file
|
|
49
|
-
* 4. Default
|
|
50
|
-
*/
|
|
51
|
-
function resolveUrl(flagUrl) {
|
|
52
|
-
if (flagUrl)
|
|
53
|
-
return flagUrl;
|
|
54
|
-
if (process.env.ARKNA_URL)
|
|
55
|
-
return process.env.ARKNA_URL;
|
|
56
|
-
const envCreds = (0, arkna_dir_1.readArknaEnv)();
|
|
57
|
-
if (envCreds?.url)
|
|
58
|
-
return envCreds.url;
|
|
59
|
-
return 'https://api.arkna.com.au';
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Write token to .arkna/.env (creates directory if needed)
|
|
63
|
-
*/
|
|
64
|
-
function writeTokenToEnv(url, token, baseDir) {
|
|
65
|
-
const dir = path.join(baseDir || process.cwd(), '.arkna');
|
|
66
|
-
fs.mkdirSync(dir, { recursive: true });
|
|
67
|
-
const envPath = path.join(dir, '.env');
|
|
68
|
-
const envContent = `# ARKNA Agent Enrollment — Environment Variables
|
|
69
|
-
# This file is gitignored. Do NOT commit this file.
|
|
70
|
-
# Token created via: arkna login
|
|
71
|
-
ARKNA_URL=${url}
|
|
72
|
-
ARKNA_TOKEN=${token}
|
|
73
|
-
`;
|
|
74
|
-
fs.writeFileSync(envPath, envContent);
|
|
75
|
-
// Ensure .gitignore exists
|
|
76
|
-
const gitignorePath = path.join(dir, '.gitignore');
|
|
77
|
-
if (!fs.existsSync(gitignorePath)) {
|
|
78
|
-
fs.writeFileSync(gitignorePath, `# .arkna/ contains secrets — never commit any of it\n*\n!.gitignore\n`);
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
/**
|
|
82
|
-
* Detect if we're in a headless environment (SSH, Docker, CI, no display)
|
|
83
|
-
*/
|
|
84
|
-
function isHeadless() {
|
|
85
|
-
// SSH session
|
|
86
|
-
if (process.env.SSH_CONNECTION || process.env.SSH_TTY)
|
|
87
|
-
return true;
|
|
88
|
-
// CI environments
|
|
89
|
-
if (process.env.CI || process.env.GITHUB_ACTIONS || process.env.GITLAB_CI)
|
|
90
|
-
return true;
|
|
91
|
-
// Docker / container
|
|
92
|
-
if (process.env.container || process.env.DOCKER_CONTAINER)
|
|
93
|
-
return true;
|
|
94
|
-
// Linux without display
|
|
95
|
-
if (process.platform === 'linux' && !process.env.DISPLAY && !process.env.WAYLAND_DISPLAY)
|
|
96
|
-
return true;
|
|
97
|
-
return false;
|
|
98
|
-
}
|
|
99
|
-
/**
|
|
100
|
-
* Try to open a URL in the default browser. Returns true if attempted.
|
|
101
|
-
*/
|
|
102
|
-
function tryOpenBrowser(url) {
|
|
103
|
-
if (isHeadless())
|
|
104
|
-
return false;
|
|
105
|
-
const cmd = process.platform === 'darwin'
|
|
106
|
-
? `open "${url}"`
|
|
107
|
-
: process.platform === 'win32'
|
|
108
|
-
? `start "" "${url}"`
|
|
109
|
-
: `xdg-open "${url}"`;
|
|
110
|
-
(0, child_process_1.exec)(cmd, () => {
|
|
111
|
-
// Silently fail — user can open manually
|
|
112
|
-
});
|
|
113
|
-
return true;
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Sleep for ms milliseconds
|
|
117
|
-
*/
|
|
118
|
-
function sleep(ms) {
|
|
119
|
-
return new Promise(resolve => setTimeout(resolve, ms));
|
|
120
|
-
}
|
|
121
|
-
exports.loginCommand = new commander_1.Command('login')
|
|
122
|
-
.description('Authenticate the CLI via browser approval (no token pasting)')
|
|
123
|
-
.option('-u, --url <url>', 'ARKNA gateway URL (or set ARKNA_URL env var)')
|
|
124
|
-
.option('-n, --name <name>', 'Agent name (shown in token list)')
|
|
125
|
-
.action(async (options) => {
|
|
126
|
-
(0, ui_1.banner)();
|
|
127
|
-
// ── Resolve URL ──────────────────────────────────────────────────────
|
|
128
|
-
const url = resolveUrl(options.url);
|
|
129
|
-
if (!url.startsWith('http://') && !url.startsWith('https://')) {
|
|
130
|
-
(0, ui_1.errorBox)('Invalid gateway URL', [
|
|
131
|
-
`Got: ${url}`,
|
|
132
|
-
(0, ui_1.dim)('URL must start with http:// or https://'),
|
|
133
|
-
]);
|
|
134
|
-
process.exit(1);
|
|
135
|
-
}
|
|
136
|
-
// ── Health check ─────────────────────────────────────────────────────
|
|
137
|
-
const healthSpinner = (0, ui_1.startSpinner)('Checking gateway...');
|
|
138
|
-
const health = await (0, connectivity_1.checkHealth)(url);
|
|
139
|
-
healthSpinner.stop();
|
|
140
|
-
if (!health.passed) {
|
|
141
|
-
(0, ui_1.errorBox)('Gateway unreachable', [
|
|
142
|
-
health.detail,
|
|
143
|
-
(0, ui_1.dim)(`URL: ${url}`),
|
|
144
|
-
]);
|
|
145
|
-
process.exit(1);
|
|
146
|
-
}
|
|
147
|
-
console.log(` ${(0, ui_1.brand)('✔')} Gateway reachable ${(0, ui_1.dim)(health.detail)}`);
|
|
148
|
-
// ── Request device code ──────────────────────────────────────────────
|
|
149
|
-
const codeSpinner = (0, ui_1.startSpinner)('Requesting device code...');
|
|
150
|
-
let deviceCode;
|
|
151
|
-
let verificationUri;
|
|
152
|
-
let verificationUriComplete;
|
|
153
|
-
try {
|
|
154
|
-
const resp = await fetch(`${url}/api/auth/device/code`, {
|
|
155
|
-
method: 'POST',
|
|
156
|
-
headers: { 'Content-Type': 'application/json' },
|
|
157
|
-
body: JSON.stringify({
|
|
158
|
-
cli_platform: `${process.platform}-${process.arch}`,
|
|
159
|
-
agent_name: options.name || undefined,
|
|
160
|
-
}),
|
|
161
|
-
});
|
|
162
|
-
if (!resp.ok) {
|
|
163
|
-
codeSpinner.stop();
|
|
164
|
-
const err = await resp.json().catch(() => ({ error: 'Request failed' }));
|
|
165
|
-
(0, ui_1.errorBox)('Failed to get device code', [
|
|
166
|
-
String(err.error || `HTTP ${resp.status}`),
|
|
167
|
-
]);
|
|
168
|
-
process.exit(1);
|
|
169
|
-
}
|
|
170
|
-
const data = await resp.json();
|
|
171
|
-
deviceCode = data.device_code;
|
|
172
|
-
verificationUri = data.verification_uri;
|
|
173
|
-
verificationUriComplete = data.verification_uri_complete;
|
|
174
|
-
codeSpinner.stop();
|
|
175
|
-
}
|
|
176
|
-
catch (err) {
|
|
177
|
-
codeSpinner.stop();
|
|
178
|
-
(0, ui_1.errorBox)('Failed to get device code', [
|
|
179
|
-
err.message || 'Connection failed',
|
|
180
|
-
]);
|
|
181
|
-
process.exit(1);
|
|
182
|
-
}
|
|
183
|
-
// ── Display code ────────────────────────────────────────────────────
|
|
184
|
-
const headless = isHeadless();
|
|
185
|
-
(0, ui_1.divider)();
|
|
186
|
-
console.log('');
|
|
187
|
-
console.log(` ${(0, ui_1.brand)('▲')} Go to:`);
|
|
188
|
-
console.log(` ${(0, ui_1.brand)(verificationUri)}`);
|
|
189
|
-
console.log('');
|
|
190
|
-
console.log(` Enter code:`);
|
|
191
|
-
console.log('');
|
|
192
|
-
console.log(` ${(0, ui_1.brand)('┌──────────────┐')}`);
|
|
193
|
-
console.log(` ${(0, ui_1.brand)('│')} ${(0, ui_1.brand)(deviceCode)} ${(0, ui_1.brand)('│')}`);
|
|
194
|
-
console.log(` ${(0, ui_1.brand)('└──────────────┘')}`);
|
|
195
|
-
console.log('');
|
|
196
|
-
console.log(` ${(0, ui_1.dim)('Or open directly:')}`);
|
|
197
|
-
console.log(` ${(0, ui_1.dim)(verificationUriComplete)}`);
|
|
198
|
-
console.log('');
|
|
199
|
-
(0, ui_1.divider)();
|
|
200
|
-
// Try to open browser (skip on headless)
|
|
201
|
-
const opened = tryOpenBrowser(verificationUriComplete);
|
|
202
|
-
if (opened) {
|
|
203
|
-
console.log(` ${(0, ui_1.dim)('Opening browser...')}`);
|
|
204
|
-
}
|
|
205
|
-
else {
|
|
206
|
-
console.log(` ${(0, ui_1.dim)('Open the link above on any device, then approve.')}`);
|
|
207
|
-
}
|
|
208
|
-
// ── Poll for approval ────────────────────────────────────────────────
|
|
209
|
-
const pollSpinner = (0, ui_1.startSpinner)('Waiting for approval... (Ctrl+C to cancel)');
|
|
210
|
-
const maxAttempts = 180; // 15 minutes at 5s intervals
|
|
211
|
-
let token = null;
|
|
212
|
-
for (let attempt = 0; attempt < maxAttempts; attempt++) {
|
|
213
|
-
await sleep(5000);
|
|
214
|
-
try {
|
|
215
|
-
const resp = await fetch(`${url}/api/auth/device/token`, {
|
|
216
|
-
method: 'POST',
|
|
217
|
-
headers: { 'Content-Type': 'application/json' },
|
|
218
|
-
body: JSON.stringify({ device_code: deviceCode }),
|
|
219
|
-
});
|
|
220
|
-
if (resp.ok) {
|
|
221
|
-
const data = await resp.json();
|
|
222
|
-
token = data.token;
|
|
223
|
-
break;
|
|
224
|
-
}
|
|
225
|
-
const body = await resp.json().catch(() => ({ error: 'unknown' }));
|
|
226
|
-
const error = body.error;
|
|
227
|
-
if (error === 'authorization_pending') {
|
|
228
|
-
// Keep polling
|
|
229
|
-
continue;
|
|
230
|
-
}
|
|
231
|
-
if (error === 'slow_down') {
|
|
232
|
-
// Wait an extra 5s before next attempt
|
|
233
|
-
await sleep(5000);
|
|
234
|
-
continue;
|
|
235
|
-
}
|
|
236
|
-
// Terminal errors
|
|
237
|
-
pollSpinner.stop();
|
|
238
|
-
if (error === 'expired_token') {
|
|
239
|
-
(0, ui_1.errorBox)('Code expired', [
|
|
240
|
-
(0, ui_1.dim)('The 15-minute window has passed.'),
|
|
241
|
-
(0, ui_1.dim)('Run `arkna login` again to get a new code.'),
|
|
242
|
-
]);
|
|
243
|
-
}
|
|
244
|
-
else if (error === 'access_denied') {
|
|
245
|
-
(0, ui_1.errorBox)('Login denied', [
|
|
246
|
-
(0, ui_1.dim)('The code was rejected in the browser.'),
|
|
247
|
-
]);
|
|
248
|
-
}
|
|
249
|
-
else {
|
|
250
|
-
(0, ui_1.errorBox)('Login failed', [error || `HTTP ${resp.status}`]);
|
|
251
|
-
}
|
|
252
|
-
process.exit(1);
|
|
253
|
-
}
|
|
254
|
-
catch {
|
|
255
|
-
// Network error — keep trying
|
|
256
|
-
continue;
|
|
257
|
-
}
|
|
258
|
-
}
|
|
259
|
-
pollSpinner.stop();
|
|
260
|
-
if (!token) {
|
|
261
|
-
(0, ui_1.errorBox)('Timed out', [
|
|
262
|
-
(0, ui_1.dim)('No approval received within 15 minutes.'),
|
|
263
|
-
(0, ui_1.dim)('Run `arkna login` again to retry.'),
|
|
264
|
-
]);
|
|
265
|
-
process.exit(1);
|
|
266
|
-
}
|
|
267
|
-
// ── Write token ──────────────────────────────────────────────────────
|
|
268
|
-
writeTokenToEnv(url, token);
|
|
269
|
-
console.log('');
|
|
270
|
-
(0, ui_1.successBox)('AUTHENTICATED', [
|
|
271
|
-
`${(0, ui_1.dim)('Token:')} ${(0, ui_1.maskToken)(token)}`,
|
|
272
|
-
`${(0, ui_1.dim)('Gateway:')} ${url}`,
|
|
273
|
-
`${(0, ui_1.dim)('Saved to:')} .arkna/.env`,
|
|
274
|
-
`${(0, ui_1.dim)('Expires:')} 30 days`,
|
|
275
|
-
]);
|
|
276
|
-
// Warn if stale ARKNA_TOKEN env var will shadow the fresh token
|
|
277
|
-
if (process.env.ARKNA_TOKEN && process.env.ARKNA_TOKEN !== token) {
|
|
278
|
-
console.log('');
|
|
279
|
-
console.log(` ${(0, ui_1.warn)('\u26A0')} ${(0, ui_1.warn)('ARKNA_TOKEN env var contains a different token.')}`);
|
|
280
|
-
console.log(` ${(0, ui_1.dim)(' The CLI will use the env var instead of the fresh token.')}`);
|
|
281
|
-
console.log(` ${(0, ui_1.dim)(' Fix:')} ${(0, ui_1.brand)('unset ARKNA_TOKEN')} ${(0, ui_1.dim)('or:')} ${(0, ui_1.brand)('source .arkna/.env')}`);
|
|
282
|
-
}
|
|
283
|
-
(0, ui_1.hint)([
|
|
284
|
-
`${(0, ui_1.brand)('NEXT:')} Set up observability in your project:`,
|
|
285
|
-
'',
|
|
286
|
-
` ${(0, ui_1.dim)('$')} arkna init`,
|
|
287
|
-
]);
|
|
288
|
-
});
|
|
289
|
-
//# sourceMappingURL=login.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../src/commands/login.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"status.d.ts","sourceRoot":"","sources":["../../src/commands/status.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAsBpC,eAAO,MAAM,aAAa,SAyDtB,CAAC"}
|