@xano/sdk 1.0.4 → 1.0.6

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 (280) hide show
  1. package/CHANGELOG.md +32 -5
  2. package/README.md +250 -342
  3. package/dist/.build-fingerprint +1 -1
  4. package/dist/agent-file-refresh-67QIX45H.js +39 -0
  5. package/dist/{answer-shape-LVV2SVBK.js → answer-shape-UCDUKPAN.js} +6 -6
  6. package/dist/{backend-dir-WZADOK3L.js → backend-dir-3LIL6SCT.js} +16 -15
  7. package/dist/{backend-slot-NSCTWCUX.js → backend-slot-JREP27UD.js} +4 -4
  8. package/dist/bin.js +59 -58
  9. package/dist/{branch-ONWPJ4V6.js → branch-2IPHOAYS.js} +10 -10
  10. package/dist/{branch-commands-ZT2MJIRS.js → branch-commands-KTKAXBAN.js} +31 -32
  11. package/dist/bundle.js +9 -39
  12. package/dist/{capture-3JNUA6C2.js → capture-GW5KNKMB.js} +4 -4
  13. package/dist/{chunk-FPBGAT5D.js → chunk-26MOFAJT.js} +3 -3
  14. package/dist/{chunk-O7QOWS6M.js → chunk-2FLIJGBZ.js} +12 -12
  15. package/dist/{chunk-QAEQGT5I.js → chunk-2WBH5HUY.js} +7 -7
  16. package/dist/{chunk-37AHZ7JX.js → chunk-3BBIDW3Y.js} +6 -6
  17. package/dist/{chunk-DGWHAVRG.js → chunk-3EDSPMXN.js} +12 -1
  18. package/dist/{chunk-2AUV6NXK.js → chunk-3II44CUJ.js} +36 -36
  19. package/dist/{chunk-7GX445AE.js → chunk-4XHAT7C5.js} +2 -2
  20. package/dist/{chunk-OOXWYAA4.js → chunk-57A5ZKPO.js} +1 -1
  21. package/dist/{chunk-OOGXZL7Z.js → chunk-5KJBWIDZ.js} +84 -6
  22. package/dist/{chunk-5YL5OC2G.js → chunk-5QMJOE2K.js} +6 -6
  23. package/dist/{chunk-3H3EPMFY.js → chunk-5TVFLG3C.js} +2 -2
  24. package/dist/{chunk-WFMVKY7I.js → chunk-5YQV35C2.js} +9 -9
  25. package/dist/{chunk-NA3PXMEF.js → chunk-64WWE3EF.js} +1 -1
  26. package/dist/{chunk-FMOEVAGT.js → chunk-6X3MY2JP.js} +3 -3
  27. package/dist/{chunk-2LVTBPW2.js → chunk-6X6BJN6Y.js} +3 -3
  28. package/dist/{chunk-DYG5D3FD.js → chunk-763M6LX3.js} +16 -2
  29. package/dist/{chunk-EESV6NU2.js → chunk-7FIMUFBP.js} +2 -2
  30. package/dist/{chunk-CFSFBKHP.js → chunk-7GAIJW62.js} +2 -2
  31. package/dist/{chunk-6R7S775T.js → chunk-7REDHC4N.js} +2 -2
  32. package/dist/chunk-7VR4IO5B.js +44 -0
  33. package/dist/chunk-A7MRZ4GF.js +78 -0
  34. package/dist/{chunk-D5ZEAF4G.js → chunk-ATJ2W7DC.js} +81 -58
  35. package/dist/{chunk-BUJRS7XB.js → chunk-AVS4WPPY.js} +2 -2
  36. package/dist/{chunk-MEE5RZ6G.js → chunk-BL3AZ3AP.js} +2 -2
  37. package/dist/chunk-BTVUYHWV.js +111 -0
  38. package/dist/{chunk-T4DUFQ2S.js → chunk-CCU5CCRX.js} +5 -5
  39. package/dist/{chunk-5T2CTWTB.js → chunk-CHINR7WD.js} +6 -6
  40. package/dist/{chunk-VD32O6KZ.js → chunk-CJDPSCMX.js} +45 -5
  41. package/dist/{chunk-3HOGFGKG.js → chunk-D3KEPRRN.js} +2 -2
  42. package/dist/{chunk-SBR2WZXG.js → chunk-D7BUMOKU.js} +60 -53
  43. package/dist/{chunk-WRBKLYSJ.js → chunk-DNBP4GJN.js} +4 -3
  44. package/dist/{chunk-JTUKLCXS.js → chunk-DXUICABI.js} +1 -1
  45. package/dist/{chunk-XMDDBEEM.js → chunk-E763QI3G.js} +2 -2
  46. package/dist/{chunk-KTGRGWZW.js → chunk-EADVVTDK.js} +7 -7
  47. package/dist/{chunk-FJWZ5OVV.js → chunk-ENMBEXOP.js} +3 -3
  48. package/dist/{chunk-OPHB5ORL.js → chunk-EQFYOOO6.js} +171 -92
  49. package/dist/{chunk-WOGJB2F6.js → chunk-FNLTFOUD.js} +4 -9
  50. package/dist/{chunk-II747OWE.js → chunk-FQ53GTII.js} +10 -10
  51. package/dist/{chunk-JP7M7OU7.js → chunk-FU3VCE5A.js} +46 -27
  52. package/dist/{chunk-OGBMUST4.js → chunk-GHQ4BVI4.js} +14 -14
  53. package/dist/{chunk-45YPFB7B.js → chunk-GLY552SI.js} +84 -57
  54. package/dist/{chunk-QV3GXQRE.js → chunk-GOLFAEUV.js} +2 -2
  55. package/dist/{chunk-L2GLOJAO.js → chunk-GW5RHGOB.js} +22 -22
  56. package/dist/{chunk-A6QTTJUI.js → chunk-GWTFI3GA.js} +2 -2
  57. package/dist/{chunk-MCTIKRMN.js → chunk-GZHLCUZ6.js} +8 -8
  58. package/dist/{chunk-664LSWE5.js → chunk-HCG7NDIL.js} +4 -4
  59. package/dist/{chunk-7PMVIHB3.js → chunk-I3H3HCPY.js} +50 -29
  60. package/dist/{chunk-LIVN53UV.js → chunk-I3VHW6XM.js} +31 -31
  61. package/dist/{chunk-C4FHQA7R.js → chunk-IF4PEGVD.js} +8 -8
  62. package/dist/{chunk-WFG67AYS.js → chunk-IMELQ2I6.js} +3 -3
  63. package/dist/{chunk-3P3HXN76.js → chunk-ITC2R2OT.js} +11 -11
  64. package/dist/{chunk-W5ONYLOP.js → chunk-IXFJORNH.js} +4 -4
  65. package/dist/{chunk-HMLGM2MW.js → chunk-IYXL5NYU.js} +260 -32
  66. package/dist/{chunk-2B22WWKL.js → chunk-JFBRXRJD.js} +59 -35
  67. package/dist/chunk-JI3BLXWQ.js +107 -0
  68. package/dist/{chunk-4DJTQ6W4.js → chunk-JIKGT7DO.js} +2 -1
  69. package/dist/{chunk-O5V3YH5P.js → chunk-JRVQ7M7W.js} +8 -8
  70. package/dist/{chunk-4APOHK7Y.js → chunk-JXVJGF3Y.js} +2 -2
  71. package/dist/chunk-KPFS3RGM.js +257 -0
  72. package/dist/{chunk-PML67X22.js → chunk-LAOMN6QQ.js} +3 -3
  73. package/dist/{chunk-TTVAHCWP.js → chunk-LBJA7IEM.js} +370 -45
  74. package/dist/{chunk-KUTFFHUM.js → chunk-LD6ARK3A.js} +2 -2
  75. package/dist/{chunk-HUSH7LRI.js → chunk-LL7SGTRC.js} +36 -33
  76. package/dist/{chunk-I2BGYNHD.js → chunk-M5CSVB23.js} +7 -7
  77. package/dist/{chunk-UCQ2VUTG.js → chunk-M6ZFSTIZ.js} +2 -2
  78. package/dist/{chunk-MNVDVR3M.js → chunk-MBDFH7XB.js} +4 -4
  79. package/dist/{chunk-QXTKSOFI.js → chunk-MF4W6FHU.js} +1 -1
  80. package/dist/{chunk-RX3EMQGN.js → chunk-MFWF2NZJ.js} +12 -5
  81. package/dist/{chunk-SEUCZZCP.js → chunk-N5I37JFB.js} +3 -3
  82. package/dist/{chunk-IJ3SXSZM.js → chunk-ND43ZOS3.js} +6 -6
  83. package/dist/chunk-NDWVJ2QZ.js +67 -0
  84. package/dist/{chunk-E65QIWOO.js → chunk-NPODGBVJ.js} +4 -4
  85. package/dist/{chunk-CYB7UQA2.js → chunk-OIKLDDYC.js} +5 -5
  86. package/dist/{chunk-MLGI2SRQ.js → chunk-PFBXSVZF.js} +4 -4
  87. package/dist/{chunk-AM4FKL4J.js → chunk-PL7AIAWS.js} +12 -12
  88. package/dist/{chunk-S7E2AHV3.js → chunk-PMMHSX4H.js} +26 -9
  89. package/dist/{chunk-WL2DSNJV.js → chunk-Q22BMRPF.js} +2 -2
  90. package/dist/{chunk-3FN2BIGB.js → chunk-QJM5XZ4K.js} +6 -6
  91. package/dist/{chunk-EWCDPFW5.js → chunk-QXYMDARD.js} +4 -4
  92. package/dist/{chunk-MLPDSGJQ.js → chunk-QZEAANWP.js} +5 -5
  93. package/dist/{chunk-ESZ2FF57.js → chunk-RIN4YY34.js} +88 -74
  94. package/dist/{chunk-37FBPMNE.js → chunk-S56YBYMN.js} +5 -2
  95. package/dist/{chunk-CBYQ2ZN3.js → chunk-SKEG3V2V.js} +2 -2
  96. package/dist/{chunk-4PQHO74B.js → chunk-SLGJIWCY.js} +4 -4
  97. package/dist/{chunk-IVKRT476.js → chunk-SPITRSOF.js} +2 -2
  98. package/dist/{chunk-BUECLQXK.js → chunk-SPKA2LV6.js} +4 -4
  99. package/dist/{chunk-HHW5AWVD.js → chunk-SSITMX7I.js} +30 -30
  100. package/dist/{chunk-OPG4DYX2.js → chunk-T4LJ5UR2.js} +29 -7
  101. package/dist/{chunk-LXNQWHZM.js → chunk-TECTL2NU.js} +4 -4
  102. package/dist/{chunk-E6H5ZEV3.js → chunk-TTEIDD5Q.js} +3 -3
  103. package/dist/{chunk-6VBTPV2Y.js → chunk-U35MTOXQ.js} +3 -3
  104. package/dist/{chunk-UKUIUS3E.js → chunk-U6MTGB46.js} +5 -5
  105. package/dist/{chunk-Y2ZLKBM6.js → chunk-UD2Z7K6W.js} +4 -4
  106. package/dist/{chunk-IXUPUFCG.js → chunk-UIVMR7UK.js} +2 -2
  107. package/dist/{chunk-UDE5C2XN.js → chunk-VDHA5SSQ.js} +3 -3
  108. package/dist/{chunk-5W7DOMIU.js → chunk-VJFMUJWZ.js} +4 -4
  109. package/dist/{chunk-XNCP4KYO.js → chunk-VQPDATQT.js} +1 -1
  110. package/dist/{chunk-KCAL4QYP.js → chunk-VW4CWVYX.js} +4 -4
  111. package/dist/chunk-WAVNUTMT.js +9 -0
  112. package/dist/{chunk-DIG3NITC.js → chunk-WBH4KJWM.js} +3 -3
  113. package/dist/{chunk-HSEQYBDO.js → chunk-WZHLMU6T.js} +3 -3
  114. package/dist/{chunk-WYEQFD6A.js → chunk-XFBGXB7X.js} +173 -105
  115. package/dist/{chunk-UI4OPTYR.js → chunk-Y453TW6J.js} +2 -2
  116. package/dist/{chunk-LUTMOHOW.js → chunk-YGLMRH5U.js} +9 -9
  117. package/dist/{chunk-GPI3OWRE.js → chunk-YHB34BN6.js} +2 -1
  118. package/dist/{chunk-5WGVIXMD.js → chunk-YKP4ZKVO.js} +14 -10
  119. package/dist/{chunk-MN2PB6WB.js → chunk-YR2I5HGE.js} +3 -3
  120. package/dist/{chunk-ZG7E72VI.js → chunk-YYC2DZMG.js} +7 -7
  121. package/dist/{chunk-D64XUF5Q.js → chunk-YYLUBYXM.js} +16 -16
  122. package/dist/{chunk-VRVKNY4A.js → chunk-Z4ZGTCCD.js} +8 -8
  123. package/dist/{chunk-44B4V2LR.js → chunk-ZDP6GDAB.js} +142 -142
  124. package/dist/{chunk-ET5DSBAC.js → chunk-ZJSTUD6D.js} +8 -8
  125. package/dist/cli.d.ts +36 -26
  126. package/dist/cli.js +57 -56
  127. package/dist/{codegen-command-HTWIW56U.js → codegen-command-R5IASBFC.js} +78 -72
  128. package/dist/codegen.d.ts +2 -2
  129. package/dist/codegen.js +2 -2
  130. package/dist/{commands-CVFYC4GK.js → commands-H7CPMMHH.js} +3 -3
  131. package/dist/{completion-AUEQC4XJ.js → completion-W5ZAI6TN.js} +12 -12
  132. package/dist/{config-JU6OQC77.js → config-MZ5KG4EP.js} +5 -5
  133. package/dist/{deploy-command-5WTFHMBT.js → deploy-command-34T2LKQ5.js} +64 -63
  134. package/dist/deploy-source-YLQ7WMYR.js +82 -0
  135. package/dist/{dev-env-sync-X636HLMK.js → dev-env-sync-TMJTNU3U.js} +58 -57
  136. package/dist/{diagnostics-LSMGB4TY.js → diagnostics-OMN5Y2AH.js} +2 -2
  137. package/dist/{display-name-hint-DMORHANO.js → display-name-hint-ZJGFNJKQ.js} +12 -12
  138. package/dist/{emit-hOFbgzde.d.ts → emit-D125xxty.d.ts} +67 -21
  139. package/dist/env-example-refresh-CQP3ZMKM.js +133 -0
  140. package/dist/{env-pull-command-WZZ7RL2E.js → env-pull-command-UTG6IC2K.js} +53 -53
  141. package/dist/{env-target-PO3MOLH5.js → env-target-FZROWYFS.js} +14 -14
  142. package/dist/{env-var-command-YKTJZFJN.js → env-var-command-VYDBQJJW.js} +51 -50
  143. package/dist/{ephemeral-BMFY55BQ.js → ephemeral-BIE6FMJV.js} +10 -10
  144. package/dist/{ephemeral-command-VDSQCOYL.js → ephemeral-command-OZ26RGXF.js} +54 -54
  145. package/dist/{ephemeral-state-6TY4JIPA.js → ephemeral-state-SNZOX2YK.js} +12 -12
  146. package/dist/{generate-command-3NTNRQRS.js → generate-command-4HR7MR36.js} +87 -79
  147. package/dist/{gitignore-FWPEDX6C.js → gitignore-EWQBXNX2.js} +20 -19
  148. package/dist/{guards-EJU2ONAX.js → guards-KYEOCVHN.js} +7 -7
  149. package/dist/{hosted-file-PSHJB3HX.js → hosted-file-S7YUQAH6.js} +2 -2
  150. package/dist/{impersonate-command-QEJA72Q2.js → impersonate-command-WC7OGKUM.js} +44 -43
  151. package/dist/{import-TBTOTU52.js → import-7Z4GCCPO.js} +6 -6
  152. package/dist/index.d.ts +14 -20
  153. package/dist/index.js +14 -14
  154. package/dist/init-command-HAO3WXH3.js +128 -0
  155. package/dist/{init-modules-HZRQFRLE.js → init-modules-NSKD4ASY.js} +12 -11
  156. package/dist/{init-web-Y2PBNJTQ.js → init-web-MKFFOQUU.js} +3 -3
  157. package/dist/internal.d.ts +5 -5
  158. package/dist/internal.js +61 -35
  159. package/dist/{io-ZUKAGFVE.js → io-PGTCBSIQ.js} +7 -5
  160. package/dist/{keep-data-merge-X5LDDCI3.js → keep-data-merge-QR2TMKEO.js} +33 -34
  161. package/dist/{lambda-config-reconcile-OUZ4OYAB.js → lambda-config-reconcile-7FJXXV6V.js} +4 -4
  162. package/dist/{landed-6VO7CX5P.js → landed-F7PCHGCK.js} +4 -4
  163. package/dist/{landing-record-QYECWLQ5.js → landing-record-MWXFIRCP.js} +26 -25
  164. package/dist/{live-diff-2S7E3SBZ.js → live-diff-5E2BQWQ7.js} +10 -9
  165. package/dist/local-engine-choice-VD5LNXJU.js +80 -0
  166. package/dist/{local-engine-command-HMTQK7MN.js → local-engine-command-RYLGMQ2O.js} +96 -95
  167. package/dist/{local-engine-config-5U3SC434.js → local-engine-config-W3KB7RWM.js} +2 -2
  168. package/dist/{local-engine-deploy-TXAOYRGF.js → local-engine-deploy-6O7NKZCA.js} +17 -17
  169. package/dist/{local-engine-process-6VZ7JJBP.js → local-engine-process-ZLLZEIRF.js} +12 -12
  170. package/dist/{local-engine-state-TJWPWCC4.js → local-engine-state-OCW5YDD7.js} +3 -3
  171. package/dist/{local-engine-update-check-R5SPDVEJ.js → local-engine-update-check-LVX4HBBI.js} +8 -8
  172. package/dist/{lock-TS465GVY.js → lock-HDCHD2ON.js} +5 -3
  173. package/dist/{lock-commands-4VT3L5W5.js → lock-commands-X2OECR4R.js} +62 -61
  174. package/dist/{login-command-O6WA4FYL.js → login-command-RLLKD565.js} +31 -30
  175. package/dist/{logout-command-6CPWGFY2.js → logout-command-XDMSXCDO.js} +17 -17
  176. package/dist/{loop-UFHKSOQ4.js → loop-SUB6C2LK.js} +9 -10
  177. package/dist/{marketplace-command-HKACSYKS.js → marketplace-command-2NHHY2X3.js} +89 -53
  178. package/dist/{marketplace-resolve-KLFYVRWS.js → marketplace-resolve-OTZYT4FG.js} +9 -8
  179. package/dist/{meta-client-73PX6UGJ.js → meta-client-TMHVBZFY.js} +15 -15
  180. package/dist/{module-manifest-GIKFNXPE.js → module-manifest-FNMW23IX.js} +7 -4
  181. package/dist/node.d.ts +5 -5
  182. package/dist/node.js +63 -63
  183. package/dist/operation-outcome-RN62735X.js +51 -0
  184. package/dist/{output-target-SZMBNYF4.js → output-target-MOLCTPBP.js} +21 -20
  185. package/dist/{package-manager-PRAHUSCN.js → package-manager-K762W7XT.js} +2 -2
  186. package/dist/{plan-disclosure-BHYG7TZ7.js → plan-disclosure-CY7AF6KP.js} +21 -22
  187. package/dist/{plugin-contributions-X4V22PJQ.js → plugin-contributions-WR26U7NT.js} +6 -6
  188. package/dist/{plugin-prompt-DKNQHW6Y.js → plugin-prompt-ZUYQQIX4.js} +5 -5
  189. package/dist/{plugin-questions-CQRVOWFK.js → plugin-questions-HAZOQ67R.js} +4 -4
  190. package/dist/plugin.d.ts +254 -10
  191. package/dist/{preflight-command-EBQ6XQF3.js → preflight-command-OHJXYND3.js} +70 -70
  192. package/dist/{profile-command-NPKBJYPM.js → profile-command-6JWT2BTL.js} +33 -32
  193. package/dist/{profile-pointer-UOO7JNFG.js → profile-pointer-PDA5XBIB.js} +5 -5
  194. package/dist/{profile-select-74TRDEPD.js → profile-select-45G5VPJK.js} +2 -2
  195. package/dist/{project-dependency-RRMTWOPC.js → project-dependency-GZWWGWEW.js} +13 -10
  196. package/dist/{project-sdk-FOR4IOXL.js → project-sdk-3W72H5QO.js} +4 -4
  197. package/dist/promote-command-UYAMUXKB.js +146 -0
  198. package/dist/{prompt-5GUQTCSP.js → prompt-U37K5RPQ.js} +4 -4
  199. package/dist/{publish-command-LGLZBOCB.js → publish-command-BUS27HGB.js} +138 -66
  200. package/dist/pull-command-ZGUNP27P.js +168 -0
  201. package/dist/{pull-superseded-GGURV5J3.js → pull-superseded-EZBGYRZF.js} +4 -4
  202. package/dist/{raw-where-EoWl5fqY.d.ts → raw-where-ZMLND6AG.d.ts} +20 -3
  203. package/dist/release-command-BQ6OHS3P.js +150 -0
  204. package/dist/{release-ns-command-EIBN3JVM.js → release-ns-command-ATGVBVIU.js} +94 -94
  205. package/dist/{retry-command-Y5YJGOH3.js → retry-command-QJ57WVW7.js} +9 -9
  206. package/dist/{routes-manifest-3BNZIVST.js → routes-manifest-YR4ZIMLM.js} +16 -8
  207. package/dist/routes-manifest-file-UALYSZLY.js +41 -0
  208. package/dist/scaffold.js +3 -3
  209. package/dist/{secrets-file-FUG7WCES.js → secrets-file-LMS7KX3E.js} +20 -19
  210. package/dist/{secrets-fill-command-QEOCUOAY.js → secrets-fill-command-QNBDGCGM.js} +61 -60
  211. package/dist/{seed-GJHJSEUE.js → seed-SZ6OS5DQ.js} +9 -9
  212. package/dist/{source-resolve-DMDZVPMM.js → source-resolve-MKLNYFWG.js} +24 -24
  213. package/dist/{static-host-WM24RG25.js → static-host-ONEHA4LI.js} +10 -10
  214. package/dist/{status-command-XUH5OGQX.js → status-command-XKIFKBGM.js} +57 -56
  215. package/dist/{store-CfgPaVPO.d.ts → store-Bg4Na6Sm.d.ts} +4 -4
  216. package/dist/{store-MR7IKXKK.js → store-X6ZH7EC3.js} +7 -7
  217. package/dist/sveltekit.d.ts +5 -5
  218. package/dist/sveltekit.js +1 -1
  219. package/dist/sync-baseline-DOV5AGIO.js +36 -0
  220. package/dist/{sync-contributions-DHP7XSTX.js → sync-contributions-HNVHDIQW.js} +21 -13
  221. package/dist/sync-record-PRXHLK4S.js +42 -0
  222. package/dist/{table-ZBDPKMNH.js → table-DC36QA4Y.js} +10 -10
  223. package/dist/{tables-command-X3JK7VSK.js → tables-command-UQLKTELN.js} +44 -43
  224. package/dist/{tenant-GKXMOYLK.js → tenant-EKNQGG5A.js} +11 -11
  225. package/dist/{tenant-command-P27EQHBU.js → tenant-command-2LWP2MPB.js} +105 -100
  226. package/dist/{test-command-A4G2FP7G.js → test-command-IU5MBBXY.js} +44 -43
  227. package/dist/{tests-C55M5EQS.js → tests-RG2Y5EQ4.js} +7 -7
  228. package/dist/{token-CMAB35GD.js → token-7AWSJLKO.js} +13 -13
  229. package/dist/toolchain-hooks-4ZMQLBPQ.js +46 -0
  230. package/dist/{toolchain-modules-3M7QDJBV.js → toolchain-modules-VU7SURVJ.js} +9 -6
  231. package/dist/toolchain-peers-CIDNEEQV.js +28 -0
  232. package/dist/tracked-backend-4BHSV7NC.js +81 -0
  233. package/dist/{update-check-LNNKIMML.js → update-check-A7FXIINW.js} +60 -59
  234. package/dist/{upgrade-command-7EUXML3P.js → upgrade-command-C5KBITFI.js} +64 -63
  235. package/dist/{whoami-command-KNWFWAX6.js → whoami-command-7WQII2H4.js} +16 -16
  236. package/dist/{workspace-TGPYOODG.js → workspace-Z46PUZNI.js} +6 -6
  237. package/dist/{workspace-binding-2TWZBHQY.js → workspace-binding-JE6YNDZJ.js} +15 -15
  238. package/dist/{workspace-command-T7Z2BDHD.js → workspace-command-FC4IMLAE.js} +119 -88
  239. package/dist/{workspace-env-VA7XN3UX.js → workspace-env-N4ZPFT6A.js} +17 -16
  240. package/dist/{workspace-export-AIGM6LC7.js → workspace-export-3A5BZTPS.js} +6 -6
  241. package/dist/{writable-FYJBTJOU.js → writable-D7KCZI5N.js} +4 -4
  242. package/dist/{xano-BSHYVFSE.js → xano-LCI7VWPS.js} +9 -9
  243. package/dist/{xanosdk-import-J6SRBZHW.js → xanosdk-import-P2A2KSXM.js} +10 -10
  244. package/dist/xanosdk-project-6AGMW2SL.js +42 -0
  245. package/guides/README.md +1 -0
  246. package/guides/authoring.md +3 -5
  247. package/guides/bundle.md +45 -0
  248. package/guides/cli.md +36 -34
  249. package/guides/codegen.md +5 -4
  250. package/guides/codes.md +16 -11
  251. package/guides/deploying.md +115 -58
  252. package/guides/environment.md +13 -13
  253. package/guides/marketplace.md +21 -0
  254. package/guides/module-contract.md +80 -4
  255. package/guides/project-structure.md +14 -0
  256. package/guides/typed-frontend.md +37 -0
  257. package/llms/client.md +14 -5
  258. package/llms/errors.md +1 -1
  259. package/llms/filters.md +4 -0
  260. package/llms/kinds-core.md +1 -1
  261. package/llms/statements-data.md +3 -2
  262. package/llms/tests.md +2 -2
  263. package/llms/toolchain.md +12 -0
  264. package/llms-full.txt +47 -21
  265. package/llms.txt +10 -10
  266. package/manifest.json +110 -107
  267. package/package.json +4 -4
  268. package/dist/agent-file-refresh-LB6KIMFY.js +0 -38
  269. package/dist/chunk-XXZZGXW2.js +0 -243
  270. package/dist/deploy-source-5CET3A5D.js +0 -81
  271. package/dist/env-example-refresh-ZO6XAV44.js +0 -127
  272. package/dist/init-command-27SFBW2F.js +0 -126
  273. package/dist/local-engine-choice-6BSPEG3E.js +0 -79
  274. package/dist/operation-outcome-2P4BVSEV.js +0 -51
  275. package/dist/promote-command-4F2NAE6P.js +0 -141
  276. package/dist/pull-command-WQFPLITW.js +0 -162
  277. package/dist/release-command-2OTNVMIL.js +0 -147
  278. package/dist/toolchain-hooks-BGZBDFAT.js +0 -96
  279. package/dist/tracked-backend-PZGUWD5J.js +0 -80
  280. package/dist/xanosdk-project-6KTCO47O.js +0 -41
@@ -3,19 +3,19 @@ import {
3
3
  ephemeralLandedOn,
4
4
  ephemeralStatePath,
5
5
  recordEphemeralLanding
6
- } from "./chunk-UKUIUS3E.js";
6
+ } from "./chunk-U6MTGB46.js";
7
7
  import {
8
8
  contextFlags
9
- } from "./chunk-SEUCZZCP.js";
9
+ } from "./chunk-N5I37JFB.js";
10
10
  import {
11
11
  backendDirIn
12
- } from "./chunk-E6H5ZEV3.js";
12
+ } from "./chunk-TTEIDD5Q.js";
13
13
  import {
14
14
  forgetPrunedInLockFile,
15
15
  readLockFile,
16
16
  recordLandingInLockFile,
17
17
  writeLockFile
18
- } from "./chunk-VD32O6KZ.js";
18
+ } from "./chunk-CJDPSCMX.js";
19
19
  import {
20
20
  destinationKey,
21
21
  isEphemeralDestinationKey,
@@ -23,15 +23,15 @@ import {
23
23
  landedOn,
24
24
  withStoredColumns,
25
25
  withoutLanding
26
- } from "./chunk-RX3EMQGN.js";
26
+ } from "./chunk-MFWF2NZJ.js";
27
27
  import {
28
28
  displayPath,
29
29
  info,
30
30
  warn
31
- } from "./chunk-SBR2WZXG.js";
31
+ } from "./chunk-D7BUMOKU.js";
32
32
  import {
33
33
  displayLockKey
34
- } from "./chunk-OOGXZL7Z.js";
34
+ } from "./chunk-5KJBWIDZ.js";
35
35
  import {
36
36
  shellQuote
37
37
  } from "./chunk-5ZSO4T2G.js";
@@ -260,4 +260,4 @@ export {
260
260
  holdsLanding,
261
261
  forgetLanding
262
262
  };
263
- //# sourceMappingURL=chunk-C4FHQA7R.js.map
263
+ //# sourceMappingURL=chunk-IF4PEGVD.js.map
@@ -1,10 +1,10 @@
1
1
  import {
2
2
  questionOrCancel
3
- } from "./chunk-4APOHK7Y.js";
3
+ } from "./chunk-JXVJGF3Y.js";
4
4
  import {
5
5
  style,
6
6
  terminalText
7
- } from "./chunk-SBR2WZXG.js";
7
+ } from "./chunk-D7BUMOKU.js";
8
8
 
9
9
  // src/emit/plugin-prompt.ts
10
10
  import { createInterface } from "readline/promises";
@@ -54,4 +54,4 @@ export {
54
54
  promptPluginQuestion,
55
55
  pluginPrompter
56
56
  };
57
- //# sourceMappingURL=chunk-WFG67AYS.js.map
57
+ //# sourceMappingURL=chunk-IMELQ2I6.js.map
@@ -2,7 +2,7 @@ import {
2
2
  environmentKey,
3
3
  getEnvironment,
4
4
  readEphemeralState
5
- } from "./chunk-UKUIUS3E.js";
5
+ } from "./chunk-U6MTGB46.js";
6
6
  import {
7
7
  andList
8
8
  } from "./chunk-622HUCZT.js";
@@ -12,20 +12,20 @@ import {
12
12
  credentialFileFlagFor,
13
13
  credentialFileOf,
14
14
  recordedByEnvCredential
15
- } from "./chunk-SEUCZZCP.js";
15
+ } from "./chunk-N5I37JFB.js";
16
16
  import {
17
17
  loginCommand,
18
18
  profileAddCommand,
19
19
  recordedCredentialPath,
20
20
  recordedProfileStored
21
- } from "./chunk-I2BGYNHD.js";
21
+ } from "./chunk-M5CSVB23.js";
22
22
  import {
23
23
  findPointerFile,
24
24
  readPointerFile
25
- } from "./chunk-FPBGAT5D.js";
25
+ } from "./chunk-26MOFAJT.js";
26
26
  import {
27
27
  DEFAULT_PROFILE
28
- } from "./chunk-QXTKSOFI.js";
28
+ } from "./chunk-MF4W6FHU.js";
29
29
  import {
30
30
  readEnvVar
31
31
  } from "./chunk-X2NL4KUO.js";
@@ -33,7 +33,7 @@ import {
33
33
  CliError,
34
34
  EXIT_SOURCE_UNRESOLVABLE,
35
35
  UsageError
36
- } from "./chunk-SBR2WZXG.js";
36
+ } from "./chunk-D7BUMOKU.js";
37
37
 
38
38
  // src/emit/env-target.ts
39
39
  var ENV_CREDENTIAL_NAMES = ["XANO_INSTANCE_URL", "XANO_WORKSPACE_ID", "XANO_META_TOKEN", "XANO_REFRESH_TOKEN", "XANO_CLIENT_ID"];
@@ -58,7 +58,7 @@ async function resolveEphemeralName(auth, name, cwd = process.cwd()) {
58
58
  if (other !== void 0) throw await reachableFirst(other, auth);
59
59
  throw new CliError(
60
60
  "SDK_ERROR",
61
- `No ephemeral environment to target. Name one with \`ephemeral:<name>\` (\`xanosdk ephemeral list${contextFlags()}\` shows the ones that exist), or run \`xanosdk deploy${contextFlags()}\` first \u2014 this project then remembers the env it deployed to, which is what bare \`ephemeral\` reads.`,
61
+ `No ephemeral environment to target. Name one with \`ephemeral:<name>\` (\`xanosdk ephemeral list${contextFlags()}\` shows the ones that exist), or run \`xanosdk deploy --ephemeral${contextFlags()}\` first \u2014 this project then remembers the env it deployed to, which is what bare \`ephemeral\` reads.`,
62
62
  { exitCode: EXIT_SOURCE_UNRESOLVABLE }
63
63
  );
64
64
  }
@@ -85,7 +85,7 @@ function otherCredentialRefusal(state, scope, tail, opts = {}) {
85
85
  const runFile = credentialFileOf();
86
86
  const known = files.length === 1 ? files[0] : void 0;
87
87
  const fileFlag = known !== void 0 && known !== runFile ? credentialFileFlagFor(known) : "";
88
- const fileNote = known === void 0 && runFile !== void 0 && runFile !== "shared" ? ` (${profiles.length === 1 ? "it" : "they"} may live in another credential file than this run read \u2014 add that file's \`--config <path>\` if so)` : known === "shared" && runFile !== void 0 && runFile !== "shared" ? ` (without \`--config\`/\`--local\`: ${profiles.length === 1 ? "it lives" : "they live"} in this machine's shared credential file)` : "";
88
+ const fileNote = known === void 0 && runFile !== void 0 && runFile !== "shared" ? ` (${profiles.length === 1 ? "it" : "they"} may live in another credential file than this run read \u2014 add that file's \`--config <path>\` if so)` : known === "shared" && runFile !== void 0 && runFile !== "shared" ? ` (without \`--config\`/\`--local-auth\`: ${profiles.length === 1 ? "it lives" : "they live"} in this machine's shared credential file)` : "";
89
89
  const profileFlag = `${profiles.length === 1 ? `--profile ${profiles[0]}` : "--profile <name>"}${fileFlag}`;
90
90
  const goneKey = reachable.length === 1 ? reachable[0] : void 0;
91
91
  const goneTarget = {
@@ -126,7 +126,7 @@ function otherCredentialRefusal(state, scope, tail, opts = {}) {
126
126
  if (sameHost.length === 0) {
127
127
  const hosts = [...new Set(others.map((k) => hostOfKey(k)))].join(", ");
128
128
  return new UsageError(
129
- `No ephemeral is tracked on ${here} \u2014 run \`xanosdk deploy${contextFlags()}\` to create one there, ${tail}. (This project's record is for ${hosts}.)`,
129
+ `No ephemeral is tracked on ${here} \u2014 run \`xanosdk deploy --ephemeral${contextFlags()}\` to create one there, ${tail}. (This project's record is for ${hosts}.)`,
130
130
  opts
131
131
  );
132
132
  }
@@ -142,7 +142,7 @@ var SENDS_ELSEWHERE = /* @__PURE__ */ new WeakSet();
142
142
  async function reachableFirst(refusal, auth) {
143
143
  if (!(refusal instanceof Error) || !SENDS_ELSEWHERE.has(refusal)) return refusal;
144
144
  if (auth === void 0 || !("access_token" in auth)) return refusal;
145
- const { refuseUnreachableWorkspace } = await import("./workspace-binding-2TWZBHQY.js");
145
+ const { refuseUnreachableWorkspace } = await import("./workspace-binding-JE6YNDZJ.js");
146
146
  try {
147
147
  await refuseUnreachableWorkspace(auth);
148
148
  } catch (unreachable) {
@@ -167,4 +167,4 @@ export {
167
167
  otherCredentialRefusal,
168
168
  reachableFirst
169
169
  };
170
- //# sourceMappingURL=chunk-3P3HXN76.js.map
170
+ //# sourceMappingURL=chunk-ITC2R2OT.js.map
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  listTenants
3
- } from "./chunk-KCAL4QYP.js";
3
+ } from "./chunk-VW4CWVYX.js";
4
4
  import {
5
5
  listEphemeral
6
- } from "./chunk-BUECLQXK.js";
6
+ } from "./chunk-SPKA2LV6.js";
7
7
  import {
8
8
  shellWord
9
9
  } from "./chunk-FWD7AL6N.js";
10
10
  import {
11
11
  safeText
12
- } from "./chunk-SBR2WZXG.js";
12
+ } from "./chunk-D7BUMOKU.js";
13
13
 
14
14
  // src/emit/display-name-hint.ts
15
15
  function isShared(owner) {
@@ -117,4 +117,4 @@ export {
117
117
  displayNameHint,
118
118
  selectorFix
119
119
  };
120
- //# sourceMappingURL=chunk-W5ONYLOP.js.map
120
+ //# sourceMappingURL=chunk-IXFJORNH.js.map
@@ -1,19 +1,243 @@
1
1
  import {
2
- identityName,
3
- isWorkspaceKeyAtDefault
4
- } from "./chunk-XXZZGXW2.js";
5
- import {
2
+ DEFAULT_DOCUMENTATION,
6
3
  DEFAULT_PREFERENCES,
7
- DEFAULT_SETTINGS
4
+ DEFAULT_SETTINGS,
5
+ LEGACY_REALTIME
8
6
  } from "./chunk-6JAEMMZ7.js";
7
+ import {
8
+ identityNamesByGuid,
9
+ lockNameForObject,
10
+ sdkKindName
11
+ } from "./chunk-5KJBWIDZ.js";
9
12
  import {
10
13
  HOSTED_ICON_KINDS,
11
14
  isPrivateLibraryRow
12
- } from "./chunk-XNCP4KYO.js";
15
+ } from "./chunk-VQPDATQT.js";
13
16
  import {
14
17
  deepEqual,
15
18
  normalize
16
- } from "./chunk-3HOGFGKG.js";
19
+ } from "./chunk-D3KEPRRN.js";
20
+
21
+ // src/codegen/omissions.ts
22
+ function omissionSeverity(reason) {
23
+ return reason === "unmodeled" ? "warning" : "notice";
24
+ }
25
+ var UNSUPPORTED_SECTIONS = {
26
+ vault: {
27
+ label: "stored files",
28
+ reason: "stored-file",
29
+ detail: 'a file\'s bytes are not carried into the generated tree; to ship one from the project, put it in the repo and point the field at `hostedFile("./<file>", import.meta.url)`'
30
+ },
31
+ // These three were tagged `unmodeled`, which their own detail lines contradict:
32
+ // none of them is an object type the SDK failed to model. They are records of
33
+ // what was done to the workspace, owned by the instance that did it.
34
+ market_item: { label: "marketplace records", reason: "instance-owned", detail: "marketplace provenance is owned by the instance" },
35
+ run_install: { label: "install runs", reason: "instance-owned", detail: "install runs are instance history, not workspace source" },
36
+ action_package_install: {
37
+ label: "action-package installs",
38
+ reason: "instance-owned",
39
+ detail: "action-package installs are owned by the instance"
40
+ },
41
+ service: { label: "services", reason: "unmodeled", detail: "services are not modeled by this SDK" },
42
+ branch: { label: "branches", reason: "server-managed", detail: "branches are instance state, not workspace source" }
43
+ };
44
+ var WORKSPACE_OMITTED_KEYS = {
45
+ // --- private key material ---
46
+ iv: { label: "encryption material", reason: "secret", detail: "instance crypto material" },
47
+ salt: { label: "encryption salt", reason: "secret", detail: "instance crypto material" },
48
+ secret: { label: "encryption secret", reason: "secret", detail: "instance crypto material" },
49
+ crypto: { label: "encryption keys", reason: "secret", detail: "instance crypto material" },
50
+ mesh0: { label: "integration API keys", reason: "secret", detail: "integration API keys" },
51
+ git: { label: "git integration keys", reason: "secret", detail: "integration deploy keys" },
52
+ // --- assigned and owned by the instance ---
53
+ id: { label: "workspace id", reason: "server-managed", detail: "instance-assigned workspace id" },
54
+ guid: {
55
+ label: "workspace guid",
56
+ reason: "server-managed",
57
+ derived: true,
58
+ detail: "instance-assigned workspace guid; the generated tree re-derives its own from the workspace name rather than carrying it"
59
+ },
60
+ checksum: { label: "checksum", reason: "server-managed", detail: "derived by the engine on save" },
61
+ created_at: { label: "created time", reason: "server-managed", detail: "engine timestamp" },
62
+ updated_at: { label: "updated time", reason: "server-managed", detail: "engine timestamp" },
63
+ deleted_at: { label: "deleted time", reason: "server-managed", detail: "engine timestamp" },
64
+ domain_prefix: {
65
+ label: "routing prefix",
66
+ reason: "server-managed",
67
+ detail: "instance-assigned routing prefix; redeploying it to another tenant would claim its hostnames"
68
+ },
69
+ branch: { label: "current branch", reason: "server-managed", detail: "current-branch pointer, instance state" },
70
+ release: { label: "current release", reason: "server-managed", detail: "release pointer, instance state" },
71
+ user: { label: "owning user", reason: "server-managed", detail: "owning-user record" },
72
+ usage: { label: "usage counters", reason: "server-managed", detail: "usage counters, instance state" },
73
+ features: { label: "feature flags", reason: "server-managed", detail: "instance feature flags" },
74
+ installed_services: { label: "installed services", reason: "server-managed", detail: "per-branch installed service ids" },
75
+ provision: { label: "provisioning state", reason: "server-managed", detail: "provisioning progress, instance state" },
76
+ well_known: { label: "well-known records", reason: "server-managed", detail: "well-known hosting records, instance state" },
77
+ tailor_experience: { label: "onboarding answers", reason: "server-managed", detail: "onboarding survey answers" },
78
+ require_setup: { label: "setup state", reason: "server-managed", detail: "onboarding state" },
79
+ disabled: { label: "disable flag", reason: "server-managed", detail: "instance-level workspace disable flag" },
80
+ jumpstart: { label: "starter state", reason: "server-managed", detail: "onboarding state" },
81
+ sql_schema_name: { label: "database schema name", reason: "server-managed", detail: "physical schema name, instance-assigned" },
82
+ connect: { label: "connection state", reason: "server-managed", detail: "third-party connection state" },
83
+ // --- carried elsewhere in the bundle ---
84
+ env: {
85
+ label: "env vars",
86
+ reason: "relocated",
87
+ emptied: true,
88
+ detail: "workspace env vars are carried in the bundle's own env set, where the import reads them; they are verified there"
89
+ }
90
+ };
91
+ var WORKSPACE_DEFAULTED_KEYS = {
92
+ use_custom_names: (v) => v === false,
93
+ // The two blocks the wipe was expressible through. Omitting either emits
94
+ // no key, so both need recognising here for the same reason the four below do:
95
+ // the engine materializes them on save, so a stored default is ten lines
96
+ // nobody wrote — and verification reads this table, so a tree that leaves the
97
+ // default behind compares equal rather than reporting a loss.
98
+ documentation: isDefaultDocumentation,
99
+ realtime: isDefaultLegacyRealtime,
100
+ defaults: (v) => isRecord(v) && Object.keys(v).length === 1 && v.db_primary_key === "int",
101
+ datasources: (v) => Array.isArray(v) && v.length === 0,
102
+ datasource_live: (v) => isRecord(v) && Object.keys(v).length === 2 && v.color === "#008000" && v.show_banner === false,
103
+ middleware: (v) => isRecord(v) && Object.values(v).every((list) => Array.isArray(list) && list.length === 0),
104
+ history: isDefaultWorkspaceHistory
105
+ };
106
+ function isDefaultDocumentation(value) {
107
+ return matchesDefault(value, DEFAULT_DOCUMENTATION, { whitelist: isEmptyWhitelist });
108
+ }
109
+ function isEmptyWhitelist(value) {
110
+ if (Array.isArray(value)) return value.length === 0;
111
+ return isRecord(value) && Object.keys(value).length === 0;
112
+ }
113
+ function isDefaultLegacyRealtime(value) {
114
+ return matchesDefault(value, LEGACY_REALTIME, {
115
+ channels: (v) => Array.isArray(v) && v.length === 0
116
+ });
117
+ }
118
+ function matchesDefault(value, defaults, loose = {}) {
119
+ if (!isRecord(value)) return false;
120
+ return Object.entries(value).every(([key, member]) => {
121
+ if (!Object.hasOwn(defaults, key)) return false;
122
+ const predicate = Object.hasOwn(loose, key) ? loose[key] : void 0;
123
+ return predicate ? predicate(member) : deepEqualDefault(member, defaults[key]);
124
+ });
125
+ }
126
+ function deepEqualDefault(a, b) {
127
+ if (a === b) return true;
128
+ if (Array.isArray(a) && Array.isArray(b)) {
129
+ return a.length === b.length && a.every((item, i) => deepEqualDefault(item, b[i]));
130
+ }
131
+ if (!isRecord(a) || !isRecord(b)) return false;
132
+ const keys = /* @__PURE__ */ new Set([...Object.keys(a), ...Object.keys(b)]);
133
+ return [...keys].every((k) => deepEqualDefault(a[k], b[k]));
134
+ }
135
+ function isRecord(value) {
136
+ return value !== null && typeof value === "object" && !Array.isArray(value);
137
+ }
138
+ function subtractDefaults(value, fallback) {
139
+ if (deepEqualDefault(value, fallback)) return void 0;
140
+ if (!isRecord(value) || !isRecord(fallback)) return value;
141
+ const out = {};
142
+ for (const [key, member] of Object.entries(value)) {
143
+ const kept = Object.hasOwn(fallback, key) ? subtractDefaults(member, fallback[key]) : member;
144
+ if (kept !== void 0) out[key] = kept;
145
+ }
146
+ return Object.keys(out).length === 0 ? void 0 : out;
147
+ }
148
+ var HISTORY_DEFAULT_OFF = /* @__PURE__ */ new Set(["function", "middleware", "trigger", "message"]);
149
+ function isDefaultWorkspaceHistory(value) {
150
+ if (!isRecord(value)) return false;
151
+ return Object.entries(value).every(([key, member]) => {
152
+ const enabled = key.endsWith("_enabled");
153
+ if (!enabled && !key.endsWith("_limit")) return false;
154
+ const type = key.slice(0, key.lastIndexOf("_"));
155
+ return enabled ? member === !HISTORY_DEFAULT_OFF.has(type) : member === 100;
156
+ });
157
+ }
158
+ function isWorkspaceKeyAtDefault(key, value) {
159
+ const predicate = Object.hasOwn(WORKSPACE_DEFAULTED_KEYS, key) ? WORKSPACE_DEFAULTED_KEYS[key] : void 0;
160
+ return predicate !== void 0 && predicate(value);
161
+ }
162
+ function sectionOmission(key) {
163
+ return Object.hasOwn(UNSUPPORTED_SECTIONS, key) ? UNSUPPORTED_SECTIONS[key] : void 0;
164
+ }
165
+ function workspaceKeyOmission(key) {
166
+ return Object.hasOwn(WORKSPACE_OMITTED_KEYS, key) ? WORKSPACE_OMITTED_KEYS[key] : void 0;
167
+ }
168
+
169
+ // src/codegen/labels.ts
170
+ var NOUNS = {
171
+ query: ["query", "queries"],
172
+ env: ["env var", "env vars"],
173
+ knowledge: ["knowledge item", "knowledge items"],
174
+ knowledge_file: ["knowledge file", "knowledge files"],
175
+ addon: ["addon", "addons"]
176
+ };
177
+ function countOf(n, singular, plural = `${singular}s`) {
178
+ return `${n} ${n === 1 ? singular : plural}`;
179
+ }
180
+ function decodedCounts(payload) {
181
+ const out = [];
182
+ for (const [key, section] of Object.entries(payload)) {
183
+ if (!Array.isArray(section) || section.length === 0) continue;
184
+ if (key === "toolset") {
185
+ const agents = section.filter((r) => r?.type === "agent").length;
186
+ if (agents > 0) out.push(["agent", countOf(agents, "agent")]);
187
+ if (section.length - agents > 0) out.push(["mcpServer", countOf(section.length - agents, "mcpServer")]);
188
+ continue;
189
+ }
190
+ const policy = sectionOmission(key);
191
+ if (policy !== void 0) {
192
+ out.push([policy.label, `${section.length} ${policy.label}`]);
193
+ continue;
194
+ }
195
+ const noun = Object.hasOwn(NOUNS, key) ? NOUNS[key] : void 0;
196
+ const kind = sdkKindName(key);
197
+ out.push([kind, noun !== void 0 ? countOf(section.length, noun[0], noun[1]) : countOf(section.length, kind)]);
198
+ }
199
+ return out.sort((a, b) => a[0] < b[0] ? -1 : a[0] > b[0] ? 1 : 0).map(([, phrase]) => phrase);
200
+ }
201
+ var repeatedNames = /* @__PURE__ */ new WeakMap();
202
+ function identityName(payload, payloadKey, stored) {
203
+ if (payloadKey === "knowledge_file") return knowledgeFileName(payload, stored);
204
+ const name = String(stored?.name ?? "");
205
+ let repeats = repeatedNames.get(payload);
206
+ if (repeats === void 0) {
207
+ repeats = /* @__PURE__ */ new Map();
208
+ for (const [key, section] of Object.entries(payload)) {
209
+ if (!Array.isArray(section)) continue;
210
+ const seen = /* @__PURE__ */ new Set();
211
+ const twice = /* @__PURE__ */ new Set();
212
+ for (const row of section) {
213
+ const n = String(row?.name ?? "");
214
+ if (seen.has(n)) twice.add(n);
215
+ seen.add(n);
216
+ }
217
+ repeats.set(key, twice);
218
+ }
219
+ repeatedNames.set(payload, repeats);
220
+ }
221
+ if (!repeats.get(payloadKey)?.has(name)) return name;
222
+ return lockNameForObject(payloadKey, stored, identityNamesByGuid(payload));
223
+ }
224
+ function knowledgeFileName(payload, stored) {
225
+ const { path, knowledge } = stored ?? {};
226
+ const items = Array.isArray(payload.knowledge) ? payload.knowledge : [];
227
+ const item = items.find((k) => k?.guid === knowledge?.id);
228
+ const rel = String(path ?? "").replace(/^knowledge-refs\/[^/]+\//, "");
229
+ return item?.name === void 0 ? rel : `${String(item.name)}/${rel}`;
230
+ }
231
+ var WORKSPACE_SETTINGS = "workspace settings";
232
+ function reportObjectLabel(payloadKey, name) {
233
+ if (payloadKey === "workspace") {
234
+ const policy = workspaceKeyOmission(name);
235
+ return `${WORKSPACE_SETTINGS} (${policy?.label ?? name})`;
236
+ }
237
+ const section = sectionOmission(payloadKey);
238
+ if (section !== void 0) return `${section.label}: ${name}`;
239
+ return `${sdkKindName(payloadKey)}:${name}`;
240
+ }
17
241
 
18
242
  // src/deploy/live-diff.ts
19
243
  function storedColumnsAfter(outgoing, live, prior, mode) {
@@ -681,27 +905,22 @@ var AGENT_SETTINGS_DEFAULTS = {
681
905
  model: isEmptyText,
682
906
  telemetry: telemetryOff
683
907
  };
684
- function withoutEngineDefaults(defaults, ours, theirs) {
685
- if (defaults === void 0) return [ours, theirs];
686
- const a = { ...ours };
687
- const b = { ...theirs };
908
+ function withoutEngineDefaults(defaults, row) {
909
+ if (defaults === void 0) return row;
910
+ const out = { ...row };
688
911
  for (const [key, isDefault] of Object.entries(defaults)) {
689
- const atDefault = (row) => !Object.hasOwn(row, key) || isDefault(row[key]);
690
- if (atDefault(a) && atDefault(b)) {
691
- delete a[key];
692
- delete b[key];
693
- }
912
+ if (!Object.hasOwn(out, key) || isDefault(out[key])) delete out[key];
694
913
  }
695
- if (defaults === ENGINE_FILLED_DEFAULTS.toolset && isPlainObject(a.agent_settings) && isPlainObject(b.agent_settings)) {
696
- [a.agent_settings, b.agent_settings] = withoutEngineDefaults(AGENT_SETTINGS_DEFAULTS, a.agent_settings, b.agent_settings);
914
+ if (defaults === ENGINE_FILLED_DEFAULTS.toolset && isPlainObject(out.agent_settings)) {
915
+ out.agent_settings = withoutEngineDefaults(AGENT_SETTINGS_DEFAULTS, out.agent_settings);
697
916
  }
698
- return [a, b];
917
+ return out;
699
918
  }
700
- function withoutNullColumnDefaults(table) {
919
+ function withoutEmptyColumnDefaults(table) {
701
920
  const strip = (columns) => Array.isArray(columns) ? columns.map((col) => {
702
921
  if (!isPlainObject(col)) return col;
703
922
  const { default: d, ...rest } = col;
704
- const out = d === null ? rest : col;
923
+ const out = d === null || d === "" || col.required === true ? rest : col;
705
924
  return Array.isArray(out.children) ? { ...out, children: strip(out.children) } : out;
706
925
  }) : columns;
707
926
  return Array.isArray(table.schema) ? { ...table, schema: strip(table.schema) } : table;
@@ -734,18 +953,17 @@ function withHostedIconIdentity(row) {
734
953
  }
735
954
  var INDEX_SET_KEY = "(indexes)";
736
955
  function comparable(section, oursIn, theirsIn, pinned) {
737
- let [ours, theirs] = withoutEngineDefaults(Object.hasOwn(ENGINE_FILLED_DEFAULTS, section) ? ENGINE_FILLED_DEFAULTS[section] : void 0, oursIn, theirsIn);
956
+ return [canonicalRow(section, oursIn, pinned), canonicalRow(section, theirsIn, pinned)];
957
+ }
958
+ function canonicalRow(section, rowIn, pinned) {
959
+ let row = withoutEngineDefaults(Object.hasOwn(ENGINE_FILLED_DEFAULTS, section) ? ENGINE_FILLED_DEFAULTS[section] : void 0, rowIn);
738
960
  if (section === "dbo") {
739
- [ours, theirs] = [withoutNullColumnDefaults(ours), withoutNullColumnDefaults(theirs)];
740
- [ours, theirs] = [{ ...ours, [INDEX_SET_KEY]: indexKeysOf(oursIn) }, { ...theirs, [INDEX_SET_KEY]: indexKeysOf(theirsIn) }];
741
- }
742
- if (HOSTED_ICON_KINDS.includes(section)) [ours, theirs] = [withHostedIconIdentity(ours), withHostedIconIdentity(theirs)];
743
- if (pinned || !("canonical" in ours || "canonical" in theirs)) {
744
- return [normalize(ours), normalize(theirs)];
961
+ row = { ...withoutEmptyColumnDefaults(row), [INDEX_SET_KEY]: indexKeysOf(rowIn) };
745
962
  }
746
- const { canonical: _a, ...oursRest } = ours;
747
- const { canonical: _b, ...theirsRest } = theirs;
748
- return [normalize(oursRest), normalize(theirsRest)];
963
+ if (HOSTED_ICON_KINDS.includes(section)) row = withHostedIconIdentity(row);
964
+ if (pinned || !("canonical" in row)) return normalize(row);
965
+ const { canonical: _slug, ...rest } = row;
966
+ return normalize(rest);
749
967
  }
750
968
  function pinsCanonical(key, record, pinnedKeys) {
751
969
  const name = typeof record.name === "string" ? record.name : void 0;
@@ -839,6 +1057,15 @@ function compareToLive(outgoing, live, pinnedKeys, opts = {}) {
839
1057
  }
840
1058
 
841
1059
  export {
1060
+ omissionSeverity,
1061
+ UNSUPPORTED_SECTIONS,
1062
+ subtractDefaults,
1063
+ isWorkspaceKeyAtDefault,
1064
+ sectionOmission,
1065
+ workspaceKeyOmission,
1066
+ decodedCounts,
1067
+ identityName,
1068
+ reportObjectLabel,
842
1069
  storedColumnsAfter,
843
1070
  uniqueIndexLabels,
844
1071
  indexKeysOf,
@@ -857,6 +1084,7 @@ export {
857
1084
  rowLabeler,
858
1085
  declaredLabels,
859
1086
  hostedIconIdentity,
1087
+ canonicalRow,
860
1088
  compareToLive
861
1089
  };
862
- //# sourceMappingURL=chunk-HMLGM2MW.js.map
1090
+ //# sourceMappingURL=chunk-IYXL5NYU.js.map