@armoriq/sdk-dev 0.6.5 → 0.6.6
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/policy.d.ts +39 -0
- package/dist/cli/commands/policy.d.ts.map +1 -0
- package/dist/cli/commands/policy.js +315 -0
- package/dist/cli/commands/policy.js.map +1 -0
- package/dist/cli/index.d.ts +8 -1
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +93 -10
- package/dist/cli/index.js.map +1 -1
- package/dist/client.d.ts +8 -2
- package/dist/client.d.ts.map +1 -1
- package/dist/client.js +22 -8
- package/dist/client.js.map +1 -1
- package/dist/index.d.ts +2 -2
- package/dist/index.js +2 -2
- package/dist/integrations/google_adk.d.ts +10 -0
- package/dist/integrations/google_adk.d.ts.map +1 -1
- package/dist/integrations/google_adk.js +44 -1
- package/dist/integrations/google_adk.js.map +1 -1
- package/dist/session.d.ts.map +1 -1
- package/dist/session.js +5 -3
- package/dist/session.js.map +1 -1
- package/package.json +1 -1
|
@@ -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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"}
|
package/dist/cli/index.d.ts
CHANGED
|
@@ -11,5 +11,12 @@
|
|
|
11
11
|
*/
|
|
12
12
|
type Argv = string[];
|
|
13
13
|
declare function run(argv: Argv): Promise<number>;
|
|
14
|
-
|
|
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
|
package/dist/cli/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";AACA;;;;;;;;;GASG;
|
|
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
|
-
|
|
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
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
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
|
-
|
|
218
|
+
return 1;
|
|
142
219
|
}
|
|
143
|
-
|
|
144
|
-
|
|
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
|
package/dist/cli/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":";;AACA;;;;;;;;;GASG;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/cli/index.ts"],"names":[],"mappings":"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"}
|
package/dist/client.d.ts
CHANGED
|
@@ -290,14 +290,20 @@ export declare class ArmorIQClient {
|
|
|
290
290
|
/**
|
|
291
291
|
* Check if a delegation request has been approved.
|
|
292
292
|
*/
|
|
293
|
-
|
|
293
|
+
/**
|
|
294
|
+
* #831: `planId` scopes the lookup to the plan asking. An approval is a decision
|
|
295
|
+
* about one plan, so without it the backend returns nothing rather than an
|
|
296
|
+
* approval granted elsewhere — callers that omit it get no reuse and fall
|
|
297
|
+
* through to raising a fresh hold.
|
|
298
|
+
*/
|
|
299
|
+
checkApprovedDelegation(userEmail: string, tool: string, amount: number, planId?: string): Promise<ApprovedDelegation | null>;
|
|
294
300
|
/**
|
|
295
301
|
* Mark a delegation as executed.
|
|
296
302
|
*
|
|
297
303
|
* Idempotent on the backend (delegationId-keyed), so a stable
|
|
298
304
|
* Idempotency-Key derived from the delegation_id is safe to retry.
|
|
299
305
|
*/
|
|
300
|
-
markDelegationExecuted(userEmail: string, delegationId: string): Promise<void>;
|
|
306
|
+
markDelegationExecuted(userEmail: string, delegationId: string, planId?: string): Promise<void>;
|
|
301
307
|
/**
|
|
302
308
|
* Return a single delegation's current status: 'pending' | 'approved' |
|
|
303
309
|
* 'rejected' | 'expired' | 'none'. Throws DelegationException on an HTTP error
|
package/dist/client.d.ts.map
CHANGED
|
@@ -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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"}
|