primitive-admin 1.1.0-alpha.84 → 1.1.0-alpha.86

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 (132) hide show
  1. package/README.md +77 -1
  2. package/assets/skill/skills/primitive-platform/SKILL.md +8 -0
  3. package/dist/src/commands/admins.js +29 -32
  4. package/dist/src/commands/admins.js.map +1 -1
  5. package/dist/src/commands/analytics.js +15 -2
  6. package/dist/src/commands/analytics.js.map +1 -1
  7. package/dist/src/commands/apps.js +12 -5
  8. package/dist/src/commands/apps.js.map +1 -1
  9. package/dist/src/commands/blob-buckets.js +2 -1
  10. package/dist/src/commands/blob-buckets.js.map +1 -1
  11. package/dist/src/commands/catalog.js +26 -10
  12. package/dist/src/commands/catalog.js.map +1 -1
  13. package/dist/src/commands/collection-type-configs.js +2 -1
  14. package/dist/src/commands/collection-type-configs.js.map +1 -1
  15. package/dist/src/commands/collections.js +675 -19
  16. package/dist/src/commands/collections.js.map +1 -1
  17. package/dist/src/commands/connections.js +8 -9
  18. package/dist/src/commands/connections.js.map +1 -1
  19. package/dist/src/commands/cron-triggers.js +2 -1
  20. package/dist/src/commands/cron-triggers.js.map +1 -1
  21. package/dist/src/commands/database-type-configs.js +4 -3
  22. package/dist/src/commands/database-type-configs.js.map +1 -1
  23. package/dist/src/commands/databases.js +27 -10
  24. package/dist/src/commands/databases.js.map +1 -1
  25. package/dist/src/commands/documents.d.ts +20 -0
  26. package/dist/src/commands/documents.js +236 -28
  27. package/dist/src/commands/documents.js.map +1 -1
  28. package/dist/src/commands/email-templates.js +2 -1
  29. package/dist/src/commands/email-templates.js.map +1 -1
  30. package/dist/src/commands/env.js +11 -1
  31. package/dist/src/commands/env.js.map +1 -1
  32. package/dist/src/commands/feature-flags.js +2 -1
  33. package/dist/src/commands/feature-flags.js.map +1 -1
  34. package/dist/src/commands/functions.js +58 -6
  35. package/dist/src/commands/functions.js.map +1 -1
  36. package/dist/src/commands/group-type-configs.js +2 -1
  37. package/dist/src/commands/group-type-configs.js.map +1 -1
  38. package/dist/src/commands/groups.js +29 -8
  39. package/dist/src/commands/groups.js.map +1 -1
  40. package/dist/src/commands/guides.js +17 -11
  41. package/dist/src/commands/guides.js.map +1 -1
  42. package/dist/src/commands/integrations.js +30 -9
  43. package/dist/src/commands/integrations.js.map +1 -1
  44. package/dist/src/commands/locks.js +2 -1
  45. package/dist/src/commands/locks.js.map +1 -1
  46. package/dist/src/commands/metadata-category-configs.js +2 -1
  47. package/dist/src/commands/metadata-category-configs.js.map +1 -1
  48. package/dist/src/commands/metadata.js +8 -1
  49. package/dist/src/commands/metadata.js.map +1 -1
  50. package/dist/src/commands/prompts.js +28 -11
  51. package/dist/src/commands/prompts.js.map +1 -1
  52. package/dist/src/commands/rule-sets.js +2 -1
  53. package/dist/src/commands/rule-sets.js.map +1 -1
  54. package/dist/src/commands/scripts.js +15 -6
  55. package/dist/src/commands/scripts.js.map +1 -1
  56. package/dist/src/commands/secrets.js +2 -1
  57. package/dist/src/commands/secrets.js.map +1 -1
  58. package/dist/src/commands/sessions.js +10 -9
  59. package/dist/src/commands/sessions.js.map +1 -1
  60. package/dist/src/commands/sync.d.ts +125 -29
  61. package/dist/src/commands/sync.js +865 -88
  62. package/dist/src/commands/sync.js.map +1 -1
  63. package/dist/src/commands/tokens.js +2 -1
  64. package/dist/src/commands/tokens.js.map +1 -1
  65. package/dist/src/commands/users.js +19 -10
  66. package/dist/src/commands/users.js.map +1 -1
  67. package/dist/src/commands/vars.js +2 -1
  68. package/dist/src/commands/vars.js.map +1 -1
  69. package/dist/src/commands/waitlist.js +2 -1
  70. package/dist/src/commands/waitlist.js.map +1 -1
  71. package/dist/src/commands/webhooks.js +17 -10
  72. package/dist/src/commands/webhooks.js.map +1 -1
  73. package/dist/src/commands/workflows.js +36 -18
  74. package/dist/src/commands/workflows.js.map +1 -1
  75. package/dist/src/lib/api-client.d.ts +176 -8
  76. package/dist/src/lib/api-client.js +205 -68
  77. package/dist/src/lib/api-client.js.map +1 -1
  78. package/dist/src/lib/collection-export.d.ts +184 -0
  79. package/dist/src/lib/collection-export.js +252 -0
  80. package/dist/src/lib/collection-export.js.map +1 -0
  81. package/dist/src/lib/config-object-descriptor.js +44 -8
  82. package/dist/src/lib/config-object-descriptor.js.map +1 -1
  83. package/dist/src/lib/config-payload.d.ts +8 -1
  84. package/dist/src/lib/config-payload.js +49 -4
  85. package/dist/src/lib/config-payload.js.map +1 -1
  86. package/dist/src/lib/config-surface.d.ts +2 -1
  87. package/dist/src/lib/config-surface.js +54 -3
  88. package/dist/src/lib/config-surface.js.map +1 -1
  89. package/dist/src/lib/deprecation.d.ts +22 -0
  90. package/dist/src/lib/deprecation.js +43 -0
  91. package/dist/src/lib/deprecation.js.map +1 -0
  92. package/dist/src/lib/function-db-types.d.ts +14 -3
  93. package/dist/src/lib/function-db-types.js +55 -11
  94. package/dist/src/lib/function-db-types.js.map +1 -1
  95. package/dist/src/lib/function-trigger-listing.d.ts +27 -0
  96. package/dist/src/lib/function-trigger-listing.js +70 -0
  97. package/dist/src/lib/function-trigger-listing.js.map +1 -0
  98. package/dist/src/lib/generated-config-surfaces.d.ts +715 -4
  99. package/dist/src/lib/generated-config-surfaces.js +2424 -226
  100. package/dist/src/lib/generated-config-surfaces.js.map +1 -1
  101. package/dist/src/lib/generated-sdk-types.d.ts +1 -1
  102. package/dist/src/lib/generated-sdk-types.js +1 -1
  103. package/dist/src/lib/generated-sdk-types.js.map +1 -1
  104. package/dist/src/lib/list-options.d.ts +68 -0
  105. package/dist/src/lib/list-options.js +89 -0
  106. package/dist/src/lib/list-options.js.map +1 -0
  107. package/dist/src/lib/log-inspection.d.ts +34 -1
  108. package/dist/src/lib/log-inspection.js +28 -0
  109. package/dist/src/lib/log-inspection.js.map +1 -1
  110. package/dist/src/lib/paginate.d.ts +15 -0
  111. package/dist/src/lib/paginate.js +17 -0
  112. package/dist/src/lib/paginate.js.map +1 -1
  113. package/dist/src/lib/prompt-cost-format.d.ts +11 -0
  114. package/dist/src/lib/prompt-cost-format.js +41 -0
  115. package/dist/src/lib/prompt-cost-format.js.map +1 -0
  116. package/dist/src/lib/prompt-schema-codegen.d.ts +53 -0
  117. package/dist/src/lib/prompt-schema-codegen.js +253 -3
  118. package/dist/src/lib/prompt-schema-codegen.js.map +1 -1
  119. package/dist/src/lib/swift-codegen/agentGenerator.d.ts +42 -0
  120. package/dist/src/lib/swift-codegen/agentGenerator.js +118 -0
  121. package/dist/src/lib/swift-codegen/agentGenerator.js.map +1 -0
  122. package/dist/src/lib/swift-codegen/banners.d.ts +6 -0
  123. package/dist/src/lib/swift-codegen/banners.js +6 -0
  124. package/dist/src/lib/swift-codegen/banners.js.map +1 -1
  125. package/dist/src/lib/swift-codegen/dbGenerator.js +11 -3
  126. package/dist/src/lib/swift-codegen/dbGenerator.js.map +1 -1
  127. package/dist/src/lib/swift-codegen/functionGenerator.d.ts +7 -0
  128. package/dist/src/lib/swift-codegen/functionGenerator.js +41 -3
  129. package/dist/src/lib/swift-codegen/functionGenerator.js.map +1 -1
  130. package/dist/src/lib/swift-codegen/generator.js +8 -2
  131. package/dist/src/lib/swift-codegen/generator.js.map +1 -1
  132. package/package.json +2 -2
@@ -43,6 +43,20 @@
43
43
  * rule and same reason as `resolveFunctionKey` (CR3281-001) and
44
44
  * `databaseTypeSources` (SO3182-003): the generator reads the key the platform
45
45
  * will hear about, never the file name alone.
46
+ *
47
+ * ── Agents (#3798) ───────────────────────────────────────────────────────
48
+ *
49
+ * A `kind = "agent"` prompt is never run single-shot, so it has no `output`.
50
+ * Its entry is `{ agent: { variables; clientTools; events } }` instead —
51
+ * `<Key>AgentVariables` from `inputSchema` (the session's variables),
52
+ * `<Key>Tool<Name>Input`/`Output` for each CLIENT tool (a server tool's
53
+ * schemas are its function's, typed in the functions declaration) and
54
+ * `<Key>Event<Name>` for each event kind — and the SDK's `PromptKeys` excludes
55
+ * it, so `ctx.prompts.run("<agent>")` is a compile error. The same types go to
56
+ * the client side as `functions/generated/<key>.agent.generated.ts`
57
+ * (`renderAgentClientFiles`), which an app's web code imports. The
58
+ * declaration is read through `normalizeAgentDeclaration`, the one reader
59
+ * that applies an agent's defaults.
46
60
  */
47
61
  import { existsSync, readdirSync, readFileSync } from "fs";
48
62
  import { basename, join } from "path";
@@ -50,6 +64,11 @@ import { parseConfigToml } from "./config-toml.js";
50
64
  import { safeJsonParse } from "./workflow-payload.js";
51
65
  import { FunctionSchemaCodegenError, renderTypeDecl, } from "./function-schema-codegen.js";
52
66
  import { workflowTypeBaseName } from "./workflow-codegen/naming.js";
67
+ import { tsStringLiteral } from "./codegen-shared/prettierStable.js";
68
+ import { fingerprintToml } from "./db-codegen/dbFingerprint.js";
69
+ import { normalizeAgentDeclaration, promptKindOf, resolveAgentDeclaration, } from "./generated-config-surfaces.js";
70
+ /** The client-side artifact an agent prompt gets, beside the invokers (#3798). */
71
+ export const AGENT_CLIENT_FILE_SUFFIX = ".agent.generated.ts";
53
72
  /** The regenerated declaration beside `primitive-function-types.d.ts`. */
54
73
  export const PROMPT_TYPES_DECLARATION_FILE = "primitive-prompt-types.d.ts";
55
74
  /** The key push will identify this file by. */
@@ -122,8 +141,121 @@ export function describePromptSchema(source) {
122
141
  outputSchema,
123
142
  typeBaseName,
124
143
  outputTypeName: `${typeBaseName}PromptOutput`,
144
+ agent: promptKindOf(table) === "agent"
145
+ ? describeAgentTypes(fileLabel(source), typeBaseName, table)
146
+ : null,
125
147
  };
126
148
  }
149
+ /**
150
+ * A declared name as a property key: bare when it is an identifier, quoted
151
+ * (the way Prettier quotes a string) when it carries a `-`.
152
+ */
153
+ function propertyKey(name) {
154
+ return /^[A-Za-z_$][A-Za-z0-9_$]*$/.test(name) ? name : tsStringLiteral(name);
155
+ }
156
+ /**
157
+ * An agent prompt's contract, typed (#3798). The declaration is checked by the
158
+ * same rule push runs (its file-decidable half), so a malformed one fails here
159
+ * naming the file rather than typing something the platform refuses; two
160
+ * client tools (or two events) whose names sanitize to one identifier are
161
+ * refused naming both.
162
+ */
163
+ function describeAgentTypes(label, typeBaseName, table) {
164
+ const resolution = resolveAgentDeclaration({ kind: "agent", agent: table.agent });
165
+ if (resolution.ok === false) {
166
+ throw new FunctionSchemaCodegenError(`${label}: ${resolution.refusals.map((r) => r.message).join("; ")}`);
167
+ }
168
+ let inputSchema;
169
+ try {
170
+ inputSchema = safeJsonParse(table.inputSchema);
171
+ }
172
+ catch (error) {
173
+ throw new FunctionSchemaCodegenError(`${label}: \`inputSchema\` is not valid JSON (${error?.message ?? error})`);
174
+ }
175
+ const declaration = normalizeAgentDeclaration(resolution.declaration);
176
+ const claimed = (what) => {
177
+ const byBase = new Map();
178
+ return (name) => {
179
+ const base = workflowTypeBaseName(name);
180
+ const other = byBase.get(base);
181
+ if (other !== undefined && other !== name) {
182
+ throw new FunctionSchemaCodegenError(`${label}: ${what} names '${other}' and '${name}' both name the ` +
183
+ `generated type \`${typeBaseName}${what === "tool" ? "Tool" : "Event"}${base}\` — ` +
184
+ "rename one so the two do not collide after sanitizing");
185
+ }
186
+ byBase.set(base, name);
187
+ return base;
188
+ };
189
+ };
190
+ const toolBase = claimed("tool");
191
+ const eventBase = claimed("event");
192
+ const clientTools = declaration.tools
193
+ .filter((tool) => tool.runs === "client")
194
+ .map((tool) => {
195
+ const base = `${typeBaseName}Tool${toolBase(tool.name)}`;
196
+ return {
197
+ name: tool.name,
198
+ input: {
199
+ name: tool.name,
200
+ typeName: `${base}Input`,
201
+ schema: tool.inputSchema,
202
+ },
203
+ output: {
204
+ name: tool.name,
205
+ typeName: `${base}Output`,
206
+ schema: tool.outputSchema,
207
+ },
208
+ };
209
+ });
210
+ const events = declaration.events.map((event) => ({
211
+ name: event.name,
212
+ typeName: `${typeBaseName}Event${eventBase(event.name)}`,
213
+ schema: event.schema,
214
+ }));
215
+ return {
216
+ variablesTypeName: `${typeBaseName}AgentVariables`,
217
+ inputSchema,
218
+ clientTools,
219
+ events,
220
+ };
221
+ }
222
+ /** Render one agent type, naming the file and the path when it cannot be. */
223
+ function renderAgentType(prompt, typeName, schema, path) {
224
+ try {
225
+ return renderTypeDecl(typeName, schema);
226
+ }
227
+ catch (error) {
228
+ if (error instanceof FunctionSchemaCodegenError)
229
+ throw error;
230
+ throw new FunctionSchemaCodegenError(`${prompt.fileLabel}: \`${path}\` cannot be rendered as a TypeScript ` +
231
+ `type (${error?.message ?? error})`);
232
+ }
233
+ }
234
+ /** Every type declaration an agent contributes, in a fixed order. */
235
+ function renderAgentTypeDecls(prompt) {
236
+ const agent = prompt.agent;
237
+ return [
238
+ renderAgentType(prompt, agent.variablesTypeName, agent.inputSchema, "inputSchema"),
239
+ ...agent.clientTools.flatMap((tool) => [
240
+ renderAgentType(prompt, tool.input.typeName, tool.input.schema, `tools.${tool.name}.inputSchema`),
241
+ renderAgentType(prompt, tool.output.typeName, tool.output.schema, `tools.${tool.name}.outputSchema`),
242
+ ]),
243
+ ...agent.events.map((event) => renderAgentType(prompt, event.typeName, event.schema, `events.${event.name}.schema`)),
244
+ ];
245
+ }
246
+ /** The one-line `{ agent: … }` entry of `PrimitivePromptSchemas`. */
247
+ function agentSchemaEntry(prompt) {
248
+ const agent = prompt.agent;
249
+ const tools = agent.clientTools
250
+ .map((tool) => `${propertyKey(tool.name)}: { input: ${tool.input.typeName}; output: ${tool.output.typeName} }`)
251
+ .join("; ");
252
+ const events = agent.events
253
+ .map((event) => `${propertyKey(event.name)}: ${event.typeName}`)
254
+ .join("; ");
255
+ return (`{ agent: { variables: ${agent.variablesTypeName}; ` +
256
+ `clientTools: {${tools ? ` ${tools} ` : ""}}; ` +
257
+ `events: {${events ? ` ${events} ` : ""}} } }`);
258
+ }
127
259
  /**
128
260
  * Describe every source, sorted by key, refusing the two collisions that
129
261
  * would silently render one prompt over another: two files resolving to one
@@ -156,8 +288,45 @@ function describeAll(sources) {
156
288
  }
157
289
  byBaseName.set(prompt.typeBaseName, prompt.key);
158
290
  }
291
+ // #3798 (CSO-3798-001) — an agent's types are named `<Key>Tool…`/`<Key>Event…`,
292
+ // so they can land on another prompt's name even when the two bases differ
293
+ // (event `prompt-output` of `advisor` and the output of `advisor-event`).
294
+ // Every declared name is registered, and a second claim is refused naming
295
+ // both sources rather than one silently redeclaring the other.
296
+ const byTypeName = new Map();
297
+ for (const { prompt } of described) {
298
+ for (const { typeName, path } of declaredTypeNames(prompt)) {
299
+ const where = `${prompt.fileLabel} (\`${path}\`)`;
300
+ const other = byTypeName.get(typeName);
301
+ if (other !== undefined) {
302
+ throw new FunctionSchemaCodegenError(`${other} and ${where} both declare the generated type ` +
303
+ `\`${typeName}\` — rename one so the two do not collide after sanitizing`);
304
+ }
305
+ byTypeName.set(typeName, where);
306
+ }
307
+ }
159
308
  return described;
160
309
  }
310
+ /** Every type name a prompt's declarations emit, with the schema it comes from. */
311
+ function declaredTypeNames(prompt) {
312
+ const agent = prompt.agent;
313
+ if (!agent) {
314
+ return prompt.outputSchema === undefined
315
+ ? []
316
+ : [{ typeName: prompt.outputTypeName, path: "outputSchema" }];
317
+ }
318
+ return [
319
+ { typeName: agent.variablesTypeName, path: "inputSchema" },
320
+ ...agent.clientTools.flatMap((tool) => [
321
+ { typeName: tool.input.typeName, path: `tools.${tool.name}.inputSchema` },
322
+ { typeName: tool.output.typeName, path: `tools.${tool.name}.outputSchema` },
323
+ ]),
324
+ ...agent.events.map((event) => ({
325
+ typeName: event.typeName,
326
+ path: `events.${event.name}.schema`,
327
+ })),
328
+ ];
329
+ }
161
330
  const DECLARATION_HEADER = `// GENERATED by \`primitive config push\` from prompts/*.toml.
162
331
  // DO NOT EDIT — your changes are overwritten on the next push.
163
332
  //
@@ -177,6 +346,13 @@ export function renderPromptSchemasDeclaration(sources) {
177
346
  const prompts = describeAll(sources).map((entry) => entry.prompt);
178
347
  const lines = [DECLARATION_HEADER];
179
348
  for (const prompt of prompts) {
349
+ if (prompt.agent) {
350
+ for (const decl of renderAgentTypeDecls(prompt)) {
351
+ lines.push(decl);
352
+ lines.push("");
353
+ }
354
+ continue;
355
+ }
180
356
  if (prompt.outputSchema === undefined)
181
357
  continue;
182
358
  try {
@@ -196,9 +372,11 @@ export function renderPromptSchemasDeclaration(sources) {
196
372
  else {
197
373
  lines.push("export interface PrimitivePromptSchemas {");
198
374
  for (const prompt of prompts) {
199
- lines.push(prompt.outputSchema === undefined
200
- ? ` ${JSON.stringify(prompt.key)}: {};`
201
- : ` ${JSON.stringify(prompt.key)}: { output: ${prompt.outputTypeName} };`);
375
+ lines.push(prompt.agent
376
+ ? ` ${JSON.stringify(prompt.key)}: ${agentSchemaEntry(prompt)};`
377
+ : prompt.outputSchema === undefined
378
+ ? ` ${JSON.stringify(prompt.key)}: {};`
379
+ : ` ${JSON.stringify(prompt.key)}: { output: ${prompt.outputTypeName} };`);
202
380
  }
203
381
  lines.push("}");
204
382
  }
@@ -209,4 +387,76 @@ export function renderPromptSchemasDeclaration(sources) {
209
387
  lines.push("");
210
388
  return lines.join("\n");
211
389
  }
390
+ /**
391
+ * Whether a source is an agent prompt, read leniently: a file that does not
392
+ * parse is not one here (the declaration renderer names the parse failure
393
+ * where it has always named it).
394
+ */
395
+ function isAgentSource(source) {
396
+ try {
397
+ return promptKindOf(parseConfigToml(source.tomlContent)?.prompt) === "agent";
398
+ }
399
+ catch {
400
+ return false;
401
+ }
402
+ }
403
+ /** Whether a tree declares any agent prompt — the codegen gate (DSO-3798-005). */
404
+ export function treeDeclaresAgentPrompt(configDir) {
405
+ return promptSchemaSources(configDir).some(isAgentSource);
406
+ }
407
+ /**
408
+ * The client-side artifact of each agent prompt — #3798:
409
+ * `<key>.agent.generated.ts`, carrying the agent's variables, client-tool and
410
+ * event types, the `<Key>AgentClientTools` / `<Key>AgentEvents` maps an app's
411
+ * session view is typed by, and `<Key>Agent.key`. Written beside the function
412
+ * invokers and owned by the same plan, so the invoker sweep keeps it; a
413
+ * Prettier fixed point, like them (#1565).
414
+ */
415
+ export function renderAgentClientFiles(sources) {
416
+ const agents = describeAll(sources.filter(isAgentSource));
417
+ return agents.map(({ prompt, source }) => {
418
+ const agent = prompt.agent;
419
+ const base = prompt.typeBaseName;
420
+ const toolsMap = agent.clientTools.length === 0
421
+ ? `export interface ${base}AgentClientTools {}`
422
+ : [
423
+ `export interface ${base}AgentClientTools {`,
424
+ ...agent.clientTools.flatMap((tool) => [
425
+ ` ${propertyKey(tool.name)}: {`,
426
+ ` input: ${tool.input.typeName};`,
427
+ ` output: ${tool.output.typeName};`,
428
+ ` };`,
429
+ ]),
430
+ `}`,
431
+ ].join("\n");
432
+ const eventsMap = agent.events.length === 0
433
+ ? `export interface ${base}AgentEvents {}`
434
+ : [
435
+ `export interface ${base}AgentEvents {`,
436
+ ...agent.events.map((event) => ` ${propertyKey(event.name)}: ${event.typeName};`),
437
+ `}`,
438
+ ].join("\n");
439
+ const blocks = [
440
+ [
441
+ `// AUTO-GENERATED FROM ${prompt.fileLabel} — DO NOT EDIT.`,
442
+ "// Run `primitive functions codegen` to regenerate.",
443
+ `// fingerprint: ${fingerprintToml(source.tomlContent)}`,
444
+ ].join("\n"),
445
+ ...renderAgentTypeDecls(prompt),
446
+ `/** The client tools a member of the \`${prompt.key}\` agent answers, by name. */\n${toolsMap}`,
447
+ `/** The event kinds the \`${prompt.key}\` agent records, by name. */\n${eventsMap}`,
448
+ [
449
+ `/** The \`${prompt.key}\` agent: the key a session is created with. */`,
450
+ `export const ${base}Agent = {`,
451
+ ` key: ${tsStringLiteral(prompt.key)},`,
452
+ `} as const;`,
453
+ ].join("\n"),
454
+ ];
455
+ return {
456
+ key: prompt.key,
457
+ fileName: `${prompt.key}${AGENT_CLIENT_FILE_SUFFIX}`,
458
+ content: blocks.join("\n\n") + "\n",
459
+ };
460
+ });
461
+ }
212
462
  //# sourceMappingURL=prompt-schema-codegen.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"prompt-schema-codegen.js","sourceRoot":"","sources":["../../../src/lib/prompt-schema-codegen.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"prompt-schema-codegen.js","sourceRoot":"","sources":["../../../src/lib/prompt-schema-codegen.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,42 @@
1
+ /**
2
+ * The Swift half of an agent prompt's client-side types — #3798.
3
+ *
4
+ * `functions codegen --lang swift` writes one `<key>.agent.generated.swift`
5
+ * per `kind = "agent"` prompt, beside the function invokers, carrying:
6
+ *
7
+ * - `<Key>AgentVariables` — the session's variables, from `[prompt].inputSchema`;
8
+ * - `<Key>Tool<Name>Input` / `<Key>Tool<Name>Output` for every CLIENT tool
9
+ * (a server tool's schemas are its function's, typed in that function's
10
+ * own file);
11
+ * - `<Key>Event<Name>` for every event kind; and
12
+ * - `<Key>Agent`, a namespace enum with the key a session is created with
13
+ * and the declared client-tool and event names.
14
+ *
15
+ * ── Nothing about the agent is re-derived here ───────────────────────────
16
+ *
17
+ * Names, schemas and the declaration's defaults all come from
18
+ * `describePromptSchema` — the IR the TypeScript artifact reads, itself read
19
+ * through `normalizeAgentDeclaration` — so the two clients can never disagree
20
+ * about what an agent's contract is. Only Swift rendering, through the shared
21
+ * `renderSwiftRootType`, happens in this file.
22
+ *
23
+ * Written in the functions run's own `writeOrCheckGeneratedFiles` call
24
+ * (`generateFunctionSwiftTypes`), which owns both banners: a removed agent's
25
+ * file is swept, `--check` reports a stale one, and a file another generator
26
+ * stamped is never overwritten.
27
+ */
28
+ import { type PromptSchemaSource } from "../prompt-schema-codegen.js";
29
+ import { AGENT_SWIFT_BANNER_PREFIX } from "./banners.js";
30
+ export { AGENT_SWIFT_BANNER_PREFIX };
31
+ /** The file an agent prompt's Swift types are written to: `<key>.agent.generated.swift`. */
32
+ export declare const AGENT_SWIFT_FILE_SUFFIX = ".agent.generated.swift";
33
+ /**
34
+ * Render the full `<key>.agent.generated.swift` content for one agent prompt.
35
+ * Pure — exported so tests can assert on the string directly. Throws a
36
+ * `SwiftCodegenError` naming the file for a prompt that is not an agent.
37
+ */
38
+ export declare function renderAgentSwiftFile(source: PromptSchemaSource): {
39
+ key: string;
40
+ content: string;
41
+ symbols: string[];
42
+ };
@@ -0,0 +1,118 @@
1
+ /**
2
+ * The Swift half of an agent prompt's client-side types — #3798.
3
+ *
4
+ * `functions codegen --lang swift` writes one `<key>.agent.generated.swift`
5
+ * per `kind = "agent"` prompt, beside the function invokers, carrying:
6
+ *
7
+ * - `<Key>AgentVariables` — the session's variables, from `[prompt].inputSchema`;
8
+ * - `<Key>Tool<Name>Input` / `<Key>Tool<Name>Output` for every CLIENT tool
9
+ * (a server tool's schemas are its function's, typed in that function's
10
+ * own file);
11
+ * - `<Key>Event<Name>` for every event kind; and
12
+ * - `<Key>Agent`, a namespace enum with the key a session is created with
13
+ * and the declared client-tool and event names.
14
+ *
15
+ * ── Nothing about the agent is re-derived here ───────────────────────────
16
+ *
17
+ * Names, schemas and the declaration's defaults all come from
18
+ * `describePromptSchema` — the IR the TypeScript artifact reads, itself read
19
+ * through `normalizeAgentDeclaration` — so the two clients can never disagree
20
+ * about what an agent's contract is. Only Swift rendering, through the shared
21
+ * `renderSwiftRootType`, happens in this file.
22
+ *
23
+ * Written in the functions run's own `writeOrCheckGeneratedFiles` call
24
+ * (`generateFunctionSwiftTypes`), which owns both banners: a removed agent's
25
+ * file is swept, `--check` reports a stale one, and a file another generator
26
+ * stamped is never overwritten.
27
+ */
28
+ import { fingerprintToml } from "../db-codegen/dbFingerprint.js";
29
+ import { describePromptSchema, } from "../prompt-schema-codegen.js";
30
+ import { renderSwiftRootType, SwiftCodegenError } from "./schemaToSwift.js";
31
+ import { swiftKeyLiteral } from "./generator.js";
32
+ import { AGENT_SWIFT_BANNER_PREFIX } from "./banners.js";
33
+ import { parseTopLevelSwiftSymbols } from "./siblingSymbols.js";
34
+ export { AGENT_SWIFT_BANNER_PREFIX };
35
+ /** The file an agent prompt's Swift types are written to: `<key>.agent.generated.swift`. */
36
+ export const AGENT_SWIFT_FILE_SUFFIX = ".agent.generated.swift";
37
+ const INDENT = " ";
38
+ /** A Swift array literal of the declared names, in declaration order. */
39
+ function nameList(names) {
40
+ return `[${names.map(swiftKeyLiteral).join(", ")}]`;
41
+ }
42
+ /**
43
+ * Render the full `<key>.agent.generated.swift` content for one agent prompt.
44
+ * Pure — exported so tests can assert on the string directly. Throws a
45
+ * `SwiftCodegenError` naming the file for a prompt that is not an agent.
46
+ */
47
+ export function renderAgentSwiftFile(source) {
48
+ const prompt = describePromptSchema(source);
49
+ const agent = prompt.agent;
50
+ if (!agent) {
51
+ throw new SwiftCodegenError(`swift agent codegen: ${prompt.fileLabel} is not a kind = "agent" prompt`, { sourceFile: prompt.fileLabel });
52
+ }
53
+ const sourceFile = prompt.fileLabel;
54
+ const rendered = [
55
+ {
56
+ path: "inputSchema",
57
+ decl: renderSwiftRootType(agent.variablesTypeName, agent.inputSchema, { sourceFile }),
58
+ },
59
+ ...agent.clientTools.flatMap((tool) => [
60
+ {
61
+ path: `tools.${tool.name}.inputSchema`,
62
+ decl: renderSwiftRootType(tool.input.typeName, tool.input.schema, { sourceFile }),
63
+ },
64
+ {
65
+ path: `tools.${tool.name}.outputSchema`,
66
+ decl: renderSwiftRootType(tool.output.typeName, tool.output.schema, { sourceFile }),
67
+ },
68
+ ]),
69
+ ...agent.events.map((event) => ({
70
+ path: `events.${event.name}.schema`,
71
+ decl: renderSwiftRootType(event.typeName, event.schema, { sourceFile }),
72
+ })),
73
+ ];
74
+ // CSO-3798-002 — a schema's helper types are top-level too (an array of
75
+ // objects under `data` declares `<Key>EventDataItem`), so two of one agent's
76
+ // schemas can declare the same symbol. The run-scoped registry only compares
77
+ // owners, so the file is checked against itself here, naming both paths.
78
+ const symbolPath = new Map();
79
+ for (const { path, decl } of rendered) {
80
+ for (const symbol of new Set(parseTopLevelSwiftSymbols(decl))) {
81
+ const other = symbolPath.get(symbol);
82
+ if (other !== undefined) {
83
+ throw new SwiftCodegenError(`swift agent codegen: ${sourceFile}: \`${other}\` and \`${path}\` both ` +
84
+ `produce Swift symbol "${symbol}", which would be declared twice in ` +
85
+ `one file — rename one so the two differ after Swift normalization`, { sourceFile });
86
+ }
87
+ symbolPath.set(symbol, path);
88
+ }
89
+ }
90
+ const decls = rendered.map((entry) => entry.decl);
91
+ const namespace = [
92
+ `/// The \`${prompt.key}\` agent: the key a session is created with, and the`,
93
+ `/// client tools and event kinds it declares.`,
94
+ `public enum ${prompt.typeBaseName}Agent {`,
95
+ `${INDENT}public static let key = ${swiftKeyLiteral(prompt.key)}`,
96
+ `${INDENT}public static let clientToolNames: [String] = ${nameList(agent.clientTools.map((tool) => tool.name))}`,
97
+ `${INDENT}public static let eventNames: [String] = ${nameList(agent.events.map((event) => event.name))}`,
98
+ `}`,
99
+ ].join("\n");
100
+ const banner = [
101
+ `${AGENT_SWIFT_BANNER_PREFIX}${sourceFile.replace(/^prompts\//, "")} — DO NOT EDIT.`,
102
+ "// Run `primitive functions codegen --lang swift` to regenerate.",
103
+ `// fingerprint: ${fingerprintToml(source.tomlContent)}`,
104
+ ].join("\n");
105
+ // `JsBaoClient` for `JSONValue`, which an open schema renders to — the
106
+ // import the function invokers carry too.
107
+ const imports = ["import Foundation", "import JsBaoClient"].join("\n");
108
+ const content = [banner, imports, ...decls, namespace].join("\n\n") + "\n";
109
+ return {
110
+ key: prompt.key,
111
+ content,
112
+ // Read back off the rendered source, as the function emitter does
113
+ // (CR3344-001), so a nested helper type a schema declares is in the
114
+ // run-scoped registry too.
115
+ symbols: parseTopLevelSwiftSymbols(content),
116
+ };
117
+ }
118
+ //# sourceMappingURL=agentGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agentGenerator.js","sourceRoot":"","sources":["../../../../src/lib/swift-codegen/agentGenerator.ts"],"names":[],"mappings":"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"}
@@ -16,3 +16,9 @@
16
16
  * output directory stays safe in every direction.
17
17
  */
18
18
  export declare const FUNCTION_SWIFT_BANNER_PREFIX = "// AUTO-GENERATED FROM functions/";
19
+ /**
20
+ * Banner prefix of an agent prompt's `<key>.agent.generated.swift` (#3798),
21
+ * written by the same `functions codegen --lang swift` run as the function
22
+ * invokers but from `prompts/`, so the two are told apart by content too.
23
+ */
24
+ export declare const AGENT_SWIFT_BANNER_PREFIX = "// AUTO-GENERATED FROM prompts/";
@@ -16,4 +16,10 @@
16
16
  * output directory stays safe in every direction.
17
17
  */
18
18
  export const FUNCTION_SWIFT_BANNER_PREFIX = "// AUTO-GENERATED FROM functions/";
19
+ /**
20
+ * Banner prefix of an agent prompt's `<key>.agent.generated.swift` (#3798),
21
+ * written by the same `functions codegen --lang swift` run as the function
22
+ * invokers but from `prompts/`, so the two are told apart by content too.
23
+ */
24
+ export const AGENT_SWIFT_BANNER_PREFIX = "// AUTO-GENERATED FROM prompts/";
19
25
  //# sourceMappingURL=banners.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"banners.js","sourceRoot":"","sources":["../../../../src/lib/swift-codegen/banners.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,mCAAmC,CAAC"}
1
+ {"version":3,"file":"banners.js","sourceRoot":"","sources":["../../../../src/lib/swift-codegen/banners.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH;;;;;GAKG;AACH,MAAM,CAAC,MAAM,4BAA4B,GAAG,mCAAmC,CAAC;AAEhF;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,iCAAiC,CAAC"}
@@ -36,7 +36,7 @@ import { resolveRecordInterfaceName, opParamsInterfaceName, opResultAliasName, }
36
36
  import { GENERATED_SWIFT_FILE_SUFFIX, SWIFT_BANNER_PREFIX } from "./generator.js";
37
37
  // The third Swift generator's banner (#3344), from a leaf module so this adds
38
38
  // no import cycle.
39
- import { FUNCTION_SWIFT_BANNER_PREFIX } from "./banners.js";
39
+ import { AGENT_SWIFT_BANNER_PREFIX, FUNCTION_SWIFT_BANNER_PREFIX, } from "./banners.js";
40
40
  import { assertNoRetainedSiblingCollision, assertNoForeignGeneratorSymbolCollision, } from "./siblingSymbols.js";
41
41
  import { SwiftCodegenError } from "./schemaToSwift.js";
42
42
  import { structTypeName, enumTypeName, enumCaseNames, swiftPropertyName, unescapeIdentifier, } from "./swiftNaming.js";
@@ -883,7 +883,11 @@ export async function generateDbSwiftTypes(options) {
883
883
  // regenerate workflow files — they coexist regardless of ordering.
884
884
  await assertNoForeignGeneratorSymbolCollision({
885
885
  outputDir: outAbs,
886
- foreignBanner: [SWIFT_BANNER_PREFIX, FUNCTION_SWIFT_BANNER_PREFIX],
886
+ foreignBanner: [
887
+ SWIFT_BANNER_PREFIX,
888
+ FUNCTION_SWIFT_BANNER_PREFIX,
889
+ AGENT_SWIFT_BANNER_PREFIX,
890
+ ],
887
891
  suffix: GENERATED_SWIFT_FILE_SUFFIX,
888
892
  emitted: namespaceOwner,
889
893
  makeError: ({ symbol, owner, siblingStem }) => new SwiftCodegenError(`swift db codegen: namespace collision with another generator's file — ` +
@@ -906,7 +910,11 @@ export async function generateDbSwiftTypes(options) {
906
910
  ownershipBanner: DB_SWIFT_BANNER_PREFIXES,
907
911
  // Class 3b: never clobber a file owned by the workflow or functions Swift
908
912
  // generator.
909
- foreignOwnershipBanners: [SWIFT_BANNER_PREFIX, FUNCTION_SWIFT_BANNER_PREFIX],
913
+ foreignOwnershipBanners: [
914
+ SWIFT_BANNER_PREFIX,
915
+ FUNCTION_SWIFT_BANNER_PREFIX,
916
+ AGENT_SWIFT_BANNER_PREFIX,
917
+ ],
910
918
  onForeignBannerCollision: ({ filePath, foreignBanner }) => new SwiftCodegenError(`swift codegen: output collision — this run would overwrite ` +
911
919
  `"${path.basename(filePath)}" in the shared output directory, which ` +
912
920
  `is already owned by a different generator (banner ` +