primitive-admin 1.1.0-alpha.73 → 1.1.0-alpha.75

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 (150) hide show
  1. package/README.md +18 -25
  2. package/assets/skill/skills/primitive-platform/SKILL.md +30 -14
  3. package/dist/bin/primitive.js +25 -21
  4. package/dist/bin/primitive.js.map +1 -1
  5. package/dist/src/commands/analytics.js +117 -2
  6. package/dist/src/commands/analytics.js.map +1 -1
  7. package/dist/src/commands/auth.js +13 -107
  8. package/dist/src/commands/auth.js.map +1 -1
  9. package/dist/src/commands/collection-type-configs.js +1 -1
  10. package/dist/src/commands/collection-type-configs.js.map +1 -1
  11. package/dist/src/commands/config.js +8 -4
  12. package/dist/src/commands/config.js.map +1 -1
  13. package/dist/src/commands/database-type-configs.js +1 -1
  14. package/dist/src/commands/database-type-configs.js.map +1 -1
  15. package/dist/src/commands/databases.js +25 -31
  16. package/dist/src/commands/databases.js.map +1 -1
  17. package/dist/src/commands/documents.js +758 -53
  18. package/dist/src/commands/documents.js.map +1 -1
  19. package/dist/src/commands/env.d.ts +1 -1
  20. package/dist/src/commands/env.js +57 -16
  21. package/dist/src/commands/env.js.map +1 -1
  22. package/dist/src/commands/functions.d.ts +20 -0
  23. package/dist/src/commands/functions.js +463 -0
  24. package/dist/src/commands/functions.js.map +1 -0
  25. package/dist/src/commands/groups.js +1 -1
  26. package/dist/src/commands/groups.js.map +1 -1
  27. package/dist/src/commands/init.d.ts +12 -15
  28. package/dist/src/commands/init.js +38 -92
  29. package/dist/src/commands/init.js.map +1 -1
  30. package/dist/src/commands/integrations.js +5 -3
  31. package/dist/src/commands/integrations.js.map +1 -1
  32. package/dist/src/commands/prompts.js +5 -7
  33. package/dist/src/commands/prompts.js.map +1 -1
  34. package/dist/src/commands/rule-sets.js +1 -1
  35. package/dist/src/commands/rule-sets.js.map +1 -1
  36. package/dist/src/commands/scripts.js +23 -11
  37. package/dist/src/commands/scripts.js.map +1 -1
  38. package/dist/src/commands/sync-app-settings.js +2 -4
  39. package/dist/src/commands/sync-app-settings.js.map +1 -1
  40. package/dist/src/commands/sync.d.ts +65 -2
  41. package/dist/src/commands/sync.js +867 -21
  42. package/dist/src/commands/sync.js.map +1 -1
  43. package/dist/src/commands/workflows.js +6 -8
  44. package/dist/src/commands/workflows.js.map +1 -1
  45. package/dist/src/lib/api-client.d.ts +163 -2
  46. package/dist/src/lib/api-client.js +227 -5
  47. package/dist/src/lib/api-client.js.map +1 -1
  48. package/dist/src/lib/app-match-guard.d.ts +44 -0
  49. package/dist/src/lib/app-match-guard.js +72 -0
  50. package/dist/src/lib/app-match-guard.js.map +1 -0
  51. package/dist/src/lib/app-settings-descriptor.js +4 -0
  52. package/dist/src/lib/app-settings-descriptor.js.map +1 -1
  53. package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.d.ts +11 -8
  54. package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.js +112 -60
  55. package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.js.map +1 -1
  56. package/dist/src/lib/config-object-descriptor.js +39 -0
  57. package/dist/src/lib/config-object-descriptor.js.map +1 -1
  58. package/dist/src/lib/config-surface.d.ts +10 -0
  59. package/dist/src/lib/config-surface.js +17 -0
  60. package/dist/src/lib/config-surface.js.map +1 -1
  61. package/dist/src/lib/config.d.ts +15 -4
  62. package/dist/src/lib/config.js +22 -39
  63. package/dist/src/lib/config.js.map +1 -1
  64. package/dist/src/lib/credentials-store.d.ts +7 -15
  65. package/dist/src/lib/credentials-store.js +52 -85
  66. package/dist/src/lib/credentials-store.js.map +1 -1
  67. package/dist/src/lib/document-export-permissions.d.ts +30 -0
  68. package/dist/src/lib/document-export-permissions.js +54 -0
  69. package/dist/src/lib/document-export-permissions.js.map +1 -0
  70. package/dist/src/lib/env-resolver-core.d.ts +64 -16
  71. package/dist/src/lib/env-resolver-core.js +128 -17
  72. package/dist/src/lib/env-resolver-core.js.map +1 -1
  73. package/dist/src/lib/env-resolver.d.ts +3 -3
  74. package/dist/src/lib/env-resolver.js +2 -2
  75. package/dist/src/lib/function-bundle.d.ts +141 -0
  76. package/dist/src/lib/function-bundle.js +333 -0
  77. package/dist/src/lib/function-bundle.js.map +1 -0
  78. package/dist/src/lib/function-collect.d.ts +101 -0
  79. package/dist/src/lib/function-collect.js +339 -0
  80. package/dist/src/lib/function-collect.js.map +1 -0
  81. package/dist/src/lib/function-db-types.d.ts +149 -0
  82. package/dist/src/lib/function-db-types.js +587 -0
  83. package/dist/src/lib/function-db-types.js.map +1 -0
  84. package/dist/src/lib/function-grants-preflight.d.ts +118 -0
  85. package/dist/src/lib/function-grants-preflight.js +213 -0
  86. package/dist/src/lib/function-grants-preflight.js.map +1 -0
  87. package/dist/src/lib/function-sync.d.ts +191 -0
  88. package/dist/src/lib/function-sync.js +474 -0
  89. package/dist/src/lib/function-sync.js.map +1 -0
  90. package/dist/src/lib/function-triggers.d.ts +54 -0
  91. package/dist/src/lib/function-triggers.js +223 -0
  92. package/dist/src/lib/function-triggers.js.map +1 -0
  93. package/dist/src/lib/generated-config-surfaces.d.ts +389 -0
  94. package/dist/src/lib/generated-config-surfaces.js +1030 -2
  95. package/dist/src/lib/generated-config-surfaces.js.map +1 -1
  96. package/dist/src/lib/generated-sdk-types.d.ts +12 -0
  97. package/dist/src/lib/generated-sdk-types.js +13 -0
  98. package/dist/src/lib/generated-sdk-types.js.map +1 -0
  99. package/dist/src/lib/init-adopt.js +2 -2
  100. package/dist/src/lib/init-adopt.js.map +1 -1
  101. package/dist/src/lib/init-assets.js +3 -3
  102. package/dist/src/lib/init-config.d.ts +1 -1
  103. package/dist/src/lib/init-ios-links.d.ts +6 -5
  104. package/dist/src/lib/init-ios-links.js +9 -8
  105. package/dist/src/lib/init-ios-links.js.map +1 -1
  106. package/dist/src/lib/init-plan.d.ts +1 -1
  107. package/dist/src/lib/init-plan.js +1 -1
  108. package/dist/src/lib/init-xcode.d.ts +6 -5
  109. package/dist/src/lib/init-xcode.js +34 -10
  110. package/dist/src/lib/init-xcode.js.map +1 -1
  111. package/dist/src/lib/ios-app-id.d.ts +34 -0
  112. package/dist/src/lib/ios-app-id.js +69 -0
  113. package/dist/src/lib/ios-app-id.js.map +1 -0
  114. package/dist/src/lib/local-state.d.ts +1 -1
  115. package/dist/src/lib/local-state.js +1 -1
  116. package/dist/src/lib/local-test-cases.d.ts +1 -1
  117. package/dist/src/lib/local-test-cases.js +2 -1
  118. package/dist/src/lib/local-test-cases.js.map +1 -1
  119. package/dist/src/lib/migration-nag.d.ts +2 -2
  120. package/dist/src/lib/migration-nag.js +4 -3
  121. package/dist/src/lib/migration-nag.js.map +1 -1
  122. package/dist/src/lib/project-config.d.ts +38 -21
  123. package/dist/src/lib/project-config.js +57 -47
  124. package/dist/src/lib/project-config.js.map +1 -1
  125. package/dist/src/lib/snapshots.d.ts +2 -2
  126. package/dist/src/lib/snapshots.js +2 -2
  127. package/dist/src/lib/swift-codegen/generator.d.ts +1 -1
  128. package/dist/src/lib/swift-codegen/generator.js +1 -1
  129. package/dist/src/lib/sync-dir-selector.d.ts +1 -1
  130. package/dist/src/lib/sync-dir-selector.js +1 -1
  131. package/dist/src/lib/sync-paths.d.ts +52 -16
  132. package/dist/src/lib/sync-paths.js +68 -22
  133. package/dist/src/lib/sync-paths.js.map +1 -1
  134. package/dist/src/lib/sync-resource-types.d.ts +23 -4
  135. package/dist/src/lib/sync-resource-types.js +106 -8
  136. package/dist/src/lib/sync-resource-types.js.map +1 -1
  137. package/dist/src/lib/template.d.ts +2 -2
  138. package/dist/src/lib/template.js +2 -2
  139. package/dist/src/lib/test-case-keys.d.ts +1 -1
  140. package/dist/src/lib/test-case-keys.js +1 -1
  141. package/dist/src/lib/test-case-variables.d.ts +14 -0
  142. package/dist/src/lib/test-case-variables.js +42 -0
  143. package/dist/src/lib/test-case-variables.js.map +1 -1
  144. package/dist/src/lib/workflow-codegen/generator.d.ts +1 -1
  145. package/dist/src/lib/workflow-codegen/generator.js +1 -1
  146. package/dist/src/lib/workflow-usage.d.ts +198 -0
  147. package/dist/src/lib/workflow-usage.js +312 -0
  148. package/dist/src/lib/workflow-usage.js.map +1 -0
  149. package/dist/src/types/index.d.ts +12 -2
  150. package/package.json +4 -3
@@ -0,0 +1,463 @@
1
+ /**
2
+ * `primitive functions` — server functions' read and operational verbs
3
+ * (#3179, project `server-functions`).
4
+ *
5
+ * A server function is the SIXTH status-carrying type (`docs/cli-design.md`,
6
+ * §Object availability): it exposes a public endpoint, so it carries
7
+ * `active | inactive | archived`, the `enable`/`disable` pair, and the
8
+ * `archive` spelling of the delete flow. It carries no `create`, `update` or
9
+ * `delete` verb — the function is authored in `functions/<key>.toml` beside the
10
+ * TypeScript its `entry` names, applied with `config push`, and prune-by-push
11
+ * stays the only CLI hard-delete path.
12
+ *
13
+ * The rule worth stating loudly here, because a function IS code on a public
14
+ * endpoint: a `config push` to a DISABLED function updates the code and leaves
15
+ * it out of service. `status` has one writer pair and push is not one of them
16
+ * (#2803's resurrection guard) — otherwise shipping a fix would silently put
17
+ * an endpoint an operator had taken down back in service.
18
+ */
19
+ import { existsSync } from "fs";
20
+ import { join } from "path";
21
+ import { ApiClient } from "../lib/api-client.js";
22
+ import { resolveAppId } from "../lib/config.js";
23
+ import { resolveSyncDir } from "../lib/sync-paths.js";
24
+ import { assertTreeApp } from "../lib/app-match-guard.js";
25
+ import { functionTypeWiringProblems, staleFunctionTypeArtifacts, writeFunctionTypeArtifacts, } from "../lib/function-db-types.js";
26
+ import { success, error, info, warn, keyValue, result as printResult, formatTable, formatDate, formatStatus, json, divider, } from "../lib/output.js";
27
+ import { confirmPrompt } from "../lib/confirm-prompt.js";
28
+ import { parseStatusFilter } from "../lib/object-status-filter.js";
29
+ export function registerFunctionsCommands(program) {
30
+ const functions = program
31
+ .command("functions")
32
+ .description("Inspect and operate server functions")
33
+ .addHelpText("after", `
34
+ Examples:
35
+ $ primitive config create function greet # then edit functions/greet.toml and: primitive config push
36
+ $ primitive functions list
37
+ $ primitive functions get 01HXY...
38
+ $ primitive functions disable 01HXY... # out of service; pushes still land
39
+ $ primitive functions archive 01HXY... # retire it (soft delete)
40
+ `);
41
+ // Configuration is authored in TOML and applied with `config push` (#2645):
42
+ // this group carries no config-setting flags, and the code the function runs
43
+ // is the TypeScript beside its file rather than anything a verb can send.
44
+ functions.addHelpText("after", `
45
+ Configuration lives in functions/<key>.toml, and the code beside it:
46
+ $ primitive config fields function # the file's keys, types and defaults
47
+ $ primitive config create function <key> # scaffold one locally
48
+ $ primitive config set function/<key> <path>=<value>
49
+ $ primitive config push --only function/<key>
50
+ `);
51
+ functions
52
+ .command("list")
53
+ .description("List server functions")
54
+ .argument("[app-id]", "App ID (uses current app if not specified)")
55
+ .option("--app <app-id>", "App ID")
56
+ .option("--status <status>", "Filter by status: active, inactive, archived")
57
+ .option("--json", "Output as JSON")
58
+ .action(async (appId, options) => {
59
+ const resolvedAppId = resolveAppId(appId, options);
60
+ const client = new ApiClient();
61
+ try {
62
+ const status = parseStatusFilter("functions", options.status, [
63
+ "active",
64
+ "inactive",
65
+ "archived",
66
+ ]);
67
+ // The admin listing drains `functionsByApp` server-side, so there is no
68
+ // cursor to follow and the filter is applied here.
69
+ const { items } = await client.listFunctions(resolvedAppId);
70
+ const filtered = status
71
+ ? (items || []).filter((f) => String(f.status ?? "active") === status)
72
+ : items || [];
73
+ if (options.json) {
74
+ json(filtered);
75
+ return;
76
+ }
77
+ if (filtered.length === 0) {
78
+ info("No functions found.");
79
+ return;
80
+ }
81
+ console.log(formatTable(filtered, [
82
+ { header: "KEY", key: "functionKey" },
83
+ { header: "ID", key: "functionId" },
84
+ { header: "RUN AS", key: "runAs" },
85
+ { header: "STATUS", key: "status", format: formatStatus },
86
+ { header: "MODIFIED", key: "modifiedAt", format: formatDate },
87
+ ]));
88
+ }
89
+ catch (err) {
90
+ error(err.message);
91
+ process.exit(1);
92
+ }
93
+ });
94
+ functions
95
+ .command("get")
96
+ .description("Get a server function, and the version it currently runs")
97
+ .argument("<function-id>", "Function ID")
98
+ .option("--app <app-id>", "App ID (uses current app if not specified)")
99
+ .option("--json", "Output as JSON")
100
+ .action(async (functionId, options) => {
101
+ const resolvedAppId = resolveAppId(undefined, options);
102
+ const client = new ApiClient();
103
+ try {
104
+ const record = await client.getFunction(resolvedAppId, functionId);
105
+ // The versions are append-only and nameless; `activeConfigId` is the
106
+ // only thing that says which one runs, so a listing without it would
107
+ // report the newest rather than the live one.
108
+ let active = null;
109
+ if (record?.activeConfigId) {
110
+ const { items } = await client.listFunctionConfigs(resolvedAppId, functionId);
111
+ active =
112
+ (items || []).find((c) => String(c.configId) === String(record.activeConfigId)) ?? null;
113
+ }
114
+ if (options.json) {
115
+ json({ ...record, activeConfig: active });
116
+ return;
117
+ }
118
+ printResult("Function ID", record.functionId);
119
+ printResult("Key", record.functionKey);
120
+ printResult("Description", record.description || "-");
121
+ printResult("Status", formatStatus(record.status));
122
+ printResult("Run As", record.runAs || "caller");
123
+ printResult("Access", record.access || "-");
124
+ printResult("Input Schema", record.inputSchema || "-");
125
+ printResult("Output Schema", record.outputSchema || "-");
126
+ divider();
127
+ info("Active version:");
128
+ if (!active) {
129
+ printResult(" Version", "none — no code has been pushed yet");
130
+ }
131
+ else {
132
+ printResult(" Config ID", active.configId);
133
+ printResult(" Entry", active.entry);
134
+ printResult(" Content Hash", active.contentHash || "-");
135
+ printResult(" Durable", active.durable ? "yes" : "no");
136
+ printResult(" Limits", active.limits || "-");
137
+ // #3182 — the grants this version may use, and the flag the intent
138
+ // makes the human-reviewed artifact for an unscoped read. Shown here
139
+ // because `functions get` is where an operator asks what a deployed
140
+ // function is allowed to touch.
141
+ const capabilities = Array.isArray(active.capabilities)
142
+ ? active.capabilities
143
+ : [];
144
+ printResult(" Capabilities", capabilities.length > 0 ? capabilities.join(", ") : "-");
145
+ printResult(" Unscoped Reads", active.unscopedReads
146
+ ? "yes — reads are not scoped to the caller"
147
+ : "no");
148
+ }
149
+ // #3181 — the ONE surface a function's triggers are visible on. The
150
+ // hidden `AppWebhook` and `CronTrigger` rows are omitted from
151
+ // `webhooks list`, `cron-triggers list` and `config pull` by design, so
152
+ // without this an operator could not find the receiver URL a provider
153
+ // must be pointed at, or the schedule the platform actually holds.
154
+ divider();
155
+ info("Triggers:");
156
+ const triggers = record.triggers ?? { webhook: null, cron: [] };
157
+ const cronEntries = Array.isArray(triggers.cron)
158
+ ? triggers.cron
159
+ : [];
160
+ if (!triggers.webhook && cronEntries.length === 0) {
161
+ printResult(" Triggers", "none — this function is invoked over HTTP only");
162
+ }
163
+ if (triggers.webhook) {
164
+ printResult(" Webhook", triggers.webhook.webhookId);
165
+ printResult(" URL", triggers.webhook.url || "-");
166
+ printResult(" Scheme", triggers.webhook.verificationScheme || "-");
167
+ printResult(" Status", formatStatus(triggers.webhook.status));
168
+ printResult(" Signing Secret", triggers.webhook.signingSecret || "-");
169
+ printResult(" Last Triggered", triggers.webhook.lastTriggeredAt
170
+ ? formatDate(triggers.webhook.lastTriggeredAt)
171
+ : "never");
172
+ }
173
+ if (cronEntries.length > 0) {
174
+ console.log(formatTable(cronEntries, [
175
+ { header: "NAME", key: "name" },
176
+ { header: "ID", key: "triggerId" },
177
+ { header: "CRON", key: "cron" },
178
+ { header: "TZ", key: "timezone" },
179
+ { header: "STATUS", key: "status", format: formatStatus },
180
+ { header: "NEXT FIRE", key: "nextFireAt", format: formatDate },
181
+ { header: "FIRED", key: "firedCount" },
182
+ { header: "LAST RUN", key: "lastTriggeredRunId" },
183
+ ]));
184
+ }
185
+ // #3187 — the queries the ACTIVE version registered, from its
186
+ // collected manifest. A registered query is a named surface of the
187
+ // function, and `callerScoped` is the property the read relaxation
188
+ // turns on, so an operator reading this can see both without opening
189
+ // the bundle (principle 8).
190
+ divider();
191
+ info("Queries:");
192
+ const queries = Array.isArray(record.queries) ? record.queries : [];
193
+ if (queries.length === 0) {
194
+ printResult(" Queries", "none recorded — this version was pushed without a manifest");
195
+ }
196
+ else {
197
+ console.log(formatTable(queries, [
198
+ { header: "NAME", key: "name" },
199
+ { header: "KIND", key: "kind" },
200
+ {
201
+ header: "MODELS",
202
+ key: "models",
203
+ format: (value) => Array.isArray(value) && value.length > 0 ? value.join(", ") : "-",
204
+ },
205
+ {
206
+ header: "SCOPED",
207
+ key: "callerScoped",
208
+ format: (value) => (value ? "$caller" : "no"),
209
+ },
210
+ {
211
+ header: "CACHE",
212
+ key: "cache",
213
+ format: (value) => (value ? `${value.ttlMs}ms` : "off"),
214
+ },
215
+ ]));
216
+ }
217
+ divider();
218
+ printResult("Created", formatDate(record.createdAt));
219
+ printResult("Modified", formatDate(record.modifiedAt));
220
+ }
221
+ catch (err) {
222
+ error(err.message);
223
+ process.exit(1);
224
+ }
225
+ });
226
+ // #3181 — a trigger-fired invocation writes a run row, and a function run has
227
+ // no `workflowId`, so `primitive workflows runs` cannot see it. This verb is
228
+ // the only way to inspect what a webhook or a schedule actually did
229
+ // (principle 8).
230
+ functions
231
+ .command("runs")
232
+ .description("List a server function's runs, newest first")
233
+ .argument("<function-id>", "Function ID")
234
+ .option("--app <app-id>", "App ID (uses current app if not specified)")
235
+ .option("--limit <n>", "Rows per page (default 25, max 100)")
236
+ .option("--cursor <cursor>", "Continue from a previous page")
237
+ .option("--json", "Output as JSON")
238
+ .action(async (functionId, options) => {
239
+ const resolvedAppId = resolveAppId(undefined, options);
240
+ const client = new ApiClient();
241
+ try {
242
+ const { items, nextCursor } = await client.listFunctionRuns(resolvedAppId, functionId, {
243
+ ...(options.limit ? { limit: Number(options.limit) } : {}),
244
+ ...(options.cursor ? { cursor: options.cursor } : {}),
245
+ });
246
+ if (options.json) {
247
+ json({ items, nextCursor });
248
+ return;
249
+ }
250
+ if (!items || items.length === 0) {
251
+ info("No runs found for this function.");
252
+ return;
253
+ }
254
+ console.log(formatTable(items, [
255
+ { header: "RUN ID", key: "runId" },
256
+ { header: "STATUS", key: "status", format: formatStatus },
257
+ { header: "FIRED BY", key: "initiatorKind" },
258
+ { header: "STARTED", key: "startedAt", format: formatDate },
259
+ { header: "ENDED", key: "endedAt", format: formatDate },
260
+ { header: "CODE", key: "errorCode" },
261
+ ]));
262
+ if (nextCursor) {
263
+ info(`More runs: --cursor ${nextCursor}`);
264
+ }
265
+ }
266
+ catch (err) {
267
+ error(err.message);
268
+ process.exit(1);
269
+ }
270
+ });
271
+ // #3182 — the typed handle's generated files, and the freshness question a
272
+ // CI job has to be able to ASK. `config push` writes them and `config diff`
273
+ // names the stale ones, but a diff exits 0 whatever it found, so a job that
274
+ // meant to fail on stale types passed and a declaration that disagreed with
275
+ // its schema reached the author as types that quietly lie (F3182-004). The
276
+ // verb and the flag are the two `databases codegen` and `workflows codegen`
277
+ // already use for exactly this.
278
+ functions
279
+ .command("codegen")
280
+ .description("Write the typed-handle files into the config tree's functions/ directory: the database-type declaration, the primitive-functions declaration, and the tsconfig that wires them into your editor. `config push` does this too; this is the standalone form, with a --check mode for CI.")
281
+ .argument("[app-id]", "App ID (uses current app if not specified)")
282
+ .option("--app <app-id>", "App ID")
283
+ .option("--dir <path>", "Config directory (overrides the auto-resolved per-env path)")
284
+ .option("--check", "Exit non-zero if the generated files are out of date or the tsconfig no longer loads them (CI guard); does not write.")
285
+ .option("--json", "Output the result summary as JSON")
286
+ .action(async (appId, options) => {
287
+ // A tree command: what it writes is the environment's own directory, so
288
+ // an app the environment does not name is refused before any file is
289
+ // read or written (#3153).
290
+ assertTreeApp(appId || options.app, "functions codegen");
291
+ // `--dir` is the explicit override `resolveSyncDir` honors before
292
+ // anything else, and this command reads local files only — so a tree
293
+ // named outright needs no app resolved for it, the way the other two
294
+ // codegen families behave.
295
+ const configDir = options.dir ? options.dir : resolveSyncDir({});
296
+ if (!existsSync(configDir)) {
297
+ error(`Config directory not found: ${configDir}`);
298
+ process.exit(1);
299
+ }
300
+ if (!existsSync(join(configDir, "functions"))) {
301
+ // Nothing to type: the artifacts exist to serve function sources, and
302
+ // a tree with none needs no compiler wiring. Not a failure — a tree
303
+ // may legitimately have no functions.
304
+ if (options.json)
305
+ json({ ok: true, stale: [], problems: [] });
306
+ else
307
+ info(`No functions/ directory in ${configDir}; nothing to generate.`);
308
+ return;
309
+ }
310
+ // Wiring push cannot repair is checked alongside freshness: a tsconfig
311
+ // that carries comments is never rewritten, so it can be perfectly
312
+ // current and still load none of the declarations (CR3182-003).
313
+ const problems = functionTypeWiringProblems(configDir);
314
+ if (options.check) {
315
+ const stale = staleFunctionTypeArtifacts(configDir);
316
+ if (stale.length === 0 && problems.length === 0) {
317
+ if (options.json)
318
+ json({ ok: true, stale: [], problems: [] });
319
+ else
320
+ success("Check passed: the function types are up to date.");
321
+ return;
322
+ }
323
+ if (options.json) {
324
+ json({ ok: false, stale, problems });
325
+ }
326
+ else {
327
+ error(`Check failed: ${stale.length} file(s) out of date` +
328
+ (problems.length > 0
329
+ ? `, ${problems.length} wiring problem(s).`
330
+ : "."));
331
+ for (const relative of stale)
332
+ error(` out of date: ${relative}`);
333
+ for (const problem of problems) {
334
+ error(` functions/tsconfig.json: ${problem}`);
335
+ }
336
+ // Name the command that fixes what was just reported, keeping the
337
+ // options that decided WHERE it looked (#2911).
338
+ const regenerate = ["primitive functions codegen"];
339
+ if (options.dir)
340
+ regenerate.push(`--dir ${options.dir}`);
341
+ info(`Run \`${regenerate.join(" ")}\` to regenerate.`);
342
+ }
343
+ process.exit(1);
344
+ }
345
+ const written = writeFunctionTypeArtifacts(configDir);
346
+ if (options.json) {
347
+ json({ written, problems });
348
+ return;
349
+ }
350
+ success(`Wrote ${written.length} file(s) into ${configDir}/functions/.`);
351
+ for (const relative of written)
352
+ keyValue(" wrote", relative);
353
+ for (const problem of problems) {
354
+ warn(`functions/tsconfig.json: ${problem}`);
355
+ }
356
+ });
357
+ // #2803 — the operational verb pair, and the only writers of `status` besides
358
+ // the delete flow. `config push` is deliberately not one: see the module note.
359
+ functions
360
+ .command("disable")
361
+ .description("Take a server function out of service now. Invocations are refused; the committed configuration and code are unchanged.")
362
+ .argument("<function-id>", "Function ID")
363
+ .option("--app <app-id>", "App ID (uses current app if not specified)")
364
+ .option("--json", "Output as JSON")
365
+ .action(async (functionId, options) => {
366
+ const resolvedAppId = resolveAppId(undefined, options);
367
+ const client = new ApiClient();
368
+ try {
369
+ const result = await client.setFunctionAvailability(resolvedAppId, functionId, "disable");
370
+ if (options.json) {
371
+ json(result);
372
+ return;
373
+ }
374
+ success(`Function disabled: ${result.functionKey || functionId}`);
375
+ info("Invocations are refused. `primitive config push` still updates the code and leaves it out of service — `primitive functions enable` puts it back.");
376
+ }
377
+ catch (err) {
378
+ error(err.message);
379
+ process.exit(1);
380
+ }
381
+ });
382
+ functions
383
+ .command("enable")
384
+ .description("Put a server function back in service.")
385
+ .argument("<function-id>", "Function ID")
386
+ .option("--app <app-id>", "App ID (uses current app if not specified)")
387
+ .option("--json", "Output as JSON")
388
+ .action(async (functionId, options) => {
389
+ const resolvedAppId = resolveAppId(undefined, options);
390
+ const client = new ApiClient();
391
+ try {
392
+ const result = await client.setFunctionAvailability(resolvedAppId, functionId, "enable");
393
+ if (options.json) {
394
+ json(result);
395
+ return;
396
+ }
397
+ success(`Function enabled: ${result.functionKey || functionId}`);
398
+ }
399
+ catch (err) {
400
+ error(err.message);
401
+ process.exit(1);
402
+ }
403
+ });
404
+ // #2907 — the delete flow's CLI spelling. The plain `DELETE` the server has
405
+ // always answered by writing the tombstone; not a second writer of `status`.
406
+ functions
407
+ .command("archive")
408
+ .description("Retire a server function (soft delete). Delete-lifecycle, not `disable`: the row is kept, goes on holding its key, and there is no un-archive.")
409
+ .argument("<function-id>", "Function ID")
410
+ .option("--app <app-id>", "App ID (uses current app if not specified)")
411
+ .option("-y, --yes", "Skip confirmation prompt")
412
+ .option("--json", "Output as JSON")
413
+ .addHelpText("after", `
414
+ What archiving a function costs:
415
+ Invocations are refused, as they are for a disabled function.
416
+ The archived row still holds its key in the app's SINGLE key namespace — no
417
+ new function, workflow, script or webhook may take that key while it stands —
418
+ and pushing code to an archived function is refused.
419
+ \`primitive functions enable\` refuses an archived function; there is no
420
+ un-archive.
421
+
422
+ Reclaiming the key means hard-deleting the row:
423
+ $ rm functions/<key>.toml
424
+ $ primitive config push --prune # confirmed; hard-deletes the row, its
425
+ # versions and their stored bundles
426
+ # or hard-delete it in the console, then re-add the file and push.
427
+ `)
428
+ .action(async (functionId, options) => {
429
+ const resolvedAppId = resolveAppId(undefined, options);
430
+ if (!options.yes) {
431
+ let confirmed;
432
+ try {
433
+ confirmed = await confirmPrompt(`Archive function ${functionId}? Invocations stop, the row keeps its ` +
434
+ `key in the app's single key namespace, and there is no un-archive.`);
435
+ }
436
+ catch (err) {
437
+ error(err.message);
438
+ process.exit(1);
439
+ }
440
+ if (!confirmed) {
441
+ info("Cancelled.");
442
+ return;
443
+ }
444
+ }
445
+ const client = new ApiClient();
446
+ try {
447
+ // The soft delete: no `hard`, so the server writes the tombstone and
448
+ // keeps the reservation. Prune-by-push owns the hard path.
449
+ const result = await client.deleteFunction(resolvedAppId, functionId);
450
+ if (options.json) {
451
+ json(result);
452
+ return;
453
+ }
454
+ success(`Function archived: ${functionId}`);
455
+ info("Invocations are refused and pushes to it are rejected. The row still holds its key — reclaim it by removing its file and running a confirmed `primitive config push --prune`.");
456
+ }
457
+ catch (err) {
458
+ error(err.message);
459
+ process.exit(1);
460
+ }
461
+ });
462
+ }
463
+ //# sourceMappingURL=functions.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functions.js","sourceRoot":"","sources":["../../../src/commands/functions.ts"],"names":[],"mappings":"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"}
@@ -5,7 +5,7 @@ import { confirmPrompt } from "../lib/confirm-prompt.js";
5
5
  function resolveAppId(appId, options) {
6
6
  const resolved = appId || options.app || getCurrentAppId();
7
7
  if (!resolved) {
8
- error("No app specified. Use <app-id>, --app, or 'primitive use <app-id>' to set context.");
8
+ error("No app specified. Use <app-id> or --app <app-id>, or run this from a Primitive project whose primitive/config.json names the app.");
9
9
  process.exit(1);
10
10
  }
11
11
  return resolved;
@@ -1 +1 @@
1
- {"version":3,"file":"groups.js","sourceRoot":"","sources":["../../../src/commands/groups.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"groups.js","sourceRoot":"","sources":["../../../src/commands/groups.ts"],"names":[],"mappings":"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"}
@@ -1,18 +1,4 @@
1
1
  import { Command } from "commander";
2
- /**
3
- * The .gitignore lines `init` writes for Primitive CLI local state.
4
- *
5
- * Pre-pull sync snapshots (issue #578) are per-machine local recovery state and
6
- * must never be committed. They can land in three places depending on how the
7
- * sync dir resolves (see `resolveSnapshotsRoot` in `lib/sync-paths.ts`):
8
- * - project mode: `<projectRoot>/.primitive/sync-backups/<env>/<appId>/`
9
- * - legacy `--dir <p>`: `<p>/.snapshots/` (sibling of the user dir)
10
- * - no-project fallback: `./config-snapshots/`
11
- * The bare `.snapshots/` and `config-snapshots/` entries (no leading slash)
12
- * match those directories wherever `--dir` points, so backup copies — including
13
- * the restored `.primitive-sync.json` baseline — can never surface as untracked
14
- * files in a tracked custom config dir.
15
- */
16
2
  /**
17
3
  * The origin a local dev server is served from. ONE spelling: the app's CORS
18
4
  * origins, its `emailRedirectUris` seed and the environment's `webUrl` all
@@ -28,7 +14,18 @@ export declare function localDevOrigin(port: number): string;
28
14
  * not own the project config, and a seed is never worth failing an init over.
29
15
  */
30
16
  export declare function seedEnvironmentWebUrl(projectRoot: string, environment: string, webUrl: string): boolean;
31
- export declare const GITIGNORE_LOCAL_STATE_ENTRIES: readonly [".primitive/credentials.json", ".primitive/local.json", ".primitive/sync/**/.primitive-sync.json", ".primitive/sync-backups/", ".snapshots/", "config-snapshots/"];
17
+ /**
18
+ * The .gitignore lines `init` writes for Primitive CLI local state — one line,
19
+ * with no per-file exception (#3153, intent criterion 2).
20
+ *
21
+ * That is the whole point of the move: `primitive/` is committed (the config
22
+ * and every environment's TOML, including the shared `.sync-state.json`
23
+ * baseline) and `.primitive/` is machine-local (credentials, this machine's
24
+ * `primitive env use` selection, pre-pull snapshot backups). Before the move
25
+ * one directory meant both things, so the list needed six entries and a
26
+ * comment explaining which files inside it were committed anyway.
27
+ */
28
+ export declare const GITIGNORE_LOCAL_STATE_ENTRIES: readonly [".primitive/"];
32
29
  /**
33
30
  * Ensures the project root's .gitignore lists the Primitive CLI's local state.
34
31
  *