@makaio/framework 1.0.0-dev-1779046984397
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/LICENSE +21 -0
- package/README.md +363 -0
- package/dist/account-identity-Ce1Bwrqi.mjs +1 -0
- package/dist/adapter-CbyjCE2d.mjs +1 -0
- package/dist/adapters/acp-client/index.d.mts +209 -0
- package/dist/adapters/acp-client/index.mjs +1 -0
- package/dist/adapters/config/index.d.mts +429 -0
- package/dist/adapters/config/index.mjs +1 -0
- package/dist/adapters/index.d.mts +4175 -0
- package/dist/adapters/index.mjs +11 -0
- package/dist/adapters/node.d.mts +263 -0
- package/dist/adapters/node.mjs +4 -0
- package/dist/adapters/stream-session/index.d.mts +1384 -0
- package/dist/adapters/stream-session/index.mjs +1 -0
- package/dist/adapters/stream-session/testing/index.d.mts +29 -0
- package/dist/adapters/stream-session/testing/index.mjs +1 -0
- package/dist/base-orchestrator-9z8TuA5a.d.mts +772 -0
- package/dist/bus/index.d.mts +3331 -0
- package/dist/bus/index.mjs +1 -0
- package/dist/bus-B1seC4M_.mjs +2 -0
- package/dist/capability-service-tnpR_TaB.mjs +1 -0
- package/dist/chunk-Dc06z0qk.mjs +1 -0
- package/dist/chunk-cpUYaJdV.mjs +1 -0
- package/dist/cleanEnvForAdapter-DvcIGXTG.mjs +1 -0
- package/dist/client-Dh4x4GQN.mjs +1 -0
- package/dist/clients/index.d.mts +2786 -0
- package/dist/clients/index.mjs +1 -0
- package/dist/clients-namespace-B0xAPZ6J.d.mts +332 -0
- package/dist/config-namespace-DLSs83zr.d.mts +638 -0
- package/dist/config-namespace-MJT8P0Ud.mjs +1 -0
- package/dist/contracts/adapter/index.d.mts +3 -0
- package/dist/contracts/adapter/index.mjs +1 -0
- package/dist/contracts/adapter/schemas/session-lineage.d.mts +2 -0
- package/dist/contracts/adapter/schemas/session-lineage.mjs +1 -0
- package/dist/contracts/client/index.d.mts +3 -0
- package/dist/contracts/client/index.mjs +1 -0
- package/dist/contracts/common/index.d.mts +2 -0
- package/dist/contracts/common/index.mjs +1 -0
- package/dist/contracts/config/index.d.mts +455 -0
- package/dist/contracts/config/index.mjs +1 -0
- package/dist/contracts/extension/index.d.mts +3 -0
- package/dist/contracts/extension/index.mjs +1 -0
- package/dist/contracts/harness/index.d.mts +2 -0
- package/dist/contracts/harness/index.mjs +1 -0
- package/dist/contracts/host/index.d.mts +2 -0
- package/dist/contracts/host/index.mjs +1 -0
- package/dist/contracts/index.d.mts +12665 -0
- package/dist/contracts/index.mjs +1 -0
- package/dist/contracts/model-registry/index.d.mts +2 -0
- package/dist/contracts/model-registry/index.mjs +1 -0
- package/dist/contracts/native-session-supervisor/index.d.mts +2 -0
- package/dist/contracts/native-session-supervisor/index.mjs +1 -0
- package/dist/contracts/platform/index.d.mts +2 -0
- package/dist/contracts/platform/index.mjs +1 -0
- package/dist/contracts/provider/index.d.mts +3 -0
- package/dist/contracts/provider/index.mjs +1 -0
- package/dist/contracts/session/index.d.mts +3 -0
- package/dist/contracts/session/index.mjs +1 -0
- package/dist/contracts/shared/index.d.mts +2 -0
- package/dist/contracts/shared/index.mjs +1 -0
- package/dist/contracts/skill/index.d.mts +2 -0
- package/dist/contracts/skill/index.mjs +1 -0
- package/dist/contracts/toast/index.d.mts +198 -0
- package/dist/contracts/toast/index.mjs +1 -0
- package/dist/contracts/variant/index.d.mts +2 -0
- package/dist/contracts/variant/index.mjs +1 -0
- package/dist/core/index.d.mts +1001 -0
- package/dist/core/index.mjs +1 -0
- package/dist/credential-ref-DLCsoKVZ.mjs +1 -0
- package/dist/cursor-storage-DOQdvo9j.mjs +1 -0
- package/dist/definition-DkYy1PZz.mjs +1 -0
- package/dist/definition-DtUNiGom.d.mts +158 -0
- package/dist/definition-DxvZ9e22.d.mts +376 -0
- package/dist/drizzle-CWVVw7Er.mjs +1 -0
- package/dist/execution-target-BW_uiBVe.mjs +1 -0
- package/dist/extension-COqwS-2Q.mjs +1 -0
- package/dist/extension-Cbrl4YGX.mjs +1 -0
- package/dist/extension-namespace-zaGKi6Qj.mjs +1 -0
- package/dist/handlers-iGKUJ380.mjs +41 -0
- package/dist/harness-CEq1Zkf9.mjs +1 -0
- package/dist/hooks/index.d.mts +423 -0
- package/dist/hooks/index.mjs +1 -0
- package/dist/host-CXAUGGN0.mjs +1 -0
- package/dist/identity-B_A0mE63.mjs +1 -0
- package/dist/index-6lyShOoU.d.mts +225 -0
- package/dist/index-7sXlairn2.d.mts +43 -0
- package/dist/index-BAKM2GMH2.d.mts +535 -0
- package/dist/index-BB419vv-.d.mts +3897 -0
- package/dist/index-BJOfdtbw.d.mts +729 -0
- package/dist/index-BXP9GK5q.d.mts +1075 -0
- package/dist/index-BdPwu6c0.d.mts +1730 -0
- package/dist/index-BePI0ckL.d.mts +40 -0
- package/dist/index-Bigx81Kr.d.mts +37 -0
- package/dist/index-BnNqbx2I.d.mts +134 -0
- package/dist/index-Bv15sNLn.d.mts +389 -0
- package/dist/index-C-myW_aK.d.mts +412 -0
- package/dist/index-C9F3Fc1A.d.mts +2938 -0
- package/dist/index-CNxS4Tlu.d.mts +1 -0
- package/dist/index-CVA0m1g9.d.mts +995 -0
- package/dist/index-C_kS2aqV2.d.mts +438 -0
- package/dist/index-Ch3ph52M2.d.mts +40 -0
- package/dist/index-CnZOKNjU.d.mts +89 -0
- package/dist/index-D1T-PPqF.d.mts +67 -0
- package/dist/index-D7T8XCku.d.mts +341 -0
- package/dist/index-DBQtpFLE.d.mts +4843 -0
- package/dist/index-DEw90pa2.d.mts +183 -0
- package/dist/index-DQRsGXb5.d.mts +109 -0
- package/dist/index-Dd5s4MSm.d.mts +72 -0
- package/dist/index-DubqLGH8.d.mts +1002 -0
- package/dist/index-ESSDWIB7.d.mts +11 -0
- package/dist/index-N5K1NOYs.d.mts +184 -0
- package/dist/index-PdUSmPT2.d.mts +180 -0
- package/dist/index-SzSiyG61.d.mts +117 -0
- package/dist/index-T0471kWA.d.mts +6760 -0
- package/dist/index-WKjrpcA_.d.mts +218 -0
- package/dist/index-hapw9_En.d.mts +13592 -0
- package/dist/index-iID2R9G1.d.mts +1490 -0
- package/dist/kernel/cli/index.d.mts +141 -0
- package/dist/kernel/cli/index.mjs +1 -0
- package/dist/kernel/cli/schemas.d.mts +63 -0
- package/dist/kernel/cli/schemas.mjs +1 -0
- package/dist/kernel/extension/index.d.mts +2 -0
- package/dist/kernel/extension/index.mjs +1 -0
- package/dist/kernel/index.d.mts +296 -0
- package/dist/kernel/index.mjs +1 -0
- package/dist/kernel/namespace/index.d.mts +2 -0
- package/dist/kernel/namespace/index.mjs +1 -0
- package/dist/kernel/observability/index.d.mts +2 -0
- package/dist/kernel/observability/index.mjs +1 -0
- package/dist/kernel/providers/index.d.mts +2 -0
- package/dist/kernel/providers/index.mjs +1 -0
- package/dist/kernel/window/index.d.mts +2 -0
- package/dist/kernel/window/index.mjs +1 -0
- package/dist/model-registry-BNzpR6TU.mjs +1 -0
- package/dist/model-registry-CIscwC52.mjs +1 -0
- package/dist/namespace-0yuzAKlr.mjs +1 -0
- package/dist/namespace-8cNguvIp.mjs +1 -0
- package/dist/namespace-BK2erxpV.d.mts +921 -0
- package/dist/namespace-Bmc7AW4J2.mjs +1 -0
- package/dist/namespace-C2ufjgaQ.d.mts +767 -0
- package/dist/namespace-C54Oj025.d.mts +159 -0
- package/dist/namespace-CCDEOwmW.d.mts +1313 -0
- package/dist/namespace-CfEWMXBx.mjs +1 -0
- package/dist/namespace-CkLUtc0g.d.mts +580 -0
- package/dist/namespace-D5Wrt7YU.mjs +1 -0
- package/dist/namespace-DZcuLwEA.d.mts +51 -0
- package/dist/namespace-Db-p67Rg.mjs +1 -0
- package/dist/namespace-FWx6HxaW.d.mts +611 -0
- package/dist/namespace-GLGGcWPH.d.mts +43 -0
- package/dist/namespace-N0dfwSg6.mjs +1 -0
- package/dist/namespace-O5SNY-LV.d.mts +2226 -0
- package/dist/namespace-ZbthBQVt.d.mts +142 -0
- package/dist/namespace-bq4Prtzn.d.mts +2046 -0
- package/dist/namespace-pNcSglBS.mjs +1 -0
- package/dist/namespace-ptv-pw_g.d.mts +3019 -0
- package/dist/namespace-xkvVw3hf2.d.mts +189 -0
- package/dist/native-session-supervisor-L-UIaEfd.mjs +1 -0
- package/dist/node/bus-server/index.d.mts +178 -0
- package/dist/node/bus-server/index.mjs +1 -0
- package/dist/node/bus-server/server-lifecycle.d.mts +2 -0
- package/dist/node/bus-server/server-lifecycle.mjs +1 -0
- package/dist/node/machine-identity/index.d.mts +85 -0
- package/dist/node/machine-identity/index.mjs +3 -0
- package/dist/node/transports/index.d.mts +1752 -0
- package/dist/node/transports/index.mjs +2 -0
- package/dist/orchestrator-shared-DrjtTXYh.d.mts +249 -0
- package/dist/orchestrator-shared-Wv1GI2mW.mjs +1 -0
- package/dist/platform-BbSLVg5b.mjs +1 -0
- package/dist/profile-4StaDQW0.mjs +1 -0
- package/dist/provider-context-CNRQ4d5m.mjs +1 -0
- package/dist/providers/index.d.mts +135 -0
- package/dist/providers/index.mjs +1 -0
- package/dist/providers-Cr4Za8a1.mjs +1 -0
- package/dist/providers-namespace-CDwxY_DV.d.mts +583 -0
- package/dist/schema-BwzXEtT2.d.mts +837 -0
- package/dist/schema-CAw_BqaG.mjs +1 -0
- package/dist/schema-introspection-D61TT_7b.mjs +1 -0
- package/dist/schema-uSGW-6oM.mjs +1 -0
- package/dist/schemas-BXstpWVp.mjs +1 -0
- package/dist/schemas-BdMU-gew.d.mts +160 -0
- package/dist/schemas-C40ZAJ33.mjs +1 -0
- package/dist/schemas-C5xtVqdb.d.mts +46 -0
- package/dist/schemas-CGZy_rU6.d.mts +13 -0
- package/dist/schemas-CLxtoKFy.mjs +1 -0
- package/dist/schemas-Co_sVhzz.mjs +1 -0
- package/dist/schemas-D9108Iv1.d.mts +182 -0
- package/dist/schemas-DENVYyds.d.mts +463 -0
- package/dist/schemas-DbWs_hj8.d.mts +174 -0
- package/dist/schemas-Di0XnnMX.d.mts +73 -0
- package/dist/schemas-KMA1efQg.d.mts +944 -0
- package/dist/schemas-qmn5SWPU.d.mts +312 -0
- package/dist/schemas-sshQEF3l.d.mts +237 -0
- package/dist/server-lifecycle-Cf_SZ27k.d.mts +160 -0
- package/dist/server-lifecycle-DbFwlrTW.mjs +1 -0
- package/dist/service-base/index.d.mts +98 -0
- package/dist/service-base/index.mjs +1 -0
- package/dist/services/adapter-runtime/index.d.mts +4 -0
- package/dist/services/adapter-runtime/index.mjs +1 -0
- package/dist/services/adapter-runtime/namespace.d.mts +2 -0
- package/dist/services/adapter-runtime/namespace.mjs +1 -0
- package/dist/services/adapter-runtime/schemas.d.mts +2 -0
- package/dist/services/adapter-runtime/schemas.mjs +1 -0
- package/dist/services/adapter-subsystem/index.d.mts +3 -0
- package/dist/services/adapter-subsystem/index.mjs +1 -0
- package/dist/services/adapter-subsystem/namespace.d.mts +2 -0
- package/dist/services/adapter-subsystem/namespace.mjs +1 -0
- package/dist/services/agent-runtime/index.d.mts +3 -0
- package/dist/services/agent-runtime/index.mjs +1 -0
- package/dist/services/agent-runtime/namespace.d.mts +2 -0
- package/dist/services/agent-runtime/namespace.mjs +1 -0
- package/dist/services/agent-runtime/schemas.d.mts +2 -0
- package/dist/services/agent-runtime/schemas.mjs +1 -0
- package/dist/services/capability/index.d.mts +2 -0
- package/dist/services/capability/index.mjs +1 -0
- package/dist/services/cli-detection/namespace.d.mts +56 -0
- package/dist/services/cli-detection/namespace.mjs +1 -0
- package/dist/services/codebase/index.d.mts +3 -0
- package/dist/services/codebase/index.mjs +1 -0
- package/dist/services/codebase/namespace.d.mts +2 -0
- package/dist/services/codebase/namespace.mjs +1 -0
- package/dist/services/codebase/schemas.d.mts +2 -0
- package/dist/services/codebase/schemas.mjs +1 -0
- package/dist/services/compression/index.d.mts +3 -0
- package/dist/services/compression/index.mjs +1 -0
- package/dist/services/compression/namespace.d.mts +2 -0
- package/dist/services/compression/namespace.mjs +1 -0
- package/dist/services/compression/schemas.d.mts +2 -0
- package/dist/services/compression/schemas.mjs +1 -0
- package/dist/services/context-rules/index.d.mts +412 -0
- package/dist/services/context-rules/index.mjs +1 -0
- package/dist/services/credential-change/index.d.mts +17 -0
- package/dist/services/credential-change/index.mjs +1 -0
- package/dist/services/definition/index.d.mts +2 -0
- package/dist/services/definition/index.mjs +1 -0
- package/dist/services/definition/namespace.d.mts +71 -0
- package/dist/services/definition/namespace.mjs +1 -0
- package/dist/services/definition/schemas.d.mts +38 -0
- package/dist/services/definition/schemas.mjs +1 -0
- package/dist/services/dialog/namespace.d.mts +105 -0
- package/dist/services/dialog/namespace.mjs +1 -0
- package/dist/services/dialog/schemas.d.mts +109 -0
- package/dist/services/dialog/schemas.mjs +1 -0
- package/dist/services/execution-target/index.d.mts +4 -0
- package/dist/services/execution-target/index.mjs +1 -0
- package/dist/services/execution-target/namespace.d.mts +2 -0
- package/dist/services/execution-target/namespace.mjs +1 -0
- package/dist/services/execution-target/schemas.d.mts +2 -0
- package/dist/services/execution-target/schemas.mjs +1 -0
- package/dist/services/filesystem/namespace.d.mts +432 -0
- package/dist/services/filesystem/namespace.mjs +1 -0
- package/dist/services/filesystem/schemas.d.mts +240 -0
- package/dist/services/filesystem/schemas.mjs +1 -0
- package/dist/services/harness/index.d.mts +861 -0
- package/dist/services/harness/index.mjs +1 -0
- package/dist/services/harness/storage/schema.d.mts +424 -0
- package/dist/services/harness/storage/schema.mjs +1 -0
- package/dist/services/index.d.mts +5703 -0
- package/dist/services/index.mjs +1 -0
- package/dist/services/local-notification/index.d.mts +25 -0
- package/dist/services/local-notification/index.mjs +1 -0
- package/dist/services/local-notification/namespace.d.mts +73 -0
- package/dist/services/local-notification/namespace.mjs +1 -0
- package/dist/services/local-notification/schemas.d.mts +88 -0
- package/dist/services/local-notification/schemas.mjs +1 -0
- package/dist/services/log-import/browser.d.mts +3 -0
- package/dist/services/log-import/browser.mjs +1 -0
- package/dist/services/log-import/index.d.mts +275 -0
- package/dist/services/log-import/index.mjs +2 -0
- package/dist/services/log-import/log-import.d.mts +3 -0
- package/dist/services/log-import/log-import.mjs +1 -0
- package/dist/services/log-import/namespace.d.mts +327 -0
- package/dist/services/log-import/namespace.mjs +1 -0
- package/dist/services/log-import/schemas.d.mts +217 -0
- package/dist/services/log-import/schemas.mjs +1 -0
- package/dist/services/model-registry/index.d.mts +2 -0
- package/dist/services/model-registry/index.mjs +1 -0
- package/dist/services/preferences/index.d.mts +3 -0
- package/dist/services/preferences/index.mjs +1 -0
- package/dist/services/preferences/schemas.d.mts +2 -0
- package/dist/services/preferences/schemas.mjs +1 -0
- package/dist/services/preferences/storage-namespace.d.mts +3 -0
- package/dist/services/preferences/storage-namespace.mjs +1 -0
- package/dist/services/provider-context/index.d.mts +2 -0
- package/dist/services/provider-context/index.mjs +1 -0
- package/dist/services/provider-runtime/index.d.mts +136 -0
- package/dist/services/provider-runtime/index.mjs +1 -0
- package/dist/services/session/handlers/index.d.mts +2 -0
- package/dist/services/session/handlers/index.mjs +1 -0
- package/dist/services/session/index.d.mts +10 -0
- package/dist/services/session/index.mjs +1 -0
- package/dist/services/session/messages/namespace.d.mts +2 -0
- package/dist/services/session/messages/namespace.mjs +1 -0
- package/dist/services/session/orchestrator-testing/index.d.mts +2 -0
- package/dist/services/session/orchestrator-testing/index.mjs +1 -0
- package/dist/services/session/session-events/namespace.d.mts +2 -0
- package/dist/services/session/session-events/namespace.mjs +1 -0
- package/dist/services/session/storage/namespace.d.mts +2 -0
- package/dist/services/session/storage/namespace.mjs +1 -0
- package/dist/services/session/storage/schema.d.mts +2 -0
- package/dist/services/session/storage/schema.mjs +1 -0
- package/dist/services/session/testing/index.d.mts +35 -0
- package/dist/services/session/testing/index.mjs +52 -0
- package/dist/services/session/testing/orchestrator-shared.d.mts +2 -0
- package/dist/services/session/testing/orchestrator-shared.mjs +1 -0
- package/dist/services/session/turns/namespace.d.mts +2 -0
- package/dist/services/session/turns/namespace.mjs +1 -0
- package/dist/services/session-editor/index.d.mts +119 -0
- package/dist/services/session-editor/index.mjs +1 -0
- package/dist/services/settings/index.d.mts +47 -0
- package/dist/services/settings/index.mjs +1 -0
- package/dist/services/settings/namespace.d.mts +662 -0
- package/dist/services/settings/namespace.mjs +1 -0
- package/dist/services/settings/storage/clients-namespace.d.mts +2 -0
- package/dist/services/settings/storage/clients-namespace.mjs +1 -0
- package/dist/services/settings/storage/extension-configs/namespace.d.mts +184 -0
- package/dist/services/settings/storage/extension-configs/namespace.mjs +1 -0
- package/dist/services/settings/storage/index.d.mts +4 -0
- package/dist/services/settings/storage/index.mjs +1 -0
- package/dist/services/settings/storage/providers-namespace.d.mts +2 -0
- package/dist/services/settings/storage/providers-namespace.mjs +1 -0
- package/dist/services/tool-approval/index.d.mts +2 -0
- package/dist/services/tool-approval/index.mjs +1 -0
- package/dist/services/tools/index.d.mts +2 -0
- package/dist/services/tools/index.mjs +1 -0
- package/dist/services/tray-menu/index.d.mts +4 -0
- package/dist/services/tray-menu/index.mjs +1 -0
- package/dist/services/tray-menu/namespace.d.mts +2 -0
- package/dist/services/tray-menu/namespace.mjs +1 -0
- package/dist/services/tray-menu/schemas.d.mts +2 -0
- package/dist/services/tray-menu/schemas.mjs +1 -0
- package/dist/services/turn/index.d.mts +2 -0
- package/dist/services/turn/index.mjs +1 -0
- package/dist/services/turn/namespace.d.mts +2 -0
- package/dist/services/turn/namespace.mjs +1 -0
- package/dist/services/turn/schemas.d.mts +335 -0
- package/dist/services/turn/schemas.mjs +1 -0
- package/dist/services/worker/index.d.mts +3 -0
- package/dist/services/worker/index.mjs +1 -0
- package/dist/services/worker/namespace.d.mts +2 -0
- package/dist/services/worker/namespace.mjs +1 -0
- package/dist/services/worker/schemas.d.mts +2 -0
- package/dist/services/worker/schemas.mjs +1 -0
- package/dist/session-Do6lDZM4.mjs +123 -0
- package/dist/session-lineage-Eev4uo4I.d.mts +65 -0
- package/dist/session-piI1R5rP.mjs +1 -0
- package/dist/shared-DxHLl9UP.mjs +1 -0
- package/dist/shared-schemas-BgQv_tnu.mjs +1 -0
- package/dist/skill-CB5h-ZFQ.mjs +1 -0
- package/dist/storage/drizzle/client.d.mts +78 -0
- package/dist/storage/drizzle/client.mjs +1 -0
- package/dist/storage/drizzle/index.d.mts +98 -0
- package/dist/storage/drizzle/index.mjs +1 -0
- package/dist/storage/handlers/drizzle/index.d.mts +2 -0
- package/dist/storage/handlers/drizzle/index.mjs +1 -0
- package/dist/storage/handlers/index.d.mts +33 -0
- package/dist/storage/handlers/index.mjs +1 -0
- package/dist/storage/index.d.mts +192 -0
- package/dist/storage/index.mjs +1 -0
- package/dist/storage-namespace-ADwyijoe.mjs +1 -0
- package/dist/storage-namespace-DAm8iWEj.d.mts +221 -0
- package/dist/storage-namespace-definition-CHu2k14q.mjs +1 -0
- package/dist/storage-namespace-definition-CJgqyXH1.d.mts +17 -0
- package/dist/style.css +3782 -0
- package/dist/testing/drizzle-harness.d.mts +130 -0
- package/dist/testing/drizzle-harness.mjs +1 -0
- package/dist/testing/index.d.mts +106 -0
- package/dist/testing/index.mjs +1 -0
- package/dist/tool-approval-service-BcBSUZCO.mjs +1 -0
- package/dist/tools/index.d.mts +825 -0
- package/dist/tools/index.mjs +1 -0
- package/dist/tools/testing/index.d.mts +53 -0
- package/dist/tools/testing/index.mjs +1 -0
- package/dist/tools-CDSgj0ee.mjs +1 -0
- package/dist/tray-menu-service-CTXC1Elg.mjs +1 -0
- package/dist/types-6WxLfoM3.d.mts +31 -0
- package/dist/types-BjToUrHp.d.mts +6619 -0
- package/dist/types-CD1LJwPc.d.mts +1009 -0
- package/dist/types-Cvrj2ogm.d.mts +305 -0
- package/dist/types-DYF5LxZY.d.mts +233 -0
- package/dist/types-t295YC6T.d.mts +262 -0
- package/dist/types-vNpkAe4Y.d.mts +128 -0
- package/dist/ui-components/index.d.mts +2342 -0
- package/dist/ui-components/index.mjs +8 -0
- package/dist/ui-config-CXmbsqZV.mjs +1 -0
- package/dist/ui-hooks/index.d.mts +1805 -0
- package/dist/ui-hooks/index.mjs +1 -0
- package/dist/ui-kernel/index.d.mts +2793 -0
- package/dist/ui-kernel/index.mjs +1 -0
- package/dist/ui-kernel/pages/namespace.d.mts +88 -0
- package/dist/ui-kernel/pages/namespace.mjs +1 -0
- package/dist/ui-kernel/pages/schemas.d.mts +2 -0
- package/dist/ui-kernel/pages/schemas.mjs +1 -0
- package/dist/ui-views/index.d.mts +487 -0
- package/dist/ui-views/index.mjs +30 -0
- package/dist/utils/health-probe.d.mts +26 -0
- package/dist/utils/health-probe.mjs +1 -0
- package/dist/utils/index.d.mts +227 -0
- package/dist/utils/index.mjs +2 -0
- package/dist/utils/keychain.d.mts +31 -0
- package/dist/utils/keychain.mjs +1 -0
- package/dist/utils/resolve-package-root.d.mts +12 -0
- package/dist/utils/resolve-package-root.mjs +1 -0
- package/dist/utils/workspace-root.d.mts +27 -0
- package/dist/utils/workspace-root.mjs +2 -0
- package/dist/variant-D5kSrL3m.mjs +1 -0
- package/dist/version-CjS20oXi.mjs +1 -0
- package/dist/visibility-CZu8ooOA.mjs +1 -0
- package/dist/window-registry-CUftmDr3.mjs +1 -0
- package/dist/window-registry-C_IJmY8_.d.mts +130 -0
- package/package.json +346 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{z as e}from"zod";function t(e){if(typeof e!=`object`||!e)return!1;let t=e;return`$in`in t||`$ne`in t||`$exists`in t||`$startsWith`in t||`$endsWith`in t}const n=`*`;function r(t){return typeof t==`object`&&!!t&&`request`in t&&`response`in t&&t.request instanceof e.ZodType&&t.response instanceof e.ZodType}function i(e){return typeof e==`object`&&!!e&&`__channel`in e&&e.__channel===!0&&`schema`in e}function a(e){return{__channel:!0,schema:e}}function o(e){return typeof e==`object`&&!!e&&`__local`in e&&e.__local===!0&&`schema`in e}function s(e){return{__local:!0,schema:e}}function c(e){return o(e)||i(e)?e.schema:e}function l(e,t){let n={};for(let[a,s]of Object.entries(t)){let t=a.split(`.`),l=n;for(let e=0;e<t.length-1;e++)l[t[e]]??={},l=l[t[e]];let u=o(s),d=i(s),f={subject:a,$meta:{namespace:e,isRequest:r(c(s)),local:u,channel:d}};l[t[t.length-1]]=f}return n.$all={subject:`*`,$meta:{namespace:e,isRequest:!1,local:!1,channel:!1}},n}function u(e){return`${e.$meta.namespace}.${e.subject}`}function d(e,t,n){return{name:e,subjects:l(e,t),schemas:t,...n?{options:n}:{}}}e.object({cwd:e.string(),env:e.record(e.string(),e.string()),platform:e.enum([`posix`,`windows`]),signal:e.custom().optional(),constraints:e.record(e.string(),e.unknown()).optional(),sessionId:e.string().optional(),subagentId:e.string().optional(),subagentDepth:e.number().optional()});function f(){return typeof process>`u`?`posix`:process.platform===`win32`?`windows`:`posix`}const p=[`API_KEY`,`APIKEY`,`SECRET`,`TOKEN`,`PASSWORD`,`CREDENTIAL`,`PRIVATE_KEY`,`PRIVATEKEY`,`AUTH`,`BEARER`,`ACCESS_KEY`,`ACCESSKEY`];function m(e){let t=e.toUpperCase();return p.some(e=>t.includes(e))}function h(e){let t={};for(let[n,r]of Object.entries(e))r!==void 0&&!m(n)&&(t[n]=r);return t}function g(e){let t=typeof process<`u`?process.cwd():`/`,n=typeof process<`u`?h(process.env):{};return{cwd:e?.cwd??t,env:e?.env??n,platform:e?.platform??f(),signal:e?.signal,constraints:e?.constraints,sessionId:e?.sessionId,subagentId:e?.subagentId,subagentDepth:e?.subagentDepth}}var _=class extends Error{subject;constructor(e,t){super(e),this.subject=t,this.name=this.constructor.name,Error.captureStackTrace?.(this,this.constructor)}},v=class extends _{subject;constructor(e,t){super(`Invalid model specified: ${e}`),this.subject=t,this.name=this.constructor.name,Error.captureStackTrace?.(this,this.constructor)}},y=class extends _{subject;constructor(e,t){super(`Directory does not exist: ${e}`),this.subject=t,this.name=this.constructor.name,Error.captureStackTrace?.(this,this.constructor)}},b=class extends _{subject;constructor(e,t){super(e),this.subject=t,this.name=this.constructor.name,Error.captureStackTrace?.(this,this.constructor)}},x=class extends _{code=`rate_limit`},S=class extends _{code=`auth`},C=class extends _{code=`model_unavailable`},w=class extends _{code=`quota_exceeded`};export{S as AuthenticationError,b as ConfigError,y as DirectoryNotFoundError,v as InvalidModelError,_ as MakaioError,C as ModelUnavailableError,w as QuotaExceededError,x as RateLimitError,n as WildcardSubjectKey,a as channelSubject,d as createBusNamespace,g as createMakaioContext,u as getFullSubjectForSubjectDefinition,i as isChannelSchema,o as isLocalSchema,t as isOperatorObject,r as isRequestSchema,s as localSubject,l as nestSubjectDefinitions,c as unwrapSchema};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./visibility-CZu8ooOA.mjs";import{z as e}from"zod";const t=`stored:providerConfig:`,n=`account-manager:`;function r(e){if(!e.startsWith(t))return null;let n=e.slice(22),r=n.lastIndexOf(`:`);if(r===-1)return null;let i=n.slice(0,r),a=n.slice(r+1);return!i||!a||a.includes(`:`)?null:{configId:i,key:a}}function i(e,t){if(!e.startsWith(t))return!1;let n=e.slice(t.length),r=n.indexOf(`:`);return!(r<=0||r>=n.length-1)}function a(e){if(!e.startsWith(n))return null;try{let t=JSON.parse(e.slice(16));return!Array.isArray(t)||t.length!==2||typeof t[0]!=`string`||typeof t[1]!=`string`||t[0].length===0||t[1].length===0?null:{clientId:t[0],accountId:t[1]}}catch{return null}}function o(e){if(r(e))return!0;if(e.startsWith(`env:`)){let t=e.slice(4);return/^[A-Za-z_][A-Za-z0-9_]*$/.test(t)}return e.startsWith(`file:`)?e.length>5:!!(i(e,`keychain:`)||a(e))}function s(e){return a(e)!==null}const c=e.string().refine(o,{message:`Invalid credential reference format.`}).brand();function l(e,n){if(n.includes(`:`))throw Error(`Credential key must not contain colons: "${n}"`);return c.parse(`${t}${e}:${n}`)}function u(e,t){return c.parse(`${n}${JSON.stringify([e,t])}`)}function d(e){return r(e)}function f(e){if(!e)return;let t={};for(let[n,r]of Object.entries(e))t[n]=c.parse(r);return t}function p(e){if(e)return Object.fromEntries(Object.entries(e).map(([e,t])=>[e,t]))}export{s as a,l as i,f as n,d as o,u as r,p as s,c as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{z as e}from"zod";import{createStorageNamespaceDefinition as t}from"@makaio/framework/storage";const n=e.custom(()=>!0),r=e.object({filePath:e.string(),bytesRead:e.number(),lastModified:e.string(),sessionContext:n.optional()}),i=t(`importCursor`,{schemas:{get:{request:e.object({filePath:e.string()}),response:e.object({cursor:r.nullable()})},set:{request:r,response:e.object({success:e.boolean()})},delete:{request:e.object({filePath:e.string()}),response:e.object({success:e.boolean()})}}}),a=i.subjects;export{i as n,a as r,r as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{i as e,t}from"./visibility-CZu8ooOA.mjs";import{z as n}from"zod";const r=n.enum([`anthropic`,`openai`]),i=n.object({anthropic:n.string().url(),openai:n.string().url()}).partial().refine(e=>Object.keys(e).length>0,{message:`At least one protocol endpoint must be specified`}),a=n.object({id:n.string().min(1),name:n.string().min(1),description:n.string().optional(),endpoints:i.optional(),defaultModel:n.string().optional(),fastModel:n.string().optional(),primaryTestModel:n.string().optional(),secondaryTestModel:n.string().optional(),availableModels:n.array(e).default([]),defaultModelFilterMode:t.optional(),credentialEnvVars:n.record(n.string(),n.string()).optional()});export{r as n,a as r,i as t};
|
|
@@ -0,0 +1,158 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
3
|
+
//#region packages/contracts/src/provider/definition.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* Wire protocol identifiers supported by Makaio adapters.
|
|
6
|
+
*
|
|
7
|
+
* Each value corresponds to an inference wire protocol:
|
|
8
|
+
* - `'anthropic'` — Anthropic Messages API (streaming via SSE)
|
|
9
|
+
* - `'openai'` — OpenAI Chat Completions API (streaming via SSE)
|
|
10
|
+
*/
|
|
11
|
+
declare const ProtocolIdSchema: z.ZodEnum<{
|
|
12
|
+
anthropic: "anthropic";
|
|
13
|
+
openai: "openai";
|
|
14
|
+
}>;
|
|
15
|
+
/**
|
|
16
|
+
* Inferred union type for supported wire protocols.
|
|
17
|
+
*/
|
|
18
|
+
type ProtocolId = z.infer<typeof ProtocolIdSchema>;
|
|
19
|
+
/**
|
|
20
|
+
* Maps wire protocol identifiers to their base endpoint URLs.
|
|
21
|
+
*
|
|
22
|
+
* A provider may support multiple protocols simultaneously — for example,
|
|
23
|
+
* Z.AI exposes both an Anthropic-compatible and an OpenAI-compatible endpoint.
|
|
24
|
+
* Omit a protocol key when the provider does not support it.
|
|
25
|
+
* @example Z.AI dual-protocol provider
|
|
26
|
+
* ```ts
|
|
27
|
+
* {
|
|
28
|
+
* anthropic: 'https://api.z.ai/v1/anthropic',
|
|
29
|
+
* openai: 'https://api.z.ai/v1/openai',
|
|
30
|
+
* }
|
|
31
|
+
* ```
|
|
32
|
+
*/
|
|
33
|
+
declare const ProtocolEndpointsSchema: z.ZodObject<{
|
|
34
|
+
anthropic: z.ZodOptional<z.ZodString>;
|
|
35
|
+
openai: z.ZodOptional<z.ZodString>;
|
|
36
|
+
}, z.core.$strip>;
|
|
37
|
+
/**
|
|
38
|
+
* Inferred type for a protocol-to-endpoint mapping.
|
|
39
|
+
*/
|
|
40
|
+
type ProtocolEndpoints = z.infer<typeof ProtocolEndpointsSchema>;
|
|
41
|
+
/**
|
|
42
|
+
* Provider definition schema.
|
|
43
|
+
*
|
|
44
|
+
* The canonical parsed provider contract. Defines the stable identity,
|
|
45
|
+
* display metadata, protocol endpoints, runtime-populated model catalog, and
|
|
46
|
+
* credential environment variables for a single inference provider.
|
|
47
|
+
*
|
|
48
|
+
* Static provider packages should declare {@link ProviderDefinitionInput}:
|
|
49
|
+
* they describe what a provider *is*, not how it is configured at runtime.
|
|
50
|
+
* The runtime layer (storage, sync service, model registry) derives parsed
|
|
51
|
+
* provider definitions and per-user provider records from those declarations.
|
|
52
|
+
*
|
|
53
|
+
* Providers that do not communicate over a network (e.g., GitHub Copilot,
|
|
54
|
+
* which uses its own SDK transport) omit `endpoints`.
|
|
55
|
+
* @example Anthropic provider definition
|
|
56
|
+
* ```ts
|
|
57
|
+
* {
|
|
58
|
+
* id: 'anthropic',
|
|
59
|
+
* name: 'Anthropic',
|
|
60
|
+
* description: 'Official Anthropic Claude API',
|
|
61
|
+
* endpoints: { anthropic: 'https://api.anthropic.com' },
|
|
62
|
+
* defaultModel: 'claude-sonnet-4-5',
|
|
63
|
+
* fastModel: 'claude-haiku-4-5',
|
|
64
|
+
* credentialEnvVars: { apiKey: 'ANTHROPIC_API_KEY' },
|
|
65
|
+
* }
|
|
66
|
+
* ```
|
|
67
|
+
* `availableModels` is omitted — the registry service populates it from the
|
|
68
|
+
* YAML lab registry at boot time and defaults to `[]` when absent.
|
|
69
|
+
*/
|
|
70
|
+
declare const ProviderDefinitionSchema: z.ZodObject<{
|
|
71
|
+
id: z.ZodString;
|
|
72
|
+
name: z.ZodString;
|
|
73
|
+
description: z.ZodOptional<z.ZodString>;
|
|
74
|
+
endpoints: z.ZodOptional<z.ZodObject<{
|
|
75
|
+
anthropic: z.ZodOptional<z.ZodString>;
|
|
76
|
+
openai: z.ZodOptional<z.ZodString>;
|
|
77
|
+
}, z.core.$strip>>;
|
|
78
|
+
defaultModel: z.ZodOptional<z.ZodString>;
|
|
79
|
+
fastModel: z.ZodOptional<z.ZodString>;
|
|
80
|
+
primaryTestModel: z.ZodOptional<z.ZodString>;
|
|
81
|
+
secondaryTestModel: z.ZodOptional<z.ZodString>;
|
|
82
|
+
availableModels: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
83
|
+
name: z.ZodString;
|
|
84
|
+
friendlyName: z.ZodOptional<z.ZodString>;
|
|
85
|
+
family: z.ZodOptional<z.ZodString>;
|
|
86
|
+
contextWindowSize: z.ZodNumber;
|
|
87
|
+
labId: z.ZodString;
|
|
88
|
+
supportedReasoningLevels: z.ZodOptional<z.ZodObject<{
|
|
89
|
+
none: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
|
|
90
|
+
low: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
|
|
91
|
+
medium: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
|
|
92
|
+
high: z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
|
|
93
|
+
'extra-high': z.ZodOptional<z.ZodUnion<readonly [z.ZodNumber, z.ZodString]>>;
|
|
94
|
+
}, z.core.$strip>>;
|
|
95
|
+
metadata: z.ZodOptional<z.ZodObject<{
|
|
96
|
+
maxOutputTokens: z.ZodOptional<z.ZodNumber>;
|
|
97
|
+
capabilities: z.ZodOptional<z.ZodObject<{
|
|
98
|
+
vision: z.ZodOptional<z.ZodBoolean>;
|
|
99
|
+
toolCalling: z.ZodOptional<z.ZodBoolean>;
|
|
100
|
+
parallelToolCalls: z.ZodOptional<z.ZodBoolean>;
|
|
101
|
+
structuredOutput: z.ZodOptional<z.ZodBoolean>;
|
|
102
|
+
pdfUpload: z.ZodOptional<z.ZodBoolean>;
|
|
103
|
+
speechToText: z.ZodOptional<z.ZodObject<{
|
|
104
|
+
modes: z.ZodArray<z.ZodEnum<{
|
|
105
|
+
batch: "batch";
|
|
106
|
+
streaming: "streaming";
|
|
107
|
+
}>>;
|
|
108
|
+
vocabularyBiasing: z.ZodOptional<z.ZodBoolean>;
|
|
109
|
+
}, z.core.$strip>>;
|
|
110
|
+
textToSpeech: z.ZodOptional<z.ZodObject<{
|
|
111
|
+
modes: z.ZodArray<z.ZodEnum<{
|
|
112
|
+
streaming: "streaming";
|
|
113
|
+
buffered: "buffered";
|
|
114
|
+
}>>;
|
|
115
|
+
voiceSelection: z.ZodOptional<z.ZodBoolean>;
|
|
116
|
+
voiceInstructions: z.ZodOptional<z.ZodBoolean>;
|
|
117
|
+
outputFormats: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
118
|
+
}, z.core.$strip>>;
|
|
119
|
+
}, z.core.$strip>>;
|
|
120
|
+
pricing: z.ZodOptional<z.ZodObject<{
|
|
121
|
+
token: z.ZodOptional<z.ZodObject<{
|
|
122
|
+
inputPerMillion: z.ZodNumber;
|
|
123
|
+
inputCachedPerMillion: z.ZodOptional<z.ZodNumber>;
|
|
124
|
+
cacheWritePerMillion: z.ZodOptional<z.ZodNumber>;
|
|
125
|
+
outputPerMillion: z.ZodNumber;
|
|
126
|
+
}, z.core.$strip>>;
|
|
127
|
+
request: z.ZodOptional<z.ZodObject<{
|
|
128
|
+
multiplier: z.ZodNumber;
|
|
129
|
+
}, z.core.$strip>>;
|
|
130
|
+
}, z.core.$strip>>;
|
|
131
|
+
includedInSubscription: z.ZodOptional<z.ZodBoolean>;
|
|
132
|
+
description: z.ZodOptional<z.ZodString>;
|
|
133
|
+
}, z.core.$strip>>;
|
|
134
|
+
}, z.core.$strip>>>;
|
|
135
|
+
defaultModelFilterMode: z.ZodOptional<z.ZodEnum<{
|
|
136
|
+
allowlist: "allowlist";
|
|
137
|
+
"show-all": "show-all";
|
|
138
|
+
}>>;
|
|
139
|
+
credentialEnvVars: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
|
|
140
|
+
}, z.core.$strip>;
|
|
141
|
+
/**
|
|
142
|
+
* Inferred output type for a fully-parsed provider definition.
|
|
143
|
+
*
|
|
144
|
+
* Fields with `.default()` (e.g., `availableModels`) are always present here.
|
|
145
|
+
* Use this type for runtime consumers that read provider definition values.
|
|
146
|
+
*/
|
|
147
|
+
type ProviderDefinition = z.infer<typeof ProviderDefinitionSchema>;
|
|
148
|
+
/**
|
|
149
|
+
* Input type for provider definition declarations.
|
|
150
|
+
*
|
|
151
|
+
* Fields with `.default()` (e.g., `availableModels`) are optional here —
|
|
152
|
+
* the registry service populates them from YAML at boot time.
|
|
153
|
+
* Use this type when declaring a static `providerDefinition` constant in a
|
|
154
|
+
* provider package so that `availableModels` may be omitted.
|
|
155
|
+
*/
|
|
156
|
+
type ProviderDefinitionInput = z.input<typeof ProviderDefinitionSchema>;
|
|
157
|
+
//#endregion
|
|
158
|
+
export { ProviderDefinition as a, ProtocolIdSchema as i, ProtocolEndpointsSchema as n, ProviderDefinitionInput as o, ProtocolId as r, ProviderDefinitionSchema as s, ProtocolEndpoints as t };
|
|
@@ -0,0 +1,376 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
|
|
3
|
+
//#region packages/contracts/src/version/primitives.d.ts
|
|
4
|
+
/**
|
|
5
|
+
* npm semver range syntax (e.g. `">=1.0.0 <2.0.0"`, `"^1.5.0"`).
|
|
6
|
+
*
|
|
7
|
+
* Used by all range-bearing compatibility fields in descriptors and manifests.
|
|
8
|
+
*/
|
|
9
|
+
type VersionRange = string;
|
|
10
|
+
/**
|
|
11
|
+
* Exact semver version (e.g. `"1.0.72"`).
|
|
12
|
+
*
|
|
13
|
+
* Used for concrete version pins such as preferred binary versions.
|
|
14
|
+
*/
|
|
15
|
+
type VersionLiteral = string;
|
|
16
|
+
/** Validates that the string is a valid npm semver range. */
|
|
17
|
+
declare const VersionRangeSchema: z.ZodString;
|
|
18
|
+
/**
|
|
19
|
+
* Check whether a concrete version satisfies a semver range.
|
|
20
|
+
*
|
|
21
|
+
* Centralizes the `{ includePrerelease: true }` policy so every compatibility
|
|
22
|
+
* check in the framework uses the same semantics.
|
|
23
|
+
* @param version - Concrete semver version string.
|
|
24
|
+
* @param range - npm semver range to test against.
|
|
25
|
+
* @returns `true` when the version falls within the range.
|
|
26
|
+
*/
|
|
27
|
+
declare function versionSatisfies(version: string, range: VersionRange): boolean;
|
|
28
|
+
/**
|
|
29
|
+
* Check whether a semver range is a universal wildcard (`*`, `>=0.0.0`, etc.).
|
|
30
|
+
*
|
|
31
|
+
* Uses the `semver` library's normalization so all universal range syntaxes are
|
|
32
|
+
* recognized, not just the literal `'*'` string.
|
|
33
|
+
* @param range - Semver range to test.
|
|
34
|
+
* @returns `true` when the range matches any version.
|
|
35
|
+
*/
|
|
36
|
+
declare function isUniversalRange(range: string): boolean;
|
|
37
|
+
/** Validates that the string is an exact semver version. */
|
|
38
|
+
declare const VersionLiteralSchema: z.ZodString;
|
|
39
|
+
//#endregion
|
|
40
|
+
//#region packages/contracts/src/client/definition.d.ts
|
|
41
|
+
/**
|
|
42
|
+
* Schema for a capability annotation attached to a native client tool.
|
|
43
|
+
*
|
|
44
|
+
* Captures a capability tag (e.g. `'shell.execute'`) and an optional
|
|
45
|
+
* human-readable description so the Harness UI can explain what a tool does
|
|
46
|
+
* without coupling to the platform capability taxonomy.
|
|
47
|
+
*/
|
|
48
|
+
declare const ClientToolCapabilityAnnotationSchema: z.ZodObject<{
|
|
49
|
+
tag: z.ZodString;
|
|
50
|
+
description: z.ZodOptional<z.ZodString>;
|
|
51
|
+
}, z.core.$strip>;
|
|
52
|
+
type ClientToolCapabilityAnnotation = z.infer<typeof ClientToolCapabilityAnnotationSchema>;
|
|
53
|
+
/**
|
|
54
|
+
* Schema for a single native tool provided by a client binary.
|
|
55
|
+
*
|
|
56
|
+
* Native tools are those the client binary exposes directly (e.g. `bash`,
|
|
57
|
+
* `file_edit`). They are declared by the client package and seeded into
|
|
58
|
+
* the harness at startup.
|
|
59
|
+
*/
|
|
60
|
+
declare const ClientToolDefinitionSchema: z.ZodObject<{
|
|
61
|
+
name: z.ZodString;
|
|
62
|
+
friendlyName: z.ZodString;
|
|
63
|
+
description: z.ZodOptional<z.ZodString>;
|
|
64
|
+
category: z.ZodOptional<z.ZodString>;
|
|
65
|
+
capabilities: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
66
|
+
tag: z.ZodString;
|
|
67
|
+
description: z.ZodOptional<z.ZodString>;
|
|
68
|
+
}, z.core.$strip>>>;
|
|
69
|
+
}, z.core.$strip>;
|
|
70
|
+
type ClientToolDefinition = z.infer<typeof ClientToolDefinitionSchema>;
|
|
71
|
+
/**
|
|
72
|
+
* Schema for a log source definition contributed by a client package.
|
|
73
|
+
*
|
|
74
|
+
* Log sources describe where the client binary writes conversation logs so the
|
|
75
|
+
* Makaio log-import service can discover and ingest them.
|
|
76
|
+
*/
|
|
77
|
+
declare const LogSourceDefinitionSchema: z.ZodObject<{
|
|
78
|
+
id: z.ZodString;
|
|
79
|
+
name: z.ZodString;
|
|
80
|
+
description: z.ZodOptional<z.ZodString>;
|
|
81
|
+
glob: z.ZodOptional<z.ZodString>;
|
|
82
|
+
}, z.core.$strip>;
|
|
83
|
+
type LogSourceDefinition = z.infer<typeof LogSourceDefinitionSchema>;
|
|
84
|
+
/**
|
|
85
|
+
* Schema for a hook event declaration on a client definition.
|
|
86
|
+
*
|
|
87
|
+
* Declares which native hook events the client binary fires. Used by the
|
|
88
|
+
* wiring layer to know what hooks to install, and by the UI to display
|
|
89
|
+
* available events.
|
|
90
|
+
*/
|
|
91
|
+
declare const ClientHookEventDeclarationSchema: z.ZodObject<{
|
|
92
|
+
name: z.ZodString;
|
|
93
|
+
frameworkSubject: z.ZodOptional<z.ZodString>;
|
|
94
|
+
}, z.core.$strip>;
|
|
95
|
+
type ClientHookEventDeclaration = z.infer<typeof ClientHookEventDeclarationSchema>;
|
|
96
|
+
/**
|
|
97
|
+
* Schema for the config isolation descriptor on a client definition.
|
|
98
|
+
*
|
|
99
|
+
* Describes the environment variable and default path the client binary uses
|
|
100
|
+
* for config isolation. Most clients accept a directory path. Some clients only
|
|
101
|
+
* expose a file-level override, so `pathKind` records which value shape the env
|
|
102
|
+
* var expects.
|
|
103
|
+
*/
|
|
104
|
+
declare const ConfigIsolationSchema: z.ZodObject<{
|
|
105
|
+
envVar: z.ZodString;
|
|
106
|
+
defaultPath: z.ZodString;
|
|
107
|
+
pathKind: z.ZodDefault<z.ZodEnum<{
|
|
108
|
+
file: "file";
|
|
109
|
+
directory: "directory";
|
|
110
|
+
}>>;
|
|
111
|
+
}, z.core.$strip>;
|
|
112
|
+
type ConfigIsolation = z.infer<typeof ConfigIsolationSchema>;
|
|
113
|
+
/**
|
|
114
|
+
* Install descriptor for the `manifest-bucket` strategy.
|
|
115
|
+
*
|
|
116
|
+
* The manager fetches a version-index file from a static HTTP bucket, selects
|
|
117
|
+
* a per-platform manifest, downloads the binary archive, verifies its
|
|
118
|
+
* checksum, and extracts it.
|
|
119
|
+
*/
|
|
120
|
+
declare const ManifestBucketInstallDescriptorSchema: z.ZodObject<{
|
|
121
|
+
type: z.ZodLiteral<"manifest-bucket">;
|
|
122
|
+
config: z.ZodObject<{
|
|
123
|
+
baseUrl: z.ZodString;
|
|
124
|
+
versionIndex: z.ZodObject<{
|
|
125
|
+
latest: z.ZodString;
|
|
126
|
+
}, z.core.$strip>;
|
|
127
|
+
manifestPath: z.ZodString;
|
|
128
|
+
manifestChecksumField: z.ZodString;
|
|
129
|
+
binaryPath: z.ZodString;
|
|
130
|
+
archiveFormat: z.ZodOptional<z.ZodEnum<{
|
|
131
|
+
raw: "raw";
|
|
132
|
+
"tar.gz": "tar.gz";
|
|
133
|
+
zip: "zip";
|
|
134
|
+
}>>;
|
|
135
|
+
}, z.core.$strip>;
|
|
136
|
+
}, z.core.$strip>;
|
|
137
|
+
type ManifestBucketInstallDescriptor = z.infer<typeof ManifestBucketInstallDescriptorSchema>;
|
|
138
|
+
/**
|
|
139
|
+
* Install descriptor for the `npm` strategy.
|
|
140
|
+
*
|
|
141
|
+
* The manager runs a sandboxed `npm install --prefix <targetDir>` for the
|
|
142
|
+
* pinned package version so managed installs do not mutate global npm state.
|
|
143
|
+
*/
|
|
144
|
+
declare const NpmInstallDescriptorSchema: z.ZodObject<{
|
|
145
|
+
type: z.ZodLiteral<"npm">;
|
|
146
|
+
package: z.ZodString;
|
|
147
|
+
}, z.core.$strip>;
|
|
148
|
+
type NpmInstallDescriptor = z.infer<typeof NpmInstallDescriptorSchema>;
|
|
149
|
+
/**
|
|
150
|
+
* Install descriptor for the `github-release` strategy.
|
|
151
|
+
*
|
|
152
|
+
* The manager queries the GitHub Releases API for the specified repository,
|
|
153
|
+
* selects a platform-appropriate asset using `assetPattern`, downloads and
|
|
154
|
+
* extracts it.
|
|
155
|
+
*/
|
|
156
|
+
declare const GithubReleaseInstallDescriptorSchema: z.ZodObject<{
|
|
157
|
+
type: z.ZodLiteral<"github-release">;
|
|
158
|
+
repo: z.ZodString;
|
|
159
|
+
assetPattern: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
160
|
+
archiveFormat: z.ZodEnum<{
|
|
161
|
+
"tar.gz": "tar.gz";
|
|
162
|
+
zip: "zip";
|
|
163
|
+
}>;
|
|
164
|
+
}, z.core.$strip>;
|
|
165
|
+
type GithubReleaseInstallDescriptor = z.infer<typeof GithubReleaseInstallDescriptorSchema>;
|
|
166
|
+
/**
|
|
167
|
+
* Discriminated union of all supported managed install descriptors.
|
|
168
|
+
*
|
|
169
|
+
* Exactly three v1 strategies are supported:
|
|
170
|
+
* - `manifest-bucket` — static HTTP bucket with a version index and manifest.
|
|
171
|
+
* - `npm` — npm registry installation.
|
|
172
|
+
* - `github-release` — GitHub Releases asset download.
|
|
173
|
+
*
|
|
174
|
+
* The descriptor is purely declarative; no runtime logic lives here.
|
|
175
|
+
*/
|
|
176
|
+
declare const ManagedInstallDescriptorSchema: z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
177
|
+
type: z.ZodLiteral<"manifest-bucket">;
|
|
178
|
+
config: z.ZodObject<{
|
|
179
|
+
baseUrl: z.ZodString;
|
|
180
|
+
versionIndex: z.ZodObject<{
|
|
181
|
+
latest: z.ZodString;
|
|
182
|
+
}, z.core.$strip>;
|
|
183
|
+
manifestPath: z.ZodString;
|
|
184
|
+
manifestChecksumField: z.ZodString;
|
|
185
|
+
binaryPath: z.ZodString;
|
|
186
|
+
archiveFormat: z.ZodOptional<z.ZodEnum<{
|
|
187
|
+
raw: "raw";
|
|
188
|
+
"tar.gz": "tar.gz";
|
|
189
|
+
zip: "zip";
|
|
190
|
+
}>>;
|
|
191
|
+
}, z.core.$strip>;
|
|
192
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
193
|
+
type: z.ZodLiteral<"npm">;
|
|
194
|
+
package: z.ZodString;
|
|
195
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
196
|
+
type: z.ZodLiteral<"github-release">;
|
|
197
|
+
repo: z.ZodString;
|
|
198
|
+
assetPattern: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
199
|
+
archiveFormat: z.ZodEnum<{
|
|
200
|
+
"tar.gz": "tar.gz";
|
|
201
|
+
zip: "zip";
|
|
202
|
+
}>;
|
|
203
|
+
}, z.core.$strip>], "type">;
|
|
204
|
+
type ManagedInstallDescriptor = z.infer<typeof ManagedInstallDescriptorSchema>;
|
|
205
|
+
/**
|
|
206
|
+
* Optional post-install action descriptor.
|
|
207
|
+
*
|
|
208
|
+
* Carries an open-ended `kind` string so the runtime can dispatch to a
|
|
209
|
+
* registered post-install handler without the contracts layer enumerating
|
|
210
|
+
* every possible action.
|
|
211
|
+
*/
|
|
212
|
+
declare const PostInstallDescriptorSchema: z.ZodObject<{
|
|
213
|
+
kind: z.ZodString;
|
|
214
|
+
payload: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
215
|
+
}, z.core.$strip>;
|
|
216
|
+
type PostInstallDescriptor = z.infer<typeof PostInstallDescriptorSchema>;
|
|
217
|
+
/**
|
|
218
|
+
* Declarative runtime capability flags for a client package.
|
|
219
|
+
*
|
|
220
|
+
* These flags are static declarations contributed by the client package.
|
|
221
|
+
* They inform Makaio which observation and launch mechanisms the client
|
|
222
|
+
* supports so the framework can activate the appropriate producers and
|
|
223
|
+
* adapt its behaviour without runtime probing.
|
|
224
|
+
*
|
|
225
|
+
* All flags default to `false` so packages only need to opt in to what they
|
|
226
|
+
* actually support.
|
|
227
|
+
*/
|
|
228
|
+
declare const ClientRuntimeCapabilitiesSchema: z.ZodObject<{
|
|
229
|
+
supportsHooks: z.ZodDefault<z.ZodBoolean>;
|
|
230
|
+
supportsStatusline: z.ZodDefault<z.ZodBoolean>;
|
|
231
|
+
supportsSupervisorLaunch: z.ZodDefault<z.ZodBoolean>;
|
|
232
|
+
supportsManagedBinary: z.ZodDefault<z.ZodBoolean>;
|
|
233
|
+
hookEvents: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
234
|
+
name: z.ZodString;
|
|
235
|
+
frameworkSubject: z.ZodOptional<z.ZodString>;
|
|
236
|
+
}, z.core.$strip>>>;
|
|
237
|
+
}, z.core.$strip>;
|
|
238
|
+
type ClientRuntimeCapabilities = z.infer<typeof ClientRuntimeCapabilitiesSchema>;
|
|
239
|
+
/**
|
|
240
|
+
* Binary compatibility descriptor for a client definition.
|
|
241
|
+
*
|
|
242
|
+
* Groups all binary-related compatibility information: the executable name
|
|
243
|
+
* used for PATH detection and the version range the framework supports.
|
|
244
|
+
*/
|
|
245
|
+
interface ClientBinaryCompatibility {
|
|
246
|
+
/** Binary name used for CLI detection (e.g. `'claude'` for the `claude` binary on `PATH`). */
|
|
247
|
+
readonly name: string;
|
|
248
|
+
/**
|
|
249
|
+
* npm semver range of supported binary versions
|
|
250
|
+
* (e.g. `'>=1.0.0'`, `'^2.0.0'`).
|
|
251
|
+
*/
|
|
252
|
+
readonly supportedVersions: VersionRange;
|
|
253
|
+
}
|
|
254
|
+
/** Zod schema for {@link ClientBinaryCompatibility}. */
|
|
255
|
+
declare const ClientBinaryCompatibilitySchema: z.ZodObject<{
|
|
256
|
+
name: z.ZodString;
|
|
257
|
+
supportedVersions: z.ZodString;
|
|
258
|
+
}, z.core.$strict>;
|
|
259
|
+
/**
|
|
260
|
+
* Static definition for a Makaio client package.
|
|
261
|
+
*
|
|
262
|
+
* Each client package (e.g. `@makaio/client-claude-code`) exports exactly one
|
|
263
|
+
* `ClientDefinition` object. The bootstrap service discovers and seeds these
|
|
264
|
+
* definitions into the `clients` storage table on startup.
|
|
265
|
+
*
|
|
266
|
+
* Key fields:
|
|
267
|
+
* - `runtimeCapabilities` — capability flags (hooks, managed binary, etc.)
|
|
268
|
+
* - `managedInstall` — install descriptor when Makaio manages the binary.
|
|
269
|
+
* - `configIsolation` — env var and default path for config isolation.
|
|
270
|
+
* Used by both managed and global binaries; see {@link ConfigIsolationSchema}.
|
|
271
|
+
*/
|
|
272
|
+
declare const ClientDefinitionSchema: z.ZodObject<{
|
|
273
|
+
id: z.ZodString;
|
|
274
|
+
name: z.ZodString;
|
|
275
|
+
version: z.ZodString;
|
|
276
|
+
description: z.ZodOptional<z.ZodString>;
|
|
277
|
+
binary: z.ZodOptional<z.ZodObject<{
|
|
278
|
+
name: z.ZodString;
|
|
279
|
+
supportedVersions: z.ZodString;
|
|
280
|
+
}, z.core.$strict>>;
|
|
281
|
+
nativeTools: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
282
|
+
name: z.ZodString;
|
|
283
|
+
friendlyName: z.ZodString;
|
|
284
|
+
description: z.ZodOptional<z.ZodString>;
|
|
285
|
+
category: z.ZodOptional<z.ZodString>;
|
|
286
|
+
capabilities: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
287
|
+
tag: z.ZodString;
|
|
288
|
+
description: z.ZodOptional<z.ZodString>;
|
|
289
|
+
}, z.core.$strip>>>;
|
|
290
|
+
}, z.core.$strip>>>;
|
|
291
|
+
defaultApprovalPolicy: z.ZodEnum<{
|
|
292
|
+
reject: "reject";
|
|
293
|
+
"always-ask": "always-ask";
|
|
294
|
+
"full-access": "full-access";
|
|
295
|
+
}>;
|
|
296
|
+
logSources: z.ZodOptional<z.ZodArray<z.ZodObject<{
|
|
297
|
+
id: z.ZodString;
|
|
298
|
+
name: z.ZodString;
|
|
299
|
+
description: z.ZodOptional<z.ZodString>;
|
|
300
|
+
glob: z.ZodOptional<z.ZodString>;
|
|
301
|
+
}, z.core.$strip>>>;
|
|
302
|
+
defaultProviderId: z.ZodOptional<z.ZodString>;
|
|
303
|
+
runtimeCapabilities: z.ZodPipe<z.ZodOptional<z.ZodObject<{
|
|
304
|
+
supportsHooks: z.ZodDefault<z.ZodBoolean>;
|
|
305
|
+
supportsStatusline: z.ZodDefault<z.ZodBoolean>;
|
|
306
|
+
supportsSupervisorLaunch: z.ZodDefault<z.ZodBoolean>;
|
|
307
|
+
supportsManagedBinary: z.ZodDefault<z.ZodBoolean>;
|
|
308
|
+
hookEvents: z.ZodDefault<z.ZodArray<z.ZodObject<{
|
|
309
|
+
name: z.ZodString;
|
|
310
|
+
frameworkSubject: z.ZodOptional<z.ZodString>;
|
|
311
|
+
}, z.core.$strip>>>;
|
|
312
|
+
}, z.core.$strip>>, z.ZodTransform<{
|
|
313
|
+
supportsHooks: boolean;
|
|
314
|
+
supportsStatusline: boolean;
|
|
315
|
+
supportsSupervisorLaunch: boolean;
|
|
316
|
+
supportsManagedBinary: boolean;
|
|
317
|
+
hookEvents: {
|
|
318
|
+
name: string;
|
|
319
|
+
frameworkSubject?: string | undefined;
|
|
320
|
+
}[];
|
|
321
|
+
}, {
|
|
322
|
+
supportsHooks: boolean;
|
|
323
|
+
supportsStatusline: boolean;
|
|
324
|
+
supportsSupervisorLaunch: boolean;
|
|
325
|
+
supportsManagedBinary: boolean;
|
|
326
|
+
hookEvents: {
|
|
327
|
+
name: string;
|
|
328
|
+
frameworkSubject?: string | undefined;
|
|
329
|
+
}[];
|
|
330
|
+
} | undefined>>;
|
|
331
|
+
managedInstall: z.ZodOptional<z.ZodDiscriminatedUnion<[z.ZodObject<{
|
|
332
|
+
type: z.ZodLiteral<"manifest-bucket">;
|
|
333
|
+
config: z.ZodObject<{
|
|
334
|
+
baseUrl: z.ZodString;
|
|
335
|
+
versionIndex: z.ZodObject<{
|
|
336
|
+
latest: z.ZodString;
|
|
337
|
+
}, z.core.$strip>;
|
|
338
|
+
manifestPath: z.ZodString;
|
|
339
|
+
manifestChecksumField: z.ZodString;
|
|
340
|
+
binaryPath: z.ZodString;
|
|
341
|
+
archiveFormat: z.ZodOptional<z.ZodEnum<{
|
|
342
|
+
raw: "raw";
|
|
343
|
+
"tar.gz": "tar.gz";
|
|
344
|
+
zip: "zip";
|
|
345
|
+
}>>;
|
|
346
|
+
}, z.core.$strip>;
|
|
347
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
348
|
+
type: z.ZodLiteral<"npm">;
|
|
349
|
+
package: z.ZodString;
|
|
350
|
+
}, z.core.$strip>, z.ZodObject<{
|
|
351
|
+
type: z.ZodLiteral<"github-release">;
|
|
352
|
+
repo: z.ZodString;
|
|
353
|
+
assetPattern: z.ZodRecord<z.ZodString, z.ZodString>;
|
|
354
|
+
archiveFormat: z.ZodEnum<{
|
|
355
|
+
"tar.gz": "tar.gz";
|
|
356
|
+
zip: "zip";
|
|
357
|
+
}>;
|
|
358
|
+
}, z.core.$strip>], "type">>;
|
|
359
|
+
versionCommand: z.ZodOptional<z.ZodArray<z.ZodString>>;
|
|
360
|
+
postInstall: z.ZodOptional<z.ZodObject<{
|
|
361
|
+
kind: z.ZodString;
|
|
362
|
+
payload: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
|
|
363
|
+
}, z.core.$strip>>;
|
|
364
|
+
configIsolation: z.ZodOptional<z.ZodObject<{
|
|
365
|
+
envVar: z.ZodString;
|
|
366
|
+
defaultPath: z.ZodString;
|
|
367
|
+
pathKind: z.ZodDefault<z.ZodEnum<{
|
|
368
|
+
file: "file";
|
|
369
|
+
directory: "directory";
|
|
370
|
+
}>>;
|
|
371
|
+
}, z.core.$strip>>;
|
|
372
|
+
}, z.core.$strict>;
|
|
373
|
+
type ClientDefinitionInput = z.input<typeof ClientDefinitionSchema>;
|
|
374
|
+
type ClientDefinition = z.infer<typeof ClientDefinitionSchema>;
|
|
375
|
+
//#endregion
|
|
376
|
+
export { VersionRange as A, ManifestBucketInstallDescriptorSchema as C, PostInstallDescriptorSchema as D, PostInstallDescriptor as E, isUniversalRange as M, versionSatisfies as N, VersionLiteral as O, ManifestBucketInstallDescriptor as S, NpmInstallDescriptorSchema as T, GithubReleaseInstallDescriptorSchema as _, ClientDefinitionSchema as a, ManagedInstallDescriptor as b, ClientRuntimeCapabilities as c, ClientToolCapabilityAnnotationSchema as d, ClientToolDefinition as f, GithubReleaseInstallDescriptor as g, ConfigIsolationSchema as h, ClientDefinitionInput as i, VersionRangeSchema as j, VersionLiteralSchema as k, ClientRuntimeCapabilitiesSchema as l, ConfigIsolation as m, ClientBinaryCompatibilitySchema as n, ClientHookEventDeclaration as o, ClientToolDefinitionSchema as p, ClientDefinition as r, ClientHookEventDeclarationSchema as s, ClientBinaryCompatibility as t, ClientToolCapabilityAnnotation as u, LogSourceDefinition as v, NpmInstallDescriptor as w, ManagedInstallDescriptorSchema as x, LogSourceDefinitionSchema as y };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{and as e,eq as t,getTableColumns as n,inArray as r,sql as i}from"drizzle-orm";function a(e,t){return{[e]:t}}function o(e,t,r){let i=n(e);if(!r)return i[t];let a=r(e);if(a.length===0)throw Error(`createDrizzleCrudHandlers: conflictTarget returned an empty array. Provide at least one column for the conflict target.`);return a}function s(e,r,i){let{table:o,idField:s,singularKey:c,mapper:l,getSubject:u}=i;return e.on(u,async e=>{let{id:i}=e.payload,u=n(o)[s],[d]=await r.select().from(o).where(t(u,i)).limit(1);e.setResult(a(c,d?l(d):null))})}function c(e,r,a){let{table:o,idField:s,singularKey:c,mapper:l,toDbValues:u,setSubject:d,resolvedConflictTarget:f,lifecycle:p}=a;return e.on(d,async a=>{let d=a.payload[c],m=d[s],h=Date.now(),g=n(o),_=u(d),v={..._,[s]:m,createdAt:h,updatedAt:h};if(!p){await r.insert(o).values(v).onConflictDoUpdate({target:f,set:{..._,[s]:m,updatedAt:h,createdAt:i`COALESCE(${g.createdAt}, excluded.created_at)`}}),a.setResult({id:m});return}let y=await r.insert(o).values(v).onConflictDoNothing({target:f}).returning();if(y.length>0){await e.emit(p.created,l(y[0])),a.setResult({id:m});return}let[b]=await r.update(o).set({..._,updatedAt:h}).where(t(g[s],m)).returning();b&&await e.emit(p.updated,l(b)),a.setResult({id:m})})}function l(e,r,i){let{table:a,idField:o,deleteSubject:s}=i;return e.on(s,async e=>{let{id:i}=e.payload,s=n(a)[o],c=await r.delete(a).where(t(s,i));e.setResult({deleted:(c.rowsAffected??0)>0})})}function u(e,r,i){let{table:a,idField:o,singularKey:s,getSubject:c,deleteSubject:l,lifecycle:u}=i;return e.on(l,async i=>{let{id:l}=i.payload,d=n(a)[o],[f]=await r.select({id:d}).from(a).where(t(d,l)).limit(1);await i.next(),f&&((await e.request(c,{id:l}))[s]||await e.emit(u.deleted,{id:l}))})}function d(e){if(e.conflictTarget&&e.lifecycle)throw Error(`createDrizzleCrudHandlers: conflictTarget is not yet compatible with lifecycle events. The lifecycle path uses a PK-based UPDATE fallback that cannot resolve rows by natural key.`);let{table:t,subjects:n,idField:r,singularKey:i,mapper:a,toDbValues:d,conflictTarget:f,lifecycle:p}=e,m=o(t,r,f);return(e,o)=>{let f=[];return f.push(s(e,o,{table:t,idField:r,singularKey:i,mapper:a,getSubject:n.get})),f.push(c(e,o,{table:t,idField:r,singularKey:i,mapper:a,toDbValues:d,setSubject:n.set,resolvedConflictTarget:m,lifecycle:p})),p&&f.push(u(e,o,{table:t,idField:r,singularKey:i,getSubject:n.get,deleteSubject:n.delete,lifecycle:p})),f.push(l(e,o,{table:t,idField:r,deleteSubject:n.delete})),()=>f.forEach(e=>e())}}function f(t){let{table:n,subject:r,pluralKey:i,mapper:a,buildPredicates:o}=t;return(t,s)=>{let c=(e,t)=>({[e]:t});return t.on(r,async t=>{let r=o(t.payload,n),l=r.length>0?e(...r):void 0,u=l?await s.select().from(n).where(l):await s.select().from(n);t.setResult(c(i,u.map(a)))})}}function p(e,n){return n?[r(e.scope,[`default`,n])]:[t(e.scope,`default`)]}export{f as n,d as r,p as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import"./services/execution-target/schemas.mjs";import"./services/execution-target/namespace.mjs";import{z as e}from"zod";import{createBusNamespace as t}from"@makaio/framework/core";const n=e.enum([`simple`,`full`]),r=e.enum([`created`,`running`,`stopped`,`destroyed`]),i=e.object({sessionId:e.string(),adapter:e.string(),runtime:n.default(`simple`),image:e.string().optional(),env:e.record(e.string(),e.string()).optional()}),a=i.extend({mode:e.literal(`container-local`),repoPath:e.string(),baseBranch:e.string(),worktreeBranch:e.string().optional()}),o=i.extend({mode:e.literal(`container-isolated`),repoUrl:e.string(),branch:e.string(),gitToken:e.string(),busMode:e.enum([`host`,`relay`]),relayUrl:e.string().optional()}),s=e.discriminatedUnion(`mode`,[a,o]),c=e.object({containerId:e.string(),worktreePath:e.string().optional(),worktreeBranch:e.string().optional()}),l=e.object({containerId:e.string(),deleteBranch:e.boolean().default(!1)}),u=e.object({success:e.boolean()}),d=e.object({containerId:e.string()}),f=e.object({state:r,sessionId:e.string(),worktreePath:e.string().optional()}),p=e.object({containerId:e.string(),sessionId:e.string(),worktreePath:e.string().optional()}),m=e.object({containerId:e.string(),sessionId:e.string(),worktreePath:e.string().optional()}),h=e.object({containerId:e.string(),sessionId:e.string(),exitCode:e.number()}),g=e.object({containerId:e.string(),sessionId:e.string()}),_=t(`docker`,{"container.spawn":{request:s,response:c},"container.stop":{request:l,response:u},"container.status":{request:d,response:f},"container.created":p,"container.started":m,"container.stopped":h,"container.destroyed":g}),v=_.subjects,y=_,b=v;export{l as _,p as a,a as c,r as d,h as f,f as g,d as h,v as i,n as l,c as m,b as n,g as o,s as p,_ as r,o as s,y as t,m as u,u as v};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./window-registry-CUftmDr3.mjs";import{o as t,t as n}from"./schema-introspection-D61TT_7b.mjs";import{n as r}from"./extension-namespace-zaGKi6Qj.mjs";import{z as i}from"zod";import a from"node:path";import{createBusNamespace as o}from"@makaio/framework/core";import{ProviderDefinitionSchema as s,versionSatisfies as c}from"@makaio/framework/contracts";import{ToastSubjects as l}from"@makaio/framework/contracts/toast";import{ExtensionWarningSchema as u,getExtensionWarningActionLabel as d}from"@makaio/framework/contracts/extension";import{TrayMenuSubjects as f}from"@makaio/framework/services/tray-menu";const p=i.object({name:i.string(),displayName:i.string()}),m=o(`kernel:boot`,{getState:{request:i.object({}),response:i.object({complete:i.boolean(),completedCount:i.number(),totalCount:i.number(),currentService:i.string().optional(),failedServices:i.array(i.string()),skippedServices:i.array(i.string()).default([]),totalDurationMs:i.number().optional()})},"service.starting":p,"service.ready":p.extend({durationMs:i.number().int().nonnegative()}),"service.failed":p.extend({errorMessage:i.string()}),"service.skipped":p.extend({reason:i.string()}),progress:i.object({completedCount:i.number(),totalCount:i.number(),currentService:i.string().optional()}),complete:i.object({totalDurationMs:i.number(),failedServices:i.array(i.string())})}),h=m.subjects;var g=class extends Error{reason;constructor(e){super(e),this.name=`ServiceSkipError`,this.reason=e}},_=class{bus;state;cleanup;constructor(e,t){this.bus=e,this.state={complete:!1,completedCount:0,totalCount:t,failedServices:[],skippedServices:[],startedAt:Date.now()},this.cleanup=this.bus.on(h.getState,e=>{e.setResult({complete:this.state.complete,completedCount:this.state.completedCount,totalCount:this.state.totalCount,...this.state.currentService===void 0?{}:{currentService:this.state.currentService},failedServices:[...this.state.failedServices],skippedServices:[...this.state.skippedServices],...this.state.totalDurationMs===void 0?{}:{totalDurationMs:this.state.totalDurationMs}})})}dispose(){this.cleanup()}starting(e){this.state.currentService=e.displayName,this.state.currentServiceStartedAt=Date.now(),this.bus.emit(h.service.starting,e).catch(t=>{console.warn(`[ExtensionCoordinator] boot.service.starting emit failed for "${e.name}":`,t)})}ready(e){this.state.completedCount+=1;let t=this.state.currentServiceStartedAt===void 0?0:Math.max(0,Date.now()-this.state.currentServiceStartedAt);this.bus.emit(h.service.ready,{...e,durationMs:t}).catch(t=>{console.warn(`[ExtensionCoordinator] boot.service.ready emit failed for "${e.name}":`,t)}),this.emitProgress()}failed(e,t){this.state.completedCount+=1,this.state.failedServices.push(e.name),this.bus.emit(h.service.failed,{...e,errorMessage:t}).catch(t=>{console.warn(`[ExtensionCoordinator] boot.service.failed emit failed for "${e.name}":`,t)}),this.emitProgress()}skipped(e,t){this.state.completedCount+=1,this.state.skippedServices.push(e.name),this.bus.emit(h.service.skipped,{...e,reason:t}).catch(t=>{console.warn(`[ExtensionCoordinator] boot.service.skipped emit failed for "${e.name}":`,t)}),this.emitProgress()}complete(){this.state.complete=!0,delete this.state.currentService,delete this.state.currentServiceStartedAt,this.state.totalDurationMs=Date.now()-this.state.startedAt,this.bus.emit(h.complete,{totalDurationMs:this.state.totalDurationMs,failedServices:[...this.state.failedServices]}).catch(e=>{console.warn(`[ExtensionCoordinator] boot.complete emit failed:`,e)})}emitProgress(){this.bus.emit(h.progress,{completedCount:this.state.completedCount,totalCount:this.state.totalCount,...this.state.currentService===void 0?{}:{currentService:this.state.currentService}}).catch(e=>{console.warn(`[ExtensionCoordinator] boot.progress emit failed:`,e)})}};function ee(e){return{subject:`wiring.apply`,$meta:{namespace:`client:${e}`,isRequest:!0,local:!1,channel:!1,payload:{request:{},response:{}}}}}const v=`action`;function y(e,t){return`${e}:${t}`}function te(e,t,n){return e.on(l.interacted,r=>{let{toastId:i,actionId:a}=r.payload,o=y(i,a),s=t.get(o);s&&b(e,s,i,n).catch(e=>{console.error(`[ExtensionCoordinator] Warning action dispatch failed for toast "${i}":`,e)})})}async function b(e,t,n,r){switch(t.kind){case`configure-integration`:await S(e,t.clientId,n,r);break;case`open-url`:console.info(`[ExtensionCoordinator] Toast "${n}" open-url action not routable from runtime layer: ${t.url}`);break;case`run-command`:console.info(`[ExtensionCoordinator] Toast "${n}" run-command action not routable from runtime layer: ${t.command}`);break;case`install-extension`:console.info(`[ExtensionCoordinator] Toast "${n}" install-extension action not routable from runtime layer: ${t.extensionName}`);break;default:x(t)}}function x(e){throw Error(`[ExtensionCoordinator] Unsupported warning action: ${JSON.stringify(e)}`)}async function S(e,t,n,r){let i=ee(t),a=await e.requestOptional(i,{scope:`user`,makaioCommand:r});if(!a.handled){console.warn(`[ExtensionCoordinator] Toast "${n}" configure-integration: no wiring handler for client "${t}". Is the client package loaded?`);return}let{applied:o,skipped:s}=a.data;console.info(`[ExtensionCoordinator] Toast "${n}" configure-integration: wired client "${t}" — ${o} applied, ${s} skipped.`)}function C(e){return e.map(e=>({name:e.name,description:e.description,hasInteractive:!!e.interactive,subcommands:e.subcommands.map(e=>({name:e.name,description:e.description,args:n(e.schema)}))}))}async function w(e,t,n){let{command:r,subcommand:i,args:a}=e,o=t.find(e=>e.name===r);if(!o)return{exitCode:1,stdout:[],stderr:[`Unknown command: ${r}`]};let s=o.subcommands.find(e=>e.name===i);if(!s)return{exitCode:1,stdout:[],stderr:[`Unknown subcommand: ${i}`]};let c=s.schema.safeParse(a??{});if(!c.success)return{exitCode:1,stdout:[],stderr:[`Validation failed:`,...c.error.issues.map(e=>` ${e.path.join(`.`)||`(root)`}: ${e.message}`)]};if(o.beforeRun)try{let e=await o.beforeRun({subcommandName:i,args:c.data??{},bus:n});if(!e.proceed)return{exitCode:e.exitCode??1,stdout:[],stderr:[e.message]}}catch(e){return{exitCode:1,stdout:[],stderr:[`beforeRun hook failed: ${e instanceof Error?e.message:String(e)}`]}}let l=[],u=[],d={write:e=>l.push(e),error:e=>u.push(e)},f=0,p=new AbortController().signal;try{await s.handler({args:c.data,bus:n,output:d,signal:p,setExitCode:e=>{f=e}})}catch(e){f===0&&(f=1),u.push(e instanceof Error?e.message:String(e))}return{exitCode:f,stdout:l,stderr:u}}function T(e){let{pkg:t,state:n,error:r,enabled:i}=e;return{name:t.name,displayName:t.displayName,state:n,...t.surface===void 0?{}:{surface:t.surface},enabled:i,...t.browser===void 0?{}:{browser:t.browser},...r===void 0?{}:{error:r}}}function E(e){let n=[];return n.push(e.bus.on(r.list,t=>{t.setResult({extensions:e.list()})})),n.push(e.bus.on(r.get,t=>{let n=e.entries.get(t.payload.name);t.setResult({extension:n?T(n):null})})),n.push(e.bus.on(r.setEnabled,async t=>{let n=await e.handleSetEnabled(t.payload.name,t.payload.enabled);t.setResult({success:n})})),n.push(e.bus.on(r.contributions.catalog,t=>{let n=[],r=[];for(let[t,i]of e.entries)if(i.state===`active`){for(let e of i.pkg.providers??[])n.push({packageName:t,definition:s.parse(e)});for(let e of i.pkg.clients??[])r.push({packageName:t,definition:e})}t.setResult({providers:n,clients:r})})),n.push(e.bus.on(t.listContributions,t=>{t.setResult({contributions:C(e.cliContributions)})})),n.push(e.bus.on(t.execute,async t=>{t.setResult(await w(t.payload,e.cliContributions,e.bus))})),n.push(e.bus.on(r.warnings.list,t=>{let{extensionName:n}=t.payload;if(n!==void 0){let r=e.entries.get(n),i=r&&r.warnings.length>0?[{extensionName:n,warnings:[...r.warnings]}]:[];t.setResult({entries:i});return}let r=[];for(let[t,n]of e.entries)n.warnings.length>0&&r.push({extensionName:t,warnings:[...n.warnings]});t.setResult({entries:r})})),n}async function ne(e){for(let[t,n]of e.entries)n.state===`active`&&await O(e,t,n)}function re(e){if(e&&D(e))return[{id:v,label:d(e)}]}function D(e){return e.kind===`configure-integration`}function ie(e,t){let n=`${t}:`;for(let t of e.keys())t.startsWith(n)&&e.delete(t)}async function O(e,t,n){ie(e.warningActionMap,t);let r=n.warnings.filter(e=>e.severity===`degraded`);if(r.length!==0)for(let i=0;i<r.length;i++){let a=r[i];console.warn(`[${t}] ⚠ ${a.title}: ${a.message}`);let o=`${t}:${a.title}:${i}`,s=re(a.action);try{await e.bus.emit(l.show,{level:`warning`,title:a.title,message:`${n.pkg.displayName}: ${a.message}`,toastId:o,durationMs:null,...s&&{actions:s}}),a.action&&D(a.action)&&e.warningActionMap.set(y(o,v),a.action)}catch(e){console.warn(`[${t}] toast emission failed for warning "${a.title}":`,e)}}}function ae(e){return Object.freeze({extensionName:e})}function oe(e,t,n,r){if(!t)return;let i={...n??{},...r??{}};try{return t.parse(i)}catch(n){console.warn(`[ExtensionCoordinator] Config parse failed for "${e}", starting with schema defaults:`,n instanceof Error?n.message:n);try{return t.parse({})}catch{console.warn(`[ExtensionCoordinator] Fallback config parse also failed for "${e}" — config will be absent`);return}}}function k(e,t,n){let r;if(n.pkg.configSchema)try{r=e.loadConfig?.(t)}catch(e){console.error(`[ExtensionCoordinator] loadConfig threw for "${t}":`,e)}return oe(t,n.pkg.configSchema,n.configDefaults,r)}function A(e,t,n){if(!e.extensionContextBase)throw Error(`ExtensionCoordinator: extensionContextBase is required to start extensions with a create factory. Provide it via the constructor.`);return{...e.extensionContextBase,bus:e.bus,identity:t.identity,dataDir:a.join(e.extensionContextBase.makaioHome,t.identity.extensionName),getService:t=>e.getExtensionService(t.name),signal:e.signal,hasExtension:e.hasActiveExtension,...n===void 0?{}:{config:n}}}function j(e){return{adapters:!!e.adapters?.length,tools:!!e.tools,triggers:!!e.triggers,providers:!!e.providers?.length,clients:!!e.clients?.length,ui:!!e.ui,storage:!!e.storage,sessionEventActions:!!e.sessionEventActions}}function M(e,t,n){let i=t.state;t.state=n,e.emit(r.stateChanged,{name:t.pkg.name,displayName:t.pkg.displayName,from:i,to:n,...t.error===void 0?{}:{error:t.error},contributes:j(t.pkg)}).catch(e=>{console.error(`[ExtensionCoordinator] stateChanged emit failed for "${t.pkg.name}":`,e)})}async function N(e,t,n,r,i){i===`activated`?await P(e,t,n,r):await F(e,n)}async function P(e,t,n,r){let i=[];try{for(let a of e){if(a.filter&&!a.filter(r.pkg))continue;let e=A(t,r,k(t,n,r));await a.processActivated(n,r.pkg,e),i.push(a)}}catch(e){for(let e of i.reverse())if(e.processStopped)try{await e.processStopped(n)}catch(e){console.error(`[ExtensionCoordinator] Contribution processor rollback error for "${n}":`,e)}throw e}}async function F(e,t){for(let n of[...e].reverse())if(n.processStopped)try{await n.processStopped(t)}catch(e){console.error(`[ExtensionCoordinator] Contribution processor error (stopped) for "${t}":`,e)}}async function I(e,t,n){let i=e.entries.get(t);if(!i)return!1;let a=n?await L(e,t,i):await R(e,t,i),o=i.enabled===n;return!a&&!o||(await e.persistEnabled?.(t,n),!a)?!1:(e.bus.emit(r.enabledChanged,{name:t,enabled:n}).catch(e=>{console.error(`[ExtensionCoordinator] enabledChanged emit failed for "${t}":`,e)}),!0)}async function L(e,t,n){if(n.state!==`stopped`&&n.state!==`failed`&&n.state!==`skipped`)return!1;let{pkg:r}=n,i,a=(r.dependencies??[]).filter(t=>{if(t.optional)return!1;let n=e.entries.get(t.name);return!n||n.state!==`active`});if(a.length>0)return n.error=`Required dependencies not active: ${a.map(e=>e.name).join(`, `)}`,console.error(`[ExtensionCoordinator] Cannot re-enable "${t}":`,n.error),M(e.bus,n,`failed`),!1;n.enabled=!0,n.error=void 0,M(e.bus,n,`initializing`);let o=k(e,t,n);if(r.storage?.registerHandlers&&e.db!==void 0)try{let t=A(e,n,o),a=r.storage.registerHandlers(e.bus,e.db,t);typeof a==`function`&&(i=a,n.storageCleanup=a)}catch(r){return n.error=r instanceof Error?r.message:String(r),console.error(`[ExtensionCoordinator] Extension "${t}" storage re-registration failed:`,r),M(e.bus,n,`failed`),!1}if(r.create){let a;try{let t=A(e,n,o);a=await r.create(t),await a.init?.(),n.service=a}catch(r){return await z(t,a,i,n),r instanceof g?n.pkg.critical?(n.error=`Critical extension cannot skip startup: ${r.reason}`,console.error(`[ExtensionCoordinator] Extension "${t}" failed to re-initialize:`,n.error),M(e.bus,n,`failed`),!1):(n.error=r.reason,M(e.bus,n,`skipped`),!1):(n.error=r instanceof Error?r.message:String(r),console.error(`[ExtensionCoordinator] Extension "${t}" failed to re-initialize:`,r),M(e.bus,n,`failed`),!1)}}try{await N(e.contributionProcessors,e,t,n,`activated`)}catch(r){return await z(t,n.service,i,n),n.service=void 0,n.error=r instanceof Error?r.message:String(r),console.error(`[ExtensionCoordinator] Extension "${t}" contribution processing failed:`,r),M(e.bus,n,`failed`),!1}return M(e.bus,n,`active`),await e.runHealthCheck(t),await e.emitWarningsForEntry(t,n),!0}async function R(e,t,n){if(n.state!==`active`)return!1;let i=Array.from(e.entries.entries()).filter(([e,n])=>e===t||n.state!==`active`?!1:n.pkg.dependencies?.some(e=>!e.optional&&e.name===t)??!1).map(([e])=>e);if(i.length>0)return n.error=`Cannot disable "${t}" while active dependents remain: ${i.join(`, `)}`,console.error(`[ExtensionCoordinator] ${n.error}`),!1;if(n.enabled=!1,n.error=void 0,await N(e.contributionProcessors,e,t,n,`stopped`),n.service)try{await n.service.destroy?.()}catch(e){console.error(`[ExtensionCoordinator] Error during disable destroy of "${t}":`,e)}finally{n.service=void 0}if(n.storageCleanup)try{n.storageCleanup()}catch(e){console.error(`[ExtensionCoordinator] Storage cleanup error during disable of "${t}":`,e)}finally{n.storageCleanup=void 0}M(e.bus,n,`stopped`),n.warnings=[];try{await e.bus.emit(r.warnings.changed,{extensionName:t,warnings:[]})}catch(e){console.error(`[ExtensionCoordinator] warnings.changed emit failed for "${t}":`,e)}return!0}async function z(e,t,n,r){try{await t?.destroy?.()}catch(t){console.error(`[ExtensionCoordinator] Service cleanup error after failed enable of "${e}":`,t)}try{n?.()}catch(t){console.error(`[ExtensionCoordinator] Storage cleanup error after failed enable of "${e}":`,t)}finally{r.storageCleanup=void 0}}function B(e){let t=new Map;for(let n of e)t.has(n.name)&&(console.info(`[ExtensionCoordinator] Extension "${n.name}" overrides an earlier registration`),t.delete(n.name)),t.set(n.name,n);return[...t.values()]}function V(e,t,n){let r=new Set(e.map(e=>e.name)),i=e.filter(e=>H(e,t,n)),a=new Map(i.map(e=>[e.name,e])),o=new Set(a.keys()),s=!0;for(;s;){s=!1;for(let e of o)(a.get(e).dependencies??[]).some(e=>!e.optional&&r.has(e.name)&&!o.has(e.name))&&(o.delete(e),s=!0)}return i.filter(e=>o.has(e.name))}function H(e,t,n){if(!W(e,t))return!1;let r=e.requires;return!r||r.length===0||!n?!0:r.every(e=>{switch(e.type){case`host`:return n.hosts.has(e.id);case`capability`:return n.capabilities.has(e.id)?e.version===void 0?!0:U(n,e.id,e.version):!1}})}function U(e,t,n){let r=e.capabilityVersions?.get(t);return r!==void 0&&c(r,n)}function W(e,t){return e.surface===void 0||e.surface===`any`||e.surface===t}function G(e){let t=K(e);return q(e,t,new Map(e.map(e=>[e.name,e]))),le(t,ce(e,t))}function K(e){let t=new Set;for(let n of e){if(t.has(n.name))throw Error(`ExtensionCoordinator: duplicate package name detected: "${n.name}"`);t.add(n.name)}return t}function q(e,t,n){for(let r of e)se(r,t,n)}function se(e,t,n){let r=e.dependencies??[],i=r.filter(e=>!e.optional&&!t.has(e.name));if(i.length>0)throw Error(`ExtensionCoordinator: package "${e.name}" declares missing dependencies: ${i.map(e=>e.name).join(`, `)}`);for(let t of r){let r=n.get(t.name);if(r===void 0)continue;let i=r.version;if(!c(i,t.version))throw Error(`ExtensionCoordinator: package "${e.name}" dependency "${t.name}" version ${i} does not satisfy ${t.version}`)}}function ce(e,t){let n=new Map;for(let r of e){let e=(r.dependencies??[]).filter(e=>t.has(e.name)).map(e=>e.name);n.set(r.name,new Set(e))}return n}function le(e,t){let n=[];for(let[e,r]of t)r.size===0&&n.push(e);let r=[],i=new Set;for(;n.length>0;){let e=n.shift();if(!i.has(e)){i.add(e),r.push(e);for(let[r,a]of t)a.has(e)&&(a.delete(e),a.size===0&&!i.has(r)&&n.push(r))}}if(r.length!==e.size){let t=[...e].filter(e=>!i.has(e));throw Error(`ExtensionCoordinator: circular dependency detected among: ${t.join(`, `)}`)}return r}async function ue(e){if(!e.runMigrations)return;let t=[];for(let n of e.loadOrder){let r=e.entries.get(n);if(!r)throw Error(`Extension "${n}" is in loadOrder but missing from entries`);let i=r.pkg.storage?.migrations;if(!i)continue;let a=de(n,r.pkg,i);t.push({name:n,migrationsPath:a,migrationSourceId:r.pkg.storage?.migrationSourceId??a})}t.length!==0&&await e.runMigrations(t)}function de(e,t,n){if(a.isAbsolute(n))return n;let r=t.storage?.packageRoot;if(!r)throw Error(`Extension "${e}" declares relative storage.migrations "${n}" without storage.packageRoot`);let i=a.resolve(r),o=a.resolve(i,n),s=a.relative(i,o);if(s.startsWith(`..`)||a.isAbsolute(s))throw Error(`Extension "${e}" declares storage.migrations "${n}" outside storage.packageRoot`);return o}async function J(e,t){let n=e.entries.get(t);if(!n?.service||n.state!==`active`)return;let{checkHealth:i}=n.service;if(!i)return;let a;try{let e=await i.call(n.service),r=u.array().safeParse(e);r.success?a=r.data:(console.error(`[ExtensionCoordinator] checkHealth for "${t}" returned invalid data:`,r.error),a=[])}catch(e){console.error(`[ExtensionCoordinator] checkHealth threw for "${t}":`,e),a=[]}n.warnings=a;try{await e.bus.emit(r.warnings.changed,{extensionName:t,warnings:[...a]})}catch(e){console.error(`[ExtensionCoordinator] warnings.changed emit failed for "${t}":`,e)}}function fe(e,t){if(t.windows)for(let n of t.windows)e.windowRegistry.register(t.name,t.displayName,n);if(t.tray&&e.trayEntries.push({...t.tray,packageName:t.name}),t.cli){let n=t.cli;`subcommands`in n&&e.cliContributions.push(n)}}function Y(e){return Array.from(e.values()).filter(e=>e.enabled).map(e=>e.pkg).filter(e=>!!e.http)}async function pe(e){let t=[...e.loadOrder].reverse();for(let n of t){let t=e.entries.get(n);if(t){if(t.state===`active`&&await N(e.contributionProcessors,e.contextHost,n,t,`stopped`),t.service)try{await t.service.destroy?.()}catch(e){console.error(`[ExtensionCoordinator] Error during shutdown of "${n}":`,e)}finally{t.service=void 0}if(t.storageCleanup)try{t.storageCleanup()}catch(e){console.error(`[ExtensionCoordinator] Storage cleanup error for "${n}":`,e)}finally{t.storageCleanup=void 0}t.state===`active`&&M(e.contextHost.bus,t,`stopped`)}}}async function me(e,t){if(!t.tray)return;let n=he(t);await e.request(f.register,{entry:n})}function he(e){let t=e.tray;if(!t)throw Error(`[tray-menu-entry-bridge] extension "${e.name}" does not declare a tray entry`);return{packageName:e.name,entryId:t.opensWindow??t.action??`default`,label:t.label,section:t.section??`views`,priority:50,enabled:!0,metadata:t.opensWindow?{registrationId:`${e.name}:${t.opensWindow}`}:t.action?{action:t.action}:void 0}}async function ge(e,t,n){if(!n.enabled){M(e.bus,n,`skipped`),e.bootProgress.skipped(n.pkg,`disabled`);return}let r=(n.pkg.dependencies??[]).filter(t=>t.optional?!1:e.entries.get(t.name)?.state!==`active`);if(r.length>0){let i=`Required dependencies not active: ${r.map(e=>e.name).join(`, `)}`;if(Q(e,t,n,i),n.pkg.critical)throw Error(`Critical package "${t}" failed: ${i}`);return}e.bootProgress.starting(n.pkg),M(e.bus,n,`initializing`);let i=k(e.contextHost,t,n);if(ye(e,t,n,i)){if(!n.pkg.create){await _e(e,t,n);return}await ve(e,t,n,i)}}async function _e(e,t,n){try{await N(e.contributionProcessors,e.contextHost,t,n,`activated`)}catch(r){if(Z(t,n),X(e,t,n,r))return;if(Q(e,t,n,r instanceof Error?r.message:String(r)),n.pkg.critical)throw r;return}M(e.bus,n,`active`),e.bootProgress.ready(n.pkg),await $(e.bus,t,n)}async function ve(e,t,n,r){let i;try{let a=A(e.contextHost,n,r);i=await n.pkg.create(a),await i.init?.(),n.service=i,await N(e.contributionProcessors,e.contextHost,t,n,`activated`),M(e.bus,n,`active`),e.bootProgress.ready(n.pkg),await $(e.bus,t,n)}catch(r){try{await i?.destroy?.()}catch(e){console.error(`[ExtensionCoordinator] Service cleanup error after failed start of "${t}":`,e)}if(n.service=void 0,Z(t,n),X(e,t,n,r))return;if(Q(e,t,n,r instanceof Error?r.message:String(r)),n.pkg.critical)throw r}}function X(e,t,n,r){if(!(r instanceof g))return!1;if(n.pkg.critical){let i=`Critical package cannot skip startup: ${r.reason}`;throw Q(e,t,n,i),Error(`Critical package "${t}" failed: ${i}`,{cause:r})}return n.error=r.reason,console.info(`[ExtensionCoordinator] Package "${t}" skipped: ${r.reason}`),M(e.bus,n,`skipped`),e.bootProgress.skipped(n.pkg,r.reason),!0}function ye(e,t,n,r){if(!n.pkg.storage?.registerHandlers||e.db===void 0)return!0;try{let t=A(e.contextHost,n,r),i=n.pkg.storage.registerHandlers(e.bus,e.db,t);return i&&(n.storageCleanup=i),!0}catch(r){let i=r instanceof Error?r.message:String(r);if(console.error(`[ExtensionCoordinator] Package "${t}" storage registration failed:`,r),Q(e,t,n,i),n.pkg.critical)throw r;return!1}}function Z(e,t){if(t.storageCleanup)try{t.storageCleanup()}catch(t){console.error(`[ExtensionCoordinator] Storage cleanup error after failed start of "${e}":`,t)}finally{t.storageCleanup=void 0}}function Q(e,t,n,r){n.error=r,console.error(`[ExtensionCoordinator] Package "${t}" failed:`,r),M(e.bus,n,`failed`),e.bootProgress.failed(n.pkg,r)}async function $(e,t,n){try{await me(e,n.pkg)}catch(e){console.warn(`[ExtensionCoordinator] Failed to register tray entry for ${t}:`,e)}}var be=class{bus;surface;db;extensionContextBase;runtimeEnvironment;shutdownController=new AbortController;entries=new Map;loadOrder=[];loaded=!1;started=!1;rpcCleanups=[];contributionProcessors=[];warningActionMap=new Map;windowRegistry=new e;_trayEntries=[];_cliContributions=[];persistEnabled;loadEnabled;loadConfig;runMigrations;constructor(e,t={}){this.bus=e,this.surface=t.surface??`headless`,this.db=t.db,this.extensionContextBase=t.extensionContextBase,this.runtimeEnvironment=t.runtimeEnvironment,this.persistEnabled=t.persistEnabled,this.loadEnabled=t.loadEnabled,this.loadConfig=t.loadConfig,this.runMigrations=t.runMigrations,this.rpcCleanups.push(te(this.bus,this.warningActionMap,t.launcherCommand??`makaio`))}get trayEntries(){return this._trayEntries.map(e=>({...e}))}get cliContributions(){return this._cliContributions}extensionsWithHttp(){return Y(this.entries)}load(e,t){if(this.loaded)throw Error(`ExtensionCoordinator.load() called twice. The coordinator is single-use; create a new instance if needed.`);let n=B(V(e,this.surface,this.runtimeEnvironment));this.loadOrder=G(n);for(let e of this.loadOrder){let r=n.find(t=>t.name===e),i={pkg:r,identity:ae(r.name),state:`discovered`,enabled:this.loadEnabled?.(e)!==!1,warnings:[]};if(t){let n=t.get(e);n&&(i.configDefaults=n)}this.entries.set(e,i),r.namespaces&&this.bus.registerNamespaces(r.namespaces),fe({windowRegistry:this.windowRegistry,trayEntries:this._trayEntries,cliContributions:this._cliContributions},r)}this.rpcCleanups.push(...E({bus:this.bus,entries:this.entries,cliContributions:this._cliContributions,list:()=>this.list(),handleSetEnabled:(e,t)=>this.handleSetEnabled(e,t)})),this.loaded=!0}async startAll(){if(!this.loaded)throw Error(`ExtensionCoordinator.startAll() called before load(). Call load() first.`);if(this.started)throw Error(`ExtensionCoordinator.startAll() called twice. The coordinator is single-use; create a new instance if needed.`);this.started=!0;let e=new _(this.bus,this.loadOrder.length);this.rpcCleanups.push(()=>e.dispose());try{await ue({loadOrder:this.loadOrder,entries:this.entries,runMigrations:this.runMigrations});for(let t of this.loadOrder){let n=this.entries.get(t);n&&await ge({bus:this.bus,db:this.db,entries:this.entries,contributionProcessors:this.contributionProcessors,contextHost:this.createExtensionContextHost(),bootProgress:e},t,n)}let t=this.createExtensionHealthHost();await Promise.all(this.loadOrder.map(e=>this.entries.get(e)?.state===`active`?J(t,e):void 0)),await ne({bus:this.bus,entries:this.entries,warningActionMap:this.warningActionMap})}finally{e.complete()}}async shutdown(){this.shutdownController.abort();for(let e of this.rpcCleanups)e();this.rpcCleanups=[],this.warningActionMap.clear(),await pe({entries:this.entries,loadOrder:this.loadOrder,contributionProcessors:this.contributionProcessors,contextHost:this.createExtensionContextHost()})}list(){return[...this.entries.values()].map(e=>T(e))}getExtensionService(e){let t=typeof e==`string`?e:e.name;return this.entries.get(t)?.service}getExtension(e){return this.entries.get(e)?.pkg}forEachActiveExtension(e){let t=this.createExtensionContextHost();for(let n of this.loadOrder){let r=this.entries.get(n);if(!r||r.state!==`active`)continue;let i=A(t,r,k(t,n,r));e(n,r.pkg,i)}}forExtension(e,t){let n=this.entries.get(e);if(!n||n.state!==`active`)return;let r=this.createExtensionContextHost(),i=A(r,n,k(r,e,n));t(e,n.pkg,i)}registerContributionProcessor(e){return this.contributionProcessors.push(e),()=>{let t=this.contributionProcessors.indexOf(e);t>=0&&this.contributionProcessors.splice(t,1)}}async handleSetEnabled(e,t){return I({bus:this.bus,db:this.db,entries:this.entries,extensionContextBase:this.extensionContextBase,loadConfig:this.loadConfig,signal:this.shutdownController.signal,hasActiveExtension:e=>this.hasActiveExtension(e),persistEnabled:this.persistEnabled,contributionProcessors:this.contributionProcessors,getExtensionService:e=>this.getExtensionService(e),runHealthCheck:e=>J(this.createExtensionHealthHost(),e),emitWarningsForEntry:(e,t)=>O({bus:this.bus,entries:this.entries,warningActionMap:this.warningActionMap},e,t)},e,t)}createExtensionContextHost(){return{bus:this.bus,extensionContextBase:this.extensionContextBase,loadConfig:this.loadConfig,signal:this.shutdownController.signal,hasActiveExtension:e=>this.hasActiveExtension(e),getExtensionService:e=>this.getExtensionService(e)}}createExtensionHealthHost(){return{bus:this.bus,entries:this.entries}}hasActiveExtension(e){return this.entries.get(e)?.state===`active`}};export{m as a,g as i,B as n,h as o,V as r,be as t};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
import{n as e}from"./definition-DkYy1PZz.mjs";import{n as t,t as n}from"./version-CjS20oXi.mjs";import{z as r}from"zod";const i=r.object({entrypoint:r.string().startsWith(`/`,{message:`Entrypoint must be a URL path starting with "/"`})}),a=r.object({endpoint:r.string().url().optional()}),o=r.union([e,r.object({anthropic:a.optional(),openai:a.optional()}).refine(e=>Object.keys(e).length>0,{message:`ProtocolRef config object must specify at least one protocol`})]),s=r.object({id:r.string().min(1),version:t,binaryVersion:t.optional()}),c=r.object({name:r.string().min(1),displayName:r.string().min(1).optional(),description:r.string().optional(),clients:r.array(s).readonly().optional(),protocols:r.array(o).min(1).readonly(),defaultProvider:r.string().min(1).optional()}),l=r.object({id:r.string().min(1),name:r.string().min(1),description:r.string().optional(),binary:r.object({name:r.string().min(1)}).strict().optional()}).strict(),u=r.object({id:r.string().min(1),name:r.string().min(1),description:r.string().optional()}),d=r.object({prefix:r.string().min(1),description:r.string().optional(),stage:r.enum([`gather`,`transform`,`action`]).optional()}),f=r.object({adapterName:r.string().min(1),displayName:r.string().min(1),logFilePattern:r.string().min(1).optional()}),p=r.object({id:r.string().min(1),label:r.string().min(1),description:r.string().optional(),icon:r.string().min(1).optional(),selectionMode:r.enum([`single`,`multi`]),messageRoles:r.array(r.enum([`user`,`assistant`])).readonly().optional()}),m=r.object({tiles:r.boolean().optional(),widgets:r.boolean().optional(),pages:r.boolean().optional(),routes:r.boolean().optional()}),h={adapters:`adapter`,clients:`client`,providers:`provider`,triggers:`trigger`,logImporters:`log importer`,sessionEventActions:`session event action`};function g(e,t,n){e.addIssue({code:r.ZodIssueCode.custom,path:[t],message:`Duplicate ${h[t]} contribution identifier "${n}"`})}function _(e,t){let n=new Set,r=new Set,i=[];for(let a of e??[]){let e=t(a);if(n.has(e)){r.has(e)||(r.add(e),i.push(e));continue}n.add(e)}return i}const v=r.object({adapters:r.array(c).readonly().optional(),clients:r.array(l).readonly().optional(),providers:r.array(u).readonly().optional(),triggers:r.array(d).readonly().optional(),logImporters:r.array(f).readonly().optional(),sessionEventActions:r.array(p).readonly().optional(),create:r.boolean().optional(),tools:r.boolean().optional(),bootstrap:r.boolean().optional(),namespace:r.boolean().optional(),configSchema:r.boolean().optional(),uiConfig:r.boolean().optional(),ui:m.optional()}).superRefine((e,t)=>{for(let n of _(e.adapters,e=>e.name))g(t,`adapters`,n);for(let n of _(e.clients,e=>e.id))g(t,`clients`,n);for(let n of _(e.providers,e=>e.id))g(t,`providers`,n);for(let n of _(e.triggers,e=>e.prefix))g(t,`triggers`,n);for(let n of _(e.logImporters,e=>e.adapterName))g(t,`logImporters`,n);for(let n of _(e.sessionEventActions,e=>e.id))g(t,`sessionEventActions`,n)}),y=r.string().trim().min(1).transform(e=>e),b=r.object({name:r.string().min(1),required:r.boolean().optional()}),x=r.object({id:r.string(),style:r.enum([`tray-popover`,`utility`,`panel`]),width:r.number().optional(),height:r.number().optional(),singleton:r.boolean().optional(),params:r.array(b).readonly().optional()}).superRefine((e,t)=>{let n=new Set;for(let[i,a]of e.params?.entries()??[]){if(!n.has(a.name)){n.add(a.name);continue}t.addIssue({code:r.ZodIssueCode.custom,message:`Duplicate window param "${a.name}"`,path:[`params`,i,`name`]})}}),S=r.object({label:r.string(),section:r.enum([`utilities`,`tools`,`views`]).optional(),opensWindow:r.string().optional(),action:r.string().optional()}),C=r.object({name:r.string().min(1),description:r.string(),required:r.boolean().optional(),positional:r.boolean().optional(),short:r.string().regex(/^-[A-Za-z0-9]$/,`Expected a short flag like -p`).optional(),type:r.enum([`string`,`boolean`,`number`]).optional()}),w=r.object({name:r.string().min(1),description:r.string(),args:r.array(C).readonly().optional()}),T=r.object({name:r.string().min(1),description:r.string(),subcommands:r.array(w).readonly().optional(),hasInteractive:r.boolean().optional()}),E=r.string().min(1).refine(e=>!/^(?:[\\/]|[A-Za-z]:)/.test(e),`Expected a relative path`).refine(e=>!e.split(/[\\/]/).some(e=>e===``||e===`.`||e===`..`),`Path must not contain empty or dot segments`),D=r.object({migrations:E.optional(),migrationSourceId:r.string().min(1).optional()}),O=r.object({type:r.literal(`extension`),name:r.string().min(1),version:t,optional:r.boolean().optional()});function k(e,t=`>=0.1.0`,n){return n===void 0?{type:`extension`,name:e,version:t}:{type:`extension`,name:e,version:t,optional:n}}const A=r.discriminatedUnion(`type`,[r.object({type:r.literal(`host`),id:r.string().min(1)}),r.object({type:r.literal(`capability`),id:r.string().min(1),version:t.optional()})]),j=r.object({name:r.string().min(1).regex(/^(@[^/\\]+\/)?[^/\\]+$/,`Extension name must be a plain identifier or an npm-scoped name (@scope/pkg)`).refine(e=>(e.startsWith(`@`)?e.split(`/`):[e]).every(e=>e!==`.`&&e!==`..`),`Extension name must not be a dot-segment`),displayName:r.string().min(1),version:n,surface:r.enum([`interactive`,`headless`,`any`]).optional(),dependencies:r.array(O).readonly().optional(),requires:r.array(A).readonly().optional(),provides:r.array(y).readonly().optional(),windows:r.array(x).readonly().optional(),tray:S.optional(),cli:T.optional(),storage:D.optional(),browser:i.optional(),contributions:v.optional()});function M(e){return Object.freeze({name:e})}const N=r.object({command:r.string().min(1),args:r.array(r.string()).optional(),env:r.record(r.string(),r.string()).optional(),healthTimeoutMs:r.number().int().positive().optional(),shutdownTimeoutMs:r.number().int().positive().optional()}),P=r.enum([`none`,`on-crash`,`always`]),F=N.extend({restartPolicy:P.optional()}),I=r.discriminatedUnion(`type`,[F.extend({type:r.literal(`bus-stdio`)}),F.extend({type:r.literal(`bus-websocket`)}),N.extend({type:r.literal(`mcp-stdio`)})]);function L(e){if(e.includes(`\\`)||e.startsWith(`./`)||e.startsWith(`../`)||e.startsWith(`/`))return!1;let t=e.split(`/`),n=t.at(-1);return!n||n.includes(`.`)?!1:t.every(e=>e!==``&&e!==`.`&&e!==`..`&&e!==`src`&&e!==`dist`)}const R=r.union([r.literal(!0),r.string().min(1).refine(L,{message:`entrypoint stem must use forward-slash path stems, must not contain empty, . or .. segments, must not include a dotted final segment, and must not contain src or dist segments`})]),z=r.object({server:R.optional(),browser:R.optional(),cli:R.optional()}).refine(e=>e.server!==void 0||e.browser!==void 0||e.cli!==void 0,{message:`at least one entrypoint must be declared`});function B(e){return e.execution===`detached`}const V=j.extend({version:n,makaio:r.object({framework:t}).strict().readonly(),entrypoints:z.optional(),execution:r.enum([`embedded`,`detached`]).optional(),transport:I.optional(),config:r.object({defaults:r.record(r.string(),r.unknown()).optional()}).optional()}).superRefine((e,t)=>{e.execution===`detached`?(e.transport===void 0&&t.addIssue({code:r.ZodIssueCode.custom,message:`detached extensions must declare a 'transport' config`,path:[`transport`]}),e.entrypoints!==void 0&&t.addIssue({code:r.ZodIssueCode.custom,message:`detached extensions must not declare entrypoints`,path:[`entrypoints`]})):(e.entrypoints===void 0&&t.addIssue({code:r.ZodIssueCode.custom,message:`embedded extensions must declare at least one entrypoint`,path:[`entrypoints`]}),e.transport!==void 0&&t.addIssue({code:r.ZodIssueCode.custom,message:`embedded extensions must not declare a transport config`,path:[`transport`]}))});function H(e){return e}function U(e){return H(V.parse(e))}function W(e){let t=V.safeParse(e);return t.success?{success:!0,data:H(t.data)}:t}const G=r.discriminatedUnion(`kind`,[r.object({kind:r.literal(`configure-integration`),clientId:r.string().min(1),bundle:r.string().min(1)}),r.object({kind:r.literal(`install-extension`),extensionName:r.string().min(1)}),r.object({kind:r.literal(`open-url`),url:r.string().url()}),r.object({kind:r.literal(`run-command`),command:r.string().min(1)})]),K=r.enum([`info`,`recommended`,`degraded`]),q=r.object({severity:K,title:r.string().min(1),message:r.string().min(1),action:G.optional()});function J(e){switch(e.kind){case`configure-integration`:return`Configure`;case`install-extension`:return`Install`;case`open-url`:return`Open`;case`run-command`:return`Run`}}const Y=r.object({extensionName:r.string().min(1),warnings:r.array(q)});function X(e,t){return e.parse(t??{})}function Z(e){return JSON.stringify([e.extensionId,e.type,e.name,e.filename])}export{v as A,x as C,s as D,y as E,p as F,d as I,m as L,a as M,o as N,c as O,u as P,i as R,S,k as T,w as _,q as a,A as b,I as c,B as d,U as f,T as g,C as h,Y as i,f as j,l as k,V as l,M as m,X as n,K as o,W as p,G as r,J as s,Z as t,z as u,O as v,b as w,D as x,j as y};
|