@armoriq/sdk-dev 0.2.12 → 0.2.13
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/cli/commands/login.d.ts +4 -0
- package/dist/cli/commands/login.d.ts.map +1 -0
- package/dist/cli/commands/login.js +221 -0
- package/dist/cli/commands/login.js.map +1 -0
- package/dist/cli/commands/logout.d.ts +2 -0
- package/dist/cli/commands/logout.d.ts.map +1 -0
- package/dist/cli/commands/logout.js +14 -0
- package/dist/cli/commands/logout.js.map +1 -0
- package/dist/cli/commands/whoami.d.ts +2 -0
- package/dist/cli/commands/whoami.d.ts.map +1 -0
- package/dist/cli/commands/whoami.js +22 -0
- package/dist/cli/commands/whoami.js.map +1 -0
- package/dist/cli/credentials.d.ts +12 -0
- package/dist/cli/credentials.d.ts.map +1 -0
- package/dist/cli/credentials.js +81 -0
- package/dist/cli/credentials.js.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +33 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/client.d.ts +0 -30
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +20 -113
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +3 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +3 -9
- package/dist/index.js.map +1 -1
- package/dist/integrations/google-adk.d.ts +8 -0
- package/dist/integrations/google-adk.d.ts.map +1 -1
- package/dist/integrations/google-adk.js +98 -8
- package/dist/integrations/google-adk.js.map +1 -1
- package/dist/models.d.ts +0 -36
- package/dist/models.d.ts.map +1 -1
- package/dist/session.d.ts +112 -10
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +471 -17
- package/dist/session.js.map +1 -1
- package/package.json +6 -45
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/login.ts"],"names":[],"mappings":"AA+GA,wBAAsB,YAAY,CAAC,OAAO,EAAE;IAAE,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,iBA0E/D"}
|
|
@@ -0,0 +1,221 @@
|
|
|
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.loginCommand = loginCommand;
|
|
40
|
+
const http = __importStar(require("http"));
|
|
41
|
+
const net = __importStar(require("net"));
|
|
42
|
+
const axios_1 = __importDefault(require("axios"));
|
|
43
|
+
const credentials_1 = require("../credentials");
|
|
44
|
+
const DEFAULT_BACKEND = 'https://staging-api.armoriq.ai';
|
|
45
|
+
function findFreePort() {
|
|
46
|
+
return new Promise((resolve, reject) => {
|
|
47
|
+
const srv = net.createServer();
|
|
48
|
+
srv.listen(0, () => {
|
|
49
|
+
const addr = srv.address();
|
|
50
|
+
srv.close(() => resolve(addr.port));
|
|
51
|
+
});
|
|
52
|
+
srv.on('error', reject);
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
const SUCCESS_HTML = `<!DOCTYPE html>
|
|
56
|
+
<html><head><meta charset="utf-8"><title>ArmorIQ</title>
|
|
57
|
+
<link rel="icon" href="https://armoriq.ai/images/favicon.svg" type="image/svg+xml">
|
|
58
|
+
<style>
|
|
59
|
+
body { font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', sans-serif;
|
|
60
|
+
display: flex; align-items: center; justify-content: center; height: 100vh;
|
|
61
|
+
margin: 0; background: #f8fafc; color: #1e293b; }
|
|
62
|
+
.card { text-align: center; padding: 3rem; background: white;
|
|
63
|
+
border-radius: 1rem; box-shadow: 0 1px 3px rgba(0,0,0,0.1);
|
|
64
|
+
max-width: 400px; }
|
|
65
|
+
.check { width: 64px; height: 64px; background: #dcfce7; border-radius: 50%;
|
|
66
|
+
display: flex; align-items: center; justify-content: center;
|
|
67
|
+
margin: 0 auto 1.5rem; }
|
|
68
|
+
.check svg { width: 32px; height: 32px; color: #16a34a; }
|
|
69
|
+
h2 { margin: 0 0 0.5rem; font-size: 1.25rem; }
|
|
70
|
+
p { margin: 0; font-size: 0.875rem; color: #64748b; }
|
|
71
|
+
</style></head><body>
|
|
72
|
+
<div class="card">
|
|
73
|
+
<div class="check">
|
|
74
|
+
<svg fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
|
75
|
+
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M5 13l4 4L19 7"/>
|
|
76
|
+
</svg>
|
|
77
|
+
</div>
|
|
78
|
+
<h2>Authorized</h2>
|
|
79
|
+
<p>You can close this tab and return to your terminal.</p>
|
|
80
|
+
</div>
|
|
81
|
+
</body></html>`;
|
|
82
|
+
function startCallbackServer(port) {
|
|
83
|
+
return new Promise((resolve, reject) => {
|
|
84
|
+
let timeoutHandle;
|
|
85
|
+
const server = http.createServer((req, res) => {
|
|
86
|
+
const url = new URL(req.url || '/', `http://localhost:${port}`);
|
|
87
|
+
if (url.pathname === '/callback') {
|
|
88
|
+
const apiKey = url.searchParams.get('key') || '';
|
|
89
|
+
const email = url.searchParams.get('email') || '';
|
|
90
|
+
const userId = url.searchParams.get('user_id') || '';
|
|
91
|
+
const orgId = url.searchParams.get('org_id') || '';
|
|
92
|
+
res.writeHead(200, {
|
|
93
|
+
'Content-Type': 'text/html; charset=utf-8',
|
|
94
|
+
'Connection': 'close',
|
|
95
|
+
});
|
|
96
|
+
res.end(SUCCESS_HTML, () => {
|
|
97
|
+
// Force-close all connections so Node can exit
|
|
98
|
+
clearTimeout(timeoutHandle);
|
|
99
|
+
server.close();
|
|
100
|
+
server.closeAllConnections?.();
|
|
101
|
+
setImmediate(() => {
|
|
102
|
+
if (apiKey) {
|
|
103
|
+
resolve({ apiKey, email, userId, orgId });
|
|
104
|
+
}
|
|
105
|
+
else {
|
|
106
|
+
reject(new Error('No API key received in callback'));
|
|
107
|
+
}
|
|
108
|
+
});
|
|
109
|
+
});
|
|
110
|
+
}
|
|
111
|
+
else {
|
|
112
|
+
res.writeHead(404, { 'Connection': 'close' });
|
|
113
|
+
res.end('Not found');
|
|
114
|
+
}
|
|
115
|
+
});
|
|
116
|
+
server.listen(port, '127.0.0.1');
|
|
117
|
+
server.on('error', reject);
|
|
118
|
+
// Timeout after 15 minutes — use unref() so it doesn't keep Node alive
|
|
119
|
+
timeoutHandle = setTimeout(() => {
|
|
120
|
+
server.close();
|
|
121
|
+
server.closeAllConnections?.();
|
|
122
|
+
reject(new Error('Timed out waiting for authorization'));
|
|
123
|
+
}, 15 * 60 * 1000);
|
|
124
|
+
timeoutHandle.unref();
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
async function loginCommand(options) {
|
|
128
|
+
const backend = options.backend || process.env.ARMORIQ_BACKEND_URL || DEFAULT_BACKEND;
|
|
129
|
+
console.log('');
|
|
130
|
+
console.log(' \x1b[1m\x1b[36m┃ ArmorIQ Login\x1b[0m');
|
|
131
|
+
console.log('');
|
|
132
|
+
// Step 1: find a free port and start the local callback server
|
|
133
|
+
const port = await findFreePort();
|
|
134
|
+
const callbackUrl = `http://localhost:${port}/callback`;
|
|
135
|
+
const callbackPromise = startCallbackServer(port);
|
|
136
|
+
// Step 2: request device code from backend (include our callback URL)
|
|
137
|
+
let deviceResponse;
|
|
138
|
+
try {
|
|
139
|
+
const res = await axios_1.default.post(`${backend}/auth/device/code`, { callback_url: callbackUrl }, { timeout: 10000 });
|
|
140
|
+
deviceResponse = res.data;
|
|
141
|
+
}
|
|
142
|
+
catch (err) {
|
|
143
|
+
const msg = err.response?.data?.message || err.response?.statusText || err.message || 'Unknown error';
|
|
144
|
+
const status = err.response?.status || '';
|
|
145
|
+
const detail = err.code || '';
|
|
146
|
+
console.error(` \x1b[31m✘\x1b[0m Failed to request device code: ${msg}${status ? ` (HTTP ${status})` : ''}${detail ? ` [${detail}]` : ''}`);
|
|
147
|
+
process.exit(1);
|
|
148
|
+
}
|
|
149
|
+
const { user_code, verification_uri_complete } = deviceResponse;
|
|
150
|
+
// Step 3: open browser
|
|
151
|
+
const browserUrl = `${verification_uri_complete}&callback=${encodeURIComponent(callbackUrl)}`;
|
|
152
|
+
console.log(` Opening browser...\n`);
|
|
153
|
+
try {
|
|
154
|
+
const open = (await Promise.resolve().then(() => __importStar(require('open')))).default;
|
|
155
|
+
await open(browserUrl);
|
|
156
|
+
}
|
|
157
|
+
catch {
|
|
158
|
+
console.log(' \x1b[33m!\x1b[0m Browser didn\'t open automatically.');
|
|
159
|
+
}
|
|
160
|
+
console.log(` If the browser didn't open, visit:`);
|
|
161
|
+
console.log(` \x1b[36m\x1b[1m${browserUrl}\x1b[0m\n`);
|
|
162
|
+
console.log(` Confirm this code in your browser: \x1b[1m${user_code}\x1b[0m\n`);
|
|
163
|
+
process.stdout.write(' Waiting for authorization...');
|
|
164
|
+
// Step 4: wait for the callback OR poll as fallback
|
|
165
|
+
try {
|
|
166
|
+
const result = await Promise.race([
|
|
167
|
+
callbackPromise,
|
|
168
|
+
pollFallback(backend, deviceResponse.device_code, deviceResponse.interval, deviceResponse.expires_in),
|
|
169
|
+
]);
|
|
170
|
+
process.stdout.write(' \x1b[32m✔\x1b[0m\n');
|
|
171
|
+
console.log('');
|
|
172
|
+
console.log(` \x1b[32m✔\x1b[0m Logged in as \x1b[1m${result.email || 'unknown'}\x1b[0m`);
|
|
173
|
+
(0, credentials_1.saveCredentials)({
|
|
174
|
+
apiKey: result.apiKey,
|
|
175
|
+
email: result.email,
|
|
176
|
+
userId: result.userId,
|
|
177
|
+
orgId: result.orgId,
|
|
178
|
+
savedAt: new Date().toISOString(),
|
|
179
|
+
});
|
|
180
|
+
console.log(` \x1b[32m✔\x1b[0m API key saved to ${(0, credentials_1.getCredentialsPath)()}`);
|
|
181
|
+
console.log('');
|
|
182
|
+
}
|
|
183
|
+
catch (err) {
|
|
184
|
+
process.stdout.write(' \x1b[31m✘\x1b[0m\n');
|
|
185
|
+
console.error(` \x1b[31m✘\x1b[0m ${err.message || 'Authorization failed'}`);
|
|
186
|
+
process.exit(1);
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
async function pollFallback(backend, deviceCode, interval, expiresIn) {
|
|
190
|
+
const pollIntervalMs = (interval || 5) * 1000;
|
|
191
|
+
const deadline = Date.now() + expiresIn * 1000;
|
|
192
|
+
while (Date.now() < deadline) {
|
|
193
|
+
await new Promise((resolve) => setTimeout(resolve, pollIntervalMs));
|
|
194
|
+
try {
|
|
195
|
+
const res = await axios_1.default.post(`${backend}/auth/device/token`, { deviceCode }, { timeout: 10000 });
|
|
196
|
+
const data = res.data;
|
|
197
|
+
if (data.error === 'authorization_pending' || data.error === 'slow_down') {
|
|
198
|
+
continue;
|
|
199
|
+
}
|
|
200
|
+
if (data.error) {
|
|
201
|
+
throw new Error(data.error_description || data.error);
|
|
202
|
+
}
|
|
203
|
+
if (data.api_key) {
|
|
204
|
+
return {
|
|
205
|
+
apiKey: data.api_key,
|
|
206
|
+
email: data.email || '',
|
|
207
|
+
userId: data.user_id || '',
|
|
208
|
+
orgId: data.org_id || '',
|
|
209
|
+
};
|
|
210
|
+
}
|
|
211
|
+
}
|
|
212
|
+
catch (err) {
|
|
213
|
+
if (err.code === 'ECONNREFUSED' || err.code === 'ETIMEDOUT') {
|
|
214
|
+
continue;
|
|
215
|
+
}
|
|
216
|
+
throw err;
|
|
217
|
+
}
|
|
218
|
+
}
|
|
219
|
+
throw new Error('Timed out waiting for authorization. Run `armoriq login` again.');
|
|
220
|
+
}
|
|
221
|
+
//# sourceMappingURL=login.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"login.js","sourceRoot":"","sources":["../../../src/cli/commands/login.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logout.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/logout.ts"],"names":[],"mappings":"AAEA,wBAAgB,aAAa,SAO5B"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.logoutCommand = logoutCommand;
|
|
4
|
+
const credentials_1 = require("../credentials");
|
|
5
|
+
function logoutCommand() {
|
|
6
|
+
const removed = (0, credentials_1.clearCredentials)();
|
|
7
|
+
if (removed) {
|
|
8
|
+
console.log(` \x1b[32m✔\x1b[0m Credentials removed from ${(0, credentials_1.getCredentialsPath)()}`);
|
|
9
|
+
}
|
|
10
|
+
else {
|
|
11
|
+
console.log(' \x1b[2mNo credentials found — already logged out.\x1b[0m');
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=logout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logout.js","sourceRoot":"","sources":["../../../src/cli/commands/logout.ts"],"names":[],"mappings":";;AAEA,sCAOC;AATD,gDAAsE;AAEtE,SAAgB,aAAa;IAC3B,MAAM,OAAO,GAAG,IAAA,8BAAgB,GAAE,CAAC;IACnC,IAAI,OAAO,EAAE,CAAC;QACZ,OAAO,CAAC,GAAG,CAAC,+CAA+C,IAAA,gCAAkB,GAAE,EAAE,CAAC,CAAC;IACrF,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,4DAA4D,CAAC,CAAC;IAC5E,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whoami.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/whoami.ts"],"names":[],"mappings":"AAEA,wBAAgB,aAAa,SAgB5B"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.whoamiCommand = whoamiCommand;
|
|
4
|
+
const credentials_1 = require("../credentials");
|
|
5
|
+
function whoamiCommand() {
|
|
6
|
+
const creds = (0, credentials_1.loadCredentials)();
|
|
7
|
+
if (!creds) {
|
|
8
|
+
console.log(' \x1b[2mNot logged in. Run `armoriq login` to authenticate.\x1b[0m');
|
|
9
|
+
return;
|
|
10
|
+
}
|
|
11
|
+
console.log('');
|
|
12
|
+
console.log(' \x1b[1m\x1b[36m┃ ArmorIQ Credentials\x1b[0m');
|
|
13
|
+
console.log('');
|
|
14
|
+
console.log(` Email: \x1b[1m${creds.email || 'unknown'}\x1b[0m`);
|
|
15
|
+
console.log(` API Key: \x1b[2m${creds.apiKey.substring(0, 16)}...\x1b[0m`);
|
|
16
|
+
console.log(` User ID: \x1b[2m${creds.userId || 'n/a'}\x1b[0m`);
|
|
17
|
+
console.log(` Org ID: \x1b[2m${creds.orgId || 'n/a'}\x1b[0m`);
|
|
18
|
+
console.log(` Saved at: \x1b[2m${creds.savedAt || 'n/a'}\x1b[0m`);
|
|
19
|
+
console.log(` File: \x1b[2m${(0, credentials_1.getCredentialsPath)()}\x1b[0m`);
|
|
20
|
+
console.log('');
|
|
21
|
+
}
|
|
22
|
+
//# sourceMappingURL=whoami.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whoami.js","sourceRoot":"","sources":["../../../src/cli/commands/whoami.ts"],"names":[],"mappings":";;AAEA,sCAgBC;AAlBD,gDAAqE;AAErE,SAAgB,aAAa;IAC3B,MAAM,KAAK,GAAG,IAAA,6BAAe,GAAE,CAAC;IAChC,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,CAAC,GAAG,CAAC,qEAAqE,CAAC,CAAC;QACnF,OAAO;IACT,CAAC;IACD,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,+CAA+C,CAAC,CAAC;IAC7D,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,CAAC,KAAK,IAAI,SAAS,SAAS,CAAC,CAAC;IACrE,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,CAAC,YAAY,CAAC,CAAC;IAC7E,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,CAAC,MAAM,IAAI,KAAK,SAAS,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,CAAC,KAAK,IAAI,KAAK,SAAS,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,sBAAsB,KAAK,CAAC,OAAO,IAAI,KAAK,SAAS,CAAC,CAAC;IACnE,OAAO,CAAC,GAAG,CAAC,sBAAsB,IAAA,gCAAkB,GAAE,SAAS,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface Credentials {
|
|
2
|
+
apiKey: string;
|
|
3
|
+
email: string;
|
|
4
|
+
userId: string;
|
|
5
|
+
orgId: string;
|
|
6
|
+
savedAt: string;
|
|
7
|
+
}
|
|
8
|
+
export declare function loadCredentials(): Credentials | null;
|
|
9
|
+
export declare function saveCredentials(creds: Credentials): void;
|
|
10
|
+
export declare function clearCredentials(): boolean;
|
|
11
|
+
export declare function getCredentialsPath(): string;
|
|
12
|
+
//# sourceMappingURL=credentials.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credentials.d.ts","sourceRoot":"","sources":["../../src/cli/credentials.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,eAAe,IAAI,WAAW,GAAG,IAAI,CAcpD;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,WAAW,GAAG,IAAI,CAIxD;AAED,wBAAgB,gBAAgB,IAAI,OAAO,CAU1C;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAE3C"}
|
|
@@ -0,0 +1,81 @@
|
|
|
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.loadCredentials = loadCredentials;
|
|
37
|
+
exports.saveCredentials = saveCredentials;
|
|
38
|
+
exports.clearCredentials = clearCredentials;
|
|
39
|
+
exports.getCredentialsPath = getCredentialsPath;
|
|
40
|
+
const fs = __importStar(require("fs"));
|
|
41
|
+
const path = __importStar(require("path"));
|
|
42
|
+
const os = __importStar(require("os"));
|
|
43
|
+
const ARMORIQ_DIR = path.join(os.homedir(), '.armoriq');
|
|
44
|
+
const CREDENTIALS_FILE = path.join(ARMORIQ_DIR, 'credentials.json');
|
|
45
|
+
function loadCredentials() {
|
|
46
|
+
try {
|
|
47
|
+
if (!fs.existsSync(CREDENTIALS_FILE)) {
|
|
48
|
+
return null;
|
|
49
|
+
}
|
|
50
|
+
const raw = fs.readFileSync(CREDENTIALS_FILE, 'utf-8');
|
|
51
|
+
const parsed = JSON.parse(raw);
|
|
52
|
+
if (parsed && typeof parsed.apiKey === 'string' && parsed.apiKey.startsWith('ak_')) {
|
|
53
|
+
return parsed;
|
|
54
|
+
}
|
|
55
|
+
return null;
|
|
56
|
+
}
|
|
57
|
+
catch {
|
|
58
|
+
return null;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
function saveCredentials(creds) {
|
|
62
|
+
fs.mkdirSync(ARMORIQ_DIR, { recursive: true });
|
|
63
|
+
const content = JSON.stringify(creds, null, 2) + '\n';
|
|
64
|
+
fs.writeFileSync(CREDENTIALS_FILE, content, { mode: 0o600 });
|
|
65
|
+
}
|
|
66
|
+
function clearCredentials() {
|
|
67
|
+
try {
|
|
68
|
+
if (fs.existsSync(CREDENTIALS_FILE)) {
|
|
69
|
+
fs.unlinkSync(CREDENTIALS_FILE);
|
|
70
|
+
return true;
|
|
71
|
+
}
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
catch {
|
|
75
|
+
return false;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
function getCredentialsPath() {
|
|
79
|
+
return CREDENTIALS_FILE;
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=credentials.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"credentials.js","sourceRoot":"","sources":["../../src/cli/credentials.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAeA,0CAcC;AAED,0CAIC;AAED,4CAUC;AAED,gDAEC;AAnDD,uCAAyB;AACzB,2CAA6B;AAC7B,uCAAyB;AAEzB,MAAM,WAAW,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,UAAU,CAAC,CAAC;AACxD,MAAM,gBAAgB,GAAG,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,kBAAkB,CAAC,CAAC;AAUpE,SAAgB,eAAe;IAC7B,IAAI,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACrC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,GAAG,GAAG,EAAE,CAAC,YAAY,CAAC,gBAAgB,EAAE,OAAO,CAAC,CAAC;QACvD,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAC/B,IAAI,MAAM,IAAI,OAAO,MAAM,CAAC,MAAM,KAAK,QAAQ,IAAI,MAAM,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACnF,OAAO,MAAqB,CAAC;QAC/B,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;AACH,CAAC;AAED,SAAgB,eAAe,CAAC,KAAkB;IAChD,EAAE,CAAC,SAAS,CAAC,WAAW,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC,GAAG,IAAI,CAAC;IACtD,EAAE,CAAC,aAAa,CAAC,gBAAgB,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;AAC/D,CAAC;AAED,SAAgB,gBAAgB;IAC9B,IAAI,CAAC;QACH,IAAI,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,EAAE,CAAC;YACpC,EAAE,CAAC,UAAU,CAAC,gBAAgB,CAAC,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAED,SAAgB,kBAAkB;IAChC,OAAO,gBAAgB,CAAC;AAC1B,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
"use strict";
|
|
3
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
4
|
+
const commander_1 = require("commander");
|
|
5
|
+
const login_1 = require("./commands/login");
|
|
6
|
+
const logout_1 = require("./commands/logout");
|
|
7
|
+
const whoami_1 = require("./commands/whoami");
|
|
8
|
+
const program = new commander_1.Command();
|
|
9
|
+
program
|
|
10
|
+
.name('armoriq')
|
|
11
|
+
.description('ArmorIQ CLI — authenticate and manage your ArmorIQ account')
|
|
12
|
+
.version(require('../../package.json').version);
|
|
13
|
+
program
|
|
14
|
+
.command('login')
|
|
15
|
+
.description('Log in to ArmorIQ via browser (OAuth device-code flow)')
|
|
16
|
+
.option('--backend <url>', 'Override backend URL')
|
|
17
|
+
.action(async (options) => {
|
|
18
|
+
await (0, login_1.loginCommand)(options);
|
|
19
|
+
});
|
|
20
|
+
program
|
|
21
|
+
.command('logout')
|
|
22
|
+
.description('Remove saved credentials')
|
|
23
|
+
.action(() => {
|
|
24
|
+
(0, logout_1.logoutCommand)();
|
|
25
|
+
});
|
|
26
|
+
program
|
|
27
|
+
.command('whoami')
|
|
28
|
+
.description('Show current authentication status')
|
|
29
|
+
.action(() => {
|
|
30
|
+
(0, whoami_1.whoamiCommand)();
|
|
31
|
+
});
|
|
32
|
+
program.parse();
|
|
33
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;;AAEA,yCAAoC;AACpC,4CAAgD;AAChD,8CAAkD;AAClD,8CAAkD;AAElD,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,SAAS,CAAC;KACf,WAAW,CAAC,4DAA4D,CAAC;KACzE,OAAO,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,CAAC,CAAC;AAElD,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,wDAAwD,CAAC;KACrE,MAAM,CAAC,iBAAiB,EAAE,sBAAsB,CAAC;KACjD,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,IAAA,oBAAY,EAAC,OAAO,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CAAC,GAAG,EAAE;IACX,IAAA,sBAAa,GAAE,CAAC;AAClB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,oCAAoC,CAAC;KACjD,MAAM,CAAC,GAAG,EAAE;IACX,IAAA,sBAAa,GAAE,CAAC;AAClB,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
|
package/dist/client.d.ts
CHANGED
|
@@ -38,7 +38,6 @@ export declare class ArmorIQClient {
|
|
|
38
38
|
private httpClient;
|
|
39
39
|
private tokenCache;
|
|
40
40
|
private metadataCache;
|
|
41
|
-
private mcpCredentials;
|
|
42
41
|
constructor(options?: Partial<SDKConfig> & {
|
|
43
42
|
apiKey?: string;
|
|
44
43
|
useProduction?: boolean;
|
|
@@ -47,35 +46,6 @@ export declare class ArmorIQClient {
|
|
|
47
46
|
* Get the default proxy endpoint URL.
|
|
48
47
|
*/
|
|
49
48
|
get proxyEndpoint(): string;
|
|
50
|
-
/**
|
|
51
|
-
* Open a new session for one LLM turn / one plan. Use this with a
|
|
52
|
-
* framework integration (ADK, LangChain, etc.) to compress the
|
|
53
|
-
* capture-plan / mint-token / invoke-tool dance into two calls.
|
|
54
|
-
*/
|
|
55
|
-
startSession(opts?: import('./session').SessionOptions): import('./session').ArmorIQSession;
|
|
56
|
-
/**
|
|
57
|
-
* Resolve per-MCP credentials from env + constructor option.
|
|
58
|
-
*
|
|
59
|
-
* Precedence (later wins):
|
|
60
|
-
* 1. ARMORIQ_MCP_CREDENTIALS (JSON blob)
|
|
61
|
-
* 2. ARMORIQ_MCP_<SAFE_NAME>_* per-MCP env vars
|
|
62
|
-
* 3. constructor option `mcpCredentials`
|
|
63
|
-
*
|
|
64
|
-
* SAFE_NAME = mcpName.toUpperCase().replace(/[^A-Z0-9]/g, '_')
|
|
65
|
-
*/
|
|
66
|
-
private static resolveMcpCredentials;
|
|
67
|
-
/**
|
|
68
|
-
* Look up the runtime cred for a given MCP name.
|
|
69
|
-
* Tries the canonical name first, then the safe-name encoding so env-var
|
|
70
|
-
* users don't have to match the platform's exact casing/punctuation.
|
|
71
|
-
*/
|
|
72
|
-
private getMcpCredential;
|
|
73
|
-
/**
|
|
74
|
-
* Encode an MCP credential as the X-Armoriq-MCP-Auth header value.
|
|
75
|
-
* Base64 wrapping avoids header-character issues; not encryption — TLS
|
|
76
|
-
* handles confidentiality.
|
|
77
|
-
*/
|
|
78
|
-
private encodeMcpAuthHeader;
|
|
79
49
|
/**
|
|
80
50
|
* Validate API key with the proxy server.
|
|
81
51
|
*/
|
package/dist/client.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EACL,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,gBAAgB,EAChB,SAAS,EACT,mBAAmB,EAEnB,aAAa,EACb,uBAAuB,EACvB,uBAAuB,EACvB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
|