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,43 @@
1
+ /**
2
+ * The step table — one renderer, two commands.
3
+ *
4
+ * Extracted in #3348, when `functions runs steps` joined `workflows runs
5
+ * steps`. A durable function run's steps are the SAME rows in the same
6
+ * envelope, and the issue's ask is that they read "in the same shape a DSL
7
+ * workflow run's steps come back in": two hand-kept tables would have made that
8
+ * a resemblance, and this makes it the same code.
9
+ *
10
+ * `annotateStepGaps` (#1367) and `stepRunDisplayDurationMs` (#2771) moved here
11
+ * with it and are re-exported from `commands/workflows.ts`, which is where they
12
+ * were first exported for testability.
13
+ */
14
+ /**
15
+ * #2771 — how long a step row has been going.
16
+ *
17
+ * A step that is still executing is persisted with status `running` and a
18
+ * `durationMs` of 0 (the column is required; the real value is written when the
19
+ * step ends). Printing that 0 hides the one number that matters while a run is
20
+ * in flight — how long the current step has been stuck — so a running row is
21
+ * measured from its `startedAt` instead. Finished rows keep their stored
22
+ * duration.
23
+ */
24
+ export declare function stepRunDisplayDurationMs(step: any, now?: number): number | null;
25
+ /**
26
+ * #1367 — annotate step-run rows with the inter-step gap: the wall-clock time
27
+ * between the previous step's `endedAt` and this step's `startedAt`. Sorts by
28
+ * `startedAt` when every row has a parseable one (tie-break `stepIndex`),
29
+ * otherwise by `stepIndex` for the whole list — the ordering mode must be
30
+ * chosen once for all rows, not per pair: a per-pair timestamp-vs-index
31
+ * fallback is not transitive when some rows lack a timestamp (A<B by index,
32
+ * B<C by index, C<A by time), and a non-transitive comparator leaves
33
+ * Array.prototype.sort free to return an arbitrary order, computing gaps
34
+ * against the wrong predecessor. The first step has no predecessor, so its
35
+ * `gapMs` is `null`. A gap is only meaningful when both adjacent timestamps
36
+ * parse and the gap is positive. When the immediate predecessor lacks a valid
37
+ * `endedAt`, the gap is left `null` rather than measured from an older,
38
+ * non-adjacent step — otherwise a later step could raise a false stall
39
+ * warning against a step it does not actually follow.
40
+ */
41
+ export declare function annotateStepGaps(steps: any[]): any[];
42
+ /** The step table both `runs steps` verbs print. */
43
+ export declare function renderStepRunTable(items: any[]): string;
@@ -0,0 +1,129 @@
1
+ /**
2
+ * The step table — one renderer, two commands.
3
+ *
4
+ * Extracted in #3348, when `functions runs steps` joined `workflows runs
5
+ * steps`. A durable function run's steps are the SAME rows in the same
6
+ * envelope, and the issue's ask is that they read "in the same shape a DSL
7
+ * workflow run's steps come back in": two hand-kept tables would have made that
8
+ * a resemblance, and this makes it the same code.
9
+ *
10
+ * `annotateStepGaps` (#1367) and `stepRunDisplayDurationMs` (#2771) moved here
11
+ * with it and are re-exported from `commands/workflows.ts`, which is where they
12
+ * were first exported for testability.
13
+ */
14
+ import chalk from "chalk";
15
+ import { formatTable, formatDuration } from "./output.js";
16
+ /**
17
+ * #2771 — how long a step row has been going.
18
+ *
19
+ * A step that is still executing is persisted with status `running` and a
20
+ * `durationMs` of 0 (the column is required; the real value is written when the
21
+ * step ends). Printing that 0 hides the one number that matters while a run is
22
+ * in flight — how long the current step has been stuck — so a running row is
23
+ * measured from its `startedAt` instead. Finished rows keep their stored
24
+ * duration.
25
+ */
26
+ export function stepRunDisplayDurationMs(step, now = Date.now()) {
27
+ const stored = typeof step?.durationMs === "number" ? step.durationMs : null;
28
+ if (step?.status !== "running")
29
+ return stored;
30
+ const started = step?.startedAt ? new Date(step.startedAt).getTime() : NaN;
31
+ if (Number.isNaN(started))
32
+ return stored;
33
+ return Math.max(0, now - started);
34
+ }
35
+ /**
36
+ * #1367 — annotate step-run rows with the inter-step gap: the wall-clock time
37
+ * between the previous step's `endedAt` and this step's `startedAt`. Sorts by
38
+ * `startedAt` when every row has a parseable one (tie-break `stepIndex`),
39
+ * otherwise by `stepIndex` for the whole list — the ordering mode must be
40
+ * chosen once for all rows, not per pair: a per-pair timestamp-vs-index
41
+ * fallback is not transitive when some rows lack a timestamp (A<B by index,
42
+ * B<C by index, C<A by time), and a non-transitive comparator leaves
43
+ * Array.prototype.sort free to return an arbitrary order, computing gaps
44
+ * against the wrong predecessor. The first step has no predecessor, so its
45
+ * `gapMs` is `null`. A gap is only meaningful when both adjacent timestamps
46
+ * parse and the gap is positive. When the immediate predecessor lacks a valid
47
+ * `endedAt`, the gap is left `null` rather than measured from an older,
48
+ * non-adjacent step — otherwise a later step could raise a false stall
49
+ * warning against a step it does not actually follow.
50
+ */
51
+ export function annotateStepGaps(steps) {
52
+ const rows = [...(steps || [])];
53
+ const allTimed = rows.every((r) => r?.startedAt && !Number.isNaN(new Date(r.startedAt).getTime()));
54
+ rows.sort((a, b) => {
55
+ if (allTimed) {
56
+ const sa = new Date(a.startedAt).getTime();
57
+ const sb = new Date(b.startedAt).getTime();
58
+ if (sa !== sb)
59
+ return sa - sb;
60
+ }
61
+ return (a?.stepIndex ?? 0) - (b?.stepIndex ?? 0);
62
+ });
63
+ let prevEnded = null;
64
+ for (const row of rows) {
65
+ const started = row?.startedAt ? new Date(row.startedAt).getTime() : NaN;
66
+ if (prevEnded != null && !Number.isNaN(started)) {
67
+ const gap = started - prevEnded;
68
+ row.gapMs = gap > 0 ? gap : 0;
69
+ }
70
+ else {
71
+ row.gapMs = null;
72
+ }
73
+ // Only genuinely adjacent steps yield a gap: if this step lacks a valid
74
+ // `endedAt`, clear the predecessor so the NEXT step's gap is left null
75
+ // instead of being measured from a non-adjacent earlier step.
76
+ const ended = row?.endedAt ? new Date(row.endedAt).getTime() : NaN;
77
+ prevEnded = Number.isNaN(ended) ? null : ended;
78
+ }
79
+ return rows;
80
+ }
81
+ /**
82
+ * #1367 — inter-step gap: idle time between one step ending and the next
83
+ * starting. Only surfaced above a 1s threshold so normal back-to-back steps
84
+ * stay quiet; a large gap flags a mid-run stall.
85
+ */
86
+ const STEP_GAP_THRESHOLD_MS = 1000;
87
+ /** The step table both `runs steps` verbs print. */
88
+ export function renderStepRunTable(items) {
89
+ // #2771 — an in-flight run also returns the step executing right now (status
90
+ // `running`, duration not written yet). Show its elapsed time so a step stuck
91
+ // retrying is visible as such.
92
+ const rows = annotateStepGaps(items).map((row) => ({
93
+ ...row,
94
+ displayDurationMs: stepRunDisplayDurationMs(row),
95
+ }));
96
+ return formatTable(rows, [
97
+ { header: "STEP", key: "stepId" },
98
+ { header: "KIND", key: "stepKind" },
99
+ {
100
+ header: "STATUS",
101
+ key: "status",
102
+ format: (v) => v === "completed" ? chalk.green(v) :
103
+ v === "failed" ? chalk.red(v) :
104
+ v === "skipped" ? chalk.gray(v) :
105
+ v === "error_captured" ? chalk.yellow(v) :
106
+ // #2771 — the step executing right now.
107
+ v === "running" ? chalk.cyan(v) : v,
108
+ },
109
+ {
110
+ header: "GAP",
111
+ key: "gapMs",
112
+ format: (v) => typeof v === "number" && v >= STEP_GAP_THRESHOLD_MS
113
+ ? chalk.yellow(formatDuration(v))
114
+ : chalk.dim("-"),
115
+ },
116
+ { header: "DURATION", key: "displayDurationMs", format: formatDuration },
117
+ {
118
+ header: "TOKENS",
119
+ key: "totalTokens",
120
+ format: (v) => v ? String(v).replace(/\B(?=(\d{3})+(?!\d))/g, ",") : "-",
121
+ },
122
+ {
123
+ header: "ERROR",
124
+ key: "error",
125
+ format: (v) => v ? (v.length > 60 ? v.slice(0, 57) + "..." : v) : "",
126
+ },
127
+ ]);
128
+ }
129
+ //# sourceMappingURL=step-run-table.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"step-run-table.js","sourceRoot":"","sources":["../../../src/lib/step-run-table.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ /**
2
+ * #3835 — ask again when the server could not confirm its OWN write.
3
+ *
4
+ * A create whose row dynamo-bao wrote but could not read back, and whose
5
+ * consistent confirm read could not vouch for it either, is answered
6
+ * `503 STORAGE_CONSISTENCY_PENDING` (`src/services/readback-confirm.ts`): the
7
+ * write may well have landed, and nothing about the request was wrong. A push
8
+ * that records that as "could not be applied" exits 1 over a change that is
9
+ * very likely on the server already.
10
+ *
11
+ * Only that typed code is retried — a client that retries on it must not also
12
+ * retry on everything else a 503 covers — and only a bounded number of times,
13
+ * after which the transient itself is what the caller reports.
14
+ */
15
+ /** The code the server's read-back transient carries. */
16
+ export declare const STORAGE_CONSISTENCY_PENDING = "STORAGE_CONSISTENCY_PENDING";
17
+ export declare function isStorageConsistencyPending(err: unknown): boolean;
18
+ /**
19
+ * Run `fn`, and run it again while it fails with the storage-consistency
20
+ * transient. Any other failure — including the 409 a retried create meets when
21
+ * its first attempt's row holds the key — is thrown to the caller unchanged.
22
+ */
23
+ export declare function retryOnStoragePending<T>(fn: () => Promise<T>, opts?: {
24
+ attempts?: number;
25
+ sleep?: (ms: number) => Promise<void>;
26
+ }): Promise<T>;
@@ -0,0 +1,42 @@
1
+ /**
2
+ * #3835 — ask again when the server could not confirm its OWN write.
3
+ *
4
+ * A create whose row dynamo-bao wrote but could not read back, and whose
5
+ * consistent confirm read could not vouch for it either, is answered
6
+ * `503 STORAGE_CONSISTENCY_PENDING` (`src/services/readback-confirm.ts`): the
7
+ * write may well have landed, and nothing about the request was wrong. A push
8
+ * that records that as "could not be applied" exits 1 over a change that is
9
+ * very likely on the server already.
10
+ *
11
+ * Only that typed code is retried — a client that retries on it must not also
12
+ * retry on everything else a 503 covers — and only a bounded number of times,
13
+ * after which the transient itself is what the caller reports.
14
+ */
15
+ import { ApiError } from "./api-client.js";
16
+ /** The code the server's read-back transient carries. */
17
+ export const STORAGE_CONSISTENCY_PENDING = "STORAGE_CONSISTENCY_PENDING";
18
+ const DEFAULT_ATTEMPTS = 3;
19
+ const BASE_DELAY_MS = 250;
20
+ export function isStorageConsistencyPending(err) {
21
+ return err instanceof ApiError && err.code === STORAGE_CONSISTENCY_PENDING;
22
+ }
23
+ /**
24
+ * Run `fn`, and run it again while it fails with the storage-consistency
25
+ * transient. Any other failure — including the 409 a retried create meets when
26
+ * its first attempt's row holds the key — is thrown to the caller unchanged.
27
+ */
28
+ export async function retryOnStoragePending(fn, opts = {}) {
29
+ const attempts = Math.max(1, opts.attempts ?? DEFAULT_ATTEMPTS);
30
+ const sleep = opts.sleep ?? ((ms) => new Promise((r) => setTimeout(r, ms)));
31
+ for (let attempt = 1;; attempt++) {
32
+ try {
33
+ return await fn();
34
+ }
35
+ catch (err) {
36
+ if (attempt >= attempts || !isStorageConsistencyPending(err))
37
+ throw err;
38
+ await sleep(BASE_DELAY_MS * 2 ** (attempt - 1));
39
+ }
40
+ }
41
+ }
42
+ //# sourceMappingURL=storage-pending-retry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"storage-pending-retry.js","sourceRoot":"","sources":["../../../src/lib/storage-pending-retry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE3C,yDAAyD;AACzD,MAAM,CAAC,MAAM,2BAA2B,GAAG,6BAA6B,CAAC;AAEzE,MAAM,gBAAgB,GAAG,CAAC,CAAC;AAC3B,MAAM,aAAa,GAAG,GAAG,CAAC;AAE1B,MAAM,UAAU,2BAA2B,CAAC,GAAY;IACtD,OAAO,GAAG,YAAY,QAAQ,IAAI,GAAG,CAAC,IAAI,KAAK,2BAA2B,CAAC;AAC7E,CAAC;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,EAAoB,EACpB,OAAqE,EAAE;IAEvE,MAAM,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,QAAQ,IAAI,gBAAgB,CAAC,CAAC;IAChE,MAAM,KAAK,GACT,IAAI,CAAC,KAAK,IAAI,CAAC,CAAC,EAAU,EAAE,EAAE,CAAC,IAAI,OAAO,CAAO,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9E,KAAK,IAAI,OAAO,GAAG,CAAC,GAAI,OAAO,EAAE,EAAE,CAAC;QAClC,IAAI,CAAC;YACH,OAAO,MAAM,EAAE,EAAE,CAAC;QACpB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,IAAI,OAAO,IAAI,QAAQ,IAAI,CAAC,2BAA2B,CAAC,GAAG,CAAC;gBAAE,MAAM,GAAG,CAAC;YACxE,MAAM,KAAK,CAAC,aAAa,GAAG,CAAC,IAAI,CAAC,OAAO,GAAG,CAAC,CAAC,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -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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"}
@@ -0,0 +1,24 @@
1
+ /**
2
+ * Ownership banners the CLI's Swift generators stamp and guard against.
3
+ *
4
+ * Three generators now write `.generated.swift` files that may share one
5
+ * output directory — workflows, database types and (since #3344) server
6
+ * functions. Each one sweeps only the files carrying its OWN banner and
7
+ * refuses to overwrite a file carrying another's, so each has to name the
8
+ * other two. The functions banner lives here, with no imports of its own, so
9
+ * `generator.ts` and `dbGenerator.ts` can both name it without deepening the
10
+ * import cycle those two already have.
11
+ */
12
+ /**
13
+ * Banner prefix stamped at the top of every `functions codegen --lang swift`
14
+ * file. Distinct from the workflow and database prefixes (and from the Swift
15
+ * model codegen's `// Generated by swift-bao-codegen` header), so a shared
16
+ * output directory stays safe in every direction.
17
+ */
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/";
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Ownership banners the CLI's Swift generators stamp and guard against.
3
+ *
4
+ * Three generators now write `.generated.swift` files that may share one
5
+ * output directory — workflows, database types and (since #3344) server
6
+ * functions. Each one sweeps only the files carrying its OWN banner and
7
+ * refuses to overwrite a file carrying another's, so each has to name the
8
+ * other two. The functions banner lives here, with no imports of its own, so
9
+ * `generator.ts` and `dbGenerator.ts` can both name it without deepening the
10
+ * import cycle those two already have.
11
+ */
12
+ /**
13
+ * Banner prefix stamped at the top of every `functions codegen --lang swift`
14
+ * file. Distinct from the workflow and database prefixes (and from the Swift
15
+ * model codegen's `// Generated by swift-bao-codegen` header), so a shared
16
+ * output directory stays safe in every direction.
17
+ */
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/";
25
+ //# sourceMappingURL=banners.js.map
@@ -0,0 +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;AAEhF;;;;GAIG;AACH,MAAM,CAAC,MAAM,yBAAyB,GAAG,iCAAiC,CAAC"}
@@ -0,0 +1,113 @@
1
+ /**
2
+ * `databases codegen --lang swift` orchestrator (issue #1547, Phase 4).
3
+ *
4
+ * The Swift counterpart of `db-codegen/dbGenerator.ts`. Reads the SAME synced
5
+ * `database-type-configs/*.toml` and emits ONE `<type>.generated.swift` per database
6
+ * type. Each file carries the type's record structs (read shape), per-op params
7
+ * structs (write shape), per-op result typealiases, and a typed `<Type>Ops`
8
+ * factory over the additive generic `executeOperation` overload on
9
+ * `DatabasesAPI` (the only published SDK surface for this generator).
10
+ *
11
+ * Design decisions realized (issue #1547):
12
+ * - Operation + record metadata (which ops exist, their params, their result
13
+ * descriptor, and per-model fields) is read from the SHARED `describeDbType`
14
+ * IR — the SAME source the TS renderer (`db-codegen/dbGenerator.ts`) reads.
15
+ * The Swift renderer reconstructs none of it (binding item 5), so the two
16
+ * clients can never disagree on a type's surface.
17
+ * - The generic result envelopes (`DBQueryResult<T>`, `DBMutationResult`, …)
18
+ * live in the JsBaoClient SDK, NOT emitted per file — a Swift package
19
+ * compiles all generated files into one module, so a per-file copy would
20
+ * collide. Generated files reference the SDK envelopes (mirrors how Phase 3
21
+ * put the workflow result envelopes in the SDK).
22
+ * - Swift has no analog of TS `Pick<M, …>` / `Partial<M>`, so a query op with
23
+ * a `pick`/`partial` projection types its rows as the open `JSONValue`
24
+ * rather than a narrowed record (the same Fork-4 "no clean analog →
25
+ * JSONValue" fallback the emitter uses for un-descended schema nodes). A
26
+ * `full` projection over a known record types as `DBQueryResult<Record>`.
27
+ * - Disk lifecycle (write / `--check` / orphan cleanup) delegates to the
28
+ * shared `writeOrCheckGeneratedFiles`, scoped by an ownership BANNER
29
+ * distinct from both the workflow Swift banner and the model codegen's, so
30
+ * a shared Swift output dir stays safe.
31
+ */
32
+ import { type WriteOrCheckResult } from "../codegen-shared/generatedFiles.js";
33
+ import { type DbCodegenInput } from "../db-codegen/dbTypeIR.js";
34
+ /**
35
+ * Banner prefix stamped on every CLI-emitted database `.generated.swift` file.
36
+ * Distinct from both the workflow Swift banner (`// AUTO-GENERATED FROM
37
+ * workflows/`) and the model codegen's (`// Generated by swift-bao-codegen`),
38
+ * so none of the three generators' stale-sweeps ever deletes another's files
39
+ * when they share an output dir.
40
+ */
41
+ export declare const DB_SWIFT_BANNER_PREFIX = "// AUTO-GENERATED FROM database-type-configs/";
42
+ /**
43
+ * The banner this generator stamped before issue #2760 renamed the source
44
+ * directory. RECOGNITION ONLY — nothing emits it.
45
+ *
46
+ * Ownership everywhere is `contents.startsWith(banner)`, so without this a file
47
+ * generated before the rename would match neither the db banner nor the
48
+ * workflow one: it would survive the db stale sweep as a stranger, stay
49
+ * invisible to the sibling-symbol scans, and be silently overwritten by
50
+ * `workflows codegen --lang swift` on a name collision instead of refused.
51
+ */
52
+ export declare const LEGACY_DB_SWIFT_BANNER_PREFIX = "// AUTO-GENERATED FROM database-types/";
53
+ /** Both spellings, for every ownership check this generator performs. */
54
+ export declare const DB_SWIFT_BANNER_PREFIXES: string[];
55
+ export interface GenerateDbSwiftTypesOptions {
56
+ inputs: DbCodegenInput[];
57
+ /** Directory where the `<type>.generated.swift` files are written. */
58
+ outputDir: string;
59
+ /** `--check`: compare against disk, do not write. */
60
+ check?: boolean;
61
+ /**
62
+ * Set when the run was filtered to a single database type. `inputs` is then a
63
+ * PARTIAL view, so orphan cleanup / stale detection is scoped to the filtered
64
+ * file. Mirrors the TS generator's `singleType`.
65
+ */
66
+ singleType?: boolean;
67
+ }
68
+ /** Swift record struct type name for a model (shared naming + Swift sanitize). */
69
+ export declare function dbRecordSwiftTypeName(modelName: string, className: string | undefined): string;
70
+ /**
71
+ * Namespace `enum` name for a database type (issue #1687). Every symbol a type
72
+ * emits is nested under `public enum <Type>` (`securities-ref` →
73
+ * `SecuritiesRef`), so two DB types can never collide on a shared op symbol.
74
+ * Reuses the same `structTypeName` sanitizer (keyword suffixing + digit-leading
75
+ * `_` guard) the old `<Type>Ops` derivation used, so the namespace name is a
76
+ * legal Swift type identifier.
77
+ */
78
+ export declare function dbNamespaceName(databaseType: string): string;
79
+ /**
80
+ * Validate that a database type's derived namespace enum name is safe to emit,
81
+ * and return it. Throws a named `SwiftCodegenError` (with a rename hint) for
82
+ * the whole class of unsafe names a server-accepted database type can produce
83
+ * (#1687):
84
+ *
85
+ * 1. **Degenerate `_`** — a type with no retained identifier characters
86
+ * (empty after sanitize, or separator/emoji/punctuation-only, e.g. `--`,
87
+ * `🎉`) normalizes to `_` via `structTypeName`. Swift reserves `_` as the
88
+ * wildcard and rejects `public enum _` (Codex [P2]).
89
+ * 2. **Stdlib/SDK shadowing** — a name in `RESERVED_NAMESPACE_NAMES` shadows
90
+ * a type the generated body references unqualified (Codex [P1]).
91
+ *
92
+ * Leading-digit residue (`123` → `_123`) and Swift reserved words (`self` →
93
+ * `Self_`, `any` → `Any_`) are already lifted into legal, non-shadowing
94
+ * identifiers by `structTypeName` (digit-leading `_` guard + keyword suffix),
95
+ * so they need no rejection here — only names that survive that sanitizer as
96
+ * `_` or as a real type identifier remain unsafe. The two in-run / retained-
97
+ * sibling namespace-NAME collision guards (two database types whose names
98
+ * normalize to the SAME enum) live in `generateDbSwiftTypes`; this check
99
+ * covers the single-type unsafe-name class.
100
+ */
101
+ export declare function assertSafeNamespaceName(databaseType: string, sourceFile: string): string;
102
+ /**
103
+ * Render the full `<type>.generated.swift` content for one database-type TOML.
104
+ * Pure — exported so tests can assert on the string directly. Throws on a Swift
105
+ * record type-name collision between two models (mirrors the TS collision guard).
106
+ */
107
+ export declare function renderDbTypeSwiftFile(input: DbCodegenInput): string;
108
+ /**
109
+ * Run Swift database codegen end-to-end. One `<type>.generated.swift` per
110
+ * database type; delegates the disk lifecycle to the shared writer/checker with
111
+ * banner-scoped ownership so a shared Swift output dir stays safe.
112
+ */
113
+ export declare function generateDbSwiftTypes(options: GenerateDbSwiftTypesOptions): Promise<WriteOrCheckResult>;