@skaile/workspaces 5.19.0 → 6.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +6 -0
- package/README.md +8 -8
- package/dist/app-sdk/index.js +1 -1
- package/dist/{asset-feeds-QGLI3AXI.js → asset-feeds-PXUWCXVI.js} +18 -18
- package/dist/{asset-feeds-QGLI3AXI.js.map → asset-feeds-PXUWCXVI.js.map} +1 -1
- package/dist/asset-manager/catalog-deployer.js +8 -8
- package/dist/asset-manager/index.js +14 -14
- package/dist/asset-manager/installer.js +11 -11
- package/dist/asset-manager/renderers.js +10 -10
- package/dist/asset-manager/src/index.d.ts +22 -22
- package/dist/asset-manager/src/index.d.ts.map +1 -1
- package/dist/asset-manager/src/install-agent.d.ts +2 -2
- package/dist/asset-manager/src/install-agent.d.ts.map +1 -1
- package/dist/asset-manager/src/install-instances.d.ts +8 -8
- package/dist/asset-manager/src/install-instances.d.ts.map +1 -1
- package/dist/asset-manager/src/installer.d.ts +3 -3
- package/dist/asset-manager/src/installer.d.ts.map +1 -1
- package/dist/asset-manager/src/mcp-config.d.ts +14 -14
- package/dist/asset-manager/src/mcp-config.d.ts.map +1 -1
- package/dist/asset-manager/src/renderers.d.ts +12 -12
- package/dist/asset-manager/src/renderers.d.ts.map +1 -1
- package/dist/bridge/codex-app-server.js +2 -2
- package/dist/bridge/harnesses/claude-sdk.d.ts +2 -0
- package/dist/bridge/{drivers → harnesses}/claude-sdk.js +63 -63
- package/dist/bridge/harnesses/claude-sdk.js.map +1 -0
- package/dist/bridge/{drivers/gemini.d.ts → harnesses/codex.d.ts} +1 -1
- package/dist/bridge/{drivers → harnesses}/codex.js +50 -50
- package/dist/bridge/harnesses/codex.js.map +1 -0
- package/dist/bridge/{drivers/claude-sdk.d.ts → harnesses/continue.d.ts} +1 -1
- package/dist/bridge/{drivers → harnesses}/continue.js +27 -27
- package/dist/bridge/harnesses/continue.js.map +1 -0
- package/dist/bridge/{drivers → harnesses}/echo.d.ts +1 -1
- package/dist/bridge/{drivers → harnesses}/echo.js +27 -27
- package/dist/bridge/harnesses/echo.js.map +1 -0
- package/dist/bridge/{drivers/continue.d.ts → harnesses/gemini.d.ts} +1 -1
- package/dist/bridge/harnesses/gemini.js +18 -0
- package/dist/bridge/{drivers → harnesses}/goose.d.ts +1 -1
- package/dist/bridge/{drivers → harnesses}/goose.js +27 -27
- package/dist/bridge/harnesses/goose.js.map +1 -0
- package/dist/bridge/{drivers → harnesses}/omp.d.ts +1 -1
- package/dist/bridge/{drivers → harnesses}/omp.js +31 -31
- package/dist/bridge/harnesses/omp.js.map +1 -0
- package/dist/bridge/{drivers → harnesses}/opencode.d.ts +1 -1
- package/dist/bridge/{drivers → harnesses}/opencode.js +28 -28
- package/dist/bridge/harnesses/opencode.js.map +1 -0
- package/dist/bridge/{drivers → harnesses}/qwen.d.ts +1 -1
- package/dist/bridge/{drivers → harnesses}/qwen.js +20 -20
- package/dist/bridge/harnesses/qwen.js.map +1 -0
- package/dist/bridge/index.js +22 -22
- package/dist/bridge/src/agent-exec.d.ts +2 -2
- package/dist/bridge/src/agent-transcript.d.ts +1 -1
- package/dist/bridge/src/agent-transcript.d.ts.map +1 -1
- package/dist/bridge/src/approval-card.d.ts +3 -3
- package/dist/bridge/src/capability-dispatch.d.ts +5 -5
- package/dist/bridge/src/cloud.d.ts +4 -4
- package/dist/bridge/src/codex/config-toml.d.ts +3 -3
- package/dist/bridge/src/codex/friendly-error.d.ts +1 -1
- package/dist/bridge/src/codex/friendly-error.d.ts.map +1 -1
- package/dist/bridge/src/codex/{managed-driver.d.ts → managed-harness.d.ts} +5 -5
- package/dist/bridge/src/codex/managed-harness.d.ts.map +1 -0
- package/dist/bridge/src/codex/native-approvals.d.ts +1 -1
- package/dist/bridge/src/codex/native-approvals.d.ts.map +1 -1
- package/dist/bridge/src/error-classifier.d.ts +7 -7
- package/dist/bridge/src/{driver-capabilities.d.ts → harness-capabilities.d.ts} +18 -18
- package/dist/bridge/src/harness-capabilities.d.ts.map +1 -0
- package/dist/bridge/src/{driver-model-check.d.ts → harness-model-check.d.ts} +9 -9
- package/dist/bridge/src/harness-model-check.d.ts.map +1 -0
- package/dist/bridge/src/{drivers → harnesses}/_subprocess-cli.d.ts +8 -8
- package/dist/bridge/src/harnesses/_subprocess-cli.d.ts.map +1 -0
- package/dist/bridge/src/{drivers → harnesses}/claude-context-usage.d.ts +5 -5
- package/dist/bridge/src/harnesses/claude-context-usage.d.ts.map +1 -0
- package/dist/bridge/src/{drivers → harnesses}/claude-sdk.d.ts +27 -27
- package/dist/bridge/src/harnesses/claude-sdk.d.ts.map +1 -0
- package/dist/bridge/src/{drivers → harnesses}/claude-self-turns.d.ts +5 -5
- package/dist/bridge/src/harnesses/claude-self-turns.d.ts.map +1 -0
- package/dist/bridge/src/{drivers → harnesses}/claude-tool-allowlist.d.ts +4 -4
- package/dist/bridge/src/harnesses/claude-tool-allowlist.d.ts.map +1 -0
- package/dist/bridge/src/{drivers → harnesses}/codex.d.ts +14 -14
- package/dist/bridge/src/harnesses/codex.d.ts.map +1 -0
- package/dist/bridge/src/{drivers → harnesses}/continue.d.ts +12 -12
- package/dist/bridge/src/harnesses/continue.d.ts.map +1 -0
- package/dist/bridge/src/{drivers → harnesses}/echo.d.ts +16 -16
- package/dist/bridge/src/harnesses/echo.d.ts.map +1 -0
- package/dist/bridge/src/{drivers → harnesses}/flow-script.d.ts +9 -9
- package/dist/bridge/src/harnesses/flow-script.d.ts.map +1 -0
- package/dist/bridge/src/{drivers → harnesses}/gemini.d.ts +15 -15
- package/dist/bridge/src/harnesses/gemini.d.ts.map +1 -0
- package/dist/bridge/src/{drivers → harnesses}/goose.d.ts +10 -10
- package/dist/bridge/src/harnesses/goose.d.ts.map +1 -0
- package/dist/bridge/src/{drivers → harnesses}/omp-models-yml.d.ts +12 -12
- package/dist/bridge/src/harnesses/omp-models-yml.d.ts.map +1 -0
- package/dist/bridge/src/{drivers → harnesses}/omp.d.ts +23 -23
- package/dist/bridge/src/harnesses/omp.d.ts.map +1 -0
- package/dist/bridge/src/{drivers → harnesses}/opencode.d.ts +11 -11
- package/dist/bridge/src/harnesses/opencode.d.ts.map +1 -0
- package/dist/bridge/src/{drivers → harnesses}/qwen.d.ts +12 -12
- package/dist/bridge/src/harnesses/qwen.d.ts.map +1 -0
- package/dist/bridge/src/{drivers → harnesses}/recovery-policy.d.ts +4 -4
- package/dist/bridge/src/harnesses/recovery-policy.d.ts.map +1 -0
- package/dist/bridge/src/{drivers → harnesses}/resume-probe.d.ts +3 -3
- package/dist/bridge/src/harnesses/resume-probe.d.ts.map +1 -0
- package/dist/bridge/src/{drivers → harnesses}/sanitize-assistant-text.d.ts +1 -1
- package/dist/bridge/src/harnesses/sanitize-assistant-text.d.ts.map +1 -0
- package/dist/bridge/src/{drivers → harnesses}/scrub-transcript.d.ts +1 -1
- package/dist/bridge/src/harnesses/scrub-transcript.d.ts.map +1 -0
- package/dist/bridge/src/index.d.ts +4 -4
- package/dist/bridge/src/index.d.ts.map +1 -1
- package/dist/bridge/src/logger.d.ts +4 -4
- package/dist/bridge/src/models.d.ts +1 -1
- package/dist/bridge/src/normalizer.d.ts +2 -2
- package/dist/bridge/src/provider-materialize/continue-config-yaml.d.ts +5 -5
- package/dist/bridge/src/provider-materialize/continue-config-yaml.d.ts.map +1 -1
- package/dist/bridge/src/provider-materialize/credential-env.d.ts +3 -3
- package/dist/bridge/src/provider-materialize/{env-drivers.d.ts → env-harnesses.d.ts} +19 -19
- package/dist/bridge/src/provider-materialize/env-harnesses.d.ts.map +1 -0
- package/dist/bridge/src/provider-materialize/goose-custom-providers.d.ts +5 -5
- package/dist/bridge/src/provider-materialize/goose-custom-providers.d.ts.map +1 -1
- package/dist/bridge/src/provider-materialize/opencode-config.d.ts +7 -7
- package/dist/bridge/src/provider-materialize/opencode-config.d.ts.map +1 -1
- package/dist/bridge/src/provider-materialize/session-config-home.d.ts +5 -5
- package/dist/bridge/src/provider-materialize/session-config-home.d.ts.map +1 -1
- package/dist/bridge/src/provider-registry-derive.d.ts +4 -4
- package/dist/bridge/src/provider-registry-derive.d.ts.map +1 -1
- package/dist/bridge/src/reconfigure-ledger.d.ts +8 -8
- package/dist/bridge/src/reconfigure-ledger.d.ts.map +1 -1
- package/dist/bridge/src/registry.d.ts +34 -41
- package/dist/bridge/src/registry.d.ts.map +1 -1
- package/dist/bridge/src/runner-private-env.d.ts +2 -2
- package/dist/bridge/src/runtime.d.ts +11 -11
- package/dist/bridge/src/runtime.d.ts.map +1 -1
- package/dist/bridge/src/types.d.ts +158 -158
- package/dist/bridge/src/types.d.ts.map +1 -1
- package/dist/{chunk-2PBSAH3Z.js → chunk-2UUKCROR.js} +4 -4
- package/dist/{chunk-2PBSAH3Z.js.map → chunk-2UUKCROR.js.map} +1 -1
- package/dist/{chunk-WG6V4ISA.js → chunk-3IXIEHUB.js} +7 -7
- package/dist/{chunk-WG6V4ISA.js.map → chunk-3IXIEHUB.js.map} +1 -1
- package/dist/{chunk-JTOWA6RS.js → chunk-3JKGY2YC.js} +37 -42
- package/dist/chunk-3JKGY2YC.js.map +1 -0
- package/dist/{chunk-X5YPJV4N.js → chunk-3MWQKQUB.js} +2 -2
- package/dist/{chunk-X5YPJV4N.js.map → chunk-3MWQKQUB.js.map} +1 -1
- package/dist/{chunk-EPBKISS5.js → chunk-3TG2NV2F.js} +2 -2
- package/dist/chunk-3TG2NV2F.js.map +1 -0
- package/dist/{chunk-L2AMXONH.js → chunk-3X7VTCPG.js} +2 -2
- package/dist/chunk-3X7VTCPG.js.map +1 -0
- package/dist/{chunk-VJ7NU7GD.js → chunk-4DWBSTYA.js} +4 -4
- package/dist/chunk-4DWBSTYA.js.map +1 -0
- package/dist/{chunk-7SCS64BG.js → chunk-4XWLB7JB.js} +48 -48
- package/dist/chunk-4XWLB7JB.js.map +1 -0
- package/dist/{chunk-5TBFN46Z.js → chunk-5KRMNUL4.js} +4 -4
- package/dist/chunk-5KRMNUL4.js.map +1 -0
- package/dist/{chunk-YIF2IJUA.js → chunk-6GWSDPBP.js} +3 -3
- package/dist/{chunk-YIF2IJUA.js.map → chunk-6GWSDPBP.js.map} +1 -1
- package/dist/{chunk-MKRWN7XP.js → chunk-7CV3HFWJ.js} +5 -5
- package/dist/chunk-7CV3HFWJ.js.map +1 -0
- package/dist/{chunk-YROR332M.js → chunk-7DN6JKP2.js} +2 -2
- package/dist/chunk-7DN6JKP2.js.map +1 -0
- package/dist/{chunk-IZCR27MU.js → chunk-7EKQDY2T.js} +3 -3
- package/dist/chunk-7EKQDY2T.js.map +1 -0
- package/dist/{chunk-2LSDMJI2.js → chunk-7TPYPVAH.js} +4 -4
- package/dist/{chunk-2LSDMJI2.js.map → chunk-7TPYPVAH.js.map} +1 -1
- package/dist/{chunk-ICSCSM5D.js → chunk-ADPM6AYF.js} +3 -3
- package/dist/{chunk-ICSCSM5D.js.map → chunk-ADPM6AYF.js.map} +1 -1
- package/dist/{chunk-Y5MBW5EU.js → chunk-AF432MS3.js} +3 -3
- package/dist/{chunk-Y5MBW5EU.js.map → chunk-AF432MS3.js.map} +1 -1
- package/dist/{chunk-F6AA42GW.js → chunk-ARWKK325.js} +5 -5
- package/dist/{chunk-F6AA42GW.js.map → chunk-ARWKK325.js.map} +1 -1
- package/dist/{chunk-AJ7EGIFR.js → chunk-BIRW3HOG.js} +3 -3
- package/dist/chunk-BIRW3HOG.js.map +1 -0
- package/dist/{chunk-X4ZZTHU3.js → chunk-DHYSUJ3H.js} +4 -4
- package/dist/{chunk-X4ZZTHU3.js.map → chunk-DHYSUJ3H.js.map} +1 -1
- package/dist/{chunk-C7WBGSBV.js → chunk-DUMTLYSO.js} +10 -10
- package/dist/chunk-DUMTLYSO.js.map +1 -0
- package/dist/{chunk-XJVBUDDJ.js → chunk-E3GPGTW3.js} +8 -8
- package/dist/chunk-E3GPGTW3.js.map +1 -0
- package/dist/{chunk-335ENCCS.js → chunk-E572OHGY.js} +2 -2
- package/dist/{chunk-335ENCCS.js.map → chunk-E572OHGY.js.map} +1 -1
- package/dist/{chunk-CQJH4G2K.js → chunk-F2GOZMRA.js} +63 -64
- package/dist/chunk-F2GOZMRA.js.map +1 -0
- package/dist/{chunk-6E6PKKAD.js → chunk-G5SUWZEU.js} +18 -8
- package/dist/chunk-G5SUWZEU.js.map +1 -0
- package/dist/{chunk-2GXSSZAM.js → chunk-GEQSUC6U.js} +12 -12
- package/dist/chunk-GEQSUC6U.js.map +1 -0
- package/dist/{chunk-IP2IPMEH.js → chunk-GN4VVSAA.js} +18 -18
- package/dist/chunk-GN4VVSAA.js.map +1 -0
- package/dist/{chunk-W4Q6CKJ5.js → chunk-HK7HMEPT.js} +11 -11
- package/dist/chunk-HK7HMEPT.js.map +1 -0
- package/dist/{chunk-Y56YIT6J.js → chunk-JCPD4QRM.js} +4 -4
- package/dist/chunk-JCPD4QRM.js.map +1 -0
- package/dist/{chunk-VSZWNUZC.js → chunk-JDR6ILCW.js} +4 -4
- package/dist/chunk-JDR6ILCW.js.map +1 -0
- package/dist/{chunk-K4O6L3WH.js → chunk-KNY356I3.js} +3 -3
- package/dist/{chunk-K4O6L3WH.js.map → chunk-KNY356I3.js.map} +1 -1
- package/dist/{chunk-4ZTPYIBE.js → chunk-KW37WNXY.js} +12 -12
- package/dist/chunk-KW37WNXY.js.map +1 -0
- package/dist/{chunk-QG6GHTRM.js → chunk-KX2PT5Q4.js} +8 -8
- package/dist/chunk-KX2PT5Q4.js.map +1 -0
- package/dist/{chunk-N46LQR46.js → chunk-L4YKW5AY.js} +37 -26
- package/dist/chunk-L4YKW5AY.js.map +1 -0
- package/dist/{chunk-I7TWVK6N.js → chunk-LN6QB7XI.js} +3 -3
- package/dist/{chunk-I7TWVK6N.js.map → chunk-LN6QB7XI.js.map} +1 -1
- package/dist/{chunk-MJHSLODD.js → chunk-LSI2IVFT.js} +2 -2
- package/dist/chunk-LSI2IVFT.js.map +1 -0
- package/dist/{chunk-VIM3PWZM.js → chunk-MCUJTNY5.js} +3 -3
- package/dist/{chunk-VIM3PWZM.js.map → chunk-MCUJTNY5.js.map} +1 -1
- package/dist/{chunk-EAZECHPM.js → chunk-NBAGV6L2.js} +5 -5
- package/dist/chunk-NBAGV6L2.js.map +1 -0
- package/dist/{chunk-ZQSOJH6I.js → chunk-NMI2TWMH.js} +21 -11
- package/dist/chunk-NMI2TWMH.js.map +1 -0
- package/dist/{chunk-MRHVPQNO.js → chunk-OAHVKSQJ.js} +112 -119
- package/dist/chunk-OAHVKSQJ.js.map +1 -0
- package/dist/{chunk-V257LUBM.js → chunk-OHNKYHRR.js} +40 -13
- package/dist/chunk-OHNKYHRR.js.map +1 -0
- package/dist/{chunk-TIIXG3PN.js → chunk-OTIB4D2K.js} +3 -3
- package/dist/{chunk-TIIXG3PN.js.map → chunk-OTIB4D2K.js.map} +1 -1
- package/dist/{chunk-WST6UITC.js → chunk-OULSJRXV.js} +17 -17
- package/dist/chunk-OULSJRXV.js.map +1 -0
- package/dist/{chunk-I37INEWE.js → chunk-QOM5Z62G.js} +3 -3
- package/dist/{chunk-I37INEWE.js.map → chunk-QOM5Z62G.js.map} +1 -1
- package/dist/{chunk-HT35SQZD.js → chunk-SNEE6UGY.js} +28 -28
- package/dist/chunk-SNEE6UGY.js.map +1 -0
- package/dist/{chunk-R4I3VBSS.js → chunk-SRODW6M2.js} +4 -4
- package/dist/{chunk-R4I3VBSS.js.map → chunk-SRODW6M2.js.map} +1 -1
- package/dist/{chunk-IF6IA3PZ.js → chunk-SZXGRHQQ.js} +3 -3
- package/dist/{chunk-IF6IA3PZ.js.map → chunk-SZXGRHQQ.js.map} +1 -1
- package/dist/{chunk-J24CY3PF.js → chunk-T2BDID2J.js} +37 -37
- package/dist/chunk-T2BDID2J.js.map +1 -0
- package/dist/{chunk-WOIRYY5L.js → chunk-TKHJXPSB.js} +11 -11
- package/dist/{chunk-WOIRYY5L.js.map → chunk-TKHJXPSB.js.map} +1 -1
- package/dist/{chunk-PYJS5K7V.js → chunk-U56GGCC2.js} +3 -3
- package/dist/{chunk-PYJS5K7V.js.map → chunk-U56GGCC2.js.map} +1 -1
- package/dist/{chunk-XM6T2AZ2.js → chunk-UL22SDGR.js} +6 -6
- package/dist/{chunk-XM6T2AZ2.js.map → chunk-UL22SDGR.js.map} +1 -1
- package/dist/{chunk-XWOPZW26.js → chunk-UVVVR4XO.js} +38 -38
- package/dist/chunk-UVVVR4XO.js.map +1 -0
- package/dist/{chunk-A6SMCEEE.js → chunk-VBI7HGHB.js} +11 -11
- package/dist/{chunk-A6SMCEEE.js.map → chunk-VBI7HGHB.js.map} +1 -1
- package/dist/{chunk-7NT4F6SR.js → chunk-VJRTDKXS.js} +462 -446
- package/dist/chunk-VJRTDKXS.js.map +1 -0
- package/dist/{chunk-IG5LZ3WU.js → chunk-VTETQCR6.js} +10 -10
- package/dist/chunk-VTETQCR6.js.map +1 -0
- package/dist/{chunk-EFLKSMCO.js → chunk-VUJXZDCY.js} +5 -5
- package/dist/{chunk-EFLKSMCO.js.map → chunk-VUJXZDCY.js.map} +1 -1
- package/dist/{chunk-25ZVWL2R.js → chunk-VXEYX73S.js} +4 -4
- package/dist/{chunk-25ZVWL2R.js.map → chunk-VXEYX73S.js.map} +1 -1
- package/dist/{chunk-M3WPBTGJ.js → chunk-WD3L5QSU.js} +2 -2
- package/dist/{chunk-M3WPBTGJ.js.map → chunk-WD3L5QSU.js.map} +1 -1
- package/dist/{chunk-COJIL7G4.js → chunk-WDAIWDLK.js} +7 -7
- package/dist/chunk-WDAIWDLK.js.map +1 -0
- package/dist/{chunk-FPHNJE4M.js → chunk-WEH33JSG.js} +14 -14
- package/dist/chunk-WEH33JSG.js.map +1 -0
- package/dist/{chunk-RO6VOM6Z.js → chunk-WYHQUCHR.js} +13 -13
- package/dist/{chunk-RO6VOM6Z.js.map → chunk-WYHQUCHR.js.map} +1 -1
- package/dist/{chunk-R6O6YWU7.js → chunk-WYZXSJBK.js} +3 -3
- package/dist/{chunk-R6O6YWU7.js.map → chunk-WYZXSJBK.js.map} +1 -1
- package/dist/{chunk-RPZVHXQ3.js → chunk-XFIEVEU7.js} +4 -4
- package/dist/chunk-XFIEVEU7.js.map +1 -0
- package/dist/{chunk-Q6E6FM7P.js → chunk-XKNXPLKR.js} +6 -6
- package/dist/{chunk-Q6E6FM7P.js.map → chunk-XKNXPLKR.js.map} +1 -1
- package/dist/{chunk-HU5HVKY7.js → chunk-Y2TO2U7W.js} +4 -4
- package/dist/{chunk-HU5HVKY7.js.map → chunk-Y2TO2U7W.js.map} +1 -1
- package/dist/{chunk-ZX4KRWRB.js → chunk-YGRZNFRO.js} +4 -4
- package/dist/{chunk-ZX4KRWRB.js.map → chunk-YGRZNFRO.js.map} +1 -1
- package/dist/{chunk-5BEFNLOR.js → chunk-Z7ZEZZB6.js} +8 -8
- package/dist/chunk-Z7ZEZZB6.js.map +1 -0
- package/dist/{chunk-PHRNUTSG.js → chunk-ZFUZ5AKM.js} +4 -4
- package/dist/{chunk-PHRNUTSG.js.map → chunk-ZFUZ5AKM.js.map} +1 -1
- package/dist/claude-code-VJGYBXQR.js +10 -0
- package/dist/{claude-code-2PU7TITZ.js.map → claude-code-VJGYBXQR.js.map} +1 -1
- package/dist/cli/index.js +471 -308
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/src/commands/catalog.d.ts +3 -3
- package/dist/cli/src/commands/complete-resolvers.d.ts.map +1 -1
- package/dist/cli/src/commands/config.d.ts +2 -2
- package/dist/cli/src/commands/config.d.ts.map +1 -1
- package/dist/cli/src/commands/integration.d.ts +1 -1
- package/dist/cli/src/commands/integration.d.ts.map +1 -1
- package/dist/cli/src/commands/migrate-files.d.ts +14 -0
- package/dist/cli/src/commands/migrate-files.d.ts.map +1 -1
- package/dist/cli/src/commands/migrate-harness.d.ts +49 -0
- package/dist/cli/src/commands/migrate-harness.d.ts.map +1 -0
- package/dist/cli/src/commands/migrate.d.ts +4 -2
- package/dist/cli/src/commands/migrate.d.ts.map +1 -1
- package/dist/cli/src/commands/plugin/types.d.ts +1 -6
- package/dist/cli/src/commands/plugin/types.d.ts.map +1 -1
- package/dist/cli/src/commands/plugin-registry-cmd.d.ts +1 -1
- package/dist/cli/src/commands/preset-export.d.ts +1 -1
- package/dist/cli/src/commands/project.d.ts +1 -1
- package/dist/cli/src/commands/run.d.ts +2 -2
- package/dist/cli/src/commands/run.d.ts.map +1 -1
- package/dist/cli/src/commands/serve-preflight.d.ts +11 -11
- package/dist/cli/src/commands/serve-preflight.d.ts.map +1 -1
- package/dist/cli/src/commands/serve.d.ts +1 -1
- package/dist/cli/src/commands/serve.d.ts.map +1 -1
- package/dist/cli/src/commands/validate.d.ts.map +1 -1
- package/dist/cli/src/harness-error.d.ts +47 -0
- package/dist/cli/src/harness-error.d.ts.map +1 -0
- package/dist/cli/src/helpers.d.ts +5 -5
- package/dist/cli/src/helpers.d.ts.map +1 -1
- package/dist/cli/src/plugin-store/index.d.ts +2 -2
- package/dist/cli/src/setup.d.ts +3 -3
- package/dist/cli/src/setup.d.ts.map +1 -1
- package/dist/connectors/config.js +3 -3
- package/dist/connectors/index.js +27 -27
- package/dist/connectors/src/connector-prompt.d.ts +5 -5
- package/dist/connectors/src/connector-registry.d.ts +1 -1
- package/dist/connectors-CXZLXAFZ.js +48 -0
- package/dist/{connectors-RBGZ3M7G.js.map → connectors-CXZLXAFZ.js.map} +1 -1
- package/dist/connectors-shared/index.js +2 -2
- package/dist/core/framework.js +1 -1
- package/dist/{bridge/drivers/codex.d.ts → core/harness-targets.d.ts} +1 -1
- package/dist/core/harness-targets.js +4 -0
- package/dist/core/harness-targets.js.map +1 -0
- package/dist/core/index.js +8 -8
- package/dist/core/provider-registry-credentials.js +2 -2
- package/dist/core/provider-registry.js +1 -1
- package/dist/core/runtime-assets.js +3 -3
- package/dist/core/src/asset-roots.d.ts +2 -2
- package/dist/core/src/framework.d.ts +21 -21
- package/dist/core/src/framework.d.ts.map +1 -1
- package/dist/core/src/{driver-sdk.d.ts → harness-sdk.d.ts} +9 -9
- package/dist/core/src/harness-sdk.d.ts.map +1 -0
- package/dist/core/src/harness-targets.d.ts +71 -0
- package/dist/core/src/harness-targets.d.ts.map +1 -0
- package/dist/core/src/index.d.ts +8 -8
- package/dist/core/src/index.d.ts.map +1 -1
- package/dist/core/src/provider-registry.d.ts +2 -2
- package/dist/core/src/settings.d.ts +17 -16
- package/dist/core/src/settings.d.ts.map +1 -1
- package/dist/core/src/store.d.ts +12 -12
- package/dist/core/src/store.d.ts.map +1 -1
- package/dist/core/src/workspace-config.d.ts +31 -21
- package/dist/core/src/workspace-config.d.ts.map +1 -1
- package/dist/core/src/workspace-yaml-editor.d.ts +1 -1
- package/dist/core/src/workspace-yaml-editor.d.ts.map +1 -1
- package/dist/core/store.js +2 -2
- package/dist/core/workspace-config.js +2 -2
- package/dist/deploy/index.js +9 -9
- package/dist/discovery/index.js +2 -2
- package/dist/{ensure-sources-GKVLE6L5.js → ensure-sources-UPTHZKGF.js} +17 -17
- package/dist/{ensure-sources-GKVLE6L5.js.map → ensure-sources-UPTHZKGF.js.map} +1 -1
- package/dist/factory-assets/connectors/box.js +27 -27
- package/dist/factory-assets/connectors/deploy.js +27 -27
- package/dist/factory-assets/connectors/devserver.js +27 -27
- package/dist/factory-assets/connectors/flow/CONNECTOR.md +5 -5
- package/dist/factory-assets/connectors/flow/adapter.d.ts +3 -3
- package/dist/factory-assets/connectors/flow/adapter.d.ts.map +1 -1
- package/dist/factory-assets/connectors/flow/adapter.js +27 -27
- package/dist/factory-assets/connectors/flow/engine/types.d.ts +1 -1
- package/dist/factory-assets/connectors/flow/engine.js +9 -9
- package/dist/factory-assets/connectors/flow/inline-sub-flow-host.d.ts +2 -2
- package/dist/factory-assets/connectors/flow/inline-sub-flow-host.d.ts.map +1 -1
- package/dist/factory-assets/connectors/flow/orchestrator-turn.d.ts +4 -4
- package/dist/factory-assets/connectors/flow/orchestrator-turn.d.ts.map +1 -1
- package/dist/factory-assets/connectors/flow/prompt-fragments.d.ts +1 -1
- package/dist/factory-assets/connectors/flow/prompt-fragments.js +1 -1
- package/dist/factory-assets/connectors/flow/run-flow.d.ts +12 -12
- package/dist/factory-assets/connectors/flow/run-flow.d.ts.map +1 -1
- package/dist/factory-assets/connectors/flow/run-flow.js +28 -28
- package/dist/factory-assets/connectors/flow/sub-flow-runner.d.ts +1 -1
- package/dist/factory-assets/connectors/flow/sub-flow-runner.d.ts.map +1 -1
- package/dist/factory-assets/connectors/flow/subprompt-runner.d.ts +22 -22
- package/dist/factory-assets/connectors/flow/subprompt-runner.d.ts.map +1 -1
- package/dist/factory-assets/connectors/flow.js +27 -27
- package/dist/factory-assets/connectors/git.js +27 -27
- package/dist/factory-assets/connectors/gmail.js +27 -27
- package/dist/factory-assets/connectors/googledrive.js +27 -27
- package/dist/factory-assets/connectors/local.js +27 -27
- package/dist/factory-assets/connectors/mattermost.js +27 -27
- package/dist/factory-assets/connectors/memory.js +27 -27
- package/dist/factory-assets/connectors/minio.js +27 -27
- package/dist/factory-assets/connectors/postgres.js +27 -27
- package/dist/factory-assets/connectors/s3.js +27 -27
- package/dist/factory-assets/connectors/sharepoint.js +27 -27
- package/dist/factory-assets/connectors/sqlite.js +27 -27
- package/dist/factory-assets/connectors/static-server.js +27 -27
- package/dist/factory-assets/connectors/tunnel.js +27 -27
- package/dist/factory-assets/connectors/webdav.js +27 -27
- package/dist/factory-assets/connectors/xstate-store.js +27 -27
- package/dist/factory-assets/connectors/xstate.js +27 -27
- package/dist/factory-assets/skills/skaile-manage-workspace/SKILL.md +1 -1
- package/dist/{flows-W2FB7WIM.js → flows-TJQIMGUX.js} +13 -13
- package/dist/{flows-W2FB7WIM.js.map → flows-TJQIMGUX.js.map} +1 -1
- package/dist/{helpers-34QNVIGB.js → helpers-DE53KG3E.js} +17 -17
- package/dist/{helpers-34QNVIGB.js.map → helpers-DE53KG3E.js.map} +1 -1
- package/dist/library/index.js +11 -11
- package/dist/{library-publish-RUQTKTJU.js → library-publish-KKQ2ULLX.js} +55 -55
- package/dist/{library-publish-RUQTKTJU.js.map → library-publish-KKQ2ULLX.js.map} +1 -1
- package/dist/model-endpoint/index.js +12 -12
- package/dist/model-endpoint/src/resolve.d.ts +1 -1
- package/dist/{open-library-PVTIUQUF.js → open-library-RJGJIW5H.js} +20 -20
- package/dist/{open-library-PVTIUQUF.js.map → open-library-RJGJIW5H.js.map} +1 -1
- package/dist/open-registry-3QS3J7KO.js +32 -0
- package/dist/{open-registry-SOIS3TA2.js.map → open-registry-3QS3J7KO.js.map} +1 -1
- package/dist/paths-QAV4C3KX.js +22 -0
- package/dist/{paths-JLNX7Y4X.js.map → paths-QAV4C3KX.js.map} +1 -1
- package/dist/plugin-registry/index.js +1 -1
- package/dist/plugin-registry/src/context.d.ts +3 -3
- package/dist/plugin-registry/src/context.d.ts.map +1 -1
- package/dist/plugin-registry/src/deploy-handle.d.ts +1 -1
- package/dist/plugin-registry/src/index.d.ts +2 -2
- package/dist/plugin-registry/src/index.d.ts.map +1 -1
- package/dist/plugin-registry/src/internal.d.ts.map +1 -1
- package/dist/plugin-registry/src/registry.d.ts +3 -3
- package/dist/plugin-registry/src/registry.d.ts.map +1 -1
- package/dist/plugin-registry/src/targets.d.ts +9 -9
- package/dist/plugin-registry/src/targets.d.ts.map +1 -1
- package/dist/{plugin-store-G2GWAHSD.js → plugin-store-MSH6GK6T.js} +12 -12
- package/dist/{plugin-store-G2GWAHSD.js.map → plugin-store-MSH6GK6T.js.map} +1 -1
- package/dist/plugins/src/asset-kind-provider.d.ts +1 -1
- package/dist/project-HZW2MZPA.js +84 -0
- package/dist/{project-EX47PUBN.js.map → project-HZW2MZPA.js.map} +1 -1
- package/dist/resolver/index.js +8 -8
- package/dist/runner/index.js +42 -42
- package/dist/runner/src/agent.d.ts +3 -3
- package/dist/runner/src/agent.d.ts.map +1 -1
- package/dist/runner/src/agents/in-process-host.d.ts +1 -1
- package/dist/runner/src/agents/instances.d.ts +1 -1
- package/dist/runner/src/agents/instances.d.ts.map +1 -1
- package/dist/runner/src/agents/run-controller.d.ts +7 -7
- package/dist/runner/src/agents/run-controller.d.ts.map +1 -1
- package/dist/runner/src/agents/standalone-surface.d.ts +2 -2
- package/dist/runner/src/agents/standalone-surface.d.ts.map +1 -1
- package/dist/runner/src/ai-provider-switch.d.ts +7 -7
- package/dist/runner/src/assistant-home.d.ts +1 -1
- package/dist/runner/src/capability-registry.d.ts +2 -2
- package/dist/runner/src/coalesced-restart.d.ts +2 -2
- package/dist/runner/src/compaction/context-window.d.ts +8 -8
- package/dist/runner/src/compaction/context-window.d.ts.map +1 -1
- package/dist/runner/src/compaction/orchestrator.d.ts +24 -24
- package/dist/runner/src/compaction/orchestrator.d.ts.map +1 -1
- package/dist/runner/src/compaction-gate.d.ts +30 -30
- package/dist/runner/src/compaction-gate.d.ts.map +1 -1
- package/dist/runner/src/composition/dry-run.d.ts +2 -2
- package/dist/runner/src/composition/dry-run.d.ts.map +1 -1
- package/dist/runner/src/composition/resolve-instance.d.ts +2 -2
- package/dist/runner/src/composition/resolve.d.ts +1 -1
- package/dist/runner/src/config.d.ts +3 -3
- package/dist/runner/src/config.d.ts.map +1 -1
- package/dist/runner/src/context-usage/collector.d.ts +15 -15
- package/dist/runner/src/context-usage/collector.d.ts.map +1 -1
- package/dist/runner/src/context-usage/compose.d.ts +6 -6
- package/dist/runner/src/context-usage/compose.d.ts.map +1 -1
- package/dist/runner/src/context-usage/estimator.d.ts +1 -1
- package/dist/runner/src/context-usage/index.d.ts +1 -1
- package/dist/runner/src/context-usage/index.d.ts.map +1 -1
- package/dist/runner/src/context-usage/transcript-tracker.d.ts +2 -2
- package/dist/runner/src/context-usage/transcript-tracker.d.ts.map +1 -1
- package/dist/runner/src/credential-notice.d.ts +3 -3
- package/dist/runner/src/credential-notice.d.ts.map +1 -1
- package/dist/runner/src/credential-rotated.d.ts +1 -1
- package/dist/runner/src/final-text.d.ts +1 -1
- package/dist/runner/src/{driver-swap-gate.d.ts → harness-swap-gate.d.ts} +21 -21
- package/dist/runner/src/harness-swap-gate.d.ts.map +1 -0
- package/dist/runner/src/late-mcp-rebuild.d.ts +6 -6
- package/dist/runner/src/late-mcp-rebuild.d.ts.map +1 -1
- package/dist/runner/src/lifecycle-handler.d.ts +1 -1
- package/dist/runner/src/lifecycle-handler.d.ts.map +1 -1
- package/dist/runner/src/manifest.d.ts +1 -1
- package/dist/runner/src/mcp-runtime-handlers.d.ts +6 -6
- package/dist/runner/src/mcp-runtime-handlers.d.ts.map +1 -1
- package/dist/runner/src/model-endpoint-discovery.d.ts +1 -1
- package/dist/runner/src/pending-turns.d.ts +3 -3
- package/dist/runner/src/platform-blocks.d.ts +5 -5
- package/dist/runner/src/platform-blocks.d.ts.map +1 -1
- package/dist/runner/src/prompt-turn-queue.d.ts +1 -1
- package/dist/runner/src/provider-quota-forwarder.d.ts +1 -1
- package/dist/runner/src/provider-quota-forwarder.d.ts.map +1 -1
- package/dist/runner/src/reconfigure-handler.d.ts +14 -14
- package/dist/runner/src/reconfigure-handler.d.ts.map +1 -1
- package/dist/runner/src/resource-handler.d.ts +1 -1
- package/dist/runner/src/resources.d.ts +5 -5
- package/dist/runner/src/resources.d.ts.map +1 -1
- package/dist/runner/src/runner-capabilities.d.ts +7 -7
- package/dist/runner/src/runtime-session-emit.d.ts +5 -5
- package/dist/runner/src/runtime-session-emit.d.ts.map +1 -1
- package/dist/runner/src/s3-presign-client.d.ts +1 -1
- package/dist/runner/src/serve-credentials.d.ts +7 -7
- package/dist/runner/src/serve-credentials.d.ts.map +1 -1
- package/dist/runner/src/serve.d.ts +32 -32
- package/dist/runner/src/serve.d.ts.map +1 -1
- package/dist/runner/src/session-builder.d.ts +41 -41
- package/dist/runner/src/session-builder.d.ts.map +1 -1
- package/dist/runner/src/session-capability-wiring.d.ts +9 -9
- package/dist/runner/src/session-capability-wiring.d.ts.map +1 -1
- package/dist/runner/src/session-stimulus.d.ts +1 -1
- package/dist/runner/src/session.d.ts +5 -5
- package/dist/runner/src/session.d.ts.map +1 -1
- package/dist/runner/src/skill-staging.d.ts +16 -16
- package/dist/runner/src/skill-staging.d.ts.map +1 -1
- package/dist/runner/src/turn-end-contract.d.ts +5 -5
- package/dist/runner/src/turn-end-contract.d.ts.map +1 -1
- package/dist/runner/src/turn-scheduler.d.ts +22 -22
- package/dist/runner/src/turn-scheduler.d.ts.map +1 -1
- package/dist/runner/src/turn-status-replay.d.ts +1 -1
- package/dist/runner/src/usage-limit-turn-hold.d.ts +1 -1
- package/dist/sdk/asset-manager.js +14 -14
- package/dist/sdk/bridge.js +22 -22
- package/dist/sdk/core.js +8 -8
- package/dist/sdk/flow.js +9 -9
- package/dist/sdk/index.js +46 -46
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/resolver.js +8 -8
- package/dist/sdk/runner.js +42 -42
- package/dist/sdk/session.js +2 -2
- package/dist/sdk/src/agent-session.d.ts +1 -1
- package/dist/sdk/src/local-runtime.d.ts +1 -1
- package/dist/sdk/src/local-runtime.d.ts.map +1 -1
- package/dist/sdk/src/types.d.ts +1 -1
- package/dist/sdk/src/types.d.ts.map +1 -1
- package/dist/sdk/store.js +2 -2
- package/dist/sdk/transport/ws/server.js +9 -9
- package/dist/sdk/transport/ws.js +9 -9
- package/dist/sdk/transport.js +9 -9
- package/dist/sdk/types.js +1 -1
- package/dist/{serve-preflight-QXRKGOI5.js → serve-preflight-L4POEHNQ.js} +42 -42
- package/dist/serve-preflight-L4POEHNQ.js.map +1 -0
- package/dist/session/index.js +2 -2
- package/dist/session/src/dispatcher.d.ts +2 -2
- package/dist/sessions-2Q7SSYPT.js +5 -0
- package/dist/{sessions-DICDEONJ.js.map → sessions-2Q7SSYPT.js.map} +1 -1
- package/dist/{setup-AFZQNGKA.js → setup-AGYB4PKR.js} +47 -47
- package/dist/setup-AGYB4PKR.js.map +1 -0
- package/dist/{skills-YYYC6D5X.js → skills-2LMQ2IAD.js} +12 -12
- package/dist/{skills-YYYC6D5X.js.map → skills-2LMQ2IAD.js.map} +1 -1
- package/dist/source-GBMYD3RO.js +85 -0
- package/dist/{source-DGPCT5IC.js.map → source-GBMYD3RO.js.map} +1 -1
- package/dist/{source-manifest-publish-AGJ63JF2.js → source-manifest-publish-FK22TVQT.js} +54 -54
- package/dist/{source-manifest-publish-AGJ63JF2.js.map → source-manifest-publish-FK22TVQT.js.map} +1 -1
- package/dist/store/index.js +2 -2
- package/dist/store/src/store.d.ts +3 -3
- package/dist/store/src/store.d.ts.map +1 -1
- package/dist/transport/index.js +9 -9
- package/dist/transport/ws/server.js +9 -9
- package/dist/transport/ws.js +9 -9
- package/dist/tui/index.js +62 -62
- package/dist/tui/index.js.map +1 -1
- package/dist/tui/src/repl-session.d.ts +5 -5
- package/dist/tui/src/repl.d.ts +5 -5
- package/dist/tui/src/repl.d.ts.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/types/manifests.js +1 -1
- package/dist/types/src/agent-lifecycle.d.ts +1 -1
- package/dist/types/src/agent-lifecycle.d.ts.map +1 -1
- package/dist/types/src/ask-slots.d.ts +1 -1
- package/dist/types/src/capabilities.d.ts +1 -1
- package/dist/types/src/context-usage.d.ts +22 -22
- package/dist/types/src/context-usage.d.ts.map +1 -1
- package/dist/types/src/events.d.ts +49 -49
- package/dist/types/src/events.d.ts.map +1 -1
- package/dist/types/src/index.d.ts +2 -2
- package/dist/types/src/index.d.ts.map +1 -1
- package/dist/types/src/lifecycle.d.ts +6 -6
- package/dist/types/src/lifecycle.d.ts.map +1 -1
- package/dist/types/src/logging.d.ts +1 -1
- package/dist/types/src/manifests/agent.d.ts +3 -3
- package/dist/types/src/protocol.d.ts +4 -4
- package/dist/types/src/runtime.d.ts +38 -38
- package/dist/types/src/runtime.d.ts.map +1 -1
- package/dist/types/src/version.d.ts +22 -11
- package/dist/types/src/version.d.ts.map +1 -1
- package/dist/validator-DRHMJ457.js +5 -0
- package/dist/{validator-FA2PFW6N.js.map → validator-DRHMJ457.js.map} +1 -1
- package/dist/workspace-plugin/adapters/mcp.js +34 -34
- package/dist/workspace-plugin/adapters/omp.js +26 -26
- package/dist/workspace-plugin/adapters/omp.js.map +1 -1
- package/dist/workspace-plugin/index.js +3 -3
- package/dist/workspace-plugin/src/plugin.d.ts +5 -5
- package/dist/workspace-plugin/src/plugin.d.ts.map +1 -1
- package/dist/workspace-plugin/src/tools/flows.d.ts +1 -1
- package/dist/workspace-plugin/src/tools/validator.d.ts +6 -6
- package/dist/workspace-plugin/src/tools/validator.d.ts.map +1 -1
- package/dist/workspace-plugin/src/types.d.ts +2 -2
- package/dist/workspace-plugin/src/types.d.ts.map +1 -1
- package/package.json +59 -59
- package/dist/bridge/drivers/claude-sdk.js.map +0 -1
- package/dist/bridge/drivers/codex.js.map +0 -1
- package/dist/bridge/drivers/continue.js.map +0 -1
- package/dist/bridge/drivers/echo.js.map +0 -1
- package/dist/bridge/drivers/gemini.js +0 -18
- package/dist/bridge/drivers/goose.js.map +0 -1
- package/dist/bridge/drivers/omp.js.map +0 -1
- package/dist/bridge/drivers/opencode.js.map +0 -1
- package/dist/bridge/drivers/qwen.js.map +0 -1
- package/dist/bridge/src/codex/managed-driver.d.ts.map +0 -1
- package/dist/bridge/src/driver-capabilities.d.ts.map +0 -1
- package/dist/bridge/src/driver-model-check.d.ts.map +0 -1
- package/dist/bridge/src/drivers/_subprocess-cli.d.ts.map +0 -1
- package/dist/bridge/src/drivers/claude-context-usage.d.ts.map +0 -1
- package/dist/bridge/src/drivers/claude-sdk.d.ts.map +0 -1
- package/dist/bridge/src/drivers/claude-self-turns.d.ts.map +0 -1
- package/dist/bridge/src/drivers/claude-tool-allowlist.d.ts.map +0 -1
- package/dist/bridge/src/drivers/codex.d.ts.map +0 -1
- package/dist/bridge/src/drivers/continue.d.ts.map +0 -1
- package/dist/bridge/src/drivers/echo.d.ts.map +0 -1
- package/dist/bridge/src/drivers/flow-script.d.ts.map +0 -1
- package/dist/bridge/src/drivers/gemini.d.ts.map +0 -1
- package/dist/bridge/src/drivers/goose.d.ts.map +0 -1
- package/dist/bridge/src/drivers/omp-models-yml.d.ts.map +0 -1
- package/dist/bridge/src/drivers/omp.d.ts.map +0 -1
- package/dist/bridge/src/drivers/opencode.d.ts.map +0 -1
- package/dist/bridge/src/drivers/qwen.d.ts.map +0 -1
- package/dist/bridge/src/drivers/recovery-policy.d.ts.map +0 -1
- package/dist/bridge/src/drivers/resume-probe.d.ts.map +0 -1
- package/dist/bridge/src/drivers/sanitize-assistant-text.d.ts.map +0 -1
- package/dist/bridge/src/drivers/scrub-transcript.d.ts.map +0 -1
- package/dist/bridge/src/provider-materialize/env-drivers.d.ts.map +0 -1
- package/dist/chunk-2GXSSZAM.js.map +0 -1
- package/dist/chunk-4ZTPYIBE.js.map +0 -1
- package/dist/chunk-5BEFNLOR.js.map +0 -1
- package/dist/chunk-5TBFN46Z.js.map +0 -1
- package/dist/chunk-6E6PKKAD.js.map +0 -1
- package/dist/chunk-7NT4F6SR.js.map +0 -1
- package/dist/chunk-7SCS64BG.js.map +0 -1
- package/dist/chunk-AJ7EGIFR.js.map +0 -1
- package/dist/chunk-C7WBGSBV.js.map +0 -1
- package/dist/chunk-COJIL7G4.js.map +0 -1
- package/dist/chunk-CQJH4G2K.js.map +0 -1
- package/dist/chunk-EAZECHPM.js.map +0 -1
- package/dist/chunk-EPBKISS5.js.map +0 -1
- package/dist/chunk-FPHNJE4M.js.map +0 -1
- package/dist/chunk-HT35SQZD.js.map +0 -1
- package/dist/chunk-IG5LZ3WU.js.map +0 -1
- package/dist/chunk-IP2IPMEH.js.map +0 -1
- package/dist/chunk-IZCR27MU.js.map +0 -1
- package/dist/chunk-J24CY3PF.js.map +0 -1
- package/dist/chunk-JTOWA6RS.js.map +0 -1
- package/dist/chunk-L2AMXONH.js.map +0 -1
- package/dist/chunk-MJHSLODD.js.map +0 -1
- package/dist/chunk-MKRWN7XP.js.map +0 -1
- package/dist/chunk-MRHVPQNO.js.map +0 -1
- package/dist/chunk-N46LQR46.js.map +0 -1
- package/dist/chunk-QG6GHTRM.js.map +0 -1
- package/dist/chunk-RPZVHXQ3.js.map +0 -1
- package/dist/chunk-V257LUBM.js.map +0 -1
- package/dist/chunk-VJ7NU7GD.js.map +0 -1
- package/dist/chunk-VSZWNUZC.js.map +0 -1
- package/dist/chunk-W4Q6CKJ5.js.map +0 -1
- package/dist/chunk-WST6UITC.js.map +0 -1
- package/dist/chunk-XJVBUDDJ.js.map +0 -1
- package/dist/chunk-XWOPZW26.js.map +0 -1
- package/dist/chunk-Y56YIT6J.js.map +0 -1
- package/dist/chunk-YROR332M.js.map +0 -1
- package/dist/chunk-ZQSOJH6I.js.map +0 -1
- package/dist/claude-code-2PU7TITZ.js +0 -10
- package/dist/cli/src/driver-error.d.ts +0 -28
- package/dist/cli/src/driver-error.d.ts.map +0 -1
- package/dist/connectors-RBGZ3M7G.js +0 -48
- package/dist/core/driver-targets.d.ts +0 -2
- package/dist/core/driver-targets.js +0 -4
- package/dist/core/driver-targets.js.map +0 -1
- package/dist/core/src/driver-sdk.d.ts.map +0 -1
- package/dist/core/src/driver-targets.d.ts +0 -71
- package/dist/core/src/driver-targets.d.ts.map +0 -1
- package/dist/open-registry-SOIS3TA2.js +0 -32
- package/dist/paths-JLNX7Y4X.js +0 -22
- package/dist/project-EX47PUBN.js +0 -84
- package/dist/runner/src/driver-swap-gate.d.ts.map +0 -1
- package/dist/serve-preflight-QXRKGOI5.js.map +0 -1
- package/dist/sessions-DICDEONJ.js +0 -5
- package/dist/setup-AFZQNGKA.js.map +0 -1
- package/dist/source-DGPCT5IC.js +0 -85
- package/dist/validator-FA2PFW6N.js +0 -5
- /package/dist/bridge/{drivers → harnesses}/gemini.js.map +0 -0
package/dist/cli/index.js
CHANGED
|
@@ -1,65 +1,65 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { makeValidateCommand, scanIdentities, isRecord } from '../chunk-
|
|
2
|
+
import { makeValidateCommand, scanIdentities, isRecord } from '../chunk-NMI2TWMH.js';
|
|
3
3
|
import { storeNotInstallableReason } from '../chunk-PUK7TQT4.js';
|
|
4
|
-
import { makeProvidersCommand, loadRegistryView, addProviderEntry, ProviderRegistryWriteError, removeProviderEntry } from '../chunk-
|
|
5
|
-
import { makeInstallCommand, makeCheckCommand, makeCleanCommand, pinComposedAgents, reportRewritten, reportReplaced, reportRelocked, reportMoved, reportStoreNotChecked, globalProblems, editedConventionFiles, supportsInstallManifest, REF_HINT, reportInstalledSoftDeps } from '../chunk-
|
|
4
|
+
import { makeProvidersCommand, loadRegistryView, addProviderEntry, ProviderRegistryWriteError, removeProviderEntry } from '../chunk-3IXIEHUB.js';
|
|
5
|
+
import { makeInstallCommand, makeCheckCommand, makeCleanCommand, pinComposedAgents, reportRewritten, reportReplaced, reportRelocked, reportMoved, reportStoreNotChecked, globalProblems, editedConventionFiles, supportsInstallManifest, REF_HINT, reportInstalledSoftDeps } from '../chunk-WEH33JSG.js';
|
|
6
6
|
import { createSpinner } from '../chunk-NESV47MF.js';
|
|
7
|
-
import { getStoreConfig, storeFetch, isStoreAuthenticated, getStoreToken } from '../chunk-
|
|
8
|
-
import { makeSourceCommand, syncProjectSources, divergedSourceClones } from '../chunk-
|
|
9
|
-
import { deviceLogin, loadStoreAuthConfig, logout, hasStoredAuth, exitOnLibrarySymlinks, resolveLibraryPublisherDetailed, getStoreIdentity, warnLibraryNameFallback, indexLibrary, warnIgnoredDomainFiles, removedDomainOption, rejectRemovedDomainOption, requireValidPublisherOrExit, exitOnManifestPublisherProblems, findAssetManifestFile, checkAssetFile, registerLibraryAsset, DOMAIN_REMOVED_HINT, reportLibrarySymlinks, checkAsset, manifestPublisherProblems, exitOnManifestRootProblems, manifestRequiresProblems, composeRefContext, registeredAssetKeys, assetEntryRef, duplicateAssetMessage, unresolvedManifestDependencies, findEntryManifestFile, unheldRequiresOfFile, warnLegacyBundleFiles, checkComposeKinds } from '../chunk-
|
|
10
|
-
import { openCatalogSource, LocalCatalogDisabledError, openLibraryManager, openLibrary } from '../chunk-
|
|
11
|
-
import { AI_RESOURCES } from '../chunk-
|
|
12
|
-
import { loadDeclaredPlugins } from '../chunk-
|
|
13
|
-
import { status, enable, disable, install, uninstall } from '../chunk-
|
|
14
|
-
import { logErr, S, logOk, logInfo, logWarn, TARGET_DEFAULT_HINT, parseHarnessFilter, requireProjectConfig, deferredWarnings, warnPlaceholderBodies, warnFilesOnlyDelegates, reportLegacyOmpCopies, logNoProject, warnLegacyClaudeCopies, kindColorPad, kindColor, colorRef, formatSoftDepSection, bareSoftDepName, formatSoftDepHint, formatRelativeTime, formatSoftDepRemovePreview, formatSoftDepAddPreview, fitWidth, KIND_COL_WIDTH } from '../chunk-
|
|
15
|
-
import { getKindRegistry, getKnownKinds } from '../chunk-
|
|
7
|
+
import { getStoreConfig, storeFetch, isStoreAuthenticated, getStoreToken } from '../chunk-VXEYX73S.js';
|
|
8
|
+
import { makeSourceCommand, syncProjectSources, divergedSourceClones } from '../chunk-WYHQUCHR.js';
|
|
9
|
+
import { deviceLogin, loadStoreAuthConfig, logout, hasStoredAuth, exitOnLibrarySymlinks, resolveLibraryPublisherDetailed, getStoreIdentity, warnLibraryNameFallback, indexLibrary, warnIgnoredDomainFiles, removedDomainOption, rejectRemovedDomainOption, requireValidPublisherOrExit, exitOnManifestPublisherProblems, findAssetManifestFile, checkAssetFile, registerLibraryAsset, DOMAIN_REMOVED_HINT, reportLibrarySymlinks, checkAsset, manifestPublisherProblems, exitOnManifestRootProblems, manifestRequiresProblems, composeRefContext, registeredAssetKeys, assetEntryRef, duplicateAssetMessage, unresolvedManifestDependencies, findEntryManifestFile, unheldRequiresOfFile, warnLegacyBundleFiles, checkComposeKinds } from '../chunk-TKHJXPSB.js';
|
|
10
|
+
import { openCatalogSource, LocalCatalogDisabledError, openLibraryManager, openLibrary } from '../chunk-DHYSUJ3H.js';
|
|
11
|
+
import { AI_RESOURCES } from '../chunk-2UUKCROR.js';
|
|
12
|
+
import { loadDeclaredPlugins } from '../chunk-YGRZNFRO.js';
|
|
13
|
+
import { status, enable, disable, install, uninstall } from '../chunk-Y2TO2U7W.js';
|
|
14
|
+
import { logErr, S, logOk, logInfo, logWarn, TARGET_DEFAULT_HINT, parseHarnessFilter, requireProjectConfig, deferredWarnings, warnPlaceholderBodies, warnFilesOnlyDelegates, reportLegacyOmpCopies, logNoProject, warnLegacyClaudeCopies, kindColorPad, kindColor, colorRef, formatSoftDepSection, bareSoftDepName, formatSoftDepHint, formatRelativeTime, formatSoftDepRemovePreview, formatSoftDepAddPreview, fitWidth, KIND_COL_WIDTH } from '../chunk-KX2PT5Q4.js';
|
|
15
|
+
import { getKindRegistry, getKnownKinds } from '../chunk-ARWKK325.js';
|
|
16
16
|
import { LocalSecretsProvider } from '../chunk-ILFGVSTJ.js';
|
|
17
|
-
import { resolveInstanceAgentDir, instanceSessionOverrides, runAgentChat, isCompositionError, resolveSessionId, loadSessionById, loadSession, listSessions, setCurrentSession, deleteSession, clearSession, loadAgentManifest, hashAgentFiles, createCompositionContentSource, compileComposition,
|
|
18
|
-
import '../chunk-
|
|
19
|
-
import '../chunk-
|
|
20
|
-
import '../chunk-
|
|
21
|
-
import '../chunk-
|
|
22
|
-
import '../chunk-
|
|
23
|
-
import '../chunk-
|
|
17
|
+
import { resolveInstanceAgentDir, instanceSessionOverrides, runAgentChat, isCompositionError, resolveSessionId, loadSessionById, loadSession, listSessions, setCurrentSession, deleteSession, clearSession, loadAgentManifest, hashAgentFiles, createCompositionContentSource, compileComposition, manifestModelForHarness, instanceForSession, resolveAgentInstance, describeComposition, MarkdownStreamer, createFinalTextFallback } from '../chunk-VJRTDKXS.js';
|
|
18
|
+
import '../chunk-VBI7HGHB.js';
|
|
19
|
+
import '../chunk-OULSJRXV.js';
|
|
20
|
+
import '../chunk-7TPYPVAH.js';
|
|
21
|
+
import '../chunk-SRODW6M2.js';
|
|
22
|
+
import '../chunk-WYZXSJBK.js';
|
|
23
|
+
import '../chunk-U56GGCC2.js';
|
|
24
24
|
import '../chunk-6Z5KTFJT.js';
|
|
25
|
-
import '../chunk-
|
|
26
|
-
import '../chunk-
|
|
27
|
-
import '../chunk-
|
|
25
|
+
import '../chunk-KW37WNXY.js';
|
|
26
|
+
import '../chunk-3MWQKQUB.js';
|
|
27
|
+
import '../chunk-E3GPGTW3.js';
|
|
28
28
|
import '../chunk-O7SG5PC2.js';
|
|
29
29
|
import '../chunk-7QBNJTTQ.js';
|
|
30
30
|
import '../chunk-O2SYFJWP.js';
|
|
31
|
-
import '../chunk-
|
|
31
|
+
import '../chunk-AF432MS3.js';
|
|
32
32
|
import '../chunk-32NA4TVC.js';
|
|
33
33
|
import '../chunk-W3UDISS2.js';
|
|
34
|
-
import '../chunk-
|
|
35
|
-
import { runFlow, resumeFlow } from '../chunk-
|
|
34
|
+
import '../chunk-ZFUZ5AKM.js';
|
|
35
|
+
import { runFlow, resumeFlow } from '../chunk-T2BDID2J.js';
|
|
36
36
|
import '../chunk-4R6DROGN.js';
|
|
37
37
|
import { parseSkillRequirements, validateRequirements } from '../chunk-FKU57Q5Q.js';
|
|
38
38
|
import '../chunk-H6UVIKQ2.js';
|
|
39
|
-
import '../chunk-
|
|
40
|
-
import '../chunk-
|
|
41
|
-
import '../chunk-
|
|
42
|
-
import { checkModelProvider,
|
|
43
|
-
import '../chunk-
|
|
44
|
-
import '../chunk-
|
|
45
|
-
import '../chunk-
|
|
39
|
+
import '../chunk-SNEE6UGY.js';
|
|
40
|
+
import '../chunk-6GWSDPBP.js';
|
|
41
|
+
import '../chunk-LN6QB7XI.js';
|
|
42
|
+
import { checkModelProvider, checkHarnessModel } from '../chunk-4XWLB7JB.js';
|
|
43
|
+
import '../chunk-WDAIWDLK.js';
|
|
44
|
+
import '../chunk-4DWBSTYA.js';
|
|
45
|
+
import '../chunk-JDR6ILCW.js';
|
|
46
46
|
import '../chunk-LOO5CB5M.js';
|
|
47
|
-
import '../chunk-
|
|
48
|
-
import '../chunk-
|
|
49
|
-
import '../chunk-
|
|
50
|
-
import '../chunk-
|
|
51
|
-
import '../chunk-
|
|
52
|
-
import '../chunk-
|
|
53
|
-
import {
|
|
54
|
-
import '../chunk-
|
|
47
|
+
import '../chunk-BIRW3HOG.js';
|
|
48
|
+
import '../chunk-7CV3HFWJ.js';
|
|
49
|
+
import '../chunk-GEQSUC6U.js';
|
|
50
|
+
import '../chunk-XFIEVEU7.js';
|
|
51
|
+
import '../chunk-7DN6JKP2.js';
|
|
52
|
+
import '../chunk-UVVVR4XO.js';
|
|
53
|
+
import { listHarnesses, getProviderPreset, AI_PROVIDER_PRESETS } from '../chunk-F2GOZMRA.js';
|
|
54
|
+
import '../chunk-G5SUWZEU.js';
|
|
55
55
|
import '../chunk-IFGTRL2I.js';
|
|
56
|
-
import { loadFlow, flowLookupRoots, findFlowFileInRoots, loadAllFlowEntries } from '../chunk-
|
|
57
|
-
import '../chunk-
|
|
56
|
+
import { loadFlow, flowLookupRoots, findFlowFileInRoots, loadAllFlowEntries } from '../chunk-SZXGRHQQ.js';
|
|
57
|
+
import '../chunk-WD3L5QSU.js';
|
|
58
58
|
import { nodeLabel, nodeSkillAsset, nodeIsInert, nodeIsOptional, nodeRunKind } from '../chunk-7RGTAEG6.js';
|
|
59
|
-
import '../chunk-
|
|
60
|
-
import { LibraryEntryError, AssetManager, parseRefTolerant, MissingManifestError, parseCanonicalLockKey, normalizeRepoUrl, FACTORY_SOURCE_URL } from '../chunk-
|
|
61
|
-
import { CatalogHttpError, libraryDirMissing, missingLibraryDirMessage, cloneOrInitGitRepo, trackOriginBranch, stampManifestPublisher, isGitRepo, ensureGitRepo, conflictingAssetRoot, scanUnlistedAssets, setManifestPublisher, LIBRARY_OWNERSHIPS, assertManifestEditable, installLibraryAsset, getStoreManifestsDir, assertValidLibraryName, unparsableAssetFiles, syncManifestWithDisk, renamedLibraryName, storeManifestFile, getDefaultValue, isSecretPlaceholder } from '../chunk-
|
|
62
|
-
import { flowFileNameError, SEMVER_RE } from '../chunk-
|
|
59
|
+
import '../chunk-JCPD4QRM.js';
|
|
60
|
+
import { LibraryEntryError, AssetManager, parseRefTolerant, MissingManifestError, parseCanonicalLockKey, normalizeRepoUrl, FACTORY_SOURCE_URL } from '../chunk-OAHVKSQJ.js';
|
|
61
|
+
import { CatalogHttpError, libraryDirMissing, missingLibraryDirMessage, cloneOrInitGitRepo, trackOriginBranch, stampManifestPublisher, isGitRepo, ensureGitRepo, conflictingAssetRoot, scanUnlistedAssets, setManifestPublisher, LIBRARY_OWNERSHIPS, assertManifestEditable, installLibraryAsset, getStoreManifestsDir, assertValidLibraryName, unparsableAssetFiles, syncManifestWithDisk, renamedLibraryName, storeManifestFile, getDefaultValue, isSecretPlaceholder } from '../chunk-UL22SDGR.js';
|
|
62
|
+
import { flowFileNameError, SEMVER_RE } from '../chunk-QOM5Z62G.js';
|
|
63
63
|
import '../chunk-7XSAW5OC.js';
|
|
64
64
|
import '../chunk-BFMYYNDT.js';
|
|
65
65
|
import '../chunk-3TXEJN4W.js';
|
|
@@ -67,28 +67,28 @@ import '../chunk-ISHJITXJ.js';
|
|
|
67
67
|
import '../chunk-LNFKL23K.js';
|
|
68
68
|
import '../chunk-X3RMRJNR.js';
|
|
69
69
|
import '../chunk-NUELZWCF.js';
|
|
70
|
-
import { installTargetOf, SCAFFOLD_KINDS } from '../chunk-
|
|
70
|
+
import { installTargetOf, SCAFFOLD_KINDS } from '../chunk-3JKGY2YC.js';
|
|
71
71
|
import '../chunk-NOA6EJXE.js';
|
|
72
72
|
import '../chunk-KTBKW2FI.js';
|
|
73
73
|
import '../chunk-UQ6LFBPZ.js';
|
|
74
|
-
import '../chunk-
|
|
75
|
-
import { effectiveComposes, validatePreset, validateAgent, composeSlotDiagnostics, agentDeprecationDiagnostics, SLOT_ID_PATTERN } from '../chunk-
|
|
76
|
-
import { loadSettings, globalSettingsPath, resolveSettings, projectSettingsPath, saveSettings, WorkspaceYamlEditor, resolveLibraryDir, checkAgentSkillConformance, resolveSettingsWithSources, readLock, globalInstallDir, GLOBAL_INSTALL_DIR_NAME, workspaceProviderRegistryPath, userProviderRegistryPath, loadProviderRegistryFile, aiResourceRoots } from '../chunk-
|
|
74
|
+
import '../chunk-DUMTLYSO.js';
|
|
75
|
+
import { effectiveComposes, validatePreset, validateAgent, composeSlotDiagnostics, agentDeprecationDiagnostics, SLOT_ID_PATTERN } from '../chunk-E572OHGY.js';
|
|
76
|
+
import { loadSettings, globalSettingsPath, resolveSettings, projectSettingsPath, saveSettings, WorkspaceYamlEditor, resolveLibraryDir, checkAgentSkillConformance, resolveSettingsWithSources, readLock, globalInstallDir, GLOBAL_INSTALL_DIR_NAME, workspaceProviderRegistryPath, userProviderRegistryPath, loadProviderRegistryFile, aiResourceRoots } from '../chunk-L4YKW5AY.js';
|
|
77
77
|
import '../chunk-4GY63JU6.js';
|
|
78
|
-
import { factoryAssetRoots } from '../chunk-
|
|
79
|
-
import { deployedDir } from '../chunk-
|
|
80
|
-
import {
|
|
78
|
+
import { factoryAssetRoots } from '../chunk-OTIB4D2K.js';
|
|
79
|
+
import { deployedDir } from '../chunk-5KRMNUL4.js';
|
|
80
|
+
import { DEFAULT_HARNESS_ID, HARNESS_DEFAULTS } from '../chunk-Z7ZEZZB6.js';
|
|
81
81
|
import { findKindDirs } from '../chunk-MWXYN6NY.js';
|
|
82
|
-
import { SourceEntryError, LegacyKeyError, resolveSkWorkspaceConfig, sourceCacheKey, getGlobalCacheDir, resolveAgentDir, AgentRefResolutionError, resolveAgentDefinitionDir, effectiveAgentInstances, matchPin, coerceVersion, loadSkWorkspaceConfig, isWorkspaceConfigFilename } from '../chunk-
|
|
82
|
+
import { SourceEntryError, LegacyKeyError, resolveSkWorkspaceConfig, sourceCacheKey, getGlobalCacheDir, resolveAgentDir, AgentRefResolutionError, resolveAgentDefinitionDir, effectiveAgentInstances, matchPin, coerceVersion, loadSkWorkspaceConfig, findWorkspaceRoot, isWorkspaceConfigFilename, SKAILE_YAML_DEFAULT, AGENT_PROFILE_FIELDS } from '../chunk-OHNKYHRR.js';
|
|
83
83
|
import { globalCacheRoot, globalSkaileDir, userConfigPath } from '../chunk-L5VSIPQD.js';
|
|
84
|
-
import {
|
|
84
|
+
import { HARNESS_TARGETS, SUPPORTED_HARNESSES, harnessNameForHarnessId } from '../chunk-VTETQCR6.js';
|
|
85
85
|
import { SKAILE_MANIFEST_FILENAME, loadSkPublishManifest, decodeSkaileManifest, LIBRARY_GITIGNORE, librarySymlinkMessage, isNonAssetPath, isNonAssetDir, encodeSkaileManifest } from '../chunk-UQ33Y4DM.js';
|
|
86
86
|
import { pluginTitle } from '../chunk-RVRB27AN.js';
|
|
87
87
|
import { dedupeRequirements, parseFrontmatter, scanDirectory, parseRequires } from '../chunk-GOCWM7FN.js';
|
|
88
88
|
import { parseAssetRef, isValidPublisher, PUBLISHER_HINT, isValidAssetName, ASSET_NAME_HINT, depToStr, assetRefToStr, slugifyAssetName, parseAssetRefLoose } from '../chunk-WDXZA7QW.js';
|
|
89
|
-
import { portableSpawn, portableSpawnSync } from '../chunk-
|
|
89
|
+
import { portableSpawn, portableSpawnSync } from '../chunk-ADPM6AYF.js';
|
|
90
90
|
import { openSqlite } from '../chunk-DKXNKFKP.js';
|
|
91
|
-
import { parseModelRef, resolveEntryBaseUrl } from '../chunk-
|
|
91
|
+
import { parseModelRef, resolveEntryBaseUrl } from '../chunk-LSI2IVFT.js';
|
|
92
92
|
import '../chunk-C3CAXQMA.js';
|
|
93
93
|
import { registerLogStore, LogStore, StdoutSink } from '../chunk-BOFL7GIF.js';
|
|
94
94
|
import '../chunk-NSBPE2FW.js';
|
|
@@ -233,7 +233,7 @@ async function runSearch(kind, query, opts) {
|
|
|
233
233
|
}
|
|
234
234
|
}
|
|
235
235
|
async function searchIndex(query, kind) {
|
|
236
|
-
const { openLibrary: openLibrary2 } = await import('../open-library-
|
|
236
|
+
const { openLibrary: openLibrary2 } = await import('../open-library-RJGJIW5H.js');
|
|
237
237
|
const library = await openLibrary2();
|
|
238
238
|
try {
|
|
239
239
|
const { libraryDirMissing: libraryDirMissing2 } = await import('../library/index.js');
|
|
@@ -385,14 +385,14 @@ async function expandCompetingOrigins(entries, projectDir) {
|
|
|
385
385
|
}
|
|
386
386
|
async function searchLocal(query, kind, opts, showStore, airGapped) {
|
|
387
387
|
const projectDir = path18__default.resolve(opts.projectDir);
|
|
388
|
-
const { restoreSourceReaders } = await import('../source-
|
|
388
|
+
const { restoreSourceReaders } = await import('../source-GBMYD3RO.js');
|
|
389
389
|
for (const name of await restoreSourceReaders(projectDir)) {
|
|
390
390
|
logInfo(`Re-registered source "${name}" (its library entry was removed elsewhere).`);
|
|
391
391
|
}
|
|
392
392
|
const factory = await searchFactory(projectDir, query, kind);
|
|
393
393
|
let entries = unionEntries(await searchIndex(query, kind), factory);
|
|
394
394
|
if (entries.length === 0 && !query && !kind && !airGapped) {
|
|
395
|
-
const { autoSyncForSearch } = await import('../source-
|
|
395
|
+
const { autoSyncForSearch } = await import('../source-GBMYD3RO.js');
|
|
396
396
|
if (await autoSyncForSearch(projectDir)) {
|
|
397
397
|
entries = unionEntries(await searchIndex(query, kind), factory);
|
|
398
398
|
}
|
|
@@ -506,7 +506,7 @@ async function searchStore(query, kind, opts, airGapped) {
|
|
|
506
506
|
logInfo("air-gapped (cache_ttl: 0) \u2014 local sources only");
|
|
507
507
|
return;
|
|
508
508
|
}
|
|
509
|
-
const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-
|
|
509
|
+
const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-RJGJIW5H.js');
|
|
510
510
|
try {
|
|
511
511
|
const remote = await openCatalogSource2({ projectDir: path18__default.resolve(opts.projectDir) });
|
|
512
512
|
const assets = await remote.listAssets(kind ? { kind } : {});
|
|
@@ -615,7 +615,7 @@ function makeAddCommand() {
|
|
|
615
615
|
return new Command("add").description("Add to skaile.yaml + deploy").argument("<ref>", "Asset reference (kind:@<publisher>/name#<version>)").option("--project-dir <path>", "Project directory", process.cwd()).option("--global", "Record in ~/.skaile/skaile.yaml + deploy to every global harness").option(
|
|
616
616
|
"--harness <ids>",
|
|
617
617
|
"Comma-separated global harnesses to deploy into (default: all resolved); implies --global"
|
|
618
|
-
).option("--target <agent>", `
|
|
618
|
+
).option("--target <agent>", `Harness target (${TARGET_DEFAULT_HINT})`).option(
|
|
619
619
|
"--link",
|
|
620
620
|
"symlink local-path assets instead of copying (dev loop; machine-local, not for committing)"
|
|
621
621
|
).option(
|
|
@@ -638,7 +638,7 @@ function makeAddCommand() {
|
|
|
638
638
|
projectDir: path18__default.resolve(opts.projectDir),
|
|
639
639
|
global: opts.global || harnesses !== void 0,
|
|
640
640
|
harnesses,
|
|
641
|
-
|
|
641
|
+
harness: opts.target,
|
|
642
642
|
verboseCollisions: opts.verbose === true,
|
|
643
643
|
onLibraryCollision: (msg, keys) => {
|
|
644
644
|
collisionKeys.push(...keys ?? [msg.split(" exists in ")[0]]);
|
|
@@ -706,7 +706,7 @@ function makeAddCommand() {
|
|
|
706
706
|
);
|
|
707
707
|
} else if (!installTargetOf(getKindRegistry(), kind))
|
|
708
708
|
logInfo(
|
|
709
|
-
`Recorded in skaile.yaml (store bytes are fetched + verified into .skaile/cache/store). ${kind} assets are not deployed into the
|
|
709
|
+
`Recorded in skaile.yaml (store bytes are fetched + verified into .skaile/cache/store). ${kind} assets are not deployed into the harness target \u2014 they are composed when skaile runs the agent.`
|
|
710
710
|
);
|
|
711
711
|
else logInfo("Nothing to deploy (already up to date).");
|
|
712
712
|
} else {
|
|
@@ -715,7 +715,7 @@ function makeAddCommand() {
|
|
|
715
715
|
logOk(library ? `${a} (library ${library})` : a);
|
|
716
716
|
}
|
|
717
717
|
warnPlaceholderBodies(placeholderBodies, placeholderDescriptions);
|
|
718
|
-
if (!am2.global) warnFilesOnlyDelegates(am2.projectDir, am2.
|
|
718
|
+
if (!am2.global) warnFilesOnlyDelegates(am2.projectDir, am2.harness);
|
|
719
719
|
if (am2.global) {
|
|
720
720
|
for (const a of added) {
|
|
721
721
|
const { kind, name } = parseAssetRef(a);
|
|
@@ -764,7 +764,7 @@ function makeRemoveCommand() {
|
|
|
764
764
|
return new Command("remove").description("Remove from skaile.yaml + undeploy").argument("<ref>", "Asset reference (kind:@publisher/name, or kind:name)").option("--project-dir <path>", "Project directory", process.cwd()).option("--global", "Remove from ~/.skaile/skaile.yaml + undeploy from every global harness").option(
|
|
765
765
|
"--harness <ids>",
|
|
766
766
|
"Comma-separated global harnesses to undeploy from (default: all resolved); implies --global"
|
|
767
|
-
).option("--target <agent>", `
|
|
767
|
+
).option("--target <agent>", `Harness target (${TARGET_DEFAULT_HINT})`).option(
|
|
768
768
|
"--force",
|
|
769
769
|
"Remove even when another installed asset requires it, or when the folder is not one the lock holds"
|
|
770
770
|
).option("--no-soft-deps", "skip the orphaned-soft-dep prompt (don't remove, don't report)").action(async (ref, opts) => {
|
|
@@ -776,7 +776,7 @@ function makeRemoveCommand() {
|
|
|
776
776
|
projectDir: path18__default.resolve(opts.projectDir),
|
|
777
777
|
global: opts.global || harnesses !== void 0,
|
|
778
778
|
harnesses,
|
|
779
|
-
|
|
779
|
+
harness: opts.target
|
|
780
780
|
});
|
|
781
781
|
let result;
|
|
782
782
|
try {
|
|
@@ -834,8 +834,8 @@ function makeListCommand() {
|
|
|
834
834
|
"-g, --global",
|
|
835
835
|
"Read the global SSOT (~/.skaile/skaile.yaml); report state per harness"
|
|
836
836
|
).option("--harness <ids>", "Comma-separated global harnesses to report (implies --global)").option("--json", "Output as JSON").addOption(
|
|
837
|
-
new Option("--target <agent>", `
|
|
838
|
-
|
|
837
|
+
new Option("--target <agent>", `Harness target (${TARGET_DEFAULT_HINT})`).choices(
|
|
838
|
+
SUPPORTED_HARNESSES
|
|
839
839
|
)
|
|
840
840
|
).action(async (kind, opts) => {
|
|
841
841
|
const harnesses = parseHarnessFilter(opts.harness);
|
|
@@ -846,7 +846,7 @@ function makeListCommand() {
|
|
|
846
846
|
const am2 = new AssetManager({
|
|
847
847
|
registry: getKindRegistry(),
|
|
848
848
|
projectDir: path18__default.resolve(opts.projectDir),
|
|
849
|
-
|
|
849
|
+
harness: opts.target
|
|
850
850
|
});
|
|
851
851
|
let declared;
|
|
852
852
|
try {
|
|
@@ -1014,7 +1014,7 @@ async function resolveInfoEntry(am2, ref, opts) {
|
|
|
1014
1014
|
return { entry: match ?? deployed };
|
|
1015
1015
|
}
|
|
1016
1016
|
const lookup = opts.storeLookup ?? (async (filter) => {
|
|
1017
|
-
const { resolveCatalogSource } = await import('../open-library-
|
|
1017
|
+
const { resolveCatalogSource } = await import('../open-library-RJGJIW5H.js');
|
|
1018
1018
|
const { source, close } = await resolveCatalogSource({ projectDir: opts.projectDir });
|
|
1019
1019
|
try {
|
|
1020
1020
|
return await source.listAssets(filter);
|
|
@@ -1030,7 +1030,7 @@ async function resolveInfoEntry(am2, ref, opts) {
|
|
|
1030
1030
|
);
|
|
1031
1031
|
return { entry: hit ? catalogAssetToEntry(hit) : null };
|
|
1032
1032
|
} catch (err) {
|
|
1033
|
-
const { LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-
|
|
1033
|
+
const { LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-RJGJIW5H.js');
|
|
1034
1034
|
const storeNote = err instanceof Error ? err.message : String(err);
|
|
1035
1035
|
const disabled = err instanceof LocalCatalogDisabledError2 || /catalog\.url/i.test(storeNote);
|
|
1036
1036
|
return { entry: null, storeNote, ...disabled ? { storeDisabled: true } : {} };
|
|
@@ -1741,7 +1741,7 @@ function makeCatalogCommand() {
|
|
|
1741
1741
|
return catalog;
|
|
1742
1742
|
}
|
|
1743
1743
|
async function runLocalCatalogTest(projectDir) {
|
|
1744
|
-
const { resolveCatalogSource } = await import('../open-library-
|
|
1744
|
+
const { resolveCatalogSource } = await import('../open-library-RJGJIW5H.js');
|
|
1745
1745
|
let resolved;
|
|
1746
1746
|
try {
|
|
1747
1747
|
resolved = await resolveCatalogSource({ projectDir });
|
|
@@ -1917,7 +1917,7 @@ async function scanLibraryFlowEntries() {
|
|
|
1917
1917
|
const { LocalIndex, resolveIndexPath, scanAuthoringLibraries } = await import('../library/index.js');
|
|
1918
1918
|
const indexPath = resolveIndexPath();
|
|
1919
1919
|
if (!existsSync(indexPath)) return entries;
|
|
1920
|
-
const { getKindRegistry: getKindRegistry2 } = await import('../open-registry-
|
|
1920
|
+
const { getKindRegistry: getKindRegistry2 } = await import('../open-registry-3QS3J7KO.js');
|
|
1921
1921
|
const index = new LocalIndex({ indexPath });
|
|
1922
1922
|
try {
|
|
1923
1923
|
for (const { library, assets } of await scanAuthoringLibraries(index, getKindRegistry2())) {
|
|
@@ -2023,7 +2023,7 @@ function resolveSessionIds(projectDir) {
|
|
|
2023
2023
|
return [];
|
|
2024
2024
|
}
|
|
2025
2025
|
}
|
|
2026
|
-
var CONFIG_KEYS = ["provider", "model", "
|
|
2026
|
+
var CONFIG_KEYS = ["provider", "model", "harness", "framework", "projectDir", "apiKey"];
|
|
2027
2027
|
|
|
2028
2028
|
// cli/src/commands/complete.ts
|
|
2029
2029
|
function makeCompleteCommand(program2) {
|
|
@@ -2070,14 +2070,26 @@ function resolveDynamic(words, cword) {
|
|
|
2070
2070
|
if (cmd === "config" && ["get", "set"].includes(sub) && isLast(3)) return CONFIG_KEYS;
|
|
2071
2071
|
return null;
|
|
2072
2072
|
}
|
|
2073
|
-
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
-
|
|
2077
|
-
|
|
2078
|
-
|
|
2073
|
+
function unknownHarnessMessage(harness) {
|
|
2074
|
+
const known = listHarnesses().map((d) => d.id);
|
|
2075
|
+
if (known.includes(harness)) return void 0;
|
|
2076
|
+
return `Unknown agent harness: "${harness}". Available: ${known.join(", ")}`;
|
|
2077
|
+
}
|
|
2078
|
+
var warnedDriverFlag = false;
|
|
2079
|
+
function warnDriverFlagDeprecated() {
|
|
2080
|
+
if (warnedDriverFlag) return;
|
|
2081
|
+
warnedDriverFlag = true;
|
|
2082
|
+
console.error("--driver is deprecated; use --harness");
|
|
2083
|
+
}
|
|
2084
|
+
function driverAliasOption() {
|
|
2085
|
+
return new Option("--driver <name>", "Deprecated alias of --harness").hideHelp();
|
|
2079
2086
|
}
|
|
2080
|
-
function
|
|
2087
|
+
function foldDriverFlag(opts, fallback) {
|
|
2088
|
+
const { driver, ...rest } = opts;
|
|
2089
|
+
if (driver !== void 0) warnDriverFlagDeprecated();
|
|
2090
|
+
return { ...rest, harness: rest.harness ?? driver ?? fallback };
|
|
2091
|
+
}
|
|
2092
|
+
function friendlyHarnessError(err) {
|
|
2081
2093
|
const e = err;
|
|
2082
2094
|
if (!e) return null;
|
|
2083
2095
|
const isSpawnEnoent = e.code === "ENOENT" && (e.syscall?.startsWith("spawn") === true || /^spawn .*ENOENT/.test(e.message ?? ""));
|
|
@@ -2086,9 +2098,9 @@ function friendlyDriverError(err) {
|
|
|
2086
2098
|
const hint = e.hint ?? e.detail?.hint;
|
|
2087
2099
|
const base = hint ?? "The configured agent binary is not installed or not on your PATH.";
|
|
2088
2100
|
return `${base}
|
|
2089
|
-
Try a different harness with \`--
|
|
2101
|
+
Try a different harness with \`--harness claude-sdk\`.`;
|
|
2090
2102
|
}
|
|
2091
|
-
function
|
|
2103
|
+
function harnessErrorNotes(err) {
|
|
2092
2104
|
const e = err;
|
|
2093
2105
|
const notes = [];
|
|
2094
2106
|
const category = e?.category ?? e?.detail?.category;
|
|
@@ -2102,7 +2114,12 @@ function driverErrorNotes(err) {
|
|
|
2102
2114
|
}
|
|
2103
2115
|
|
|
2104
2116
|
// cli/src/commands/config.ts
|
|
2105
|
-
var PERSONAL_KEYS = /* @__PURE__ */ new Set(["
|
|
2117
|
+
var PERSONAL_KEYS = /* @__PURE__ */ new Set(["harness", "model"]);
|
|
2118
|
+
function resolveDriverKeyAlias(key) {
|
|
2119
|
+
if (key !== "driver") return key;
|
|
2120
|
+
console.error("`driver` is deprecated; use `harness`");
|
|
2121
|
+
return "harness";
|
|
2122
|
+
}
|
|
2106
2123
|
var CATALOG_KEYS = /* @__PURE__ */ new Set(["catalog.url", "catalog.cache_ttl", "catalog.framing"]);
|
|
2107
2124
|
async function setCatalogKey(key, raw) {
|
|
2108
2125
|
const { CatalogConfigSchema, saveConfig } = await import('../library/index.js');
|
|
@@ -2160,7 +2177,7 @@ function collectWorkspaceDefaults(projectDir) {
|
|
|
2160
2177
|
const wsDefaults = {};
|
|
2161
2178
|
const ws = resolveSkWorkspaceConfig(projectDir);
|
|
2162
2179
|
const p6 = ws.agent_config?.default ?? {};
|
|
2163
|
-
if (p6.
|
|
2180
|
+
if (p6.harness) wsDefaults.harness = p6.harness;
|
|
2164
2181
|
if (p6.model) wsDefaults.model = p6.model;
|
|
2165
2182
|
if (p6.skills_dir) wsDefaults.skills_dir = p6.skills_dir;
|
|
2166
2183
|
if (p6.agents_dir) wsDefaults.agents_dir = p6.agents_dir;
|
|
@@ -2174,7 +2191,7 @@ function printEffectiveSection(config, sources) {
|
|
|
2174
2191
|
console.log();
|
|
2175
2192
|
console.log(S.heading(" Effective Config"));
|
|
2176
2193
|
console.log(` ${S.rule(40)}`);
|
|
2177
|
-
for (const key of ["
|
|
2194
|
+
for (const key of ["harness", "model"]) {
|
|
2178
2195
|
const value = config[key];
|
|
2179
2196
|
if (value !== void 0) {
|
|
2180
2197
|
const origin = sources[key];
|
|
@@ -2201,7 +2218,7 @@ function printModelSelectionSection(config, projectDir) {
|
|
|
2201
2218
|
console.log(` ${S.rule(40)}`);
|
|
2202
2219
|
const selector = config.model;
|
|
2203
2220
|
if (!selector) {
|
|
2204
|
-
console.log(` ${S.dim("no model: selector \u2014 the
|
|
2221
|
+
console.log(` ${S.dim("no model: selector \u2014 the harness applies its own default")}`);
|
|
2205
2222
|
} else {
|
|
2206
2223
|
const resolved = parseModelRef(selector, registry, config.roles);
|
|
2207
2224
|
if (!resolved) {
|
|
@@ -2233,8 +2250,8 @@ function printModelSelectionSection(config, projectDir) {
|
|
|
2233
2250
|
}
|
|
2234
2251
|
}
|
|
2235
2252
|
function printResolvedPathsSection(config) {
|
|
2236
|
-
const fw = config.
|
|
2237
|
-
const paths =
|
|
2253
|
+
const fw = config.harness ?? DEFAULT_HARNESS_ID;
|
|
2254
|
+
const paths = HARNESS_DEFAULTS[fw] ?? HARNESS_DEFAULTS[DEFAULT_HARNESS_ID];
|
|
2238
2255
|
if (!paths) return;
|
|
2239
2256
|
console.log();
|
|
2240
2257
|
console.log(` ${S.heading("Resolved Paths")} ${S.dim(`(${fw})`)}`);
|
|
@@ -2309,7 +2326,8 @@ function unsetApiKeySugar(provider, projectDir) {
|
|
|
2309
2326
|
function makeConfigCommand() {
|
|
2310
2327
|
const cmd = new Command("config").description("Manage personal config (.skaile/settings.json)");
|
|
2311
2328
|
cmd.command("show").description("Show effective config with sources").option("--project-dir <path>", "Project directory").action((opts) => showConfig(opts));
|
|
2312
|
-
cmd.command("get <key>").description("Get an effective config value").option("--project-dir <path>", "Project directory").option("--global", "Read ~/.skaile/settings.json only, not the project's value").action(async (
|
|
2329
|
+
cmd.command("get <key>").description("Get an effective config value").option("--project-dir <path>", "Project directory").option("--global", "Read ~/.skaile/settings.json only, not the project's value").action(async (rawKey, opts) => {
|
|
2330
|
+
const key = resolveDriverKeyAlias(rawKey);
|
|
2313
2331
|
const projectDir = opts.projectDir ? path18__default.resolve(opts.projectDir) : process.cwd();
|
|
2314
2332
|
if (CATALOG_KEYS.has(key)) {
|
|
2315
2333
|
const { resolveConfig } = await import('../library/index.js');
|
|
@@ -2322,74 +2340,78 @@ function makeConfigCommand() {
|
|
|
2322
2340
|
console.log(value ?? S.dim("(not set)"));
|
|
2323
2341
|
});
|
|
2324
2342
|
cmd.command("set <key> <value>").description(
|
|
2325
|
-
"Set a personal config value (
|
|
2326
|
-
).option("--project-dir <path>", "Project directory").option("--global", "Write to ~/.skaile/settings.json instead of project-local").action(
|
|
2327
|
-
|
|
2328
|
-
|
|
2329
|
-
|
|
2330
|
-
|
|
2331
|
-
|
|
2332
|
-
|
|
2333
|
-
|
|
2334
|
-
|
|
2343
|
+
"Set a personal config value (harness, model, apiKey.<provider>) or a catalog setting (catalog.url, catalog.cache_ttl, catalog.framing). `config unset <key>` removes every one of them again"
|
|
2344
|
+
).option("--project-dir <path>", "Project directory").option("--global", "Write to ~/.skaile/settings.json instead of project-local").action(
|
|
2345
|
+
async (rawKey, value, opts) => {
|
|
2346
|
+
const key = resolveDriverKeyAlias(rawKey);
|
|
2347
|
+
const projectDir = opts.projectDir ? path18__default.resolve(opts.projectDir) : process.cwd();
|
|
2348
|
+
if (CATALOG_KEYS.has(key)) {
|
|
2349
|
+
await setCatalogKey(key, value);
|
|
2350
|
+
return;
|
|
2351
|
+
}
|
|
2352
|
+
if (key === "provider" || key === "cloud" || key === "cloudConfig") {
|
|
2353
|
+
logErr(
|
|
2354
|
+
`'${key}' is no longer a setting \u2014 an endpoint is an AI provider registry entry and a session selects one with a model reference.
|
|
2335
2355
|
Define it: skaile providers add <id> --preset <preset>
|
|
2336
2356
|
Select it: skaile config set model <providerId>/<modelId>`
|
|
2337
|
-
|
|
2338
|
-
|
|
2339
|
-
|
|
2340
|
-
|
|
2341
|
-
|
|
2342
|
-
|
|
2343
|
-
|
|
2357
|
+
);
|
|
2358
|
+
process.exit(1);
|
|
2359
|
+
}
|
|
2360
|
+
const isApiKey = key.startsWith(API_KEY_PREFIX);
|
|
2361
|
+
if (!PERSONAL_KEYS.has(key) && !isApiKey) {
|
|
2362
|
+
logErr(
|
|
2363
|
+
`'${key}' is not a personal setting.
|
|
2344
2364
|
Personal keys: ${[...PERSONAL_KEYS].join(", ")}, ${API_KEY_PREFIX}<provider>
|
|
2345
|
-
Project config (
|
|
2346
|
-
|
|
2347
|
-
process.exit(1);
|
|
2348
|
-
}
|
|
2349
|
-
if (isApiKey) {
|
|
2350
|
-
setApiKeySugar(key.slice(API_KEY_PREFIX.length), value, projectDir);
|
|
2351
|
-
return;
|
|
2352
|
-
}
|
|
2353
|
-
if (key === "driver") {
|
|
2354
|
-
await loadDeclaredPlugins(projectDir);
|
|
2355
|
-
const unknown = unknownDriverMessage(value);
|
|
2356
|
-
if (unknown) {
|
|
2357
|
-
logErr(unknown);
|
|
2365
|
+
Project config (harness, model, paths, resources) belongs in skaile.yaml`
|
|
2366
|
+
);
|
|
2358
2367
|
process.exit(1);
|
|
2359
2368
|
}
|
|
2360
|
-
|
|
2361
|
-
|
|
2362
|
-
|
|
2363
|
-
|
|
2364
|
-
|
|
2365
|
-
|
|
2366
|
-
|
|
2367
|
-
|
|
2368
|
-
|
|
2369
|
-
|
|
2370
|
-
|
|
2371
|
-
|
|
2372
|
-
|
|
2373
|
-
|
|
2374
|
-
const
|
|
2375
|
-
|
|
2376
|
-
|
|
2369
|
+
if (isApiKey) {
|
|
2370
|
+
setApiKeySugar(key.slice(API_KEY_PREFIX.length), value, projectDir);
|
|
2371
|
+
return;
|
|
2372
|
+
}
|
|
2373
|
+
if (key === "harness") {
|
|
2374
|
+
await loadDeclaredPlugins(projectDir);
|
|
2375
|
+
const unknown = unknownHarnessMessage(value);
|
|
2376
|
+
if (unknown) {
|
|
2377
|
+
logErr(unknown);
|
|
2378
|
+
process.exit(1);
|
|
2379
|
+
}
|
|
2380
|
+
}
|
|
2381
|
+
const projectHarness = key === "harness" ? resolveSkWorkspaceConfig(projectDir).agent_config?.default?.harness : void 0;
|
|
2382
|
+
const filePath = opts.global ? globalSettingsPath() : projectSettingsPath(projectDir);
|
|
2383
|
+
const existing = await loadSettings(filePath);
|
|
2384
|
+
await saveSettings({ ...existing, [key]: value }, filePath);
|
|
2385
|
+
logOk(`Set ${pc5.bold(key)} = ${value}`);
|
|
2386
|
+
console.log(S.dim(` \u2192 ${filePath}`));
|
|
2387
|
+
if (projectHarness && projectHarness !== value) {
|
|
2377
2388
|
logWarn(
|
|
2378
|
-
|
|
2389
|
+
`skaile.yaml sets harness ${projectHarness}; a personal harness does not override the project harness.
|
|
2390
|
+
Remove this one again: skaile config unset harness${opts.global ? " --global" : ""}`
|
|
2379
2391
|
);
|
|
2380
|
-
}
|
|
2381
|
-
|
|
2382
|
-
|
|
2383
|
-
|
|
2384
|
-
|
|
2385
|
-
|
|
2386
|
-
|
|
2392
|
+
}
|
|
2393
|
+
if (key === "model") {
|
|
2394
|
+
const view = loadRegistryView({ projectDir });
|
|
2395
|
+
const resolved = parseModelRef(value, view.merged);
|
|
2396
|
+
if (!resolved) {
|
|
2397
|
+
logWarn(
|
|
2398
|
+
"no AI provider is configured yet \u2014 add one with `skaile providers add <id> --preset <preset>`"
|
|
2399
|
+
);
|
|
2400
|
+
} else {
|
|
2401
|
+
console.log(
|
|
2402
|
+
S.dim(
|
|
2403
|
+
` \u2192 resolves to ${resolved.providerId}${resolved.providerModelId ? `/${resolved.providerModelId}` : ""}`
|
|
2404
|
+
)
|
|
2405
|
+
);
|
|
2406
|
+
for (const warning of resolved.warnings) logWarn(warning);
|
|
2407
|
+
}
|
|
2387
2408
|
}
|
|
2388
2409
|
}
|
|
2389
|
-
|
|
2410
|
+
);
|
|
2390
2411
|
cmd.command("unset <key>").description(
|
|
2391
|
-
"Remove a value that `config set` wrote:
|
|
2392
|
-
).option("--project-dir <path>", "Project directory").option("--global", "Remove from ~/.skaile/settings.json instead of project-local").action(async (
|
|
2412
|
+
"Remove a value that `config set` wrote: harness, model, apiKey.<provider> (removes the provider entry) or catalog.url, catalog.cache_ttl, catalog.framing (the default applies again)"
|
|
2413
|
+
).option("--project-dir <path>", "Project directory").option("--global", "Remove from ~/.skaile/settings.json instead of project-local").action(async (rawKey, opts) => {
|
|
2414
|
+
const key = resolveDriverKeyAlias(rawKey);
|
|
2393
2415
|
const projectDir = opts.projectDir ? path18__default.resolve(opts.projectDir) : process.cwd();
|
|
2394
2416
|
if (CATALOG_KEYS.has(key)) {
|
|
2395
2417
|
await unsetCatalogKey(key);
|
|
@@ -2998,7 +3020,7 @@ function makeDebugCommand() {
|
|
|
2998
3020
|
cmd.command("mcp").description("List MCP servers and their registered tools").action(async (_, parent) => {
|
|
2999
3021
|
await runDebugQuery("mcp", parent.parent.opts());
|
|
3000
3022
|
});
|
|
3001
|
-
cmd.command("config").description("Dump
|
|
3023
|
+
cmd.command("config").description("Dump harness config (API keys redacted)").action(async (_, parent) => {
|
|
3002
3024
|
await runDebugQuery("config", parent.parent.opts());
|
|
3003
3025
|
});
|
|
3004
3026
|
cmd.command("state [store]").description("Read a shared state store snapshot (or list all stores)").action(async (store, _, parent) => {
|
|
@@ -3058,7 +3080,7 @@ async function ensureTargetsRegistered(projectDir) {
|
|
|
3058
3080
|
const { resolveSkWorkspaceConfig: resolveSkWorkspaceConfig2 } = await import('../core/index.js');
|
|
3059
3081
|
const config = resolveSkWorkspaceConfig2(projectDir);
|
|
3060
3082
|
if (config.plugins && config.plugins.length > 0) {
|
|
3061
|
-
const { ensurePluginsLoaded } = await import('../plugin-store-
|
|
3083
|
+
const { ensurePluginsLoaded } = await import('../plugin-store-MSH6GK6T.js');
|
|
3062
3084
|
const result = await ensurePluginsLoaded(projectDir, config.plugins, pluginRegistry);
|
|
3063
3085
|
for (const f of result.failed) logWarn(f.error);
|
|
3064
3086
|
}
|
|
@@ -3627,12 +3649,15 @@ async function status3(projectDir) {
|
|
|
3627
3649
|
// cli/src/commands/integration.ts
|
|
3628
3650
|
var ALL_HARNESSES = ["claude-code", "omp", "codex"];
|
|
3629
3651
|
var TOGGLE_SUPPORTED = ["claude-code"];
|
|
3630
|
-
function
|
|
3631
|
-
if (
|
|
3632
|
-
if (
|
|
3633
|
-
logErr(`Unknown
|
|
3652
|
+
function resolveHarness(harness) {
|
|
3653
|
+
if (harness === "all") return [...ALL_HARNESSES];
|
|
3654
|
+
if (harness === "claude-code" || harness === "omp" || harness === "codex") return [harness];
|
|
3655
|
+
logErr(`Unknown harness "${harness}". Supported: ${ALL_HARNESSES.join(", ")}, all`);
|
|
3634
3656
|
return null;
|
|
3635
3657
|
}
|
|
3658
|
+
function withHarness(raw, fallback) {
|
|
3659
|
+
return foldDriverFlag(raw, fallback);
|
|
3660
|
+
}
|
|
3636
3661
|
async function runHarnessStep(label, body) {
|
|
3637
3662
|
try {
|
|
3638
3663
|
await body();
|
|
@@ -3698,7 +3723,7 @@ ${await trustEntry(projectDir)}`
|
|
|
3698
3723
|
}
|
|
3699
3724
|
async function runInstall(opts) {
|
|
3700
3725
|
const projectDir = path18__default.resolve(opts.projectDir);
|
|
3701
|
-
const targets =
|
|
3726
|
+
const targets = resolveHarness(opts.harness);
|
|
3702
3727
|
if (!targets) return 1;
|
|
3703
3728
|
let exitCode = 0;
|
|
3704
3729
|
if (targets.includes("claude-code")) {
|
|
@@ -3761,7 +3786,7 @@ async function uninstallCodex(projectDir) {
|
|
|
3761
3786
|
}
|
|
3762
3787
|
async function runUninstall(opts) {
|
|
3763
3788
|
const projectDir = path18__default.resolve(opts.projectDir);
|
|
3764
|
-
const targets =
|
|
3789
|
+
const targets = resolveHarness(opts.harness);
|
|
3765
3790
|
if (!targets) return 1;
|
|
3766
3791
|
let exitCode = 0;
|
|
3767
3792
|
if (targets.includes("claude-code")) {
|
|
@@ -3866,8 +3891,8 @@ async function toggleTarget(t, projectDir, action3) {
|
|
|
3866
3891
|
}
|
|
3867
3892
|
async function runToggle(opts, action3) {
|
|
3868
3893
|
const projectDir = path18__default.resolve(opts.projectDir);
|
|
3869
|
-
const requestedAll = opts.
|
|
3870
|
-
const targets =
|
|
3894
|
+
const requestedAll = opts.harness === "all";
|
|
3895
|
+
const targets = resolveHarness(opts.harness);
|
|
3871
3896
|
if (!targets) return 1;
|
|
3872
3897
|
const usageError = checkToggleSupported(targets, requestedAll, action3);
|
|
3873
3898
|
if (usageError !== null) return usageError;
|
|
@@ -3879,7 +3904,7 @@ async function runToggle(opts, action3) {
|
|
|
3879
3904
|
}
|
|
3880
3905
|
async function runStatus2(opts) {
|
|
3881
3906
|
const projectDir = path18__default.resolve(opts.projectDir);
|
|
3882
|
-
const targets =
|
|
3907
|
+
const targets = resolveHarness(opts.harness);
|
|
3883
3908
|
if (!targets) return 1;
|
|
3884
3909
|
const rows = [];
|
|
3885
3910
|
let exitCode = 0;
|
|
@@ -4008,23 +4033,23 @@ function makeIntegrationCommand() {
|
|
|
4008
4033
|
const cmd = new Command("integration").description(
|
|
4009
4034
|
"Manage skaile agent integration / workspace-plugin adapter (Claude Code / OMP / Codex)"
|
|
4010
4035
|
);
|
|
4011
|
-
cmd.command("install").description("Install skaile workspace plugin").option("--
|
|
4036
|
+
cmd.command("install").description("Install skaile workspace plugin").option("--harness <name>", "Target: claude-code | omp | codex | all (default: all)").addOption(driverAliasOption()).option("--project-dir <path>", "Project directory", process.cwd()).option(
|
|
4012
4037
|
"--full",
|
|
4013
4038
|
"Claude Code: generate the full .claude/plugins/skaile/ directory (MCP + hooks) instead of the default MCP-only install"
|
|
4014
|
-
).action(async (
|
|
4015
|
-
process.exitCode = await runInstall(
|
|
4039
|
+
).action(async (raw) => {
|
|
4040
|
+
process.exitCode = await runInstall(withHarness(raw, "all"));
|
|
4016
4041
|
});
|
|
4017
|
-
cmd.command("uninstall").description("Uninstall skaile workspace plugin").option("--
|
|
4018
|
-
process.exitCode = await runUninstall(
|
|
4042
|
+
cmd.command("uninstall").description("Uninstall skaile workspace plugin").option("--harness <name>", "Target: claude-code | omp | codex | all (default: all)").addOption(driverAliasOption()).option("--project-dir <path>", "Project directory", process.cwd()).action(async (raw) => {
|
|
4043
|
+
process.exitCode = await runUninstall(withHarness(raw, "all"));
|
|
4019
4044
|
});
|
|
4020
|
-
cmd.command("enable").description("Enable an installed plugin (claude-code only)").option("--
|
|
4021
|
-
process.exitCode = await runToggle(
|
|
4045
|
+
cmd.command("enable").description("Enable an installed plugin (claude-code only)").option("--harness <name>", "Target: claude-code | all (default: claude-code)").addOption(driverAliasOption()).option("--project-dir <path>", "Project directory", process.cwd()).action(async (raw) => {
|
|
4046
|
+
process.exitCode = await runToggle(withHarness(raw, "claude-code"), "enable");
|
|
4022
4047
|
});
|
|
4023
|
-
cmd.command("disable").description("Disable an installed plugin (claude-code only)").option("--
|
|
4024
|
-
process.exitCode = await runToggle(
|
|
4048
|
+
cmd.command("disable").description("Disable an installed plugin (claude-code only)").option("--harness <name>", "Target: claude-code | all (default: claude-code)").addOption(driverAliasOption()).option("--project-dir <path>", "Project directory", process.cwd()).action(async (raw) => {
|
|
4049
|
+
process.exitCode = await runToggle(withHarness(raw, "claude-code"), "disable");
|
|
4025
4050
|
});
|
|
4026
|
-
cmd.command("status").description("Show install / enable status across harnesses").option("--
|
|
4027
|
-
process.exitCode = await runStatus2(
|
|
4051
|
+
cmd.command("status").description("Show install / enable status across harnesses").option("--harness <name>", "Target: claude-code | omp | codex | all (default: all)").addOption(driverAliasOption()).option("--project-dir <path>", "Project directory", process.cwd()).action(async (raw) => {
|
|
4052
|
+
process.exitCode = await runStatus2(withHarness(raw, "all"));
|
|
4028
4053
|
});
|
|
4029
4054
|
cmd.command("omp-exec <kind> <name>").description(
|
|
4030
4055
|
"Run one tool or slash command of the omp extension (used by .omp/extensions/skaile.ts)"
|
|
@@ -4220,7 +4245,7 @@ function assertManifestEditableOrExit(libraryPath) {
|
|
|
4220
4245
|
}
|
|
4221
4246
|
var DEPLOYED_COPY_DIRS = [
|
|
4222
4247
|
...new Set(
|
|
4223
|
-
Object.values(
|
|
4248
|
+
Object.values(HARNESS_TARGETS).flatMap(
|
|
4224
4249
|
(t) => Object.values(t.local).filter((d) => typeof d === "string")
|
|
4225
4250
|
)
|
|
4226
4251
|
)
|
|
@@ -4427,7 +4452,7 @@ function remoteBranches(url) {
|
|
|
4427
4452
|
return r.stdout.split("\n").map((line) => line.split(" ")[1]?.replace(/^refs\/heads\//, "")).filter((b) => !!b);
|
|
4428
4453
|
}
|
|
4429
4454
|
async function warnIfNotGithubRemote(name, url) {
|
|
4430
|
-
const { isGithubRemote, notGithubRemoteMessage } = await import('../library-publish-
|
|
4455
|
+
const { isGithubRemote, notGithubRemoteMessage } = await import('../library-publish-KKQ2ULLX.js');
|
|
4431
4456
|
if (!isGithubRemote(url)) logWarn(notGithubRemoteMessage(name, url));
|
|
4432
4457
|
}
|
|
4433
4458
|
function scaffoldLibraryFiles(dir, name) {
|
|
@@ -5149,16 +5174,16 @@ function makeLibraryCommand() {
|
|
|
5149
5174
|
"With --create-repo: create the repo private (the store only accepts public repos)"
|
|
5150
5175
|
).option("--ref <gitref>", "Git ref to ingest (default: the library branch or main)").option("--dry-run", "Print the plan; push nothing and call no store endpoint").action(
|
|
5151
5176
|
async (lib, opts) => {
|
|
5152
|
-
const { runLibraryPublish } = await import('../library-publish-
|
|
5177
|
+
const { runLibraryPublish } = await import('../library-publish-KKQ2ULLX.js');
|
|
5153
5178
|
await withStoreErrorHandling(() => runLibraryPublish(lib, opts));
|
|
5154
5179
|
}
|
|
5155
5180
|
);
|
|
5156
5181
|
cmd.command("register <lib>").description("Register the library's manifest without pushing (bytes already on github)").option("--asset <ref>", "Publish only the single asset matching this ref/name").option("--ref <gitref>", "Git ref to ingest (default: the library branch or main)").option("--dry-run", "Print the plan; call no store endpoint").action(async (lib, opts) => {
|
|
5157
|
-
const { runLibraryRegister } = await import('../library-publish-
|
|
5182
|
+
const { runLibraryRegister } = await import('../library-publish-KKQ2ULLX.js');
|
|
5158
5183
|
await withStoreErrorHandling(() => runLibraryRegister(lib, opts));
|
|
5159
5184
|
});
|
|
5160
5185
|
cmd.command("yank <lib>").description("Retract the library's published assets from the store").option("--asset <ref>", "Yank only the single asset matching this ref/name").action(async (lib, opts) => {
|
|
5161
|
-
const { runLibraryYank } = await import('../library-publish-
|
|
5186
|
+
const { runLibraryYank } = await import('../library-publish-KKQ2ULLX.js');
|
|
5162
5187
|
await withStoreErrorHandling(() => runLibraryYank(lib, opts));
|
|
5163
5188
|
});
|
|
5164
5189
|
return cmd;
|
|
@@ -5308,7 +5333,7 @@ function colorLine(line) {
|
|
|
5308
5333
|
if (/error|Error|ERROR|failed|Failed/.test(line)) return pc5.red(line);
|
|
5309
5334
|
if (/connector|MCP|tool/.test(line)) return pc5.yellow(line);
|
|
5310
5335
|
if (/rebuilt|registered|ready/.test(line)) return pc5.green(line);
|
|
5311
|
-
if (/\[
|
|
5336
|
+
if (/\[harness\]/.test(line)) return pc5.cyan(line);
|
|
5312
5337
|
if (/\[serve\]/.test(line)) return pc5.dim(line);
|
|
5313
5338
|
return line;
|
|
5314
5339
|
}
|
|
@@ -5818,7 +5843,7 @@ function scheduleSoftDepPreview() {
|
|
|
5818
5843
|
}
|
|
5819
5844
|
async function loadAssets() {
|
|
5820
5845
|
softDepPreviewCache.clear();
|
|
5821
|
-
const { gatherAssetFeeds } = await import('../asset-feeds-
|
|
5846
|
+
const { gatherAssetFeeds } = await import('../asset-feeds-PXUWCXVI.js');
|
|
5822
5847
|
const { entries, notes } = await gatherAssetFeeds(am, am.projectDir);
|
|
5823
5848
|
if (notes.length > 0) {
|
|
5824
5849
|
state.message = notes.map((n) => `[${n.feed}] ${n.message}`).join(" \u2022 ");
|
|
@@ -6022,7 +6047,7 @@ function reconcileCollapsedSets(rows) {
|
|
|
6022
6047
|
async function loadSourcesAndLibraries() {
|
|
6023
6048
|
try {
|
|
6024
6049
|
const [{ openLibraryManager: openLibraryManager2 }, { getGlobalCacheDir: getGlobalCacheDir2, globalSkaileDir: globalSkaileDir2 }] = await Promise.all([
|
|
6025
|
-
import('../open-library-
|
|
6050
|
+
import('../open-library-RJGJIW5H.js'),
|
|
6026
6051
|
import('../core/index.js')
|
|
6027
6052
|
]);
|
|
6028
6053
|
const { manager, library, close } = await openLibraryManager2();
|
|
@@ -6993,8 +7018,8 @@ function makeManageCommand() {
|
|
|
6993
7018
|
}
|
|
6994
7019
|
function makeMcpServerCommand() {
|
|
6995
7020
|
return new Command("mcp-server").description("Start skaile workspace MCP server (stdio transport)").option("--project-dir <path>", "Project directory (default: cwd)", process.cwd()).action(async (opts) => {
|
|
6996
|
-
const
|
|
6997
|
-
const projectDir =
|
|
7021
|
+
const path42 = await import('path');
|
|
7022
|
+
const projectDir = path42.default.resolve(opts.projectDir);
|
|
6998
7023
|
const { LogStore: LogStore2, StdoutSink: StdoutSink2, registerLogStore: registerLogStore2 } = await import('../core/logging.js');
|
|
6999
7024
|
registerLogStore2(
|
|
7000
7025
|
new LogStore2({
|
|
@@ -7207,6 +7232,35 @@ function changeLabel(change, base) {
|
|
|
7207
7232
|
return `move ${rel(change.from)} \u2192 ${rel(change.to)}`;
|
|
7208
7233
|
}
|
|
7209
7234
|
}
|
|
7235
|
+
function resolveMode(opts, writeFlag = "--write") {
|
|
7236
|
+
if (opts.write && opts.dryRun) {
|
|
7237
|
+
logErr(`${writeFlag} and --dry-run are mutually exclusive.`);
|
|
7238
|
+
process.exit(1);
|
|
7239
|
+
}
|
|
7240
|
+
return opts.write === true;
|
|
7241
|
+
}
|
|
7242
|
+
function printChanges(changes, base) {
|
|
7243
|
+
for (const change of changes) {
|
|
7244
|
+
console.log();
|
|
7245
|
+
console.log(colorizeDiff(renderChange(change, base)).trimEnd());
|
|
7246
|
+
}
|
|
7247
|
+
}
|
|
7248
|
+
function finish(changes, write, base, writeFlag = "--write") {
|
|
7249
|
+
console.log();
|
|
7250
|
+
if (changes.length === 0) {
|
|
7251
|
+
logOk("Nothing to migrate.");
|
|
7252
|
+
return;
|
|
7253
|
+
}
|
|
7254
|
+
if (!write) {
|
|
7255
|
+
logInfo(
|
|
7256
|
+
`Dry run: ${changes.length} file change(s) planned, nothing written. Re-run with ${writeFlag} to apply.`
|
|
7257
|
+
);
|
|
7258
|
+
return;
|
|
7259
|
+
}
|
|
7260
|
+
applyChanges2(changes);
|
|
7261
|
+
logOk(`Applied ${changes.length} file change(s):`);
|
|
7262
|
+
for (const change of changes) console.log(` ${S.dim(changeLabel(change, base))}`);
|
|
7263
|
+
}
|
|
7210
7264
|
|
|
7211
7265
|
// cli/src/commands/migrate-agents.ts
|
|
7212
7266
|
var TARGET_SPEC_VERSION = "0.2";
|
|
@@ -8139,6 +8193,142 @@ function planAssetMigration(options) {
|
|
|
8139
8193
|
unknownTypes
|
|
8140
8194
|
};
|
|
8141
8195
|
}
|
|
8196
|
+
var SKAILE_YAML_SUFFIX = ".skaile.yaml";
|
|
8197
|
+
var OLD_KEY = "driver";
|
|
8198
|
+
var NEW_KEY = "harness";
|
|
8199
|
+
var AGENT_CONFIG_KEYS = ["agent-config", "agent_config", "agentConfig"];
|
|
8200
|
+
function renameInMap(map, where, notes) {
|
|
8201
|
+
const oldIdx = map.items.findIndex((p6) => isScalar(p6.key) && p6.key.value === OLD_KEY);
|
|
8202
|
+
if (oldIdx < 0) return false;
|
|
8203
|
+
const hasNew = map.items.some((p6) => isScalar(p6.key) && p6.key.value === NEW_KEY);
|
|
8204
|
+
if (hasNew) {
|
|
8205
|
+
map.items.splice(oldIdx, 1);
|
|
8206
|
+
notes.push(
|
|
8207
|
+
`${where}: both \`harness\` and \`driver\` set; kept \`harness\`, dropped \`driver\``
|
|
8208
|
+
);
|
|
8209
|
+
} else {
|
|
8210
|
+
(map.items[oldIdx]?.key).value = NEW_KEY;
|
|
8211
|
+
notes.push(`${where}: \`driver\` \u2192 \`harness\``);
|
|
8212
|
+
}
|
|
8213
|
+
return true;
|
|
8214
|
+
}
|
|
8215
|
+
function migrateHarnessYaml(text, label = SKAILE_YAML_DEFAULT) {
|
|
8216
|
+
const doc = parseDocument(text);
|
|
8217
|
+
if (doc.errors.length > 0) {
|
|
8218
|
+
throw new Error(`invalid YAML: ${doc.errors[0]?.message ?? "parse error"}`);
|
|
8219
|
+
}
|
|
8220
|
+
const root = doc.contents;
|
|
8221
|
+
if (!isMap(root)) return { output: text, notes: [] };
|
|
8222
|
+
const notes = [];
|
|
8223
|
+
let changed = false;
|
|
8224
|
+
for (const key of AGENT_CONFIG_KEYS) {
|
|
8225
|
+
const block = root.get(key, true);
|
|
8226
|
+
if (!isMap(block)) continue;
|
|
8227
|
+
const flat = AGENT_PROFILE_FIELDS.some((f) => {
|
|
8228
|
+
const v = block.get(f, true);
|
|
8229
|
+
return isScalar(v) && typeof v.value === "string";
|
|
8230
|
+
});
|
|
8231
|
+
if (flat) {
|
|
8232
|
+
changed = renameInMap(block, `${label}: ${key}`, notes) || changed;
|
|
8233
|
+
continue;
|
|
8234
|
+
}
|
|
8235
|
+
for (const pair of block.items) {
|
|
8236
|
+
if (!isMap(pair.value) || !isScalar(pair.key)) continue;
|
|
8237
|
+
changed = renameInMap(pair.value, `${label}: ${key}.${String(pair.key.value)}`, notes) || changed;
|
|
8238
|
+
}
|
|
8239
|
+
}
|
|
8240
|
+
return { output: changed ? String(doc) : text, notes };
|
|
8241
|
+
}
|
|
8242
|
+
function migrateHarnessSettings(text, label = "settings.json") {
|
|
8243
|
+
let parsed;
|
|
8244
|
+
try {
|
|
8245
|
+
parsed = JSON.parse(text);
|
|
8246
|
+
} catch {
|
|
8247
|
+
return { output: text, notes: [] };
|
|
8248
|
+
}
|
|
8249
|
+
if (!isRecord(parsed) || !(OLD_KEY in parsed)) return { output: text, notes: [] };
|
|
8250
|
+
const notes = [];
|
|
8251
|
+
const out = {};
|
|
8252
|
+
for (const [k, v] of Object.entries(parsed)) {
|
|
8253
|
+
if (k !== OLD_KEY) {
|
|
8254
|
+
out[k] = v;
|
|
8255
|
+
} else if (NEW_KEY in parsed) {
|
|
8256
|
+
notes.push(
|
|
8257
|
+
`${label}: both \`harness\` and \`driver\` set; kept \`harness\`, dropped \`driver\``
|
|
8258
|
+
);
|
|
8259
|
+
} else {
|
|
8260
|
+
out[NEW_KEY] = v;
|
|
8261
|
+
notes.push(`${label}: \`driver\` \u2192 \`harness\``);
|
|
8262
|
+
}
|
|
8263
|
+
}
|
|
8264
|
+
const trailing = text.endsWith("\n") ? "\n" : "";
|
|
8265
|
+
return { output: `${JSON.stringify(out, null, 2)}${trailing}`, notes };
|
|
8266
|
+
}
|
|
8267
|
+
function workspaceYamlFiles(projectDir) {
|
|
8268
|
+
const files = [];
|
|
8269
|
+
if (existsSync(path18__default.join(projectDir, SKAILE_YAML_DEFAULT))) {
|
|
8270
|
+
files.push(path18__default.join(projectDir, SKAILE_YAML_DEFAULT));
|
|
8271
|
+
}
|
|
8272
|
+
try {
|
|
8273
|
+
for (const entry of readdirSync(projectDir).sort()) {
|
|
8274
|
+
if (entry.endsWith(SKAILE_YAML_SUFFIX)) files.push(path18__default.join(projectDir, entry));
|
|
8275
|
+
}
|
|
8276
|
+
} catch {
|
|
8277
|
+
}
|
|
8278
|
+
return files;
|
|
8279
|
+
}
|
|
8280
|
+
function planHarnessMigration(opts) {
|
|
8281
|
+
const changes = [];
|
|
8282
|
+
const notes = [];
|
|
8283
|
+
const seen = /* @__PURE__ */ new Set();
|
|
8284
|
+
const plan = (file, rewrite) => {
|
|
8285
|
+
if (seen.has(file) || !existsSync(file)) return;
|
|
8286
|
+
seen.add(file);
|
|
8287
|
+
const before = readText(file);
|
|
8288
|
+
const label = path18__default.basename(file);
|
|
8289
|
+
let result;
|
|
8290
|
+
try {
|
|
8291
|
+
result = rewrite(before, label);
|
|
8292
|
+
} catch (error) {
|
|
8293
|
+
notes.push(`${file}: skipped \u2014 ${error.message}`);
|
|
8294
|
+
return;
|
|
8295
|
+
}
|
|
8296
|
+
if (result.output === before) return;
|
|
8297
|
+
notes.push(...result.notes);
|
|
8298
|
+
changes.push({ type: "write", path: file, before, after: result.output });
|
|
8299
|
+
};
|
|
8300
|
+
for (const file of workspaceYamlFiles(opts.projectDir)) plan(file, migrateHarnessYaml);
|
|
8301
|
+
plan(projectSettingsPath(opts.projectDir), migrateHarnessSettings);
|
|
8302
|
+
plan(globalSettingsPath(), migrateHarnessSettings);
|
|
8303
|
+
return { changes, notes };
|
|
8304
|
+
}
|
|
8305
|
+
function runMigrateHarness(opts) {
|
|
8306
|
+
const apply = resolveMode(
|
|
8307
|
+
{ write: opts.apply === true || opts.write === true, dryRun: opts.dryRun },
|
|
8308
|
+
"--apply"
|
|
8309
|
+
);
|
|
8310
|
+
const cwd = process.cwd();
|
|
8311
|
+
const projectDir = path18__default.resolve(opts.projectDir ?? findWorkspaceRoot(cwd) ?? cwd);
|
|
8312
|
+
const plan = planHarnessMigration({ projectDir });
|
|
8313
|
+
for (const note of plan.notes) console.log(` ${note}`);
|
|
8314
|
+
printChanges(plan.changes, projectDir);
|
|
8315
|
+
finish(plan.changes, apply, projectDir, "--apply");
|
|
8316
|
+
}
|
|
8317
|
+
function addMigrateHarnessCommand(migrate) {
|
|
8318
|
+
migrate.command("harness").description(
|
|
8319
|
+
"Rename the `driver` key to `harness` in skaile.yaml agent-config and settings.json"
|
|
8320
|
+
).option("--project-dir <path>", "Project directory (default: the workspace root of the cwd)").option("--apply", "Write the changes (default: print a diff and write nothing)").option("--write", "Same as --apply").option("--dry-run", "Print the diff and write nothing (the default)").addHelpText(
|
|
8321
|
+
"after",
|
|
8322
|
+
`
|
|
8323
|
+
Rewrites (the connector/mount \`driver\` of connectors: and mounts: is never touched):
|
|
8324
|
+
skaile.yaml agent-config.<profile>.driver -> harness (also the flat agent-config: { driver: \u2026 } shape)
|
|
8325
|
+
.skaile/settings.json, ~/.skaile/settings.json driver -> harness
|
|
8326
|
+
A profile or file that sets both keeps \`harness\` and drops \`driver\`.
|
|
8327
|
+
|
|
8328
|
+
Dry run by default: prints a unified diff per file. Pass --apply to write.
|
|
8329
|
+
`
|
|
8330
|
+
).action((opts) => runMigrateHarness(opts));
|
|
8331
|
+
}
|
|
8142
8332
|
|
|
8143
8333
|
// cli/src/commands/migrate-legacy-entry.ts
|
|
8144
8334
|
var ANTHROPIC_VERSION_HEADER = { "anthropic-version": "2023-06-01" };
|
|
@@ -8237,9 +8427,9 @@ function legacyProfileEntry(inputs = {}) {
|
|
|
8237
8427
|
|
|
8238
8428
|
// cli/src/commands/migrate-providers.ts
|
|
8239
8429
|
var LEGACY_PROFILE_KEYS = ["provider", "cloud", "cloud_config", "cloudConfig"];
|
|
8240
|
-
var
|
|
8430
|
+
var AGENT_CONFIG_KEYS2 = ["agent-config", "agent_config", "agentConfig"];
|
|
8241
8431
|
var FLAT_PROFILE_FIELDS = [
|
|
8242
|
-
"
|
|
8432
|
+
"harness",
|
|
8243
8433
|
"provider",
|
|
8244
8434
|
"cloud",
|
|
8245
8435
|
"model",
|
|
@@ -8281,7 +8471,7 @@ function workspaceConfigFiles(dir) {
|
|
|
8281
8471
|
return names.filter((name) => isWorkspaceConfigFilename(name)).sort().map((name) => path18__default.join(dir, name));
|
|
8282
8472
|
}
|
|
8283
8473
|
function readAgentConfigBlock(raw) {
|
|
8284
|
-
const key =
|
|
8474
|
+
const key = AGENT_CONFIG_KEYS2.find((candidate) => raw[candidate] !== void 0);
|
|
8285
8475
|
if (!key) return void 0;
|
|
8286
8476
|
const block = raw[key];
|
|
8287
8477
|
if (typeof block !== "object" || block === null || Array.isArray(block)) return void 0;
|
|
@@ -8532,35 +8722,6 @@ Rewrites (run on a repo root):
|
|
|
8532
8722
|
|
|
8533
8723
|
Dry run by default: prints a unified diff per file. Pass --write to apply.
|
|
8534
8724
|
`;
|
|
8535
|
-
function resolveMode(opts) {
|
|
8536
|
-
if (opts.write && opts.dryRun) {
|
|
8537
|
-
logErr("--write and --dry-run are mutually exclusive.");
|
|
8538
|
-
process.exit(1);
|
|
8539
|
-
}
|
|
8540
|
-
return opts.write === true;
|
|
8541
|
-
}
|
|
8542
|
-
function printChanges(changes, base) {
|
|
8543
|
-
for (const change of changes) {
|
|
8544
|
-
console.log();
|
|
8545
|
-
console.log(colorizeDiff(renderChange(change, base)).trimEnd());
|
|
8546
|
-
}
|
|
8547
|
-
}
|
|
8548
|
-
function finish(changes, write, base) {
|
|
8549
|
-
console.log();
|
|
8550
|
-
if (changes.length === 0) {
|
|
8551
|
-
logOk("Nothing to migrate.");
|
|
8552
|
-
return;
|
|
8553
|
-
}
|
|
8554
|
-
if (!write) {
|
|
8555
|
-
logInfo(
|
|
8556
|
-
`Dry run: ${changes.length} file change(s) planned, nothing written. Re-run with --write to apply.`
|
|
8557
|
-
);
|
|
8558
|
-
return;
|
|
8559
|
-
}
|
|
8560
|
-
applyChanges2(changes);
|
|
8561
|
-
logOk(`Applied ${changes.length} file change(s):`);
|
|
8562
|
-
for (const change of changes) console.log(` ${S.dim(changeLabel(change, base))}`);
|
|
8563
|
-
}
|
|
8564
8725
|
async function runMigrateAgents(paths, opts) {
|
|
8565
8726
|
const write = resolveMode(opts);
|
|
8566
8727
|
const base = process.cwd();
|
|
@@ -8625,6 +8786,7 @@ function makeMigrateCommand() {
|
|
|
8625
8786
|
cmd.command("assets").description(
|
|
8626
8787
|
"Move persona/ruleset files, bundles and the publication half of skaile.yaml onto the kind model"
|
|
8627
8788
|
).argument("[root]", "Repo root to migrate (default: current directory)").option("--write", "Apply the changes (default: print a diff and write nothing)").option("--dry-run", "Print the diff and write nothing (the default)").addHelpText("after", ASSETS_HELP).action((root, opts) => runMigrateAssets(root, opts));
|
|
8789
|
+
addMigrateHarnessCommand(cmd);
|
|
8628
8790
|
return cmd;
|
|
8629
8791
|
}
|
|
8630
8792
|
function makeNpxCommand() {
|
|
@@ -8680,7 +8842,7 @@ function makeNpxCommand() {
|
|
|
8680
8842
|
registry: getKindRegistry(),
|
|
8681
8843
|
projectDir,
|
|
8682
8844
|
global: opts.global,
|
|
8683
|
-
|
|
8845
|
+
harness: opts.target,
|
|
8684
8846
|
onLibraryCollision: warnings.push
|
|
8685
8847
|
});
|
|
8686
8848
|
spinner.start(`Installing ${skillRef}`);
|
|
@@ -8771,15 +8933,15 @@ function outdatedStatus(e) {
|
|
|
8771
8933
|
}
|
|
8772
8934
|
function makeOutdatedCommand() {
|
|
8773
8935
|
return new Command("outdated").description("Check for assets behind their repo or library").argument("[ref]", "Check a specific asset (kind:@publisher/name)").option("--project-dir <path>", "Project directory", process.cwd()).addOption(
|
|
8774
|
-
new Option("--target <agent>", `
|
|
8775
|
-
|
|
8936
|
+
new Option("--target <agent>", `Harness target (${TARGET_DEFAULT_HINT})`).choices(
|
|
8937
|
+
SUPPORTED_HARNESSES
|
|
8776
8938
|
)
|
|
8777
8939
|
).action(async (filter, opts) => {
|
|
8778
8940
|
requireProjectConfig(opts.projectDir);
|
|
8779
8941
|
const am2 = new AssetManager({
|
|
8780
8942
|
registry: getKindRegistry(),
|
|
8781
8943
|
projectDir: path18__default.resolve(opts.projectDir),
|
|
8782
|
-
|
|
8944
|
+
harness: opts.target
|
|
8783
8945
|
});
|
|
8784
8946
|
const entries = await am2.outdated();
|
|
8785
8947
|
if (entries.length === 0) {
|
|
@@ -8884,7 +9046,7 @@ function action2(fn) {
|
|
|
8884
9046
|
};
|
|
8885
9047
|
}
|
|
8886
9048
|
async function reconcileAndReport(projectDir, plugins, opts = {}) {
|
|
8887
|
-
const { reconcilePlugins } = await import('../plugin-store-
|
|
9049
|
+
const { reconcilePlugins } = await import('../plugin-store-MSH6GK6T.js');
|
|
8888
9050
|
if (plugins.length === 0) {
|
|
8889
9051
|
logInfo("No plugins declared \u2014 nothing to reconcile.");
|
|
8890
9052
|
return;
|
|
@@ -8899,13 +9061,13 @@ async function reconcileAndReport(projectDir, plugins, opts = {}) {
|
|
|
8899
9061
|
}
|
|
8900
9062
|
}
|
|
8901
9063
|
async function verifyPluginLoads(projectDir, spec) {
|
|
8902
|
-
const { loadPlugins } = await import('../plugin-store-
|
|
9064
|
+
const { loadPlugins } = await import('../plugin-store-MSH6GK6T.js');
|
|
8903
9065
|
const { createPluginRegistry } = await import('../plugin-registry/index.js');
|
|
8904
9066
|
const registry = createPluginRegistry();
|
|
8905
9067
|
const result = await loadPlugins(projectDir, [spec], registry);
|
|
8906
9068
|
const failure = result.failed[0];
|
|
8907
9069
|
if (failure) throw new Error(failure.error);
|
|
8908
|
-
const contributed = ["
|
|
9070
|
+
const contributed = ["harness", "connector", "deployTarget"].flatMap(
|
|
8909
9071
|
(kind) => registry.list(kind).map((m) => `${kind} ${m.id}`)
|
|
8910
9072
|
);
|
|
8911
9073
|
logOk(`Loaded ${S.cmd(spec)}${contributed.length > 0 ? ` (${contributed.join(", ")})` : ""}`);
|
|
@@ -8913,7 +9075,7 @@ async function verifyPluginLoads(projectDir, spec) {
|
|
|
8913
9075
|
async function runInstall2(spec, opts) {
|
|
8914
9076
|
const projectDir = path18__default.resolve(opts.projectDir);
|
|
8915
9077
|
const { WorkspaceYamlEditor: WorkspaceYamlEditor2 } = await import('../core/index.js');
|
|
8916
|
-
const { specName, rollbackPluginStore } = await import('../plugin-store-
|
|
9078
|
+
const { specName, rollbackPluginStore } = await import('../plugin-store-MSH6GK6T.js');
|
|
8917
9079
|
const yamlPath = path18__default.join(projectDir, "skaile.yaml");
|
|
8918
9080
|
if (!existsSync(yamlPath)) {
|
|
8919
9081
|
throw new Error(`no skaile.yaml in ${projectDir}; run \`skaile init\` first`);
|
|
@@ -8942,7 +9104,7 @@ async function runInstall2(spec, opts) {
|
|
|
8942
9104
|
async function runRemove(name, opts) {
|
|
8943
9105
|
const projectDir = path18__default.resolve(opts.projectDir);
|
|
8944
9106
|
const { WorkspaceYamlEditor: WorkspaceYamlEditor2 } = await import('../core/index.js');
|
|
8945
|
-
const { specName } = await import('../plugin-store-
|
|
9107
|
+
const { specName } = await import('../plugin-store-MSH6GK6T.js');
|
|
8946
9108
|
const yamlPath = path18__default.join(projectDir, "skaile.yaml");
|
|
8947
9109
|
if (!existsSync(yamlPath)) {
|
|
8948
9110
|
logInfo(`No plugin matching ${S.cmd(name)}: there is no skaile.yaml in ${projectDir}.`);
|
|
@@ -8974,7 +9136,7 @@ async function runList(opts) {
|
|
|
8974
9136
|
const registry = createPluginRegistry();
|
|
8975
9137
|
if (declared.length > 0) {
|
|
8976
9138
|
try {
|
|
8977
|
-
const { loadPlugins } = await import('../plugin-store-
|
|
9139
|
+
const { loadPlugins } = await import('../plugin-store-MSH6GK6T.js');
|
|
8978
9140
|
const result = await loadPlugins(projectDir, declared, registry);
|
|
8979
9141
|
for (const f of result.failed) logWarn(f.error);
|
|
8980
9142
|
} catch (err) {
|
|
@@ -8982,7 +9144,7 @@ async function runList(opts) {
|
|
|
8982
9144
|
}
|
|
8983
9145
|
}
|
|
8984
9146
|
const kinds = [
|
|
8985
|
-
{ kind: "
|
|
9147
|
+
{ kind: "harness", label: "harnesses" },
|
|
8986
9148
|
{ kind: "connector", label: "connectors" },
|
|
8987
9149
|
{ kind: "deployTarget", label: "deploy targets" }
|
|
8988
9150
|
];
|
|
@@ -9000,7 +9162,7 @@ async function runList(opts) {
|
|
|
9000
9162
|
}
|
|
9001
9163
|
function makePluginCommand() {
|
|
9002
9164
|
const cmd = new Command("plugin").description(
|
|
9003
|
-
"Manage registry plugins (
|
|
9165
|
+
"Manage registry plugins (harnesses / connectors / deploy targets) declared in skaile.yaml"
|
|
9004
9166
|
);
|
|
9005
9167
|
cmd.command("install <spec>").description("Add a plugin spec to skaile.yaml plugins and reconcile the store").option("--project-dir <path>", "Project directory", process.cwd()).action(action2(runInstall2));
|
|
9006
9168
|
cmd.command("remove <name>").description("Remove a plugin (by package name) from skaile.yaml plugins and reconcile").option("--project-dir <path>", "Project directory", process.cwd()).action(action2(runRemove));
|
|
@@ -9242,8 +9404,8 @@ function redactSecrets(preset, findings) {
|
|
|
9242
9404
|
}
|
|
9243
9405
|
return { preset: next, keys };
|
|
9244
9406
|
}
|
|
9245
|
-
function placeholderKey(itemId,
|
|
9246
|
-
return `${itemId}_${
|
|
9407
|
+
function placeholderKey(itemId, path42) {
|
|
9408
|
+
return `${itemId}_${path42}`.replace(/[^a-zA-Z0-9]+/g, "_").replace(/^_+|_+$/g, "").toUpperCase();
|
|
9247
9409
|
}
|
|
9248
9410
|
function setAtPath(root, segments, value) {
|
|
9249
9411
|
let node = root;
|
|
@@ -9835,17 +9997,17 @@ function resolveSingleShotAgentDir(projectDir, agentDefinition) {
|
|
|
9835
9997
|
}
|
|
9836
9998
|
return dir;
|
|
9837
9999
|
}
|
|
9838
|
-
async function printCompositionDryRun(projectDir, agentDir,
|
|
10000
|
+
async function printCompositionDryRun(projectDir, agentDir, harness, model, instanceIdOverride) {
|
|
9839
10001
|
const manifest = agentDir ? await loadAgentManifest(agentDir) : void 0;
|
|
9840
|
-
const refusal =
|
|
10002
|
+
const refusal = checkHarnessModel(harness, {
|
|
9841
10003
|
registry: loadRegistryView({ projectDir }).merged,
|
|
9842
|
-
model: model ??
|
|
10004
|
+
model: model ?? manifestModelForHarness(manifest, harness)
|
|
9843
10005
|
});
|
|
9844
10006
|
if (refusal) throw new Error(refusal);
|
|
9845
10007
|
console.log();
|
|
9846
10008
|
console.log(` ${S.label("Project dir:")} ${projectDir}`);
|
|
9847
10009
|
console.log(` ${S.label("Agent dir:")} ${agentDir ?? S.dim("(none)")}`);
|
|
9848
|
-
console.log(` ${S.label("
|
|
10010
|
+
console.log(` ${S.label("Harness:")} ${harness}${model ? S.dim(` / ${model}`) : ""}`);
|
|
9849
10011
|
console.log(` ${S.warn("(dry run \u2014 no model will be started)")}`);
|
|
9850
10012
|
console.log();
|
|
9851
10013
|
if (!agentDir || !manifest) {
|
|
@@ -9863,7 +10025,7 @@ async function printCompositionDryRun(projectDir, agentDir, driver, model, insta
|
|
|
9863
10025
|
asset: { manifest, dir: agentDir },
|
|
9864
10026
|
projectDir,
|
|
9865
10027
|
registry: getKindRegistry(),
|
|
9866
|
-
host: { nativeSubagents:
|
|
10028
|
+
host: { nativeSubagents: harnessNameForHarnessId(harness) !== void 0 },
|
|
9867
10029
|
dryRun: true
|
|
9868
10030
|
});
|
|
9869
10031
|
console.log(` ${S.label("Instance:")} ${instanceId2}`);
|
|
@@ -9886,7 +10048,7 @@ async function printCompositionDryRun(projectDir, agentDir, driver, model, insta
|
|
|
9886
10048
|
}
|
|
9887
10049
|
async function findSkillFile(projectDir, skill) {
|
|
9888
10050
|
const name = skill.trim().replace(/^skill:/, "").replace(/^@[^/]+\//, "").replace(/#.*$/, "");
|
|
9889
|
-
for (const target of
|
|
10051
|
+
for (const target of SUPPORTED_HARNESSES) {
|
|
9890
10052
|
const file = path18__default.join(deployedDir("skill", name, target, false, projectDir), "SKILL.md");
|
|
9891
10053
|
if (fs8__default.existsSync(file)) return file;
|
|
9892
10054
|
}
|
|
@@ -9999,11 +10161,11 @@ function isNearFlowId(typed, id) {
|
|
|
9999
10161
|
const b = id.toLowerCase();
|
|
10000
10162
|
return a.length >= 3 && (b.includes(a) || a.includes(b) || editDistance2(a, b) <= 2);
|
|
10001
10163
|
}
|
|
10002
|
-
function
|
|
10003
|
-
return `Harness to run (${
|
|
10164
|
+
function harnessOptionDescription() {
|
|
10165
|
+
return `Harness to run (${listHarnesses().map((d) => d.id).join(", ")})`;
|
|
10004
10166
|
}
|
|
10005
10167
|
function makeRunCommand() {
|
|
10006
|
-
const cmd = new Command("run").description("Start a flow or run a single-shot text prompt").argument("[flow-id-or-text...]", "Flow ID or text prompt").option("--project-dir <path>", "Project directory", process.cwd()).option("--
|
|
10168
|
+
const cmd = new Command("run").description("Start a flow or run a single-shot text prompt").argument("[flow-id-or-text...]", "Flow ID or text prompt").option("--project-dir <path>", "Project directory", process.cwd()).option("--harness <name>", harnessOptionDescription()).addOption(driverAliasOption()).option("--model <name>", "Model override").option("--label <label>", "Human-readable session label").option("--dry-run", "Print plan without executing (single-shot: resolved composition items)").option(
|
|
10007
10169
|
"--agent-definition <ref|path>",
|
|
10008
10170
|
"Agent asset for this one invocation (agent:@pub/name, ai-assets://\u2026, or a directory with agent.yaml); single-shot prompts only"
|
|
10009
10171
|
).option(
|
|
@@ -10012,7 +10174,7 @@ function makeRunCommand() {
|
|
|
10012
10174
|
).option("--skill <name>", "Skill name (for single-shot mode)").action(async (positional, opts) => {
|
|
10013
10175
|
const projectDir = path18__default.resolve(opts.projectDir);
|
|
10014
10176
|
await loadDeclaredPlugins(projectDir);
|
|
10015
|
-
const
|
|
10177
|
+
const cliHarness = foldDriverFlag(opts).harness;
|
|
10016
10178
|
const dryRun = opts.dryRun ?? false;
|
|
10017
10179
|
const agentDefinition = opts.agentDefinition?.trim() || void 0;
|
|
10018
10180
|
const instanceId2 = opts.instance?.trim() || void 0;
|
|
@@ -10046,17 +10208,17 @@ function makeRunCommand() {
|
|
|
10046
10208
|
flowId = selected;
|
|
10047
10209
|
}
|
|
10048
10210
|
const config = await resolveSettings(projectDir, {
|
|
10049
|
-
|
|
10211
|
+
harness: cliHarness,
|
|
10050
10212
|
model: opts.model
|
|
10051
10213
|
});
|
|
10052
|
-
const
|
|
10214
|
+
const harness = config.harness ?? DEFAULT_HARNESS_ID;
|
|
10053
10215
|
const model = config.model;
|
|
10054
|
-
const
|
|
10055
|
-
if (
|
|
10056
|
-
logErr(
|
|
10216
|
+
const unknownHarness = unknownHarnessMessage(harness);
|
|
10217
|
+
if (unknownHarness) {
|
|
10218
|
+
logErr(unknownHarness);
|
|
10057
10219
|
process.exit(1);
|
|
10058
10220
|
}
|
|
10059
|
-
const providerRefusal = checkModelProvider(
|
|
10221
|
+
const providerRefusal = checkModelProvider(harness, {
|
|
10060
10222
|
registry: loadRegistryView({ projectDir }).merged,
|
|
10061
10223
|
model
|
|
10062
10224
|
});
|
|
@@ -10104,7 +10266,7 @@ function makeRunCommand() {
|
|
|
10104
10266
|
try {
|
|
10105
10267
|
const agentDir = instanceId2 ? resolveInstanceAgentDir(projectDir, resolveSkWorkspaceConfig(projectDir), instanceId2) : resolveSingleShotAgentDir(projectDir, agentDefinition);
|
|
10106
10268
|
if (dryRun) {
|
|
10107
|
-
await printCompositionDryRun(projectDir, agentDir,
|
|
10269
|
+
await printCompositionDryRun(projectDir, agentDir, harness, model, instanceId2);
|
|
10108
10270
|
if (opts.skill && !await printSkillDryRun(projectDir, opts.skill)) {
|
|
10109
10271
|
process.exit(1);
|
|
10110
10272
|
}
|
|
@@ -10116,7 +10278,7 @@ function makeRunCommand() {
|
|
|
10116
10278
|
projectDir,
|
|
10117
10279
|
...agentDir ? { agentDir } : {},
|
|
10118
10280
|
...instanceId2 ? { instanceId: instanceId2 } : {},
|
|
10119
|
-
|
|
10281
|
+
harness: config.harness,
|
|
10120
10282
|
model: instanceModel ?? config.model,
|
|
10121
10283
|
...instanceModel ? { modelRef: instanceModel } : {},
|
|
10122
10284
|
...overrides.maxTurns !== void 0 ? { maxTurns: overrides.maxTurns } : {},
|
|
@@ -10129,12 +10291,12 @@ function makeRunCommand() {
|
|
|
10129
10291
|
logErr(`${err.code}: ${err.message}`);
|
|
10130
10292
|
process.exit(1);
|
|
10131
10293
|
}
|
|
10132
|
-
const friendly =
|
|
10294
|
+
const friendly = friendlyHarnessError(err);
|
|
10133
10295
|
if (friendly) {
|
|
10134
10296
|
logErr(friendly);
|
|
10135
10297
|
} else {
|
|
10136
10298
|
logErr(err instanceof Error ? err.message : String(err));
|
|
10137
|
-
for (const note of
|
|
10299
|
+
for (const note of harnessErrorNotes(err)) console.error(` ${S.dim(note)}`);
|
|
10138
10300
|
}
|
|
10139
10301
|
process.exit(1);
|
|
10140
10302
|
}
|
|
@@ -10152,7 +10314,7 @@ function makeRunCommand() {
|
|
|
10152
10314
|
console.log();
|
|
10153
10315
|
console.log(` ${S.label("Flow:")} ${S.heading(flow.name)}`);
|
|
10154
10316
|
console.log(` ${S.label("Project dir:")} ${projectDir}`);
|
|
10155
|
-
console.log(` ${S.label("
|
|
10317
|
+
console.log(` ${S.label("Harness:")} ${harness}${model ? S.dim(` / ${model}`) : ""}`);
|
|
10156
10318
|
if (opts.label) console.log(` ${S.label("Label:")} ${opts.label}`);
|
|
10157
10319
|
if (dryRun) console.log(` ${S.warn("(dry run \u2014 no agent will be started)")}`);
|
|
10158
10320
|
console.log();
|
|
@@ -10160,7 +10322,7 @@ function makeRunCommand() {
|
|
|
10160
10322
|
await runFlow({
|
|
10161
10323
|
projectDir,
|
|
10162
10324
|
flowPath,
|
|
10163
|
-
|
|
10325
|
+
harness,
|
|
10164
10326
|
model,
|
|
10165
10327
|
sessionLabel: opts.label,
|
|
10166
10328
|
dryRun,
|
|
@@ -10168,7 +10330,7 @@ function makeRunCommand() {
|
|
|
10168
10330
|
onLog: (line) => console.log(line)
|
|
10169
10331
|
});
|
|
10170
10332
|
} catch (err) {
|
|
10171
|
-
const friendly =
|
|
10333
|
+
const friendly = friendlyHarnessError(err);
|
|
10172
10334
|
logErr(friendly ?? (err instanceof Error ? err.message : String(err)));
|
|
10173
10335
|
process.exit(1);
|
|
10174
10336
|
}
|
|
@@ -10212,7 +10374,7 @@ function makeResumeCommand() {
|
|
|
10212
10374
|
onLog: (line) => console.log(line)
|
|
10213
10375
|
});
|
|
10214
10376
|
} catch (err) {
|
|
10215
|
-
const friendly =
|
|
10377
|
+
const friendly = friendlyHarnessError(err);
|
|
10216
10378
|
logErr(friendly ?? (err instanceof Error ? err.message : String(err)));
|
|
10217
10379
|
process.exit(1);
|
|
10218
10380
|
}
|
|
@@ -10236,7 +10398,7 @@ function makeStatusCommand() {
|
|
|
10236
10398
|
console.log(` ${S.label("Status:")} ${statusColor(session.status ?? "unknown")}`);
|
|
10237
10399
|
if (session.error) console.log(` ${S.label("Error:")} ${session.error}`);
|
|
10238
10400
|
console.log(
|
|
10239
|
-
` ${S.label("
|
|
10401
|
+
` ${S.label("Harness:")} ${session.harness}${session.model ? S.dim(` / ${session.model}`) : ""}`
|
|
10240
10402
|
);
|
|
10241
10403
|
console.log(` ${S.label("Updated:")} ${session.updatedAt} ${S.dim(`(${age}s ago)`)}`);
|
|
10242
10404
|
console.log(
|
|
@@ -10253,19 +10415,19 @@ function makeClearCommand() {
|
|
|
10253
10415
|
});
|
|
10254
10416
|
}
|
|
10255
10417
|
function makeReplCommand() {
|
|
10256
|
-
return new Command("repl").description("Start an interactive agent session").option("--project-dir <path>", "Project directory").option("--
|
|
10418
|
+
return new Command("repl").description("Start an interactive agent session").option("--project-dir <path>", "Project directory").option("--harness <name>", harnessOptionDescription()).addOption(driverAliasOption()).option("--model <name>", "Model override").option("--resume", "Resume last session").option("--resume-session <id>", "Resume specific session").option(
|
|
10257
10419
|
"--instance <id>",
|
|
10258
10420
|
"Run the skaile.yaml `agents:` instance <id> (`default` is the primary `agent:`) with its overrides"
|
|
10259
10421
|
).action(async (opts) => {
|
|
10260
|
-
const { findWorkspaceRoot } = await import('../core/index.js');
|
|
10422
|
+
const { findWorkspaceRoot: findWorkspaceRoot2 } = await import('../core/index.js');
|
|
10261
10423
|
const { startRepl } = await import('../tui/index.js');
|
|
10262
10424
|
const os2 = await import('os');
|
|
10263
10425
|
const userCwd = path18__default.resolve(opts.projectDir ?? process.cwd());
|
|
10264
|
-
const workspaceRoot =
|
|
10426
|
+
const workspaceRoot = findWorkspaceRoot2(userCwd);
|
|
10265
10427
|
const instanceId2 = opts.instance?.trim() || void 0;
|
|
10266
10428
|
let projectDir;
|
|
10267
10429
|
let agentCwd;
|
|
10268
|
-
let
|
|
10430
|
+
let harnessOverride = foldDriverFlag(opts).harness;
|
|
10269
10431
|
if (workspaceRoot) {
|
|
10270
10432
|
projectDir = workspaceRoot;
|
|
10271
10433
|
agentCwd = userCwd;
|
|
@@ -10293,13 +10455,13 @@ function makeReplCommand() {
|
|
|
10293
10455
|
projectDir = tmpDir;
|
|
10294
10456
|
agentCwd = userCwd;
|
|
10295
10457
|
logOk(`Temporary workspace: ${S.cmd(tmpDir)}`);
|
|
10296
|
-
if (!
|
|
10458
|
+
if (!harnessOverride) {
|
|
10297
10459
|
const claudeDir = path18__default.join(os2.homedir(), ".claude");
|
|
10298
10460
|
if (fs8__default.existsSync(claudeDir)) {
|
|
10299
|
-
|
|
10461
|
+
harnessOverride = "claude-sdk";
|
|
10300
10462
|
logInfo(`Detected ${S.cmd("~/.claude")} \u2192 using ${S.cmd("claude-sdk")} harness`);
|
|
10301
10463
|
} else {
|
|
10302
|
-
|
|
10464
|
+
harnessOverride = "omp";
|
|
10303
10465
|
logInfo(`Using ${S.cmd("omp")} harness`);
|
|
10304
10466
|
}
|
|
10305
10467
|
}
|
|
@@ -10307,7 +10469,7 @@ function makeReplCommand() {
|
|
|
10307
10469
|
}
|
|
10308
10470
|
await loadDeclaredPlugins(projectDir);
|
|
10309
10471
|
const effective = await resolveSettings(projectDir, {
|
|
10310
|
-
|
|
10472
|
+
harness: harnessOverride,
|
|
10311
10473
|
model: opts.model
|
|
10312
10474
|
});
|
|
10313
10475
|
let effectiveModel = effective.model;
|
|
@@ -10317,7 +10479,7 @@ function makeReplCommand() {
|
|
|
10317
10479
|
} catch {
|
|
10318
10480
|
}
|
|
10319
10481
|
}
|
|
10320
|
-
const providerRefusal = checkModelProvider(effective.
|
|
10482
|
+
const providerRefusal = checkModelProvider(effective.harness ?? DEFAULT_HARNESS_ID, {
|
|
10321
10483
|
registry: loadRegistryView({ projectDir }).merged,
|
|
10322
10484
|
model: effectiveModel
|
|
10323
10485
|
});
|
|
@@ -10329,14 +10491,14 @@ function makeReplCommand() {
|
|
|
10329
10491
|
await startRepl({
|
|
10330
10492
|
projectDir,
|
|
10331
10493
|
cwd: agentCwd !== projectDir ? agentCwd : void 0,
|
|
10332
|
-
|
|
10494
|
+
harness: harnessOverride,
|
|
10333
10495
|
model: opts.model,
|
|
10334
10496
|
resume: opts.resume,
|
|
10335
10497
|
resumeSessionId: opts.resumeSession,
|
|
10336
10498
|
...instanceId2 ? { instanceId: instanceId2 } : {}
|
|
10337
10499
|
});
|
|
10338
10500
|
} catch (err) {
|
|
10339
|
-
logErr(
|
|
10501
|
+
logErr(friendlyHarnessError(err) ?? (err instanceof Error ? err.message : String(err)));
|
|
10340
10502
|
process.exit(1);
|
|
10341
10503
|
}
|
|
10342
10504
|
});
|
|
@@ -10393,12 +10555,12 @@ function makeServeCommand() {
|
|
|
10393
10555
|
).option("--project-dir <path>", "Project directory", process.cwd()).option(
|
|
10394
10556
|
"--managed-codex-config <path>",
|
|
10395
10557
|
"Explicit private host configuration for managed Codex"
|
|
10396
|
-
).option("--
|
|
10558
|
+
).option("--harness <name>", "Override harness").addOption(driverAliasOption()).option("--model <name>", "Override model").option("--provider <name>", "Override provider").option(
|
|
10397
10559
|
"--session-id <id>",
|
|
10398
10560
|
"Label for the session; does not restore the conversation (use --resume-session-id)"
|
|
10399
10561
|
).option(
|
|
10400
10562
|
"--resume-session-id <id>",
|
|
10401
|
-
"
|
|
10563
|
+
"harnessSessionId of an earlier session (from its session_info event); restores that conversation"
|
|
10402
10564
|
).option(
|
|
10403
10565
|
"--providers <ids>",
|
|
10404
10566
|
"Restrict the AI provider registry to these entry ids (comma-separated)"
|
|
@@ -10409,7 +10571,8 @@ function makeServeCommand() {
|
|
|
10409
10571
|
"--with-codex",
|
|
10410
10572
|
"Include the Codex harness in the compiled binary (used with --compile-test)"
|
|
10411
10573
|
).action(
|
|
10412
|
-
async (
|
|
10574
|
+
async (rawOpts) => {
|
|
10575
|
+
const opts = foldDriverFlag(rawOpts);
|
|
10413
10576
|
if (opts.compileTest && opts.managedCodexConfig)
|
|
10414
10577
|
throw new Error("Managed Codex configuration is unsupported with --compile-test");
|
|
10415
10578
|
if (opts.compileTest) {
|
|
@@ -10455,10 +10618,10 @@ function makeServeCommand() {
|
|
|
10455
10618
|
}
|
|
10456
10619
|
const providers = parseProviderIds(opts.providers);
|
|
10457
10620
|
const modelEndpoint = parseModelEndpointFlag(opts.modelEndpoint);
|
|
10458
|
-
const {
|
|
10459
|
-
const
|
|
10460
|
-
if (
|
|
10461
|
-
logErr(
|
|
10621
|
+
const { checkHarnessSdk, checkModelEndpointPeer, checkServeModel } = await import('../serve-preflight-L4POEHNQ.js');
|
|
10622
|
+
const harnessProblem = managedCodex ? null : await checkHarnessSdk(opts.projectDir, opts.harness);
|
|
10623
|
+
if (harnessProblem) {
|
|
10624
|
+
logErr(harnessProblem);
|
|
10462
10625
|
process.exitCode = 1;
|
|
10463
10626
|
return;
|
|
10464
10627
|
}
|
|
@@ -10469,7 +10632,7 @@ function makeServeCommand() {
|
|
|
10469
10632
|
return;
|
|
10470
10633
|
}
|
|
10471
10634
|
const modelProblem = managedCodex ? null : await checkServeModel(opts.projectDir, {
|
|
10472
|
-
|
|
10635
|
+
harness: opts.harness,
|
|
10473
10636
|
model: opts.model,
|
|
10474
10637
|
providers
|
|
10475
10638
|
});
|
|
@@ -10498,7 +10661,7 @@ function makeServeCommand() {
|
|
|
10498
10661
|
// `nix` deploy targets set it for children meant to outlive them.
|
|
10499
10662
|
exitOnBrokenPipe: process.env.SKAILE_SERVE_EXIT_ON_BROKEN_STDOUT !== "0",
|
|
10500
10663
|
projectDir: opts.projectDir,
|
|
10501
|
-
|
|
10664
|
+
harness: opts.harness,
|
|
10502
10665
|
model: opts.model,
|
|
10503
10666
|
provider: opts.provider,
|
|
10504
10667
|
sessionId: opts.sessionId,
|
|
@@ -10516,12 +10679,12 @@ function makeServeCommand() {
|
|
|
10516
10679
|
);
|
|
10517
10680
|
}
|
|
10518
10681
|
async function ensurePluginsLoadedForServe(projectDir) {
|
|
10519
|
-
const { logInfo: logInfo2, logWarn: logWarn2 } = await import('../helpers-
|
|
10682
|
+
const { logInfo: logInfo2, logWarn: logWarn2 } = await import('../helpers-DE53KG3E.js');
|
|
10520
10683
|
try {
|
|
10521
10684
|
const { resolveSkWorkspaceConfig: resolveSkWorkspaceConfig2 } = await import('../core/index.js');
|
|
10522
10685
|
const config = resolveSkWorkspaceConfig2(projectDir);
|
|
10523
10686
|
if (!config.plugins || config.plugins.length === 0) return;
|
|
10524
|
-
const { ensurePluginsLoaded } = await import('../plugin-store-
|
|
10687
|
+
const { ensurePluginsLoaded } = await import('../plugin-store-MSH6GK6T.js');
|
|
10525
10688
|
const { pluginRegistry } = await import('../plugin-registry/index.js');
|
|
10526
10689
|
const result = await ensurePluginsLoaded(projectDir, config.plugins, pluginRegistry);
|
|
10527
10690
|
if (result.loaded.length > 0) {
|
|
@@ -10535,14 +10698,14 @@ async function ensurePluginsLoadedForServe(projectDir) {
|
|
|
10535
10698
|
}
|
|
10536
10699
|
}
|
|
10537
10700
|
async function runCompileTest(opts) {
|
|
10538
|
-
const { logOk: logOk2, logErr: logErr2, logInfo: logInfo2, S: S2 } = await import('../helpers-
|
|
10701
|
+
const { logOk: logOk2, logErr: logErr2, logInfo: logInfo2, S: S2 } = await import('../helpers-DE53KG3E.js');
|
|
10539
10702
|
const { tmpdir } = await import('os');
|
|
10540
10703
|
const { dirname: dirname3, join: join6, resolve: resolve4 } = await import('path');
|
|
10541
10704
|
const { fileURLToPath: fileURLToPath2 } = await import('url');
|
|
10542
|
-
const { unlinkSync, existsSync:
|
|
10705
|
+
const { unlinkSync, existsSync: existsSync22 } = await import('fs');
|
|
10543
10706
|
const { spawn } = await import('child_process');
|
|
10544
10707
|
const { portableSpawnSync: portableSpawnSync2 } = await import('../core/index.js');
|
|
10545
|
-
const { MONOREPO_ROOT } = await import('../paths-
|
|
10708
|
+
const { MONOREPO_ROOT } = await import('../paths-QAV4C3KX.js');
|
|
10546
10709
|
if (MONOREPO_ROOT === null) {
|
|
10547
10710
|
logErr2("--compile-test is only available inside the skaile-dev workspace.");
|
|
10548
10711
|
logInfo2("Run it from a checkout of skaile-ai/skaile-dev (the monorepo shell).");
|
|
@@ -10586,7 +10749,7 @@ async function runCompileTest(opts) {
|
|
|
10586
10749
|
}
|
|
10587
10750
|
logOk2(`Binary built (${S2.dim(outfile)})`);
|
|
10588
10751
|
const serveArgs = [outfile, "serve", "--port", opts.port, "--project-dir", opts.projectDir];
|
|
10589
|
-
if (opts.
|
|
10752
|
+
if (opts.harness) serveArgs.push("--harness", opts.harness);
|
|
10590
10753
|
if (opts.model) serveArgs.push("--model", opts.model);
|
|
10591
10754
|
if (opts.provider) serveArgs.push("--provider", opts.provider);
|
|
10592
10755
|
if (opts.sessionId) serveArgs.push("--session-id", opts.sessionId);
|
|
@@ -10604,7 +10767,7 @@ async function runCompileTest(opts) {
|
|
|
10604
10767
|
} catch {
|
|
10605
10768
|
}
|
|
10606
10769
|
try {
|
|
10607
|
-
if (
|
|
10770
|
+
if (existsSync22(outfile)) unlinkSync(outfile);
|
|
10608
10771
|
} catch {
|
|
10609
10772
|
}
|
|
10610
10773
|
}
|
|
@@ -11372,7 +11535,7 @@ function makeShowCommand() {
|
|
|
11372
11535
|
const am2 = new AssetManager({
|
|
11373
11536
|
registry: getKindRegistry(),
|
|
11374
11537
|
projectDir: path18__default.resolve(opts.projectDir),
|
|
11375
|
-
|
|
11538
|
+
harness: opts.target
|
|
11376
11539
|
});
|
|
11377
11540
|
if (!kind) {
|
|
11378
11541
|
showOverview(am2);
|
|
@@ -11481,8 +11644,8 @@ function makeStoreCommand() {
|
|
|
11481
11644
|
"--all",
|
|
11482
11645
|
`List every match (default: ${STORE_ROW_LIMIT} rows, only what \`skaile add\` can install)`
|
|
11483
11646
|
).option("-C, --project-dir <dir>", "Project directory (catalog config overlay)", process.cwd()).action(async (query, opts) => {
|
|
11484
|
-
const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-
|
|
11485
|
-
const { getKnownKinds: getKnownKinds2 } = await import('../open-registry-
|
|
11647
|
+
const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-RJGJIW5H.js');
|
|
11648
|
+
const { getKnownKinds: getKnownKinds2 } = await import('../open-registry-3QS3J7KO.js');
|
|
11486
11649
|
const projectDir = path18__default.resolve(opts.projectDir);
|
|
11487
11650
|
if (opts.kind && !getKnownKinds2().has(opts.kind)) {
|
|
11488
11651
|
logErr(
|
|
@@ -11540,8 +11703,8 @@ function makeStoreCommand() {
|
|
|
11540
11703
|
}
|
|
11541
11704
|
});
|
|
11542
11705
|
store.command("show <ref>").description("Show a store asset's details + provenance (source, files, integrity)").option("-C, --project-dir <dir>", "Project directory (catalog config overlay)", process.cwd()).action(async (ref, opts) => {
|
|
11543
|
-
const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-
|
|
11544
|
-
const { supportsInstallManifest: supportsInstallManifest2 } = await import('../project-
|
|
11706
|
+
const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-RJGJIW5H.js');
|
|
11707
|
+
const { supportsInstallManifest: supportsInstallManifest2 } = await import('../project-HZW2MZPA.js');
|
|
11545
11708
|
try {
|
|
11546
11709
|
parseAssetRef(ref);
|
|
11547
11710
|
} catch (e) {
|
|
@@ -12243,8 +12406,8 @@ Execution:
|
|
|
12243
12406
|
resume Resume last session
|
|
12244
12407
|
serve [--compile-test] Start WebSocket agent server
|
|
12245
12408
|
mcp-server Start workspace MCP server (for .mcp.json)
|
|
12246
|
-
integration install [--
|
|
12247
|
-
integration uninstall [--
|
|
12409
|
+
integration install [--harness all] Install agent integration (claude-code | omp | codex)
|
|
12410
|
+
integration uninstall [--harness all] Uninstall agent integration
|
|
12248
12411
|
integration enable Enable integration (claude-code only)
|
|
12249
12412
|
integration disable Disable integration (claude-code only)
|
|
12250
12413
|
integration status Show install / enable state across harnesses
|
|
@@ -12308,10 +12471,10 @@ Advanced:
|
|
|
12308
12471
|
`;
|
|
12309
12472
|
}
|
|
12310
12473
|
});
|
|
12311
|
-
var
|
|
12312
|
-
"claude-code": {
|
|
12313
|
-
omp: {
|
|
12314
|
-
codex: {
|
|
12474
|
+
var INIT_HARNESS_DEFAULTS = {
|
|
12475
|
+
"claude-code": { harness: "claude-sdk" },
|
|
12476
|
+
omp: { harness: "omp" },
|
|
12477
|
+
codex: { harness: "codex" }
|
|
12315
12478
|
};
|
|
12316
12479
|
program.command("init [project-dir]").description("Initialize a project directory (defaults to current directory)").option("--harness <name>", "Coding-agent harness (claude-code | omp | codex)", "claude-code").option("--no-git", "Skip git init and .gitignore").action(
|
|
12317
12480
|
(projectDir, opts) => runInit(projectDir, opts)
|
|
@@ -12319,39 +12482,39 @@ program.command("init [project-dir]").description("Initialize a project director
|
|
|
12319
12482
|
async function runInit(projectDir, opts) {
|
|
12320
12483
|
const { mkdirSync: mkdirSync5, writeFileSync: writeFileSync7 } = await import('fs');
|
|
12321
12484
|
const { stringify: stringify2 } = await import('yaml');
|
|
12322
|
-
const {
|
|
12485
|
+
const { HARNESS_TARGETS: HARNESS_TARGETS2, SUPPORTED_HARNESSES: SUPPORTED_HARNESSES2 } = await import('../core/index.js');
|
|
12323
12486
|
const harness = opts.harness;
|
|
12324
|
-
if (!
|
|
12325
|
-
logErr(`Unknown harness "${opts.harness}". Supported: ${
|
|
12487
|
+
if (!SUPPORTED_HARNESSES2.includes(harness)) {
|
|
12488
|
+
logErr(`Unknown harness "${opts.harness}". Supported: ${SUPPORTED_HARNESSES2.join(", ")}`);
|
|
12326
12489
|
process.exitCode = 1;
|
|
12327
12490
|
return;
|
|
12328
12491
|
}
|
|
12329
12492
|
const resolved = path18__default.resolve(projectDir ?? ".");
|
|
12330
12493
|
const projectName = path18__default.basename(resolved);
|
|
12331
12494
|
const created = [];
|
|
12332
|
-
const { existsSync:
|
|
12333
|
-
if (!
|
|
12495
|
+
const { existsSync: existsSync22 } = await import('fs');
|
|
12496
|
+
if (!existsSync22(resolved)) {
|
|
12334
12497
|
mkdirSync5(resolved, { recursive: true });
|
|
12335
12498
|
created.push(".");
|
|
12336
12499
|
}
|
|
12337
12500
|
const skaileDir = path18__default.join(resolved, ".skaile");
|
|
12338
|
-
if (!
|
|
12501
|
+
if (!existsSync22(skaileDir)) {
|
|
12339
12502
|
mkdirSync5(path18__default.join(skaileDir, "sessions"), { recursive: true });
|
|
12340
12503
|
created.push(".skaile/");
|
|
12341
12504
|
}
|
|
12342
12505
|
const settingsPath = path18__default.join(skaileDir, "settings.json");
|
|
12343
|
-
if (!
|
|
12506
|
+
if (!existsSync22(settingsPath)) {
|
|
12344
12507
|
writeFileSync7(settingsPath, "{}\n");
|
|
12345
12508
|
created.push(".skaile/settings.json");
|
|
12346
12509
|
}
|
|
12347
12510
|
const wsConfigPath = path18__default.join(resolved, "skaile.yaml");
|
|
12348
|
-
if (!
|
|
12511
|
+
if (!existsSync22(wsConfigPath)) {
|
|
12349
12512
|
writeFileSync7(wsConfigPath, stringify2(buildInitWorkspaceConfig(projectName, harness)));
|
|
12350
12513
|
created.push("skaile.yaml");
|
|
12351
12514
|
}
|
|
12352
|
-
for (const dir of new Set(Object.values(
|
|
12515
|
+
for (const dir of new Set(Object.values(HARNESS_TARGETS2[harness].local))) {
|
|
12353
12516
|
const full = path18__default.join(resolved, dir);
|
|
12354
|
-
if (!
|
|
12517
|
+
if (!existsSync22(full)) {
|
|
12355
12518
|
mkdirSync5(full, { recursive: true });
|
|
12356
12519
|
created.push(`${dir}/`);
|
|
12357
12520
|
}
|
|
@@ -12364,7 +12527,7 @@ async function runInit(projectDir, opts) {
|
|
|
12364
12527
|
printInitSummary(resolved, projectDir, created);
|
|
12365
12528
|
}
|
|
12366
12529
|
function buildInitWorkspaceConfig(projectName, harness) {
|
|
12367
|
-
const harnessDefaults =
|
|
12530
|
+
const harnessDefaults = INIT_HARNESS_DEFAULTS[harness];
|
|
12368
12531
|
return {
|
|
12369
12532
|
name: projectName,
|
|
12370
12533
|
description: `${projectName} AI skill dependencies`,
|
|
@@ -12373,7 +12536,7 @@ function buildInitWorkspaceConfig(projectName, harness) {
|
|
|
12373
12536
|
agent: harness,
|
|
12374
12537
|
// model is omitted unless a harness fixes it (none do today).
|
|
12375
12538
|
...harnessDefaults.model ? { model: harnessDefaults.model } : {},
|
|
12376
|
-
|
|
12539
|
+
harness: harnessDefaults.harness,
|
|
12377
12540
|
max_turns: 200
|
|
12378
12541
|
}
|
|
12379
12542
|
}
|
|
@@ -12381,7 +12544,7 @@ function buildInitWorkspaceConfig(projectName, harness) {
|
|
|
12381
12544
|
}
|
|
12382
12545
|
async function initGitScaffold(resolved, created) {
|
|
12383
12546
|
const { execSync: execSync2 } = await import('child_process');
|
|
12384
|
-
const { existsSync:
|
|
12547
|
+
const { existsSync: existsSync22, readFileSync: readFileSync13, writeFileSync: writeFileSync7 } = await import('fs');
|
|
12385
12548
|
const gitignorePath = path18__default.join(resolved, ".gitignore");
|
|
12386
12549
|
const entries = [
|
|
12387
12550
|
"node_modules/",
|
|
@@ -12417,7 +12580,7 @@ async function initGitScaffold(resolved, created) {
|
|
|
12417
12580
|
".env",
|
|
12418
12581
|
".env.local"
|
|
12419
12582
|
];
|
|
12420
|
-
const existing =
|
|
12583
|
+
const existing = existsSync22(gitignorePath) ? readFileSync13(gitignorePath, "utf-8") : "";
|
|
12421
12584
|
const have = new Set(existing.split("\n").map((l) => l.trim()));
|
|
12422
12585
|
const append = entries.filter((e) => !have.has(e));
|
|
12423
12586
|
if (append.length > 0) {
|
|
@@ -12426,7 +12589,7 @@ async function initGitScaffold(resolved, created) {
|
|
|
12426
12589
|
`);
|
|
12427
12590
|
if (!existing) created.push(".gitignore");
|
|
12428
12591
|
}
|
|
12429
|
-
if (!
|
|
12592
|
+
if (!existsSync22(path18__default.join(resolved, ".git"))) {
|
|
12430
12593
|
try {
|
|
12431
12594
|
execSync2("git init", { cwd: resolved, stdio: "pipe" });
|
|
12432
12595
|
created.push(".git/");
|
|
@@ -12456,7 +12619,7 @@ async function bootstrapUserConfig() {
|
|
|
12456
12619
|
}
|
|
12457
12620
|
async function hydrateInitSources(resolved, created) {
|
|
12458
12621
|
try {
|
|
12459
|
-
const { ensureSourcesCloned } = await import('../ensure-sources-
|
|
12622
|
+
const { ensureSourcesCloned } = await import('../ensure-sources-UPTHZKGF.js');
|
|
12460
12623
|
const hydrate = ensureSourcesCloned(resolved, { quiet: true });
|
|
12461
12624
|
for (const n of hydrate.cloned) created.push(`~/.skaile/cache/sources/${n}/`);
|
|
12462
12625
|
if (hydrate.failed.length > 0) {
|
|
@@ -12496,7 +12659,7 @@ function printInitSummary(resolved, projectDir, created) {
|
|
|
12496
12659
|
console.log();
|
|
12497
12660
|
}
|
|
12498
12661
|
program.command("setup").description("Interactive provider setup wizard").action(async () => {
|
|
12499
|
-
const { cmdSetup } = await import('../setup-
|
|
12662
|
+
const { cmdSetup } = await import('../setup-AGYB4PKR.js');
|
|
12500
12663
|
await cmdSetup([], { projectDir: process.cwd() });
|
|
12501
12664
|
});
|
|
12502
12665
|
program.addCommand(makeInstallCommand());
|
|
@@ -12576,7 +12739,7 @@ program.hook("postAction", async (_thisCommand, actionCommand) => {
|
|
|
12576
12739
|
const opts = actionCommand.opts();
|
|
12577
12740
|
if (opts.global || opts.dryRun) return;
|
|
12578
12741
|
const projectDir = path18__default.resolve(opts.projectDir ?? process.cwd());
|
|
12579
|
-
const { refreshPluginSkills } = await import('../claude-code-
|
|
12742
|
+
const { refreshPluginSkills } = await import('../claude-code-VJGYBXQR.js');
|
|
12580
12743
|
try {
|
|
12581
12744
|
if (await refreshPluginSkills(projectDir)) {
|
|
12582
12745
|
logInfo(`Updated ${S.cmd(".claude/plugins/skaile/skills")} (the --full plugin copy)`);
|