@xano/sdk 1.0.6 → 1.0.8

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 (242) hide show
  1. package/CHANGELOG.md +30 -0
  2. package/README.md +32 -4
  3. package/dist/.build-fingerprint +1 -1
  4. package/dist/{agent-file-refresh-67QIX45H.js → agent-file-refresh-QJO3MT6Q.js} +13 -13
  5. package/dist/agent-skill-command-GBR4KUUG.js +414 -0
  6. package/dist/{answer-shape-UCDUKPAN.js → answer-shape-UMQRXMCX.js} +5 -5
  7. package/dist/{backend-dir-3LIL6SCT.js → backend-dir-PFUIPCV3.js} +15 -15
  8. package/dist/{backend-slot-JREP27UD.js → backend-slot-TTRNOQF5.js} +4 -4
  9. package/dist/bin.js +54 -53
  10. package/dist/{branch-2IPHOAYS.js → branch-Q7CDJRU6.js} +12 -11
  11. package/dist/{branch-commands-KTKAXBAN.js → branch-commands-CR3SAHMV.js} +27 -26
  12. package/dist/bundle.js +5 -5
  13. package/dist/{chunk-YKP4ZKVO.js → chunk-2HZDWZM2.js} +3 -3
  14. package/dist/{chunk-ZDP6GDAB.js → chunk-33KELF2X.js} +103 -94
  15. package/dist/{chunk-7VR4IO5B.js → chunk-3P35HT64.js} +2 -2
  16. package/dist/{chunk-2FLIJGBZ.js → chunk-3UZQ5TMG.js} +47 -8
  17. package/dist/{chunk-AWQ7BQTQ.js → chunk-4GPIOIAC.js} +6 -1
  18. package/dist/{chunk-YYLUBYXM.js → chunk-4JKXGPXB.js} +3 -3
  19. package/dist/{chunk-EQFYOOO6.js → chunk-5GIOCDUM.js} +829 -893
  20. package/dist/{chunk-26MOFAJT.js → chunk-5QOV52V4.js} +6 -3
  21. package/dist/{chunk-Q22BMRPF.js → chunk-5Y5HWQ2P.js} +2 -2
  22. package/dist/{chunk-T4LJ5UR2.js → chunk-6BOKCTCM.js} +52 -22
  23. package/dist/{chunk-FNLTFOUD.js → chunk-6NEV2PEC.js} +2 -2
  24. package/dist/{chunk-QJM5XZ4K.js → chunk-6PTITS3M.js} +8 -8
  25. package/dist/{chunk-N5I37JFB.js → chunk-6S263KTM.js} +2 -2
  26. package/dist/{chunk-JI3BLXWQ.js → chunk-6YOH2L3G.js} +11 -5
  27. package/dist/{chunk-5QMJOE2K.js → chunk-6ZFJEJXZ.js} +5 -3
  28. package/dist/{chunk-NPODGBVJ.js → chunk-75MKIQON.js} +4 -4
  29. package/dist/{chunk-SPITRSOF.js → chunk-76UAME77.js} +2 -2
  30. package/dist/{chunk-JRVQ7M7W.js → chunk-77GV772V.js} +8 -8
  31. package/dist/{chunk-GWTFI3GA.js → chunk-7JKNWDYN.js} +2 -2
  32. package/dist/{chunk-6X6BJN6Y.js → chunk-7MPI7NIW.js} +3 -3
  33. package/dist/{chunk-3II44CUJ.js → chunk-7UWUEUVJ.js} +24 -24
  34. package/dist/{chunk-ENMBEXOP.js → chunk-AS4G2MIE.js} +3 -3
  35. package/dist/{chunk-PMMHSX4H.js → chunk-B3NH5UBI.js} +4 -4
  36. package/dist/{chunk-SLGJIWCY.js → chunk-B5N6EWOM.js} +2 -2
  37. package/dist/chunk-BRANWM4U.js +853 -0
  38. package/dist/{chunk-6X3MY2JP.js → chunk-C2GHFADU.js} +2 -2
  39. package/dist/{chunk-CCU5CCRX.js → chunk-C2I4GC36.js} +8 -8
  40. package/dist/{chunk-D7BUMOKU.js → chunk-C6KBZH7M.js} +82 -6
  41. package/dist/{chunk-LAOMN6QQ.js → chunk-CRE7P7P2.js} +3 -3
  42. package/dist/{chunk-AVS4WPPY.js → chunk-DER2CVNC.js} +2 -2
  43. package/dist/{chunk-UIVMR7UK.js → chunk-DY3EJWWH.js} +2 -2
  44. package/dist/{chunk-SKEG3V2V.js → chunk-EKTIGGFO.js} +2 -2
  45. package/dist/{chunk-PL7AIAWS.js → chunk-F3IA3YWI.js} +4 -111
  46. package/dist/{chunk-FQ53GTII.js → chunk-F5RPNTN7.js} +6 -6
  47. package/dist/{chunk-2WBH5HUY.js → chunk-FHQYXGAY.js} +7 -7
  48. package/dist/{chunk-ND43ZOS3.js → chunk-FN7E6XGD.js} +7 -7
  49. package/dist/{chunk-3BBIDW3Y.js → chunk-GN5SQMIQ.js} +5 -5
  50. package/dist/{chunk-SSITMX7I.js → chunk-H3ZBAR2L.js} +16 -14
  51. package/dist/{chunk-OIKLDDYC.js → chunk-HFOGQIII.js} +3 -3
  52. package/dist/chunk-HKLBDSML.js +995 -0
  53. package/dist/{chunk-JXVJGF3Y.js → chunk-HQPL34O6.js} +2 -2
  54. package/dist/{chunk-CHINR7WD.js → chunk-HTP2CLRQ.js} +5 -5
  55. package/dist/{chunk-ROY4YAEQ.js → chunk-HU7F56VF.js} +22 -2
  56. package/dist/{chunk-TECTL2NU.js → chunk-HVPSDQJB.js} +4 -4
  57. package/dist/{chunk-IYXL5NYU.js → chunk-I53OTC3O.js} +2 -2
  58. package/dist/{chunk-M5CSVB23.js → chunk-IB6SKACE.js} +11 -8
  59. package/dist/{chunk-UD2Z7K6W.js → chunk-JG642U5D.js} +4 -4
  60. package/dist/{chunk-ZJSTUD6D.js → chunk-JJGK7XGC.js} +8 -8
  61. package/dist/{local-engine-command-RYLGMQ2O.js → chunk-JPRZ4ZGU.js} +22 -77
  62. package/dist/{chunk-QZEAANWP.js → chunk-K75BFHQQ.js} +8 -8
  63. package/dist/chunk-LCOCRJ4K.js +116 -0
  64. package/dist/{chunk-3EDSPMXN.js → chunk-LJM5CIY4.js} +5 -1
  65. package/dist/{chunk-D3KEPRRN.js → chunk-LTPF25L2.js} +2 -1
  66. package/dist/{chunk-HCG7NDIL.js → chunk-M3RLLT4O.js} +5 -5
  67. package/dist/{chunk-IXFJORNH.js → chunk-NFSUGVDY.js} +4 -4
  68. package/dist/{chunk-GHQ4BVI4.js → chunk-NFZUXS7D.js} +14 -14
  69. package/dist/{chunk-LBJA7IEM.js → chunk-O376UAZS.js} +2 -2
  70. package/dist/{chunk-LD6ARK3A.js → chunk-OBJ7FQDX.js} +2 -2
  71. package/dist/{chunk-VJFMUJWZ.js → chunk-OHTHG3LL.js} +2 -2
  72. package/dist/{chunk-U35MTOXQ.js → chunk-P5W6DBV6.js} +3 -3
  73. package/dist/{chunk-A7MRZ4GF.js → chunk-PAS5HOG3.js} +5 -5
  74. package/dist/{chunk-WZHLMU6T.js → chunk-PBK257CI.js} +2 -2
  75. package/dist/{chunk-SPKA2LV6.js → chunk-PFW7WFAT.js} +4 -4
  76. package/dist/{chunk-GOLFAEUV.js → chunk-QC3MKMDK.js} +2 -2
  77. package/dist/{chunk-YGLMRH5U.js → chunk-QE2GNFMP.js} +12 -12
  78. package/dist/{chunk-763M6LX3.js → chunk-QL3ZJWGG.js} +2 -2
  79. package/dist/{chunk-ITC2R2OT.js → chunk-QRKBFXIB.js} +7 -7
  80. package/dist/{chunk-KPFS3RGM.js → chunk-QTMXJQZN.js} +4 -4
  81. package/dist/{chunk-BTVUYHWV.js → chunk-QXOBZSQD.js} +4 -4
  82. package/dist/{chunk-NDWVJ2QZ.js → chunk-R3LANPQZ.js} +3 -3
  83. package/dist/{chunk-QXYMDARD.js → chunk-R4NOZBOY.js} +4 -4
  84. package/dist/{chunk-YYC2DZMG.js → chunk-RYMGK2K5.js} +6 -6
  85. package/dist/{chunk-IF4PEGVD.js → chunk-S2F7KVUL.js} +11 -11
  86. package/dist/{chunk-I3VHW6XM.js → chunk-S3STXOAO.js} +18 -18
  87. package/dist/{chunk-JFBRXRJD.js → chunk-S3WN6GGO.js} +40 -40
  88. package/dist/{chunk-U6MTGB46.js → chunk-S42TFTM5.js} +5 -5
  89. package/dist/{chunk-7GAIJW62.js → chunk-TG65NWUR.js} +2 -2
  90. package/dist/{chunk-YR2I5HGE.js → chunk-TR7EOUQE.js} +2 -2
  91. package/dist/{chunk-I3H3HCPY.js → chunk-U7XNJ33Q.js} +34 -31
  92. package/dist/{chunk-FU3VCE5A.js → chunk-UKJFCEMI.js} +13 -9
  93. package/dist/{chunk-5TVFLG3C.js → chunk-ULUUOUQX.js} +2 -2
  94. package/dist/{chunk-PFBXSVZF.js → chunk-UU7EEREQ.js} +7 -7
  95. package/dist/{chunk-ATJ2W7DC.js → chunk-V7KMIEMF.js} +286 -126
  96. package/dist/{chunk-VDHA5SSQ.js → chunk-VD7YTLWL.js} +2 -2
  97. package/dist/{chunk-EADVVTDK.js → chunk-VHV25AAO.js} +7 -7
  98. package/dist/{chunk-BL3AZ3AP.js → chunk-VJTTTIIB.js} +2 -2
  99. package/dist/{chunk-TTEIDD5Q.js → chunk-W2BVP27L.js} +4 -4
  100. package/dist/{chunk-GZHLCUZ6.js → chunk-WEQFI55W.js} +7 -7
  101. package/dist/{chunk-WBH4KJWM.js → chunk-XQO4A4Q4.js} +3 -3
  102. package/dist/{chunk-Z4ZGTCCD.js → chunk-XYTVP4WI.js} +6 -6
  103. package/dist/{chunk-5YQV35C2.js → chunk-Y5ET37NN.js} +7 -7
  104. package/dist/{chunk-VW4CWVYX.js → chunk-YE7MHW45.js} +4 -4
  105. package/dist/{chunk-YHB34BN6.js → chunk-YEH5OIPF.js} +2 -1
  106. package/dist/{chunk-GLY552SI.js → chunk-YG7S3N7P.js} +128 -60
  107. package/dist/{chunk-MBDFH7XB.js → chunk-YP76ZCQ5.js} +4 -4
  108. package/dist/{chunk-XFBGXB7X.js → chunk-ZJCHS7FM.js} +163 -107
  109. package/dist/{chunk-IMELQ2I6.js → chunk-ZO3QWFNV.js} +3 -3
  110. package/dist/{chunk-RIN4YY34.js → chunk-ZQ5WZWHF.js} +106 -69
  111. package/dist/{chunk-GW5RHGOB.js → chunk-ZT2B22VQ.js} +9 -9
  112. package/dist/cli.d.ts +32 -4
  113. package/dist/cli.js +51 -48
  114. package/dist/{codegen-command-R5IASBFC.js → codegen-command-4YXDJSLU.js} +69 -68
  115. package/dist/{commands-H7CPMMHH.js → commands-FOHIPDKZ.js} +3 -3
  116. package/dist/{completion-W5ZAI6TN.js → completion-XUBGMKGV.js} +9 -5
  117. package/dist/{config-MZ5KG4EP.js → config-544VCRKP.js} +8 -8
  118. package/dist/{deploy-command-34T2LKQ5.js → deploy-command-FIDS56ZC.js} +56 -55
  119. package/dist/{deploy-source-YLQ7WMYR.js → deploy-source-FPNNNNOW.js} +34 -33
  120. package/dist/{dev-env-sync-TMJTNU3U.js → dev-env-sync-RBJ2U3HG.js} +54 -53
  121. package/dist/{diagnostics-OMN5Y2AH.js → diagnostics-FNVNRYMB.js} +2 -2
  122. package/dist/{display-name-hint-ZJGFNJKQ.js → display-name-hint-EZQK2PDU.js} +14 -13
  123. package/dist/{emit-D125xxty.d.ts → emit-8lcNcRrd.d.ts} +12 -12
  124. package/dist/env-example-refresh-6UTTMDOI.js +134 -0
  125. package/dist/{env-pull-command-UTG6IC2K.js → env-pull-command-P5MATITQ.js} +46 -45
  126. package/dist/{env-target-FZROWYFS.js → env-target-F75YF25S.js} +13 -12
  127. package/dist/{env-var-command-VYDBQJJW.js → env-var-command-H3GHROVB.js} +50 -49
  128. package/dist/{ephemeral-BIE6FMJV.js → ephemeral-H24NF6WP.js} +11 -10
  129. package/dist/{ephemeral-command-OZ26RGXF.js → ephemeral-command-NH2XW3YK.js} +64 -63
  130. package/dist/{ephemeral-state-SNZOX2YK.js → ephemeral-state-YLZQIOBF.js} +11 -10
  131. package/dist/{generate-command-4HR7MR36.js → generate-command-IANKN6WV.js} +84 -82
  132. package/dist/{gitignore-EWQBXNX2.js → gitignore-FT2LVOMI.js} +19 -19
  133. package/dist/{guards-KYEOCVHN.js → guards-4VPSEOAI.js} +6 -4
  134. package/dist/{impersonate-command-WC7OGKUM.js → impersonate-command-7B67ICPL.js} +42 -41
  135. package/dist/{import-7Z4GCCPO.js → import-TXYVFYJS.js} +5 -5
  136. package/dist/index.d.ts +4 -4
  137. package/dist/index.js +8 -8
  138. package/dist/{init-command-HAO3WXH3.js → init-command-QOA4TJI2.js} +68 -53
  139. package/dist/{init-modules-NSKD4ASY.js → init-modules-KEEJ4HAF.js} +8 -8
  140. package/dist/{init-web-MKFFOQUU.js → init-web-MSXDARRF.js} +3 -3
  141. package/dist/internal.d.ts +4 -4
  142. package/dist/internal.js +10 -10
  143. package/dist/{keep-data-merge-QR2TMKEO.js → keep-data-merge-BIBW4QR4.js} +28 -28
  144. package/dist/{lambda-config-reconcile-7FJXXV6V.js → lambda-config-reconcile-47X5C2E4.js} +6 -5
  145. package/dist/{landing-record-MWXFIRCP.js → landing-record-DO3PM7QP.js} +22 -22
  146. package/dist/{live-diff-5E2BQWQ7.js → live-diff-CGTGOH3S.js} +3 -3
  147. package/dist/{local-engine-choice-VD5LNXJU.js → local-engine-choice-2UF7S5QZ.js} +37 -36
  148. package/dist/local-engine-command-WGMMZRQL.js +85 -0
  149. package/dist/{local-engine-config-W3KB7RWM.js → local-engine-config-6CB6FOEJ.js} +3 -2
  150. package/dist/{local-engine-deploy-6O7NKZCA.js → local-engine-deploy-ID4JJXB5.js} +18 -16
  151. package/dist/local-engine-lookup-IC7BKAYP.js +43 -0
  152. package/dist/local-engine-mcp-bridge-3SOJMZ5T.js +423 -0
  153. package/dist/local-engine-mcp-command-RMVUH4FL.js +181 -0
  154. package/dist/{local-engine-process-ZLLZEIRF.js → local-engine-process-HG5BGG3F.js} +12 -9
  155. package/dist/{local-engine-state-OCW5YDD7.js → local-engine-state-JZHTKHDG.js} +4 -3
  156. package/dist/{local-engine-update-check-LVX4HBBI.js → local-engine-update-check-SKZR7YSC.js} +7 -6
  157. package/dist/{lock-commands-X2OECR4R.js → lock-commands-5NMQWBGH.js} +57 -56
  158. package/dist/{login-command-RLLKD565.js → login-command-GLLFZWHT.js} +33 -33
  159. package/dist/{logout-command-XDMSXCDO.js → logout-command-NCMKMJWF.js} +16 -15
  160. package/dist/{loop-SUB6C2LK.js → loop-XFDS65OD.js} +3 -3
  161. package/dist/{marketplace-command-2NHHY2X3.js → marketplace-command-Y3RRUEWL.js} +34 -34
  162. package/dist/{marketplace-resolve-OTZYT4FG.js → marketplace-resolve-PWEYJ2XS.js} +6 -6
  163. package/dist/{meta-client-TMHVBZFY.js → meta-client-Y7N6WDS2.js} +14 -13
  164. package/dist/{module-manifest-FNMW23IX.js → module-manifest-KY7J63HG.js} +4 -4
  165. package/dist/node.d.ts +4 -4
  166. package/dist/node.js +60 -59
  167. package/dist/operation-outcome-4BFISK2R.js +53 -0
  168. package/dist/{output-target-MOLCTPBP.js → output-target-MFANTVGZ.js} +20 -20
  169. package/dist/{plan-disclosure-CY7AF6KP.js → plan-disclosure-GNLDYV2A.js} +17 -16
  170. package/dist/{plugin-contributions-WR26U7NT.js → plugin-contributions-PAGG6SUP.js} +6 -6
  171. package/dist/{plugin-prompt-ZUYQQIX4.js → plugin-prompt-2MX6LF6X.js} +5 -5
  172. package/dist/{plugin-questions-HAZOQ67R.js → plugin-questions-AP6VUTOB.js} +4 -4
  173. package/dist/{preflight-command-OHJXYND3.js → preflight-command-Q6XOKRM6.js} +61 -60
  174. package/dist/{profile-command-6JWT2BTL.js → profile-command-XPQIXFWN.js} +34 -34
  175. package/dist/{profile-pointer-PDA5XBIB.js → profile-pointer-4HJQH5ZR.js} +5 -4
  176. package/dist/{project-dependency-GZWWGWEW.js → project-dependency-ORX45I74.js} +7 -7
  177. package/dist/{project-sdk-3W72H5QO.js → project-sdk-IYMFVQRC.js} +4 -4
  178. package/dist/promote-command-DN64QK7O.js +147 -0
  179. package/dist/{prompt-U37K5RPQ.js → prompt-ZZUYWFQX.js} +4 -4
  180. package/dist/{publish-command-BUS27HGB.js → publish-command-SLE46MQX.js} +61 -60
  181. package/dist/{pull-command-ZGUNP27P.js → pull-command-UVK3IOXM.js} +72 -71
  182. package/dist/{pull-superseded-EZBGYRZF.js → pull-superseded-UZ3MB53B.js} +4 -4
  183. package/dist/{release-command-BQ6OHS3P.js → release-command-MKNESNGB.js} +67 -66
  184. package/dist/{release-ns-command-ATGVBVIU.js → release-ns-command-HLR46IKP.js} +92 -91
  185. package/dist/{retry-command-QJ57WVW7.js → retry-command-VZYLYDVX.js} +10 -9
  186. package/dist/{routes-manifest-YR4ZIMLM.js → routes-manifest-RIZGSOZC.js} +4 -4
  187. package/dist/{routes-manifest-file-UALYSZLY.js → routes-manifest-file-UHVVL2YB.js} +8 -8
  188. package/dist/scaffold.js +4 -4
  189. package/dist/secrets-IV4N5HYI.js +20 -0
  190. package/dist/{secrets-file-LMS7KX3E.js → secrets-file-HST7BMQC.js} +19 -19
  191. package/dist/{secrets-fill-command-QNBDGCGM.js → secrets-fill-command-FQJ4QFBP.js} +55 -54
  192. package/dist/{seed-SZ6OS5DQ.js → seed-KEPIS7UZ.js} +6 -6
  193. package/dist/{source-resolve-MKLNYFWG.js → source-resolve-LNRUITLS.js} +24 -22
  194. package/dist/{static-host-ONEHA4LI.js → static-host-JAOT3N3E.js} +5 -5
  195. package/dist/{status-command-XKIFKBGM.js → status-command-S5CBG2SW.js} +53 -52
  196. package/dist/{store-Bg4Na6Sm.d.ts → store-CuD1k4kV.d.ts} +1 -1
  197. package/dist/{store-X6ZH7EC3.js → store-YFNDD6GZ.js} +8 -7
  198. package/dist/{sync-baseline-DOV5AGIO.js → sync-baseline-3CDL4PKT.js} +7 -5
  199. package/dist/{sync-contributions-HNVHDIQW.js → sync-contributions-O5ZRM2JN.js} +10 -10
  200. package/dist/{sync-record-PRXHLK4S.js → sync-record-U65BCPSP.js} +14 -13
  201. package/dist/{table-DC36QA4Y.js → table-E5YTK7QX.js} +7 -7
  202. package/dist/{tables-command-UQLKTELN.js → tables-command-7KI2KZOS.js} +40 -39
  203. package/dist/{tenant-EKNQGG5A.js → tenant-DAXJ4P4D.js} +12 -11
  204. package/dist/{tenant-command-2LWP2MPB.js → tenant-command-MQTLNETR.js} +97 -96
  205. package/dist/{test-command-IU5MBBXY.js → test-command-NLYMAAPD.js} +42 -41
  206. package/dist/{tests-RG2Y5EQ4.js → tests-CLDZWLKF.js} +6 -6
  207. package/dist/{token-7AWSJLKO.js → token-3IPTVEEW.js} +12 -11
  208. package/dist/{toolchain-hooks-4ZMQLBPQ.js → toolchain-hooks-3ZAAAWPL.js} +7 -7
  209. package/dist/{toolchain-modules-VU7SURVJ.js → toolchain-modules-K46KYJ4G.js} +5 -5
  210. package/dist/{toolchain-peers-CIDNEEQV.js → toolchain-peers-AIKWKJH7.js} +8 -8
  211. package/dist/{tracked-backend-4BHSV7NC.js → tracked-backend-FQFXTTYZ.js} +37 -36
  212. package/dist/{update-check-A7FXIINW.js → update-check-FHRRUDEC.js} +52 -51
  213. package/dist/{upgrade-command-C5KBITFI.js → upgrade-command-WNBPKUXN.js} +58 -55
  214. package/dist/{whoami-command-7WQII2H4.js → whoami-command-DPGDK35H.js} +15 -14
  215. package/dist/{workspace-Z46PUZNI.js → workspace-2GMONZ2A.js} +5 -5
  216. package/dist/{workspace-binding-JE6YNDZJ.js → workspace-binding-PAUOIK3V.js} +14 -13
  217. package/dist/{workspace-command-FC4IMLAE.js → workspace-command-KEKL27Y4.js} +99 -103
  218. package/dist/{workspace-env-N4ZPFT6A.js → workspace-env-GGEZVZDY.js} +16 -16
  219. package/dist/{workspace-export-3A5BZTPS.js → workspace-export-UHY22VBI.js} +5 -5
  220. package/dist/{writable-D7KCZI5N.js → writable-2A6MBSFD.js} +4 -4
  221. package/dist/{xano-LCI7VWPS.js → xano-6T6L7TTI.js} +5 -5
  222. package/dist/{xanosdk-import-P2A2KSXM.js → xanosdk-import-HYHABD5U.js} +6 -6
  223. package/dist/{xanosdk-project-6AGMW2SL.js → xanosdk-project-2T56DRYS.js} +16 -16
  224. package/guides/README.md +2 -2
  225. package/guides/cli.md +69 -0
  226. package/guides/codegen.md +23 -5
  227. package/guides/codes.md +5 -1
  228. package/guides/coverage.md +5 -0
  229. package/guides/deploying.md +45 -1
  230. package/guides/scaffold.md +61 -10
  231. package/llms/errors.md +1 -1
  232. package/llms/kinds-agent-mcp.md +1 -1
  233. package/llms-full.txt +3 -3
  234. package/llms.txt +1 -1
  235. package/manifest.json +67 -5
  236. package/package.json +5 -2
  237. package/skills/xano-backend/SKILL.md +119 -0
  238. package/dist/chunk-LL7SGTRC.js +0 -663
  239. package/dist/chunk-M6ZFSTIZ.js +0 -630
  240. package/dist/env-example-refresh-CQP3ZMKM.js +0 -133
  241. package/dist/operation-outcome-RN62735X.js +0 -51
  242. package/dist/promote-command-UYAMUXKB.js +0 -146
@@ -6,7 +6,7 @@ import {
6
6
  UsageError,
7
7
  style,
8
8
  terminalText
9
- } from "./chunk-D7BUMOKU.js";
9
+ } from "./chunk-C6KBZH7M.js";
10
10
 
11
11
  // src/emit/prompt.ts
12
12
  import { createInterface } from "readline";
@@ -174,4 +174,4 @@ export {
174
174
  STDIN_IDLE_MS,
175
175
  readStdin
176
176
  };
177
- //# sourceMappingURL=chunk-JXVJGF3Y.js.map
177
+ //# sourceMappingURL=chunk-HQPL34O6.js.map
@@ -4,19 +4,19 @@ import {
4
4
  sectionKind,
5
5
  tableAdditions,
6
6
  vectorSize
7
- } from "./chunk-IYXL5NYU.js";
7
+ } from "./chunk-I53OTC3O.js";
8
8
  import {
9
9
  ReleaseHttpError
10
- } from "./chunk-GWTFI3GA.js";
10
+ } from "./chunk-7JKNWDYN.js";
11
11
  import {
12
12
  TenantHttpError
13
- } from "./chunk-VW4CWVYX.js";
13
+ } from "./chunk-YE7MHW45.js";
14
14
  import {
15
15
  CliError,
16
16
  detail,
17
17
  warn,
18
18
  withoutUrls
19
- } from "./chunk-D7BUMOKU.js";
19
+ } from "./chunk-C6KBZH7M.js";
20
20
  import {
21
21
  suggest
22
22
  } from "./chunk-UTI5G6OJ.js";
@@ -677,4 +677,4 @@ export {
677
677
  CONSTRAINT_PHRASE,
678
678
  CONSTRAINT_FIX
679
679
  };
680
- //# sourceMappingURL=chunk-CHINR7WD.js.map
680
+ //# sourceMappingURL=chunk-HTP2CLRQ.js.map
@@ -1,11 +1,30 @@
1
1
  // src/util/project-root.ts
2
2
  import { existsSync, readFileSync } from "fs";
3
3
  import { dirname, join, relative, resolve, sep } from "path";
4
+ function isModuleTypeMarker(manifest) {
5
+ if (typeof manifest !== "object" || manifest === null || Array.isArray(manifest)) return false;
6
+ const keys = Object.keys(manifest);
7
+ return keys.length === 1 && manifest.type === "module";
8
+ }
9
+ function holdsProjectManifest(dir) {
10
+ const marker = (at) => {
11
+ const manifest = join(at, "package.json");
12
+ if (!existsSync(manifest)) return void 0;
13
+ try {
14
+ return isModuleTypeMarker(JSON.parse(readFileSync(manifest, "utf8")));
15
+ } catch {
16
+ return false;
17
+ }
18
+ };
19
+ const own = marker(dir);
20
+ if (own === void 0) return false;
21
+ return !own || marker(dirname(resolve(dir))) !== false;
22
+ }
4
23
  function projectRootFrom(from) {
5
24
  const start = resolve(from);
6
25
  let dir = start;
7
26
  for (; ; ) {
8
- if (existsSync(join(dir, "package.json"))) return dir;
27
+ if (holdsProjectManifest(dir)) return dir;
9
28
  if (existsSync(join(dir, ".git"))) return dir;
10
29
  const parent = dirname(dir);
11
30
  if (parent === dir) return start;
@@ -60,7 +79,8 @@ function listsPackage(globs, rel) {
60
79
  }
61
80
 
62
81
  export {
82
+ holdsProjectManifest,
63
83
  projectRootFrom,
64
84
  repoBoundaryFrom
65
85
  };
66
- //# sourceMappingURL=chunk-ROY4YAEQ.js.map
86
+ //# sourceMappingURL=chunk-HU7F56VF.js.map
@@ -5,14 +5,14 @@ import {
5
5
  hostLabel,
6
6
  questionSets,
7
7
  resolvePluginAnswers
8
- } from "./chunk-UIVMR7UK.js";
8
+ } from "./chunk-DY3EJWWH.js";
9
9
  import {
10
10
  gitattributesSpec
11
- } from "./chunk-3EDSPMXN.js";
11
+ } from "./chunk-LJM5CIY4.js";
12
12
  import {
13
13
  UsageError,
14
14
  warn
15
- } from "./chunk-D7BUMOKU.js";
15
+ } from "./chunk-C6KBZH7M.js";
16
16
  import {
17
17
  withArticle
18
18
  } from "./chunk-36JUQZVQ.js";
@@ -221,4 +221,4 @@ export {
221
221
  contributionOutcomes,
222
222
  resolveContributions
223
223
  };
224
- //# sourceMappingURL=chunk-TECTL2NU.js.map
224
+ //# sourceMappingURL=chunk-HVPSDQJB.js.map
@@ -16,7 +16,7 @@ import {
16
16
  import {
17
17
  deepEqual,
18
18
  normalize
19
- } from "./chunk-D3KEPRRN.js";
19
+ } from "./chunk-LTPF25L2.js";
20
20
 
21
21
  // src/codegen/omissions.ts
22
22
  function omissionSeverity(reason) {
@@ -1087,4 +1087,4 @@ export {
1087
1087
  canonicalRow,
1088
1088
  compareToLive
1089
1089
  };
1090
- //# sourceMappingURL=chunk-IYXL5NYU.js.map
1090
+ //# sourceMappingURL=chunk-I53OTC3O.js.map
@@ -1,7 +1,3 @@
1
- import {
2
- registerSecret,
3
- tokenTextProblem
4
- } from "./chunk-AWQ7BQTQ.js";
5
1
  import {
6
2
  expandHome,
7
3
  readPathEnvVar
@@ -12,11 +8,11 @@ import {
12
8
  httpFailure,
13
9
  isTimeoutError,
14
10
  statusLabel
15
- } from "./chunk-YR2I5HGE.js";
11
+ } from "./chunk-TR7EOUQE.js";
16
12
  import {
17
13
  pointerRootFor,
18
14
  resolveProjectProfile
19
- } from "./chunk-26MOFAJT.js";
15
+ } from "./chunk-5QOV52V4.js";
20
16
  import {
21
17
  atomicWrite,
22
18
  linkTarget
@@ -28,9 +24,13 @@ import {
28
24
  import {
29
25
  readEnvVar
30
26
  } from "./chunk-X2NL4KUO.js";
27
+ import {
28
+ registerSecret,
29
+ tokenTextProblem
30
+ } from "./chunk-4GPIOIAC.js";
31
31
  import {
32
32
  UsageError
33
- } from "./chunk-D7BUMOKU.js";
33
+ } from "./chunk-C6KBZH7M.js";
34
34
  import {
35
35
  shellQuote
36
36
  } from "./chunk-5ZSO4T2G.js";
@@ -1099,6 +1099,9 @@ function addGitignoreRule(authFilePath, opts = {}) {
1099
1099
  fileEntry.includes("/") ? fileEntry : `/${fileEntry}`
1100
1100
  ) : relForwardSlash(root, containingDir) + "/";
1101
1101
  const gitignorePath = join2(root, ".gitignore");
1102
+ if (lstatSync(gitignorePath, { throwIfNoEntry: false })?.isSymbolicLink() === true) {
1103
+ throw new Error(`${gitignorePath} is a symlink, so it was left untouched`);
1104
+ }
1102
1105
  const existing = existsSync2(gitignorePath) ? readFileSync2(gitignorePath, "utf8") : "";
1103
1106
  if (ignoreCovers(existing, entry) || ignoreCovers(existing, fileEntry) || gitIgnores(abs)) return void 0;
1104
1107
  const prefix = existing.length === 0 || existing.endsWith("\n") ? existing : existing + "\n";
@@ -1189,4 +1192,4 @@ export {
1189
1192
  addGitignoreRule,
1190
1193
  gitSaysIgnored
1191
1194
  };
1192
- //# sourceMappingURL=chunk-M5CSVB23.js.map
1195
+ //# sourceMappingURL=chunk-IB6SKACE.js.map
@@ -1,13 +1,13 @@
1
1
  import {
2
2
  workspaceEnvPathIn
3
- } from "./chunk-HCG7NDIL.js";
3
+ } from "./chunk-M3RLLT4O.js";
4
4
  import {
5
5
  addGitignoreRule,
6
6
  ensureGitignored,
7
7
  gitSaysIgnored,
8
8
  gitignoreRootFor,
9
9
  insideGitRepo
10
- } from "./chunk-M5CSVB23.js";
10
+ } from "./chunk-IB6SKACE.js";
11
11
  import {
12
12
  UsageError,
13
13
  detail,
@@ -15,7 +15,7 @@ import {
15
15
  noteRunWarning,
16
16
  relForwardSlash,
17
17
  warn
18
- } from "./chunk-D7BUMOKU.js";
18
+ } from "./chunk-C6KBZH7M.js";
19
19
  import {
20
20
  shellQuote
21
21
  } from "./chunk-5ZSO4T2G.js";
@@ -183,4 +183,4 @@ export {
183
183
  secretPathLabel,
184
184
  refuseIfTracked
185
185
  };
186
- //# sourceMappingURL=chunk-UD2Z7K6W.js.map
186
+ //# sourceMappingURL=chunk-JG642U5D.js.map
@@ -1,30 +1,30 @@
1
1
  import {
2
2
  DEFAULT_BRANCH_LABEL
3
- } from "./chunk-NPODGBVJ.js";
3
+ } from "./chunk-75MKIQON.js";
4
4
  import {
5
5
  assertOneName
6
- } from "./chunk-WBH4KJWM.js";
6
+ } from "./chunk-XQO4A4Q4.js";
7
7
  import {
8
8
  LookupFailedError,
9
9
  isUnansweredLookup,
10
10
  lookupFailed,
11
11
  unansweredCause
12
- } from "./chunk-3II44CUJ.js";
12
+ } from "./chunk-7UWUEUVJ.js";
13
13
  import {
14
14
  findRelease
15
- } from "./chunk-GWTFI3GA.js";
15
+ } from "./chunk-7JKNWDYN.js";
16
16
  import {
17
17
  contextFlags
18
- } from "./chunk-N5I37JFB.js";
18
+ } from "./chunk-6S263KTM.js";
19
19
  import {
20
20
  fetchOrExplain,
21
21
  parseJsonAnswer,
22
22
  safeHttpFailure
23
- } from "./chunk-YR2I5HGE.js";
23
+ } from "./chunk-TR7EOUQE.js";
24
24
  import {
25
25
  UsageError,
26
26
  safeText
27
- } from "./chunk-D7BUMOKU.js";
27
+ } from "./chunk-C6KBZH7M.js";
28
28
 
29
29
  // src/deploy/audit-log.ts
30
30
  var TIMEOUT_MS = 3e4;
@@ -215,4 +215,4 @@ export {
215
215
  readUnanswered,
216
216
  lookupRelease
217
217
  };
218
- //# sourceMappingURL=chunk-ZJSTUD6D.js.map
218
+ //# sourceMappingURL=chunk-JJGK7XGC.js.map
@@ -1,19 +1,16 @@
1
1
  import {
2
2
  pinWrittenText
3
- } from "./chunk-GW5RHGOB.js";
3
+ } from "./chunk-ZT2B22VQ.js";
4
4
  import {
5
5
  acquireEngine,
6
6
  restartMismatchedEngine
7
- } from "./chunk-SSITMX7I.js";
8
- import {
9
- confirm
10
- } from "./chunk-JXVJGF3Y.js";
7
+ } from "./chunk-H3ZBAR2L.js";
11
8
  import {
12
9
  resolveProjectEntry
13
- } from "./chunk-Z4ZGTCCD.js";
14
- import "./chunk-GOLFAEUV.js";
15
- import "./chunk-3DRXWLJ5.js";
16
- import "./chunk-X4DVXBFY.js";
10
+ } from "./chunk-XYTVP4WI.js";
11
+ import {
12
+ confirm
13
+ } from "./chunk-HQPL34O6.js";
17
14
  import {
18
15
  cachedEngineEntry,
19
16
  engineVersion,
@@ -23,7 +20,7 @@ import {
23
20
  stopAllEngines,
24
21
  stopEngineNamed,
25
22
  stopOrphanedEngineProcesses
26
- } from "./chunk-2FLIJGBZ.js";
23
+ } from "./chunk-3UZQ5TMG.js";
27
24
  import {
28
25
  diskBytes,
29
26
  listLegacyCacheDirs,
@@ -32,74 +29,33 @@ import {
32
29
  readEngineEntry,
33
30
  readPin,
34
31
  writePin
35
- } from "./chunk-YYLUBYXM.js";
36
- import "./chunk-64WWE3EF.js";
32
+ } from "./chunk-4JKXGPXB.js";
37
33
  import {
38
34
  ENGINE_RELEASES_URL_ENV,
39
35
  normalizeEngineVersion,
40
36
  resolveEngineRelease,
41
37
  usesCustomReleaseManager
42
- } from "./chunk-OIKLDDYC.js";
43
- import "./chunk-2TFRR6JV.js";
44
- import "./chunk-WZHLMU6T.js";
38
+ } from "./chunk-HFOGQIII.js";
45
39
  import {
46
40
  NO_CREDENTIAL,
47
41
  SourceError,
48
42
  resolveSource
49
- } from "./chunk-3II44CUJ.js";
50
- import "./chunk-GWTFI3GA.js";
51
- import "./chunk-BL3AZ3AP.js";
52
- import "./chunk-ITC2R2OT.js";
53
- import "./chunk-IXFJORNH.js";
54
- import "./chunk-VW4CWVYX.js";
55
- import "./chunk-2MNLRIOX.js";
43
+ } from "./chunk-7UWUEUVJ.js";
56
44
  import {
57
45
  clearEngineRecordsNamed,
58
46
  clearEngineRecordsStillMatching,
59
47
  listEngineRecords
60
- } from "./chunk-Q22BMRPF.js";
48
+ } from "./chunk-5Y5HWQ2P.js";
61
49
  import {
62
50
  SUPPORTED_PLATFORMS,
63
51
  engineRunHome,
64
52
  legacyRuntimeDirs,
65
53
  localEngineBinDir,
66
54
  resolveEnginePlatform
67
- } from "./chunk-PL7AIAWS.js";
68
- import "./chunk-U6MTGB46.js";
69
- import "./chunk-ZYJP6BOO.js";
70
- import "./chunk-QO6BVGS5.js";
71
- import "./chunk-5TVFLG3C.js";
72
- import "./chunk-SPKA2LV6.js";
73
- import "./chunk-7GAIJW62.js";
55
+ } from "./chunk-F3IA3YWI.js";
74
56
  import {
75
57
  yesRerun
76
- } from "./chunk-6X3MY2JP.js";
77
- import "./chunk-622HUCZT.js";
78
- import "./chunk-N5I37JFB.js";
79
- import "./chunk-TTEIDD5Q.js";
80
- import "./chunk-LL7SGTRC.js";
81
- import "./chunk-YYC2DZMG.js";
82
- import "./chunk-PMMHSX4H.js";
83
- import "./chunk-ZFDZKNGG.js";
84
- import "./chunk-FWD7AL6N.js";
85
- import "./chunk-QJM5XZ4K.js";
86
- import "./chunk-DXUICABI.js";
87
- import "./chunk-4KHEMC32.js";
88
- import "./chunk-ROY4YAEQ.js";
89
- import "./chunk-MFWF2NZJ.js";
90
- import "./chunk-DNBP4GJN.js";
91
- import "./chunk-763M6LX3.js";
92
- import "./chunk-WAVNUTMT.js";
93
- import "./chunk-M5CSVB23.js";
94
- import "./chunk-AWQ7BQTQ.js";
95
- import "./chunk-EUUUMY7J.js";
96
- import "./chunk-YR2I5HGE.js";
97
- import "./chunk-26MOFAJT.js";
98
- import "./chunk-LLNZGEFK.js";
99
- import "./chunk-MF4W6FHU.js";
100
- import "./chunk-X2NL4KUO.js";
101
- import "./chunk-M6ZFSTIZ.js";
102
- import "./chunk-3EDSPMXN.js";
58
+ } from "./chunk-C2GHFADU.js";
103
59
  import {
104
60
  UsageError,
105
61
  detail,
@@ -112,25 +68,11 @@ import {
112
68
  unknownSubcommand,
113
69
  warn,
114
70
  writeJson
115
- } from "./chunk-D7BUMOKU.js";
116
- import "./chunk-7FIMUFBP.js";
117
- import "./chunk-H2V3N23D.js";
118
- import "./chunk-3JDU4VRL.js";
119
- import "./chunk-YHB34BN6.js";
71
+ } from "./chunk-C6KBZH7M.js";
120
72
  import {
121
73
  suggest,
122
74
  suggestAll
123
75
  } from "./chunk-UTI5G6OJ.js";
124
- import "./chunk-5KJBWIDZ.js";
125
- import "./chunk-5ZSO4T2G.js";
126
- import "./chunk-VQPDATQT.js";
127
- import "./chunk-TFFGOFVZ.js";
128
- import "./chunk-LL6ED5IB.js";
129
- import "./chunk-4BW2SG2N.js";
130
- import "./chunk-4MIV244X.js";
131
- import "./chunk-OHX6MIUZ.js";
132
- import "./chunk-36JUQZVQ.js";
133
- import "./chunk-PZ5AY32C.js";
134
76
 
135
77
  // src/emit/local-engine-command.ts
136
78
  import { readdirSync, rmSync } from "fs";
@@ -141,6 +83,8 @@ async function runLocalEngineCommand(args, opts = {}) {
141
83
  return runList(args, opts);
142
84
  case "token":
143
85
  return runToken(args, opts);
86
+ case "mcp":
87
+ return (await import("./local-engine-mcp-command-RMVUH4FL.js")).runMcp(args, opts);
144
88
  case "stop":
145
89
  return runStop(args, opts);
146
90
  case "update":
@@ -428,7 +372,7 @@ Run this from the project's root.`
428
372
  }
429
373
  async function repointDevEnvAfterRestart(dir, restarted) {
430
374
  if (restarted.previousUrl === void 0) return void 0;
431
- const { repointDevEnv } = await import("./dev-env-sync-TMJTNU3U.js");
375
+ const { repointDevEnv } = await import("./dev-env-sync-RBJ2U3HG.js");
432
376
  try {
433
377
  return repointDevEnv(dir, restarted.previousUrl, restarted.url);
434
378
  } catch (err) {
@@ -753,10 +697,11 @@ function formatBytes(bytes) {
753
697
  }
754
698
  return unit === 0 ? `${n} B` : `${n.toFixed(1)} ${units[unit]}`;
755
699
  }
700
+
756
701
  export {
757
- reportOrphanSweep,
758
- resolveLiveEngine,
759
702
  runLocalEngineCommand,
760
- sweepOptions
703
+ sweepOptions,
704
+ reportOrphanSweep,
705
+ resolveLiveEngine
761
706
  };
762
- //# sourceMappingURL=local-engine-command-RYLGMQ2O.js.map
707
+ //# sourceMappingURL=chunk-JPRZ4ZGU.js.map
@@ -1,22 +1,19 @@
1
1
  import {
2
2
  projectSdkVersion
3
- } from "./chunk-LD6ARK3A.js";
3
+ } from "./chunk-OBJ7FQDX.js";
4
4
  import {
5
5
  compareSemver,
6
6
  parseSemver
7
7
  } from "./chunk-2TFRR6JV.js";
8
8
  import {
9
9
  readVersion
10
- } from "./chunk-XFBGXB7X.js";
11
- import {
12
- registerSecret
13
- } from "./chunk-AWQ7BQTQ.js";
10
+ } from "./chunk-ZJCHS7FM.js";
14
11
  import {
15
12
  readPathEnvVar
16
13
  } from "./chunk-EUUUMY7J.js";
17
14
  import {
18
15
  serverMessage
19
- } from "./chunk-YR2I5HGE.js";
16
+ } from "./chunk-TR7EOUQE.js";
20
17
  import {
21
18
  atomicWrite
22
19
  } from "./chunk-LLNZGEFK.js";
@@ -24,12 +21,15 @@ import {
24
21
  envFlagSet,
25
22
  readEnvVar
26
23
  } from "./chunk-X2NL4KUO.js";
24
+ import {
25
+ registerSecret
26
+ } from "./chunk-4GPIOIAC.js";
27
27
  import {
28
28
  blank,
29
29
  noteRunWarning,
30
30
  style,
31
31
  warn
32
- } from "./chunk-D7BUMOKU.js";
32
+ } from "./chunk-C6KBZH7M.js";
33
33
 
34
34
  // src/emit/update-check.ts
35
35
  import { existsSync, readFileSync, mkdirSync } from "fs";
@@ -351,4 +351,4 @@ export {
351
351
  runExitedClean,
352
352
  maybeNotifyUpdate
353
353
  };
354
- //# sourceMappingURL=chunk-QZEAANWP.js.map
354
+ //# sourceMappingURL=chunk-K75BFHQQ.js.map
@@ -0,0 +1,116 @@
1
+ // src/deploy/local-engine-handshake.ts
2
+ var LOOPBACK_HOSTS = ["127.0.0.1", "::1", "localhost"];
3
+ var ALLOWED_PROTOCOLS = ["http:", "https:"];
4
+ function isLoopbackUrl(url) {
5
+ let parsed;
6
+ try {
7
+ parsed = new URL(url);
8
+ } catch {
9
+ return false;
10
+ }
11
+ if (!ALLOWED_PROTOCOLS.includes(parsed.protocol)) return false;
12
+ const host = parsed.hostname.replace(/^\[|\]$/g, "");
13
+ if (!LOOPBACK_HOSTS.includes(host)) return false;
14
+ return /^[0-9]+$/.test(parsed.port);
15
+ }
16
+ function assertLoopbackUrl(url, what) {
17
+ if (isLoopbackUrl(url)) return;
18
+ throw new Error(
19
+ `${what} reports a url this SDK will not send a token to: ${url}
20
+ A Xano Engine has to serve loopback over http on a port of its own \u2014 ${LOOPBACK_HOSTS.join(", ")} \u2014 and anything else is reachable from off this machine. Stop that engine and start a fresh one without binding it to all interfaces.`
21
+ );
22
+ }
23
+ function requireString(raw, key, source) {
24
+ const value = raw[key];
25
+ if (typeof value !== "string" || value === "") {
26
+ throw new Error(
27
+ `${source} is missing \`${key}\`, or gave it as something other than text.
28
+ That is not an engine this SDK knows how to drive \u2014 the engine on this machine is older or newer than the one it was built against. Move to a current one with \`xanosdk local update\`.`
29
+ );
30
+ }
31
+ return value;
32
+ }
33
+ function optionalString(raw, key, source) {
34
+ return raw[key] === void 0 ? void 0 : requireString(raw, key, source);
35
+ }
36
+ function requireNumber(raw, key, source) {
37
+ const value = raw[key];
38
+ if (typeof value !== "number" || !Number.isFinite(value)) {
39
+ throw new Error(
40
+ `${source} is missing \`${key}\`, or gave it as something other than a number.
41
+ That is not an engine this SDK knows how to drive \u2014 the engine on this machine is older or newer than the one it was built against. Move to a current one with \`xanosdk local update\`.`
42
+ );
43
+ }
44
+ return value;
45
+ }
46
+ function readEngine(value, source) {
47
+ if (value === null || typeof value !== "object" || Array.isArray(value)) {
48
+ throw new Error(
49
+ `${source} did not print an engine description.
50
+ Re-run, and if it happens again fetch a fresh copy with \`xanosdk local cache clear\`, then \`xanosdk deploy --local\`.`
51
+ );
52
+ }
53
+ const raw = value;
54
+ const mcpUrl = optionalString(raw, "mcp_url", source);
55
+ return {
56
+ name: requireString(raw, "name", source),
57
+ url: requireString(raw, "url", source),
58
+ workspaceId: requireNumber(raw, "workspace_id", source),
59
+ token: requireString(raw, "access_token", source),
60
+ pid: requireNumber(raw, "pid", source),
61
+ signInUrl: requireString(raw, "sign_in_url", source),
62
+ loginLinkEndpoint: requireString(raw, "login_link_endpoint", source),
63
+ logPath: requireString(raw, "log", source),
64
+ ...mcpUrl === void 0 ? {} : { mcpUrl }
65
+ };
66
+ }
67
+ var HANDSHAKE_SOURCE = "The engine's start handshake";
68
+ var LISTING_SOURCE = "The engine's list of running engines";
69
+ function parseEngineHandshake(stdout) {
70
+ let value;
71
+ try {
72
+ value = JSON.parse(stdout.trim());
73
+ } catch {
74
+ throw new Error(
75
+ `${HANDSHAKE_SOURCE} did not print an engine description.
76
+ Re-run, and if it happens again fetch a fresh copy with \`xanosdk local cache clear\`, then \`xanosdk deploy --local\`.`
77
+ );
78
+ }
79
+ const engine = readEngine(value, HANDSHAKE_SOURCE);
80
+ assertLoopbackUrl(engine.url, "The engine that just started");
81
+ return engine;
82
+ }
83
+ function parseEngineListing(stdout) {
84
+ const text = stdout.trim();
85
+ if (text === "") return [];
86
+ let value;
87
+ try {
88
+ value = JSON.parse(text);
89
+ } catch {
90
+ throw new Error(
91
+ `${LISTING_SOURCE} was not readable.
92
+ Re-run, and if it happens again fetch a fresh copy with \`xanosdk local cache clear\`, then \`xanosdk deploy --local\`.`
93
+ );
94
+ }
95
+ if (!Array.isArray(value)) {
96
+ throw new Error(
97
+ `${LISTING_SOURCE} was not a list.
98
+ Re-run, and if it happens again fetch a fresh copy with \`xanosdk local cache clear\`, then \`xanosdk deploy --local\`.`
99
+ );
100
+ }
101
+ return value.filter((entry) => !isForeignEngine(entry)).map((entry) => readEngine(entry, LISTING_SOURCE));
102
+ }
103
+ function isForeignEngine(entry) {
104
+ if (entry === null || typeof entry !== "object" || Array.isArray(entry)) return false;
105
+ const raw = entry;
106
+ return raw.workspace_id === void 0 && raw.access_token === void 0;
107
+ }
108
+
109
+ export {
110
+ LOOPBACK_HOSTS,
111
+ isLoopbackUrl,
112
+ assertLoopbackUrl,
113
+ parseEngineHandshake,
114
+ parseEngineListing
115
+ };
116
+ //# sourceMappingURL=chunk-LCOCRJ4K.js.map
@@ -38,6 +38,9 @@ function assertNoForgedMarkers(body, spec) {
38
38
  function gitattributesSpec(pkg) {
39
39
  return { dialect: HASH_DIALECT, pkg, file: ".gitattributes" };
40
40
  }
41
+ function gitignoreSpec() {
42
+ return { dialect: HASH_DIALECT, pkg: "@xano/sdk", file: ".gitignore" };
43
+ }
41
44
  function linesOutsideBlocks(text, dialect) {
42
45
  const begin = dialect.begin("");
43
46
  const end = dialect.end("");
@@ -163,6 +166,7 @@ export {
163
166
  htmlDialect,
164
167
  composeBlock,
165
168
  gitattributesSpec,
169
+ gitignoreSpec,
166
170
  linesOutsideBlocks,
167
171
  blockPackages,
168
172
  findBlock,
@@ -170,4 +174,4 @@ export {
170
174
  upsertBlock,
171
175
  removeBlock
172
176
  };
173
- //# sourceMappingURL=chunk-3EDSPMXN.js.map
177
+ //# sourceMappingURL=chunk-LJM5CIY4.js.map
@@ -1021,6 +1021,7 @@ function normalize(value) {
1021
1021
  continue;
1022
1022
  }
1023
1023
  if (k === "arg" && Array.isArray(v)) {
1024
+ if (isEmptyArray(v)) continue;
1024
1025
  out[k] = v.map((e) => typeof e === "number" ? String(e) : normalize(e));
1025
1026
  continue;
1026
1027
  }
@@ -1062,4 +1063,4 @@ export {
1062
1063
  filledContext,
1063
1064
  normalize
1064
1065
  };
1065
- //# sourceMappingURL=chunk-D3KEPRRN.js.map
1066
+ //# sourceMappingURL=chunk-LTPF25L2.js.map
@@ -1,18 +1,18 @@
1
1
  import {
2
2
  backendDirFor,
3
3
  backendDirIn
4
- } from "./chunk-TTEIDD5Q.js";
4
+ } from "./chunk-W2BVP27L.js";
5
5
  import {
6
6
  XANO_DIR
7
- } from "./chunk-LL7SGTRC.js";
7
+ } from "./chunk-HKLBDSML.js";
8
8
  import {
9
9
  projectRootFrom
10
- } from "./chunk-ROY4YAEQ.js";
10
+ } from "./chunk-HU7F56VF.js";
11
11
  import {
12
12
  LocalFileNotFoundError,
13
13
  UsageError,
14
14
  displayPath
15
- } from "./chunk-D7BUMOKU.js";
15
+ } from "./chunk-C6KBZH7M.js";
16
16
  import {
17
17
  isRepresentableName
18
18
  } from "./chunk-GSGDWJB5.js";
@@ -242,4 +242,4 @@ export {
242
242
  namesInEnvExample,
243
243
  renderWorkspaceEnvFile
244
244
  };
245
- //# sourceMappingURL=chunk-HCG7NDIL.js.map
245
+ //# sourceMappingURL=chunk-M3RLLT4O.js.map
@@ -1,15 +1,15 @@
1
1
  import {
2
2
  listTenants
3
- } from "./chunk-VW4CWVYX.js";
3
+ } from "./chunk-YE7MHW45.js";
4
4
  import {
5
5
  listEphemeral
6
- } from "./chunk-SPKA2LV6.js";
6
+ } from "./chunk-PFW7WFAT.js";
7
7
  import {
8
8
  shellWord
9
9
  } from "./chunk-FWD7AL6N.js";
10
10
  import {
11
11
  safeText
12
- } from "./chunk-D7BUMOKU.js";
12
+ } from "./chunk-C6KBZH7M.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-IXFJORNH.js.map
120
+ //# sourceMappingURL=chunk-NFSUGVDY.js.map