@symerian/symi 3.5.15 → 3.5.16
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/dist/{agent-Cq8f1rHB.js → agent-RWZSPbLw.js} +1 -1
- package/dist/{agent-CSOQs4VQ.js → agent-Za31LZ2H.js} +1 -1
- package/dist/{agents-BiKiy1SO.js → agents-CulBOE6L.js} +3 -3
- package/dist/{audit-DJURK8ly.js → audit-B1fVD2bA.js} +2 -2
- package/dist/{audit-BPhWpe_6.js → audit-BQnxE5w6.js} +2 -2
- package/dist/{auth-choice-9XyVfAyH.js → auth-choice-B8n3tJtT.js} +2 -2
- package/dist/{auth-choice-BYOypIGE.js → auth-choice-C8ElO44A.js} +2 -2
- package/dist/{banner-BDexjPFs.js → banner-B91SPus6.js} +1 -1
- package/dist/{browser-cli-BxDx4t2-.js → browser-cli-BvOz7txM.js} +3 -3
- package/dist/{browser-cli-BT0akXlr.js → browser-cli-CXDzGAN7.js} +3 -3
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +4 -4
- package/dist/bundled/session-memory/handler.js +4 -4
- package/dist/{call-mzNPQq1S.js → call-A18kwyah.js} +2 -1
- package/dist/{call-BC1HAVqW.js → call-PpGwcPn-.js} +2 -1
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-Cy9aQzx9.js → channel-options-1G5HGFpn.js} +1 -1
- package/dist/{channel-options-BjgoCETm.js → channel-options-CsyyC4uc.js} +1 -1
- package/dist/{channels-cli-DokpJOeN.js → channels-cli-R3TK9Jwf.js} +9 -9
- package/dist/{channels-cli-R0UMOKTA.js → channels-cli-aF7d6Af9.js} +9 -9
- package/dist/{chrome-CmQwGAuL.js → chrome-OTJg3QKn.js} +7 -7
- package/dist/{cli-ay-COtm8.js → cli-Bguq-s8o.js} +6 -6
- package/dist/{cli-BnLVnWOZ.js → cli-CFaH6TRI.js} +6 -6
- package/dist/{client-BcvL_D-H.js → client-CdiymIXS.js} +32 -1
- package/dist/{client-BfnNfATE.js → client-DDqXo-cF.js} +32 -1
- package/dist/{command-registry-CjxdlqkY.js → command-registry-2hfSOaGL.js} +11 -11
- package/dist/{completion-cli-kGAGMr-I.js → completion-cli-BEO2AB41.js} +1 -1
- package/dist/{completion-cli-D2pLg5yF.js → completion-cli-TYU7Y_XZ.js} +2 -2
- package/dist/{config-cli-D12Nouyy.js → config-cli-Cvylxp-R.js} +1 -1
- package/dist/{config-cli-BAognmPE.js → config-cli-D6vpEtzB.js} +1 -1
- package/dist/{configure-CJp0NIbm.js → configure-BMRfSJ5h.js} +6 -6
- package/dist/{configure-B8-2sqW3.js → configure-DRDyxmMR.js} +6 -6
- package/dist/control-ui/js/gateway.js +10 -0
- package/dist/control-ui/js/symframe.js +85 -7
- package/dist/{cron-cli-DoXlzwQ0.js → cron-cli-DVEdIAaa.js} +3 -3
- package/dist/{cron-cli-BJzi2QtY.js → cron-cli-DlxcZT7g.js} +3 -3
- package/dist/{daemon-cli-CRGNFCN7.js → daemon-cli-6ZV3jmTp.js} +2 -2
- package/dist/{daemon-cli-DXHRewv8.js → daemon-cli-DqJhEk3T.js} +2 -2
- package/dist/daemon-cli.js +32 -0
- package/dist/{deliver-B04yNX82.js → deliver-BiWlR84Y.js} +4 -4
- package/dist/{devices-cli-DAG-TaOo.js → devices-cli-C4rLpzkl.js} +2 -2
- package/dist/{devices-cli-YdVaVQkF.js → devices-cli-C6EdHL_5.js} +2 -2
- package/dist/{doctor-completion-CmKOsLDy.js → doctor-completion-CvaSyxyp.js} +1 -1
- package/dist/{doctor-completion-Ca692KiP.js → doctor-completion-DgNgQFQQ.js} +1 -1
- package/dist/entry.js +1 -1
- package/dist/{exec-approvals-cli-Cnie7kMb.js → exec-approvals-cli-Ca54uWdL.js} +4 -4
- package/dist/{exec-approvals-cli-BuHNELGd.js → exec-approvals-cli-bu1S7v6i.js} +4 -4
- package/dist/extensionAPI.js +2 -2
- package/dist/{gateway-cli-zh8P3vbG.js → gateway-cli-BNhURE6O.js} +16 -16
- package/dist/{gateway-cli-CvzoUDQs.js → gateway-cli-DCTPCoQx.js} +16 -16
- package/dist/{gateway-rpc-st8ffJBC.js → gateway-rpc-DMSsr0Xn.js} +1 -1
- package/dist/{gateway-rpc-CIHuIeji.js → gateway-rpc-vivTzTCq.js} +1 -1
- package/dist/{glass-ui-ws-QqYp-Uof.js → glass-ui-ws-Bzs3ALoN.js} +13 -13
- package/dist/{glass-ui-ws-DCXg7AbP.js → glass-ui-ws-C88aJslb.js} +13 -13
- package/dist/{health-BIwN5H6b.js → health--v-C6lSf.js} +1 -1
- package/dist/{health-BaYDaHPT.js → health-D0jGdk53.js} +1 -1
- package/dist/{hooks-cli-ClMPrbD7.js → hooks-cli-CZ_pSdXS.js} +7 -7
- package/dist/{hooks-cli-CJ0OoLFk.js → hooks-cli-CrZvzan1.js} +7 -7
- package/dist/index.js +10 -10
- package/dist/llm-slug-generator.js +4 -4
- package/dist/{logs-cli-D8A5dpnm.js → logs-cli-Dde2Dp2w.js} +3 -3
- package/dist/{logs-cli-CK9YhKnf.js → logs-cli-vIxaNVmF.js} +3 -3
- package/dist/{manager-Ct4kRT7n.js → manager--GmDbwza.js} +1 -1
- package/dist/{manager-Dh_-GTcG.js → manager-BMA3iRMq.js} +1 -1
- package/dist/{manager-DjhxLEpd.js → manager-DjhE8yLr.js} +1 -1
- package/dist/{manager-807ZlqEf.js → manager-S5d36_EM.js} +1 -1
- package/dist/{memory-CkJCn1Gg.js → memory-BcdI7NSs.js} +3 -3
- package/dist/{memory-B2hM774N.js → memory-DBx1wEvf.js} +3 -3
- package/dist/{memory-cli-C3CONZGB.js → memory-cli-CQSVrNAK.js} +2 -2
- package/dist/{memory-cli-CPebu_bx.js → memory-cli-jNf_SaXU.js} +2 -2
- package/dist/{models-Cbad7KB1.js → models-BgZWEpSL.js} +3 -3
- package/dist/{models-cli-C1yhTK5G.js → models-cli-6tdy2DaI.js} +9 -9
- package/dist/{models-cli-B_U9E8SV.js → models-cli-CiL6wDtk.js} +8 -8
- package/dist/{node-cli-CFIBFPOd.js → node-cli-BTXwMEJE.js} +1 -1
- package/dist/{node-cli-Cmfs9las.js → node-cli-ClniLggz.js} +1 -1
- package/dist/{nodes-cli-DlkO0Hyw.js → nodes-cli-DLaX4pgX.js} +3 -3
- package/dist/{nodes-cli-BH1TUf3n.js → nodes-cli-DrhMUDXx.js} +3 -3
- package/dist/{onboard-CWNtW-LS.js → onboard-DRn6pFfO.js} +3 -3
- package/dist/{onboard-channels-DPzbq3iB.js → onboard-channels-BN00--TD.js} +1 -1
- package/dist/{onboard-channels-BRi2UP_-.js → onboard-channels-DeRg97iI.js} +1 -1
- package/dist/{onboard-8eYravsD.js → onboard-fBxK2Bky.js} +3 -3
- package/dist/{onboard-helpers-DahbbzzQ.js → onboard-helpers-CAAZ0RDq.js} +1 -1
- package/dist/{onboard-helpers-Bf1LB5fd.js → onboard-helpers-Cv6fL8Vq.js} +1 -1
- package/dist/{onboard-remote-BgDE1b8f.js → onboard-remote-CXRFa8AU.js} +1 -1
- package/dist/{onboard-remote-B6Ox0wMi.js → onboard-remote-pucDu-pH.js} +1 -1
- package/dist/{onboard-skills-D-ppyTcQ.js → onboard-skills-BVTCfqlg.js} +1 -1
- package/dist/{onboard-skills-V1IT5l9E.js → onboard-skills-C_93kjju.js} +1 -1
- package/dist/{onboarding-Cw8abFVd.js → onboarding-CLOZkMhc.js} +8 -8
- package/dist/{onboarding-D35WPHUd.js → onboarding-i1rA1XGe.js} +8 -8
- package/dist/{onboarding.finalize-BStHm3Q-.js → onboarding.finalize-BV76YUaD.js} +9 -9
- package/dist/{onboarding.finalize-C50T8L4e.js → onboarding.finalize-gk9ot6lb.js} +8 -8
- package/dist/{onboarding.gateway-config-DJ1YAlBD.js → onboarding.gateway-config-eFJnSC-S.js} +3 -3
- package/dist/{onboarding.gateway-config-D6xPpItN.js → onboarding.gateway-config-wB3ShGU4.js} +3 -3
- package/dist/{pi-embedded-BxKs-STI.js → pi-embedded-BAgVs8XC.js} +35 -3
- package/dist/{plugin-registry-BFyeIJdT.js → plugin-registry-2DU3g0AT.js} +1 -1
- package/dist/{plugin-registry-B9SUsQmV.js → plugin-registry-CubHLj0v.js} +1 -1
- package/dist/plugin-sdk/gateway/protocol/index.d.ts +5 -2
- package/dist/plugin-sdk/gateway/protocol/schema/logs-chat.d.ts +26 -0
- package/dist/{plugins-cli-DKEgD6T2.js → plugins-cli-CIYGRkKI.js} +7 -7
- package/dist/{plugins-cli-BTdd7aE9.js → plugins-cli-Dpj76E3-.js} +7 -7
- package/dist/{program-C668x3bd.js → program-Qug3oi2C.js} +12 -12
- package/dist/{program-context-CV_ibEw9.js → program-context-CCIGjsQL.js} +38 -30
- package/dist/{prompt-select-styled-BlpvaJVg.js → prompt-select-styled-ARnCLf3Q.js} +7 -7
- package/dist/{prompt-select-styled-G6u6Q8v9.js → prompt-select-styled-BdNTADj2.js} +7 -7
- package/dist/{provider-auth-helpers-R-cnIeud.js → provider-auth-helpers-B_gA1eP9.js} +1 -1
- package/dist/{provider-auth-helpers-DAtMFGrU.js → provider-auth-helpers-LpT83BSS.js} +1 -1
- package/dist/{push-apns-Bx0i-bNw.js → push-apns-BWeNJb15.js} +1 -1
- package/dist/{push-apns--j8PeFrK.js → push-apns-CLngpXwL.js} +1 -1
- package/dist/{pw-ai-DLsdzdgc.js → pw-ai-DY_6l11g.js} +1 -1
- package/dist/{register.agent-muhvyTMD.js → register.agent-Dz24Zz7t.js} +11 -11
- package/dist/{register.agent-CYRt1iiv.js → register.agent-pWEv9TC7.js} +12 -12
- package/dist/{register.configure-CsvtHB87.js → register.configure-BMLA-3Mt.js} +14 -14
- package/dist/{register.configure-DUaVY9dt.js → register.configure-DQWtFNGt.js} +14 -14
- package/dist/{register.maintenance-BrNuk6hl.js → register.maintenance-BncnnneX.js} +12 -12
- package/dist/{register.maintenance-DMLKAqqc.js → register.maintenance-CTF70v5h.js} +13 -13
- package/dist/{register.message-9WxgUBSA.js → register.message-C-p-GZ8z.js} +7 -7
- package/dist/{register.message-DZG9UElS.js → register.message-vUwGF3E9.js} +7 -7
- package/dist/{register.onboard-C-5RaI3-.js → register.onboard-DhcpKFgU.js} +6 -6
- package/dist/{register.onboard-Bpo5ofDH.js → register.onboard-O0P6rCuX.js} +6 -6
- package/dist/{register.setup-D87mlpLA.js → register.setup-CZfWa9-Z.js} +6 -6
- package/dist/{register.setup-DQXuZsGD.js → register.setup-D3XQyELS.js} +6 -6
- package/dist/{register.status-health-sessions-B600sqsd.js → register.status-health-sessions-C9Zdn1ai.js} +8 -8
- package/dist/{register.status-health-sessions-ZYT6lFhO.js → register.status-health-sessions-Dn2gy0gi.js} +8 -8
- package/dist/{register.subclis-DdlLdgzD.js → register.subclis-Dv8bf2ox.js} +28 -20
- package/dist/{rpc-Co5Ci69t.js → rpc-DP3AhcZq.js} +1 -1
- package/dist/{rpc-DZpJ-mGE.js → rpc-KjYXUeLD.js} +1 -1
- package/dist/{run-main-C1YGbNWb.js → run-main-BsVhPYM4.js} +20 -20
- package/dist/{security-cli-Bkcil7sD.js → security-cli-CGLnA_ni.js} +3 -3
- package/dist/{security-cli-CAdCbDUS.js → security-cli-hTCYStCU.js} +3 -3
- package/dist/{server-methods-FxoNbY02.js → server-methods-C3_JU-DI.js} +36 -11
- package/dist/{server-methods-DMPwNvoz.js → server-methods-D_zGEWNK.js} +36 -11
- package/dist/{server-node-events-Dp9EiddI.js → server-node-events-CRYzL3TY.js} +8 -8
- package/dist/{server-node-events-k7h7NWLL.js → server-node-events-CW5ilXPN.js} +8 -8
- package/dist/{status-CYqfS1u_.js → status-1ACP62Xm.js} +5 -5
- package/dist/{status-BU-hn3iH.js → status-C_K3wapX.js} +1 -1
- package/dist/{status-D3h1mSLx.js → status-DbIBRkrV.js} +5 -5
- package/dist/{status-CHEd1LqO.js → status-NK8EUhIy.js} +1 -1
- package/dist/{subagent-registry-4qeNm1OL.js → subagent-registry-SZbZfkbr.js} +5 -5
- package/dist/symframe-cli-BKrtoG8H.js +51 -0
- package/dist/symframe-cli-CsA_x7U9.js +56 -0
- package/dist/{synthesis-DceZPirI.js → synthesis-BLRsy_PZ.js} +6 -6
- package/dist/{synthesis-DFNyev83.js → synthesis-CA2zGGNE.js} +6 -6
- package/dist/{synthesis-CxR-cX-4.js → synthesis-CUbz4CaL.js} +2 -2
- package/dist/{synthesis-BH4onG1c.js → synthesis-Dv6bJWYX.js} +4 -4
- package/dist/{system-cli-BCAd92UF.js → system-cli-BoxTfo1R.js} +3 -3
- package/dist/{system-cli-GwzCZpdT.js → system-cli-CYgTroZA.js} +3 -3
- package/dist/{tui-9lZLkRZm.js → tui-BdtfeKft.js} +2 -2
- package/dist/{tui-ROL_b9BF.js → tui-CO7OA9ZO.js} +2 -2
- package/dist/{tui-cli-C7NUBeQi.js → tui-cli-CcSS08na.js} +3 -3
- package/dist/{tui-cli-C6Q0KKvj.js → tui-cli-_WzJLbOA.js} +3 -3
- package/dist/{unified-runner-D9LZYzyF.js → unified-runner-B0cMr4If.js} +5 -5
- package/dist/{unified-runner-LBbNjudz.js → unified-runner-ByJSAveb.js} +42 -10
- package/dist/{update-cli-Du-NLjgh.js → update-cli-CrP5Kvo4.js} +13 -13
- package/dist/{update-cli-CWYfdfuU.js → update-cli-y4Q__h4E.js} +14 -14
- package/package.json +1 -1
- /package/dist/{consolidate-BSUbtSDt.js → consolidate-BoM9cz9L.js} +0 -0
- /package/dist/{consolidate-DhoiF4n7.js → consolidate-nNhnUpNj.js} +0 -0
- /package/dist/{onboard-hooks-CXRw9BJY.js → onboard-hooks-CxJRzS5z.js} +0 -0
- /package/dist/{onboard-hooks-DfDF9AU4.js → onboard-hooks-D5-mtFUY.js} +0 -0
- /package/dist/{qmd-manager-CYEAMLE7.js → qmd-manager-C1levE0a.js} +0 -0
- /package/dist/{qmd-manager-C6wRtPm_.js → qmd-manager-CR71XjjR.js} +0 -0
- /package/dist/{webhooks-cli-C3uyehJS.js → webhooks-cli-BUWSS_ve.js} +0 -0
- /package/dist/{webhooks-cli-C3g4MxCE.js → webhooks-cli-BrDeMswO.js} +0 -0
|
@@ -1539,6 +1539,36 @@ const ChatHistoryParamsSchema = Type.Object({
|
|
|
1539
1539
|
const ChatCommandsListParamsSchema = Type.Object({}, { additionalProperties: false });
|
|
1540
1540
|
const ChatToolsListParamsSchema = Type.Object({}, { additionalProperties: false });
|
|
1541
1541
|
const ChatSkillsListParamsSchema = Type.Object({}, { additionalProperties: false });
|
|
1542
|
+
/**
|
|
1543
|
+
* Push a card to the symframe (the right-column dynamic display panel
|
|
1544
|
+
* in Glass UI). Mirrors the registry methods on `window.symframe`:
|
|
1545
|
+
* - action="add" → `card` required (id auto-generated if missing)
|
|
1546
|
+
* - action="update" → `id` required, `card` carries the patch
|
|
1547
|
+
* - action="remove" → `id` required, no card
|
|
1548
|
+
*
|
|
1549
|
+
* The handler broadcasts a `symframe` event over the WebSocket; clients
|
|
1550
|
+
* route it to their local registry. The card schema is permissive
|
|
1551
|
+
* (additionalProperties on card) so new content types can ship without
|
|
1552
|
+
* a schema bump.
|
|
1553
|
+
*/
|
|
1554
|
+
const ChatSymframePushParamsSchema = Type.Object({
|
|
1555
|
+
action: Type.Union([
|
|
1556
|
+
Type.Literal("add"),
|
|
1557
|
+
Type.Literal("update"),
|
|
1558
|
+
Type.Literal("remove")
|
|
1559
|
+
]),
|
|
1560
|
+
id: Type.Optional(NonEmptyString),
|
|
1561
|
+
card: Type.Optional(Type.Object({
|
|
1562
|
+
id: Type.Optional(NonEmptyString),
|
|
1563
|
+
type: Type.Optional(Type.String()),
|
|
1564
|
+
title: Type.Optional(Type.String()),
|
|
1565
|
+
body: Type.Optional(Type.String()),
|
|
1566
|
+
bodyHtml: Type.Optional(Type.String()),
|
|
1567
|
+
actions: Type.Optional(Type.Array(Type.Unknown())),
|
|
1568
|
+
sticky: Type.Optional(Type.Boolean()),
|
|
1569
|
+
dismissable: Type.Optional(Type.Boolean())
|
|
1570
|
+
}, { additionalProperties: true }))
|
|
1571
|
+
}, { additionalProperties: false });
|
|
1542
1572
|
const ChatSendParamsSchema = Type.Object({
|
|
1543
1573
|
sessionKey: NonEmptyString,
|
|
1544
1574
|
message: Type.String(),
|
|
@@ -1971,6 +2001,7 @@ const validateChatHistoryParams = ajv.compile(ChatHistoryParamsSchema);
|
|
|
1971
2001
|
const validateChatCommandsListParams = ajv.compile(ChatCommandsListParamsSchema);
|
|
1972
2002
|
const validateChatToolsListParams = ajv.compile(ChatToolsListParamsSchema);
|
|
1973
2003
|
const validateChatSkillsListParams = ajv.compile(ChatSkillsListParamsSchema);
|
|
2004
|
+
const validateChatSymframePushParams = ajv.compile(ChatSymframePushParamsSchema);
|
|
1974
2005
|
const validateChatSendParams = ajv.compile(ChatSendParamsSchema);
|
|
1975
2006
|
const validateChatAbortParams = ajv.compile(ChatAbortParamsSchema);
|
|
1976
2007
|
const validateChatInjectParams = ajv.compile(ChatInjectParamsSchema);
|
|
@@ -2291,4 +2322,4 @@ var GatewayClient = class {
|
|
|
2291
2322
|
};
|
|
2292
2323
|
|
|
2293
2324
|
//#endregion
|
|
2294
|
-
export {
|
|
2325
|
+
export { validateNodeInvokeResultParams as $, rotateDeviceToken as $t, validateCronListParams as A, validateTasksListParams as At, validateDeviceTokenRevokeParams as B, ErrorCodes as Bt, validateConfigApplyParams as C, validateSessionsUsageParams as Ct, validateConfigSetParams as D, validateSkillsUpdateParams as Dt, validateConfigSchemaParams as E, validateSkillsStatusParams as Et, validateCronUpdateParams as F, validateWizardCancelParams as Ft, validateExecApprovalsNodeGetParams as G, approveDevicePairing as Gt, validateExecApprovalRequestParams as H, SESSION_LABEL_MAX_LENGTH as Ht, validateDevicePairApproveParams as I, validateWizardNextParams as It, validateLogsTailParams as J, listDevicePairing as Jt, validateExecApprovalsNodeSetParams as K, ensureDeviceToken as Kt, validateDevicePairListParams as L, validateWizardStartParams as Lt, validateCronRunParams as M, validateWakeParams as Mt, validateCronRunsParams as N, validateWebLoginStartParams as Nt, validateConnectParams as O, validateTalkConfigParams as Ot, validateCronStatusParams as P, validateWebLoginWaitParams as Pt, validateNodeInvokeParams as Q, revokeDeviceToken as Qt, validateDevicePairRejectParams as R, validateWizardStatusParams as Rt, validateChatToolsListParams as S, validateSessionsSearchParams as St, validateConfigPatchParams as T, validateSkillsInstallParams as Tt, validateExecApprovalResolveParams as U, parseSessionLabel as Ut, validateDeviceTokenRotateParams as V, errorShape as Vt, validateExecApprovalsGetParams as W, buildDeviceAuthPayload as Wt, validateNodeDescribeParams as X, removePairedDevice as Xt, validateModelsListParams as Y, rejectDevicePairing as Yt, validateNodeEventParams as Z, requestDevicePairing as Zt, validateChatHistoryParams as _, validateSessionsPatchParams as _t, validateAgentWaitParams as a, deriveDeviceIdFromPublicKey as an, validateNodePairVerifyParams as at, validateChatSkillsListParams as b, validateSessionsResolveParams as bt, validateAgentsFilesGetParams as c, verifyDeviceSignature as cn, validatePushTestParams as ct, validateAgentsListParams as d, validateSessionsAdoptFileParams as dt, summarizeDeviceTokens as en, validateNodeListParams as et, validateAgentsUpdateParams as f, validateSessionsCompactParams as ft, validateChatCommandsListParams as g, validateSessionsListParams as gt, validateChatAbortParams as h, validateSessionsFavoriteFileParams as ht, validateAgentParams as i, normalizeFingerprint as in, validateNodePairRequestParams as it, validateCronRemoveParams as j, validateUpdateRunParams as jt, validateCronAddParams as k, validateTalkModeParams as kt, validateAgentsFilesListParams as l, validateRequestFrame as lt, validateChannelsStatusParams as m, validateSessionsDeleteParams as mt, formatValidationErrors as n, verifyDeviceToken as nn, validateNodePairListParams as nt, validateAgentsCreateParams as o, loadOrCreateDeviceIdentity as on, validateNodeRenameParams as ot, validateChannelsLogoutParams as p, validateSessionsDeleteFileParams as pt, validateExecApprovalsSetParams as q, getPairedDevice as qt, validateAgentIdentityParams as r, roleScopesAllow as rn, validateNodePairRejectParams as rt, validateAgentsDeleteParams as s, normalizeDevicePublicKeyBase64Url as sn, validatePollParams as st, GatewayClient as t, updatePairedDeviceMetadata as tn, validateNodePairApproveParams as tt, validateAgentsFilesSetParams as u, validateSendParams as ut, validateChatInjectParams as v, validateSessionsPreviewParams as vt, validateConfigGetParams as w, validateSkillsBinsParams as wt, validateChatSymframePushParams as x, validateSessionsRestoreParams as xt, validateChatSendParams as y, validateSessionsResetParams as yt, validateDevicePairRemoveParams as z, PROTOCOL_VERSION as zt };
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
2
|
import { Qt as getPrimaryCommand, tn as hasHelpOrVersion } from "./entry.js";
|
|
3
|
-
import { i as registerSubCliCommands, o as reparseProgramFromActionArgs } from "./register.subclis-
|
|
3
|
+
import { i as registerSubCliCommands, o as reparseProgramFromActionArgs } from "./register.subclis-Dv8bf2ox.js";
|
|
4
4
|
|
|
5
5
|
//#region src/cli/program/command-registry.ts
|
|
6
6
|
var command_registry_exports = /* @__PURE__ */ __exportAll({
|
|
@@ -22,7 +22,7 @@ const coreEntries = [
|
|
|
22
22
|
hasSubcommands: false
|
|
23
23
|
}],
|
|
24
24
|
register: async ({ program }) => {
|
|
25
|
-
(await import("./register.setup-
|
|
25
|
+
(await import("./register.setup-D3XQyELS.js")).registerSetupCommand(program);
|
|
26
26
|
}
|
|
27
27
|
},
|
|
28
28
|
{
|
|
@@ -32,7 +32,7 @@ const coreEntries = [
|
|
|
32
32
|
hasSubcommands: false
|
|
33
33
|
}],
|
|
34
34
|
register: async ({ program }) => {
|
|
35
|
-
(await import("./register.onboard-
|
|
35
|
+
(await import("./register.onboard-O0P6rCuX.js")).registerOnboardCommand(program);
|
|
36
36
|
}
|
|
37
37
|
},
|
|
38
38
|
{
|
|
@@ -42,7 +42,7 @@ const coreEntries = [
|
|
|
42
42
|
hasSubcommands: false
|
|
43
43
|
}],
|
|
44
44
|
register: async ({ program }) => {
|
|
45
|
-
(await import("./register.configure-
|
|
45
|
+
(await import("./register.configure-BMLA-3Mt.js")).registerConfigureCommand(program);
|
|
46
46
|
}
|
|
47
47
|
},
|
|
48
48
|
{
|
|
@@ -52,7 +52,7 @@ const coreEntries = [
|
|
|
52
52
|
hasSubcommands: true
|
|
53
53
|
}],
|
|
54
54
|
register: async ({ program }) => {
|
|
55
|
-
(await import("./config-cli-
|
|
55
|
+
(await import("./config-cli-Cvylxp-R.js")).registerConfigCli(program);
|
|
56
56
|
}
|
|
57
57
|
},
|
|
58
58
|
{
|
|
@@ -79,7 +79,7 @@ const coreEntries = [
|
|
|
79
79
|
}
|
|
80
80
|
],
|
|
81
81
|
register: async ({ program }) => {
|
|
82
|
-
(await import("./register.maintenance-
|
|
82
|
+
(await import("./register.maintenance-CTF70v5h.js")).registerMaintenanceCommands(program);
|
|
83
83
|
}
|
|
84
84
|
},
|
|
85
85
|
{
|
|
@@ -89,7 +89,7 @@ const coreEntries = [
|
|
|
89
89
|
hasSubcommands: true
|
|
90
90
|
}],
|
|
91
91
|
register: async ({ program, ctx }) => {
|
|
92
|
-
(await import("./register.message-
|
|
92
|
+
(await import("./register.message-C-p-GZ8z.js")).registerMessageCommands(program, ctx);
|
|
93
93
|
}
|
|
94
94
|
},
|
|
95
95
|
{
|
|
@@ -99,7 +99,7 @@ const coreEntries = [
|
|
|
99
99
|
hasSubcommands: true
|
|
100
100
|
}],
|
|
101
101
|
register: async ({ program }) => {
|
|
102
|
-
(await import("./memory-cli-
|
|
102
|
+
(await import("./memory-cli-CQSVrNAK.js").then((n) => n.t)).registerMemoryCli(program);
|
|
103
103
|
}
|
|
104
104
|
},
|
|
105
105
|
{
|
|
@@ -113,7 +113,7 @@ const coreEntries = [
|
|
|
113
113
|
hasSubcommands: true
|
|
114
114
|
}],
|
|
115
115
|
register: async ({ program, ctx }) => {
|
|
116
|
-
(await import("./register.agent-
|
|
116
|
+
(await import("./register.agent-pWEv9TC7.js")).registerAgentCommands(program, { agentChannelOptions: ctx.agentChannelOptions });
|
|
117
117
|
}
|
|
118
118
|
},
|
|
119
119
|
{
|
|
@@ -135,7 +135,7 @@ const coreEntries = [
|
|
|
135
135
|
}
|
|
136
136
|
],
|
|
137
137
|
register: async ({ program }) => {
|
|
138
|
-
(await import("./register.status-health-sessions-
|
|
138
|
+
(await import("./register.status-health-sessions-C9Zdn1ai.js")).registerStatusHealthSessionsCommands(program);
|
|
139
139
|
}
|
|
140
140
|
},
|
|
141
141
|
{
|
|
@@ -145,7 +145,7 @@ const coreEntries = [
|
|
|
145
145
|
hasSubcommands: true
|
|
146
146
|
}],
|
|
147
147
|
register: async ({ program }) => {
|
|
148
|
-
(await import("./browser-cli-
|
|
148
|
+
(await import("./browser-cli-CXDzGAN7.js")).registerBrowserCli(program);
|
|
149
149
|
}
|
|
150
150
|
}
|
|
151
151
|
];
|
|
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
|
2
2
|
import { _ as resolveStateDir } from "./paths-By0XjHBk.js";
|
|
3
3
|
import { f as pathExists } from "./utils-CTPsqyE_.js";
|
|
4
4
|
import { i as routeLogsToStderr } from "./subsystem-CHbO_DkH.js";
|
|
5
|
-
import { a as registerCoreCliByName, c as getSubCliEntries, l as registerSubCliByName, r as getCoreCliCommandNames, t as getProgramContext } from "./program-context-
|
|
5
|
+
import { a as registerCoreCliByName, c as getSubCliEntries, l as registerSubCliByName, r as getCoreCliCommandNames, t as getProgramContext } from "./program-context-CCIGjsQL.js";
|
|
6
6
|
import path from "node:path";
|
|
7
7
|
import os from "node:os";
|
|
8
8
|
import fs from "node:fs/promises";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
2
2
|
import { Mt as pathExists, l as routeLogsToStderr, yt as resolveStateDir } from "./entry.js";
|
|
3
|
-
import { n as getSubCliEntries, r as registerSubCliByName } from "./register.subclis-
|
|
4
|
-
import { i as registerCoreCliByName, n as getCoreCliCommandNames } from "./command-registry-
|
|
3
|
+
import { n as getSubCliEntries, r as registerSubCliByName } from "./register.subclis-Dv8bf2ox.js";
|
|
4
|
+
import { i as registerCoreCliByName, n as getCoreCliCommandNames } from "./command-registry-2hfSOaGL.js";
|
|
5
5
|
import { t as getProgramContext } from "./program-context-CGKRxOBU.js";
|
|
6
6
|
import os from "node:os";
|
|
7
7
|
import path from "node:path";
|
|
@@ -201,7 +201,7 @@ async function runConfigUnset(opts) {
|
|
|
201
201
|
}
|
|
202
202
|
function registerConfigCli(program) {
|
|
203
203
|
const cmd = program.command("config").description("Non-interactive config helpers (get/set/unset). Run without subcommand for the setup wizard.").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/config", "docs.symi.ai/cli/config")}\n`).option("--section <section>", "Configure wizard sections (repeatable). Use with no subcommand.", (value, previous) => [...previous, value], []).action(async (opts) => {
|
|
204
|
-
const { configureCommandFromSectionsArg } = await import("./configure-
|
|
204
|
+
const { configureCommandFromSectionsArg } = await import("./configure-DRDyxmMR.js").then((n) => n.t);
|
|
205
205
|
await configureCommandFromSectionsArg(opts.section, defaultRuntime);
|
|
206
206
|
});
|
|
207
207
|
cmd.command("get").description("Get a config value by dot path").argument("<path>", "Config path (dot or bracket notation)").option("--json", "Output JSON", false).action(async (path, opts) => {
|
|
@@ -206,7 +206,7 @@ async function runConfigUnset(opts) {
|
|
|
206
206
|
}
|
|
207
207
|
function registerConfigCli(program) {
|
|
208
208
|
const cmd = program.command("config").description("Non-interactive config helpers (get/set/unset). Run without subcommand for the setup wizard.").addHelpText("after", () => `\n${theme.muted("Docs:")} ${formatDocsLink("/cli/config", "docs.symi.ai/cli/config")}\n`).option("--section <section>", "Configure wizard sections (repeatable). Use with no subcommand.", (value, previous) => [...previous, value], []).action(async (opts) => {
|
|
209
|
-
const { configureCommandFromSectionsArg } = await import("./configure-
|
|
209
|
+
const { configureCommandFromSectionsArg } = await import("./configure-BMRfSJ5h.js").then((n) => n.t);
|
|
210
210
|
await configureCommandFromSectionsArg(opts.section, defaultRuntime);
|
|
211
211
|
});
|
|
212
212
|
cmd.command("get").description("Get a config value by dot path").argument("<path>", "Config path (dot or bracket notation)").option("--json", "Output JSON", false).action(async (path, opts) => {
|
|
@@ -12,22 +12,22 @@ import { n as stylePromptMessage, r as stylePromptTitle, t as stylePromptHint }
|
|
|
12
12
|
import { t as note$1 } from "./note-ytwb4wwn.js";
|
|
13
13
|
import { t as WizardCancelledError } from "./prompts-B98rp78m.js";
|
|
14
14
|
import { t as createClackPrompter } from "./clack-prompter-v9MYo-5u.js";
|
|
15
|
-
import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-
|
|
15
|
+
import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-BN00--TD.js";
|
|
16
16
|
import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-7YBz5otm.js";
|
|
17
|
-
import { a as ensureWorkspaceAndSessions, b as waitForGatewayReachable, g as resolveControlUiLinks, h as randomToken, m as probeGatewayReachable, n as applyWizardMetadata, p as printWizardHeader, s as guardCancel, t as DEFAULT_WORKSPACE, u as normalizeGatewayTokenInput, v as summarizeExistingConfig, y as validateGatewayPasswordInput } from "./onboard-helpers-
|
|
17
|
+
import { a as ensureWorkspaceAndSessions, b as waitForGatewayReachable, g as resolveControlUiLinks, h as randomToken, m as probeGatewayReachable, n as applyWizardMetadata, p as printWizardHeader, s as guardCancel, t as DEFAULT_WORKSPACE, u as normalizeGatewayTokenInput, v as summarizeExistingConfig, y as validateGatewayPasswordInput } from "./onboard-helpers-Cv6fL8Vq.js";
|
|
18
18
|
import { t as resolveGatewayService } from "./service-BF50XyKr.js";
|
|
19
|
-
import { r as healthCommand } from "./health-
|
|
19
|
+
import { r as healthCommand } from "./health--v-C6lSf.js";
|
|
20
20
|
import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-CnX0W3vy.js";
|
|
21
21
|
import { n as logConfigUpdated } from "./logging-BmJ5ky59.js";
|
|
22
22
|
import { n as promptAuthChoiceGrouped } from "./auth-choice-prompt-BnvC700A.js";
|
|
23
|
-
import { i as applyAuthChoice, n as resolvePreferredProviderForAuthChoice } from "./auth-choice-
|
|
23
|
+
import { i as applyAuthChoice, n as resolvePreferredProviderForAuthChoice } from "./auth-choice-B8n3tJtT.js";
|
|
24
24
|
import { a as promptDefaultModel, n as applyModelFallbacksFromSelection, o as promptModelAllowlist, r as applyPrimaryModel, t as applyModelAllowlist } from "./model-picker-DN-co6Oy.js";
|
|
25
25
|
import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-BBxRNFXz.js";
|
|
26
26
|
import { a as promptCustomApiConfig } from "./onboard-custom-BCcuL4Uq.js";
|
|
27
27
|
import { i as TAILSCALE_MISSING_BIN_NOTE_LINES, n as TAILSCALE_DOCS_LINES, r as TAILSCALE_EXPOSURE_OPTIONS, t as validateIPv4AddressInput } from "./ipv4-CCdAVmwu.js";
|
|
28
28
|
import { t as formatHealthCheckFailure } from "./health-format-Dp4xmTKn.js";
|
|
29
|
-
import { n as promptRemoteGatewayConfig } from "./onboard-remote-
|
|
30
|
-
import { n as setupSkills } from "./onboard-skills-
|
|
29
|
+
import { n as promptRemoteGatewayConfig } from "./onboard-remote-pucDu-pH.js";
|
|
30
|
+
import { n as setupSkills } from "./onboard-skills-BVTCfqlg.js";
|
|
31
31
|
import { confirm, intro, outro, select, text } from "@clack/prompts";
|
|
32
32
|
|
|
33
33
|
//#region src/commands/configure.shared.ts
|
|
@@ -10,22 +10,22 @@ import { n as stylePromptMessage, r as stylePromptTitle, t as stylePromptHint }
|
|
|
10
10
|
import { t as note$1 } from "./note-Cltpxj6i.js";
|
|
11
11
|
import { t as WizardCancelledError } from "./prompts-CqJkfsHC.js";
|
|
12
12
|
import { t as createClackPrompter } from "./clack-prompter-_kEnSVz4.js";
|
|
13
|
-
import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-
|
|
13
|
+
import { r as setupChannels, t as noteChannelStatus } from "./onboard-channels-DeRg97iI.js";
|
|
14
14
|
import { a as gatewayInstallErrorHint, i as buildGatewayInstallPlan, n as GATEWAY_DAEMON_RUNTIME_OPTIONS, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-DaJ4Tf2a.js";
|
|
15
|
-
import { a as ensureWorkspaceAndSessions, b as waitForGatewayReachable, g as resolveControlUiLinks, h as randomToken, m as probeGatewayReachable, n as applyWizardMetadata, p as printWizardHeader, s as guardCancel, t as DEFAULT_WORKSPACE, u as normalizeGatewayTokenInput, v as summarizeExistingConfig, y as validateGatewayPasswordInput } from "./onboard-helpers-
|
|
15
|
+
import { a as ensureWorkspaceAndSessions, b as waitForGatewayReachable, g as resolveControlUiLinks, h as randomToken, m as probeGatewayReachable, n as applyWizardMetadata, p as printWizardHeader, s as guardCancel, t as DEFAULT_WORKSPACE, u as normalizeGatewayTokenInput, v as summarizeExistingConfig, y as validateGatewayPasswordInput } from "./onboard-helpers-CAAZ0RDq.js";
|
|
16
16
|
import { t as resolveGatewayService } from "./service-Ccv3Zi5_.js";
|
|
17
|
-
import { r as healthCommand } from "./health-
|
|
17
|
+
import { r as healthCommand } from "./health-D0jGdk53.js";
|
|
18
18
|
import { t as ensureControlUiAssetsBuilt } from "./control-ui-assets-DfBRXG5y.js";
|
|
19
19
|
import { n as logConfigUpdated } from "./logging-BRejMykf.js";
|
|
20
20
|
import { n as promptAuthChoiceGrouped } from "./auth-choice-prompt-kt2FcieM.js";
|
|
21
|
-
import { i as applyAuthChoice, n as resolvePreferredProviderForAuthChoice } from "./auth-choice-
|
|
21
|
+
import { i as applyAuthChoice, n as resolvePreferredProviderForAuthChoice } from "./auth-choice-C8ElO44A.js";
|
|
22
22
|
import { a as promptDefaultModel, n as applyModelFallbacksFromSelection, o as promptModelAllowlist, r as applyPrimaryModel, t as applyModelAllowlist } from "./model-picker-CS_h9RHv.js";
|
|
23
23
|
import { t as ensureSystemdUserLingerInteractive } from "./systemd-linger-DjoQVcOq.js";
|
|
24
24
|
import { a as promptCustomApiConfig } from "./onboard-custom-C-wfNtOM.js";
|
|
25
25
|
import { i as TAILSCALE_MISSING_BIN_NOTE_LINES, n as TAILSCALE_DOCS_LINES, r as TAILSCALE_EXPOSURE_OPTIONS, t as validateIPv4AddressInput } from "./ipv4-DFUXU3PT.js";
|
|
26
26
|
import { t as formatHealthCheckFailure } from "./health-format-Li703vy6.js";
|
|
27
|
-
import { n as promptRemoteGatewayConfig } from "./onboard-remote-
|
|
28
|
-
import { n as setupSkills } from "./onboard-skills-
|
|
27
|
+
import { n as promptRemoteGatewayConfig } from "./onboard-remote-CXRFa8AU.js";
|
|
28
|
+
import { n as setupSkills } from "./onboard-skills-C_93kjju.js";
|
|
29
29
|
import { confirm, intro, outro, select, text } from "@clack/prompts";
|
|
30
30
|
|
|
31
31
|
//#region src/commands/configure.shared.ts
|
|
@@ -158,6 +158,16 @@ class SymiGateway extends EventTarget {
|
|
|
158
158
|
return;
|
|
159
159
|
}
|
|
160
160
|
|
|
161
|
+
if (type === "symframe") {
|
|
162
|
+
// Phase 3 of the symframe arc: server-pushed cards. The payload is
|
|
163
|
+
// { action: "add"|"update"|"remove", id?, card? } and routes to
|
|
164
|
+
// window.symframe.{add,update,remove}. Dispatched via a window-
|
|
165
|
+
// level CustomEvent so symframe.js can subscribe without holding
|
|
166
|
+
// a direct reference to the gateway.
|
|
167
|
+
window.dispatchEvent(new CustomEvent("symi:symframe", { detail: msg.payload }));
|
|
168
|
+
return;
|
|
169
|
+
}
|
|
170
|
+
|
|
161
171
|
if (type === "profile") {
|
|
162
172
|
// Model profile broadcast — apply to Glass UI immediately
|
|
163
173
|
if (msg.payload?.profile) {
|
|
@@ -57,6 +57,50 @@
|
|
|
57
57
|
countEl.textContent = total === 1 ? "1 card" : `${total} cards`;
|
|
58
58
|
}
|
|
59
59
|
|
|
60
|
+
// Per-type renderers transform a raw card into HTML the body slot
|
|
61
|
+
// accepts. Phase 3 ships `text` (plain) and `markdown` (via the bundled
|
|
62
|
+
// marked.min.js). Future types (`code`, `email-draft`, `pdf`, etc.) plug
|
|
63
|
+
// in here without touching the rest of the registry.
|
|
64
|
+
function renderBodyForType(card) {
|
|
65
|
+
const type = card.type || "text";
|
|
66
|
+
if (type === "markdown" && typeof window.marked?.parse === "function") {
|
|
67
|
+
return { html: window.marked.parse(card.body || "") };
|
|
68
|
+
}
|
|
69
|
+
// Fallback: text body (escaped via textContent in caller) or trusted HTML.
|
|
70
|
+
if (card.bodyHtml) {
|
|
71
|
+
return { html: card.bodyHtml };
|
|
72
|
+
}
|
|
73
|
+
return { text: card.body || "" };
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
// Default Copy action when the card has a body and no explicit actions.
|
|
77
|
+
// Wraps card.body (the original text the producer pushed, not the
|
|
78
|
+
// rendered HTML) into a clipboard.writeText call.
|
|
79
|
+
function buildDefaultActions(card) {
|
|
80
|
+
if (Array.isArray(card.actions) && card.actions.length > 0) {
|
|
81
|
+
return card.actions;
|
|
82
|
+
}
|
|
83
|
+
if (!card.body && !card.bodyHtml) {
|
|
84
|
+
return [];
|
|
85
|
+
}
|
|
86
|
+
const copyTarget = card.body ?? card.bodyHtml ?? "";
|
|
87
|
+
return [
|
|
88
|
+
{
|
|
89
|
+
label: "Copy",
|
|
90
|
+
kind: "secondary",
|
|
91
|
+
onClick: async () => {
|
|
92
|
+
try {
|
|
93
|
+
if (navigator.clipboard && typeof navigator.clipboard.writeText === "function") {
|
|
94
|
+
await navigator.clipboard.writeText(copyTarget);
|
|
95
|
+
}
|
|
96
|
+
} catch (err) {
|
|
97
|
+
console.warn("[symframe] copy failed:", err);
|
|
98
|
+
}
|
|
99
|
+
},
|
|
100
|
+
},
|
|
101
|
+
];
|
|
102
|
+
}
|
|
103
|
+
|
|
60
104
|
function renderCardElement(card) {
|
|
61
105
|
const el = document.createElement("div");
|
|
62
106
|
el.className = "glass-panel symframe-card symframe-card-dynamic";
|
|
@@ -89,23 +133,25 @@
|
|
|
89
133
|
}
|
|
90
134
|
el.appendChild(header);
|
|
91
135
|
|
|
92
|
-
// Body
|
|
136
|
+
// Body via type-specific renderer
|
|
93
137
|
if (card.bodyHtml || card.body) {
|
|
94
138
|
const body = document.createElement("div");
|
|
95
139
|
body.className = "symframe-card-body";
|
|
96
|
-
|
|
97
|
-
|
|
140
|
+
const rendered = renderBodyForType(card);
|
|
141
|
+
if (rendered.html !== undefined) {
|
|
142
|
+
body.innerHTML = rendered.html;
|
|
98
143
|
} else {
|
|
99
|
-
body.textContent =
|
|
144
|
+
body.textContent = rendered.text;
|
|
100
145
|
}
|
|
101
146
|
el.appendChild(body);
|
|
102
147
|
}
|
|
103
148
|
|
|
104
|
-
// Actions
|
|
105
|
-
|
|
149
|
+
// Actions (custom or default Copy)
|
|
150
|
+
const actions = buildDefaultActions(card);
|
|
151
|
+
if (actions.length > 0) {
|
|
106
152
|
const actionsRow = document.createElement("div");
|
|
107
153
|
actionsRow.className = "symframe-card-actions";
|
|
108
|
-
for (const action of
|
|
154
|
+
for (const action of actions) {
|
|
109
155
|
const btn = document.createElement("button");
|
|
110
156
|
btn.className = "symframe-card-action";
|
|
111
157
|
if (action.kind === "primary") {
|
|
@@ -122,6 +168,20 @@
|
|
|
122
168
|
console.warn("[symframe] action threw:", err);
|
|
123
169
|
}
|
|
124
170
|
});
|
|
171
|
+
} else if (action.rpc) {
|
|
172
|
+
// Server-pushed cards declare actions as { rpc: "method", params: {...} }
|
|
173
|
+
// since closures don't survive the WebSocket. Resolve via the
|
|
174
|
+
// gateway client at click time.
|
|
175
|
+
btn.addEventListener("click", async (e) => {
|
|
176
|
+
e.preventDefault();
|
|
177
|
+
try {
|
|
178
|
+
if (window.gateway?.rpc) {
|
|
179
|
+
await window.gateway.rpc(action.rpc, action.params || {});
|
|
180
|
+
}
|
|
181
|
+
} catch (err) {
|
|
182
|
+
console.warn("[symframe] rpc action failed:", action.rpc, err);
|
|
183
|
+
}
|
|
184
|
+
});
|
|
125
185
|
}
|
|
126
186
|
actionsRow.appendChild(btn);
|
|
127
187
|
}
|
|
@@ -272,4 +332,22 @@
|
|
|
272
332
|
}
|
|
273
333
|
|
|
274
334
|
window.symframe = { add, update, remove, list, register };
|
|
335
|
+
|
|
336
|
+
// Phase 3: server-pushed cards. The gateway's `symframe` broadcast is
|
|
337
|
+
// re-emitted as a window-level CustomEvent by gateway.js — subscribe
|
|
338
|
+
// here and route to the registry. Payload shape matches the
|
|
339
|
+
// chat.symframe.push RPC: { action, id?, card? }.
|
|
340
|
+
window.addEventListener("symi:symframe", (e) => {
|
|
341
|
+
const payload = e.detail;
|
|
342
|
+
if (!payload || typeof payload !== "object") {
|
|
343
|
+
return;
|
|
344
|
+
}
|
|
345
|
+
if (payload.action === "add" && payload.card) {
|
|
346
|
+
add(payload.card);
|
|
347
|
+
} else if (payload.action === "update" && payload.id && payload.card) {
|
|
348
|
+
update(payload.id, payload.card);
|
|
349
|
+
} else if (payload.action === "remove" && payload.id) {
|
|
350
|
+
remove(payload.id);
|
|
351
|
+
}
|
|
352
|
+
});
|
|
275
353
|
})();
|
|
@@ -13,15 +13,15 @@ import "./shell-env-Dc3iU7HK.js";
|
|
|
13
13
|
import "./manifest-registry-D1MLZEjS.js";
|
|
14
14
|
import "./message-channel-DgjXWzf-.js";
|
|
15
15
|
import { n as listChannelPlugins } from "./plugins-CF5skkHh.js";
|
|
16
|
-
import "./client-
|
|
17
|
-
import "./call-
|
|
16
|
+
import "./client-DDqXo-cF.js";
|
|
17
|
+
import "./call-PpGwcPn-.js";
|
|
18
18
|
import "./pairing-token-Dcy37-4s.js";
|
|
19
19
|
import { n as formatDurationHuman } from "./format-duration-CIjmjQST.js";
|
|
20
20
|
import { i as parseAbsoluteTimeMs, n as resolveCronStaggerMs } from "./stagger-DQs772BN.js";
|
|
21
21
|
import { t as formatDocsLink } from "./links-CQZxjjCO.js";
|
|
22
22
|
import "./progress-DQTvTiEg.js";
|
|
23
23
|
import { n as parsePositiveIntOrUndefined } from "./helpers-DGBa5iKd.js";
|
|
24
|
-
import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-
|
|
24
|
+
import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-DMSsr0Xn.js";
|
|
25
25
|
|
|
26
26
|
//#region src/cli/cron-cli/shared.ts
|
|
27
27
|
const getCronChannelOptions = () => ["last", ...listChannelPlugins().map((plugin) => plugin.id)].join("|");
|
|
@@ -6,8 +6,8 @@ import "./model-selection-CMx1evaF.js";
|
|
|
6
6
|
import "./manifest-registry-CVLmi8rz.js";
|
|
7
7
|
import "./config-D7TcU4qN.js";
|
|
8
8
|
import "./shell-env-CTYaxUs_.js";
|
|
9
|
-
import "./client-
|
|
10
|
-
import "./call-
|
|
9
|
+
import "./client-CdiymIXS.js";
|
|
10
|
+
import "./call-A18kwyah.js";
|
|
11
11
|
import "./message-channel-DXToSaWK.js";
|
|
12
12
|
import "./pairing-token-B-OTYROz.js";
|
|
13
13
|
import { n as listChannelPlugins } from "./plugins-BsEhWvLn.js";
|
|
@@ -15,7 +15,7 @@ import { n as formatDurationHuman } from "./format-duration-CIjmjQST.js";
|
|
|
15
15
|
import { i as parseAbsoluteTimeMs, n as resolveCronStaggerMs } from "./stagger-DUVGiPYV.js";
|
|
16
16
|
import { t as formatDocsLink } from "./links-B9CbwY46.js";
|
|
17
17
|
import "./progress-BOQ0hkeM.js";
|
|
18
|
-
import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-
|
|
18
|
+
import { n as callGatewayFromCli, t as addGatewayClientOptions } from "./gateway-rpc-vivTzTCq.js";
|
|
19
19
|
import { n as parsePositiveIntOrUndefined } from "./helpers-lLtg0Hgi.js";
|
|
20
20
|
|
|
21
21
|
//#region src/cli/cron-cli/shared.ts
|
|
@@ -10,13 +10,13 @@ import { u as resolveGatewayBindHost } from "./ws-C7Ktmt-R.js";
|
|
|
10
10
|
import { a as resolveGatewayAuth } from "./auth-Bkx-QuRN.js";
|
|
11
11
|
import { a as inspectPortUsage, s as formatPortDiagnostics } from "./ports-gxLM5ahL.js";
|
|
12
12
|
import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-DgjXWzf-.js";
|
|
13
|
-
import { n as callGateway } from "./call-
|
|
13
|
+
import { n as callGateway } from "./call-PpGwcPn-.js";
|
|
14
14
|
import { c as resolveGatewayLaunchAgentLabel, d as resolveGatewaySystemdServiceName } from "./constants-BLIhifCJ.js";
|
|
15
15
|
import { t as formatDocsLink } from "./links-CQZxjjCO.js";
|
|
16
16
|
import { n as withProgress } from "./progress-DQTvTiEg.js";
|
|
17
17
|
import { n as inheritOptionFromParent } from "./command-options-DgcCGXMQ.js";
|
|
18
18
|
import { i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-7YBz5otm.js";
|
|
19
|
-
import { g as resolveControlUiLinks, h as randomToken } from "./onboard-helpers-
|
|
19
|
+
import { g as resolveControlUiLinks, h as randomToken } from "./onboard-helpers-Cv6fL8Vq.js";
|
|
20
20
|
import { n as isWSLEnv } from "./wsl-Ci3VOaSK.js";
|
|
21
21
|
import { s as resolveGatewayLogPaths, t as resolveGatewayService } from "./service-BF50XyKr.js";
|
|
22
22
|
import { a as createCliStatusTextStyles, c as parsePortFromArgs, d as renderRuntimeHints, f as resolveRuntimeStatusColor, g as installDaemonServiceAndEmit, h as createDaemonActionContext, i as runServiceUninstall, l as pickProbeHostForBind, m as buildDaemonServiceSnapshot, n as runServiceStart, o as filterDaemonEnv, p as safeDaemonEnv, r as runServiceStop, s as normalizeListenerAddress, t as runServiceRestart, u as renderGatewayServiceStartHints } from "./lifecycle-core-DdbL6ELJ.js";
|
|
@@ -2,7 +2,7 @@ import { t as __exportAll } from "./rolldown-runtime-Cbj13DAv.js";
|
|
|
2
2
|
import { Q as theme, Rt as shortenHomePath, X as colorize, Z as isRich, _ as defaultRuntime, ct as resolveConfigPath, ft as resolveGatewayPort, pt as resolveIsNixMode, tt as getResolvedLoggerSettings, yt as resolveStateDir } from "./entry.js";
|
|
3
3
|
import { t as formatCliCommand } from "./command-format-B3nkKRhC.js";
|
|
4
4
|
import { i as loadConfig, l as writeConfigFile, o as readConfigFileSnapshot, r as createConfigIO } from "./config-D7TcU4qN.js";
|
|
5
|
-
import { n as callGateway } from "./call-
|
|
5
|
+
import { n as callGateway } from "./call-A18kwyah.js";
|
|
6
6
|
import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-DXToSaWK.js";
|
|
7
7
|
import { l as resolveGatewayBindHost } from "./net-TZUXtwGR.js";
|
|
8
8
|
import { n as pickPrimaryTailnetIPv4 } from "./tailnet-B2SPYrh4.js";
|
|
@@ -13,7 +13,7 @@ import { t as formatDocsLink } from "./links-B9CbwY46.js";
|
|
|
13
13
|
import { n as withProgress } from "./progress-BOQ0hkeM.js";
|
|
14
14
|
import { n as inheritOptionFromParent } from "./command-options-Vxb4M7Aj.js";
|
|
15
15
|
import { i as buildGatewayInstallPlan, r as isGatewayDaemonRuntime, t as DEFAULT_GATEWAY_DAEMON_RUNTIME } from "./daemon-runtime-DaJ4Tf2a.js";
|
|
16
|
-
import { g as resolveControlUiLinks, h as randomToken } from "./onboard-helpers-
|
|
16
|
+
import { g as resolveControlUiLinks, h as randomToken } from "./onboard-helpers-CAAZ0RDq.js";
|
|
17
17
|
import { n as isWSLEnv } from "./wsl-S50RbgL8.js";
|
|
18
18
|
import { s as resolveGatewayLogPaths, t as resolveGatewayService } from "./service-Ccv3Zi5_.js";
|
|
19
19
|
import { a as createCliStatusTextStyles, c as parsePortFromArgs, d as renderRuntimeHints, f as resolveRuntimeStatusColor, g as installDaemonServiceAndEmit, h as createDaemonActionContext, i as runServiceUninstall, l as pickProbeHostForBind, m as buildDaemonServiceSnapshot, n as runServiceStart, o as filterDaemonEnv, p as safeDaemonEnv, r as runServiceStop, s as normalizeListenerAddress, t as runServiceRestart, u as renderGatewayServiceStartHints } from "./lifecycle-core-O50xtu5c.js";
|
package/dist/daemon-cli.js
CHANGED
|
@@ -9607,6 +9607,36 @@ const ChatHistoryParamsSchema = Type.Object({
|
|
|
9607
9607
|
const ChatCommandsListParamsSchema = Type.Object({}, { additionalProperties: false });
|
|
9608
9608
|
const ChatToolsListParamsSchema = Type.Object({}, { additionalProperties: false });
|
|
9609
9609
|
const ChatSkillsListParamsSchema = Type.Object({}, { additionalProperties: false });
|
|
9610
|
+
/**
|
|
9611
|
+
* Push a card to the symframe (the right-column dynamic display panel
|
|
9612
|
+
* in Glass UI). Mirrors the registry methods on `window.symframe`:
|
|
9613
|
+
* - action="add" → `card` required (id auto-generated if missing)
|
|
9614
|
+
* - action="update" → `id` required, `card` carries the patch
|
|
9615
|
+
* - action="remove" → `id` required, no card
|
|
9616
|
+
*
|
|
9617
|
+
* The handler broadcasts a `symframe` event over the WebSocket; clients
|
|
9618
|
+
* route it to their local registry. The card schema is permissive
|
|
9619
|
+
* (additionalProperties on card) so new content types can ship without
|
|
9620
|
+
* a schema bump.
|
|
9621
|
+
*/
|
|
9622
|
+
const ChatSymframePushParamsSchema = Type.Object({
|
|
9623
|
+
action: Type.Union([
|
|
9624
|
+
Type.Literal("add"),
|
|
9625
|
+
Type.Literal("update"),
|
|
9626
|
+
Type.Literal("remove")
|
|
9627
|
+
]),
|
|
9628
|
+
id: Type.Optional(NonEmptyString),
|
|
9629
|
+
card: Type.Optional(Type.Object({
|
|
9630
|
+
id: Type.Optional(NonEmptyString),
|
|
9631
|
+
type: Type.Optional(Type.String()),
|
|
9632
|
+
title: Type.Optional(Type.String()),
|
|
9633
|
+
body: Type.Optional(Type.String()),
|
|
9634
|
+
bodyHtml: Type.Optional(Type.String()),
|
|
9635
|
+
actions: Type.Optional(Type.Array(Type.Unknown())),
|
|
9636
|
+
sticky: Type.Optional(Type.Boolean()),
|
|
9637
|
+
dismissable: Type.Optional(Type.Boolean())
|
|
9638
|
+
}, { additionalProperties: true }))
|
|
9639
|
+
}, { additionalProperties: false });
|
|
9610
9640
|
const ChatSendParamsSchema = Type.Object({
|
|
9611
9641
|
sessionKey: NonEmptyString,
|
|
9612
9642
|
message: Type.String(),
|
|
@@ -10039,6 +10069,7 @@ const validateChatHistoryParams = ajv.compile(ChatHistoryParamsSchema);
|
|
|
10039
10069
|
const validateChatCommandsListParams = ajv.compile(ChatCommandsListParamsSchema);
|
|
10040
10070
|
const validateChatToolsListParams = ajv.compile(ChatToolsListParamsSchema);
|
|
10041
10071
|
const validateChatSkillsListParams = ajv.compile(ChatSkillsListParamsSchema);
|
|
10072
|
+
const validateChatSymframePushParams = ajv.compile(ChatSymframePushParamsSchema);
|
|
10042
10073
|
const validateChatSendParams = ajv.compile(ChatSendParamsSchema);
|
|
10043
10074
|
const validateChatAbortParams = ajv.compile(ChatAbortParamsSchema);
|
|
10044
10075
|
const validateChatInjectParams = ajv.compile(ChatInjectParamsSchema);
|
|
@@ -10423,6 +10454,7 @@ const METHOD_SCOPE_GROUPS = {
|
|
|
10423
10454
|
"node.invoke",
|
|
10424
10455
|
"chat.send",
|
|
10425
10456
|
"chat.abort",
|
|
10457
|
+
"chat.symframe.push",
|
|
10426
10458
|
"browser.request",
|
|
10427
10459
|
"push.test"
|
|
10428
10460
|
],
|
|
@@ -9,7 +9,7 @@ import { t as formatCliCommand } from "./command-format-BrrHNE8r.js";
|
|
|
9
9
|
import { n as isPidAlive, t as resolveProcessScopedMap } from "./process-scoped-map-B-dHc_9I.js";
|
|
10
10
|
import { c as loadConfig, d as writeConfigFile, m as parseByteSize, p as parseDurationMs, s as createConfigIO, t as SsrFBlockedError } from "./ssrf-DNhyFMRW.js";
|
|
11
11
|
import { t as parseBooleanValue } from "./boolean-BsqeuxE6.js";
|
|
12
|
-
import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-
|
|
12
|
+
import { A as DEFAULT_BROWSER_EVALUATE_ENABLED, D as DEFAULT_AI_SNAPSHOT_EFFICIENT_MAX_CHARS, E as DEFAULT_AI_SNAPSHOT_EFFICIENT_DEPTH, M as DEFAULT_SYMI_BROWSER_ENABLED, N as DEFAULT_SYMI_BROWSER_PROFILE_NAME, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, S as stopChromeExtensionRelayServer, _ as fetchJson, a as resolveSymiUserDataDir, c as captureScreenshot, d as normalizeCdpWsUrl, f as snapshotAria, g as appendCdpPath, h as withBrowserNavigationPolicy, i as launchSymiChrome, j as DEFAULT_SYMI_BROWSER_COLOR, k as DEFAULT_BROWSER_DEFAULT_PROFILE_NAME, l as createTargetViaCdp, m as assertBrowserNavigationAllowed, n as isChromeCdpReady, o as stopSymiChrome, p as InvalidBrowserNavigationUrlError, r as isChromeReachable, s as resolveBrowserExecutableForPlatform, v as fetchOk, w as isLoopbackHost, x as ensureChromeExtensionRelayServer } from "./chrome-OTJg3QKn.js";
|
|
13
13
|
import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-Dm4gX4Tl.js";
|
|
14
14
|
import { n as formatErrorMessage, t as extractErrorCode } from "./errors-C89ppfp9.js";
|
|
15
15
|
import { b as SafeOpenError, d as extensionForMime, i as buildImageResizeSideGrid, l as resizeToJpeg, o as getImageMetadata, r as IMAGE_REDUCE_QUALITY_STEPS, t as getAgentScopedMediaLocalRoots, u as detectMime, x as openFileWithinRoot } from "./local-roots-C7fBKoOI.js";
|
|
@@ -939,7 +939,7 @@ function isModuleNotFoundError(err) {
|
|
|
939
939
|
}
|
|
940
940
|
async function loadPwAiModule(mode) {
|
|
941
941
|
try {
|
|
942
|
-
return await import("./pw-ai-
|
|
942
|
+
return await import("./pw-ai-DY_6l11g.js");
|
|
943
943
|
} catch (err) {
|
|
944
944
|
if (mode === "soft") return null;
|
|
945
945
|
if (isModuleNotFoundError(err)) return null;
|
|
@@ -3536,11 +3536,11 @@ function createProfileContext(opts, profile) {
|
|
|
3536
3536
|
const userDataDir = resolveSymiUserDataDir(profile.name);
|
|
3537
3537
|
const profileState = getProfileState();
|
|
3538
3538
|
if (await isHttpReachable(300) && !profileState.running) try {
|
|
3539
|
-
await (await import("./pw-ai-
|
|
3539
|
+
await (await import("./pw-ai-DY_6l11g.js")).closePlaywrightBrowserConnection();
|
|
3540
3540
|
} catch {}
|
|
3541
3541
|
if (profileState.running) await stopRunningBrowser();
|
|
3542
3542
|
try {
|
|
3543
|
-
await (await import("./pw-ai-
|
|
3543
|
+
await (await import("./pw-ai-DY_6l11g.js")).closePlaywrightBrowserConnection();
|
|
3544
3544
|
} catch {}
|
|
3545
3545
|
if (!fs.existsSync(userDataDir)) return {
|
|
3546
3546
|
moved: false,
|
|
@@ -12,8 +12,8 @@ import "./shell-env-Dc3iU7HK.js";
|
|
|
12
12
|
import "./manifest-registry-D1MLZEjS.js";
|
|
13
13
|
import { r as isLoopbackHost } from "./ws-C7Ktmt-R.js";
|
|
14
14
|
import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-DgjXWzf-.js";
|
|
15
|
-
import {
|
|
16
|
-
import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-
|
|
15
|
+
import { Gt as approveDevicePairing, Jt as listDevicePairing, en as summarizeDeviceTokens } from "./client-DDqXo-cF.js";
|
|
16
|
+
import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-PpGwcPn-.js";
|
|
17
17
|
import "./pairing-token-Dcy37-4s.js";
|
|
18
18
|
import { n as formatTimeAgo } from "./format-relative-D4GQsWlP.js";
|
|
19
19
|
import { n as withProgress } from "./progress-DQTvTiEg.js";
|
|
@@ -5,8 +5,8 @@ import "./model-selection-CMx1evaF.js";
|
|
|
5
5
|
import "./manifest-registry-CVLmi8rz.js";
|
|
6
6
|
import "./config-D7TcU4qN.js";
|
|
7
7
|
import "./shell-env-CTYaxUs_.js";
|
|
8
|
-
import {
|
|
9
|
-
import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-
|
|
8
|
+
import { Gt as approveDevicePairing, Jt as listDevicePairing, en as summarizeDeviceTokens } from "./client-CdiymIXS.js";
|
|
9
|
+
import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-A18kwyah.js";
|
|
10
10
|
import { h as GATEWAY_CLIENT_NAMES, m as GATEWAY_CLIENT_MODES } from "./message-channel-DXToSaWK.js";
|
|
11
11
|
import "./pairing-token-B-OTYROz.js";
|
|
12
12
|
import { n as isLoopbackHost } from "./net-TZUXtwGR.js";
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { n as resolveCliName } from "./cli-name-CzMV-gJF.js";
|
|
2
2
|
import { t as resolveSymiPackageRoot } from "./symi-root-BQ0IpoW2.js";
|
|
3
3
|
import { t as note } from "./note-ytwb4wwn.js";
|
|
4
|
-
import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-
|
|
4
|
+
import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-BEO2AB41.js";
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
import { spawnSync } from "node:child_process";
|
|
7
7
|
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { n as resolveCliName } from "./cli-name-DY75UA5M.js";
|
|
2
2
|
import { t as resolveSymiPackageRoot } from "./symi-root-Ctw1Rb_n.js";
|
|
3
3
|
import { t as note } from "./note-Cltpxj6i.js";
|
|
4
|
-
import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-
|
|
4
|
+
import { a as resolveCompletionCachePath, i as isCompletionInstalled, o as resolveShellFromEnv, r as installCompletion, s as usesSlowDynamicCompletion, t as completionCacheExists } from "./completion-cli-TYU7Y_XZ.js";
|
|
5
5
|
import { spawnSync } from "node:child_process";
|
|
6
6
|
import path from "node:path";
|
|
7
7
|
|