primitive-admin 1.0.60 → 1.0.62

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 (310) hide show
  1. package/README.md +125 -69
  2. package/assets/skill/skills/primitive-platform/SKILL.md +336 -37
  3. package/dist/bin/primitive.js +29 -14
  4. package/dist/bin/primitive.js.map +1 -1
  5. package/dist/src/commands/admins.js +22 -8
  6. package/dist/src/commands/admins.js.map +1 -1
  7. package/dist/src/commands/analytics.js +96 -16
  8. package/dist/src/commands/analytics.js.map +1 -1
  9. package/dist/src/commands/apps.js +49 -188
  10. package/dist/src/commands/apps.js.map +1 -1
  11. package/dist/src/commands/blob-buckets.js +50 -155
  12. package/dist/src/commands/blob-buckets.js.map +1 -1
  13. package/dist/src/commands/collection-type-configs.js +14 -100
  14. package/dist/src/commands/collection-type-configs.js.map +1 -1
  15. package/dist/src/commands/collections.js +47 -8
  16. package/dist/src/commands/collections.js.map +1 -1
  17. package/dist/src/commands/config.d.ts +46 -0
  18. package/dist/src/commands/config.js +479 -0
  19. package/dist/src/commands/config.js.map +1 -0
  20. package/dist/src/commands/connections.d.ts +2 -0
  21. package/dist/src/commands/connections.js +100 -0
  22. package/dist/src/commands/connections.js.map +1 -0
  23. package/dist/src/commands/cron-triggers.js +84 -176
  24. package/dist/src/commands/cron-triggers.js.map +1 -1
  25. package/dist/src/commands/database-type-configs.d.ts +2 -0
  26. package/dist/src/commands/database-type-configs.js +171 -0
  27. package/dist/src/commands/database-type-configs.js.map +1 -0
  28. package/dist/src/commands/database-types.js +4 -4
  29. package/dist/src/commands/database-types.js.map +1 -1
  30. package/dist/src/commands/databases.d.ts +63 -0
  31. package/dist/src/commands/databases.js +649 -87
  32. package/dist/src/commands/databases.js.map +1 -1
  33. package/dist/src/commands/documents.js +869 -12
  34. package/dist/src/commands/documents.js.map +1 -1
  35. package/dist/src/commands/email-templates.js +18 -125
  36. package/dist/src/commands/email-templates.js.map +1 -1
  37. package/dist/src/commands/env.d.ts +12 -1
  38. package/dist/src/commands/env.js +98 -25
  39. package/dist/src/commands/env.js.map +1 -1
  40. package/dist/src/commands/feature-flags.d.ts +14 -0
  41. package/dist/src/commands/feature-flags.js +116 -0
  42. package/dist/src/commands/feature-flags.js.map +1 -0
  43. package/dist/src/commands/group-type-configs.js +14 -109
  44. package/dist/src/commands/group-type-configs.js.map +1 -1
  45. package/dist/src/commands/init.d.ts +9 -1
  46. package/dist/src/commands/init.js +1058 -279
  47. package/dist/src/commands/init.js.map +1 -1
  48. package/dist/src/commands/integrations.js +136 -421
  49. package/dist/src/commands/integrations.js.map +1 -1
  50. package/dist/src/commands/metadata-category-configs.d.ts +12 -0
  51. package/dist/src/commands/metadata-category-configs.js +112 -0
  52. package/dist/src/commands/metadata-category-configs.js.map +1 -0
  53. package/dist/src/commands/metadata.js +33 -141
  54. package/dist/src/commands/metadata.js.map +1 -1
  55. package/dist/src/commands/prompts.js +206 -563
  56. package/dist/src/commands/prompts.js.map +1 -1
  57. package/dist/src/commands/rule-sets.d.ts +1 -1
  58. package/dist/src/commands/rule-sets.js +16 -132
  59. package/dist/src/commands/rule-sets.js.map +1 -1
  60. package/dist/src/commands/scripts.js +67 -234
  61. package/dist/src/commands/scripts.js.map +1 -1
  62. package/dist/src/commands/sessions.d.ts +2 -0
  63. package/dist/src/commands/sessions.js +75 -0
  64. package/dist/src/commands/sessions.js.map +1 -0
  65. package/dist/src/commands/skill.js +2 -2
  66. package/dist/src/commands/skill.js.map +1 -1
  67. package/dist/src/commands/sync-app-settings.d.ts +113 -70
  68. package/dist/src/commands/sync-app-settings.js +193 -242
  69. package/dist/src/commands/sync-app-settings.js.map +1 -1
  70. package/dist/src/commands/sync.d.ts +1932 -49
  71. package/dist/src/commands/sync.js +9584 -1725
  72. package/dist/src/commands/sync.js.map +1 -1
  73. package/dist/src/commands/tokens.js +8 -2
  74. package/dist/src/commands/tokens.js.map +1 -1
  75. package/dist/src/commands/users.js +92 -1
  76. package/dist/src/commands/users.js.map +1 -1
  77. package/dist/src/commands/vars.js +44 -58
  78. package/dist/src/commands/vars.js.map +1 -1
  79. package/dist/src/commands/webhooks.js +318 -156
  80. package/dist/src/commands/webhooks.js.map +1 -1
  81. package/dist/src/commands/workflows.d.ts +49 -12
  82. package/dist/src/commands/workflows.js +652 -1043
  83. package/dist/src/commands/workflows.js.map +1 -1
  84. package/dist/src/lib/access-rule-display.d.ts +21 -0
  85. package/dist/src/lib/access-rule-display.js +34 -0
  86. package/dist/src/lib/access-rule-display.js.map +1 -0
  87. package/dist/src/lib/api-client.d.ts +630 -61
  88. package/dist/src/lib/api-client.js +676 -116
  89. package/dist/src/lib/api-client.js.map +1 -1
  90. package/dist/src/lib/app-settings-descriptor.d.ts +180 -25
  91. package/dist/src/lib/app-settings-descriptor.js +403 -82
  92. package/dist/src/lib/app-settings-descriptor.js.map +1 -1
  93. package/dist/src/lib/canonical-json.d.ts +12 -0
  94. package/dist/src/lib/canonical-json.js +35 -0
  95. package/dist/src/lib/canonical-json.js.map +1 -0
  96. package/dist/src/lib/cli-manifest.d.ts +8 -0
  97. package/dist/src/lib/cli-manifest.js +1 -0
  98. package/dist/src/lib/cli-manifest.js.map +1 -1
  99. package/dist/src/lib/codegen-shared/generatedFiles.d.ts +6 -2
  100. package/dist/src/lib/codegen-shared/generatedFiles.js +9 -2
  101. package/dist/src/lib/codegen-shared/generatedFiles.js.map +1 -1
  102. package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.d.ts +6 -6
  103. package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.js +8 -8
  104. package/dist/src/lib/codegen-shared/resolveCodegenSourceDir.js.map +1 -1
  105. package/dist/src/lib/config-object-descriptor.d.ts +127 -0
  106. package/dist/src/lib/config-object-descriptor.js +658 -0
  107. package/dist/src/lib/config-object-descriptor.js.map +1 -0
  108. package/dist/src/lib/config-payload.d.ts +85 -0
  109. package/dist/src/lib/config-payload.js +116 -0
  110. package/dist/src/lib/config-payload.js.map +1 -0
  111. package/dist/src/lib/config-surface.d.ts +130 -0
  112. package/dist/src/lib/config-surface.js +300 -0
  113. package/dist/src/lib/config-surface.js.map +1 -0
  114. package/dist/src/lib/credentials-store.d.ts +10 -0
  115. package/dist/src/lib/credentials-store.js +23 -0
  116. package/dist/src/lib/credentials-store.js.map +1 -1
  117. package/dist/src/lib/data-input.d.ts +23 -0
  118. package/dist/src/lib/data-input.js +50 -0
  119. package/dist/src/lib/data-input.js.map +1 -0
  120. package/dist/src/lib/db-codegen/dbTemplates.js +1 -1
  121. package/dist/src/lib/db-codegen/dbTemplates.js.map +1 -1
  122. package/dist/src/lib/db-codegen/dbTypeIR.d.ts +1 -1
  123. package/dist/src/lib/env-resolver-core.d.ts +147 -0
  124. package/dist/src/lib/env-resolver-core.js +265 -0
  125. package/dist/src/lib/env-resolver-core.js.map +1 -0
  126. package/dist/src/lib/env-resolver.d.ts +28 -6
  127. package/dist/src/lib/env-resolver.js +44 -32
  128. package/dist/src/lib/env-resolver.js.map +1 -1
  129. package/dist/src/lib/generated-allowlist.js +13 -0
  130. package/dist/src/lib/generated-allowlist.js.map +1 -1
  131. package/dist/src/lib/generated-config-surfaces.d.ts +682 -0
  132. package/dist/src/lib/generated-config-surfaces.js +4058 -0
  133. package/dist/src/lib/generated-config-surfaces.js.map +1 -0
  134. package/dist/src/lib/generated-template-lint.d.ts +212 -0
  135. package/dist/src/lib/generated-template-lint.js +624 -0
  136. package/dist/src/lib/generated-template-lint.js.map +1 -0
  137. package/dist/src/lib/init-adopt.d.ts +16 -0
  138. package/dist/src/lib/init-adopt.js +34 -0
  139. package/dist/src/lib/init-adopt.js.map +1 -0
  140. package/dist/src/lib/init-assets.d.ts +39 -0
  141. package/dist/src/lib/init-assets.js +97 -0
  142. package/dist/src/lib/init-assets.js.map +1 -0
  143. package/dist/src/lib/init-config.d.ts +44 -5
  144. package/dist/src/lib/init-config.js +80 -7
  145. package/dist/src/lib/init-config.js.map +1 -1
  146. package/dist/src/lib/init-ios-links.d.ts +50 -0
  147. package/dist/src/lib/init-ios-links.js +153 -0
  148. package/dist/src/lib/init-ios-links.js.map +1 -0
  149. package/dist/src/lib/init-plan.d.ts +80 -0
  150. package/dist/src/lib/init-plan.js +95 -0
  151. package/dist/src/lib/init-plan.js.map +1 -0
  152. package/dist/src/lib/init-production-env.d.ts +48 -0
  153. package/dist/src/lib/init-production-env.js +59 -0
  154. package/dist/src/lib/init-production-env.js.map +1 -0
  155. package/dist/src/lib/init-schema.d.ts +74 -0
  156. package/dist/src/lib/init-schema.js +358 -0
  157. package/dist/src/lib/init-schema.js.map +1 -0
  158. package/dist/src/lib/init-xcode.d.ts +33 -0
  159. package/dist/src/lib/init-xcode.js +114 -0
  160. package/dist/src/lib/init-xcode.js.map +1 -0
  161. package/dist/src/lib/integration-request-config.d.ts +30 -0
  162. package/dist/src/lib/integration-request-config.js +145 -0
  163. package/dist/src/lib/integration-request-config.js.map +1 -0
  164. package/dist/src/lib/local-state.d.ts +55 -0
  165. package/dist/src/lib/local-state.js +167 -0
  166. package/dist/src/lib/local-state.js.map +1 -0
  167. package/dist/src/lib/log-inspection.d.ts +568 -0
  168. package/dist/src/lib/log-inspection.js +639 -0
  169. package/dist/src/lib/log-inspection.js.map +1 -0
  170. package/dist/src/lib/migration-nag.d.ts +2 -2
  171. package/dist/src/lib/migration-nag.js +3 -3
  172. package/dist/src/lib/object-status-filter.d.ts +22 -0
  173. package/dist/src/lib/object-status-filter.js +45 -0
  174. package/dist/src/lib/object-status-filter.js.map +1 -0
  175. package/dist/src/lib/output.d.ts +24 -1
  176. package/dist/src/lib/output.js +42 -1
  177. package/dist/src/lib/output.js.map +1 -1
  178. package/dist/src/lib/package-manager.d.ts +140 -0
  179. package/dist/src/lib/package-manager.js +305 -0
  180. package/dist/src/lib/package-manager.js.map +1 -0
  181. package/dist/src/lib/paginate.d.ts +50 -0
  182. package/dist/src/lib/paginate.js +53 -0
  183. package/dist/src/lib/paginate.js.map +1 -1
  184. package/dist/src/lib/platform-owned.d.ts +29 -3
  185. package/dist/src/lib/platform-owned.js +42 -3
  186. package/dist/src/lib/platform-owned.js.map +1 -1
  187. package/dist/src/lib/project-config.js +13 -5
  188. package/dist/src/lib/project-config.js.map +1 -1
  189. package/dist/src/lib/query-operators.d.ts +1 -1
  190. package/dist/src/lib/query-operators.js +1 -1
  191. package/dist/src/lib/record-filter.d.ts +18 -0
  192. package/dist/src/lib/record-filter.js +55 -0
  193. package/dist/src/lib/record-filter.js.map +1 -0
  194. package/dist/src/lib/resolve-init-dev-port.d.ts +56 -0
  195. package/dist/src/lib/resolve-init-dev-port.js +55 -0
  196. package/dist/src/lib/resolve-init-dev-port.js.map +1 -0
  197. package/dist/src/lib/resolve-init-server.d.ts +64 -0
  198. package/dist/src/lib/resolve-init-server.js +77 -0
  199. package/dist/src/lib/resolve-init-server.js.map +1 -0
  200. package/dist/src/lib/resolve-platform.d.ts +43 -14
  201. package/dist/src/lib/resolve-platform.js +74 -12
  202. package/dist/src/lib/resolve-platform.js.map +1 -1
  203. package/dist/src/lib/run-status.d.ts +19 -0
  204. package/dist/src/lib/run-status.generated.d.ts +39 -0
  205. package/dist/src/lib/run-status.generated.js +66 -0
  206. package/dist/src/lib/run-status.generated.js.map +1 -0
  207. package/dist/src/lib/run-status.js +19 -0
  208. package/dist/src/lib/run-status.js.map +1 -0
  209. package/dist/src/lib/server-text-normalization.d.ts +51 -0
  210. package/dist/src/lib/server-text-normalization.js +90 -0
  211. package/dist/src/lib/server-text-normalization.js.map +1 -0
  212. package/dist/src/lib/server-url.d.ts +22 -0
  213. package/dist/src/lib/server-url.js +33 -0
  214. package/dist/src/lib/server-url.js.map +1 -0
  215. package/dist/src/lib/signing-secret-status.d.ts +81 -0
  216. package/dist/src/lib/signing-secret-status.js +116 -0
  217. package/dist/src/lib/signing-secret-status.js.map +1 -0
  218. package/dist/src/lib/skill-installer.d.ts +4 -2
  219. package/dist/src/lib/skill-installer.js +143 -12
  220. package/dist/src/lib/skill-installer.js.map +1 -1
  221. package/dist/src/lib/snapshots.d.ts +2 -2
  222. package/dist/src/lib/snapshots.js +2 -2
  223. package/dist/src/lib/swift-codegen/dbGenerator.d.ts +15 -2
  224. package/dist/src/lib/swift-codegen/dbGenerator.js +250 -18
  225. package/dist/src/lib/swift-codegen/dbGenerator.js.map +1 -1
  226. package/dist/src/lib/swift-codegen/generator.d.ts +11 -2
  227. package/dist/src/lib/swift-codegen/generator.js +181 -7
  228. package/dist/src/lib/swift-codegen/generator.js.map +1 -1
  229. package/dist/src/lib/swift-codegen/siblingSymbols.d.ts +7 -3
  230. package/dist/src/lib/swift-codegen/siblingSymbols.js +4 -1
  231. package/dist/src/lib/swift-codegen/siblingSymbols.js.map +1 -1
  232. package/dist/src/lib/sync-dir-selector.d.ts +21 -0
  233. package/dist/src/lib/sync-dir-selector.js +30 -0
  234. package/dist/src/lib/sync-dir-selector.js.map +1 -0
  235. package/dist/src/lib/sync-paths.d.ts +39 -0
  236. package/dist/src/lib/sync-paths.js +70 -2
  237. package/dist/src/lib/sync-paths.js.map +1 -1
  238. package/dist/src/lib/sync-resource-types.d.ts +138 -31
  239. package/dist/src/lib/sync-resource-types.js +241 -47
  240. package/dist/src/lib/sync-resource-types.js.map +1 -1
  241. package/dist/src/lib/sync-selectors.d.ts +95 -0
  242. package/dist/src/lib/sync-selectors.js +228 -0
  243. package/dist/src/lib/sync-selectors.js.map +1 -0
  244. package/dist/src/lib/template.d.ts +62 -4
  245. package/dist/src/lib/template.js +147 -39
  246. package/dist/src/lib/template.js.map +1 -1
  247. package/dist/src/lib/test-case-keys.d.ts +29 -0
  248. package/dist/src/lib/test-case-keys.js +55 -0
  249. package/dist/src/lib/test-case-keys.js.map +1 -0
  250. package/dist/src/lib/test-case-variables.d.ts +15 -0
  251. package/dist/src/lib/test-case-variables.js +29 -0
  252. package/dist/src/lib/test-case-variables.js.map +1 -0
  253. package/dist/src/lib/toml-database-config.d.ts +4 -4
  254. package/dist/src/lib/toml-database-config.js +27 -34
  255. package/dist/src/lib/toml-database-config.js.map +1 -1
  256. package/dist/src/lib/toml-metadata-config.d.ts +9 -5
  257. package/dist/src/lib/toml-metadata-config.js +40 -45
  258. package/dist/src/lib/toml-metadata-config.js.map +1 -1
  259. package/dist/src/lib/toml-native-form.d.ts +1 -1
  260. package/dist/src/lib/toml-native-form.js +1 -1
  261. package/dist/src/lib/toml-params-validator.d.ts +1 -1
  262. package/dist/src/lib/toml-params-validator.js +1 -1
  263. package/dist/src/lib/toml-scalar-edit.d.ts +43 -0
  264. package/dist/src/lib/toml-scalar-edit.js +283 -0
  265. package/dist/src/lib/toml-scalar-edit.js.map +1 -0
  266. package/dist/src/lib/user-selector.d.ts +24 -0
  267. package/dist/src/lib/user-selector.js +33 -0
  268. package/dist/src/lib/user-selector.js.map +1 -0
  269. package/dist/src/lib/version-check.d.ts +25 -0
  270. package/dist/src/lib/version-check.js +77 -8
  271. package/dist/src/lib/version-check.js.map +1 -1
  272. package/dist/src/lib/watch.d.ts +121 -0
  273. package/dist/src/lib/watch.js +169 -0
  274. package/dist/src/lib/watch.js.map +1 -0
  275. package/dist/src/lib/workflow-apply.d.ts +69 -45
  276. package/dist/src/lib/workflow-apply.js +99 -72
  277. package/dist/src/lib/workflow-apply.js.map +1 -1
  278. package/dist/src/lib/workflow-codegen/generator.js +4 -4
  279. package/dist/src/lib/workflow-codegen/generator.js.map +1 -1
  280. package/dist/src/lib/workflow-codegen/invokerIR.d.ts +11 -0
  281. package/dist/src/lib/workflow-codegen/invokerIR.js +5 -0
  282. package/dist/src/lib/workflow-codegen/invokerIR.js.map +1 -1
  283. package/dist/src/lib/workflow-config-apply.d.ts +70 -0
  284. package/dist/src/lib/workflow-config-apply.js +137 -0
  285. package/dist/src/lib/workflow-config-apply.js.map +1 -0
  286. package/dist/src/lib/workflow-config-sidecar.d.ts +63 -0
  287. package/dist/src/lib/workflow-config-sidecar.js +96 -0
  288. package/dist/src/lib/workflow-config-sidecar.js.map +1 -0
  289. package/dist/src/lib/workflow-defaults.d.ts +29 -0
  290. package/dist/src/lib/workflow-defaults.js +41 -0
  291. package/dist/src/lib/workflow-defaults.js.map +1 -0
  292. package/dist/src/lib/workflow-fragments.d.ts +23 -0
  293. package/dist/src/lib/workflow-fragments.js +229 -8
  294. package/dist/src/lib/workflow-fragments.js.map +1 -1
  295. package/dist/src/lib/workflow-include-preserve.d.ts +76 -0
  296. package/dist/src/lib/workflow-include-preserve.js +286 -0
  297. package/dist/src/lib/workflow-include-preserve.js.map +1 -0
  298. package/dist/src/lib/workflow-payload.d.ts +31 -20
  299. package/dist/src/lib/workflow-payload.js +100 -93
  300. package/dist/src/lib/workflow-payload.js.map +1 -1
  301. package/dist/src/lib/workflow-toml-validator.d.ts +80 -3
  302. package/dist/src/lib/workflow-toml-validator.js +231 -3
  303. package/dist/src/lib/workflow-toml-validator.js.map +1 -1
  304. package/dist/src/types/index.d.ts +78 -22
  305. package/dist/src/validators.d.ts +7 -7
  306. package/dist/src/validators.js +6 -6
  307. package/package.json +11 -6
  308. package/dist/src/commands/settings.d.ts +0 -15
  309. package/dist/src/commands/settings.js +0 -102
  310. package/dist/src/commands/settings.js.map +0 -1
@@ -31,6 +31,11 @@
31
31
  * case. Regenerate with `node cli/scripts/gen-allowlist.mjs`.
32
32
  */
33
33
  import { GENERATED_ALLOWLISTED_FIELDS, GENERATED_KNOWN_KINDS, } from "./generated-allowlist.js";
34
+ // #2689 — the static `{{ }}` template lint, generated verbatim from the server
35
+ // module `src/workflows/runner/template-static-lint.ts` (see
36
+ // `cli/scripts/gen-template-lint.mjs`) so push-time and save-time verdicts are
37
+ // produced by the same code rather than a hand mirror.
38
+ import { lintWorkflowStepTemplates } from "./generated-template-lint.js";
34
39
  /**
35
40
  * Universal-and-consumed allowlist of top-level fields permitted on a step
36
41
  * (known kinds). Generated from the runners; see header.
@@ -57,18 +62,205 @@ export const ALLOWLISTED_FIELDS_FOR_DRIFT_GUARD = ALLOWLISTED_FIELDS;
57
62
  * guard assert the generated known-kind set matches a fresh scan.
58
63
  */
59
64
  export const KNOWN_KINDS_FOR_DRIFT_GUARD = KNOWN_KINDS;
65
+ /**
66
+ * #1447 workflow-identity predicate, extracted (codex review, 2026-07-15) so
67
+ * command sites that apply command-line metadata overrides can re-run it
68
+ * against the merged/effective workflow rather than only the parsed file.
69
+ *
70
+ * `runAs = "system"` + a non-empty `accessRule` is dead config: a system run
71
+ * can only be started by the system and never evaluates its accessRule, so any
72
+ * non-empty rule is inert. The server rejects this at save time (#1258,
73
+ * `src/workflows/definition-store.ts:271-280`); catching it locally keeps
74
+ * `config push` all-or-nothing instead of failing mid-push and leaving partial
75
+ * server state (#1418 drift).
76
+ *
77
+ * Mirrors the server predicate byte-for-byte: returns the sentinel error only
78
+ * when `runAs === "system"` AND `typeof accessRule === "string"` AND
79
+ * `accessRule.trim() !== ""`. Default/unset/empty/whitespace-only runAs or
80
+ * accessRule (and a bare non-string boolean accessRule) return `null`.
81
+ *
82
+ * @param workflow The workflow-metadata object — the `[workflow]` table, or
83
+ * for commands that accept unwrapped root-level metadata, the root TOML
84
+ * object (`tomlData.workflow || tomlData`). Non-object inputs return `null`.
85
+ */
86
+ export function validateWorkflowIdentity(workflow) {
87
+ if (workflow === null ||
88
+ typeof workflow !== "object" ||
89
+ Array.isArray(workflow)) {
90
+ return null;
91
+ }
92
+ const runAs = workflow.runAs;
93
+ const accessRule = workflow.accessRule;
94
+ if (runAs === "system" &&
95
+ typeof accessRule === "string" &&
96
+ accessRule.trim() !== "") {
97
+ return {
98
+ stepIndex: -1,
99
+ stepId: null,
100
+ field: "__workflow_system_access_rule__",
101
+ hint: 'accessRule has no effect when runAs = "system" (system runs skip ' +
102
+ "accessRule; gate callers with syncCallable + caller-mode, or see #1433)",
103
+ };
104
+ }
105
+ return null;
106
+ }
107
+ /**
108
+ * #2643 — `templateMissingMarker` was removed from the platform. A workflow
109
+ * TOML that still sets it is rejected here, before the push, with the same
110
+ * sentence the server returns, rather than being silently dropped.
111
+ */
112
+ export const REMOVED_TEMPLATE_MISSING_MARKER_MESSAGE = "templateMissingMarker is no longer supported. An unresolved template " +
113
+ "reference now fails the step on every workflow; mark individual " +
114
+ "expressions optional with `{{ x | default: '' }}` instead.";
115
+ /**
116
+ * #2645 — named workflow configs moved to sidecar files
117
+ * (`workflows/<key>.configs/<name>.toml`), so an inline `[[configs]]` list is
118
+ * no longer read by anything.
119
+ *
120
+ * It fails the push rather than being ignored. A pull taken before this change
121
+ * wrote those blocks, and push now applies only the sidecars: tolerating the
122
+ * list would leave the file describing configurations the server does not have
123
+ * — silently, since the content hash deliberately excludes the legacy list, so
124
+ * the object would not even report as Modified. The whole point of authoring
125
+ * configuration in TOML is that the committed file describes the server.
126
+ */
127
+ const RETIRED_INLINE_CONFIGS_MESSAGE = "`[[configs]]` is no longer read from a workflow file (#2645). Named " +
128
+ "configurations are authored one per file at " +
129
+ "`workflows/<key>.configs/<name>.toml`, and `[workflow].activeConfigName` " +
130
+ "selects the live one. Move each entry's body to its own sidecar file and " +
131
+ "delete the `[[configs]]` blocks.";
132
+ function validateRetiredInlineConfigs(tomlData) {
133
+ const configs = tomlData?.configs;
134
+ if (!Array.isArray(configs) || configs.length === 0)
135
+ return null;
136
+ return {
137
+ stepIndex: -1,
138
+ stepId: null,
139
+ field: "__workflow_inline_configs__",
140
+ hint: RETIRED_INLINE_CONFIGS_MESSAGE,
141
+ };
142
+ }
143
+ function validateRemovedWorkflowFields(workflow) {
144
+ if (!workflow || typeof workflow !== "object")
145
+ return null;
146
+ if (!Object.prototype.hasOwnProperty.call(workflow, "templateMissingMarker")) {
147
+ return null;
148
+ }
149
+ return {
150
+ stepIndex: -1,
151
+ stepId: null,
152
+ field: "__workflow_removed_field__",
153
+ hint: REMOVED_TEMPLATE_MISSING_MARKER_MESSAGE,
154
+ };
155
+ }
156
+ /**
157
+ * Non-blocking notes for a workflow TOML — things worth saying on a push that
158
+ * are not errors.
159
+ *
160
+ * #2643: `strict` / `strictParams` are accepted and ignored, because the
161
+ * failure they used to opt into now applies to every workflow. A definition
162
+ * that sets them keeps working unchanged, so this is a note, not an error.
163
+ */
164
+ export function collectWorkflowTomlNotes(tomlData) {
165
+ const notes = [];
166
+ const steps = tomlData?.steps;
167
+ if (!Array.isArray(steps))
168
+ return notes;
169
+ const usesStrict = steps.some((step) => step &&
170
+ typeof step === "object" &&
171
+ (Object.prototype.hasOwnProperty.call(step, "strict") ||
172
+ Object.prototype.hasOwnProperty.call(step, "strictParams")));
173
+ if (usesStrict) {
174
+ notes.push("Note: `strict` / `strictParams` no longer do anything — an unresolved " +
175
+ "template reference fails the step on every workflow (#2643). The keys " +
176
+ "are still accepted, so you can remove them at your convenience.");
177
+ }
178
+ return notes;
179
+ }
180
+ /**
181
+ * #1447 (maintainer decision, 2026-07-21): compute the EFFECTIVE workflow
182
+ * identity that an `update --from-file` push will leave on the server — the
183
+ * merge of the persisted record with the incoming file/flags.
184
+ *
185
+ * The merge exists for a caller whose push OMITS one side of the
186
+ * runAs/accessRule pair and lets the server retain it. Linting the incoming
187
+ * payload alone misses the case where the OTHER side is already `system` / a
188
+ * stored rule: an existing `runAs="system"` workflow plus a file adding only an
189
+ * `accessRule`, or a file flipping a workflow with a stored rule to
190
+ * `runAs="system"`. Both pass a payload-only lint and are then rejected by the
191
+ * server's PATCH. Merging the two before `validateWorkflowIdentity` catches
192
+ * them locally at zero extra cost — the persisted record is already fetched at
193
+ * the call site.
194
+ *
195
+ * NOT `config push`, since #2743: its update is always-send, so the file alone IS
196
+ * the effective config (an omitted `accessRule` clears the stored rule rather
197
+ * than inheriting it) and its push-time lint of the file is exact. The merge
198
+ * semantics below are unchanged for any caller that does omit fields: a field
199
+ * PRESENT in `incoming` (including an empty-string clear) overrides the stored
200
+ * value; an ABSENT field (undefined) falls back to what the server keeps.
201
+ */
202
+ export function effectiveWorkflowIdentity(existing, incoming) {
203
+ const ex = existing ?? {};
204
+ const inc = incoming ?? {};
205
+ return {
206
+ runAs: inc.runAs !== undefined ? inc.runAs : ex.runAs,
207
+ accessRule: inc.accessRule !== undefined ? inc.accessRule : ex.accessRule,
208
+ };
209
+ }
60
210
  /**
61
211
  * Walk a parsed workflow TOML document and return all unknown-field errors.
62
212
  *
63
213
  * @param tomlData The output of `parseConfigToml()` for a workflow TOML file.
214
+ * @param opts.skipWorkflowIdentity When true, suppress the #1447 workflow
215
+ * identity check (`runAs="system"` + non-empty `accessRule`). Callers that
216
+ * merge command-line overrides after parsing re-run `validateWorkflowIdentity`
217
+ * against the effective metadata themselves.
64
218
  * @returns An array of error objects, one per offending field. Empty if no
65
219
  * errors were found.
66
220
  */
67
- export function validateWorkflowToml(tomlData) {
221
+ export function validateWorkflowToml(tomlData, opts) {
68
222
  const errors = [];
69
223
  if (tomlData === null || tomlData === undefined) {
70
224
  return errors;
71
225
  }
226
+ // #1447 — workflow-level identity lint: `runAs = "system"` + a non-empty
227
+ // `accessRule` is dead config. See `validateWorkflowIdentity` for the
228
+ // predicate. This runs BEFORE the `steps` early-returns below so a file
229
+ // carrying the bad combo but with missing/malformed `[[steps]]` is still
230
+ // flagged.
231
+ //
232
+ // Metadata shape (codex review, 2026-07-15): read the workflow table with
233
+ // the same `tomlData.workflow || tomlData` fallback the consuming commands
234
+ // use (`workflows create/update --from-file`), so an UNWRAPPED root-level
235
+ // TOML carrying `runAs`/`accessRule` is checked too — not only the wrapped
236
+ // `[workflow]` form.
237
+ //
238
+ // `skipWorkflowIdentity` (codex review, 2026-07-15): callers that apply
239
+ // command-line metadata overrides AFTER parsing (e.g. `workflows update
240
+ // --from-file` with `--access-rule`) pass this to suppress the identity
241
+ // check on the raw file, then re-run `validateWorkflowIdentity` against the
242
+ // merged/effective metadata themselves. Otherwise `--access-rule ""` could
243
+ // not repair an offending file, and an override-introduced accessRule would
244
+ // escape the lint. Structural checks (#685 misnest, etc.) still run.
245
+ if (!opts?.skipWorkflowIdentity) {
246
+ const identityError = validateWorkflowIdentity(tomlData.workflow || tomlData);
247
+ if (identityError)
248
+ errors.push(identityError);
249
+ }
250
+ // #2643 — a `[workflow]` key the platform has removed. Checked with the same
251
+ // `tomlData.workflow || tomlData` fallback as the identity lint so the
252
+ // unwrapped root-level form is caught too, and BEFORE the `steps`
253
+ // early-returns so a metadata-only file is still flagged.
254
+ const removedFieldError = validateRemovedWorkflowFields(tomlData.workflow || tomlData);
255
+ if (removedFieldError)
256
+ errors.push(removedFieldError);
257
+ // #2645 — an inline `[[configs]]` list, which named configs left behind when
258
+ // they moved to sidecar files. Read from the document root (not the
259
+ // `[workflow]` table) and before the `steps` early-returns, so a
260
+ // configs-only file is flagged too.
261
+ const inlineConfigsError = validateRetiredInlineConfigs(tomlData);
262
+ if (inlineConfigsError)
263
+ errors.push(inlineConfigsError);
72
264
  const steps = tomlData.steps;
73
265
  // No steps section at all → nothing to validate. This is fine for
74
266
  // partial TOML files (some commands accept a metadata-only file).
@@ -132,6 +324,25 @@ export function validateWorkflowToml(tomlData) {
132
324
  validateStepObject(step.step, i, outerStepId, errors);
133
325
  }
134
326
  }
327
+ // #2689 — statically-dead `{{ }}` expressions (unknown root, undeclared
328
+ // `steps.<id>` / `outputs.<name>`) are guaranteed run-time failures since
329
+ // #2643. Reject them here so `config push` reports them before anything is
330
+ // pushed, instead of after a deploy-and-run cycle.
331
+ //
332
+ // `knownKinds` carries the #998 skew posture into the lint: an old CLI must
333
+ // not judge a NEWER server's step kind, whose runner may bind template roots
334
+ // this copy of the lint has never heard of. The server-side check in
335
+ // `validateWorkflowSteps` scans every step and stays authoritative.
336
+ for (const finding of lintWorkflowStepTemplates(steps, {
337
+ knownKinds: KNOWN_KINDS,
338
+ })) {
339
+ errors.push({
340
+ stepIndex: finding.stepIndex,
341
+ stepId: finding.stepId,
342
+ field: "__template_expression__",
343
+ hint: `${finding.location}: ${finding.message}`,
344
+ });
345
+ }
135
346
  return errors;
136
347
  }
137
348
  /**
@@ -291,6 +502,23 @@ export function formatWorkflowTomlErrors(filePath, errors) {
291
502
  lines.push(` steps[${err.stepIndex}] is malformed: ${err.hint}`);
292
503
  continue;
293
504
  }
505
+ // #2689 — a statically-dead `{{ }}` expression. The offending FIELD is
506
+ // fine; its contents are not, so the "unknown field" wording would be
507
+ // actively misleading. Render the step slot plus the lint's message, which
508
+ // already names the expression, the problem and the fix.
509
+ if (err.field === "__template_expression__") {
510
+ const idPart = err.stepId ? ` (id="${err.stepId}")` : "";
511
+ lines.push(` steps[${err.stepIndex}]${idPart}:`);
512
+ lines.push(` ${err.hint}`);
513
+ continue;
514
+ }
515
+ // #1447 — workflow-level error, not tied to a step. Render the bare hint
516
+ // (no `steps[N]` prefix) under the file header.
517
+ if (err.field === "__workflow_system_access_rule__" ||
518
+ err.field === "__workflow_removed_field__") {
519
+ lines.push(` ${err.hint}`);
520
+ continue;
521
+ }
294
522
  // For errors inside a `collect` step's nested inner step (codex review,
295
523
  // 2026-05-15), use a `steps[N].step` slot prefix so operators see that
296
524
  // the offending field is on the inner step, not the outer collect.
@@ -323,7 +551,7 @@ export function formatWorkflowTomlErrors(filePath, errors) {
323
551
  /**
324
552
  * #1614 — client-side mirror of the server's `validateWorkflowExpressions`
325
553
  * (`src/workflows/definition-store.ts`) for named `expr.*` CEL guards. Returns
326
- * structural errors so `sync push` fails fast with the same class of diagnostic
554
+ * structural errors so `config push` fails fast with the same class of diagnostic
327
555
  * the server would 400 on:
328
556
  * 1. every `expr.<name>` reference — in a definition body OR a step guard
329
557
  * (`runIf` / `successWhen` / switch `when`) — names a DECLARED definition;
@@ -339,7 +567,7 @@ export function formatWorkflowTomlErrors(filePath, errors) {
339
567
  * #1614 — validate the RAW `[expr.cel]` table shape BEFORE
340
568
  * `parseWorkflowExpressionsToml` filters it. That parser drops any entry whose
341
569
  * body is not a string, so a mistyped `ready = true` would vanish and, with no
342
- * references left to fail on, `sync push` would succeed while omitting the whole
570
+ * references left to fail on, `config push` would succeed while omitting the whole
343
571
  * expression table. Surface non-string / empty / wrong-typed bodies (and a
344
572
  * non-table `cel`) as a hard CLI validation error instead. Mirrors the server's
345
573
  * `validateRawExpressionsShape` (`src/workflows/definition-store.ts`).
@@ -1 +1 @@
1
- {"version":3,"file":"workflow-toml-validator.js","sourceRoot":"","sources":["../../../src/lib/workflow-toml-validator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"workflow-toml-validator.js","sourceRoot":"","sources":["../../../src/lib/workflow-toml-validator.ts"],"names":[],"mappings":"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"}
@@ -16,17 +16,30 @@ export interface AppSummary {
16
16
  name: string;
17
17
  mode?: string;
18
18
  }
19
+ /** One entry of the `googleClients` map (#2891). */
20
+ export interface GoogleClientSetting {
21
+ clientId: string;
22
+ /** Whole `{{secrets.KEY}}` reference; absent for the native client types. */
23
+ clientSecret?: string | null;
24
+ redirectUris: string[];
25
+ }
26
+ /**
27
+ * `[auth.google]` — the client map, keyed by Google client type (`web`, `ios`,
28
+ * `android`, `desktop`, `chrome-extension`). The `clients` wrapper keeps
29
+ * `[auth.google]` open for a later sibling key.
30
+ */
31
+ export interface GoogleClientsSetting {
32
+ clients: Record<string, GoogleClientSetting>;
33
+ }
19
34
  export interface AppSettings {
20
35
  name: string;
21
36
  baseUrl?: string | null;
22
37
  mode: "public" | "invite-only" | "domain";
23
38
  waitlistEnabled?: boolean;
24
39
  allowedDomains?: string[] | null;
25
- redirectUris?: string[] | null;
40
+ emailRedirectUris?: string[] | null;
26
41
  googleOAuthEnabled?: boolean;
27
- googleClientId?: string;
28
- googleClientSecret?: string;
29
- googleClientSecretSet?: boolean;
42
+ googleClients?: GoogleClientsSetting | null;
30
43
  corsMode?: "universal" | "custom";
31
44
  corsAllowedOrigins?: string[] | null;
32
45
  corsAllowCredentials?: boolean;
@@ -35,16 +48,17 @@ export interface AppSettings {
35
48
  corsExposedHeaders?: string[] | null;
36
49
  corsMaxAge?: number | null;
37
50
  passkeyEnabled?: boolean;
38
- passkeyRpId?: string;
39
- passkeyRpName?: string;
40
51
  passkeyRpConfig?: Record<string, {
41
52
  name: string;
42
53
  }> | null;
43
54
  hasPasskey?: boolean;
55
+ emailSignInEnabled?: boolean;
56
+ /** @deprecated (#2884) Response-only; always equal to `emailSignInEnabled`. */
44
57
  magicLinkEnabled?: boolean;
58
+ /** @deprecated (#2884) Response-only; always equal to `emailSignInEnabled`. */
59
+ otpEnabled?: boolean;
45
60
  appleSignInEnabled?: boolean | null;
46
61
  appleAudiences?: string[] | null;
47
- otpEnabled?: boolean;
48
62
  }
49
63
  export interface User {
50
64
  userId: string;
@@ -112,20 +126,6 @@ export interface IntegrationDetail extends IntegrationSummary {
112
126
  timeoutMs?: number;
113
127
  maxRequestBodyBytes?: number;
114
128
  }
115
- export interface IntegrationSecret {
116
- secretId: string;
117
- version: string;
118
- secretSummary?: string | null;
119
- status?: string;
120
- createdBy?: string;
121
- createdAt?: string;
122
- supersededAt?: string | null;
123
- preview?: {
124
- headers: string[];
125
- query: string[];
126
- body: string[];
127
- } | null;
128
- }
129
129
  export interface IntegrationTestPayload {
130
130
  method?: string;
131
131
  path?: string;
@@ -165,10 +165,17 @@ export interface Webhook {
165
165
  status: string;
166
166
  workflowKey: string;
167
167
  verificationScheme: string;
168
- signingSecretMasked?: string;
168
+ signingSecret?: string | null;
169
+ previousSigningSecret?: string | null;
170
+ signingSecretStatus?: "reference" | "legacy-literal" | "malformed-reference" | "unset";
171
+ previousSigningSecretStatus?: "reference" | "legacy-literal" | "malformed-reference" | "unset";
172
+ signingSecretHealth?: "ok" | "weak-literal" | (string & {});
173
+ previousSigningSecretHealth?: "ok" | "weak-literal" | (string & {});
174
+ secretRotatedAt?: string | null;
169
175
  toleranceSeconds: number;
170
176
  deduplicationEnabled: boolean;
171
177
  deduplicationWindowMs: number;
178
+ maxBodyBytes?: number | null;
172
179
  secretGracePeriodMs: number;
173
180
  inputMapping?: string;
174
181
  allowedIpCidrs?: string;
@@ -179,7 +186,21 @@ export interface Webhook {
179
186
  }
180
187
  export interface WebhookEvent {
181
188
  eventId: string;
189
+ /** The provider's own delivery id — display and correlation only. */
182
190
  externalEventId?: string;
191
+ /**
192
+ * The replay-suppression key the platform derived from the signed payload.
193
+ * Present on `accepted` deliveries only — a `duplicate` row carries none, so
194
+ * the `duplicate` status is itself the "this delivery was suppressed" signal
195
+ * and this key identifies which accepted delivery it collapsed into.
196
+ *
197
+ * It always begins with a reserved tag naming which domain it came from:
198
+ * `sha256:` a digest the platform computed over the signed payload, `id:` an
199
+ * identifier the delivery itself carried, `cap:` the rehash of a key too long
200
+ * for the index. The tags keep the domains from overlapping, so a carried id
201
+ * can never name a platform digest.
202
+ */
203
+ dedupKey?: string | null;
183
204
  status: string;
184
205
  httpStatus: number;
185
206
  sourceIp?: string;
@@ -437,16 +458,32 @@ export interface SyncState {
437
458
  app?: {
438
459
  modifiedAt: string;
439
460
  contentHash?: string;
461
+ semanticHash?: string;
462
+ /**
463
+ * The `[app].name` a cross-app push deliberately did NOT send (DSO-001).
464
+ * While this is set and the file still states this name, `name` is out of
465
+ * the comparison, out of the payload, and out of the baseline hash. A file
466
+ * stating a different name is a local rename: the exclusion clears and the
467
+ * baseline is restamped with `name`.
468
+ *
469
+ * Held as the file STATED it rather than as text (#2936): the excluded
470
+ * line is stripped before validation, so a cross-app push can leave a
471
+ * `name = 123` behind, and the same file has to keep reading as the same
472
+ * name on the next run.
473
+ */
474
+ excludedName?: unknown;
440
475
  };
441
476
  integrations?: Record<string, {
442
477
  id: string;
443
478
  modifiedAt: string;
444
479
  contentHash?: string;
480
+ semanticHash?: string;
445
481
  }>;
446
482
  prompts?: Record<string, {
447
483
  id: string;
448
484
  modifiedAt: string;
449
485
  contentHash?: string;
486
+ semanticHash?: string;
450
487
  }>;
451
488
  workflows?: Record<string, {
452
489
  id: string;
@@ -457,6 +494,8 @@ export interface SyncState {
457
494
  emailTemplates?: Record<string, {
458
495
  id: string;
459
496
  modifiedAt: string;
497
+ contentHash?: string;
498
+ semanticHash?: string;
460
499
  }>;
461
500
  testCases?: Record<string, {
462
501
  id: string;
@@ -465,8 +504,16 @@ export interface SyncState {
465
504
  blockKey: string;
466
505
  slug: string;
467
506
  modifiedAt: string;
507
+ /**
508
+ * Pre-#2769 attachment tracking: names only, so a byte change under an
509
+ * unchanged name was invisible. Still read, so an existing sync state
510
+ * upgrades without a re-pull (the files re-upload once, then converge).
511
+ */
468
512
  attachmentFilenames?: string[];
513
+ /** filename → content hash of the attachment last synced (#2769). */
514
+ attachments?: Record<string, string>;
469
515
  contentHash?: string;
516
+ semanticHash?: string;
470
517
  }>;
471
518
  databaseTypes?: Record<string, {
472
519
  databaseType: string;
@@ -478,12 +525,14 @@ export interface SyncState {
478
525
  modifiedAt: string;
479
526
  }>;
480
527
  contentHash?: string;
528
+ semanticHash?: string;
481
529
  hasSchema?: boolean;
482
530
  }>;
483
531
  ruleSets?: Record<string, {
484
532
  id: string;
485
533
  modifiedAt: string;
486
534
  contentHash?: string;
535
+ semanticHash?: string;
487
536
  }>;
488
537
  vars?: Record<string, {
489
538
  modifiedAt: string;
@@ -492,34 +541,41 @@ export interface SyncState {
492
541
  groupTypeConfigs?: Record<string, {
493
542
  modifiedAt: string;
494
543
  contentHash?: string;
544
+ semanticHash?: string;
495
545
  }>;
496
546
  collectionTypeConfigs?: Record<string, {
497
547
  modifiedAt: string;
498
548
  contentHash?: string;
549
+ semanticHash?: string;
499
550
  }>;
500
551
  metadataCategoryConfigs?: Record<string, {
501
552
  modifiedAt: string;
502
553
  contentHash?: string;
554
+ semanticHash?: string;
503
555
  }>;
504
556
  webhooks?: Record<string, {
505
557
  id: string;
506
558
  modifiedAt: string;
507
559
  contentHash?: string;
560
+ semanticHash?: string;
508
561
  }>;
509
562
  blobBuckets?: Record<string, {
510
563
  id: string;
511
564
  modifiedAt: string;
512
565
  contentHash?: string;
566
+ semanticHash?: string;
513
567
  }>;
514
568
  cronTriggers?: Record<string, {
515
569
  id: string;
516
570
  modifiedAt: string;
517
571
  contentHash?: string;
572
+ semanticHash?: string;
518
573
  }>;
519
574
  scripts?: Record<string, {
520
575
  id: string;
521
576
  modifiedAt: string;
522
577
  contentHash?: string;
578
+ semanticHash?: string;
523
579
  }>;
524
580
  };
525
581
  }
@@ -1,7 +1,7 @@
1
1
  /**
2
2
  * Public subpath export: `primitive-admin/validators` (issue #983).
3
3
  *
4
- * Re-exports the TOML validators that `sync push` runs as its load-bearing
4
+ * Re-exports the TOML validators that `config push` runs as its load-bearing
5
5
  * gate, so external tooling (e.g. `primitive-docs`) can validate the exact
6
6
  * same way the published CLI does — instead of re-implementing the parse /
7
7
  * expand / validate flow against submodule source and silently drifting.
@@ -10,10 +10,10 @@
10
10
  *
11
11
  * 1. `validateWorkflowTomlSource(raw, filePath)` — the **source-level**
12
12
  * wrapper. Runs the identical parse → fragment-expand → validate → format
13
- * path that `sync push` runs for workflow TOML (`cli/src/commands/sync.ts`:
13
+ * path that `config push` runs for workflow TOML (`cli/src/commands/sync.ts`:
14
14
  * `parseTomlFile()` → `validateWorkflowToml()` → `formatWorkflowTomlErrors()`).
15
15
  * Use this when you have the raw TOML string and want zero divergence from
16
- * `sync push`, including `include` fragment expansion.
16
+ * `config push`, including `include` fragment expansion.
17
17
  *
18
18
  * 2. The raw validators (`validateWorkflowToml`, `validateOperations`) and
19
19
  * their formatters (`formatWorkflowTomlErrors`, `formatIssue`). These are
@@ -38,21 +38,21 @@ export interface WorkflowTomlSourceResult {
38
38
  /** The structured errors (empty when the source is valid). */
39
39
  errors: WorkflowTomlError[];
40
40
  /**
41
- * A human-readable, multi-line error string (the same text `sync push`
41
+ * A human-readable, multi-line error string (the same text `config push`
42
42
  * prints), or `null` when there are no errors.
43
43
  */
44
44
  formatted: string | null;
45
45
  }
46
46
  /**
47
- * Validate a workflow TOML **source string** the exact way `sync push` does.
47
+ * Validate a workflow TOML **source string** the exact way `config push` does.
48
48
  *
49
- * Runs the identical pipeline `sync push` runs on every workflow file:
49
+ * Runs the identical pipeline `config push` runs on every workflow file:
50
50
  * `parseConfigToml(raw)` → `expandWorkflowTomlData(parsed, filePath)`
51
51
  * → `validateWorkflowToml(expanded)` → `formatWorkflowTomlErrors(...)`.
52
52
  *
53
53
  * The `include` fragment expansion resolves fragments relative to
54
54
  * `<filePath>/../../workflow-fragments/` — pass the real (or intended) on-disk
55
- * path of the workflow so fragment resolution matches `sync push`. If the
55
+ * path of the workflow so fragment resolution matches `config push`. If the
56
56
  * source uses no `include` key the expander is a no-op and `filePath` is only
57
57
  * used for error attribution.
58
58
  *