@skaile/workspaces 6.8.0 → 6.9.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 +52 -0
- package/dist/ai-sdk.js +5 -5
- package/dist/{asset-feeds-NU5UOO5F.js → asset-feeds-JWRIWLVX.js} +19 -19
- package/dist/{asset-feeds-NU5UOO5F.js.map → asset-feeds-JWRIWLVX.js.map} +1 -1
- package/dist/asset-manager/catalog-deployer.js +4 -4
- package/dist/asset-manager/history.js +19 -1
- package/dist/asset-manager/index.js +11 -11
- package/dist/asset-manager/installer.js +7 -7
- package/dist/asset-manager/renderers.js +6 -6
- package/dist/asset-manager/src/history.d.ts.map +1 -1
- package/dist/asset-manager/src/index.d.ts +65 -3
- package/dist/asset-manager/src/index.d.ts.map +1 -1
- package/dist/bridge/harnesses/claude-sdk.js +9 -9
- package/dist/bridge/harnesses/codex.js +29 -12
- package/dist/bridge/harnesses/codex.js.map +1 -1
- package/dist/bridge/harnesses/continue.js +8 -8
- package/dist/bridge/harnesses/echo.js +3 -3
- package/dist/bridge/harnesses/gemini.js +8 -8
- package/dist/bridge/harnesses/goose.js +8 -8
- package/dist/bridge/harnesses/omp.js +156 -24
- package/dist/bridge/harnesses/omp.js.map +1 -1
- package/dist/bridge/harnesses/opencode.js +8 -8
- package/dist/bridge/harnesses/qwen.js +8 -8
- package/dist/bridge/index.js +14 -14
- package/dist/bridge/src/codex/friendly-error.d.ts +7 -1
- package/dist/bridge/src/codex/friendly-error.d.ts.map +1 -1
- package/dist/bridge/src/codex/login-fallback.d.ts +5 -0
- package/dist/bridge/src/codex/login-fallback.d.ts.map +1 -1
- package/dist/bridge/src/harnesses/codex.d.ts +2 -0
- package/dist/bridge/src/harnesses/codex.d.ts.map +1 -1
- package/dist/bridge/src/harnesses/omp.d.ts +17 -0
- package/dist/bridge/src/harnesses/omp.d.ts.map +1 -1
- package/dist/{chunk-757G6TTZ.js → chunk-23Q5LT4U.js} +331 -59
- package/dist/chunk-23Q5LT4U.js.map +1 -0
- package/dist/{chunk-SBNUXJ6E.js → chunk-3AIEJSQR.js} +3 -3
- package/dist/{chunk-SBNUXJ6E.js.map → chunk-3AIEJSQR.js.map} +1 -1
- package/dist/{chunk-KHWGUXSF.js → chunk-3EPRTMXY.js} +5 -5
- package/dist/{chunk-KHWGUXSF.js.map → chunk-3EPRTMXY.js.map} +1 -1
- package/dist/{chunk-TMJBEGS4.js → chunk-4KPQ6ILH.js} +5 -34
- package/dist/chunk-4KPQ6ILH.js.map +1 -0
- package/dist/{chunk-G7NMF5WQ.js → chunk-4ROXSQEG.js} +3 -3
- package/dist/{chunk-G7NMF5WQ.js.map → chunk-4ROXSQEG.js.map} +1 -1
- package/dist/{chunk-I6XH46Q6.js → chunk-4WB4KSSQ.js} +3 -3
- package/dist/{chunk-I6XH46Q6.js.map → chunk-4WB4KSSQ.js.map} +1 -1
- package/dist/{chunk-NW7Y5SNK.js → chunk-5AQLCRR7.js} +4 -4
- package/dist/{chunk-NW7Y5SNK.js.map → chunk-5AQLCRR7.js.map} +1 -1
- package/dist/{chunk-WFK4MUBL.js → chunk-5J6JWGY4.js} +3 -3
- package/dist/{chunk-WFK4MUBL.js.map → chunk-5J6JWGY4.js.map} +1 -1
- package/dist/{chunk-O5Y7VMVQ.js → chunk-5KWQMCH7.js} +3 -3
- package/dist/{chunk-O5Y7VMVQ.js.map → chunk-5KWQMCH7.js.map} +1 -1
- package/dist/{chunk-YHNPWSSH.js → chunk-5NTB64PW.js} +45 -13
- package/dist/chunk-5NTB64PW.js.map +1 -0
- package/dist/{chunk-QGA2OBUJ.js → chunk-72BDCGBB.js} +3 -3
- package/dist/{chunk-QGA2OBUJ.js.map → chunk-72BDCGBB.js.map} +1 -1
- package/dist/{chunk-KTBKW2FI.js → chunk-7QYBKUAS.js} +4 -3
- package/dist/chunk-7QYBKUAS.js.map +1 -0
- package/dist/{chunk-E3KABQS3.js → chunk-AERQFD6T.js} +4 -4
- package/dist/{chunk-E3KABQS3.js.map → chunk-AERQFD6T.js.map} +1 -1
- package/dist/{chunk-XIIIGLSL.js → chunk-AVRTZAH2.js} +9 -9
- package/dist/{chunk-XIIIGLSL.js.map → chunk-AVRTZAH2.js.map} +1 -1
- package/dist/{chunk-2I5HNM7K.js → chunk-B2DGCYVC.js} +18 -18
- package/dist/chunk-B2DGCYVC.js.map +1 -0
- package/dist/{chunk-3QX2X77G.js → chunk-C7L5MFUL.js} +3 -3
- package/dist/{chunk-3QX2X77G.js.map → chunk-C7L5MFUL.js.map} +1 -1
- package/dist/{chunk-ORXV3UB6.js → chunk-CFTTXUM2.js} +3 -3
- package/dist/{chunk-ORXV3UB6.js.map → chunk-CFTTXUM2.js.map} +1 -1
- package/dist/{chunk-DRHJRTAS.js → chunk-DZRN3SNG.js} +5 -5
- package/dist/{chunk-DRHJRTAS.js.map → chunk-DZRN3SNG.js.map} +1 -1
- package/dist/{chunk-QCR5AE5E.js → chunk-E675QKFG.js} +5 -5
- package/dist/{chunk-QCR5AE5E.js.map → chunk-E675QKFG.js.map} +1 -1
- package/dist/{chunk-O7ADRMCR.js → chunk-FZO64PLQ.js} +45 -16
- package/dist/chunk-FZO64PLQ.js.map +1 -0
- package/dist/{chunk-Y6LC5PEZ.js → chunk-GYBDWW6K.js} +14 -5
- package/dist/chunk-GYBDWW6K.js.map +1 -0
- package/dist/{chunk-CMXDFTA2.js → chunk-GYPPVANR.js} +3 -3
- package/dist/{chunk-CMXDFTA2.js.map → chunk-GYPPVANR.js.map} +1 -1
- package/dist/{chunk-G44FFUMA.js → chunk-GZL6RN4Z.js} +92 -14
- package/dist/chunk-GZL6RN4Z.js.map +1 -0
- package/dist/{chunk-DFP476EU.js → chunk-JY2JXCL6.js} +89 -4
- package/dist/chunk-JY2JXCL6.js.map +1 -0
- package/dist/{chunk-ZBA4P5TD.js → chunk-LMADWO4Q.js} +9 -6
- package/dist/chunk-LMADWO4Q.js.map +1 -0
- package/dist/{chunk-3HSLJAMJ.js → chunk-LYVLDGML.js} +3 -3
- package/dist/{chunk-3HSLJAMJ.js.map → chunk-LYVLDGML.js.map} +1 -1
- package/dist/{chunk-YZD7DUEF.js → chunk-M4G2SVXI.js} +3 -3
- package/dist/{chunk-YZD7DUEF.js.map → chunk-M4G2SVXI.js.map} +1 -1
- package/dist/{chunk-SGI5MRKP.js → chunk-MDCI4RSG.js} +40 -5
- package/dist/chunk-MDCI4RSG.js.map +1 -0
- package/dist/{chunk-LJ6PLEDU.js → chunk-MPRWVZXF.js} +316 -51
- package/dist/chunk-MPRWVZXF.js.map +1 -0
- package/dist/{chunk-KO3VSZQP.js → chunk-NDBHEOIA.js} +6 -6
- package/dist/{chunk-KO3VSZQP.js.map → chunk-NDBHEOIA.js.map} +1 -1
- package/dist/{chunk-HKRME377.js → chunk-NJVHGS7X.js} +4 -4
- package/dist/{chunk-HKRME377.js.map → chunk-NJVHGS7X.js.map} +1 -1
- package/dist/{chunk-Q6FKWPRO.js → chunk-O3FYOS64.js} +93 -14
- package/dist/chunk-O3FYOS64.js.map +1 -0
- package/dist/{chunk-RDIGVPXX.js → chunk-PTJZCOBH.js} +2 -2
- package/dist/{chunk-RDIGVPXX.js.map → chunk-PTJZCOBH.js.map} +1 -1
- package/dist/{chunk-4CD2R4MJ.js → chunk-QBUJTVMY.js} +4 -4
- package/dist/{chunk-4CD2R4MJ.js.map → chunk-QBUJTVMY.js.map} +1 -1
- package/dist/{chunk-LL5GMUQG.js → chunk-SE6OL7Y5.js} +7 -7
- package/dist/{chunk-LL5GMUQG.js.map → chunk-SE6OL7Y5.js.map} +1 -1
- package/dist/{chunk-SILFO5RY.js → chunk-SQMDFM4N.js} +2 -2
- package/dist/{chunk-SILFO5RY.js.map → chunk-SQMDFM4N.js.map} +1 -1
- package/dist/{chunk-REAF7ZFA.js → chunk-T5EIWWEJ.js} +398 -36
- package/dist/chunk-T5EIWWEJ.js.map +1 -0
- package/dist/{chunk-QW5B3TEO.js → chunk-TMQFOJ6F.js} +3 -3
- package/dist/{chunk-QW5B3TEO.js.map → chunk-TMQFOJ6F.js.map} +1 -1
- package/dist/{chunk-BB5EJLKZ.js → chunk-TUOHA6BM.js} +2 -2
- package/dist/{chunk-BB5EJLKZ.js.map → chunk-TUOHA6BM.js.map} +1 -1
- package/dist/{chunk-HLAEYFUN.js → chunk-U3FI4DVT.js} +3 -3
- package/dist/{chunk-HLAEYFUN.js.map → chunk-U3FI4DVT.js.map} +1 -1
- package/dist/{chunk-237BMOZW.js → chunk-UWD7YBDR.js} +4 -4
- package/dist/{chunk-237BMOZW.js.map → chunk-UWD7YBDR.js.map} +1 -1
- package/dist/{chunk-6ZM5X2XW.js → chunk-V2CONXKD.js} +3 -3
- package/dist/{chunk-6ZM5X2XW.js.map → chunk-V2CONXKD.js.map} +1 -1
- package/dist/{chunk-3NJFPGEB.js → chunk-V3EJYOP2.js} +6 -6
- package/dist/{chunk-3NJFPGEB.js.map → chunk-V3EJYOP2.js.map} +1 -1
- package/dist/{chunk-K7ZGY2BY.js → chunk-WPLZGT5Z.js} +4095 -3888
- package/dist/chunk-WPLZGT5Z.js.map +1 -0
- package/dist/{chunk-VT6G5AJV.js → chunk-WS3BOCAT.js} +4 -3
- package/dist/chunk-WS3BOCAT.js.map +1 -0
- package/dist/{chunk-7YOHUX2M.js → chunk-X2B5GMJO.js} +18 -9
- package/dist/chunk-X2B5GMJO.js.map +1 -0
- package/dist/{chunk-YGP6XEPA.js → chunk-XPKUFOS3.js} +6 -6
- package/dist/{chunk-YGP6XEPA.js.map → chunk-XPKUFOS3.js.map} +1 -1
- package/dist/{chunk-XCGDRLMH.js → chunk-Y242OE4B.js} +3 -3
- package/dist/{chunk-XCGDRLMH.js.map → chunk-Y242OE4B.js.map} +1 -1
- package/dist/{chunk-K6HCOTOZ.js → chunk-Y2BQWZXT.js} +41 -35
- package/dist/chunk-Y2BQWZXT.js.map +1 -0
- package/dist/{chunk-5TLMHB2U.js → chunk-YGT3CGPD.js} +6 -3
- package/dist/chunk-YGT3CGPD.js.map +1 -0
- package/dist/{claude-code-AESK7XO4.js → claude-code-YRJIGXTL.js} +5 -5
- package/dist/{claude-code-AESK7XO4.js.map → claude-code-YRJIGXTL.js.map} +1 -1
- package/dist/cli/index.js +277 -143
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/src/agent-pins.d.ts +8 -0
- package/dist/cli/src/agent-pins.d.ts.map +1 -1
- package/dist/cli/src/commands/asset-cmd.d.ts.map +1 -1
- package/dist/cli/src/commands/catalog.d.ts +4 -4
- package/dist/cli/src/commands/catalog.d.ts.map +1 -1
- package/dist/cli/src/commands/connector.d.ts.map +1 -1
- package/dist/cli/src/commands/deploy.d.ts.map +1 -1
- package/dist/cli/src/commands/flow.d.ts.map +1 -1
- package/dist/cli/src/commands/harness.d.ts.map +1 -1
- package/dist/cli/src/commands/integration.d.ts.map +1 -1
- package/dist/cli/src/commands/library-cmd.d.ts.map +1 -1
- package/dist/cli/src/commands/library-index.d.ts +42 -0
- package/dist/cli/src/commands/library-index.d.ts.map +1 -1
- package/dist/cli/src/commands/library-publish.d.ts.map +1 -1
- package/dist/cli/src/commands/npx.d.ts.map +1 -1
- package/dist/cli/src/commands/patch.d.ts.map +1 -1
- package/dist/cli/src/commands/plugin-registry-cmd.d.ts.map +1 -1
- package/dist/cli/src/commands/project.d.ts.map +1 -1
- package/dist/cli/src/commands/run.d.ts.map +1 -1
- package/dist/cli/src/commands/serve-preflight.d.ts +10 -0
- package/dist/cli/src/commands/serve-preflight.d.ts.map +1 -1
- package/dist/cli/src/commands/serve.d.ts +5 -3
- package/dist/cli/src/commands/serve.d.ts.map +1 -1
- package/dist/cli/src/commands/session.d.ts.map +1 -1
- package/dist/cli/src/commands/source.d.ts.map +1 -1
- package/dist/cli/src/commands/store.d.ts.map +1 -1
- package/dist/cli/src/commands/validate.d.ts.map +1 -1
- package/dist/cli/src/config-checks.d.ts +13 -0
- package/dist/cli/src/config-checks.d.ts.map +1 -1
- package/dist/cli/src/group-help.d.ts +11 -0
- package/dist/cli/src/group-help.d.ts.map +1 -0
- package/dist/connectors/config.js +2 -2
- package/dist/connectors/index.js +17 -17
- package/dist/connectors/src/config.d.ts.map +1 -1
- package/dist/connectors/src/connector-manager.d.ts +66 -2
- package/dist/connectors/src/connector-manager.d.ts.map +1 -1
- package/dist/connectors/src/connector-prompt.d.ts.map +1 -1
- package/dist/connectors/src/connector-types.d.ts +6 -0
- package/dist/connectors/src/connector-types.d.ts.map +1 -1
- package/dist/connectors/src/fleet-utils.d.ts +33 -0
- package/dist/connectors/src/fleet-utils.d.ts.map +1 -1
- package/dist/connectors/src/index.d.ts +2 -2
- package/dist/connectors/src/index.d.ts.map +1 -1
- package/dist/{connectors-5ZZRVAPD.js → connectors-JKT32HZT.js} +20 -20
- package/dist/{connectors-5ZZRVAPD.js.map → connectors-JKT32HZT.js.map} +1 -1
- package/dist/core/index.js +4 -4
- package/dist/core/logging.js +1 -1
- package/dist/core/runtime-assets.js +2 -2
- package/dist/core/src/index.d.ts +1 -1
- package/dist/core/src/index.d.ts.map +1 -1
- package/dist/core/src/logging/config.d.ts.map +1 -1
- package/dist/core/src/repo-manager.d.ts +6 -0
- package/dist/core/src/repo-manager.d.ts.map +1 -1
- package/dist/core/src/run-state-ignore.d.ts +6 -4
- package/dist/core/src/run-state-ignore.d.ts.map +1 -1
- package/dist/core/src/walker.d.ts.map +1 -1
- package/dist/core/src/workspace-config.d.ts +6 -0
- package/dist/core/src/workspace-config.d.ts.map +1 -1
- package/dist/core/workspace-config.js +1 -1
- package/dist/deploy/index.js +4 -4
- package/dist/discovery/index.js +2 -2
- package/dist/{ensure-sources-VLJ7AUUK.js → ensure-sources-GUJODKY5.js} +23 -23
- package/dist/{ensure-sources-VLJ7AUUK.js.map → ensure-sources-GUJODKY5.js.map} +1 -1
- package/dist/factory-assets/connectors/box.js +17 -17
- package/dist/factory-assets/connectors/deploy.js +17 -17
- package/dist/factory-assets/connectors/devserver.js +17 -17
- package/dist/factory-assets/connectors/flow/adapter.js +17 -17
- package/dist/factory-assets/connectors/flow/engine.js +5 -5
- package/dist/factory-assets/connectors/flow/run-flow.js +18 -18
- package/dist/factory-assets/connectors/flow.js +17 -17
- package/dist/factory-assets/connectors/git.js +17 -17
- package/dist/factory-assets/connectors/gmail.js +17 -17
- package/dist/factory-assets/connectors/googledrive.js +17 -17
- package/dist/factory-assets/connectors/local.js +17 -17
- package/dist/factory-assets/connectors/mattermost.js +17 -17
- package/dist/factory-assets/connectors/memory.js +17 -17
- package/dist/factory-assets/connectors/minio.js +17 -17
- package/dist/factory-assets/connectors/postgres.js +17 -17
- package/dist/factory-assets/connectors/s3.js +17 -17
- package/dist/factory-assets/connectors/sharepoint.js +17 -17
- package/dist/factory-assets/connectors/sqlite.js +17 -17
- package/dist/factory-assets/connectors/static-server.js +17 -17
- package/dist/factory-assets/connectors/tunnel.js +17 -17
- package/dist/factory-assets/connectors/webdav.js +17 -17
- package/dist/factory-assets/connectors/xstate-store.js +17 -17
- package/dist/factory-assets/connectors/xstate.js +17 -17
- package/dist/factory-assets/skills/authoring-skaile-assets/SKILL.md +4 -4
- package/dist/factory-assets/skills/authoring-skaile-manifests/SKILL.md +10 -10
- package/dist/factory-assets/skills/authoring-skaile-manifests/references/dependency-standard.md +15 -15
- package/dist/factory-assets/skills/manifest-compliance/SKILL.md +1 -1
- package/dist/{flows-I6ODIPZZ.js → flows-UCP6ZUYS.js} +7 -7
- package/dist/{flows-I6ODIPZZ.js.map → flows-UCP6ZUYS.js.map} +1 -1
- package/dist/{helpers-APXGTZ5A.js → helpers-SO53MRHF.js} +23 -23
- package/dist/{helpers-APXGTZ5A.js.map → helpers-SO53MRHF.js.map} +1 -1
- package/dist/library/index.js +7 -7
- package/dist/library/src/index.d.ts +1 -1
- package/dist/library/src/index.d.ts.map +1 -1
- package/dist/library/src/remote/index.d.ts +1 -1
- package/dist/library/src/remote/index.d.ts.map +1 -1
- package/dist/library/src/remote/remote-catalog-source.d.ts +33 -2
- package/dist/library/src/remote/remote-catalog-source.d.ts.map +1 -1
- package/dist/{library-publish-B5HL4OBE.js → library-publish-Z5E3YZCZ.js} +61 -47
- package/dist/library-publish-Z5E3YZCZ.js.map +1 -0
- package/dist/model-endpoint/index.js +7 -7
- package/dist/model-endpoint/src/index.d.ts +1 -1
- package/dist/model-endpoint/src/index.d.ts.map +1 -1
- package/dist/model-endpoint/src/openai-agent.d.ts +60 -0
- package/dist/model-endpoint/src/openai-agent.d.ts.map +1 -0
- package/dist/model-endpoint/src/resolve.d.ts +12 -3
- package/dist/model-endpoint/src/resolve.d.ts.map +1 -1
- package/dist/model-endpoint/src/server.d.ts.map +1 -1
- package/dist/model-endpoint/src/types.d.ts +33 -0
- package/dist/model-endpoint/src/types.d.ts.map +1 -1
- package/dist/model-endpoint/src/upstream-models.d.ts +20 -0
- package/dist/model-endpoint/src/upstream-models.d.ts.map +1 -0
- package/dist/{open-library-F56D46K7.js → open-library-A5OB72FD.js} +26 -26
- package/dist/{open-library-F56D46K7.js.map → open-library-A5OB72FD.js.map} +1 -1
- package/dist/{open-registry-RZW2AFD6.js → open-registry-BHBHQMBA.js} +11 -11
- package/dist/{open-registry-RZW2AFD6.js.map → open-registry-BHBHQMBA.js.map} +1 -1
- package/dist/{paths-RPK5PNZQ.js → paths-77PXOXZY.js} +7 -7
- package/dist/{paths-RPK5PNZQ.js.map → paths-77PXOXZY.js.map} +1 -1
- package/dist/{plugin-store-OJTERUEZ.js → plugin-store-XQP2CRYH.js} +7 -7
- package/dist/{plugin-store-OJTERUEZ.js.map → plugin-store-XQP2CRYH.js.map} +1 -1
- package/dist/{project-GLTP6VFV.js → project-KTEUN7KR.js} +39 -40
- package/dist/{project-GLTP6VFV.js.map → project-KTEUN7KR.js.map} +1 -1
- package/dist/resolver/index.js +4 -4
- package/dist/runner/index.js +28 -28
- package/dist/runner/src/agent-loop.d.ts +42 -0
- package/dist/runner/src/agent-loop.d.ts.map +1 -0
- package/dist/runner/src/agents/in-process-host.d.ts +9 -6
- package/dist/runner/src/agents/in-process-host.d.ts.map +1 -1
- package/dist/runner/src/model-endpoint-discovery.d.ts +3 -0
- package/dist/runner/src/model-endpoint-discovery.d.ts.map +1 -1
- package/dist/runner/src/resource-handler.d.ts +1 -1
- package/dist/runner/src/resource-handler.d.ts.map +1 -1
- package/dist/runner/src/resources.d.ts +1 -0
- package/dist/runner/src/resources.d.ts.map +1 -1
- package/dist/runner/src/serve.d.ts.map +1 -1
- package/dist/runner/src/session-builder.d.ts +6 -4
- package/dist/runner/src/session-builder.d.ts.map +1 -1
- package/dist/runner/src/session-resource-handlers.d.ts.map +1 -1
- package/dist/runner/src/turn-scheduler.d.ts +29 -2
- package/dist/runner/src/turn-scheduler.d.ts.map +1 -1
- package/dist/sdk/asset-manager.js +11 -11
- package/dist/sdk/bridge.js +14 -14
- package/dist/sdk/core.js +4 -4
- package/dist/sdk/flow.js +5 -5
- package/dist/sdk/index.js +28 -28
- package/dist/sdk/resolver.js +4 -4
- package/dist/sdk/runner.js +28 -28
- package/dist/sdk/transport/ws/server.js +5 -5
- package/dist/sdk/transport/ws.js +5 -5
- package/dist/sdk/transport.js +5 -5
- package/dist/{serve-preflight-EHLBSNUE.js → serve-preflight-ODQGVUFL.js} +27 -26
- package/dist/{serve-preflight-EHLBSNUE.js.map → serve-preflight-ODQGVUFL.js.map} +1 -1
- package/dist/{setup-PMZLMFCD.js → setup-QJDI5YAW.js} +24 -24
- package/dist/{setup-PMZLMFCD.js.map → setup-QJDI5YAW.js.map} +1 -1
- package/dist/{skills-KHHW3RZ3.js → skills-DE2BDQ6G.js} +6 -6
- package/dist/{skills-KHHW3RZ3.js.map → skills-DE2BDQ6G.js.map} +1 -1
- package/dist/{source-QNSGAM3S.js → source-FKOUYMEM.js} +39 -39
- package/dist/{source-QNSGAM3S.js.map → source-FKOUYMEM.js.map} +1 -1
- package/dist/{source-manifest-publish-AI725AVE.js → source-manifest-publish-JA4TY4Z6.js} +41 -41
- package/dist/{source-manifest-publish-AI725AVE.js.map → source-manifest-publish-JA4TY4Z6.js.map} +1 -1
- package/dist/transport/index.js +5 -5
- package/dist/transport/ws/server.js +5 -5
- package/dist/transport/ws.js +5 -5
- package/dist/tui/index.js +29 -29
- package/dist/tui/index.js.map +1 -1
- package/dist/tui/src/repl.d.ts.map +1 -1
- package/dist/types/manifests.js +1 -1
- package/dist/types/src/manifests/scaffold-body.d.ts +1 -1
- package/dist/types/src/manifests/scaffold-body.d.ts.map +1 -1
- package/dist/workspace-plugin/adapters/mcp.js +20 -20
- package/dist/workspace-plugin/adapters/omp.js +14 -14
- package/dist/workspace-plugin/index.js +2 -2
- package/dist/workspace-plugin/src/tools/connectors.d.ts.map +1 -1
- package/package.json +1 -1
- package/dist/chunk-2I5HNM7K.js.map +0 -1
- package/dist/chunk-5TLMHB2U.js.map +0 -1
- package/dist/chunk-757G6TTZ.js.map +0 -1
- package/dist/chunk-7YOHUX2M.js.map +0 -1
- package/dist/chunk-DFP476EU.js.map +0 -1
- package/dist/chunk-G44FFUMA.js.map +0 -1
- package/dist/chunk-K6HCOTOZ.js.map +0 -1
- package/dist/chunk-K7ZGY2BY.js.map +0 -1
- package/dist/chunk-KTBKW2FI.js.map +0 -1
- package/dist/chunk-LJ6PLEDU.js.map +0 -1
- package/dist/chunk-O7ADRMCR.js.map +0 -1
- package/dist/chunk-PMZMG3HC.js +0 -83
- package/dist/chunk-PMZMG3HC.js.map +0 -1
- package/dist/chunk-Q6FKWPRO.js.map +0 -1
- package/dist/chunk-REAF7ZFA.js.map +0 -1
- package/dist/chunk-SGI5MRKP.js.map +0 -1
- package/dist/chunk-TMJBEGS4.js.map +0 -1
- package/dist/chunk-VT6G5AJV.js.map +0 -1
- package/dist/chunk-Y6LC5PEZ.js.map +0 -1
- package/dist/chunk-YHNPWSSH.js.map +0 -1
- package/dist/chunk-ZBA4P5TD.js.map +0 -1
- package/dist/library-publish-B5HL4OBE.js.map +0 -1
package/dist/cli/index.js
CHANGED
|
@@ -1,71 +1,70 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import { status, enable, disable, install, uninstall } from '../chunk-
|
|
3
|
-
import { makeValidateCommand, scanIdentities } from '../chunk-
|
|
4
|
-
import { storeNotInstallableReason, mcpNotRunnableHere } from '../chunk-
|
|
5
|
-
import { checkHarnessSdk } from '../chunk-
|
|
6
|
-
import { makeProvidersCommand, loadRegistryView, addProviderEntry, ProviderRegistryWriteError, removeProviderEntry } from '../chunk-
|
|
7
|
-
import { makeInstallCommand, makeCheckCommand, makeCleanCommand, pinComposedAgents, reportRewritten, reportReplaced, reportRelocked, reportMoved, reportStoreNotChecked, reportStoreNotCheckedForUpdates, globalProblems, editedConventionFiles, supportsInstallManifest, runYamlInstall, REF_HINT, reportInstalledSoftDeps } from '../chunk-
|
|
8
|
-
import { reportUnknownHarnesses, reportProjectConfig, agentInstanceErrorLines } from '../chunk-
|
|
9
|
-
import { isRecord } from '../chunk-DFP476EU.js';
|
|
2
|
+
import { status, enable, disable, install, uninstall } from '../chunk-Y242OE4B.js';
|
|
3
|
+
import { makeValidateCommand, scanIdentities } from '../chunk-Y2BQWZXT.js';
|
|
4
|
+
import { storeNotInstallableReason, mcpNotRunnableHere } from '../chunk-M4G2SVXI.js';
|
|
5
|
+
import { checkHarnessSdk } from '../chunk-X2B5GMJO.js';
|
|
6
|
+
import { makeProvidersCommand, loadRegistryView, addProviderEntry, ProviderRegistryWriteError, removeProviderEntry } from '../chunk-DZRN3SNG.js';
|
|
7
|
+
import { makeInstallCommand, makeCheckCommand, makeCleanCommand, pinComposedAgents, reportRewritten, reportReplaced, reportRelocked, reportMoved, reportStoreNotChecked, reportStoreNotCheckedForUpdates, globalProblems, editedConventionFiles, supportsInstallManifest, runYamlInstall, REF_HINT, reportInstalledSoftDeps } from '../chunk-5NTB64PW.js';
|
|
8
|
+
import { reportUnknownHarnesses, reportProjectConfig, agentInstanceErrorLines, isRecord } from '../chunk-JY2JXCL6.js';
|
|
10
9
|
import { createSpinner } from '../chunk-NESV47MF.js';
|
|
11
|
-
import { loadDeclaredPlugins } from '../chunk-
|
|
12
|
-
import { getStoreConfig, storeFetch, isStoreAuthenticated, getStoreToken } from '../chunk-
|
|
13
|
-
import { makeSourceCommand, dropVanishedSourceRows, syncProjectSources, divergedSourceClones, uncachedSources } from '../chunk-
|
|
14
|
-
import { manifestEntryRootRefusals, manifestEntryFilesRefusals, libraryAssetRefusals, manifestEntryRenames, deviceLogin, loadStoreAuthConfig, logout, hasStoredAuth, exitOnLibrarySymlinks, resolveLibraryPublisherDetailed, getStoreIdentity, warnLibraryNameFallback, indexLibrary, warnIgnoredDomainFiles, removedDomainOption, rejectRemovedDomainOption, requireValidPublisherOrExit, exitOnManifestPublisherProblems, findAssetManifestFile, checkAssetFile, registerLibraryAsset, DOMAIN_REMOVED_HINT, reportLibrarySymlinks, checkAsset, manifestPublisherProblems, exitOnManifestPathProblems, manifestRequiresProblems, composeRefContext, registeredAssetKeys,
|
|
15
|
-
import { openCatalogSource, LocalCatalogDisabledError, openLibraryManager, openLibrary } from '../chunk-
|
|
16
|
-
import { getKindRegistry, getKnownKinds } from '../chunk-
|
|
17
|
-
import { AI_RESOURCES } from '../chunk-
|
|
18
|
-
import { logErr, unknownHarnessTargetMessage, S, logOk, setActiveCommand, logInfo, logWarnErr, unknownHarnessMessage, logWarn, TARGET_DEFAULT_HINT, parseHarnessFilter, requireProjectConfig, deferredWarnings, warnPlaceholderBodies, warnFilesOnlyDelegates, reportLegacyOmpCopies, logNoProject, warnStaleHarnessCopies, kindColorPad, kindColor, colorRef, formatSoftDepSection, bareSoftDepName, driverAliasOption, foldDriverFlag, friendlyHarnessError, harnessErrorNotes, formatSoftDepHint, formatRelativeTime, formatSoftDepRemovePreview, formatSoftDepAddPreview, fitWidth, KIND_COL_WIDTH } from '../chunk-
|
|
10
|
+
import { loadDeclaredPlugins } from '../chunk-TMQFOJ6F.js';
|
|
11
|
+
import { getStoreConfig, storeFetch, isStoreAuthenticated, getStoreToken } from '../chunk-AERQFD6T.js';
|
|
12
|
+
import { makeSourceCommand, dropVanishedSourceRows, syncProjectSources, divergedSourceClones, uncachedSources } from '../chunk-B2DGCYVC.js';
|
|
13
|
+
import { manifestEntryRootRefusals, manifestEntryFilesRefusals, libraryAssetRefusals, manifestEntryRenames, deviceLogin, loadStoreAuthConfig, logout, hasStoredAuth, exitOnLibrarySymlinks, resolveLibraryPublisherDetailed, getStoreIdentity, warnLibraryNameFallback, indexLibrary, warnIgnoredDomainFiles, removedDomainOption, rejectRemovedDomainOption, requireValidPublisherOrExit, exitOnManifestPublisherProblems, exitOnRootSkillLibrary, findAssetManifestFile, checkAssetFile, registerLibraryAsset, DOMAIN_REMOVED_HINT, reportLibrarySymlinks, checkAsset, rootLevelAssetFileProblem, assetEntryRef, manifestPublisherProblems, exitOnManifestPathProblems, exitOnRootSkillExtraAssets, manifestRequiresProblems, composeRefContext, registeredAssetKeys, duplicateAssetMessage, manifestParseFailureLine, manifestParseErrorText, unresolvedManifestDependencies, findEntryManifestFile, unheldRequiresOfFile, warnLegacyBundleFiles, warnUntrackedAssetFiles, checkComposeKinds } from '../chunk-O3FYOS64.js';
|
|
14
|
+
import { openCatalogSource, LocalCatalogDisabledError, openLibraryManager, openLibrary } from '../chunk-NJVHGS7X.js';
|
|
15
|
+
import { getKindRegistry, getKnownKinds } from '../chunk-E675QKFG.js';
|
|
16
|
+
import { AI_RESOURCES } from '../chunk-UWD7YBDR.js';
|
|
17
|
+
import { logErr, unknownHarnessTargetMessage, S, logOk, setActiveCommand, logInfo, logWarnErr, unknownHarnessMessage, logWarn, TARGET_DEFAULT_HINT, parseHarnessFilter, requireProjectConfig, deferredWarnings, warnPlaceholderBodies, warnFilesOnlyDelegates, reportLegacyOmpCopies, logNoProject, warnStaleHarnessCopies, kindColorPad, kindColor, colorRef, formatSoftDepSection, bareSoftDepName, driverAliasOption, foldDriverFlag, friendlyHarnessError, harnessErrorNotes, formatSoftDepHint, formatRelativeTime, formatSoftDepRemovePreview, formatSoftDepAddPreview, fitWidth, KIND_COL_WIDTH } from '../chunk-V3EJYOP2.js';
|
|
19
18
|
import { LocalSecretsProvider } from '../chunk-ILFGVSTJ.js';
|
|
20
|
-
import { resolveInstanceAgentDir, instanceSessionOverrides, loadAgentManifest, manifestModelForHarness, runAgentChat, isCompositionError, resolveSessionId, loadSessionById, loadSession, listSessions, setCurrentSession, deleteSession, clearSession, hashAgentFiles, createCompositionContentSource, compileComposition, MarkdownStreamer, createFinalTextFallback, instanceForSession, resolveAgentInstance, describeComposition } from '../chunk-
|
|
21
|
-
import '../chunk-
|
|
22
|
-
import '../chunk-
|
|
23
|
-
import '../chunk-
|
|
24
|
-
import '../chunk-
|
|
19
|
+
import { resolveInstanceAgentDir, instanceSessionOverrides, modelForHarness, loadAgentManifest, manifestModelForHarness, runAgentChat, isCompositionError, resolveSessionId, loadSessionById, loadSession, listSessions, setCurrentSession, deleteSession, clearSession, hashAgentFiles, createCompositionContentSource, compileComposition, MarkdownStreamer, createFinalTextFallback, instanceForSession, resolveAgentInstance, describeComposition } from '../chunk-WPLZGT5Z.js';
|
|
20
|
+
import '../chunk-PTJZCOBH.js';
|
|
21
|
+
import '../chunk-3EPRTMXY.js';
|
|
22
|
+
import '../chunk-YGT3CGPD.js';
|
|
23
|
+
import '../chunk-TUOHA6BM.js';
|
|
25
24
|
import '../chunk-WYZXSJBK.js';
|
|
26
25
|
import '../chunk-GTAHU4N4.js';
|
|
27
26
|
import '../chunk-HQAPUPBE.js';
|
|
28
27
|
import '../chunk-KW37WNXY.js';
|
|
29
28
|
import '../chunk-3MWQKQUB.js';
|
|
30
|
-
import '../chunk-
|
|
29
|
+
import '../chunk-T5EIWWEJ.js';
|
|
31
30
|
import '../chunk-O7SG5PC2.js';
|
|
32
31
|
import '../chunk-7QBNJTTQ.js';
|
|
33
32
|
import '../chunk-O2SYFJWP.js';
|
|
34
|
-
import '../chunk-
|
|
33
|
+
import '../chunk-U3FI4DVT.js';
|
|
35
34
|
import '../chunk-32NA4TVC.js';
|
|
36
35
|
import '../chunk-W3UDISS2.js';
|
|
37
|
-
import '../chunk-
|
|
38
|
-
import { runFlow, resumeFlow } from '../chunk-
|
|
36
|
+
import '../chunk-GYPPVANR.js';
|
|
37
|
+
import { runFlow, resumeFlow } from '../chunk-XPKUFOS3.js';
|
|
39
38
|
import '../chunk-4R6DROGN.js';
|
|
40
39
|
import { parseSkillRequirements, validateRequirements } from '../chunk-PTJTOPE5.js';
|
|
41
40
|
import '../chunk-USSP43U3.js';
|
|
42
|
-
import '../chunk-
|
|
41
|
+
import '../chunk-MPRWVZXF.js';
|
|
43
42
|
import '../chunk-BRPEW3UL.js';
|
|
44
|
-
import '../chunk-
|
|
45
|
-
import { checkHarnessModel, checkOmpListedModel, isUnlistedModel, checkModelSurface } from '../chunk-
|
|
46
|
-
import '../chunk-
|
|
47
|
-
import '../chunk-
|
|
48
|
-
import '../chunk-
|
|
43
|
+
import '../chunk-LMADWO4Q.js';
|
|
44
|
+
import { checkHarnessModel, checkOmpListedModel, isUnlistedModel, checkModelSurface } from '../chunk-AVRTZAH2.js';
|
|
45
|
+
import '../chunk-5AQLCRR7.js';
|
|
46
|
+
import '../chunk-V2CONXKD.js';
|
|
47
|
+
import '../chunk-GYBDWW6K.js';
|
|
49
48
|
import '../chunk-LOO5CB5M.js';
|
|
50
49
|
import '../chunk-YEOG7CWQ.js';
|
|
51
|
-
import '../chunk-
|
|
50
|
+
import '../chunk-3AIEJSQR.js';
|
|
52
51
|
import { findHarnessBinary, HARNESS_BINARIES } from '../chunk-WWSRIT3J.js';
|
|
53
|
-
import '../chunk-
|
|
52
|
+
import '../chunk-4WB4KSSQ.js';
|
|
54
53
|
import '../chunk-5DE3DGVR.js';
|
|
55
54
|
import '../chunk-7DN6JKP2.js';
|
|
56
|
-
import '../chunk-
|
|
57
|
-
import { listHarnesses } from '../chunk-
|
|
55
|
+
import '../chunk-CFTTXUM2.js';
|
|
56
|
+
import { listHarnesses } from '../chunk-SQMDFM4N.js';
|
|
58
57
|
import '../chunk-G5SUWZEU.js';
|
|
59
|
-
import '../chunk-
|
|
58
|
+
import '../chunk-LYVLDGML.js';
|
|
60
59
|
import { getProviderPreset, AI_PROVIDER_PRESETS } from '../chunk-6UP2EDFN.js';
|
|
61
60
|
import '../chunk-IFGTRL2I.js';
|
|
62
|
-
import { loadFlow, flowLookupRoots, findFlowFileInRoots, loadAllFlowEntries } from '../chunk-
|
|
61
|
+
import { loadFlow, flowLookupRoots, findFlowFileInRoots, loadAllFlowEntries } from '../chunk-5J6JWGY4.js';
|
|
63
62
|
import '../chunk-WD3L5QSU.js';
|
|
64
63
|
import { nodeLabel, nodeSkillAsset, nodeIsInert, nodeIsOptional, nodeRunKind, nodeAssets } from '../chunk-7RGTAEG6.js';
|
|
65
64
|
import '../chunk-7NN3P6VF.js';
|
|
66
|
-
import { setLibraryAssetCheck, setRenamedEntryLookup, LibraryEntryError, AssetManager, parseRefTolerant, MissingManifestError, parseCanonicalLockKey, normalizeRepoUrl } from '../chunk-
|
|
67
|
-
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-
|
|
68
|
-
import { flowFileNameError, SEMVER_RE } from '../chunk-
|
|
65
|
+
import { setLibraryAssetCheck, setRenamedEntryLookup, LibraryEntryError, AssetManager, parseRefTolerant, MissingManifestError, parseCanonicalLockKey, normalizeRepoUrl } from '../chunk-23Q5LT4U.js';
|
|
66
|
+
import { CatalogHttpError, OfflineError, libraryDirMissing, missingLibraryDirMessage, cloneOrInitGitRepo, trackOriginBranch, stampManifestPublisher, isGitRepo, ensureGitRepo, conflictingAssetRoot, scanUnlistedAssets, setManifestPublisher, LIBRARY_OWNERSHIPS, assertManifestEditable, installLibraryAsset, getStoreManifestsDir, assertValidLibraryName, unparsableAssetFiles, missingRootAssets, syncManifestWithDisk, renamedLibraryName, storeManifestFile, getDefaultValue, isSecretPlaceholder } from '../chunk-GZL6RN4Z.js';
|
|
67
|
+
import { flowFileNameError, SEMVER_RE } from '../chunk-5KWQMCH7.js';
|
|
69
68
|
import '../chunk-OSABUEWA.js';
|
|
70
69
|
import '../chunk-F3D25RGM.js';
|
|
71
70
|
import '../chunk-3TXEJN4W.js';
|
|
@@ -73,19 +72,19 @@ import '../chunk-ISHJITXJ.js';
|
|
|
73
72
|
import '../chunk-LNFKL23K.js';
|
|
74
73
|
import '../chunk-JRN5QF4C.js';
|
|
75
74
|
import '../chunk-NUELZWCF.js';
|
|
76
|
-
import { installTargetOf, SCAFFOLD_KINDS } from '../chunk-
|
|
75
|
+
import { installTargetOf, SCAFFOLD_KINDS } from '../chunk-NDBHEOIA.js';
|
|
77
76
|
import '../chunk-PKE3PXOK.js';
|
|
78
|
-
import '../chunk-
|
|
77
|
+
import '../chunk-7QYBKUAS.js';
|
|
79
78
|
import '../chunk-UQ6LFBPZ.js';
|
|
80
|
-
import '../chunk-
|
|
81
|
-
import { effectiveComposes, validatePreset, validateAgent, composeSlotDiagnostics, agentDeprecationDiagnostics, SLOT_ID_PATTERN } from '../chunk-
|
|
82
|
-
import {
|
|
79
|
+
import { CODEX_IDENTITY_DIR } from '../chunk-QBUJTVMY.js';
|
|
80
|
+
import { effectiveComposes, validatePreset, validateAgent, composeSlotDiagnostics, agentDeprecationDiagnostics, SLOT_ID_PATTERN } from '../chunk-WS3BOCAT.js';
|
|
81
|
+
import { LockParseError, loadSettings, globalSettingsPath, resolveSettings, projectSettingsPath, saveSettings, WorkspaceYamlEditor, readLock, resolveLibraryDir, checkAgentSkillConformance, resolveSettingsWithSources, resolveConfiguredHarnessName, FACTORY_SOURCE_URL, globalInstallDir, GLOBAL_INSTALL_DIR_NAME, workspaceProviderRegistryPath, userProviderRegistryPath, loadProviderRegistryFile, aiResourceRoots } from '../chunk-4KPQ6ILH.js';
|
|
83
82
|
import '../chunk-4GY63JU6.js';
|
|
84
|
-
import { factoryAssetRoots } from '../chunk-
|
|
85
|
-
import { deployedDir } from '../chunk-5KRMNUL4.js';
|
|
83
|
+
import { factoryAssetRoots } from '../chunk-4ROXSQEG.js';
|
|
84
|
+
import { deployedPaths, deployedBase, deployedDir } from '../chunk-5KRMNUL4.js';
|
|
86
85
|
import { DEFAULT_HARNESS_ID, HARNESS_DEFAULTS } from '../chunk-C5HFK34M.js';
|
|
87
86
|
import { findKindDirs } from '../chunk-MWXYN6NY.js';
|
|
88
|
-
import { SourceEntryError, LegacyKeyError, ConfigParseError, resolveSkWorkspaceConfig, unselectedInstanceIds, instanceChoiceText, sourceCacheKey, getGlobalCacheDir, resolveAgentDir, AgentRefResolutionError, resolveAgentDefinitionDir, effectiveAgentInstances, matchPin, coerceVersion, loadSkWorkspaceConfig, configParseErrorOf, findWorkspaceRoot, isWorkspaceConfigFilename, SKAILE_YAML_DEFAULT, AGENT_PROFILE_FIELDS } from '../chunk-
|
|
87
|
+
import { SourceEntryError, LegacyKeyError, ConfigParseError, resolveSkWorkspaceConfig, unselectedInstanceIds, instanceChoiceText, sourceCacheKey, getGlobalCacheDir, resolveAgentDir, AgentRefResolutionError, resolveAgentDefinitionDir, effectiveAgentInstances, isSameRemote, matchPin, coerceVersion, loadSkWorkspaceConfig, configParseErrorOf, findWorkspaceRoot, isWorkspaceConfigFilename, SKAILE_YAML_DEFAULT, AGENT_PROFILE_FIELDS } from '../chunk-FZO64PLQ.js';
|
|
89
88
|
import { globalCacheRoot, globalSkaileDir, userConfigPath } from '../chunk-L5VSIPQD.js';
|
|
90
89
|
import { HARNESS_TARGETS, SUPPORTED_HARNESSES, harnessNameForHarnessId } from '../chunk-VTETQCR6.js';
|
|
91
90
|
import { SKAILE_MANIFEST_FILENAME, loadSkPublishManifest, decodeSkaileManifest, LIBRARY_GITIGNORE, librarySymlinkMessage, isNonAssetPath, isNonAssetDir, encodeSkaileManifest } from '../chunk-QC5BYUED.js';
|
|
@@ -94,7 +93,7 @@ import { pluginTitle } from '../chunk-RVRB27AN.js';
|
|
|
94
93
|
import { parseAssetRef, isValidPublisher, PUBLISHER_HINT, isValidAssetName, ASSET_NAME_HINT, depToStr, assetRefToStr, slugifyAssetName, parseAssetRefLoose } from '../chunk-V5KG6CCV.js';
|
|
95
94
|
import { portableSpawn, portableSpawnSync } from '../chunk-VSX2G7LA.js';
|
|
96
95
|
import { parseModelRef, resolveEntryBaseUrl } from '../chunk-RXGPFAMN.js';
|
|
97
|
-
import { openSqlite } from '../chunk-
|
|
96
|
+
import { RUN_STATE_GITIGNORE_ENTRIES, openSqlite } from '../chunk-MDCI4RSG.js';
|
|
98
97
|
import '../chunk-C3CAXQMA.js';
|
|
99
98
|
import { registerLogStore, LogStore, StdoutSink } from '../chunk-BOFL7GIF.js';
|
|
100
99
|
import '../chunk-NSBPE2FW.js';
|
|
@@ -241,7 +240,7 @@ async function runSearch(kind, query, opts) {
|
|
|
241
240
|
}
|
|
242
241
|
}
|
|
243
242
|
async function searchIndex(query, kind, projectDir) {
|
|
244
|
-
const { openLibrary: openLibrary2 } = await import('../open-library-
|
|
243
|
+
const { openLibrary: openLibrary2 } = await import('../open-library-A5OB72FD.js');
|
|
245
244
|
const library = await openLibrary2();
|
|
246
245
|
try {
|
|
247
246
|
const { libraryDirMissing: libraryDirMissing2 } = await import('../library/index.js');
|
|
@@ -417,14 +416,14 @@ async function withAddVersions(entries, projectDir) {
|
|
|
417
416
|
}
|
|
418
417
|
async function searchLocal(query, kind, opts, showStore, airGapped) {
|
|
419
418
|
const projectDir = path19__default.resolve(opts.projectDir);
|
|
420
|
-
const { restoreSourceReaders } = await import('../source-
|
|
419
|
+
const { restoreSourceReaders } = await import('../source-FKOUYMEM.js');
|
|
421
420
|
for (const name of await restoreSourceReaders(projectDir)) {
|
|
422
421
|
logInfo(`Re-registered source "${name}" (its library entry was removed elsewhere).`);
|
|
423
422
|
}
|
|
424
423
|
const factory = await searchFactory(projectDir, query, kind);
|
|
425
424
|
let entries = unionEntries(await searchIndex(query, kind, projectDir), factory);
|
|
426
425
|
if (entries.length === 0 && !query && !kind && !airGapped) {
|
|
427
|
-
const { autoSyncForSearch } = await import('../source-
|
|
426
|
+
const { autoSyncForSearch } = await import('../source-FKOUYMEM.js');
|
|
428
427
|
if (await autoSyncForSearch(projectDir)) {
|
|
429
428
|
entries = unionEntries(await searchIndex(query, kind, projectDir), factory);
|
|
430
429
|
}
|
|
@@ -478,7 +477,9 @@ function layoutLocalTable(rows, width, style = {}) {
|
|
|
478
477
|
}
|
|
479
478
|
return { ruleWidth: nameW + gap + descW + tailSpan, lines };
|
|
480
479
|
}
|
|
481
|
-
|
|
480
|
+
const stackedW = width - (indent + 2) - tailSpan;
|
|
481
|
+
const stackable = stackedW >= MIN_LOCAL_DESCRIPTION_WIDTH && rows.some((r) => r.description !== "");
|
|
482
|
+
if (!stackable && indent + nameW + tailSpan <= width) {
|
|
482
483
|
for (const r of rows) {
|
|
483
484
|
lines.push(tailSpan > 0 ? `${pad}${refCell(r.ref)}${tail(r)}` : `${pad}${styleRef(r.ref)}`);
|
|
484
485
|
}
|
|
@@ -542,7 +543,7 @@ async function searchStore(query, kind, opts, airGapped) {
|
|
|
542
543
|
logInfo("air-gapped (cache_ttl: 0) \u2014 local sources only");
|
|
543
544
|
return "skipped";
|
|
544
545
|
}
|
|
545
|
-
const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-
|
|
546
|
+
const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-A5OB72FD.js');
|
|
546
547
|
try {
|
|
547
548
|
const remote = await openCatalogSource2({ projectDir: path19__default.resolve(opts.projectDir) });
|
|
548
549
|
const assets = await remote.listAssets(kind ? { kind } : {});
|
|
@@ -828,13 +829,29 @@ function makeAddCommand() {
|
|
|
828
829
|
}
|
|
829
830
|
});
|
|
830
831
|
}
|
|
832
|
+
function globalDeployedFiles(component, name, harness) {
|
|
833
|
+
const paths = deployedPaths(component, name, harness, true);
|
|
834
|
+
if (component === "agent" && harness === "codex") {
|
|
835
|
+
paths.push(
|
|
836
|
+
path19__default.join(
|
|
837
|
+
path19__default.dirname(deployedBase(component, harness, true)),
|
|
838
|
+
CODEX_IDENTITY_DIR,
|
|
839
|
+
`${name}.md`
|
|
840
|
+
)
|
|
841
|
+
);
|
|
842
|
+
}
|
|
843
|
+
return paths.filter((p6) => existsSync(p6));
|
|
844
|
+
}
|
|
831
845
|
function reportGlobalPaths(am2, assets) {
|
|
846
|
+
const harnesses = am2.deployTargets();
|
|
847
|
+
logInfo(S.dim(`harnesses: ${harnesses.join(", ")}`));
|
|
832
848
|
for (const { kind, name } of assets) {
|
|
833
849
|
const component = installTargetOf(getKindRegistry(), kind);
|
|
834
850
|
if (!component) continue;
|
|
835
|
-
for (const harness of
|
|
836
|
-
const
|
|
837
|
-
|
|
851
|
+
for (const harness of harnesses) {
|
|
852
|
+
for (const file of globalDeployedFiles(component, name, harness)) {
|
|
853
|
+
logInfo(S.dim(`${harness}: ${file.replace(homedir(), "~")}`));
|
|
854
|
+
}
|
|
838
855
|
}
|
|
839
856
|
}
|
|
840
857
|
}
|
|
@@ -1135,7 +1152,7 @@ async function resolveInfoEntry(am2, ref, opts) {
|
|
|
1135
1152
|
return { entry: match ?? deployed, deployed: true };
|
|
1136
1153
|
}
|
|
1137
1154
|
const lookup = opts.storeLookup ?? (async (filter) => {
|
|
1138
|
-
const { resolveCatalogSource } = await import('../open-library-
|
|
1155
|
+
const { resolveCatalogSource } = await import('../open-library-A5OB72FD.js');
|
|
1139
1156
|
const { source, close } = await resolveCatalogSource({ projectDir: opts.projectDir });
|
|
1140
1157
|
try {
|
|
1141
1158
|
return await source.listAssets(filter);
|
|
@@ -1151,7 +1168,7 @@ async function resolveInfoEntry(am2, ref, opts) {
|
|
|
1151
1168
|
);
|
|
1152
1169
|
return { entry: hit ? catalogAssetToEntry(hit) : null };
|
|
1153
1170
|
} catch (err) {
|
|
1154
|
-
const { LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-
|
|
1171
|
+
const { LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-A5OB72FD.js');
|
|
1155
1172
|
const storeNote = err instanceof Error ? err.message : String(err);
|
|
1156
1173
|
const disabled = err instanceof LocalCatalogDisabledError2 || /catalog\.url/i.test(storeNote);
|
|
1157
1174
|
return { entry: null, storeNote, ...disabled ? { storeDisabled: true } : {} };
|
|
@@ -1477,6 +1494,7 @@ function makeAssetCommand() {
|
|
|
1477
1494
|
process.exit(1);
|
|
1478
1495
|
}
|
|
1479
1496
|
exitOnManifestPublisherProblems(target.path, target.name);
|
|
1497
|
+
exitOnRootSkillLibrary(target.path, target.name);
|
|
1480
1498
|
if (reportLibrarySymlinks(src.dir, { rootIsAsset: true }) > 0) {
|
|
1481
1499
|
logErr(
|
|
1482
1500
|
`Not imported: ${src.dir} holds symlinks (listed above). Replace each with a copy of what it points at, or remove it, and run the import again.`
|
|
@@ -1867,7 +1885,7 @@ function makeCatalogCommand() {
|
|
|
1867
1885
|
if (cfg.catalog.cache_ttl === 0 && !opts.force) {
|
|
1868
1886
|
logOk(`Catalog mode: air-gapped (${S.heading(baseUrl)})`);
|
|
1869
1887
|
logInfo(
|
|
1870
|
-
"Network probe skipped because cache_ttl is 0. Use `skaile update` to refresh the cache, or `skaile catalog test --force` to probe anyway."
|
|
1888
|
+
"Network probe skipped because cache_ttl is 0. Use `skaile update --catalog-only` to refresh the cache, or `skaile catalog test --force` to probe anyway."
|
|
1871
1889
|
);
|
|
1872
1890
|
return;
|
|
1873
1891
|
}
|
|
@@ -1888,7 +1906,7 @@ function makeCatalogCommand() {
|
|
|
1888
1906
|
return catalog;
|
|
1889
1907
|
}
|
|
1890
1908
|
async function runLocalCatalogTest(projectDir) {
|
|
1891
|
-
const { resolveCatalogSource } = await import('../open-library-
|
|
1909
|
+
const { resolveCatalogSource } = await import('../open-library-A5OB72FD.js');
|
|
1892
1910
|
let resolved;
|
|
1893
1911
|
try {
|
|
1894
1912
|
resolved = await resolveCatalogSource({ projectDir });
|
|
@@ -2064,7 +2082,7 @@ async function scanLibraryFlowEntries() {
|
|
|
2064
2082
|
const { LocalIndex, resolveIndexPath, scanAuthoringLibraries } = await import('../library/index.js');
|
|
2065
2083
|
const indexPath = resolveIndexPath();
|
|
2066
2084
|
if (!existsSync(indexPath)) return entries;
|
|
2067
|
-
const { getKindRegistry: getKindRegistry2 } = await import('../open-registry-
|
|
2085
|
+
const { getKindRegistry: getKindRegistry2 } = await import('../open-registry-BHBHQMBA.js');
|
|
2068
2086
|
const index = new LocalIndex({ indexPath });
|
|
2069
2087
|
try {
|
|
2070
2088
|
for (const { library, assets } of await scanAuthoringLibraries(index, getKindRegistry2())) {
|
|
@@ -2730,6 +2748,19 @@ function makeConnectCommand() {
|
|
|
2730
2748
|
await client.disconnect();
|
|
2731
2749
|
});
|
|
2732
2750
|
}
|
|
2751
|
+
|
|
2752
|
+
// cli/src/group-help.ts
|
|
2753
|
+
function helpOnBareGroup(group) {
|
|
2754
|
+
group.allowExcessArguments(true);
|
|
2755
|
+
group.action(() => {
|
|
2756
|
+
if (group.args.length > 0) {
|
|
2757
|
+
group.unknownCommand();
|
|
2758
|
+
}
|
|
2759
|
+
group.help();
|
|
2760
|
+
});
|
|
2761
|
+
}
|
|
2762
|
+
|
|
2763
|
+
// cli/src/commands/connector.ts
|
|
2733
2764
|
function parsePositiveIntOption(value) {
|
|
2734
2765
|
const n = Number.parseInt(value, 10);
|
|
2735
2766
|
if (!Number.isFinite(n) || n <= 0) {
|
|
@@ -3108,7 +3139,7 @@ ${installResult.output.trim() || "the package manager gave no output"}`
|
|
|
3108
3139
|
await manager.disconnectAll();
|
|
3109
3140
|
}
|
|
3110
3141
|
});
|
|
3111
|
-
|
|
3142
|
+
helpOnBareGroup(cmd);
|
|
3112
3143
|
return cmd;
|
|
3113
3144
|
}
|
|
3114
3145
|
async function runDebugQuery(query, parentOpts, args) {
|
|
@@ -3237,7 +3268,7 @@ async function ensureTargetsRegistered(projectDir) {
|
|
|
3237
3268
|
const { resolveSkWorkspaceConfig: resolveSkWorkspaceConfig2 } = await import('../core/index.js');
|
|
3238
3269
|
const config = resolveSkWorkspaceConfig2(projectDir);
|
|
3239
3270
|
if (config.plugins && config.plugins.length > 0) {
|
|
3240
|
-
const { ensurePluginsLoaded } = await import('../plugin-store-
|
|
3271
|
+
const { ensurePluginsLoaded } = await import('../plugin-store-XQP2CRYH.js');
|
|
3241
3272
|
const result = await ensurePluginsLoaded(projectDir, config.plugins, pluginRegistry);
|
|
3242
3273
|
for (const f of result.failed) logWarn(f.error);
|
|
3243
3274
|
}
|
|
@@ -3358,7 +3389,7 @@ function makeDeployCommand() {
|
|
|
3358
3389
|
cmd.command("down").description("Tear down the active deploy and clear its handle").option("--project-dir <path>", "Project directory", process.cwd()).action(action(runDown));
|
|
3359
3390
|
cmd.command("status").description("Show the active deploy's state, ws URL, and health").option("--project-dir <path>", "Project directory", process.cwd()).action(action(runStatus));
|
|
3360
3391
|
cmd.command("logs").description("Stream logs from the active deploy (if the target supports it)").option("--project-dir <path>", "Project directory", process.cwd()).option("--follow", "Keep streaming new log lines").action(action(runLogs));
|
|
3361
|
-
|
|
3392
|
+
helpOnBareGroup(cmd);
|
|
3362
3393
|
return cmd;
|
|
3363
3394
|
}
|
|
3364
3395
|
var DIFF_SHOWS = { content: true, modified: true, incomplete: true };
|
|
@@ -3500,7 +3531,7 @@ function makeFlowCommand() {
|
|
|
3500
3531
|
}
|
|
3501
3532
|
console.log();
|
|
3502
3533
|
});
|
|
3503
|
-
|
|
3534
|
+
helpOnBareGroup(cmd);
|
|
3504
3535
|
return cmd;
|
|
3505
3536
|
}
|
|
3506
3537
|
var HARNESS_ID_OF_TARGET = {
|
|
@@ -3522,7 +3553,7 @@ function makeHarnessCommand() {
|
|
|
3522
3553
|
).action(async (name, opts) => {
|
|
3523
3554
|
await runHarnessSet(name, path19__default.resolve(opts.projectDir), opts);
|
|
3524
3555
|
});
|
|
3525
|
-
|
|
3556
|
+
helpOnBareGroup(cmd);
|
|
3526
3557
|
return cmd;
|
|
3527
3558
|
}
|
|
3528
3559
|
async function runHarnessSet(name, projectDir, opts) {
|
|
@@ -3557,13 +3588,42 @@ async function runHarnessSet(name, projectDir, opts) {
|
|
|
3557
3588
|
`model ${profile.model} is kept. Check it fits ${target}: skaile run "hi there" --dry-run`
|
|
3558
3589
|
);
|
|
3559
3590
|
}
|
|
3591
|
+
const renderedBefore = rememberRenderedHashes(
|
|
3592
|
+
projectDir,
|
|
3593
|
+
new AssetManager({ registry: getKindRegistry(), projectDir }).lockedRenderedHashes()
|
|
3594
|
+
);
|
|
3560
3595
|
logInfo(`Installing for ${target} (${HARNESS_TARGETS[target].local.skill})`);
|
|
3561
3596
|
await runYamlInstall({ projectDir });
|
|
3562
|
-
if (opts.clean)
|
|
3597
|
+
if (opts.clean) {
|
|
3598
|
+
removeOldHarnessCopies(projectDir, renderedBefore);
|
|
3599
|
+
rmSync(switchHashesFile(projectDir), { force: true });
|
|
3600
|
+
}
|
|
3601
|
+
}
|
|
3602
|
+
function switchHashesFile(projectDir) {
|
|
3603
|
+
return path19__default.join(projectDir, ".skaile", "harness-switch-hashes.json");
|
|
3563
3604
|
}
|
|
3564
|
-
function
|
|
3605
|
+
function rememberRenderedHashes(projectDir, current) {
|
|
3606
|
+
const file = switchHashesFile(projectDir);
|
|
3607
|
+
const merged = /* @__PURE__ */ new Map();
|
|
3608
|
+
try {
|
|
3609
|
+
const kept = JSON.parse(readFileSync(file, "utf-8"));
|
|
3610
|
+
for (const [p6, sha] of Object.entries(kept)) if (typeof sha === "string") merged.set(p6, sha);
|
|
3611
|
+
} catch {
|
|
3612
|
+
}
|
|
3613
|
+
for (const [p6, sha] of current) merged.set(p6, sha);
|
|
3614
|
+
if (merged.size > 0) {
|
|
3615
|
+
try {
|
|
3616
|
+
mkdirSync(path19__default.dirname(file), { recursive: true });
|
|
3617
|
+
writeFileSync(file, `${JSON.stringify(Object.fromEntries(merged), null, 2)}
|
|
3618
|
+
`);
|
|
3619
|
+
} catch {
|
|
3620
|
+
}
|
|
3621
|
+
}
|
|
3622
|
+
return merged;
|
|
3623
|
+
}
|
|
3624
|
+
function removeOldHarnessCopies(projectDir, renderedBefore) {
|
|
3565
3625
|
const am2 = new AssetManager({ registry: getKindRegistry(), projectDir });
|
|
3566
|
-
const stale = am2.listStaleHarnessCopies();
|
|
3626
|
+
const stale = am2.listStaleHarnessCopies({ renderedBefore });
|
|
3567
3627
|
if (stale.length === 0) {
|
|
3568
3628
|
logInfo("No old harness copies to remove.");
|
|
3569
3629
|
return;
|
|
@@ -3579,7 +3639,7 @@ function removeOldHarnessCopies(projectDir) {
|
|
|
3579
3639
|
}
|
|
3580
3640
|
if (foreign.length > 0) {
|
|
3581
3641
|
logWarn(
|
|
3582
|
-
`Kept ${foreign.length} cop${foreign.length === 1 ? "y" : "ies"} skaile did not write (the bytes differ from the new harness's copy, or it is not in the lock): ${rel(foreign)}. Delete ${foreign.length === 1 ? "it" : "them"} by hand if you do not need ${foreign.length === 1 ? "it" : "them"}.`
|
|
3642
|
+
`Kept ${foreign.length} cop${foreign.length === 1 ? "y" : "ies"} skaile did not write (the bytes differ from the new harness's copy or, for an agent file, from what the lock recorded, or it is not in the lock): ${rel(foreign)}. Delete ${foreign.length === 1 ? "it" : "them"} by hand if you do not need ${foreign.length === 1 ? "it" : "them"}.`
|
|
3583
3643
|
);
|
|
3584
3644
|
}
|
|
3585
3645
|
}
|
|
@@ -4338,7 +4398,7 @@ function makeIntegrationCommand() {
|
|
|
4338
4398
|
}
|
|
4339
4399
|
process.exit(0);
|
|
4340
4400
|
});
|
|
4341
|
-
|
|
4401
|
+
helpOnBareGroup(cmd);
|
|
4342
4402
|
return cmd;
|
|
4343
4403
|
}
|
|
4344
4404
|
function exitOnSyncError(err) {
|
|
@@ -4368,6 +4428,7 @@ async function reindexLibrary(lib, library, name) {
|
|
|
4368
4428
|
exitOnManifestPublisherProblems(lib.path, name);
|
|
4369
4429
|
exitOnLibrarySymlinks(lib.path, `skaile library index ${name}`);
|
|
4370
4430
|
exitOnManifestPathProblems(lib.path, `skaile library index ${name}`);
|
|
4431
|
+
exitOnRootSkillExtraAssets(lib.path, `skaile library index ${name}`);
|
|
4371
4432
|
const badRequires = manifestRequiresProblems(lib.path);
|
|
4372
4433
|
const resolved = resolveLibraryPublisherDetailed(lib, {}, getStoreIdentity());
|
|
4373
4434
|
warnLibraryNameFallback(name, resolved);
|
|
@@ -4567,7 +4628,7 @@ function refuseDeployFolder(dir, force = false) {
|
|
|
4567
4628
|
);
|
|
4568
4629
|
process.exit(1);
|
|
4569
4630
|
}
|
|
4570
|
-
async function refuseUnusableLibraryDir(dir, force = false) {
|
|
4631
|
+
async function refuseUnusableLibraryDir(dir, force = false, ownership = "owner") {
|
|
4571
4632
|
const deployed = DEPLOYED_COPY_DIRS.filter((d) => {
|
|
4572
4633
|
const full = path19.join(dir, d);
|
|
4573
4634
|
return fs8.existsSync(full) && fs8.statSync(full).isDirectory() && fs8.readdirSync(full).length > 0;
|
|
@@ -4588,6 +4649,31 @@ async function refuseUnusableLibraryDir(dir, force = false) {
|
|
|
4588
4649
|
);
|
|
4589
4650
|
process.exit(1);
|
|
4590
4651
|
}
|
|
4652
|
+
const rootFile = rootLevelAssetFileProblem(dir);
|
|
4653
|
+
if (rootFile) {
|
|
4654
|
+
logErr(rootFile);
|
|
4655
|
+
process.exit(1);
|
|
4656
|
+
}
|
|
4657
|
+
const manifest = loadSkPublishManifest(dir);
|
|
4658
|
+
const missing = manifest ? missingRootAssets(dir, manifest) : [];
|
|
4659
|
+
if (manifest && missing.length > 0) {
|
|
4660
|
+
const report = ownership === "reader" ? logWarn : logErr;
|
|
4661
|
+
for (const a of missing) {
|
|
4662
|
+
report(
|
|
4663
|
+
`${SKAILE_MANIFEST_FILENAME} [assets] \u2014 ${assetEntryRef(a, manifest)}: root "${a.root}" does not exist.`
|
|
4664
|
+
);
|
|
4665
|
+
}
|
|
4666
|
+
if (ownership === "reader") {
|
|
4667
|
+
logWarn(
|
|
4668
|
+
`Ask the owner to push the folder(s) or drop the entry from ${SKAILE_MANIFEST_FILENAME}, then run \`skaile library pull <name>\`; \`add\` of those assets fails until then.`
|
|
4669
|
+
);
|
|
4670
|
+
return;
|
|
4671
|
+
}
|
|
4672
|
+
logErr(
|
|
4673
|
+
`Restore the folder(s) or drop the entry from ${SKAILE_MANIFEST_FILENAME}, then run \`skaile library init\` again; nothing was registered.`
|
|
4674
|
+
);
|
|
4675
|
+
process.exit(1);
|
|
4676
|
+
}
|
|
4591
4677
|
}
|
|
4592
4678
|
async function assertLibraryPathFree(manager, dir, exceptId) {
|
|
4593
4679
|
const clash = (await manager.listLibraries()).find(
|
|
@@ -4736,7 +4822,7 @@ function readOriginTracking(dir) {
|
|
|
4736
4822
|
});
|
|
4737
4823
|
return { url, branch: head.status === 0 && head.stdout.trim() || "main" };
|
|
4738
4824
|
}
|
|
4739
|
-
function exitOnCloneWithoutCheckout(dir, name) {
|
|
4825
|
+
function exitOnCloneWithoutCheckout(dir, name, fresh) {
|
|
4740
4826
|
const head = spawnSync("git", ["rev-parse", "--verify", "-q", "HEAD"], {
|
|
4741
4827
|
cwd: dir,
|
|
4742
4828
|
encoding: "utf-8"
|
|
@@ -4748,6 +4834,17 @@ function exitOnCloneWithoutCheckout(dir, name) {
|
|
|
4748
4834
|
});
|
|
4749
4835
|
const branches = (refs.stdout ?? "").split("\n").map((ref) => ref.trim().replace(/^refs\/remotes\/origin\//, "")).filter((branch) => branch !== "" && branch !== "HEAD" && !branch.startsWith("refs/"));
|
|
4750
4836
|
if (branches.length === 0) return;
|
|
4837
|
+
if (fresh) {
|
|
4838
|
+
if (fresh.existed) fs8.rmSync(path19.join(dir, ".git"), { recursive: true, force: true });
|
|
4839
|
+
else {
|
|
4840
|
+
fs8.rmSync(dir, { recursive: true, force: true });
|
|
4841
|
+
pruneEmptyLibraryParents(dir);
|
|
4842
|
+
}
|
|
4843
|
+
logErr(
|
|
4844
|
+
`${fresh.url}: its remote HEAD names a branch that does not exist (remote branches: ${branches.join(", ")}); nothing was cloned or registered. Clone the branch you want, then adopt it: \`git clone --branch ${branches[0]} ${fresh.url} ${dir}\` and \`skaile library init ${name} --path ${dir}\`.`
|
|
4845
|
+
);
|
|
4846
|
+
process.exit(1);
|
|
4847
|
+
}
|
|
4751
4848
|
logErr(
|
|
4752
4849
|
`${dir} is a git clone with no branch checked out (its remote HEAD names a branch that does not exist): run \`git -C ${dir} checkout ${branches[0]}\` (remote branches: ${branches.join(", ")}), then re-run \`skaile library init ${name} --path ${dir}\`.`
|
|
4753
4850
|
);
|
|
@@ -4799,7 +4896,7 @@ function remoteBranches(url) {
|
|
|
4799
4896
|
return r.stdout.split("\n").map((line) => line.split(" ")[1]?.replace(/^refs\/heads\//, "")).filter((b) => !!b);
|
|
4800
4897
|
}
|
|
4801
4898
|
async function warnIfNotGithubRemote(name, url) {
|
|
4802
|
-
const { isGithubRemote, notGithubRemoteMessage } = await import('../library-publish-
|
|
4899
|
+
const { isGithubRemote, notGithubRemoteMessage } = await import('../library-publish-Z5E3YZCZ.js');
|
|
4803
4900
|
if (!isGithubRemote(url)) logWarn(notGithubRemoteMessage(name, url));
|
|
4804
4901
|
}
|
|
4805
4902
|
function scaffoldLibraryFiles(dir, name) {
|
|
@@ -4838,6 +4935,7 @@ by the same ref.
|
|
|
4838
4935
|
}
|
|
4839
4936
|
return written;
|
|
4840
4937
|
}
|
|
4938
|
+
var GIT_IDENTITY_FIX = 'Set it with `git config --global user.name "<name>"` and `git config --global user.email "<email>"`.';
|
|
4841
4939
|
function commitScaffold(dir, files) {
|
|
4842
4940
|
const run2 = (args) => spawnSync("git", args, { cwd: dir, encoding: "utf-8" });
|
|
4843
4941
|
const add = run2(["add", "--", ...files]);
|
|
@@ -4847,11 +4945,10 @@ function commitScaffold(dir, files) {
|
|
|
4847
4945
|
return (commit.stderr.trim() || commit.stdout.trim()).split("\n")[0] || "git commit failed";
|
|
4848
4946
|
}
|
|
4849
4947
|
async function refuseRemoteOfSource(manager, url) {
|
|
4850
|
-
const key = sourceCacheKey(url);
|
|
4851
4948
|
const libraries = await manager.listLibraries();
|
|
4852
4949
|
const cacheRoot = path19.resolve(getGlobalCacheDir()) + path19.sep;
|
|
4853
4950
|
const clash = libraries.find(
|
|
4854
|
-
(l) => path19.resolve(l.path).startsWith(cacheRoot) && "url" in l.backendConfig &&
|
|
4951
|
+
(l) => path19.resolve(l.path).startsWith(cacheRoot) && "url" in l.backendConfig && isSameRemote(l.backendConfig.url, url)
|
|
4855
4952
|
);
|
|
4856
4953
|
if (!clash) return;
|
|
4857
4954
|
logErr(
|
|
@@ -4989,7 +5086,7 @@ function makeLibraryCommand() {
|
|
|
4989
5086
|
await refuseNestedLibraryPath(manager, libPath);
|
|
4990
5087
|
if (fs8.existsSync(libPath)) {
|
|
4991
5088
|
exitOnLibrarySymlinks(libPath, `skaile library init ${name} --path ${libPath}`);
|
|
4992
|
-
await refuseUnusableLibraryDir(libPath, opts.force);
|
|
5089
|
+
await refuseUnusableLibraryDir(libPath, opts.force, ownership);
|
|
4993
5090
|
} else {
|
|
4994
5091
|
refuseDeployFolder(libPath, opts.force);
|
|
4995
5092
|
}
|
|
@@ -4997,7 +5094,9 @@ function makeLibraryCommand() {
|
|
|
4997
5094
|
let backend = "local";
|
|
4998
5095
|
let backendConfig;
|
|
4999
5096
|
if (opts.git) {
|
|
5000
|
-
const
|
|
5097
|
+
const existed = fs8.existsSync(libPath);
|
|
5098
|
+
const { branch, reason, cloned } = cloneOrInitGitRepo(libPath, opts.git, "main");
|
|
5099
|
+
if (cloned) exitOnCloneWithoutCheckout(libPath, name, { url: opts.git, existed });
|
|
5001
5100
|
if (reason) {
|
|
5002
5101
|
logWarn(
|
|
5003
5102
|
`Could not clone ${opts.git}; initialised an empty repo with that origin instead. git said: ${reason}`
|
|
@@ -5005,7 +5104,7 @@ function makeLibraryCommand() {
|
|
|
5005
5104
|
}
|
|
5006
5105
|
await warnIfNotGithubRemote(name, opts.git);
|
|
5007
5106
|
trackOriginBranch(libPath, branch);
|
|
5008
|
-
await refuseUnusableLibraryDir(libPath, opts.force);
|
|
5107
|
+
await refuseUnusableLibraryDir(libPath, opts.force, ownership);
|
|
5009
5108
|
backend = "git";
|
|
5010
5109
|
backendConfig = { url: opts.git, branch, authHint: "ssh" };
|
|
5011
5110
|
} else if (adopted) {
|
|
@@ -5029,7 +5128,7 @@ function makeLibraryCommand() {
|
|
|
5029
5128
|
`Library "${name}" ${blank ? "created" : "registered"} at ${libPath}${isDefault ? " (default)" : ""}`
|
|
5030
5129
|
);
|
|
5031
5130
|
if (scaffolded.length > 0) logInfo(`Scaffolded ${scaffolded.join(", ")}.`);
|
|
5032
|
-
if (scaffolded.length > 0 && opts.git) {
|
|
5131
|
+
if (scaffolded.length > 0 && (opts.git || adopted)) {
|
|
5033
5132
|
const failure = commitScaffold(libPath, scaffolded);
|
|
5034
5133
|
if (failure) {
|
|
5035
5134
|
logWarn(
|
|
@@ -5176,6 +5275,7 @@ function makeLibraryCommand() {
|
|
|
5176
5275
|
const target = await resolveTargetLibrary(manager, opts.library);
|
|
5177
5276
|
assertManifestEditableOrExit(target.path);
|
|
5178
5277
|
exitOnManifestPublisherProblems(target.path, target.name);
|
|
5278
|
+
exitOnRootSkillLibrary(target.path, target.name);
|
|
5179
5279
|
const effectiveKind = opts.kind ?? kind;
|
|
5180
5280
|
const am2 = new AssetManager({ registry: getKindRegistry(), projectDir: process.cwd() });
|
|
5181
5281
|
const libRoot = path19.resolve(target.path);
|
|
@@ -5408,6 +5508,7 @@ function makeLibraryCommand() {
|
|
|
5408
5508
|
}
|
|
5409
5509
|
await manager.updateLibrary(name, patch);
|
|
5410
5510
|
logOk(`Updated ${name}.${field}`);
|
|
5511
|
+
if (field === "backendConfig.url") await warnIfNotGithubRemote(name, value);
|
|
5411
5512
|
if (field === "path") {
|
|
5412
5513
|
logInfo(`Run \`skaile library index ${name}\` to re-index its assets from the new path.`);
|
|
5413
5514
|
}
|
|
@@ -5565,13 +5666,24 @@ function makeLibraryCommand() {
|
|
|
5565
5666
|
}
|
|
5566
5667
|
const r = spawnSync("git", ["commit", "-m", opts.message], {
|
|
5567
5668
|
cwd: lib.path,
|
|
5568
|
-
|
|
5669
|
+
encoding: "utf-8"
|
|
5569
5670
|
});
|
|
5671
|
+
const gitOutput = `${r.stdout ?? ""}${r.stderr ?? ""}`;
|
|
5570
5672
|
if (r.status !== 0) {
|
|
5571
|
-
|
|
5673
|
+
const noIdentity = /tell me who you are|unable to auto-detect|empty ident name/i.test(
|
|
5674
|
+
gitOutput
|
|
5675
|
+
);
|
|
5676
|
+
logErr(
|
|
5677
|
+
noIdentity ? `git commit failed: no git identity is configured. ${GIT_IDENTITY_FIX}` : `git commit failed${gitOutput.trim() ? `: ${gitOutput.trim().split("\n")[0]}` : "."}`
|
|
5678
|
+
);
|
|
5572
5679
|
process.exit(1);
|
|
5573
5680
|
}
|
|
5574
5681
|
logOk(`Committed in ${name}.`);
|
|
5682
|
+
if (/configured automatically/i.test(gitOutput)) {
|
|
5683
|
+
logWarn(
|
|
5684
|
+
`No git identity is configured, so git guessed one for this commit. ${GIT_IDENTITY_FIX} \`git -C ${lib.path} commit --amend --reset-author\` fixes this commit.`
|
|
5685
|
+
);
|
|
5686
|
+
}
|
|
5575
5687
|
} finally {
|
|
5576
5688
|
close();
|
|
5577
5689
|
}
|
|
@@ -5602,16 +5714,16 @@ function makeLibraryCommand() {
|
|
|
5602
5714
|
"With --create-repo: create the repo private (the store only accepts public repos)"
|
|
5603
5715
|
).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(
|
|
5604
5716
|
async (lib, opts) => {
|
|
5605
|
-
const { runLibraryPublish } = await import('../library-publish-
|
|
5717
|
+
const { runLibraryPublish } = await import('../library-publish-Z5E3YZCZ.js');
|
|
5606
5718
|
await withStoreErrorHandling(() => runLibraryPublish(lib, opts));
|
|
5607
5719
|
}
|
|
5608
5720
|
);
|
|
5609
5721
|
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) => {
|
|
5610
|
-
const { runLibraryRegister } = await import('../library-publish-
|
|
5722
|
+
const { runLibraryRegister } = await import('../library-publish-Z5E3YZCZ.js');
|
|
5611
5723
|
await withStoreErrorHandling(() => runLibraryRegister(lib, opts));
|
|
5612
5724
|
});
|
|
5613
5725
|
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) => {
|
|
5614
|
-
const { runLibraryYank } = await import('../library-publish-
|
|
5726
|
+
const { runLibraryYank } = await import('../library-publish-Z5E3YZCZ.js');
|
|
5615
5727
|
await withStoreErrorHandling(() => runLibraryYank(lib, opts));
|
|
5616
5728
|
});
|
|
5617
5729
|
return cmd;
|
|
@@ -6271,7 +6383,7 @@ function scheduleSoftDepPreview() {
|
|
|
6271
6383
|
}
|
|
6272
6384
|
async function loadAssets() {
|
|
6273
6385
|
softDepPreviewCache.clear();
|
|
6274
|
-
const { gatherAssetFeeds } = await import('../asset-feeds-
|
|
6386
|
+
const { gatherAssetFeeds } = await import('../asset-feeds-JWRIWLVX.js');
|
|
6275
6387
|
const { entries, notes } = await gatherAssetFeeds(am, am.projectDir);
|
|
6276
6388
|
if (notes.length > 0) {
|
|
6277
6389
|
state.message = notes.map((n) => `[${n.feed}] ${n.message}`).join(" \u2022 ");
|
|
@@ -6475,7 +6587,7 @@ function reconcileCollapsedSets(rows) {
|
|
|
6475
6587
|
async function loadSourcesAndLibraries() {
|
|
6476
6588
|
try {
|
|
6477
6589
|
const [{ openLibraryManager: openLibraryManager2 }, { getGlobalCacheDir: getGlobalCacheDir2, globalSkaileDir: globalSkaileDir2 }] = await Promise.all([
|
|
6478
|
-
import('../open-library-
|
|
6590
|
+
import('../open-library-A5OB72FD.js'),
|
|
6479
6591
|
import('../core/index.js')
|
|
6480
6592
|
]);
|
|
6481
6593
|
const { manager, library, close } = await openLibraryManager2();
|
|
@@ -9419,8 +9531,8 @@ function makeNpxCommand() {
|
|
|
9419
9531
|
process.exit(1);
|
|
9420
9532
|
}
|
|
9421
9533
|
});
|
|
9422
|
-
|
|
9423
|
-
|
|
9534
|
+
helpOnBareGroup(npx);
|
|
9535
|
+
helpOnBareGroup(skills);
|
|
9424
9536
|
return npx;
|
|
9425
9537
|
}
|
|
9426
9538
|
function resolvePublisher(clonePath, url) {
|
|
@@ -9605,7 +9717,7 @@ function makePatchCommand() {
|
|
|
9605
9717
|
am2.patchRemove(ref);
|
|
9606
9718
|
logOk(`Patch removed for ${ref}`);
|
|
9607
9719
|
});
|
|
9608
|
-
|
|
9720
|
+
helpOnBareGroup(cmd);
|
|
9609
9721
|
return cmd;
|
|
9610
9722
|
}
|
|
9611
9723
|
function action2(fn) {
|
|
@@ -9613,14 +9725,14 @@ function action2(fn) {
|
|
|
9613
9725
|
try {
|
|
9614
9726
|
await fn(...args);
|
|
9615
9727
|
} catch (err) {
|
|
9616
|
-
const { condensePluginFailure } = await import('../plugin-store-
|
|
9728
|
+
const { condensePluginFailure } = await import('../plugin-store-XQP2CRYH.js');
|
|
9617
9729
|
logErr(condensePluginFailure(err instanceof Error ? err.message : String(err)));
|
|
9618
9730
|
process.exitCode = 1;
|
|
9619
9731
|
}
|
|
9620
9732
|
};
|
|
9621
9733
|
}
|
|
9622
9734
|
async function reconcileAndReport(projectDir, plugins, opts = {}) {
|
|
9623
|
-
const { reconcilePlugins } = await import('../plugin-store-
|
|
9735
|
+
const { reconcilePlugins } = await import('../plugin-store-XQP2CRYH.js');
|
|
9624
9736
|
if (plugins.length === 0) {
|
|
9625
9737
|
logInfo("No plugins declared \u2014 nothing to reconcile.");
|
|
9626
9738
|
return;
|
|
@@ -9631,14 +9743,14 @@ async function reconcileAndReport(projectDir, plugins, opts = {}) {
|
|
|
9631
9743
|
else logInfo(`Plugin store ${result.reason}.`);
|
|
9632
9744
|
} catch (err) {
|
|
9633
9745
|
if (opts.strict) throw err;
|
|
9634
|
-
const { condensePluginFailure } = await import('../plugin-store-
|
|
9746
|
+
const { condensePluginFailure } = await import('../plugin-store-XQP2CRYH.js');
|
|
9635
9747
|
logWarn(
|
|
9636
9748
|
`reconcile skipped: ${condensePluginFailure(err instanceof Error ? err.message : String(err))}`
|
|
9637
9749
|
);
|
|
9638
9750
|
}
|
|
9639
9751
|
}
|
|
9640
9752
|
async function verifyPluginLoads(projectDir, spec, declared) {
|
|
9641
|
-
const { loadPlugins } = await import('../plugin-store-
|
|
9753
|
+
const { loadPlugins } = await import('../plugin-store-XQP2CRYH.js');
|
|
9642
9754
|
const { createPluginRegistry } = await import('../plugin-registry/index.js');
|
|
9643
9755
|
const registry = createPluginRegistry();
|
|
9644
9756
|
await loadPlugins(
|
|
@@ -9661,7 +9773,7 @@ async function runInstall2(typedSpec, opts) {
|
|
|
9661
9773
|
const rawSpec = typedSpec.trim();
|
|
9662
9774
|
const projectDir = path19__default.resolve(opts.projectDir);
|
|
9663
9775
|
const { WorkspaceYamlEditor: WorkspaceYamlEditor2 } = await import('../core/index.js');
|
|
9664
|
-
const { specName, rollbackPluginStore, npmSpecError, projectRelativeFileSpec } = await import('../plugin-store-
|
|
9776
|
+
const { specName, rollbackPluginStore, npmSpecError, projectRelativeFileSpec } = await import('../plugin-store-XQP2CRYH.js');
|
|
9665
9777
|
const specError = npmSpecError(rawSpec);
|
|
9666
9778
|
if (specError) throw new Error(specError);
|
|
9667
9779
|
const spec = projectRelativeFileSpec(rawSpec, process.cwd(), projectDir);
|
|
@@ -9698,7 +9810,7 @@ async function runInstall2(typedSpec, opts) {
|
|
|
9698
9810
|
async function runRemove(name, opts) {
|
|
9699
9811
|
const projectDir = path19__default.resolve(opts.projectDir);
|
|
9700
9812
|
const { WorkspaceYamlEditor: WorkspaceYamlEditor2 } = await import('../core/index.js');
|
|
9701
|
-
const { specName } = await import('../plugin-store-
|
|
9813
|
+
const { specName } = await import('../plugin-store-XQP2CRYH.js');
|
|
9702
9814
|
const yamlPath = path19__default.join(projectDir, "skaile.yaml");
|
|
9703
9815
|
if (!existsSync(yamlPath)) {
|
|
9704
9816
|
logInfo(`No plugin matching ${S.cmd(name)}: there is no skaile.yaml in ${projectDir}.`);
|
|
@@ -9714,7 +9826,7 @@ async function runRemove(name, opts) {
|
|
|
9714
9826
|
logOk(`Removed ${S.cmd(name)} from skaile.yaml plugins`);
|
|
9715
9827
|
const remaining = editor.getPlugins();
|
|
9716
9828
|
if (remaining.length === 0) {
|
|
9717
|
-
const { rollbackPluginStore } = await import('../plugin-store-
|
|
9829
|
+
const { rollbackPluginStore } = await import('../plugin-store-XQP2CRYH.js');
|
|
9718
9830
|
await rollbackPluginStore(projectDir, []);
|
|
9719
9831
|
logInfo("No plugins declared; removed .skaile/plugins/.");
|
|
9720
9832
|
return;
|
|
@@ -9737,7 +9849,7 @@ async function runList(opts) {
|
|
|
9737
9849
|
const registry = createPluginRegistry();
|
|
9738
9850
|
if (declared.length > 0) {
|
|
9739
9851
|
try {
|
|
9740
|
-
const { loadPlugins } = await import('../plugin-store-
|
|
9852
|
+
const { loadPlugins } = await import('../plugin-store-XQP2CRYH.js');
|
|
9741
9853
|
const result = await loadPlugins(projectDir, declared, registry);
|
|
9742
9854
|
for (const f of result.failed) logWarn(f.error);
|
|
9743
9855
|
} catch (err) {
|
|
@@ -9768,7 +9880,7 @@ function makePluginCommand() {
|
|
|
9768
9880
|
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));
|
|
9769
9881
|
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));
|
|
9770
9882
|
cmd.command("list").description("List declared plugins and the targets they contribute").option("--project-dir <path>", "Project directory", process.cwd()).action(action2(runList));
|
|
9771
|
-
|
|
9883
|
+
helpOnBareGroup(cmd);
|
|
9772
9884
|
return cmd;
|
|
9773
9885
|
}
|
|
9774
9886
|
|
|
@@ -10984,7 +11096,7 @@ function makeRunCommand() {
|
|
|
10984
11096
|
try {
|
|
10985
11097
|
const agentDir = instanceId2 ? resolveInstanceAgentDir(projectDir, resolveSkWorkspaceConfig(projectDir), instanceId2) : resolveSingleShotAgentDir(projectDir, agentDefinition);
|
|
10986
11098
|
const overrides = instanceId2 ? instanceSessionOverrides(resolveSkWorkspaceConfig(projectDir), instanceId2) : {};
|
|
10987
|
-
const instanceModel = opts.model ? void 0 : overrides.model;
|
|
11099
|
+
const instanceModel = opts.model ? void 0 : modelForHarness(overrides.model, harness);
|
|
10988
11100
|
const sessionModel = instanceModel ?? config.model;
|
|
10989
11101
|
if (dryRun) {
|
|
10990
11102
|
const problem = await printCompositionDryRun(
|
|
@@ -11104,6 +11216,19 @@ function makeResumeCommand() {
|
|
|
11104
11216
|
else console.log(` ${S.dim("Run")} ${S.cmd("skaile run <flow-id>")} ${S.dim("first.")}`);
|
|
11105
11217
|
process.exit(1);
|
|
11106
11218
|
}
|
|
11219
|
+
const preflightLines = async () => {
|
|
11220
|
+
const settings = await resolveSettings(projectDir, {
|
|
11221
|
+
harness: session.harness,
|
|
11222
|
+
model: session.model
|
|
11223
|
+
});
|
|
11224
|
+
return preflightHarness({
|
|
11225
|
+
projectDir,
|
|
11226
|
+
harness: settings.harness ?? DEFAULT_HARNESS_ID,
|
|
11227
|
+
model: settings.model,
|
|
11228
|
+
roles: settings.roles
|
|
11229
|
+
});
|
|
11230
|
+
};
|
|
11231
|
+
if (!dryRun && reportPreflight(await preflightLines())) process.exit(1);
|
|
11107
11232
|
console.log();
|
|
11108
11233
|
console.log(
|
|
11109
11234
|
` ${S.label("Resuming:")} ${S.heading(session.flowId)}${session.label ? S.dim(` \u2014 ${session.label}`) : ""}`
|
|
@@ -11123,6 +11248,7 @@ function makeResumeCommand() {
|
|
|
11123
11248
|
logErr(friendly ?? (err instanceof Error ? err.message : String(err)));
|
|
11124
11249
|
process.exit(1);
|
|
11125
11250
|
}
|
|
11251
|
+
if (dryRun && reportPreflight(await preflightLines())) process.exitCode = 1;
|
|
11126
11252
|
});
|
|
11127
11253
|
return cmd;
|
|
11128
11254
|
}
|
|
@@ -11223,7 +11349,10 @@ function makeReplCommand() {
|
|
|
11223
11349
|
let effectiveModel = effective.model;
|
|
11224
11350
|
if (!opts.model && instanceId2) {
|
|
11225
11351
|
try {
|
|
11226
|
-
effectiveModel =
|
|
11352
|
+
effectiveModel = modelForHarness(
|
|
11353
|
+
instanceSessionOverrides(resolveSkWorkspaceConfig(projectDir), instanceId2).model,
|
|
11354
|
+
effective.harness ?? DEFAULT_HARNESS_ID
|
|
11355
|
+
) ?? effectiveModel;
|
|
11227
11356
|
} catch {
|
|
11228
11357
|
}
|
|
11229
11358
|
}
|
|
@@ -11262,14 +11391,15 @@ function valueNotFlag(flag) {
|
|
|
11262
11391
|
function parseProviderIds(raw) {
|
|
11263
11392
|
return (raw ?? "").split(",").map((id) => id.trim()).filter((id) => id.length > 0);
|
|
11264
11393
|
}
|
|
11265
|
-
function parseModelEndpointFlag(raw) {
|
|
11266
|
-
|
|
11267
|
-
if (raw ===
|
|
11394
|
+
function parseModelEndpointFlag(raw, agent) {
|
|
11395
|
+
const agentOverride = agent === true ? { agent: true } : {};
|
|
11396
|
+
if (raw === void 0) return agent === true ? { enabled: true, ...agentOverride } : void 0;
|
|
11397
|
+
if (raw === true) return { enabled: true, ...agentOverride };
|
|
11268
11398
|
const port = Number(raw);
|
|
11269
11399
|
if (raw === false || !/^\d+$/.test(raw) || port > 65535) {
|
|
11270
11400
|
throw new Error(`--model-endpoint: invalid port '${String(raw)}'`);
|
|
11271
11401
|
}
|
|
11272
|
-
return { enabled: true, port };
|
|
11402
|
+
return { enabled: true, port, ...agentOverride };
|
|
11273
11403
|
}
|
|
11274
11404
|
function parsePortOption(raw) {
|
|
11275
11405
|
const port = Number(raw);
|
|
@@ -11337,6 +11467,9 @@ function makeServeCommand() {
|
|
|
11337
11467
|
).option(
|
|
11338
11468
|
"--model-endpoint [port]",
|
|
11339
11469
|
"Serve an OpenAI-compatible model endpoint on loopback for apps next to the session (optional port; default from skaile.yaml model_endpoint.port, else ephemeral)"
|
|
11470
|
+
).option(
|
|
11471
|
+
"--model-endpoint-agent",
|
|
11472
|
+
"Also offer the running agent as the model `skaile-agent` on the model endpoint (implies --model-endpoint)"
|
|
11340
11473
|
).option("--compile-test", "Build a compiled binary and run it (simulates Docker environment)").option(
|
|
11341
11474
|
"--with-codex",
|
|
11342
11475
|
"Include the Codex harness in the compiled binary (used with --compile-test)"
|
|
@@ -11367,7 +11500,7 @@ function makeServeCommand() {
|
|
|
11367
11500
|
process.exitCode = 1;
|
|
11368
11501
|
return;
|
|
11369
11502
|
}
|
|
11370
|
-
const dirProblem = (await import('../serve-preflight-
|
|
11503
|
+
const dirProblem = (await import('../serve-preflight-ODQGVUFL.js')).checkServeProjectDir(
|
|
11371
11504
|
opts.projectDir
|
|
11372
11505
|
);
|
|
11373
11506
|
if (dirProblem) {
|
|
@@ -11396,7 +11529,7 @@ function makeServeCommand() {
|
|
|
11396
11529
|
}
|
|
11397
11530
|
let providers = parseProviderIds(opts.providers);
|
|
11398
11531
|
if (!managedCodex) {
|
|
11399
|
-
const { resolveServeProvider } = await import('../serve-preflight-
|
|
11532
|
+
const { resolveServeProvider } = await import('../serve-preflight-ODQGVUFL.js');
|
|
11400
11533
|
const picked = resolveServeProvider(opts.projectDir, opts.provider, providers);
|
|
11401
11534
|
if ("problem" in picked) {
|
|
11402
11535
|
logErr(picked.problem);
|
|
@@ -11405,10 +11538,10 @@ function makeServeCommand() {
|
|
|
11405
11538
|
}
|
|
11406
11539
|
providers = [...picked.providers];
|
|
11407
11540
|
}
|
|
11408
|
-
const modelEndpoint = parseModelEndpointFlag(opts.modelEndpoint);
|
|
11409
|
-
const { checkHarnessSdk: checkHarnessSdk2, checkModelEndpointPeer, checkServeModel } = await import('../serve-preflight-
|
|
11410
|
-
const { checkServeHarness, checkServeAgents } = await import('../serve-preflight-
|
|
11411
|
-
const startProblem = managedCodex ? null : await checkServeHarness(opts.projectDir, opts.harness) ?? checkServeAgents(opts.projectDir);
|
|
11541
|
+
const modelEndpoint = parseModelEndpointFlag(opts.modelEndpoint, opts.modelEndpointAgent);
|
|
11542
|
+
const { checkHarnessSdk: checkHarnessSdk2, checkModelEndpointPeer, checkServeModel } = await import('../serve-preflight-ODQGVUFL.js');
|
|
11543
|
+
const { checkServeHarness, checkServeAgents, checkServeConnectors } = await import('../serve-preflight-ODQGVUFL.js');
|
|
11544
|
+
const startProblem = managedCodex ? null : await checkServeHarness(opts.projectDir, opts.harness) ?? checkServeAgents(opts.projectDir) ?? checkServeConnectors(opts.projectDir);
|
|
11412
11545
|
if (startProblem) {
|
|
11413
11546
|
logErr(startProblem);
|
|
11414
11547
|
process.exitCode = 1;
|
|
@@ -11474,12 +11607,12 @@ function makeServeCommand() {
|
|
|
11474
11607
|
);
|
|
11475
11608
|
}
|
|
11476
11609
|
async function ensurePluginsLoadedForServe(projectDir) {
|
|
11477
|
-
const { logInfo: logInfo2, logWarn: logWarn2 } = await import('../helpers-
|
|
11610
|
+
const { logInfo: logInfo2, logWarn: logWarn2 } = await import('../helpers-SO53MRHF.js');
|
|
11478
11611
|
try {
|
|
11479
11612
|
const { resolveSkWorkspaceConfig: resolveSkWorkspaceConfig2 } = await import('../core/index.js');
|
|
11480
11613
|
const config = resolveSkWorkspaceConfig2(projectDir);
|
|
11481
11614
|
if (!config.plugins || config.plugins.length === 0) return;
|
|
11482
|
-
const { ensurePluginsLoaded } = await import('../plugin-store-
|
|
11615
|
+
const { ensurePluginsLoaded } = await import('../plugin-store-XQP2CRYH.js');
|
|
11483
11616
|
const { pluginRegistry } = await import('../plugin-registry/index.js');
|
|
11484
11617
|
const result = await ensurePluginsLoaded(projectDir, config.plugins, pluginRegistry);
|
|
11485
11618
|
if (result.loaded.length > 0) {
|
|
@@ -11493,14 +11626,14 @@ async function ensurePluginsLoadedForServe(projectDir) {
|
|
|
11493
11626
|
}
|
|
11494
11627
|
}
|
|
11495
11628
|
async function runCompileTest(opts) {
|
|
11496
|
-
const { logOk: logOk2, logErr: logErr2, logInfo: logInfo2, S: S2 } = await import('../helpers-
|
|
11629
|
+
const { logOk: logOk2, logErr: logErr2, logInfo: logInfo2, S: S2 } = await import('../helpers-SO53MRHF.js');
|
|
11497
11630
|
const { tmpdir } = await import('os');
|
|
11498
11631
|
const { dirname: dirname3, join: join6, resolve: resolve4 } = await import('path');
|
|
11499
11632
|
const { fileURLToPath: fileURLToPath2 } = await import('url');
|
|
11500
11633
|
const { unlinkSync, existsSync: existsSync22 } = await import('fs');
|
|
11501
11634
|
const { spawn } = await import('child_process');
|
|
11502
11635
|
const { portableSpawnSync: portableSpawnSync2 } = await import('../core/index.js');
|
|
11503
|
-
const { MONOREPO_ROOT } = await import('../paths-
|
|
11636
|
+
const { MONOREPO_ROOT } = await import('../paths-77PXOXZY.js');
|
|
11504
11637
|
if (MONOREPO_ROOT === null) {
|
|
11505
11638
|
logErr2("--compile-test is only available inside the skaile-dev workspace.");
|
|
11506
11639
|
logInfo2("Run it from a checkout of skaile-ai/skaile-dev (the monorepo shell).");
|
|
@@ -12272,7 +12405,7 @@ function makeSessionCommand() {
|
|
|
12272
12405
|
logOk(`Deleted session: ${S.dim(runId.slice(0, 8))}`);
|
|
12273
12406
|
});
|
|
12274
12407
|
cmd.addCommand(makeSessionLogsCommand());
|
|
12275
|
-
|
|
12408
|
+
helpOnBareGroup(cmd);
|
|
12276
12409
|
return cmd;
|
|
12277
12410
|
}
|
|
12278
12411
|
var SYNC_ICONS = {
|
|
@@ -12460,8 +12593,8 @@ function makeStoreCommand() {
|
|
|
12460
12593
|
"--all",
|
|
12461
12594
|
`List every match (default: ${STORE_ROW_LIMIT} rows, only what \`skaile add\` can install)`
|
|
12462
12595
|
).option("-C, --project-dir <dir>", "Project directory (catalog config overlay)", process.cwd()).action(async (query, opts) => {
|
|
12463
|
-
const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-
|
|
12464
|
-
const { getKnownKinds: getKnownKinds2 } = await import('../open-registry-
|
|
12596
|
+
const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-A5OB72FD.js');
|
|
12597
|
+
const { getKnownKinds: getKnownKinds2 } = await import('../open-registry-BHBHQMBA.js');
|
|
12465
12598
|
const projectDir = path19__default.resolve(opts.projectDir);
|
|
12466
12599
|
if (opts.kind && !getKnownKinds2().has(opts.kind)) {
|
|
12467
12600
|
logErr(
|
|
@@ -12519,8 +12652,8 @@ function makeStoreCommand() {
|
|
|
12519
12652
|
}
|
|
12520
12653
|
});
|
|
12521
12654
|
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) => {
|
|
12522
|
-
const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-
|
|
12523
|
-
const { supportsInstallManifest: supportsInstallManifest2 } = await import('../project-
|
|
12655
|
+
const { openCatalogSource: openCatalogSource2, LocalCatalogDisabledError: LocalCatalogDisabledError2 } = await import('../open-library-A5OB72FD.js');
|
|
12656
|
+
const { supportsInstallManifest: supportsInstallManifest2 } = await import('../project-KTEUN7KR.js');
|
|
12524
12657
|
try {
|
|
12525
12658
|
parseAssetRef(ref);
|
|
12526
12659
|
} catch (e) {
|
|
@@ -12539,6 +12672,7 @@ function makeStoreCommand() {
|
|
|
12539
12672
|
const manifestFailure = {};
|
|
12540
12673
|
if (supportsInstallManifest2(remote)) {
|
|
12541
12674
|
manifest = await remote.getInstallManifest(canonical).catch(async (err) => {
|
|
12675
|
+
if (err instanceof OfflineError) manifestFailure.airGapped = true;
|
|
12542
12676
|
manifestFailure.text = await describeStoreFailure(err, path19__default.resolve(opts.projectDir));
|
|
12543
12677
|
return null;
|
|
12544
12678
|
});
|
|
@@ -12589,7 +12723,11 @@ function makeStoreCommand() {
|
|
|
12589
12723
|
const notInstallable = storeNotInstallableReason(asset);
|
|
12590
12724
|
const notRunnable = !notInstallable && asset.kind === "mcp-server" && manifest ? await mcpNotRunnableHere(manifest, asset.name) : void 0;
|
|
12591
12725
|
if (notInstallable) console.log(` ${S.dim(`Not installable: ${notInstallable}`)}`);
|
|
12592
|
-
else if (
|
|
12726
|
+
else if (manifestFailure.airGapped) {
|
|
12727
|
+
console.log(
|
|
12728
|
+
` ${S.dim(`Not installable offline: set catalog.cache_ttl above 0, then run skaile add ${canonical}`)}`
|
|
12729
|
+
);
|
|
12730
|
+
} else if (notRunnable) {
|
|
12593
12731
|
console.log(` ${S.dim(`Not runnable here: ${notRunnable}`)}`);
|
|
12594
12732
|
console.log(
|
|
12595
12733
|
` ${S.dim(`skaile add ${canonical} still records it in the lock, but writes no .mcp.json entry.`)}`
|
|
@@ -13349,7 +13487,7 @@ program.command("init [project-dir]").description("Initialize a project director
|
|
|
13349
13487
|
(projectDir, opts) => runInit(projectDir, opts)
|
|
13350
13488
|
);
|
|
13351
13489
|
async function runInit(projectDir, opts) {
|
|
13352
|
-
const { mkdirSync:
|
|
13490
|
+
const { mkdirSync: mkdirSync6, writeFileSync: writeFileSync8 } = await import('fs');
|
|
13353
13491
|
const { stringify: stringify2 } = await import('yaml');
|
|
13354
13492
|
const { HARNESS_TARGETS: HARNESS_TARGETS2, SUPPORTED_HARNESSES: SUPPORTED_HARNESSES2, resolveConfiguredHarnessName: resolveConfiguredHarnessName2 } = await import('../core/index.js');
|
|
13355
13493
|
const harness = opts.harness ?? "claude-code";
|
|
@@ -13373,28 +13511,28 @@ async function runInit(projectDir, opts) {
|
|
|
13373
13511
|
const created = [];
|
|
13374
13512
|
const { existsSync: existsSync22 } = await import('fs');
|
|
13375
13513
|
if (!existsSync22(resolved)) {
|
|
13376
|
-
|
|
13514
|
+
mkdirSync6(resolved, { recursive: true });
|
|
13377
13515
|
created.push(".");
|
|
13378
13516
|
}
|
|
13379
13517
|
const skaileDir = path19__default.join(resolved, ".skaile");
|
|
13380
13518
|
if (!existsSync22(skaileDir)) {
|
|
13381
|
-
|
|
13519
|
+
mkdirSync6(path19__default.join(skaileDir, "sessions"), { recursive: true });
|
|
13382
13520
|
created.push(".skaile/");
|
|
13383
13521
|
}
|
|
13384
13522
|
const settingsPath = path19__default.join(skaileDir, "settings.json");
|
|
13385
13523
|
if (!existsSync22(settingsPath)) {
|
|
13386
|
-
|
|
13524
|
+
writeFileSync8(settingsPath, "{}\n");
|
|
13387
13525
|
created.push(".skaile/settings.json");
|
|
13388
13526
|
}
|
|
13389
13527
|
const wsConfigPath = path19__default.join(resolved, "skaile.yaml");
|
|
13390
13528
|
if (!existsSync22(wsConfigPath)) {
|
|
13391
|
-
|
|
13529
|
+
writeFileSync8(wsConfigPath, stringify2(buildInitWorkspaceConfig(projectName, harness)));
|
|
13392
13530
|
created.push("skaile.yaml");
|
|
13393
13531
|
}
|
|
13394
13532
|
for (const dir of new Set(Object.values(HARNESS_TARGETS2[harness].local))) {
|
|
13395
13533
|
const full = path19__default.join(resolved, dir);
|
|
13396
13534
|
if (!existsSync22(full)) {
|
|
13397
|
-
|
|
13535
|
+
mkdirSync6(full, { recursive: true });
|
|
13398
13536
|
created.push(`${dir}/`);
|
|
13399
13537
|
}
|
|
13400
13538
|
}
|
|
@@ -13422,7 +13560,7 @@ function buildInitWorkspaceConfig(projectName, harness) {
|
|
|
13422
13560
|
}
|
|
13423
13561
|
async function initGitScaffold(resolved, created) {
|
|
13424
13562
|
const { execSync: execSync2 } = await import('child_process');
|
|
13425
|
-
const { existsSync: existsSync22, readFileSync:
|
|
13563
|
+
const { existsSync: existsSync22, readFileSync: readFileSync14, writeFileSync: writeFileSync8 } = await import('fs');
|
|
13426
13564
|
const gitignorePath = path19__default.join(resolved, ".gitignore");
|
|
13427
13565
|
const entries = [
|
|
13428
13566
|
"node_modules/",
|
|
@@ -13431,18 +13569,14 @@ async function initGitScaffold(resolved, created) {
|
|
|
13431
13569
|
"*.pyc",
|
|
13432
13570
|
".skaile/sessions/",
|
|
13433
13571
|
".skaile/cache/",
|
|
13434
|
-
// skaile-created artifacts that must never be committed:
|
|
13435
|
-
//
|
|
13436
|
-
//
|
|
13437
|
-
// and credential references are per-machine), the install history, and the
|
|
13438
|
-
// per-run model-endpoint discovery file (holds a bearer token).
|
|
13439
|
-
".skaile/logs.db*",
|
|
13572
|
+
// skaile-created artifacts that must never be committed: personal settings (holds API
|
|
13573
|
+
// keys), the workspace AI provider registry (endpoints and credential references are
|
|
13574
|
+
// per-machine), and the per-run model-endpoint discovery file (holds a bearer token).
|
|
13440
13575
|
".skaile/settings.json",
|
|
13441
13576
|
".skaile/providers.yml",
|
|
13442
|
-
".skaile/history.yaml",
|
|
13443
13577
|
".skaile/model-endpoint.json",
|
|
13444
|
-
// Machine state of the runs:
|
|
13445
|
-
// agent files an install wrote.
|
|
13578
|
+
// Machine state of the runs: the log database, the install history, one compiled-prompt
|
|
13579
|
+
// snapshot per run, and the ledger of the agent files an install wrote.
|
|
13446
13580
|
...RUN_STATE_GITIGNORE_ENTRIES,
|
|
13447
13581
|
// Per-machine files a run writes into the project: the system prompt handed to the harness
|
|
13448
13582
|
// (it carries the host path) and omp's session logs.
|
|
@@ -13463,12 +13597,12 @@ async function initGitScaffold(resolved, created) {
|
|
|
13463
13597
|
".env",
|
|
13464
13598
|
".env.local"
|
|
13465
13599
|
];
|
|
13466
|
-
const existing = existsSync22(gitignorePath) ?
|
|
13600
|
+
const existing = existsSync22(gitignorePath) ? readFileSync14(gitignorePath, "utf-8") : "";
|
|
13467
13601
|
const have = new Set(existing.split("\n").map((l) => l.trim()));
|
|
13468
13602
|
const append = entries.filter((e) => !have.has(e));
|
|
13469
13603
|
if (append.length > 0) {
|
|
13470
13604
|
const prefix = existing && !existing.endsWith("\n") ? "\n" : "";
|
|
13471
|
-
|
|
13605
|
+
writeFileSync8(gitignorePath, `${existing + prefix}${append.join("\n")}
|
|
13472
13606
|
`);
|
|
13473
13607
|
if (!existing) created.push(".gitignore");
|
|
13474
13608
|
}
|
|
@@ -13502,7 +13636,7 @@ async function bootstrapUserConfig() {
|
|
|
13502
13636
|
}
|
|
13503
13637
|
async function hydrateInitSources(resolved, created) {
|
|
13504
13638
|
try {
|
|
13505
|
-
const { ensureSourcesCloned } = await import('../ensure-sources-
|
|
13639
|
+
const { ensureSourcesCloned } = await import('../ensure-sources-GUJODKY5.js');
|
|
13506
13640
|
const hydrate = ensureSourcesCloned(resolved, { quiet: true });
|
|
13507
13641
|
for (const n of hydrate.cloned) created.push(`~/.skaile/cache/sources/${n}/`);
|
|
13508
13642
|
if (hydrate.failed.length > 0) {
|
|
@@ -13543,7 +13677,7 @@ function printInitSummary(resolved, projectDir, created) {
|
|
|
13543
13677
|
}
|
|
13544
13678
|
program.hook("preAction", (_program, actionCommand) => setActiveCommand(actionCommand));
|
|
13545
13679
|
program.command("setup").description("Interactive provider setup wizard").action(async () => {
|
|
13546
|
-
const { cmdSetup } = await import('../setup-
|
|
13680
|
+
const { cmdSetup } = await import('../setup-QJDI5YAW.js');
|
|
13547
13681
|
await cmdSetup([], { projectDir: process.cwd() });
|
|
13548
13682
|
});
|
|
13549
13683
|
program.addCommand(makeInstallCommand());
|
|
@@ -13624,7 +13758,7 @@ program.hook("postAction", async (_thisCommand, actionCommand) => {
|
|
|
13624
13758
|
const opts = actionCommand.opts();
|
|
13625
13759
|
if (opts.global || opts.dryRun) return;
|
|
13626
13760
|
const projectDir = path19__default.resolve(opts.projectDir ?? process.cwd());
|
|
13627
|
-
const { refreshPluginSkills } = await import('../claude-code-
|
|
13761
|
+
const { refreshPluginSkills } = await import('../claude-code-YRJIGXTL.js');
|
|
13628
13762
|
try {
|
|
13629
13763
|
if (await refreshPluginSkills(projectDir)) {
|
|
13630
13764
|
logInfo(`Updated ${S.cmd(".claude/plugins/skaile/skills")} (the --full plugin copy)`);
|