@skaile/workspaces 6.14.0 → 6.16.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 +83 -0
- package/dist/agent-file-refresh-76NNFB4W.js +89 -0
- package/dist/agent-file-refresh-76NNFB4W.js.map +1 -0
- package/dist/ai-sdk.js +8 -7
- package/dist/ai-sdk.js.map +1 -1
- package/dist/app-sdk/index.js +1 -1
- package/dist/{asset-feeds-DOG5FK7T.js → asset-feeds-ON7FYHHF.js} +25 -23
- package/dist/asset-feeds-ON7FYHHF.js.map +1 -0
- package/dist/asset-manager/catalog-deployer.js +8 -7
- package/dist/asset-manager/history.js +7 -6
- package/dist/asset-manager/index.js +17 -15
- package/dist/asset-manager/installer.js +16 -9
- package/dist/asset-manager/renderers.js +8 -8
- package/dist/asset-manager/src/add-remove/add.d.ts +134 -0
- package/dist/asset-manager/src/add-remove/add.d.ts.map +1 -0
- package/dist/asset-manager/src/add-remove/remove.d.ts +329 -0
- package/dist/asset-manager/src/add-remove/remove.d.ts.map +1 -0
- package/dist/asset-manager/src/agent-render.d.ts +116 -0
- package/dist/asset-manager/src/agent-render.d.ts.map +1 -0
- package/dist/asset-manager/src/composed-blocks.d.ts +40 -0
- package/dist/asset-manager/src/composed-blocks.d.ts.map +1 -0
- package/dist/asset-manager/src/config/core.d.ts +297 -0
- package/dist/asset-manager/src/config/core.d.ts.map +1 -0
- package/dist/asset-manager/src/config/edit.d.ts +161 -0
- package/dist/asset-manager/src/config/edit.d.ts.map +1 -0
- package/dist/asset-manager/src/index.d.ts +31 -2961
- package/dist/asset-manager/src/index.d.ts.map +1 -1
- package/dist/asset-manager/src/install/clone-commit-fetcher.d.ts +11 -0
- package/dist/asset-manager/src/install/clone-commit-fetcher.d.ts.map +1 -0
- package/dist/asset-manager/src/install/install.d.ts +151 -0
- package/dist/asset-manager/src/install/install.d.ts.map +1 -0
- package/dist/asset-manager/src/install/restore.d.ts +76 -0
- package/dist/asset-manager/src/install/restore.d.ts.map +1 -0
- package/dist/asset-manager/src/install-agent.d.ts +52 -4
- package/dist/asset-manager/src/install-agent.d.ts.map +1 -1
- package/dist/asset-manager/src/install-instances.d.ts +70 -2
- package/dist/asset-manager/src/install-instances.d.ts.map +1 -1
- package/dist/asset-manager/src/installer.d.ts +54 -4
- package/dist/asset-manager/src/installer.d.ts.map +1 -1
- package/dist/asset-manager/src/lock/copies.d.ts +156 -0
- package/dist/asset-manager/src/lock/copies.d.ts.map +1 -0
- package/dist/asset-manager/src/lock/library.d.ts +261 -0
- package/dist/asset-manager/src/lock/library.d.ts.map +1 -0
- package/dist/asset-manager/src/mcp-render.d.ts +86 -0
- package/dist/asset-manager/src/mcp-render.d.ts.map +1 -0
- package/dist/asset-manager/src/omp-sweep.d.ts +25 -0
- package/dist/asset-manager/src/omp-sweep.d.ts.map +1 -0
- package/dist/asset-manager/src/read/diff.d.ts +109 -0
- package/dist/asset-manager/src/read/diff.d.ts.map +1 -0
- package/dist/asset-manager/src/read/doctor.d.ts +116 -0
- package/dist/asset-manager/src/read/doctor.d.ts.map +1 -0
- package/dist/asset-manager/src/read/gaps.d.ts +120 -0
- package/dist/asset-manager/src/read/gaps.d.ts.map +1 -0
- package/dist/asset-manager/src/read/graph.d.ts +69 -0
- package/dist/asset-manager/src/read/graph.d.ts.map +1 -0
- package/dist/asset-manager/src/read/outdated.d.ts +152 -0
- package/dist/asset-manager/src/read/outdated.d.ts.map +1 -0
- package/dist/asset-manager/src/read/state.d.ts +265 -0
- package/dist/asset-manager/src/read/state.d.ts.map +1 -0
- package/dist/asset-manager/src/renderers.d.ts +11 -1
- package/dist/asset-manager/src/renderers.d.ts.map +1 -1
- package/dist/asset-manager/src/resolve/guards.d.ts +167 -0
- package/dist/asset-manager/src/resolve/guards.d.ts.map +1 -0
- package/dist/asset-manager/src/resolve/scan.d.ts +222 -0
- package/dist/asset-manager/src/resolve/scan.d.ts.map +1 -0
- package/dist/asset-manager/src/resolve/stores.d.ts +176 -0
- package/dist/asset-manager/src/resolve/stores.d.ts.map +1 -0
- package/dist/asset-manager/src/shared/files.d.ts +42 -0
- package/dist/asset-manager/src/shared/files.d.ts.map +1 -0
- package/dist/asset-manager/src/shared/library-hooks.d.ts +16 -0
- package/dist/asset-manager/src/shared/library-hooks.d.ts.map +1 -0
- package/dist/asset-manager/src/shared/library.d.ts +96 -0
- package/dist/asset-manager/src/shared/library.d.ts.map +1 -0
- package/dist/asset-manager/src/shared/refs.d.ts +101 -0
- package/dist/asset-manager/src/shared/refs.d.ts.map +1 -0
- package/dist/asset-manager/src/shared/types.d.ts +399 -0
- package/dist/asset-manager/src/shared/types.d.ts.map +1 -0
- package/dist/bridge/harnesses/claude-sdk.js +13 -19
- package/dist/bridge/harnesses/claude-sdk.js.map +1 -1
- package/dist/bridge/harnesses/codex.js +10 -10
- package/dist/bridge/harnesses/continue.js +12 -16
- package/dist/bridge/harnesses/continue.js.map +1 -1
- package/dist/bridge/harnesses/echo.js +5 -10
- package/dist/bridge/harnesses/echo.js.map +1 -1
- package/dist/bridge/harnesses/gemini.js +5 -5
- package/dist/bridge/harnesses/goose.js +13 -17
- package/dist/bridge/harnesses/goose.js.map +1 -1
- package/dist/bridge/harnesses/omp.js +7 -13
- package/dist/bridge/harnesses/omp.js.map +1 -1
- package/dist/bridge/harnesses/opencode.js +13 -17
- package/dist/bridge/harnesses/opencode.js.map +1 -1
- package/dist/bridge/harnesses/qwen.js +6 -11
- package/dist/bridge/harnesses/qwen.js.map +1 -1
- package/dist/bridge/index.js +18 -18
- package/dist/bridge/src/codex/managed-harness.d.ts.map +1 -1
- package/dist/bridge/src/driver-contract.d.ts +72 -0
- package/dist/bridge/src/driver-contract.d.ts.map +1 -0
- package/dist/bridge/src/harness-model-check.d.ts +1 -1
- package/dist/bridge/src/harness-model-check.d.ts.map +1 -1
- package/dist/bridge/src/harnesses/_subprocess-cli.d.ts +8 -0
- package/dist/bridge/src/harnesses/_subprocess-cli.d.ts.map +1 -1
- package/dist/bridge/src/harnesses/claude-sdk.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/continue.d.ts.map +1 -1
- package/dist/bridge/src/harnesses/echo.d.ts.map +1 -1
- package/dist/bridge/src/harnesses/gemini.d.ts.map +1 -1
- package/dist/bridge/src/harnesses/goose.d.ts.map +1 -1
- package/dist/bridge/src/harnesses/omp.d.ts.map +1 -1
- package/dist/bridge/src/harnesses/opencode.d.ts.map +1 -1
- package/dist/bridge/src/harnesses/qwen.d.ts.map +1 -1
- package/dist/bridge/src/index.d.ts +2 -0
- package/dist/bridge/src/index.d.ts.map +1 -1
- package/dist/bridge/src/preflight.d.ts +114 -0
- package/dist/bridge/src/preflight.d.ts.map +1 -0
- package/dist/bridge/src/registry.d.ts +12 -0
- package/dist/bridge/src/registry.d.ts.map +1 -1
- package/dist/{chunk-7UBCUKJO.js → chunk-2JUCWMIS.js} +8808 -8337
- package/dist/chunk-2JUCWMIS.js.map +1 -0
- package/dist/{chunk-VS6XC5JE.js → chunk-2MTRRK37.js} +3 -3
- package/dist/{chunk-VS6XC5JE.js.map → chunk-2MTRRK37.js.map} +1 -1
- package/dist/chunk-2PJYJPDE.js +3 -0
- package/dist/chunk-2PJYJPDE.js.map +1 -0
- package/dist/{chunk-ZQL6HGTW.js → chunk-2SSG5B24.js} +4 -4
- package/dist/{chunk-ZQL6HGTW.js.map → chunk-2SSG5B24.js.map} +1 -1
- package/dist/{chunk-WDG5IVEA.js → chunk-2ZDZJ7XQ.js} +3 -3
- package/dist/{chunk-WDG5IVEA.js.map → chunk-2ZDZJ7XQ.js.map} +1 -1
- package/dist/{chunk-V2VDTQ7A.js → chunk-3A7JUOY2.js} +3 -3
- package/dist/{chunk-V2VDTQ7A.js.map → chunk-3A7JUOY2.js.map} +1 -1
- package/dist/chunk-3LAJJURV.js +26 -0
- package/dist/chunk-3LAJJURV.js.map +1 -0
- package/dist/{chunk-X66KSHZF.js → chunk-3UYKT62L.js} +5 -5
- package/dist/{chunk-X66KSHZF.js.map → chunk-3UYKT62L.js.map} +1 -1
- package/dist/{chunk-J3FJTH3V.js → chunk-4X5WXQV7.js} +4 -4
- package/dist/{chunk-J3FJTH3V.js.map → chunk-4X5WXQV7.js.map} +1 -1
- package/dist/chunk-4ZNKEDYH.js +887 -0
- package/dist/chunk-4ZNKEDYH.js.map +1 -0
- package/dist/{chunk-DYH3VSPU.js → chunk-65SOXO7I.js} +20 -14
- package/dist/chunk-65SOXO7I.js.map +1 -0
- package/dist/{chunk-MVUXBWNW.js → chunk-6HTN2UIJ.js} +3 -3
- package/dist/{chunk-MVUXBWNW.js.map → chunk-6HTN2UIJ.js.map} +1 -1
- package/dist/{chunk-4SSTREBO.js → chunk-6KV34G6A.js} +8 -8
- package/dist/{chunk-4SSTREBO.js.map → chunk-6KV34G6A.js.map} +1 -1
- package/dist/{chunk-YNQRVTXH.js → chunk-6M44OQKH.js} +40 -44
- package/dist/chunk-6M44OQKH.js.map +1 -0
- package/dist/{chunk-B6W5DCH5.js → chunk-72DYHOO2.js} +24 -25
- package/dist/chunk-72DYHOO2.js.map +1 -0
- package/dist/{chunk-RRAXV5LE.js → chunk-7IW5E6LB.js} +43 -48
- package/dist/chunk-7IW5E6LB.js.map +1 -0
- package/dist/{chunk-BNLXZXZN.js → chunk-BRAOB37W.js} +97 -47
- package/dist/chunk-BRAOB37W.js.map +1 -0
- package/dist/{chunk-ZLDAPZIX.js → chunk-BTMSHGN3.js} +4 -4
- package/dist/{chunk-ZLDAPZIX.js.map → chunk-BTMSHGN3.js.map} +1 -1
- package/dist/{chunk-7K73MCI6.js → chunk-CU5WY6HN.js} +3 -3
- package/dist/{chunk-7K73MCI6.js.map → chunk-CU5WY6HN.js.map} +1 -1
- package/dist/{chunk-G2ZWIYZR.js → chunk-DFFJKGCW.js} +3 -3
- package/dist/{chunk-G2ZWIYZR.js.map → chunk-DFFJKGCW.js.map} +1 -1
- package/dist/{chunk-CG63XGVV.js → chunk-EGKCKWWE.js} +3 -3
- package/dist/{chunk-CG63XGVV.js.map → chunk-EGKCKWWE.js.map} +1 -1
- package/dist/{chunk-CJO3XKO7.js → chunk-ETGC2MEM.js} +4 -4
- package/dist/{chunk-CJO3XKO7.js.map → chunk-ETGC2MEM.js.map} +1 -1
- package/dist/{chunk-CFRHYD4C.js → chunk-FPG36VC4.js} +8 -13
- package/dist/chunk-FPG36VC4.js.map +1 -0
- package/dist/{chunk-SBAUZ7XH.js → chunk-H3PY5DFL.js} +4 -4
- package/dist/{chunk-SBAUZ7XH.js.map → chunk-H3PY5DFL.js.map} +1 -1
- package/dist/{chunk-7HRZACI4.js → chunk-HW4BDJPC.js} +17 -6
- package/dist/chunk-HW4BDJPC.js.map +1 -0
- package/dist/{chunk-GJT2Q5XD.js → chunk-HXST2IYJ.js} +3 -3
- package/dist/{chunk-GJT2Q5XD.js.map → chunk-HXST2IYJ.js.map} +1 -1
- package/dist/{chunk-7VBD5XUM.js → chunk-IG4YQ7ER.js} +32 -90
- package/dist/chunk-IG4YQ7ER.js.map +1 -0
- package/dist/{chunk-DWPQBMCY.js → chunk-JPV4WE5L.js} +2 -2
- package/dist/{chunk-DWPQBMCY.js.map → chunk-JPV4WE5L.js.map} +1 -1
- package/dist/{chunk-OC3AIMZH.js → chunk-KDRA6FYE.js} +120 -211
- package/dist/chunk-KDRA6FYE.js.map +1 -0
- package/dist/{chunk-KOI7QFDH.js → chunk-M7XIYHWB.js} +3 -3
- package/dist/{chunk-KOI7QFDH.js.map → chunk-M7XIYHWB.js.map} +1 -1
- package/dist/{chunk-7LJUK5JK.js → chunk-MG6QD7GE.js} +201 -43
- package/dist/chunk-MG6QD7GE.js.map +1 -0
- package/dist/{chunk-XHLRMUMO.js → chunk-NAQXDTF3.js} +3 -3
- package/dist/{chunk-XHLRMUMO.js.map → chunk-NAQXDTF3.js.map} +1 -1
- package/dist/{chunk-YJAKSCCN.js → chunk-NJ6UCY2B.js} +3 -3
- package/dist/{chunk-YJAKSCCN.js.map → chunk-NJ6UCY2B.js.map} +1 -1
- package/dist/{chunk-OKPITFE3.js → chunk-NNJQQYHY.js} +2 -2
- package/dist/{chunk-OKPITFE3.js.map → chunk-NNJQQYHY.js.map} +1 -1
- package/dist/{chunk-QNHW26AT.js → chunk-OD4N5O7V.js} +4 -4
- package/dist/{chunk-QNHW26AT.js.map → chunk-OD4N5O7V.js.map} +1 -1
- package/dist/{chunk-F7WMHDTV.js → chunk-P6FJDT35.js} +27 -7
- package/dist/chunk-P6FJDT35.js.map +1 -0
- package/dist/{chunk-IOXFT5D7.js → chunk-PD42JZWI.js} +3 -3
- package/dist/{chunk-IOXFT5D7.js.map → chunk-PD42JZWI.js.map} +1 -1
- package/dist/{chunk-MS2IXLTC.js → chunk-PMXTBWFD.js} +27 -7
- package/dist/chunk-PMXTBWFD.js.map +1 -0
- package/dist/{chunk-NAAFRZTA.js → chunk-PPSSDUN6.js} +3 -3
- package/dist/{chunk-NAAFRZTA.js.map → chunk-PPSSDUN6.js.map} +1 -1
- package/dist/{chunk-LMUNQYJQ.js → chunk-PRB67LCK.js} +127 -18
- package/dist/chunk-PRB67LCK.js.map +1 -0
- package/dist/{chunk-RLV3FF4I.js → chunk-QUIK7L3Z.js} +11 -11
- package/dist/{chunk-RLV3FF4I.js.map → chunk-QUIK7L3Z.js.map} +1 -1
- package/dist/{chunk-DRUAQ7IY.js → chunk-QUPZKTF3.js} +9 -8
- package/dist/chunk-QUPZKTF3.js.map +1 -0
- package/dist/{chunk-7FXOOUOC.js → chunk-RPRMD7XV.js} +27 -11
- package/dist/chunk-RPRMD7XV.js.map +1 -0
- package/dist/{chunk-3BRBTQ6M.js → chunk-S3UOZBGE.js} +20 -3
- package/dist/chunk-S3UOZBGE.js.map +1 -0
- package/dist/{chunk-LQWOU7S2.js → chunk-SFBLZOV5.js} +3 -3
- package/dist/{chunk-LQWOU7S2.js.map → chunk-SFBLZOV5.js.map} +1 -1
- package/dist/{chunk-EB2LKPI6.js → chunk-SMFZ5YGN.js} +4 -4
- package/dist/{chunk-EB2LKPI6.js.map → chunk-SMFZ5YGN.js.map} +1 -1
- package/dist/{chunk-243Z3BNB.js → chunk-SX54OQQT.js} +4 -4
- package/dist/{chunk-243Z3BNB.js.map → chunk-SX54OQQT.js.map} +1 -1
- package/dist/{chunk-2PVYDAFN.js → chunk-T65N4CIZ.js} +3 -3
- package/dist/{chunk-2PVYDAFN.js.map → chunk-T65N4CIZ.js.map} +1 -1
- package/dist/{chunk-QBLS7X3Z.js → chunk-TVRL3IPZ.js} +3 -3
- package/dist/{chunk-QBLS7X3Z.js.map → chunk-TVRL3IPZ.js.map} +1 -1
- package/dist/{chunk-2URJ7W5X.js → chunk-TW5AP6IF.js} +5 -5
- package/dist/{chunk-2URJ7W5X.js.map → chunk-TW5AP6IF.js.map} +1 -1
- package/dist/{chunk-F6LDWA2N.js → chunk-TYK752MU.js} +3 -3
- package/dist/{chunk-F6LDWA2N.js.map → chunk-TYK752MU.js.map} +1 -1
- package/dist/{chunk-HPQ2WDYC.js → chunk-U2WPJHRA.js} +5 -5
- package/dist/{chunk-HPQ2WDYC.js.map → chunk-U2WPJHRA.js.map} +1 -1
- package/dist/{chunk-MEU2HHGV.js → chunk-U7P22GEB.js} +386 -46
- package/dist/chunk-U7P22GEB.js.map +1 -0
- package/dist/{chunk-6ISJMEDX.js → chunk-VFEZUSB6.js} +4 -4
- package/dist/{chunk-6ISJMEDX.js.map → chunk-VFEZUSB6.js.map} +1 -1
- package/dist/{chunk-5FO4U3OL.js → chunk-WW22FS74.js} +75 -67
- package/dist/chunk-WW22FS74.js.map +1 -0
- package/dist/{chunk-WCUT3EQR.js → chunk-Z23I2JA6.js} +7 -7
- package/dist/{chunk-WCUT3EQR.js.map → chunk-Z23I2JA6.js.map} +1 -1
- package/dist/{chunk-VKGNMXGZ.js → chunk-Z7HLX4V2.js} +4 -4
- package/dist/{chunk-VKGNMXGZ.js.map → chunk-Z7HLX4V2.js.map} +1 -1
- package/dist/{chunk-LZCX2TCZ.js → chunk-ZII54C3E.js} +355 -1075
- package/dist/chunk-ZII54C3E.js.map +1 -0
- package/dist/{chunk-CVUMZTNO.js → chunk-ZQPBYLCS.js} +4 -4
- package/dist/{chunk-CVUMZTNO.js.map → chunk-ZQPBYLCS.js.map} +1 -1
- package/dist/{claude-code-LFAOJ3UQ.js → claude-code-VL6UM7BZ.js} +4 -4
- package/dist/{claude-code-LFAOJ3UQ.js.map → claude-code-VL6UM7BZ.js.map} +1 -1
- package/dist/cli/index.js +494 -301
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/src/agent-file-refresh.d.ts +25 -0
- package/dist/cli/src/agent-file-refresh.d.ts.map +1 -0
- package/dist/cli/src/commands/asset-cmd.d.ts.map +1 -1
- package/dist/cli/src/commands/catalog.d.ts +9 -2
- package/dist/cli/src/commands/catalog.d.ts.map +1 -1
- package/dist/cli/src/commands/config.d.ts.map +1 -1
- package/dist/cli/src/commands/harness.d.ts +1 -1
- package/dist/cli/src/commands/harness.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 +5 -7
- 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/preset-export.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 +27 -48
- package/dist/cli/src/commands/serve-preflight.d.ts.map +1 -1
- package/dist/cli/src/commands/serve.d.ts.map +1 -1
- package/dist/cli/src/commands/source.d.ts +6 -9
- package/dist/cli/src/commands/source.d.ts.map +1 -1
- package/dist/cli/src/commands/validate.d.ts +6 -0
- package/dist/cli/src/commands/validate.d.ts.map +1 -1
- package/dist/cli/src/config-checks.d.ts.map +1 -1
- package/dist/cli/src/harness-error.d.ts +11 -9
- package/dist/cli/src/harness-error.d.ts.map +1 -1
- package/dist/cli/src/skill-checks.d.ts +48 -74
- package/dist/cli/src/skill-checks.d.ts.map +1 -1
- package/dist/connectors/config.js +5 -5
- package/dist/connectors/index.js +22 -22
- package/dist/{connectors-KPF4UUDS.js → connectors-7EPJRVLJ.js} +25 -25
- package/dist/{connectors-KPF4UUDS.js.map → connectors-7EPJRVLJ.js.map} +1 -1
- package/dist/connectors-shared/index.js +2 -2
- package/dist/core/index.js +7 -6
- package/dist/core/manifest.js +2 -2
- package/dist/core/models.js +1 -1
- package/dist/core/publish-manifest.js +3 -3
- package/dist/core/ref.js +1 -1
- package/dist/core/runtime-assets.js +5 -5
- package/dist/core/src/agent-prompt-sections.d.ts +96 -4
- package/dist/core/src/agent-prompt-sections.d.ts.map +1 -1
- package/dist/core/src/check-asset.d.ts +115 -0
- package/dist/core/src/check-asset.d.ts.map +1 -0
- package/dist/core/src/harness-model.d.ts +20 -0
- package/dist/core/src/harness-model.d.ts.map +1 -0
- package/dist/core/src/index.d.ts +10 -6
- package/dist/core/src/index.d.ts.map +1 -1
- package/dist/core/src/lock.d.ts +12 -10
- package/dist/core/src/lock.d.ts.map +1 -1
- package/dist/core/src/models.d.ts +42 -11
- package/dist/core/src/models.d.ts.map +1 -1
- package/dist/core/src/publish-manifest.d.ts +17 -0
- package/dist/core/src/publish-manifest.d.ts.map +1 -1
- package/dist/core/src/repo-identity.d.ts +41 -0
- package/dist/core/src/repo-identity.d.ts.map +1 -0
- package/dist/core/src/repo-manager.d.ts +3 -9
- package/dist/core/src/repo-manager.d.ts.map +1 -1
- package/dist/core/src/walker.d.ts.map +1 -1
- package/dist/core/src/workspace-config.d.ts.map +1 -1
- package/dist/core/workspace-config.js +4 -4
- package/dist/deploy/index.js +7 -6
- package/dist/deploy/index.js.map +1 -1
- package/dist/discovery/index.js +5 -5
- package/dist/discovery/src/source-config.d.ts.map +1 -1
- package/dist/{ensure-sources-FOMEGCQ5.js → ensure-sources-CI3JQJST.js} +32 -30
- package/dist/ensure-sources-CI3JQJST.js.map +1 -0
- package/dist/factory-assets/connectors/box.js +22 -22
- package/dist/factory-assets/connectors/deploy.js +22 -22
- package/dist/factory-assets/connectors/devserver.js +22 -22
- package/dist/factory-assets/connectors/flow/adapter.js +22 -22
- package/dist/factory-assets/connectors/flow/engine.js +8 -7
- package/dist/factory-assets/connectors/flow/run-flow.js +24 -24
- package/dist/factory-assets/connectors/flow.js +22 -22
- package/dist/factory-assets/connectors/git.js +22 -22
- package/dist/factory-assets/connectors/gmail.js +22 -22
- package/dist/factory-assets/connectors/googledrive.js +22 -22
- package/dist/factory-assets/connectors/local.js +22 -22
- package/dist/factory-assets/connectors/mattermost.js +22 -22
- package/dist/factory-assets/connectors/memory.js +22 -22
- package/dist/factory-assets/connectors/minio.js +22 -22
- package/dist/factory-assets/connectors/postgres.js +22 -22
- package/dist/factory-assets/connectors/s3.js +22 -22
- package/dist/factory-assets/connectors/sharepoint.js +22 -22
- package/dist/factory-assets/connectors/sqlite.js +22 -22
- package/dist/factory-assets/connectors/static-server.js +22 -22
- package/dist/factory-assets/connectors/tunnel.js +22 -22
- package/dist/factory-assets/connectors/webdav.js +22 -22
- package/dist/factory-assets/connectors/xstate-store.js +22 -22
- package/dist/factory-assets/connectors/xstate.js +22 -22
- package/dist/{flows-J64L5MGJ.js → flows-6XQAYQS4.js} +12 -11
- package/dist/{flows-J64L5MGJ.js.map → flows-6XQAYQS4.js.map} +1 -1
- package/dist/{helpers-ZJ67FO3Z.js → helpers-26MR5QPO.js} +32 -30
- package/dist/{helpers-ZJ67FO3Z.js.map → helpers-26MR5QPO.js.map} +1 -1
- package/dist/library/index.js +10 -10
- package/dist/library/install.js +4 -4
- package/dist/library/src/index.d.ts +1 -1
- package/dist/library/src/index.d.ts.map +1 -1
- package/dist/library/src/local/db.d.ts.map +1 -1
- package/dist/library/src/local/library-manager.d.ts.map +1 -1
- package/dist/library/src/local/library.d.ts.map +1 -1
- package/dist/library/src/local/schema.d.ts +19 -0
- package/dist/library/src/local/schema.d.ts.map +1 -1
- package/dist/library/src/user-library.d.ts +18 -0
- package/dist/library/src/user-library.d.ts.map +1 -1
- package/dist/{library-publish-RGVXGTY4.js → library-publish-F3AKF66O.js} +74 -68
- package/dist/library-publish-F3AKF66O.js.map +1 -0
- package/dist/model-endpoint/index.js +10 -9
- package/dist/{open-library-I5JHL37T.js → open-library-FVV6GG4I.js} +35 -33
- package/dist/{open-library-I5JHL37T.js.map → open-library-FVV6GG4I.js.map} +1 -1
- package/dist/{open-registry-4HNCWOCN.js → open-registry-VX2BVMS5.js} +16 -16
- package/dist/{open-registry-4HNCWOCN.js.map → open-registry-VX2BVMS5.js.map} +1 -1
- package/dist/{paths-PXBWY532.js → paths-PIWSSUUG.js} +10 -9
- package/dist/{paths-PXBWY532.js.map → paths-PIWSSUUG.js.map} +1 -1
- package/dist/{plugin-store-ZC3EGZ3D.js → plugin-store-MVTW6G7J.js} +10 -9
- package/dist/{plugin-store-ZC3EGZ3D.js.map → plugin-store-MVTW6G7J.js.map} +1 -1
- package/dist/{project-K5JWPIJ6.js → project-GFQP4TW6.js} +50 -48
- package/dist/{project-K5JWPIJ6.js.map → project-GFQP4TW6.js.map} +1 -1
- package/dist/resolver/index.js +8 -7
- package/dist/runner/composition-content.d.ts +2 -0
- package/dist/runner/composition-content.js +29 -0
- package/dist/runner/composition-content.js.map +1 -0
- package/dist/runner/index.js +40 -39
- package/dist/runner/src/compaction/prompt.d.ts.map +1 -1
- package/dist/runner/src/composition/content-entry.d.ts +15 -0
- package/dist/runner/src/composition/content-entry.d.ts.map +1 -0
- package/dist/runner/src/composition/content-source.d.ts +7 -0
- package/dist/runner/src/composition/content-source.d.ts.map +1 -1
- package/dist/runner/src/composition/dry-run.d.ts +5 -1
- package/dist/runner/src/composition/dry-run.d.ts.map +1 -1
- package/dist/runner/src/composition/index.d.ts +1 -1
- package/dist/runner/src/composition/index.d.ts.map +1 -1
- package/dist/runner/src/composition/prompt-sections.d.ts +47 -20
- package/dist/runner/src/composition/prompt-sections.d.ts.map +1 -1
- package/dist/runner/src/context-usage/compose.d.ts.map +1 -1
- package/dist/runner/src/session-builder.d.ts +3 -8
- package/dist/runner/src/session-builder.d.ts.map +1 -1
- package/dist/runner/src/work-practices.d.ts +9 -0
- package/dist/runner/src/work-practices.d.ts.map +1 -0
- package/dist/sdk/asset-manager.js +17 -15
- package/dist/sdk/bridge.js +18 -18
- package/dist/sdk/core.js +7 -6
- package/dist/sdk/flow.js +8 -7
- package/dist/sdk/index.js +40 -39
- package/dist/sdk/index.js.map +1 -1
- package/dist/sdk/resolver.js +8 -7
- package/dist/sdk/runner.js +40 -39
- package/dist/sdk/session.js +2 -2
- package/dist/sdk/transport/ws/server.js +8 -7
- package/dist/sdk/transport/ws.js +8 -7
- package/dist/sdk/transport.js +8 -7
- package/dist/sdk/types.js +1 -1
- package/dist/serve-preflight-XJS5OZML.js +138 -0
- package/dist/serve-preflight-XJS5OZML.js.map +1 -0
- package/dist/session/index.js +2 -2
- package/dist/{setup-RXTNGML5.js → setup-BFEBJLYF.js} +33 -31
- package/dist/setup-BFEBJLYF.js.map +1 -0
- package/dist/{skills-5D4KDVPJ.js → skills-OCG7B5CL.js} +13 -12
- package/dist/{skills-5D4KDVPJ.js.map → skills-OCG7B5CL.js.map} +1 -1
- package/dist/source-P6JPZYWP.js +93 -0
- package/dist/{source-2LP5W3ST.js.map → source-P6JPZYWP.js.map} +1 -1
- package/dist/{source-manifest-publish-EZNCTSQF.js → source-manifest-publish-XBFHEURV.js} +54 -52
- package/dist/source-manifest-publish-XBFHEURV.js.map +1 -0
- package/dist/transport/index.js +8 -7
- package/dist/transport/ws/server.js +8 -7
- package/dist/transport/ws.js +8 -7
- package/dist/tui/index.js +40 -39
- package/dist/tui/index.js.map +1 -1
- package/dist/types/index.js +1 -1
- package/dist/types/src/context-usage.d.ts +1 -1
- package/dist/types/src/events.d.ts +3 -2
- package/dist/types/src/events.d.ts.map +1 -1
- package/dist/types/src/runtime.d.ts +6 -0
- package/dist/types/src/runtime.d.ts.map +1 -1
- package/dist/workspace-plugin/adapters/mcp.js +29 -29
- package/dist/workspace-plugin/adapters/omp.js +14 -14
- package/dist/workspace-plugin/index.js +1 -1
- package/package.json +7 -1
- package/dist/asset-feeds-DOG5FK7T.js.map +0 -1
- package/dist/chunk-3BRBTQ6M.js.map +0 -1
- package/dist/chunk-5FO4U3OL.js.map +0 -1
- package/dist/chunk-7FXOOUOC.js.map +0 -1
- package/dist/chunk-7HRZACI4.js.map +0 -1
- package/dist/chunk-7LJUK5JK.js.map +0 -1
- package/dist/chunk-7UBCUKJO.js.map +0 -1
- package/dist/chunk-7VBD5XUM.js.map +0 -1
- package/dist/chunk-A7TM4PZZ.js +0 -110
- package/dist/chunk-A7TM4PZZ.js.map +0 -1
- package/dist/chunk-B6W5DCH5.js.map +0 -1
- package/dist/chunk-BNLXZXZN.js.map +0 -1
- package/dist/chunk-CFRHYD4C.js.map +0 -1
- package/dist/chunk-DRUAQ7IY.js.map +0 -1
- package/dist/chunk-DYH3VSPU.js.map +0 -1
- package/dist/chunk-F7WMHDTV.js.map +0 -1
- package/dist/chunk-LMUNQYJQ.js.map +0 -1
- package/dist/chunk-LZCX2TCZ.js.map +0 -1
- package/dist/chunk-MEU2HHGV.js.map +0 -1
- package/dist/chunk-MS2IXLTC.js.map +0 -1
- package/dist/chunk-OC3AIMZH.js.map +0 -1
- package/dist/chunk-RRAXV5LE.js.map +0 -1
- package/dist/chunk-YNQRVTXH.js.map +0 -1
- package/dist/cli/src/commands/harness-preflight.d.ts +0 -40
- package/dist/cli/src/commands/harness-preflight.d.ts.map +0 -1
- package/dist/ensure-sources-FOMEGCQ5.js.map +0 -1
- package/dist/library-publish-RGVXGTY4.js.map +0 -1
- package/dist/serve-preflight-L6VVCDM5.js +0 -61
- package/dist/serve-preflight-L6VVCDM5.js.map +0 -1
- package/dist/setup-RXTNGML5.js.map +0 -1
- package/dist/source-2LP5W3ST.js +0 -91
- package/dist/source-manifest-publish-EZNCTSQF.js.map +0 -1
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
import { type AgentInstanceConfig, type AssetRef } from "@skaile/workspaces/core";
|
|
2
|
+
import { AmReadOutdated } from "./outdated.js";
|
|
3
|
+
/**
|
|
4
|
+
* Replace the `diff -u` timestamps of the `---` / `+++` header lines with a label of the side
|
|
5
|
+
* (`--- <file> (deployed)`, `+++ <file> (library)`). A file that is missing on one side shows
|
|
6
|
+
* the epoch there (`1970-01-01`), which says nothing a reader wants (p1693).
|
|
7
|
+
*/
|
|
8
|
+
export declare function labelDiffHeaders(diff: string, from: string, to: string): string;
|
|
9
|
+
/**
|
|
10
|
+
* Outcome of `AssetManager.diff()` — distinguishes an unknown ref from a real
|
|
11
|
+
* "no differences" so callers never conflate the two.
|
|
12
|
+
*
|
|
13
|
+
* - `not-found` — the ref resolves to no asset (source, store or library).
|
|
14
|
+
* - `not-deployed` — the asset resolves, but there is no deployed copy to compare.
|
|
15
|
+
* - `identical` — the deployed copy matches the source.
|
|
16
|
+
* - `differs` — the deployed copy differs; `diff` carries the unified diff. `fileSetDiffers` is
|
|
17
|
+
* set when a file is missing from the deployed copy or one is not part of the asset (an
|
|
18
|
+
* `mcp-server` payload): that is a state problem as for a skill, so `diff` lists it and exits 1.
|
|
19
|
+
* - `no-files` — the asset kind has no files of its own (a preset: its items are the assets to
|
|
20
|
+
* compare) and the lock records it.
|
|
21
|
+
*
|
|
22
|
+
* @docLink packages/asset-manager/concepts#asset-manager
|
|
23
|
+
*/
|
|
24
|
+
export type DiffResult = {
|
|
25
|
+
status: "not-found";
|
|
26
|
+
} | {
|
|
27
|
+
status: "not-deployed";
|
|
28
|
+
} | {
|
|
29
|
+
status: "identical";
|
|
30
|
+
} | {
|
|
31
|
+
status: "no-files";
|
|
32
|
+
} | {
|
|
33
|
+
status: "differs";
|
|
34
|
+
diff: string;
|
|
35
|
+
fileSetDiffers?: true;
|
|
36
|
+
};
|
|
37
|
+
/** Diff and patch*. One layer of the `AssetManager` class chain (see `asset-manager/CLAUDE.md`). */
|
|
38
|
+
export declare abstract class AmReadDiff extends AmReadOutdated {
|
|
39
|
+
/**
|
|
40
|
+
* {@link AssetManager.diff} for a locked source or store asset whose bytes are not on disk:
|
|
41
|
+
* the deployed copy against the per-file hashes the lock records. No text to show without the
|
|
42
|
+
* locked bytes, so an edited file is named and the way to fetch them is. `null` when the lock
|
|
43
|
+
* has no such entry or the kind is rendered (an agent), not copied.
|
|
44
|
+
*/
|
|
45
|
+
protected diffAgainstLock(want: AssetRef): Promise<DiffResult | null>;
|
|
46
|
+
/**
|
|
47
|
+
* Produce a unified diff from the deployed asset to its catalog source: `-` lines
|
|
48
|
+
* are in the deployed copy only (local edits `update` would overwrite), `+` lines
|
|
49
|
+
* are in the source only (what `update` would add).
|
|
50
|
+
*
|
|
51
|
+
* Useful for detecting manual edits to deployed files or seeing what an upstream
|
|
52
|
+
* change would bring in; also for verifying that a patch
|
|
53
|
+
* was applied correctly.
|
|
54
|
+
*
|
|
55
|
+
* @param ref - Asset ref in `kind:name` form.
|
|
56
|
+
* @returns A {@link DiffResult}: `not-found` (unknown ref), `not-deployed`,
|
|
57
|
+
* `identical`, or `differs` with the unified diff.
|
|
58
|
+
* @throws When `diff(1)` itself fails (exit status other than 0/1).
|
|
59
|
+
*/
|
|
60
|
+
diff(ref: string): Promise<DiffResult>;
|
|
61
|
+
/**
|
|
62
|
+
* The agent instances of `skaile.yaml` whose `ref` names `want` (an `agent:` ref, matched on
|
|
63
|
+
* name and, when both name one, publisher) and bind to an agent definition directory.
|
|
64
|
+
*/
|
|
65
|
+
protected instancesBoundTo(want: AssetRef): Array<{
|
|
66
|
+
id: string;
|
|
67
|
+
srcDir: string;
|
|
68
|
+
config: AgentInstanceConfig;
|
|
69
|
+
}>;
|
|
70
|
+
/**
|
|
71
|
+
* Extract a deployed asset into a patch working directory for editing.
|
|
72
|
+
*
|
|
73
|
+
* Copies the deployed asset to `.skaile/patches/<kind>-<name>/` so changes
|
|
74
|
+
* can be made there and then committed as a patch file via `patchCommit`.
|
|
75
|
+
*
|
|
76
|
+
* @param ref - Asset ref in `kind:name` form.
|
|
77
|
+
* @returns Absolute path to the patch working directory.
|
|
78
|
+
* @throws When the asset cannot be found in the catalog.
|
|
79
|
+
*/
|
|
80
|
+
patch(ref: string): Promise<string>;
|
|
81
|
+
/**
|
|
82
|
+
* Generate a `.patch` file from changes made in the patch working directory.
|
|
83
|
+
*
|
|
84
|
+
* Diffs the patch working directory against the original catalog source and
|
|
85
|
+
* writes the result to `.skaile/patches/<kind>-<name>.patch`.
|
|
86
|
+
*
|
|
87
|
+
* @param ref - Asset ref in `kind:name` form.
|
|
88
|
+
* @returns Absolute path to the generated `.patch` file.
|
|
89
|
+
* @throws When the patch working directory does not exist or no differences are found.
|
|
90
|
+
*/
|
|
91
|
+
patchCommit(ref: string): Promise<string>;
|
|
92
|
+
/**
|
|
93
|
+
* Apply the committed patch file to the repository clone and open a contribution branch.
|
|
94
|
+
*
|
|
95
|
+
* Applies `.skaile/patches/<kind>-<name>.patch` to the repository clone, creates a
|
|
96
|
+
* `patch/<kind>-<name>` branch, and stages a commit — ready to push via `contribPush`.
|
|
97
|
+
*
|
|
98
|
+
* @param ref - Asset ref in `kind:name` form.
|
|
99
|
+
* @throws When the asset is not found, has no repository, or the patch file is missing.
|
|
100
|
+
*/
|
|
101
|
+
patchSubmit(ref: string): Promise<void>;
|
|
102
|
+
/**
|
|
103
|
+
* Delete the patch working directory and patch file for an asset.
|
|
104
|
+
*
|
|
105
|
+
* @param ref - Asset ref in `kind:name` form.
|
|
106
|
+
*/
|
|
107
|
+
patchRemove(ref: string): void;
|
|
108
|
+
}
|
|
109
|
+
//# sourceMappingURL=diff.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../../../asset-manager/src/read/diff.ts"],"names":[],"mappings":"AAGA,OAAO,EAUL,KAAK,mBAAmB,EACxB,KAAK,QAAQ,EACd,MAAM,yBAAyB,CAAC;AAMjC,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,MAAM,CAO/E;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,MAAM,UAAU,GAClB;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GACvB;IAAE,MAAM,EAAE,cAAc,CAAA;CAAE,GAC1B;IAAE,MAAM,EAAE,WAAW,CAAA;CAAE,GACvB;IAAE,MAAM,EAAE,UAAU,CAAA;CAAE,GACtB;IAAE,MAAM,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,IAAI,CAAA;CAAE,CAAC;AAE/D,oGAAoG;AACpG,8BAAsB,UAAW,SAAQ,cAAc;IACrD;;;;;OAKG;cACa,eAAe,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,UAAU,GAAG,IAAI,CAAC;IA+B3E;;;;;;;;;;;;;OAaG;IACG,IAAI,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,UAAU,CAAC;IA2G5C;;;OAGG;IACH,SAAS,CAAC,gBAAgB,CACxB,IAAI,EAAE,QAAQ,GACb,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,mBAAmB,CAAA;KAAE,CAAC;IA2BrE;;;;;;;;;OASG;IACG,KAAK,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAMzC;;;;;;;;;OASG;IACG,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAmB/C;;;;;;;;OAQG;IACG,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAsB7C;;;;OAIG;IACH,WAAW,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;CAW/B"}
|
|
@@ -0,0 +1,116 @@
|
|
|
1
|
+
import { type CatalogEntry, type LockFile } from "@skaile/workspaces/core";
|
|
2
|
+
import type { DepIssue, LockGap } from "../shared/types.js";
|
|
3
|
+
import { AmReadGaps } from "./gaps.js";
|
|
4
|
+
/**
|
|
5
|
+
* The project's state as {@link AssetManager.projectState} computes it: the one verdict
|
|
6
|
+
* `check`, `doctor`, `outdated`, `diff` and `install --locked` share.
|
|
7
|
+
*
|
|
8
|
+
* @docLink packages/asset-manager/concepts#asset-manager
|
|
9
|
+
*/
|
|
10
|
+
export interface ProjectState {
|
|
11
|
+
/** Every problem, one {@link LockGap} each; empty when the project is as declared and locked. */
|
|
12
|
+
gaps: LockGap[];
|
|
13
|
+
/** What {@link AssetManager.doctor} found: the unmet requirements (a `doctor` table row each) and the locked assets nothing provides. */
|
|
14
|
+
requirements: DepIssue[];
|
|
15
|
+
}
|
|
16
|
+
/** Doctor and projectState. One layer of the `AssetManager` class chain (see `asset-manager/CLAUDE.md`). */
|
|
17
|
+
export declare abstract class AmReadDoctor extends AmReadGaps {
|
|
18
|
+
/**
|
|
19
|
+
* Scan deployed assets for unsatisfied transitive dependencies.
|
|
20
|
+
*
|
|
21
|
+
* For each deployed asset, checks that all entries in its `requires` list are
|
|
22
|
+
* also deployed. Returns a list of issues with a flag indicating whether the
|
|
23
|
+
* missing dependency can be resolved from a configured repository or library.
|
|
24
|
+
*
|
|
25
|
+
* A deployed asset is looked up by its publisher-qualified identity taken from
|
|
26
|
+
* the lock key (`kind:@pub/name`), so library and source assets resolve alike.
|
|
27
|
+
* A lock-managed asset that no source or library can be found for is reported
|
|
28
|
+
* as an issue with `unresolved: true` (its `requires` cannot be verified);
|
|
29
|
+
* unmanaged deployed files carry no declared origin and are skipped.
|
|
30
|
+
*
|
|
31
|
+
* @returns Array of {@link DepIssue} objects. An empty array means the workspace is healthy.
|
|
32
|
+
*/
|
|
33
|
+
doctor(): Promise<DepIssue[]>;
|
|
34
|
+
/**
|
|
35
|
+
* The project's state as one verdict: every way the project differs from what it
|
|
36
|
+
* declares and locks. `skaile check`, `skaile doctor`, `skaile outdated`, `skaile diff`
|
|
37
|
+
* and `skaile install --locked` all take their verdict and exit code from this one list,
|
|
38
|
+
* so one situation reads the same in all five.
|
|
39
|
+
*
|
|
40
|
+
* - `declared` — a `skaile.yaml` dependency with no lock entry (library or source gone,
|
|
41
|
+
* unresolvable ref, never installed);
|
|
42
|
+
* - `invalid` — a `dependencies:` entry that is not a parseable ref;
|
|
43
|
+
* - `drift` — a locked asset whose deployed files are missing;
|
|
44
|
+
* - `pin` — a declared `#pin` that no lock entry for that asset satisfies;
|
|
45
|
+
* - `requires` — a deployed asset's `requires` (or a declared preset's item) that is not
|
|
46
|
+
* deployed (so not locked either);
|
|
47
|
+
* - `unresolved` — a lock-managed deployed asset that no source or library holds any more;
|
|
48
|
+
* - `library` — a locked library asset whose library is not registered (renamed or
|
|
49
|
+
* removed) or no longer holds it, while another library holds it now;
|
|
50
|
+
* - `incomplete` — a deployed library asset that lacks files of its library entry;
|
|
51
|
+
* - `content` — a locked library asset whose files in the library changed since the lock
|
|
52
|
+
* (or whose lock hash predates the one shared asset hash); `skaile install` re-locks it;
|
|
53
|
+
* - `agent` — an `agents.<id>.ref` (or `agent.definition`) that binds to no agent.
|
|
54
|
+
*
|
|
55
|
+
* An asset appears once for what the lock says about it (`unresolved`, else `library`,
|
|
56
|
+
* else `drift`). A declared ref no registered library or source holds names
|
|
57
|
+
* `skaile library init` / `skaile remove`, never `skaile install`: `install` has nothing
|
|
58
|
+
* to resolve it from.
|
|
59
|
+
*
|
|
60
|
+
* Project mode only: a global manager (`global: true`) has no gaps. A project without
|
|
61
|
+
* `skaile.yaml` has no declared set, so only the lock and deployed-asset gaps can appear.
|
|
62
|
+
*
|
|
63
|
+
* @returns The {@link ProjectState}; `gaps` is empty when the project is as declared and locked.
|
|
64
|
+
*/
|
|
65
|
+
projectState(): Promise<ProjectState>;
|
|
66
|
+
/**
|
|
67
|
+
* The first `../` compose folder of the locked library agent `kind:name` whose library copy
|
|
68
|
+
* changed since the lock, or `undefined` (project scope only). `install --locked` cannot
|
|
69
|
+
* restore such an agent; `update` moves the lock to the library's copy.
|
|
70
|
+
*/
|
|
71
|
+
protected lockedComposeDrift(lock: LockFile, kind: string, name: string): Promise<string | undefined>;
|
|
72
|
+
/**
|
|
73
|
+
* The `check`, `doctor` and `add` lines for an agent instance whose agent names an `extends`
|
|
74
|
+
* parent that its folder does not hold: the instance is rendered without the parent's
|
|
75
|
+
* settings. Not a gap (nothing fails, the publisher has to ship the parent), so a `!` line.
|
|
76
|
+
* Read from the project's cached agent source on every call, so nothing records that it was
|
|
77
|
+
* said: the line is a fact of the project and goes once the parent is there. Empty in global
|
|
78
|
+
* mode.
|
|
79
|
+
*
|
|
80
|
+
* @param onlyAgent - Only the instances that bind this agent (`add` names the one it added).
|
|
81
|
+
*/
|
|
82
|
+
missingParentNotices(onlyAgent?: string): string[];
|
|
83
|
+
/**
|
|
84
|
+
* The agent instances whose `ref` binds to no agent and that the install about to run does not
|
|
85
|
+
* deploy (`entries`), worded as `renderAgentInstances` words them (`errors`, and the resolver's
|
|
86
|
+
* own text in `details` for `--verbose`). The install cannot fix them, and its instance render
|
|
87
|
+
* after the deploy would end the run `Failed` having rewritten files. A ref the `entries` hold
|
|
88
|
+
* binds once they are deployed, so it is no cause.
|
|
89
|
+
*/
|
|
90
|
+
protected unboundInstanceErrors(entries: readonly CatalogEntry[]): Promise<{
|
|
91
|
+
errors: string[];
|
|
92
|
+
details: string[];
|
|
93
|
+
}>;
|
|
94
|
+
/**
|
|
95
|
+
* Why the `agent:` ref of agent instance `id` binds to nothing, as the phrase that follows
|
|
96
|
+
* the ref in a {@link LockGap}; see {@link AssetManager.unboundAgentAdvice}.
|
|
97
|
+
*/
|
|
98
|
+
protected unboundAgentReason(id: string, ref: string): Promise<string>;
|
|
99
|
+
/**
|
|
100
|
+
* What is wrong with an `agent:` ref bound by an agent instance and what to do (`lead`, then
|
|
101
|
+
* `advice`). `skaile add` is named only when a registered library or source holds the agent
|
|
102
|
+
* and `add` takes the ref (it needs a publisher); otherwise the user registers the library
|
|
103
|
+
* that holds it, writes the publisher, or drops the binding.
|
|
104
|
+
*/
|
|
105
|
+
protected unboundAgentAdvice(ref: string): Promise<{
|
|
106
|
+
lead: string;
|
|
107
|
+
advice: string;
|
|
108
|
+
}>;
|
|
109
|
+
/**
|
|
110
|
+
* Whether the library a locked agent names is here and holds the agent, or the agent comes
|
|
111
|
+
* from a source or store: `install --locked` restores it, so its missing cache is no fault of
|
|
112
|
+
* the library.
|
|
113
|
+
*/
|
|
114
|
+
protected lockedAgentLibraryHolds(lockKey: string): Promise<boolean>;
|
|
115
|
+
}
|
|
116
|
+
//# sourceMappingURL=doctor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../../../../asset-manager/src/read/doctor.ts"],"names":[],"mappings":"AAEA,OAAO,EAcL,KAAK,YAAY,EACjB,KAAK,QAAQ,EAEd,MAAM,yBAAyB,CAAC;AAiBjC,OAAO,KAAK,EAAE,QAAQ,EAAwB,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAClF,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAYvC;;;;;GAKG;AACH,MAAM,WAAW,YAAY;IAC3B,iGAAiG;IACjG,IAAI,EAAE,OAAO,EAAE,CAAC;IAChB,yIAAyI;IACzI,YAAY,EAAE,QAAQ,EAAE,CAAC;CAC1B;AAED,4GAA4G;AAC5G,8BAAsB,YAAa,SAAQ,UAAU;IAGnD;;;;;;;;;;;;;;OAcG;IACG,MAAM,IAAI,OAAO,CAAC,QAAQ,EAAE,CAAC;IAyHnC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OA8BG;IACG,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC;IA8R3C;;;;OAIG;cACa,kBAAkB,CAChC,IAAI,EAAE,QAAQ,EACd,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,MAAM,GACX,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IAa9B;;;;;;;;;OASG;IACH,oBAAoB,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE;IASlD;;;;;;OAMG;cACa,qBAAqB,CACnC,OAAO,EAAE,SAAS,YAAY,EAAE,GAC/B,OAAO,CAAC;QAAE,MAAM,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,EAAE,CAAA;KAAE,CAAC;IAwBnD;;;OAGG;cACa,kBAAkB,CAAC,EAAE,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAK5E;;;;;OAKG;cACa,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC;IA6F1F;;;;OAIG;cACa,uBAAuB,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAe3E"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import { buildProvenanceIndex, type AssetRef, type LockFile, type StoreEntry } from "@skaile/workspaces/core";
|
|
2
|
+
import type { DepIssue, LockGap } from "../shared/types.js";
|
|
3
|
+
import { AmReadDiff } from "./diff.js";
|
|
4
|
+
/** Lock gaps and declared gaps. One layer of the `AssetManager` class chain (see `asset-manager/CLAUDE.md`). */
|
|
5
|
+
export declare abstract class AmReadGaps extends AmReadDiff {
|
|
6
|
+
/** @deprecated Use `(await projectState()).gaps`; removed in the next major. */
|
|
7
|
+
lockGaps(): Promise<LockGap[]>;
|
|
8
|
+
/**
|
|
9
|
+
* The {@link ProjectState} gaps that name `ref`: as the gap's own ref, or as the asset
|
|
10
|
+
* whose requirement is unmet. A ref without a publisher matches any publisher.
|
|
11
|
+
*
|
|
12
|
+
* @param ref - Asset ref in `kind:name` or `kind:@publisher/name` form.
|
|
13
|
+
*/
|
|
14
|
+
gapsOf(ref: string): Promise<LockGap[]>;
|
|
15
|
+
/**
|
|
16
|
+
* The {@link ProjectState} gaps of everything `ref` requires, transitively: what `check`
|
|
17
|
+
* says about the requirements of `ref`, so a command that answers for one asset (`diff`)
|
|
18
|
+
* does not call it fine while a requirement of it is broken. The requirements are read from
|
|
19
|
+
* the deployed copies (the lock records no edges), the way `remove` and `install` read them
|
|
20
|
+
* when no library holds the asset any more. The gaps of `ref` itself are not included
|
|
21
|
+
* ({@link gapsOf}).
|
|
22
|
+
*
|
|
23
|
+
* @param ref - Asset ref in `kind:name` or `kind:@publisher/name` form.
|
|
24
|
+
*/
|
|
25
|
+
requirementGapsOf(ref: string): Promise<LockGap[]>;
|
|
26
|
+
/**
|
|
27
|
+
* Locked library assets whose library cannot supply them: the library is not registered
|
|
28
|
+
* (renamed or removed) or no longer holds the asset. Another library holding it makes the
|
|
29
|
+
* gap fixable by `skaile install` (it re-locks); otherwise the user registers the library
|
|
30
|
+
* again or drops the dependency.
|
|
31
|
+
*
|
|
32
|
+
* @param named - `kind:name` identities already reported; they are skipped.
|
|
33
|
+
*/
|
|
34
|
+
protected libraryOriginGaps(named: ReadonlySet<string>): Promise<LockGap[]>;
|
|
35
|
+
/**
|
|
36
|
+
* The locked source assets whose source is no longer in `skaile.yaml` `sources:` (`source
|
|
37
|
+
* remove`, a hand edit), keyed by lock key. ONE sentence for it: `check`, `doctor`, `outdated`,
|
|
38
|
+
* `install`, `install --locked` and `update` all say it (p1062), and none re-clones the source.
|
|
39
|
+
* A GitHub lock entry that no source declares counts as store-supplied only when a store
|
|
40
|
+
* lists the ref (OQ3): a configured store alone proves nothing, as it may never have held
|
|
41
|
+
* the asset. `check`, `doctor` and `outdated` read the store's cached catalog and never touch
|
|
42
|
+
* the network; `install` and `update` (`online`) ask the store itself.
|
|
43
|
+
*
|
|
44
|
+
* @param inScope - Only these lock keys count (`install` prunes an undeclared entry as usual).
|
|
45
|
+
* @param online - Ask the stores when the cached catalog does not list the ref.
|
|
46
|
+
*/
|
|
47
|
+
protected orphanedSourceGaps(inScope?: ReadonlySet<string>, online?: boolean): Promise<Map<string, LockGap>>;
|
|
48
|
+
/**
|
|
49
|
+
* `true` when one of `stores` lists `ref` (a canonical lock key): its cached catalog holds it
|
|
50
|
+
* or, with `online`, the store answers for it. An injected store fetcher is the store client
|
|
51
|
+
* itself, so it is asked either way. A store an online install cannot ask (unreachable,
|
|
52
|
+
* air-gapped, `--no-catalog`) may hold the ref; `check` never asks, so a store lists only what
|
|
53
|
+
* its cached catalog holds.
|
|
54
|
+
*/
|
|
55
|
+
protected storeListsRef(stores: readonly StoreEntry[], ref: string, online: boolean, lockedRef?: string): Promise<boolean>;
|
|
56
|
+
/**
|
|
57
|
+
* Locked source assets whose source cannot supply them any more: the source is no longer in
|
|
58
|
+
* `skaile.yaml` `sources:` (`source remove`, a hand edit), or it is there but now publishes
|
|
59
|
+
* the asset under another publisher (`source add <url> --publisher`). `skaile install` has
|
|
60
|
+
* nothing to restore them from, so the fix is manual. A source of a store-resolved lock entry
|
|
61
|
+
* is not told apart from one, so no source is called missing while a `stores:` entry exists.
|
|
62
|
+
*
|
|
63
|
+
* @param named - `kind:name` identities already reported; they are skipped.
|
|
64
|
+
* @param index - What the registered sources publish today.
|
|
65
|
+
*/
|
|
66
|
+
protected sourceOriginGaps(named: ReadonlySet<string>, index: Awaited<ReturnType<typeof buildProvenanceIndex>>): Promise<LockGap[]>;
|
|
67
|
+
/**
|
|
68
|
+
* The locked assets that come from the source `url` (a `sources:` entry): canonical refs,
|
|
69
|
+
* `kind:@publisher/name`. `skaile source remove` refuses while this list is not empty.
|
|
70
|
+
*/
|
|
71
|
+
lockedFromSource(url: string): string[];
|
|
72
|
+
/**
|
|
73
|
+
* The `skaile.yaml` side of {@link AssetManager.projectState}: declared refs that do not
|
|
74
|
+
* parse, never resolved into the lock, are not materialized, or contradict a `#pin`.
|
|
75
|
+
* A project with no (or an unreadable) `skaile.yaml` has no declared set to reconcile.
|
|
76
|
+
*
|
|
77
|
+
* @param requirements - What {@link AssetManager.doctor} found; a declared preset whose
|
|
78
|
+
* items it already named needs no second line.
|
|
79
|
+
* @param named - `kind:name` identities already reported; a declared asset among them
|
|
80
|
+
* needs no `drift` line.
|
|
81
|
+
*/
|
|
82
|
+
protected declaredGaps(requirements: readonly DepIssue[], named: ReadonlySet<string>): Promise<LockGap[]>;
|
|
83
|
+
/** Whether the lock's `presets` slice records `want` (kind, name and, when both carry one, publisher). */
|
|
84
|
+
protected presetRecorded(want: AssetRef): boolean;
|
|
85
|
+
/**
|
|
86
|
+
* The first requirement, direct or transitive, of the declared `ref` that no local source or
|
|
87
|
+
* library holds and that nothing in the project already provides — the case `install` ends
|
|
88
|
+
* with `Missing: … nothing was installed`. `undefined` when every requirement is held, when a
|
|
89
|
+
* store is declared (it may hold the requirement and a check never goes to the network), or
|
|
90
|
+
* when `ref` itself resolves to nothing.
|
|
91
|
+
*/
|
|
92
|
+
protected unmetRequirementOf(ref: string): Promise<string | undefined>;
|
|
93
|
+
/**
|
|
94
|
+
* Whether `skaile install` can resolve a declared ref: a source or library holds it, or the
|
|
95
|
+
* project declares a store that may. The global catalog is not asked: a check never goes
|
|
96
|
+
* to the network.
|
|
97
|
+
*/
|
|
98
|
+
protected declaredRefResolvable(ref: string): Promise<boolean>;
|
|
99
|
+
/**
|
|
100
|
+
* Items of each declared `preset:` dependency that the lock does not cover.
|
|
101
|
+
*
|
|
102
|
+
* A preset is never locked itself; the lock lists only its expanded items, so an
|
|
103
|
+
* item missing from the lock never resolved (or was declared after the last
|
|
104
|
+
* install). Presets are read from the local sources and libraries (nested presets
|
|
105
|
+
* followed); one only a store holds cannot be read without the network and
|
|
106
|
+
* reports no gaps. Without a lock nothing is reported: `list` and `check` already
|
|
107
|
+
* show a never-installed declaration as `declared`.
|
|
108
|
+
*
|
|
109
|
+
* @param declared - The `dependencies:` refs as written in `skaile.yaml`.
|
|
110
|
+
* @param lock - The current lock, or `null` when none exists.
|
|
111
|
+
* @returns Declared preset ref → its uncovered items; `resolvable` is `true` when a
|
|
112
|
+
* local source or library offers the item (so `skaile install` can fix it).
|
|
113
|
+
* Presets without gaps are absent.
|
|
114
|
+
*/
|
|
115
|
+
protected declaredPresetGaps(declared: readonly string[], lock: LockFile | null): Promise<Map<string, Array<{
|
|
116
|
+
ref: string;
|
|
117
|
+
resolvable: boolean;
|
|
118
|
+
}>>>;
|
|
119
|
+
}
|
|
120
|
+
//# sourceMappingURL=gaps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"gaps.d.ts","sourceRoot":"","sources":["../../../../asset-manager/src/read/gaps.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,oBAAoB,EAQpB,KAAK,QAAQ,EAGb,KAAK,QAAQ,EAGb,KAAK,UAAU,EAChB,MAAM,yBAAyB,CAAC;AAoBjC,OAAO,KAAK,EAAiB,QAAQ,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAC;AAC3E,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAmBvC,gHAAgH;AAChH,8BAAsB,UAAW,SAAQ,UAAU;IACjD,gFAAgF;IAC1E,QAAQ,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAIpC;;;;;OAKG;IACG,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAiB7C;;;;;;;;;OASG;IACG,iBAAiB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IA+CxD;;;;;;;OAOG;cACa,iBAAiB,CAAC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAqFjF;;;;;;;;;;;OAWG;cACa,kBAAkB,CAChC,OAAO,CAAC,EAAE,WAAW,CAAC,MAAM,CAAC,EAC7B,MAAM,UAAQ,GACb,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAqDhC;;;;;;OAMG;cACa,aAAa,CAC3B,MAAM,EAAE,SAAS,UAAU,EAAE,EAC7B,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,OAAO,EACf,SAAS,CAAC,EAAE,MAAM,GACjB,OAAO,CAAC,OAAO,CAAC;IA8BnB;;;;;;;;;OASG;cACa,gBAAgB,CAC9B,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,EAC1B,KAAK,EAAE,OAAO,CAAC,UAAU,CAAC,OAAO,oBAAoB,CAAC,CAAC,GACtD,OAAO,CAAC,OAAO,EAAE,CAAC;IA8BrB;;;OAGG;IACH,gBAAgB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,EAAE;IAWvC;;;;;;;;;OASG;cACa,YAAY,CAC1B,YAAY,EAAE,SAAS,QAAQ,EAAE,EACjC,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,GACzB,OAAO,CAAC,OAAO,EAAE,CAAC;IAgHrB,0GAA0G;IAC1G,SAAS,CAAC,cAAc,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;IAYjD;;;;;;OAMG;cACa,kBAAkB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;IA+B5E;;;;OAIG;cACa,qBAAqB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAKpE;;;;;;;;;;;;;;;OAeG;cACa,kBAAkB,CAChC,QAAQ,EAAE,SAAS,MAAM,EAAE,EAC3B,IAAI,EAAE,QAAQ,GAAG,IAAI,GACpB,OAAO,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,UAAU,EAAE,OAAO,CAAA;KAAE,CAAC,CAAC,CAAC;CAgErE"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
import { type AssetRef, type LockFile } from "@skaile/workspaces/core";
|
|
2
|
+
import { AmInstall } from "../install/install.js";
|
|
3
|
+
/**
|
|
4
|
+
* A node in the resolved dependency tree (returned by `AssetManager.tree()`).
|
|
5
|
+
*
|
|
6
|
+
* @docLink packages/asset-manager/concepts#asset-manager
|
|
7
|
+
*/
|
|
8
|
+
export interface DependencyNode {
|
|
9
|
+
/** Lock key (`kind:@publisher/name#version`), or `"project"` for the root node. */
|
|
10
|
+
ref: string;
|
|
11
|
+
/** Assets this node requires, nested under it. */
|
|
12
|
+
children: DependencyNode[];
|
|
13
|
+
}
|
|
14
|
+
/** Tree and why. One layer of the `AssetManager` class chain (see `asset-manager/CLAUDE.md`). */
|
|
15
|
+
export declare abstract class AmReadGraph extends AmInstall {
|
|
16
|
+
/**
|
|
17
|
+
* Requirement graph of the locked assets, for {@link tree} / {@link why} / removal pruning.
|
|
18
|
+
*
|
|
19
|
+
* The lock records no edges, so they are rebuilt from each locked asset's own
|
|
20
|
+
* declaration (`requires`, manifest `dependencies`, a preset's items) — the same
|
|
21
|
+
* source the install walk reads, via {@link info}. An asset that no source or
|
|
22
|
+
* library can be found for has no known requirements. Nodes are lock keys, plus
|
|
23
|
+
* each declared `preset:` that the lock does not carry (a preset is expanded at
|
|
24
|
+
* install, never locked), keyed by its declared ref.
|
|
25
|
+
*
|
|
26
|
+
* @returns `requires` (node → the lock keys it requires), `roots` (nodes
|
|
27
|
+
* `skaile.yaml` declares) and `findKey` (a ref → its lock key, version-agnostic).
|
|
28
|
+
*/
|
|
29
|
+
protected lockedGraph(lock: LockFile): Promise<{
|
|
30
|
+
requires: Map<string, string[]>;
|
|
31
|
+
roots: string[];
|
|
32
|
+
findKey: (ref: string) => string | undefined;
|
|
33
|
+
}>;
|
|
34
|
+
/**
|
|
35
|
+
* Build the resolved dependency tree from the lock file.
|
|
36
|
+
*
|
|
37
|
+
* Required assets nest under the asset that requires them (see {@link lockedGraph});
|
|
38
|
+
* an asset required by several parents appears under each, and a dependency cycle
|
|
39
|
+
* is cut where it would repeat.
|
|
40
|
+
*
|
|
41
|
+
* @returns Root {@link DependencyNode} with `ref === "project"` whose children
|
|
42
|
+
* are the directly-declared assets, followed by locked assets nothing requires,
|
|
43
|
+
* each with the assets it requires as children.
|
|
44
|
+
* Returns a single node with `ref === "(no lock file)"` when no lock exists.
|
|
45
|
+
*/
|
|
46
|
+
tree(): Promise<DependencyNode>;
|
|
47
|
+
/**
|
|
48
|
+
* Explain why an asset is installed by tracing its dependency chain.
|
|
49
|
+
*
|
|
50
|
+
* The chain is read from the requirement graph ({@link lockedGraph}): the asset,
|
|
51
|
+
* then the asset that requires it, and so on up to a dependency `skaile.yaml`
|
|
52
|
+
* declares (the shortest such path; cycles are not followed twice).
|
|
53
|
+
*
|
|
54
|
+
* @param ref - Asset ref in `kind:name` form.
|
|
55
|
+
* @returns Chain of refs from the asset back to `"direct (skaile.yaml)"`; an asset
|
|
56
|
+
* no declared dependency reaches ends in `"not required by a declared dependency"`
|
|
57
|
+
* instead. `[]` when the asset is not in the lock file.
|
|
58
|
+
*/
|
|
59
|
+
why(ref: string): Promise<string[]>;
|
|
60
|
+
/**
|
|
61
|
+
* The {@link AssetManager.why} chain of a preset. A preset is never a lock asset: its record
|
|
62
|
+
* is the lock's `presets` slice. Declared in `skaile.yaml` it is `direct`; one only a declared
|
|
63
|
+
* preset nests is traced through the presets that list it.
|
|
64
|
+
*
|
|
65
|
+
* @returns `[]` when the lock does not record the preset.
|
|
66
|
+
*/
|
|
67
|
+
protected whyPreset(lock: LockFile, asked: AssetRef): Promise<string[]>;
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=graph.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"graph.d.ts","sourceRoot":"","sources":["../../../../asset-manager/src/read/graph.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiB,KAAK,QAAQ,EAAE,KAAK,QAAQ,EAAE,MAAM,yBAAyB,CAAC;AACtF,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAQlD;;;;GAIG;AACH,MAAM,WAAW,cAAc;IAC7B,mFAAmF;IACnF,GAAG,EAAE,MAAM,CAAC;IACZ,kDAAkD;IAClD,QAAQ,EAAE,cAAc,EAAE,CAAC;CAC5B;AAED,iGAAiG;AACjG,8BAAsB,WAAY,SAAQ,SAAS;IACjD;;;;;;;;;;;;OAYG;cACa,WAAW,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC;QACnD,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,CAAC,CAAC;QAChC,KAAK,EAAE,MAAM,EAAE,CAAC;QAChB,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,SAAS,CAAC;KAC9C,CAAC;IA8DF;;;;;;;;;;;OAWG;IACG,IAAI,IAAI,OAAO,CAAC,cAAc,CAAC;IA+BrC;;;;;;;;;;;OAWG;IACG,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAmDzC;;;;;;OAMG;cACa,SAAS,CAAC,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;CAkD9E"}
|
|
@@ -0,0 +1,152 @@
|
|
|
1
|
+
import { type AssetRef, type LockEntry, type LockFile } from "@skaile/workspaces/core";
|
|
2
|
+
import { type DeployableEntry } from "../installer.js";
|
|
3
|
+
import { AmReadGraph } from "./graph.js";
|
|
4
|
+
/**
|
|
5
|
+
* An installed asset whose source repository is behind the remote.
|
|
6
|
+
*
|
|
7
|
+
* @docLink packages/asset-manager/concepts#asset-manager
|
|
8
|
+
*/
|
|
9
|
+
export interface OutdatedEntry {
|
|
10
|
+
/** Asset kind (`skill`, `agent`, `prompt`, `flow`, `contract`). */
|
|
11
|
+
kind: string;
|
|
12
|
+
/** Asset name as registered in the catalog. */
|
|
13
|
+
name: string;
|
|
14
|
+
/** Repository that provides this asset. */
|
|
15
|
+
publisher: string;
|
|
16
|
+
/** Version string recorded in the lock file at install time. */
|
|
17
|
+
currentVersion: string;
|
|
18
|
+
/** Number of commits the local repository is behind the remote (always 0 for a library asset). */
|
|
19
|
+
behind: number;
|
|
20
|
+
/** Library-origin asset only: the version the library index now offers (newer than `currentVersion`). */
|
|
21
|
+
latestVersion?: string;
|
|
22
|
+
/** Library-origin asset only: name of the library the asset was locked from. */
|
|
23
|
+
library?: string;
|
|
24
|
+
/**
|
|
25
|
+
* Set when the locked asset cannot be checked or is not in place: its library is
|
|
26
|
+
* not registered (renamed or removed), its deployed copy is gone, or the lock does not
|
|
27
|
+
* cover it ({@link AssetManager.projectState}). Such a row has no `latestVersion`.
|
|
28
|
+
*/
|
|
29
|
+
problem?: string;
|
|
30
|
+
/**
|
|
31
|
+
* Library-origin asset only: the library's files on disk differ from the content
|
|
32
|
+
* hash recorded in the lock at the same version (edited in place, no version bump).
|
|
33
|
+
* `skaile update` re-locks and re-deploys them; `install` keeps the lock (OQ13).
|
|
34
|
+
*/
|
|
35
|
+
contentChanged?: boolean;
|
|
36
|
+
/**
|
|
37
|
+
* Library-origin asset only: the library now holds this OLDER version than the lock. `install`
|
|
38
|
+
* keeps the lock and the deployed copy; only `update` moves it back (`replaced X → Y`).
|
|
39
|
+
*/
|
|
40
|
+
libraryOlder?: string;
|
|
41
|
+
/**
|
|
42
|
+
* Library-origin asset only: the library `update` would re-lock the asset from, when it is
|
|
43
|
+
* not the one the lock names (`library`), e.g. after `skaile library default <other>`.
|
|
44
|
+
*/
|
|
45
|
+
movesTo?: string;
|
|
46
|
+
/**
|
|
47
|
+
* Source asset only: the version the next `install` or `update` locks it under, when that
|
|
48
|
+
* is not the locked key. A `0.0.0-sha.<commit>` key whose file now declares a version is
|
|
49
|
+
* re-keyed (`0.0.0-sha.7de3555 → 0.2.0`, p914).
|
|
50
|
+
*/
|
|
51
|
+
rekeyTo?: string;
|
|
52
|
+
/**
|
|
53
|
+
* Set when the row only reports a newer version than the `#version` pin of the asset's ref
|
|
54
|
+
* in `skaile.yaml` (`latestVersion`). The pin is deliberate: `update` leaves it and `outdated`
|
|
55
|
+
* does not fail on it.
|
|
56
|
+
*/
|
|
57
|
+
pinned?: boolean;
|
|
58
|
+
/**
|
|
59
|
+
* Set on a `problem` row whose cause `skaile install` cannot fix: the asset's library is
|
|
60
|
+
* gone or its publisher changed, so the ref resolves nowhere. `problem` names what to
|
|
61
|
+
* change instead (`skaile library init …`, the ref under its new publisher).
|
|
62
|
+
*/
|
|
63
|
+
manualFix?: true;
|
|
64
|
+
}
|
|
65
|
+
/** Outdated. One layer of the `AssetManager` class chain (see `asset-manager/CLAUDE.md`). */
|
|
66
|
+
export declare abstract class AmReadOutdated extends AmReadGraph {
|
|
67
|
+
/**
|
|
68
|
+
* List installed assets that have a newer upstream available.
|
|
69
|
+
*
|
|
70
|
+
* Two kinds of staleness are reported:
|
|
71
|
+
* - **Source assets** — only remote repositories (not local paths) are checked;
|
|
72
|
+
* `behind` counts the commits the clone is missing from the remote plus the
|
|
73
|
+
* commits the clone moved past the locked commit (`source sync` after `add`).
|
|
74
|
+
* - **Library assets** — a library-origin lock entry whose library files on disk
|
|
75
|
+
* (not the index, which lags until `skaile library index`) hold a newer version
|
|
76
|
+
* than the locked one (`latestVersion`, `library` set), or the same version with
|
|
77
|
+
* different bytes (`contentChanged`). `behind` is 0.
|
|
78
|
+
* - **Project state** — every {@link AssetManager.projectState} gap (an unregistered or
|
|
79
|
+
* renamed library, a missing deployed copy, a declared dependency or a deployed asset's
|
|
80
|
+
* `requires` with no lock entry, a lock that contradicts a `skaile.yaml` pin) as a
|
|
81
|
+
* `problem` row, so `outdated` lists what `check`, `doctor` and `install --locked` fail
|
|
82
|
+
* on. An asset that also has a version row is listed once, with that row.
|
|
83
|
+
*
|
|
84
|
+
* @returns Array of {@link OutdatedEntry} objects.
|
|
85
|
+
*/
|
|
86
|
+
outdated(): Promise<OutdatedEntry[]>;
|
|
87
|
+
/**
|
|
88
|
+
* The `#pin` of every publisher-qualified `skaile.yaml` dependency, keyed `kind:publisher/name`
|
|
89
|
+
* (no scope sigil). `update` honours it, so `outdated` must not list a move it keeps.
|
|
90
|
+
*/
|
|
91
|
+
protected declaredPinsByIdentity(): Map<string, string>;
|
|
92
|
+
/**
|
|
93
|
+
* List a locked asset whose `skaile.yaml` ref carries a `#version` pin while a source, a
|
|
94
|
+
* library or a store holds a newer one: `locked 0.7.0 -> 0.9.0 (pinned)`. The pin is the
|
|
95
|
+
* user's choice, so the row only informs (`pinned`): `update` leaves it, `outdated` does not
|
|
96
|
+
* fail on it (OQ13, p1291). An asset already listed keeps its own row.
|
|
97
|
+
*/
|
|
98
|
+
protected addPinnedRows(lock: LockFile, rows: OutdatedEntry[]): Promise<void>;
|
|
99
|
+
/**
|
|
100
|
+
* Ask the stores about every locked asset whose lock entry says `origin: store`, and record
|
|
101
|
+
* those no store could be asked about (the URL did not answer, or the client is air-gapped)
|
|
102
|
+
* for {@link takeStoreNotChecked}. `outdated` runs it, and so do `check` and `doctor`, which
|
|
103
|
+
* otherwise never ask a store: without it a dead store reads as "everything is fine".
|
|
104
|
+
* A store that answers, and a client that skips the store on purpose
|
|
105
|
+
* (`catalogUrl: ''`, `--no-catalog`), record nothing. A ref already recorded is not asked again.
|
|
106
|
+
*/
|
|
107
|
+
probeStoreOrigins(): Promise<void>;
|
|
108
|
+
/**
|
|
109
|
+
* List a source asset locked under a `0.0.0-sha.<commit>` key whose file now declares a
|
|
110
|
+
* version: the next `install` or `update` re-keys it (`replaced 0.0.0-sha.7de3555 → 0.2.0`),
|
|
111
|
+
* so `outdated` lists it as `re-key (…)` instead of saying everything is up to date (p914).
|
|
112
|
+
* An asset already listed (behind its remote) gets the target on that row.
|
|
113
|
+
*/
|
|
114
|
+
protected addRekeyRows(lock: LockFile, rows: OutdatedEntry[]): Promise<void>;
|
|
115
|
+
/**
|
|
116
|
+
* List a locked library asset that `update` would move to another library (a default-library
|
|
117
|
+
* switch, a library that now holds a newer version) as `library → movesTo`, so `outdated`
|
|
118
|
+
* does not say "up to date" and `update` then re-locks it announced only after the fact.
|
|
119
|
+
* The resolution is the one `update` runs ({@link lockedPreference}); an asset already listed
|
|
120
|
+
* with a version row gets the target library on that row.
|
|
121
|
+
*/
|
|
122
|
+
protected addLibraryMoves(libraryAssets: Array<[string, LockEntry]>, rows: OutdatedEntry[]): Promise<void>;
|
|
123
|
+
/**
|
|
124
|
+
* Add one `problem` row per {@link AssetManager.projectState} gap whose asset is not
|
|
125
|
+
* listed yet, so `outdated` lists the same assets `check`, `doctor` and `install --locked`
|
|
126
|
+
* fail on. An asset that is behind its source and also broken is listed once, with its
|
|
127
|
+
* version row.
|
|
128
|
+
*/
|
|
129
|
+
protected addLockGapRows(rows: OutdatedEntry[]): Promise<OutdatedEntry[]>;
|
|
130
|
+
/**
|
|
131
|
+
* The deploy entry of a library-origin asset from the library its lock entry records,
|
|
132
|
+
* at the locked version when that library still holds it (else its newest). Other
|
|
133
|
+
* libraries holding the same ref are not consulted: the lock already chose.
|
|
134
|
+
*
|
|
135
|
+
* @param want - Kind, name and optional publisher of the asset.
|
|
136
|
+
* @returns `null` when the lock has no library-origin entry for it, or the recorded
|
|
137
|
+
* library is gone or no longer holds it (callers fall back to a general lookup).
|
|
138
|
+
*/
|
|
139
|
+
protected lockedLibraryEntry(want: AssetRef): Promise<DeployableEntry | null>;
|
|
140
|
+
/**
|
|
141
|
+
* The deploy entry of a source- or store-origin asset, carrying the file set its lock entry
|
|
142
|
+
* lists (so a missing or edited helper shows in `diff`, not only the manifest). A source asset
|
|
143
|
+
* reads from its clone; a store asset from the bytes `add`/`install` staged in the project
|
|
144
|
+
* store cache. `null` when the lock has no such entry or its bytes are not on disk.
|
|
145
|
+
*
|
|
146
|
+
* @param want - Kind, name and optional publisher of the asset.
|
|
147
|
+
*/
|
|
148
|
+
protected lockedSourceEntry(want: AssetRef): DeployableEntry | null;
|
|
149
|
+
/** Whether the lock holds `want` as a store asset (`origin: store`, no library). */
|
|
150
|
+
protected isStorePinnedRef(want: AssetRef): boolean;
|
|
151
|
+
}
|
|
152
|
+
//# sourceMappingURL=outdated.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"outdated.d.ts","sourceRoot":"","sources":["../../../../asset-manager/src/read/outdated.ts"],"names":[],"mappings":"AAGA,OAAO,EAWL,KAAK,QAAQ,EAEb,KAAK,SAAS,EACd,KAAK,QAAQ,EACd,MAAM,yBAAyB,CAAC;AAEjC,OAAO,EAAuB,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAK5E,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAyEzC;;;;GAIG;AACH,MAAM,WAAW,aAAa;IAC5B,mEAAmE;IACnE,IAAI,EAAE,MAAM,CAAC;IACb,+CAA+C;IAC/C,IAAI,EAAE,MAAM,CAAC;IACb,2CAA2C;IAC3C,SAAS,EAAE,MAAM,CAAC;IAClB,gEAAgE;IAChE,cAAc,EAAE,MAAM,CAAC;IACvB,kGAAkG;IAClG,MAAM,EAAE,MAAM,CAAC;IACf,yGAAyG;IACzG,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,gFAAgF;IAChF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB;;;OAGG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;;OAIG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB;;;;OAIG;IACH,SAAS,CAAC,EAAE,IAAI,CAAC;CAClB;AAED,6FAA6F;AAC7F,8BAAsB,cAAe,SAAQ,WAAW;IACtD;;;;;;;;;;;;;;;;;;OAkBG;IACG,QAAQ,IAAI,OAAO,CAAC,aAAa,EAAE,CAAC;IAgP1C;;;OAGG;IACH,SAAS,CAAC,sBAAsB,IAAI,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC;IAevD;;;;;OAKG;cACa,aAAa,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAiEnF;;;;;;;OAOG;IACG,iBAAiB,IAAI,OAAO,CAAC,IAAI,CAAC;IAsCxC;;;;;OAKG;cACa,YAAY,CAAC,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IA0ClF;;;;;;OAMG;cACa,eAAe,CAC7B,aAAa,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC,EACzC,IAAI,EAAE,aAAa,EAAE,GACpB,OAAO,CAAC,IAAI,CAAC;IAwDhB;;;;;OAKG;cACa,cAAc,CAAC,IAAI,EAAE,aAAa,EAAE,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAoB/E;;;;;;;;OAQG;cACa,kBAAkB,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC;IA0BnF;;;;;;;OAOG;IACH,SAAS,CAAC,iBAAiB,CAAC,IAAI,EAAE,QAAQ,GAAG,eAAe,GAAG,IAAI;IAwBnE,oFAAoF;IACpF,SAAS,CAAC,gBAAgB,CAAC,IAAI,EAAE,QAAQ,GAAG,OAAO;CAYpD"}
|