@armoriq/sdk-dev 0.6.5 → 0.6.7

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.
@@ -0,0 +1,39 @@
1
+ /**
2
+ * armoriq policy — read and change the org's armor.policy.v1 profile from the
3
+ * terminal. Until now policy could only be authored from the dashboard or from
4
+ * inside a Claude Code session (`/armor`), so `armoriq policy` reported
5
+ * "Unknown command".
6
+ *
7
+ * Backend routes used (all accept the CLI's API key via ApiKeyOrJwtGuard,
8
+ * except `profiles/active` and `sync` which are ApiKeyGuard):
9
+ * GET /policies/profiles/active read the confirmed policy
10
+ * POST /policies/profiles/template apply a named template as the draft
11
+ * PUT /policies/profiles/draft save an arbitrary policy as the draft
12
+ * POST /policies/profiles/propose stage the draft for confirmation
13
+ * POST /policies/profiles/cancel discard the staged proposal
14
+ * POST /policies/sync set the active policy directly
15
+ *
16
+ * Confirming a staged proposal stays human-only (JWT + policies:full on
17
+ * /policies/profiles/confirm), so the default flow here stops at "proposed" and
18
+ * points at the dashboard. `--activate` is the explicit opt-out that pushes the
19
+ * policy straight to active through the same route the plugin uses.
20
+ */
21
+ export declare function cmdPolicyShow(args?: {
22
+ json?: boolean;
23
+ }): Promise<number>;
24
+ export declare function cmdPolicyTemplates(): number;
25
+ export declare function cmdPolicySet(args: {
26
+ template: string;
27
+ reason?: string;
28
+ activate?: boolean;
29
+ yes?: boolean;
30
+ }): Promise<number>;
31
+ export declare function cmdPolicyPropose(args: {
32
+ file: string;
33
+ reason?: string;
34
+ activate?: boolean;
35
+ yes?: boolean;
36
+ }): Promise<number>;
37
+ export declare function cmdPolicyCancel(): Promise<number>;
38
+ export declare const POLICY_TEMPLATE_NAMES: string[];
39
+ //# sourceMappingURL=policy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../../../src/cli/commands/policy.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAkJH,wBAAsB,aAAa,CAAC,IAAI,GAAE;IAAE,IAAI,CAAC,EAAE,OAAO,CAAA;CAAO,GAAG,OAAO,CAAC,MAAM,CAAC,CAkBlF;AAED,wBAAgB,kBAAkB,IAAI,MAAM,CAU3C;AA6ED,wBAAsB,YAAY,CAAC,IAAI,EAAE;IACvC,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,GAAG,OAAO,CAAC,MAAM,CAAC,CAwBlB;AAED,wBAAsB,gBAAgB,CAAC,IAAI,EAAE;IAC3C,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf,GAAG,OAAO,CAAC,MAAM,CAAC,CA6BlB;AAED,wBAAsB,eAAe,IAAI,OAAO,CAAC,MAAM,CAAC,CAKvD;AAED,eAAO,MAAM,qBAAqB,UAA+B,CAAC"}
@@ -0,0 +1,315 @@
1
+ "use strict";
2
+ /**
3
+ * armoriq policy — read and change the org's armor.policy.v1 profile from the
4
+ * terminal. Until now policy could only be authored from the dashboard or from
5
+ * inside a Claude Code session (`/armor`), so `armoriq policy` reported
6
+ * "Unknown command".
7
+ *
8
+ * Backend routes used (all accept the CLI's API key via ApiKeyOrJwtGuard,
9
+ * except `profiles/active` and `sync` which are ApiKeyGuard):
10
+ * GET /policies/profiles/active read the confirmed policy
11
+ * POST /policies/profiles/template apply a named template as the draft
12
+ * PUT /policies/profiles/draft save an arbitrary policy as the draft
13
+ * POST /policies/profiles/propose stage the draft for confirmation
14
+ * POST /policies/profiles/cancel discard the staged proposal
15
+ * POST /policies/sync set the active policy directly
16
+ *
17
+ * Confirming a staged proposal stays human-only (JWT + policies:full on
18
+ * /policies/profiles/confirm), so the default flow here stops at "proposed" and
19
+ * points at the dashboard. `--activate` is the explicit opt-out that pushes the
20
+ * policy straight to active through the same route the plugin uses.
21
+ */
22
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
23
+ if (k2 === undefined) k2 = k;
24
+ var desc = Object.getOwnPropertyDescriptor(m, k);
25
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
26
+ desc = { enumerable: true, get: function() { return m[k]; } };
27
+ }
28
+ Object.defineProperty(o, k2, desc);
29
+ }) : (function(o, m, k, k2) {
30
+ if (k2 === undefined) k2 = k;
31
+ o[k2] = m[k];
32
+ }));
33
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
34
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
35
+ }) : function(o, v) {
36
+ o["default"] = v;
37
+ });
38
+ var __importStar = (this && this.__importStar) || (function () {
39
+ var ownKeys = function(o) {
40
+ ownKeys = Object.getOwnPropertyNames || function (o) {
41
+ var ar = [];
42
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
43
+ return ar;
44
+ };
45
+ return ownKeys(o);
46
+ };
47
+ return function (mod) {
48
+ if (mod && mod.__esModule) return mod;
49
+ var result = {};
50
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
51
+ __setModuleDefault(result, mod);
52
+ return result;
53
+ };
54
+ })();
55
+ var __importDefault = (this && this.__importDefault) || function (mod) {
56
+ return (mod && mod.__esModule) ? mod : { "default": mod };
57
+ };
58
+ Object.defineProperty(exports, "__esModule", { value: true });
59
+ exports.POLICY_TEMPLATE_NAMES = void 0;
60
+ exports.cmdPolicyShow = cmdPolicyShow;
61
+ exports.cmdPolicyTemplates = cmdPolicyTemplates;
62
+ exports.cmdPolicySet = cmdPolicySet;
63
+ exports.cmdPolicyPropose = cmdPolicyPropose;
64
+ exports.cmdPolicyCancel = cmdPolicyCancel;
65
+ const fs = __importStar(require("fs"));
66
+ const axios_1 = __importDefault(require("axios"));
67
+ const util_1 = require("../util");
68
+ const state_1 = require("../state");
69
+ const TIMEOUT_MS = 15000;
70
+ /**
71
+ * Template names are owned by the backend (src/policies/armor/policy-templates).
72
+ * This list is for `armoriq policy templates` and for a fast local typo check;
73
+ * the server is still the authority and its error text is surfaced verbatim
74
+ * when the two drift.
75
+ */
76
+ const TEMPLATES = [
77
+ { name: 'all-allow', description: 'Everything permitted — intent planning still enforced' },
78
+ { name: 'strict-read-only', description: 'Only Read/Grep/Glob allowed. Bash/Write/Edit denied.' },
79
+ { name: 'balanced', description: 'Read allowed. Bash/Write/Edit require approval.' },
80
+ { name: 'lockdown', description: 'All tools require approval. Nothing auto-allowed.' },
81
+ { name: 'architect', description: 'Explore wide, write inside workspace, never destroy' },
82
+ {
83
+ name: 'quality-guardian',
84
+ description: 'Read and test freely, gate CI and secrets, cautious default',
85
+ },
86
+ {
87
+ name: 'velocity-machine',
88
+ description: 'Fast and low friction, hard stops on destroy, exfil and publish',
89
+ },
90
+ { name: 'night-owl', description: 'Solo off-hours, confirm writes and bash, deny by default' },
91
+ ];
92
+ async function api(method, path, body) {
93
+ const creds = (0, util_1.requireCredentials)();
94
+ const base = (0, util_1.backendBase)();
95
+ let response;
96
+ try {
97
+ response = await axios_1.default.request({
98
+ method,
99
+ url: `${base}${path}`,
100
+ data: body,
101
+ headers: { 'X-API-Key': creds.apiKey, 'Content-Type': 'application/json' },
102
+ timeout: TIMEOUT_MS,
103
+ validateStatus: () => true,
104
+ });
105
+ }
106
+ catch (err) {
107
+ // No HTTP response at all: DNS, refused connection, or the timeout above.
108
+ throw new util_1.CLIError(`Could not reach the ArmorIQ backend at ${base}: ${err.message}`);
109
+ }
110
+ const status = response.status;
111
+ // Nest puts the useful text (e.g. the server's own list of valid template
112
+ // names, or why the org was refused) in `message`, as a string or an array.
113
+ const raw = response.data?.message;
114
+ const detail = Array.isArray(raw) ? raw.join('; ') : raw;
115
+ if (status === 401) {
116
+ throw new util_1.CLIError('API key rejected (401). Try `armoriq login` again.');
117
+ }
118
+ if (status === 403) {
119
+ // Not an auth failure: the key is valid but lacks rights on this org, so
120
+ // re-running `login` mints an equivalent key and changes nothing. Say why.
121
+ throw new util_1.CLIError(detail
122
+ ? `${detail} (HTTP 403)`
123
+ : 'This API key is not allowed to manage policy for its org (403).');
124
+ }
125
+ if (status >= 400) {
126
+ throw new util_1.CLIError(detail ? `${detail} (HTTP ${status})` : `Request failed (HTTP ${status}).`);
127
+ }
128
+ return response.data;
129
+ }
130
+ /**
131
+ * The org for a write. `profiles/active` and `sync` take the org from the API
132
+ * key, but the draft/propose routes resolve it from the body and fall back to
133
+ * "the caller's first org membership" when it is absent. For a user in more
134
+ * than one org that fallback can be a different org than the key's, so a read
135
+ * and a write in the same command would target different policies. Refuse
136
+ * rather than guess.
137
+ */
138
+ function orgScope() {
139
+ const creds = (0, util_1.requireCredentials)();
140
+ if (!creds.orgId) {
141
+ throw new util_1.CLIError('No org on the saved credentials, so a policy write could land on the wrong org. ' +
142
+ 'Run `armoriq login --force` (or `armoriq switch-org <name>`) and retry.');
143
+ }
144
+ return { orgId: creds.orgId };
145
+ }
146
+ function actionLabel(statement) {
147
+ const action = statement.action ?? {};
148
+ if (Array.isArray(action.in) && action.in.length > 0)
149
+ return action.in.join(', ');
150
+ if (action.eq)
151
+ return action.eq;
152
+ return '*';
153
+ }
154
+ function printPolicy(policy) {
155
+ const defaults = policy.defaults?.decision ?? 'unknown';
156
+ (0, util_1.out)(` name ${policy.metadata?.name ?? '(unnamed)'}`);
157
+ if (policy.metadata?.description)
158
+ (0, util_1.out)(` description ${policy.metadata.description}`);
159
+ (0, util_1.out)(` default ${defaults}`);
160
+ const statements = policy.statements ?? [];
161
+ (0, util_1.out)(` statements ${statements.length}`);
162
+ if (statements.length === 0)
163
+ return;
164
+ (0, util_1.out)('');
165
+ for (const statement of statements) {
166
+ const conditions = (statement.conditions ?? [])
167
+ .map((c) => `${c.field ?? '?'} ${c.op ?? '?'} ${JSON.stringify(c.value)}`)
168
+ .join(' AND ');
169
+ const suffix = conditions ? ` where ${conditions}` : '';
170
+ (0, util_1.out)(` ${(statement.effect ?? '?').padEnd(16)} ${actionLabel(statement)}${suffix}`);
171
+ }
172
+ }
173
+ async function cmdPolicyShow(args = {}) {
174
+ const active = await api('GET', '/policies/profiles/active');
175
+ if (args.json) {
176
+ (0, util_1.out)(JSON.stringify(active, null, 2));
177
+ return 0;
178
+ }
179
+ if (!active.policy) {
180
+ (0, util_1.out)('No confirmed policy for this org yet.');
181
+ (0, util_1.out)('');
182
+ (0, util_1.out)(' The ArmorClaude plugin keeps enforcing its local policy until one is');
183
+ (0, util_1.out)(' confirmed here. Stage one with `armoriq policy set <template>`.');
184
+ return 0;
185
+ }
186
+ (0, util_1.out)(`Active policy (version ${active.version ?? 0}${active.publishedAt ? `, published ${active.publishedAt}` : ''}):`);
187
+ (0, util_1.out)('');
188
+ printPolicy(active.policy);
189
+ (0, state_1.appendLog)('policy-show', { version: active.version ?? 0 });
190
+ return 0;
191
+ }
192
+ function cmdPolicyTemplates() {
193
+ const width = Math.max(...TEMPLATES.map((t) => t.name.length));
194
+ (0, util_1.out)('Policy templates:');
195
+ (0, util_1.out)('');
196
+ for (const template of TEMPLATES) {
197
+ (0, util_1.out)(` ${template.name.padEnd(width)} ${template.description}`);
198
+ }
199
+ (0, util_1.out)('');
200
+ (0, util_1.out)('Apply one with `armoriq policy set <template>`.');
201
+ return 0;
202
+ }
203
+ /**
204
+ * Refuse an unanswerable --activate BEFORE anything is written.
205
+ *
206
+ * This has to run ahead of the first request, not next to the publish call.
207
+ * Both commands replace the org's shared working draft and stage a proposal on
208
+ * the way to activating, so a late refusal exits non-zero having already
209
+ * changed org state, which reads to the operator as "nothing happened".
210
+ */
211
+ function assertActivationAnswerable(activate, yes) {
212
+ if (!activate || yes)
213
+ return;
214
+ if (!process.stdin.isTTY) {
215
+ throw new util_1.CLIError('Refusing to activate without confirmation in a non-interactive shell. ' +
216
+ 'Re-run with --yes, or drop --activate and confirm on the dashboard. ' +
217
+ 'Nothing was changed.');
218
+ }
219
+ }
220
+ /**
221
+ * Gate for --activate. Publishing from the terminal bypasses the dashboard
222
+ * confirmation step, so it is never silent: interactively it asks, having first
223
+ * shown the diff. The non-interactive case is already rejected up front by
224
+ * assertActivationAnswerable, so reaching here without a TTY means --yes.
225
+ */
226
+ async function confirmActivation(yes) {
227
+ if (yes)
228
+ return true;
229
+ (0, util_1.out)(`${util_1.WARN} --activate publishes this policy immediately, skipping dashboard confirmation.`);
230
+ (0, util_1.out)(' Every agent session in this org picks it up on its next policy pull.');
231
+ return (0, util_1.promptYesNo)('Publish it as the active policy now?', false);
232
+ }
233
+ /** Stage the current draft, then optionally push it straight to active. */
234
+ async function proposeAndReport(reason, options, logEvent, logDetails) {
235
+ const proposal = await api('POST', '/policies/profiles/propose', {
236
+ reason,
237
+ ...orgScope(),
238
+ });
239
+ (0, util_1.out)('');
240
+ (0, util_1.out)('Changes vs the active policy:');
241
+ (0, util_1.out)('');
242
+ for (const line of (proposal.diff ?? '(no changes)').split('\n'))
243
+ (0, util_1.out)(` ${line}`);
244
+ (0, util_1.out)('');
245
+ if (options.activate) {
246
+ if (!proposal.proposed) {
247
+ throw new util_1.CLIError('Server staged the proposal but returned no policy document to activate.');
248
+ }
249
+ if (await confirmActivation(options.yes)) {
250
+ const synced = await api('POST', '/policies/sync', {
251
+ policy: proposal.proposed,
252
+ source: 'armoriq-cli',
253
+ });
254
+ (0, util_1.out)(`${util_1.CHECK} Activated (version ${synced.version ?? 'unknown'}).`);
255
+ (0, util_1.out)(' Plugin sessions pick this up on their next policy pull.');
256
+ (0, state_1.appendLog)(logEvent, { ...logDetails, activated: true, version: synced.version });
257
+ return 0;
258
+ }
259
+ // Declined: the proposal is still staged, which is the safe default anyway.
260
+ (0, util_1.out)('Not activated.');
261
+ }
262
+ (0, util_1.out)(`${util_1.CHECK} Proposed (hash ${proposal.proposalHash ?? 'unknown'}).`);
263
+ (0, util_1.out)(' Confirm it on the dashboard to make it active: activation is human-only.');
264
+ (0, util_1.out)(' Discard it with `armoriq policy cancel`.');
265
+ (0, state_1.appendLog)(logEvent, { ...logDetails, activated: false, hash: proposal.proposalHash });
266
+ return 0;
267
+ }
268
+ async function cmdPolicySet(args) {
269
+ if (!args.template) {
270
+ throw new util_1.CLIError('Usage: armoriq policy set <template>. See `armoriq policy templates`.');
271
+ }
272
+ assertActivationAnswerable(Boolean(args.activate), Boolean(args.yes));
273
+ if (!TEMPLATES.some((t) => t.name === args.template)) {
274
+ (0, util_1.out)(`${util_1.WARN} "${args.template}" is not a template this CLI knows about, asking the server anyway.`);
275
+ }
276
+ await api('POST', '/policies/profiles/template', {
277
+ template: args.template,
278
+ ...orgScope(),
279
+ });
280
+ // The org has exactly one working draft, shared with the dashboard editor.
281
+ (0, util_1.out)(`${util_1.CHECK} Draft set from template "${args.template}" (replaces the org's working draft).`);
282
+ return proposeAndReport(args.reason ?? `Template "${args.template}" applied via armoriq CLI`, { activate: Boolean(args.activate), yes: Boolean(args.yes) }, 'policy-set', { template: args.template });
283
+ }
284
+ async function cmdPolicyPropose(args) {
285
+ if (!args.file) {
286
+ throw new util_1.CLIError('Usage: armoriq policy propose --file <policy.json>');
287
+ }
288
+ assertActivationAnswerable(Boolean(args.activate), Boolean(args.yes));
289
+ // statSync covers both "missing" and "is a directory"; without the second
290
+ // check readFileSync reports the policy as invalid JSON with an EISDIR body.
291
+ if (!fs.existsSync(args.file) || !fs.statSync(args.file).isFile()) {
292
+ throw new util_1.CLIError(`Not a readable file: ${args.file}`);
293
+ }
294
+ let policy;
295
+ try {
296
+ policy = JSON.parse(fs.readFileSync(args.file, 'utf-8'));
297
+ }
298
+ catch (err) {
299
+ throw new util_1.CLIError(`${args.file} is not valid JSON: ${err.message}`);
300
+ }
301
+ if (!policy || typeof policy !== 'object' || Array.isArray(policy)) {
302
+ throw new util_1.CLIError(`${args.file} must contain an armor.policy.v1 object.`);
303
+ }
304
+ await api('PUT', '/policies/profiles/draft', { policy, ...orgScope() });
305
+ (0, util_1.out)(`${util_1.CHECK} Draft saved from ${args.file} (replaces the org's working draft).`);
306
+ return proposeAndReport(args.reason ?? `Policy from ${args.file} proposed via armoriq CLI`, { activate: Boolean(args.activate), yes: Boolean(args.yes) }, 'policy-propose', { file: args.file });
307
+ }
308
+ async function cmdPolicyCancel() {
309
+ await api('POST', '/policies/profiles/cancel', orgScope());
310
+ (0, util_1.out)(`${util_1.CHECK} Staged proposal discarded. The active policy is unchanged.`);
311
+ (0, state_1.appendLog)('policy-cancel', {});
312
+ return 0;
313
+ }
314
+ exports.POLICY_TEMPLATE_NAMES = TEMPLATES.map((t) => t.name);
315
+ //# sourceMappingURL=policy.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"policy.js","sourceRoot":"","sources":["../../../src/cli/commands/policy.ts"],"names":[],"mappings":"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"}
@@ -11,5 +11,12 @@
11
11
  */
12
12
  type Argv = string[];
13
13
  declare function run(argv: Argv): Promise<number>;
14
- export { run as runCli };
14
+ /**
15
+ * Same dispatch as run(), but with the process-level error handling folded in:
16
+ * a CLIError becomes a one-line message and exit code 1 instead of a stack
17
+ * trace. This is what the binary calls, so tests exercising failure paths get
18
+ * the exit code a user would actually see.
19
+ */
20
+ declare function main(argv: Argv): Promise<number>;
21
+ export { run as runCli, main as runCliMain };
15
22
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;GASG;AAkCH,KAAK,IAAI,GAAG,MAAM,EAAE,CAAC;AAcrB,iBAAe,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CA6E9C;AAgBD,OAAO,EAAE,GAAG,IAAI,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;GASG;AA+CH,KAAK,IAAI,GAAG,MAAM,EAAE,CAAC;AAmCrB,iBAAe,GAAG,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAqH9C;AAED;;;;;GAKG;AACH,iBAAe,IAAI,CAAC,IAAI,EAAE,IAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAc/C;AAMD,OAAO,EAAE,GAAG,IAAI,MAAM,EAAE,IAAI,IAAI,UAAU,EAAE,CAAC"}
package/dist/cli/index.js CHANGED
@@ -12,6 +12,7 @@
12
12
  */
13
13
  Object.defineProperty(exports, "__esModule", { value: true });
14
14
  exports.runCli = run;
15
+ exports.runCliMain = main;
15
16
  const util_1 = require("./util");
16
17
  const HELP = `
17
18
  armoriq — ArmorIQ SDK CLI
@@ -35,6 +36,19 @@ Commands:
35
36
  keys revoke <id> Revoke a single API key
36
37
  keys prune [--yes] Revoke expired / unused (>90d) keys
37
38
 
39
+ policy show [--json] Show the org's active armor policy
40
+ policy templates List the built-in policy templates
41
+ policy set <template> Stage a template as the org policy
42
+ [--reason <text>] [--activate] [--yes]
43
+ policy propose --file <p> Stage an armor.policy.v1 JSON document
44
+ [--reason <text>] [--activate] [--yes]
45
+ policy cancel Discard the staged proposal
46
+
47
+ set/propose replace the org's working draft and
48
+ stage it for confirmation on the dashboard.
49
+ --activate publishes it immediately instead, and
50
+ asks first (--yes to skip, required off a TTY).
51
+
38
52
  status Show local CLI state (agent, env, MCPs)
39
53
  logs [--follow] Tail the CLI log file
40
54
 
@@ -44,10 +58,31 @@ Use \`armoriq help <command>\` for command-specific options.
44
58
  `;
45
59
  function parseFlag(args, name, hasValue = true) {
46
60
  for (let i = 0; i < args.length; i++) {
47
- if (args[i] === `--${name}`) {
61
+ const arg = args[i];
62
+ // `--name=value`. Without this the whole token matches nothing and the flag
63
+ // is silently ignored, so `--activate=true` looks accepted and does nothing.
64
+ if (arg.startsWith(`--${name}=`)) {
65
+ const v = arg.slice(name.length + 3);
66
+ args.splice(i, 1);
67
+ if (!hasValue) {
68
+ if (v === 'false')
69
+ return false;
70
+ return true;
71
+ }
72
+ if (!v)
73
+ throw new util_1.CLIError(`--${name} needs a value.`);
74
+ return v;
75
+ }
76
+ if (arg === `--${name}`) {
48
77
  if (!hasValue)
49
78
  return true;
50
79
  const v = args[i + 1];
80
+ // A value flag whose value is missing used to swallow the following
81
+ // token, so `--reason --activate` consumed --activate as the reason and
82
+ // the publish silently never happened.
83
+ if (v === undefined || v.startsWith('--')) {
84
+ throw new util_1.CLIError(`--${name} needs a value.`);
85
+ }
51
86
  args.splice(i, 2);
52
87
  return v;
53
88
  }
@@ -107,6 +142,42 @@ async function run(argv) {
107
142
  (0, util_1.out)('Usage: armoriq keys list | revoke <id> | prune [--yes]');
108
143
  return 1;
109
144
  }
145
+ case 'policy': {
146
+ const sub = rest[0];
147
+ const { cmdPolicyShow, cmdPolicyTemplates, cmdPolicySet, cmdPolicyPropose, cmdPolicyCancel, } = await import('./commands/policy.js');
148
+ if (sub === 'show') {
149
+ const json = parseFlag(rest, 'json', false) === true;
150
+ return cmdPolicyShow({ json });
151
+ }
152
+ if (sub === 'templates')
153
+ return cmdPolicyTemplates();
154
+ if (sub === 'set') {
155
+ const reason = parseFlag(rest, 'reason');
156
+ const activate = parseFlag(rest, 'activate', false) === true;
157
+ const yes = parseFlag(rest, 'yes', false) === true;
158
+ // rest[0] is the 'set' subcommand itself; the template is the next
159
+ // non-flag token (flags were spliced out by parseFlag above).
160
+ const template = rest.slice(1).find((a) => !a.startsWith('--'));
161
+ if (!template)
162
+ throw new util_1.CLIError('Usage: armoriq policy set <template>');
163
+ return cmdPolicySet({ template, reason, activate, yes });
164
+ }
165
+ if (sub === 'propose') {
166
+ const reason = parseFlag(rest, 'reason');
167
+ const activate = parseFlag(rest, 'activate', false) === true;
168
+ const yes = parseFlag(rest, 'yes', false) === true;
169
+ const file = parseFlag(rest, 'file') ??
170
+ rest.slice(1).find((a) => !a.startsWith('--'));
171
+ if (!file)
172
+ throw new util_1.CLIError('Usage: armoriq policy propose --file <policy.json>');
173
+ return cmdPolicyPropose({ file, reason, activate, yes });
174
+ }
175
+ if (sub === 'cancel')
176
+ return cmdPolicyCancel();
177
+ (0, util_1.out)('Usage: armoriq policy show [--json] | templates | set <template> | ' +
178
+ 'propose --file <policy.json> | cancel');
179
+ return 1;
180
+ }
110
181
  case 'status': {
111
182
  const { cmdStatus } = await import('./commands/status.js');
112
183
  return cmdStatus();
@@ -131,17 +202,29 @@ async function run(argv) {
131
202
  return 1;
132
203
  }
133
204
  }
134
- if (require.main === module) {
135
- const argv = process.argv.slice(2);
136
- run(argv)
137
- .then((code) => process.exit(code))
138
- .catch((err) => {
205
+ /**
206
+ * Same dispatch as run(), but with the process-level error handling folded in:
207
+ * a CLIError becomes a one-line message and exit code 1 instead of a stack
208
+ * trace. This is what the binary calls, so tests exercising failure paths get
209
+ * the exit code a user would actually see.
210
+ */
211
+ async function main(argv) {
212
+ try {
213
+ return await run(argv);
214
+ }
215
+ catch (err) {
139
216
  if (err instanceof util_1.CLIError) {
140
217
  (0, util_1.out)(` ${util_1.CROSS} ${err.message}`);
141
- process.exit(1);
218
+ return 1;
142
219
  }
143
- (0, util_1.out)(` ${util_1.CROSS} Unexpected error: ${err.message}`);
144
- process.exit(1);
145
- });
220
+ // Not necessarily an Error: a thrown string or null would make a `.message`
221
+ // read throw inside the handler, and nothing is left to catch that.
222
+ const detail = err instanceof Error ? err.message : String(err);
223
+ (0, util_1.out)(` ${util_1.CROSS} Unexpected error: ${detail}`);
224
+ return 1;
225
+ }
226
+ }
227
+ if (require.main === module) {
228
+ main(process.argv.slice(2)).then((code) => process.exit(code));
146
229
  }
147
230
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
package/dist/client.d.ts CHANGED
@@ -259,6 +259,13 @@ export declare class ArmorIQClient {
259
259
  * Eagerly load metadata for an MCP so subsequent invoke() calls are fast.
260
260
  */
261
261
  loadMcp(mcpName: string): Promise<void>;
262
+ /**
263
+ * Already-fetched metadata for an MCP, or undefined if it was never loaded.
264
+ * For callers that cannot await — notably the synchronous
265
+ * `ArmorIQSession.enforceLocal`, which needs the canonical amount fields to
266
+ * evaluate a financial threshold.
267
+ */
268
+ toolMetadataSync(mcpName: string): MCPSemanticMetadata | undefined;
262
269
  /**
263
270
  * List all MCPs registered for this org (resolved via API key).
264
271
  */
@@ -290,14 +297,20 @@ export declare class ArmorIQClient {
290
297
  /**
291
298
  * Check if a delegation request has been approved.
292
299
  */
293
- checkApprovedDelegation(userEmail: string, tool: string, amount: number): Promise<ApprovedDelegation | null>;
300
+ /**
301
+ * #831: `planId` scopes the lookup to the plan asking. An approval is a decision
302
+ * about one plan, so without it the backend returns nothing rather than an
303
+ * approval granted elsewhere — callers that omit it get no reuse and fall
304
+ * through to raising a fresh hold.
305
+ */
306
+ checkApprovedDelegation(userEmail: string, tool: string, amount: number, planId?: string): Promise<ApprovedDelegation | null>;
294
307
  /**
295
308
  * Mark a delegation as executed.
296
309
  *
297
310
  * Idempotent on the backend (delegationId-keyed), so a stable
298
311
  * Idempotency-Key derived from the delegation_id is safe to retry.
299
312
  */
300
- markDelegationExecuted(userEmail: string, delegationId: string): Promise<void>;
313
+ markDelegationExecuted(userEmail: string, delegationId: string, planId?: string): Promise<void>;
301
314
  /**
302
315
  * Return a single delegation's current status: 'pending' | 'approved' |
303
316
  * 'rejected' | 'expired' | 'none'. Throws DelegationException on an HTTP error
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}