@usenaive-sdk/cli 0.12.5 → 0.13.1

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 (164) hide show
  1. package/README.md +69 -6
  2. package/dist/client.d.ts +48 -0
  3. package/dist/client.js +199 -27
  4. package/dist/client.js.map +1 -1
  5. package/dist/commands/aeo.js +58 -23
  6. package/dist/commands/aeo.js.map +1 -1
  7. package/dist/commands/app-data.js +29 -11
  8. package/dist/commands/app-data.js.map +1 -1
  9. package/dist/commands/approvals.js +142 -9
  10. package/dist/commands/approvals.js.map +1 -1
  11. package/dist/commands/apps.d.ts +7 -0
  12. package/dist/commands/apps.js +255 -18
  13. package/dist/commands/apps.js.map +1 -1
  14. package/dist/commands/audio.d.ts +9 -0
  15. package/dist/commands/audio.js +391 -0
  16. package/dist/commands/audio.js.map +1 -0
  17. package/dist/commands/auth.d.ts +1 -0
  18. package/dist/commands/auth.js +47 -19
  19. package/dist/commands/auth.js.map +1 -1
  20. package/dist/commands/billing.js +9 -9
  21. package/dist/commands/billing.js.map +1 -1
  22. package/dist/commands/brain.js +813 -54
  23. package/dist/commands/brain.js.map +1 -1
  24. package/dist/commands/browser.js +8 -8
  25. package/dist/commands/browser.js.map +1 -1
  26. package/dist/commands/business.js +117 -16
  27. package/dist/commands/business.js.map +1 -1
  28. package/dist/commands/clone.js +8 -4
  29. package/dist/commands/clone.js.map +1 -1
  30. package/dist/commands/companies.d.ts +8 -0
  31. package/dist/commands/companies.js +137 -47
  32. package/dist/commands/companies.js.map +1 -1
  33. package/dist/commands/company-data.d.ts +2 -0
  34. package/dist/commands/company-data.js +168 -0
  35. package/dist/commands/company-data.js.map +1 -0
  36. package/dist/commands/compute.js +295 -18
  37. package/dist/commands/compute.js.map +1 -1
  38. package/dist/commands/connections.d.ts +6 -0
  39. package/dist/commands/connections.js +42 -2
  40. package/dist/commands/connections.js.map +1 -1
  41. package/dist/commands/domains.js +63 -19
  42. package/dist/commands/domains.js.map +1 -1
  43. package/dist/commands/ecommerce.js +19 -9
  44. package/dist/commands/ecommerce.js.map +1 -1
  45. package/dist/commands/email.js +56 -9
  46. package/dist/commands/email.js.map +1 -1
  47. package/dist/commands/formation.js +5 -5
  48. package/dist/commands/formation.js.map +1 -1
  49. package/dist/commands/identity.js +4 -3
  50. package/dist/commands/identity.js.map +1 -1
  51. package/dist/commands/images.js +86 -12
  52. package/dist/commands/images.js.map +1 -1
  53. package/dist/commands/init.d.ts +3 -0
  54. package/dist/commands/init.js +44 -36
  55. package/dist/commands/init.js.map +1 -1
  56. package/dist/commands/jobs.js +1 -0
  57. package/dist/commands/jobs.js.map +1 -1
  58. package/dist/commands/legacy-auth.d.ts +27 -0
  59. package/dist/commands/legacy-auth.js +64 -0
  60. package/dist/commands/legacy-auth.js.map +1 -0
  61. package/dist/commands/llm.js +14 -1
  62. package/dist/commands/llm.js.map +1 -1
  63. package/dist/commands/login.js +2 -0
  64. package/dist/commands/login.js.map +1 -1
  65. package/dist/commands/logout.d.ts +7 -0
  66. package/dist/commands/logout.js +55 -0
  67. package/dist/commands/logout.js.map +1 -0
  68. package/dist/commands/media.js +3 -3
  69. package/dist/commands/media.js.map +1 -1
  70. package/dist/commands/mobile.d.ts +2 -0
  71. package/dist/commands/mobile.js +42 -1
  72. package/dist/commands/mobile.js.map +1 -1
  73. package/dist/commands/payments.js +1 -1
  74. package/dist/commands/people.d.ts +2 -0
  75. package/dist/commands/people.js +197 -0
  76. package/dist/commands/people.js.map +1 -0
  77. package/dist/commands/phone.js +40 -83
  78. package/dist/commands/phone.js.map +1 -1
  79. package/dist/commands/projects.d.ts +13 -0
  80. package/dist/commands/projects.js +220 -0
  81. package/dist/commands/projects.js.map +1 -0
  82. package/dist/commands/register.js +13 -5
  83. package/dist/commands/register.js.map +1 -1
  84. package/dist/commands/sandbox.d.ts +2 -0
  85. package/dist/commands/sandbox.js +558 -0
  86. package/dist/commands/sandbox.js.map +1 -0
  87. package/dist/commands/search.js +27 -13
  88. package/dist/commands/search.js.map +1 -1
  89. package/dist/commands/seo.js +16 -8
  90. package/dist/commands/seo.js.map +1 -1
  91. package/dist/commands/sessions.d.ts +6 -0
  92. package/dist/commands/sessions.js +109 -0
  93. package/dist/commands/sessions.js.map +1 -0
  94. package/dist/commands/social-data.d.ts +2 -0
  95. package/dist/commands/social-data.js +245 -0
  96. package/dist/commands/social-data.js.map +1 -0
  97. package/dist/commands/social.js +9 -7
  98. package/dist/commands/social.js.map +1 -1
  99. package/dist/commands/tasks.js +9 -0
  100. package/dist/commands/tasks.js.map +1 -1
  101. package/dist/commands/teams.d.ts +69 -0
  102. package/dist/commands/teams.js +503 -0
  103. package/dist/commands/teams.js.map +1 -0
  104. package/dist/commands/up.d.ts +150 -0
  105. package/dist/commands/up.js +465 -15
  106. package/dist/commands/up.js.map +1 -1
  107. package/dist/commands/usage.js +15 -4
  108. package/dist/commands/usage.js.map +1 -1
  109. package/dist/commands/use.d.ts +9 -0
  110. package/dist/commands/use.js +76 -11
  111. package/dist/commands/use.js.map +1 -1
  112. package/dist/commands/users.d.ts +8 -0
  113. package/dist/commands/users.js +28 -9
  114. package/dist/commands/users.js.map +1 -1
  115. package/dist/commands/vault.js +31 -1
  116. package/dist/commands/vault.js.map +1 -1
  117. package/dist/commands/verification.js +1 -1
  118. package/dist/commands/verification.js.map +1 -1
  119. package/dist/commands/video.js +118 -19
  120. package/dist/commands/video.js.map +1 -1
  121. package/dist/commands/wallet.js +3 -3
  122. package/dist/commands/wallet.js.map +1 -1
  123. package/dist/commands/whoami.js +17 -1
  124. package/dist/commands/whoami.js.map +1 -1
  125. package/dist/config.d.ts +16 -1
  126. package/dist/config.js +15 -1
  127. package/dist/config.js.map +1 -1
  128. package/dist/index.d.ts +2 -1
  129. package/dist/index.js +250 -24
  130. package/dist/index.js.map +1 -1
  131. package/dist/lib/brain-select.d.ts +193 -0
  132. package/dist/lib/brain-select.js +403 -0
  133. package/dist/lib/brain-select.js.map +1 -0
  134. package/dist/lib/cli-validation.d.ts +12 -0
  135. package/dist/lib/cli-validation.js +46 -0
  136. package/dist/lib/cli-validation.js.map +1 -0
  137. package/dist/lib/deprecation.d.ts +158 -0
  138. package/dist/lib/deprecation.js +140 -0
  139. package/dist/lib/deprecation.js.map +1 -0
  140. package/dist/lib/duration.d.ts +8 -0
  141. package/dist/lib/duration.js +11 -0
  142. package/dist/lib/duration.js.map +1 -0
  143. package/dist/lib/http-response.d.ts +11 -0
  144. package/dist/lib/http-response.js +96 -0
  145. package/dist/lib/http-response.js.map +1 -0
  146. package/dist/lib/pricing.d.ts +132 -0
  147. package/dist/lib/pricing.js +148 -0
  148. package/dist/lib/pricing.js.map +1 -0
  149. package/dist/lib/stream-frames.d.ts +114 -0
  150. package/dist/lib/stream-frames.js +169 -0
  151. package/dist/lib/stream-frames.js.map +1 -0
  152. package/dist/lib/teams-catalog.d.ts +141 -0
  153. package/dist/lib/teams-catalog.js +765 -0
  154. package/dist/lib/teams-catalog.js.map +1 -0
  155. package/dist/lib/unknown-command.d.ts +55 -1
  156. package/dist/lib/unknown-command.js +113 -0
  157. package/dist/lib/unknown-command.js.map +1 -1
  158. package/dist/output.d.ts +127 -5
  159. package/dist/output.js +189 -12
  160. package/dist/output.js.map +1 -1
  161. package/package.json +3 -3
  162. package/dist/commands/link.d.ts +0 -3
  163. package/dist/commands/link.js +0 -91
  164. package/dist/commands/link.js.map +0 -1
@@ -1,6 +1,7 @@
1
1
  import { Command } from "commander";
2
2
  import { apiRequest, handleApiError } from "../client.js";
3
3
  import { agentOutput } from "../output.js";
4
+ import { FIXED_CREDIT_COSTS } from "../lib/pricing.js";
4
5
  export const usageCmd = new Command("usage")
5
6
  .description("Show credit usage history with transaction details")
6
7
  .option("--days <n>", "Number of days to look back (default: 30)", "30")
@@ -18,6 +19,10 @@ What this does:
18
19
  - Operation that triggered it (e.g., "image_generation", "email_send")
19
20
  - Timestamp
20
21
  - Reference ID (for idempotency/audit)
22
+ - provider_usd + margin_multiplier, on charges priced from real provider
23
+ spend (the data primitives), so the amount can be checked rather than
24
+ trusted. provider_usd_basis says whether that figure was measured off the
25
+ run ("actual") or estimated ("projected"). Absent on flat-rate meters.
21
26
 
22
27
  Use this to:
23
28
  - Audit what's consuming credits
@@ -27,16 +32,21 @@ Use this to:
27
32
 
28
33
  Credit costs reference:
29
34
  Fixed-price operations:
30
- - Web search: 10 credits
31
- - URL read: 10 credits
32
- - Email send: 10 credits
35
+ - Web search: ${FIXED_CREDIT_COSTS.webSearch} credits
36
+ - URL read: ${FIXED_CREDIT_COSTS.urlRead} credits
37
+ - Email send: ${FIXED_CREDIT_COSTS.emailSend} credits
38
+ - Brain query / think: ${FIXED_CREDIT_COSTS.brainQuery} credits
39
+ - Brain document ingest: ${FIXED_CREDIT_COSTS.brainIngestBase} credits + ${FIXED_CREDIT_COSTS.brainIngestPerKb} per KB, capped at ${FIXED_CREDIT_COSTS.brainIngestMaxCredits} credits per document (the ingest response returns the exact \`credits\`)
40
+ - Social publish: ${FIXED_CREDIT_COSTS.socialPost} credits (+${FIXED_CREDIT_COSTS.socialXPost} on X, +${FIXED_CREDIT_COSTS.socialXPostWithLink} if that X post has a link)
33
41
  - Stock photo search: free (0 credits)
34
- - Deep research: 30–80 credits (depth-dependent)
42
+ - Deep research: ${FIXED_CREDIT_COSTS.researchQuick}–${FIXED_CREDIT_COSTS.researchExhaustive} credits (depth-dependent)
35
43
 
36
44
  Dynamic-price operations (model-dependent):
37
45
  - LLM tokens: per-token billing based on model (see docs)
38
46
  - Image generation: varies (GET /v1/images/pricing to preview)
39
47
  - Video generation: varies (GET /v1/video/pricing to preview)
48
+ - People / Company Data / Social Data / Reviews & Listings: 3x the provider
49
+ spend the run really cost, reported per transaction as provider_usd
40
50
  `)
41
51
  .action(async (opts) => {
42
52
  const resp = await apiRequest("GET", `/v1/usage?days=${opts.days}&limit=${opts.limit}`);
@@ -53,6 +63,7 @@ Credit costs reference:
53
63
  ],
54
64
  hints: [
55
65
  `Showing ${count} transactions from the last ${opts.days} days`,
66
+ "Rows with provider_usd are priced from real provider spend: credits = provider_usd x margin_multiplier",
56
67
  "Async jobs (image/video generation) deduct credits only on completion, not at submission",
57
68
  "Failed async jobs do not deduct credits",
58
69
  ],
@@ -1 +1 @@
1
- {"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/commands/usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;KACzC,WAAW,CAAC,oDAAoD,CAAC;KACjE,MAAM,CAAC,YAAY,EAAE,2CAA2C,EAAE,IAAI,CAAC;KACvE,MAAM,CAAC,aAAa,EAAE,wDAAwD,EAAE,IAAI,CAAC;KACrF,WAAW,CAAC,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgCvB,CAAC;KACC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,kBAAkB,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACxF,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAE9B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAiE,CAAC;IACpF,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,CAAC;IAE7C,WAAW,CAAC;QACV,MAAM,EAAE,OAAO;QACf,MAAM,EAAE,IAAI,CAAC,IAAI;QACjB,UAAU,EAAE;YACV,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,6BAA6B,EAAE;YACvE,EAAE,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,8BAA8B,EAAE;YAChF,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,qDAAqD,EAAE;SAC9F;QACD,KAAK,EAAE;YACL,WAAW,KAAK,+BAA+B,IAAI,CAAC,IAAI,OAAO;YAC/D,0FAA0F;YAC1F,yCAAyC;SAC1C;QACD,gBAAgB,EAAE,CAAC,cAAc,EAAE,YAAY,CAAC;KACjD,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
1
+ {"version":3,"file":"usage.js","sourceRoot":"","sources":["../../src/commands/usage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC1D,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAC3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAC;AAEvD,MAAM,CAAC,MAAM,QAAQ,GAAG,IAAI,OAAO,CAAC,OAAO,CAAC;KACzC,WAAW,CAAC,oDAAoD,CAAC;KACjE,MAAM,CAAC,YAAY,EAAE,2CAA2C,EAAE,IAAI,CAAC;KACvE,MAAM,CAAC,aAAa,EAAE,wDAAwD,EAAE,IAAI,CAAC;KACrF,WAAW,CAAC,OAAO,EAAE;;;;;;;;;;;;;;;;;;;;;;;;;;kBA0BN,kBAAkB,CAAC,SAAS;gBAC9B,kBAAkB,CAAC,OAAO;kBACxB,kBAAkB,CAAC,SAAS;2BACnB,kBAAkB,CAAC,UAAU;6BAC3B,kBAAkB,CAAC,eAAe,cAAc,kBAAkB,CAAC,gBAAgB,sBAAsB,kBAAkB,CAAC,qBAAqB;sBACxJ,kBAAkB,CAAC,UAAU,cAAc,kBAAkB,CAAC,WAAW,WAAW,kBAAkB,CAAC,mBAAmB;;qBAE3H,kBAAkB,CAAC,aAAa,IAAI,kBAAkB,CAAC,kBAAkB;;;;;;;;CAQ7F,CAAC;KACC,MAAM,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;IACrB,MAAM,IAAI,GAAG,MAAM,UAAU,CAAC,KAAK,EAAE,kBAAkB,IAAI,CAAC,IAAI,UAAU,IAAI,CAAC,KAAK,EAAE,CAAC,CAAC;IACxF,cAAc,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAE9B,MAAM,IAAI,GAAG,IAAI,CAAC,IAAiE,CAAC;IACpF,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,EAAE,MAAM,IAAI,CAAC,CAAC;IAE7C,WAAW,CAAC;QACV,MAAM,EAAE,OAAO;QACf,MAAM,EAAE,IAAI,CAAC,IAAI;QACjB,UAAU,EAAE;YACV,EAAE,OAAO,EAAE,cAAc,EAAE,WAAW,EAAE,6BAA6B,EAAE;YACvE,EAAE,OAAO,EAAE,sBAAsB,EAAE,WAAW,EAAE,8BAA8B,EAAE;YAChF,EAAE,OAAO,EAAE,YAAY,EAAE,WAAW,EAAE,qDAAqD,EAAE;SAC9F;QACD,KAAK,EAAE;YACL,WAAW,KAAK,+BAA+B,IAAI,CAAC,IAAI,OAAO;YAC/D,wGAAwG;YACxG,0FAA0F;YAC1F,yCAAyC;SAC1C;QACD,gBAAgB,EAAE,CAAC,cAAc,EAAE,YAAY,CAAC;KACjD,CAAC,CAAC;AACL,CAAC,CAAC,CAAC"}
@@ -1,3 +1,12 @@
1
1
  import { Command } from "commander";
2
+ /**
3
+ * `naive use` — pick the CHILD PROJECT every primitive command acts as.
4
+ *
5
+ * `--project` picks the project it lives in, in the same breath, because the
6
+ * two selections are one address: a child project is identified inside a
7
+ * project, and `naive projects use` is the same write without the child. With
8
+ * no project named the organization's default project is used, which is where
9
+ * every child project created before the layer existed already lives.
10
+ */
2
11
  export declare const useCmd: Command;
3
12
  export declare const whoamiUserHint: () => string | undefined;
@@ -1,30 +1,95 @@
1
1
  import { Command } from "commander";
2
+ import { apiRequest, handleApiError, activeProjectOverride } from "../client.js";
2
3
  import { saveConfig, loadConfig } from "../config.js";
3
- import { agentOutput } from "../output.js";
4
+ import { agentError, agentOutput } from "../output.js";
5
+ import { isTenantUserRef } from "../lib/cli-validation.js";
6
+ /**
7
+ * `naive use` — pick the CHILD PROJECT every primitive command acts as.
8
+ *
9
+ * `--project` picks the project it lives in, in the same breath, because the
10
+ * two selections are one address: a child project is identified inside a
11
+ * project, and `naive projects use` is the same write without the child. With
12
+ * no project named the organization's default project is used, which is where
13
+ * every child project created before the layer existed already lives.
14
+ */
4
15
  export const useCmd = new Command("use")
5
- .description("Set the active tenant user — every primitive command targets this user by default")
6
- .argument("[user_id]", "Tenant user id to activate (omit + --clear to reset to the default user)")
7
- .option("--clear", "Clear the active user (fall back to the api key's default user)")
8
- .action((userId, opts) => {
16
+ .description("Set the active child project — every primitive command targets it by default")
17
+ .argument("[user_id]", "Child project id to activate (omit + --clear to reset to the default)")
18
+ .option("--clear", "Clear the active child project (fall back to the api key's default)")
19
+ .option("--project <project_id>", "Also set the active project this child project lives in")
20
+ .action(async (userId, opts) => {
21
+ // `naive use <child> --project <id>` puts the flag AFTER the subcommand, but
22
+ // commander binds it to the identically-named GLOBAL `--project` on the root
23
+ // program, so `opts.project` is undefined and the project was silently
24
+ // dropped — the one invocation the help text advertises did nothing. The
25
+ // global's value is the same string; read it when the local one is absent.
26
+ const projectFlag = opts.project ?? activeProjectOverride();
9
27
  if (opts.clear || !userId) {
10
28
  saveConfig({ active_user_id: undefined });
11
29
  agentOutput({
12
30
  action: "use.clear",
13
31
  result: { active_user_id: null },
14
- next_steps: [{ command: "naive cards list", description: "Now operates on the default user" }],
15
- hints: ["Active user cleared — commands now target the api key's default user."],
32
+ next_steps: [{ command: "naive cards list", description: "Now operates on the default child project" }],
33
+ hints: ["Active child project cleared — commands now target the api key's default."],
16
34
  });
17
35
  return;
18
36
  }
37
+ // Never PERSIST a subject that can never resolve. `active_user_id` is sent as
38
+ // X-Naive-User-Id on every later call, so a malformed id turns one typo into
39
+ // a 404 on every command until the operator finds `naive use --clear`.
40
+ //
41
+ // The check is deliberately SHAPE-ONLY, not `GET /v1/users/:id`. That read is
42
+ // scoped by resolveCompanyReadScope, which answers 404 for an UNSEALED
43
+ // workspace key — and register/login mint exactly that key (routes/auth.ts
44
+ // "Default Key" / "CLI Login Key" carry no active_tenant_user_id). Gating
45
+ // `naive use` on it would refuse the documented first-run flow for the very
46
+ // credential the flow hands out, even though that key may legitimately act as
47
+ // the subject on every data-plane mount.
48
+ if (!isTenantUserRef(userId)) {
49
+ agentError({
50
+ action: "use",
51
+ error: {
52
+ code: "not_found",
53
+ message: "User not found",
54
+ hint: "The user_id does not exist in your workspace.",
55
+ },
56
+ recovery_steps: [
57
+ { command: "naive users list", description: "List tenant users in this workspace" },
58
+ { command: "naive use --clear", description: "Fall back to the api key's default user" },
59
+ ],
60
+ });
61
+ }
62
+ // The shape check above runs FIRST, before the project round-trip below, so
63
+ // a refused `naive use` never leaves a newly-persisted active project behind.
64
+ if (projectFlag) {
65
+ // Resolve before persisting, for the same reason `naive projects use`
66
+ // does: a bad id here poisons every later command with a 404 whose cause
67
+ // is invisible.
68
+ const resp = await apiRequest("GET", `/v1/projects/${encodeURIComponent(projectFlag)}`);
69
+ handleApiError("use.project", resp);
70
+ const project = resp.data;
71
+ saveConfig({ active_project_id: project.id, active_project_name: project.name });
72
+ }
19
73
  saveConfig({ active_user_id: userId });
74
+ const config = loadConfig();
20
75
  agentOutput({
21
76
  action: "use",
22
- result: { active_user_id: userId },
77
+ result: {
78
+ active_user_id: userId,
79
+ active_project_id: config.active_project_id ?? null,
80
+ active_project_name: config.active_project_name ?? null,
81
+ },
23
82
  next_steps: [
24
- { command: "naive cards list", description: `Now operates on user ${userId}` },
25
- { command: "naive use --clear", description: "Reset to the default user" },
83
+ { command: "naive cards list", description: `Now operates on child project ${userId}` },
84
+ { command: "naive use --clear", description: "Reset to the default child project" },
85
+ { command: "naive projects list", description: "See the projects in this organization" },
86
+ ],
87
+ hints: [
88
+ `Active child project set to ${userId}. Override per-command with --user <id>.`,
89
+ config.active_project_id
90
+ ? `Acting inside project ${config.active_project_name ?? config.active_project_id}.`
91
+ : "Acting inside your organization's default project.",
26
92
  ],
27
- hints: [`Active user set to ${userId}. Override per-command with --user <id>.`],
28
93
  });
29
94
  });
30
95
  export const whoamiUserHint = () => loadConfig().active_user_id;
@@ -1 +1 @@
1
- {"version":3,"file":"use.js","sourceRoot":"","sources":["../../src/commands/use.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAE3C,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,OAAO,CAAC,KAAK,CAAC;KACrC,WAAW,CAAC,mFAAmF,CAAC;KAChG,QAAQ,CAAC,WAAW,EAAE,0EAA0E,CAAC;KACjG,MAAM,CAAC,SAAS,EAAE,iEAAiE,CAAC;KACpF,MAAM,CAAC,CAAC,MAA0B,EAAE,IAAyB,EAAE,EAAE;IAChE,IAAI,IAAI,CAAC,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;QAC1B,UAAU,CAAC,EAAE,cAAc,EAAE,SAAS,EAAE,CAAC,CAAC;QAC1C,WAAW,CAAC;YACV,MAAM,EAAE,WAAW;YACnB,MAAM,EAAE,EAAE,cAAc,EAAE,IAAI,EAAE;YAChC,UAAU,EAAE,CAAC,EAAE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,kCAAkC,EAAE,CAAC;YAC9F,KAAK,EAAE,CAAC,uEAAuE,CAAC;SACjF,CAAC,CAAC;QACH,OAAO;IACT,CAAC;IACD,UAAU,CAAC,EAAE,cAAc,EAAE,MAAM,EAAE,CAAC,CAAC;IACvC,WAAW,CAAC;QACV,MAAM,EAAE,KAAK;QACb,MAAM,EAAE,EAAE,cAAc,EAAE,MAAM,EAAE;QAClC,UAAU,EAAE;YACV,EAAE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,wBAAwB,MAAM,EAAE,EAAE;YAC9E,EAAE,OAAO,EAAE,mBAAmB,EAAE,WAAW,EAAE,2BAA2B,EAAE;SAC3E;QACD,KAAK,EAAE,CAAC,sBAAsB,MAAM,0CAA0C,CAAC;KAChF,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,cAAc,GAAG,GAAG,EAAE,CAAC,UAAU,EAAE,CAAC,cAAc,CAAC"}
1
+ {"version":3,"file":"use.js","sourceRoot":"","sources":["../../src/commands/use.ts"],"names":[],"mappings":"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"}
@@ -1,2 +1,10 @@
1
1
  import { Command } from "commander";
2
+ /**
3
+ * `naive users` — the CHILD PROJECTS inside the active project.
4
+ *
5
+ * `child project` is the product noun for these rows; `users` is the command,
6
+ * the route and the wire field, all unchanged. The list and every write act
7
+ * inside the active project (`naive projects use`), which with none selected is
8
+ * the organization's default project.
9
+ */
2
10
  export declare const usersCmd: Command;
@@ -1,10 +1,18 @@
1
1
  import { Command } from "commander";
2
2
  import { apiRequest, handleApiError } from "../client.js";
3
3
  import { agentOutput } from "../output.js";
4
- export const usersCmd = new Command("users").description("Manage tenant users — your end-users provisioned in Naive");
4
+ /**
5
+ * `naive users` — the CHILD PROJECTS inside the active project.
6
+ *
7
+ * `child project` is the product noun for these rows; `users` is the command,
8
+ * the route and the wire field, all unchanged. The list and every write act
9
+ * inside the active project (`naive projects use`), which with none selected is
10
+ * the organization's default project.
11
+ */
12
+ export const usersCmd = new Command("users").description("Manage child projects (tenant users) — the governed end-identities inside the active project");
5
13
  usersCmd
6
14
  .command("list")
7
- .description("List all tenant users in your workspace")
15
+ .description("List the child projects in the active project")
8
16
  .action(async () => {
9
17
  const resp = await apiRequest("GET", "/v1/users", undefined, { noAuth: false });
10
18
  handleApiError("users.list", resp);
@@ -12,23 +20,34 @@ usersCmd
12
20
  action: "users.list",
13
21
  result: resp.data,
14
22
  next_steps: [
15
- { command: "naive users create --external-id <id>", description: "Create a new tenant user" },
23
+ { command: "naive users create --external-id <id>", description: "Create a new child project" },
16
24
  { command: "naive use <user_id>", description: "Set the active user for subsequent commands" },
17
25
  ],
18
26
  });
19
27
  });
20
28
  usersCmd
21
29
  .command("create")
22
- .description("Create a tenant user")
30
+ .description("Create a child project in the active project")
31
+ .allowExcessArguments(true)
23
32
  .option("--external-id <id>", "Your own stable id for this user")
24
- .option("--email <email>", "User email")
33
+ // [email] so bare `--email` (probe truncates the value) does not abort before the API call
34
+ .option("--email [email]", "User email (optional)")
25
35
  .option("--label <label>", "Human-friendly label")
36
+ // Variadic so `--display-name Alice Security` keeps both tokens (probe/docs style)
37
+ .option("--display-name <name...>", "Alias for --label (agents/docs often use display-name)")
26
38
  .option("--kit <kit_id>", "AccountKit id to assign (defaults to the Default kit)")
27
39
  .action(async (opts) => {
40
+ const email = opts.email === true || opts.email === "" || opts.email == null
41
+ ? undefined
42
+ : String(opts.email).trim() || undefined;
43
+ const displayName = Array.isArray(opts.displayName)
44
+ ? opts.displayName.join(" ").trim()
45
+ : opts.displayName?.trim();
46
+ const label = opts.label ?? displayName;
28
47
  const resp = await apiRequest("POST", "/v1/users", {
29
48
  external_id: opts.externalId,
30
- email: opts.email,
31
- label: opts.label,
49
+ email,
50
+ label,
32
51
  account_kit_id: opts.kit,
33
52
  });
34
53
  handleApiError("users.create", resp);
@@ -44,7 +63,7 @@ usersCmd
44
63
  });
45
64
  usersCmd
46
65
  .command("get")
47
- .description("Get a tenant user")
66
+ .description("Get a child project")
48
67
  .argument("<user_id>")
49
68
  .action(async (userId) => {
50
69
  const resp = await apiRequest("GET", `/v1/users/${userId}`);
@@ -53,7 +72,7 @@ usersCmd
53
72
  });
54
73
  usersCmd
55
74
  .command("delete")
56
- .description("Suspend a tenant user")
75
+ .description("Suspend a child project")
57
76
  .argument("<user_id>")
58
77
  .action(async (userId) => {
59
78
  const resp = await apiRequest("DELETE", `/v1/users/${userId}`);
@@ -1 +1 @@
1
- {"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/commands/users.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"users.js","sourceRoot":"","sources":["../../src/commands/users.ts"],"names":[],"mappings":"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"}
@@ -1,16 +1,39 @@
1
1
  import { Command } from "commander";
2
2
  import { apiRequest, handleApiError, activeUserId } from "../client.js";
3
- import { agentOutput } from "../output.js";
3
+ import { agentError, agentOutput } from "../output.js";
4
+ import { assertTenantUserRef } from "../lib/cli-validation.js";
4
5
  /** Resolve the user path segment — explicit --user wins, else active, else "default". */
5
6
  function userPath(user) {
6
7
  return `/v1/users/${user ?? activeUserId() ?? "default"}`;
7
8
  }
9
+ /** Hard client deny for malformed --user (never burn API rate limit on garbage ids). */
10
+ function requireUserRef(action, user) {
11
+ try {
12
+ assertTenantUserRef(user);
13
+ }
14
+ catch (err) {
15
+ const e = err;
16
+ agentError({
17
+ action,
18
+ error: {
19
+ code: e.code ?? "not_found",
20
+ message: e.message || "User not found",
21
+ ...(e.hint ? { hint: e.hint } : {}),
22
+ },
23
+ recovery_steps: [
24
+ { command: "naive users list", description: "List tenant users in this workspace" },
25
+ { command: "naive status", description: "Check API connectivity and auth status" },
26
+ ],
27
+ });
28
+ }
29
+ }
8
30
  export const vaultCmd = new Command("vault").description("Per-user Credential Vault — encrypted key/value storage");
9
31
  vaultCmd
10
32
  .command("list")
11
33
  .description("List vault entries (values masked)")
12
34
  .option("--user <id>", "Target a specific tenant user")
13
35
  .action(async (opts) => {
36
+ requireUserRef("vault.list", opts.user);
14
37
  const resp = await apiRequest("GET", `${userPath(opts.user)}/vault`, undefined, { userId: opts.user });
15
38
  handleApiError("vault.list", resp);
16
39
  agentOutput({ action: "vault.list", result: resp.data, next_steps: [] });
@@ -24,6 +47,7 @@ vaultCmd
24
47
  .option("--kind <kind>", "api_key | password | cookie | token | note | reference", "note")
25
48
  .option("--locked", "Lock the entry (cannot be revealed back)")
26
49
  .action(async (key, value, opts) => {
50
+ requireUserRef("vault.put", opts.user);
27
51
  const resp = await apiRequest("PUT", `${userPath(opts.user)}/vault/${encodeURIComponent(key)}`, {
28
52
  value,
29
53
  kind: opts.kind,
@@ -34,10 +58,14 @@ vaultCmd
34
58
  });
35
59
  vaultCmd
36
60
  .command("reveal")
61
+ // `get` is what the docs' quickstart and every KV convention reach for;
62
+ // same operation, so it is an alias rather than a refusal.
63
+ .alias("get")
37
64
  .description("Reveal a stored value (POST — never in URL)")
38
65
  .argument("<key>")
39
66
  .option("--user <id>", "Target a specific tenant user")
40
67
  .action(async (key, opts) => {
68
+ requireUserRef("vault.reveal", opts.user);
41
69
  const resp = await apiRequest("POST", `${userPath(opts.user)}/vault/${encodeURIComponent(key)}/reveal`, undefined, {
42
70
  userId: opts.user,
43
71
  });
@@ -50,6 +78,7 @@ vaultCmd
50
78
  .argument("<key>")
51
79
  .option("--user <id>", "Target a specific tenant user")
52
80
  .action(async (key, opts) => {
81
+ requireUserRef("vault.delete", opts.user);
53
82
  const resp = await apiRequest("DELETE", `${userPath(opts.user)}/vault/${encodeURIComponent(key)}`, undefined, {
54
83
  userId: opts.user,
55
84
  });
@@ -63,6 +92,7 @@ vaultCmd
63
92
  .option("--user <id>", "Target a specific tenant user")
64
93
  .option("--regenerate-dek", "Full DEK rotation (re-encrypts the value)")
65
94
  .action(async (key, opts) => {
95
+ requireUserRef("vault.rotate", opts.user);
66
96
  const path = `${userPath(opts.user)}/vault/${encodeURIComponent(key)}/rotate${opts.regenerateDek ? "?regenerate_dek=true" : ""}`;
67
97
  const resp = await apiRequest("POST", path, undefined, { userId: opts.user });
68
98
  handleApiError("vault.rotate", resp);
@@ -1 +1 @@
1
- {"version":3,"file":"vault.js","sourceRoot":"","sources":["../../src/commands/vault.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"vault.js","sourceRoot":"","sources":["../../src/commands/vault.ts"],"names":[],"mappings":"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"}
@@ -39,7 +39,7 @@ verificationCmd
39
39
  members = JSON.parse(opts.members);
40
40
  }
41
41
  catch {
42
- console.error(JSON.stringify({ success: false, error: "Invalid JSON for --members" }));
42
+ console.log(JSON.stringify({ success: false, error: "Invalid JSON for --members" }));
43
43
  process.exit(1);
44
44
  }
45
45
  const resp = await apiRequest("POST", "/v1/verification", { members });
@@ -1 +1 @@
1
- {"version":3,"file":"verification.js","sourceRoot":"","sources":["../../src/commands/verification.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"verification.js","sourceRoot":"","sources":["../../src/commands/verification.ts"],"names":[],"mappings":"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"}