primitive-admin 1.1.0-alpha.9 → 1.1.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 (591) hide show
  1. package/README.md +523 -109
  2. package/assets/skill/skills/primitive-platform/SKILL.md +289 -0
  3. package/dist/bin/primitive.d.ts +2 -0
  4. package/dist/bin/primitive.js +372 -21
  5. package/dist/bin/primitive.js.map +1 -1
  6. package/dist/src/commands/admins.d.ts +2 -0
  7. package/dist/src/commands/admins.js +136 -30
  8. package/dist/src/commands/admins.js.map +1 -1
  9. package/dist/src/commands/analytics.d.ts +2 -0
  10. package/dist/src/commands/analytics.js +713 -55
  11. package/dist/src/commands/analytics.js.map +1 -1
  12. package/dist/src/commands/apps.d.ts +2 -0
  13. package/dist/src/commands/apps.js +65 -100
  14. package/dist/src/commands/apps.js.map +1 -1
  15. package/dist/src/commands/auth-sessions.d.ts +7 -0
  16. package/dist/src/commands/auth-sessions.js +144 -0
  17. package/dist/src/commands/auth-sessions.js.map +1 -0
  18. package/dist/src/commands/auth.d.ts +2 -0
  19. package/dist/src/commands/auth.js +238 -108
  20. package/dist/src/commands/auth.js.map +1 -1
  21. package/dist/src/commands/blob-buckets.d.ts +2 -0
  22. package/dist/src/commands/blob-buckets.js +331 -0
  23. package/dist/src/commands/blob-buckets.js.map +1 -0
  24. package/dist/src/commands/catalog.d.ts +2 -0
  25. package/dist/src/commands/catalog.js +63 -48
  26. package/dist/src/commands/catalog.js.map +1 -1
  27. package/dist/src/commands/collection-type-configs.d.ts +2 -0
  28. package/dist/src/commands/collection-type-configs.js +85 -0
  29. package/dist/src/commands/collection-type-configs.js.map +1 -0
  30. package/dist/src/commands/collections.d.ts +2 -0
  31. package/dist/src/commands/collections.js +1282 -0
  32. package/dist/src/commands/collections.js.map +1 -0
  33. package/dist/src/commands/comparisons.d.ts +2 -0
  34. package/dist/src/commands/comparisons.js +6 -6
  35. package/dist/src/commands/comparisons.js.map +1 -1
  36. package/dist/src/commands/config.d.ts +46 -0
  37. package/dist/src/commands/config.js +465 -0
  38. package/dist/src/commands/config.js.map +1 -0
  39. package/dist/src/commands/connections.d.ts +2 -0
  40. package/dist/src/commands/connections.js +99 -0
  41. package/dist/src/commands/connections.js.map +1 -0
  42. package/dist/src/commands/cron-triggers.d.ts +2 -0
  43. package/dist/src/commands/cron-triggers.js +266 -0
  44. package/dist/src/commands/cron-triggers.js.map +1 -0
  45. package/dist/src/commands/database-type-configs.d.ts +2 -0
  46. package/dist/src/commands/database-type-configs.js +164 -0
  47. package/dist/src/commands/database-type-configs.js.map +1 -0
  48. package/dist/src/commands/database-types.d.ts +2 -0
  49. package/dist/src/commands/database-types.js +471 -0
  50. package/dist/src/commands/database-types.js.map +1 -0
  51. package/dist/src/commands/databases.d.ts +65 -0
  52. package/dist/src/commands/databases.js +1887 -243
  53. package/dist/src/commands/databases.js.map +1 -1
  54. package/dist/src/commands/documents.d.ts +60 -0
  55. package/dist/src/commands/documents.js +2888 -22
  56. package/dist/src/commands/documents.js.map +1 -1
  57. package/dist/src/commands/email-templates.d.ts +2 -0
  58. package/dist/src/commands/email-templates.js +175 -0
  59. package/dist/src/commands/email-templates.js.map +1 -0
  60. package/dist/src/commands/env.d.ts +23 -0
  61. package/dist/src/commands/env.js +395 -0
  62. package/dist/src/commands/env.js.map +1 -0
  63. package/dist/src/commands/feature-flags.d.ts +14 -0
  64. package/dist/src/commands/feature-flags.js +117 -0
  65. package/dist/src/commands/feature-flags.js.map +1 -0
  66. package/dist/src/commands/functions.d.ts +20 -0
  67. package/dist/src/commands/functions.js +1630 -0
  68. package/dist/src/commands/functions.js.map +1 -0
  69. package/dist/src/commands/group-type-configs.d.ts +2 -0
  70. package/dist/src/commands/group-type-configs.js +87 -0
  71. package/dist/src/commands/group-type-configs.js.map +1 -0
  72. package/dist/src/commands/groups.d.ts +2 -0
  73. package/dist/src/commands/groups.js +65 -113
  74. package/dist/src/commands/groups.js.map +1 -1
  75. package/dist/src/commands/guides.d.ts +223 -0
  76. package/dist/src/commands/guides.js +627 -69
  77. package/dist/src/commands/guides.js.map +1 -1
  78. package/dist/src/commands/init.d.ts +37 -0
  79. package/dist/src/commands/init.js +1693 -208
  80. package/dist/src/commands/init.js.map +1 -1
  81. package/dist/src/commands/integrations.d.ts +2 -0
  82. package/dist/src/commands/integrations.js +428 -187
  83. package/dist/src/commands/integrations.js.map +1 -1
  84. package/dist/src/commands/llm.d.ts +2 -0
  85. package/dist/src/commands/llm.js +4 -2
  86. package/dist/src/commands/llm.js.map +1 -1
  87. package/dist/src/commands/locks.d.ts +8 -0
  88. package/dist/src/commands/locks.js +175 -0
  89. package/dist/src/commands/locks.js.map +1 -0
  90. package/dist/src/commands/metadata-category-configs.d.ts +12 -0
  91. package/dist/src/commands/metadata-category-configs.js +113 -0
  92. package/dist/src/commands/metadata-category-configs.js.map +1 -0
  93. package/dist/src/commands/metadata.d.ts +2 -0
  94. package/dist/src/commands/metadata.js +288 -0
  95. package/dist/src/commands/metadata.js.map +1 -0
  96. package/dist/src/commands/prompts.d.ts +2 -0
  97. package/dist/src/commands/prompts.js +322 -634
  98. package/dist/src/commands/prompts.js.map +1 -1
  99. package/dist/src/commands/rule-sets.d.ts +3 -0
  100. package/dist/src/commands/rule-sets.js +139 -148
  101. package/dist/src/commands/rule-sets.js.map +1 -1
  102. package/dist/src/commands/scripts.d.ts +30 -0
  103. package/dist/src/commands/scripts.js +688 -0
  104. package/dist/src/commands/scripts.js.map +1 -0
  105. package/dist/src/commands/secrets.d.ts +2 -0
  106. package/dist/src/commands/secrets.js +109 -0
  107. package/dist/src/commands/secrets.js.map +1 -0
  108. package/dist/src/commands/sessions.d.ts +2 -0
  109. package/dist/src/commands/sessions.js +76 -0
  110. package/dist/src/commands/sessions.js.map +1 -0
  111. package/dist/src/commands/skill.d.ts +2 -0
  112. package/dist/src/commands/skill.js +29 -0
  113. package/dist/src/commands/skill.js.map +1 -0
  114. package/dist/src/commands/sync-app-settings.d.ts +158 -0
  115. package/dist/src/commands/sync-app-settings.js +328 -0
  116. package/dist/src/commands/sync-app-settings.js.map +1 -0
  117. package/dist/src/commands/sync.d.ts +2670 -0
  118. package/dist/src/commands/sync.js +17144 -834
  119. package/dist/src/commands/sync.js.map +1 -1
  120. package/dist/src/commands/tokens.d.ts +2 -0
  121. package/dist/src/commands/tokens.js +132 -22
  122. package/dist/src/commands/tokens.js.map +1 -1
  123. package/dist/src/commands/users.d.ts +2 -0
  124. package/dist/src/commands/users.js +542 -24
  125. package/dist/src/commands/users.js.map +1 -1
  126. package/dist/src/commands/vars.d.ts +8 -0
  127. package/dist/src/commands/vars.js +97 -0
  128. package/dist/src/commands/vars.js.map +1 -0
  129. package/dist/src/commands/waitlist.d.ts +2 -0
  130. package/dist/src/commands/waitlist.js +12 -11
  131. package/dist/src/commands/waitlist.js.map +1 -1
  132. package/dist/src/commands/webhooks.d.ts +31 -0
  133. package/dist/src/commands/webhooks.js +633 -0
  134. package/dist/src/commands/webhooks.js.map +1 -0
  135. package/dist/src/commands/workflows.d.ts +88 -0
  136. package/dist/src/commands/workflows.js +1568 -742
  137. package/dist/src/commands/workflows.js.map +1 -1
  138. package/dist/src/lib/access-rule-display.d.ts +21 -0
  139. package/dist/src/lib/access-rule-display.js +34 -0
  140. package/dist/src/lib/access-rule-display.js.map +1 -0
  141. package/dist/src/lib/api-client.d.ts +2550 -0
  142. package/dist/src/lib/api-client.js +2503 -160
  143. package/dist/src/lib/api-client.js.map +1 -1
  144. package/dist/src/lib/app-settings-descriptor.d.ts +263 -0
  145. package/dist/src/lib/app-settings-descriptor.js +583 -0
  146. package/dist/src/lib/app-settings-descriptor.js.map +1 -0
  147. package/dist/src/lib/auth-flow.d.ts +8 -0
  148. package/dist/src/lib/batch.d.ts +26 -0
  149. package/dist/src/lib/batch.js +32 -0
  150. package/dist/src/lib/batch.js.map +1 -0
  151. package/dist/src/lib/block-layout.d.ts +160 -0
  152. package/dist/src/lib/block-layout.js +451 -0
  153. package/dist/src/lib/block-layout.js.map +1 -0
  154. package/dist/src/lib/block-selector.d.ts +58 -0
  155. package/dist/src/lib/block-selector.js +92 -0
  156. package/dist/src/lib/block-selector.js.map +1 -0
  157. package/dist/src/lib/canonical-json.d.ts +12 -0
  158. package/dist/src/lib/canonical-json.js +35 -0
  159. package/dist/src/lib/canonical-json.js.map +1 -0
  160. package/dist/src/lib/channel.d.ts +30 -0
  161. package/dist/src/lib/channel.js +68 -0
  162. package/dist/src/lib/channel.js.map +1 -0
  163. package/dist/src/lib/cli-manifest.d.ts +68 -0
  164. package/dist/src/lib/cli-manifest.js +71 -0
  165. package/dist/src/lib/cli-manifest.js.map +1 -0
  166. package/dist/src/lib/codegen-shared/generatedFiles.d.ts +101 -0
  167. package/dist/src/lib/codegen-shared/generatedFiles.js +191 -0
  168. package/dist/src/lib/codegen-shared/generatedFiles.js.map +1 -0
  169. package/dist/src/lib/codegen-shared/prettierStable.d.ts +262 -0
  170. package/dist/src/lib/codegen-shared/prettierStable.js +610 -0
  171. package/dist/src/lib/codegen-shared/prettierStable.js.map +1 -0
  172. package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.d.ts +38 -0
  173. package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.js +46 -0
  174. package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.js.map +1 -0
  175. package/dist/src/lib/collection-export.d.ts +184 -0
  176. package/dist/src/lib/collection-export.js +252 -0
  177. package/dist/src/lib/collection-export.js.map +1 -0
  178. package/dist/src/lib/config-json-field.d.ts +28 -0
  179. package/dist/src/lib/config-json-field.js +56 -0
  180. package/dist/src/lib/config-json-field.js.map +1 -0
  181. package/dist/src/lib/config-object-descriptor.d.ts +127 -0
  182. package/dist/src/lib/config-object-descriptor.js +740 -0
  183. package/dist/src/lib/config-object-descriptor.js.map +1 -0
  184. package/dist/src/lib/config-payload.d.ts +92 -0
  185. package/dist/src/lib/config-payload.js +161 -0
  186. package/dist/src/lib/config-payload.js.map +1 -0
  187. package/dist/src/lib/config-surface.d.ts +141 -0
  188. package/dist/src/lib/config-surface.js +368 -0
  189. package/dist/src/lib/config-surface.js.map +1 -0
  190. package/dist/src/lib/config-toml.d.ts +10 -0
  191. package/dist/src/lib/config-toml.js +42 -0
  192. package/dist/src/lib/config-toml.js.map +1 -0
  193. package/dist/src/lib/config.d.ts +71 -0
  194. package/dist/src/lib/config.js +71 -68
  195. package/dist/src/lib/config.js.map +1 -1
  196. package/dist/src/lib/confirm-prompt.d.ts +83 -0
  197. package/dist/src/lib/confirm-prompt.js +110 -0
  198. package/dist/src/lib/confirm-prompt.js.map +1 -0
  199. package/dist/src/lib/constants.d.ts +11 -0
  200. package/dist/src/lib/constants.js +12 -0
  201. package/dist/src/lib/constants.js.map +1 -0
  202. package/dist/src/lib/crash-handlers.d.ts +20 -0
  203. package/dist/src/lib/crash-handlers.js +49 -0
  204. package/dist/src/lib/crash-handlers.js.map +1 -0
  205. package/dist/src/lib/credentials-store.d.ts +104 -0
  206. package/dist/src/lib/credentials-store.js +336 -0
  207. package/dist/src/lib/credentials-store.js.map +1 -0
  208. package/dist/src/lib/csv.d.ts +47 -0
  209. package/dist/src/lib/csv.js +172 -0
  210. package/dist/src/lib/csv.js.map +1 -0
  211. package/dist/src/lib/data-input.d.ts +23 -0
  212. package/dist/src/lib/data-input.js +50 -0
  213. package/dist/src/lib/data-input.js.map +1 -0
  214. package/dist/src/lib/db-codegen/dbFingerprint.d.ts +10 -0
  215. package/dist/src/lib/db-codegen/dbFingerprint.js +17 -0
  216. package/dist/src/lib/db-codegen/dbFingerprint.js.map +1 -0
  217. package/dist/src/lib/db-codegen/dbGenerator.d.ts +67 -0
  218. package/dist/src/lib/db-codegen/dbGenerator.js +170 -0
  219. package/dist/src/lib/db-codegen/dbGenerator.js.map +1 -0
  220. package/dist/src/lib/db-codegen/dbNaming.d.ts +87 -0
  221. package/dist/src/lib/db-codegen/dbNaming.js +180 -0
  222. package/dist/src/lib/db-codegen/dbNaming.js.map +1 -0
  223. package/dist/src/lib/db-codegen/dbTemplates.d.ts +272 -0
  224. package/dist/src/lib/db-codegen/dbTemplates.js +480 -0
  225. package/dist/src/lib/db-codegen/dbTemplates.js.map +1 -0
  226. package/dist/src/lib/db-codegen/dbTsTypes.d.ts +73 -0
  227. package/dist/src/lib/db-codegen/dbTsTypes.js +139 -0
  228. package/dist/src/lib/db-codegen/dbTsTypes.js.map +1 -0
  229. package/dist/src/lib/db-codegen/dbTypeIR.d.ts +146 -0
  230. package/dist/src/lib/db-codegen/dbTypeIR.js +525 -0
  231. package/dist/src/lib/db-codegen/dbTypeIR.js.map +1 -0
  232. package/dist/src/lib/db-codegen/generated-operation-def-descriptor.d.ts +112 -0
  233. package/dist/src/lib/db-codegen/generated-operation-def-descriptor.js +211 -0
  234. package/dist/src/lib/db-codegen/generated-operation-def-descriptor.js.map +1 -0
  235. package/dist/src/lib/deprecation.d.ts +22 -0
  236. package/dist/src/lib/deprecation.js +43 -0
  237. package/dist/src/lib/deprecation.js.map +1 -0
  238. package/dist/src/lib/document-export-permissions.d.ts +30 -0
  239. package/dist/src/lib/document-export-permissions.js +54 -0
  240. package/dist/src/lib/document-export-permissions.js.map +1 -0
  241. package/dist/src/lib/document-ingest-artifact.d.ts +120 -0
  242. package/dist/src/lib/document-ingest-artifact.js +505 -0
  243. package/dist/src/lib/document-ingest-artifact.js.map +1 -0
  244. package/dist/src/lib/document-ingest-input.d.ts +51 -0
  245. package/dist/src/lib/document-ingest-input.js +132 -0
  246. package/dist/src/lib/document-ingest-input.js.map +1 -0
  247. package/dist/src/lib/document-ingest-rows.d.ts +137 -0
  248. package/dist/src/lib/document-ingest-rows.js +181 -0
  249. package/dist/src/lib/document-ingest-rows.js.map +1 -0
  250. package/dist/src/lib/document-ingest.d.ts +101 -0
  251. package/dist/src/lib/document-ingest.js +384 -0
  252. package/dist/src/lib/document-ingest.js.map +1 -0
  253. package/dist/src/lib/env-resolver-core.d.ts +258 -0
  254. package/dist/src/lib/env-resolver-core.js +447 -0
  255. package/dist/src/lib/env-resolver-core.js.map +1 -0
  256. package/dist/src/lib/env-resolver.d.ts +99 -0
  257. package/dist/src/lib/env-resolver.js +153 -0
  258. package/dist/src/lib/env-resolver.js.map +1 -0
  259. package/dist/src/lib/fetch.d.ts +5 -0
  260. package/dist/src/lib/function-bundle.d.ts +147 -0
  261. package/dist/src/lib/function-bundle.js +341 -0
  262. package/dist/src/lib/function-bundle.js.map +1 -0
  263. package/dist/src/lib/function-collect.d.ts +123 -0
  264. package/dist/src/lib/function-collect.js +610 -0
  265. package/dist/src/lib/function-collect.js.map +1 -0
  266. package/dist/src/lib/function-db-types.d.ts +202 -0
  267. package/dist/src/lib/function-db-types.js +870 -0
  268. package/dist/src/lib/function-db-types.js.map +1 -0
  269. package/dist/src/lib/function-document-types.d.ts +144 -0
  270. package/dist/src/lib/function-document-types.js +370 -0
  271. package/dist/src/lib/function-document-types.js.map +1 -0
  272. package/dist/src/lib/function-grants-preflight.d.ts +64 -0
  273. package/dist/src/lib/function-grants-preflight.js +105 -0
  274. package/dist/src/lib/function-grants-preflight.js.map +1 -0
  275. package/dist/src/lib/function-log-lines.d.ts +76 -0
  276. package/dist/src/lib/function-log-lines.js +160 -0
  277. package/dist/src/lib/function-log-lines.js.map +1 -0
  278. package/dist/src/lib/function-log-row.d.ts +29 -0
  279. package/dist/src/lib/function-log-row.js +73 -0
  280. package/dist/src/lib/function-log-row.js.map +1 -0
  281. package/dist/src/lib/function-log-tail.d.ts +132 -0
  282. package/dist/src/lib/function-log-tail.js +262 -0
  283. package/dist/src/lib/function-log-tail.js.map +1 -0
  284. package/dist/src/lib/function-run.d.ts +289 -0
  285. package/dist/src/lib/function-run.js +389 -0
  286. package/dist/src/lib/function-run.js.map +1 -0
  287. package/dist/src/lib/function-schema-codegen.d.ts +143 -0
  288. package/dist/src/lib/function-schema-codegen.js +420 -0
  289. package/dist/src/lib/function-schema-codegen.js.map +1 -0
  290. package/dist/src/lib/function-sync.d.ts +459 -0
  291. package/dist/src/lib/function-sync.js +1258 -0
  292. package/dist/src/lib/function-sync.js.map +1 -0
  293. package/dist/src/lib/function-trigger-listing.d.ts +27 -0
  294. package/dist/src/lib/function-trigger-listing.js +70 -0
  295. package/dist/src/lib/function-trigger-listing.js.map +1 -0
  296. package/dist/src/lib/function-typecheck.d.ts +86 -0
  297. package/dist/src/lib/function-typecheck.js +370 -0
  298. package/dist/src/lib/function-typecheck.js.map +1 -0
  299. package/dist/src/lib/function-versions.d.ts +122 -0
  300. package/dist/src/lib/function-versions.js +182 -0
  301. package/dist/src/lib/function-versions.js.map +1 -0
  302. package/dist/src/lib/generated-allowlist.d.ts +28 -0
  303. package/dist/src/lib/generated-allowlist.js +281 -0
  304. package/dist/src/lib/generated-allowlist.js.map +1 -0
  305. package/dist/src/lib/generated-config-surfaces.d.ts +2936 -0
  306. package/dist/src/lib/generated-config-surfaces.js +10569 -0
  307. package/dist/src/lib/generated-config-surfaces.js.map +1 -0
  308. package/dist/src/lib/generated-sdk-types.d.ts +12 -0
  309. package/dist/src/lib/generated-sdk-types.js +13 -0
  310. package/dist/src/lib/generated-sdk-types.js.map +1 -0
  311. package/dist/src/lib/generated-template-lint.d.ts +212 -0
  312. package/dist/src/lib/generated-template-lint.js +624 -0
  313. package/dist/src/lib/generated-template-lint.js.map +1 -0
  314. package/dist/src/lib/init-adopt.d.ts +16 -0
  315. package/dist/src/lib/init-adopt.js +34 -0
  316. package/dist/src/lib/init-adopt.js.map +1 -0
  317. package/dist/src/lib/init-assets.d.ts +39 -0
  318. package/dist/src/lib/init-assets.js +97 -0
  319. package/dist/src/lib/init-assets.js.map +1 -0
  320. package/dist/src/lib/init-client-platforms.d.ts +14 -0
  321. package/dist/src/lib/init-client-platforms.js +71 -0
  322. package/dist/src/lib/init-client-platforms.js.map +1 -0
  323. package/dist/src/lib/init-config.d.ts +98 -0
  324. package/dist/src/lib/init-config.js +186 -0
  325. package/dist/src/lib/init-config.js.map +1 -0
  326. package/dist/src/lib/init-email-redirect-uris.d.ts +37 -0
  327. package/dist/src/lib/init-email-redirect-uris.js +46 -0
  328. package/dist/src/lib/init-email-redirect-uris.js.map +1 -0
  329. package/dist/src/lib/init-ios-links.d.ts +91 -0
  330. package/dist/src/lib/init-ios-links.js +219 -0
  331. package/dist/src/lib/init-ios-links.js.map +1 -0
  332. package/dist/src/lib/init-plan.d.ts +80 -0
  333. package/dist/src/lib/init-plan.js +95 -0
  334. package/dist/src/lib/init-plan.js.map +1 -0
  335. package/dist/src/lib/init-production-env.d.ts +48 -0
  336. package/dist/src/lib/init-production-env.js +59 -0
  337. package/dist/src/lib/init-production-env.js.map +1 -0
  338. package/dist/src/lib/init-schema.d.ts +74 -0
  339. package/dist/src/lib/init-schema.js +358 -0
  340. package/dist/src/lib/init-schema.js.map +1 -0
  341. package/dist/src/lib/init-xcode.d.ts +34 -0
  342. package/dist/src/lib/init-xcode.js +138 -0
  343. package/dist/src/lib/init-xcode.js.map +1 -0
  344. package/dist/src/lib/integration-request-config.d.ts +30 -0
  345. package/dist/src/lib/integration-request-config.js +145 -0
  346. package/dist/src/lib/integration-request-config.js.map +1 -0
  347. package/dist/src/lib/integration-selector.d.ts +42 -0
  348. package/dist/src/lib/integration-selector.js +46 -0
  349. package/dist/src/lib/integration-selector.js.map +1 -0
  350. package/dist/src/lib/ios-app-id.d.ts +34 -0
  351. package/dist/src/lib/ios-app-id.js +69 -0
  352. package/dist/src/lib/ios-app-id.js.map +1 -0
  353. package/dist/src/lib/list-options.d.ts +68 -0
  354. package/dist/src/lib/list-options.js +89 -0
  355. package/dist/src/lib/list-options.js.map +1 -0
  356. package/dist/src/lib/local-state.d.ts +55 -0
  357. package/dist/src/lib/local-state.js +167 -0
  358. package/dist/src/lib/local-state.js.map +1 -0
  359. package/dist/src/lib/local-test-cases.d.ts +63 -0
  360. package/dist/src/lib/local-test-cases.js +136 -0
  361. package/dist/src/lib/local-test-cases.js.map +1 -0
  362. package/dist/src/lib/log-inspection.d.ts +715 -0
  363. package/dist/src/lib/log-inspection.js +816 -0
  364. package/dist/src/lib/log-inspection.js.map +1 -0
  365. package/dist/src/lib/logout-admin-session.d.ts +33 -0
  366. package/dist/src/lib/logout-admin-session.js +70 -0
  367. package/dist/src/lib/logout-admin-session.js.map +1 -0
  368. package/dist/src/lib/migration-nag.d.ts +49 -0
  369. package/dist/src/lib/migration-nag.js +163 -0
  370. package/dist/src/lib/migration-nag.js.map +1 -0
  371. package/dist/src/lib/object-status-filter.d.ts +22 -0
  372. package/dist/src/lib/object-status-filter.js +45 -0
  373. package/dist/src/lib/object-status-filter.js.map +1 -0
  374. package/dist/src/lib/output.d.ts +124 -0
  375. package/dist/src/lib/output.js +219 -8
  376. package/dist/src/lib/output.js.map +1 -1
  377. package/dist/src/lib/package-manager.d.ts +140 -0
  378. package/dist/src/lib/package-manager.js +305 -0
  379. package/dist/src/lib/package-manager.js.map +1 -0
  380. package/dist/src/lib/paginate.d.ts +98 -0
  381. package/dist/src/lib/paginate.js +112 -0
  382. package/dist/src/lib/paginate.js.map +1 -0
  383. package/dist/src/lib/platform-owned.d.ts +63 -0
  384. package/dist/src/lib/platform-owned.js +85 -0
  385. package/dist/src/lib/platform-owned.js.map +1 -0
  386. package/dist/src/lib/project-config.d.ts +122 -0
  387. package/dist/src/lib/project-config.js +244 -0
  388. package/dist/src/lib/project-config.js.map +1 -0
  389. package/dist/src/lib/prompt-cost-format.d.ts +11 -0
  390. package/dist/src/lib/prompt-cost-format.js +41 -0
  391. package/dist/src/lib/prompt-cost-format.js.map +1 -0
  392. package/dist/src/lib/prompt-schema-codegen.d.ts +147 -0
  393. package/dist/src/lib/prompt-schema-codegen.js +462 -0
  394. package/dist/src/lib/prompt-schema-codegen.js.map +1 -0
  395. package/dist/src/lib/query-operators.d.ts +43 -0
  396. package/dist/src/lib/query-operators.js +80 -0
  397. package/dist/src/lib/query-operators.js.map +1 -0
  398. package/dist/src/lib/record-filter.d.ts +18 -0
  399. package/dist/src/lib/record-filter.js +55 -0
  400. package/dist/src/lib/record-filter.js.map +1 -0
  401. package/dist/src/lib/refresh-admin-credentials.d.ts +73 -0
  402. package/dist/src/lib/refresh-admin-credentials.js +123 -0
  403. package/dist/src/lib/refresh-admin-credentials.js.map +1 -0
  404. package/dist/src/lib/resolve-init-dev-port.d.ts +56 -0
  405. package/dist/src/lib/resolve-init-dev-port.js +55 -0
  406. package/dist/src/lib/resolve-init-dev-port.js.map +1 -0
  407. package/dist/src/lib/resolve-init-server.d.ts +64 -0
  408. package/dist/src/lib/resolve-init-server.js +77 -0
  409. package/dist/src/lib/resolve-init-server.js.map +1 -0
  410. package/dist/src/lib/resolve-owner.d.ts +19 -0
  411. package/dist/src/lib/resolve-owner.js +20 -0
  412. package/dist/src/lib/resolve-owner.js.map +1 -0
  413. package/dist/src/lib/resolve-platform.d.ts +74 -0
  414. package/dist/src/lib/resolve-platform.js +105 -0
  415. package/dist/src/lib/resolve-platform.js.map +1 -0
  416. package/dist/src/lib/run-status.d.ts +19 -0
  417. package/dist/src/lib/run-status.generated.d.ts +39 -0
  418. package/dist/src/lib/run-status.generated.js +66 -0
  419. package/dist/src/lib/run-status.generated.js.map +1 -0
  420. package/dist/src/lib/run-status.js +19 -0
  421. package/dist/src/lib/run-status.js.map +1 -0
  422. package/dist/src/lib/server-text-normalization.d.ts +51 -0
  423. package/dist/src/lib/server-text-normalization.js +90 -0
  424. package/dist/src/lib/server-text-normalization.js.map +1 -0
  425. package/dist/src/lib/server-url.d.ts +22 -0
  426. package/dist/src/lib/server-url.js +33 -0
  427. package/dist/src/lib/server-url.js.map +1 -0
  428. package/dist/src/lib/signing-secret-status.d.ts +81 -0
  429. package/dist/src/lib/signing-secret-status.js +116 -0
  430. package/dist/src/lib/signing-secret-status.js.map +1 -0
  431. package/dist/src/lib/skill-installer.d.ts +71 -0
  432. package/dist/src/lib/skill-installer.js +441 -0
  433. package/dist/src/lib/skill-installer.js.map +1 -0
  434. package/dist/src/lib/snapshot-audit-source.d.ts +45 -0
  435. package/dist/src/lib/snapshot-audit-source.js +58 -0
  436. package/dist/src/lib/snapshot-audit-source.js.map +1 -0
  437. package/dist/src/lib/snapshot-audit-store.d.ts +52 -0
  438. package/dist/src/lib/snapshot-audit-store.js +196 -0
  439. package/dist/src/lib/snapshot-audit-store.js.map +1 -0
  440. package/dist/src/lib/snapshot-audit.d.ts +207 -0
  441. package/dist/src/lib/snapshot-audit.js +431 -0
  442. package/dist/src/lib/snapshot-audit.js.map +1 -0
  443. package/dist/src/lib/snapshot-build-rows.d.ts +60 -0
  444. package/dist/src/lib/snapshot-build-rows.js +87 -0
  445. package/dist/src/lib/snapshot-build-rows.js.map +1 -0
  446. package/dist/src/lib/snapshot-build.d.ts +50 -0
  447. package/dist/src/lib/snapshot-build.js +111 -0
  448. package/dist/src/lib/snapshot-build.js.map +1 -0
  449. package/dist/src/lib/snapshot-manifest-layout.d.ts +61 -0
  450. package/dist/src/lib/snapshot-manifest-layout.js +70 -0
  451. package/dist/src/lib/snapshot-manifest-layout.js.map +1 -0
  452. package/dist/src/lib/snapshots.d.ts +98 -0
  453. package/dist/src/lib/snapshots.js +294 -0
  454. package/dist/src/lib/snapshots.js.map +1 -0
  455. package/dist/src/lib/step-run-table.d.ts +43 -0
  456. package/dist/src/lib/step-run-table.js +129 -0
  457. package/dist/src/lib/step-run-table.js.map +1 -0
  458. package/dist/src/lib/storage-pending-retry.d.ts +26 -0
  459. package/dist/src/lib/storage-pending-retry.js +42 -0
  460. package/dist/src/lib/storage-pending-retry.js.map +1 -0
  461. package/dist/src/lib/swift-codegen/agentGenerator.d.ts +42 -0
  462. package/dist/src/lib/swift-codegen/agentGenerator.js +118 -0
  463. package/dist/src/lib/swift-codegen/agentGenerator.js.map +1 -0
  464. package/dist/src/lib/swift-codegen/banners.d.ts +24 -0
  465. package/dist/src/lib/swift-codegen/banners.js +25 -0
  466. package/dist/src/lib/swift-codegen/banners.js.map +1 -0
  467. package/dist/src/lib/swift-codegen/dbGenerator.d.ts +113 -0
  468. package/dist/src/lib/swift-codegen/dbGenerator.js +926 -0
  469. package/dist/src/lib/swift-codegen/dbGenerator.js.map +1 -0
  470. package/dist/src/lib/swift-codegen/dbSwiftTypes.d.ts +42 -0
  471. package/dist/src/lib/swift-codegen/dbSwiftTypes.js +100 -0
  472. package/dist/src/lib/swift-codegen/dbSwiftTypes.js.map +1 -0
  473. package/dist/src/lib/swift-codegen/functionGenerator.d.ts +139 -0
  474. package/dist/src/lib/swift-codegen/functionGenerator.js +462 -0
  475. package/dist/src/lib/swift-codegen/functionGenerator.js.map +1 -0
  476. package/dist/src/lib/swift-codegen/generator.d.ts +100 -0
  477. package/dist/src/lib/swift-codegen/generator.js +457 -0
  478. package/dist/src/lib/swift-codegen/generator.js.map +1 -0
  479. package/dist/src/lib/swift-codegen/schemaToSwift.d.ts +87 -0
  480. package/dist/src/lib/swift-codegen/schemaToSwift.js +661 -0
  481. package/dist/src/lib/swift-codegen/schemaToSwift.js.map +1 -0
  482. package/dist/src/lib/swift-codegen/siblingSymbols.d.ts +94 -0
  483. package/dist/src/lib/swift-codegen/siblingSymbols.js +155 -0
  484. package/dist/src/lib/swift-codegen/siblingSymbols.js.map +1 -0
  485. package/dist/src/lib/swift-codegen/swiftNaming.d.ts +85 -0
  486. package/dist/src/lib/swift-codegen/swiftNaming.js +198 -0
  487. package/dist/src/lib/swift-codegen/swiftNaming.js.map +1 -0
  488. package/dist/src/lib/sync-dir-selector.d.ts +21 -0
  489. package/dist/src/lib/sync-dir-selector.js +30 -0
  490. package/dist/src/lib/sync-dir-selector.js.map +1 -0
  491. package/dist/src/lib/sync-paths.d.ts +128 -0
  492. package/dist/src/lib/sync-paths.js +195 -0
  493. package/dist/src/lib/sync-paths.js.map +1 -0
  494. package/dist/src/lib/sync-resource-types.d.ts +563 -0
  495. package/dist/src/lib/sync-resource-types.js +1073 -0
  496. package/dist/src/lib/sync-resource-types.js.map +1 -0
  497. package/dist/src/lib/sync-selectors.d.ts +138 -0
  498. package/dist/src/lib/sync-selectors.js +289 -0
  499. package/dist/src/lib/sync-selectors.js.map +1 -0
  500. package/dist/src/lib/template.d.ts +170 -0
  501. package/dist/src/lib/template.js +484 -68
  502. package/dist/src/lib/template.js.map +1 -1
  503. package/dist/src/lib/test-case-file-names.d.ts +40 -0
  504. package/dist/src/lib/test-case-file-names.js +91 -0
  505. package/dist/src/lib/test-case-file-names.js.map +1 -0
  506. package/dist/src/lib/test-case-keys.d.ts +29 -0
  507. package/dist/src/lib/test-case-keys.js +55 -0
  508. package/dist/src/lib/test-case-keys.js.map +1 -0
  509. package/dist/src/lib/test-case-variables.d.ts +29 -0
  510. package/dist/src/lib/test-case-variables.js +71 -0
  511. package/dist/src/lib/test-case-variables.js.map +1 -0
  512. package/dist/src/lib/token-inject.d.ts +56 -0
  513. package/dist/src/lib/token-inject.js +204 -0
  514. package/dist/src/lib/token-inject.js.map +1 -0
  515. package/dist/src/lib/toml-database-config.d.ts +123 -0
  516. package/dist/src/lib/toml-database-config.js +544 -0
  517. package/dist/src/lib/toml-database-config.js.map +1 -0
  518. package/dist/src/lib/toml-metadata-config.d.ts +151 -0
  519. package/dist/src/lib/toml-metadata-config.js +476 -0
  520. package/dist/src/lib/toml-metadata-config.js.map +1 -0
  521. package/dist/src/lib/toml-native-form.d.ts +46 -0
  522. package/dist/src/lib/toml-native-form.js +78 -0
  523. package/dist/src/lib/toml-native-form.js.map +1 -0
  524. package/dist/src/lib/toml-params-validator.d.ts +129 -0
  525. package/dist/src/lib/toml-params-validator.js +298 -0
  526. package/dist/src/lib/toml-params-validator.js.map +1 -0
  527. package/dist/src/lib/toml-scalar-edit.d.ts +43 -0
  528. package/dist/src/lib/toml-scalar-edit.js +283 -0
  529. package/dist/src/lib/toml-scalar-edit.js.map +1 -0
  530. package/dist/src/lib/user-selector.d.ts +24 -0
  531. package/dist/src/lib/user-selector.js +33 -0
  532. package/dist/src/lib/user-selector.js.map +1 -0
  533. package/dist/src/lib/version-check.d.ts +35 -0
  534. package/dist/src/lib/version-check.js +241 -0
  535. package/dist/src/lib/version-check.js.map +1 -0
  536. package/dist/src/lib/watch.d.ts +121 -0
  537. package/dist/src/lib/watch.js +169 -0
  538. package/dist/src/lib/watch.js.map +1 -0
  539. package/dist/src/lib/web-url.d.ts +40 -0
  540. package/dist/src/lib/web-url.js +76 -0
  541. package/dist/src/lib/web-url.js.map +1 -0
  542. package/dist/src/lib/webhook-deliver.d.ts +209 -0
  543. package/dist/src/lib/webhook-deliver.js +519 -0
  544. package/dist/src/lib/webhook-deliver.js.map +1 -0
  545. package/dist/src/lib/workflow-apply.d.ts +110 -0
  546. package/dist/src/lib/workflow-apply.js +164 -0
  547. package/dist/src/lib/workflow-apply.js.map +1 -0
  548. package/dist/src/lib/workflow-codegen/generated-schema-descriptor.d.ts +129 -0
  549. package/dist/src/lib/workflow-codegen/generated-schema-descriptor.js +269 -0
  550. package/dist/src/lib/workflow-codegen/generated-schema-descriptor.js.map +1 -0
  551. package/dist/src/lib/workflow-codegen/generator.d.ts +96 -0
  552. package/dist/src/lib/workflow-codegen/generator.js +361 -0
  553. package/dist/src/lib/workflow-codegen/generator.js.map +1 -0
  554. package/dist/src/lib/workflow-codegen/invokerIR.d.ts +94 -0
  555. package/dist/src/lib/workflow-codegen/invokerIR.js +76 -0
  556. package/dist/src/lib/workflow-codegen/invokerIR.js.map +1 -0
  557. package/dist/src/lib/workflow-codegen/naming.d.ts +33 -0
  558. package/dist/src/lib/workflow-codegen/naming.js +81 -0
  559. package/dist/src/lib/workflow-codegen/naming.js.map +1 -0
  560. package/dist/src/lib/workflow-codegen/schemaToTs.d.ts +80 -0
  561. package/dist/src/lib/workflow-codegen/schemaToTs.js +303 -0
  562. package/dist/src/lib/workflow-codegen/schemaToTs.js.map +1 -0
  563. package/dist/src/lib/workflow-config-apply.d.ts +70 -0
  564. package/dist/src/lib/workflow-config-apply.js +137 -0
  565. package/dist/src/lib/workflow-config-apply.js.map +1 -0
  566. package/dist/src/lib/workflow-config-sidecar.d.ts +63 -0
  567. package/dist/src/lib/workflow-config-sidecar.js +96 -0
  568. package/dist/src/lib/workflow-config-sidecar.js.map +1 -0
  569. package/dist/src/lib/workflow-defaults.d.ts +29 -0
  570. package/dist/src/lib/workflow-defaults.js +41 -0
  571. package/dist/src/lib/workflow-defaults.js.map +1 -0
  572. package/dist/src/lib/workflow-fragments.d.ts +64 -0
  573. package/dist/src/lib/workflow-fragments.js +342 -0
  574. package/dist/src/lib/workflow-fragments.js.map +1 -0
  575. package/dist/src/lib/workflow-include-preserve.d.ts +76 -0
  576. package/dist/src/lib/workflow-include-preserve.js +286 -0
  577. package/dist/src/lib/workflow-include-preserve.js.map +1 -0
  578. package/dist/src/lib/workflow-payload.d.ts +98 -0
  579. package/dist/src/lib/workflow-payload.js +178 -0
  580. package/dist/src/lib/workflow-payload.js.map +1 -0
  581. package/dist/src/lib/workflow-toml-validator.d.ts +211 -0
  582. package/dist/src/lib/workflow-toml-validator.js +770 -0
  583. package/dist/src/lib/workflow-toml-validator.js.map +1 -0
  584. package/dist/src/lib/workflow-usage.d.ts +196 -0
  585. package/dist/src/lib/workflow-usage.js +310 -0
  586. package/dist/src/lib/workflow-usage.js.map +1 -0
  587. package/dist/src/types/index.d.ts +591 -0
  588. package/dist/src/validators.d.ts +65 -0
  589. package/dist/src/validators.js +64 -0
  590. package/dist/src/validators.js.map +1 -0
  591. package/package.json +34 -9
@@ -0,0 +1,462 @@
1
+ /**
2
+ * `functions codegen --lang swift` — the third CLI Swift generator (#3344).
3
+ *
4
+ * The Swift counterpart of `function-schema-codegen.ts`'s TypeScript invoker,
5
+ * and the sibling of `generator.ts` (workflows) and `dbGenerator.ts`
6
+ * (database types). Reads the SAME `functions/<key>.toml` files and emits one
7
+ * `<key>.generated.swift` per function carrying:
8
+ *
9
+ * - `<Key>Input` / `<Key>Output`, rendered from the declared schemas by the
10
+ * shared `renderSwiftRootType` — the same drift-guarded descriptor the
11
+ * server validates with, so a generated Swift type can never promise a
12
+ * shape an invocation door rejects; and
13
+ * - `<Key>Function`, a typed invoker struct carrying every verb, plus a
14
+ * free-function factory `<key>(client)`.
15
+ *
16
+ * ── Nothing about the function is re-derived here ────────────────────────
17
+ *
18
+ * Key, schemas and `inputRequired` all come from `describeFunctionSchemas` —
19
+ * the IR the TypeScript invoker reads — so the two clients can never disagree
20
+ * on what a function accepts or whether its input is required. Only Swift
21
+ * naming (through the workflow emitter's helpers) and Swift rendering happen
22
+ * in this file.
23
+ *
24
+ * ── Verbs ────────────────────────────────────────────────────────────────
25
+ *
26
+ * EVERY invoker gets `invoke` plus the four task verbs (`start`, `getStatus`,
27
+ * `waitFor`, `terminate`). It did once narrow the set by mode, so that the
28
+ * wrong verb was a compile error; #3482 retired that rule by making the ROUTE
29
+ * the runtime selector, and the mismatch is a `functionModeMismatch` thrown at
30
+ * runtime again. Only the INPUT SHAPE is compile-checked here.
31
+ *
32
+ * `FUNCTION_INVOKER_VERBS_BY_MODE` below therefore no longer gates emission —
33
+ * it survives as the verb inventory the signature-parity test reads.
34
+ *
35
+ * Every parameter besides `input` mirrors the generic `FunctionsAPI` overload
36
+ * it delegates to, label, type and default alike — `meta: [String: Any]?`
37
+ * included. The goldens are app-target code, outside the client's `Any`
38
+ * budget scan, and the workflow goldens set that precedent. The tables below
39
+ * are the single source of those parameter lists, and
40
+ * `swift-codegen-function-signature-parity-3344.test.ts` ties them to the
41
+ * client's actual declarations so an option added to `FunctionsAPI` later
42
+ * cannot leave every generated invoker silently behind.
43
+ *
44
+ * ── The nullable root input ──────────────────────────────────────────────
45
+ *
46
+ * The generic overload maps a `nil` input to an OMITTED `rootInput`, which the
47
+ * server defaults to `{}` — rejected by a schema that allows only a string or
48
+ * null. So when the rendered root input type is itself Optional, the generated
49
+ * body BRANCHES: a value delegates the typed value directly (keeping
50
+ * `JSONCoding`'s exact `Int64` path), and `nil` delegates `JSONValue.null`,
51
+ * which is a non-nil `Encodable` and reaches the wire as `rootInput: null`
52
+ * through the same forwarding path a scalar root already uses. Proved live
53
+ * before this emitter was written (#3344 step 0).
54
+ */
55
+ import * as path from "path";
56
+ import { writeOrCheckGeneratedFiles, } from "../codegen-shared/generatedFiles.js";
57
+ import { fingerprintToml } from "../db-codegen/dbFingerprint.js";
58
+ import { describeFunctionSchemas, describeFunctionSchemaSet, FunctionSchemaCodegenError, } from "../function-schema-codegen.js";
59
+ import { renderSwiftRootTypeDetail, SwiftCodegenError } from "./schemaToSwift.js";
60
+ import { workflowSwiftFactoryName } from "./swiftNaming.js";
61
+ import { GENERATED_SWIFT_FILE_SUFFIX, SWIFT_BANNER_PREFIX, swiftKeyLiteral, workflowSwiftTypeBaseName, } from "./generator.js";
62
+ import { DB_SWIFT_BANNER_PREFIXES } from "./dbGenerator.js";
63
+ import { AGENT_SWIFT_BANNER_PREFIX, FUNCTION_SWIFT_BANNER_PREFIX, } from "./banners.js";
64
+ import { AGENT_SWIFT_FILE_SUFFIX, renderAgentSwiftFile, } from "./agentGenerator.js";
65
+ import { describePromptSchema, } from "../prompt-schema-codegen.js";
66
+ import { assertNoForeignGeneratorSymbolCollision, parseTopLevelSwiftSymbols, } from "./siblingSymbols.js";
67
+ export { FUNCTION_SWIFT_BANNER_PREFIX };
68
+ /** The Swift module the generated types + invoker import. */
69
+ const CLIENT_MODULE = "JsBaoClient";
70
+ const INDENT = " ";
71
+ /** Banners owned by the OTHER two Swift generators, in every spelling. */
72
+ const FOREIGN_SWIFT_BANNERS = [SWIFT_BANNER_PREFIX, ...DB_SWIFT_BANNER_PREFIXES];
73
+ const INPUT_PARAMETER = {
74
+ label: "input",
75
+ type: null,
76
+ defaultValue: null,
77
+ };
78
+ /**
79
+ * The verb tables. `invoke` is a request function's whole surface; the other
80
+ * four are a task function's.
81
+ */
82
+ export const FUNCTION_INVOKER_VERBS = {
83
+ invoke: {
84
+ verb: "invoke",
85
+ comparedAgainst: { kind: "overload", method: "invoke", dropLabels: ["functionKey"] },
86
+ parameters: [
87
+ INPUT_PARAMETER,
88
+ { label: "contextDocId", type: "String?", defaultValue: "nil" },
89
+ { label: "meta", type: "[String: Any]?", defaultValue: "nil" },
90
+ { label: "timeout", type: "TimeInterval?", defaultValue: "nil" },
91
+ ],
92
+ },
93
+ start: {
94
+ verb: "start",
95
+ comparedAgainst: { kind: "overload", method: "start", dropLabels: ["functionKey"] },
96
+ parameters: [
97
+ INPUT_PARAMETER,
98
+ { label: "runKey", type: "String?", defaultValue: "nil" },
99
+ { label: "contextDocId", type: "String?", defaultValue: "nil" },
100
+ { label: "meta", type: "[String: Any]?", defaultValue: "nil" },
101
+ ],
102
+ },
103
+ getStatus: {
104
+ verb: "getStatus",
105
+ comparedAgainst: { kind: "overload", method: "getStatus", dropLabels: [] },
106
+ parameters: [{ label: "runId", type: "String", defaultValue: null }],
107
+ },
108
+ waitFor: {
109
+ verb: "waitFor",
110
+ // `as:` is the output witness the generated method binds itself.
111
+ comparedAgainst: { kind: "overload", method: "waitFor", dropLabels: ["as"] },
112
+ parameters: [
113
+ { label: "runId", type: "String", defaultValue: null },
114
+ { label: "options", type: "FunctionWaitOptions?", defaultValue: "nil" },
115
+ ],
116
+ },
117
+ terminate: {
118
+ verb: "terminate",
119
+ comparedAgainst: { kind: "ref", type: "FunctionRunRef", dropLabels: ["functionKey"] },
120
+ parameters: [
121
+ { label: "runKey", type: "String", defaultValue: null },
122
+ { label: "contextDocId", type: "String?", defaultValue: "nil" },
123
+ ],
124
+ },
125
+ };
126
+ /**
127
+ * The verb inventory, grouped by the mode that once gated it.
128
+ *
129
+ * #3454 made `any` the default, exposing BOTH sets because the runner is
130
+ * chosen at call time; each lock then exposed only its own. #3482 retired the
131
+ * gating entirely — the ROUTE is the runtime selector, and every invoker is
132
+ * emitted with every verb (see the header, and the emission site). Nothing
133
+ * reads this to DECIDE what to emit any more; the signature-parity test reads
134
+ * it as the list of verbs whose parameters must match `FunctionsAPI`.
135
+ */
136
+ export const FUNCTION_INVOKER_VERBS_BY_MODE = {
137
+ request: ["invoke"],
138
+ task: ["start", "getStatus", "waitFor", "terminate"],
139
+ any: ["invoke", "start", "getStatus", "waitFor", "terminate"],
140
+ };
141
+ function parseFunction(source) {
142
+ const ir = describeFunctionSchemas(source);
143
+ const base = workflowSwiftTypeBaseName(ir.key);
144
+ const inputTypeName = `${base}Input`;
145
+ const outputTypeName = `${base}Output`;
146
+ // The banner and every schema failure name the FILE, which an authored
147
+ // `[function] key` can spell differently from the key (E1).
148
+ const sourceFile = ir.fileLabel;
149
+ const input = renderSwiftRootTypeDetail(inputTypeName, ir.inputSchema, { sourceFile });
150
+ const output = renderSwiftRootTypeDetail(outputTypeName, ir.outputSchema, { sourceFile });
151
+ return {
152
+ key: ir.key,
153
+ fileLabel: ir.fileLabel,
154
+ base,
155
+ inputTypeName,
156
+ outputTypeName,
157
+ structName: `${base}Function`,
158
+ factoryName: workflowSwiftFactoryName(ir.key),
159
+ inputRequired: ir.inputRequired,
160
+ inputOptionalRoot: input.optional,
161
+ inputDecl: input.decl,
162
+ outputDecl: output.decl,
163
+ };
164
+ }
165
+ /**
166
+ * The `input:` parameter declaration. An already-Optional root type is never
167
+ * wrapped a second time (spec decision 6) — the alias carries the optionality,
168
+ * and the branching body below gives its `nil` the meaning the schema gives it.
169
+ */
170
+ function inputParameter(fn) {
171
+ if (fn.inputOptionalRoot) {
172
+ return fn.inputRequired
173
+ ? `input: ${fn.inputTypeName}`
174
+ : `input: ${fn.inputTypeName} = nil`;
175
+ }
176
+ return fn.inputRequired
177
+ ? `input: ${fn.inputTypeName}`
178
+ : `input: ${fn.inputTypeName}? = nil`;
179
+ }
180
+ /** `label: type = default` for a non-input parameter, from the verb table. */
181
+ function renderParameter(parameter) {
182
+ const withDefault = parameter.defaultValue === null ? "" : ` = ${parameter.defaultValue}`;
183
+ return `${parameter.label}: ${parameter.type}${withDefault}`;
184
+ }
185
+ /**
186
+ * The delegation body for a verb that forwards `input`. When the root input
187
+ * type is Optional the body branches so a `nil` reaches the wire as the
188
+ * explicit `rootInput: null` the declaration allows, instead of being dropped
189
+ * into the client's "no input" path (which the server turns into `{}`).
190
+ */
191
+ function renderForwardingBody(fn, indentLevel, call) {
192
+ const I = INDENT.repeat(indentLevel);
193
+ if (!fn.inputOptionalRoot)
194
+ return call("input", indentLevel);
195
+ return [
196
+ `${I}// \`${fn.inputTypeName}\` is Optional, so \`nil\` is the JSON \`null\` the`,
197
+ `${I}// declared schema allows — not "no input". Delegating \`nil\` would omit`,
198
+ `${I}// \`rootInput\`, which the server defaults to \`{}\`; \`JSONValue.null\``,
199
+ `${I}// travels as the null through the same path a scalar root uses.`,
200
+ `${I}if let input {`,
201
+ ...call("input", indentLevel + 1),
202
+ `${I}}`,
203
+ ...call("JSONValue.null", indentLevel),
204
+ ];
205
+ }
206
+ function renderInvoke(fn) {
207
+ const keyLiteral = swiftKeyLiteral(fn.key);
208
+ const table = FUNCTION_INVOKER_VERBS.invoke;
209
+ const I = INDENT;
210
+ const call = (inputExpr, level) => {
211
+ const B = INDENT.repeat(level);
212
+ const keyword = fn.inputOptionalRoot ? "return try await " : "try await ";
213
+ return [
214
+ `${B}${keyword}client.functions.invoke(`,
215
+ `${B}${INDENT}${keyLiteral},`,
216
+ `${B}${INDENT}input: ${inputExpr},`,
217
+ `${B}${INDENT}contextDocId: contextDocId,`,
218
+ `${B}${INDENT}meta: meta,`,
219
+ `${B}${INDENT}timeout: timeout`,
220
+ `${B})`,
221
+ ];
222
+ };
223
+ return [
224
+ ``,
225
+ `${I}/// Invoke the \`${fn.key}\` request function and wait for its result.`,
226
+ `${I}public func invoke(`,
227
+ `${I}${I}${inputParameter(fn)},`,
228
+ ...table.parameters
229
+ .slice(1)
230
+ .map((p, index, all) => `${I}${I}${renderParameter(p)}${index === all.length - 1 ? "" : ","}`),
231
+ `${I}) async throws -> FunctionResult<${fn.outputTypeName}> {`,
232
+ ...renderForwardingBody(fn, 2, call),
233
+ `${I}}`,
234
+ ];
235
+ }
236
+ function renderStart(fn) {
237
+ const keyLiteral = swiftKeyLiteral(fn.key);
238
+ const table = FUNCTION_INVOKER_VERBS.start;
239
+ const I = INDENT;
240
+ const call = (inputExpr, level) => {
241
+ const B = INDENT.repeat(level);
242
+ const keyword = fn.inputOptionalRoot ? "return try await " : "try await ";
243
+ return [
244
+ `${B}${keyword}client.functions.start(`,
245
+ `${B}${INDENT}${keyLiteral},`,
246
+ `${B}${INDENT}input: ${inputExpr},`,
247
+ `${B}${INDENT}runKey: runKey,`,
248
+ `${B}${INDENT}contextDocId: contextDocId,`,
249
+ `${B}${INDENT}meta: meta`,
250
+ `${B})`,
251
+ ];
252
+ };
253
+ return [
254
+ ``,
255
+ `${I}/// Start the \`${fn.key}\` task function; returns the run handle.`,
256
+ `${I}@discardableResult`,
257
+ `${I}public func start(`,
258
+ `${I}${I}${inputParameter(fn)},`,
259
+ ...table.parameters
260
+ .slice(1)
261
+ .map((p, index, all) => `${I}${I}${renderParameter(p)}${index === all.length - 1 ? "" : ","}`),
262
+ `${I}) async throws -> FunctionStartResult {`,
263
+ ...renderForwardingBody(fn, 2, call),
264
+ `${I}}`,
265
+ ];
266
+ }
267
+ function renderTaskPollers(fn) {
268
+ const I = INDENT;
269
+ const keyLiteral = swiftKeyLiteral(fn.key);
270
+ const waitFor = FUNCTION_INVOKER_VERBS.waitFor;
271
+ const terminate = FUNCTION_INVOKER_VERBS.terminate;
272
+ return [
273
+ ``,
274
+ `${I}/// A run's status, with \`output\` bound to \`${fn.outputTypeName}\`.`,
275
+ `${I}public func getStatus(${renderParameter(FUNCTION_INVOKER_VERBS.getStatus.parameters[0])}) async throws -> FunctionRunResult<${fn.outputTypeName}> {`,
276
+ `${I}${I}try await client.functions.getStatus(runId: runId)`,
277
+ `${I}}`,
278
+ ``,
279
+ `${I}/// Wait for a run to settle; \`output\` is bound to \`${fn.outputTypeName}\`.`,
280
+ `${I}public func waitFor(`,
281
+ ...waitFor.parameters.map((p, index, all) => `${I}${I}${renderParameter(p)}${index === all.length - 1 ? "" : ","}`),
282
+ `${I}) async throws -> FunctionRunResult<${fn.outputTypeName}> {`,
283
+ `${I}${I}try await client.functions.waitFor(`,
284
+ `${I}${I}${I}runId: runId,`,
285
+ `${I}${I}${I}as: ${fn.outputTypeName}.self,`,
286
+ `${I}${I}${I}options: options`,
287
+ `${I}${I})`,
288
+ `${I}}`,
289
+ ``,
290
+ `${I}/// Terminate a run; \`output\` is bound to \`${fn.outputTypeName}\` (a terminated`,
291
+ `${I}/// run can carry partial output). The function key is pinned.`,
292
+ `${I}@discardableResult`,
293
+ `${I}public func terminate(`,
294
+ ...terminate.parameters.map((p, index, all) => `${I}${I}${renderParameter(p)}${index === all.length - 1 ? "" : ","}`),
295
+ `${I}) async throws -> FunctionRunResult<${fn.outputTypeName}> {`,
296
+ `${I}${I}try await client.functions.terminate(`,
297
+ `${I}${I}${I}FunctionRunRef(`,
298
+ `${I}${I}${I}${I}functionKey: ${keyLiteral},`,
299
+ `${I}${I}${I}${I}runKey: runKey,`,
300
+ `${I}${I}${I}${I}contextDocId: contextDocId`,
301
+ `${I}${I}${I})`,
302
+ `${I}${I})`,
303
+ `${I}}`,
304
+ ];
305
+ }
306
+ /**
307
+ * The typed invoker struct + its free-function factory. Since #3482 every
308
+ * function carries BOTH verb sets: the config says nothing about how a
309
+ * function runs, and the caller picks the runtime at each call.
310
+ */
311
+ function renderInvoker(fn) {
312
+ const lines = [
313
+ `/// Typed invoker for the \`${fn.key}\` function. Binds`,
314
+ `/// \`${fn.inputTypeName}\` / \`${fn.outputTypeName}\` over the generic`,
315
+ `/// \`FunctionsAPI\` overloads. Obtain one with \`${fn.factoryName}(client)\`.`,
316
+ `public struct ${fn.structName}: Sendable {`,
317
+ `${INDENT}public let client: JsBaoClient`,
318
+ ``,
319
+ `${INDENT}public init(client: JsBaoClient) {`,
320
+ `${INDENT}${INDENT}self.client = client`,
321
+ `${INDENT}}`,
322
+ ];
323
+ // #3482 — `invoke` first, then the four task verbs, for EVERY function.
324
+ lines.push(...renderInvoke(fn));
325
+ lines.push(...renderStart(fn), ...renderTaskPollers(fn));
326
+ lines.push(`}`);
327
+ lines.push(``, `/// Typed invoker factory for the \`${fn.key}\` function.`, `public func ${fn.factoryName}(_ client: JsBaoClient) -> ${fn.structName} {`, `${INDENT}${fn.structName}(client: client)`, `}`);
328
+ return lines.join("\n");
329
+ }
330
+ /**
331
+ * Render the full `<key>.generated.swift` content for one `functions/*.toml`.
332
+ * Pure — exported so tests can assert on the string directly.
333
+ */
334
+ export function renderFunctionSwiftFile(source) {
335
+ const fn = parseFunction(source);
336
+ const fingerprint = fingerprintToml(source.tomlContent);
337
+ const banner = [
338
+ `${FUNCTION_SWIFT_BANNER_PREFIX}${fn.fileLabel.replace(/^functions\//, "")} — DO NOT EDIT.`,
339
+ "// Run `primitive functions codegen --lang swift` to regenerate.",
340
+ `// fingerprint: ${fingerprint}`,
341
+ ].join("\n");
342
+ const imports = ["import Foundation", `import ${CLIENT_MODULE}`].join("\n");
343
+ const content = [banner, imports, fn.inputDecl, fn.outputDecl, renderInvoker(fn)].join("\n\n") +
344
+ "\n";
345
+ return {
346
+ key: fn.key,
347
+ content,
348
+ // EVERY top-level declaration the file makes, read back off the rendered
349
+ // source rather than enumerated by hand (CR3344-001). The obvious four are
350
+ // `<Key>Input`/`<Key>Output`, the invoker struct and the factory — but a
351
+ // root that renders as a typealias (an array of objects, say) also declares
352
+ // its element type, `<Key>InputItem`, at module level. Enumerating the four
353
+ // left those helpers out of both the run-scoped registry and the
354
+ // cross-generator scan, so a database type or another function declaring
355
+ // the same symbol produced Swift that would not compile. This is also the
356
+ // exact parser the retained-sibling side uses, so the two halves of every
357
+ // comparison now speak one alphabet (backticks stripped included).
358
+ symbols: parseTopLevelSwiftSymbols(content),
359
+ };
360
+ }
361
+ /**
362
+ * Run Swift function codegen end-to-end. The whole `functions/` directory is
363
+ * always the input (there is no `--single` form), so the run owns its output
364
+ * directory's functions-banner files completely and sweeps the orphans.
365
+ */
366
+ export async function generateFunctionSwiftTypes(options) {
367
+ const outAbs = path.resolve(options.outputDir);
368
+ // The shared set-level IR: sorted, and two files resolving to one key
369
+ // refused naming both (E2). The TS base-name check stays on the TS side —
370
+ // the registry below is the Swift run's own, and covers the invoker struct
371
+ // and the factory the TS check knows nothing about.
372
+ const described = describeFunctionSchemaSet(options.inputs);
373
+ const symbolOwner = new Map();
374
+ const filesToWrite = new Map();
375
+ for (const { source } of described) {
376
+ const rendered = renderFunctionSwiftFile(source);
377
+ for (const symbol of rendered.symbols) {
378
+ const prior = symbolOwner.get(symbol);
379
+ if (prior !== undefined && prior !== rendered.key) {
380
+ throw new SwiftCodegenError(`swift function codegen: type-name collision — function keys ` +
381
+ `"${prior}" and "${rendered.key}" both produce Swift symbol ` +
382
+ `"${symbol}", which redeclare when all .generated.swift files ` +
383
+ `compile into one module. Rename one function key so the two differ ` +
384
+ `after Swift normalization.`, { sourceFile: `functions/${rendered.key}.toml` });
385
+ }
386
+ symbolOwner.set(symbol, rendered.key);
387
+ }
388
+ filesToWrite.set(path.join(outAbs, `${rendered.key}${GENERATED_SWIFT_FILE_SUFFIX}`), rendered.content);
389
+ }
390
+ // #3798 — the agents' files, in the same registry and the same write: a
391
+ // symbol an agent and a function both declare is refused naming both.
392
+ for (const source of options.agentInputs ?? []) {
393
+ if (!isAgentPromptSource(source))
394
+ continue;
395
+ const rendered = renderAgentSwiftFile(source);
396
+ const owner = `prompt ${rendered.key}`;
397
+ for (const symbol of rendered.symbols) {
398
+ const prior = symbolOwner.get(symbol);
399
+ if (prior !== undefined && prior !== owner) {
400
+ throw new SwiftCodegenError(`swift function codegen: type-name collision — "${prior}" and ` +
401
+ `"${owner}" both produce Swift symbol "${symbol}", which ` +
402
+ `redeclare when all .generated.swift files compile into one ` +
403
+ `module. Rename one key so the two differ after Swift normalization.`, { sourceFile: `prompts/${rendered.key}.toml` });
404
+ }
405
+ symbolOwner.set(symbol, owner);
406
+ }
407
+ filesToWrite.set(path.join(outAbs, `${rendered.key}${AGENT_SWIFT_FILE_SUFFIX}`), rendered.content);
408
+ }
409
+ // Cross-generator namespace collision (the #1857 scan, a third way round).
410
+ // A workflow- or database-owned sibling in the same directory declares its
411
+ // own top-level symbols; a full functions run does not regenerate them, so
412
+ // the two files coexist and redeclare once everything compiles into one
413
+ // module. The foreign-banner WRITE guard below is path-only and never sees
414
+ // it.
415
+ await assertNoForeignGeneratorSymbolCollision({
416
+ outputDir: outAbs,
417
+ foreignBanner: FOREIGN_SWIFT_BANNERS,
418
+ suffix: GENERATED_SWIFT_FILE_SUFFIX,
419
+ emitted: symbolOwner,
420
+ makeError: ({ symbol, owner, siblingStem }) => new SwiftCodegenError(`swift function codegen: type-name collision with another generator's ` +
421
+ `file — function key "${owner}" emits Swift symbol "${symbol}", but the ` +
422
+ `existing "${siblingStem}${GENERATED_SWIFT_FILE_SUFFIX}" (owned by the ` +
423
+ `workflow or database Swift generator) already declares a top-level ` +
424
+ `"${symbol}" in the same output directory, which redeclares when all ` +
425
+ `.generated.swift files compile into one module. Rename the function or ` +
426
+ `the "${siblingStem}" source so the two differ after Swift ` +
427
+ `normalization, or give one generator a separate -o directory.`, { sourceFile: `functions/${owner}.toml` }),
428
+ });
429
+ return await writeOrCheckGeneratedFiles({
430
+ outputDir: outAbs,
431
+ filesToWrite,
432
+ check: options.check,
433
+ fullOwnership: true,
434
+ generatedSuffix: GENERATED_SWIFT_FILE_SUFFIX,
435
+ // #3798 — the run owns the agents' files as well as the invokers.
436
+ ownershipBanner: [FUNCTION_SWIFT_BANNER_PREFIX, AGENT_SWIFT_BANNER_PREFIX],
437
+ foreignOwnershipBanners: FOREIGN_SWIFT_BANNERS,
438
+ onForeignBannerCollision: ({ filePath, foreignBanner }) => new SwiftCodegenError(`swift codegen: output collision — this run would overwrite ` +
439
+ `"${path.basename(filePath)}" in the shared output directory, which ` +
440
+ `is already owned by a different generator (banner ` +
441
+ `"${foreignBanner.trim()}"). A function key and a workflow key or ` +
442
+ `database type with the same name cannot share an output directory; ` +
443
+ `give one generator a separate -o directory.`),
444
+ });
445
+ }
446
+ /**
447
+ * Whether a prompt source is an agent, read leniently: a prompt file that does
448
+ * not parse is reported by the commands that push it, not by a Swift run.
449
+ */
450
+ function isAgentPromptSource(source) {
451
+ try {
452
+ return describePromptSchema(source).agent !== null;
453
+ }
454
+ catch (error) {
455
+ if (error instanceof FunctionSchemaCodegenError &&
456
+ !/does not parse/.test(error.message)) {
457
+ throw error;
458
+ }
459
+ return false;
460
+ }
461
+ }
462
+ //# sourceMappingURL=functionGenerator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"functionGenerator.js","sourceRoot":"","sources":["../../../../src/lib/swift-codegen/functionGenerator.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,100 @@
1
+ /**
2
+ * `workflows codegen --lang swift` orchestrator (issue #1547, Phases 2-3).
3
+ *
4
+ * The Swift counterpart of `workflow-codegen/generator.ts`. Reads the SAME
5
+ * synced workflow TOMLs (`primitive/<env>/workflows/*.toml`) and
6
+ * emits ONE `<key>.generated.swift` per workflow. Each file carries the
7
+ * workflow's `<Key>Input`/`<Key>Output` Swift `Codable` types (Phase 1's
8
+ * `renderSwiftRootType`) plus — Phase 3 — a typed invoker factory: a free
9
+ * function `func <key>(_ client:) -> <Key>Workflow` returning a struct with
10
+ * `async throws` `runSync`/`start`/`getStatus` methods (Fork 2 = A). The
11
+ * factory binds `<Key>Input`/`<Key>Output` over the additive generic overloads
12
+ * on `WorkflowsAPI` (the only published SDK surface).
13
+ *
14
+ * Design decisions realized (maintainer decision, issue #1547):
15
+ * - Schemas are interpreted through the SAME drift-guarded descriptor the TS
16
+ * emitter reads (Fork 1 = A), via `renderSwiftRootType`, so a generated
17
+ * Swift type can never promise a shape the runtime validator rejects.
18
+ * - Operation metadata (key, `syncCallable`, required-vs-optional `input`) is
19
+ * read from the SHARED `describeWorkflowInvoker` IR — the SAME source the TS
20
+ * invoker uses. The Swift renderer reconstructs none of it (#1547 binding 5),
21
+ * so the two clients can never disagree on which operations a workflow
22
+ * exposes or whether its input is required.
23
+ * - `runSync` is emitted ONLY for `syncCallable: true` workflows (the server
24
+ * rejects run-sync otherwise), matching the TS factory. `start`,
25
+ * `getStatus`, `terminate`, and the workflow-scoped
26
+ * `cronTriggers.{create,update}` are emitted for every non-reserved
27
+ * workflow; `define` only for an apply-mode one. That is the SAME per-member
28
+ * gating the TS factory uses (#2806) — the two factories expose one surface,
29
+ * decided by the shared IR, not per language.
30
+ * - Where the Swift client is less typed than the JS one, the OPERATION still
31
+ * reaches parity while the payload stays as typed as the client is: a cron
32
+ * `rootInput` over an object-shaped schema is an open `JSONValue` (Swift has
33
+ * no `Partial<>` for the fields an `inputMapping` may supply), and
34
+ * `define`'s handler sees the client's untyped `WorkflowApplyContext`.
35
+ * - Disk lifecycle (write / `--check` / orphan cleanup) delegates to the shared
36
+ * `writeOrCheckGeneratedFiles`, scoped by an ownership BANNER (the "banner
37
+ * namespacing" edge case) so a shared Swift output dir stays safe.
38
+ */
39
+ import { type WriteOrCheckResult } from "../codegen-shared/generatedFiles.js";
40
+ /** Suffix identifying a generated Swift file. */
41
+ export declare const GENERATED_SWIFT_FILE_SUFFIX = ".generated.swift";
42
+ /**
43
+ * Banner prefix stamped at the top of every CLI-emitted `.generated.swift`
44
+ * file. Deliberately DISTINCT from the Swift model codegen's
45
+ * `// Generated by swift-bao-codegen` header so that:
46
+ * - the model codegen's stale-sweep (which only removes files starting with
47
+ * its own header) never deletes these; and
48
+ * - this generator's cleanup (scoped to this prefix) never deletes a
49
+ * model-codegen file that shares the `.generated.swift` suffix.
50
+ * The prefix is common to every workflow file, so it is a safe ownership key.
51
+ */
52
+ export declare const SWIFT_BANNER_PREFIX = "// AUTO-GENERATED FROM workflows/";
53
+ export interface WorkflowSwiftCodegenInput {
54
+ /** Source `.toml` filename stem (fallback key when `[workflow].key` is absent). */
55
+ fileStem: string;
56
+ /** Path to the source `workflows/<key>.toml` file. */
57
+ tomlPath: string;
58
+ /** Raw TOML content (already read from disk). */
59
+ tomlContent: string;
60
+ }
61
+ export interface GenerateWorkflowSwiftTypesOptions {
62
+ inputs: WorkflowSwiftCodegenInput[];
63
+ /** Directory where the `<key>.generated.swift` files are written. */
64
+ outputDir: string;
65
+ /** `--check`: compare against disk, do not write. */
66
+ check?: boolean;
67
+ /**
68
+ * Set when the run was filtered to a single workflow key. `inputs` is then a
69
+ * PARTIAL view, so orphan cleanup / stale detection is scoped to the filtered
70
+ * file and must not touch sibling `*.generated.swift` files. Mirrors the TS
71
+ * generator's `singleWorkflow`.
72
+ */
73
+ singleWorkflow?: boolean;
74
+ }
75
+ /** PascalCase, sanitized, non-keyword base type name for a workflow key.
76
+ * `create-checkout-session` → `CreateCheckoutSession`; `123-job` → `_123Job`
77
+ * (digit-leading prefixed, parity with the TS `ensureValidIdentifierStart`). */
78
+ export declare function workflowSwiftTypeBaseName(key: string): string;
79
+ /**
80
+ * A Swift string literal for a config key (the runtime call passes it
81
+ * verbatim). Exported so the functions emitter (#3344) pins its key literals
82
+ * through the SAME escape helper rather than a second copy of these rules.
83
+ */
84
+ export declare function swiftKeyLiteral(key: string): string;
85
+ /**
86
+ * Render the full `<key>.generated.swift` content for a single workflow TOML.
87
+ * Returns null for a reserved (`__internal.*`) workflow. Pure — exported so
88
+ * tests can assert on the string directly.
89
+ */
90
+ export declare function renderWorkflowSwiftFile(input: WorkflowSwiftCodegenInput): {
91
+ key: string;
92
+ content: string;
93
+ symbols: string[];
94
+ } | null;
95
+ /**
96
+ * Run Swift workflow codegen end-to-end. One `<key>.generated.swift` per
97
+ * workflow; delegates the disk lifecycle to the shared writer/checker with
98
+ * banner-scoped ownership so a shared Swift output dir stays safe.
99
+ */
100
+ export declare function generateWorkflowSwiftTypes(options: GenerateWorkflowSwiftTypesOptions): Promise<WriteOrCheckResult>;