primitive-admin 1.1.0-alpha.9 → 1.2.0-alpha.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 (609) hide show
  1. package/README.md +530 -116
  2. package/assets/skill/skills/primitive-platform/SKILL.md +295 -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 +1285 -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 +171 -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 +1868 -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 +81 -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 +13 -8
  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/settings.d.ts +18 -0
  112. package/dist/src/commands/settings.js +54 -0
  113. package/dist/src/commands/settings.js.map +1 -0
  114. package/dist/src/commands/skill.d.ts +2 -0
  115. package/dist/src/commands/skill.js +29 -0
  116. package/dist/src/commands/skill.js.map +1 -0
  117. package/dist/src/commands/sync-app-settings.d.ts +158 -0
  118. package/dist/src/commands/sync-app-settings.js +328 -0
  119. package/dist/src/commands/sync-app-settings.js.map +1 -0
  120. package/dist/src/commands/sync.d.ts +2667 -0
  121. package/dist/src/commands/sync.js +17141 -834
  122. package/dist/src/commands/sync.js.map +1 -1
  123. package/dist/src/commands/tokens.d.ts +2 -0
  124. package/dist/src/commands/tokens.js +132 -22
  125. package/dist/src/commands/tokens.js.map +1 -1
  126. package/dist/src/commands/users.d.ts +2 -0
  127. package/dist/src/commands/users.js +542 -24
  128. package/dist/src/commands/users.js.map +1 -1
  129. package/dist/src/commands/vars.d.ts +8 -0
  130. package/dist/src/commands/vars.js +97 -0
  131. package/dist/src/commands/vars.js.map +1 -0
  132. package/dist/src/commands/waitlist.d.ts +2 -0
  133. package/dist/src/commands/waitlist.js +12 -11
  134. package/dist/src/commands/waitlist.js.map +1 -1
  135. package/dist/src/commands/webhooks.d.ts +31 -0
  136. package/dist/src/commands/webhooks.js +633 -0
  137. package/dist/src/commands/webhooks.js.map +1 -0
  138. package/dist/src/commands/workflows.d.ts +88 -0
  139. package/dist/src/commands/workflows.js +1568 -742
  140. package/dist/src/commands/workflows.js.map +1 -1
  141. package/dist/src/lib/access-rule-display.d.ts +21 -0
  142. package/dist/src/lib/access-rule-display.js +34 -0
  143. package/dist/src/lib/access-rule-display.js.map +1 -0
  144. package/dist/src/lib/api-client.d.ts +2513 -0
  145. package/dist/src/lib/api-client.js +2456 -162
  146. package/dist/src/lib/api-client.js.map +1 -1
  147. package/dist/src/lib/app-match-guard.d.ts +44 -0
  148. package/dist/src/lib/app-match-guard.js +72 -0
  149. package/dist/src/lib/app-match-guard.js.map +1 -0
  150. package/dist/src/lib/app-settings-descriptor.d.ts +263 -0
  151. package/dist/src/lib/app-settings-descriptor.js +583 -0
  152. package/dist/src/lib/app-settings-descriptor.js.map +1 -0
  153. package/dist/src/lib/auth-flow.d.ts +8 -0
  154. package/dist/src/lib/batch.d.ts +26 -0
  155. package/dist/src/lib/batch.js +32 -0
  156. package/dist/src/lib/batch.js.map +1 -0
  157. package/dist/src/lib/block-layout.d.ts +160 -0
  158. package/dist/src/lib/block-layout.js +451 -0
  159. package/dist/src/lib/block-layout.js.map +1 -0
  160. package/dist/src/lib/block-selector.d.ts +58 -0
  161. package/dist/src/lib/block-selector.js +92 -0
  162. package/dist/src/lib/block-selector.js.map +1 -0
  163. package/dist/src/lib/canonical-json.d.ts +12 -0
  164. package/dist/src/lib/canonical-json.js +35 -0
  165. package/dist/src/lib/canonical-json.js.map +1 -0
  166. package/dist/src/lib/channel.d.ts +30 -0
  167. package/dist/src/lib/channel.js +68 -0
  168. package/dist/src/lib/channel.js.map +1 -0
  169. package/dist/src/lib/cli-manifest.d.ts +68 -0
  170. package/dist/src/lib/cli-manifest.js +71 -0
  171. package/dist/src/lib/cli-manifest.js.map +1 -0
  172. package/dist/src/lib/codegen-shared/generatedFiles.d.ts +101 -0
  173. package/dist/src/lib/codegen-shared/generatedFiles.js +191 -0
  174. package/dist/src/lib/codegen-shared/generatedFiles.js.map +1 -0
  175. package/dist/src/lib/codegen-shared/prettierStable.d.ts +262 -0
  176. package/dist/src/lib/codegen-shared/prettierStable.js +610 -0
  177. package/dist/src/lib/codegen-shared/prettierStable.js.map +1 -0
  178. package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.d.ts +38 -0
  179. package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.js +46 -0
  180. package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.js.map +1 -0
  181. package/dist/src/lib/collection-export.d.ts +212 -0
  182. package/dist/src/lib/collection-export.js +288 -0
  183. package/dist/src/lib/collection-export.js.map +1 -0
  184. package/dist/src/lib/config-json-field.d.ts +28 -0
  185. package/dist/src/lib/config-json-field.js +56 -0
  186. package/dist/src/lib/config-json-field.js.map +1 -0
  187. package/dist/src/lib/config-object-descriptor.d.ts +127 -0
  188. package/dist/src/lib/config-object-descriptor.js +740 -0
  189. package/dist/src/lib/config-object-descriptor.js.map +1 -0
  190. package/dist/src/lib/config-payload.d.ts +92 -0
  191. package/dist/src/lib/config-payload.js +161 -0
  192. package/dist/src/lib/config-payload.js.map +1 -0
  193. package/dist/src/lib/config-surface.d.ts +141 -0
  194. package/dist/src/lib/config-surface.js +368 -0
  195. package/dist/src/lib/config-surface.js.map +1 -0
  196. package/dist/src/lib/config-toml.d.ts +10 -0
  197. package/dist/src/lib/config-toml.js +42 -0
  198. package/dist/src/lib/config-toml.js.map +1 -0
  199. package/dist/src/lib/config.d.ts +71 -0
  200. package/dist/src/lib/config.js +71 -68
  201. package/dist/src/lib/config.js.map +1 -1
  202. package/dist/src/lib/confirm-prompt.d.ts +83 -0
  203. package/dist/src/lib/confirm-prompt.js +110 -0
  204. package/dist/src/lib/confirm-prompt.js.map +1 -0
  205. package/dist/src/lib/constants.d.ts +11 -0
  206. package/dist/src/lib/constants.js +12 -0
  207. package/dist/src/lib/constants.js.map +1 -0
  208. package/dist/src/lib/crash-handlers.d.ts +20 -0
  209. package/dist/src/lib/crash-handlers.js +49 -0
  210. package/dist/src/lib/crash-handlers.js.map +1 -0
  211. package/dist/src/lib/credentials-store.d.ts +104 -0
  212. package/dist/src/lib/credentials-store.js +336 -0
  213. package/dist/src/lib/credentials-store.js.map +1 -0
  214. package/dist/src/lib/csv.d.ts +47 -0
  215. package/dist/src/lib/csv.js +172 -0
  216. package/dist/src/lib/csv.js.map +1 -0
  217. package/dist/src/lib/data-input.d.ts +23 -0
  218. package/dist/src/lib/data-input.js +50 -0
  219. package/dist/src/lib/data-input.js.map +1 -0
  220. package/dist/src/lib/db-codegen/dbFingerprint.d.ts +10 -0
  221. package/dist/src/lib/db-codegen/dbFingerprint.js +17 -0
  222. package/dist/src/lib/db-codegen/dbFingerprint.js.map +1 -0
  223. package/dist/src/lib/db-codegen/dbGenerator.d.ts +67 -0
  224. package/dist/src/lib/db-codegen/dbGenerator.js +170 -0
  225. package/dist/src/lib/db-codegen/dbGenerator.js.map +1 -0
  226. package/dist/src/lib/db-codegen/dbNaming.d.ts +87 -0
  227. package/dist/src/lib/db-codegen/dbNaming.js +180 -0
  228. package/dist/src/lib/db-codegen/dbNaming.js.map +1 -0
  229. package/dist/src/lib/db-codegen/dbTemplates.d.ts +272 -0
  230. package/dist/src/lib/db-codegen/dbTemplates.js +480 -0
  231. package/dist/src/lib/db-codegen/dbTemplates.js.map +1 -0
  232. package/dist/src/lib/db-codegen/dbTsTypes.d.ts +73 -0
  233. package/dist/src/lib/db-codegen/dbTsTypes.js +139 -0
  234. package/dist/src/lib/db-codegen/dbTsTypes.js.map +1 -0
  235. package/dist/src/lib/db-codegen/dbTypeIR.d.ts +146 -0
  236. package/dist/src/lib/db-codegen/dbTypeIR.js +525 -0
  237. package/dist/src/lib/db-codegen/dbTypeIR.js.map +1 -0
  238. package/dist/src/lib/db-codegen/generated-operation-def-descriptor.d.ts +112 -0
  239. package/dist/src/lib/db-codegen/generated-operation-def-descriptor.js +211 -0
  240. package/dist/src/lib/db-codegen/generated-operation-def-descriptor.js.map +1 -0
  241. package/dist/src/lib/deprecation.d.ts +22 -0
  242. package/dist/src/lib/deprecation.js +43 -0
  243. package/dist/src/lib/deprecation.js.map +1 -0
  244. package/dist/src/lib/document-export-permissions.d.ts +30 -0
  245. package/dist/src/lib/document-export-permissions.js +54 -0
  246. package/dist/src/lib/document-export-permissions.js.map +1 -0
  247. package/dist/src/lib/document-ingest-artifact.d.ts +120 -0
  248. package/dist/src/lib/document-ingest-artifact.js +505 -0
  249. package/dist/src/lib/document-ingest-artifact.js.map +1 -0
  250. package/dist/src/lib/document-ingest-input.d.ts +51 -0
  251. package/dist/src/lib/document-ingest-input.js +132 -0
  252. package/dist/src/lib/document-ingest-input.js.map +1 -0
  253. package/dist/src/lib/document-ingest-rows.d.ts +137 -0
  254. package/dist/src/lib/document-ingest-rows.js +181 -0
  255. package/dist/src/lib/document-ingest-rows.js.map +1 -0
  256. package/dist/src/lib/document-ingest.d.ts +101 -0
  257. package/dist/src/lib/document-ingest.js +384 -0
  258. package/dist/src/lib/document-ingest.js.map +1 -0
  259. package/dist/src/lib/env-resolver-core.d.ts +258 -0
  260. package/dist/src/lib/env-resolver-core.js +447 -0
  261. package/dist/src/lib/env-resolver-core.js.map +1 -0
  262. package/dist/src/lib/env-resolver.d.ts +99 -0
  263. package/dist/src/lib/env-resolver.js +153 -0
  264. package/dist/src/lib/env-resolver.js.map +1 -0
  265. package/dist/src/lib/fetch.d.ts +5 -0
  266. package/dist/src/lib/function-bundle.d.ts +147 -0
  267. package/dist/src/lib/function-bundle.js +341 -0
  268. package/dist/src/lib/function-bundle.js.map +1 -0
  269. package/dist/src/lib/function-collect.d.ts +123 -0
  270. package/dist/src/lib/function-collect.js +610 -0
  271. package/dist/src/lib/function-collect.js.map +1 -0
  272. package/dist/src/lib/function-db-types.d.ts +202 -0
  273. package/dist/src/lib/function-db-types.js +870 -0
  274. package/dist/src/lib/function-db-types.js.map +1 -0
  275. package/dist/src/lib/function-document-types.d.ts +144 -0
  276. package/dist/src/lib/function-document-types.js +370 -0
  277. package/dist/src/lib/function-document-types.js.map +1 -0
  278. package/dist/src/lib/function-grants-preflight.d.ts +64 -0
  279. package/dist/src/lib/function-grants-preflight.js +105 -0
  280. package/dist/src/lib/function-grants-preflight.js.map +1 -0
  281. package/dist/src/lib/function-log-lines.d.ts +76 -0
  282. package/dist/src/lib/function-log-lines.js +160 -0
  283. package/dist/src/lib/function-log-lines.js.map +1 -0
  284. package/dist/src/lib/function-log-row.d.ts +29 -0
  285. package/dist/src/lib/function-log-row.js +73 -0
  286. package/dist/src/lib/function-log-row.js.map +1 -0
  287. package/dist/src/lib/function-log-tail.d.ts +132 -0
  288. package/dist/src/lib/function-log-tail.js +262 -0
  289. package/dist/src/lib/function-log-tail.js.map +1 -0
  290. package/dist/src/lib/function-run.d.ts +289 -0
  291. package/dist/src/lib/function-run.js +389 -0
  292. package/dist/src/lib/function-run.js.map +1 -0
  293. package/dist/src/lib/function-schema-codegen.d.ts +143 -0
  294. package/dist/src/lib/function-schema-codegen.js +420 -0
  295. package/dist/src/lib/function-schema-codegen.js.map +1 -0
  296. package/dist/src/lib/function-sync.d.ts +459 -0
  297. package/dist/src/lib/function-sync.js +1258 -0
  298. package/dist/src/lib/function-sync.js.map +1 -0
  299. package/dist/src/lib/function-trigger-listing.d.ts +27 -0
  300. package/dist/src/lib/function-trigger-listing.js +70 -0
  301. package/dist/src/lib/function-trigger-listing.js.map +1 -0
  302. package/dist/src/lib/function-triggers.d.ts +66 -0
  303. package/dist/src/lib/function-triggers.js +285 -0
  304. package/dist/src/lib/function-triggers.js.map +1 -0
  305. package/dist/src/lib/function-typecheck.d.ts +86 -0
  306. package/dist/src/lib/function-typecheck.js +370 -0
  307. package/dist/src/lib/function-typecheck.js.map +1 -0
  308. package/dist/src/lib/function-versions.d.ts +122 -0
  309. package/dist/src/lib/function-versions.js +182 -0
  310. package/dist/src/lib/function-versions.js.map +1 -0
  311. package/dist/src/lib/generated-allowlist.d.ts +28 -0
  312. package/dist/src/lib/generated-allowlist.js +280 -0
  313. package/dist/src/lib/generated-allowlist.js.map +1 -0
  314. package/dist/src/lib/generated-config-surfaces.d.ts +2936 -0
  315. package/dist/src/lib/generated-config-surfaces.js +10593 -0
  316. package/dist/src/lib/generated-config-surfaces.js.map +1 -0
  317. package/dist/src/lib/generated-sdk-types.d.ts +12 -0
  318. package/dist/src/lib/generated-sdk-types.js +13 -0
  319. package/dist/src/lib/generated-sdk-types.js.map +1 -0
  320. package/dist/src/lib/generated-template-lint.d.ts +212 -0
  321. package/dist/src/lib/generated-template-lint.js +624 -0
  322. package/dist/src/lib/generated-template-lint.js.map +1 -0
  323. package/dist/src/lib/generated-workflow-model-fields.d.ts +20 -0
  324. package/dist/src/lib/generated-workflow-model-fields.js +53 -0
  325. package/dist/src/lib/generated-workflow-model-fields.js.map +1 -0
  326. package/dist/src/lib/google-client-secret-status.d.ts +35 -0
  327. package/dist/src/lib/google-client-secret-status.js +56 -0
  328. package/dist/src/lib/google-client-secret-status.js.map +1 -0
  329. package/dist/src/lib/init-adopt.d.ts +16 -0
  330. package/dist/src/lib/init-adopt.js +34 -0
  331. package/dist/src/lib/init-adopt.js.map +1 -0
  332. package/dist/src/lib/init-assets.d.ts +39 -0
  333. package/dist/src/lib/init-assets.js +97 -0
  334. package/dist/src/lib/init-assets.js.map +1 -0
  335. package/dist/src/lib/init-client-platforms.d.ts +14 -0
  336. package/dist/src/lib/init-client-platforms.js +71 -0
  337. package/dist/src/lib/init-client-platforms.js.map +1 -0
  338. package/dist/src/lib/init-config.d.ts +98 -0
  339. package/dist/src/lib/init-config.js +186 -0
  340. package/dist/src/lib/init-config.js.map +1 -0
  341. package/dist/src/lib/init-email-redirect-uris.d.ts +37 -0
  342. package/dist/src/lib/init-email-redirect-uris.js +46 -0
  343. package/dist/src/lib/init-email-redirect-uris.js.map +1 -0
  344. package/dist/src/lib/init-ios-links.d.ts +91 -0
  345. package/dist/src/lib/init-ios-links.js +219 -0
  346. package/dist/src/lib/init-ios-links.js.map +1 -0
  347. package/dist/src/lib/init-plan.d.ts +80 -0
  348. package/dist/src/lib/init-plan.js +95 -0
  349. package/dist/src/lib/init-plan.js.map +1 -0
  350. package/dist/src/lib/init-production-env.d.ts +48 -0
  351. package/dist/src/lib/init-production-env.js +59 -0
  352. package/dist/src/lib/init-production-env.js.map +1 -0
  353. package/dist/src/lib/init-schema.d.ts +74 -0
  354. package/dist/src/lib/init-schema.js +358 -0
  355. package/dist/src/lib/init-schema.js.map +1 -0
  356. package/dist/src/lib/init-xcode.d.ts +34 -0
  357. package/dist/src/lib/init-xcode.js +138 -0
  358. package/dist/src/lib/init-xcode.js.map +1 -0
  359. package/dist/src/lib/integration-request-config.d.ts +30 -0
  360. package/dist/src/lib/integration-request-config.js +145 -0
  361. package/dist/src/lib/integration-request-config.js.map +1 -0
  362. package/dist/src/lib/integration-selector.d.ts +42 -0
  363. package/dist/src/lib/integration-selector.js +46 -0
  364. package/dist/src/lib/integration-selector.js.map +1 -0
  365. package/dist/src/lib/ios-app-id.d.ts +34 -0
  366. package/dist/src/lib/ios-app-id.js +69 -0
  367. package/dist/src/lib/ios-app-id.js.map +1 -0
  368. package/dist/src/lib/list-options.d.ts +68 -0
  369. package/dist/src/lib/list-options.js +89 -0
  370. package/dist/src/lib/list-options.js.map +1 -0
  371. package/dist/src/lib/local-state.d.ts +55 -0
  372. package/dist/src/lib/local-state.js +167 -0
  373. package/dist/src/lib/local-state.js.map +1 -0
  374. package/dist/src/lib/local-test-cases.d.ts +63 -0
  375. package/dist/src/lib/local-test-cases.js +136 -0
  376. package/dist/src/lib/local-test-cases.js.map +1 -0
  377. package/dist/src/lib/log-inspection.d.ts +710 -0
  378. package/dist/src/lib/log-inspection.js +814 -0
  379. package/dist/src/lib/log-inspection.js.map +1 -0
  380. package/dist/src/lib/logout-admin-session.d.ts +33 -0
  381. package/dist/src/lib/logout-admin-session.js +70 -0
  382. package/dist/src/lib/logout-admin-session.js.map +1 -0
  383. package/dist/src/lib/migration-nag.d.ts +49 -0
  384. package/dist/src/lib/migration-nag.js +164 -0
  385. package/dist/src/lib/migration-nag.js.map +1 -0
  386. package/dist/src/lib/object-status-filter.d.ts +22 -0
  387. package/dist/src/lib/object-status-filter.js +45 -0
  388. package/dist/src/lib/object-status-filter.js.map +1 -0
  389. package/dist/src/lib/output.d.ts +124 -0
  390. package/dist/src/lib/output.js +219 -8
  391. package/dist/src/lib/output.js.map +1 -1
  392. package/dist/src/lib/package-manager.d.ts +140 -0
  393. package/dist/src/lib/package-manager.js +305 -0
  394. package/dist/src/lib/package-manager.js.map +1 -0
  395. package/dist/src/lib/paginate.d.ts +82 -0
  396. package/dist/src/lib/paginate.js +99 -0
  397. package/dist/src/lib/paginate.js.map +1 -0
  398. package/dist/src/lib/platform-owned.d.ts +63 -0
  399. package/dist/src/lib/platform-owned.js +85 -0
  400. package/dist/src/lib/platform-owned.js.map +1 -0
  401. package/dist/src/lib/project-config.d.ts +122 -0
  402. package/dist/src/lib/project-config.js +244 -0
  403. package/dist/src/lib/project-config.js.map +1 -0
  404. package/dist/src/lib/prompt-cost-format.d.ts +11 -0
  405. package/dist/src/lib/prompt-cost-format.js +41 -0
  406. package/dist/src/lib/prompt-cost-format.js.map +1 -0
  407. package/dist/src/lib/prompt-schema-codegen.d.ts +147 -0
  408. package/dist/src/lib/prompt-schema-codegen.js +462 -0
  409. package/dist/src/lib/prompt-schema-codegen.js.map +1 -0
  410. package/dist/src/lib/query-operators.d.ts +43 -0
  411. package/dist/src/lib/query-operators.js +80 -0
  412. package/dist/src/lib/query-operators.js.map +1 -0
  413. package/dist/src/lib/record-filter.d.ts +18 -0
  414. package/dist/src/lib/record-filter.js +55 -0
  415. package/dist/src/lib/record-filter.js.map +1 -0
  416. package/dist/src/lib/refresh-admin-credentials.d.ts +73 -0
  417. package/dist/src/lib/refresh-admin-credentials.js +123 -0
  418. package/dist/src/lib/refresh-admin-credentials.js.map +1 -0
  419. package/dist/src/lib/resolve-init-dev-port.d.ts +56 -0
  420. package/dist/src/lib/resolve-init-dev-port.js +55 -0
  421. package/dist/src/lib/resolve-init-dev-port.js.map +1 -0
  422. package/dist/src/lib/resolve-init-server.d.ts +64 -0
  423. package/dist/src/lib/resolve-init-server.js +77 -0
  424. package/dist/src/lib/resolve-init-server.js.map +1 -0
  425. package/dist/src/lib/resolve-owner.d.ts +19 -0
  426. package/dist/src/lib/resolve-owner.js +20 -0
  427. package/dist/src/lib/resolve-owner.js.map +1 -0
  428. package/dist/src/lib/resolve-platform.d.ts +74 -0
  429. package/dist/src/lib/resolve-platform.js +105 -0
  430. package/dist/src/lib/resolve-platform.js.map +1 -0
  431. package/dist/src/lib/run-status.d.ts +19 -0
  432. package/dist/src/lib/run-status.generated.d.ts +39 -0
  433. package/dist/src/lib/run-status.generated.js +66 -0
  434. package/dist/src/lib/run-status.generated.js.map +1 -0
  435. package/dist/src/lib/run-status.js +19 -0
  436. package/dist/src/lib/run-status.js.map +1 -0
  437. package/dist/src/lib/server-text-normalization.d.ts +51 -0
  438. package/dist/src/lib/server-text-normalization.js +90 -0
  439. package/dist/src/lib/server-text-normalization.js.map +1 -0
  440. package/dist/src/lib/server-url.d.ts +22 -0
  441. package/dist/src/lib/server-url.js +33 -0
  442. package/dist/src/lib/server-url.js.map +1 -0
  443. package/dist/src/lib/signing-secret-status.d.ts +81 -0
  444. package/dist/src/lib/signing-secret-status.js +116 -0
  445. package/dist/src/lib/signing-secret-status.js.map +1 -0
  446. package/dist/src/lib/skill-installer.d.ts +71 -0
  447. package/dist/src/lib/skill-installer.js +441 -0
  448. package/dist/src/lib/skill-installer.js.map +1 -0
  449. package/dist/src/lib/snapshot-audit-source.d.ts +45 -0
  450. package/dist/src/lib/snapshot-audit-source.js +58 -0
  451. package/dist/src/lib/snapshot-audit-source.js.map +1 -0
  452. package/dist/src/lib/snapshot-audit-store.d.ts +52 -0
  453. package/dist/src/lib/snapshot-audit-store.js +196 -0
  454. package/dist/src/lib/snapshot-audit-store.js.map +1 -0
  455. package/dist/src/lib/snapshot-audit.d.ts +207 -0
  456. package/dist/src/lib/snapshot-audit.js +431 -0
  457. package/dist/src/lib/snapshot-audit.js.map +1 -0
  458. package/dist/src/lib/snapshot-build-rows.d.ts +60 -0
  459. package/dist/src/lib/snapshot-build-rows.js +87 -0
  460. package/dist/src/lib/snapshot-build-rows.js.map +1 -0
  461. package/dist/src/lib/snapshot-build.d.ts +50 -0
  462. package/dist/src/lib/snapshot-build.js +111 -0
  463. package/dist/src/lib/snapshot-build.js.map +1 -0
  464. package/dist/src/lib/snapshot-manifest-layout.d.ts +61 -0
  465. package/dist/src/lib/snapshot-manifest-layout.js +70 -0
  466. package/dist/src/lib/snapshot-manifest-layout.js.map +1 -0
  467. package/dist/src/lib/snapshots.d.ts +98 -0
  468. package/dist/src/lib/snapshots.js +294 -0
  469. package/dist/src/lib/snapshots.js.map +1 -0
  470. package/dist/src/lib/step-run-table.d.ts +43 -0
  471. package/dist/src/lib/step-run-table.js +129 -0
  472. package/dist/src/lib/step-run-table.js.map +1 -0
  473. package/dist/src/lib/storage-pending-retry.d.ts +26 -0
  474. package/dist/src/lib/storage-pending-retry.js +42 -0
  475. package/dist/src/lib/storage-pending-retry.js.map +1 -0
  476. package/dist/src/lib/swift-codegen/agentGenerator.d.ts +42 -0
  477. package/dist/src/lib/swift-codegen/agentGenerator.js +118 -0
  478. package/dist/src/lib/swift-codegen/agentGenerator.js.map +1 -0
  479. package/dist/src/lib/swift-codegen/banners.d.ts +24 -0
  480. package/dist/src/lib/swift-codegen/banners.js +25 -0
  481. package/dist/src/lib/swift-codegen/banners.js.map +1 -0
  482. package/dist/src/lib/swift-codegen/dbGenerator.d.ts +113 -0
  483. package/dist/src/lib/swift-codegen/dbGenerator.js +926 -0
  484. package/dist/src/lib/swift-codegen/dbGenerator.js.map +1 -0
  485. package/dist/src/lib/swift-codegen/dbSwiftTypes.d.ts +42 -0
  486. package/dist/src/lib/swift-codegen/dbSwiftTypes.js +100 -0
  487. package/dist/src/lib/swift-codegen/dbSwiftTypes.js.map +1 -0
  488. package/dist/src/lib/swift-codegen/functionGenerator.d.ts +139 -0
  489. package/dist/src/lib/swift-codegen/functionGenerator.js +462 -0
  490. package/dist/src/lib/swift-codegen/functionGenerator.js.map +1 -0
  491. package/dist/src/lib/swift-codegen/generator.d.ts +100 -0
  492. package/dist/src/lib/swift-codegen/generator.js +457 -0
  493. package/dist/src/lib/swift-codegen/generator.js.map +1 -0
  494. package/dist/src/lib/swift-codegen/schemaToSwift.d.ts +87 -0
  495. package/dist/src/lib/swift-codegen/schemaToSwift.js +661 -0
  496. package/dist/src/lib/swift-codegen/schemaToSwift.js.map +1 -0
  497. package/dist/src/lib/swift-codegen/siblingSymbols.d.ts +94 -0
  498. package/dist/src/lib/swift-codegen/siblingSymbols.js +155 -0
  499. package/dist/src/lib/swift-codegen/siblingSymbols.js.map +1 -0
  500. package/dist/src/lib/swift-codegen/swiftNaming.d.ts +85 -0
  501. package/dist/src/lib/swift-codegen/swiftNaming.js +198 -0
  502. package/dist/src/lib/swift-codegen/swiftNaming.js.map +1 -0
  503. package/dist/src/lib/sync-dir-selector.d.ts +21 -0
  504. package/dist/src/lib/sync-dir-selector.js +30 -0
  505. package/dist/src/lib/sync-dir-selector.js.map +1 -0
  506. package/dist/src/lib/sync-paths.d.ts +128 -0
  507. package/dist/src/lib/sync-paths.js +195 -0
  508. package/dist/src/lib/sync-paths.js.map +1 -0
  509. package/dist/src/lib/sync-resource-types.d.ts +563 -0
  510. package/dist/src/lib/sync-resource-types.js +1073 -0
  511. package/dist/src/lib/sync-resource-types.js.map +1 -0
  512. package/dist/src/lib/sync-selectors.d.ts +138 -0
  513. package/dist/src/lib/sync-selectors.js +289 -0
  514. package/dist/src/lib/sync-selectors.js.map +1 -0
  515. package/dist/src/lib/template.d.ts +170 -0
  516. package/dist/src/lib/template.js +484 -68
  517. package/dist/src/lib/template.js.map +1 -1
  518. package/dist/src/lib/test-case-file-names.d.ts +40 -0
  519. package/dist/src/lib/test-case-file-names.js +91 -0
  520. package/dist/src/lib/test-case-file-names.js.map +1 -0
  521. package/dist/src/lib/test-case-keys.d.ts +29 -0
  522. package/dist/src/lib/test-case-keys.js +55 -0
  523. package/dist/src/lib/test-case-keys.js.map +1 -0
  524. package/dist/src/lib/test-case-variables.d.ts +29 -0
  525. package/dist/src/lib/test-case-variables.js +71 -0
  526. package/dist/src/lib/test-case-variables.js.map +1 -0
  527. package/dist/src/lib/token-inject.d.ts +56 -0
  528. package/dist/src/lib/token-inject.js +204 -0
  529. package/dist/src/lib/token-inject.js.map +1 -0
  530. package/dist/src/lib/toml-database-config.d.ts +123 -0
  531. package/dist/src/lib/toml-database-config.js +544 -0
  532. package/dist/src/lib/toml-database-config.js.map +1 -0
  533. package/dist/src/lib/toml-metadata-config.d.ts +151 -0
  534. package/dist/src/lib/toml-metadata-config.js +476 -0
  535. package/dist/src/lib/toml-metadata-config.js.map +1 -0
  536. package/dist/src/lib/toml-native-form.d.ts +46 -0
  537. package/dist/src/lib/toml-native-form.js +78 -0
  538. package/dist/src/lib/toml-native-form.js.map +1 -0
  539. package/dist/src/lib/toml-params-validator.d.ts +129 -0
  540. package/dist/src/lib/toml-params-validator.js +298 -0
  541. package/dist/src/lib/toml-params-validator.js.map +1 -0
  542. package/dist/src/lib/toml-scalar-edit.d.ts +43 -0
  543. package/dist/src/lib/toml-scalar-edit.js +283 -0
  544. package/dist/src/lib/toml-scalar-edit.js.map +1 -0
  545. package/dist/src/lib/user-selector.d.ts +24 -0
  546. package/dist/src/lib/user-selector.js +33 -0
  547. package/dist/src/lib/user-selector.js.map +1 -0
  548. package/dist/src/lib/version-check.d.ts +35 -0
  549. package/dist/src/lib/version-check.js +241 -0
  550. package/dist/src/lib/version-check.js.map +1 -0
  551. package/dist/src/lib/watch.d.ts +121 -0
  552. package/dist/src/lib/watch.js +169 -0
  553. package/dist/src/lib/watch.js.map +1 -0
  554. package/dist/src/lib/web-url.d.ts +40 -0
  555. package/dist/src/lib/web-url.js +76 -0
  556. package/dist/src/lib/web-url.js.map +1 -0
  557. package/dist/src/lib/webhook-deliver.d.ts +209 -0
  558. package/dist/src/lib/webhook-deliver.js +519 -0
  559. package/dist/src/lib/webhook-deliver.js.map +1 -0
  560. package/dist/src/lib/workflow-apply.d.ts +110 -0
  561. package/dist/src/lib/workflow-apply.js +164 -0
  562. package/dist/src/lib/workflow-apply.js.map +1 -0
  563. package/dist/src/lib/workflow-codegen/generated-schema-descriptor.d.ts +129 -0
  564. package/dist/src/lib/workflow-codegen/generated-schema-descriptor.js +269 -0
  565. package/dist/src/lib/workflow-codegen/generated-schema-descriptor.js.map +1 -0
  566. package/dist/src/lib/workflow-codegen/generator.d.ts +96 -0
  567. package/dist/src/lib/workflow-codegen/generator.js +361 -0
  568. package/dist/src/lib/workflow-codegen/generator.js.map +1 -0
  569. package/dist/src/lib/workflow-codegen/invokerIR.d.ts +94 -0
  570. package/dist/src/lib/workflow-codegen/invokerIR.js +76 -0
  571. package/dist/src/lib/workflow-codegen/invokerIR.js.map +1 -0
  572. package/dist/src/lib/workflow-codegen/naming.d.ts +33 -0
  573. package/dist/src/lib/workflow-codegen/naming.js +81 -0
  574. package/dist/src/lib/workflow-codegen/naming.js.map +1 -0
  575. package/dist/src/lib/workflow-codegen/schemaToTs.d.ts +80 -0
  576. package/dist/src/lib/workflow-codegen/schemaToTs.js +303 -0
  577. package/dist/src/lib/workflow-codegen/schemaToTs.js.map +1 -0
  578. package/dist/src/lib/workflow-config-apply.d.ts +70 -0
  579. package/dist/src/lib/workflow-config-apply.js +137 -0
  580. package/dist/src/lib/workflow-config-apply.js.map +1 -0
  581. package/dist/src/lib/workflow-config-sidecar.d.ts +63 -0
  582. package/dist/src/lib/workflow-config-sidecar.js +96 -0
  583. package/dist/src/lib/workflow-config-sidecar.js.map +1 -0
  584. package/dist/src/lib/workflow-defaults.d.ts +29 -0
  585. package/dist/src/lib/workflow-defaults.js +41 -0
  586. package/dist/src/lib/workflow-defaults.js.map +1 -0
  587. package/dist/src/lib/workflow-field-descriptor.d.ts +91 -0
  588. package/dist/src/lib/workflow-field-descriptor.js +153 -0
  589. package/dist/src/lib/workflow-field-descriptor.js.map +1 -0
  590. package/dist/src/lib/workflow-fragments.d.ts +64 -0
  591. package/dist/src/lib/workflow-fragments.js +342 -0
  592. package/dist/src/lib/workflow-fragments.js.map +1 -0
  593. package/dist/src/lib/workflow-include-preserve.d.ts +76 -0
  594. package/dist/src/lib/workflow-include-preserve.js +286 -0
  595. package/dist/src/lib/workflow-include-preserve.js.map +1 -0
  596. package/dist/src/lib/workflow-payload.d.ts +98 -0
  597. package/dist/src/lib/workflow-payload.js +178 -0
  598. package/dist/src/lib/workflow-payload.js.map +1 -0
  599. package/dist/src/lib/workflow-toml-validator.d.ts +211 -0
  600. package/dist/src/lib/workflow-toml-validator.js +770 -0
  601. package/dist/src/lib/workflow-toml-validator.js.map +1 -0
  602. package/dist/src/lib/workflow-usage.d.ts +196 -0
  603. package/dist/src/lib/workflow-usage.js +310 -0
  604. package/dist/src/lib/workflow-usage.js.map +1 -0
  605. package/dist/src/types/index.d.ts +591 -0
  606. package/dist/src/validators.d.ts +65 -0
  607. package/dist/src/validators.js +64 -0
  608. package/dist/src/validators.js.map +1 -0
  609. package/package.json +34 -9
@@ -0,0 +1,53 @@
1
+ /**
2
+ * GENERATED FILE — DO NOT EDIT BY HAND.
3
+ *
4
+ * Source of truth: the `WorkflowDefinition` model in the repo-root
5
+ * `models.yaml` — the one statically-parseable server anchor for the
6
+ * `[workflow]`-level config surface (issue #2326, Phase 1 of #1976).
7
+ *
8
+ * Regenerate with:
9
+ * node cli/scripts/gen-workflow-fields.mjs (runs automatically at CLI prebuild)
10
+ *
11
+ * A CI freshness guard (`cli/scripts/gen-workflow-fields.mjs --check`, also
12
+ * asserted by `cli/tests/unit/workflow-field-descriptor-drift-guard.test.ts`)
13
+ * fails if this committed artifact does not match a fresh parse of
14
+ * `models.yaml`. The same test asserts every field below is classified in
15
+ * `cli/src/lib/workflow-field-descriptor.ts` as synced, structural, or
16
+ * internal — so a new server-side workflow field cannot be silently ignored by
17
+ * the CLI.
18
+ */
19
+ /** Every `WorkflowDefinition` field, in `models.yaml` declaration order (#2326). */
20
+ export const GENERATED_WORKFLOW_MODEL_FIELDS = [
21
+ "workflowId",
22
+ "appId",
23
+ "workflowKey",
24
+ "name",
25
+ "status",
26
+ "latestRevision",
27
+ "description",
28
+ "stepsR2Key",
29
+ "draftStepsR2Key",
30
+ "draftInputSchema",
31
+ "draftOutputSchema",
32
+ "draftModifiedAt",
33
+ "activeConfigId",
34
+ "inputSchema",
35
+ "outputSchema",
36
+ "perUserMaxRunning",
37
+ "perUserMaxQueued",
38
+ "perAppMaxRunning",
39
+ "perAppMaxQueued",
40
+ "queueTtlSeconds",
41
+ "dequeueOrder",
42
+ "requiresClientApply",
43
+ "syncCallable",
44
+ "accessRule",
45
+ "metadataManifest",
46
+ "runAs",
47
+ "lock",
48
+ "capabilities",
49
+ "createdBy",
50
+ "createdAt",
51
+ "modifiedAt",
52
+ ];
53
+ //# sourceMappingURL=generated-workflow-model-fields.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"generated-workflow-model-fields.js","sourceRoot":"","sources":["../../../src/lib/generated-workflow-model-fields.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,oFAAoF;AACpF,MAAM,CAAC,MAAM,+BAA+B,GAAsB;IAChE,YAAY;IACZ,OAAO;IACP,aAAa;IACb,MAAM;IACN,QAAQ;IACR,gBAAgB;IAChB,aAAa;IACb,YAAY;IACZ,iBAAiB;IACjB,kBAAkB;IAClB,mBAAmB;IACnB,iBAAiB;IACjB,gBAAgB;IAChB,aAAa;IACb,cAAc;IACd,mBAAmB;IACnB,kBAAkB;IAClB,kBAAkB;IAClB,iBAAiB;IACjB,iBAAiB;IACjB,cAAc;IACd,qBAAqB;IACrB,cAAc;IACd,YAAY;IACZ,kBAAkB;IAClB,OAAO;IACP,MAAM;IACN,cAAc;IACd,WAAW;IACX,WAAW;IACX,YAAY;CACb,CAAC"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * The operator-facing warning for an app whose stored `googleClientSecret` is
3
+ * not a `{{secrets.KEY}}` reference (#2256, #2307).
4
+ *
5
+ * The server never sends such a value back: `GET /settings` omits the key and
6
+ * reports `googleClientSecretStatus` in its place, so the only way an operator
7
+ * learns the field is still unmigrated is a command that reads the status and
8
+ * says so. Two do — `apps get` and `config pull` — and
9
+ * each has two statuses to describe, so the wording lives here once and the
10
+ * call sites supply only what genuinely differs: how the field is named in that
11
+ * context, where the value is missing from, and what the un-migrated value
12
+ * blocks.
13
+ *
14
+ * Modelled on `signingSecretStatusWarning` (the same problem for
15
+ * `webhook.signingSecret`), deliberately kept as a separate function: the
16
+ * remediation names a different TOML key, and a `legacy-literal` blocks
17
+ * different things on the two fields.
18
+ *
19
+ * Returns `null` for a status that needs no warning (`reference`, `unset`, or
20
+ * anything a newer server adds), so a call site is one `if` rather than two.
21
+ */
22
+ export declare function googleClientSecretStatusWarning(status: string | null | undefined, context: {
23
+ /** How to name the field, e.g. `"googleClientSecret"`. Starts the sentence. */
24
+ subject: string;
25
+ /** Where the value is missing from, e.g. `"this output"`. */
26
+ withheldFrom: string;
27
+ /**
28
+ * What an un-migrated value blocks, e.g. `"the next settings write will be
29
+ * rejected"`. Every settings write on such an app fails unless it carries a
30
+ * `googleClientSecret` that migrates the field
31
+ * (`validateGoogleClientSecretMigration`), and a pulled `app.toml` never
32
+ * carries one — so for the pull paths this is the concrete consequence.
33
+ */
34
+ blocks: string;
35
+ }): string | null;
@@ -0,0 +1,56 @@
1
+ /**
2
+ * The operator-facing warning for an app whose stored `googleClientSecret` is
3
+ * not a `{{secrets.KEY}}` reference (#2256, #2307).
4
+ *
5
+ * The server never sends such a value back: `GET /settings` omits the key and
6
+ * reports `googleClientSecretStatus` in its place, so the only way an operator
7
+ * learns the field is still unmigrated is a command that reads the status and
8
+ * says so. Two do — `apps get` and `config pull` — and
9
+ * each has two statuses to describe, so the wording lives here once and the
10
+ * call sites supply only what genuinely differs: how the field is named in that
11
+ * context, where the value is missing from, and what the un-migrated value
12
+ * blocks.
13
+ *
14
+ * Modelled on `signingSecretStatusWarning` (the same problem for
15
+ * `webhook.signingSecret`), deliberately kept as a separate function: the
16
+ * remediation names a different TOML key, and a `legacy-literal` blocks
17
+ * different things on the two fields.
18
+ *
19
+ * Returns `null` for a status that needs no warning (`reference`, `unset`, or
20
+ * anything a newer server adds), so a call site is one `if` rather than two.
21
+ */
22
+ export function googleClientSecretStatusWarning(status, context) {
23
+ const remediation = "Store the value with `primitive secrets set KEY --value <value>` and set " +
24
+ 'googleClientSecret = "{{secrets.KEY}}".';
25
+ if (status === "legacy-literal") {
26
+ return (`${context.subject} still holds a raw value rather than a {{secrets.KEY}} reference, ` +
27
+ `so it is withheld from ${context.withheldFrom}. Google sign-in keeps working, but the ` +
28
+ `value is deprecated and ${context.blocks} until it is migrated. ${remediation}`);
29
+ }
30
+ // Not a working legacy literal: the stored value carries reference syntax
31
+ // that resolves to nothing, so Google sign-in is already failing (#2332).
32
+ //
33
+ // Two deliberate differences from the branch above, both to keep the
34
+ // rendered settings output byte-identical to what PR #2293 shipped:
35
+ //
36
+ // - `context.blocks` is unused. A push of the pulled file is rejected for
37
+ // this status too (`validateGoogleClientSecretMigration` gates on
38
+ // `isWithheldSecretStatus`, which covers both), but the sign-in outage is
39
+ // the louder problem and the remediation below already fixes both. The
40
+ // sibling `signingSecretStatusWarning` drops `blocks` in its malformed
41
+ // branch the same way.
42
+ // - The remediation sentence is written out rather than interpolating the
43
+ // `remediation` constant above: this one says "the real client secret",
44
+ // which the shared sentence does not.
45
+ //
46
+ // Both are worth revisiting together if `apps get`'s wording is ever
47
+ // allowed to change.
48
+ if (status === "malformed-reference") {
49
+ return (`${context.subject} is neither a {{secrets.KEY}} reference nor a plain stored value — it ` +
50
+ `carries reference syntax that does not resolve, so it is withheld from ${context.withheldFrom} ` +
51
+ "and Google sign-in is already FAILING. Store the real client secret with " +
52
+ '`primitive secrets set KEY --value <value>` and set googleClientSecret = "{{secrets.KEY}}".');
53
+ }
54
+ return null;
55
+ }
56
+ //# sourceMappingURL=google-client-secret-status.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google-client-secret-status.js","sourceRoot":"","sources":["../../../src/lib/google-client-secret-status.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,MAAM,UAAU,+BAA+B,CAC7C,MAAiC,EACjC,OAaC;IAED,MAAM,WAAW,GACf,2EAA2E;QAC3E,yCAAyC,CAAC;IAC5C,IAAI,MAAM,KAAK,gBAAgB,EAAE,CAAC;QAChC,OAAO,CACL,GAAG,OAAO,CAAC,OAAO,oEAAoE;YACtF,0BAA0B,OAAO,CAAC,YAAY,0CAA0C;YACxF,2BAA2B,OAAO,CAAC,MAAM,0BAA0B,WAAW,EAAE,CACjF,CAAC;IACJ,CAAC;IACD,0EAA0E;IAC1E,0EAA0E;IAC1E,EAAE;IACF,qEAAqE;IACrE,oEAAoE;IACpE,EAAE;IACF,4EAA4E;IAC5E,sEAAsE;IACtE,8EAA8E;IAC9E,2EAA2E;IAC3E,2EAA2E;IAC3E,2BAA2B;IAC3B,4EAA4E;IAC5E,4EAA4E;IAC5E,0CAA0C;IAC1C,EAAE;IACF,qEAAqE;IACrE,qBAAqB;IACrB,IAAI,MAAM,KAAK,qBAAqB,EAAE,CAAC;QACrC,OAAO,CACL,GAAG,OAAO,CAAC,OAAO,wEAAwE;YAC1F,0EAA0E,OAAO,CAAC,YAAY,GAAG;YACjG,2EAA2E;YAC3E,6FAA6F,CAC9F,CAAC;IACJ,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -0,0 +1,16 @@
1
+ import { type ProjectConfig, type ProjectEnvironment } from "./project-config.js";
2
+ export interface AdoptedEnvironment {
3
+ name: string;
4
+ config: ProjectEnvironment;
5
+ projectConfig: ProjectConfig;
6
+ projectConfigPath: string;
7
+ }
8
+ /**
9
+ * Resolves the environment `init` adopts from the project rooted at `root`.
10
+ * Throws whatever the loader or the selector throws — a broken or ambiguous
11
+ * project config must stop the run, not be guessed around.
12
+ */
13
+ export declare function resolveAdoptedEnvironment(root: string, options?: {
14
+ explicitEnvName?: string | null;
15
+ envVarName?: string | null;
16
+ }): AdoptedEnvironment;
@@ -0,0 +1,34 @@
1
+ /**
2
+ * Reading the app identity out of the project a run is adopting (#2890).
3
+ *
4
+ * `getCurrentEnvironment()` resolves from the process's working directory,
5
+ * which is not necessarily inside the project being adopted — `primitive init
6
+ * ../ios` resolves against the TARGET, not the cwd. This resolves the same
7
+ * precedence order (`--env` -> `PRIMITIVE_ENV` -> this machine's selection ->
8
+ * the committed default -> the sole environment) against an explicit root.
9
+ */
10
+ import { join } from "path";
11
+ import { readLocalSelection, selectEnvironmentName } from "./env-resolver-core.js";
12
+ import { PROJECT_TREE_DIR, PROJECT_CONFIG_FILENAME, loadProjectConfigFromPath, } from "./project-config.js";
13
+ /**
14
+ * Resolves the environment `init` adopts from the project rooted at `root`.
15
+ * Throws whatever the loader or the selector throws — a broken or ambiguous
16
+ * project config must stop the run, not be guessed around.
17
+ */
18
+ export function resolveAdoptedEnvironment(root, options = {}) {
19
+ const projectConfigPath = join(root, PROJECT_TREE_DIR, PROJECT_CONFIG_FILENAME);
20
+ const projectConfig = loadProjectConfigFromPath(projectConfigPath);
21
+ const { name } = selectEnvironmentName(projectConfig, {
22
+ explicitEnvName: options.explicitEnvName ?? null,
23
+ envVarName: options.envVarName ?? null,
24
+ localSelection: readLocalSelection(projectConfigPath),
25
+ configPath: projectConfigPath,
26
+ });
27
+ return {
28
+ name,
29
+ config: projectConfig.environments[name],
30
+ projectConfig,
31
+ projectConfigPath,
32
+ };
33
+ }
34
+ //# sourceMappingURL=init-adopt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-adopt.js","sourceRoot":"","sources":["../../../src/lib/init-adopt.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AACH,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAC5B,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAC;AACnF,OAAO,EACL,gBAAgB,EAChB,uBAAuB,EACvB,yBAAyB,GAG1B,MAAM,qBAAqB,CAAC;AAS7B;;;;GAIG;AACH,MAAM,UAAU,yBAAyB,CACvC,IAAY,EACZ,UAA2E,EAAE;IAE7E,MAAM,iBAAiB,GAAG,IAAI,CAAC,IAAI,EAAE,gBAAgB,EAAE,uBAAuB,CAAC,CAAC;IAChF,MAAM,aAAa,GAAG,yBAAyB,CAAC,iBAAiB,CAAC,CAAC;IACnE,MAAM,EAAE,IAAI,EAAE,GAAG,qBAAqB,CAAC,aAAoB,EAAE;QAC3D,eAAe,EAAE,OAAO,CAAC,eAAe,IAAI,IAAI;QAChD,UAAU,EAAE,OAAO,CAAC,UAAU,IAAI,IAAI;QACtC,cAAc,EAAE,kBAAkB,CAAC,iBAAiB,CAAC;QACrD,UAAU,EAAE,iBAAiB;KAC9B,CAAC,CAAC;IACH,OAAO;QACL,IAAI;QACJ,MAAM,EAAE,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC;QACxC,aAAa;QACb,iBAAiB;KAClB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,39 @@
1
+ /**
2
+ * The files `primitive init` writes at the ROOT of a repository that holds
3
+ * several clients of one Primitive app (#2890).
4
+ *
5
+ * These are app-wide, not client-wide: each client's own `AGENTS.md`,
6
+ * `package.json`, runtime config and dependencies ship with its template. What
7
+ * belongs here is only what the clients share — which is exactly the part a
8
+ * team otherwise has to reverse-engineer.
9
+ */
10
+ import type { Platform } from "./resolve-platform.js";
11
+ /** Human label for a platform, used in generated prose and summaries. */
12
+ export declare function platformLabel(platform: Platform): string;
13
+ /**
14
+ * The header prepended to the canonical `models/models.toml`.
15
+ *
16
+ * The schema is not client state: its TOML keys are the wire field names, so a
17
+ * second copy that drifts orphans the first one's records. Saying so in the
18
+ * file is the cheapest place for a reader to find that rule.
19
+ */
20
+ export declare const CANONICAL_SCHEMA_HEADER = "# The model schema for this app \u2014 ONE copy, shared by every client.\n#\n# The TOML keys here are the wire field names, so a second copy that drifts\n# orphans the other one's records. Every client reads THIS file:\n# - the web client's codegen input points at it, and its generated barrel\n# imports it directly\n# - the Swift client names it in `bao-codegen.json` beside its sources\n# Add or change a model here, then re-run each client's codegen.\n";
21
+ /**
22
+ * A starter schema for the rare composition that has no template starter to
23
+ * adopt. The scaffolded clients normally supply their own, which is what a
24
+ * composed repo promotes to the root.
25
+ */
26
+ export declare const FALLBACK_STARTER_SCHEMA = "[models.user_prefs.fields.id]\ntype = \"id\"\nauto_assign = true\nindexed = true\nrequired = true\n\n[models.user_prefs.fields.key]\ntype = \"string\"\nindexed = true\nunique = true\n\n[models.user_prefs.fields.value]\ntype = \"string\"\n";
27
+ /**
28
+ * The app-wide `AGENTS.md` for a repository with several clients.
29
+ *
30
+ * Written only when there is no `AGENTS.md` at the root already — a client's
31
+ * own file is never replaced by init.
32
+ */
33
+ export declare function rootAgentsMarkdown(input: {
34
+ appName: string;
35
+ clients: Array<{
36
+ platform: Platform;
37
+ dir: string;
38
+ }>;
39
+ }): string;
@@ -0,0 +1,97 @@
1
+ /** Human label for a platform, used in generated prose and summaries. */
2
+ export function platformLabel(platform) {
3
+ return platform === "ios" ? "iOS (SwiftUI)" : "Web (Vue)";
4
+ }
5
+ /**
6
+ * The header prepended to the canonical `models/models.toml`.
7
+ *
8
+ * The schema is not client state: its TOML keys are the wire field names, so a
9
+ * second copy that drifts orphans the first one's records. Saying so in the
10
+ * file is the cheapest place for a reader to find that rule.
11
+ */
12
+ export const CANONICAL_SCHEMA_HEADER = `# The model schema for this app — ONE copy, shared by every client.
13
+ #
14
+ # The TOML keys here are the wire field names, so a second copy that drifts
15
+ # orphans the other one's records. Every client reads THIS file:
16
+ # - the web client's codegen input points at it, and its generated barrel
17
+ # imports it directly
18
+ # - the Swift client names it in \`bao-codegen.json\` beside its sources
19
+ # Add or change a model here, then re-run each client's codegen.
20
+ `;
21
+ /**
22
+ * A starter schema for the rare composition that has no template starter to
23
+ * adopt. The scaffolded clients normally supply their own, which is what a
24
+ * composed repo promotes to the root.
25
+ */
26
+ export const FALLBACK_STARTER_SCHEMA = `[models.user_prefs.fields.id]
27
+ type = "id"
28
+ auto_assign = true
29
+ indexed = true
30
+ required = true
31
+
32
+ [models.user_prefs.fields.key]
33
+ type = "string"
34
+ indexed = true
35
+ unique = true
36
+
37
+ [models.user_prefs.fields.value]
38
+ type = "string"
39
+ `;
40
+ /**
41
+ * The app-wide `AGENTS.md` for a repository with several clients.
42
+ *
43
+ * Written only when there is no `AGENTS.md` at the root already — a client's
44
+ * own file is never replaced by init.
45
+ */
46
+ export function rootAgentsMarkdown(input) {
47
+ const rows = input.clients
48
+ .map((client) => `- \`${client.dir}/\` — ${platformLabel(client.platform)} client`)
49
+ .join("\n");
50
+ return `# ${input.appName}
51
+
52
+ One Primitive app, several clients. The app is the shared thing: one app ID,
53
+ one set of environments, one exported server config, one model schema. Each
54
+ client is an independent project in its own directory — there is no workspace
55
+ file and no root \`package.json\`.
56
+
57
+ ## Layout
58
+
59
+ - \`primitive/config.json\` — the Primitive environments (backend URL + app ID
60
+ per environment). The single source of truth, for every client.
61
+ - \`primitive/<env>/\` — the exported server config (workflows,
62
+ database type configs, app settings) that \`primitive config diff\` and
63
+ \`primitive config push\` read and write.
64
+ - \`models/models.toml\` — the model schema. ONE copy: its keys are the wire
65
+ field names, so a second copy that drifts orphans the other's records. Each
66
+ client's codegen reads this file in place; never copy it into a client.
67
+ ${rows}
68
+
69
+ ## Per app vs per client
70
+
71
+ | Per app (here, at the root) | Per client (in its directory) |
72
+ | --- | --- |
73
+ | Environments and app ID | Generated code |
74
+ | Exported server config | Dependencies and build config |
75
+ | Model schema | Runtime connection settings |
76
+ | Secrets | Deploy configuration |
77
+ | — | Its own \`AGENTS.md\` |
78
+
79
+ ## Running commands
80
+
81
+ Every \`primitive\` command walks up to this directory's \`primitive/config.json\`,
82
+ so it resolves the same app from any client directory and needs no path flag.
83
+ \`primitive env use <name>\` selects the environment every command in this
84
+ repository targets — it is an app-wide selection, not a per-client one.
85
+
86
+ ## Adding another client
87
+
88
+ \`\`\`sh
89
+ primitive init <dir> --platform <web|ios>
90
+ \`\`\`
91
+
92
+ Run from inside this repository, that adds a client to THIS app: it reuses this
93
+ config, wires the new client to \`models/models.toml\`, and creates no second
94
+ \`.primitive/\` and no second git repository.
95
+ `;
96
+ }
97
+ //# sourceMappingURL=init-assets.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-assets.js","sourceRoot":"","sources":["../../../src/lib/init-assets.ts"],"names":[],"mappings":"AAWA,yEAAyE;AACzE,MAAM,UAAU,aAAa,CAAC,QAAkB;IAC9C,OAAO,QAAQ,KAAK,KAAK,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,WAAW,CAAC;AAC5D,CAAC;AAED;;;;;;GAMG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;;;;;CAQtC,CAAC;AAEF;;;;GAIG;AACH,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;;;;;;;;;;CAatC,CAAC;AAEF;;;;;GAKG;AACH,MAAM,UAAU,kBAAkB,CAAC,KAGlC;IACC,MAAM,IAAI,GAAG,KAAK,CAAC,OAAO;SACvB,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,OAAO,MAAM,CAAC,GAAG,SAAS,aAAa,CAAC,MAAM,CAAC,QAAQ,CAAC,SAAS,CAAC;SAClF,IAAI,CAAC,IAAI,CAAC,CAAC;IAEd,OAAO,KAAK,KAAK,CAAC,OAAO;;;;;;;;;;;;;;;;;EAiBzB,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA4BL,CAAC;AACF,CAAC"}
@@ -0,0 +1,14 @@
1
+ import type { Platform } from "./resolve-platform.js";
2
+ /**
3
+ * The platform of the client in `dir`, or null when `dir` is not a client.
4
+ * The ONE definition of the template signals — the AGENTS.md client listing
5
+ * and the both-platforms predicate read it, so they cannot drift.
6
+ */
7
+ export declare function detectClientPlatform(dir: string): Platform | null;
8
+ /**
9
+ * Every platform already present under `projectRoot`, counting a client that
10
+ * IS the root. Deduplicated, in canonical order.
11
+ */
12
+ export declare function discoverClientPlatforms(projectRoot: string): Platform[];
13
+ /** Whether the app ends up with an iOS client AND a web client. */
14
+ export declare function appHasBothPlatforms(planned: Platform[], discovered: Platform[]): boolean;
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Which client platforms an app HAS — the ones this run scaffolds plus the
3
+ * ones already in the repository (#2982).
4
+ *
5
+ * An app with both an iOS and a web client gets the universal-link wiring: the
6
+ * emailed sign-in link becomes the web deployment's https callback, which
7
+ * opens the installed app and still signs in from any browser. So "does this
8
+ * app have both?" decides whether init seeds a `webUrl` and prints the
9
+ * activation checklist.
10
+ *
11
+ * The existing clients are found by the signals the templates ship — a Swift
12
+ * package or Xcode project, a Vite project — so a `functions/` directory with
13
+ * a `package.json` is not mistaken for a client. They are looked for in child
14
+ * directories AND at the project root: `primitive init` still produces the
15
+ * flat single-client layout where the client IS the repository root, and
16
+ * adding the second platform to such a repository is exactly the case this
17
+ * feature exists for (DSO-2982-013).
18
+ */
19
+ import { existsSync, readdirSync } from "fs";
20
+ import { join } from "path";
21
+ /**
22
+ * The platform of the client in `dir`, or null when `dir` is not a client.
23
+ * The ONE definition of the template signals — the AGENTS.md client listing
24
+ * and the both-platforms predicate read it, so they cannot drift.
25
+ */
26
+ export function detectClientPlatform(dir) {
27
+ let hasXcodeProject = false;
28
+ try {
29
+ hasXcodeProject = readdirSync(dir).some((name) => name.endsWith(".xcodeproj"));
30
+ }
31
+ catch {
32
+ return null;
33
+ }
34
+ if (existsSync(join(dir, "Package.swift")) || hasXcodeProject)
35
+ return "ios";
36
+ if (existsSync(join(dir, "package.json")) && existsSync(join(dir, "vite.config.ts"))) {
37
+ return "web";
38
+ }
39
+ return null;
40
+ }
41
+ /**
42
+ * Every platform already present under `projectRoot`, counting a client that
43
+ * IS the root. Deduplicated, in canonical order.
44
+ */
45
+ export function discoverClientPlatforms(projectRoot) {
46
+ const found = new Set();
47
+ const atRoot = detectClientPlatform(projectRoot);
48
+ if (atRoot)
49
+ found.add(atRoot);
50
+ let entries;
51
+ try {
52
+ entries = readdirSync(projectRoot, { withFileTypes: true });
53
+ }
54
+ catch {
55
+ entries = [];
56
+ }
57
+ for (const entry of entries) {
58
+ if (!entry.isDirectory() || entry.name.startsWith("."))
59
+ continue;
60
+ const platform = detectClientPlatform(join(projectRoot, entry.name));
61
+ if (platform)
62
+ found.add(platform);
63
+ }
64
+ return ["web", "ios"].filter((platform) => found.has(platform));
65
+ }
66
+ /** Whether the app ends up with an iOS client AND a web client. */
67
+ export function appHasBothPlatforms(planned, discovered) {
68
+ const platforms = new Set([...planned, ...discovered]);
69
+ return platforms.has("ios") && platforms.has("web");
70
+ }
71
+ //# sourceMappingURL=init-client-platforms.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"init-client-platforms.js","sourceRoot":"","sources":["../../../src/lib/init-client-platforms.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AACH,OAAO,EAAE,UAAU,EAAE,WAAW,EAAE,MAAM,IAAI,CAAC;AAE7C,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAG5B;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,GAAW;IAC9C,IAAI,eAAe,GAAG,KAAK,CAAC;IAC5B,IAAI,CAAC;QACH,eAAe,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC;IACjF,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC,IAAI,eAAe;QAAE,OAAO,KAAK,CAAC;IAC5E,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,GAAG,EAAE,gBAAgB,CAAC,CAAC,EAAE,CAAC;QACrF,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,uBAAuB,CAAC,WAAmB;IACzD,MAAM,KAAK,GAAG,IAAI,GAAG,EAAY,CAAC;IAElC,MAAM,MAAM,GAAG,oBAAoB,CAAC,WAAW,CAAC,CAAC;IACjD,IAAI,MAAM;QAAE,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;IAE9B,IAAI,OAAiB,CAAC;IACtB,IAAI,CAAC;QACH,OAAO,GAAG,WAAW,CAAC,WAAW,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;IAC9D,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,GAAG,EAAE,CAAC;IACf,CAAC;IACD,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;QAC5B,IAAI,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC;YAAE,SAAS;QACjE,MAAM,QAAQ,GAAG,oBAAoB,CAAC,IAAI,CAAC,WAAW,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC;QACrE,IAAI,QAAQ;YAAE,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACpC,CAAC;IAED,OAAQ,CAAC,KAAK,EAAE,KAAK,CAAW,CAAC,MAAM,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,CAAC;AAC7E,CAAC;AAED,mEAAmE;AACnE,MAAM,UAAU,mBAAmB,CACjC,OAAmB,EACnB,UAAsB;IAEtB,MAAM,SAAS,GAAG,IAAI,GAAG,CAAW,CAAC,GAAG,OAAO,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC;IACjE,OAAO,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;AACtD,CAAC"}
@@ -0,0 +1,98 @@
1
+ export declare const INIT_CONFIG_FILENAME = ".primitive-init.toml";
2
+ export interface InitConfig {
3
+ /**
4
+ * What this run does with the app:
5
+ * - `create` — make a new app (needs `app_name`)
6
+ * - `use-existing` — scaffold against an app that already exists (needs `app_id`)
7
+ * - `add-client` — add another client to the Primitive app the surrounding
8
+ * project already targets (#2890). The app comes from the selected
9
+ * environment of the nearest ancestor `primitive/config.json`, so this
10
+ * action names no app of its own.
11
+ */
12
+ action: "create" | "use-existing" | "add-client";
13
+ /** App name (required for action = "create") */
14
+ app_name?: string;
15
+ /** Existing app ID (required for action = "use-existing") */
16
+ app_id?: string;
17
+ /** Project directory name */
18
+ dir?: string;
19
+ /** Access mode for the app */
20
+ access_mode?: "public" | "domain" | "invite-only";
21
+ /** Port for local dev server */
22
+ dev_port?: number;
23
+ /** Whether to skip npm install */
24
+ skip_install?: boolean;
25
+ /**
26
+ * Custom server URL. Behaves like the `-s/--server` flag: the app is created
27
+ * on this server and the scaffolded project config records it. The flag wins
28
+ * when both are given. (#2376)
29
+ */
30
+ server?: string;
31
+ /** Email addresses to invite (for invite-only mode) */
32
+ invite_emails?: string[];
33
+ /** Allowed email domains (for domain mode) */
34
+ allowed_domains?: string[];
35
+ /** Whether to overwrite a non-empty target directory (default: false) */
36
+ overwrite?: boolean;
37
+ /**
38
+ * Target platform(s) for the scaffolded client(s): `"web"`, `"ios"`, a
39
+ * comma-separated string, or a TOML array (`platform = ["web", "ios"]`).
40
+ */
41
+ platform?: string | string[];
42
+ /**
43
+ * Non-interactive consent to move an existing single-client repo's model
44
+ * schema to `<project root>/models/models.toml` so both clients read one copy
45
+ * (#2890). Valid only with `action = "add-client"`.
46
+ */
47
+ promote_schema?: boolean;
48
+ }
49
+ export interface ValidationResult {
50
+ valid: boolean;
51
+ errors: string[];
52
+ }
53
+ /**
54
+ * Resolves the "use an existing app" app id from the two places it can be
55
+ * specified: the `--use-existing-app-id` CLI flag (highest precedence) or an
56
+ * init-config TOML with `action = "use-existing"` + `app_id`.
57
+ *
58
+ * Before this existed, `init` only read the flag, so a `use-existing` TOML fell
59
+ * through to the create-app branch and interactively prompted for an app name —
60
+ * hanging non-interactive (`--config`) runs. (See js-bao-wss #1217.)
61
+ *
62
+ * Returns `undefined` when neither source selects an existing app (i.e. the run
63
+ * should create a new app).
64
+ */
65
+ export declare function resolveUseExistingAppId(flag: string | undefined, initConfig: InitConfig | null): string | undefined;
66
+ /** Where the resolved "skip dependency install" decision came from. */
67
+ export type SkipInstallSource = "flag" | "config" | "default";
68
+ export interface ResolvedSkipInstall {
69
+ skipInstall: boolean;
70
+ source: SkipInstallSource;
71
+ }
72
+ /**
73
+ * Resolves whether `primitive init` skips the dependency install, from the two
74
+ * places it can be requested: the `--skip-install` flag (highest precedence)
75
+ * or `skip_install = true` in the init-config TOML.
76
+ *
77
+ * `init` used to read only the flag, so a config's `skip_install` was silently
78
+ * ignored and CI runs installed anyway (#2720). Precedence matches #2376's
79
+ * `server` fix: the flag wins. Because `--skip-install` is a boolean flag it
80
+ * can only ever request a skip, so an explicit `skip_install = false` in the
81
+ * config cannot un-skip a run that passed the flag.
82
+ */
83
+ export declare function resolveSkipInstall(flag: boolean | undefined, initConfig: InitConfig | null): ResolvedSkipInstall;
84
+ /**
85
+ * Parses a TOML string into an InitConfig object.
86
+ * Throws if the string contains invalid TOML.
87
+ */
88
+ export declare function parseInitConfigToml(content: string): InitConfig;
89
+ /**
90
+ * Loads and parses a .primitive-init.toml file from the given directory.
91
+ * Returns null if the file does not exist.
92
+ * Throws if the file exists but contains invalid TOML.
93
+ */
94
+ export declare function loadInitConfig(dir: string): InitConfig | null;
95
+ /**
96
+ * Validates an InitConfig object. Returns a ValidationResult with any errors.
97
+ */
98
+ export declare function validateInitConfig(config: InitConfig): ValidationResult;