@sitecoreai-labs/sitecoreai-cli 0.0.4 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (1387) hide show
  1. package/AGENTS.md +146 -55
  2. package/README.md +372 -325
  3. package/dist/agents/api/agents.d.ts +27 -0
  4. package/dist/agents/api/agents.js +70 -0
  5. package/dist/agents/api/catalog.d.ts +8 -0
  6. package/dist/agents/api/catalog.js +33 -0
  7. package/dist/agents/api/custom-mcps.d.ts +26 -0
  8. package/dist/agents/api/custom-mcps.js +53 -0
  9. package/dist/agents/api/html-templates.d.ts +35 -0
  10. package/dist/agents/api/html-templates.js +116 -0
  11. package/dist/agents/api/request.d.ts +28 -0
  12. package/dist/agents/api/request.js +207 -0
  13. package/dist/agents/api/runs.d.ts +31 -0
  14. package/dist/agents/api/runs.js +82 -0
  15. package/dist/agents/api/schema.d.ts +182 -0
  16. package/dist/agents/api/schema.js +10 -0
  17. package/dist/agents/api/schemas.d.ts +37 -0
  18. package/dist/agents/api/schemas.js +95 -0
  19. package/dist/agents/api/skills.d.ts +25 -0
  20. package/dist/agents/api/skills.js +55 -0
  21. package/dist/agents/api/spaces.d.ts +34 -0
  22. package/dist/agents/api/spaces.js +72 -0
  23. package/dist/agents/api/tools.d.ts +4 -0
  24. package/dist/agents/api/tools.js +18 -0
  25. package/dist/agents/api/widgets.d.ts +32 -0
  26. package/dist/agents/api/widgets.js +89 -0
  27. package/dist/agents/client.d.ts +18 -0
  28. package/dist/agents/client.js +28 -0
  29. package/dist/agents/index.d.ts +31 -0
  30. package/dist/agents/index.js +51 -0
  31. package/dist/agents/recipe/agent.diff.d.ts +4 -0
  32. package/dist/agents/recipe/agent.diff.js +55 -0
  33. package/dist/agents/recipe/agent.kind.d.ts +12 -0
  34. package/dist/agents/recipe/agent.kind.js +107 -0
  35. package/dist/agents/recipe/agent.schema.d.ts +26 -0
  36. package/dist/agents/recipe/agent.schema.js +42 -0
  37. package/dist/agents/recipe/client.d.ts +4 -0
  38. package/dist/agents/recipe/client.js +15 -0
  39. package/dist/agents/recipe/converge.d.ts +11 -0
  40. package/dist/agents/recipe/converge.js +32 -0
  41. package/dist/agents/recipe/custom-mcp.kind.d.ts +4 -0
  42. package/dist/agents/recipe/custom-mcp.kind.js +42 -0
  43. package/dist/agents/recipe/custom-mcp.schema.d.ts +11 -0
  44. package/dist/agents/recipe/custom-mcp.schema.js +15 -0
  45. package/dist/agents/recipe/html-template.kind.d.ts +4 -0
  46. package/dist/agents/recipe/html-template.kind.js +50 -0
  47. package/dist/agents/recipe/html-template.schema.d.ts +13 -0
  48. package/dist/agents/recipe/html-template.schema.js +17 -0
  49. package/dist/agents/recipe/index.d.ts +43 -0
  50. package/dist/agents/recipe/index.js +81 -0
  51. package/dist/agents/recipe/schema.kind.d.ts +4 -0
  52. package/dist/agents/recipe/schema.kind.js +50 -0
  53. package/dist/agents/recipe/schema.schema.d.ts +15 -0
  54. package/dist/agents/recipe/schema.schema.js +21 -0
  55. package/dist/agents/recipe/skill.kind.d.ts +4 -0
  56. package/dist/agents/recipe/skill.kind.js +48 -0
  57. package/dist/agents/recipe/skill.schema.d.ts +14 -0
  58. package/dist/agents/recipe/skill.schema.js +18 -0
  59. package/dist/agents/recipe/widget.kind.d.ts +4 -0
  60. package/dist/agents/recipe/widget.kind.js +49 -0
  61. package/dist/agents/recipe/widget.schema.d.ts +20 -0
  62. package/dist/agents/recipe/widget.schema.js +23 -0
  63. package/dist/agents/session/index.d.ts +50 -0
  64. package/dist/agents/session/index.js +127 -0
  65. package/dist/agents/session/playwright-login.d.ts +11 -0
  66. package/dist/agents/session/playwright-login.js +169 -0
  67. package/dist/agents/session/types.d.ts +72 -0
  68. package/dist/agents/session/types.js +26 -0
  69. package/dist/agents/tasks/agent.d.ts +27 -0
  70. package/dist/agents/tasks/agent.js +183 -0
  71. package/dist/agents/tasks/index.d.ts +14 -0
  72. package/dist/agents/tasks/index.js +30 -0
  73. package/dist/agents/tasks/resources.d.ts +39 -0
  74. package/dist/agents/tasks/resources.js +219 -0
  75. package/dist/agents/tasks/session.d.ts +6 -0
  76. package/dist/agents/tasks/session.js +63 -0
  77. package/dist/agents/tasks/shared.d.ts +38 -0
  78. package/dist/agents/tasks/shared.js +72 -0
  79. package/dist/agents/tasks/space.d.ts +12 -0
  80. package/dist/agents/tasks/space.js +55 -0
  81. package/dist/brand/api/auth.d.ts +58 -0
  82. package/dist/brand/api/auth.js +141 -0
  83. package/dist/brand/api/client.d.ts +40 -0
  84. package/dist/brand/api/client.js +83 -0
  85. package/dist/brand/api/types.d.ts +119 -0
  86. package/dist/brand/api/types.js +9 -0
  87. package/dist/brand/credential.d.ts +55 -0
  88. package/dist/brand/credential.js +87 -0
  89. package/dist/brand/documents/list.d.ts +85 -0
  90. package/dist/brand/documents/list.js +53 -0
  91. package/dist/brand/documents/upload.d.ts +113 -0
  92. package/dist/brand/documents/upload.js +106 -0
  93. package/dist/brand/index.d.ts +33 -0
  94. package/dist/brand/index.js +76 -0
  95. package/dist/brand/kits/create.d.ts +58 -0
  96. package/dist/brand/kits/create.js +68 -0
  97. package/dist/brand/kits/list.d.ts +53 -0
  98. package/dist/brand/kits/list.js +36 -0
  99. package/dist/brand/kits/sections.d.ts +156 -0
  100. package/dist/brand/kits/sections.js +80 -0
  101. package/dist/brand/pipeline/run.d.ts +58 -0
  102. package/dist/brand/pipeline/run.js +63 -0
  103. package/dist/brand/recipe/client.d.ts +4 -0
  104. package/dist/brand/recipe/client.js +24 -0
  105. package/dist/brand/recipe/diff.d.ts +4 -0
  106. package/dist/brand/recipe/diff.js +74 -0
  107. package/dist/brand/recipe/index.d.ts +10 -0
  108. package/dist/brand/recipe/index.js +20 -0
  109. package/dist/brand/recipe/kind.d.ts +4 -0
  110. package/dist/brand/recipe/kind.js +0 -0
  111. package/dist/brand/recipe/schema.d.ts +54 -0
  112. package/dist/brand/recipe/schema.js +59 -0
  113. package/dist/brand/review/format-json.d.ts +33 -0
  114. package/dist/brand/review/format-json.js +36 -0
  115. package/dist/brand/review/format-sarif.d.ts +64 -0
  116. package/dist/brand/review/format-sarif.js +77 -0
  117. package/dist/brand/review/format-text.d.ts +24 -0
  118. package/dist/brand/review/format-text.js +60 -0
  119. package/dist/brand/review/generate.d.ts +37 -0
  120. package/dist/brand/review/generate.js +146 -0
  121. package/dist/brand/review/outcomes.d.ts +43 -0
  122. package/dist/brand/review/outcomes.js +58 -0
  123. package/dist/brand/seed.d.ts +81 -0
  124. package/dist/brand/seed.js +151 -0
  125. package/dist/brand/tasks/login.d.ts +37 -0
  126. package/dist/brand/tasks/login.js +192 -0
  127. package/dist/brand/tasks/review.d.ts +111 -0
  128. package/dist/brand/tasks/review.js +310 -0
  129. package/dist/brief/api/brief-types.d.ts +64 -0
  130. package/dist/brief/api/brief-types.js +103 -0
  131. package/dist/brief/api/briefs.d.ts +66 -0
  132. package/dist/brief/api/briefs.js +58 -0
  133. package/dist/brief/api/comments.d.ts +43 -0
  134. package/dist/brief/api/comments.js +29 -0
  135. package/dist/brief/api/request.d.ts +5 -0
  136. package/dist/brief/api/request.js +83 -0
  137. package/dist/brief/api/schema.d.ts +158 -0
  138. package/dist/brief/api/schema.js +18 -0
  139. package/dist/brief/api/tasks.d.ts +41 -0
  140. package/dist/brief/api/tasks.js +24 -0
  141. package/dist/brief/api/types.d.ts +17 -0
  142. package/dist/brief/api/types.js +21 -0
  143. package/dist/brief/auth.d.ts +44 -0
  144. package/dist/brief/auth.js +101 -0
  145. package/dist/brief/client.d.ts +25 -0
  146. package/dist/brief/client.js +56 -0
  147. package/dist/brief/index.d.ts +31 -0
  148. package/dist/brief/index.js +53 -0
  149. package/dist/brief/recipe/client.d.ts +4 -0
  150. package/dist/brief/recipe/client.js +52 -0
  151. package/dist/brief/recipe/diff.d.ts +4 -0
  152. package/dist/brief/recipe/diff.js +74 -0
  153. package/dist/brief/recipe/index.d.ts +10 -0
  154. package/dist/brief/recipe/index.js +23 -0
  155. package/dist/brief/recipe/kind.d.ts +4 -0
  156. package/dist/brief/recipe/kind.js +114 -0
  157. package/dist/brief/recipe/schema.d.ts +152 -0
  158. package/dist/brief/recipe/schema.js +99 -0
  159. package/dist/brief/tasks/index.d.ts +128 -0
  160. package/dist/brief/tasks/index.js +286 -0
  161. package/dist/campaigns/api/deliverables.d.ts +37 -0
  162. package/dist/campaigns/api/deliverables.js +30 -0
  163. package/dist/campaigns/api/projects.d.ts +49 -0
  164. package/dist/campaigns/api/projects.js +45 -0
  165. package/dist/campaigns/api/request.d.ts +5 -0
  166. package/dist/campaigns/api/request.js +119 -0
  167. package/dist/campaigns/api/schema.d.ts +144 -0
  168. package/dist/campaigns/api/schema.js +22 -0
  169. package/dist/campaigns/api/tasks.d.ts +42 -0
  170. package/dist/campaigns/api/tasks.js +68 -0
  171. package/dist/campaigns/api/types.d.ts +17 -0
  172. package/dist/campaigns/api/types.js +27 -0
  173. package/dist/campaigns/api/users.d.ts +13 -0
  174. package/dist/campaigns/api/users.js +16 -0
  175. package/dist/campaigns/auth.d.ts +19 -0
  176. package/dist/campaigns/auth.js +86 -0
  177. package/dist/campaigns/client.d.ts +25 -0
  178. package/dist/campaigns/client.js +48 -0
  179. package/dist/campaigns/index.d.ts +29 -0
  180. package/dist/campaigns/index.js +47 -0
  181. package/dist/campaigns/recipe/client.d.ts +4 -0
  182. package/dist/campaigns/recipe/client.js +41 -0
  183. package/dist/campaigns/recipe/diff.d.ts +4 -0
  184. package/dist/campaigns/recipe/diff.js +119 -0
  185. package/dist/campaigns/recipe/index.d.ts +10 -0
  186. package/dist/campaigns/recipe/index.js +19 -0
  187. package/dist/campaigns/recipe/kind.d.ts +4 -0
  188. package/dist/campaigns/recipe/kind.js +217 -0
  189. package/dist/campaigns/recipe/schema.d.ts +79 -0
  190. package/dist/campaigns/recipe/schema.js +67 -0
  191. package/dist/campaigns/tasks/index.d.ts +124 -0
  192. package/dist/campaigns/tasks/index.js +271 -0
  193. package/dist/cli.d.ts +0 -1
  194. package/dist/cli.js +84 -63
  195. package/dist/commands/agents/index.d.ts +28 -0
  196. package/dist/commands/agents/index.js +289 -0
  197. package/dist/commands/agents/sync.d.ts +13 -0
  198. package/dist/commands/agents/sync.js +139 -0
  199. package/dist/commands/audit/all.d.ts +2 -0
  200. package/dist/commands/audit/all.js +26 -0
  201. package/dist/commands/audit/alt-text-missing.d.ts +2 -0
  202. package/dist/commands/audit/alt-text-missing.js +19 -0
  203. package/dist/commands/audit/baseline.d.ts +2 -0
  204. package/dist/commands/audit/baseline.js +75 -0
  205. package/dist/commands/audit/broken-images.d.ts +2 -0
  206. package/dist/commands/audit/broken-images.js +25 -0
  207. package/dist/commands/audit/broken-links.d.ts +2 -0
  208. package/dist/commands/audit/broken-links.js +18 -0
  209. package/dist/commands/audit/datasource-missing.d.ts +2 -0
  210. package/dist/commands/audit/datasource-missing.js +19 -0
  211. package/dist/commands/audit/dead-templates.d.ts +2 -0
  212. package/dist/commands/audit/dead-templates.js +18 -0
  213. package/dist/commands/audit/duplicates.d.ts +2 -0
  214. package/dist/commands/audit/duplicates.js +21 -0
  215. package/dist/commands/audit/empty-items.d.ts +2 -0
  216. package/dist/commands/audit/empty-items.js +19 -0
  217. package/dist/commands/audit/empty-links.d.ts +2 -0
  218. package/dist/commands/audit/empty-links.js +25 -0
  219. package/dist/commands/audit/empty-roles.d.ts +2 -0
  220. package/dist/commands/audit/empty-roles.js +18 -0
  221. package/dist/commands/audit/fallback-drift.d.ts +2 -0
  222. package/dist/commands/audit/fallback-drift.js +22 -0
  223. package/dist/commands/audit/find-replace.d.ts +2 -0
  224. package/dist/commands/audit/find-replace.js +27 -0
  225. package/dist/commands/audit/heavy-templates.d.ts +2 -0
  226. package/dist/commands/audit/heavy-templates.js +19 -0
  227. package/dist/commands/audit/history.d.ts +2 -0
  228. package/dist/commands/audit/history.js +44 -0
  229. package/dist/commands/audit/index.d.ts +2 -0
  230. package/dist/commands/audit/index.js +100 -0
  231. package/dist/commands/audit/language-data.d.ts +2 -0
  232. package/dist/commands/audit/language-data.js +24 -0
  233. package/dist/commands/audit/large-fields.d.ts +2 -0
  234. package/dist/commands/audit/large-fields.js +21 -0
  235. package/dist/commands/audit/missing-meta.d.ts +2 -0
  236. package/dist/commands/audit/missing-meta.js +22 -0
  237. package/dist/commands/audit/orphans.d.ts +2 -0
  238. package/dist/commands/audit/orphans.js +22 -0
  239. package/dist/commands/audit/page-design-orphans.d.ts +2 -0
  240. package/dist/commands/audit/page-design-orphans.js +18 -0
  241. package/dist/commands/audit/personalization-broken.d.ts +2 -0
  242. package/dist/commands/audit/personalization-broken.js +18 -0
  243. package/dist/commands/audit/references.d.ts +2 -0
  244. package/dist/commands/audit/references.js +27 -0
  245. package/dist/commands/audit/role-bloat.d.ts +2 -0
  246. package/dist/commands/audit/role-bloat.js +19 -0
  247. package/dist/commands/audit/shared.d.ts +7 -0
  248. package/dist/commands/audit/shared.js +32 -0
  249. package/dist/commands/audit/site-residue.d.ts +2 -0
  250. package/dist/commands/audit/site-residue.js +22 -0
  251. package/dist/commands/audit/slug-conflicts.d.ts +2 -0
  252. package/dist/commands/audit/slug-conflicts.js +20 -0
  253. package/dist/commands/audit/stale-content.d.ts +2 -0
  254. package/dist/commands/audit/stale-content.js +21 -0
  255. package/dist/commands/audit/stale-users.d.ts +2 -0
  256. package/dist/commands/audit/stale-users.js +21 -0
  257. package/dist/commands/audit/stale-workflow.d.ts +2 -0
  258. package/dist/commands/audit/stale-workflow.js +19 -0
  259. package/dist/commands/audit/suite.d.ts +2 -0
  260. package/dist/commands/audit/suite.js +31 -0
  261. package/dist/commands/audit/template-dependencies.d.ts +2 -0
  262. package/dist/commands/audit/template-dependencies.js +22 -0
  263. package/dist/commands/audit/translation-coverage.d.ts +2 -0
  264. package/dist/commands/audit/translation-coverage.js +22 -0
  265. package/dist/commands/audit/unused-media.d.ts +2 -0
  266. package/dist/commands/audit/unused-media.js +21 -0
  267. package/dist/commands/brand/docs.d.ts +9 -0
  268. package/dist/commands/brand/docs.js +168 -0
  269. package/dist/commands/brand/index.d.ts +13 -0
  270. package/dist/commands/brand/index.js +37 -0
  271. package/dist/commands/brand/ingest-enrich.d.ts +3 -0
  272. package/dist/commands/brand/ingest-enrich.js +71 -0
  273. package/dist/commands/brand/kits.d.ts +18 -0
  274. package/dist/commands/brand/kits.js +361 -0
  275. package/dist/commands/brand/review.d.ts +13 -0
  276. package/dist/commands/brand/review.js +65 -0
  277. package/dist/commands/brand/seed.d.ts +9 -0
  278. package/dist/commands/brand/seed.js +136 -0
  279. package/dist/commands/brand/sync.d.ts +11 -0
  280. package/dist/commands/brand/sync.js +128 -0
  281. package/dist/commands/brief/comments.d.ts +11 -0
  282. package/dist/commands/brief/comments.js +55 -0
  283. package/dist/commands/brief/delete.d.ts +10 -0
  284. package/dist/commands/brief/delete.js +40 -0
  285. package/dist/commands/brief/index.d.ts +19 -0
  286. package/dist/commands/brief/index.js +53 -0
  287. package/dist/commands/brief/list.d.ts +2 -0
  288. package/dist/commands/brief/list.js +19 -0
  289. package/dist/commands/brief/set-status.d.ts +10 -0
  290. package/dist/commands/brief/set-status.js +33 -0
  291. package/dist/commands/brief/show.d.ts +2 -0
  292. package/dist/commands/brief/show.js +19 -0
  293. package/dist/commands/brief/sync.d.ts +12 -0
  294. package/dist/commands/brief/sync.js +121 -0
  295. package/dist/commands/brief/todos.d.ts +9 -0
  296. package/dist/commands/brief/todos.js +28 -0
  297. package/dist/commands/brief/types.d.ts +16 -0
  298. package/dist/commands/brief/types.js +129 -0
  299. package/dist/commands/campaign/index.d.ts +2 -0
  300. package/dist/commands/campaign/index.js +309 -0
  301. package/dist/commands/campaign/sync.d.ts +12 -0
  302. package/dist/commands/campaign/sync.js +121 -0
  303. package/dist/commands/cleanup/archive.d.ts +2 -0
  304. package/dist/commands/cleanup/archive.js +21 -0
  305. package/dist/commands/cleanup/dead-templates.d.ts +2 -0
  306. package/dist/commands/cleanup/dead-templates.js +21 -0
  307. package/dist/commands/cleanup/duplicates.d.ts +2 -0
  308. package/dist/commands/cleanup/duplicates.js +49 -0
  309. package/dist/commands/cleanup/empty-folders.d.ts +2 -0
  310. package/dist/commands/cleanup/empty-folders.js +18 -0
  311. package/dist/commands/cleanup/field-set.d.ts +2 -0
  312. package/dist/commands/cleanup/field-set.js +44 -0
  313. package/dist/commands/cleanup/find-replace.d.ts +2 -0
  314. package/dist/commands/cleanup/find-replace.js +35 -0
  315. package/dist/commands/cleanup/index.d.ts +2 -0
  316. package/dist/commands/cleanup/index.js +48 -0
  317. package/dist/commands/cleanup/language-versions.d.ts +2 -0
  318. package/dist/commands/cleanup/language-versions.js +25 -0
  319. package/dist/commands/cleanup/rename.d.ts +2 -0
  320. package/dist/commands/cleanup/rename.js +32 -0
  321. package/dist/commands/cleanup/roles.d.ts +2 -0
  322. package/dist/commands/cleanup/roles.js +20 -0
  323. package/dist/commands/cleanup/shared.d.ts +2 -0
  324. package/dist/commands/cleanup/shared.js +15 -0
  325. package/dist/commands/cleanup/site-residue.d.ts +2 -0
  326. package/dist/commands/cleanup/site-residue.js +32 -0
  327. package/dist/commands/cleanup/slug-conflicts.d.ts +2 -0
  328. package/dist/commands/cleanup/slug-conflicts.js +54 -0
  329. package/dist/commands/cleanup/subtree.d.ts +2 -0
  330. package/dist/commands/cleanup/subtree.js +25 -0
  331. package/dist/commands/cleanup/users.d.ts +2 -0
  332. package/dist/commands/cleanup/users.js +23 -0
  333. package/dist/commands/cleanup/versions.d.ts +2 -0
  334. package/dist/commands/cleanup/versions.js +42 -0
  335. package/dist/commands/cleanup/workflow.d.ts +2 -0
  336. package/dist/commands/cleanup/workflow.js +40 -0
  337. package/dist/commands/config.d.ts +0 -1
  338. package/dist/commands/config.js +3 -3
  339. package/dist/commands/content/index.d.ts +2 -0
  340. package/dist/commands/content/index.js +11 -0
  341. package/dist/commands/content/version/index.d.ts +2 -0
  342. package/dist/commands/content/version/index.js +19 -0
  343. package/dist/commands/content/version/inspect.d.ts +2 -0
  344. package/dist/commands/content/version/inspect.js +22 -0
  345. package/dist/commands/content/version/set-never-publish.d.ts +2 -0
  346. package/dist/commands/content/version/set-never-publish.js +40 -0
  347. package/dist/commands/content/version/set-validity.d.ts +2 -0
  348. package/dist/commands/content/version/set-validity.js +30 -0
  349. package/dist/commands/deploy/deployments.d.ts +0 -1
  350. package/dist/commands/deploy/deployments.js +9 -9
  351. package/dist/commands/deploy/editing-host.d.ts +0 -1
  352. package/dist/commands/deploy/editing-host.js +25 -13
  353. package/dist/commands/deploy/environments/deployments.d.ts +0 -1
  354. package/dist/commands/deploy/environments/deployments.js +3 -3
  355. package/dist/commands/deploy/environments/index.d.ts +0 -1
  356. package/dist/commands/deploy/environments/index.js +1 -0
  357. package/dist/commands/deploy/environments/mutations.d.ts +0 -1
  358. package/dist/commands/deploy/environments/mutations.js +18 -17
  359. package/dist/commands/deploy/environments/queries.d.ts +1 -1
  360. package/dist/commands/deploy/environments/queries.js +29 -8
  361. package/dist/commands/deploy/environments/variables.d.ts +0 -1
  362. package/dist/commands/deploy/environments/variables.js +9 -8
  363. package/dist/commands/deploy/environments.d.ts +0 -1
  364. package/dist/commands/deploy/index.d.ts +0 -1
  365. package/dist/commands/deploy/index.js +1 -1
  366. package/dist/commands/deploy/logs.d.ts +0 -1
  367. package/dist/commands/deploy/logs.js +4 -4
  368. package/dist/commands/deploy/organizations.d.ts +0 -1
  369. package/dist/commands/deploy/organizations.js +5 -5
  370. package/dist/commands/deploy/projects.d.ts +0 -1
  371. package/dist/commands/deploy/projects.js +32 -20
  372. package/dist/commands/deploy/shared.d.ts +0 -1
  373. package/dist/commands/deploy/shared.js +1 -0
  374. package/dist/commands/deploy/site.d.ts +2 -3
  375. package/dist/commands/deploy/site.js +6 -5
  376. package/dist/commands/deploy/source-control.d.ts +0 -1
  377. package/dist/commands/deploy/source-control.js +13 -13
  378. package/dist/commands/deploy.d.ts +0 -1
  379. package/dist/commands/explain/index.d.ts +14 -0
  380. package/dist/commands/explain/index.js +25 -0
  381. package/dist/commands/explain/orphan-site.d.ts +11 -0
  382. package/dist/commands/explain/orphan-site.js +36 -0
  383. package/dist/commands/explain/why-blocked.d.ts +13 -0
  384. package/dist/commands/explain/why-blocked.js +42 -0
  385. package/dist/commands/health.d.ts +2 -0
  386. package/dist/commands/health.js +28 -0
  387. package/dist/commands/history.d.ts +0 -1
  388. package/dist/commands/history.js +11 -42
  389. package/dist/commands/init.d.ts +0 -1
  390. package/dist/commands/init.js +42 -8
  391. package/dist/commands/login.d.ts +11 -1
  392. package/dist/commands/login.js +35 -4
  393. package/dist/commands/logout.d.ts +0 -1
  394. package/dist/commands/logout.js +3 -3
  395. package/dist/commands/mcp/serve.d.ts +27 -0
  396. package/dist/commands/mcp/serve.js +120 -0
  397. package/dist/commands/mcp/tools.d.ts +8 -0
  398. package/dist/commands/mcp/tools.js +75 -0
  399. package/dist/commands/mcp.d.ts +2 -0
  400. package/dist/commands/mcp.js +23 -0
  401. package/dist/commands/policy.d.ts +16 -0
  402. package/dist/commands/policy.js +296 -0
  403. package/dist/commands/publish/all.d.ts +2 -0
  404. package/dist/commands/publish/all.js +41 -0
  405. package/dist/commands/publish/cancel.d.ts +2 -0
  406. package/dist/commands/publish/cancel.js +25 -0
  407. package/dist/commands/publish/history.d.ts +2 -0
  408. package/dist/commands/publish/history.js +34 -0
  409. package/dist/commands/publish/index.d.ts +2 -0
  410. package/dist/commands/publish/index.js +30 -0
  411. package/dist/commands/publish/item.d.ts +2 -0
  412. package/dist/commands/publish/item.js +55 -0
  413. package/dist/commands/publish/status.d.ts +2 -0
  414. package/dist/commands/publish/status.js +34 -0
  415. package/dist/commands/publish/unpublish.d.ts +2 -0
  416. package/dist/commands/publish/unpublish.js +52 -0
  417. package/dist/commands/recipe/index.d.ts +0 -1
  418. package/dist/commands/recipe/index.js +19 -15
  419. package/dist/commands/serialization/index.d.ts +0 -1
  420. package/dist/commands/serialization/index.js +14 -9
  421. package/dist/commands/serialization/package.d.ts +0 -1
  422. package/dist/commands/serialization/package.js +3 -3
  423. package/dist/commands/setup-client.d.ts +17 -0
  424. package/dist/commands/setup-client.js +148 -0
  425. package/dist/commands/shared.d.ts +72 -2
  426. package/dist/commands/shared.js +151 -24
  427. package/dist/commands/shell.d.ts +0 -1
  428. package/dist/commands/shell.js +1 -1
  429. package/dist/commands/status.d.ts +0 -1
  430. package/dist/commands/status.js +3 -3
  431. package/dist/commands/sync.d.ts +23 -0
  432. package/dist/commands/sync.js +154 -0
  433. package/dist/commands/telemetry.d.ts +0 -1
  434. package/dist/commands/telemetry.js +40 -2
  435. package/dist/commands/topics/index.d.ts +5 -0
  436. package/dist/commands/topics/index.js +102 -0
  437. package/dist/commands/webhook/create.d.ts +2 -0
  438. package/dist/commands/webhook/create.js +52 -0
  439. package/dist/commands/webhook/delete.d.ts +2 -0
  440. package/dist/commands/webhook/delete.js +20 -0
  441. package/dist/commands/webhook/event-types.d.ts +2 -0
  442. package/dist/commands/webhook/event-types.js +22 -0
  443. package/dist/commands/webhook/index.d.ts +2 -0
  444. package/dist/commands/webhook/index.js +33 -0
  445. package/dist/commands/webhook/inspect.d.ts +2 -0
  446. package/dist/commands/webhook/inspect.js +17 -0
  447. package/dist/commands/webhook/list.d.ts +2 -0
  448. package/dist/commands/webhook/list.js +24 -0
  449. package/dist/commands/webhook/shared.d.ts +2 -0
  450. package/dist/commands/webhook/shared.js +11 -0
  451. package/dist/commands/workflow/advance.d.ts +2 -0
  452. package/dist/commands/workflow/advance.js +22 -0
  453. package/dist/commands/workflow/apply.d.ts +2 -0
  454. package/dist/commands/workflow/apply.js +22 -0
  455. package/dist/commands/workflow/assigned.d.ts +2 -0
  456. package/dist/commands/workflow/assigned.js +21 -0
  457. package/dist/commands/workflow/index.d.ts +2 -0
  458. package/dist/commands/workflow/index.js +35 -0
  459. package/dist/commands/workflow/inspect.d.ts +2 -0
  460. package/dist/commands/workflow/inspect.js +17 -0
  461. package/dist/commands/workflow/list-commands.d.ts +2 -0
  462. package/dist/commands/workflow/list-commands.js +17 -0
  463. package/dist/commands/workflow/list-defs.d.ts +2 -0
  464. package/dist/commands/workflow/list-defs.js +17 -0
  465. package/dist/commands/workflow/reset.d.ts +2 -0
  466. package/dist/commands/workflow/reset.js +20 -0
  467. package/dist/commands/workflow/shared.d.ts +3 -0
  468. package/dist/commands/workflow/shared.js +12 -0
  469. package/dist/commands/workflow/status.d.ts +2 -0
  470. package/dist/commands/workflow/status.js +18 -0
  471. package/dist/config/env-overrides.d.ts +0 -1
  472. package/dist/config/env-overrides.js +41 -5
  473. package/dist/config/index.d.ts +15 -3
  474. package/dist/config/index.js +43 -3
  475. package/dist/config/modules.d.ts +0 -1
  476. package/dist/config/modules.js +2 -2
  477. package/dist/config/paths.d.ts +0 -1
  478. package/dist/config/paths.js +11 -2
  479. package/dist/config/root-config.d.ts +24 -1
  480. package/dist/config/root-config.js +84 -7
  481. package/dist/config/schema.json +113 -25
  482. package/dist/config/types.d.ts +228 -13
  483. package/dist/config/types.js +1 -1
  484. package/dist/config/validation.d.ts +1 -4
  485. package/dist/content/api/version-fields.d.ts +129 -0
  486. package/dist/content/api/version-fields.js +193 -0
  487. package/dist/content/index.d.ts +15 -0
  488. package/dist/content/index.js +40 -0
  489. package/dist/content/tasks/shared.d.ts +86 -0
  490. package/dist/content/tasks/shared.js +130 -0
  491. package/dist/content/tasks/version-inspect.d.ts +13 -0
  492. package/dist/content/tasks/version-inspect.js +56 -0
  493. package/dist/content/tasks/version-never-publish.d.ts +16 -0
  494. package/dist/content/tasks/version-never-publish.js +115 -0
  495. package/dist/content/tasks/version-validity.d.ts +24 -0
  496. package/dist/content/tasks/version-validity.js +159 -0
  497. package/dist/deploy/api/client-naming.d.ts +80 -0
  498. package/dist/deploy/api/client-naming.js +124 -0
  499. package/dist/deploy/api/client.d.ts +72 -0
  500. package/dist/deploy/api/client.js +72 -0
  501. package/dist/deploy/api/clients.d.ts +126 -0
  502. package/dist/deploy/api/clients.js +89 -0
  503. package/dist/deploy/api/common/headers.d.ts +0 -1
  504. package/dist/deploy/api/common/request.d.ts +0 -5
  505. package/dist/deploy/api/common/request.js +93 -120
  506. package/dist/deploy/api/common/transport-events.d.ts +31 -0
  507. package/dist/deploy/api/common/transport-events.js +24 -0
  508. package/dist/deploy/api/common/types.d.ts +60 -1
  509. package/dist/deploy/api/deployment-logs.d.ts +0 -1
  510. package/dist/deploy/api/deployment-logs.js +5 -5
  511. package/dist/deploy/api/deployments.d.ts +1 -2
  512. package/dist/deploy/api/deployments.js +22 -20
  513. package/dist/deploy/api/environments.d.ts +28 -2
  514. package/dist/deploy/api/environments.js +103 -20
  515. package/dist/deploy/api/index.d.ts +31 -9
  516. package/dist/deploy/api/index.js +129 -22
  517. package/dist/deploy/api/logs.d.ts +1 -2
  518. package/dist/deploy/api/logs.js +9 -7
  519. package/dist/deploy/api/organizations.d.ts +1 -2
  520. package/dist/deploy/api/organizations.js +8 -7
  521. package/dist/deploy/api/projects.d.ts +19 -4
  522. package/dist/deploy/api/projects.js +75 -13
  523. package/dist/deploy/api/source-control.d.ts +1 -2
  524. package/dist/deploy/api/source-control.js +25 -24
  525. package/dist/deploy/api.d.ts +0 -1
  526. package/dist/deploy/context.d.ts +52 -0
  527. package/dist/deploy/context.js +234 -0
  528. package/dist/deploy/index.d.ts +11 -0
  529. package/dist/deploy/index.js +38 -0
  530. package/dist/deploy/tasks/deployment-result.d.ts +0 -1
  531. package/dist/deploy/tasks/deployments.d.ts +0 -1
  532. package/dist/deploy/tasks/deployments.js +12 -11
  533. package/dist/deploy/tasks/editing-host.d.ts +0 -1
  534. package/dist/deploy/tasks/editing-host.js +48 -18
  535. package/dist/deploy/tasks/environments.d.ts +3 -3
  536. package/dist/deploy/tasks/environments.js +108 -24
  537. package/dist/deploy/tasks/health.d.ts +23 -0
  538. package/dist/deploy/tasks/health.js +181 -0
  539. package/dist/deploy/tasks/logs.d.ts +0 -1
  540. package/dist/deploy/tasks/logs.js +4 -4
  541. package/dist/deploy/tasks/organizations.d.ts +0 -1
  542. package/dist/deploy/tasks/organizations.js +5 -5
  543. package/dist/deploy/tasks/projects.d.ts +6 -2
  544. package/dist/deploy/tasks/projects.js +61 -42
  545. package/dist/deploy/tasks/shared.d.ts +9 -52
  546. package/dist/deploy/tasks/shared.js +46 -222
  547. package/dist/deploy/tasks/site-bind.d.ts +1 -2
  548. package/dist/deploy/tasks/site-bind.js +7 -7
  549. package/dist/deploy/tasks/site.d.ts +2 -3
  550. package/dist/deploy/tasks/site.js +4 -4
  551. package/dist/deploy/tasks/source-control.d.ts +0 -1
  552. package/dist/deploy/tasks/source-control.js +14 -14
  553. package/dist/deploy/tasks/transport-spinner.d.ts +5 -0
  554. package/dist/deploy/tasks/transport-spinner.js +118 -0
  555. package/dist/deploy/tasks/types.d.ts +16 -3
  556. package/dist/deploy/tasks/types.js +1 -1
  557. package/dist/hygiene/api/client.d.ts +294 -0
  558. package/dist/hygiene/api/client.js +827 -0
  559. package/dist/hygiene/api/graphql.d.ts +4 -0
  560. package/dist/hygiene/api/graphql.js +18 -0
  561. package/dist/hygiene/audit-suite.d.ts +84 -0
  562. package/dist/hygiene/audit-suite.js +95 -0
  563. package/dist/hygiene/baseline.d.ts +56 -0
  564. package/dist/hygiene/baseline.js +248 -0
  565. package/dist/hygiene/cache.d.ts +35 -0
  566. package/dist/hygiene/cache.js +179 -0
  567. package/dist/hygiene/history.d.ts +70 -0
  568. package/dist/hygiene/history.js +148 -0
  569. package/dist/hygiene/index.d.ts +128 -0
  570. package/dist/hygiene/index.js +168 -0
  571. package/dist/hygiene/output-adapters.d.ts +49 -0
  572. package/dist/hygiene/output-adapters.js +270 -0
  573. package/dist/hygiene/tasks/audit/all.d.ts +58 -0
  574. package/dist/hygiene/tasks/audit/all.js +274 -0
  575. package/dist/hygiene/tasks/audit/alt-text-missing.d.ts +27 -0
  576. package/dist/hygiene/tasks/audit/alt-text-missing.js +87 -0
  577. package/dist/hygiene/tasks/audit/baseline.d.ts +66 -0
  578. package/dist/hygiene/tasks/audit/baseline.js +185 -0
  579. package/dist/hygiene/tasks/audit/broken-images.d.ts +41 -0
  580. package/dist/hygiene/tasks/audit/broken-images.js +183 -0
  581. package/dist/hygiene/tasks/audit/broken-links.d.ts +53 -0
  582. package/dist/hygiene/tasks/audit/broken-links.js +121 -0
  583. package/dist/hygiene/tasks/audit/datasource-missing.d.ts +44 -0
  584. package/dist/hygiene/tasks/audit/datasource-missing.js +146 -0
  585. package/dist/hygiene/tasks/audit/dead-templates.d.ts +46 -0
  586. package/dist/hygiene/tasks/audit/dead-templates.js +216 -0
  587. package/dist/hygiene/tasks/audit/duplicates.d.ts +48 -0
  588. package/dist/hygiene/tasks/audit/duplicates.js +94 -0
  589. package/dist/hygiene/tasks/audit/empty-items.d.ts +24 -0
  590. package/dist/hygiene/tasks/audit/empty-items.js +53 -0
  591. package/dist/hygiene/tasks/audit/empty-links.d.ts +37 -0
  592. package/dist/hygiene/tasks/audit/empty-links.js +145 -0
  593. package/dist/hygiene/tasks/audit/empty-roles.d.ts +41 -0
  594. package/dist/hygiene/tasks/audit/empty-roles.js +51 -0
  595. package/dist/hygiene/tasks/audit/fallback-drift.d.ts +53 -0
  596. package/dist/hygiene/tasks/audit/fallback-drift.js +115 -0
  597. package/dist/hygiene/tasks/audit/find-replace.d.ts +75 -0
  598. package/dist/hygiene/tasks/audit/find-replace.js +142 -0
  599. package/dist/hygiene/tasks/audit/heavy-templates.d.ts +46 -0
  600. package/dist/hygiene/tasks/audit/heavy-templates.js +73 -0
  601. package/dist/hygiene/tasks/audit/history.d.ts +30 -0
  602. package/dist/hygiene/tasks/audit/history.js +161 -0
  603. package/dist/hygiene/tasks/audit/language-data.d.ts +55 -0
  604. package/dist/hygiene/tasks/audit/language-data.js +126 -0
  605. package/dist/hygiene/tasks/audit/large-fields.d.ts +48 -0
  606. package/dist/hygiene/tasks/audit/large-fields.js +84 -0
  607. package/dist/hygiene/tasks/audit/missing-meta.d.ts +57 -0
  608. package/dist/hygiene/tasks/audit/missing-meta.js +97 -0
  609. package/dist/hygiene/tasks/audit/orphans.d.ts +47 -0
  610. package/dist/hygiene/tasks/audit/orphans.js +78 -0
  611. package/dist/hygiene/tasks/audit/page-design-orphans.d.ts +24 -0
  612. package/dist/hygiene/tasks/audit/page-design-orphans.js +80 -0
  613. package/dist/hygiene/tasks/audit/personalization-broken.d.ts +25 -0
  614. package/dist/hygiene/tasks/audit/personalization-broken.js +96 -0
  615. package/dist/hygiene/tasks/audit/references.d.ts +70 -0
  616. package/dist/hygiene/tasks/audit/references.js +142 -0
  617. package/dist/hygiene/tasks/audit/role-bloat.d.ts +42 -0
  618. package/dist/hygiene/tasks/audit/role-bloat.js +64 -0
  619. package/dist/hygiene/tasks/audit/site-residue.d.ts +39 -0
  620. package/dist/hygiene/tasks/audit/site-residue.js +164 -0
  621. package/dist/hygiene/tasks/audit/slug-conflicts.d.ts +58 -0
  622. package/dist/hygiene/tasks/audit/slug-conflicts.js +87 -0
  623. package/dist/hygiene/tasks/audit/stale-content.d.ts +68 -0
  624. package/dist/hygiene/tasks/audit/stale-content.js +133 -0
  625. package/dist/hygiene/tasks/audit/stale-users.d.ts +54 -0
  626. package/dist/hygiene/tasks/audit/stale-users.js +83 -0
  627. package/dist/hygiene/tasks/audit/stale-workflow.d.ts +50 -0
  628. package/dist/hygiene/tasks/audit/stale-workflow.js +109 -0
  629. package/dist/hygiene/tasks/audit/suite-run.d.ts +28 -0
  630. package/dist/hygiene/tasks/audit/suite-run.js +46 -0
  631. package/dist/hygiene/tasks/audit/template-dependencies.d.ts +72 -0
  632. package/dist/hygiene/tasks/audit/template-dependencies.js +97 -0
  633. package/dist/hygiene/tasks/audit/translation-coverage.d.ts +64 -0
  634. package/dist/hygiene/tasks/audit/translation-coverage.js +123 -0
  635. package/dist/hygiene/tasks/audit/unused-media.d.ts +58 -0
  636. package/dist/hygiene/tasks/audit/unused-media.js +144 -0
  637. package/dist/hygiene/tasks/browse.d.ts +49 -0
  638. package/dist/hygiene/tasks/browse.js +50 -0
  639. package/dist/hygiene/tasks/cleanup/archive-purge.d.ts +50 -0
  640. package/dist/hygiene/tasks/cleanup/archive-purge.js +129 -0
  641. package/dist/hygiene/tasks/cleanup/dead-templates.d.ts +74 -0
  642. package/dist/hygiene/tasks/cleanup/dead-templates.js +247 -0
  643. package/dist/hygiene/tasks/cleanup/duplicates.d.ts +86 -0
  644. package/dist/hygiene/tasks/cleanup/duplicates.js +189 -0
  645. package/dist/hygiene/tasks/cleanup/empty-folders.d.ts +75 -0
  646. package/dist/hygiene/tasks/cleanup/empty-folders.js +165 -0
  647. package/dist/hygiene/tasks/cleanup/field-set.d.ts +108 -0
  648. package/dist/hygiene/tasks/cleanup/field-set.js +230 -0
  649. package/dist/hygiene/tasks/cleanup/find-replace.d.ts +77 -0
  650. package/dist/hygiene/tasks/cleanup/find-replace.js +180 -0
  651. package/dist/hygiene/tasks/cleanup/language-version-add.d.ts +74 -0
  652. package/dist/hygiene/tasks/cleanup/language-version-add.js +136 -0
  653. package/dist/hygiene/tasks/cleanup/rename.d.ts +78 -0
  654. package/dist/hygiene/tasks/cleanup/rename.js +152 -0
  655. package/dist/hygiene/tasks/cleanup/roles.d.ts +58 -0
  656. package/dist/hygiene/tasks/cleanup/roles.js +177 -0
  657. package/dist/hygiene/tasks/cleanup/site-residue.d.ts +55 -0
  658. package/dist/hygiene/tasks/cleanup/site-residue.js +247 -0
  659. package/dist/hygiene/tasks/cleanup/slug-conflicts.d.ts +126 -0
  660. package/dist/hygiene/tasks/cleanup/slug-conflicts.js +296 -0
  661. package/dist/hygiene/tasks/cleanup/subtree-prune.d.ts +40 -0
  662. package/dist/hygiene/tasks/cleanup/subtree-prune.js +113 -0
  663. package/dist/hygiene/tasks/cleanup/subtree.d.ts +123 -0
  664. package/dist/hygiene/tasks/cleanup/subtree.js +312 -0
  665. package/dist/hygiene/tasks/cleanup/users.d.ts +48 -0
  666. package/dist/hygiene/tasks/cleanup/users.js +92 -0
  667. package/dist/hygiene/tasks/cleanup/versions-archive.d.ts +57 -0
  668. package/dist/hygiene/tasks/cleanup/versions-archive.js +162 -0
  669. package/dist/hygiene/tasks/cleanup/versions-prune.d.ts +76 -0
  670. package/dist/hygiene/tasks/cleanup/versions-prune.js +194 -0
  671. package/dist/hygiene/tasks/cleanup/workflow-advance.d.ts +76 -0
  672. package/dist/hygiene/tasks/cleanup/workflow-advance.js +185 -0
  673. package/dist/hygiene/tasks/cleanup/workflow-apply.d.ts +97 -0
  674. package/dist/hygiene/tasks/cleanup/workflow-apply.js +310 -0
  675. package/dist/hygiene/tasks/explain/orphan-site.d.ts +53 -0
  676. package/dist/hygiene/tasks/explain/orphan-site.js +83 -0
  677. package/dist/hygiene/tasks/explain/why-blocked.d.ts +81 -0
  678. package/dist/hygiene/tasks/explain/why-blocked.js +149 -0
  679. package/dist/hygiene/tasks/reference-kind.d.ts +47 -0
  680. package/dist/hygiene/tasks/reference-kind.js +73 -0
  681. package/dist/hygiene/tasks/shared.d.ts +350 -0
  682. package/dist/hygiene/tasks/shared.js +532 -0
  683. package/dist/mcp/auth.d.ts +80 -0
  684. package/dist/mcp/auth.js +165 -0
  685. package/dist/mcp/build-registry.d.ts +12 -0
  686. package/dist/mcp/build-registry.js +75 -0
  687. package/dist/mcp/descriptions.d.ts +22 -0
  688. package/dist/mcp/descriptions.js +113 -0
  689. package/dist/mcp/dispatch.d.ts +44 -0
  690. package/dist/mcp/dispatch.js +110 -0
  691. package/dist/mcp/errors.d.ts +31 -0
  692. package/dist/mcp/errors.js +117 -0
  693. package/dist/mcp/http.d.ts +42 -0
  694. package/dist/mcp/http.js +128 -0
  695. package/dist/mcp/logging.d.ts +28 -0
  696. package/dist/mcp/logging.js +78 -0
  697. package/dist/mcp/prompts/workflows.d.ts +13 -0
  698. package/dist/mcp/prompts/workflows.js +171 -0
  699. package/dist/mcp/redact.d.ts +11 -0
  700. package/dist/mcp/redact.js +35 -0
  701. package/dist/mcp/registry.d.ts +84 -0
  702. package/dist/mcp/registry.js +62 -0
  703. package/dist/mcp/resources/brand.d.ts +20 -0
  704. package/dist/mcp/resources/brand.js +514 -0
  705. package/dist/mcp/resources/env.d.ts +10 -0
  706. package/dist/mcp/resources/env.js +120 -0
  707. package/dist/mcp/resources/help.d.ts +10 -0
  708. package/dist/mcp/resources/help.js +475 -0
  709. package/dist/mcp/resources/recipes.d.ts +13 -0
  710. package/dist/mcp/resources/recipes.js +270 -0
  711. package/dist/mcp/schemas/common.d.ts +22 -0
  712. package/dist/mcp/schemas/common.js +43 -0
  713. package/dist/mcp/server.d.ts +26 -0
  714. package/dist/mcp/server.js +88 -0
  715. package/dist/mcp/tools/access-check.d.ts +11 -0
  716. package/dist/mcp/tools/access-check.js +47 -0
  717. package/dist/mcp/tools/agents-recipe.d.ts +2 -0
  718. package/dist/mcp/tools/agents-recipe.js +139 -0
  719. package/dist/mcp/tools/agents.d.ts +2 -0
  720. package/dist/mcp/tools/agents.js +148 -0
  721. package/dist/mcp/tools/audit.d.ts +41 -0
  722. package/dist/mcp/tools/audit.js +584 -0
  723. package/dist/mcp/tools/bootstrap.d.ts +8 -0
  724. package/dist/mcp/tools/bootstrap.js +200 -0
  725. package/dist/mcp/tools/brand-recipe.d.ts +2 -0
  726. package/dist/mcp/tools/brand-recipe.js +123 -0
  727. package/dist/mcp/tools/brand.d.ts +28 -0
  728. package/dist/mcp/tools/brand.js +549 -0
  729. package/dist/mcp/tools/brief-recipe.d.ts +2 -0
  730. package/dist/mcp/tools/brief-recipe.js +123 -0
  731. package/dist/mcp/tools/brief.d.ts +16 -0
  732. package/dist/mcp/tools/brief.js +388 -0
  733. package/dist/mcp/tools/browse.d.ts +9 -0
  734. package/dist/mcp/tools/browse.js +57 -0
  735. package/dist/mcp/tools/campaign-recipe.d.ts +2 -0
  736. package/dist/mcp/tools/campaign-recipe.js +125 -0
  737. package/dist/mcp/tools/campaign.d.ts +20 -0
  738. package/dist/mcp/tools/campaign.js +342 -0
  739. package/dist/mcp/tools/cleanup.d.ts +22 -0
  740. package/dist/mcp/tools/cleanup.js +608 -0
  741. package/dist/mcp/tools/deploy.d.ts +19 -0
  742. package/dist/mcp/tools/deploy.js +797 -0
  743. package/dist/mcp/tools/explain.d.ts +2 -0
  744. package/dist/mcp/tools/explain.js +132 -0
  745. package/dist/mcp/tools/inspector.d.ts +12 -0
  746. package/dist/mcp/tools/inspector.js +101 -0
  747. package/dist/mcp/tools/onboard.d.ts +11 -0
  748. package/dist/mcp/tools/onboard.js +65 -0
  749. package/dist/mcp/tools/publish.d.ts +30 -0
  750. package/dist/mcp/tools/publish.js +173 -0
  751. package/dist/mcp/tools/recipe-sync.d.ts +2 -0
  752. package/dist/mcp/tools/recipe-sync.js +117 -0
  753. package/dist/mcp/tools/recipe.d.ts +18 -0
  754. package/dist/mcp/tools/recipe.js +250 -0
  755. package/dist/mcp/tools/serialization.d.ts +17 -0
  756. package/dist/mcp/tools/serialization.js +282 -0
  757. package/dist/mcp/tools/webhook.d.ts +12 -0
  758. package/dist/mcp/tools/webhook.js +246 -0
  759. package/dist/mcp/tools/workflow.d.ts +21 -0
  760. package/dist/mcp/tools/workflow.js +436 -0
  761. package/dist/policy/access-check.d.ts +56 -0
  762. package/dist/policy/access-check.js +160 -0
  763. package/dist/policy/allow-write.d.ts +37 -0
  764. package/dist/policy/allow-write.js +78 -0
  765. package/dist/policy/authorize.d.ts +36 -0
  766. package/dist/policy/authorize.js +102 -0
  767. package/dist/policy/caller.d.ts +23 -0
  768. package/dist/policy/caller.js +66 -0
  769. package/dist/policy/enforce.d.ts +25 -0
  770. package/dist/policy/enforce.js +57 -0
  771. package/dist/policy/enroll.d.ts +57 -0
  772. package/dist/policy/enroll.js +101 -0
  773. package/dist/policy/environment.d.ts +35 -0
  774. package/dist/policy/environment.js +44 -0
  775. package/dist/policy/identity.d.ts +24 -0
  776. package/dist/policy/identity.js +58 -0
  777. package/dist/policy/index.d.ts +22 -0
  778. package/dist/policy/index.js +42 -0
  779. package/dist/policy/operations.d.ts +24 -0
  780. package/dist/policy/operations.js +37 -0
  781. package/dist/policy/organization.d.ts +62 -0
  782. package/dist/policy/organization.js +97 -0
  783. package/dist/policy/paths.d.ts +21 -0
  784. package/dist/policy/paths.js +46 -0
  785. package/dist/policy/resolve.d.ts +15 -0
  786. package/dist/policy/resolve.js +67 -0
  787. package/dist/policy/schema.d.ts +137 -0
  788. package/dist/policy/schema.js +92 -0
  789. package/dist/policy/store.d.ts +25 -0
  790. package/dist/policy/store.js +85 -0
  791. package/dist/policy/types.d.ts +52 -0
  792. package/dist/policy/types.js +22 -0
  793. package/dist/program.d.ts +35 -0
  794. package/dist/program.js +131 -0
  795. package/dist/publishing/api/auth.d.ts +49 -0
  796. package/dist/publishing/api/auth.js +173 -0
  797. package/dist/publishing/api/client.d.ts +5 -0
  798. package/dist/publishing/api/client.js +153 -0
  799. package/dist/publishing/api/languages.d.ts +61 -0
  800. package/dist/publishing/api/languages.js +116 -0
  801. package/dist/publishing/api/path-resolver.d.ts +10 -0
  802. package/dist/publishing/api/path-resolver.js +76 -0
  803. package/dist/publishing/api/sites.d.ts +23 -0
  804. package/dist/publishing/api/sites.js +27 -0
  805. package/dist/publishing/api/types.d.ts +166 -0
  806. package/dist/publishing/api/types.js +17 -0
  807. package/dist/publishing/index.d.ts +25 -0
  808. package/dist/publishing/index.js +51 -0
  809. package/dist/publishing/job-diagnostics.d.ts +44 -0
  810. package/dist/publishing/job-diagnostics.js +87 -0
  811. package/dist/publishing/job-watcher.d.ts +33 -0
  812. package/dist/publishing/job-watcher.js +118 -0
  813. package/dist/publishing/tasks/all.d.ts +41 -0
  814. package/dist/publishing/tasks/all.js +234 -0
  815. package/dist/publishing/tasks/cancel.d.ts +18 -0
  816. package/dist/publishing/tasks/cancel.js +147 -0
  817. package/dist/publishing/tasks/history.d.ts +22 -0
  818. package/dist/publishing/tasks/history.js +85 -0
  819. package/dist/publishing/tasks/item.d.ts +69 -0
  820. package/dist/publishing/tasks/item.js +194 -0
  821. package/dist/publishing/tasks/status.d.ts +17 -0
  822. package/dist/publishing/tasks/status.js +74 -0
  823. package/dist/publishing/tasks/unpublish.d.ts +69 -0
  824. package/dist/publishing/tasks/unpublish.js +546 -0
  825. package/dist/recipe/api/auth.d.ts +1 -2
  826. package/dist/recipe/api/auth.js +1 -1
  827. package/dist/recipe/api/authoring-client.d.ts +9 -3
  828. package/dist/recipe/api/authoring-client.js +101 -17
  829. package/dist/recipe/api/client.d.ts +50 -1
  830. package/dist/recipe/api/graphql.d.ts +2 -3
  831. package/dist/recipe/api/graphql.js +1 -1
  832. package/dist/recipe/api/ref-encoding.d.ts +0 -1
  833. package/dist/recipe/api/ref-encoding.js +5 -5
  834. package/dist/recipe/api/site-discovery.d.ts +1 -2
  835. package/dist/recipe/api/sites-client.d.ts +6 -3
  836. package/dist/recipe/api/sites-client.js +11 -8
  837. package/dist/recipe/cache.d.ts +0 -1
  838. package/dist/recipe/compile/component-section.d.ts +1 -2
  839. package/dist/recipe/compile/component-section.js +2 -2
  840. package/dist/recipe/compile/component-template.d.ts +0 -1
  841. package/dist/recipe/compile/component-template.js +15 -19
  842. package/dist/recipe/compile/content-item.d.ts +42 -22
  843. package/dist/recipe/compile/content-item.js +198 -46
  844. package/dist/recipe/compile/content-template.d.ts +0 -1
  845. package/dist/recipe/compile/content-template.js +25 -1
  846. package/dist/recipe/compile/design-parameters-template.d.ts +13 -0
  847. package/dist/recipe/compile/design-parameters-template.js +92 -0
  848. package/dist/recipe/compile/enumeration.d.ts +0 -1
  849. package/dist/recipe/compile/enumeration.js +4 -4
  850. package/dist/recipe/compile/page-design.d.ts +0 -1
  851. package/dist/recipe/compile/page-design.js +1 -1
  852. package/dist/recipe/compile/page-template.d.ts +30 -0
  853. package/dist/recipe/compile/page-template.js +121 -0
  854. package/dist/recipe/compile/page.d.ts +26 -0
  855. package/dist/recipe/compile/page.js +184 -0
  856. package/dist/recipe/compile/partial-design.d.ts +0 -1
  857. package/dist/recipe/compile/partial-design.js +1 -1
  858. package/dist/recipe/compile/placeholder.d.ts +23 -0
  859. package/dist/recipe/compile/placeholder.js +32 -0
  860. package/dist/recipe/compile/section-definition.d.ts +0 -1
  861. package/dist/recipe/compile/shared.d.ts +52 -7
  862. package/dist/recipe/compile/shared.js +55 -15
  863. package/dist/recipe/compile/site-template.d.ts +0 -1
  864. package/dist/recipe/compile/site-template.js +1 -1
  865. package/dist/recipe/compile/site.d.ts +0 -1
  866. package/dist/recipe/compile/site.js +1 -1
  867. package/dist/recipe/compile/webhook-authorization.d.ts +23 -0
  868. package/dist/recipe/compile/webhook-authorization.js +116 -0
  869. package/dist/recipe/compile/workflow.d.ts +46 -0
  870. package/dist/recipe/compile/workflow.js +368 -0
  871. package/dist/recipe/compile.d.ts +19 -3
  872. package/dist/recipe/compile.js +297 -11
  873. package/dist/recipe/ensure-marker-field.d.ts +25 -0
  874. package/dist/recipe/ensure-marker-field.js +140 -0
  875. package/dist/recipe/execute.d.ts +19 -2
  876. package/dist/recipe/execute.js +39 -8
  877. package/dist/recipe/guids.d.ts +106 -9
  878. package/dist/recipe/guids.js +126 -15
  879. package/dist/recipe/index.d.ts +11 -5
  880. package/dist/recipe/index.js +46 -23
  881. package/dist/recipe/io.d.ts +0 -1
  882. package/dist/recipe/io.js +33 -10
  883. package/dist/recipe/ir/operations.d.ts +66 -4
  884. package/dist/recipe/ir/operations.js +55 -2
  885. package/dist/recipe/ir/sitecore-templates.d.ts +87 -1
  886. package/dist/recipe/ir/sitecore-templates.js +94 -1
  887. package/dist/recipe/layout/emit.d.ts +22 -3
  888. package/dist/recipe/layout/emit.js +18 -7
  889. package/dist/recipe/layout/parse.d.ts +164 -0
  890. package/dist/recipe/layout/parse.js +295 -0
  891. package/dist/recipe/layout/templates-mapping.d.ts +0 -1
  892. package/dist/recipe/marker.d.ts +28 -0
  893. package/dist/recipe/marker.js +37 -0
  894. package/dist/recipe/plan.d.ts +9 -2
  895. package/dist/recipe/plan.js +195 -19
  896. package/dist/recipe/policy.d.ts +0 -1
  897. package/dist/recipe/policy.js +19 -1
  898. package/dist/recipe/read-current.d.ts +109 -0
  899. package/dist/recipe/read-current.js +1285 -0
  900. package/dist/recipe/recipe-kind.d.ts +4 -0
  901. package/dist/recipe/recipe-kind.js +217 -0
  902. package/dist/recipe/rollback-log.d.ts +52 -0
  903. package/dist/recipe/rollback-log.js +90 -0
  904. package/dist/recipe/rollback.d.ts +12 -1
  905. package/dist/recipe/rollback.js +32 -7
  906. package/dist/recipe/sandbox/load.d.ts +17 -0
  907. package/dist/recipe/sandbox/load.js +145 -0
  908. package/dist/recipe/sandbox/recipe-runner.cjs +49 -0
  909. package/dist/recipe/sandbox/transpile.d.ts +17 -0
  910. package/dist/recipe/sandbox/transpile.js +46 -0
  911. package/dist/recipe/schema/field-types.d.ts +3 -4
  912. package/dist/recipe/schema/recipe.d.ts +1631 -213
  913. package/dist/recipe/schema/recipe.js +576 -37
  914. package/dist/recipe/schema/source-fields.d.ts +0 -1
  915. package/dist/recipe/tasks/compile.d.ts +1 -2
  916. package/dist/recipe/tasks/compile.js +14 -4
  917. package/dist/recipe/tasks/diff.d.ts +1 -2
  918. package/dist/recipe/tasks/placeholder-allow.d.ts +0 -1
  919. package/dist/recipe/tasks/placeholder-allow.js +3 -7
  920. package/dist/recipe/tasks/plan.d.ts +3 -4
  921. package/dist/recipe/tasks/plan.js +5 -5
  922. package/dist/recipe/tasks/prune-defaults.d.ts +1 -2
  923. package/dist/recipe/tasks/prune-defaults.js +6 -7
  924. package/dist/recipe/tasks/push.d.ts +1 -2
  925. package/dist/recipe/tasks/push.js +46 -6
  926. package/dist/recipe/tasks/shared.d.ts +21 -4
  927. package/dist/recipe/tasks/shared.js +34 -21
  928. package/dist/recipe/unstable.d.ts +18 -0
  929. package/dist/recipe/unstable.js +36 -0
  930. package/dist/recipe/validate.d.ts +51 -2
  931. package/dist/recipe/validate.js +162 -15
  932. package/dist/scripting/connect.d.ts +24 -0
  933. package/dist/scripting/connect.js +17 -0
  934. package/dist/scripting/helpers/multilist.d.ts +26 -0
  935. package/dist/scripting/helpers/multilist.js +75 -0
  936. package/dist/scripting/index.d.ts +20 -0
  937. package/dist/scripting/index.js +57 -0
  938. package/dist/serialization/api/auth.d.ts +57 -0
  939. package/dist/serialization/api/auth.js +433 -0
  940. package/dist/serialization/api/client.d.ts +41 -0
  941. package/dist/serialization/api/client.js +41 -0
  942. package/dist/serialization/api/graphql.d.ts +11 -0
  943. package/dist/serialization/api/history.d.ts +8 -0
  944. package/dist/serialization/api/index.d.ts +23 -0
  945. package/dist/serialization/api/index.js +64 -0
  946. package/dist/serialization/api/items.d.ts +7 -0
  947. package/dist/serialization/api/items.js +132 -0
  948. package/dist/serialization/api/publish.d.ts +43 -0
  949. package/dist/serialization/api/publish.js +67 -0
  950. package/dist/serialization/api/roles.d.ts +8 -0
  951. package/dist/serialization/api/types.d.ts +65 -0
  952. package/dist/serialization/api/types.js +2 -0
  953. package/dist/serialization/api/users.d.ts +8 -0
  954. package/dist/serialization/commands.d.ts +0 -1
  955. package/dist/serialization/compare.d.ts +0 -1
  956. package/dist/serialization/context.d.ts +25 -0
  957. package/dist/serialization/context.js +58 -0
  958. package/dist/serialization/field-filter.d.ts +0 -1
  959. package/dist/serialization/filesystem-store/constants.d.ts +0 -1
  960. package/dist/serialization/filesystem-store/items.d.ts +0 -1
  961. package/dist/serialization/filesystem-store/items.js +1 -1
  962. package/dist/serialization/filesystem-store/roles.d.ts +1 -2
  963. package/dist/serialization/filesystem-store/users.d.ts +1 -2
  964. package/dist/serialization/filesystem-store/utils.d.ts +0 -1
  965. package/dist/serialization/index.d.ts +12 -0
  966. package/dist/serialization/index.js +32 -0
  967. package/dist/serialization/item-path.d.ts +0 -1
  968. package/dist/serialization/item-path.js +3 -3
  969. package/dist/serialization/path-provider.d.ts +0 -1
  970. package/dist/serialization/path-provider.js +4 -4
  971. package/dist/serialization/signature.d.ts +0 -1
  972. package/dist/serialization/tasks/diff.d.ts +0 -1
  973. package/dist/serialization/tasks/diff.js +176 -48
  974. package/dist/serialization/tasks/env/constants.d.ts +13 -1
  975. package/dist/serialization/tasks/env/constants.js +64 -1
  976. package/dist/serialization/tasks/env/deploy-token.d.ts +0 -1
  977. package/dist/serialization/tasks/env/deploy-token.js +69 -17
  978. package/dist/serialization/tasks/env/init/auth.d.ts +11 -3
  979. package/dist/serialization/tasks/env/init/auth.js +19 -17
  980. package/dist/serialization/tasks/env/init/deploy-lookup.d.ts +1 -2
  981. package/dist/serialization/tasks/env/init/deploy-lookup.js +18 -5
  982. package/dist/serialization/tasks/env/init.d.ts +0 -1
  983. package/dist/serialization/tasks/env/init.js +18 -12
  984. package/dist/serialization/tasks/env/logout.d.ts +0 -1
  985. package/dist/serialization/tasks/env/logout.js +13 -6
  986. package/dist/serialization/tasks/env/onboard.d.ts +40 -0
  987. package/dist/serialization/tasks/env/onboard.js +53 -0
  988. package/dist/serialization/tasks/env/setup-clients.d.ts +24 -0
  989. package/dist/serialization/tasks/env/setup-clients.js +119 -0
  990. package/dist/serialization/tasks/env/setup-env.d.ts +54 -0
  991. package/dist/serialization/tasks/env/setup-env.js +216 -0
  992. package/dist/serialization/tasks/env/setup-org-client.d.ts +21 -0
  993. package/dist/serialization/tasks/env/setup-org-client.js +146 -0
  994. package/dist/serialization/tasks/env/status.d.ts +0 -1
  995. package/dist/serialization/tasks/env/status.js +36 -11
  996. package/dist/serialization/tasks/helpers/collect.d.ts +1 -2
  997. package/dist/serialization/tasks/helpers/collect.js +22 -15
  998. package/dist/serialization/tasks/helpers/commands.d.ts +0 -1
  999. package/dist/serialization/tasks/helpers/filesystem.d.ts +0 -1
  1000. package/dist/serialization/tasks/helpers/filesystem.js +4 -4
  1001. package/dist/serialization/tasks/helpers/items.d.ts +0 -1
  1002. package/dist/serialization/tasks/helpers/sitecore.d.ts +1 -2
  1003. package/dist/serialization/tasks/helpers/sitecore.js +2 -2
  1004. package/dist/serialization/tasks/info.d.ts +0 -1
  1005. package/dist/serialization/tasks/package.d.ts +0 -1
  1006. package/dist/serialization/tasks/package.js +21 -16
  1007. package/dist/serialization/tasks/pull.d.ts +0 -1
  1008. package/dist/serialization/tasks/pull.js +24 -9
  1009. package/dist/serialization/tasks/push.d.ts +0 -1
  1010. package/dist/serialization/tasks/push.js +27 -11
  1011. package/dist/serialization/tasks/roles.d.ts +2 -2
  1012. package/dist/serialization/tasks/roles.js +9 -9
  1013. package/dist/serialization/tasks/shared.d.ts +9 -16
  1014. package/dist/serialization/tasks/shared.js +14 -44
  1015. package/dist/serialization/tasks/types.d.ts +44 -4
  1016. package/dist/serialization/tasks/types.js +1 -1
  1017. package/dist/serialization/tasks/users.d.ts +2 -2
  1018. package/dist/serialization/tasks/users.js +9 -9
  1019. package/dist/serialization/tasks/validate.d.ts +0 -1
  1020. package/dist/serialization/tasks/validate.js +2 -2
  1021. package/dist/serialization/tasks/watch.d.ts +0 -1
  1022. package/dist/serialization/tasks/watch.js +9 -8
  1023. package/dist/serialization/tree-spec.d.ts +0 -1
  1024. package/dist/serialization/tree-spec.js +21 -21
  1025. package/dist/serialization/types.d.ts +0 -1
  1026. package/dist/serialization/wildcard.d.ts +0 -1
  1027. package/dist/serialization/wildcard.js +2 -2
  1028. package/dist/serialization/yaml.d.ts +0 -1
  1029. package/dist/serialization/yaml.js +1 -1
  1030. package/dist/shared/browser.d.ts +0 -1
  1031. package/dist/shared/cli-options.d.ts +0 -1
  1032. package/dist/shared/cli-tasks.d.ts +1 -2
  1033. package/dist/shared/cli-tasks.js +2 -2
  1034. package/dist/shared/client-credential.d.ts +82 -0
  1035. package/dist/shared/client-credential.js +117 -0
  1036. package/dist/shared/concurrency.d.ts +20 -0
  1037. package/dist/shared/concurrency.js +67 -0
  1038. package/dist/shared/config-template.d.ts +0 -1
  1039. package/dist/shared/credential-matrix.d.ts +83 -0
  1040. package/dist/shared/credential-matrix.js +65 -0
  1041. package/dist/shared/env-tier.d.ts +2 -0
  1042. package/dist/shared/env-tier.js +31 -0
  1043. package/dist/shared/envelope.d.ts +69 -0
  1044. package/dist/shared/envelope.js +84 -0
  1045. package/dist/shared/errors.d.ts +79 -9
  1046. package/dist/shared/errors.js +49 -11
  1047. package/dist/shared/graphql.d.ts +2 -3
  1048. package/dist/shared/graphql.js +31 -15
  1049. package/dist/shared/history.d.ts +25 -1
  1050. package/dist/shared/history.js +35 -1
  1051. package/dist/shared/human-only-operations.d.ts +28 -0
  1052. package/dist/shared/human-only-operations.js +33 -0
  1053. package/dist/shared/keychain.d.ts +68 -1
  1054. package/dist/shared/keychain.js +416 -46
  1055. package/dist/shared/logger.d.ts +2 -1
  1056. package/dist/shared/logger.js +12 -1
  1057. package/dist/shared/output.d.ts +0 -1
  1058. package/dist/shared/prompt.d.ts +0 -1
  1059. package/dist/shared/prompt.js +2 -2
  1060. package/dist/shared/publish-audit.d.ts +154 -0
  1061. package/dist/shared/publish-audit.js +52 -0
  1062. package/dist/shared/publish-consent.d.ts +104 -0
  1063. package/dist/shared/publish-consent.js +148 -0
  1064. package/dist/shared/redact.d.ts +0 -1
  1065. package/dist/shared/redact.js +4 -2
  1066. package/dist/shared/region.d.ts +96 -0
  1067. package/dist/shared/region.js +129 -0
  1068. package/dist/shared/rwlock.d.ts +43 -0
  1069. package/dist/shared/rwlock.js +110 -0
  1070. package/dist/shared/spinner.d.ts +0 -1
  1071. package/dist/shared/style.d.ts +0 -1
  1072. package/dist/shared/telemetry.d.ts +15 -2
  1073. package/dist/shared/telemetry.js +59 -34
  1074. package/dist/shared/topics.d.ts +33 -0
  1075. package/dist/shared/topics.js +151 -0
  1076. package/dist/shared/validate.d.ts +0 -1
  1077. package/dist/shared/validate.js +18 -3
  1078. package/dist/sites/api/collections.d.ts +0 -1
  1079. package/dist/sites/api/jobs.d.ts +0 -1
  1080. package/dist/sites/api/languages.d.ts +0 -1
  1081. package/dist/sites/api/request.d.ts +0 -1
  1082. package/dist/sites/api/request.js +13 -4
  1083. package/dist/sites/api/sites.d.ts +44 -1
  1084. package/dist/sites/api/sites.js +42 -1
  1085. package/dist/sites/api/types.d.ts +0 -1
  1086. package/dist/sites/index.d.ts +25 -0
  1087. package/dist/sites/index.js +44 -0
  1088. package/dist/sync/aggregate-kinds.d.ts +7 -0
  1089. package/dist/sync/aggregate-kinds.js +32 -0
  1090. package/dist/sync/aggregate.d.ts +100 -0
  1091. package/dist/sync/aggregate.js +173 -0
  1092. package/dist/sync/engine.d.ts +28 -0
  1093. package/dist/sync/engine.js +38 -0
  1094. package/dist/sync/index.d.ts +18 -0
  1095. package/dist/sync/index.js +25 -0
  1096. package/dist/sync/io.d.ts +8 -0
  1097. package/dist/sync/io.js +52 -0
  1098. package/dist/sync/kind.d.ts +80 -0
  1099. package/dist/sync/kind.js +2 -0
  1100. package/dist/sync/plan.d.ts +55 -0
  1101. package/dist/sync/plan.js +27 -0
  1102. package/dist/sync/registry.d.ts +7 -0
  1103. package/dist/sync/registry.js +36 -0
  1104. package/dist/webhooks/api/client.d.ts +134 -0
  1105. package/dist/webhooks/api/client.js +326 -0
  1106. package/dist/webhooks/api/graphql.d.ts +4 -0
  1107. package/dist/webhooks/api/graphql.js +18 -0
  1108. package/dist/webhooks/api/templates.d.ts +41 -0
  1109. package/dist/webhooks/api/templates.js +78 -0
  1110. package/dist/webhooks/index.d.ts +16 -0
  1111. package/dist/webhooks/index.js +43 -0
  1112. package/dist/webhooks/tasks/create.d.ts +58 -0
  1113. package/dist/webhooks/tasks/create.js +127 -0
  1114. package/dist/webhooks/tasks/delete.d.ts +14 -0
  1115. package/dist/webhooks/tasks/delete.js +57 -0
  1116. package/dist/webhooks/tasks/event-types.d.ts +21 -0
  1117. package/dist/webhooks/tasks/event-types.js +32 -0
  1118. package/dist/webhooks/tasks/inspect.d.ts +12 -0
  1119. package/dist/webhooks/tasks/inspect.js +65 -0
  1120. package/dist/webhooks/tasks/list.d.ts +29 -0
  1121. package/dist/webhooks/tasks/list.js +41 -0
  1122. package/dist/webhooks/tasks/shared.d.ts +35 -0
  1123. package/dist/webhooks/tasks/shared.js +38 -0
  1124. package/dist/workflow/api/client.d.ts +208 -0
  1125. package/dist/workflow/api/client.js +421 -0
  1126. package/dist/workflow/api/graphql.d.ts +4 -0
  1127. package/dist/workflow/api/graphql.js +18 -0
  1128. package/dist/workflow/api/resolve-command.d.ts +27 -0
  1129. package/dist/workflow/api/resolve-command.js +26 -0
  1130. package/dist/workflow/index.d.ts +18 -0
  1131. package/dist/workflow/index.js +37 -0
  1132. package/dist/workflow/tasks/advance.d.ts +39 -0
  1133. package/dist/workflow/tasks/advance.js +182 -0
  1134. package/dist/workflow/tasks/apply.d.ts +47 -0
  1135. package/dist/workflow/tasks/apply.js +193 -0
  1136. package/dist/workflow/tasks/assigned.d.ts +33 -0
  1137. package/dist/workflow/tasks/assigned.js +41 -0
  1138. package/dist/workflow/tasks/inspect.d.ts +60 -0
  1139. package/dist/workflow/tasks/inspect.js +171 -0
  1140. package/dist/workflow/tasks/list-commands.d.ts +21 -0
  1141. package/dist/workflow/tasks/list-commands.js +54 -0
  1142. package/dist/workflow/tasks/list-defs.d.ts +21 -0
  1143. package/dist/workflow/tasks/list-defs.js +28 -0
  1144. package/dist/workflow/tasks/reset.d.ts +33 -0
  1145. package/dist/workflow/tasks/reset.js +137 -0
  1146. package/dist/workflow/tasks/shared.d.ts +75 -0
  1147. package/dist/workflow/tasks/shared.js +124 -0
  1148. package/dist/workflow/tasks/status.d.ts +21 -0
  1149. package/dist/workflow/tasks/status.js +41 -0
  1150. package/package.json +102 -8
  1151. package/dist/cli.d.ts.map +0 -1
  1152. package/dist/commands/config.d.ts.map +0 -1
  1153. package/dist/commands/deploy/deployments.d.ts.map +0 -1
  1154. package/dist/commands/deploy/editing-host.d.ts.map +0 -1
  1155. package/dist/commands/deploy/environments/deployments.d.ts.map +0 -1
  1156. package/dist/commands/deploy/environments/index.d.ts.map +0 -1
  1157. package/dist/commands/deploy/environments/mutations.d.ts.map +0 -1
  1158. package/dist/commands/deploy/environments/queries.d.ts.map +0 -1
  1159. package/dist/commands/deploy/environments/variables.d.ts.map +0 -1
  1160. package/dist/commands/deploy/environments.d.ts.map +0 -1
  1161. package/dist/commands/deploy/index.d.ts.map +0 -1
  1162. package/dist/commands/deploy/logs.d.ts.map +0 -1
  1163. package/dist/commands/deploy/organizations.d.ts.map +0 -1
  1164. package/dist/commands/deploy/projects.d.ts.map +0 -1
  1165. package/dist/commands/deploy/shared.d.ts.map +0 -1
  1166. package/dist/commands/deploy/site.d.ts.map +0 -1
  1167. package/dist/commands/deploy/source-control.d.ts.map +0 -1
  1168. package/dist/commands/deploy.d.ts.map +0 -1
  1169. package/dist/commands/history.d.ts.map +0 -1
  1170. package/dist/commands/init.d.ts.map +0 -1
  1171. package/dist/commands/login.d.ts.map +0 -1
  1172. package/dist/commands/logout.d.ts.map +0 -1
  1173. package/dist/commands/recipe/index.d.ts.map +0 -1
  1174. package/dist/commands/serialization/index.d.ts.map +0 -1
  1175. package/dist/commands/serialization/package.d.ts.map +0 -1
  1176. package/dist/commands/shared.d.ts.map +0 -1
  1177. package/dist/commands/shell.d.ts.map +0 -1
  1178. package/dist/commands/status.d.ts.map +0 -1
  1179. package/dist/commands/telemetry.d.ts.map +0 -1
  1180. package/dist/config/env-overrides.d.ts.map +0 -1
  1181. package/dist/config/index.d.ts.map +0 -1
  1182. package/dist/config/modules.d.ts.map +0 -1
  1183. package/dist/config/paths.d.ts.map +0 -1
  1184. package/dist/config/root-config.d.ts.map +0 -1
  1185. package/dist/config/types.d.ts.map +0 -1
  1186. package/dist/config/validation.d.ts.map +0 -1
  1187. package/dist/deploy/api/common/headers.d.ts.map +0 -1
  1188. package/dist/deploy/api/common/index.d.ts +0 -4
  1189. package/dist/deploy/api/common/index.d.ts.map +0 -1
  1190. package/dist/deploy/api/common/index.js +0 -19
  1191. package/dist/deploy/api/common/request.d.ts.map +0 -1
  1192. package/dist/deploy/api/common/types.d.ts.map +0 -1
  1193. package/dist/deploy/api/common.d.ts +0 -2
  1194. package/dist/deploy/api/common.d.ts.map +0 -1
  1195. package/dist/deploy/api/common.js +0 -17
  1196. package/dist/deploy/api/deployment-logs.d.ts.map +0 -1
  1197. package/dist/deploy/api/deployments.d.ts.map +0 -1
  1198. package/dist/deploy/api/environments.d.ts.map +0 -1
  1199. package/dist/deploy/api/index.d.ts.map +0 -1
  1200. package/dist/deploy/api/logs.d.ts.map +0 -1
  1201. package/dist/deploy/api/organizations.d.ts.map +0 -1
  1202. package/dist/deploy/api/projects.d.ts.map +0 -1
  1203. package/dist/deploy/api/source-control.d.ts.map +0 -1
  1204. package/dist/deploy/api.d.ts.map +0 -1
  1205. package/dist/deploy/tasks/deployment-result.d.ts.map +0 -1
  1206. package/dist/deploy/tasks/deployments.d.ts.map +0 -1
  1207. package/dist/deploy/tasks/editing-host.d.ts.map +0 -1
  1208. package/dist/deploy/tasks/environments.d.ts.map +0 -1
  1209. package/dist/deploy/tasks/index.d.ts +0 -10
  1210. package/dist/deploy/tasks/index.d.ts.map +0 -1
  1211. package/dist/deploy/tasks/index.js +0 -25
  1212. package/dist/deploy/tasks/logs.d.ts.map +0 -1
  1213. package/dist/deploy/tasks/organizations.d.ts.map +0 -1
  1214. package/dist/deploy/tasks/projects.d.ts.map +0 -1
  1215. package/dist/deploy/tasks/shared.d.ts.map +0 -1
  1216. package/dist/deploy/tasks/site-bind.d.ts.map +0 -1
  1217. package/dist/deploy/tasks/site.d.ts.map +0 -1
  1218. package/dist/deploy/tasks/source-control.d.ts.map +0 -1
  1219. package/dist/deploy/tasks/types.d.ts.map +0 -1
  1220. package/dist/deploy/tasks.d.ts +0 -3
  1221. package/dist/deploy/tasks.d.ts.map +0 -1
  1222. package/dist/deploy/tasks.js +0 -18
  1223. package/dist/recipe/api/auth.d.ts.map +0 -1
  1224. package/dist/recipe/api/authoring-client.d.ts.map +0 -1
  1225. package/dist/recipe/api/client.d.ts.map +0 -1
  1226. package/dist/recipe/api/graphql.d.ts.map +0 -1
  1227. package/dist/recipe/api/ref-encoding.d.ts.map +0 -1
  1228. package/dist/recipe/api/site-discovery.d.ts.map +0 -1
  1229. package/dist/recipe/api/sites-client.d.ts.map +0 -1
  1230. package/dist/recipe/cache.d.ts.map +0 -1
  1231. package/dist/recipe/compile/component-section.d.ts.map +0 -1
  1232. package/dist/recipe/compile/component-template.d.ts.map +0 -1
  1233. package/dist/recipe/compile/content-item.d.ts.map +0 -1
  1234. package/dist/recipe/compile/content-template.d.ts.map +0 -1
  1235. package/dist/recipe/compile/enumeration.d.ts.map +0 -1
  1236. package/dist/recipe/compile/page-design.d.ts.map +0 -1
  1237. package/dist/recipe/compile/parameters-template.d.ts +0 -14
  1238. package/dist/recipe/compile/parameters-template.d.ts.map +0 -1
  1239. package/dist/recipe/compile/parameters-template.js +0 -92
  1240. package/dist/recipe/compile/partial-design.d.ts.map +0 -1
  1241. package/dist/recipe/compile/section-definition.d.ts.map +0 -1
  1242. package/dist/recipe/compile/shared.d.ts.map +0 -1
  1243. package/dist/recipe/compile/site-template.d.ts.map +0 -1
  1244. package/dist/recipe/compile/site.d.ts.map +0 -1
  1245. package/dist/recipe/compile.d.ts.map +0 -1
  1246. package/dist/recipe/execute.d.ts.map +0 -1
  1247. package/dist/recipe/guids.d.ts.map +0 -1
  1248. package/dist/recipe/index.d.ts.map +0 -1
  1249. package/dist/recipe/io.d.ts.map +0 -1
  1250. package/dist/recipe/ir/operations.d.ts.map +0 -1
  1251. package/dist/recipe/ir/sitecore-templates.d.ts.map +0 -1
  1252. package/dist/recipe/layout/emit.d.ts.map +0 -1
  1253. package/dist/recipe/layout/templates-mapping.d.ts.map +0 -1
  1254. package/dist/recipe/plan.d.ts.map +0 -1
  1255. package/dist/recipe/policy.d.ts.map +0 -1
  1256. package/dist/recipe/rollback.d.ts.map +0 -1
  1257. package/dist/recipe/schema/field-types.d.ts.map +0 -1
  1258. package/dist/recipe/schema/recipe.d.ts.map +0 -1
  1259. package/dist/recipe/schema/source-fields.d.ts.map +0 -1
  1260. package/dist/recipe/tasks/compile.d.ts.map +0 -1
  1261. package/dist/recipe/tasks/diff.d.ts.map +0 -1
  1262. package/dist/recipe/tasks/index.d.ts +0 -9
  1263. package/dist/recipe/tasks/index.d.ts.map +0 -1
  1264. package/dist/recipe/tasks/index.js +0 -13
  1265. package/dist/recipe/tasks/placeholder-allow.d.ts.map +0 -1
  1266. package/dist/recipe/tasks/plan.d.ts.map +0 -1
  1267. package/dist/recipe/tasks/prune-defaults.d.ts.map +0 -1
  1268. package/dist/recipe/tasks/push.d.ts.map +0 -1
  1269. package/dist/recipe/tasks/shared.d.ts.map +0 -1
  1270. package/dist/recipe/validate.d.ts.map +0 -1
  1271. package/dist/serialization/commands.d.ts.map +0 -1
  1272. package/dist/serialization/compare.d.ts.map +0 -1
  1273. package/dist/serialization/field-filter.d.ts.map +0 -1
  1274. package/dist/serialization/filesystem-store/constants.d.ts.map +0 -1
  1275. package/dist/serialization/filesystem-store/index.d.ts +0 -4
  1276. package/dist/serialization/filesystem-store/index.d.ts.map +0 -1
  1277. package/dist/serialization/filesystem-store/index.js +0 -15
  1278. package/dist/serialization/filesystem-store/items.d.ts.map +0 -1
  1279. package/dist/serialization/filesystem-store/roles.d.ts.map +0 -1
  1280. package/dist/serialization/filesystem-store/users.d.ts.map +0 -1
  1281. package/dist/serialization/filesystem-store/utils.d.ts.map +0 -1
  1282. package/dist/serialization/filesystem-store.d.ts +0 -2
  1283. package/dist/serialization/filesystem-store.d.ts.map +0 -1
  1284. package/dist/serialization/filesystem-store.js +0 -17
  1285. package/dist/serialization/item-path.d.ts.map +0 -1
  1286. package/dist/serialization/path-provider.d.ts.map +0 -1
  1287. package/dist/serialization/signature.d.ts.map +0 -1
  1288. package/dist/serialization/sitecore-api/auth.d.ts +0 -31
  1289. package/dist/serialization/sitecore-api/auth.d.ts.map +0 -1
  1290. package/dist/serialization/sitecore-api/auth.js +0 -319
  1291. package/dist/serialization/sitecore-api/graphql.d.ts +0 -12
  1292. package/dist/serialization/sitecore-api/graphql.d.ts.map +0 -1
  1293. package/dist/serialization/sitecore-api/history.d.ts +0 -9
  1294. package/dist/serialization/sitecore-api/history.d.ts.map +0 -1
  1295. package/dist/serialization/sitecore-api/index.d.ts +0 -7
  1296. package/dist/serialization/sitecore-api/index.d.ts.map +0 -1
  1297. package/dist/serialization/sitecore-api/index.js +0 -22
  1298. package/dist/serialization/sitecore-api/items.d.ts +0 -8
  1299. package/dist/serialization/sitecore-api/items.d.ts.map +0 -1
  1300. package/dist/serialization/sitecore-api/items.js +0 -132
  1301. package/dist/serialization/sitecore-api/publish.d.ts +0 -14
  1302. package/dist/serialization/sitecore-api/publish.d.ts.map +0 -1
  1303. package/dist/serialization/sitecore-api/publish.js +0 -43
  1304. package/dist/serialization/sitecore-api/roles.d.ts +0 -9
  1305. package/dist/serialization/sitecore-api/roles.d.ts.map +0 -1
  1306. package/dist/serialization/sitecore-api/users.d.ts +0 -9
  1307. package/dist/serialization/sitecore-api/users.d.ts.map +0 -1
  1308. package/dist/serialization/sitecore-api.d.ts +0 -2
  1309. package/dist/serialization/sitecore-api.d.ts.map +0 -1
  1310. package/dist/serialization/sitecore-api.js +0 -17
  1311. package/dist/serialization/tasks/diff.d.ts.map +0 -1
  1312. package/dist/serialization/tasks/env/constants.d.ts.map +0 -1
  1313. package/dist/serialization/tasks/env/deploy-token.d.ts.map +0 -1
  1314. package/dist/serialization/tasks/env/index.d.ts +0 -5
  1315. package/dist/serialization/tasks/env/index.d.ts.map +0 -1
  1316. package/dist/serialization/tasks/env/index.js +0 -11
  1317. package/dist/serialization/tasks/env/init/auth.d.ts.map +0 -1
  1318. package/dist/serialization/tasks/env/init/deploy-lookup.d.ts.map +0 -1
  1319. package/dist/serialization/tasks/env/init.d.ts.map +0 -1
  1320. package/dist/serialization/tasks/env/logout.d.ts.map +0 -1
  1321. package/dist/serialization/tasks/env/status.d.ts.map +0 -1
  1322. package/dist/serialization/tasks/env.d.ts +0 -2
  1323. package/dist/serialization/tasks/env.d.ts.map +0 -1
  1324. package/dist/serialization/tasks/env.js +0 -17
  1325. package/dist/serialization/tasks/helpers/collect.d.ts.map +0 -1
  1326. package/dist/serialization/tasks/helpers/commands.d.ts.map +0 -1
  1327. package/dist/serialization/tasks/helpers/filesystem.d.ts.map +0 -1
  1328. package/dist/serialization/tasks/helpers/index.d.ts +0 -6
  1329. package/dist/serialization/tasks/helpers/index.d.ts.map +0 -1
  1330. package/dist/serialization/tasks/helpers/index.js +0 -13
  1331. package/dist/serialization/tasks/helpers/items.d.ts.map +0 -1
  1332. package/dist/serialization/tasks/helpers/sitecore.d.ts.map +0 -1
  1333. package/dist/serialization/tasks/helpers.d.ts +0 -2
  1334. package/dist/serialization/tasks/helpers.d.ts.map +0 -1
  1335. package/dist/serialization/tasks/helpers.js +0 -17
  1336. package/dist/serialization/tasks/index.d.ts +0 -8
  1337. package/dist/serialization/tasks/index.d.ts.map +0 -1
  1338. package/dist/serialization/tasks/index.js +0 -19
  1339. package/dist/serialization/tasks/info.d.ts.map +0 -1
  1340. package/dist/serialization/tasks/package.d.ts.map +0 -1
  1341. package/dist/serialization/tasks/pull.d.ts.map +0 -1
  1342. package/dist/serialization/tasks/push.d.ts.map +0 -1
  1343. package/dist/serialization/tasks/roles.d.ts.map +0 -1
  1344. package/dist/serialization/tasks/shared.d.ts.map +0 -1
  1345. package/dist/serialization/tasks/types.d.ts.map +0 -1
  1346. package/dist/serialization/tasks/users.d.ts.map +0 -1
  1347. package/dist/serialization/tasks/validate.d.ts.map +0 -1
  1348. package/dist/serialization/tasks/watch.d.ts.map +0 -1
  1349. package/dist/serialization/tasks.d.ts +0 -4
  1350. package/dist/serialization/tasks.d.ts.map +0 -1
  1351. package/dist/serialization/tasks.js +0 -19
  1352. package/dist/serialization/tree-spec.d.ts.map +0 -1
  1353. package/dist/serialization/types.d.ts.map +0 -1
  1354. package/dist/serialization/wildcard.d.ts.map +0 -1
  1355. package/dist/serialization/yaml.d.ts.map +0 -1
  1356. package/dist/shared/browser.d.ts.map +0 -1
  1357. package/dist/shared/cli-options.d.ts.map +0 -1
  1358. package/dist/shared/cli-tasks.d.ts.map +0 -1
  1359. package/dist/shared/config-template.d.ts.map +0 -1
  1360. package/dist/shared/env.d.ts +0 -28
  1361. package/dist/shared/env.d.ts.map +0 -1
  1362. package/dist/shared/env.js +0 -38
  1363. package/dist/shared/errors.d.ts.map +0 -1
  1364. package/dist/shared/graphql.d.ts.map +0 -1
  1365. package/dist/shared/history.d.ts.map +0 -1
  1366. package/dist/shared/keychain.d.ts.map +0 -1
  1367. package/dist/shared/logger.d.ts.map +0 -1
  1368. package/dist/shared/output.d.ts.map +0 -1
  1369. package/dist/shared/prompt.d.ts.map +0 -1
  1370. package/dist/shared/redact.d.ts.map +0 -1
  1371. package/dist/shared/spinner.d.ts.map +0 -1
  1372. package/dist/shared/style.d.ts.map +0 -1
  1373. package/dist/shared/telemetry.d.ts.map +0 -1
  1374. package/dist/shared/validate.d.ts.map +0 -1
  1375. package/dist/sites/api/collections.d.ts.map +0 -1
  1376. package/dist/sites/api/index.d.ts +0 -26
  1377. package/dist/sites/api/index.d.ts.map +0 -1
  1378. package/dist/sites/api/index.js +0 -55
  1379. package/dist/sites/api/jobs.d.ts.map +0 -1
  1380. package/dist/sites/api/languages.d.ts.map +0 -1
  1381. package/dist/sites/api/request.d.ts.map +0 -1
  1382. package/dist/sites/api/sites.d.ts.map +0 -1
  1383. package/dist/sites/api/types.d.ts.map +0 -1
  1384. /package/dist/serialization/{sitecore-api → api}/graphql.js +0 -0
  1385. /package/dist/serialization/{sitecore-api → api}/history.js +0 -0
  1386. /package/dist/serialization/{sitecore-api → api}/roles.js +0 -0
  1387. /package/dist/serialization/{sitecore-api → api}/users.js +0 -0
@@ -4,18 +4,33 @@ exports.assertValidHost = exports.assertValidUrl = void 0;
4
4
  const errors_1 = require("./errors");
5
5
  const isNonEmpty = (value) => Boolean(value && value.trim().length > 0);
6
6
  const assertValidUrl = (value, label) => {
7
+ let url;
7
8
  try {
8
9
  // Allow absolute URLs only.
9
- const url = new URL(value);
10
+ url = new URL(value);
10
11
  if (!url.protocol || !url.hostname) {
11
12
  throw new Error("Invalid URL");
12
13
  }
13
14
  }
14
15
  catch {
15
- throw (0, errors_1.createCliError)(`${label} must be a valid URL.`, "INPUT_INVALID", {
16
+ throw (0, errors_1.createScaiError)(`${label} must be a valid URL.`, "INPUT_INVALID", {
16
17
  hint: `Provide a valid ${label.toLowerCase()} (e.g. https://example.com).`,
17
18
  });
18
19
  }
20
+ // Reject non-HTTPS schemes by default. http:// is permitted only when
21
+ // the operator sets SITECOREAI_ALLOW_HTTP=1 (dev/test only — Bearer
22
+ // tokens ride this URL unencrypted otherwise). file:, javascript:,
23
+ // ftp:, etc. are always rejected.
24
+ if (url.protocol !== "https:") {
25
+ if (url.protocol === "http:" && process.env.SITECOREAI_ALLOW_HTTP === "1") {
26
+ return;
27
+ }
28
+ throw (0, errors_1.createScaiError)(`${label} must use https:// (got ${url.protocol}//).`, "INPUT_INVALID", {
29
+ hint: url.protocol === "http:"
30
+ ? "Bearer tokens would be sent in cleartext. Set SITECOREAI_ALLOW_HTTP=1 only for local development."
31
+ : `Provide a valid ${label.toLowerCase()} starting with https://.`,
32
+ });
33
+ }
19
34
  };
20
35
  exports.assertValidUrl = assertValidUrl;
21
36
  const assertValidHost = (value, label) => {
@@ -24,7 +39,7 @@ const assertValidHost = (value, label) => {
24
39
  return;
25
40
  }
26
41
  if (!isNonEmpty(value) || /\s/.test(value)) {
27
- throw (0, errors_1.createCliError)(`${label} must be a valid host.`, "INPUT_INVALID", {
42
+ throw (0, errors_1.createScaiError)(`${label} must be a valid host.`, "INPUT_INVALID", {
28
43
  hint: "Provide a hostname or a full URL.",
29
44
  });
30
45
  }
@@ -22,4 +22,3 @@ export declare const listCollections: (options: SitesApiClientOptions) => Promis
22
22
  export declare const createCollection: (options: SitesApiClientOptions, input: CreateSiteCollectionInput) => Promise<JobResponse>;
23
23
  /** Retrieve a single collection by ID. */
24
24
  export declare const retrieveCollection: (options: SitesApiClientOptions, collectionId: string) => Promise<SiteCollection>;
25
- //# sourceMappingURL=collections.d.ts.map
@@ -28,4 +28,3 @@ export type Job = components["schemas"]["Job"] & {
28
28
  export declare const getJobStatus: (options: SitesApiClientOptions, jobHandle: string) => Promise<Job>;
29
29
  /** List all jobs in the environment. */
30
30
  export declare const listJobs: (options: SitesApiClientOptions) => Promise<Job[]>;
31
- //# sourceMappingURL=jobs.d.ts.map
@@ -19,4 +19,3 @@ export declare const listLanguages: (options: SitesApiClientOptions) => Promise<
19
19
  * "already added" as success).
20
20
  */
21
21
  export declare const addLanguage: (options: SitesApiClientOptions, input: AddLanguageModel) => Promise<Language>;
22
- //# sourceMappingURL=languages.d.ts.map
@@ -21,4 +21,3 @@ export declare const sitesRequest: <TResponse>(options: SitesApiClientOptions, p
21
21
  body?: unknown;
22
22
  query?: SitesQueryRecord;
23
23
  }) => Promise<TResponse>;
24
- //# sourceMappingURL=request.d.ts.map
@@ -19,7 +19,7 @@ const types_1 = require("./types");
19
19
  * operation and pass typed body / response generics through. Each
20
20
  * operation gets a one-line wrapper; the transport stays generic.
21
21
  *
22
- * Errors map to scai's `CliError` — `NETWORK` for transport failures,
22
+ * Errors map to scai's `ScaiError` — `NETWORK` for transport failures,
23
23
  * `SITES_API_FAILED` for non-2xx responses with a message extracted
24
24
  * from the body when present.
25
25
  */
@@ -75,18 +75,27 @@ const sitesRequest = async (options, path, init) => {
75
75
  headers["Content-Type"] = "application/json";
76
76
  body = typeof init.body === "string" ? init.body : JSON.stringify(init.body);
77
77
  }
78
+ // Default 60s timeout. Override via SITECOREAI_REQUEST_TIMEOUT_MS (0 disables).
79
+ // Defends against slowloris / black-hole upstreams.
80
+ const timeoutMs = Number(process.env.SITECOREAI_REQUEST_TIMEOUT_MS ?? 60000);
81
+ const controller = timeoutMs > 0 ? new AbortController() : undefined;
82
+ const timeoutHandle = controller ? setTimeout(() => controller.abort(), timeoutMs) : undefined;
78
83
  let response;
79
84
  try {
80
- response = await fetch(url, { method, headers, body });
85
+ response = await fetch(url, { method, headers, body, signal: controller?.signal });
81
86
  }
82
87
  catch (error) {
83
- throw (0, errors_1.createCliError)((0, redact_1.redactSecrets)(`Sites API request failed: ${error instanceof Error ? error.message : String(error)}`), "NETWORK", { hint: "Check network connectivity or try again later." });
88
+ throw (0, errors_1.createScaiError)((0, redact_1.redactSecrets)(`Sites API request failed: ${error instanceof Error ? error.message : String(error)}`), "NETWORK", { hint: "Check network connectivity or try again later." });
89
+ }
90
+ finally {
91
+ if (timeoutHandle)
92
+ clearTimeout(timeoutHandle);
84
93
  }
85
94
  if (!response.ok) {
86
95
  const responseBody = await (0, request_1.parseJsonIfPossible)(response);
87
96
  const message = (0, request_1.extractErrorMessage)(responseBody);
88
97
  const sanitized = message ? (0, redact_1.redactSecrets)(message) : undefined;
89
- throw (0, errors_1.createCliError)(sanitized ?? `Sites API request failed (${response.status})`, "SITES_API_FAILED");
98
+ throw (0, errors_1.createScaiError)(sanitized ?? `Sites API request failed (${response.status})`, "SITES_API_FAILED");
90
99
  }
91
100
  // 204 No Content responses (e.g. DELETE) have no body — return
92
101
  // `undefined as TResponse` and let helpers type their return as `void`
@@ -14,6 +14,7 @@ import type { SitesApiClientOptions } from "./types";
14
14
  export type Site = components["schemas"]["Site"];
15
15
  export type SiteTemplate = components["schemas"]["SiteTemplate"];
16
16
  export type NewSiteInput = components["schemas"]["NewSiteInput"];
17
+ export type UpdateSiteInput = components["schemas"]["UpdateSiteInput"];
17
18
  /**
18
19
  * Codegen-typed JobResponse, extended for the runtime shape. The
19
20
  * OpenAPI spec defines only `handle`, but some Sites API deployments
@@ -36,6 +37,35 @@ export type JobResponse = components["schemas"]["JobResponse"] & {
36
37
  export declare const createSite: (options: SitesApiClientOptions, input: NewSiteInput) => Promise<JobResponse>;
37
38
  /** Retrieve a single site by ID. */
38
39
  export declare const retrieveSite: (options: SitesApiClientOptions, siteId: string) => Promise<Site>;
40
+ /**
41
+ * Update mutable properties of a site (`PATCH /api/v1/sites/{siteId}`).
42
+ *
43
+ * Synchronous — returns the updated `Site`, not a job handle. Only the
44
+ * fields present on `patch` are changed; omit the rest. To rename a
45
+ * site use the dedicated Rename operation instead.
46
+ *
47
+ * The optional `environmentId` query scopes the write to a specific
48
+ * Content Services environment (server default: "main").
49
+ *
50
+ * `patch` is `Partial<UpdateSiteInput>` — the codegen marks
51
+ * `displayName`/`description` as required (spec artifact: they carry a
52
+ * junk `default`), but PATCH is partial by definition, so callers send
53
+ * only the fields they intend to change.
54
+ */
55
+ export declare const updateSite: (options: SitesApiClientOptions, siteId: string, patch: Partial<UpdateSiteInput>, query?: {
56
+ environmentId?: string;
57
+ }) => Promise<Site>;
58
+ /**
59
+ * Associate (or clear) the brand kit linked to a site.
60
+ *
61
+ * Thin convenience over `updateSite` for the single most common
62
+ * brand-kit operation: pass a kit UUID to link, or `null` to detach.
63
+ * `brandKitId` is the id of a brand kit (see the brand
64
+ * area — `brand_inspect verb='list-kits'`).
65
+ */
66
+ export declare const setSiteBrandKit: (options: SitesApiClientOptions, siteId: string, brandKitId: string | null, query?: {
67
+ environmentId?: string;
68
+ }) => Promise<Site>;
39
69
  /** List all sites in the environment. */
40
70
  export declare const listSites: (options: SitesApiClientOptions) => Promise<Site[]>;
41
71
  /**
@@ -50,4 +80,17 @@ export declare const deleteSite: (options: SitesApiClientOptions, siteId: string
50
80
  * only knows the template's display name.
51
81
  */
52
82
  export declare const listSiteTemplates: (options: SitesApiClientOptions) => Promise<SiteTemplate[]>;
53
- //# sourceMappingURL=sites.d.ts.map
83
+ export type WorkflowsStatistics = components["schemas"]["WorkflowsStatistics"];
84
+ export type WorkflowStatistics = components["schemas"]["WorkflowStatistics"];
85
+ export type WorkflowStateStatistics = components["schemas"]["WorkflowStateStatistics"];
86
+ /**
87
+ * Fetch the per-site workflow rollup: workflows defined on the site,
88
+ * their states, and the count of pages in each state. Backs
89
+ * `scai content workflow status --site <siteId>`.
90
+ *
91
+ * Optional `environmentId` query param ("main" by default server-side)
92
+ * scopes to a specific Content Services environment.
93
+ */
94
+ export declare const retrieveWorkflowStatistics: (options: SitesApiClientOptions, siteId: string, query?: {
95
+ environmentId?: string;
96
+ }) => Promise<WorkflowsStatistics>;
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.listSiteTemplates = exports.deleteSite = exports.listSites = exports.retrieveSite = exports.createSite = void 0;
3
+ exports.retrieveWorkflowStatistics = exports.listSiteTemplates = exports.deleteSite = exports.listSites = exports.setSiteBrandKit = exports.updateSite = exports.retrieveSite = exports.createSite = void 0;
4
4
  const request_1 = require("./request");
5
5
  /**
6
6
  * Create a new site from a site template (async).
@@ -20,6 +20,37 @@ exports.createSite = createSite;
20
20
  /** Retrieve a single site by ID. */
21
21
  const retrieveSite = (options, siteId) => (0, request_1.sitesRequest)(options, `/api/v1/sites/${encodeURIComponent(siteId)}`);
22
22
  exports.retrieveSite = retrieveSite;
23
+ /**
24
+ * Update mutable properties of a site (`PATCH /api/v1/sites/{siteId}`).
25
+ *
26
+ * Synchronous — returns the updated `Site`, not a job handle. Only the
27
+ * fields present on `patch` are changed; omit the rest. To rename a
28
+ * site use the dedicated Rename operation instead.
29
+ *
30
+ * The optional `environmentId` query scopes the write to a specific
31
+ * Content Services environment (server default: "main").
32
+ *
33
+ * `patch` is `Partial<UpdateSiteInput>` — the codegen marks
34
+ * `displayName`/`description` as required (spec artifact: they carry a
35
+ * junk `default`), but PATCH is partial by definition, so callers send
36
+ * only the fields they intend to change.
37
+ */
38
+ const updateSite = (options, siteId, patch, query) => (0, request_1.sitesRequest)(options, `/api/v1/sites/${encodeURIComponent(siteId)}`, {
39
+ method: "PATCH",
40
+ body: patch,
41
+ ...(query?.environmentId ? { query: { environmentId: query.environmentId } } : {}),
42
+ });
43
+ exports.updateSite = updateSite;
44
+ /**
45
+ * Associate (or clear) the brand kit linked to a site.
46
+ *
47
+ * Thin convenience over `updateSite` for the single most common
48
+ * brand-kit operation: pass a kit UUID to link, or `null` to detach.
49
+ * `brandKitId` is the id of a brand kit (see the brand
50
+ * area — `brand_inspect verb='list-kits'`).
51
+ */
52
+ const setSiteBrandKit = (options, siteId, brandKitId, query) => (0, exports.updateSite)(options, siteId, { brandKitId }, query);
53
+ exports.setSiteBrandKit = setSiteBrandKit;
23
54
  /** List all sites in the environment. */
24
55
  const listSites = (options) => (0, request_1.sitesRequest)(options, "/api/v1/sites");
25
56
  exports.listSites = listSites;
@@ -39,3 +70,13 @@ exports.deleteSite = deleteSite;
39
70
  */
40
71
  const listSiteTemplates = (options) => (0, request_1.sitesRequest)(options, "/api/v1/sites/templates");
41
72
  exports.listSiteTemplates = listSiteTemplates;
73
+ /**
74
+ * Fetch the per-site workflow rollup: workflows defined on the site,
75
+ * their states, and the count of pages in each state. Backs
76
+ * `scai content workflow status --site <siteId>`.
77
+ *
78
+ * Optional `environmentId` query param ("main" by default server-side)
79
+ * scopes to a specific Content Services environment.
80
+ */
81
+ const retrieveWorkflowStatistics = (options, siteId, query) => (0, request_1.sitesRequest)(options, `/api/v1/sites/${encodeURIComponent(siteId)}/statistics/workflow`, query?.environmentId ? { query: { environmentId: query.environmentId } } : undefined);
82
+ exports.retrieveWorkflowStatistics = retrieveWorkflowStatistics;
@@ -26,4 +26,3 @@ export type SitesRequestInit = {
26
26
  /** Query-value shape — Sites API operations either take no query params or simple key/value pairs. */
27
27
  export type SitesQueryValue = string | number | boolean;
28
28
  export type SitesQueryRecord = Record<string, SitesQueryValue | SitesQueryValue[] | undefined>;
29
- //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Public entry for `@sitecoreai-labs/sitecoreai-cli/unstable/sites`.
3
+ *
4
+ * Sites API client surface. The Sites API is XM Cloud's CRUD proxy for
5
+ * sites, collections, languages, hosts, and related resources at
6
+ * `https://xmapps-api.sitecorecloud.io`. Spec is pinned at
7
+ * `./api/openapi.yaml` and types are regenerated via `pnpm sites:codegen`.
8
+ *
9
+ * The `recipe` entry also re-exports the recipe-required subset of these
10
+ * via `createSitesApiClient` — that pair is the higher-level interface
11
+ * the recipe planner depends on. This entry exposes the per-resource
12
+ * primitives directly for callers that don't need the recipe seam.
13
+ *
14
+ * **Status**: UNSTABLE. Ships under `./unstable/sites` and carries no
15
+ * SemVer stability promise — the per-resource primitives may change in
16
+ * any release. The recipe planner's pinned subset (reached via
17
+ * `createSitesApiClient` on the stable `./recipe` entry) is unaffected.
18
+ */
19
+ export type { SitesApiClientOptions, SitesRequestInit, SitesQueryValue, SitesQueryRecord, } from "./api/types";
20
+ export { DEFAULT_SITES_API_BASE } from "./api/types";
21
+ export { sitesRequest } from "./api/request";
22
+ export { createSite, retrieveSite, listSites, updateSite, setSiteBrandKit, deleteSite, listSiteTemplates, retrieveWorkflowStatistics, type Site, type SiteTemplate, type NewSiteInput, type UpdateSiteInput, type JobResponse, type WorkflowsStatistics, type WorkflowStatistics, type WorkflowStateStatistics, } from "./api/sites";
23
+ export { listCollections, createCollection, retrieveCollection, type SiteCollection, type CreateSiteCollectionInput, } from "./api/collections";
24
+ export { listLanguages, addLanguage, type Language, type AddLanguageModel } from "./api/languages";
25
+ export { getJobStatus, listJobs, type Job } from "./api/jobs";
@@ -0,0 +1,44 @@
1
+ "use strict";
2
+ /**
3
+ * Public entry for `@sitecoreai-labs/sitecoreai-cli/unstable/sites`.
4
+ *
5
+ * Sites API client surface. The Sites API is XM Cloud's CRUD proxy for
6
+ * sites, collections, languages, hosts, and related resources at
7
+ * `https://xmapps-api.sitecorecloud.io`. Spec is pinned at
8
+ * `./api/openapi.yaml` and types are regenerated via `pnpm sites:codegen`.
9
+ *
10
+ * The `recipe` entry also re-exports the recipe-required subset of these
11
+ * via `createSitesApiClient` — that pair is the higher-level interface
12
+ * the recipe planner depends on. This entry exposes the per-resource
13
+ * primitives directly for callers that don't need the recipe seam.
14
+ *
15
+ * **Status**: UNSTABLE. Ships under `./unstable/sites` and carries no
16
+ * SemVer stability promise — the per-resource primitives may change in
17
+ * any release. The recipe planner's pinned subset (reached via
18
+ * `createSitesApiClient` on the stable `./recipe` entry) is unaffected.
19
+ */
20
+ Object.defineProperty(exports, "__esModule", { value: true });
21
+ exports.listJobs = exports.getJobStatus = exports.addLanguage = exports.listLanguages = exports.retrieveCollection = exports.createCollection = exports.listCollections = exports.retrieveWorkflowStatistics = exports.listSiteTemplates = exports.deleteSite = exports.setSiteBrandKit = exports.updateSite = exports.listSites = exports.retrieveSite = exports.createSite = exports.sitesRequest = exports.DEFAULT_SITES_API_BASE = void 0;
22
+ var types_1 = require("./api/types");
23
+ Object.defineProperty(exports, "DEFAULT_SITES_API_BASE", { enumerable: true, get: function () { return types_1.DEFAULT_SITES_API_BASE; } });
24
+ var request_1 = require("./api/request");
25
+ Object.defineProperty(exports, "sitesRequest", { enumerable: true, get: function () { return request_1.sitesRequest; } });
26
+ var sites_1 = require("./api/sites");
27
+ Object.defineProperty(exports, "createSite", { enumerable: true, get: function () { return sites_1.createSite; } });
28
+ Object.defineProperty(exports, "retrieveSite", { enumerable: true, get: function () { return sites_1.retrieveSite; } });
29
+ Object.defineProperty(exports, "listSites", { enumerable: true, get: function () { return sites_1.listSites; } });
30
+ Object.defineProperty(exports, "updateSite", { enumerable: true, get: function () { return sites_1.updateSite; } });
31
+ Object.defineProperty(exports, "setSiteBrandKit", { enumerable: true, get: function () { return sites_1.setSiteBrandKit; } });
32
+ Object.defineProperty(exports, "deleteSite", { enumerable: true, get: function () { return sites_1.deleteSite; } });
33
+ Object.defineProperty(exports, "listSiteTemplates", { enumerable: true, get: function () { return sites_1.listSiteTemplates; } });
34
+ Object.defineProperty(exports, "retrieveWorkflowStatistics", { enumerable: true, get: function () { return sites_1.retrieveWorkflowStatistics; } });
35
+ var collections_1 = require("./api/collections");
36
+ Object.defineProperty(exports, "listCollections", { enumerable: true, get: function () { return collections_1.listCollections; } });
37
+ Object.defineProperty(exports, "createCollection", { enumerable: true, get: function () { return collections_1.createCollection; } });
38
+ Object.defineProperty(exports, "retrieveCollection", { enumerable: true, get: function () { return collections_1.retrieveCollection; } });
39
+ var languages_1 = require("./api/languages");
40
+ Object.defineProperty(exports, "listLanguages", { enumerable: true, get: function () { return languages_1.listLanguages; } });
41
+ Object.defineProperty(exports, "addLanguage", { enumerable: true, get: function () { return languages_1.addLanguage; } });
42
+ var jobs_1 = require("./api/jobs");
43
+ Object.defineProperty(exports, "getJobStatus", { enumerable: true, get: function () { return jobs_1.getJobStatus; } });
44
+ Object.defineProperty(exports, "listJobs", { enumerable: true, get: function () { return jobs_1.listJobs; } });
@@ -0,0 +1,7 @@
1
+ import type { RecipeKind } from "../sync";
2
+ /**
3
+ * Every enumerable recipe kind, in display order. Add a row when a new
4
+ * kind ships a `list` implementation — both `scai sync` and the
5
+ * `recipe_sync` MCP tool pick it up automatically.
6
+ */
7
+ export declare const ENUMERABLE_RECIPE_KINDS: ReadonlyArray<RecipeKind<unknown>>;
@@ -0,0 +1,32 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ENUMERABLE_RECIPE_KINDS = void 0;
4
+ /**
5
+ * The recipe kinds the cross-domain aggregate (`scai sync` / the
6
+ * `recipe_sync` MCP tool) fans out over.
7
+ *
8
+ * `aggregate.ts` is deliberately domain-free so the engine never cycles
9
+ * with `@/brand` / `@/brief`. This file is the single, deliberately
10
+ * domain-AWARE exception: it names the concrete kinds the aggregate
11
+ * covers, so the CLI command and the MCP tool import ONE list instead
12
+ * of each hand-maintaining their own copy (the drift that let `sync`
13
+ * coverage diverge between the two surfaces).
14
+ *
15
+ * Not re-exported from `./index` — importing the barrel must stay
16
+ * domain-free. Consumers import this module by its explicit path.
17
+ *
18
+ * Only kinds that implement `RecipeKind.list` (can enumerate their own
19
+ * instances) belong here. File-authored component/page/site recipes
20
+ * have nothing to enumerate and stay with `provision recipe`.
21
+ */
22
+ const recipe_1 = require("../brand/recipe");
23
+ const recipe_2 = require("../brief/recipe");
24
+ /**
25
+ * Every enumerable recipe kind, in display order. Add a row when a new
26
+ * kind ships a `list` implementation — both `scai sync` and the
27
+ * `recipe_sync` MCP tool pick it up automatically.
28
+ */
29
+ exports.ENUMERABLE_RECIPE_KINDS = [
30
+ recipe_1.brandKitKind,
31
+ recipe_2.briefTypeKind,
32
+ ];
@@ -0,0 +1,100 @@
1
+ import { type PlanSummary } from "./plan";
2
+ import { type SyncMode } from "./engine";
3
+ import type { RecipeKind, SyncContext } from "./kind";
4
+ /** Default workspace directory for aggregate recipe files. */
5
+ export declare const DEFAULT_SYNC_DIR = ".scai/sync";
6
+ /** Slugify an instance id for a recipe filename. */
7
+ export declare const slugifyRecipeId: (value: string) => string;
8
+ /** One recipe captured by `aggregatePull`. */
9
+ export interface AggregatePullItem {
10
+ id: string;
11
+ file: string;
12
+ }
13
+ /** Per-kind outcome of `aggregatePull`. */
14
+ export interface AggregatePullKind {
15
+ kind: string;
16
+ pulled: AggregatePullItem[];
17
+ /** Set when the kind could not enumerate itself (e.g. no credential). */
18
+ skipped?: string;
19
+ }
20
+ /** Structured result of `aggregatePull`. */
21
+ export interface AggregatePullResult {
22
+ dir: string;
23
+ kinds: AggregatePullKind[];
24
+ total: number;
25
+ }
26
+ /**
27
+ * Enumerate every instance of every enumerable kind and capture each as
28
+ * a recipe file under `<dir>/<kind>/<slug>.yaml`. A kind that cannot
29
+ * enumerate itself (no credential for this environment) is recorded as
30
+ * `skipped` rather than failing the whole run.
31
+ */
32
+ export declare const aggregatePull: (kinds: ReadonlyArray<RecipeKind<unknown>>, ctx: SyncContext, options?: {
33
+ dir?: string;
34
+ }) => Promise<AggregatePullResult>;
35
+ /** Drift classification of one recipe in `aggregateStatus`. */
36
+ export type AggregateDriftStatus = "in-sync" | "drift" | "error";
37
+ /** One recipe's drift status. */
38
+ export interface AggregateStatusItem {
39
+ id: string;
40
+ status: AggregateDriftStatus;
41
+ /** Plan tally — present when `status` is `drift`. */
42
+ summary?: PlanSummary;
43
+ /** Failure message — present when `status` is `error`. */
44
+ error?: string;
45
+ }
46
+ /** Per-kind outcome of `aggregateStatus`. */
47
+ export interface AggregateStatusKind {
48
+ kind: string;
49
+ items: AggregateStatusItem[];
50
+ }
51
+ /** Structured result of `aggregateStatus`. */
52
+ export interface AggregateStatusResult {
53
+ dir: string;
54
+ kinds: AggregateStatusKind[];
55
+ /** Count of recipes that drifted from the environment. */
56
+ drifted: number;
57
+ }
58
+ /**
59
+ * Diff every recipe file in the workspace against the environment. A
60
+ * kind with no workspace files is omitted from the result.
61
+ */
62
+ export declare const aggregateStatus: (kinds: ReadonlyArray<RecipeKind<unknown>>, ctx: SyncContext, options?: {
63
+ dir?: string;
64
+ }) => Promise<AggregateStatusResult>;
65
+ /** Outcome of pushing one recipe in `aggregatePush`. */
66
+ export type AggregatePushStatus = "applied" | "in-sync" | "planned" | "error";
67
+ /** One recipe's push outcome. */
68
+ export interface AggregatePushItem {
69
+ id: string;
70
+ status: AggregatePushStatus;
71
+ /** Changes written — present when `status` is `applied`. */
72
+ appliedCount?: number;
73
+ /** Changes that a non-dry-run would write — present when `status` is `planned`. */
74
+ plannedCount?: number;
75
+ /** Failure message — present when `status` is `error`. */
76
+ error?: string;
77
+ }
78
+ /** Per-kind outcome of `aggregatePush`. */
79
+ export interface AggregatePushKind {
80
+ kind: string;
81
+ items: AggregatePushItem[];
82
+ }
83
+ /** Structured result of `aggregatePush`. */
84
+ export interface AggregatePushResult {
85
+ dir: string;
86
+ mode: SyncMode;
87
+ kinds: AggregatePushKind[];
88
+ /** Total changes written across every recipe (zero in `what-if` mode). */
89
+ applied: number;
90
+ }
91
+ /**
92
+ * Converge every recipe file in the workspace onto the environment. In
93
+ * `what-if` mode nothing is written — each recipe reports its planned
94
+ * change count instead. A kind with no workspace files is omitted.
95
+ */
96
+ export declare const aggregatePush: (kinds: ReadonlyArray<RecipeKind<unknown>>, ctx: SyncContext, options: {
97
+ dir?: string;
98
+ mode: SyncMode;
99
+ prune?: boolean;
100
+ }) => Promise<AggregatePushResult>;
@@ -0,0 +1,173 @@
1
+ "use strict";
2
+ var __importDefault = (this && this.__importDefault) || function (mod) {
3
+ return (mod && mod.__esModule) ? mod : { "default": mod };
4
+ };
5
+ Object.defineProperty(exports, "__esModule", { value: true });
6
+ exports.aggregatePush = exports.aggregateStatus = exports.aggregatePull = exports.slugifyRecipeId = exports.DEFAULT_SYNC_DIR = void 0;
7
+ /**
8
+ * The cross-domain recipe aggregate — pull / diff / push every
9
+ * enumerable recipe kind into one workspace directory.
10
+ *
11
+ * `syncPull`/`syncDiff`/`syncPush` in `./engine` each operate on ONE
12
+ * instance of ONE kind. The aggregate fans them out across a set of
13
+ * kinds and every instance each kind enumerates.
14
+ *
15
+ * Kind-agnostic: the caller supplies the kinds to cover, so this module
16
+ * stays free of any concrete domain import (no cycle with `@/brand`,
17
+ * `@/brief`, …). Only kinds that implement `RecipeKind.list` participate;
18
+ * the rest are reported as skipped. Workspace layout is
19
+ * `<dir>/<kind-name>/<slug(id)>.yaml`.
20
+ *
21
+ * Presentation-free: every function returns a structured result. The
22
+ * caller (CLI command, MCP tool, embedding SDK consumer) decides how to
23
+ * render it.
24
+ */
25
+ const node_fs_1 = __importDefault(require("node:fs"));
26
+ const node_path_1 = __importDefault(require("node:path"));
27
+ const errors_1 = require("../shared/errors");
28
+ const io_1 = require("./io");
29
+ const plan_1 = require("./plan");
30
+ const engine_1 = require("./engine");
31
+ /** Default workspace directory for aggregate recipe files. */
32
+ exports.DEFAULT_SYNC_DIR = ".scai/sync";
33
+ /** Slugify an instance id for a recipe filename. */
34
+ const slugifyRecipeId = (value) => value
35
+ .toLowerCase()
36
+ .replace(/[^a-z0-9]+/g, "-")
37
+ .replace(/^-+|-+$/g, "") || "item";
38
+ exports.slugifyRecipeId = slugifyRecipeId;
39
+ /** Every recipe carries a `name` — its `KindRef.id`. */
40
+ const recipeId = (recipe) => String(recipe.name ?? "");
41
+ /** Recipe files under a kind's workspace subdirectory. */
42
+ const recipeFilesFor = (dir, kindName) => {
43
+ const kindDir = node_path_1.default.join(dir, kindName);
44
+ if (!node_fs_1.default.existsSync(kindDir)) {
45
+ return [];
46
+ }
47
+ return node_fs_1.default
48
+ .readdirSync(kindDir)
49
+ .filter((file) => file.endsWith(".yaml") || file.endsWith(".yml") || file.endsWith(".json"))
50
+ .map((file) => node_path_1.default.join(kindDir, file));
51
+ };
52
+ /**
53
+ * Enumerate every instance of every enumerable kind and capture each as
54
+ * a recipe file under `<dir>/<kind>/<slug>.yaml`. A kind that cannot
55
+ * enumerate itself (no credential for this environment) is recorded as
56
+ * `skipped` rather than failing the whole run.
57
+ */
58
+ const aggregatePull = async (kinds, ctx, options = {}) => {
59
+ const dir = options.dir ?? exports.DEFAULT_SYNC_DIR;
60
+ const results = [];
61
+ let total = 0;
62
+ for (const kind of kinds) {
63
+ if (!kind.list) {
64
+ continue;
65
+ }
66
+ let refs;
67
+ try {
68
+ refs = await kind.list(ctx);
69
+ }
70
+ catch (error) {
71
+ results.push({ kind: kind.name, pulled: [], skipped: (0, errors_1.toScaiError)(error).message });
72
+ continue;
73
+ }
74
+ const pulled = [];
75
+ for (const ref of refs) {
76
+ const recipe = await (0, engine_1.syncPull)(kind, ref, ctx);
77
+ if (!recipe) {
78
+ continue;
79
+ }
80
+ const file = node_path_1.default.join(dir, kind.name, `${(0, exports.slugifyRecipeId)(ref.id)}.yaml`);
81
+ (0, io_1.writeRecipe)(file, recipe);
82
+ pulled.push({ id: ref.id, file });
83
+ total += 1;
84
+ }
85
+ results.push({ kind: kind.name, pulled });
86
+ }
87
+ return { dir, kinds: results, total };
88
+ };
89
+ exports.aggregatePull = aggregatePull;
90
+ /**
91
+ * Diff every recipe file in the workspace against the environment. A
92
+ * kind with no workspace files is omitted from the result.
93
+ */
94
+ const aggregateStatus = async (kinds, ctx, options = {}) => {
95
+ const dir = options.dir ?? exports.DEFAULT_SYNC_DIR;
96
+ const results = [];
97
+ let drifted = 0;
98
+ for (const kind of kinds) {
99
+ const files = recipeFilesFor(dir, kind.name);
100
+ if (files.length === 0) {
101
+ continue;
102
+ }
103
+ const items = [];
104
+ for (const file of files) {
105
+ const recipe = (0, io_1.loadRecipe)(file, kind.schema);
106
+ const id = recipeId(recipe);
107
+ try {
108
+ const plan = await (0, engine_1.syncDiff)(kind, recipe, { kind: kind.name, id }, ctx);
109
+ if ((0, plan_1.planIsNoop)(plan)) {
110
+ items.push({ id, status: "in-sync" });
111
+ }
112
+ else {
113
+ items.push({ id, status: "drift", summary: (0, plan_1.summarizePlan)(plan) });
114
+ drifted += 1;
115
+ }
116
+ }
117
+ catch (error) {
118
+ items.push({ id, status: "error", error: (0, errors_1.toScaiError)(error).message });
119
+ }
120
+ }
121
+ results.push({ kind: kind.name, items });
122
+ }
123
+ return { dir, kinds: results, drifted };
124
+ };
125
+ exports.aggregateStatus = aggregateStatus;
126
+ /**
127
+ * Converge every recipe file in the workspace onto the environment. In
128
+ * `what-if` mode nothing is written — each recipe reports its planned
129
+ * change count instead. A kind with no workspace files is omitted.
130
+ */
131
+ const aggregatePush = async (kinds, ctx, options) => {
132
+ const dir = options.dir ?? exports.DEFAULT_SYNC_DIR;
133
+ const results = [];
134
+ let applied = 0;
135
+ for (const kind of kinds) {
136
+ const files = recipeFilesFor(dir, kind.name);
137
+ if (files.length === 0) {
138
+ continue;
139
+ }
140
+ const items = [];
141
+ for (const file of files) {
142
+ const recipe = (0, io_1.loadRecipe)(file, kind.schema);
143
+ const id = recipeId(recipe);
144
+ try {
145
+ const outcome = await (0, engine_1.syncPush)(kind, recipe, { kind: kind.name, id }, ctx, {
146
+ mode: options.mode,
147
+ prune: Boolean(options.prune),
148
+ });
149
+ if (outcome.result) {
150
+ items.push({ id, status: "applied", appliedCount: outcome.result.applied.length });
151
+ applied += outcome.result.applied.length;
152
+ }
153
+ else if ((0, plan_1.planIsNoop)(outcome.plan)) {
154
+ items.push({ id, status: "in-sync" });
155
+ }
156
+ else {
157
+ const tally = (0, plan_1.summarizePlan)(outcome.plan);
158
+ items.push({
159
+ id,
160
+ status: "planned",
161
+ plannedCount: tally.create + tally.update + tally.delete,
162
+ });
163
+ }
164
+ }
165
+ catch (error) {
166
+ items.push({ id, status: "error", error: (0, errors_1.toScaiError)(error).message });
167
+ }
168
+ }
169
+ results.push({ kind: kind.name, items });
170
+ }
171
+ return { dir, mode: options.mode, kinds: results, applied };
172
+ };
173
+ exports.aggregatePush = aggregatePush;
@@ -0,0 +1,28 @@
1
+ import type { ApplyResult, KindRef, RecipeKind, SyncContext } from "./kind";
2
+ import { type RecipePlan } from "./plan";
3
+ /** `what-if` prints the plan and writes nothing; `apply` converges. */
4
+ export type SyncMode = "what-if" | "apply";
5
+ export interface PushOptions {
6
+ mode: SyncMode;
7
+ /**
8
+ * Include `delete` changes. Off by default — `push` is additive, so a
9
+ * recipe omitting an element does not remove it from the remote.
10
+ */
11
+ prune?: boolean;
12
+ }
13
+ export interface PushOutcome {
14
+ /** The plan that was computed (deletes filtered out unless `prune`). */
15
+ plan: RecipePlan;
16
+ /** The apply result — `null` under `what-if` or for a no-op plan. */
17
+ result: ApplyResult | null;
18
+ }
19
+ /** Capture live remote state as a recipe (`sync pull`). */
20
+ export declare const syncPull: <T>(kind: RecipeKind<T>, ref: KindRef, ctx: SyncContext) => Promise<T | null>;
21
+ /** Compute the plan to converge `ref` onto `desired` (`sync diff`). */
22
+ export declare const syncDiff: <T>(kind: RecipeKind<T>, desired: T, ref: KindRef, ctx: SyncContext) => Promise<RecipePlan>;
23
+ /**
24
+ * Converge `ref` onto `desired` (`sync push`). Honors the write gate:
25
+ * `what-if` returns the plan without calling `apply`, and a no-op plan
26
+ * short-circuits the same way.
27
+ */
28
+ export declare const syncPush: <T>(kind: RecipeKind<T>, desired: T, ref: KindRef, ctx: SyncContext, options: PushOptions) => Promise<PushOutcome>;