@usenaive-sdk/cli 0.4.1 → 0.4.3

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 (49) hide show
  1. package/dist/client.d.ts +15 -1
  2. package/dist/client.js +74 -3
  3. package/dist/client.js.map +1 -1
  4. package/dist/commands/account-kits.d.ts +2 -0
  5. package/dist/commands/account-kits.js +71 -0
  6. package/dist/commands/account-kits.js.map +1 -0
  7. package/dist/commands/approvals.d.ts +2 -0
  8. package/dist/commands/approvals.js +109 -0
  9. package/dist/commands/approvals.js.map +1 -0
  10. package/dist/commands/cards.js +14 -1
  11. package/dist/commands/cards.js.map +1 -1
  12. package/dist/commands/connections.d.ts +2 -0
  13. package/dist/commands/connections.js +97 -0
  14. package/dist/commands/connections.js.map +1 -0
  15. package/dist/commands/domains.js +8 -1
  16. package/dist/commands/domains.js.map +1 -1
  17. package/dist/commands/formation.js +11 -1
  18. package/dist/commands/formation.js.map +1 -1
  19. package/dist/commands/logs.d.ts +2 -0
  20. package/dist/commands/logs.js +42 -0
  21. package/dist/commands/logs.js.map +1 -0
  22. package/dist/commands/use.d.ts +3 -0
  23. package/dist/commands/use.js +31 -0
  24. package/dist/commands/use.js.map +1 -0
  25. package/dist/commands/users.d.ts +2 -0
  26. package/dist/commands/users.js +63 -0
  27. package/dist/commands/users.js.map +1 -0
  28. package/dist/commands/vault.d.ts +2 -0
  29. package/dist/commands/vault.js +71 -0
  30. package/dist/commands/vault.js.map +1 -0
  31. package/dist/commands/verification.js +8 -1
  32. package/dist/commands/verification.js.map +1 -1
  33. package/dist/config.d.ts +2 -0
  34. package/dist/config.js.map +1 -1
  35. package/dist/index.js +37 -1
  36. package/dist/index.js.map +1 -1
  37. package/package.json +1 -1
  38. package/dist/commands/billing-client.d.ts +0 -2
  39. package/dist/commands/billing-client.js +0 -271
  40. package/dist/commands/billing-client.js.map +0 -1
  41. package/dist/commands/crm-app.d.ts +0 -2
  42. package/dist/commands/crm-app.js +0 -306
  43. package/dist/commands/crm-app.js.map +0 -1
  44. package/dist/commands/crm.d.ts +0 -2
  45. package/dist/commands/crm.js +0 -319
  46. package/dist/commands/crm.js.map +0 -1
  47. package/dist/commands/integrations.d.ts +0 -2
  48. package/dist/commands/integrations.js +0 -199
  49. package/dist/commands/integrations.js.map +0 -1
package/dist/client.d.ts CHANGED
@@ -1,5 +1,9 @@
1
- export declare function apiRequest(method: string, path: string, body?: Record<string, unknown>, opts?: {
1
+ export declare function setActiveUserOverride(userId?: string): void;
2
+ /** Resolve the active subject user id (override > config). */
3
+ export declare function activeUserId(): string | undefined;
4
+ export declare function apiRequest(method: string, rawPath: string, body?: Record<string, unknown>, opts?: {
2
5
  noAuth?: boolean;
6
+ userId?: string;
3
7
  }): Promise<{
4
8
  status: number;
5
9
  data: unknown;
@@ -8,3 +12,13 @@ export declare function handleApiError(action: string, resp: {
8
12
  status: number;
9
13
  data: unknown;
10
14
  }): void;
15
+ /**
16
+ * Governance: a sensitive action may be deferred for human approval (HTTP 202
17
+ * with `status: "pending_approval"`). When that happens, emit a structured
18
+ * pending result (NOT an error — it's a successful deferral) and return true so
19
+ * the caller can stop. Returns false for a normal response.
20
+ */
21
+ export declare function handlePendingApproval(action: string, resp: {
22
+ status: number;
23
+ data: unknown;
24
+ }): boolean;
package/dist/client.js CHANGED
@@ -1,14 +1,54 @@
1
1
  import { loadConfig, getApiKey } from "./config.js";
2
- import { formatApiError } from "./output.js";
3
- export async function apiRequest(method, path, body, opts) {
2
+ import { formatApiError, agentOutput } from "./output.js";
3
+ // Per-invocation override for the active subject user (set by a global --user
4
+ // flag). Falls back to config.active_user_id, then the api key's default.
5
+ let _userOverride;
6
+ export function setActiveUserOverride(userId) {
7
+ _userOverride = userId;
8
+ }
9
+ /** Resolve the active subject user id (override > config). */
10
+ export function activeUserId() {
11
+ return _userOverride ?? loadConfig().active_user_id;
12
+ }
13
+ /**
14
+ * Native primitives that have per-user path routes (/v1/users/:id/<prim>).
15
+ * When an active subject user is set, legacy company-level calls
16
+ * (/v1/<prim>/...) are rewritten to the path-scoped form so the CLI's
17
+ * `use`/`--user` selection actually isolates data and enforces the
18
+ * AccountKit — matching the SDK and dashboard. The legacy routes don't run
19
+ * the subject middleware, so without this the header was silently ignored.
20
+ */
21
+ const PER_USER_PRIMITIVES = new Set(["cards", "email", "domains", "verification", "formation", "social"]);
22
+ function scopePathToUser(path, subject) {
23
+ if (!subject)
24
+ return path; // solo flow (no active user) keeps legacy behavior
25
+ if (path.startsWith("/v1/users/"))
26
+ return path; // already user-scoped
27
+ const m = path.match(/^\/v1\/([^/?]+)(.*)$/);
28
+ if (!m)
29
+ return path;
30
+ if (!PER_USER_PRIMITIVES.has(m[1]))
31
+ return path;
32
+ return `/v1/users/${subject}/${m[1]}${m[2]}`;
33
+ }
34
+ export async function apiRequest(method, rawPath, body, opts) {
4
35
  const config = loadConfig();
5
- const url = `${config.base_url}${path}`;
6
36
  const headers = {
7
37
  "Content-Type": "application/json",
8
38
  };
39
+ let path = rawPath;
9
40
  if (!opts?.noAuth) {
10
41
  headers["Authorization"] = `Bearer ${getApiKey()}`;
42
+ // Scope to a specific tenant_user when set. The server validates the id
43
+ // against the api key's company (cross-tenant guard).
44
+ const subject = opts?.userId ?? activeUserId();
45
+ if (subject)
46
+ headers["X-Naive-User-Id"] = subject;
47
+ // Native primitives only isolate via their per-user path routes, so rewrite
48
+ // legacy paths to the path-scoped form when a subject is active.
49
+ path = scopePathToUser(path, subject);
11
50
  }
51
+ const url = `${config.base_url}${path}`;
12
52
  const resp = await fetch(url, {
13
53
  method,
14
54
  headers,
@@ -22,4 +62,35 @@ export function handleApiError(action, resp) {
22
62
  formatApiError(action, resp.data);
23
63
  }
24
64
  }
65
+ /**
66
+ * Governance: a sensitive action may be deferred for human approval (HTTP 202
67
+ * with `status: "pending_approval"`). When that happens, emit a structured
68
+ * pending result (NOT an error — it's a successful deferral) and return true so
69
+ * the caller can stop. Returns false for a normal response.
70
+ */
71
+ export function handlePendingApproval(action, resp) {
72
+ const d = resp.data;
73
+ if (resp.status === 202 || d?.status === "pending_approval") {
74
+ agentOutput({
75
+ action,
76
+ result: resp.data,
77
+ next_steps: [
78
+ {
79
+ command: `naive approvals approve ${d.approval_id ?? "<approval_id>"}`,
80
+ description: "Approve & execute this action (operator/owner)",
81
+ },
82
+ {
83
+ command: `naive approvals get ${d.approval_id ?? "<approval_id>"}`,
84
+ description: "Check whether it's been approved yet",
85
+ },
86
+ ],
87
+ hints: [
88
+ d.message ?? "This action requires human approval before it executes.",
89
+ "It has been added to the approval queue (HTTP 202).",
90
+ ],
91
+ });
92
+ return true;
93
+ }
94
+ return false;
95
+ }
25
96
  //# sourceMappingURL=client.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACpD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAE7C,MAAM,CAAC,KAAK,UAAU,UAAU,CAC9B,MAAc,EACd,IAAY,EACZ,IAA8B,EAC9B,IAA2B;IAE3B,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;IAC5B,MAAM,GAAG,GAAG,GAAG,MAAM,CAAC,QAAQ,GAAG,IAAI,EAAE,CAAC;IAExC,MAAM,OAAO,GAA2B;QACtC,cAAc,EAAE,kBAAkB;KACnC,CAAC;IAEF,IAAI,CAAC,IAAI,EAAE,MAAM,EAAE,CAAC;QAClB,OAAO,CAAC,eAAe,CAAC,GAAG,UAAU,SAAS,EAAE,EAAE,CAAC;IACrD,CAAC;IAED,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAC5B,MAAM;QACN,OAAO;QACP,GAAG,CAAC,IAAI,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC;KAC5C,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;IAC/B,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAc,EAAE,IAAuC;IACpF,IAAI,IAAI,CAAC,MAAM,IAAI,GAAG,EAAE,CAAC;QACvB,cAAc,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;IACpC,CAAC;AACH,CAAC"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const accountKitsCmd: Command;
@@ -0,0 +1,71 @@
1
+ import { Command } from "commander";
2
+ import { apiRequest, handleApiError } from "../client.js";
3
+ import { agentOutput } from "../output.js";
4
+ export const accountKitsCmd = new Command("account-kits")
5
+ .alias("kits")
6
+ .description("Manage AccountKits — policy templates governing what tenant users can do");
7
+ accountKitsCmd
8
+ .command("list")
9
+ .description("List AccountKits")
10
+ .action(async () => {
11
+ const resp = await apiRequest("GET", "/v1/account-kits");
12
+ handleApiError("account-kits.list", resp);
13
+ agentOutput({ action: "account-kits.list", result: resp.data, next_steps: [] });
14
+ });
15
+ /** Parse repeated --tool gmail.enable=A,B into { gmail: { enable: [A,B] } }. */
16
+ function parseToolFilters(specs) {
17
+ const out = {};
18
+ for (const spec of specs) {
19
+ const m = /^([^.]+)\.(enable|disable)=(.+)$/.exec(spec);
20
+ if (!m)
21
+ continue;
22
+ const [, toolkit, mode, list] = m;
23
+ out[toolkit] = { [mode]: list.split(",").map((s) => s.trim()) };
24
+ }
25
+ return out;
26
+ }
27
+ /** Parse repeated --custom-auth gmail=ac_xxx into { gmail: "ac_xxx" }. */
28
+ function parseCustomAuth(specs) {
29
+ const out = {};
30
+ for (const spec of specs) {
31
+ const [toolkit, ac] = spec.split("=");
32
+ if (toolkit && ac)
33
+ out[toolkit] = ac;
34
+ }
35
+ return out;
36
+ }
37
+ accountKitsCmd
38
+ .command("create")
39
+ .description("Create an AccountKit")
40
+ .requiredOption("--name <name>", "Kit name")
41
+ .option("--mode <mode>", "Toolkit filter: open | allowlist | blocklist", "open")
42
+ .option("--toolkits <list>", "Comma-separated toolkit slugs (allowlist/blocklist)")
43
+ .option("--tool <spec...>", "Per-tool filter, e.g. gmail.enable=GMAIL_SEND_EMAIL,GMAIL_FETCH_EMAILS")
44
+ .option("--custom-auth <spec...>", "Per-toolkit custom auth config, e.g. gmail=ac_xxx")
45
+ .action(async (opts) => {
46
+ const connections_config = { mode: opts.mode };
47
+ if (opts.mode !== "open") {
48
+ connections_config.toolkits = (opts.toolkits ?? "").split(",").map((s) => s.trim()).filter(Boolean);
49
+ }
50
+ if (opts.tool?.length)
51
+ connections_config.tools = parseToolFilters(opts.tool);
52
+ if (opts.customAuth?.length)
53
+ connections_config.custom_auth_configs = parseCustomAuth(opts.customAuth);
54
+ const resp = await apiRequest("POST", "/v1/account-kits", {
55
+ name: opts.name,
56
+ connections_config,
57
+ });
58
+ handleApiError("account-kits.create", resp);
59
+ agentOutput({ action: "account-kits.create", result: resp.data, next_steps: [] });
60
+ });
61
+ accountKitsCmd
62
+ .command("assign")
63
+ .description("Assign a user to an AccountKit")
64
+ .argument("<kit_id>")
65
+ .argument("<user_id>")
66
+ .action(async (kitId, userId) => {
67
+ const resp = await apiRequest("POST", `/v1/account-kits/${kitId}/users/${userId}/assign`);
68
+ handleApiError("account-kits.assign", resp);
69
+ agentOutput({ action: "account-kits.assign", result: resp.data, next_steps: [] });
70
+ });
71
+ //# sourceMappingURL=account-kits.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"account-kits.js","sourceRoot":"","sources":["../../src/commands/account-kits.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const approvalsCmd: Command;
@@ -0,0 +1,109 @@
1
+ import { Command } from "commander";
2
+ import { apiRequest, handleApiError, activeUserId } from "../client.js";
3
+ import { agentOutput } from "../output.js";
4
+ /** Resolve the user path segment — explicit --user wins, else active, else "default". */
5
+ function userPath(user) {
6
+ return `/v1/users/${user ?? activeUserId() ?? "default"}`;
7
+ }
8
+ export const approvalsCmd = new Command("approvals")
9
+ .alias("approval")
10
+ .description("Governance — review & resolve agent-requested approvals for sensitive actions")
11
+ .addHelpText("after", `
12
+ Sensitive agent actions (issue/fund a card, purchase a domain, KYC, form a
13
+ company, sign up for / connect a 3rd-party service) can require HUMAN APPROVAL.
14
+ When gated, the action returns HTTP 202 with status "pending_approval" and is
15
+ frozen here until a human approves it — only then does it actually run.
16
+
17
+ Subcommands:
18
+ naive approvals list List approvals (use --status pending)
19
+ naive approvals get <id> Show one approval (status, frozen payload)
20
+ naive approvals approve <id> Approve → the API replays the frozen action
21
+ naive approvals deny <id> Deny (action never runs)
22
+ naive approvals watch <id> Poll until the approval is resolved
23
+
24
+ Scope: pass --user <id> to target one tenant user, or omit to use the active
25
+ user (set with 'naive use <id>'). Omit --user with no active user to use the
26
+ operator's default user.
27
+
28
+ Examples:
29
+ $ naive approvals list --status pending
30
+ $ naive approvals approve <approval-uuid>
31
+ $ naive approvals deny <approval-uuid> --reason "not now"
32
+ `);
33
+ approvalsCmd
34
+ .command("list")
35
+ .description("List approvals (optionally filter by status)")
36
+ .option("--user <id>", "Target a specific tenant user")
37
+ .option("--status <status>", "pending | executed | failed | denied | expired")
38
+ .action(async (opts) => {
39
+ const q = opts.status ? `?status=${encodeURIComponent(opts.status)}` : "";
40
+ const resp = await apiRequest("GET", `${userPath(opts.user)}/approvals${q}`, undefined, { userId: opts.user });
41
+ handleApiError("approvals.list", resp);
42
+ agentOutput({
43
+ action: "approvals.list",
44
+ result: resp.data,
45
+ next_steps: [
46
+ { command: "naive approvals approve <id>", description: "Approve a pending action" },
47
+ { command: "naive approvals deny <id>", description: "Deny a pending action" },
48
+ ],
49
+ });
50
+ });
51
+ approvalsCmd
52
+ .command("get")
53
+ .description("Show a single approval")
54
+ .argument("<id>")
55
+ .option("--user <id>", "Target a specific tenant user")
56
+ .action(async (id, opts) => {
57
+ const resp = await apiRequest("GET", `${userPath(opts.user)}/approvals/${id}`, undefined, { userId: opts.user });
58
+ handleApiError("approvals.get", resp);
59
+ agentOutput({ action: "approvals.get", result: resp.data, next_steps: [] });
60
+ });
61
+ approvalsCmd
62
+ .command("approve")
63
+ .description("Approve a pending action — the API replays the frozen request")
64
+ .argument("<id>")
65
+ .option("--user <id>", "Target a specific tenant user")
66
+ .action(async (id, opts) => {
67
+ const resp = await apiRequest("POST", `${userPath(opts.user)}/approvals/${id}/approve`, undefined, {
68
+ userId: opts.user,
69
+ });
70
+ handleApiError("approvals.approve", resp);
71
+ agentOutput({
72
+ action: "approvals.approve",
73
+ result: resp.data,
74
+ next_steps: [{ command: `naive approvals get ${id}`, description: "Inspect the execution result" }],
75
+ });
76
+ });
77
+ approvalsCmd
78
+ .command("deny")
79
+ .description("Deny a pending action (it will never run)")
80
+ .argument("<id>")
81
+ .option("--user <id>", "Target a specific tenant user")
82
+ .option("--reason <reason>", "Why it was denied")
83
+ .action(async (id, opts) => {
84
+ const resp = await apiRequest("POST", `${userPath(opts.user)}/approvals/${id}/deny`, { reason: opts.reason }, { userId: opts.user });
85
+ handleApiError("approvals.deny", resp);
86
+ agentOutput({ action: "approvals.deny", result: resp.data, next_steps: [] });
87
+ });
88
+ approvalsCmd
89
+ .command("watch")
90
+ .description("Poll a pending approval until it is resolved")
91
+ .argument("<id>")
92
+ .option("--user <id>", "Target a specific tenant user")
93
+ .option("--interval <ms>", "Poll interval in ms", "2000")
94
+ .option("--timeout <ms>", "Give up after this many ms", "300000")
95
+ .action(async (id, opts) => {
96
+ const interval = Number(opts.interval ?? "2000");
97
+ const deadline = Date.now() + Number(opts.timeout ?? "300000");
98
+ for (;;) {
99
+ const resp = await apiRequest("GET", `${userPath(opts.user)}/approvals/${id}`, undefined, { userId: opts.user });
100
+ handleApiError("approvals.watch", resp);
101
+ const status = resp.data.status;
102
+ if (status !== "pending" || Date.now() >= deadline) {
103
+ agentOutput({ action: "approvals.watch", result: resp.data, next_steps: [] });
104
+ return;
105
+ }
106
+ await new Promise((r) => setTimeout(r, interval));
107
+ }
108
+ });
109
+ //# sourceMappingURL=approvals.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"approvals.js","sourceRoot":"","sources":["../../src/commands/approvals.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Command } from "commander";
2
- import { apiRequest, handleApiError } from "../client.js";
2
+ import { apiRequest, handleApiError, handlePendingApproval } from "../client.js";
3
3
  import { agentOutput } from "../output.js";
4
4
  export const cardsCmd = new Command("cards")
5
5
  .description("Virtual cards — create, fund, manage, and assign cards to agents")
@@ -39,6 +39,13 @@ Workflow for Reloadly prepaid cards:
39
39
  2. naive cards check-payment <id> → issues card after payment
40
40
  3. naive cards details <id> → get redeem code and PIN
41
41
 
42
+ Governance:
43
+ Issuing a card, topping up, and creating a cardholder are SENSITIVE (they
44
+ spend money / sign up for Stripe Issuing). Depending on the user's Account
45
+ Kit they may require human approval — the command then returns
46
+ status "pending_approval" and the action runs only after
47
+ 'naive approvals approve <id>'. See 'naive approvals --help'.
48
+
42
49
  Examples:
43
50
  $ naive cards
44
51
  $ naive cards create --name "Marketing Card" --spending-limit 10000
@@ -120,6 +127,8 @@ cardsCmd
120
127
  dobYear: Number(opts.dobYear),
121
128
  });
122
129
  handleApiError("cards.create-cardholder", resp);
130
+ if (handlePendingApproval("cards.create-cardholder", resp))
131
+ return;
123
132
  agentOutput({
124
133
  action: "cards.create-cardholder",
125
134
  result: resp.data,
@@ -196,6 +205,8 @@ cardsCmd
196
205
  agent_id: opts.agentId,
197
206
  });
198
207
  handleApiError("cards.create", resp);
208
+ if (handlePendingApproval("cards.create", resp))
209
+ return;
199
210
  const data = resp.data;
200
211
  agentOutput({
201
212
  action: "cards.create",
@@ -268,6 +279,8 @@ cardsCmd
268
279
  amount_cents: Number(opts.amount),
269
280
  });
270
281
  handleApiError("cards.top-up", resp);
282
+ if (handlePendingApproval("cards.top-up", resp))
283
+ return;
271
284
  const data = resp.data;
272
285
  agentOutput({
273
286
  action: "cards.top-up",
@@ -1 +1 @@
1
- {"version":3,"file":"cards.js","sourceRoot":"","sources":["../../src/commands/cards.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cards.js","sourceRoot":"","sources":["../../src/commands/cards.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { Command } from "commander";
2
+ export declare const connectionsCmd: Command;
@@ -0,0 +1,97 @@
1
+ import { Command } from "commander";
2
+ import { apiRequest, handleApiError, handlePendingApproval, activeUserId } from "../client.js";
3
+ import { agentOutput } from "../output.js";
4
+ function userPath(user) {
5
+ return `/v1/users/${user ?? activeUserId() ?? "default"}`;
6
+ }
7
+ export const connectionsCmd = new Command("connections")
8
+ .alias("integrations") // back-compat alias
9
+ .description("3rd-party connections (Composio) — connect Gmail, Slack, GitHub, and 1,000+ apps per user");
10
+ connectionsCmd
11
+ .command("list")
12
+ .description("List available toolkits + connection status (filtered by the user's AccountKit)")
13
+ .option("--user <id>", "Target a specific tenant user")
14
+ .option("--search <q>", "Filter by name")
15
+ .option("--connected", "Only connected toolkits")
16
+ .action(async (opts) => {
17
+ const qs = new URLSearchParams();
18
+ if (opts.search)
19
+ qs.set("search", opts.search);
20
+ if (opts.connected)
21
+ qs.set("connected", "true");
22
+ const q = qs.toString();
23
+ const resp = await apiRequest("GET", `${userPath(opts.user)}/connections${q ? `?${q}` : ""}`, undefined, {
24
+ userId: opts.user,
25
+ });
26
+ handleApiError("connections.list", resp);
27
+ agentOutput({ action: "connections.list", result: resp.data, next_steps: [] });
28
+ });
29
+ connectionsCmd
30
+ .command("connect")
31
+ .description("Start an OAuth/API-key flow for a toolkit → returns a redirect URL")
32
+ .argument("<toolkit>")
33
+ .option("--user <id>", "Target a specific tenant user")
34
+ .option("--callback <url>", "Redirect URL after auth")
35
+ .addHelpText("after", "\nGovernance: connecting a service can require human approval. If so the response\nhas status 'pending_approval' and the connection runs only after\n'naive approvals approve <id>'.")
36
+ .action(async (toolkit, opts) => {
37
+ const resp = await apiRequest("POST", `${userPath(opts.user)}/connections/connect`, {
38
+ toolkit,
39
+ callback_url: opts.callback,
40
+ }, { userId: opts.user });
41
+ handleApiError("connections.connect", resp);
42
+ if (handlePendingApproval("connections.connect", resp))
43
+ return;
44
+ agentOutput({
45
+ action: "connections.connect",
46
+ result: resp.data,
47
+ next_steps: [{ command: "open the redirectUrl", description: "Finish auth in the browser" }],
48
+ });
49
+ });
50
+ connectionsCmd
51
+ .command("disconnect")
52
+ .description("Disconnect a toolkit (soft-disable by default)")
53
+ .argument("<toolkit>")
54
+ .option("--user <id>", "Target a specific tenant user")
55
+ .option("--purge", "Permanently delete instead of disable")
56
+ .action(async (toolkit, opts) => {
57
+ const path = `${userPath(opts.user)}/connections/${encodeURIComponent(toolkit)}${opts.purge ? "?purge=true" : ""}`;
58
+ const resp = await apiRequest("DELETE", path, undefined, { userId: opts.user });
59
+ handleApiError("connections.disconnect", resp);
60
+ agentOutput({ action: "connections.disconnect", result: resp.data, next_steps: [] });
61
+ });
62
+ connectionsCmd
63
+ .command("tools")
64
+ .description("List the tools a toolkit exposes")
65
+ .argument("<toolkit>")
66
+ .option("--user <id>", "Target a specific tenant user")
67
+ .action(async (toolkit, opts) => {
68
+ const resp = await apiRequest("GET", `${userPath(opts.user)}/connections/${encodeURIComponent(toolkit)}/tools`, undefined, {
69
+ userId: opts.user,
70
+ });
71
+ handleApiError("connections.tools", resp);
72
+ agentOutput({ action: "connections.tools", result: resp.data, next_steps: [] });
73
+ });
74
+ connectionsCmd
75
+ .command("execute")
76
+ .description("Invoke a toolkit tool")
77
+ .argument("<toolkit>")
78
+ .argument("<tool>")
79
+ .option("--user <id>", "Target a specific tenant user")
80
+ .option("--args <json>", "JSON arguments", "{}")
81
+ .action(async (toolkit, tool, opts) => {
82
+ let args = {};
83
+ try {
84
+ args = JSON.parse(opts.args ?? "{}");
85
+ }
86
+ catch {
87
+ console.error("Invalid --args JSON");
88
+ process.exit(1);
89
+ }
90
+ const resp = await apiRequest("POST", `${userPath(opts.user)}/connections/${encodeURIComponent(toolkit)}/execute`, {
91
+ tool,
92
+ arguments: args,
93
+ }, { userId: opts.user });
94
+ handleApiError("connections.execute", resp);
95
+ agentOutput({ action: "connections.execute", result: resp.data, next_steps: [] });
96
+ });
97
+ //# sourceMappingURL=connections.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"connections.js","sourceRoot":"","sources":["../../src/commands/connections.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { Command, Option, InvalidArgumentError } from "commander";
2
- import { apiRequest, handleApiError } from "../client.js";
2
+ import { apiRequest, handleApiError, handlePendingApproval } from "../client.js";
3
3
  import { agentOutput } from "../output.js";
4
4
  function parsePositiveInt(label, min, max) {
5
5
  return (raw) => {
@@ -401,10 +401,17 @@ What this does:
401
401
 
402
402
  Limits:
403
403
  Maximum 3 purchased domains per company.
404
+
405
+ Governance:
406
+ Purchasing a domain is SENSITIVE (spends money) and may require human
407
+ approval. If so the response has status "pending_approval" and the purchase
408
+ runs only after 'naive approvals approve <id>'.
404
409
  `)
405
410
  .action(async (domain) => {
406
411
  const resp = await apiRequest("POST", "/v1/domains/purchase", { domain });
407
412
  handleApiError("domains.purchase", resp);
413
+ if (handlePendingApproval("domains.purchase", resp))
414
+ return;
408
415
  const data = resp.data;
409
416
  agentOutput({
410
417
  action: "domains.purchase",