@armoriq/sdk-dev 0.2.14 → 0.3.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 (63) hide show
  1. package/dist/_build_env.d.ts +11 -18
  2. package/dist/_build_env.d.ts.map +1 -1
  3. package/dist/_build_env.js +18 -6
  4. package/dist/_build_env.js.map +1 -1
  5. package/dist/cli/commands/auth.d.ts +15 -0
  6. package/dist/cli/commands/auth.d.ts.map +1 -0
  7. package/dist/cli/commands/auth.js +259 -0
  8. package/dist/cli/commands/auth.js.map +1 -0
  9. package/dist/cli/commands/keys.d.ts +14 -0
  10. package/dist/cli/commands/keys.d.ts.map +1 -0
  11. package/dist/cli/commands/keys.js +132 -0
  12. package/dist/cli/commands/keys.js.map +1 -0
  13. package/dist/cli/commands/orgs.d.ts +10 -0
  14. package/dist/cli/commands/orgs.d.ts.map +1 -0
  15. package/dist/cli/commands/orgs.js +152 -0
  16. package/dist/cli/commands/orgs.js.map +1 -0
  17. package/dist/cli/commands/status.d.ts +9 -0
  18. package/dist/cli/commands/status.d.ts.map +1 -0
  19. package/dist/cli/commands/status.js +103 -0
  20. package/dist/cli/commands/status.js.map +1 -0
  21. package/dist/cli/index.d.ts +15 -0
  22. package/dist/cli/index.d.ts.map +1 -0
  23. package/dist/cli/index.js +141 -0
  24. package/dist/cli/index.js.map +1 -0
  25. package/dist/cli/state.d.ts +22 -0
  26. package/dist/cli/state.d.ts.map +1 -0
  27. package/dist/cli/state.js +91 -0
  28. package/dist/cli/state.js.map +1 -0
  29. package/dist/cli/util.d.ts +19 -0
  30. package/dist/cli/util.d.ts.map +1 -0
  31. package/dist/cli/util.js +107 -0
  32. package/dist/cli/util.js.map +1 -0
  33. package/dist/client.d.ts +72 -13
  34. package/dist/client.d.ts.map +1 -1
  35. package/dist/client.js +323 -26
  36. package/dist/client.js.map +1 -1
  37. package/dist/config.d.ts +64 -0
  38. package/dist/config.d.ts.map +1 -0
  39. package/dist/config.js +215 -0
  40. package/dist/config.js.map +1 -0
  41. package/dist/exceptions.d.ts +4 -2
  42. package/dist/exceptions.d.ts.map +1 -1
  43. package/dist/exceptions.js +6 -2
  44. package/dist/exceptions.js.map +1 -1
  45. package/dist/index.d.ts +6 -3
  46. package/dist/index.d.ts.map +1 -1
  47. package/dist/index.js +17 -2
  48. package/dist/index.js.map +1 -1
  49. package/dist/integrations/google_adk.d.ts +107 -0
  50. package/dist/integrations/google_adk.d.ts.map +1 -0
  51. package/dist/integrations/google_adk.js +301 -0
  52. package/dist/integrations/google_adk.js.map +1 -0
  53. package/dist/models.d.ts +36 -2
  54. package/dist/models.d.ts.map +1 -1
  55. package/dist/plan_builder.d.ts +53 -0
  56. package/dist/plan_builder.d.ts.map +1 -0
  57. package/dist/plan_builder.js +110 -0
  58. package/dist/plan_builder.js.map +1 -0
  59. package/dist/session.d.ts +75 -0
  60. package/dist/session.d.ts.map +1 -0
  61. package/dist/session.js +486 -0
  62. package/dist/session.js.map +1 -0
  63. package/package.json +9 -2
package/dist/client.js CHANGED
@@ -39,7 +39,7 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
39
39
  return (mod && mod.__esModule) ? mod : { "default": mod };
40
40
  };
41
41
  Object.defineProperty(exports, "__esModule", { value: true });
42
- exports.ArmorIQClient = void 0;
42
+ exports.ArmorIQUserScope = exports.ArmorIQClient = void 0;
43
43
  const axios_1 = __importDefault(require("axios"));
44
44
  const crypto = __importStar(require("crypto"));
45
45
  const models_1 = require("./models");
@@ -54,6 +54,12 @@ const _build_env_1 = require("./_build_env");
54
54
  * - MCP action invocation
55
55
  * - Agent delegation
56
56
  */
57
+ function normalizeMatchedPolicy(raw) {
58
+ const v = raw?.matched_policy ?? raw?.matchedPolicy;
59
+ if (!v)
60
+ return undefined;
61
+ return typeof v === 'object' ? v.name : v;
62
+ }
57
63
  class ArmorIQClient {
58
64
  // Production endpoints (default) - ArmorIQ platform
59
65
  static DEFAULT_IAP_ENDPOINT = 'https://iap.armoriq.ai';
@@ -68,10 +74,8 @@ class ArmorIQClient {
68
74
  static ARMORCLAW_IAP_ENDPOINT = 'https://customer-iap.armoriq.ai';
69
75
  static ARMORCLAW_PROXY_ENDPOINT = 'https://customer-proxy.armoriq.ai';
70
76
  static ARMORCLAW_BACKEND_ENDPOINT = 'https://armorclaw-api.armoriq.ai';
71
- // Local development endpoints - ArmorIQ platform
72
- static LOCAL_IAP_ENDPOINT = 'http://127.0.0.1:8000';
73
- static LOCAL_PROXY_ENDPOINT = 'http://127.0.0.1:3001';
74
- static LOCAL_BACKEND_ENDPOINT = 'http://127.0.0.1:3000';
77
+ // Local development endpoints for the ArmorIQ platform live in
78
+ // _build_env.ts under ENDPOINTS.local — resolved via resolveEndpoint().
75
79
  // Local development endpoints - ArmorClaw standalone
76
80
  static LOCAL_ARMORCLAW_IAP_ENDPOINT = 'http://127.0.0.1:8080';
77
81
  static LOCAL_ARMORCLAW_PROXY_ENDPOINT = 'http://127.0.0.1:3001';
@@ -90,34 +94,49 @@ class ArmorIQClient {
90
94
  httpClient;
91
95
  tokenCache;
92
96
  metadataCache;
97
+ mcpCredentials;
98
+ bootstrapCache = null;
99
+ userCache = new Map();
100
+ userContextTtlSeconds = 300;
101
+ /**
102
+ * When set by ArmorIQUserScope, all enforcement / token minting calls
103
+ * are tagged with this email. Read by session and report paths.
104
+ */
105
+ userEmailOverride;
93
106
  constructor(options = {}) {
94
- // Determine if using production based on environment
95
- const envMode = process.env.ARMORIQ_ENV?.toLowerCase() || 'production';
96
- const useProd = (options.useProduction ?? true) && envMode === 'production';
107
+ // `useProduction: false` is a legacy escape hatch for local dev — treat
108
+ // it as ARMORIQ_ENV=local unless the caller set the env var explicitly.
109
+ if (options.useProduction === false && !process.env.ARMORIQ_ENV) {
110
+ process.env.ARMORIQ_ENV = 'local';
111
+ }
112
+ const envMode = (process.env.ARMORIQ_ENV || '').toLowerCase();
113
+ const isLocal = envMode === 'local';
97
114
  // Resolve API key early to determine product routing
98
115
  const resolvedApiKey = options.apiKey || process.env.ARMORIQ_API_KEY || '';
99
116
  const isArmorClaw = resolvedApiKey.startsWith('ak_claw_');
100
117
  // Route endpoints based on API key prefix (Stripe pattern)
101
118
  // ak_claw_ → ArmorClaw standalone; ak_live_ / ak_test_ → ArmorIQ platform.
102
- // For ArmorIQ: production vs staging URLs come from _build_env (branch-baked).
119
+ // For ArmorIQ: production / staging / local URLs all come from
120
+ // resolveEndpoint — which reads ARMORIQ_ENV and falls back to the
121
+ // branch-baked constant in _build_env.ts.
103
122
  this.iapEndpoint =
104
123
  options.iapEndpoint ||
105
124
  process.env.IAP_ENDPOINT ||
106
125
  (isArmorClaw
107
- ? (useProd ? ArmorIQClient.ARMORCLAW_IAP_ENDPOINT : ArmorIQClient.LOCAL_ARMORCLAW_IAP_ENDPOINT)
108
- : (useProd ? (0, _build_env_1.resolveEndpoint)('iap') : ArmorIQClient.LOCAL_IAP_ENDPOINT));
126
+ ? (isLocal ? ArmorIQClient.LOCAL_ARMORCLAW_IAP_ENDPOINT : ArmorIQClient.ARMORCLAW_IAP_ENDPOINT)
127
+ : (0, _build_env_1.resolveEndpoint)('iap'));
109
128
  this.defaultProxyEndpoint =
110
129
  options.proxyEndpoint ||
111
130
  process.env.PROXY_ENDPOINT ||
112
131
  (isArmorClaw
113
- ? (useProd ? ArmorIQClient.ARMORCLAW_PROXY_ENDPOINT : ArmorIQClient.LOCAL_ARMORCLAW_PROXY_ENDPOINT)
114
- : (useProd ? (0, _build_env_1.resolveEndpoint)('proxy') : ArmorIQClient.LOCAL_PROXY_ENDPOINT));
132
+ ? (isLocal ? ArmorIQClient.LOCAL_ARMORCLAW_PROXY_ENDPOINT : ArmorIQClient.ARMORCLAW_PROXY_ENDPOINT)
133
+ : (0, _build_env_1.resolveEndpoint)('proxy'));
115
134
  this.backendEndpoint =
116
135
  options.backendEndpoint ||
117
136
  process.env.BACKEND_ENDPOINT ||
118
137
  (isArmorClaw
119
- ? (useProd ? ArmorIQClient.ARMORCLAW_BACKEND_ENDPOINT : ArmorIQClient.LOCAL_ARMORCLAW_BACKEND_ENDPOINT)
120
- : (useProd ? (0, _build_env_1.resolveEndpoint)('backend') : ArmorIQClient.LOCAL_BACKEND_ENDPOINT));
138
+ ? (isLocal ? ArmorIQClient.LOCAL_ARMORCLAW_BACKEND_ENDPOINT : ArmorIQClient.ARMORCLAW_BACKEND_ENDPOINT)
139
+ : (0, _build_env_1.resolveEndpoint)('backend'));
121
140
  // Load user/agent identifiers
122
141
  this.userId = options.userId || process.env.USER_ID || '';
123
142
  this.agentId = options.agentId || process.env.AGENT_ID || '';
@@ -157,11 +176,11 @@ class ArmorIQClient {
157
176
  }
158
177
  this.proxyEndpoints = options.proxyEndpoints || {};
159
178
  this.timeout = options.timeout || 30000;
160
- this.maxRetries = options.maxRetries || 3;
179
+ this.maxRetries = options.maxRetries ?? 3;
161
180
  this.verifySsl = options.verifySsl ?? true;
162
181
  // Initialize HTTP client
163
182
  const headers = {
164
- 'User-Agent': `ArmorIQ-SDK-TS/0.2.6 (agent=${this.agentId})`,
183
+ 'User-Agent': `ArmorIQ-SDK-TS/0.3.0 (agent=${this.agentId})`,
165
184
  };
166
185
  if (this.apiKey) {
167
186
  headers['Authorization'] = `Bearer ${this.apiKey}`;
@@ -173,7 +192,9 @@ class ArmorIQClient {
173
192
  });
174
193
  this.tokenCache = new Map();
175
194
  this.metadataCache = new Map();
176
- console.log(`ArmorIQ SDK initialized: mode=${useProd ? 'production' : 'development'}, ` +
195
+ this.mcpCredentials = ArmorIQClient.resolveMcpCredentials(options.mcpCredentials);
196
+ const mode = (process.env.ARMORIQ_ENV || '').toLowerCase() || _build_env_1.ARMORIQ_ENV;
197
+ console.log(`ArmorIQ SDK initialized: mode=${mode}, ` +
177
198
  `user=${this.userId}, agent=${this.agentId}, ` +
178
199
  `iap=${this.iapEndpoint}, proxy=${this.defaultProxyEndpoint}, ` +
179
200
  `backend=${this.backendEndpoint}, ` +
@@ -201,6 +222,231 @@ class ArmorIQClient {
201
222
  get proxyEndpoint() {
202
223
  return this.defaultProxyEndpoint;
203
224
  }
225
+ /**
226
+ * Internal accessor for ArmorIQSession and other in-package consumers.
227
+ * Not part of the public API.
228
+ * @internal
229
+ */
230
+ _sessionInternals() {
231
+ return {
232
+ apiKey: this.apiKey,
233
+ backendEndpoint: this.backendEndpoint,
234
+ defaultProxyEndpoint: this.defaultProxyEndpoint,
235
+ httpClient: this.httpClient,
236
+ userId: this.userId,
237
+ };
238
+ }
239
+ /**
240
+ * Start a session bound to this client. Mirrors PY ArmorIQClient.start_session.
241
+ */
242
+ startSession(opts) {
243
+ // Lazy require to keep client.ts free of a hard dependency on session.ts
244
+ // (and to avoid an import cycle with ArmorIQUserScope).
245
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
246
+ const { ArmorIQSession } = require('./session');
247
+ return new ArmorIQSession(this, opts);
248
+ }
249
+ // ─── Bootstrap ────────────────────────────────────────────────────
250
+ // Mirrors armoriq_sdk/client.py:bootstrap. Resolves agent identity +
251
+ // registered MCPs + tool→MCP map from the API key. Cached for the
252
+ // lifetime of the client; refreshBootstrap() forces a re-fetch.
253
+ async bootstrap() {
254
+ if (this.bootstrapCache)
255
+ return this.bootstrapCache;
256
+ const resp = await this.httpClient.post(`${this.backendEndpoint}/iap/sdk/bootstrap`, {}, { headers: { 'X-API-Key': this.apiKey, 'Content-Type': 'application/json' } });
257
+ if (resp.status >= 400) {
258
+ throw new exceptions_1.ConfigurationException(`sdk/bootstrap failed: ${resp.status} ${typeof resp.data === 'string' ? resp.data : JSON.stringify(resp.data)}`);
259
+ }
260
+ this.bootstrapCache = resp.data;
261
+ return resp.data;
262
+ }
263
+ async refreshBootstrap() {
264
+ this.bootstrapCache = null;
265
+ return this.bootstrap();
266
+ }
267
+ // ─── Multi-org / user scope ──────────────────────────────────────
268
+ // Mirrors armoriq_sdk/client.py:resolve_user / for_user.
269
+ async resolveUser(userEmail) {
270
+ const key = userEmail.trim().toLowerCase();
271
+ const hit = this.userCache.get(key);
272
+ if (hit && hit.expiresAt > Date.now() / 1000) {
273
+ return hit.data;
274
+ }
275
+ const resp = await this.httpClient.post(`${this.backendEndpoint}/iap/sdk/resolve-user`, { userEmail: key }, { headers: { 'X-API-Key': this.apiKey, 'Content-Type': 'application/json' } });
276
+ if (resp.status >= 400) {
277
+ throw new exceptions_1.ConfigurationException(`sdk/resolve-user failed for ${key}: ${resp.status} ${typeof resp.data === 'string' ? resp.data : JSON.stringify(resp.data)}`);
278
+ }
279
+ this.userCache.set(key, {
280
+ data: resp.data,
281
+ expiresAt: Date.now() / 1000 + this.userContextTtlSeconds,
282
+ });
283
+ return resp.data;
284
+ }
285
+ invalidateUser(userEmail) {
286
+ this.userCache.delete(userEmail.trim().toLowerCase());
287
+ }
288
+ forUser(userEmail) {
289
+ return new ArmorIQUserScope(this, userEmail);
290
+ }
291
+ // ─── MCP credential resolution ─────────────────────────────────────
292
+ // Mirrors armoriq_sdk/client.py:_resolve_mcp_credentials so the same
293
+ // env JSON / per-MCP env vars work in both SDKs.
294
+ // 1. ARMORIQ_MCP_CREDENTIALS (JSON object {mcpName: cred})
295
+ // 2. ARMORIQ_MCP_<SAFE_NAME>_AUTH_TYPE plus matching value vars
296
+ // 3. constructor option `mcpCredentials` — wins.
297
+ /**
298
+ * Construct an ArmorIQClient from an armoriq.yaml file. Mirrors PY
299
+ * ArmorIQClient.from_config — reads YAML, expands $VAR / ${VAR} env refs,
300
+ * builds the SDKConfig, and returns a ready client.
301
+ */
302
+ static fromConfig(filePath = 'armoriq.yaml') {
303
+ // Lazy require to avoid making js-yaml a hard dependency for callers
304
+ // that never use the YAML loader.
305
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
306
+ const { loadArmorIQConfig, resolveEnvReferences } = require('./config');
307
+ const cfg = resolveEnvReferences(loadArmorIQConfig(filePath));
308
+ const proxyEndpoints = {};
309
+ const mcpCredentials = {};
310
+ for (const s of cfg.mcp_servers) {
311
+ proxyEndpoints[s.id] = s.url;
312
+ if (s.auth.type === 'bearer' && s.auth.token) {
313
+ mcpCredentials[s.id] = { authType: 'bearer', token: s.auth.token };
314
+ }
315
+ else if (s.auth.type === 'api_key' && s.auth.api_key) {
316
+ mcpCredentials[s.id] = { authType: 'api_key', apiKey: s.auth.api_key };
317
+ }
318
+ else if (s.auth.type === 'none') {
319
+ mcpCredentials[s.id] = { authType: 'none' };
320
+ }
321
+ }
322
+ return new ArmorIQClient({
323
+ apiKey: cfg.identity.api_key,
324
+ userId: cfg.identity.user_id,
325
+ agentId: cfg.identity.agent_id,
326
+ proxyEndpoint: cfg.proxy.url,
327
+ timeout: cfg.proxy.timeout * 1000,
328
+ proxyEndpoints,
329
+ mcpCredentials,
330
+ });
331
+ }
332
+ static resolveMcpCredentials(fromOptions) {
333
+ const merged = {};
334
+ const jsonRaw = process.env.ARMORIQ_MCP_CREDENTIALS;
335
+ if (jsonRaw) {
336
+ try {
337
+ const parsed = JSON.parse(jsonRaw);
338
+ if (parsed && typeof parsed === 'object') {
339
+ for (const [k, v] of Object.entries(parsed)) {
340
+ merged[k] = v;
341
+ }
342
+ }
343
+ }
344
+ catch (e) {
345
+ console.warn(`Failed to parse ARMORIQ_MCP_CREDENTIALS as JSON: ${e.message}`);
346
+ }
347
+ }
348
+ const safeNames = new Set();
349
+ for (const key of Object.keys(process.env)) {
350
+ const m = /^ARMORIQ_MCP_(.+)_AUTH_TYPE$/.exec(key);
351
+ if (m)
352
+ safeNames.add(m[1]);
353
+ }
354
+ for (const safe of safeNames) {
355
+ const authType = (process.env[`ARMORIQ_MCP_${safe}_AUTH_TYPE`] || '').toLowerCase();
356
+ let cred;
357
+ if (authType === 'bearer') {
358
+ const token = process.env[`ARMORIQ_MCP_${safe}_TOKEN`];
359
+ if (token)
360
+ cred = { authType: 'bearer', token };
361
+ }
362
+ else if (authType === 'api_key') {
363
+ const apiKey = process.env[`ARMORIQ_MCP_${safe}_API_KEY`];
364
+ const headerName = process.env[`ARMORIQ_MCP_${safe}_HEADER_NAME`];
365
+ if (apiKey)
366
+ cred = headerName ? { authType: 'api_key', apiKey, headerName } : { authType: 'api_key', apiKey };
367
+ }
368
+ else if (authType === 'basic') {
369
+ const username = process.env[`ARMORIQ_MCP_${safe}_USERNAME`];
370
+ const password = process.env[`ARMORIQ_MCP_${safe}_PASSWORD`];
371
+ if (username && password)
372
+ cred = { authType: 'basic', username, password };
373
+ }
374
+ else if (authType === 'none') {
375
+ cred = { authType: 'none' };
376
+ }
377
+ if (cred)
378
+ merged[safe] = cred;
379
+ }
380
+ if (fromOptions) {
381
+ for (const [k, v] of Object.entries(fromOptions)) {
382
+ merged[k] = v;
383
+ }
384
+ }
385
+ return merged;
386
+ }
387
+ getMcpCredential(mcpName) {
388
+ if (this.mcpCredentials[mcpName])
389
+ return this.mcpCredentials[mcpName];
390
+ const safe = mcpName.toUpperCase().replace(/[^A-Z0-9]/g, '_');
391
+ return this.mcpCredentials[safe];
392
+ }
393
+ static encodeMcpAuthHeader(cred) {
394
+ return Buffer.from(JSON.stringify(cred), 'utf-8').toString('base64');
395
+ }
396
+ // ─── Retry helpers ─────────────────────────────────────────────────
397
+ // Mirrors armoriq_sdk/client.py:_retry_post. Exponential backoff
398
+ // (1s → 4s capped) on 5xx + network errors only — 4xx passes through
399
+ // unchanged so callers can still distinguish policy denials from
400
+ // transport flakes. The same Idempotency-Key is reused across retries
401
+ // so the backend can dedupe.
402
+ shouldRetry(status) {
403
+ if (status === undefined)
404
+ return true; // network error
405
+ return status >= 500;
406
+ }
407
+ /**
408
+ * POST with exponential backoff. Reuses the same Idempotency-Key
409
+ * across retries so the backend can dedupe on its side.
410
+ * @internal
411
+ */
412
+ async _retryPost(url, body, options = {}) {
413
+ const merged = { ...(options.headers ?? {}) };
414
+ if (options.idempotencyKey && !merged['Idempotency-Key']) {
415
+ merged['Idempotency-Key'] = options.idempotencyKey;
416
+ }
417
+ const attempts = Math.max(1, this.maxRetries + 1);
418
+ let lastErr;
419
+ let lastResponse;
420
+ for (let i = 0; i < attempts; i++) {
421
+ try {
422
+ const response = await this.httpClient.post(url, body, {
423
+ headers: merged,
424
+ timeout: options.timeout ?? this.timeout,
425
+ });
426
+ if (!this.shouldRetry(response.status))
427
+ return response;
428
+ lastResponse = response;
429
+ }
430
+ catch (e) {
431
+ // axios throws on network errors when validateStatus doesn't catch them;
432
+ // ECONNREFUSED / ETIMEDOUT / socket-hangup all surface as Error here.
433
+ const code = e?.code;
434
+ if (code === 'ECONNREFUSED' || code === 'ETIMEDOUT' || code === 'ECONNRESET' || !e?.response) {
435
+ lastErr = e;
436
+ }
437
+ else {
438
+ throw e;
439
+ }
440
+ }
441
+ if (i < attempts - 1) {
442
+ const backoff = Math.min(1000 * 2 ** i, 4000);
443
+ await new Promise((r) => setTimeout(r, backoff));
444
+ }
445
+ }
446
+ if (lastResponse)
447
+ return lastResponse;
448
+ throw lastErr ?? new Error('retry loop exited without a result');
449
+ }
204
450
  /**
205
451
  * Validate API key with the proxy server.
206
452
  */
@@ -283,9 +529,12 @@ class ArmorIQClient {
283
529
  expires_in: validitySeconds,
284
530
  };
285
531
  try {
286
- const response = await this.httpClient.post(`${this.backendEndpoint}/iap/sdk/token`, payload, {
532
+ // Token issuance is idempotent on the backend (planHash-keyed),
533
+ // so retrying a 5xx with the same Idempotency-Key is safe.
534
+ const response = await this._retryPost(`${this.backendEndpoint}/iap/sdk/token`, payload, {
287
535
  headers: { 'X-API-Key': this.apiKey },
288
536
  timeout: 30000,
537
+ idempotencyKey: crypto.randomBytes(16).toString('hex'),
289
538
  });
290
539
  if (response.status >= 400) {
291
540
  throw new exceptions_1.InvalidTokenException(`Token issuance failed: ${response.data?.message || response.statusText}`);
@@ -379,7 +628,10 @@ class ArmorIQClient {
379
628
  tool: action,
380
629
  params: invokeParams,
381
630
  arguments: invokeParams,
382
- intent_token: intentToken.rawToken,
631
+ intent_token: {
632
+ ...intentToken.rawToken,
633
+ policy_validation: intentToken.policyValidation,
634
+ },
383
635
  merkle_proof: merkleProof,
384
636
  plan: intentToken.rawToken?.plan,
385
637
  _iam_context: iamContext,
@@ -396,6 +648,10 @@ class ArmorIQClient {
396
648
  if (this.apiKey) {
397
649
  headers['X-API-Key'] = this.apiKey;
398
650
  }
651
+ const mcpCred = this.getMcpCredential(mcp);
652
+ if (mcpCred) {
653
+ headers['X-Armoriq-MCP-Auth'] = ArmorIQClient.encodeMcpAuthHeader(mcpCred);
654
+ }
399
655
  // Send CSRG token structure
400
656
  if (intentToken.rawToken && typeof intentToken.rawToken === 'object') {
401
657
  payload.token = intentToken.rawToken.token || {};
@@ -740,7 +996,8 @@ class ArmorIQClient {
740
996
  * Create a delegation request on the backend.
741
997
  */
742
998
  async createDelegationRequest(params) {
743
- const response = await this.httpClient.post(`${this.backendEndpoint}/delegation/request`, params, { headers: { 'X-API-Key': this.apiKey, 'X-User-Email': params.requesterEmail } });
999
+ const idempotencyKey = `deleg-${Date.now()}-${Math.random().toString(36).slice(2, 10)}`;
1000
+ const response = await this.httpClient.post(`${this.backendEndpoint}/delegation/request`, params, { headers: { 'X-API-Key': this.apiKey, 'X-User-Email': params.requesterEmail, 'Idempotency-Key': idempotencyKey } });
744
1001
  if (response.status >= 400) {
745
1002
  throw new exceptions_1.DelegationException(`Failed to create delegation request: ${response.data?.message || response.statusText}`);
746
1003
  }
@@ -761,9 +1018,15 @@ class ArmorIQClient {
761
1018
  }
762
1019
  /**
763
1020
  * Mark a delegation as executed.
1021
+ *
1022
+ * Idempotent on the backend (delegationId-keyed), so a stable
1023
+ * Idempotency-Key derived from the delegation_id is safe to retry.
764
1024
  */
765
1025
  async markDelegationExecuted(userEmail, delegationId) {
766
- await this.httpClient.post(`${this.backendEndpoint}/delegation/mark-executed`, { delegationId }, { headers: { 'X-API-Key': this.apiKey, 'X-User-Email': userEmail } });
1026
+ await this._retryPost(`${this.backendEndpoint}/delegation/mark-executed`, { delegationId }, {
1027
+ headers: { 'X-API-Key': this.apiKey, 'X-User-Email': userEmail },
1028
+ idempotencyKey: `mark-exec:${delegationId}`,
1029
+ });
767
1030
  }
768
1031
  /**
769
1032
  * Mark an intent plan as completed after all tools have been executed.
@@ -773,11 +1036,17 @@ class ArmorIQClient {
773
1036
  }
774
1037
  /**
775
1038
  * Update an intent plan's status.
1039
+ *
1040
+ * Status transitions are idempotent — retrying with the same
1041
+ * `planId:status` key is safe.
776
1042
  * Valid statuses: 'active', 'completed', 'failed', 'expired'
777
1043
  */
778
1044
  async updatePlanStatus(planId, status) {
779
1045
  try {
780
- await this.httpClient.post(`${this.backendEndpoint}/iap/plans/${planId}/status`, { status }, { headers: { 'X-API-Key': this.apiKey } });
1046
+ await this._retryPost(`${this.backendEndpoint}/iap/plans/${planId}/status`, { status }, {
1047
+ headers: { 'X-API-Key': this.apiKey },
1048
+ idempotencyKey: `plan-status:${planId}:${status}`,
1049
+ });
781
1050
  console.log(`Plan ${planId} status updated to ${status}`);
782
1051
  }
783
1052
  catch (error) {
@@ -804,7 +1073,7 @@ class ArmorIQClient {
804
1073
  throw error;
805
1074
  const enforcement = responseData.enforcement;
806
1075
  if (enforcement.action === 'block') {
807
- throw new exceptions_1.PolicyBlockedException(responseData.message || 'Action blocked by policy', enforcement.action, enforcement.reason, enforcement.metadata);
1076
+ throw new exceptions_1.PolicyBlockedException(responseData.message || 'Action blocked by policy', enforcement.action, enforcement.reason, enforcement.metadata, normalizeMatchedPolicy(enforcement));
808
1077
  }
809
1078
  if (enforcement.action === 'hold' && enforcement.requiresApproval) {
810
1079
  const holdInfo = {
@@ -816,7 +1085,7 @@ class ArmorIQClient {
816
1085
  };
817
1086
  options?.onHold?.(holdInfo);
818
1087
  if (!options?.waitForApproval || !options?.userEmail) {
819
- throw new exceptions_1.PolicyHoldException(responseData.message || 'Action held for approval', responseData.delegation_context, enforcement.metadata);
1088
+ throw new exceptions_1.PolicyHoldException(responseData.message || 'Action held for approval', responseData.delegation_context, enforcement.metadata, normalizeMatchedPolicy(enforcement));
820
1089
  }
821
1090
  // Auto-create delegation request
822
1091
  const delegationCtx = responseData.delegation_context || {};
@@ -853,7 +1122,7 @@ class ArmorIQClient {
853
1122
  }
854
1123
  catch (delegationError) {
855
1124
  console.error(`Failed to create delegation request: ${delegationError.message}`);
856
- throw new exceptions_1.PolicyHoldException(responseData.message || 'Action held for approval (delegation request failed)', responseData.delegation_context, { ...enforcement.metadata, delegationError: delegationError.message });
1125
+ throw new exceptions_1.PolicyHoldException(responseData.message || 'Action held for approval (delegation request failed)', responseData.delegation_context, { ...enforcement.metadata, delegationError: delegationError.message }, normalizeMatchedPolicy(enforcement));
857
1126
  }
858
1127
  holdInfo.delegationId = delegationResult.delegationId;
859
1128
  options?.onHold?.(holdInfo);
@@ -891,4 +1160,32 @@ class ArmorIQClient {
891
1160
  }
892
1161
  }
893
1162
  exports.ArmorIQClient = ArmorIQClient;
1163
+ /**
1164
+ * User-scoped helper returned by ArmorIQClient.forUser(email).
1165
+ *
1166
+ * Mirrors armoriq_sdk/client.py:ArmorIQUserScope. Tags all token-minting
1167
+ * and enforcement calls with the bound email so multi-user agents route
1168
+ * per-request policies correctly.
1169
+ */
1170
+ class ArmorIQUserScope {
1171
+ client;
1172
+ userEmail;
1173
+ constructor(client, userEmail) {
1174
+ this.client = client;
1175
+ this.userEmail = userEmail.trim().toLowerCase();
1176
+ }
1177
+ startSession(opts) {
1178
+ // Lazy import to avoid a cycle between client.ts and session.ts.
1179
+ // eslint-disable-next-line @typescript-eslint/no-var-requires
1180
+ const { ArmorIQSession } = require('./session');
1181
+ this.client.userEmailOverride = this.userEmail;
1182
+ const session = new ArmorIQSession(this.client, opts);
1183
+ session.userEmail = this.userEmail;
1184
+ return session;
1185
+ }
1186
+ async resolve() {
1187
+ return this.client.resolveUser(this.userEmail);
1188
+ }
1189
+ }
1190
+ exports.ArmorIQUserScope = ArmorIQUserScope;
894
1191
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}