@xano/sdk 1.0.5 → 1.0.7
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.
- package/CHANGELOG.md +35 -5
- package/README.md +56 -20
- package/dist/.build-fingerprint +1 -1
- package/dist/{agent-file-refresh-KVLR7M5Y.js → agent-file-refresh-DGGSRPJ4.js} +15 -14
- package/dist/agent-skill-command-37DFYS7Q.js +414 -0
- package/dist/{answer-shape-XGR2DGWY.js → answer-shape-RBFDCNZ7.js} +5 -5
- package/dist/{backend-dir-IE4RMUFH.js → backend-dir-KDD43X7K.js} +16 -15
- package/dist/{backend-slot-6HBWG5FN.js → backend-slot-TBOVZXDE.js} +4 -4
- package/dist/bin.js +63 -61
- package/dist/{branch-T2APKPVG.js → branch-7PIKNUD7.js} +12 -11
- package/dist/{branch-commands-HXXTCSOO.js → branch-commands-EGY7ZEZE.js} +32 -32
- package/dist/bundle.js +9 -39
- package/dist/{capture-HBXFXZEW.js → capture-GW5KNKMB.js} +3 -3
- package/dist/{chunk-3BJYQGAZ.js → chunk-26LHXLD3.js} +2 -2
- package/dist/{chunk-N6BWB35H.js → chunk-2ACWDSAQ.js} +3 -3
- package/dist/{chunk-XIABDKFQ.js → chunk-2SD4LA22.js} +2 -2
- package/dist/{chunk-K6PRKPFX.js → chunk-2XWVZRL6.js} +7 -7
- package/dist/{chunk-ES5A66IH.js → chunk-2YER2J47.js} +13 -13
- package/dist/{chunk-G57RYMKB.js → chunk-3FRGNBOC.js} +2 -2
- package/dist/{chunk-BMCZQZMI.js → chunk-46PATL23.js} +13 -9
- package/dist/{chunk-MYLPOVX6.js → chunk-47XT6WQL.js} +8 -8
- package/dist/{chunk-AWQ7BQTQ.js → chunk-4GPIOIAC.js} +6 -1
- package/dist/{chunk-7GX445AE.js → chunk-4XHAT7C5.js} +2 -2
- package/dist/{chunk-QOLOQ35F.js → chunk-567KK6XF.js} +8 -8
- package/dist/{chunk-57HMNJGB.js → chunk-5GIOCDUM.js} +893 -922
- package/dist/{chunk-OKNE3TWU.js → chunk-5KJBWIDZ.js} +83 -5
- package/dist/{chunk-SRX6B544.js → chunk-5QMJOE2K.js} +5 -5
- package/dist/{chunk-AGD7F7YI.js → chunk-5SCPRXFB.js} +4 -4
- package/dist/{chunk-SNGFEESM.js → chunk-5ZG7V2VW.js} +3 -3
- package/dist/{chunk-XJU6UAFV.js → chunk-7FIMUFBP.js} +2 -2
- package/dist/{chunk-AESE434J.js → chunk-7M6JP3FS.js} +2 -2
- package/dist/{chunk-K6CB5TKM.js → chunk-7REDHC4N.js} +2 -2
- package/dist/chunk-7VR4IO5B.js +44 -0
- package/dist/{chunk-57B56I4B.js → chunk-7XXWKTCE.js} +65 -41
- package/dist/{chunk-PL7AIAWS.js → chunk-A4R5CAY4.js} +4 -111
- package/dist/{chunk-QZTJ2556.js → chunk-AKERAUNH.js} +4 -4
- package/dist/{chunk-JZWUAEMO.js → chunk-ARWMVNDJ.js} +6 -3
- package/dist/{chunk-WYS6XVZ3.js → chunk-AVS4WPPY.js} +2 -2
- package/dist/{chunk-KUU7T4ZE.js → chunk-B2URJBC4.js} +18 -18
- package/dist/chunk-B3P25SDP.js +78 -0
- package/dist/chunk-BRANWM4U.js +853 -0
- package/dist/{chunk-BBPAXOU6.js → chunk-BSVQEKHO.js} +6 -6
- package/dist/{chunk-3WHWOKU4.js → chunk-BZ6WTG3E.js} +4 -4
- package/dist/{chunk-XNZURZ7T.js → chunk-CH23ONYG.js} +77 -6
- package/dist/{chunk-SQPIECXD.js → chunk-CJDPSCMX.js} +45 -5
- package/dist/{chunk-M7GJ6YUF.js → chunk-CNZASQPL.js} +16 -2
- package/dist/{chunk-44CWK6YC.js → chunk-CPN6WSBH.js} +4 -4
- package/dist/{chunk-L3BDO2BI.js → chunk-CT3J5JRZ.js} +7 -7
- package/dist/{chunk-3HOGFGKG.js → chunk-D3KEPRRN.js} +2 -2
- package/dist/{chunk-OGUMHW2X.js → chunk-D5OZRJ3T.js} +7 -7
- package/dist/{chunk-S5KQIFKJ.js → chunk-DG3APBUJ.js} +208 -112
- package/dist/chunk-DIWF7L33.js +995 -0
- package/dist/{chunk-WRBKLYSJ.js → chunk-DNBP4GJN.js} +4 -3
- package/dist/{chunk-LZDA6SVD.js → chunk-DXZTL7NA.js} +141 -91
- package/dist/{chunk-XMDDBEEM.js → chunk-E763QI3G.js} +2 -2
- package/dist/{chunk-3VX7VAQT.js → chunk-EF4MHLEW.js} +26 -9
- package/dist/{chunk-AGSCOISO.js → chunk-ELPQTDW6.js} +108 -100
- package/dist/{chunk-Q22BMRPF.js → chunk-EPFDY5JU.js} +2 -2
- package/dist/{chunk-7DBM6XHR.js → chunk-EU32BC5B.js} +8 -8
- package/dist/{chunk-Y76ERHLK.js → chunk-FDTET7FZ.js} +6 -6
- package/dist/{chunk-Z3SNX45M.js → chunk-FENA7K7C.js} +3 -3
- package/dist/{chunk-WOGJB2F6.js → chunk-FNLTFOUD.js} +4 -9
- package/dist/{chunk-FV55SRQU.js → chunk-FQ53GTII.js} +9 -9
- package/dist/{chunk-DEVGLLNZ.js → chunk-GHMLRFRX.js} +8 -8
- package/dist/{chunk-GMVW6ZZK.js → chunk-H2K4GFUS.js} +4 -4
- package/dist/{chunk-NUU76247.js → chunk-HTQWAQRW.js} +3 -3
- package/dist/{chunk-ROY4YAEQ.js → chunk-HU7F56VF.js} +22 -2
- package/dist/{chunk-RXCT3OCU.js → chunk-HZ6ADG3O.js} +47 -8
- package/dist/{chunk-Z2BRSQ6M.js → chunk-I6XRUU6U.js} +91 -64
- package/dist/chunk-IPNN2KRW.js +257 -0
- package/dist/{chunk-SF2B7MZK.js → chunk-IYXL5NYU.js} +259 -31
- package/dist/chunk-JI3BLXWQ.js +107 -0
- package/dist/{chunk-4DJTQ6W4.js → chunk-JIKGT7DO.js} +2 -1
- package/dist/{chunk-OVV2HXJ6.js → chunk-JOOKM7AH.js} +2 -2
- package/dist/{chunk-65SW2BA5.js → chunk-JOWY6HFL.js} +3 -3
- package/dist/{chunk-I5VEROXW.js → chunk-JX6N73H3.js} +2 -2
- package/dist/{chunk-5D6DGF3W.js → chunk-L472YIGG.js} +8 -8
- package/dist/{chunk-HLQH3AXB.js → chunk-L6HZ67P6.js} +2 -2
- package/dist/{chunk-TM5LRSBB.js → chunk-LBJA7IEM.js} +370 -45
- package/dist/chunk-LCOCRJ4K.js +116 -0
- package/dist/{chunk-DGWHAVRG.js → chunk-LJM5CIY4.js} +16 -1
- package/dist/{chunk-5RLAF6RL.js → chunk-M2C54ZBC.js} +4 -4
- package/dist/{chunk-U6DR6464.js → chunk-M3NEK3LT.js} +4 -4
- package/dist/{chunk-5XVBT6CQ.js → chunk-MBL7CXJ7.js} +2 -2
- package/dist/{chunk-5YBNXNKU.js → chunk-MFWF2NZJ.js} +12 -5
- package/dist/{chunk-TEBS7FE6.js → chunk-MYZRMSPM.js} +2 -2
- package/dist/{chunk-YSLMMR2U.js → chunk-N3YFCFCO.js} +14 -14
- package/dist/{chunk-OJPZEUPH.js → chunk-NDJAKSE7.js} +11 -8
- package/dist/{chunk-PIPIA7K7.js → chunk-NV37YGOV.js} +7 -7
- package/dist/{chunk-ZHGWR45B.js → chunk-O56DQKPL.js} +9 -9
- package/dist/{chunk-4QBGE3EO.js → chunk-ORGNLQN6.js} +6 -6
- package/dist/{chunk-NNB7VUCH.js → chunk-PEIBGH2V.js} +55 -31
- package/dist/{chunk-UJ6ZZJDD.js → chunk-PEX4QZVI.js} +2 -2
- package/dist/{chunk-LLS2WO2K.js → chunk-PV25BDCH.js} +5 -5
- package/dist/{chunk-F3557PVM.js → chunk-PY722CHR.js} +2 -2
- package/dist/{chunk-4GDEEY2U.js → chunk-QGIZLFAS.js} +4 -4
- package/dist/{chunk-YI76TURL.js → chunk-QRQ54LUI.js} +16 -14
- package/dist/{chunk-JQOX6HW4.js → chunk-RBU2YX22.js} +3 -3
- package/dist/{chunk-4NEBBKOP.js → chunk-RRMH7WMY.js} +7 -7
- package/dist/{chunk-HOOOOJJP.js → chunk-S46ODQRA.js} +2 -2
- package/dist/{chunk-37FBPMNE.js → chunk-S56YBYMN.js} +5 -2
- package/dist/{chunk-4QFBEKXI.js → chunk-SDGV76HF.js} +2 -2
- package/dist/{chunk-CV54PASI.js → chunk-SGK3PTTM.js} +312 -132
- package/dist/{chunk-S5TEJIGP.js → chunk-SKEG3V2V.js} +2 -2
- package/dist/{chunk-VZ22VUAS.js → chunk-SLGJIWCY.js} +3 -3
- package/dist/{chunk-JSEVKRVJ.js → chunk-T4LJ5UR2.js} +29 -7
- package/dist/{chunk-JXKO6JT7.js → chunk-TWVUYS63.js} +24 -24
- package/dist/{chunk-UIEFE6FU.js → chunk-U5M7T6CI.js} +7 -7
- package/dist/{chunk-Z4VN347O.js → chunk-UYFUIHH3.js} +2 -2
- package/dist/{chunk-Y6NO3DLQ.js → chunk-V7MBRUK6.js} +3 -3
- package/dist/chunk-VAGSKUWC.js +67 -0
- package/dist/{chunk-A4NNCI4O.js → chunk-VIJ5D3RC.js} +3 -3
- package/dist/{chunk-3IYVHVM6.js → chunk-VJFMUJWZ.js} +4 -4
- package/dist/{chunk-V4IBHDIY.js → chunk-VNDR2T35.js} +7 -7
- package/dist/chunk-WAVNUTMT.js +9 -0
- package/dist/{chunk-KQLACS4Q.js → chunk-WNCW2RNB.js} +4 -4
- package/dist/chunk-WUEPP5HD.js +111 -0
- package/dist/{chunk-IV446ZLJ.js → chunk-Y453TW6J.js} +2 -2
- package/dist/{local-engine-command-73NHWD6V.js → chunk-YCUDOF6Q.js} +22 -76
- package/dist/{chunk-CJ76PSJT.js → chunk-YH2JVJAO.js} +12 -12
- package/dist/{chunk-GPI3OWRE.js → chunk-YHB34BN6.js} +2 -1
- package/dist/{chunk-AMBEITWL.js → chunk-ZGLNHA7T.js} +7 -7
- package/dist/{chunk-NGAODDLX.js → chunk-ZJOAWRED.js} +8 -8
- package/dist/{chunk-TUEFTRC2.js → chunk-ZXRDD3Q2.js} +50 -27
- package/dist/cli.d.ts +40 -11
- package/dist/cli.js +60 -56
- package/dist/{codegen-command-L2OO6OTE.js → codegen-command-T7TC7PQO.js} +79 -72
- package/dist/codegen.d.ts +2 -2
- package/dist/codegen.js +2 -2
- package/dist/{commands-2E4JB3DB.js → commands-JDENTDJS.js} +3 -3
- package/dist/{completion-LPJIH5VQ.js → completion-YFD5OVJW.js} +9 -5
- package/dist/{config-QDCRKEWD.js → config-YJFUTRJW.js} +8 -8
- package/dist/{deploy-command-HJZNYCUY.js → deploy-command-OEVEE6UG.js} +65 -63
- package/dist/deploy-source-HYVZEYXV.js +83 -0
- package/dist/{dev-env-sync-GZ4QQJGV.js → dev-env-sync-EFDCJ6KU.js} +63 -61
- package/dist/{diagnostics-LSMGB4TY.js → diagnostics-OMN5Y2AH.js} +2 -2
- package/dist/{display-name-hint-AHCNH6TF.js → display-name-hint-SW3GB3V7.js} +14 -13
- package/dist/{emit-DqG6qddr.d.ts → emit-Dov_92kn.d.ts} +66 -20
- package/dist/env-example-refresh-WNSOH534.js +134 -0
- package/dist/{env-pull-command-Z4RLVEGJ.js → env-pull-command-UYEXMQ3P.js} +53 -52
- package/dist/{env-target-ZHQUS5BO.js → env-target-JBSLBKNX.js} +15 -14
- package/dist/{env-var-command-FKQ4VVQ6.js → env-var-command-BJNRAXNV.js} +51 -49
- package/dist/{ephemeral-L4KUOGEU.js → ephemeral-CEOGMIEA.js} +11 -10
- package/dist/{ephemeral-command-GRPFI3TD.js → ephemeral-command-IPSGBCS5.js} +70 -69
- package/dist/{ephemeral-state-VLYU2BXR.js → ephemeral-state-MTBASPRS.js} +13 -12
- package/dist/{generate-command-XNODJFDQ.js → generate-command-XQXODBS6.js} +96 -86
- package/dist/{gitignore-VWRSZX5F.js → gitignore-RUVCIZO4.js} +21 -20
- package/dist/{guards-OPSGB6LG.js → guards-KYEOCVHN.js} +6 -6
- package/dist/{impersonate-command-AEKIZHHK.js → impersonate-command-MA27O7S5.js} +46 -44
- package/dist/{import-PHSSFFLA.js → import-XKRFHABE.js} +5 -5
- package/dist/index.d.ts +14 -20
- package/dist/index.js +13 -13
- package/dist/init-command-6RDTCMAB.js +143 -0
- package/dist/{init-modules-SGSX7XEY.js → init-modules-DHTBOCQT.js} +10 -9
- package/dist/{init-web-6HX3YLQP.js → init-web-ELBXSXDL.js} +3 -3
- package/dist/internal.d.ts +5 -5
- package/dist/internal.js +47 -20
- package/dist/{io-TAF4WXYQ.js → io-PGTCBSIQ.js} +6 -4
- package/dist/{keep-data-merge-GUGF7MVZ.js → keep-data-merge-TDJOIAVT.js} +33 -34
- package/dist/{lambda-config-reconcile-65U6I4KU.js → lambda-config-reconcile-47X5C2E4.js} +6 -5
- package/dist/{landed-QA6PRTV2.js → landed-F7PCHGCK.js} +3 -3
- package/dist/{landing-record-FCAWLCZU.js → landing-record-TPPYFQAS.js} +26 -25
- package/dist/{live-diff-IM4W3ELT.js → live-diff-5E2BQWQ7.js} +9 -8
- package/dist/local-engine-choice-S6VHPJRU.js +81 -0
- package/dist/local-engine-command-4EZCGZ6M.js +85 -0
- package/dist/{local-engine-config-W3KB7RWM.js → local-engine-config-2EBL3QKA.js} +3 -2
- package/dist/{local-engine-deploy-Y4OAWL7K.js → local-engine-deploy-FOPNWU7X.js} +18 -16
- package/dist/local-engine-lookup-GM3E3NPP.js +43 -0
- package/dist/local-engine-mcp-bridge-QKZHUGW3.js +423 -0
- package/dist/local-engine-mcp-command-BFQVLXZC.js +181 -0
- package/dist/{local-engine-process-6YPJHKYM.js → local-engine-process-XUQPQENQ.js} +12 -9
- package/dist/{local-engine-state-OCW5YDD7.js → local-engine-state-JQPKGB65.js} +4 -3
- package/dist/{local-engine-update-check-X7TZGRFL.js → local-engine-update-check-S7UF6ZF5.js} +7 -6
- package/dist/{lock-WXXC3QHL.js → lock-HDCHD2ON.js} +4 -2
- package/dist/{lock-commands-PKDBNRSD.js → lock-commands-HJ6Y5QVS.js} +66 -64
- package/dist/{login-command-V4U4FA5G.js → login-command-JO55NZAS.js} +34 -33
- package/dist/{logout-command-TV3P545Z.js → logout-command-MPRIRSJA.js} +18 -17
- package/dist/{loop-VKHGQ6MP.js → loop-SUB6C2LK.js} +8 -9
- package/dist/{marketplace-command-LEFOAEAV.js → marketplace-command-BM6G257N.js} +90 -54
- package/dist/{marketplace-resolve-ME7O7JBJ.js → marketplace-resolve-AWH3RG57.js} +7 -6
- package/dist/{meta-client-TEEECA5W.js → meta-client-AOSWODQQ.js} +16 -15
- package/dist/{module-manifest-7YLGIRCY.js → module-manifest-GXI46PEF.js} +7 -4
- package/dist/node.d.ts +5 -5
- package/dist/node.js +68 -67
- package/dist/operation-outcome-4UKPXTNC.js +53 -0
- package/dist/{output-target-5FWX3NGZ.js → output-target-RAZ4KN5J.js} +22 -21
- package/dist/{package-manager-PRAHUSCN.js → package-manager-K762W7XT.js} +2 -2
- package/dist/{plan-disclosure-QGL5UYQR.js → plan-disclosure-JR52DWXN.js} +21 -21
- package/dist/{plugin-contributions-GNFTWDEB.js → plugin-contributions-E6XHLQWK.js} +6 -6
- package/dist/{plugin-prompt-VEQGMZ4T.js → plugin-prompt-IODX5EU6.js} +5 -5
- package/dist/{plugin-questions-BGRL23GO.js → plugin-questions-AAAJ7POP.js} +4 -4
- package/dist/plugin.d.ts +254 -10
- package/dist/{preflight-command-VKJKXRRI.js → preflight-command-7GKJBWOQ.js} +71 -70
- package/dist/{profile-command-P7A3BH26.js → profile-command-CM6J7E2M.js} +35 -34
- package/dist/{profile-pointer-HG7IXE4I.js → profile-pointer-KTYXL6FU.js} +5 -4
- package/dist/{project-dependency-Z4CKOCJI.js → project-dependency-OQ5575QQ.js} +11 -8
- package/dist/{project-sdk-JWZWGXXR.js → project-sdk-2ESHHZVL.js} +4 -4
- package/dist/promote-command-BDRPG6UU.js +147 -0
- package/dist/{prompt-SURZOUUW.js → prompt-MQPGU4ZI.js} +4 -4
- package/dist/{publish-command-HGAB3H4A.js → publish-command-IEMYZ7LF.js} +69 -67
- package/dist/pull-command-S5E2ABZ4.js +169 -0
- package/dist/{pull-superseded-TOT5S4QU.js → pull-superseded-E34BZVLH.js} +4 -4
- package/dist/{raw-where-EoWl5fqY.d.ts → raw-where-ZMLND6AG.d.ts} +20 -3
- package/dist/release-command-7F5TBKO2.js +151 -0
- package/dist/{release-ns-command-WOQE2BDQ.js → release-ns-command-EK2ZQ4CC.js} +101 -100
- package/dist/{retry-command-JRGMZZAC.js → retry-command-GL5HCMVB.js} +10 -9
- package/dist/{routes-manifest-URFMAWJE.js → routes-manifest-YR4ZIMLM.js} +15 -7
- package/dist/routes-manifest-file-LCIKPDAG.js +41 -0
- package/dist/scaffold.js +4 -4
- package/dist/secrets-IV4N5HYI.js +20 -0
- package/dist/{secrets-file-YWZWVJ52.js → secrets-file-LXREYU3M.js} +21 -20
- package/dist/{secrets-fill-command-HIHK3VH2.js → secrets-fill-command-QHZS3KWM.js} +64 -62
- package/dist/{seed-24DTEY5S.js → seed-FRKMDN2Z.js} +9 -9
- package/dist/{source-resolve-OWD3MIEO.js → source-resolve-BBHYTOXI.js} +26 -24
- package/dist/{static-host-UIR2OLPQ.js → static-host-7LC7OZR4.js} +5 -5
- package/dist/{status-command-JKTHH5QE.js → status-command-TY253MJT.js} +54 -52
- package/dist/{store-zxw2go0f.d.ts → store-Boba9OOh.d.ts} +2 -2
- package/dist/{store-5YAQS6KU.js → store-VJ3OS6VO.js} +8 -7
- package/dist/sync-baseline-DOV5AGIO.js +36 -0
- package/dist/{sync-contributions-RBB6JVOL.js → sync-contributions-63542VE4.js} +20 -12
- package/dist/sync-record-RGHK7EAL.js +43 -0
- package/dist/{table-MQFVYA4K.js → table-OAYGFGEN.js} +8 -8
- package/dist/{tables-command-5Q4BSUNO.js → tables-command-PZIVDAH3.js} +45 -43
- package/dist/{tenant-Q3LPVSSM.js → tenant-Y3II4VY3.js} +12 -11
- package/dist/{tenant-command-BFVU2PEX.js → tenant-command-G6XON7CF.js} +113 -107
- package/dist/{test-command-F4VUU4QR.js → test-command-3FZOX7O3.js} +44 -42
- package/dist/{tests-5ZSDFVIJ.js → tests-KF6N6BZ7.js} +6 -6
- package/dist/{token-TERSTNU4.js → token-DJJUW5HY.js} +14 -13
- package/dist/toolchain-hooks-7PWCFLSU.js +46 -0
- package/dist/{toolchain-modules-FD5ANV2U.js → toolchain-modules-OTNSKK52.js} +8 -5
- package/dist/toolchain-peers-KQ7TQ2AR.js +28 -0
- package/dist/tracked-backend-AJCGTO5Y.js +82 -0
- package/dist/{update-check-O4C2LCZH.js → update-check-4E5L6GAW.js} +61 -59
- package/dist/{upgrade-command-NVFWLMTA.js → upgrade-command-BXMSQN4C.js} +68 -64
- package/dist/{whoami-command-YKNTISIV.js → whoami-command-NLCCIEUM.js} +17 -16
- package/dist/{workspace-GGVGE2S5.js → workspace-PNMJOXE4.js} +5 -5
- package/dist/{workspace-binding-OS4ZOX4S.js → workspace-binding-J5GWDFRI.js} +16 -15
- package/dist/{workspace-command-GTUNVN7K.js → workspace-command-MHIIY352.js} +125 -93
- package/dist/{workspace-env-467C5KHM.js → workspace-env-LLRWCHSA.js} +17 -16
- package/dist/{workspace-export-3XTVGQVM.js → workspace-export-BIKAYHWJ.js} +5 -5
- package/dist/{writable-7SSWUQJ3.js → writable-UOTO4WWC.js} +4 -4
- package/dist/{xano-6RS5XQZE.js → xano-LCI7VWPS.js} +8 -8
- package/dist/{xanosdk-import-E3WSIYUE.js → xanosdk-import-S7A3CVBN.js} +8 -8
- package/dist/{xanosdk-project-KH5TZ2KI.js → xanosdk-project-J4VCFRHP.js} +18 -17
- package/guides/README.md +2 -2
- package/guides/cli.md +73 -4
- package/guides/codegen.md +23 -5
- package/guides/codes.md +8 -2
- package/guides/coverage.md +5 -0
- package/guides/deploying.md +80 -0
- package/guides/marketplace.md +21 -0
- package/guides/module-contract.md +80 -4
- package/guides/scaffold.md +61 -10
- package/guides/typed-frontend.md +37 -0
- package/llms/client.md +11 -1
- package/llms/filters.md +4 -0
- package/llms/kinds-core.md +1 -1
- package/llms/statements-data.md +3 -2
- package/llms/toolchain.md +12 -0
- package/llms-full.txt +34 -7
- package/llms.txt +3 -3
- package/manifest.json +63 -5
- package/package.json +5 -2
- package/skills/xano-backend/SKILL.md +119 -0
- package/dist/chunk-F6IKWAIU.js +0 -664
- package/dist/chunk-M6ZFSTIZ.js +0 -630
- package/dist/chunk-MEIJDRHU.js +0 -243
- package/dist/deploy-source-5COWTBOC.js +0 -81
- package/dist/env-example-refresh-DWQIOQYR.js +0 -127
- package/dist/init-command-TI3HCKXZ.js +0 -126
- package/dist/local-engine-choice-FPJAZSSD.js +0 -79
- package/dist/operation-outcome-GNDD35WL.js +0 -51
- package/dist/promote-command-KHTIK44I.js +0 -141
- package/dist/pull-command-EUEWBRXZ.js +0 -162
- package/dist/release-command-WOVQAMUY.js +0 -147
- package/dist/toolchain-hooks-QVUZ6HZ4.js +0 -96
- package/dist/tracked-backend-B4HTME4S.js +0 -80
|
@@ -0,0 +1,414 @@
|
|
|
1
|
+
import {
|
|
2
|
+
readVersion
|
|
3
|
+
} from "./chunk-DG3APBUJ.js";
|
|
4
|
+
import "./chunk-VIJ5D3RC.js";
|
|
5
|
+
import "./chunk-PV25BDCH.js";
|
|
6
|
+
import "./chunk-B2URJBC4.js";
|
|
7
|
+
import "./chunk-S46ODQRA.js";
|
|
8
|
+
import "./chunk-TWVUYS63.js";
|
|
9
|
+
import "./chunk-26LHXLD3.js";
|
|
10
|
+
import "./chunk-ZJOAWRED.js";
|
|
11
|
+
import "./chunk-MBL7CXJ7.js";
|
|
12
|
+
import "./chunk-YH2JVJAO.js";
|
|
13
|
+
import "./chunk-VNDR2T35.js";
|
|
14
|
+
import "./chunk-EPFDY5JU.js";
|
|
15
|
+
import "./chunk-A4R5CAY4.js";
|
|
16
|
+
import "./chunk-LCOCRJ4K.js";
|
|
17
|
+
import "./chunk-WNCW2RNB.js";
|
|
18
|
+
import "./chunk-QGIZLFAS.js";
|
|
19
|
+
import "./chunk-2MNLRIOX.js";
|
|
20
|
+
import "./chunk-AKERAUNH.js";
|
|
21
|
+
import "./chunk-CJDPSCMX.js";
|
|
22
|
+
import "./chunk-ZXRDD3Q2.js";
|
|
23
|
+
import "./chunk-PY722CHR.js";
|
|
24
|
+
import "./chunk-ZGLNHA7T.js";
|
|
25
|
+
import "./chunk-ORGNLQN6.js";
|
|
26
|
+
import "./chunk-ZYJP6BOO.js";
|
|
27
|
+
import "./chunk-QO6BVGS5.js";
|
|
28
|
+
import "./chunk-PEX4QZVI.js";
|
|
29
|
+
import "./chunk-MYZRMSPM.js";
|
|
30
|
+
import "./chunk-UYFUIHH3.js";
|
|
31
|
+
import "./chunk-622HUCZT.js";
|
|
32
|
+
import "./chunk-3FRGNBOC.js";
|
|
33
|
+
import "./chunk-NDJAKSE7.js";
|
|
34
|
+
import {
|
|
35
|
+
expandHome
|
|
36
|
+
} from "./chunk-EUUUMY7J.js";
|
|
37
|
+
import "./chunk-5SCPRXFB.js";
|
|
38
|
+
import {
|
|
39
|
+
AGENT_RULE_BACKENDS
|
|
40
|
+
} from "./chunk-DIWF7L33.js";
|
|
41
|
+
import "./chunk-D5OZRJ3T.js";
|
|
42
|
+
import "./chunk-EF4MHLEW.js";
|
|
43
|
+
import "./chunk-ZFDZKNGG.js";
|
|
44
|
+
import "./chunk-FWD7AL6N.js";
|
|
45
|
+
import "./chunk-47XT6WQL.js";
|
|
46
|
+
import "./chunk-DXUICABI.js";
|
|
47
|
+
import "./chunk-L6HZ67P6.js";
|
|
48
|
+
import "./chunk-4KHEMC32.js";
|
|
49
|
+
import "./chunk-FDTET7FZ.js";
|
|
50
|
+
import "./chunk-MFWF2NZJ.js";
|
|
51
|
+
import "./chunk-DNBP4GJN.js";
|
|
52
|
+
import "./chunk-CNZASQPL.js";
|
|
53
|
+
import "./chunk-WAVNUTMT.js";
|
|
54
|
+
import "./chunk-ARWMVNDJ.js";
|
|
55
|
+
import "./chunk-LLNZGEFK.js";
|
|
56
|
+
import "./chunk-HU7F56VF.js";
|
|
57
|
+
import "./chunk-MF4W6FHU.js";
|
|
58
|
+
import {
|
|
59
|
+
readEnvVar
|
|
60
|
+
} from "./chunk-X2NL4KUO.js";
|
|
61
|
+
import "./chunk-4GPIOIAC.js";
|
|
62
|
+
import "./chunk-BRANWM4U.js";
|
|
63
|
+
import "./chunk-5GIOCDUM.js";
|
|
64
|
+
import "./chunk-LJM5CIY4.js";
|
|
65
|
+
import "./chunk-7REDHC4N.js";
|
|
66
|
+
import {
|
|
67
|
+
UsageError,
|
|
68
|
+
detail,
|
|
69
|
+
isMachineOutput,
|
|
70
|
+
success,
|
|
71
|
+
unknownSubcommand,
|
|
72
|
+
writeJson
|
|
73
|
+
} from "./chunk-CH23ONYG.js";
|
|
74
|
+
import "./chunk-FQ53GTII.js";
|
|
75
|
+
import "./chunk-VJFMUJWZ.js";
|
|
76
|
+
import "./chunk-6JAEMMZ7.js";
|
|
77
|
+
import "./chunk-5QMJOE2K.js";
|
|
78
|
+
import "./chunk-45ZUMF4E.js";
|
|
79
|
+
import "./chunk-7KPKDHHI.js";
|
|
80
|
+
import "./chunk-7FIMUFBP.js";
|
|
81
|
+
import "./chunk-T4LJ5UR2.js";
|
|
82
|
+
import "./chunk-ICK36EGF.js";
|
|
83
|
+
import "./chunk-BEXZ4XRV.js";
|
|
84
|
+
import "./chunk-ETAZIGNT.js";
|
|
85
|
+
import "./chunk-GSGDWJB5.js";
|
|
86
|
+
import "./chunk-SLGJIWCY.js";
|
|
87
|
+
import "./chunk-ERVIASGL.js";
|
|
88
|
+
import "./chunk-VTMTIBKP.js";
|
|
89
|
+
import "./chunk-H2V3N23D.js";
|
|
90
|
+
import "./chunk-3JDU4VRL.js";
|
|
91
|
+
import "./chunk-WTPZRR4I.js";
|
|
92
|
+
import "./chunk-YHB34BN6.js";
|
|
93
|
+
import "./chunk-UTI5G6OJ.js";
|
|
94
|
+
import "./chunk-5KJBWIDZ.js";
|
|
95
|
+
import "./chunk-5ZSO4T2G.js";
|
|
96
|
+
import "./chunk-VQPDATQT.js";
|
|
97
|
+
import "./chunk-UDZX2ZL4.js";
|
|
98
|
+
import "./chunk-ZY55DO5P.js";
|
|
99
|
+
import "./chunk-A2AOUBJS.js";
|
|
100
|
+
import "./chunk-TFFGOFVZ.js";
|
|
101
|
+
import "./chunk-4XHAT7C5.js";
|
|
102
|
+
import "./chunk-S56YBYMN.js";
|
|
103
|
+
import "./chunk-UVF45BVU.js";
|
|
104
|
+
import "./chunk-VAX3UZOY.js";
|
|
105
|
+
import "./chunk-LL6ED5IB.js";
|
|
106
|
+
import "./chunk-4BW2SG2N.js";
|
|
107
|
+
import "./chunk-JIKGT7DO.js";
|
|
108
|
+
import "./chunk-4MIV244X.js";
|
|
109
|
+
import "./chunk-OHX6MIUZ.js";
|
|
110
|
+
import "./chunk-36JUQZVQ.js";
|
|
111
|
+
import "./chunk-PZ5AY32C.js";
|
|
112
|
+
|
|
113
|
+
// src/emit/agent-skill.ts
|
|
114
|
+
import { createHash } from "crypto";
|
|
115
|
+
var AGENT_SKILL_NAME = "xano-backend";
|
|
116
|
+
var AGENT_SKILL_PATH = `skills/${AGENT_SKILL_NAME}/SKILL.md`;
|
|
117
|
+
var DIGEST_KEY = "xanosdk-digest";
|
|
118
|
+
var VERSION_KEY = "xanosdk-version";
|
|
119
|
+
var OTHER_BACKENDS = [...AGENT_RULE_BACKENDS, "Convex", "Django", "Rails", "Laravel", "FastAPI"];
|
|
120
|
+
var orList = (items) => `${items.slice(0, -1).join(", ")} or ${items.at(-1)}`;
|
|
121
|
+
var AGENT_SKILL_DESCRIPTION = `Builds and runs application backends on Xano, authored as TypeScript with @xano/sdk: database tables, REST API endpoints, user authentication, server-side logic, scheduled and background jobs, webhooks, file storage and realtime. Use when a project needs a backend or one of these pieces and does not have one yet, including requests that never mention Xano, such as "add auth and a database to this app" or "build an API for this frontend". Also use in any project with a xano/ directory or an @xano/sdk dependency. Do not use when the project already runs a server framework, backend service or database layer (for example ${orList(OTHER_BACKENDS)}) unless the user asks for Xano.`;
|
|
122
|
+
function fold(text, width = 78) {
|
|
123
|
+
const lines = [];
|
|
124
|
+
let line = "";
|
|
125
|
+
for (const word of text.split(" ")) {
|
|
126
|
+
if (line !== "" && line.length + 1 + word.length > width - 2) {
|
|
127
|
+
lines.push(` ${line}`);
|
|
128
|
+
line = word;
|
|
129
|
+
} else {
|
|
130
|
+
line = line === "" ? word : `${line} ${word}`;
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
if (line !== "") lines.push(` ${line}`);
|
|
134
|
+
return lines.join("\n");
|
|
135
|
+
}
|
|
136
|
+
var BODY = `# Xano backend
|
|
137
|
+
|
|
138
|
+
Xano runs the backend: database tables, API endpoints, authentication, server-side
|
|
139
|
+
logic, scheduled tasks, triggers and webhooks, file storage and realtime. It is
|
|
140
|
+
authored as TypeScript in \`xano/\` with \`@xano/sdk\`, and the \`xanosdk\` CLI deploys
|
|
141
|
+
it to the Xano Engine on this machine (no account) or to Xano's cloud.
|
|
142
|
+
|
|
143
|
+
Work through the steps in order. Stop at the first one that ends the task.
|
|
144
|
+
|
|
145
|
+
## 1. Is this already a Xano project?
|
|
146
|
+
|
|
147
|
+
Look at the project root: the directory holding \`package.json\`, else the
|
|
148
|
+
repository root.
|
|
149
|
+
|
|
150
|
+
- \`xano/\` exists, or \`package.json\` lists \`@xano/sdk\`: read \`AGENTS.md\` and
|
|
151
|
+
follow it. Do not run \`init\`. This skill ends here.
|
|
152
|
+
- No \`AGENTS.md\` in that project: install its dependencies if
|
|
153
|
+
\`node_modules/@xano/sdk\` is missing, then read
|
|
154
|
+
\`node_modules/@xano/sdk/llms.txt\` in full and follow it instead.
|
|
155
|
+
|
|
156
|
+
## 2. Does the project already have another backend?
|
|
157
|
+
|
|
158
|
+
Another backend is a server framework, backend service or database layer the
|
|
159
|
+
project runs or depends on: for example ${orList(OTHER_BACKENDS)}. These are
|
|
160
|
+
examples, not the whole set. Check the dependency manifests (\`package.json\`,
|
|
161
|
+
\`requirements.txt\`, \`pyproject.toml\`, \`Gemfile\`, \`composer.json\`) and the
|
|
162
|
+
server entry points.
|
|
163
|
+
|
|
164
|
+
- Another backend is present and the user did not ask for Xano: ask the user
|
|
165
|
+
whether they want a Xano backend added beside it. Without a yes, build the
|
|
166
|
+
request on the existing backend, do not run \`init\`, and do not create \`xano/\`.
|
|
167
|
+
|
|
168
|
+
## 3. Confirm Xano
|
|
169
|
+
|
|
170
|
+
- The user has not named Xano: say that you will set up the backend with Xano
|
|
171
|
+
(\`@xano/sdk\`, TypeScript in \`xano/\`, running locally on the Xano Engine), and
|
|
172
|
+
wait for a yes before step 4. Without one, stop using this skill.
|
|
173
|
+
- The user named Xano: continue.
|
|
174
|
+
|
|
175
|
+
## 4. Run init
|
|
176
|
+
|
|
177
|
+
Run it at the project root. Which form:
|
|
178
|
+
|
|
179
|
+
- The directory has files (an existing app): \`init\` adds only the backend. It
|
|
180
|
+
writes \`xano/\` and merges what the backend needs into \`package.json\`, and
|
|
181
|
+
writes no frontend.
|
|
182
|
+
|
|
183
|
+
\`\`\`bash
|
|
184
|
+
npx @xano/sdk init --json
|
|
185
|
+
\`\`\`
|
|
186
|
+
|
|
187
|
+
- The directory is empty and the user asked only for a backend:
|
|
188
|
+
|
|
189
|
+
\`\`\`bash
|
|
190
|
+
npx @xano/sdk init --framework none --json
|
|
191
|
+
\`\`\`
|
|
192
|
+
|
|
193
|
+
- The directory is empty and the user asked for an app: \`npx @xano/sdk init --json\`
|
|
194
|
+
writes a frontend and the backend.
|
|
195
|
+
|
|
196
|
+
The JSON names the \`mode\` that ran, the \`files\` it wrote or merged, and \`next\`,
|
|
197
|
+
the command to run next. When \`init\` refuses and lists clashes, show the list to
|
|
198
|
+
the user. Only after the user agrees to overwrite those files, re-run with
|
|
199
|
+
\`--force --yes\`: \`--yes\` confirms the overwrite, which \`init\` cannot ask
|
|
200
|
+
for without a terminal.
|
|
201
|
+
|
|
202
|
+
## 5. Deploy
|
|
203
|
+
|
|
204
|
+
Run the command in \`next\`. It deploys the backend to the Xano Engine on this
|
|
205
|
+
machine and prints the backend URL. No account is needed.
|
|
206
|
+
|
|
207
|
+
The Xano Engine runs on macOS on Apple Silicon and on Linux (x64, arm64). On any
|
|
208
|
+
other platform, such as Windows or an Intel Mac, tell the user before deploying:
|
|
209
|
+
the backend goes to a Xano ephemeral instead (\`npx xanosdk deploy --ephemeral\`),
|
|
210
|
+
which needs a Xano account.
|
|
211
|
+
|
|
212
|
+
Only a human can do these. Stop and ask the user, then continue once they are
|
|
213
|
+
done:
|
|
214
|
+
|
|
215
|
+
- Creating a Xano account.
|
|
216
|
+
- Signing in: \`npx xanosdk login\` opens a browser consent. Ask the user to run it
|
|
217
|
+
in their own terminal. Do not run it yourself.
|
|
218
|
+
|
|
219
|
+
## 6. Verify
|
|
220
|
+
|
|
221
|
+
- \`npm run xano:check\` passes.
|
|
222
|
+
- A request to the backend URL the deploy printed gets a response.
|
|
223
|
+
\`npx xanosdk status\` prints that URL again.
|
|
224
|
+
|
|
225
|
+
## 7. Hand off
|
|
226
|
+
|
|
227
|
+
Read \`AGENTS.md\`, which \`init\` wrote, and follow it for all further backend work.
|
|
228
|
+
Before writing code in \`xano/\`, read \`node_modules/@xano/sdk/llms.txt\`.
|
|
229
|
+
|
|
230
|
+
Unless run with \`--no-agents-md\`, \`init\` also declares the \`xano-local\` MCP server in
|
|
231
|
+
\`.mcp.json\` and \`.cursor/mcp.json\`: the deployed backend's tables, rows and runs,
|
|
232
|
+
which \`AGENTS.md\` describes. \`npx xanosdk local mcp\` prints the server block for any
|
|
233
|
+
other agent. It is not loaded into a session that was already running. Tell the user
|
|
234
|
+
to restart the agent, or reconnect its MCP servers, to use it.
|
|
235
|
+
`;
|
|
236
|
+
function frontmatter(version, digest) {
|
|
237
|
+
return [
|
|
238
|
+
"---",
|
|
239
|
+
`name: ${AGENT_SKILL_NAME}`,
|
|
240
|
+
"description: >-",
|
|
241
|
+
fold(AGENT_SKILL_DESCRIPTION),
|
|
242
|
+
"license: MIT",
|
|
243
|
+
"metadata:",
|
|
244
|
+
` ${VERSION_KEY}: "${version}"`,
|
|
245
|
+
` ${DIGEST_KEY}: "${digest}"`,
|
|
246
|
+
"---",
|
|
247
|
+
""
|
|
248
|
+
].join("\n");
|
|
249
|
+
}
|
|
250
|
+
var DIGEST_LINE = new RegExp(`^ ${DIGEST_KEY}: .*\\n`, "m");
|
|
251
|
+
function skillDigest(text) {
|
|
252
|
+
return `sha256:${createHash("sha256").update(text.replace(DIGEST_LINE, "")).digest("hex")}`;
|
|
253
|
+
}
|
|
254
|
+
function renderAgentSkill(version) {
|
|
255
|
+
const unstamped = frontmatter(version, "") + "\n" + BODY;
|
|
256
|
+
return frontmatter(version, skillDigest(unstamped)) + "\n" + BODY;
|
|
257
|
+
}
|
|
258
|
+
function readSkillStamp(text) {
|
|
259
|
+
const head = /^---\n([\s\S]*?)\n---\n/.exec(text)?.[1] ?? "";
|
|
260
|
+
const read = (key) => new RegExp(`^ ${key}: "([^"]*)"$`, "m").exec(head)?.[1];
|
|
261
|
+
const version = read(VERSION_KEY);
|
|
262
|
+
const digest = read(DIGEST_KEY);
|
|
263
|
+
return { ...version === void 0 ? {} : { version }, ...digest === void 0 ? {} : { digest } };
|
|
264
|
+
}
|
|
265
|
+
function classifySkill(existing, rendered) {
|
|
266
|
+
if (existing === null) return "absent";
|
|
267
|
+
if (existing === rendered) return "current";
|
|
268
|
+
const { digest } = readSkillStamp(existing);
|
|
269
|
+
if (digest === void 0 || digest !== skillDigest(existing)) return "edited";
|
|
270
|
+
return "stale";
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
// src/emit/agent-skill-targets.ts
|
|
274
|
+
import { existsSync, lstatSync, mkdirSync, readdirSync, readFileSync, rmdirSync, rmSync, writeFileSync } from "fs";
|
|
275
|
+
import { homedir } from "os";
|
|
276
|
+
import { dirname, join } from "path";
|
|
277
|
+
function userHome(env) {
|
|
278
|
+
return env.HOME !== void 0 && env.HOME !== "" ? env.HOME : homedir();
|
|
279
|
+
}
|
|
280
|
+
var dirVar = (name, env) => expandHome(readEnvVar(name, env));
|
|
281
|
+
var claudeHome = (env) => dirVar("CLAUDE_CONFIG_DIR", env) ?? join(userHome(env), ".claude");
|
|
282
|
+
var AGENTS = [
|
|
283
|
+
{ id: "claude-code", home: claudeHome, target: "claude-code" },
|
|
284
|
+
{ id: "codex", home: (env) => dirVar("CODEX_HOME", env) ?? join(userHome(env), ".codex"), target: "agents" },
|
|
285
|
+
{ id: "cursor", home: (env) => join(userHome(env), ".cursor"), target: "agents" },
|
|
286
|
+
{ id: "copilot", home: (env) => join(userHome(env), ".copilot"), target: "agents" },
|
|
287
|
+
{ id: "gemini", home: (env) => join(userHome(env), ".gemini"), target: "agents" },
|
|
288
|
+
{ id: "amp", home: (env) => join(userHome(env), ".config", "amp"), target: "agents" },
|
|
289
|
+
{ id: "opencode", home: (env) => join(userHome(env), ".config", "opencode"), target: "agents" }
|
|
290
|
+
];
|
|
291
|
+
var KNOWN_AGENT_IDS = [
|
|
292
|
+
"claude-code",
|
|
293
|
+
"agents",
|
|
294
|
+
...AGENTS.map((a) => a.id).filter((id) => id !== "claude-code")
|
|
295
|
+
];
|
|
296
|
+
function detectAgents(env = process.env) {
|
|
297
|
+
return AGENTS.filter((a) => existsSync(a.home(env))).map((a) => a.id);
|
|
298
|
+
}
|
|
299
|
+
function skillTargets(env = process.env) {
|
|
300
|
+
const file = (skills) => join(skills, AGENT_SKILL_NAME, "SKILL.md");
|
|
301
|
+
return [
|
|
302
|
+
{ agent: "claude-code", path: file(join(claudeHome(env), "skills")) },
|
|
303
|
+
{ agent: "agents", path: file(join(userHome(env), ".agents", "skills")) }
|
|
304
|
+
];
|
|
305
|
+
}
|
|
306
|
+
function targetsForAgents(ids, env = process.env) {
|
|
307
|
+
const wanted = new Set(ids.map((id) => AGENTS.find((a) => a.id === id)?.target ?? "agents"));
|
|
308
|
+
return skillTargets(env).filter((t) => wanted.has(t.agent));
|
|
309
|
+
}
|
|
310
|
+
function targetDetected(target, detected) {
|
|
311
|
+
return AGENTS.some((a) => a.target === target && detected.includes(a.id));
|
|
312
|
+
}
|
|
313
|
+
var isLink = (path) => {
|
|
314
|
+
try {
|
|
315
|
+
return lstatSync(path).isSymbolicLink();
|
|
316
|
+
} catch {
|
|
317
|
+
return false;
|
|
318
|
+
}
|
|
319
|
+
};
|
|
320
|
+
function readCopy(path) {
|
|
321
|
+
const symlink = isLink(dirname(path)) || isLink(path);
|
|
322
|
+
return { text: existsSync(path) ? readFileSync(path, "utf8") : null, symlink };
|
|
323
|
+
}
|
|
324
|
+
function writeCopy(path, text) {
|
|
325
|
+
mkdirSync(dirname(path), { recursive: true });
|
|
326
|
+
writeFileSync(path, text);
|
|
327
|
+
}
|
|
328
|
+
function removeCopy(path) {
|
|
329
|
+
rmSync(path, { force: true });
|
|
330
|
+
const dir = dirname(path);
|
|
331
|
+
if (readdirSync(dir).length === 0) rmdirSync(dir);
|
|
332
|
+
}
|
|
333
|
+
|
|
334
|
+
// src/emit/agent-skill-command.ts
|
|
335
|
+
var VERBS = ["install", "uninstall", "status"];
|
|
336
|
+
async function runAgentSkillCommand(args) {
|
|
337
|
+
const subcommand = args.subcommand;
|
|
338
|
+
if (subcommand === void 0 || !VERBS.includes(subcommand)) {
|
|
339
|
+
throw unknownSubcommand("agent-skill", subcommand);
|
|
340
|
+
}
|
|
341
|
+
const verb = subcommand;
|
|
342
|
+
const unknown = args.agent.filter((id) => !KNOWN_AGENT_IDS.includes(id));
|
|
343
|
+
if (unknown.length > 0) {
|
|
344
|
+
throw new UsageError(
|
|
345
|
+
`Unknown agent ${unknown.map((id) => `"${id}"`).join(", ")}. \`--agent\` takes: ${KNOWN_AGENT_IDS.join(", ")}.`,
|
|
346
|
+
{ hintFor: { command: "agent-skill", subcommand: verb } }
|
|
347
|
+
);
|
|
348
|
+
}
|
|
349
|
+
const rendered = renderAgentSkill(readVersion());
|
|
350
|
+
const named = args.agent.length > 0 ? targetsForAgents(args.agent) : void 0;
|
|
351
|
+
let outcomes;
|
|
352
|
+
if (verb === "status") {
|
|
353
|
+
const detected = detectAgents();
|
|
354
|
+
outcomes = (named ?? skillTargets()).map((t) => ({
|
|
355
|
+
...t,
|
|
356
|
+
state: classifySkill(readCopy(t.path).text, rendered),
|
|
357
|
+
detected: targetDetected(t.agent, detected)
|
|
358
|
+
}));
|
|
359
|
+
} else if (verb === "install") {
|
|
360
|
+
const targets = named ?? targetsForAgents(detectAgents());
|
|
361
|
+
if (targets.length === 0) {
|
|
362
|
+
throw new UsageError(
|
|
363
|
+
`No coding agent found on this machine, so there is nowhere to install the skill. Name one with \`--agent <id>\`: ${KNOWN_AGENT_IDS.join(", ")}.`,
|
|
364
|
+
{ hintFor: { command: "agent-skill", subcommand: "install" } }
|
|
365
|
+
);
|
|
366
|
+
}
|
|
367
|
+
outcomes = targets.map((t) => install(t, rendered, args));
|
|
368
|
+
} else {
|
|
369
|
+
outcomes = (named ?? skillTargets()).map((t) => uninstall(t, rendered, args));
|
|
370
|
+
}
|
|
371
|
+
report(verb, outcomes, args);
|
|
372
|
+
}
|
|
373
|
+
function install(target, rendered, args) {
|
|
374
|
+
const copy = readCopy(target.path);
|
|
375
|
+
const state = classifySkill(copy.text, rendered);
|
|
376
|
+
const base = { ...target, state };
|
|
377
|
+
if (copy.symlink) return { ...base, action: "skipped", reason: "symlink" };
|
|
378
|
+
if (state === "current") return { ...base, action: "unchanged" };
|
|
379
|
+
if (state === "edited" && !args.force) return { ...base, action: "skipped", reason: "edited" };
|
|
380
|
+
if (!args.dryRun) writeCopy(target.path, rendered);
|
|
381
|
+
return { ...base, action: state === "absent" ? "created" : "updated" };
|
|
382
|
+
}
|
|
383
|
+
function uninstall(target, rendered, args) {
|
|
384
|
+
const copy = readCopy(target.path);
|
|
385
|
+
const state = classifySkill(copy.text, rendered);
|
|
386
|
+
const base = { ...target, state };
|
|
387
|
+
if (state === "absent") return { ...base, action: "unchanged" };
|
|
388
|
+
if (copy.symlink) return { ...base, action: "skipped", reason: "symlink" };
|
|
389
|
+
if (state === "edited") return { ...base, action: "skipped", reason: "edited" };
|
|
390
|
+
if (!args.dryRun) removeCopy(target.path);
|
|
391
|
+
return { ...base, action: "removed" };
|
|
392
|
+
}
|
|
393
|
+
var REASONS = {
|
|
394
|
+
edited: "edited since it was installed; left as it is",
|
|
395
|
+
symlink: "the skill directory is a symlink another installer manages; left as it is"
|
|
396
|
+
};
|
|
397
|
+
function report(verb, outcomes, args) {
|
|
398
|
+
const preview = args.dryRun && verb !== "status" ? " (dry run: nothing written)" : "";
|
|
399
|
+
for (const o of outcomes) {
|
|
400
|
+
success(`${o.agent}: ${o.action ?? o.state}${preview}`);
|
|
401
|
+
detail(o.path);
|
|
402
|
+
if (o.reason !== void 0) detail(REASONS[o.reason]);
|
|
403
|
+
}
|
|
404
|
+
if (outcomes.some((o) => o.reason === "edited") && verb === "install") {
|
|
405
|
+
detail("`xanosdk agent-skill install --force` replaces an edited copy.");
|
|
406
|
+
}
|
|
407
|
+
if (isMachineOutput(args)) {
|
|
408
|
+
writeJson({ ...verb === "status" ? {} : { dryRun: args.dryRun }, targets: outcomes });
|
|
409
|
+
}
|
|
410
|
+
}
|
|
411
|
+
export {
|
|
412
|
+
runAgentSkillCommand
|
|
413
|
+
};
|
|
414
|
+
//# sourceMappingURL=agent-skill-command-37DFYS7Q.js.map
|
|
@@ -8,12 +8,12 @@ import {
|
|
|
8
8
|
parseAnswer,
|
|
9
9
|
recordAnswer,
|
|
10
10
|
writeTransportFailure
|
|
11
|
-
} from "./chunk-
|
|
12
|
-
import "./chunk-
|
|
11
|
+
} from "./chunk-MYZRMSPM.js";
|
|
12
|
+
import "./chunk-L6HZ67P6.js";
|
|
13
13
|
import "./chunk-MF4W6FHU.js";
|
|
14
14
|
import "./chunk-X2NL4KUO.js";
|
|
15
|
-
import "./chunk-
|
|
16
|
-
import "./chunk-
|
|
15
|
+
import "./chunk-CH23ONYG.js";
|
|
16
|
+
import "./chunk-YHB34BN6.js";
|
|
17
17
|
import "./chunk-UTI5G6OJ.js";
|
|
18
18
|
import "./chunk-5ZSO4T2G.js";
|
|
19
19
|
import "./chunk-TFFGOFVZ.js";
|
|
@@ -30,4 +30,4 @@ export {
|
|
|
30
30
|
recordAnswer,
|
|
31
31
|
writeTransportFailure
|
|
32
32
|
};
|
|
33
|
-
//# sourceMappingURL=answer-shape-
|
|
33
|
+
//# sourceMappingURL=answer-shape-RBFDCNZ7.js.map
|
|
@@ -2,28 +2,29 @@ import {
|
|
|
2
2
|
backendDirFor,
|
|
3
3
|
backendDirIn,
|
|
4
4
|
resolveBackendDir
|
|
5
|
-
} from "./chunk-
|
|
6
|
-
import "./chunk-
|
|
7
|
-
import "./chunk-
|
|
8
|
-
import "./chunk-
|
|
5
|
+
} from "./chunk-5SCPRXFB.js";
|
|
6
|
+
import "./chunk-DIWF7L33.js";
|
|
7
|
+
import "./chunk-D5OZRJ3T.js";
|
|
8
|
+
import "./chunk-EF4MHLEW.js";
|
|
9
9
|
import "./chunk-ZFDZKNGG.js";
|
|
10
10
|
import "./chunk-FWD7AL6N.js";
|
|
11
|
-
import "./chunk-
|
|
11
|
+
import "./chunk-47XT6WQL.js";
|
|
12
12
|
import "./chunk-DXUICABI.js";
|
|
13
|
+
import "./chunk-L6HZ67P6.js";
|
|
13
14
|
import "./chunk-4KHEMC32.js";
|
|
15
|
+
import "./chunk-DNBP4GJN.js";
|
|
16
|
+
import "./chunk-CNZASQPL.js";
|
|
17
|
+
import "./chunk-WAVNUTMT.js";
|
|
18
|
+
import "./chunk-LLNZGEFK.js";
|
|
14
19
|
import {
|
|
15
20
|
projectRootFrom
|
|
16
|
-
} from "./chunk-
|
|
17
|
-
import "./chunk-WRBKLYSJ.js";
|
|
18
|
-
import "./chunk-M7GJ6YUF.js";
|
|
19
|
-
import "./chunk-HLQH3AXB.js";
|
|
20
|
-
import "./chunk-LLNZGEFK.js";
|
|
21
|
+
} from "./chunk-HU7F56VF.js";
|
|
21
22
|
import "./chunk-MF4W6FHU.js";
|
|
22
23
|
import "./chunk-X2NL4KUO.js";
|
|
23
|
-
import "./chunk-
|
|
24
|
-
import "./chunk-
|
|
25
|
-
import "./chunk-
|
|
26
|
-
import "./chunk-
|
|
24
|
+
import "./chunk-5GIOCDUM.js";
|
|
25
|
+
import "./chunk-LJM5CIY4.js";
|
|
26
|
+
import "./chunk-CH23ONYG.js";
|
|
27
|
+
import "./chunk-YHB34BN6.js";
|
|
27
28
|
import "./chunk-UTI5G6OJ.js";
|
|
28
29
|
import "./chunk-5ZSO4T2G.js";
|
|
29
30
|
import "./chunk-TFFGOFVZ.js";
|
|
@@ -36,4 +37,4 @@ export {
|
|
|
36
37
|
projectRootFrom,
|
|
37
38
|
resolveBackendDir
|
|
38
39
|
};
|
|
39
|
-
//# sourceMappingURL=backend-dir-
|
|
40
|
+
//# sourceMappingURL=backend-dir-KDD43X7K.js.map
|
|
@@ -7,9 +7,9 @@ import {
|
|
|
7
7
|
refusedKind,
|
|
8
8
|
requireBackendSlot,
|
|
9
9
|
slotValueMissing
|
|
10
|
-
} from "./chunk-
|
|
11
|
-
import "./chunk-
|
|
12
|
-
import "./chunk-
|
|
10
|
+
} from "./chunk-PY722CHR.js";
|
|
11
|
+
import "./chunk-CH23ONYG.js";
|
|
12
|
+
import "./chunk-YHB34BN6.js";
|
|
13
13
|
import "./chunk-UTI5G6OJ.js";
|
|
14
14
|
import "./chunk-5ZSO4T2G.js";
|
|
15
15
|
import "./chunk-TFFGOFVZ.js";
|
|
@@ -25,4 +25,4 @@ export {
|
|
|
25
25
|
requireBackendSlot,
|
|
26
26
|
slotValueMissing
|
|
27
27
|
};
|
|
28
|
-
//# sourceMappingURL=backend-slot-
|
|
28
|
+
//# sourceMappingURL=backend-slot-TBOVZXDE.js.map
|