@makaio/framework 1.0.0-dev-1779051654000 → 1.0.0-dev-1781023871421
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 +1 -1
- package/dist/.makaio-build.json +5 -0
- package/dist/account-identity-DT5NOtFi.mjs +1 -0
- package/dist/adapter-C1eI-fGV.mjs +1 -0
- package/dist/adapters/acp-client/index.d.mts +6013 -14
- package/dist/adapters/acp-client/index.mjs +3 -1
- package/dist/adapters/config/index.d.mts +1 -1
- package/dist/adapters/config/index.mjs +1 -1
- package/dist/adapters/index.d.mts +47 -20
- package/dist/adapters/index.mjs +13 -6
- package/dist/adapters/node.d.mts +4 -4
- package/dist/adapters/node.mjs +4 -4
- package/dist/adapters/stream-session/index.d.mts +30 -0
- package/dist/adapters/stream-session/index.mjs +1 -1
- package/dist/artifact-B3npq1cy.mjs +1 -0
- package/dist/bus/index.d.mts +866 -203
- package/dist/bus/index.mjs +1 -1
- package/dist/bus-Caz3Jpbc.mjs +1 -0
- package/dist/bus-Hb-LGzgb.mjs +2 -0
- package/dist/chunk-DTipWd-i.mjs +1 -0
- package/dist/client-bx74gm4R.mjs +1 -0
- package/dist/clients/index.d.mts +113 -35
- package/dist/clients/index.mjs +2 -2
- package/dist/{clients-namespace-UHj5wt-l.d.mts → clients-namespace-GmSJpBUV.d.mts} +8 -8
- package/dist/{config-namespace-ChZOpi1W.d.mts → config-namespace-CPY9YsR8.d.mts} +4 -4
- package/dist/contracts/adapter/index.d.mts +3 -3
- package/dist/contracts/adapter/index.mjs +1 -1
- package/dist/contracts/adapter/schemas/session-lineage.d.mts +1 -1
- package/dist/contracts/artifact/index.d.mts +2 -0
- package/dist/contracts/artifact/index.mjs +1 -0
- package/dist/contracts/client/index.d.mts +2 -2
- package/dist/contracts/client/index.mjs +1 -1
- package/dist/contracts/common/index.d.mts +1 -1
- package/dist/contracts/config/index.d.mts +8 -8
- package/dist/contracts/config/index.mjs +1 -1
- package/dist/contracts/extension/index.d.mts +4 -3
- package/dist/contracts/extension/index.mjs +1 -1
- package/dist/contracts/facet/index.d.mts +2 -0
- package/dist/contracts/facet/index.mjs +1 -0
- package/dist/contracts/harness/index.d.mts +1 -1
- package/dist/contracts/harness/index.mjs +1 -1
- package/dist/contracts/host/index.d.mts +1 -1
- package/dist/contracts/host/index.mjs +1 -1
- package/dist/contracts/index.d.mts +12370 -1990
- package/dist/contracts/index.mjs +1 -1
- package/dist/contracts/materialization/index.d.mts +4 -0
- package/dist/contracts/materialization/index.mjs +1 -0
- package/dist/contracts/model-registry/index.d.mts +1 -1
- package/dist/contracts/model-registry/index.mjs +1 -1
- package/dist/contracts/native-session-supervisor/index.d.mts +1 -1
- package/dist/contracts/native-session-supervisor/index.mjs +1 -1
- package/dist/contracts/platform/index.d.mts +1 -1
- package/dist/contracts/platform/index.mjs +1 -1
- package/dist/contracts/provider/index.d.mts +2 -2
- package/dist/contracts/provider/index.mjs +1 -1
- package/dist/contracts/session/index.d.mts +3 -3
- package/dist/contracts/session/index.mjs +1 -1
- package/dist/contracts/shared/index.d.mts +2 -2
- package/dist/contracts/shared/index.mjs +1 -1
- package/dist/contracts/skill/index.d.mts +1 -1
- package/dist/contracts/skill/index.mjs +1 -1
- package/dist/contracts/telemetry/index.d.mts +2 -0
- package/dist/contracts/telemetry/index.mjs +1 -0
- package/dist/contracts/timeout/index.d.mts +1 -1
- package/dist/contracts/timeout/index.mjs +1 -1
- package/dist/contracts/toast/index.d.mts +2 -2
- package/dist/contracts/toast/index.mjs +1 -1
- package/dist/contracts/variant/index.d.mts +1 -1
- package/dist/contracts/variant/index.mjs +1 -1
- package/dist/core/index.d.mts +296 -34
- package/dist/core/index.mjs +1 -1
- package/dist/{credential-ref-DLCsoKVZ.mjs → credential-ref-YWQQENEo.mjs} +1 -1
- package/dist/cursor-storage-CtVJ3JzB.mjs +1 -0
- package/dist/{definition-DB7bbFSa.d.mts → definition-BLCdXGzh.d.mts} +17 -3
- package/dist/definition-CrgHIpTK.d.mts +60 -0
- package/dist/{definition-DkYy1PZz.mjs → definition-DZMXOnjX.mjs} +1 -1
- package/dist/{definition-DtUNiGom.d.mts → definition-pkJ6szUl.d.mts} +1 -1
- package/dist/drizzle-Eq8W1EbD.mjs +1 -0
- package/dist/event-Ca2yUf5i.mjs +1 -0
- package/dist/execution-target-CRPTfZlc.mjs +1 -0
- package/dist/extension-C-4BHMRI.mjs +1 -0
- package/dist/extension-CpIUgBKI.mjs +1 -0
- package/dist/facet-BuwhrThl.mjs +1 -0
- package/dist/filesystem-service-B8rhBRgB.mjs +1 -0
- package/dist/filesystem-service-p_iJVHd4.d.mts +66 -0
- package/dist/git/index.d.mts +210 -0
- package/dist/git/index.mjs +18 -0
- package/dist/globby-rtWVaFHv.mjs +41 -0
- package/dist/{handlers-DR_4_rAT.mjs → handlers-CkTsQLra.mjs} +3 -3
- package/dist/{harness-B6lGP9rm.mjs → harness-BRCMcvQN.mjs} +1 -1
- package/dist/{host-CvEht5RT.mjs → host-Br9VuOyr.mjs} +1 -1
- package/dist/{index-WKjrpcA_.d.mts → index-472sOmsW.d.mts} +6 -6
- package/dist/index-8SZkg7s6.d.mts +353 -0
- package/dist/index-B3PK4FIn.d.mts +5116 -0
- package/dist/{index-D2jejYlV.d.mts → index-B80L4YqA.d.mts} +3 -3
- package/dist/index-BFg9BUpx.d.mts +355 -0
- package/dist/index-BGfWS6GE.d.mts +483 -0
- package/dist/{index-DQRsGXb5.d.mts → index-BVgfS-AJ.d.mts} +2 -2
- package/dist/{index-CnmPtjnA.d.mts → index-B_zQC98V.d.mts} +16 -16
- package/dist/{index-DaEp4UWW.d.mts → index-Bh_Ne7LF.d.mts} +54 -42
- package/dist/{index-yvN8UcEH.d.mts → index-Bvb2mMH6.d.mts} +109 -109
- package/dist/{index-tKvu34DJ2.d.mts → index-CCGVh9BF2.d.mts} +242 -28
- package/dist/{index-C-myW_aK.d.mts → index-CGmcS0Ma.d.mts} +2 -2
- package/dist/{index-DEw90pa2.d.mts → index-CLpjm52M.d.mts} +3 -3
- package/dist/{index-DQWMu5fS.d.mts → index-Caig6TeF.d.mts} +85 -99
- package/dist/{index-DwCA1HWa.d.mts → index-CelJCBjk.d.mts} +15 -15
- package/dist/{index-ESSDWIB7.d.mts → index-ChunCFu4.d.mts} +1 -1
- package/dist/{index-e5C62_M3.d.mts → index-Cm0dUkWL.d.mts} +819 -85
- package/dist/{index-N5K1NOYs.d.mts → index-CokQYGVP.d.mts} +4 -4
- package/dist/{index-Bigx81Kr.d.mts → index-Cs0kZXIz2.d.mts} +1 -1
- package/dist/{index-6lyShOoU.d.mts → index-D5d5HeWI2.d.mts} +34 -0
- package/dist/{index-sBob9D25.d.mts → index-D90OmGmV.d.mts} +3 -3
- package/dist/{index-D1T-PPqF.d.mts → index-D9MwJ2Q8.d.mts} +3 -3
- package/dist/{index-BePI0ckL.d.mts → index-DANINzMu.d.mts} +1 -1
- package/dist/{index-BnSQE7z7.d.mts → index-DBw-89vC2.d.mts} +129 -1332
- package/dist/{index-C_kS2aqV2.d.mts → index-DGBu6bHi2.d.mts} +14 -14
- package/dist/index-DKC62dY5.d.mts +146 -0
- package/dist/{index-7sXlairn2.d.mts → index-DKia0MX1.d.mts} +1 -1
- package/dist/{index-E8d_RwaF.d.mts → index-DMKnON5s.d.mts} +1 -1
- package/dist/{index-Cq8B7cwK.d.mts → index-DUaw0Dw8.d.mts} +1524 -369
- package/dist/{index-Dd5s4MSm.d.mts → index-De3kPhlN.d.mts} +2 -2
- package/dist/{index-DGTFJB_8.d.mts → index-L4GjJDKb.d.mts} +116 -23
- package/dist/{index-iID2R9G1.d.mts → index-U-A8eyGT.d.mts} +7 -7
- package/dist/{index-D7T8XCku.d.mts → index-eemAKwsB.d.mts} +23 -2
- package/dist/{index-BXP9GK5q.d.mts → index-mNec7V-9.d.mts} +27 -27
- package/dist/{index-CnZOKNjU.d.mts → index-soFznFCy2.d.mts} +2 -2
- package/dist/{index-Ch3ph52M2.d.mts → index-vtXJuwrz.d.mts} +2 -2
- package/dist/{index-BnNqbx2I.d.mts → index-x_lVDp_J.d.mts} +2 -2
- package/dist/json-value-CmhSGMLv.mjs +1 -0
- package/dist/kernel/cli/index.d.mts +4 -2
- package/dist/kernel/cli/index.mjs +1 -1
- package/dist/kernel/cli/schemas.d.mts +1 -0
- package/dist/kernel/cli/schemas.mjs +1 -1
- package/dist/kernel/extension/index.d.mts +1 -1
- package/dist/kernel/extension/index.mjs +1 -1
- package/dist/kernel/index.d.mts +5 -5
- package/dist/kernel/index.mjs +1 -1
- package/dist/kernel/namespace/index.d.mts +1 -1
- package/dist/kernel/namespace/index.mjs +1 -1
- package/dist/kernel/observability/index.d.mts +1 -1
- package/dist/kernel/observability/index.mjs +1 -1
- package/dist/kernel/providers/index.d.mts +1 -1
- package/dist/kernel/providers/index.mjs +1 -1
- package/dist/kernel/window/index.d.mts +1 -1
- package/dist/kernel/window/index.mjs +1 -1
- package/dist/materialization-CuUBu4XI.mjs +1 -0
- package/dist/{namespace-BpIE-jQW.d.mts → namespace-5QQqbF-B.d.mts} +1018 -111
- package/dist/{namespace-DwCyOaZn2.d.mts → namespace-BM7Djng9.d.mts} +3 -3
- package/dist/namespace-BwzZJqTV.mjs +1 -0
- package/dist/{namespace-DZcuLwEA.d.mts → namespace-CTm3nEvh.d.mts} +1 -1
- package/dist/{namespace-BK2erxpV.d.mts → namespace-CaaNnKcR.d.mts} +3 -3
- package/dist/{namespace-GLGGcWPH.d.mts → namespace-CaoZ3S78.d.mts} +1 -1
- package/dist/{namespace-DXnMk3U8.d.mts → namespace-CxhsoFUP.d.mts} +27 -31
- package/dist/{namespace-B1E57soL.d.mts → namespace-DD8Oiqo7.d.mts} +23 -23
- package/dist/{namespace-BCRNwPnw.d.mts → namespace-DLovh2Ws.d.mts} +21 -21
- package/dist/{namespace-Ysg1N6rR.d.mts → namespace-DgqkaOVu.d.mts} +26 -25
- package/dist/{namespace-B5ZCshBw.d.mts → namespace-Dr8K0MCp.d.mts} +82 -81
- package/dist/{namespace-DGMO2E8f.mjs → namespace-DuXK5AYN.mjs} +1 -1
- package/dist/{namespace-ZbthBQVt.d.mts → namespace-EQniz-Aw.d.mts} +14 -14
- package/dist/{namespace-C54Oj025.d.mts → namespace-IV1QK__V.d.mts} +1 -1
- package/dist/{namespace-BKrV_2gZ.d.mts → namespace-TyiTsLFv.d.mts} +46 -45
- package/dist/{namespace-OwAf1Brw.mjs → namespace-xcmbQlxh.mjs} +1 -1
- package/dist/{native-session-supervisor-zPt624Tp.mjs → native-session-supervisor-B1TnaPUF.mjs} +1 -1
- package/dist/node/bus-server/index.d.mts +1 -1
- package/dist/node/bus-server/index.mjs +1 -1
- package/dist/node/bus-server/server-lifecycle.d.mts +1 -1
- package/dist/node/bus-server/server-lifecycle.mjs +1 -1
- package/dist/node/machine-identity/index.mjs +2 -2
- package/dist/node/transports/index.d.mts +200 -7
- package/dist/node/transports/index.mjs +2 -2
- package/dist/{orchestrator-shared-D2txLAUs.mjs → orchestrator-shared-CIDiFJMD.mjs} +1 -1
- package/dist/{orchestrator-shared-DrjtTXYh.d.mts → orchestrator-shared-Dfa7FMyw.d.mts} +5 -5
- package/dist/package-DKVlsMP3.mjs +1 -0
- package/dist/{profile-Cq4A7kQa.mjs → profile-6ynCD5k3.mjs} +1 -1
- package/dist/{provider-context-BB4eD8ON.mjs → provider-context-CK6B4X_8.mjs} +1 -1
- package/dist/providers/index.mjs +1 -1
- package/dist/{providers-namespace-CDwxY_DV.d.mts → providers-namespace-DSEpli4A.d.mts} +1 -1
- package/dist/{schema-B295yplx.d.mts → schema-M5YTvSAG.d.mts} +114 -2
- package/dist/{schema-C4iznV0q.mjs → schema-e0wU_lcV.mjs} +1 -1
- package/dist/{schema-introspection-DCYC47_d.mjs → schema-introspection-Dn1jWQs1.mjs} +1 -1
- package/dist/{schemas-C5xtVqdb.d.mts → schemas-Bd0OjRQf.d.mts} +1 -1
- package/dist/{schemas-Ra8pz5M-.d.mts → schemas-C46QfKzv.d.mts} +24 -28
- package/dist/{schemas-sshQEF3l.d.mts → schemas-CDBSjg7o.d.mts} +1 -1
- package/dist/schemas-CR1Rripy.mjs +1 -0
- package/dist/schemas-CVvwIfG4.mjs +1 -0
- package/dist/schemas-CaLhkkLn.mjs +1 -0
- package/dist/{schemas-DYqKRNju.d.mts → schemas-ClOOT1W6.d.mts} +4 -4
- package/dist/{schemas-BfMZAwff.d.mts → schemas-DATniTHb.d.mts} +8 -8
- package/dist/{schemas-BWvuaL0w.d.mts → schemas-DVF1A4DF.d.mts} +4 -4
- package/dist/{schemas-Di0XnnMX.d.mts → schemas-DaRSfYLf.d.mts} +1 -1
- package/dist/{schemas-C31qbb0s.d.mts → schemas-DiYVzG6e.d.mts} +51 -48
- package/dist/{schemas-KMA1efQg.d.mts → schemas-j7ivZ2HI.d.mts} +3 -3
- package/dist/schemas-wg_6PAdV.d.mts +153 -0
- package/dist/scoped-bus-04pwo1uM.mjs +1 -0
- package/dist/service-base/index.d.mts +1 -1
- package/dist/services/adapter-runtime/index.d.mts +3 -3
- package/dist/services/adapter-runtime/index.mjs +1 -1
- package/dist/services/adapter-runtime/namespace.d.mts +1 -1
- package/dist/services/adapter-runtime/schemas.d.mts +1 -1
- package/dist/services/adapter-subsystem/index.d.mts +2 -2
- package/dist/services/adapter-subsystem/index.mjs +1 -1
- package/dist/services/adapter-subsystem/namespace.d.mts +1 -1
- package/dist/services/adapter-subsystem/namespace.mjs +1 -1
- package/dist/services/agent-runtime/index.d.mts +2 -2
- package/dist/services/agent-runtime/namespace.d.mts +1 -1
- package/dist/services/agent-runtime/schemas.d.mts +1 -1
- package/dist/services/capability/index.d.mts +1 -1
- package/dist/services/capability/index.mjs +1 -1
- package/dist/services/cli-detection/namespace.d.mts +1 -1
- package/dist/services/codebase/index.d.mts +2 -2
- package/dist/services/codebase/namespace.d.mts +1 -1
- package/dist/services/codebase/schemas.d.mts +1 -1
- package/dist/services/compression/index.d.mts +2 -2
- package/dist/services/compression/namespace.d.mts +1 -1
- package/dist/services/compression/schemas.d.mts +1 -1
- package/dist/services/context-rules/index.d.mts +4 -4
- package/dist/services/context-rules/index.mjs +1 -1
- package/dist/services/credential-change/index.d.mts +1 -1
- package/dist/services/definition/namespace.d.mts +1 -1
- package/dist/services/definition/schemas.d.mts +1 -1
- package/dist/services/dialog/namespace.d.mts +1 -1
- package/dist/services/dialog/schemas.d.mts +1 -1
- package/dist/services/execution-target/index.d.mts +4 -4
- package/dist/services/execution-target/index.mjs +1 -1
- package/dist/services/execution-target/namespace.d.mts +1 -1
- package/dist/services/execution-target/schemas.d.mts +1 -1
- package/dist/services/execution-target/schemas.mjs +1 -1
- package/dist/services/filesystem/index.d.mts +3 -0
- package/dist/services/filesystem/index.mjs +1 -0
- package/dist/services/filesystem/namespace.d.mts +7 -7
- package/dist/services/filesystem/schemas.d.mts +4 -4
- package/dist/services/git/namespace.d.mts +1163 -0
- package/dist/services/git/namespace.mjs +1 -0
- package/dist/services/git/schemas.d.mts +932 -0
- package/dist/services/git/schemas.mjs +1 -0
- package/dist/services/harness/index.d.mts +35 -35
- package/dist/services/harness/index.mjs +1 -1
- package/dist/services/harness/storage/schema.d.mts +5 -5
- package/dist/services/index.d.mts +1411 -928
- package/dist/services/index.mjs +1 -1
- package/dist/services/local-notification/index.d.mts +1 -1
- package/dist/services/local-notification/namespace.d.mts +1 -1
- package/dist/services/local-notification/schemas.d.mts +1 -1
- package/dist/services/log-import/browser.d.mts +2 -2
- package/dist/services/log-import/index.d.mts +23 -24
- package/dist/services/log-import/index.mjs +2 -2
- package/dist/services/log-import/log-import.d.mts +1 -1
- package/dist/services/log-import/log-import.mjs +1 -1
- package/dist/services/log-import/namespace.d.mts +1 -1
- package/dist/services/log-import/namespace.mjs +1 -1
- package/dist/services/log-import/schemas.d.mts +1 -1
- package/dist/services/log-import/schemas.mjs +1 -1
- package/dist/services/model-registry/index.d.mts +1 -1
- package/dist/services/model-registry/index.mjs +1 -1
- package/dist/services/preferences/index.d.mts +2 -2
- package/dist/services/preferences/schemas.d.mts +1 -1
- package/dist/services/preferences/storage-namespace.d.mts +2 -2
- package/dist/services/provider-context/index.d.mts +1 -1
- package/dist/services/provider-context/index.mjs +1 -1
- package/dist/services/provider-runtime/index.d.mts +1 -1
- package/dist/services/provider-runtime/index.mjs +1 -1
- package/dist/services/session/handlers/index.d.mts +1 -1
- package/dist/services/session/handlers/index.mjs +1 -1
- package/dist/services/session/index.d.mts +10 -10
- package/dist/services/session/index.mjs +1 -1
- package/dist/services/session/messages/namespace.d.mts +1 -1
- package/dist/services/session/messages/namespace.mjs +1 -1
- package/dist/services/session/orchestrator-testing/index.d.mts +1 -1
- package/dist/services/session/orchestrator-testing/index.mjs +1 -1
- package/dist/services/session/session-events/namespace.d.mts +1 -1
- package/dist/services/session/session-events/namespace.mjs +1 -1
- package/dist/services/session/storage/namespace.d.mts +1 -1
- package/dist/services/session/storage/schema.d.mts +1 -1
- package/dist/services/session/storage/schema.mjs +1 -1
- package/dist/services/session/testing/index.d.mts +2 -2
- package/dist/services/session/testing/index.mjs +16 -3
- package/dist/services/session/testing/orchestrator-shared.d.mts +1 -1
- package/dist/services/session/testing/orchestrator-shared.mjs +1 -1
- package/dist/services/session/turns/namespace.d.mts +1 -1
- package/dist/services/session/turns/namespace.mjs +1 -1
- package/dist/services/session-editor/index.d.mts +3 -3
- package/dist/services/session-editor/index.mjs +1 -1
- package/dist/services/settings/index.d.mts +4 -4
- package/dist/services/settings/index.mjs +1 -1
- package/dist/services/settings/namespace.d.mts +19 -18
- package/dist/services/settings/namespace.mjs +1 -1
- package/dist/services/settings/storage/clients-namespace.d.mts +1 -1
- package/dist/services/settings/storage/clients-namespace.mjs +1 -1
- package/dist/services/settings/storage/extension-configs/namespace.d.mts +4 -4
- package/dist/services/settings/storage/index.d.mts +3 -3
- package/dist/services/settings/storage/index.mjs +1 -1
- package/dist/services/settings/storage/providers-namespace.d.mts +1 -1
- package/dist/services/settings/storage/providers-namespace.mjs +1 -1
- package/dist/services/subagent/index.d.mts +2 -0
- package/dist/services/subagent/index.mjs +1 -0
- package/dist/services/subagent-template/index.d.mts +3 -0
- package/dist/services/subagent-template/index.mjs +1 -0
- package/dist/services/subagent-template/namespace.d.mts +2 -0
- package/dist/services/subagent-template/namespace.mjs +1 -0
- package/dist/services/subagent-template/schemas.d.mts +2 -0
- package/dist/services/subagent-template/schemas.mjs +1 -0
- package/dist/services/tool-approval/index.d.mts +1 -1
- package/dist/services/tool-approval/index.mjs +1 -1
- package/dist/services/tools/index.d.mts +1 -1
- package/dist/services/tools/index.mjs +1 -1
- package/dist/services/tray-menu/index.d.mts +3 -3
- package/dist/services/tray-menu/index.mjs +1 -1
- package/dist/services/tray-menu/namespace.d.mts +1 -1
- package/dist/services/tray-menu/schemas.d.mts +1 -1
- package/dist/services/turn/index.d.mts +1 -1
- package/dist/services/turn/namespace.d.mts +1 -1
- package/dist/services/turn/schemas.d.mts +12 -12
- package/dist/session-BoldSdNZ2.mjs +134 -0
- package/dist/session-DuVOYctZ.mjs +1 -0
- package/dist/{session-lineage-B0cpHfuc.d.mts → session-lineage-CRsc9g1x.d.mts} +1 -1
- package/dist/shared-DpOEfD8F.mjs +1 -0
- package/dist/{skill-20_SBXaI.mjs → skill-CQO4mDqK.mjs} +1 -1
- package/dist/storage/drizzle/client.d.mts +2 -2
- package/dist/storage/drizzle/client.mjs +1 -1
- package/dist/storage/drizzle/index.d.mts +49 -10
- package/dist/storage/drizzle/index.mjs +1 -1
- package/dist/storage/handlers/drizzle/index.d.mts +1 -1
- package/dist/storage/handlers/drizzle/index.mjs +1 -1
- package/dist/storage/handlers/index.d.mts +2 -2
- package/dist/storage/handlers/index.mjs +1 -1
- package/dist/storage/index.d.mts +4 -4
- package/dist/{storage-namespace-DoH-Wkjp.d.mts → storage-namespace-BXkoh5Sy.d.mts} +11 -11
- package/dist/storage-namespace-DWsYLAXa.mjs +1 -0
- package/dist/{storage-namespace-definition-CJgqyXH1.d.mts → storage-namespace-definition-Bkx5rSto.d.mts} +1 -1
- package/dist/style.css +540 -540
- package/dist/telemetry-CvdLBWuk.mjs +1 -0
- package/dist/testing/drizzle-harness.mjs +1 -1
- package/dist/testing/index.mjs +1 -1
- package/dist/tool-approval-service-BvZWhYZp.mjs +1 -0
- package/dist/tools/index.d.mts +20 -10
- package/dist/tools/index.mjs +1 -1
- package/dist/tools/testing/index.d.mts +1 -1
- package/dist/tools-D-luYcDw.mjs +1431 -0
- package/dist/{types-C11LvekX.d.mts → types-BCMUtBj1.d.mts} +117 -20
- package/dist/{types-vNpkAe4Y.d.mts → types-C2Ob9zz_.d.mts} +1 -1
- package/dist/{types-t295YC6T.d.mts → types-CCdqjeuH.d.mts} +2 -2
- package/dist/{types-Cvrj2ogm.d.mts → types-DZHvOc_Q.d.mts} +4 -4
- package/dist/{types--nrtGZ1V.d.mts → types-Dy3YTcTF.d.mts} +255 -97
- package/dist/{types-DYF5LxZY.d.mts → types-MfJZ67e9.d.mts} +91 -9
- package/dist/{types-6WxLfoM3.d.mts → types-dyP-bXXE.d.mts} +1 -1
- package/dist/ui-components/index.mjs +2 -2
- package/dist/ui-hooks/index.d.mts +111 -1
- package/dist/ui-hooks/index.mjs +1 -1
- package/dist/ui-kernel/index.d.mts +4 -4
- package/dist/ui-kernel/pages/namespace.d.mts +4 -4
- package/dist/ui-kernel/pages/schemas.d.mts +1 -1
- package/dist/ui-views/index.mjs +2 -2
- package/dist/utils/index.d.mts +36 -1
- package/dist/utils/index.mjs +2 -2
- package/dist/utils/project-manifest.d.mts +130 -0
- package/dist/utils/project-manifest.mjs +1 -0
- package/dist/utils/scope-paths.d.mts +33 -0
- package/dist/utils/scope-paths.mjs +1 -0
- package/dist/utils/workspace-packages.d.mts +59 -0
- package/dist/utils/workspace-packages.mjs +1 -0
- package/dist/utils/workspace-root.d.mts +6 -9
- package/dist/utils/workspace-root.mjs +1 -1
- package/dist/{version-D8S4O22A.mjs → version-BeT3ASEe.mjs} +1 -1
- package/package.json +55 -2
- package/dist/account-identity-Bg_vKkcs.mjs +0 -1
- package/dist/adapter-CpF2aK_-.mjs +0 -1
- package/dist/bus-B1seC4M_.mjs +0 -2
- package/dist/chunk-Dc06z0qk.mjs +0 -1
- package/dist/client-DMWXCWhM.mjs +0 -1
- package/dist/cursor-storage-BoNI7OAR.mjs +0 -1
- package/dist/drizzle-Bn2GtW8c.mjs +0 -1
- package/dist/execution-target-D6MgthYs.mjs +0 -1
- package/dist/extension-53GerdGg.mjs +0 -1
- package/dist/extension-fJmv8Yri.mjs +0 -1
- package/dist/namespace-C_h7scWx2.mjs +0 -1
- package/dist/schemas-Bn8aqDIE.mjs +0 -1
- package/dist/services/worker/index.d.mts +0 -3
- package/dist/services/worker/index.mjs +0 -1
- package/dist/services/worker/namespace.d.mts +0 -2
- package/dist/services/worker/namespace.mjs +0 -1
- package/dist/services/worker/schemas.d.mts +0 -2
- package/dist/services/worker/schemas.mjs +0 -1
- package/dist/session-BCSf-Fgj.mjs +0 -1
- package/dist/session-BNo_cIiz.mjs +0 -123
- package/dist/shared-BhuSHZXH.mjs +0 -1
- package/dist/storage-namespace-BIDs9LPb.mjs +0 -1
- package/dist/tool-approval-service-CZCPfvVy.mjs +0 -1
- package/dist/tools-Cid9D99F.mjs +0 -1
- /package/dist/{base-orchestrator-BOAPgqF7.d.mts → base-orchestrator-wyumsn3b.d.mts} +0 -0
- /package/dist/{capability-service-DV32ecwR.mjs → capability-service-CJbmhfv9.mjs} +0 -0
- /package/dist/{cleanEnvForAdapter-hTPNvPU5.mjs → cleanEnvForAdapter-KkYzQa1f.mjs} +0 -0
- /package/dist/{config-namespace-wJ2CakDB.mjs → config-namespace-ncYg2ct_.mjs} +0 -0
- /package/dist/{extension-namespace-CTd9kOtt.mjs → extension-namespace-cMh_mMiL.mjs} +0 -0
- /package/dist/{identity-DBST3-XO.mjs → identity-Cz2IeEtm.mjs} +0 -0
- /package/dist/{index-SzSiyG61.d.mts → index-CHQ1SqT0.d.mts} +0 -0
- /package/dist/{model-registry-xINyxQUT.mjs → model-registry-CfXytvzx.mjs} +0 -0
- /package/dist/{model-registry-Dzpssh9j.mjs → model-registry-Scn_MC2d.mjs} +0 -0
- /package/dist/{namespace-DBw9BYr8.mjs → namespace-BoD94mrN.mjs} +0 -0
- /package/dist/{namespace-DUVgMfTR.mjs → namespace-CFLAmQfh.mjs} +0 -0
- /package/dist/{namespace-aALq9tnE.mjs → namespace-DkRgbZYn.mjs} +0 -0
- /package/dist/{namespace-yxIxUsjo.mjs → namespace-LViZ-EQk.mjs} +0 -0
- /package/dist/{namespace-Zb8HAbyF.mjs → namespace-Yna5-Pws.mjs} +0 -0
- /package/dist/{platform-BMFUpmTA.mjs → platform-DZ7z-wXD.mjs} +0 -0
- /package/dist/{providers-DhiW_fx4.mjs → providers-u8i15co9.mjs} +0 -0
- /package/dist/{schema-D3ZG13h9.mjs → schema-CoyE6mPt.mjs} +0 -0
- /package/dist/{schemas-CEBe89yE.mjs → schemas-DE-GNmSD.mjs} +0 -0
- /package/dist/{schemas-COnLJnt_.mjs → schemas-hSrzflwZ.mjs} +0 -0
- /package/dist/{schemas-CrnlCRep.mjs → schemas-jFe1AuI-.mjs} +0 -0
- /package/dist/{server-lifecycle-Dx5WgfoS.mjs → server-lifecycle-FXTPW39-.mjs} +0 -0
- /package/dist/{server-lifecycle-BC6FRn86.d.mts → server-lifecycle-YoSGFGnU.d.mts} +0 -0
- /package/dist/{shared-schemas-Byah36lG.mjs → shared-schemas-CPShiLNp.mjs} +0 -0
- /package/dist/{storage-namespace-definition-BjK9nZAN.mjs → storage-namespace-definition-CqSdsuCC.mjs} +0 -0
- /package/dist/{timeout-D33CUZ0M.mjs → timeout-XsYIOKrc.mjs} +0 -0
- /package/dist/{tray-menu-service-BAYtLdAg.mjs → tray-menu-service-DuXq5k22.mjs} +0 -0
- /package/dist/{ui-config-zawaoEfB.mjs → ui-config-9bDRwFZr.mjs} +0 -0
- /package/dist/{variant-BZWfmS0q.mjs → variant-CT6XBP6T.mjs} +0 -0
- /package/dist/{visibility-CZu8ooOA.mjs → visibility-Cb62p9bv.mjs} +0 -0
- /package/dist/{window-registry-C_IJmY8_.d.mts → window-registry-CBcrGTv4.d.mts} +0 -0
- /package/dist/{window-registry-B_-hBEcV.mjs → window-registry-DW-dKRjQ.mjs} +0 -0
|
@@ -7,6 +7,7 @@ import { IMakaioBus } from "@makaio/framework/bus";
|
|
|
7
7
|
import { AIModel, AgentSelection, ModelFilterMode, ModelVisibility, UiContextSnapshot, UiRuntimeNavigationLevel, UiScope } from "@makaio/framework/contracts";
|
|
8
8
|
import { BindingRecord, ProviderConfigFileRecord } from "@makaio/framework/services/adapter-subsystem";
|
|
9
9
|
import { LogImportMode } from "@makaio/framework/services/log-import/log-import";
|
|
10
|
+
import { EventHandler, EventMessagePayload, ExtractSubjectPayload, SubjectDefinition } from "@makaio/framework/core";
|
|
10
11
|
import { CredentialRef } from "@makaio/framework/contracts/config";
|
|
11
12
|
import { ModelFilterMode as ModelFilterMode$1, ModelVisibility as ModelVisibility$1, ProtocolEndpoints, ProtocolId } from "@makaio/framework/contracts/provider";
|
|
12
13
|
|
|
@@ -74,6 +75,115 @@ declare function useBus(): IMakaioBus;
|
|
|
74
75
|
*/
|
|
75
76
|
declare function useOptionalBus(): IMakaioBus | null;
|
|
76
77
|
//#endregion
|
|
78
|
+
//#region ui/hooks/src/bus/use-bus-query.d.ts
|
|
79
|
+
/**
|
|
80
|
+
* Options for {@link useBusQuery}.
|
|
81
|
+
* @typeParam Subject - The bus subject definition for the request.
|
|
82
|
+
*/
|
|
83
|
+
interface UseBusQueryOptions<Subject extends SubjectDefinition> {
|
|
84
|
+
/**
|
|
85
|
+
* The bus subject definition representing the request to execute.
|
|
86
|
+
*
|
|
87
|
+
* Must be a request-type subject (one with `request` and `response` fields).
|
|
88
|
+
*/
|
|
89
|
+
readonly subject: Subject;
|
|
90
|
+
/**
|
|
91
|
+
* The payload to send with the request.
|
|
92
|
+
*
|
|
93
|
+
* Must be JSON-serializable so it can be used as a stable effect dependency.
|
|
94
|
+
*/
|
|
95
|
+
readonly request: Subject['$meta']['payload'] extends {
|
|
96
|
+
request: infer Request;
|
|
97
|
+
} ? Request : never;
|
|
98
|
+
/**
|
|
99
|
+
* When `true`, the query is not sent and any previously loaded data is retained.
|
|
100
|
+
*
|
|
101
|
+
* Toggling from `true` back to `false` triggers an immediate refetch.
|
|
102
|
+
* @defaultValue false
|
|
103
|
+
*/
|
|
104
|
+
readonly skip?: boolean;
|
|
105
|
+
/**
|
|
106
|
+
* Optional list of event subjects whose emission should trigger a refetch.
|
|
107
|
+
*
|
|
108
|
+
* Each subject in the array is subscribed to when the hook mounts. When any
|
|
109
|
+
* of those events fire the query is re-executed automatically.
|
|
110
|
+
*/
|
|
111
|
+
readonly refetchOn?: readonly SubjectDefinition[];
|
|
112
|
+
}
|
|
113
|
+
/**
|
|
114
|
+
* Result returned by {@link useBusQuery}.
|
|
115
|
+
* @typeParam Response - The response payload type from the bus subject.
|
|
116
|
+
*/
|
|
117
|
+
interface UseBusQueryResult<Response> {
|
|
118
|
+
/** The most recently resolved response, or `undefined` before the first successful fetch. */
|
|
119
|
+
readonly data: Response | undefined;
|
|
120
|
+
/** `true` while a request is in flight. */
|
|
121
|
+
readonly loading: boolean;
|
|
122
|
+
/** Set when the most recent request threw or the bus returned an error. */
|
|
123
|
+
readonly error: Error | undefined;
|
|
124
|
+
/**
|
|
125
|
+
* Imperatively trigger a refetch regardless of the current `skip` flag.
|
|
126
|
+
*
|
|
127
|
+
* The `skip` guard is bypassed: if you call `refetch()` while `skip` is `true`
|
|
128
|
+
* the request is still sent.
|
|
129
|
+
*/
|
|
130
|
+
readonly refetch: () => void;
|
|
131
|
+
}
|
|
132
|
+
/**
|
|
133
|
+
* Query a bus request subject and expose the result as React state.
|
|
134
|
+
*
|
|
135
|
+
* The hook fires an async bus request on mount and re-fires whenever `subject`,
|
|
136
|
+
* `request`, or `skip` change. Use `refetchOn` to subscribe to bus events that
|
|
137
|
+
* should invalidate the cached result and trigger a fresh request.
|
|
138
|
+
* @param options - Query configuration.
|
|
139
|
+
* @returns Reactive query state including data, loading, error, and a manual refetch callback.
|
|
140
|
+
* @example
|
|
141
|
+
* ```tsx
|
|
142
|
+
* const { data, loading, error } = useBusQuery({
|
|
143
|
+
* subject: MyNamespace.subjects.getItem,
|
|
144
|
+
* request: { id: itemId },
|
|
145
|
+
* refetchOn: [MyNamespace.subjects.itemChanged],
|
|
146
|
+
* });
|
|
147
|
+
* ```
|
|
148
|
+
*/
|
|
149
|
+
declare function useBusQuery<Subject extends SubjectDefinition>({
|
|
150
|
+
subject,
|
|
151
|
+
request,
|
|
152
|
+
skip,
|
|
153
|
+
refetchOn
|
|
154
|
+
}: UseBusQueryOptions<Subject>): UseBusQueryResult<Subject['$meta']['payload'] extends {
|
|
155
|
+
response: infer Response;
|
|
156
|
+
} ? Response : never>;
|
|
157
|
+
//#endregion
|
|
158
|
+
//#region ui/hooks/src/bus/use-bus-event.d.ts
|
|
159
|
+
type NonChannelEventSubjectDefinition = SubjectDefinition & {
|
|
160
|
+
readonly $meta: {
|
|
161
|
+
readonly channel: false;
|
|
162
|
+
readonly isRequest: false;
|
|
163
|
+
readonly payload: EventMessagePayload;
|
|
164
|
+
};
|
|
165
|
+
};
|
|
166
|
+
type HandlerForBusEvent<Subject extends NonChannelEventSubjectDefinition> = EventHandler<ExtractSubjectPayload<Subject>>;
|
|
167
|
+
/**
|
|
168
|
+
* Subscribe to a bus event subject for the lifetime of the component.
|
|
169
|
+
*
|
|
170
|
+
* The subscription is established once on mount (and whenever `bus` or
|
|
171
|
+
* `subject` change). Passing a new `handler` reference on re-render does
|
|
172
|
+
* NOT cause an unsubscribe/resubscribe — the latest handler is always called.
|
|
173
|
+
*
|
|
174
|
+
* This pattern ensures that closures capturing component state stay fresh
|
|
175
|
+
* without the overhead of re-registering on every render.
|
|
176
|
+
* @param subject - The event subject definition to subscribe to.
|
|
177
|
+
* @param handler - The event handler to invoke when the subject fires.
|
|
178
|
+
* @example
|
|
179
|
+
* ```tsx
|
|
180
|
+
* useBusEvent(SessionNamespace.subjects.messageAdded, (ctx) => {
|
|
181
|
+
* setMessages((prev) => [...prev, ctx.payload]);
|
|
182
|
+
* });
|
|
183
|
+
* ```
|
|
184
|
+
*/
|
|
185
|
+
declare function useBusEvent<Subject extends NonChannelEventSubjectDefinition>(subject: Subject, handler: HandlerForBusEvent<Subject>): void;
|
|
186
|
+
//#endregion
|
|
77
187
|
//#region ui/hooks/src/widgets/hooks.d.ts
|
|
78
188
|
interface UseWidgetsOptions {
|
|
79
189
|
builtIns?: readonly WidgetDefinition[];
|
|
@@ -1802,4 +1912,4 @@ declare function parsePersistedAgentSelection(value: unknown): AgentSelection |
|
|
|
1802
1912
|
*/
|
|
1803
1913
|
declare function isPersistableProjectSelection(selection: AgentSelection): selection is PersistableProjectSelection;
|
|
1804
1914
|
//#endregion
|
|
1805
|
-
export { type AppContextState, type BoundAdapter, BusContext, BusProvider, type BusProviderProps, type CoreOnboardingStepComponents, type ExecutablePage, type ExtensionBrowserLoadOptions, type ExtensionBrowserLoadResult, type FocusContextId, type FocusContextLayout, type FocusContextObject, type FocusContextWidgetSize, type FocusState, type GroupedPages, type HealthCheckResult, type OnboardingAdapter, type OnboardingClient, type OnboardingFlowActions, type OnboardingFlowState, type OnboardingStepDefinition, type OnboardingStepProps, type PageOverlayState, type PersistableAdapterSelection, type PersistableProjectSelection, type PersistedExtensionConfigEntry, type PersistedStoreConfig, type PlacedFocusWidget, type ProviderConfigDetailView, type ProviderConfigSummaryView, type ProviderInfo, type RuntimeNavigationLevel, type ScanContext, type SharedLoaderState, type SidebarState, type StorageType, type UseOnboardingFlowOptions, type UseOnboardingFlowResult, type UseWidgetConfigOptions, type UseWidgetConfigResult, type UseWidgetRegistryOptions, type UseWidgetsOptions, type UseWidgetsResult, type WindowContextState, addWidgetToFocusLayout, buildScanContext, clearOnboardingCompleted, clearOnboardingSkipped, createEmptyFocusContextLayout, createPersistedStore, getOnboardingCompleted, getOnboardingSkipped, getProviderConfigDetailView, groupPagesByNavigationGroup, isPersistableProjectSelection, listProviderConfigSummaryViews, loadExtensionBrowserContributions, noopStorage, parsePersistedAgentSelection, persistPluginEnabled, registerCoreOnboardingSteps, registerNavigationHandler, removeWidgetFromFocusLayout, scanOnboarding, scanOnboardingAdapters, scanOnboardingClients, setOnboardingCompleted, setOnboardingSkipped, updateFocusContextWidgetPosition, updateFocusContextWidgetSize, useAppContext, useBus, useFocusStore, useNavigationLevel, useOnboardingFlow, useOptionalBus, usePageComponent, usePageDefinitions, usePageOverlayStore, usePages, useProviderStore, useSidebarStore, useTrayLayout, useWidgetConfig, useWidgetLayout, useWidgetLayoutActions, useWidgetRegistry, useWidgets, useWindowContext, useWindowIdPages };
|
|
1915
|
+
export { type AppContextState, type BoundAdapter, BusContext, BusProvider, type BusProviderProps, type CoreOnboardingStepComponents, type ExecutablePage, type ExtensionBrowserLoadOptions, type ExtensionBrowserLoadResult, type FocusContextId, type FocusContextLayout, type FocusContextObject, type FocusContextWidgetSize, type FocusState, type GroupedPages, type HealthCheckResult, type OnboardingAdapter, type OnboardingClient, type OnboardingFlowActions, type OnboardingFlowState, type OnboardingStepDefinition, type OnboardingStepProps, type PageOverlayState, type PersistableAdapterSelection, type PersistableProjectSelection, type PersistedExtensionConfigEntry, type PersistedStoreConfig, type PlacedFocusWidget, type ProviderConfigDetailView, type ProviderConfigSummaryView, type ProviderInfo, type RuntimeNavigationLevel, type ScanContext, type SharedLoaderState, type SidebarState, type StorageType, type UseBusQueryOptions, type UseBusQueryResult, type UseOnboardingFlowOptions, type UseOnboardingFlowResult, type UseWidgetConfigOptions, type UseWidgetConfigResult, type UseWidgetRegistryOptions, type UseWidgetsOptions, type UseWidgetsResult, type WindowContextState, addWidgetToFocusLayout, buildScanContext, clearOnboardingCompleted, clearOnboardingSkipped, createEmptyFocusContextLayout, createPersistedStore, getOnboardingCompleted, getOnboardingSkipped, getProviderConfigDetailView, groupPagesByNavigationGroup, isPersistableProjectSelection, listProviderConfigSummaryViews, loadExtensionBrowserContributions, noopStorage, parsePersistedAgentSelection, persistPluginEnabled, registerCoreOnboardingSteps, registerNavigationHandler, removeWidgetFromFocusLayout, scanOnboarding, scanOnboardingAdapters, scanOnboardingClients, setOnboardingCompleted, setOnboardingSkipped, updateFocusContextWidgetPosition, updateFocusContextWidgetSize, useAppContext, useBus, useBusEvent, useBusQuery, useFocusStore, useNavigationLevel, useOnboardingFlow, useOptionalBus, usePageComponent, usePageDefinitions, usePageOverlayStore, usePages, useProviderStore, useSidebarStore, useTrayLayout, useWidgetConfig, useWidgetLayout, useWidgetLayoutActions, useWidgetRegistry, useWidgets, useWindowContext, useWindowIdPages };
|
package/dist/ui-hooks/index.mjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
import e,{createContext as t,lazy as n,useCallback as r,useContext as i,useEffect as a,useMemo as o,useRef as s,useState as c,useSyncExternalStore as l}from"react";import{jsx as u}from"react/jsx-runtime";import{PreferencesSubjects as d}from"@makaio/framework/services/preferences";import{UiSubjects as f,deriveBrowserTarget as p,deriveDefaultEnabled as m,deriveTrayLayout as h,findCategory as ee,isOverlayMode as g,isWidgetLayout as _,onboardingStepRegistry as v,pageDefinitionRegistry as y,queryPageDefinitions as b,runCleanupsInReverse as x,subscribeToWidgetEvents as te,widgetRegistry as S}from"@makaio/framework/ui-kernel";import{ExtensionSubjects as ne}from"@makaio/framework/kernel";import{MakaioBus as C}from"@makaio/framework/bus";import{AdapterSubjects as re,AgentSelectionSchema as ie}from"@makaio/framework/contracts";import{AdapterRuntimeSubjects as ae}from"@makaio/framework/services/adapter-runtime";import{AdapterSubsystemSubjects as w}from"@makaio/framework/services/adapter-subsystem";import{LogImportSubjects as oe}from"@makaio/framework/services/log-import/log-import";import{SettingsSubjects as T}from"@makaio/framework/services/settings/namespace";import{ExtensionConfigStorageSubjects as se}from"@makaio/framework/services/settings/storage/extension-configs/namespace";import{buildProviderContext as E}from"@makaio/framework/services/provider-context";import{ClientStorageSubjects as ce,ProviderStorageSubjects as D}from"@makaio/framework/services/settings/storage";import{ClientSubjects as le}from"@makaio/framework/contracts/client";const O=t(null);function ue({bus:e,children:t}){return u(O.Provider,{value:e,children:t})}function k(){let e=i(O);if(!e)throw Error(`useBus must be used within a BusProvider`);return e}function de(){return i(O)}function fe(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&Object.getPrototypeOf(e)===Object.prototype}const pe=Object.freeze([]);function A(e={}){let{builtIns:t=pe,scope:n,includeAny:i=!0}=e,s=k(),[u,d]=c(!1);a(()=>{S.registerAll(t)},[t]),a(()=>{let e=te(s);return d(!0),()=>{e(),d(!1)}},[s]);let f=r(e=>S.subscribe(e),[]),p=r(()=>S.getAll(),[]),m=l(f,p,p),h=o(()=>n?S.getByScope(n,i):m,[m,i,n]);return{builtInWidgets:t,loading:!u,widgets:u?h:void 0}}function me(e={}){let{scope:t,includeAny:n=!0}=e,i=r(e=>S.subscribe(e),[]),a=r(()=>S.getAll(),[]),s=l(i,a,a);return o(()=>t?S.getByScope(t,n):s,[s,n,t])}function j(e){return e.contextId?`${e.scope}:${e.contextId}`:e.scope}function he(e){let{paneId:t,widgetId:n,context:i,surface:l,defaultConfig:u}=e,f=k(),[p,m]=c(u),h=s(0),ee=o(()=>j(i),[i.contextId,i.scope]),g=o(()=>({category:`widget-config:${t}:${n}`,key:{scope:ee,surface:l}}),[ee,t,l,n]),_=o(()=>structuredClone(u),[u]);a(()=>{let e=++h.current,t=()=>h.current===e;return m(_),(async()=>{try{let{value:e}=await f.request(d.get,{category:g.category,key:g.key});if(!t())return;fe(e)&&m(t=>({...t,...e}))}catch{}})(),()=>{++h.current}},[f,_,g]);let v=r(async e=>{try{await f.request(d.set,{category:g.category,key:g.key,value:e})}catch{}},[f,g]);return{config:p,updateConfig:r(e=>{m(t=>{let n={...t,...e};return v(n),n})},[v])}}function ge(e){let t=k(),[n,i]=c(null),[o,s]=c(!0),[l,u]=c(null),f=r(async()=>{s(!0),u(null);try{let{value:n}=await t.request(d.get,{category:`widget-layout`,key:e});i(_(n)?n:null)}catch(e){u(e instanceof Error?e:Error(`Failed to load layout`)),i(null)}finally{s(!1)}},[t,e]);return a(()=>{f()},[f]),{layout:n,isLoading:o,error:l,refresh:f}}const M=`widget-layout`;function _e(){let e=k();return{saveLayout:r(async(t,n)=>{await e.request(d.set,{category:M,key:t,value:n})},[e]),resetLayout:r(async t=>{await e.request(d.delete,{category:M,key:t})},[e])}}const ve=Object.freeze([]);function ye(e=ve){let t=r(e=>S.subscribe(e),[]),n=r(()=>S.getAll(),[]),i=l(t,n,n);return o(()=>h(i,e),[i,e])}async function N(e){return import(e)}function be(e){return e.kind===`resolved`&&e.factory!==void 0}function P(e){return e.filter(e=>e.state===`active`&&e.browser?.entrypoint)}function F(){return{cleanups:[],errorMessage:null,shell:null,state:`empty`}}function I(e){return e===`cancelled`}function L(e,t,n,r){return{cleanups:e,errorMessage:r,shell:n,state:t}}async function xe(e,t){let{bus:n,isCurrentRun:r,waitForRuntimeReady:i}=e,a=i(n);t.push(a.cleanup);let o=await a.ready;if(I(o))return x(t,`[ExtensionBrowserLoader]`),{kind:`aborted`};if(o===`timeout`)return{kind:`result`,result:L(t,`error`,null,`The Makaio runtime did not respond. The service may have failed to start — try restarting the application or check the logs for errors.`)};if(!r())return x(t,`[ExtensionBrowserLoader]`),{kind:`aborted`};let{extensions:s}=await n.request(ne.list,{}),c=P(s);return c.length===0?{kind:`result`,result:L(t,`empty`,null,null)}:{browserExtensions:c,kind:`ok`}}function Se(e){let t=e.browser.entrypoint,n;try{n=new URL(t,globalThis.location.origin)}catch{return console.warn(`[ExtensionBrowserLoader] Extension "${e.name}" has malformed entrypoint "${t}"`),null}return n.origin!==globalThis.location.origin||!n.pathname.startsWith(`/extensions/`)?(console.warn(`[ExtensionBrowserLoader] Extension "${e.name}" has unsafe entrypoint "${t}" (must stay under /extensions/)`),null):n.pathname}async function Ce(e,t,n,r){let{bus:i,getRegisteredFactory:a,importModule:o=N,isCurrentRun:s,registerExtensionUI:c,resolveFactory:l,unregisterFactory:u}=e,d=Se(t);if(d===null)return{failed:!0,kind:`ok`,shell:r};let f=[()=>u(t.name)];try{let e=await o(d);if(!s())return x(f,`[ExtensionBrowserLoader] ${t.name}`),x(n,`[ExtensionBrowserLoader]`),{kind:`aborted`};let u=l(e.default,a(t.name));if(!be(u))return x(f,`[ExtensionBrowserLoader] ${t.name}`),console.warn(`[ExtensionBrowserLoader] Extension "${t.name}" has invalid browser factory (${u.reason??`unknown resolution error`})`),{failed:!0,kind:`ok`,shell:r};let p=u.factory({bus:i});if(!p||typeof p!=`object`)return x(f,`[ExtensionBrowserLoader] ${t.name}`),console.warn(`[ExtensionBrowserLoader] Extension "${t.name}" factory returned invalid contribution (expected object, got ${p===null?`null`:typeof p})`),{failed:!0,kind:`ok`,shell:r};p.destroy&&f.push(p.destroy),f.push(c(i,t.name,p));let m=r;return p.shell&&(m!==null&&console.warn(`[ExtensionBrowserLoader] Extension "${t.name}" replaces the previously registered shell (shell contributions are last-wins)`),m=p.shell.component),n.push(...f),{failed:!1,kind:`ok`,shell:m}}catch(e){return x(f,`[ExtensionBrowserLoader] ${t.name}`),console.error(`[ExtensionBrowserLoader] Failed to load extension "${t.name}":`,e),{failed:!0,kind:`ok`,shell:r}}}async function we(e){let t=[];try{let n=await xe(e,t);if(n.kind===`aborted`)return F();if(n.kind===`result`)return n.result;let r=0,i=null;for(let a of n.browserExtensions){let n=await Ce(e,a,t,i);if(n.kind===`aborted`)return F();i=n.shell,n.failed&&(r+=1)}return e.isCurrentRun()?i===null?r>0?L(t,`error`,null,`One or more extensions failed to load before providing workspace chrome.`):L(t,`empty`,null,null):L(t,`ready`,i,null):(x(t,`[ExtensionBrowserLoader]`),F())}catch(e){return console.error(`[ExtensionBrowserLoader] Failed to query extensions:`,e),L(t,`error`,null,e instanceof Error?e.message:String(e))}}const R=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e))},o=t=e(r,i,a);return a},Te=(e=>e?R(e):R),z=e=>e;function Ee(t,n=z){let r=e.useSyncExternalStore(t.subscribe,e.useCallback(()=>n(t.getState()),[t,n]),e.useCallback(()=>n(t.getInitialState()),[t,n]));return e.useDebugValue(r),r}const B=e=>{let t=Te(e),n=e=>Ee(t,e);return Object.assign(n,t),n},V=(e=>e?B(e):B);function H(e,t){let n;try{n=e()}catch{return}return{getItem:e=>{let r=e=>e===null?null:JSON.parse(e,t?.reviver),i=n.getItem(e)??null;return i instanceof Promise?i.then(r):r(i)},setItem:(e,r)=>n.setItem(e,JSON.stringify(r,t?.replacer)),removeItem:e=>n.removeItem(e)}}const U=e=>t=>{try{let n=e(t);return n instanceof Promise?n:{then(e){return U(e)(n)},catch(e){return this}}}catch(e){return{then(e){return this},catch(t){return U(t)(e)}}}},De=(e,t)=>(n,r,i)=>{let a={storage:H(()=>window.localStorage),partialize:e=>e,version:0,merge:(e,t)=>({...t,...e}),...t},o=!1,s=0,c=new Set,l=new Set,u=a.storage;if(!u)return e((...e)=>{console.warn(`[zustand persist middleware] Unable to update item '${a.name}', the given storage is currently unavailable.`),n(...e)},r,i);let d=()=>{let e=a.partialize({...r()});return u.setItem(a.name,{state:e,version:a.version})},f=i.setState;i.setState=(e,t)=>(f(e,t),d());let p=e((...e)=>(n(...e),d()),r,i);i.getInitialState=()=>p;let m,h=()=>{if(!u)return;let e=++s;o=!1,c.forEach(e=>e(r()??p));let t=a.onRehydrateStorage?.call(a,r()??p)||void 0;return U(u.getItem.bind(u))(a.name).then(e=>{if(e)if(typeof e.version==`number`&&e.version!==a.version){if(a.migrate){let t=a.migrate(e.state,e.version);return t instanceof Promise?t.then(e=>[!0,e]):[!0,t]}console.error(`State loaded from storage couldn't be migrated since no migrate function was provided`)}else return[!1,e.state];return[!1,void 0]}).then(t=>{if(e!==s)return;let[i,o]=t;if(m=a.merge(o,r()??p),n(m,!0),i)return d()}).then(()=>{e===s&&(t?.(r(),void 0),m=r(),o=!0,l.forEach(e=>e(m)))}).catch(n=>{e===s&&t?.(void 0,n)})};return i.persist={setOptions:e=>{a={...a,...e},e.storage&&(u=e.storage)},clearStorage:()=>{u?.removeItem(a.name)},getOptions:()=>a,rehydrate:()=>h(),hasHydrated:()=>o,onHydrate:e=>(c.add(e),()=>{c.delete(e)}),onFinishHydration:e=>(l.add(e),()=>{l.delete(e)})},a.skipHydration||h(),m||p},W={length:0,clear:()=>{},getItem:()=>null,key:()=>null,removeItem:()=>{},setItem:()=>{}};function Oe(e){let t=`__makaio_storage_probe__`,n=n=>{let r=null,i=!1;try{return r=n.getItem(t),i=r!==null,n.setItem(t,`1`),!0}catch{return!1}finally{try{i&&r!==null?n.setItem(t,r):n.removeItem(t)}catch(t){console.warn(`[createPersistedStore] Storage probe cleanup failed`,{type:e,error:t})}}};try{return e===`localStorage`?typeof localStorage>`u`?W:n(localStorage)?localStorage:W:typeof sessionStorage>`u`?W:n(sessionStorage)?sessionStorage:W}catch{return W}}function G(e,t){let{name:n,storage:r=`sessionStorage`,version:i,partialize:a,merge:o,extraPersistOptions:s}=t,c={name:n,storage:H(()=>Oe(r)),...i===void 0?{}:{version:i},...a?{partialize:a}:{},...o?{merge:o}:{},...s};return V()(De(e,c))}const ke={level:`root`,values:{}};function K(e){return{level:e.level,values:{...e.values}}}const q=G(e=>({windowId:null,uiContext:K(ke),activePaneId:null,setWindowId:t=>e(e=>e.windowId!==null&&e.windowId!==t?{}:{windowId:t}),setUiContext:t=>e({uiContext:K(t),activePaneId:null}),setActivePaneId:t=>e({activePaneId:t}),clearUiContext:()=>e({uiContext:K(ke),activePaneId:null})}),{name:`makaio-window-context`,storage:`sessionStorage`,partialize:e=>({uiContext:e.uiContext})}),J=G(e=>({activePageId:null,internalRoute:null,openPage:(t,n)=>e({activePageId:t,internalRoute:n??null}),close:()=>e({activePageId:null,internalRoute:null}),navigate:t=>e(e=>({internalRoute:t,activePageId:e.activePageId}))}),{name:`makaio-page-overlay`,storage:`sessionStorage`});function Ae(e,t,n){return{collapsedByLevel:{...e.collapsedByLevel,[t]:n}}}const je=G((e,t)=>({collapsedByLevel:{},isCollapsed:e=>t().collapsedByLevel[e]??!1,toggle:t=>e(e=>Ae(e,t,!(e.collapsedByLevel[t]??!1))),setCollapsed:(t,n)=>e(e=>Ae(e,t,n))}),{name:`makaio-sidebar`,storage:`localStorage`}),Y={onboarding:{id:`onboarding`,name:`Welcome`,isPreset:!0},chat:{id:`chat`,name:`Chat`,isPreset:!0,quickPromptSuggestions:[`Help me understand this code`,`What are the key files in this project?`,`Explain the architecture`]},git:{id:`git`,name:`Git`,isPreset:!0,quickPromptSuggestions:[`Show recent commits`,`What changed in this branch?`,`Create a new branch`]},review:{id:`review`,name:`Code Review`,isPreset:!0,quickPromptSuggestions:[`Review this pull request`,`Show file differences`,`Add review comments`]},planning:{id:`planning`,name:`Planning`,isPreset:!0,quickPromptSuggestions:[`Break down this task`,`Create implementation plan`,`Estimate complexity`]},settings:{id:`settings`,name:`Settings`,isPreset:!0},dashboard:{id:`dashboard`,name:`Dashboard`,isPreset:!0,quickPromptSuggestions:[`Show recent projects`,`Open a workspace`,`Create a new project`]}},Me={activeFocus:Y.chat},Ne=G((e,t)=>({activeFocus:Me.activeFocus,setActiveFocus:t=>{let n=Y[t];if(!n){console.error(`[focusStore] Unknown focus preset id: ${t}`);return}e({activeFocus:n})},setActiveFocusContext:t=>{e({activeFocus:t})},setFocusContextLayout:n=>{let{activeFocus:r}=t();e({activeFocus:{...r,layout:n}})},getFocusContextLayout:()=>t().activeFocus.layout}),{name:`makaio-focus`,storage:`sessionStorage`});function Pe(){return{version:1,widgets:[]}}function Fe(e,t){return e.widgets.some(e=>e.widgetId===t.widgetId)?e:{...e,widgets:[...e.widgets,t]}}function Ie(e,t){return e.widgets.some(e=>e.widgetId===t)?{...e,widgets:e.widgets.filter(e=>e.widgetId!==t)}:e}function Le(e,t,n){return e.widgets.some(e=>e.widgetId===t)?{...e,widgets:e.widgets.map(e=>e.widgetId===t?{...e,size:n}:e)}:e}function Re(e,t,n){return e.widgets.some(e=>e.widgetId===t)?{...e,widgets:e.widgets.map(e=>e.widgetId===t?{...e,...n}:e)}:e}function ze(){return q(e=>e.uiContext.level)}const Be=new Set([`http:`,`https:`]);function Ve(e){return e.on(f.navigate,e=>{let{url:t}=e.payload,n;try{n=new URL(t,window.location.href)}catch{throw Error(`[registerNavigationHandler] Invalid URL: ${t}`)}if(!Be.has(n.protocol))throw Error(`[registerNavigationHandler] Unsafe URL protocol "${n.protocol}" in: ${t}`);let r=n.toString(),i=p(n.pathname+n.search+n.hash);window.open(r,i,`noopener,noreferrer`),e.setResult({action:`navigated`})},{priority:10})}function He(e,t){let n=e.filter(e=>e.group!==void 0),r=new Map;for(let e of n){let t=e.group;r.has(t)||r.set(t,[]),r.get(t).push(e)}let i=[],a=new Set,o=[...t].sort((e,t)=>e.order-t.order);for(let e of o){let t=r.get(e.id)??[];i.push({config:e,pages:t}),a.add(e.id)}for(let[e,t]of r)if(!a.has(e)){let n={id:e,label:e,order:999};i.push({config:n,pages:t})}return i}function Ue(e){let t=r(e=>y.subscribe(e),[]),n=r(()=>y.getAll(),[]);return b(l(t,n,n),e)}function We(e){let t=Ue(e),n=J(e=>e.openPage),i=J(e=>e.activePageId),a=Ne(e=>e.setActiveFocus),o=Ne(e=>e.activeFocus.id),s=r(e=>g(e.mode)?()=>n(e.id):()=>{e.focusContext&&a(e.focusContext)},[n,a]);return t.map(e=>{let t;return t=e.isActive?e.isActive():g(e.mode)?i===e.id:e.focusContext?o===e.focusContext:!1,{...e,execute:s(e),isActive:t}})}function Ge(e,t){return e===void 0?!0:Array.isArray(e)?e.includes(t):e===t}function Ke(e){let t=q(e=>e.windowId),n=We(e);return t?n.filter(e=>Ge(e.windowId,t)):n}function qe(e,t=0){let i=r(t=>e===null?()=>void 0:y.subscribe(t),[e]),a=r(()=>{if(e!==null)return y.get(e)},[e]),s=l(i,a,a);return o(()=>{if(s)return{Component:n(s.component),definition:s}},[s,t])}function Je(e){let t=[],n=e=>{t.push(v.register(e))};return n({id:`welcome`,title:`Welcome`,kaiState:`wave`,order:10,skippable:!1,component:e.WelcomeStep}),n({id:`clients`,title:`Clients`,kaiState:`neutral`,order:20,skippable:!0,component:e.ClientsStep}),n({id:`providers`,title:`Providers`,kaiState:`neutral`,order:25,skippable:!0,component:e.ProvidersStep}),n({id:`adapters`,title:`Tools`,kaiState:`neutral`,order:30,skippable:!0,component:e.AdaptersStep}),n({id:`preferences`,title:`Preferences`,kaiState:`smile`,order:35,skippable:!0,component:e.PreferencesStep}),n({id:`plugins`,title:`Plugins`,kaiState:`neutral`,order:40,skippable:!0,condition:e=>e.extensions.length>0,component:e.PluginsStep}),n({id:`done`,title:`All Set`,kaiState:`success`,order:50,skippable:!1,component:e.DoneStep}),()=>{for(let e of t)e()}}function Ye(e){try{return localStorage.getItem(e)===`true`}catch{return!1}}function Xe(e){try{localStorage.setItem(e,`true`)}catch{}}function Ze(e){try{localStorage.removeItem(e)}catch{}}const Qe=`makaio-onboarding-skipped`;function $e(){return Ye(Qe)}function et(){Xe(Qe)}function tt(){Ze(Qe)}const nt=`makaio-onboarding-completed`;function rt(){return Ye(nt)}function it(){Xe(nt)}function at(){Ze(nt)}function X(e,t,n,r){let i=n.get(e)??{id:`onboarding-${e}`,config:void 0};return n.set(e,i),r.request(se.setEnabled,{extensionName:e,scope:`default`,enabled:t}).then(t=>(n.set(e,{...i,id:t.id}),t))}function ot(e){let t=ie.safeParse(e);if(!t.success)return null;let n=t.data;if(n.kind===`model`){let e=Z(n.adapterName),t=Z(n.model),r=Z(n.providerConfigId)??Z(n.providerId);return!e||!t?null:{kind:`adapter`,adapterName:e,model:t,...r?{providerConfigId:r}:{}}}if(n.kind===`virtualModel`){let e=Z(n.virtualModelId);return e?{kind:`virtual-model`,virtualModelId:e}:null}switch(n.kind){case`adapter`:{let e=Z(n.adapterName);if(!e)return null;let t=Z(n.model),r=Z(n.providerConfigId);return{kind:`adapter`,adapterName:e,...t?{model:t}:{},...r?{providerConfigId:r}:{}}}case`persona`:{let e=Z(n.personaId);return e?{kind:`persona`,personaId:e}:null}case`profile`:{let e=Z(n.profileId);return e?{kind:`profile`,profileId:e}:null}case`virtual-model`:{let e=Z(n.virtualModelId);return e?{kind:`virtual-model`,virtualModelId:e}:null}default:return null}}function st(e){return e.kind===`adapter`?typeof e.adapterName==`string`&&e.adapterName.trim().length>0&&typeof e.providerConfigId==`string`&&e.providerConfigId.trim().length>0&&typeof e.model==`string`&&e.model.trim().length>0:!0}function Z(e){if(typeof e!=`string`)return null;let t=e.trim();return t.length>0?t:null}function ct(e,t){if(typeof e==`object`&&e&&`defaultSelection`in e){let n=e.defaultSelection;if(n==null)return t;let r=ot(n);return r===null?t:{...t,defaultSelection:r}}return t}const lt=G(e=>({defaultSelection:null,setDefaultSelection:t=>e({defaultSelection:t})}),{name:`makaio-app-context`,storage:`localStorage`,merge:ct});async function ut(){let[{configs:e},{configs:t},{providers:n}]=await Promise.all([C.request(w.listProviderConfigs,{enabled:!0}),C.request(w.listAdapterConfigs,{}),C.request(D.list,{})]),r=new Map(n.map(e=>[e.id,e])),i=new Map;for(let e of t){if(!e.enabled)continue;let t=e.displayName??e.name;for(let n of e.bindings){let e={adapterName:n.adapterName,displayLabel:t},r=i.get(n.providerConfigId);r?r.push(e):i.set(n.providerConfigId,[e])}}return e.map(e=>({providerConfigId:e.id,definitionId:e.definitionId,name:e.name,availableModels:r.get(e.definitionId)?.availableModels??[],isDefault:e.isDefault,enabled:e.enabled,modelFilterMode:e.modelFilterMode,modelVisibility:e.modelVisibility,hasCredentials:e.hasCredentials,boundAdapters:i.get(e.id)??[]}))}const dt=V((e,t)=>({providers:[],isLoading:!1,error:null,_fetchPromise:null,_hasFetched:!1,_fetchGeneration:0,fetchProviders:async()=>{let n=t();if(n._hasFetched&&!n.isLoading)return Promise.resolve();if(n._fetchPromise)return n._fetchPromise;let r=t()._fetchGeneration;e({isLoading:!0,error:null});let i=ut().then(e=>{t()._fetchGeneration===r&&(console.debug(`[providerStore] providers:`,e.map(e=>({providerConfigId:e.providerConfigId,definitionId:e.definitionId,name:e.name}))),t().setProviders(e))}).catch(e=>{if(t()._fetchGeneration!==r)return;let n=e instanceof Error?e:Error(String(e));t().setError(n)}).finally(()=>{e(e=>e._fetchPromise===i?{_fetchPromise:null}:{})});return e({_fetchPromise:i}),i},invalidate:()=>{e(e=>({_hasFetched:!1,_fetchPromise:null,_fetchGeneration:e._fetchGeneration+1,isLoading:!1}))},setProviders:t=>{e({providers:t,isLoading:!1,error:null,_hasFetched:!0})},setError:t=>{e({error:t,isLoading:!1})}}));async function Q(){let[{clients:e},{adapters:t}]=await Promise.all([C.request(ce.list,{}),C.request(T.adapter.list,{})]),n=e.filter(e=>e.enabled&&e.binary!==void 0).map(e=>({id:e.id,name:e.name,binary:e.binary.name,supportedVersions:e.binary.supportedVersions}));if(n.length===0)return null;let{results:r}=await C.request(le.scan,{targets:n.map(e=>({clientId:e.id,binaryName:e.binary,supportedVersions:e.supportedVersions}))}),i=new Map(r.map(e=>[e.clientId,e])),a=n.map(e=>{let t=i.get(e.id);return{id:e.id,name:e.name,binary:e.binary,found:t?.found??!1,version:t?.version,warningMessage:t?.warningMessage}}),o=new Map;for(let e of t){if(!e.clientId)continue;let t=o.get(e.clientId);t?t.push(e.adapterName):o.set(e.clientId,[e.adapterName])}return{scannedClients:a,adaptersByClientId:o}}function ft(e){let{scannedClients:t,adaptersByClientId:n}=e,r=[];for(let e of t){let t=n.get(e.id);if(t?.length)for(let n of t)r.push({adapterName:n,displayName:e.name,binary:e.binary,found:e.found,version:e.version,warningMessage:e.warningMessage})}return r}function pt(e){let t=e.toLowerCase();return t.includes(`cli`)?0:t.includes(`sdk`)?1:2}function mt(e){let{scannedClients:t,adaptersByClientId:n}=e,r=[];for(let e of t){let t=(n.get(e.id)??[]).sort((e,t)=>{let n=pt(e),r=pt(t);return n===r?e.localeCompare(t):n-r});r.push({clientId:e.id,name:e.name,binary:e.binary,found:e.found,version:e.version,warningMessage:e.warningMessage,adapterNames:t})}return r}async function ht(){let e=await Q();return e?ft(e):[]}async function gt(){let e=await Q();return e?mt(e):[]}async function _t(){let e=await Q();return e?{adapters:ft(e),clients:mt(e)}:{adapters:[],clients:[]}}function vt(e,t){return{...e,supportedProtocols:t==null?[]:Object.keys(t.endpoints??{})}}async function yt(e,t={}){let[{configs:n},{providers:r}]=await Promise.all([e.request(w.listProviderConfigs,t),e.request(D.list,{})]),i=new Map(r.map(e=>[e.id,e]));return n.map(e=>vt(e,i.get(e.definitionId)))}async function bt(e,t){let{config:n}=await e.request(w.getProviderConfig,{id:t});if(n===null)return null;let{context:r}=await e.request(w.buildProviderContext,{providerConfigId:t});if(r===null||r.definitionId!==n.definitionId)return null;let{provider:i}=await e.request(D.get,{id:r.definitionId}),a=r.credentialRefs;return{...vt(n,i),...a&&Object.keys(a).length>0?{credentialRefs:a}:{}}}let $=null;function xt(e){if($===null)$={creator:e,count:1};else if($.creator===e)$.count+=1;else throw Error(`useOnboardingFlow: only one host-owned create bridge may be registered at a time.`);return()=>St(e)}function St(e){if($?.creator===e){if($.count===1){$=null;return}--$.count}}function Ct(e){return e}function wt(e){try{it()}catch(e){console.error(`[useOnboardingFlow] Failed to persist completion flag:`,e)}finally{e()}}async function Tt(e,t){let n=$?.creator??null;if(n){let r=await n(C,e);return await t(),r}let r=!!e.credentials&&Object.keys(e.credentials).length>0,i=!!e.credentialRefs&&Object.keys(e.credentialRefs).length>0;if(r&&!i)throw Error(`useOnboardingFlow: plaintext provider-config creation requires a host-owned create bridge.`);let{credentials:a,...o}=e,{config:s}=await C.request(w.createProviderConfig,o);return await t(),s.id}async function Et(e){let t=await C.requestOptional(w.getDefaultBinding,{adapterName:e});if(!t.handled||!t.data.binding)return;let{binding:n}=t.data;try{return await E(C,n.providerConfigId)}catch(e){console.warn(`[onboarding] buildProviderContext failed for ${n.providerConfigId}:`,e);return}}function Dt({context:e,onComplete:t,onSkip:n}){let{setDefaultSelection:i}=lt(),l=k(),[u]=c(()=>{let t=Ct(v.getAll());return Object.freeze(t.filter(t=>t.condition===void 0||t.condition(e)))}),[d,f]=c(0),[p,h]=c(e.adapters),[g,_]=c(()=>new Set(e.adapters.filter(e=>e.enabled).map(e=>e.adapterName))),[y,b]=c(()=>new Map),[x,te]=c(()=>new Map),[S,ie]=c(null),[E,ce]=c(()=>e.extensions),[D,le]=c(()=>new Map),[O,ue]=c([]),[de,fe]=c(!1),[pe,A]=c(null),[me,j]=c(()=>new Set),[he,ge]=c([]),[M,_e]=c([]),[ve,ye]=c([]),N=s(new Map),be=s(0),P=s(0),F=s(new Map);a(()=>{let e=++be.current,t=()=>be.current===e;(async()=>{try{let[e,n]=await Promise.all([C.request(ne.list,{}),C.request(se.list,{})]);if(!t())return;let r=new Map;for(let e of n.extensionConfigs)e.scope===`default`&&!r.has(e.extensionName)&&r.set(e.extensionName,{id:e.id,enabled:e.enabled,config:e.config});let i=new Map,a=new Map;for(let t of e.extensions){let e=r.get(t.name);e!==void 0&&(i.set(t.name,e.enabled),a.set(t.name,{id:e.id,config:e.config}))}ce(e.extensions),le(i),N.current=a}catch(e){if(!t())return;console.error(`[useOnboardingFlow] Failed to load extension list:`,e)}})()},[]),a(()=>()=>{for(let e of F.current.values())e.abort();F.current.clear()},[]);let I=r(async()=>{let{adapters:e}=await C.request(T.adapter.list,{});h(e),_(new Set(e.filter(e=>e.enabled).map(e=>e.adapterName)))},[]),L=r(async e=>{(await C.request(T.adapter.setEnabled,{adapterName:e,enabled:!0})).success&&(await I(),dt.getState().invalidate())},[I]),xe=r(async e=>{(await C.request(T.adapter.setEnabled,{adapterName:e,enabled:!1})).success&&(_(t=>{let n=new Set(t);return n.delete(e),n}),await I(),dt.getState().invalidate())},[I]),Se=r(async e=>{b(t=>new Map([...t,[e,{status:`pending`}]])),F.current.get(e)?.abort();let t=new AbortController;F.current.set(e,t);let n;try{n=(await C.request(ae.resolveId,{adapterName:e},{signal:t.signal})).adapterId}catch(n){if(t.signal.aborted)return{status:`pending`};let r={status:`error`,message:`Could not resolve adapter "${e}": ${n instanceof Error?n.message:String(n)}`};return b(t=>new Map([...t,[e,r]])),r}if(t.signal.aborted)return{status:`pending`};let r=await Et(e);if(t.signal.aborted)return{status:`pending`};let i=Date.now(),a={adapterId:n,prompt:`Reply with the single word: OK`,...r&&{providerContext:r}};try{if(await C.request(re.infer,a,{timeout:3e4,signal:t.signal}),t.signal.aborted)return{status:`pending`};let n={status:`success`,durationMs:Date.now()-i};return b(t=>new Map([...t,[e,n]])),n}catch(n){if(t.signal.aborted)return{status:`pending`};let r={status:`error`,message:n instanceof Error?n.message:String(n)};return b(t=>new Map([...t,[e,r]])),r}finally{F.current.get(e)===t&&F.current.delete(e)}},[]),Ce=r((e,t)=>{te(n=>new Map([...n,[e,t]]))},[]),we=r(e=>{ie(e)},[]),R=r(async()=>{let e=++P.current;fe(!0),A(null);try{let{adapters:t,clients:n}=await _t();if(P.current!==e)return;ue(t),ge(n);let r=new Set(n.filter(e=>e.found).map(e=>e.clientId));j(e=>e.size===0?r:new Set([...e].filter(e=>r.has(e))))}catch(t){if(P.current!==e)return;let n=t instanceof Error?t:Error(String(t));throw A(n),n}finally{P.current===e&&fe(!1)}},[]),Te=r((e,t)=>{le(n=>new Map([...n,[e,t]])),X(e,t,N.current,l).catch(t=>{console.error(`[useOnboardingFlow] Failed to persist plugin toggle for ${e}:`,t)})},[l]),z=r(e=>j(t=>new Set([...t,e])),[]),Ee=r(e=>{j(t=>{let n=new Set(t);return n.delete(e),n})},[]),B=r(async()=>{_e(await yt(C))},[]),V=r(async e=>Tt(e,B),[B]),H=r(async e=>{await C.request(w.deleteProviderConfig,{id:e}),await B(),ye(t=>t.filter(t=>t.providerConfigId!==e))},[B]),U=r(async e=>{let{bindings:t}=await C.request(w.listBindings,{adapterName:e});ye(n=>[...n.filter(t=>t.adapterName!==e),...t])},[]),De=r(async(e,t)=>{await C.request(w.bind,{adapterName:e,providerConfigId:t}),await U(e)},[U]),W=r(async(e,t)=>{await C.request(w.unbind,{adapterName:e,providerConfigId:t}),await U(e)},[U]),Oe=r(async(e,t)=>{await C.request(w.setDefaultBinding,{adapterName:e,providerConfigId:t}),await U(e)},[U]),G=o(()=>({enableAdapter:L,disableAdapter:xe,runHealthCheck:Se,setLogImportMode:Ce,setDefaultAgent:we,refreshAdapterList:I,togglePlugin:Te,scan:R,selectClient:z,deselectClient:Ee,createProviderConfig:V,deleteProviderConfig:H,bindProvider:De,unbindProvider:W,setDefaultProvider:Oe,refreshProviderConfigs:B,refreshBindings:U}),[L,xe,Se,Ce,we,I,Te,R,z,Ee,V,H,De,W,Oe,B,U]),ke=r(()=>{f(e=>Math.min(e+1,u.length-1))},[u.length]),K=r(()=>{f(e=>Math.max(e-1,0))},[]),q=r(async e=>{S&&i(S);let t=Array.from(x.entries());if(await Promise.all(t.map(([e,t])=>C.request(oe.setMode,{adapterName:e,mode:t},{timeout:8e3}))),await Promise.all(Array.from(D.entries()).map(([e,t])=>X(e,t,N.current,l))),e){for(let e of E)if(!D.has(e.name)){let t=m(ee(e.name));X(e.name,t,N.current,l).catch(t=>{console.error(`[useOnboardingFlow] Failed to persist default extension state for ${e.name}:`,t)})}}},[l,x,S,i,E,D]),J=r(async()=>{try{await q(!1)}catch(e){console.error(`[useOnboardingFlow] Failed to persist selections on skip:`,e)}finally{n()}},[q,n]),Ae=r(async()=>{try{await q(!0)}catch(e){console.error(`[useOnboardingFlow] Failed to persist selections on complete:`,e)}finally{wt(t)}},[q,t]),je=o(()=>({adapters:p,enabledAdapterNames:g,healthCheckResults:y,logImportSelections:x,defaultAgentSelection:S,extensions:E,pluginEnabledStates:D,scanAdapters:O,isScanning:de,scanError:pe,scanClients:he,selectedClientIds:me,providerConfigs:M,adapterProviderBindings:ve}),[p,g,y,x,S,E,D,O,de,pe,he,me,M,ve]),Y=u[d]??u[0];if(Y===void 0)throw Error(`useOnboardingFlow: no active steps found. Call registerCoreOnboardingSteps() before mounting the onboarding flow.`);return{activeSteps:u,currentStepIndex:d,currentStep:Y,flowState:je,actions:G,goNext:ke,goBack:K,skip:J,complete:Ae}}const Ot=Object.assign(Dt,{registerCreateProviderConfig:xt,unregisterCreateProviderConfig:St});export{O as BusContext,ue as BusProvider,Fe as addWidgetToFocusLayout,Q as buildScanContext,at as clearOnboardingCompleted,tt as clearOnboardingSkipped,Pe as createEmptyFocusContextLayout,G as createPersistedStore,rt as getOnboardingCompleted,$e as getOnboardingSkipped,bt as getProviderConfigDetailView,He as groupPagesByNavigationGroup,st as isPersistableProjectSelection,yt as listProviderConfigSummaryViews,we as loadExtensionBrowserContributions,W as noopStorage,ot as parsePersistedAgentSelection,X as persistPluginEnabled,Je as registerCoreOnboardingSteps,Ve as registerNavigationHandler,Ie as removeWidgetFromFocusLayout,_t as scanOnboarding,ht as scanOnboardingAdapters,gt as scanOnboardingClients,it as setOnboardingCompleted,et as setOnboardingSkipped,Re as updateFocusContextWidgetPosition,Le as updateFocusContextWidgetSize,lt as useAppContext,k as useBus,Ne as useFocusStore,ze as useNavigationLevel,Ot as useOnboardingFlow,de as useOptionalBus,qe as usePageComponent,Ue as usePageDefinitions,J as usePageOverlayStore,We as usePages,dt as useProviderStore,je as useSidebarStore,ye as useTrayLayout,he as useWidgetConfig,ge as useWidgetLayout,_e as useWidgetLayoutActions,me as useWidgetRegistry,A as useWidgets,q as useWindowContext,Ke as useWindowIdPages};
|
|
1
|
+
import e,{createContext as t,lazy as n,useCallback as r,useContext as i,useEffect as a,useMemo as o,useRef as s,useState as c,useSyncExternalStore as l}from"react";import{jsx as u}from"react/jsx-runtime";import{PreferencesSubjects as d}from"@makaio/framework/services/preferences";import{UiSubjects as f,deriveBrowserTarget as p,deriveDefaultEnabled as m,deriveTrayLayout as h,findCategory as g,isOverlayMode as _,isWidgetLayout as v,onboardingStepRegistry as y,pageDefinitionRegistry as b,queryPageDefinitions as x,runCleanupsInReverse as S,subscribeToWidgetEvents as C,widgetRegistry as w}from"@makaio/framework/ui-kernel";import{ExtensionSubjects as ee}from"@makaio/framework/kernel";import{MakaioBus as T}from"@makaio/framework/bus";import{AdapterSubjects as te,AgentSelectionSchema as ne}from"@makaio/framework/contracts";import{AdapterRuntimeSubjects as re}from"@makaio/framework/services/adapter-runtime";import{AdapterSubsystemSubjects as E}from"@makaio/framework/services/adapter-subsystem";import{LogImportSubjects as ie}from"@makaio/framework/services/log-import/log-import";import{SettingsSubjects as D}from"@makaio/framework/services/settings/namespace";import{ExtensionConfigStorageSubjects as ae}from"@makaio/framework/services/settings/storage/extension-configs/namespace";import{buildProviderContext as O}from"@makaio/framework/services/provider-context";import{ClientStorageSubjects as oe,ProviderStorageSubjects as k}from"@makaio/framework/services/settings/storage";import{ClientSubjects as se}from"@makaio/framework/contracts/client";const A=t(null);function ce({bus:e,children:t}){return u(A.Provider,{value:e,children:t})}function j(){let e=i(A);if(!e)throw Error(`useBus must be used within a BusProvider`);return e}function le(){return i(A)}function ue({subject:e,request:t,skip:n=!1,refetchOn:i=[]}){let l=j(),[u,d]=c(),[f,p]=c(!n),[m,h]=c(),g=o(()=>{if(t===void 0)return{deserializable:!0};try{let e=JSON.stringify(t);return e===void 0?{deserializable:!1}:{serialized:e,deserializable:!0}}catch{return{deserializable:!1}}},[t]),_=g.deserializable?g.serialized:`non-serializable-request`,v=o(()=>{if(g.deserializable&&g.serialized!==void 0)return JSON.parse(g.serialized)},[_,g.deserializable,g.serialized]),y=s(i);y.current=i;let b=o(()=>i.map(de).join(`,`),[i]),x=s(b);x.current!==b&&(x.current=b);let S=x.current,C=s(0),w=r(async()=>{let t=++C.current;p(!0),h(void 0);try{if(!g.deserializable)throw Error(`useBusQuery request must be JSON-serializable.`);let n=await l.request(e,v);t===C.current&&d(n)}catch(e){t===C.current&&h(e instanceof Error?e:Error(String(e)))}finally{t===C.current&&p(!1)}},[l,e,_,v,g.deserializable]);return a(()=>{n||w()},[w,n]),a(()=>{if(n||y.current.length===0)return;let e=y.current.map(e=>l.on(e,(()=>void w())));return()=>{for(let t of e)t()}},[l,S,w,n]),{data:u,loading:f,error:m,refetch:w}}function de(e){return JSON.stringify({subject:String(e.subject),meta:e.$meta})}function fe(e,t){let n=j(),r=s(t);r.current=t,a(()=>n.on(e,(e=>r.current(e))),[n,e])}function pe(e){return typeof e==`object`&&!!e&&!Array.isArray(e)&&Object.getPrototypeOf(e)===Object.prototype}const M=Object.freeze([]);function me(e={}){let{builtIns:t=M,scope:n,includeAny:i=!0}=e,s=j(),[u,d]=c(!1);a(()=>{w.registerAll(t)},[t]),a(()=>{let e=C(s);return d(!0),()=>{e(),d(!1)}},[s]);let f=r(e=>w.subscribe(e),[]),p=r(()=>w.getAll(),[]),m=l(f,p,p),h=o(()=>n?w.getByScope(n,i):m,[m,i,n]);return{builtInWidgets:t,loading:!u,widgets:u?h:void 0}}function he(e={}){let{scope:t,includeAny:n=!0}=e,i=r(e=>w.subscribe(e),[]),a=r(()=>w.getAll(),[]),s=l(i,a,a);return o(()=>t?w.getByScope(t,n):s,[s,n,t])}function ge(e){return e.contextId?`${e.scope}:${e.contextId}`:e.scope}function _e(e){let{paneId:t,widgetId:n,context:i,surface:l,defaultConfig:u}=e,f=j(),[p,m]=c(u),h=s(0),g=o(()=>ge(i),[i.contextId,i.scope]),_=o(()=>({category:`widget-config:${t}:${n}`,key:{scope:g,surface:l}}),[g,t,l,n]),v=o(()=>structuredClone(u),[u]);a(()=>{let e=++h.current,t=()=>h.current===e;return m(v),(async()=>{try{let{value:e}=await f.request(d.get,{category:_.category,key:_.key});if(!t())return;pe(e)&&m(t=>({...t,...e}))}catch{}})(),()=>{++h.current}},[f,v,_]);let y=r(async e=>{try{await f.request(d.set,{category:_.category,key:_.key,value:e})}catch{}},[f,_]);return{config:p,updateConfig:r(e=>{m(t=>{let n={...t,...e};return y(n),n})},[y])}}function ve(e){let t=j(),[n,i]=c(null),[o,s]=c(!0),[l,u]=c(null),f=r(async()=>{s(!0),u(null);try{let{value:n}=await t.request(d.get,{category:`widget-layout`,key:e});i(v(n)?n:null)}catch(e){u(e instanceof Error?e:Error(`Failed to load layout`)),i(null)}finally{s(!1)}},[t,e]);return a(()=>{f()},[f]),{layout:n,isLoading:o,error:l,refresh:f}}const N=`widget-layout`;function P(){let e=j();return{saveLayout:r(async(t,n)=>{await e.request(d.set,{category:N,key:t,value:n})},[e]),resetLayout:r(async t=>{await e.request(d.delete,{category:N,key:t})},[e])}}const ye=Object.freeze([]);function F(e=ye){let t=r(e=>w.subscribe(e),[]),n=r(()=>w.getAll(),[]),i=l(t,n,n);return o(()=>h(i,e),[i,e])}async function I(e){return import(e)}function L(e){return e.kind===`resolved`&&e.factory!==void 0}function be(e){return e.filter(e=>e.state===`active`&&e.browser?.entrypoint)}function R(){return{cleanups:[],errorMessage:null,shell:null,state:`empty`}}function xe(e){return e===`cancelled`}function z(e,t,n,r){return{cleanups:e,errorMessage:r,shell:n,state:t}}async function Se(e,t){let{bus:n,isCurrentRun:r,waitForRuntimeReady:i}=e,a=i(n);t.push(a.cleanup);let o=await a.ready;if(xe(o))return S(t,`[ExtensionBrowserLoader]`),{kind:`aborted`};if(o===`timeout`)return{kind:`result`,result:z(t,`error`,null,`The Makaio runtime did not respond. The service may have failed to start — try restarting the application or check the logs for errors.`)};if(!r())return S(t,`[ExtensionBrowserLoader]`),{kind:`aborted`};let{extensions:s}=await n.request(ee.list,{}),c=be(s);return c.length===0?{kind:`result`,result:z(t,`empty`,null,null)}:{browserExtensions:c,kind:`ok`}}function Ce(e){let t=e.browser.entrypoint,n;try{n=new URL(t,globalThis.location.origin)}catch{return console.warn(`[ExtensionBrowserLoader] Extension "${e.name}" has malformed entrypoint "${t}"`),null}return n.origin!==globalThis.location.origin||!n.pathname.startsWith(`/extensions/`)?(console.warn(`[ExtensionBrowserLoader] Extension "${e.name}" has unsafe entrypoint "${t}" (must stay under /extensions/)`),null):n.pathname}async function we(e,t,n,r){let{bus:i,getRegisteredFactory:a,importModule:o=I,isCurrentRun:s,registerExtensionUI:c,resolveFactory:l,unregisterFactory:u}=e,d=Ce(t);if(d===null)return{failed:!0,kind:`ok`,shell:r};let f=[()=>u(t.name)];try{let e=await o(d);if(!s())return S(f,`[ExtensionBrowserLoader] ${t.name}`),S(n,`[ExtensionBrowserLoader]`),{kind:`aborted`};let u=l(e.default,a(t.name));if(!L(u))return S(f,`[ExtensionBrowserLoader] ${t.name}`),console.warn(`[ExtensionBrowserLoader] Extension "${t.name}" has invalid browser factory (${u.reason??`unknown resolution error`})`),{failed:!0,kind:`ok`,shell:r};let p=u.factory({bus:i});if(!p||typeof p!=`object`)return S(f,`[ExtensionBrowserLoader] ${t.name}`),console.warn(`[ExtensionBrowserLoader] Extension "${t.name}" factory returned invalid contribution (expected object, got ${p===null?`null`:typeof p})`),{failed:!0,kind:`ok`,shell:r};p.destroy&&f.push(p.destroy),f.push(c(i,t.name,p));let m=r;return p.shell&&(m!==null&&console.warn(`[ExtensionBrowserLoader] Extension "${t.name}" replaces the previously registered shell (shell contributions are last-wins)`),m=p.shell.component),n.push(...f),{failed:!1,kind:`ok`,shell:m}}catch(e){return S(f,`[ExtensionBrowserLoader] ${t.name}`),console.error(`[ExtensionBrowserLoader] Failed to load extension "${t.name}":`,e),{failed:!0,kind:`ok`,shell:r}}}async function Te(e){let t=[];try{let n=await Se(e,t);if(n.kind===`aborted`)return R();if(n.kind===`result`)return n.result;let r=0,i=null;for(let a of n.browserExtensions){let n=await we(e,a,t,i);if(n.kind===`aborted`)return R();i=n.shell,n.failed&&(r+=1)}return e.isCurrentRun()?i===null?r>0?z(t,`error`,null,`One or more extensions failed to load before providing workspace chrome.`):z(t,`empty`,null,null):z(t,`ready`,i,null):(S(t,`[ExtensionBrowserLoader]`),R())}catch(e){return console.error(`[ExtensionBrowserLoader] Failed to query extensions:`,e),z(t,`error`,null,e instanceof Error?e.message:String(e))}}const B=e=>{let t,n=new Set,r=(e,r)=>{let i=typeof e==`function`?e(t):e;if(!Object.is(i,t)){let e=t;t=r??(typeof i!=`object`||!i)?i:Object.assign({},t,i),n.forEach(n=>n(t,e))}},i=()=>t,a={setState:r,getState:i,getInitialState:()=>o,subscribe:e=>(n.add(e),()=>n.delete(e))},o=t=e(r,i,a);return a},V=(e=>e?B(e):B),Ee=e=>e;function De(t,n=Ee){let r=e.useSyncExternalStore(t.subscribe,e.useCallback(()=>n(t.getState()),[t,n]),e.useCallback(()=>n(t.getInitialState()),[t,n]));return e.useDebugValue(r),r}const H=e=>{let t=V(e),n=e=>De(t,e);return Object.assign(n,t),n},U=(e=>e?H(e):H);function W(e,t){let n;try{n=e()}catch{return}return{getItem:e=>{let r=e=>e===null?null:JSON.parse(e,t?.reviver),i=n.getItem(e)??null;return i instanceof Promise?i.then(r):r(i)},setItem:(e,r)=>n.setItem(e,JSON.stringify(r,t?.replacer)),removeItem:e=>n.removeItem(e)}}const G=e=>t=>{try{let n=e(t);return n instanceof Promise?n:{then(e){return G(e)(n)},catch(e){return this}}}catch(e){return{then(e){return this},catch(t){return G(t)(e)}}}},Oe=(e,t)=>(n,r,i)=>{let a={storage:W(()=>window.localStorage),partialize:e=>e,version:0,merge:(e,t)=>({...t,...e}),...t},o=!1,s=0,c=new Set,l=new Set,u=a.storage;if(!u)return e((...e)=>{console.warn(`[zustand persist middleware] Unable to update item '${a.name}', the given storage is currently unavailable.`),n(...e)},r,i);let d=()=>{let e=a.partialize({...r()});return u.setItem(a.name,{state:e,version:a.version})},f=i.setState;i.setState=(e,t)=>(f(e,t),d());let p=e((...e)=>(n(...e),d()),r,i);i.getInitialState=()=>p;let m,h=()=>{if(!u)return;let e=++s;o=!1,c.forEach(e=>e(r()??p));let t=a.onRehydrateStorage?.call(a,r()??p)||void 0;return G(u.getItem.bind(u))(a.name).then(e=>{if(e)if(typeof e.version==`number`&&e.version!==a.version){if(a.migrate){let t=a.migrate(e.state,e.version);return t instanceof Promise?t.then(e=>[!0,e]):[!0,t]}console.error(`State loaded from storage couldn't be migrated since no migrate function was provided`)}else return[!1,e.state];return[!1,void 0]}).then(t=>{if(e!==s)return;let[i,o]=t;if(m=a.merge(o,r()??p),n(m,!0),i)return d()}).then(()=>{e===s&&(t?.(r(),void 0),m=r(),o=!0,l.forEach(e=>e(m)))}).catch(n=>{e===s&&t?.(void 0,n)})};return i.persist={setOptions:e=>{a={...a,...e},e.storage&&(u=e.storage)},clearStorage:()=>{u?.removeItem(a.name)},getOptions:()=>a,rehydrate:()=>h(),hasHydrated:()=>o,onHydrate:e=>(c.add(e),()=>{c.delete(e)}),onFinishHydration:e=>(l.add(e),()=>{l.delete(e)})},a.skipHydration||h(),m||p},K={length:0,clear:()=>{},getItem:()=>null,key:()=>null,removeItem:()=>{},setItem:()=>{}};function ke(e){let t=`__makaio_storage_probe__`,n=n=>{let r=null,i=!1;try{return r=n.getItem(t),i=r!==null,n.setItem(t,`1`),!0}catch{return!1}finally{try{i&&r!==null?n.setItem(t,r):n.removeItem(t)}catch(t){console.warn(`[createPersistedStore] Storage probe cleanup failed`,{type:e,error:t})}}};try{return e===`localStorage`?typeof localStorage>`u`?K:n(localStorage)?localStorage:K:typeof sessionStorage>`u`?K:n(sessionStorage)?sessionStorage:K}catch{return K}}function q(e,t){let{name:n,storage:r=`sessionStorage`,version:i,partialize:a,merge:o,extraPersistOptions:s}=t,c={name:n,storage:W(()=>ke(r)),...i===void 0?{}:{version:i},...a?{partialize:a}:{},...o?{merge:o}:{},...s};return U()(Oe(e,c))}const Ae={level:`root`,values:{}};function J(e){return{level:e.level,values:{...e.values}}}const Y=q(e=>({windowId:null,uiContext:J(Ae),activePaneId:null,setWindowId:t=>e(e=>e.windowId!==null&&e.windowId!==t?{}:{windowId:t}),setUiContext:t=>e({uiContext:J(t),activePaneId:null}),setActivePaneId:t=>e({activePaneId:t}),clearUiContext:()=>e({uiContext:J(Ae),activePaneId:null})}),{name:`makaio-window-context`,storage:`sessionStorage`,partialize:e=>({uiContext:e.uiContext})}),X=q(e=>({activePageId:null,internalRoute:null,openPage:(t,n)=>e({activePageId:t,internalRoute:n??null}),close:()=>e({activePageId:null,internalRoute:null}),navigate:t=>e(e=>({internalRoute:t,activePageId:e.activePageId}))}),{name:`makaio-page-overlay`,storage:`sessionStorage`});function je(e,t,n){return{collapsedByLevel:{...e.collapsedByLevel,[t]:n}}}const Me=q((e,t)=>({collapsedByLevel:{},isCollapsed:e=>t().collapsedByLevel[e]??!1,toggle:t=>e(e=>je(e,t,!(e.collapsedByLevel[t]??!1))),setCollapsed:(t,n)=>e(e=>je(e,t,n))}),{name:`makaio-sidebar`,storage:`localStorage`}),Ne={onboarding:{id:`onboarding`,name:`Welcome`,isPreset:!0},chat:{id:`chat`,name:`Chat`,isPreset:!0,quickPromptSuggestions:[`Help me understand this code`,`What are the key files in this project?`,`Explain the architecture`]},git:{id:`git`,name:`Git`,isPreset:!0,quickPromptSuggestions:[`Show recent commits`,`What changed in this branch?`,`Create a new branch`]},review:{id:`review`,name:`Code Review`,isPreset:!0,quickPromptSuggestions:[`Review this pull request`,`Show file differences`,`Add review comments`]},planning:{id:`planning`,name:`Planning`,isPreset:!0,quickPromptSuggestions:[`Break down this task`,`Create implementation plan`,`Estimate complexity`]},settings:{id:`settings`,name:`Settings`,isPreset:!0},dashboard:{id:`dashboard`,name:`Dashboard`,isPreset:!0,quickPromptSuggestions:[`Show recent projects`,`Open a workspace`,`Create a new project`]}},Pe={activeFocus:Ne.chat},Fe=q((e,t)=>({activeFocus:Pe.activeFocus,setActiveFocus:t=>{let n=Ne[t];if(!n){console.error(`[focusStore] Unknown focus preset id: ${t}`);return}e({activeFocus:n})},setActiveFocusContext:t=>{e({activeFocus:t})},setFocusContextLayout:n=>{let{activeFocus:r}=t();e({activeFocus:{...r,layout:n}})},getFocusContextLayout:()=>t().activeFocus.layout}),{name:`makaio-focus`,storage:`sessionStorage`});function Ie(){return{version:1,widgets:[]}}function Le(e,t){return e.widgets.some(e=>e.widgetId===t.widgetId)?e:{...e,widgets:[...e.widgets,t]}}function Re(e,t){return e.widgets.some(e=>e.widgetId===t)?{...e,widgets:e.widgets.filter(e=>e.widgetId!==t)}:e}function ze(e,t,n){return e.widgets.some(e=>e.widgetId===t)?{...e,widgets:e.widgets.map(e=>e.widgetId===t?{...e,size:n}:e)}:e}function Be(e,t,n){return e.widgets.some(e=>e.widgetId===t)?{...e,widgets:e.widgets.map(e=>e.widgetId===t?{...e,...n}:e)}:e}function Ve(){return Y(e=>e.uiContext.level)}const He=new Set([`http:`,`https:`]);function Ue(e){return e.on(f.navigate,e=>{let{url:t}=e.payload,n;try{n=new URL(t,window.location.href)}catch{throw Error(`[registerNavigationHandler] Invalid URL: ${t}`)}if(!He.has(n.protocol))throw Error(`[registerNavigationHandler] Unsafe URL protocol "${n.protocol}" in: ${t}`);let r=n.toString(),i=p(n.pathname+n.search+n.hash);window.open(r,i,`noopener,noreferrer`),e.setResult({action:`navigated`})},{priority:10})}function We(e,t){let n=e.filter(e=>e.group!==void 0),r=new Map;for(let e of n){let t=e.group;r.has(t)||r.set(t,[]),r.get(t).push(e)}let i=[],a=new Set,o=[...t].sort((e,t)=>e.order-t.order);for(let e of o){let t=r.get(e.id)??[];i.push({config:e,pages:t}),a.add(e.id)}for(let[e,t]of r)if(!a.has(e)){let n={id:e,label:e,order:999};i.push({config:n,pages:t})}return i}function Ge(e){let t=r(e=>b.subscribe(e),[]),n=r(()=>b.getAll(),[]);return x(l(t,n,n),e)}function Ke(e){let t=Ge(e),n=X(e=>e.openPage),i=X(e=>e.activePageId),a=Fe(e=>e.setActiveFocus),o=Fe(e=>e.activeFocus.id),s=r(e=>_(e.mode)?()=>n(e.id):()=>{e.focusContext&&a(e.focusContext)},[n,a]);return t.map(e=>{let t;return t=e.isActive?e.isActive():_(e.mode)?i===e.id:e.focusContext?o===e.focusContext:!1,{...e,execute:s(e),isActive:t}})}function qe(e,t){return e===void 0?!0:Array.isArray(e)?e.includes(t):e===t}function Je(e){let t=Y(e=>e.windowId),n=Ke(e);return t?n.filter(e=>qe(e.windowId,t)):n}function Ye(e,t=0){let i=r(t=>e===null?()=>void 0:b.subscribe(t),[e]),a=r(()=>{if(e!==null)return b.get(e)},[e]),s=l(i,a,a);return o(()=>{if(s)return{Component:n(s.component),definition:s}},[s,t])}function Xe(e){let t=[],n=e=>{t.push(y.register(e))};return n({id:`welcome`,title:`Welcome`,kaiState:`wave`,order:10,skippable:!1,component:e.WelcomeStep}),n({id:`clients`,title:`Clients`,kaiState:`neutral`,order:20,skippable:!0,component:e.ClientsStep}),n({id:`providers`,title:`Providers`,kaiState:`neutral`,order:25,skippable:!0,component:e.ProvidersStep}),n({id:`adapters`,title:`Tools`,kaiState:`neutral`,order:30,skippable:!0,component:e.AdaptersStep}),n({id:`preferences`,title:`Preferences`,kaiState:`smile`,order:35,skippable:!0,component:e.PreferencesStep}),n({id:`plugins`,title:`Plugins`,kaiState:`neutral`,order:40,skippable:!0,condition:e=>e.extensions.length>0,component:e.PluginsStep}),n({id:`done`,title:`All Set`,kaiState:`success`,order:50,skippable:!1,component:e.DoneStep}),()=>{for(let e of t)e()}}function Ze(e){try{return localStorage.getItem(e)===`true`}catch{return!1}}function Qe(e){try{localStorage.setItem(e,`true`)}catch{}}function $e(e){try{localStorage.removeItem(e)}catch{}}const et=`makaio-onboarding-skipped`;function tt(){return Ze(et)}function nt(){Qe(et)}function rt(){$e(et)}const it=`makaio-onboarding-completed`;function at(){return Ze(it)}function ot(){Qe(it)}function st(){$e(it)}function Z(e,t,n,r){let i=n.get(e)??{id:`onboarding-${e}`,config:void 0};return n.set(e,i),r.request(ae.setEnabled,{extensionName:e,scope:`default`,enabled:t}).then(t=>(n.set(e,{...i,id:t.id}),t))}function ct(e){let t=ne.safeParse(e);if(!t.success)return null;let n=t.data;if(n.kind===`model`){let e=Q(n.adapterName),t=Q(n.model),r=Q(n.providerConfigId)??Q(n.providerId);return!e||!t?null:{kind:`adapter`,adapterName:e,model:t,...r?{providerConfigId:r}:{}}}if(n.kind===`virtualModel`){let e=Q(n.virtualModelId);return e?{kind:`virtual-model`,virtualModelId:e}:null}switch(n.kind){case`adapter`:{let e=Q(n.adapterName);if(!e)return null;let t=Q(n.model),r=Q(n.providerConfigId);return{kind:`adapter`,adapterName:e,...t?{model:t}:{},...r?{providerConfigId:r}:{}}}case`persona`:{let e=Q(n.personaId);return e?{kind:`persona`,personaId:e}:null}case`profile`:{let e=Q(n.profileId);return e?{kind:`profile`,profileId:e}:null}case`virtual-model`:{let e=Q(n.virtualModelId);return e?{kind:`virtual-model`,virtualModelId:e}:null}default:return null}}function lt(e){return e.kind===`adapter`?typeof e.adapterName==`string`&&e.adapterName.trim().length>0&&typeof e.providerConfigId==`string`&&e.providerConfigId.trim().length>0&&typeof e.model==`string`&&e.model.trim().length>0:!0}function Q(e){if(typeof e!=`string`)return null;let t=e.trim();return t.length>0?t:null}function ut(e,t){if(typeof e==`object`&&e&&`defaultSelection`in e){let n=e.defaultSelection;if(n==null)return t;let r=ct(n);return r===null?t:{...t,defaultSelection:r}}return t}const dt=q(e=>({defaultSelection:null,setDefaultSelection:t=>e({defaultSelection:t})}),{name:`makaio-app-context`,storage:`localStorage`,merge:ut});async function ft(){let[{configs:e},{configs:t},{providers:n}]=await Promise.all([T.request(E.listProviderConfigs,{enabled:!0}),T.request(E.listAdapterConfigs,{}),T.request(k.list,{})]),r=new Map(n.map(e=>[e.id,e])),i=new Map;for(let e of t){if(!e.enabled)continue;let t=e.displayName??e.name;for(let n of e.bindings){let e={adapterName:n.adapterName,displayLabel:t},r=i.get(n.providerConfigId);r?r.push(e):i.set(n.providerConfigId,[e])}}return e.map(e=>({providerConfigId:e.id,definitionId:e.definitionId,name:e.name,availableModels:r.get(e.definitionId)?.availableModels??[],isDefault:e.isDefault,enabled:e.enabled,modelFilterMode:e.modelFilterMode,modelVisibility:e.modelVisibility,hasCredentials:e.hasCredentials,boundAdapters:i.get(e.id)??[]}))}const pt=U((e,t)=>({providers:[],isLoading:!1,error:null,_fetchPromise:null,_hasFetched:!1,_fetchGeneration:0,fetchProviders:async()=>{let n=t();if(n._hasFetched&&!n.isLoading)return Promise.resolve();if(n._fetchPromise)return n._fetchPromise;let r=t()._fetchGeneration;e({isLoading:!0,error:null});let i=ft().then(e=>{t()._fetchGeneration===r&&(console.debug(`[providerStore] providers:`,e.map(e=>({providerConfigId:e.providerConfigId,definitionId:e.definitionId,name:e.name}))),t().setProviders(e))}).catch(e=>{if(t()._fetchGeneration!==r)return;let n=e instanceof Error?e:Error(String(e));t().setError(n)}).finally(()=>{e(e=>e._fetchPromise===i?{_fetchPromise:null}:{})});return e({_fetchPromise:i}),i},invalidate:()=>{e(e=>({_hasFetched:!1,_fetchPromise:null,_fetchGeneration:e._fetchGeneration+1,isLoading:!1}))},setProviders:t=>{e({providers:t,isLoading:!1,error:null,_hasFetched:!0})},setError:t=>{e({error:t,isLoading:!1})}}));async function mt(){let[{clients:e},{adapters:t}]=await Promise.all([T.request(oe.list,{}),T.request(D.adapter.list,{})]),n=e.filter(e=>e.enabled&&e.binary!==void 0).map(e=>({id:e.id,name:e.name,binary:e.binary.name,supportedVersions:e.binary.supportedVersions}));if(n.length===0)return null;let{results:r}=await T.request(se.scan,{targets:n.map(e=>({clientId:e.id,binaryName:e.binary,supportedVersions:e.supportedVersions}))}),i=new Map(r.map(e=>[e.clientId,e])),a=n.map(e=>{let t=i.get(e.id);return{id:e.id,name:e.name,binary:e.binary,found:t?.found??!1,version:t?.version,warningMessage:t?.warningMessage}}),o=new Map;for(let e of t){if(!e.clientId)continue;let t=o.get(e.clientId);t?t.push(e.adapterName):o.set(e.clientId,[e.adapterName])}return{scannedClients:a,adaptersByClientId:o}}function ht(e){let{scannedClients:t,adaptersByClientId:n}=e,r=[];for(let e of t){let t=n.get(e.id);if(t?.length)for(let n of t)r.push({adapterName:n,displayName:e.name,binary:e.binary,found:e.found,version:e.version,warningMessage:e.warningMessage})}return r}function gt(e){let t=e.toLowerCase();return t.includes(`cli`)?0:t.includes(`sdk`)?1:2}function _t(e){let{scannedClients:t,adaptersByClientId:n}=e,r=[];for(let e of t){let t=(n.get(e.id)??[]).sort((e,t)=>{let n=gt(e),r=gt(t);return n===r?e.localeCompare(t):n-r});r.push({clientId:e.id,name:e.name,binary:e.binary,found:e.found,version:e.version,warningMessage:e.warningMessage,adapterNames:t})}return r}async function vt(){let e=await mt();return e?ht(e):[]}async function yt(){let e=await mt();return e?_t(e):[]}async function bt(){let e=await mt();return e?{adapters:ht(e),clients:_t(e)}:{adapters:[],clients:[]}}function xt(e,t){return{...e,supportedProtocols:t==null?[]:Object.keys(t.endpoints??{})}}async function St(e,t={}){let[{configs:n},{providers:r}]=await Promise.all([e.request(E.listProviderConfigs,t),e.request(k.list,{})]),i=new Map(r.map(e=>[e.id,e]));return n.map(e=>xt(e,i.get(e.definitionId)))}async function Ct(e,t){let{config:n}=await e.request(E.getProviderConfig,{id:t});if(n===null)return null;let{context:r}=await e.request(E.buildProviderContext,{providerConfigId:t});if(r===null||r.definitionId!==n.definitionId)return null;let{provider:i}=await e.request(k.get,{id:r.definitionId}),a=r.credentialRefs;return{...xt(n,i),...a&&Object.keys(a).length>0?{credentialRefs:a}:{}}}let $=null;function wt(e){if($===null)$={creator:e,count:1};else if($.creator===e)$.count+=1;else throw Error(`useOnboardingFlow: only one host-owned create bridge may be registered at a time.`);return()=>Tt(e)}function Tt(e){if($?.creator===e){if($.count===1){$=null;return}--$.count}}function Et(e){return e}function Dt(e){try{ot()}catch(e){console.error(`[useOnboardingFlow] Failed to persist completion flag:`,e)}finally{e()}}async function Ot(e,t){let n=$?.creator??null;if(n){let r=await n(T,e);return await t(),r}let r=!!e.credentials&&Object.keys(e.credentials).length>0,i=!!e.credentialRefs&&Object.keys(e.credentialRefs).length>0;if(r&&!i)throw Error(`useOnboardingFlow: plaintext provider-config creation requires a host-owned create bridge.`);let{credentials:a,...o}=e,{config:s}=await T.request(E.createProviderConfig,o);return await t(),s.id}async function kt(e){let t=await T.requestOptional(E.getDefaultBinding,{adapterName:e});if(!t.handled||!t.data.binding)return;let{binding:n}=t.data;try{return await O(T,n.providerConfigId)}catch(e){console.warn(`[onboarding] buildProviderContext failed for ${n.providerConfigId}:`,e);return}}function At({context:e,onComplete:t,onSkip:n}){let{setDefaultSelection:i}=dt(),l=j(),[u]=c(()=>{let t=Et(y.getAll());return Object.freeze(t.filter(t=>t.condition===void 0||t.condition(e)))}),[d,f]=c(0),[p,h]=c(e.adapters),[_,v]=c(()=>new Set(e.adapters.filter(e=>e.enabled).map(e=>e.adapterName))),[b,x]=c(()=>new Map),[S,C]=c(()=>new Map),[w,ne]=c(null),[O,oe]=c(()=>e.extensions),[k,se]=c(()=>new Map),[A,ce]=c([]),[le,ue]=c(!1),[de,fe]=c(null),[pe,M]=c(()=>new Set),[me,he]=c([]),[ge,_e]=c([]),[ve,N]=c([]),P=s(new Map),ye=s(0),F=s(0),I=s(new Map);a(()=>{let e=++ye.current,t=()=>ye.current===e;(async()=>{try{let[e,n]=await Promise.all([T.request(ee.list,{}),T.request(ae.list,{})]);if(!t())return;let r=new Map;for(let e of n.extensionConfigs)e.scope===`default`&&!r.has(e.extensionName)&&r.set(e.extensionName,{id:e.id,enabled:e.enabled,config:e.config});let i=new Map,a=new Map;for(let t of e.extensions){let e=r.get(t.name);e!==void 0&&(i.set(t.name,e.enabled),a.set(t.name,{id:e.id,config:e.config}))}oe(e.extensions),se(i),P.current=a}catch(e){if(!t())return;console.error(`[useOnboardingFlow] Failed to load extension list:`,e)}})()},[]),a(()=>()=>{for(let e of I.current.values())e.abort();I.current.clear()},[]);let L=r(async()=>{let{adapters:e}=await T.request(D.adapter.list,{});h(e),v(new Set(e.filter(e=>e.enabled).map(e=>e.adapterName)))},[]),be=r(async e=>{(await T.request(D.adapter.setEnabled,{adapterName:e,enabled:!0})).success&&(await L(),pt.getState().invalidate())},[L]),R=r(async e=>{(await T.request(D.adapter.setEnabled,{adapterName:e,enabled:!1})).success&&(v(t=>{let n=new Set(t);return n.delete(e),n}),await L(),pt.getState().invalidate())},[L]),xe=r(async e=>{x(t=>new Map([...t,[e,{status:`pending`}]])),I.current.get(e)?.abort();let t=new AbortController;I.current.set(e,t);let n;try{n=(await T.request(re.resolveId,{adapterName:e},{signal:t.signal})).adapterId}catch(n){if(t.signal.aborted)return{status:`pending`};let r={status:`error`,message:`Could not resolve adapter "${e}": ${n instanceof Error?n.message:String(n)}`};return x(t=>new Map([...t,[e,r]])),r}if(t.signal.aborted)return{status:`pending`};let r=await kt(e);if(t.signal.aborted)return{status:`pending`};let i=Date.now(),a={adapterId:n,prompt:`Reply with the single word: OK`,...r&&{providerContext:r}};try{if(await T.request(te.infer,a,{timeout:3e4,signal:t.signal}),t.signal.aborted)return{status:`pending`};let n={status:`success`,durationMs:Date.now()-i};return x(t=>new Map([...t,[e,n]])),n}catch(n){if(t.signal.aborted)return{status:`pending`};let r={status:`error`,message:n instanceof Error?n.message:String(n)};return x(t=>new Map([...t,[e,r]])),r}finally{I.current.get(e)===t&&I.current.delete(e)}},[]),z=r((e,t)=>{C(n=>new Map([...n,[e,t]]))},[]),Se=r(e=>{ne(e)},[]),Ce=r(async()=>{let e=++F.current;ue(!0),fe(null);try{let{adapters:t,clients:n}=await bt();if(F.current!==e)return;ce(t),he(n);let r=new Set(n.filter(e=>e.found).map(e=>e.clientId));M(e=>e.size===0?r:new Set([...e].filter(e=>r.has(e))))}catch(t){if(F.current!==e)return;let n=t instanceof Error?t:Error(String(t));throw fe(n),n}finally{F.current===e&&ue(!1)}},[]),we=r((e,t)=>{se(n=>new Map([...n,[e,t]])),Z(e,t,P.current,l).catch(t=>{console.error(`[useOnboardingFlow] Failed to persist plugin toggle for ${e}:`,t)})},[l]),Te=r(e=>M(t=>new Set([...t,e])),[]),B=r(e=>{M(t=>{let n=new Set(t);return n.delete(e),n})},[]),V=r(async()=>{_e(await St(T))},[]),Ee=r(async e=>Ot(e,V),[V]),De=r(async e=>{await T.request(E.deleteProviderConfig,{id:e}),await V(),N(t=>t.filter(t=>t.providerConfigId!==e))},[V]),H=r(async e=>{let{bindings:t}=await T.request(E.listBindings,{adapterName:e});N(n=>[...n.filter(t=>t.adapterName!==e),...t])},[]),U=r(async(e,t)=>{await T.request(E.bind,{adapterName:e,providerConfigId:t}),await H(e)},[H]),W=r(async(e,t)=>{await T.request(E.unbind,{adapterName:e,providerConfigId:t}),await H(e)},[H]),G=r(async(e,t)=>{await T.request(E.setDefaultBinding,{adapterName:e,providerConfigId:t}),await H(e)},[H]),Oe=o(()=>({enableAdapter:be,disableAdapter:R,runHealthCheck:xe,setLogImportMode:z,setDefaultAgent:Se,refreshAdapterList:L,togglePlugin:we,scan:Ce,selectClient:Te,deselectClient:B,createProviderConfig:Ee,deleteProviderConfig:De,bindProvider:U,unbindProvider:W,setDefaultProvider:G,refreshProviderConfigs:V,refreshBindings:H}),[be,R,xe,z,Se,L,we,Ce,Te,B,Ee,De,U,W,G,V,H]),K=r(()=>{f(e=>Math.min(e+1,u.length-1))},[u.length]),ke=r(()=>{f(e=>Math.max(e-1,0))},[]),q=r(async e=>{w&&i(w);let t=Array.from(S.entries());if(await Promise.all(t.map(([e,t])=>T.request(ie.setMode,{adapterName:e,mode:t},{timeout:8e3}))),await Promise.all(Array.from(k.entries()).map(([e,t])=>Z(e,t,P.current,l))),e){for(let e of O)if(!k.has(e.name)){let t=m(g(e.name));Z(e.name,t,P.current,l).catch(t=>{console.error(`[useOnboardingFlow] Failed to persist default extension state for ${e.name}:`,t)})}}},[l,S,w,i,O,k]),Ae=r(async()=>{try{await q(!1)}catch(e){console.error(`[useOnboardingFlow] Failed to persist selections on skip:`,e)}finally{n()}},[q,n]),J=r(async()=>{try{await q(!0)}catch(e){console.error(`[useOnboardingFlow] Failed to persist selections on complete:`,e)}finally{Dt(t)}},[q,t]),Y=o(()=>({adapters:p,enabledAdapterNames:_,healthCheckResults:b,logImportSelections:S,defaultAgentSelection:w,extensions:O,pluginEnabledStates:k,scanAdapters:A,isScanning:le,scanError:de,scanClients:me,selectedClientIds:pe,providerConfigs:ge,adapterProviderBindings:ve}),[p,_,b,S,w,O,k,A,le,de,me,pe,ge,ve]),X=u[d]??u[0];if(X===void 0)throw Error(`useOnboardingFlow: no active steps found. Call registerCoreOnboardingSteps() before mounting the onboarding flow.`);return{activeSteps:u,currentStepIndex:d,currentStep:X,flowState:Y,actions:Oe,goNext:K,goBack:ke,skip:Ae,complete:J}}const jt=Object.assign(At,{registerCreateProviderConfig:wt,unregisterCreateProviderConfig:Tt});export{A as BusContext,ce as BusProvider,Le as addWidgetToFocusLayout,mt as buildScanContext,st as clearOnboardingCompleted,rt as clearOnboardingSkipped,Ie as createEmptyFocusContextLayout,q as createPersistedStore,at as getOnboardingCompleted,tt as getOnboardingSkipped,Ct as getProviderConfigDetailView,We as groupPagesByNavigationGroup,lt as isPersistableProjectSelection,St as listProviderConfigSummaryViews,Te as loadExtensionBrowserContributions,K as noopStorage,ct as parsePersistedAgentSelection,Z as persistPluginEnabled,Xe as registerCoreOnboardingSteps,Ue as registerNavigationHandler,Re as removeWidgetFromFocusLayout,bt as scanOnboarding,vt as scanOnboardingAdapters,yt as scanOnboardingClients,ot as setOnboardingCompleted,nt as setOnboardingSkipped,Be as updateFocusContextWidgetPosition,ze as updateFocusContextWidgetSize,dt as useAppContext,j as useBus,fe as useBusEvent,ue as useBusQuery,Fe as useFocusStore,Ve as useNavigationLevel,jt as useOnboardingFlow,le as useOptionalBus,Ye as usePageComponent,Ge as usePageDefinitions,X as usePageOverlayStore,Ke as usePages,pt as useProviderStore,Me as useSidebarStore,F as useTrayLayout,_e as useWidgetConfig,ve as useWidgetLayout,P as useWidgetLayoutActions,he as useWidgetRegistry,me as useWidgets,Y as useWindowContext,Je as useWindowIdPages};
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { r as PageSurfaceConfig, s as SurfaceId } from "../schemas-
|
|
1
|
+
import { r as PageSurfaceConfig, s as SurfaceId } from "../schemas-DVF1A4DF.mjs";
|
|
2
2
|
import * as _$zod from "zod";
|
|
3
3
|
import { z } from "zod";
|
|
4
4
|
import * as _$_makaio_core0 from "@makaio/framework/core";
|
|
@@ -2308,8 +2308,8 @@ declare const UiSchemas: {
|
|
|
2308
2308
|
*/
|
|
2309
2309
|
ready: z.ZodObject<{
|
|
2310
2310
|
surface: z.ZodEnum<{
|
|
2311
|
-
mobile: "mobile";
|
|
2312
2311
|
web: "web";
|
|
2312
|
+
mobile: "mobile";
|
|
2313
2313
|
electron: "electron";
|
|
2314
2314
|
electrobun: "electrobun";
|
|
2315
2315
|
tray: "tray";
|
|
@@ -2408,8 +2408,8 @@ type UiShortcutTriggeredEvent = z.infer<(typeof UiSchemas)['shortcut.triggered']
|
|
|
2408
2408
|
declare const UiNamespace: _$_makaio_core0.BusNamespaceDefinition<"ui", {
|
|
2409
2409
|
ready: _$zod.ZodObject<{
|
|
2410
2410
|
surface: _$zod.ZodEnum<{
|
|
2411
|
-
mobile: "mobile";
|
|
2412
2411
|
web: "web";
|
|
2412
|
+
mobile: "mobile";
|
|
2413
2413
|
electron: "electron";
|
|
2414
2414
|
electrobun: "electrobun";
|
|
2415
2415
|
tray: "tray";
|
|
@@ -2449,8 +2449,8 @@ declare const UiNamespace: _$_makaio_core0.BusNamespaceDefinition<"ui", {
|
|
|
2449
2449
|
declare const UiSubjects: _$_makaio_core0.BusSubjects<_$_makaio_core0.FlatSubjectDefinitions<"ui", {
|
|
2450
2450
|
ready: _$zod.ZodObject<{
|
|
2451
2451
|
surface: _$zod.ZodEnum<{
|
|
2452
|
-
mobile: "mobile";
|
|
2453
2452
|
web: "web";
|
|
2453
|
+
mobile: "mobile";
|
|
2454
2454
|
electron: "electron";
|
|
2455
2455
|
electrobun: "electrobun";
|
|
2456
2456
|
tray: "tray";
|
|
@@ -14,8 +14,8 @@ declare const PageNamespace: _$_makaio_core0.BusNamespaceDefinition<"pages", {
|
|
|
14
14
|
readonly list: {
|
|
15
15
|
readonly request: _$zod.ZodObject<{
|
|
16
16
|
surface: _$zod.ZodOptional<_$zod.ZodEnum<{
|
|
17
|
-
mobile: "mobile";
|
|
18
17
|
web: "web";
|
|
18
|
+
mobile: "mobile";
|
|
19
19
|
electron: "electron";
|
|
20
20
|
electrobun: "electrobun";
|
|
21
21
|
tray: "tray";
|
|
@@ -34,8 +34,8 @@ declare const PageNamespace: _$_makaio_core0.BusNamespaceDefinition<"pages", {
|
|
|
34
34
|
}>;
|
|
35
35
|
level: _$zod.ZodCustom<_$_makaio_contracts0.UiNavigationLevel, _$_makaio_contracts0.UiNavigationLevel>;
|
|
36
36
|
surfaces: _$zod.ZodOptional<_$zod.ZodUnion<readonly [_$zod.ZodLiteral<"all">, _$zod.ZodArray<_$zod.ZodEnum<{
|
|
37
|
-
mobile: "mobile";
|
|
38
37
|
web: "web";
|
|
38
|
+
mobile: "mobile";
|
|
39
39
|
electron: "electron";
|
|
40
40
|
electrobun: "electrobun";
|
|
41
41
|
tray: "tray";
|
|
@@ -54,8 +54,8 @@ declare const PageSubjects: _$_makaio_core0.BusSubjects<_$_makaio_core0.FlatSubj
|
|
|
54
54
|
readonly list: {
|
|
55
55
|
readonly request: _$zod.ZodObject<{
|
|
56
56
|
surface: _$zod.ZodOptional<_$zod.ZodEnum<{
|
|
57
|
-
mobile: "mobile";
|
|
58
57
|
web: "web";
|
|
58
|
+
mobile: "mobile";
|
|
59
59
|
electron: "electron";
|
|
60
60
|
electrobun: "electrobun";
|
|
61
61
|
tray: "tray";
|
|
@@ -74,8 +74,8 @@ declare const PageSubjects: _$_makaio_core0.BusSubjects<_$_makaio_core0.FlatSubj
|
|
|
74
74
|
}>;
|
|
75
75
|
level: _$zod.ZodCustom<_$_makaio_contracts0.UiNavigationLevel, _$_makaio_contracts0.UiNavigationLevel>;
|
|
76
76
|
surfaces: _$zod.ZodOptional<_$zod.ZodUnion<readonly [_$zod.ZodLiteral<"all">, _$zod.ZodArray<_$zod.ZodEnum<{
|
|
77
|
-
mobile: "mobile";
|
|
78
77
|
web: "web";
|
|
78
|
+
mobile: "mobile";
|
|
79
79
|
electron: "electron";
|
|
80
80
|
electrobun: "electrobun";
|
|
81
81
|
tray: "tray";
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import { a as SurfaceCapabilitySchema, c as SurfaceIdSchema, i as SurfaceCapability, l as isPageVisibleOnSurface, n as PageSchemas, o as SurfaceDeclaration, r as PageSurfaceConfig, s as SurfaceId, t as PageMetadata } from "../../schemas-
|
|
1
|
+
import { a as SurfaceCapabilitySchema, c as SurfaceIdSchema, i as SurfaceCapability, l as isPageVisibleOnSurface, n as PageSchemas, o as SurfaceDeclaration, r as PageSurfaceConfig, s as SurfaceId, t as PageMetadata } from "../../schemas-DVF1A4DF.mjs";
|
|
2
2
|
export { PageMetadata, PageSchemas, PageSurfaceConfig, SurfaceCapability, SurfaceCapabilitySchema, SurfaceDeclaration, SurfaceId, SurfaceIdSchema, isPageVisibleOnSurface };
|