@usenaive-sdk/cli 0.10.0 → 0.12.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 (46) hide show
  1. package/dist/client.js +1 -1
  2. package/dist/client.js.map +1 -1
  3. package/dist/commands/agent-profiles.d.ts +11 -0
  4. package/dist/commands/agent-profiles.js +120 -0
  5. package/dist/commands/agent-profiles.js.map +1 -0
  6. package/dist/commands/approvals.js +1 -1
  7. package/dist/commands/billing-client.d.ts +2 -0
  8. package/dist/commands/billing-client.js +271 -0
  9. package/dist/commands/billing-client.js.map +1 -0
  10. package/dist/commands/crm-app.d.ts +2 -0
  11. package/dist/commands/crm-app.js +306 -0
  12. package/dist/commands/crm-app.js.map +1 -0
  13. package/dist/commands/crm.d.ts +2 -0
  14. package/dist/commands/crm.js +319 -0
  15. package/dist/commands/crm.js.map +1 -0
  16. package/dist/commands/env.d.ts +7 -0
  17. package/dist/commands/env.js +48 -0
  18. package/dist/commands/env.js.map +1 -0
  19. package/dist/commands/init.d.ts +2 -0
  20. package/dist/commands/init.js +67 -0
  21. package/dist/commands/init.js.map +1 -0
  22. package/dist/commands/integrations.d.ts +2 -0
  23. package/dist/commands/integrations.js +199 -0
  24. package/dist/commands/integrations.js.map +1 -0
  25. package/dist/commands/logs.js +1 -1
  26. package/dist/commands/logs.js.map +1 -1
  27. package/dist/commands/module.d.ts +8 -0
  28. package/dist/commands/module.js +48 -0
  29. package/dist/commands/module.js.map +1 -0
  30. package/dist/commands/operators.d.ts +11 -0
  31. package/dist/commands/operators.js +120 -0
  32. package/dist/commands/operators.js.map +1 -0
  33. package/dist/commands/report.d.ts +17 -0
  34. package/dist/commands/report.js +109 -0
  35. package/dist/commands/report.js.map +1 -0
  36. package/dist/commands/up.d.ts +3 -0
  37. package/dist/commands/up.js +251 -0
  38. package/dist/commands/up.js.map +1 -0
  39. package/dist/index.js +40 -14
  40. package/dist/index.js.map +1 -1
  41. package/dist/output.js +11 -0
  42. package/dist/output.js.map +1 -1
  43. package/dist/version.d.ts +2 -0
  44. package/dist/version.js +14 -0
  45. package/dist/version.js.map +1 -0
  46. package/package.json +10 -10
@@ -0,0 +1,109 @@
1
+ import { Command, Option } from "commander";
2
+ import { homedir } from "node:os";
3
+ import { apiRequest, handleApiError } from "../client.js";
4
+ import { loadConfig } from "../config.js";
5
+ import { agentOutput } from "../output.js";
6
+ import { readVersion } from "../version.js";
7
+ // Mirrors the API's MAX_MESSAGE/MAX_STACK (packages/api/src/routes/reports.ts) —
8
+ // the API zod schema is the authoritative cap; this just trims before sending.
9
+ const MAX_FIELD = 8 * 1024;
10
+ const HOME = homedir();
11
+ /**
12
+ * Best-effort client-side scrub — a FIRST pass before anything leaves the machine.
13
+ * The internal-agent re-redacts at ingest and is the authoritative layer; this is
14
+ * NOT a guarantee (the command help says so). Covers common key shapes plus
15
+ * key=value and "key":"value" forms, and collapses the home dir out of paths.
16
+ */
17
+ const SCRUB = [
18
+ [/\bnv_(?:sk|sess)_[A-Za-z0-9_-]{6,}\b/g, "[redacted-key]"],
19
+ [/\bsk-(?:ant-)?[A-Za-z0-9_-]{20,}\b/g, "[redacted-key]"],
20
+ [/\b(?:sk|pk|rk)_(?:live|test)_[A-Za-z0-9]{16,}\b/g, "[redacted-key]"],
21
+ [/\b(?:AKIA|ASIA)[A-Z0-9]{16}\b/g, "[redacted-key]"],
22
+ [/\bgh[pousr]_[A-Za-z0-9]{20,}\b/g, "[redacted-key]"],
23
+ [/Bearer\s+[A-Za-z0-9._-]+/gi, "Bearer [redacted]"],
24
+ // key=value and "key":"value" — tolerate a word-char prefix (OPENAI_API_KEY) and quotes.
25
+ [/([A-Za-z_]*(?:api[_-]?key|token|secret|password|authorization))(["']?\s*[=:]\s*["']?)[^\s"',;}]+/gi, "$1$2[redacted]"],
26
+ ];
27
+ function scrub(text) {
28
+ let out = text;
29
+ for (const [re, repl] of SCRUB)
30
+ out = out.replace(re, repl);
31
+ if (HOME)
32
+ out = out.split(HOME).join("~"); // guard: empty HOME would garble via split("")
33
+ return out;
34
+ }
35
+ function truncate(text, max = MAX_FIELD) {
36
+ return text.length > max ? text.slice(0, max) + "\n…[truncated]" : text;
37
+ }
38
+ function buildBody(input) {
39
+ const context = {
40
+ os: `${process.platform} ${process.arch}`,
41
+ cliVersion: readVersion(),
42
+ };
43
+ if (input.command)
44
+ context.command = input.command;
45
+ if (input.sessionId)
46
+ context.sessionId = input.sessionId;
47
+ if (input.stack)
48
+ context.stack = truncate(scrub(input.stack));
49
+ return {
50
+ kind: input.kind ?? "error",
51
+ message: truncate(scrub(input.message)),
52
+ context,
53
+ };
54
+ }
55
+ /**
56
+ * Programmatic, best-effort report. Used by the auto-report path (a Claude
57
+ * subagent, or a future top-level error boundary behind NAIVE_AUTO_REPORT).
58
+ * NEVER throws and never exits — a failed report must not mask the original
59
+ * error. Stays silent if there's no API key (can't report unauthenticated).
60
+ */
61
+ export async function reportError(input) {
62
+ try {
63
+ const hasKey = !!(process.env.NAIVE_API_KEY || loadConfig().api_key);
64
+ if (!hasKey)
65
+ return;
66
+ await apiRequest("POST", "/v1/reports", buildBody(input));
67
+ }
68
+ catch {
69
+ /* best-effort: swallow */
70
+ }
71
+ }
72
+ export const reportCmd = new Command("report")
73
+ .description("Report a bug or send feedback to the naive team (files a tracked issue)")
74
+ .argument("<message>", "the error or feedback to report")
75
+ .addOption(new Option("--kind <kind>", "report kind").choices(["error", "feedback"]).default("error"))
76
+ .option("--command <command>", "the naive command that triggered this (e.g. 'naive video create')")
77
+ .option("--session <id>", "session id, for context")
78
+ .option("--stack <text>", "a stack trace or log excerpt to attach")
79
+ .addHelpText("after", `
80
+ Examples:
81
+ $ naive report "video create failed with a 500" --command "naive video create" --kind error
82
+ $ naive report "wish I could pass a seed to image gen" --kind feedback
83
+
84
+ What this does:
85
+ Files a tracked bug/feedback report with the naive team. Common secret shapes are
86
+ scrubbed client-side (best-effort — don't paste secrets you wouldn't want seen).
87
+ You get a tracking id back — receipt confirmation, not that the issue is filed yet.`)
88
+ .action(async (message, opts) => {
89
+ const resp = await apiRequest("POST", "/v1/reports", buildBody({
90
+ message,
91
+ kind: opts.kind,
92
+ command: opts.command,
93
+ sessionId: opts.session,
94
+ stack: opts.stack,
95
+ }));
96
+ handleApiError("report", resp);
97
+ const data = resp.data;
98
+ agentOutput({
99
+ action: "report",
100
+ result: resp.data,
101
+ next_steps: [],
102
+ hints: [
103
+ `Report received (tracking id: ${data.reportId ?? "?"}).`,
104
+ "This confirms receipt — reports are batched, so the tracked issue is filed shortly after.",
105
+ ],
106
+ related_commands: ["naive status"],
107
+ });
108
+ });
109
+ //# sourceMappingURL=report.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"report.js","sourceRoot":"","sources":["../../src/commands/report.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AAC5C,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,iFAAiF;AACjF,+EAA+E;AAC/E,MAAM,SAAS,GAAG,CAAC,GAAG,IAAI,CAAC;AAC3B,MAAM,IAAI,GAAG,OAAO,EAAE,CAAC;AAEvB;;;;;GAKG;AACH,MAAM,KAAK,GAA4B;IACrC,CAAC,uCAAuC,EAAE,gBAAgB,CAAC;IAC3D,CAAC,qCAAqC,EAAE,gBAAgB,CAAC;IACzD,CAAC,kDAAkD,EAAE,gBAAgB,CAAC;IACtE,CAAC,gCAAgC,EAAE,gBAAgB,CAAC;IACpD,CAAC,iCAAiC,EAAE,gBAAgB,CAAC;IACrD,CAAC,4BAA4B,EAAE,mBAAmB,CAAC;IACnD,yFAAyF;IACzF,CAAC,oGAAoG,EAAE,gBAAgB,CAAC;CACzH,CAAC;AAEF,SAAS,KAAK,CAAC,IAAY;IACzB,IAAI,GAAG,GAAG,IAAI,CAAC;IACf,KAAK,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,IAAI,KAAK;QAAE,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,EAAE,EAAE,IAAI,CAAC,CAAC;IAC5D,IAAI,IAAI;QAAE,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,+CAA+C;IAC1F,OAAO,GAAG,CAAC;AACb,CAAC;AAED,SAAS,QAAQ,CAAC,IAAY,EAAE,GAAG,GAAG,SAAS;IAC7C,OAAO,IAAI,CAAC,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,gBAAgB,CAAC,CAAC,CAAC,IAAI,CAAC;AAC1E,CAAC;AAUD,SAAS,SAAS,CAAC,KAAkB;IACnC,MAAM,OAAO,GAA2B;QACtC,EAAE,EAAE,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,EAAE;QACzC,UAAU,EAAE,WAAW,EAAE;KAC1B,CAAC;IACF,IAAI,KAAK,CAAC,OAAO;QAAE,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC,OAAO,CAAC;IACnD,IAAI,KAAK,CAAC,SAAS;QAAE,OAAO,CAAC,SAAS,GAAG,KAAK,CAAC,SAAS,CAAC;IACzD,IAAI,KAAK,CAAC,KAAK;QAAE,OAAO,CAAC,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC;IAE9D,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI,IAAI,OAAO;QAC3B,OAAO,EAAE,QAAQ,CAAC,KAAK,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACvC,OAAO;KACR,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,CAAC,KAAK,UAAU,WAAW,CAAC,KAAkB;IAClD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,aAAa,IAAI,UAAU,EAAE,CAAC,OAAO,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM;YAAE,OAAO;QACpB,MAAM,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC;IAC5D,CAAC;IAAC,MAAM,CAAC;QACP,0BAA0B;IAC5B,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,SAAS,GAAG,IAAI,OAAO,CAAC,QAAQ,CAAC;KAC3C,WAAW,CAAC,yEAAyE,CAAC;KACtF,QAAQ,CAAC,WAAW,EAAE,iCAAiC,CAAC;KACxD,SAAS,CAAC,IAAI,MAAM,CAAC,eAAe,EAAE,aAAa,CAAC,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,UAAU,CAAC,CAAC,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;KACrG,MAAM,CAAC,qBAAqB,EAAE,mEAAmE,CAAC;KAClG,MAAM,CAAC,gBAAgB,EAAE,yBAAyB,CAAC;KACnD,MAAM,CAAC,gBAAgB,EAAE,wCAAwC,CAAC;KAClE,WAAW,CAAC,OAAO,EAAE;;;;;;;;sFAQ8D,CAAC;KACpF,MAAM,CAAC,KAAK,EAAE,OAAe,EAAE,IAAwF,EAAE,EAAE;IAC1H,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,MAAM,EAAE,aAAa,EAAE,SAAS,CAAC;QAC7D,OAAO;QACP,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,OAAO,EAAE,IAAI,CAAC,OAAO;QACrB,SAAS,EAAE,IAAI,CAAC,OAAO;QACvB,KAAK,EAAE,IAAI,CAAC,KAAK;KAClB,CAAC,CAAC,CAAC;IACJ,cAAc,CAAC,QAAQ,EAAE,IAAI,CAAC,CAAC;IAE/B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAiD,CAAC;IACpE,WAAW,CAAC;QACV,MAAM,EAAE,QAAQ;QAChB,MAAM,EAAE,IAAI,CAAC,IAAI;QACjB,UAAU,EAAE,EAAE;QACd,KAAK,EAAE;YACL,iCAAiC,IAAI,CAAC,QAAQ,IAAI,GAAG,IAAI;YACzD,2FAA2F;SAC5F;QACD,gBAAgB,EAAE,CAAC,cAAc,CAAC;KACnC,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { Command } from "commander";
2
+ export declare const upCmd: Command;
3
+ export declare const downCmd: Command;
@@ -0,0 +1,251 @@
1
+ import { Command } from "commander";
2
+ import { existsSync, readFileSync, readdirSync, statSync } from "node:fs";
3
+ import { join, relative } from "node:path";
4
+ import { pathToFileURL } from "node:url";
5
+ import { agentOutput, agentError } from "../output.js";
6
+ import { apiRequest, handleApiError } from "../client.js";
7
+ const WEB_IGNORE = new Set([
8
+ "node_modules", ".next", ".git", ".vercel", ".ready", "dist", ".turbo", ".cache", "data", ".DS_Store",
9
+ ]);
10
+ /** Never upload secrets/local state to the deploy. */
11
+ function isExcludedWebFile(name) {
12
+ return name.startsWith(".env"); // .env, .env.local, .env.production, …
13
+ }
14
+ /** Recursively collect a web project's source as base64 files for Vercel deploy. */
15
+ function collectWebFiles(root) {
16
+ const out = [];
17
+ const walk = (dir) => {
18
+ for (const entry of readdirSync(dir, { withFileTypes: true })) {
19
+ if (WEB_IGNORE.has(entry.name) || isExcludedWebFile(entry.name))
20
+ continue;
21
+ const full = join(dir, entry.name);
22
+ if (entry.isDirectory())
23
+ walk(full);
24
+ else if (entry.isFile()) {
25
+ if (statSync(full).size > 8 * 1024 * 1024)
26
+ continue; // skip very large files
27
+ out.push({ path: relative(root, full), data: readFileSync(full).toString("base64") });
28
+ }
29
+ }
30
+ };
31
+ walk(root);
32
+ return out;
33
+ }
34
+ const CONFIG_CANDIDATES = ["naive.config.ts", "naive.config.js", "naive.config.mjs", "naive.config.json"];
35
+ /** Evaluate naive.config.{ts,js,json} to its full object (the whole NaiveConfig). */
36
+ async function loadConfig(path) {
37
+ if (path.endsWith(".json")) {
38
+ try {
39
+ return JSON.parse(readFileSync(path, "utf8"));
40
+ }
41
+ catch {
42
+ return null;
43
+ }
44
+ }
45
+ try {
46
+ const { createJiti } = await import("jiti");
47
+ const jiti = createJiti(pathToFileURL(path).href);
48
+ const mod = (await jiti.import(path));
49
+ const cfg = mod?.default ?? mod;
50
+ return cfg && typeof cfg === "object" ? cfg : null;
51
+ }
52
+ catch {
53
+ return null; // jiti/@usenaive-sdk/iac not resolvable — fall back to regex extraction
54
+ }
55
+ }
56
+ /** Extract top-level keys inside a named object block, e.g. agentProfiles: { a, b }. */
57
+ function extractKeys(source, section) {
58
+ const re = new RegExp(`${section}\\s*:\\s*\\{`);
59
+ const m = re.exec(source);
60
+ if (!m)
61
+ return [];
62
+ let i = m.index + m[0].length;
63
+ let depth = 1;
64
+ const start = i;
65
+ for (; i < source.length && depth > 0; i++) {
66
+ if (source[i] === "{")
67
+ depth++;
68
+ else if (source[i] === "}")
69
+ depth--;
70
+ }
71
+ const block = source.slice(start, i - 1);
72
+ const keys = new Set();
73
+ let d = 0;
74
+ const keyRe = /([A-Za-z0-9_]+)\s*:/g;
75
+ for (let j = 0; j < block.length; j++) {
76
+ const ch = block[j];
77
+ if (ch === "{" || ch === "(" || ch === "[")
78
+ d++;
79
+ else if (ch === "}" || ch === ")" || ch === "]")
80
+ d--;
81
+ else if (d === 0) {
82
+ keyRe.lastIndex = j;
83
+ const km = keyRe.exec(block);
84
+ if (km && km.index === j) {
85
+ keys.add(km[1]);
86
+ j = keyRe.lastIndex - 1;
87
+ }
88
+ }
89
+ }
90
+ return [...keys];
91
+ }
92
+ function findConfig() {
93
+ return CONFIG_CANDIDATES.map((c) => join(process.cwd(), c)).find(existsSync) ?? null;
94
+ }
95
+ export const upCmd = new Command("up")
96
+ .description("Plan + apply the infrastructure, runtime pools, agent profiles, and systems declared in naive.config.ts")
97
+ .option("--plan", "Preview the plan (diff) without applying")
98
+ .option("--local", "Validate the config locally only; do not contact the API")
99
+ .option("--yes", "Apply without confirmation (default for non-interactive use)")
100
+ .option("--no-deploy", "Provision infrastructure but skip deploying cloud.web source")
101
+ .action(async (opts) => {
102
+ const found = findConfig();
103
+ if (!found) {
104
+ agentError({
105
+ action: "up",
106
+ error: { code: "not_found", message: "No naive.config.ts found in the current directory" },
107
+ recovery_steps: [{ command: "naive init", description: "Scaffold a naive.config.ts" }],
108
+ });
109
+ return;
110
+ }
111
+ const config = opts.local ? null : await loadConfig(found);
112
+ // Fallback: config couldn't be evaluated — local validation only.
113
+ if (!config) {
114
+ const source = readFileSync(found, "utf8");
115
+ const projectMatch = /project\s*:\s*["'`]([^"'`]+)["'`]/.exec(source);
116
+ const project = projectMatch?.[1] ?? "(unknown)";
117
+ agentOutput({
118
+ action: "up",
119
+ result: {
120
+ config: found,
121
+ project,
122
+ infrastructure: extractKeys(source, "infrastructure"),
123
+ runtime_pools: extractKeys(source, "runtime"),
124
+ agent_profiles: extractKeys(source, "agentProfiles").length ? extractKeys(source, "agentProfiles") : extractKeys(source, "templates"),
125
+ systems: extractKeys(source, "systems"),
126
+ applied: false,
127
+ },
128
+ next_steps: [{ command: "pnpm add @usenaive-sdk/iac jiti", description: "Install so naive up can evaluate + apply the config" }],
129
+ hints: [
130
+ opts.local
131
+ ? `Local validation only for "${project}".`
132
+ : `Validated ${found} locally, but could not evaluate it (install @usenaive-sdk/iac + jiti, or commit a naive.config.json).`,
133
+ ],
134
+ });
135
+ return;
136
+ }
137
+ const project = typeof config.project === "string" ? config.project : undefined;
138
+ if (!project) {
139
+ agentError({ action: "up", error: { code: "invalid_input", message: "naive.config.ts must export a `project` name" }, recovery_steps: [] });
140
+ return;
141
+ }
142
+ // 1. Plan (diff desired vs current).
143
+ const planResp = await apiRequest("PUT", `/v1/deployments/${encodeURIComponent(project)}`, config);
144
+ handleApiError("up", planResp);
145
+ const plan = planResp.data?.plan;
146
+ if (opts.plan) {
147
+ agentOutput({
148
+ action: "up",
149
+ result: { config: found, project, plan, applied: false },
150
+ next_steps: [{ command: "naive up", description: "Apply the plan" }],
151
+ hints: ["Plan only — nothing was provisioned."],
152
+ });
153
+ return;
154
+ }
155
+ // 2. Apply (provision infra, register pools/systems/agent profiles).
156
+ const applyResp = await apiRequest("POST", `/v1/deployments/${encodeURIComponent(project)}/apply`, config);
157
+ handleApiError("up", applyResp);
158
+ const data = applyResp.data;
159
+ const deployment = data.deployment;
160
+ const needsAction = (deployment?.resources ?? []).filter((r) => r.status === "needs_action" || r.status === "failed");
161
+ // Deploy cloud.web source to the provisioned web project(s) (Vercel builds + hosts).
162
+ const webDeploys = {};
163
+ if (opts.deploy !== false) {
164
+ const infra = config.infrastructure ?? {};
165
+ for (const r of deployment?.resources ?? []) {
166
+ if (r.kind !== "cloud.web" || r.status !== "ready")
167
+ continue;
168
+ const dir = join(process.cwd(), infra[r.name]?.dir ?? ".");
169
+ try {
170
+ const files = collectWebFiles(dir);
171
+ const dep = await apiRequest("POST", `/v1/deployments/${encodeURIComponent(project)}/web/${encodeURIComponent(r.name)}/deploy`, { files });
172
+ const url = dep.data?.url;
173
+ if (dep.status >= 200 && dep.status < 300 && url)
174
+ webDeploys[r.name] = url;
175
+ else
176
+ webDeploys[r.name] = `deploy failed (${dep.status})`;
177
+ }
178
+ catch (e) {
179
+ webDeploys[r.name] = `deploy error: ${e instanceof Error ? e.message : String(e)}`;
180
+ }
181
+ }
182
+ }
183
+ agentOutput({
184
+ action: "up",
185
+ result: {
186
+ config: found,
187
+ project,
188
+ status: deployment?.status,
189
+ resources: deployment?.resources,
190
+ runtime_pools: Object.keys(config.runtime ?? {}),
191
+ systems: Object.keys(config.systems ?? {}),
192
+ agent_profiles: Object.keys(config.agentProfiles ?? config.templates ?? {}),
193
+ outputs: deployment?.outputs ?? {},
194
+ web_deployments: webDeploys,
195
+ applied: true,
196
+ },
197
+ next_steps: [
198
+ ...needsAction.map((r) => ({ command: `naive status`, description: `${r.name}: ${r.requirement ?? r.status}` })),
199
+ { command: `naive agent-profiles provision <name> --user <tenant>`, description: "Provision an agent profile for a tenant" },
200
+ ],
201
+ hints: [
202
+ `Deployment "${project}" is ${deployment?.status ?? "?"}.`,
203
+ needsAction.length ? `${needsAction.length} resource(s) need action — see next_steps.` : "All declared infrastructure is ready.",
204
+ ],
205
+ });
206
+ });
207
+ export const downCmd = new Command("down")
208
+ .description("Tear down the infrastructure provisioned for this project (naive.config.ts)")
209
+ .option("--yes", "Confirm the destructive teardown (required to actually destroy)")
210
+ .action(async (opts) => {
211
+ const found = findConfig();
212
+ if (!found) {
213
+ agentError({ action: "down", error: { code: "not_found", message: "No naive.config.ts found in the current directory" }, recovery_steps: [] });
214
+ return;
215
+ }
216
+ const source = readFileSync(found, "utf8");
217
+ const project = /project\s*:\s*["'`]([^"'`]+)["'`]/.exec(source)?.[1];
218
+ if (!project) {
219
+ agentError({ action: "down", error: { code: "invalid_input", message: "Could not read `project` from naive.config.ts" }, recovery_steps: [] });
220
+ return;
221
+ }
222
+ // Without --yes: preview what would be destroyed (no side effects).
223
+ if (!opts.yes) {
224
+ const current = await apiRequest("GET", `/v1/deployments/${encodeURIComponent(project)}`);
225
+ const d = current.data ?? {};
226
+ agentOutput({
227
+ action: "down",
228
+ result: {
229
+ project,
230
+ applied: false,
231
+ would_destroy: {
232
+ resources: (d.resources ?? []).map((r) => `${r.kind}:${r.name}`),
233
+ runtime_pools: (d.runtime_pools ?? []).map((p) => p.name),
234
+ systems: (d.systems ?? []).map((s) => s.name),
235
+ },
236
+ },
237
+ next_steps: [{ command: "naive down --yes", description: "Confirm and permanently destroy this infrastructure" }],
238
+ hints: [`This will DROP databases, delete buckets, and remove web/pools/systems for "${project}". Irreversible. Re-run with --yes to proceed.`],
239
+ });
240
+ return;
241
+ }
242
+ const resp = await apiRequest("DELETE", `/v1/deployments/${encodeURIComponent(project)}?confirm=true`);
243
+ handleApiError("down", resp);
244
+ agentOutput({
245
+ action: "down",
246
+ result: { project, applied: true, ...resp.data },
247
+ next_steps: [{ command: "naive up", description: "Re-provision the project's infrastructure" }],
248
+ hints: [`Tore down infrastructure for "${project}".`],
249
+ });
250
+ });
251
+ //# sourceMappingURL=up.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"up.js","sourceRoot":"","sources":["../../src/commands/up.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -1,8 +1,6 @@
1
1
  #!/usr/bin/env node
2
2
  import { Command } from "commander";
3
- import { readFileSync } from "node:fs";
4
- import { fileURLToPath } from "node:url";
5
- import { dirname, join } from "node:path";
3
+ import { readVersion } from "./version.js";
6
4
  import { registerCmd } from "./commands/register.js";
7
5
  import { loginCmd } from "./commands/login.js";
8
6
  import { linkCmd, verifyCmd } from "./commands/link.js";
@@ -49,19 +47,21 @@ import { logsCmd } from "./commands/logs.js";
49
47
  import { connectionsCmd } from "./commands/connections.js";
50
48
  import { approvalsCmd } from "./commands/approvals.js";
51
49
  import { browserCmd } from "./commands/browser.js";
52
- function readVersion() {
53
- try {
54
- const here = dirname(fileURLToPath(import.meta.url));
55
- return JSON.parse(readFileSync(join(here, "..", "package.json"), "utf8")).version ?? "0.0.0";
56
- }
57
- catch {
58
- return "0.0.0";
59
- }
60
- }
50
+ import { agentProfilesCmd, revokeCmd } from "./commands/agent-profiles.js";
51
+ import { initCmd } from "./commands/init.js";
52
+ import { upCmd, downCmd } from "./commands/up.js";
53
+ import { moduleCmd } from "./commands/module.js";
54
+ import { envCmd } from "./commands/env.js";
55
+ import { reportCmd } from "./commands/report.js";
61
56
  const program = new Command();
62
57
  program
63
58
  .name("naive")
64
- .description(`Naive AI Business Primitives CLI — unified agent toolkit for email, search, image/video generation, and more.
59
+ .description(`Naïve CLI — give every AI agent its own governed real-world agentProfile.
60
+
61
+ Provision a per-tenant agent profile (verified identity/EIN, a spend-capped card, an
62
+ inbox and phone number, optional runtime), pull its governed tools into any
63
+ runtime (Eve / AgentCore / LangGraph / your own), and revoke it instantly. The
64
+ underlying primitives (email, search, cards, comms, …) are also available directly.
65
65
 
66
66
  Built for agentic use: every command returns structured JSON with result data,
67
67
  next steps, and contextual guidance for autonomous operation.`)
@@ -69,8 +69,18 @@ next steps, and contextual guidance for autonomous operation.`)
69
69
  .addHelpText("after", `
70
70
  Getting Started:
71
71
  $ naive register --name "My Agent" --email me@example.com --password mypassword
72
+ $ naive init # scaffold naive.config.ts (agentProfile template)
73
+ $ naive up # register templates
74
+ $ naive agent-profiles provision support --user <tenant>
72
75
  $ naive status
73
- $ naive identity
76
+
77
+ AgentProfiles (the governed real-world bundle):
78
+ init Scaffold a naive.config.ts with an agent profile template
79
+ up Register infrastructure, runtime pool, and agent profile templates
80
+ agent profiles Provision / list / get / revoke per-tenant agent profiles
81
+ revoke Absolute revoke of an agent profile (freeze card, halt sends, tear down)
82
+ module Add/list modules (capabilities) for your agent profiles
83
+ env Switch API environment / create per-tenant preview sandboxes
74
84
 
75
85
  Authentication:
76
86
  register Create a new account (email + password → API key)
@@ -116,6 +126,13 @@ Primitives:
116
126
  formation Company formation (LLC incorporation) via Doola
117
127
  jobs Monitor async generation/research jobs
118
128
 
129
+ Feedback & Bug Reports:
130
+ report File a bug or send feedback to the naive team. Use on unexpected
131
+ errors (provider_error/internal_error/5xx) or when the user reports
132
+ something broken — NOT for self-correctable errors (credits, auth,
133
+ invalid input). Example:
134
+ naive report "video create failed" --command "naive video create" --kind error
135
+
119
136
  Governance (human-in-the-loop):
120
137
  approvals Review & resolve agent-requested approvals for sensitive actions
121
138
  Sensitive actions (issue/fund a card, purchase a domain, KYC, form a company,
@@ -171,6 +188,15 @@ program.addCommand(appsCmd);
171
188
  program.addCommand(computeCmd);
172
189
  program.addCommand(queueCmd);
173
190
  program.addCommand(browserCmd);
191
+ program.addCommand(reportCmd);
192
+ // AgentProfiles (governed real-world bundle) + IaC
193
+ program.addCommand(initCmd);
194
+ program.addCommand(upCmd);
195
+ program.addCommand(downCmd);
196
+ program.addCommand(agentProfilesCmd);
197
+ program.addCommand(revokeCmd);
198
+ program.addCommand(moduleCmd);
199
+ program.addCommand(envCmd);
174
200
  // Multi-tenant v2
175
201
  program.addCommand(useCmd);
176
202
  program.addCommand(usersCmd);
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/output.js CHANGED
@@ -75,6 +75,17 @@ function getRecoverySteps(code) {
75
75
  return [
76
76
  { command: "naive <command> --help", description: "See required parameters and examples" },
77
77
  ];
78
+ // Genuinely-broken-on-our-side codes — these are worth reporting (unlike the
79
+ // self-correctable cases above). Retry first (often transient), then report.
80
+ case "provider_error":
81
+ case "internal_error":
82
+ return [
83
+ { command: "# retry — provider/internal errors are often transient", description: "Retry once before reporting" },
84
+ {
85
+ command: 'naive report "<what failed>" --command "<the command you ran>" --kind error',
86
+ description: "Report it to the naive team if it persists",
87
+ },
88
+ ];
78
89
  default:
79
90
  return [
80
91
  { command: "naive status", description: "Check API connectivity and auth status" },
@@ -1 +1 @@
1
- {"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"output.js","sourceRoot":"","sources":["../src/output.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAkBH,MAAM,UAAU,WAAW,CAAC,IAO3B;IACC,MAAM,MAAM,GAAgB;QAC1B,OAAO,EAAE,IAAI;QACb,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,UAAU,EAAE,IAAI,CAAC,UAAU;QAC3B,GAAG,CAAC,IAAI,CAAC,KAAK,IAAI,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,CAAC;QACxC,GAAG,CAAC,IAAI,CAAC,gBAAgB,IAAI,EAAE,gBAAgB,EAAE,IAAI,CAAC,gBAAgB,EAAE,CAAC;QACzE,GAAG,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,aAAa,EAAE,IAAI,CAAC,aAAa,EAAE,CAAC;KACjE,CAAC;IACF,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,IAI1B;IACC,MAAM,MAAM,GAAG;QACb,OAAO,EAAE,KAAK;QACd,MAAM,EAAE,IAAI,CAAC,MAAM;QACnB,KAAK,EAAE,IAAI,CAAC,KAAK;QACjB,cAAc,EAAE,IAAI,CAAC,cAAc;KACpC,CAAC;IACF,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,MAAc,EAAE,IAAa;IAC1D,MAAM,GAAG,GAAG,IAAsE,CAAC;IACnF,IAAI,GAAG,CAAC,KAAK,EAAE,CAAC;QACd,UAAU,CAAC;YACT,MAAM;YACN,KAAK,EAAE,GAAG,CAAC,KAAK;YAChB,cAAc,EAAE,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;SACjD,CAAC,CAAC;IACL,CAAC;SAAM,CAAC;QACN,UAAU,CAAC;YACT,MAAM;YACN,KAAK,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,2BAA2B,EAAE;YAChE,cAAc,EAAE,CAAC,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,wCAAwC,EAAE,CAAC;SACrG,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,SAAS,gBAAgB,CAAC,IAAa;IACrC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,cAAc;YACjB,OAAO;gBACL,EAAE,OAAO,EAAE,8DAA8D,EAAE,WAAW,EAAE,sBAAsB,EAAE;gBAChH,EAAE,OAAO,EAAE,6CAA6C,EAAE,WAAW,EAAE,4BAA4B,EAAE;aACtG,CAAC;QACJ,KAAK,sBAAsB;YACzB,OAAO;gBACL,EAAE,OAAO,EAAE,mCAAmC,EAAE,WAAW,EAAE,kCAAkC,EAAE;gBACjG,EAAE,OAAO,EAAE,kCAAkC,EAAE,WAAW,EAAE,sCAAsC,EAAE;gBACpG,EAAE,OAAO,EAAE,kCAAkC,EAAE,WAAW,EAAE,0CAA0C,EAAE;gBACxG,EAAE,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,gCAAgC,EAAE;aAClF,CAAC;QACJ,KAAK,iBAAiB;YACpB,OAAO;gBACL,EAAE,OAAO,EAAE,wCAAwC,EAAE,WAAW,EAAE,2CAA2C,EAAE;gBAC/G,EAAE,OAAO,EAAE,oCAAoC,EAAE,WAAW,EAAE,yCAAyC,EAAE;gBACzG,EAAE,OAAO,EAAE,qBAAqB,EAAE,WAAW,EAAE,mBAAmB,EAAE;aACrE,CAAC;QACJ,KAAK,cAAc;YACjB,OAAO;gBACL,EAAE,OAAO,EAAE,8BAA8B,EAAE,WAAW,EAAE,6BAA6B,EAAE;aACxF,CAAC;QACJ,KAAK,oBAAoB;YACvB,OAAO;gBACL,EAAE,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,0BAA0B,EAAE;gBACtE,EAAE,OAAO,EAAE,iBAAiB,EAAE,WAAW,EAAE,2BAA2B,EAAE;aACzE,CAAC;QACJ,KAAK,eAAe;YAClB,OAAO;gBACL,EAAE,OAAO,EAAE,wBAAwB,EAAE,WAAW,EAAE,sCAAsC,EAAE;aAC3F,CAAC;QACJ,6EAA6E;QAC7E,6EAA6E;QAC7E,KAAK,gBAAgB,CAAC;QACtB,KAAK,gBAAgB;YACnB,OAAO;gBACL,EAAE,OAAO,EAAE,wDAAwD,EAAE,WAAW,EAAE,6BAA6B,EAAE;gBACjH;oBACE,OAAO,EAAE,6EAA6E;oBACtF,WAAW,EAAE,4CAA4C;iBAC1D;aACF,CAAC;QACJ;YACE,OAAO;gBACL,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,wCAAwC,EAAE;aACnF,CAAC;IACN,CAAC;AACH,CAAC"}
@@ -0,0 +1,2 @@
1
+ /** This package's version from package.json. Returns "0.0.0" on failure. */
2
+ export declare function readVersion(): string;
@@ -0,0 +1,14 @@
1
+ import { readFileSync } from "node:fs";
2
+ import { fileURLToPath } from "node:url";
3
+ import { dirname, join } from "node:path";
4
+ /** This package's version from package.json. Returns "0.0.0" on failure. */
5
+ export function readVersion() {
6
+ try {
7
+ const here = dirname(fileURLToPath(import.meta.url));
8
+ return JSON.parse(readFileSync(join(here, "..", "package.json"), "utf8")).version ?? "0.0.0";
9
+ }
10
+ catch {
11
+ return "0.0.0";
12
+ }
13
+ }
14
+ //# sourceMappingURL=version.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"version.js","sourceRoot":"","sources":["../src/version.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAE1C,4EAA4E;AAC5E,MAAM,UAAU,WAAW;IACzB,IAAI,CAAC;QACH,MAAM,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC;QACrD,OAAO,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,IAAI,EAAE,cAAc,CAAC,EAAE,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,OAAO,CAAC;IAC/F,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,OAAO,CAAC;IACjB,CAAC;AACH,CAAC"}
package/package.json CHANGED
@@ -1,8 +1,8 @@
1
1
  {
2
2
  "name": "@usenaive-sdk/cli",
3
- "version": "0.10.0",
3
+ "version": "0.12.0",
4
4
  "type": "module",
5
- "description": "CLI for Naive AI Business Primitives API",
5
+ "description": "Naïve CLI provision and govern a real-world agent profile per agent (identity, card, comms, runtime). Formerly @usenaive-sdk/cli.",
6
6
  "license": "MIT",
7
7
  "bin": {
8
8
  "naive": "dist/index.js"
@@ -13,19 +13,19 @@
13
13
  "publishConfig": {
14
14
  "access": "public"
15
15
  },
16
- "scripts": {
17
- "dev": "tsx src/index.ts",
18
- "build": "tsc",
19
- "typecheck": "tsc --noEmit",
20
- "prepublishOnly": "tsc"
21
- },
22
16
  "dependencies": {
23
17
  "commander": "^13.1.0",
24
- "chalk": "^5.4.1"
18
+ "chalk": "^5.4.1",
19
+ "jiti": "^2.4.2"
25
20
  },
26
21
  "devDependencies": {
27
22
  "@types/node": "^22.15.3",
28
23
  "tsx": "^4.19.4",
29
24
  "typescript": "^5.7.3"
25
+ },
26
+ "scripts": {
27
+ "dev": "tsx src/index.ts",
28
+ "build": "tsc",
29
+ "typecheck": "tsc --noEmit"
30
30
  }
31
- }
31
+ }