@kindgi/cli 0.1.8 → 0.1.9-rc.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 (267) hide show
  1. package/README.md +59 -2
  2. package/dist/api-address.d.ts +104 -12
  3. package/dist/api-address.d.ts.map +1 -1
  4. package/dist/api-address.js +169 -30
  5. package/dist/api-address.js.map +1 -1
  6. package/dist/cli.js +12 -2
  7. package/dist/cli.js.map +1 -1
  8. package/dist/commands/approvals.d.ts.map +1 -1
  9. package/dist/commands/approvals.js +15 -3
  10. package/dist/commands/approvals.js.map +1 -1
  11. package/dist/commands/auth.d.ts.map +1 -1
  12. package/dist/commands/auth.js +27 -0
  13. package/dist/commands/auth.js.map +1 -1
  14. package/dist/commands/build.d.ts +18 -0
  15. package/dist/commands/build.d.ts.map +1 -1
  16. package/dist/commands/build.js +118 -13
  17. package/dist/commands/build.js.map +1 -1
  18. package/dist/commands/conversations.d.ts.map +1 -1
  19. package/dist/commands/conversations.js +13 -3
  20. package/dist/commands/conversations.js.map +1 -1
  21. package/dist/commands/deploy.d.ts.map +1 -1
  22. package/dist/commands/deploy.js +235 -53
  23. package/dist/commands/deploy.js.map +1 -1
  24. package/dist/commands/deployments.d.ts +3 -0
  25. package/dist/commands/deployments.d.ts.map +1 -0
  26. package/dist/commands/deployments.js +196 -0
  27. package/dist/commands/deployments.js.map +1 -0
  28. package/dist/commands/doctor.d.ts +1 -5
  29. package/dist/commands/doctor.d.ts.map +1 -1
  30. package/dist/commands/doctor.js +42 -22
  31. package/dist/commands/doctor.js.map +1 -1
  32. package/dist/commands/egress.d.ts +9 -0
  33. package/dist/commands/egress.d.ts.map +1 -0
  34. package/dist/commands/egress.js +40 -0
  35. package/dist/commands/egress.js.map +1 -0
  36. package/dist/commands/env-scoped.d.ts +5 -0
  37. package/dist/commands/env-scoped.d.ts.map +1 -1
  38. package/dist/commands/env-scoped.js +64 -19
  39. package/dist/commands/env-scoped.js.map +1 -1
  40. package/dist/commands/env.d.ts.map +1 -1
  41. package/dist/commands/env.js +91 -30
  42. package/dist/commands/env.js.map +1 -1
  43. package/dist/commands/environments.d.ts +6 -0
  44. package/dist/commands/environments.d.ts.map +1 -0
  45. package/dist/commands/environments.js +166 -0
  46. package/dist/commands/environments.js.map +1 -0
  47. package/dist/commands/exports.d.ts.map +1 -1
  48. package/dist/commands/exports.js +118 -3
  49. package/dist/commands/exports.js.map +1 -1
  50. package/dist/commands/feedback.d.ts +1 -2
  51. package/dist/commands/feedback.d.ts.map +1 -1
  52. package/dist/commands/feedback.js +55 -24
  53. package/dist/commands/feedback.js.map +1 -1
  54. package/dist/commands/helpers.d.ts +6 -0
  55. package/dist/commands/helpers.d.ts.map +1 -1
  56. package/dist/commands/helpers.js +8 -0
  57. package/dist/commands/helpers.js.map +1 -1
  58. package/dist/commands/index.d.ts.map +1 -1
  59. package/dist/commands/index.js +12 -0
  60. package/dist/commands/index.js.map +1 -1
  61. package/dist/commands/license.d.ts +3 -0
  62. package/dist/commands/license.d.ts.map +1 -1
  63. package/dist/commands/license.js +1 -1
  64. package/dist/commands/license.js.map +1 -1
  65. package/dist/commands/people.d.ts.map +1 -1
  66. package/dist/commands/people.js +105 -10
  67. package/dist/commands/people.js.map +1 -1
  68. package/dist/commands/projects.d.ts.map +1 -1
  69. package/dist/commands/projects.js +133 -11
  70. package/dist/commands/projects.js.map +1 -1
  71. package/dist/commands/promote.d.ts +38 -0
  72. package/dist/commands/promote.d.ts.map +1 -0
  73. package/dist/commands/promote.js +371 -0
  74. package/dist/commands/promote.js.map +1 -0
  75. package/dist/commands/proposals.d.ts.map +1 -1
  76. package/dist/commands/proposals.js +2 -1
  77. package/dist/commands/proposals.js.map +1 -1
  78. package/dist/commands/providers.d.ts.map +1 -1
  79. package/dist/commands/providers.js +29 -5
  80. package/dist/commands/providers.js.map +1 -1
  81. package/dist/commands/schedules.d.ts.map +1 -1
  82. package/dist/commands/schedules.js +30 -2
  83. package/dist/commands/schedules.js.map +1 -1
  84. package/dist/commands/secrets.d.ts.map +1 -1
  85. package/dist/commands/secrets.js +65 -40
  86. package/dist/commands/secrets.js.map +1 -1
  87. package/dist/commands/sign-in.d.ts +3 -0
  88. package/dist/commands/sign-in.d.ts.map +1 -0
  89. package/dist/commands/sign-in.js +61 -0
  90. package/dist/commands/sign-in.js.map +1 -0
  91. package/dist/commands/sites.d.ts +3 -0
  92. package/dist/commands/sites.d.ts.map +1 -0
  93. package/dist/commands/sites.js +244 -0
  94. package/dist/commands/sites.js.map +1 -0
  95. package/dist/commands/tools.d.ts.map +1 -1
  96. package/dist/commands/tools.js +2 -2
  97. package/dist/commands/tools.js.map +1 -1
  98. package/dist/commands/types.d.ts +11 -0
  99. package/dist/commands/types.d.ts.map +1 -1
  100. package/dist/commands/webhooks.d.ts.map +1 -1
  101. package/dist/commands/webhooks.js +38 -2
  102. package/dist/commands/webhooks.js.map +1 -1
  103. package/dist/config.d.ts +13 -0
  104. package/dist/config.d.ts.map +1 -1
  105. package/dist/config.js +20 -7
  106. package/dist/config.js.map +1 -1
  107. package/dist/context.d.ts +38 -2
  108. package/dist/context.d.ts.map +1 -1
  109. package/dist/context.js +12 -1
  110. package/dist/context.js.map +1 -1
  111. package/dist/deploy/defaults.d.ts.map +1 -1
  112. package/dist/deploy/defaults.js +7 -1
  113. package/dist/deploy/defaults.js.map +1 -1
  114. package/dist/deploy/pack-service-text.d.ts +29 -0
  115. package/dist/deploy/pack-service-text.d.ts.map +1 -0
  116. package/dist/deploy/pack-service-text.js +72 -0
  117. package/dist/deploy/pack-service-text.js.map +1 -0
  118. package/dist/deploy/post.d.ts +17 -4
  119. package/dist/deploy/post.d.ts.map +1 -1
  120. package/dist/deploy/post.js +177 -60
  121. package/dist/deploy/post.js.map +1 -1
  122. package/dist/deploy/promotion-path.d.ts +44 -0
  123. package/dist/deploy/promotion-path.d.ts.map +1 -0
  124. package/dist/deploy/promotion-path.js +86 -0
  125. package/dist/deploy/promotion-path.js.map +1 -0
  126. package/dist/deploy/response.d.ts +3 -0
  127. package/dist/deploy/response.d.ts.map +1 -1
  128. package/dist/deploy/response.js +66 -12
  129. package/dist/deploy/response.js.map +1 -1
  130. package/dist/deploy/runners.d.ts +99 -5
  131. package/dist/deploy/runners.d.ts.map +1 -1
  132. package/dist/dev/java-builder.d.ts.map +1 -1
  133. package/dist/dev/java-builder.js +19 -3
  134. package/dist/dev/java-builder.js.map +1 -1
  135. package/dist/dev/python-builder.d.ts.map +1 -1
  136. package/dist/dev/python-builder.js +18 -3
  137. package/dist/dev/python-builder.js.map +1 -1
  138. package/dist/dev/runtime-container.d.ts +28 -3
  139. package/dist/dev/runtime-container.d.ts.map +1 -1
  140. package/dist/dev/runtime-container.js +103 -36
  141. package/dist/dev/runtime-container.js.map +1 -1
  142. package/dist/dev/runtime-image.d.ts +1 -1
  143. package/dist/dev/runtime-image.d.ts.map +1 -1
  144. package/dist/dev/runtime-image.js +1 -1
  145. package/dist/dev/runtime-image.js.map +1 -1
  146. package/dist/dev/scala-builder.d.ts.map +1 -1
  147. package/dist/dev/scala-builder.js +55 -21
  148. package/dist/dev/scala-builder.js.map +1 -1
  149. package/dist/dev/shared-watch.d.ts +30 -0
  150. package/dist/dev/shared-watch.d.ts.map +1 -1
  151. package/dist/dev/shared-watch.js +46 -1
  152. package/dist/dev/shared-watch.js.map +1 -1
  153. package/dist/env/pack-env-hint.d.ts +52 -0
  154. package/dist/env/pack-env-hint.d.ts.map +1 -0
  155. package/dist/env/pack-env-hint.js +57 -0
  156. package/dist/env/pack-env-hint.js.map +1 -0
  157. package/dist/env/pack-env-plan.d.ts +2 -0
  158. package/dist/env/pack-env-plan.d.ts.map +1 -1
  159. package/dist/env/pack-env-plan.js +2 -1
  160. package/dist/env/pack-env-plan.js.map +1 -1
  161. package/dist/env-projects.d.ts +23 -0
  162. package/dist/env-projects.d.ts.map +1 -0
  163. package/dist/env-projects.js +28 -0
  164. package/dist/env-projects.js.map +1 -0
  165. package/dist/exports/create.d.ts +71 -0
  166. package/dist/exports/create.d.ts.map +1 -0
  167. package/dist/exports/create.js +576 -0
  168. package/dist/exports/create.js.map +1 -0
  169. package/dist/exports/plan.d.ts +69 -0
  170. package/dist/exports/plan.d.ts.map +1 -0
  171. package/dist/exports/plan.js +496 -0
  172. package/dist/exports/plan.js.map +1 -0
  173. package/dist/exports/reader.d.ts +48 -0
  174. package/dist/exports/reader.d.ts.map +1 -0
  175. package/dist/exports/reader.js +181 -0
  176. package/dist/exports/reader.js.map +1 -0
  177. package/dist/feedback/entries.d.ts +53 -0
  178. package/dist/feedback/entries.d.ts.map +1 -0
  179. package/dist/feedback/entries.js +173 -0
  180. package/dist/feedback/entries.js.map +1 -0
  181. package/dist/feedback/intake.d.ts +37 -0
  182. package/dist/feedback/intake.d.ts.map +1 -0
  183. package/dist/feedback/intake.js +101 -0
  184. package/dist/feedback/intake.js.map +1 -0
  185. package/dist/feedback/protocol.d.ts +111 -0
  186. package/dist/feedback/protocol.d.ts.map +1 -0
  187. package/dist/feedback/protocol.js +143 -0
  188. package/dist/feedback/protocol.js.map +1 -0
  189. package/dist/feedback/redact.d.ts +34 -0
  190. package/dist/feedback/redact.d.ts.map +1 -0
  191. package/dist/feedback/redact.js +258 -0
  192. package/dist/feedback/redact.js.map +1 -0
  193. package/dist/feedback/report.d.ts +51 -0
  194. package/dist/feedback/report.d.ts.map +1 -0
  195. package/dist/feedback/report.js +122 -0
  196. package/dist/feedback/report.js.map +1 -0
  197. package/dist/feedback/run.d.ts +21 -0
  198. package/dist/feedback/run.d.ts.map +1 -0
  199. package/dist/feedback/run.js +578 -0
  200. package/dist/feedback/run.js.map +1 -0
  201. package/dist/feedback/store.d.ts +24 -0
  202. package/dist/feedback/store.d.ts.map +1 -0
  203. package/dist/feedback/store.js +117 -0
  204. package/dist/feedback/store.js.map +1 -0
  205. package/dist/main.d.ts +6 -0
  206. package/dist/main.d.ts.map +1 -1
  207. package/dist/main.js +86 -5
  208. package/dist/main.js.map +1 -1
  209. package/dist/node-version.d.ts +13 -0
  210. package/dist/node-version.d.ts.map +1 -0
  211. package/dist/node-version.js +37 -0
  212. package/dist/node-version.js.map +1 -0
  213. package/dist/parse.d.ts +8 -2
  214. package/dist/parse.d.ts.map +1 -1
  215. package/dist/parse.js +7 -2
  216. package/dist/parse.js.map +1 -1
  217. package/dist/project-ref.d.ts +44 -0
  218. package/dist/project-ref.d.ts.map +1 -0
  219. package/dist/project-ref.js +69 -0
  220. package/dist/project-ref.js.map +1 -0
  221. package/dist/sdk-skills/kindgi-authoring-agents/SKILL.md +15 -2
  222. package/dist/sdk-skills/kindgi-authoring-flows/SKILL.md +1 -1
  223. package/dist/sdk-skills/kindgi-authoring-guardrails/SKILL.md +44 -7
  224. package/dist/sdk-skills/kindgi-authoring-mcp-servers/SKILL.md +11 -2
  225. package/dist/sdk-skills/kindgi-authoring-providers/SKILL.md +60 -13
  226. package/dist/sdk-skills/kindgi-authoring-tools/SKILL.md +19 -2
  227. package/dist/sdk-skills/kindgi-framework-feedback/SKILL.md +82 -3
  228. package/dist/sdk-skills/kindgi-getting-started/SKILL.md +1 -1
  229. package/dist/sdk-skills/kindgi-java-authoring-agents/SKILL.md +17 -3
  230. package/dist/sdk-skills/kindgi-java-authoring-flows/SKILL.md +1 -1
  231. package/dist/sdk-skills/kindgi-java-authoring-guardrails/SKILL.md +43 -6
  232. package/dist/sdk-skills/kindgi-java-authoring-tools/SKILL.md +19 -2
  233. package/dist/sdk-skills/kindgi-java-getting-started/SKILL.md +1 -1
  234. package/dist/sdk-skills/kindgi-python-authoring-agents/SKILL.md +17 -3
  235. package/dist/sdk-skills/kindgi-python-authoring-flows/SKILL.md +1 -1
  236. package/dist/sdk-skills/kindgi-python-authoring-guardrails/SKILL.md +49 -13
  237. package/dist/sdk-skills/kindgi-python-authoring-tools/SKILL.md +27 -3
  238. package/dist/sdk-skills/kindgi-python-getting-started/SKILL.md +1 -1
  239. package/dist/sdk-skills/kindgi-scala-authoring-agents/SKILL.md +17 -3
  240. package/dist/sdk-skills/kindgi-scala-authoring-flows/SKILL.md +1 -1
  241. package/dist/sdk-skills/kindgi-scala-authoring-guardrails/SKILL.md +43 -6
  242. package/dist/sdk-skills/kindgi-scala-authoring-tools/SKILL.md +19 -2
  243. package/dist/sdk-skills/kindgi-scala-getting-started/SKILL.md +1 -1
  244. package/dist/sdk-skills/kindgi-using/SKILL.md +1 -1
  245. package/dist/slug.d.ts +18 -0
  246. package/dist/slug.d.ts.map +1 -0
  247. package/dist/slug.js +29 -0
  248. package/dist/slug.js.map +1 -0
  249. package/dist/templates/drupal/AGENTS.md +2 -0
  250. package/dist/templates/java/AGENTS.md +2 -0
  251. package/dist/templates/minimal/AGENTS.md +2 -0
  252. package/dist/templates/python/AGENTS.md +2 -0
  253. package/dist/templates/sample/AGENTS.md +2 -0
  254. package/dist/templates/scala/AGENTS.md +2 -0
  255. package/dist/templates/woocommerce/AGENTS.md +11 -4
  256. package/dist/templates/woocommerce/README.md.tmpl +47 -4
  257. package/dist/templates/woocommerce/agents/store-agent/index.test.ts.tmpl +13 -0
  258. package/dist/templates/woocommerce/agents/store-agent/index.ts.tmpl +11 -1
  259. package/dist/templates/woocommerce/tools/publish-product/index.ts.tmpl +7 -1
  260. package/dist/templates/woocommerce/tools/refund/index.ts.tmpl +7 -2
  261. package/dist/templates/woocommerce/tools/refund-large/index.ts.tmpl +8 -2
  262. package/dist/templates/woocommerce/tools/set-price/index.ts.tmpl +6 -0
  263. package/dist/value-target.d.ts +139 -0
  264. package/dist/value-target.d.ts.map +1 -0
  265. package/dist/value-target.js +231 -0
  266. package/dist/value-target.js.map +1 -0
  267. package/package.json +13 -13
@@ -8,7 +8,10 @@ import { integerFlag, requiredPositional, runSdk, runSdkRendered, stringFlag, }
8
8
  * tenant member: they can read the tenant's settings), gives them a role
9
9
  * (a project or team membership, or tenant admin with
10
10
  * `kindgi people grant <id> --tenant-admin`) and mints their first key:
11
- * `kindgi tokens create --for=user:<id>`.
11
+ * `kindgi tokens create --for=user:<id>`. A person added with an email is
12
+ * invited where the runtime invites people: they sign in before the
13
+ * invitation expires, or a tenant admin sends it again
14
+ * (`kindgi people invite <id>`).
12
15
  */
13
16
  const TABLE = {
14
17
  rows: (page) => page.data,
@@ -16,6 +19,7 @@ const TABLE = {
16
19
  { header: 'ID', get: (u) => String(u.userId) },
17
20
  { header: 'NAME', get: (u) => u.displayName ?? '' },
18
21
  { header: 'EMAIL', get: (u) => u.primaryEmail ?? '' },
22
+ { header: 'STATE', get: (u) => u.invite?.state ?? '' },
19
23
  { header: 'ADDED', get: (u) => String(u.createdAt) },
20
24
  ],
21
25
  };
@@ -30,40 +34,119 @@ const TABLE_WITH_REMOVED = {
30
34
  },
31
35
  ],
32
36
  };
37
+ /**
38
+ * What became of an invitation's email, in a line, for a person who has
39
+ * one open; nothing for a runtime that doesn't invite, or no invitation.
40
+ */
41
+ function inviteLine(person, email) {
42
+ if (email === undefined)
43
+ return '';
44
+ const resend = `kindgi people invite ${String(person.userId)}`;
45
+ const until = person.invite !== undefined ? ` before it expires (${String(person.invite.expiresAt)})` : '';
46
+ if (email.sent) {
47
+ return `The invitation went to ${person.primaryEmail ?? 'their email'}: they sign in with it${until}.\n`;
48
+ }
49
+ switch (email.reason) {
50
+ case 'no-email':
51
+ return 'No invitation: they have no email.\n';
52
+ case 'not-requested':
53
+ return `Invited, not emailed (--no-invite): tell them to sign in with ${person.primaryEmail ?? 'their email'}${until}.\n`;
54
+ case 'not-configured':
55
+ return `Invited, but this deployment sends no email: tell them to sign in through a provider with ${person.primaryEmail ?? 'their email'}${until}.\n`;
56
+ case 'capped':
57
+ return `Invited, but the tenant's invitations for today are used up: send it later (${resend}), or tell them to sign in${until}.\n`;
58
+ default:
59
+ return `Invited, but the invitation email didn't go out: send it again (${resend}), or tell them to sign in${until}.\n`;
60
+ }
61
+ }
33
62
  const add = {
34
63
  kind: 'leaf',
35
64
  name: 'add',
36
- description: "Add a person to the tenant; prints their id. They can read the tenant's settings at once; give them a project role to work on its agents and runs, and their first key (`kindgi tokens create --for=user:<id>`). Tenant admins only.",
37
- usage: 'kindgi people add --name=<display-name> [--email=<email>]',
65
+ description: "Add a person to the tenant; prints their id. They can read the tenant's settings at once; give them a project role to work on its agents and runs, and their first key (`kindgi tokens create --for=user:<id>`). Where the runtime invites people, one added with an email is invited, and the invitation emailed unless `--no-invite`; it says whether it was. Tenant admins only.",
66
+ usage: 'kindgi people add --name=<display-name> [--email=<email>] [--no-invite]',
38
67
  optionSpec: {
39
68
  name: { type: 'string', description: 'Their name, as people see it.' },
40
69
  email: { type: 'string', description: "Their email; unique among the tenant's people." },
70
+ 'no-invite': {
71
+ type: 'boolean',
72
+ description: "Don't email the invitation: you tell them. They're still invited.",
73
+ },
41
74
  },
42
75
  run: (ctx) => runSdkRendered(ctx, 'people add', async () => {
43
76
  const displayName = stringFlag(ctx, 'name');
44
77
  if (displayName === undefined)
45
78
  throw new UsageError('--name is required');
46
79
  const email = stringFlag(ctx, 'email');
47
- const userId = await ctx.client().users.create({
80
+ const created = await ctx.client().users.create({
48
81
  displayName,
49
82
  ...(email !== undefined && { email }),
83
+ ...(ctx.options['no-invite'] === true && { sendInvite: false }),
50
84
  });
51
- const added = { userId, displayName, ...(email !== undefined && { email }) };
85
+ const added = {
86
+ userId: created.userId,
87
+ displayName,
88
+ ...(email !== undefined && { email }),
89
+ ...(created.invite !== undefined && { invite: created.invite }),
90
+ ...(created.inviteEmail !== undefined && { inviteEmail: created.inviteEmail }),
91
+ };
52
92
  return {
53
93
  stdout: renderJson(added, ctx.globals.format).stdout,
54
94
  stderr: ctx.globals.format === 'quiet'
55
95
  ? ''
56
- : `Added to the tenant: they can read its settings. Give them a project role to work on its agents and runs, then their first key: kindgi tokens create --for=user:${String(userId)}\n`,
96
+ : `Added to the tenant: they can read its settings. Give them a project role to work on its agents and runs, then their first key: kindgi tokens create --for=user:${String(created.userId)}\n${inviteLine(created, created.inviteEmail)}`,
97
+ };
98
+ }),
99
+ };
100
+ const invite = {
101
+ kind: 'leaf',
102
+ name: 'invite',
103
+ description: "Send a person's invitation again, for one who hasn't signed in yet: it gets a new expiry, and is emailed where the deployment sends email (it says whether it was). Refused for someone who has joined or was never invited. Tenant admins only.",
104
+ usage: 'kindgi people invite <user-id>',
105
+ run: (ctx) => runSdkRendered(ctx, 'people invite', async () => {
106
+ const id = requiredPositional(ctx, 0, 'user-id');
107
+ const renewed = await ctx.client().users.resendInvite(id);
108
+ return {
109
+ stdout: renderJson(renewed, ctx.globals.format).stdout,
110
+ stderr: ctx.globals.format === 'quiet' ? '' : inviteLine(renewed.user, renewed.inviteEmail),
111
+ };
112
+ }),
113
+ };
114
+ const secondFactor = {
115
+ kind: 'leaf',
116
+ name: 'second-factor',
117
+ description: 'Whether a person has a second factor set up (an authenticator app), since when, how many recovery codes they have left, and whether the workspace requires one. Tenant admins only.',
118
+ usage: 'kindgi people second-factor <user-id>',
119
+ run: (ctx) => runSdk(ctx, 'people second-factor', async () => ctx.client().users.secondFactor(requiredPositional(ctx, 0, 'user-id'))),
120
+ };
121
+ const resetSecondFactor = {
122
+ kind: 'leaf',
123
+ name: 'reset-second-factor',
124
+ description: "Remove a person's second factor, for a lost phone or lost recovery codes: they're told by email where the deployment sends it, and it's audited. Their sessions stay. Where the workspace requires one, they set one up again at their next sign-in. Tenant admins only, for anyone but themselves: your own you take off on My access, with a code from it.",
125
+ usage: 'kindgi people reset-second-factor <user-id>',
126
+ run: (ctx) => runSdkRendered(ctx, 'people reset-second-factor', async () => {
127
+ const id = requiredPositional(ctx, 0, 'user-id');
128
+ const reset = await ctx.client().users.removeSecondFactor(id);
129
+ return {
130
+ stdout: renderJson(reset, ctx.globals.format).stdout,
131
+ stderr: ctx.globals.format === 'quiet'
132
+ ? ''
133
+ : reset.removed
134
+ ? `Removed ${id}'s second factor: they set one up again at their next sign-in where the workspace requires one.\n`
135
+ : `${id} had no second factor set up: nothing changed.\n`,
57
136
  };
58
137
  }),
59
138
  };
60
139
  const list = {
61
140
  kind: 'leaf',
62
141
  name: 'list',
63
- description: "List the tenant's people; `--query` matches the start of a name. People who were removed are left out unless `--include-removed`.",
64
- usage: 'kindgi people list [--query=<name-prefix>] [--include-removed] [--limit=<n>] [--cursor=<c>] [--table]',
142
+ description: "List the tenant's people; `--query` matches the start of a name, `--pending` keeps the people invited who haven't signed in yet (STATE: pending or expired). People who were removed are left out unless `--include-removed`.",
143
+ usage: 'kindgi people list [--query=<name-prefix>] [--pending] [--include-removed] [--limit=<n>] [--cursor=<c>] [--table]',
65
144
  optionSpec: {
66
145
  query: { type: 'string', description: 'Only names starting with this.' },
146
+ pending: {
147
+ type: 'boolean',
148
+ description: "Only the people invited who haven't signed in yet (`invite`).",
149
+ },
67
150
  'include-removed': {
68
151
  type: 'boolean',
69
152
  description: 'People who were removed too, with when (`unregisteredAt`).',
@@ -79,6 +162,7 @@ const list = {
79
162
  ...(query !== undefined && { query }),
80
163
  ...(limit !== undefined && { limit }),
81
164
  ...(cursor !== undefined && { cursor: cursor }),
165
+ ...(ctx.options.pending === true && { pending: true }),
82
166
  ...(ctx.options['include-removed'] === true && { includeUnregistered: true }),
83
167
  });
84
168
  }, ctx.options['include-removed'] === true ? TABLE_WITH_REMOVED : TABLE),
@@ -160,7 +244,18 @@ const remove = {
160
244
  export const peopleCommand = {
161
245
  kind: 'group',
162
246
  name: 'people',
163
- description: "The tenant's people: add one, list, get, their grants, tenant admin given or taken (grant / ungrant), and remove one.",
164
- subcommands: [add, list, get, grants, grant, ungrant, remove],
247
+ description: "The tenant's people: add one, send their invitation again, list, get, their grants, tenant admin given or taken (grant / ungrant), their second factor (read, or reset for a lost phone), and remove one.",
248
+ subcommands: [
249
+ add,
250
+ invite,
251
+ list,
252
+ get,
253
+ grants,
254
+ grant,
255
+ ungrant,
256
+ secondFactor,
257
+ resetSecondFactor,
258
+ remove,
259
+ ],
165
260
  };
166
261
  //# sourceMappingURL=people.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"people.js","sourceRoot":"","sources":["../../src/commands/people.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"people.js","sourceRoot":"","sources":["../../src/commands/people.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/commands/projects.ts"],"names":[],"mappings":"AAoBA,OAAO,KAAK,EAAE,OAAO,EAA8B,MAAM,YAAY,CAAC;AA6HtE,eAAO,MAAM,eAAe,EAAE,OAM7B,CAAC"}
1
+ {"version":3,"file":"projects.d.ts","sourceRoot":"","sources":["../../src/commands/projects.ts"],"names":[],"mappings":"AAsBA,OAAO,KAAK,EAAE,OAAO,EAA8B,MAAM,YAAY,CAAC;AAiQtE,eAAO,MAAM,eAAe,EAAE,OAM7B,CAAC"}
@@ -2,6 +2,7 @@
2
2
  // Copyright (C) 2026 Kindgi Inc.
3
3
  import { UsageError, extractKindgiError } from '../errors.js';
4
4
  import { renderJson } from '../output.js';
5
+ import { SLUG, slugOf } from '../slug.js';
5
6
  import { commandResultFromThrown, integerFlag, requiredPositional, runSdk, stringFlag, } from './helpers.js';
6
7
  const list = {
7
8
  kind: 'leaf',
@@ -41,6 +42,119 @@ const get = {
41
42
  return await ctx.client().projects.get(id);
42
43
  }),
43
44
  };
45
+ /**
46
+ * A flag's value, trimmed, or `undefined` when it isn't given. Given empty
47
+ * (`--org=$ORG` with `ORG` unset) is a usage error, never the same as not
48
+ * given: a project in no org, or a slug nobody chose, would be made.
49
+ */
50
+ function givenFlag(ctx, name) {
51
+ const raw = ctx.options[name];
52
+ if (raw === undefined)
53
+ return undefined;
54
+ const value = typeof raw === 'string' ? raw.trim() : '';
55
+ if (value === '')
56
+ throw new UsageError(`--${name} takes a value`);
57
+ return value;
58
+ }
59
+ /**
60
+ * The project, as `projects get` prints it. The change went through before
61
+ * this read, so a read that fails prints its id and says so, rather than
62
+ * read as a change that failed (run again, it would meet its own slug).
63
+ */
64
+ async function printProject(ctx, projectId, done) {
65
+ try {
66
+ const project = await ctx.client().projects.get(projectId);
67
+ return { kind: 'ok', rendered: renderJson(project, ctx.globals.format) };
68
+ }
69
+ catch (err) {
70
+ const why = extractKindgiError(err)?.message ?? (err instanceof Error ? err.message : String(err));
71
+ return {
72
+ kind: 'ok',
73
+ rendered: {
74
+ stdout: renderJson({ id: projectId }, ctx.globals.format).stdout,
75
+ stderr: `${done}, but couldn't read it back: ${why}. \`kindgi projects get ${projectId}\` shows it.\n`,
76
+ },
77
+ };
78
+ }
79
+ }
80
+ function checkSlug(slug) {
81
+ if (!SLUG.test(slug)) {
82
+ throw new UsageError(`--slug=${slug}: lowercase letters, digits and hyphens, starting with a letter or digit, at most 63 characters`);
83
+ }
84
+ return slug;
85
+ }
86
+ const create = {
87
+ kind: 'leaf',
88
+ name: 'create',
89
+ description: 'Make a project. Prints it, with its id for the `--project=<id>` flags. For tenant admins.',
90
+ usage: 'kindgi projects create --name=<name> [--slug=<slug>] [--description=<text>] [--org=<org-id>]',
91
+ optionSpec: {
92
+ name: { type: 'string', description: 'What people see, e.g. `Support bot`. Required.' },
93
+ slug: {
94
+ type: 'string',
95
+ description: "The project's short name, unique in its org (or among projects in none); `kindgi deploy --project <id|slug>` takes it. Defaults to the name as a slug: `Support bot` is `support-bot`.",
96
+ },
97
+ description: { type: 'string', description: 'What the project is for.' },
98
+ org: { type: 'string', description: 'The org it belongs to, by id. Without it, none.' },
99
+ },
100
+ run: async (ctx) => {
101
+ try {
102
+ const name = givenFlag(ctx, 'name');
103
+ if (name === undefined)
104
+ throw new UsageError('--name=<name> is required');
105
+ const given = givenFlag(ctx, 'slug');
106
+ const slug = given !== undefined ? checkSlug(given) : slugOf(name);
107
+ if (slug === '') {
108
+ throw new UsageError(`"${name}" has no letters or digits to make a slug of: give --slug=<slug>`);
109
+ }
110
+ const description = givenFlag(ctx, 'description');
111
+ const orgId = givenFlag(ctx, 'org');
112
+ const made = await ctx.client().projects.create({
113
+ name,
114
+ slug,
115
+ ...(description !== undefined && { description }),
116
+ ...(orgId !== undefined && { orgId }),
117
+ });
118
+ return await printProject(ctx, made.id, `Made project ${made.id}`);
119
+ }
120
+ catch (err) {
121
+ return projectRefusal(err, ctx, 'kindgi projects create');
122
+ }
123
+ },
124
+ };
125
+ const rename = {
126
+ kind: 'leaf',
127
+ name: 'rename',
128
+ description: "Change a project's name, its slug, or both. Prints the project. `kindgi deploy --project <id|slug>` then takes the new slug, not the old one. For the project's admins (an admin of its org, or a tenant admin, is one).",
129
+ usage: 'kindgi projects rename <project-id> [--name=<name>] [--slug=<slug>]',
130
+ optionSpec: {
131
+ name: { type: 'string', description: 'The new name.' },
132
+ slug: {
133
+ type: 'string',
134
+ description: 'The new slug, unique in its org (or among projects in none).',
135
+ },
136
+ },
137
+ run: async (ctx) => {
138
+ try {
139
+ const projectId = requiredPositional(ctx, 0, 'project-id');
140
+ const name = givenFlag(ctx, 'name');
141
+ const slug = givenFlag(ctx, 'slug');
142
+ if (name === undefined && slug === undefined) {
143
+ throw new UsageError('Give --name, --slug, or both');
144
+ }
145
+ if (slug !== undefined)
146
+ checkSlug(slug);
147
+ await ctx.client().projects.update(projectId, {
148
+ ...(name !== undefined && { name }),
149
+ ...(slug !== undefined && { slug }),
150
+ });
151
+ return await printProject(ctx, projectId, `Changed project ${projectId}`);
152
+ }
153
+ catch (err) {
154
+ return projectRefusal(err, ctx, 'kindgi projects rename');
155
+ }
156
+ },
157
+ };
44
158
  const PRODUCTION_ACTIONS = ['on', 'off', 'status'];
45
159
  const production = {
46
160
  kind: 'leaf',
@@ -60,7 +174,7 @@ const production = {
60
174
  };
61
175
  }
62
176
  catch (err) {
63
- return productionError(err, ctx);
177
+ return projectRefusal(err, ctx, 'kindgi projects production');
64
178
  }
65
179
  },
66
180
  };
@@ -86,27 +200,35 @@ function productionText(state) {
86
200
  /**
87
201
  * The refusals named by the server's own code, since the client's families
88
202
  * would mislead: `production-not-allowed` and `permission-denied` (not a
89
- * tenant admin) are 403s, filed under `auth`, and `production-not-allowed`'s
90
- * message says what lets the tenant in (`details.next`, when the runtime
91
- * names it); `tenant-not-found` is a 404, filed under `not-found`.
203
+ * tenant admin, or not the project's admin) are 403s, filed under `auth`,
204
+ * and `production-not-allowed`'s message says what lets the tenant in
205
+ * (`details.next`, when the runtime names it); `tenant-not-found`,
206
+ * `project-not-found` and `org-not-found` are 404s, filed under
207
+ * `not-found`. The 409s (`slug-conflict`, the slug taken in that org;
208
+ * `project-default-already-exists`) need nothing here: a conflict's line
209
+ * already names its reason.
92
210
  */
93
- const PRODUCTION_REFUSALS = new Set([
211
+ const PROJECT_REFUSALS = new Set([
94
212
  'production-not-allowed',
95
213
  'permission-denied',
96
214
  'tenant-not-found',
215
+ 'project-not-found',
216
+ 'org-not-found',
97
217
  ]);
98
- function productionError(err, ctx) {
218
+ function projectRefusal(err, ctx, commandLabel) {
99
219
  const wire = extractKindgiError(err);
100
220
  const code = wire !== null && 'serverCode' in wire ? wire.serverCode : undefined;
101
- if (wire !== null && code !== undefined && PRODUCTION_REFUSALS.has(code)) {
102
- return { kind: 'error', stderr: `Error [${code}]: ${wire.message}\n`, exitCode: 1 };
221
+ if (wire !== null && code !== undefined && PROJECT_REFUSALS.has(code)) {
222
+ // As every refusal's line: with `--verbose`, the whole error (its requestId too).
223
+ const detail = ctx.globals.verbose ? `\n${JSON.stringify(wire, null, 2)}` : '';
224
+ return { kind: 'error', stderr: `Error [${code}]: ${wire.message}${detail}\n`, exitCode: 1 };
103
225
  }
104
- return commandResultFromThrown(err, ctx, 'kindgi projects production');
226
+ return commandResultFromThrown(err, ctx, commandLabel);
105
227
  }
106
228
  export const projectsCommand = {
107
229
  kind: 'group',
108
230
  name: 'projects',
109
- description: 'Find projects, for the commands that take `--project=<id>` (list / get-default / get), and put one in production (production).',
110
- subcommands: [list, getDefault, get, production],
231
+ description: 'Find projects, for the commands that take `--project=<id>` (list / get-default / get), make and rename them (create / rename), and put one in production (production).',
232
+ subcommands: [list, getDefault, get, create, rename, production],
111
233
  };
112
234
  //# sourceMappingURL=projects.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/commands/projects.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"projects.js","sourceRoot":"","sources":["../../src/commands/projects.ts"],"names":[],"mappings":"AAAA,sCAAsC;AACtC,iCAAiC;AAWjC,OAAO,EAAE,UAAU,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC9D,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EACL,uBAAuB,EACvB,WAAW,EACX,kBAAkB,EAClB,MAAM,EACN,UAAU,GACX,MAAM,cAAc,CAAC;AAGtB,MAAM,IAAI,GAAgB;IACxB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,MAAM;IACZ,WAAW,EAAE,6BAA6B;IAC1C,KAAK,EAAE,mDAAmD;IAC1D,UAAU,EAAE;QACV,KAAK,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,8BAA8B,EAAE;QACtE,MAAM,EAAE;YACN,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,kEAAkE;SAChF;KACF;IACD,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CACX,MAAM,CAAC,GAAG,EAAE,eAAe,EAAE,KAAK,IAAI,EAAE;QACtC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;QACxC,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QACzC,OAAO,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC;YACtC,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC;YACrC,GAAG,CAAC,MAAM,KAAK,SAAS,IAAI,EAAE,MAAM,EAAE,CAAC;SACxC,CAAC,CAAC;IACL,CAAC,CAAC;CACL,CAAC;AAEF,MAAM,UAAU,GAAgB;IAC9B,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,aAAa;IACnB,WAAW,EAAE,gEAAgE;IAC7E,KAAK,EAAE,6BAA6B;IACpC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CACX,MAAM,CAAC,GAAG,EAAE,sBAAsB,EAAE,KAAK,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,UAAU,EAAE,CAAC;CAC5F,CAAC;AAEF,MAAM,GAAG,GAAgB;IACvB,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,KAAK;IACX,WAAW,EAAE,qBAAqB;IAClC,KAAK,EAAE,kCAAkC;IACzC,GAAG,EAAE,CAAC,GAAG,EAAE,EAAE,CACX,MAAM,CAAC,GAAG,EAAE,cAAc,EAAE,KAAK,IAAI,EAAE;QACrC,MAAM,EAAE,GAAG,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;QACpD,OAAO,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAC7C,CAAC,CAAC;CACL,CAAC;AAEF;;;;GAIG;AACH,SAAS,SAAS,CAAC,GAAmB,EAAE,IAAY;IAClD,MAAM,GAAG,GAAG,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,IAAI,GAAG,KAAK,SAAS;QAAE,OAAO,SAAS,CAAC;IACxC,MAAM,KAAK,GAAG,OAAO,GAAG,KAAK,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;IACxD,IAAI,KAAK,KAAK,EAAE;QAAE,MAAM,IAAI,UAAU,CAAC,KAAK,IAAI,gBAAgB,CAAC,CAAC;IAClE,OAAO,KAAK,CAAC;AACf,CAAC;AAED;;;;GAIG;AACH,KAAK,UAAU,YAAY,CACzB,GAAmB,EACnB,SAAiB,EACjB,IAAY;IAEZ,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3D,OAAO,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;IAC3E,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,MAAM,GAAG,GACP,kBAAkB,CAAC,GAAG,CAAC,EAAE,OAAO,IAAI,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;QACzF,OAAO;YACL,IAAI,EAAE,IAAI;YACV,QAAQ,EAAE;gBACR,MAAM,EAAE,UAAU,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC,MAAM;gBAChE,MAAM,EAAE,GAAG,IAAI,gCAAgC,GAAG,2BAA2B,SAAS,gBAAgB;aACvG;SACF,CAAC;IACJ,CAAC;AACH,CAAC;AAED,SAAS,SAAS,CAAC,IAAY;IAC7B,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;QACrB,MAAM,IAAI,UAAU,CAClB,UAAU,IAAI,iGAAiG,CAChH,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,MAAM,GAAgB;IAC1B,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,QAAQ;IACd,WAAW,EACT,2FAA2F;IAC7F,KAAK,EACH,8FAA8F;IAChG,UAAU,EAAE;QACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,gDAAgD,EAAE;QACvF,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,WAAW,EACT,wLAAwL;SAC3L;QACD,WAAW,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,0BAA0B,EAAE;QACxE,GAAG,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,iDAAiD,EAAE;KACxF;IACD,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACjB,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACpC,IAAI,IAAI,KAAK,SAAS;gBAAE,MAAM,IAAI,UAAU,CAAC,2BAA2B,CAAC,CAAC;YAC1E,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACrC,MAAM,IAAI,GAAG,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YACnE,IAAI,IAAI,KAAK,EAAE,EAAE,CAAC;gBAChB,MAAM,IAAI,UAAU,CAClB,IAAI,IAAI,kEAAkE,CAC3E,CAAC;YACJ,CAAC;YACD,MAAM,WAAW,GAAG,SAAS,CAAC,GAAG,EAAE,aAAa,CAAC,CAAC;YAClD,MAAM,KAAK,GAAG,SAAS,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;YACpC,MAAM,IAAI,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC;gBAC9C,IAAI;gBACJ,IAAI;gBACJ,GAAG,CAAC,WAAW,KAAK,SAAS,IAAI,EAAE,WAAW,EAAE,CAAC;gBACjD,GAAG,CAAC,KAAK,KAAK,SAAS,IAAI,EAAE,KAAK,EAAE,CAAC;aACtC,CAAC,CAAC;YACH,OAAO,MAAM,YAAY,CAAC,GAAG,EAAE,IAAI,CAAC,EAAE,EAAE,gBAAgB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QACrE,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,wBAAwB,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;CACF,CAAC;AAEF,MAAM,MAAM,GAAgB;IAC1B,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,QAAQ;IACd,WAAW,EACT,0NAA0N;IAC5N,KAAK,EAAE,qEAAqE;IAC5E,UAAU,EAAE;QACV,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,WAAW,EAAE,eAAe,EAAE;QACtD,IAAI,EAAE;YACJ,IAAI,EAAE,QAAQ;YACd,WAAW,EAAE,8DAA8D;SAC5E;KACF;IACD,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACjB,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;YAC3D,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACpC,MAAM,IAAI,GAAG,SAAS,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;YACpC,IAAI,IAAI,KAAK,SAAS,IAAI,IAAI,KAAK,SAAS,EAAE,CAAC;gBAC7C,MAAM,IAAI,UAAU,CAAC,8BAA8B,CAAC,CAAC;YACvD,CAAC;YACD,IAAI,IAAI,KAAK,SAAS;gBAAE,SAAS,CAAC,IAAI,CAAC,CAAC;YACxC,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,EAAE;gBAC5C,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC;gBACnC,GAAG,CAAC,IAAI,KAAK,SAAS,IAAI,EAAE,IAAI,EAAE,CAAC;aACpC,CAAC,CAAC;YACH,OAAO,MAAM,YAAY,CAAC,GAAG,EAAE,SAAS,EAAE,mBAAmB,SAAS,EAAE,CAAC,CAAC;QAC5E,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,wBAAwB,CAAC,CAAC;QAC5D,CAAC;IACH,CAAC;CACF,CAAC;AAQF,MAAM,kBAAkB,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,QAAQ,CAAU,CAAC;AAG5D,MAAM,UAAU,GAAgB;IAC9B,IAAI,EAAE,MAAM;IACZ,IAAI,EAAE,YAAY;IAClB,WAAW,EACT,oOAAoO;IACtO,KAAK,EAAE,yDAAyD;IAChE,GAAG,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;QACjB,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,YAAY,CAAC,CAAC;YAC3D,MAAM,MAAM,GAAG,gBAAgB,CAAC,kBAAkB,CAAC,GAAG,EAAE,CAAC,EAAE,eAAe,CAAC,CAAC,CAAC;YAC7E,MAAM,KAAK,GAAG,MAAM,eAAe,CAAC,GAAG,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC;YAC5D,OAAO;gBACL,IAAI,EAAE,IAAI;gBACV,QAAQ,EAAE,GAAG,CAAC,OAAO,CAAC,eAAe;oBACnC,CAAC,CAAC,UAAU,CAAC,KAAK,EAAE,GAAG,CAAC,OAAO,CAAC,MAAM,CAAC;oBACvC,CAAC,CAAC,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE;aACzD,CAAC;QACJ,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,cAAc,CAAC,GAAG,EAAE,GAAG,EAAE,4BAA4B,CAAC,CAAC;QAChE,CAAC;IACH,CAAC;CACF,CAAC;AAEF,SAAS,gBAAgB,CAAC,GAAW;IACnC,IAAK,kBAAwC,CAAC,QAAQ,CAAC,GAAG,CAAC;QAAE,OAAO,GAAuB,CAAC;IAC5F,MAAM,IAAI,UAAU,CAAC,kDAAkD,GAAG,IAAI,CAAC,CAAC;AAClF,CAAC;AAED,yHAAyH;AACzH,KAAK,UAAU,eAAe,CAC5B,GAAmB,EACnB,SAAiB,EACjB,MAAwB;IAExB,IAAI,MAAM,KAAK,QAAQ,EAAE,CAAC;QACxB,MAAM,OAAO,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC3D,OAAO,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,EAAE,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,IAAI,EAAE,CAAC;IACrF,CAAC;IACD,MAAM,MAAM,GAAG,MAAM,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,aAAa,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC,CAAC;IACrF,OAAO,EAAE,SAAS,EAAE,MAAM,CAAC,SAAS,EAAE,eAAe,EAAE,MAAM,CAAC,eAAe,EAAE,CAAC;AAClF,CAAC;AAED,SAAS,cAAc,CAAC,KAAsB;IAC5C,OAAO,KAAK,CAAC,eAAe,KAAK,IAAI;QACnC,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,kDAAkD;QACtE,CAAC,CAAC,GAAG,KAAK,CAAC,SAAS,4BAA4B,KAAK,CAAC,eAAe,iCAAiC,CAAC;AAC3G,CAAC;AAED;;;;;;;;;;GAUG;AACH,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC;IAC/B,wBAAwB;IACxB,mBAAmB;IACnB,kBAAkB;IAClB,mBAAmB;IACnB,eAAe;CAChB,CAAC,CAAC;AAEH,SAAS,cAAc,CAAC,GAAY,EAAE,GAAmB,EAAE,YAAoB;IAC7E,MAAM,IAAI,GAAG,kBAAkB,CAAC,GAAG,CAAC,CAAC;IACrC,MAAM,IAAI,GAAG,IAAI,KAAK,IAAI,IAAI,YAAY,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;IACjF,IAAI,IAAI,KAAK,IAAI,IAAI,IAAI,KAAK,SAAS,IAAI,gBAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACtE,kFAAkF;QAClF,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC;QAC/E,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,EAAE,UAAU,IAAI,MAAM,IAAI,CAAC,OAAO,GAAG,MAAM,IAAI,EAAE,QAAQ,EAAE,CAAC,EAAE,CAAC;IAC/F,CAAC;IACD,OAAO,uBAAuB,CAAC,GAAG,EAAE,GAAG,EAAE,YAAY,CAAC,CAAC;AACzD,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAY;IACtC,IAAI,EAAE,OAAO;IACb,IAAI,EAAE,UAAU;IAChB,WAAW,EACT,wKAAwK;IAC1K,WAAW,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,EAAE,UAAU,CAAC;CACjE,CAAC"}
@@ -0,0 +1,38 @@
1
+ import type { DeploymentPromotion, DeploymentPromotionCheck, KindgiClient } from '@kindgi/client';
2
+ import type { Command } from './types.js';
3
+ type DeploymentValue = DeploymentPromotionCheck['values'][number];
4
+ type Moves = DeploymentPromotionCheck['moves'];
5
+ type LeftBehind = NonNullable<DeploymentPromotionCheck['leftBehind']>;
6
+ /**
7
+ * Where a promotion goes from and to, and the runtime it goes to. `from`
8
+ * and `to`: the pack config's environment names, or outside a pack the
9
+ * project ids or slugs given.
10
+ */
11
+ interface Route {
12
+ readonly from: string;
13
+ readonly to: string;
14
+ readonly fromProjectId: string;
15
+ readonly toProjectId: string;
16
+ readonly packId: string | undefined;
17
+ /** In a pack: the deployment it takes is this pack's. */
18
+ readonly inPack: boolean;
19
+ readonly client: KindgiClient;
20
+ }
21
+ /** What moves, and what stays behind: the lines `kindgi promote` prints before anything moves. */
22
+ export declare function movesText(moves: Moves, leftBehind: LeftBehind | undefined, route: Pick<Route, 'from' | 'to'>): string;
23
+ /**
24
+ * Where the target's values are set: its name (`label`), the env they're
25
+ * read under, and its project.
26
+ */
27
+ interface ValueTarget {
28
+ readonly label: string;
29
+ readonly env: string;
30
+ readonly projectId: string;
31
+ }
32
+ /** The values not ready in the target, a line each with how to set it. */
33
+ export declare function valuesText(values: readonly DeploymentValue[], target: ValueTarget): string;
34
+ /** The deployment the target got. */
35
+ export declare function resultText(result: DeploymentPromotion, to: string): string;
36
+ export declare const promoteCommand: Command;
37
+ export {};
38
+ //# sourceMappingURL=promote.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promote.d.ts","sourceRoot":"","sources":["../../src/commands/promote.ts"],"names":[],"mappings":"AA+BA,OAAO,KAAK,EAEV,mBAAmB,EACnB,wBAAwB,EACxB,YAAY,EACb,MAAM,gBAAgB,CAAC;AAWxB,OAAO,KAAK,EAAE,OAAO,EAAe,MAAM,YAAY,CAAC;AAGvD,KAAK,eAAe,GAAG,wBAAwB,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC;AAClE,KAAK,KAAK,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;AAC/C,KAAK,UAAU,GAAG,WAAW,CAAC,wBAAwB,CAAC,YAAY,CAAC,CAAC,CAAC;AAEtE;;;;GAIG;AACH,UAAU,KAAK;IACb,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,yDAAyD;IACzD,QAAQ,CAAC,MAAM,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,MAAM,EAAE,YAAY,CAAC;CAC/B;AAuMD,kGAAkG;AAClG,wBAAgB,SAAS,CACvB,KAAK,EAAE,KAAK,EACZ,UAAU,EAAE,UAAU,GAAG,SAAS,EAClC,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC,GAChC,MAAM,CAwBR;AAWD;;;GAGG;AACH,UAAU,WAAW;IACnB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,GAAG,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B;AAeD,0EAA0E;AAC1E,wBAAgB,UAAU,CAAC,MAAM,EAAE,SAAS,eAAe,EAAE,EAAE,MAAM,EAAE,WAAW,GAAG,MAAM,CAK1F;AAkCD,qCAAqC;AACrC,wBAAgB,UAAU,CAAC,MAAM,EAAE,mBAAmB,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAY1E;AA0FD,eAAO,MAAM,cAAc,EAAE,OAAiB,CAAC"}