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,389 @@
1
+ /**
2
+ * Running a function from the CLI — the decisions, without the I/O (#3448,
3
+ * project `server-functions` phase 4).
4
+ *
5
+ * `functions invoke`, `functions start` and `functions runs wait` are three
6
+ * verbs over one route, and almost everything about them is a rule rather than
7
+ * a request: which flags may appear together, what `--input` means, which
8
+ * identity the call runs under, how long to wait between polls, which exit code
9
+ * a settled run earns, and what line to print beside each id so an operator
10
+ * knows the next command. Every one of those is decidable with no server, so
11
+ * every one of them lives here, where `cli-unit-tests` can pin it and a
12
+ * rejected checkpoint stays diagnosable (#3187's lesson).
13
+ */
14
+ /** Exit codes, one place, because three verbs share them. */
15
+ export const EXIT_OK = 0;
16
+ export const EXIT_FAILED = 1;
17
+ /** The wait's budget was spent with the run still in flight. */
18
+ export const EXIT_TIMED_OUT = 124;
19
+ /** Ctrl-C — the workflows group's convention (`workflows.ts`). */
20
+ export const EXIT_INTERRUPTED = 130;
21
+ /**
22
+ * Read the flags, and refuse BEFORE any request is made.
23
+ *
24
+ * That ordering is the point (D3448-010): an operator who typed a malformed
25
+ * `--input` or two identities has made a mistake the platform should never see
26
+ * — and a refusal that arrived after the call would be a refusal for something
27
+ * that had already run.
28
+ */
29
+ export function resolveRunFlags(flags) {
30
+ if (flags.user !== undefined && flags.as !== undefined) {
31
+ return {
32
+ ok: false,
33
+ error: "--user and --as system are mutually exclusive: --user runs as that app user, --as system runs with no caller at all.",
34
+ };
35
+ }
36
+ if (flags.as !== undefined && flags.as !== "system") {
37
+ return {
38
+ ok: false,
39
+ error: `--as accepts only 'system' (got '${flags.as}').`,
40
+ };
41
+ }
42
+ if (flags.user !== undefined && !String(flags.user).trim()) {
43
+ return { ok: false, error: "--user needs a user id." };
44
+ }
45
+ let input = {};
46
+ if (flags.input !== undefined) {
47
+ try {
48
+ // An explicit `null` stays `null` (D3281-SO-007): a schema-less function
49
+ // receives it, rather than the `{}` an absent flag means.
50
+ input = JSON.parse(flags.input);
51
+ }
52
+ catch (err) {
53
+ return {
54
+ ok: false,
55
+ error: `--input is not valid JSON: ${err?.message ?? String(err)}`,
56
+ };
57
+ }
58
+ }
59
+ let timeoutSeconds = null;
60
+ if (flags.timeout !== undefined && flags.timeout !== null && flags.timeout !== "") {
61
+ const parsed = Number(flags.timeout);
62
+ if (!Number.isFinite(parsed) || parsed <= 0) {
63
+ return {
64
+ ok: false,
65
+ error: `--timeout must be a positive number of seconds (got '${flags.timeout}').`,
66
+ };
67
+ }
68
+ timeoutSeconds = parsed;
69
+ }
70
+ const identity = flags.as === "system"
71
+ ? { kind: "system" }
72
+ : flags.user !== undefined
73
+ ? { kind: "user", userId: String(flags.user).trim() }
74
+ : { kind: "self" };
75
+ return { ok: true, input, identity, timeoutSeconds };
76
+ }
77
+ /**
78
+ * The runtime a function run used, read from the run row — #3482, C-6.
79
+ *
80
+ * `WorkflowRun.executionMode` is the runtime under the old word, and #3482
81
+ * does not rename a stored column (D3482-009; phase 7 owns the rename), so the
82
+ * mapping lives here, once, and every surface that says "runtime" says it the
83
+ * same way. `sync` is the request runtime — a webhook delivery, a
84
+ * `workflow.call` leaf — and `durable` is the task runtime.
85
+ *
86
+ * ABSENT means the task runtime, not "unknown": every writer of a durable row
87
+ * has written `durable` since #3186, and the rows that predate the column are
88
+ * durable runs. A row that says something else entirely is not a runtime this
89
+ * platform has, and answering null is how a reader learns that rather than
90
+ * being told a word that was never true.
91
+ */
92
+ export function runtimeForExecutionMode(executionMode) {
93
+ if (executionMode === "sync")
94
+ return "request";
95
+ if (executionMode === "durable" || executionMode === undefined || executionMode === null) {
96
+ return "task";
97
+ }
98
+ return null;
99
+ }
100
+ /**
101
+ * The RUNTIME cell of one `functions runs` row.
102
+ *
103
+ * Blank rather than guessed for a row this reader cannot place: `runs` pages
104
+ * one function's own runs, but the same shape reaches the CLI from surfaces
105
+ * that carry DSL rows too, and printing `task` for one would be a word about
106
+ * something that has no runtime at all.
107
+ */
108
+ export function runRuntimeCell(run) {
109
+ return runtimeForExecutionMode(run?.executionMode) ?? "";
110
+ }
111
+ /**
112
+ * The two slice cells of one `functions runs` row — REFRESHES and RESETS.
113
+ *
114
+ * One rule for both, because they are two facts about the same record and the
115
+ * distinction that matters is the same for each: a row with NO slice record
116
+ * gets a BLANK cell, and a record that carries no count gets `0`.
117
+ *
118
+ * - blank means "there is no record" — a request invocation opens no lease,
119
+ * and neither did any run that predates the record's own child;
120
+ * - `0` means "the record says nothing happened", which for #3566 is the
121
+ * answer an operator needs: a fabricated zero on a row with no record would
122
+ * read as "the platform never reset this run", and the row cannot know that.
123
+ *
124
+ * A value that is not a whole number reads `0` rather than reaching the table:
125
+ * the cell is a count, and printing `NaN` or `two` in a column of numbers
126
+ * teaches an operator nothing.
127
+ */
128
+ export function runSliceCells(run) {
129
+ const slice = run?.slice;
130
+ if (!slice || typeof slice !== "object")
131
+ return { refreshes: "", resets: "" };
132
+ const count = (value) => String(Number.isInteger(Number(value)) ? Number(value) : 0);
133
+ return { refreshes: count(slice.refreshCount), resets: count(slice.resets) };
134
+ }
135
+ // ─── waiting ────────────────────────────────────────────────────────
136
+ /** The JS client's schedule: 400 ms doubling to a 5 s ceiling. */
137
+ export const WAIT_INITIAL_DELAY_MS = 400;
138
+ export const WAIT_MAX_DELAY_MS = 5_000;
139
+ /** 15 minutes, the JS client's default. */
140
+ export const WAIT_DEFAULT_TIMEOUT_SECONDS = 900;
141
+ /**
142
+ * The delay before poll `attempt` (0-based).
143
+ *
144
+ * Pure and pinned, because a backoff that silently stopped backing off is a
145
+ * poll storm nobody notices until a long run is being asked 150 times a
146
+ * minute.
147
+ */
148
+ export function waitDelayMs(attempt) {
149
+ const delay = WAIT_INITIAL_DELAY_MS * 2 ** Math.max(0, attempt);
150
+ return Math.min(delay, WAIT_MAX_DELAY_MS);
151
+ }
152
+ /**
153
+ * A settled run's exit code — D3448-010.
154
+ *
155
+ * `completed` is 0 and everything else an operator can act on is 1. An
156
+ * in-flight status is null: the wait has not finished, and turning "still
157
+ * running" into an exit code is how a script comes to believe a run failed
158
+ * because it was slow.
159
+ */
160
+ export function exitCodeForRunStatus(status) {
161
+ switch (status) {
162
+ case "completed":
163
+ return EXIT_OK;
164
+ case "failed":
165
+ case "terminated":
166
+ case "missing":
167
+ case "skipped":
168
+ return EXIT_FAILED;
169
+ default:
170
+ return null;
171
+ }
172
+ }
173
+ /** A request invocation's exit code: only `completed` is success. */
174
+ export function exitCodeForInvokeStatus(status) {
175
+ return status === "completed" ? EXIT_OK : EXIT_FAILED;
176
+ }
177
+ /**
178
+ * Every id a verb prints is followed by the diagnostics command that takes it
179
+ * — the issue's own requirement, and one pure function so it is pinned.
180
+ *
181
+ * An id with no next step is an id an operator has to go and look up how to
182
+ * use, which is the thing this issue exists to remove.
183
+ */
184
+ export function invokeIdLines(args) {
185
+ const lines = [
186
+ {
187
+ label: "Function ID",
188
+ value: args.functionId,
189
+ commands: [`primitive functions logs ${args.functionId}`],
190
+ },
191
+ ];
192
+ if (args.invocationId) {
193
+ lines.push({
194
+ label: "Invocation ID",
195
+ value: args.invocationId,
196
+ commands: [
197
+ `primitive functions logs ${args.functionId} --invocation ${args.invocationId}`,
198
+ ],
199
+ });
200
+ }
201
+ return lines;
202
+ }
203
+ export function startIdLines(args) {
204
+ return [
205
+ {
206
+ label: "Run ID",
207
+ value: args.runId,
208
+ commands: [
209
+ `primitive functions runs steps ${args.functionId} ${args.runId}`,
210
+ `primitive functions runs terminate ${args.functionId} ${args.runId}`,
211
+ `primitive functions runs wait ${args.functionId} ${args.runId}`,
212
+ ],
213
+ },
214
+ {
215
+ label: "Function ID",
216
+ value: args.functionId,
217
+ commands: [`primitive functions logs ${args.functionId}`],
218
+ },
219
+ ];
220
+ }
221
+ /** The line a wait prints when it gives up, or is interrupted. */
222
+ export function resumeCommand(functionId, runId) {
223
+ return `primitive functions runs wait ${functionId} ${runId}`;
224
+ }
225
+ /** Render one `IdLines` as the two-or-more lines an operator reads. */
226
+ export function renderIdLines(lines) {
227
+ const out = [];
228
+ for (const line of lines) {
229
+ out.push(`${line.label} ${line.value}`);
230
+ for (const command of line.commands)
231
+ out.push(` → ${command}`);
232
+ }
233
+ return out;
234
+ }
235
+ /** How the identity is reported, so an operator knows who ran it. */
236
+ export function describeIdentity(identity) {
237
+ if (identity.kind === "system") {
238
+ return `Ran as system (manual, by ${identity.byUserId ?? "unknown"})`;
239
+ }
240
+ const role = identity.appRole ? ` (${identity.appRole})` : "";
241
+ return `Ran as ${identity.userId ?? "unknown"}${role}`;
242
+ }
243
+ // ─── the filtered listing's continuation rule ───────────────────────
244
+ /**
245
+ * How many EMPTY pages carrying a cursor the CLI follows before it renders.
246
+ *
247
+ * D3448-SO-006's CLI half. A filtered page holding only other runs' records
248
+ * comes back empty WITH a cursor, which is an intermediate page and not the
249
+ * end; returning on it — as `functions logs` did — reports "no logs" for a run
250
+ * whose records are one page further down. The server's bounded scan makes
251
+ * that rare; this makes it impossible to read as the end.
252
+ */
253
+ export const MAX_AUTO_CONTINUE_PAGES = 5;
254
+ /**
255
+ * What to do with a page that came back holding nothing.
256
+ *
257
+ * A page with rows is rendered. An empty page with NO cursor is the end and is
258
+ * rendered too (the empty state). An empty page WITH a cursor is intermediate.
259
+ */
260
+ export function decidePageContinuation(page, pagesFollowed) {
261
+ if ((page.items?.length ?? 0) > 0)
262
+ return { action: "render" };
263
+ const cursor = page.nextCursor;
264
+ if (!cursor)
265
+ return { action: "render" };
266
+ if (pagesFollowed >= MAX_AUTO_CONTINUE_PAGES) {
267
+ return { action: "exhausted", cursor };
268
+ }
269
+ return { action: "continue", cursor };
270
+ }
271
+ // ─── the `logs` flag combinations ───────────────────────────────────
272
+ /**
273
+ * `--invocation` names ONE record, so every flag that shapes a LISTING is a
274
+ * contradiction beside it, and `--run` is a filter a tail cannot honour (the
275
+ * tail walks the whole index; a run's records are a bounded set that ends).
276
+ */
277
+ export function logsFlagConflict(flags) {
278
+ if (flags.invocation) {
279
+ const conflicts = [
280
+ flags.run ? "--run" : null,
281
+ flags.follow ? "--follow" : null,
282
+ flags.cursor ? "--cursor" : null,
283
+ flags.limit !== undefined ? "--limit" : null,
284
+ ].filter(Boolean);
285
+ if (conflicts.length > 0) {
286
+ return `--invocation names one record, so it cannot be combined with ${conflicts.join(", ")}.`;
287
+ }
288
+ return null;
289
+ }
290
+ if (flags.run && flags.follow) {
291
+ return "--run and --follow cannot be combined: a run's records are a bounded set, and a tail walks the whole index.";
292
+ }
293
+ return null;
294
+ }
295
+ // ─── the `--user` credential ────────────────────────────────────────
296
+ /** Ten minutes — long enough for the platform's own 30 s ceiling and no more. */
297
+ export const USER_TOKEN_TTL = "10m";
298
+ /** The name the minted token carries, so an operator can find it if it leaks. */
299
+ export function userTokenName(verb, functionKey, at = new Date()) {
300
+ return `primitive functions ${verb} ${functionKey} ${at.toISOString()}`;
301
+ }
302
+ /** Ctrl-C, and the SIGTERM a supervisor sends, both end the process. */
303
+ function installInterruptHandler(handler) {
304
+ process.on("SIGINT", handler);
305
+ process.on("SIGTERM", handler);
306
+ return () => {
307
+ process.off("SIGINT", handler);
308
+ process.off("SIGTERM", handler);
309
+ };
310
+ }
311
+ /**
312
+ * Mint, use, revoke — and revoke on EVERY exit path.
313
+ *
314
+ * The token is a real credential for ANOTHER USER, live for ten minutes, so
315
+ * "every exit path" has to include the one an operator actually takes when a
316
+ * call is slower than they expected: Ctrl-C. A `finally` alone does not cover
317
+ * it — with no handler installed, Node's default terminates the process and no
318
+ * `finally` in it ever runs (CR3448-001) — so the wrapper handles the signal
319
+ * itself, revokes, and only then exits 130.
320
+ *
321
+ * A failed revoke does NOT change the exit code — the invocation happened and
322
+ * its outcome is the answer — but it names the token and the command that
323
+ * revokes it, because an un-revoked credential an operator does not know about
324
+ * is worse than a warning they do (edge 32).
325
+ *
326
+ * The VALUE is never returned to the caller and never printed: `use` receives
327
+ * it, and nothing else does.
328
+ */
329
+ export async function withMintedToken(effects, use) {
330
+ const minted = await effects.mint();
331
+ let revoked = false;
332
+ // Once, whichever path gets there first: an interrupt that lands while the
333
+ // answer is already on its way must not revoke a second time.
334
+ const revokeOnce = async () => {
335
+ if (revoked)
336
+ return;
337
+ revoked = true;
338
+ try {
339
+ await effects.revoke(minted.tokenId);
340
+ }
341
+ catch (err) {
342
+ effects.warn(`The temporary token for this call could not be revoked: ${minted.tokenId}. ` +
343
+ `Revoke it with 'primitive tokens revoke ${minted.tokenId}'. ` +
344
+ `(${err?.message ?? String(err)})`);
345
+ }
346
+ };
347
+ const onInterrupt = effects.onInterrupt ?? installInterruptHandler;
348
+ const exit = effects.exit ?? ((code) => process.exit(code));
349
+ const removeHandler = onInterrupt(() => {
350
+ // The in-flight request is abandoned; the credential is not. Nothing is
351
+ // printed here — the value, and the fact one was minted at all, stay out
352
+ // of both streams (D3448-009).
353
+ void revokeOnce().then(() => exit(EXIT_INTERRUPTED));
354
+ });
355
+ try {
356
+ return await use(minted.token);
357
+ }
358
+ finally {
359
+ removeHandler();
360
+ await revokeOnce();
361
+ }
362
+ }
363
+ /**
364
+ * Turn a refusal envelope into the lines an operator reads — #3448 D3448-010.
365
+ *
366
+ * Pure, because it carries the fact that makes handing the envelope back
367
+ * worth anything instead of throwing: a 429's `Retry-After`, which the server
368
+ * already worked out and which would be re-derived badly from an exception
369
+ * message.
370
+ *
371
+ * #3482 — there is no "Version mode" line any more. It named the mode a
372
+ * refused call's version was locked to, and no version is locked to anything.
373
+ */
374
+ export function refusalLines(answer) {
375
+ const body = answer.body ?? {};
376
+ const retry = answer.retryAfterSeconds !== null ? ` — retry in ${answer.retryAfterSeconds}s` : "";
377
+ const fields = [];
378
+ if (body.errorCode)
379
+ fields.push({ label: "Code", value: String(body.errorCode) });
380
+ const details = Array.isArray(body.details)
381
+ ? body.details.map((detail) => typeof detail === "string" ? detail : JSON.stringify(detail))
382
+ : [];
383
+ return {
384
+ message: `${body.error ?? `Refused with HTTP ${answer.httpStatus}`}${retry}`,
385
+ fields,
386
+ details,
387
+ };
388
+ }
389
+ //# sourceMappingURL=function-run.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"function-run.js","sourceRoot":"","sources":["../../../src/lib/function-run.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,143 @@
1
+ /**
2
+ * Schema-typed codegen for server functions — #3281, project
3
+ * `server-functions` phase 4.
4
+ *
5
+ * The intent's "Schema-typed codegen on every push": `<Key>Input` and
6
+ * `<Key>Output` from the declared schemas, a handler helper so function code
7
+ * is typed from the declaration, and a typed per-key invoker. Two artifacts,
8
+ * both rendered from the same `functions/<key>.toml` and both regenerated by
9
+ * `config push`, `config pull` and `primitive functions codegen`:
10
+ *
11
+ * - `functions/primitive-function-types.d.ts` — every key's input and
12
+ * output types, and a `FunctionSchemas` augmentation keyed by function
13
+ * key (the `DatabaseSchemas` shape `primitive-db-types.d.ts` uses), which
14
+ * is what types `defineFunction("<key>", handler)`: `input` is the
15
+ * declared input, the return is checked against the declared output, and
16
+ * a key the tree does not declare is a compile error.
17
+ * - `functions/generated/<key>.generated.ts` — the client invoker, the
18
+ * `workflows codegen` layout: imports only from `js-bao-wss-client`,
19
+ * exports the two types and a `<key>(client)` factory. Since #3482 EVERY
20
+ * function's invoker carries both verbs — `invoke`, `start`, `getStatus`,
21
+ * `waitFor`, `terminate` — because the config says nothing about how a
22
+ * function runs and the caller picks the runtime at each call. `waitFor`
23
+ * binds `<Key>Output`, so the completion path is typed too (D3281-SO-003).
24
+ *
25
+ * ── The same descriptor the platform validates with ──────────────────────
26
+ *
27
+ * Schemas are interpreted through the vendored descriptor `workflows codegen`
28
+ * already reads (`workflow-codegen/schemaToTs.ts`, a byte copy of the server's
29
+ * `schema-descriptor.ts`), so what compiles is what every invocation door
30
+ * accepts: `input` is a REQUIRED option iff the schema rejects `{}` (the
31
+ * client sends `rootInput` only when `input !== undefined`, and the server
32
+ * defaults an absent one to `{}`), an absent schema is `unknown`, and a
33
+ * malformed schema fails naming the file rather than typing something false.
34
+ *
35
+ * ── Identifiers ──────────────────────────────────────────────────────────
36
+ *
37
+ * Names come from the workflow naming helpers (PascalCase, the digit-leading
38
+ * and reserved-word rules), and the runtime call always passes the ORIGINAL
39
+ * key. Two keys that sanitize to one identifier would render one file over the
40
+ * other, so that is refused naming both.
41
+ *
42
+ * FORMATTING CONTRACT (#1565): the invoker is emitted as a fixed point of
43
+ * Prettier's default config through `codegen-shared/prettierStable.ts`, like
44
+ * the other two generators, because `--check` byte-compares.
45
+ */
46
+ /** The regenerated declaration beside `primitive-db-types.d.ts`. */
47
+ export declare const FUNCTION_TYPES_DECLARATION_FILE = "primitive-function-types.d.ts";
48
+ /** Where the per-key invokers go, under `functions/`, unless `-o` says otherwise. */
49
+ export declare const FUNCTION_INVOKERS_DIR = "generated";
50
+ /** Suffix identifying a generated invoker (shared with the other generators). */
51
+ export declare const GENERATED_FILE_SUFFIX = ".generated.ts";
52
+ export declare class FunctionSchemaCodegenError extends Error {
53
+ }
54
+ export interface FunctionSchemaSource {
55
+ /**
56
+ * The file stem, which is the key push uses when the file declares none.
57
+ * An authored `[function] key` wins over it — see {@link resolveFunctionKey}.
58
+ */
59
+ key: string;
60
+ tomlPath: string;
61
+ tomlContent: string;
62
+ }
63
+ /** What the renderers need from one `functions/<key>.toml`. */
64
+ export interface FunctionSchemaIR {
65
+ key: string;
66
+ /** The tree-relative file this came from, for a message an author acts on. */
67
+ fileLabel: string;
68
+ inputSchema: unknown;
69
+ outputSchema: unknown;
70
+ /** `input` is a required option iff the schema rejects `{}`. */
71
+ inputRequired: boolean;
72
+ /** `<Key>` — the PascalCase base of the two type names. */
73
+ typeBaseName: string;
74
+ inputTypeName: string;
75
+ outputTypeName: string;
76
+ /** `<key>(client)` — the exported factory. */
77
+ factoryName: string;
78
+ }
79
+ /**
80
+ * Every `functions/*.toml` in a tree, read once. The key is the one push
81
+ * uses: the file name (push takes the identity from it and attaches
82
+ * `functionKey` itself).
83
+ */
84
+ export declare function functionSchemaSources(configDir: string): FunctionSchemaSource[];
85
+ /**
86
+ * Parse one file into the data both renderers need. Throws a
87
+ * `FunctionSchemaCodegenError` naming the file for malformed schema JSON or an
88
+ * unresolvable mode — the honest `unknown` is for an ABSENT schema, never a
89
+ * broken one.
90
+ */
91
+ export declare function describeFunctionSchemas(source: FunctionSchemaSource): FunctionSchemaIR;
92
+ /**
93
+ * Describe every source, sorted by key, refusing two files that resolve to one
94
+ * key. This is the LANGUAGE-NEUTRAL half of the set-level IR, shared with the
95
+ * Swift emitter (#3344): mode, schemas and requiredness come from here for
96
+ * both languages, so the two clients can never disagree about what a function
97
+ * exposes.
98
+ *
99
+ * The TypeScript base-name collision check deliberately stays out of it
100
+ * (`describeAll` below adds it): it is about the TS emitter's own
101
+ * `<Base>Input`/`<Base>Output` identifiers, and the Swift run has its own
102
+ * run-scoped symbol registry — which also covers the invoker struct and the
103
+ * factory function the TS check knows nothing about.
104
+ */
105
+ export declare function describeFunctionSchemaSet(sources: readonly FunctionSchemaSource[]): Array<{
106
+ fn: FunctionSchemaIR;
107
+ source: FunctionSchemaSource;
108
+ }>;
109
+ /**
110
+ * A top-level `<Name>Input`/`<Name>Output` declaration: an absent schema →
111
+ * `unknown`, a plain object → an `interface`, anything else (a `oneOf` above
112
+ * all, which begins with `{` too) → a `type` alias. Same decision as the
113
+ * workflow generator, through the shared descriptor rather than a heuristic.
114
+ *
115
+ * Exported for `prompt-schema-codegen.ts` (#3330): a prompt's
116
+ * `<Key>PromptOutput` is the same question about the same kind of schema, and
117
+ * a second copy of this would be the third spelling of one rule.
118
+ */
119
+ export declare function renderTypeDecl(name: string, schema: unknown): string;
120
+ /**
121
+ * The declaration for a whole tree's functions. Sorted by key so the bytes
122
+ * depend on the files and not on the order they were read in. The
123
+ * augmentation is emitted even when the tree has no function yet: an empty
124
+ * `FunctionSchemas` keeps `FunctionKeys` open (`string`), so nothing breaks.
125
+ */
126
+ export declare function renderFunctionSchemasDeclaration(sources: readonly FunctionSchemaSource[]): string;
127
+ /**
128
+ * The full `<key>.generated.ts` for one function. Pure — exported so tests
129
+ * can assert on the string directly.
130
+ */
131
+ export declare function renderFunctionInvokerFile(source: FunctionSchemaSource): {
132
+ key: string;
133
+ content: string;
134
+ };
135
+ /**
136
+ * Every invoker for a tree, keyed by the file name the generator writes
137
+ * (`<key>.generated.ts`), with the identifier-collision refusal applied
138
+ * across the set.
139
+ */
140
+ export declare function renderFunctionInvokers(sources: readonly FunctionSchemaSource[]): Array<{
141
+ fileName: string;
142
+ content: string;
143
+ }>;