@symerian/symi 3.5.27 → 3.5.28
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-DxRVDqSg.js → agent-BsRYHa15.js} +1 -1
- package/dist/{agent-CB5yb-7V.js → agent-TRt_SsAW.js} +1 -1
- package/dist/{agents-DtRd3yEb.js → agents-7qMp2MWu.js} +2 -2
- package/dist/{auth-choice-5SLfZiQ7.js → auth-choice-C8lwYiEQ.js} +1 -1
- package/dist/{auth-choice-DQplW60s.js → auth-choice-DcB72YWZ.js} +1 -1
- package/dist/{banner-B_P_FrmA.js → banner-B5Hv4rlk.js} +1 -1
- package/dist/build-info.json +3 -3
- package/dist/bundled/boot-md/handler.js +2 -2
- package/dist/bundled/session-memory/handler.js +2 -2
- package/dist/canvas-host/a2ui/.bundle.hash +1 -1
- package/dist/{channel-options-DnWkDAWi.js → channel-options-DOzFci6h.js} +1 -1
- package/dist/{channel-options-8NGYZjfd.js → channel-options-ZkruGuHl.js} +1 -1
- package/dist/{channels-cli-Bx90nSmB.js → channels-cli-CEz9LILV.js} +7 -7
- package/dist/{channels-cli-CGCyzahW.js → channels-cli-DMShhX0d.js} +7 -7
- package/dist/{chrome-3jl2ulOE.js → chrome-DNssqQJs.js} +7 -7
- package/dist/{cli-DZAtyHzb.js → cli-Byovb_j5.js} +4 -4
- package/dist/{cli-DHG9iZJi.js → cli-MDHkESMC.js} +4 -4
- package/dist/{command-registry-DBbzZvh6.js → command-registry-Dzj-Uz5N.js} +10 -10
- package/dist/{completion-cli-Cbf0-8ob.js → completion-cli-CsJ2f_fk.js} +1 -1
- package/dist/{completion-cli-DoQrkCAd.js → completion-cli-vAwL_uEK.js} +2 -2
- package/dist/{config-cli-9a5qBcdo.js → config-cli-CqqCDyf0.js} +1 -1
- package/dist/{config-cli-D4RmoOxe.js → config-cli-cmea_Z-A.js} +1 -1
- package/dist/{configure-ryB8EvyP.js → configure-BEPKQuJj.js} +2 -2
- package/dist/{configure-kaf3aurx.js → configure-DymrZd1n.js} +2 -2
- package/dist/control-ui/css/style.css +115 -0
- package/dist/control-ui/index.html +14 -0
- package/dist/control-ui/js/symframe-bidirectional.js +210 -0
- package/dist/{deliver-f3cIWxXT.js → deliver-q23ar_Pm.js} +4 -4
- package/dist/{doctor-completion-Bk55g4MP.js → doctor-completion--phnyAqO.js} +1 -1
- package/dist/{doctor-completion--j-3qqz6.js → doctor-completion-BY72G6-l.js} +1 -1
- package/dist/entry.js +1 -1
- package/dist/extensionAPI.js +4 -4
- package/dist/{gateway-cli-B3FuQctH.js → gateway-cli-BVpyqk_H.js} +10 -10
- package/dist/{gateway-cli-BGMVOW2G.js → gateway-cli-Bo80TSkq.js} +10 -10
- package/dist/{glass-ui-ws-Z-W33_mF.js → glass-ui-ws-BK5qk7-_.js} +8 -8
- package/dist/{glass-ui-ws-BJcI_IdV.js → glass-ui-ws-CrmnRYxe.js} +8 -8
- package/dist/{hooks-cli-D43GEG-W.js → hooks-cli-CjklMDuK.js} +5 -5
- package/dist/{hooks-cli-Bn6x6Jnj.js → hooks-cli-CqmTdxT6.js} +5 -5
- package/dist/index.js +8 -8
- package/dist/llm-slug-generator.js +2 -2
- package/dist/{manager-Cw7IJGbB.js → manager-CL767Sv9.js} +1 -1
- package/dist/{manager-BHddoe4T.js → manager-NDn8AFhr.js} +1 -1
- package/dist/{manager-DH00nlW8.js → manager-XfNxjaX5.js} +1 -1
- package/dist/{manager-DbVMwpDc.js → manager-fgUC_sHR.js} +1 -1
- package/dist/{memory-C02Znuee.js → memory-CTf9MdBg.js} +2 -2
- package/dist/{memory-BZ24UkLW.js → memory-DOl2l2AS.js} +2 -2
- package/dist/{memory-cli-0HHYm-B8.js → memory-cli-B9_Vfaow.js} +2 -2
- package/dist/{memory-cli-083UJtVJ.js → memory-cli-CA5PbH9y.js} +2 -2
- package/dist/{models-Bh_frCup.js → models-DgiBOeVH.js} +2 -2
- package/dist/{models-cli-C2EXmrYH.js → models-cli-B7gTrlgn.js} +5 -5
- package/dist/{models-cli-BhBu4Dwm.js → models-cli-BHN3bt0f.js} +6 -6
- package/dist/{onboard-DnwWawQO.js → onboard-BNdKimpG.js} +1 -1
- package/dist/{onboard-BSxqEQfo.js → onboard-DGp6mHJD.js} +1 -1
- package/dist/{onboard-channels-BkR3MKMp.js → onboard-channels-DSBWRjSp.js} +1 -1
- package/dist/{onboard-channels-qDThNkyj.js → onboard-channels-Dhb-28-_.js} +1 -1
- package/dist/{onboarding-DxZAGVkD.js → onboarding-BG23DuS1.js} +3 -3
- package/dist/{onboarding-CrCGoZ4H.js → onboarding-MPSU9pXd.js} +3 -3
- package/dist/{onboarding.finalize-BYzduVFA.js → onboarding.finalize-B-mxzJ08.js} +4 -4
- package/dist/{onboarding.finalize-Dt-rcgpk.js → onboarding.finalize-Cv20GyNt.js} +3 -3
- package/dist/{pi-embedded-DGnpyHm-.js → pi-embedded-V-5MAZNb.js} +11 -10
- package/dist/{plugin-registry-D2_TLnOr.js → plugin-registry-CBV_Y6Dj.js} +1 -1
- package/dist/{plugin-registry-B74FBx4U.js → plugin-registry-c3Skr0q9.js} +1 -1
- package/dist/{plugins-cli-Cmf3kRf5.js → plugins-cli-8Jo1X8SU.js} +5 -5
- package/dist/{plugins-cli-CqV1Q7ao.js → plugins-cli-Dl7-FSCq.js} +5 -5
- package/dist/{program-CGuYYumL.js → program-D-LYHEvk.js} +10 -10
- package/dist/{program-context-B0ovpbFU.js → program-context-BpeLcVUB.js} +18 -18
- package/dist/{prompt-select-styled-B5GrNfqR.js → prompt-select-styled-Ceih9wkY.js} +4 -4
- package/dist/{prompt-select-styled-b752FPLG.js → prompt-select-styled-ZWxB2Odf.js} +4 -4
- package/dist/{provider-auth-helpers-DU8RlQz7.js → provider-auth-helpers-BCejcf5o.js} +1 -1
- package/dist/{provider-auth-helpers-BKveYcEH.js → provider-auth-helpers-BdvW7eau.js} +1 -1
- package/dist/{push-apns-HNg0rTkI.js → push-apns-D4iLNyBo.js} +1 -1
- package/dist/{push-apns-CyAPMMJC.js → push-apns-HQd5hCpM.js} +1 -1
- package/dist/{pw-ai-DOAsQ5NX.js → pw-ai-v__CyAlM.js} +1 -1
- package/dist/{register.agent-DbPYGG3u.js → register.agent-DoUbqZIu.js} +9 -9
- package/dist/{register.agent-BKbQhrre.js → register.agent-zwVEiCHs.js} +8 -8
- package/dist/{register.configure-C4_ShaQV.js → register.configure-CSe8Rlda.js} +8 -8
- package/dist/{register.configure-B0M15y31.js → register.configure-jBKvvOnk.js} +8 -8
- package/dist/{register.maintenance-bzLNOqch.js → register.maintenance-BdikNAV1.js} +9 -9
- package/dist/{register.maintenance-BOYWTu9C.js → register.maintenance-royLmVA2.js} +8 -8
- package/dist/{register.message-Bfukmte_.js → register.message-C1H5Vcnb.js} +5 -5
- package/dist/{register.message-BtCthbpo.js → register.message-C_0uLdYn.js} +5 -5
- package/dist/{register.onboard-D5GmuX8K.js → register.onboard-DTLtb0SN.js} +2 -2
- package/dist/{register.onboard-CDsSVoFI.js → register.onboard-DnMRUtnl.js} +2 -2
- package/dist/{register.setup-Bp8rYeRx.js → register.setup-B9sjRH7l.js} +2 -2
- package/dist/{register.setup-DzospfSf.js → register.setup-KA8Cs3HJ.js} +2 -2
- package/dist/{register.status-health-sessions-NVbWTQpZ.js → register.status-health-sessions-B_jcsH3c.js} +3 -3
- package/dist/{register.status-health-sessions-DE2db_Uo.js → register.status-health-sessions-BwiKHLEj.js} +3 -3
- package/dist/{register.subclis-QXO75pUm.js → register.subclis-B_V8vNI0.js} +9 -9
- package/dist/{run-main-MD8Z8ydF.js → run-main-DhgQtxI0.js} +17 -17
- package/dist/{server-methods-Bl41VzMu.js → server-methods-6-10RyMD.js} +7 -7
- package/dist/{server-methods-DTkVQH8Q.js → server-methods-Bdz-OwQ4.js} +7 -7
- package/dist/{server-node-events-C0smPxrR.js → server-node-events-B3Yey3h9.js} +6 -6
- package/dist/{server-node-events-CxYKzrbU.js → server-node-events-C4giIb7q.js} +6 -6
- package/dist/{status-DrWy5OkC.js → status-BRUIJsUm.js} +1 -1
- package/dist/{status-OTYFx93W.js → status-B_CQpjQ9.js} +1 -1
- package/dist/{status-D7QX7VDk.js → status-CCAO6ZHm.js} +1 -1
- package/dist/{status-BEZotN01.js → status-D_0593yR.js} +1 -1
- package/dist/{subagent-registry-CVhLz4p3.js → subagent-registry-D8BIWG9Q.js} +4 -3
- package/dist/{synthesis-C1mZnGqD.js → synthesis-BfVWACNx.js} +4 -4
- package/dist/{synthesis-ts2nG0tK.js → synthesis-CV94EuT_.js} +4 -4
- package/dist/{synthesis-CO5pr92g.js → synthesis-D6pnRAxI.js} +2 -2
- package/dist/{synthesis-RhT991Ni.js → synthesis-qvteT0Ti.js} +4 -4
- package/dist/{unified-runner-4O0ifBsI.js → unified-runner-CtSJoaGS.js} +4 -3
- package/dist/{unified-runner-O3qR5Iie.js → unified-runner-H3Qh_NZO.js} +4 -3
- package/dist/{update-cli-BMURsYJU.js → update-cli-BrryYmFA.js} +8 -8
- package/dist/{update-cli-D9g9s187.js → update-cli-CUos9qgT.js} +9 -9
- package/extensions/memory-core/package.json +1 -1
- package/extensions/msteams/CHANGELOG.md +6 -0
- package/extensions/msteams/package.json +1 -1
- package/extensions/open-prose/package.json +1 -1
- package/extensions/outlook/package.json +1 -1
- package/extensions/slack/package.json +1 -1
- package/package.json +1 -1
|
@@ -961,6 +961,121 @@ body {
|
|
|
961
961
|
color: var(--text);
|
|
962
962
|
}
|
|
963
963
|
|
|
964
|
+
/* ── Stage E (3.5.28): considering button ─────────────────────── */
|
|
965
|
+
/* "What are you considering?" — clicking dwells every weighing card
|
|
966
|
+
AND adds .considering-weighing to #symframe (CSS below) which dims
|
|
967
|
+
non-weighing cards for the duration. */
|
|
968
|
+
.considering-btn {
|
|
969
|
+
margin-left: 4px;
|
|
970
|
+
padding: 2px 7px;
|
|
971
|
+
font-size: 11px;
|
|
972
|
+
line-height: 1;
|
|
973
|
+
font-family: var(--font-mono);
|
|
974
|
+
color: #f5b73a; /* amber — same hue as weighing intent */
|
|
975
|
+
background: transparent;
|
|
976
|
+
border: 1px solid rgba(245, 183, 58, 0.32);
|
|
977
|
+
border-radius: 8px;
|
|
978
|
+
cursor: pointer;
|
|
979
|
+
transition:
|
|
980
|
+
background 0.15s ease,
|
|
981
|
+
border-color 0.15s ease,
|
|
982
|
+
transform 0.15s ease;
|
|
983
|
+
}
|
|
984
|
+
.considering-btn:hover {
|
|
985
|
+
background: rgba(245, 183, 58, 0.12);
|
|
986
|
+
border-color: #f5b73a;
|
|
987
|
+
}
|
|
988
|
+
.considering-btn:active {
|
|
989
|
+
transform: scale(0.95);
|
|
990
|
+
}
|
|
991
|
+
/* Brief red flash when clicked while no weighing cards exist —
|
|
992
|
+
tells the user "I have nothing to surface here." */
|
|
993
|
+
.considering-btn.considering-empty {
|
|
994
|
+
animation: considering-empty-pulse 0.8s ease-out;
|
|
995
|
+
}
|
|
996
|
+
@keyframes considering-empty-pulse {
|
|
997
|
+
0%,
|
|
998
|
+
100% {
|
|
999
|
+
border-color: rgba(245, 183, 58, 0.32);
|
|
1000
|
+
}
|
|
1001
|
+
50% {
|
|
1002
|
+
border-color: rgba(244, 114, 182, 0.6);
|
|
1003
|
+
background: rgba(244, 114, 182, 0.1);
|
|
1004
|
+
}
|
|
1005
|
+
}
|
|
1006
|
+
/* While considering-weighing is active, dim non-weighing cards so the
|
|
1007
|
+
weighing ones (now pulsing from dwell) stand out. */
|
|
1008
|
+
.symframe.considering-weighing .symframe-card-dynamic:not([data-intent="weighing"]) {
|
|
1009
|
+
opacity: 0.32;
|
|
1010
|
+
filter: blur(1px);
|
|
1011
|
+
transition:
|
|
1012
|
+
opacity 0.4s ease,
|
|
1013
|
+
filter 0.4s ease;
|
|
1014
|
+
}
|
|
1015
|
+
.symframe.considering-weighing .symframe-substrate {
|
|
1016
|
+
opacity: 0.45;
|
|
1017
|
+
transition: opacity 0.4s ease;
|
|
1018
|
+
}
|
|
1019
|
+
@media (prefers-reduced-motion: reduce) {
|
|
1020
|
+
.considering-btn.considering-empty {
|
|
1021
|
+
animation: none;
|
|
1022
|
+
}
|
|
1023
|
+
.symframe.considering-weighing .symframe-card-dynamic:not([data-intent="weighing"]) {
|
|
1024
|
+
transition: opacity 0.2s ease;
|
|
1025
|
+
filter: none;
|
|
1026
|
+
}
|
|
1027
|
+
}
|
|
1028
|
+
|
|
1029
|
+
/* ── Stage E (3.5.28): mention-binding spans ──────────────────── */
|
|
1030
|
+
/* When an assistant chat message contains `[panel:<card-id>]`, the
|
|
1031
|
+
mention-binding scanner replaces the literal text with a clickable
|
|
1032
|
+
.panel-ref span showing the card's title. Clicking the span dwells
|
|
1033
|
+
the referenced card (cyan border pulse). */
|
|
1034
|
+
.panel-ref {
|
|
1035
|
+
display: inline;
|
|
1036
|
+
color: var(--accent-cyan);
|
|
1037
|
+
border-bottom: 1px dashed currentColor;
|
|
1038
|
+
cursor: pointer;
|
|
1039
|
+
font-weight: 500;
|
|
1040
|
+
padding: 0 2px;
|
|
1041
|
+
border-radius: 3px;
|
|
1042
|
+
transition:
|
|
1043
|
+
background 0.15s ease,
|
|
1044
|
+
border-bottom-style 0.15s ease;
|
|
1045
|
+
}
|
|
1046
|
+
.panel-ref::before {
|
|
1047
|
+
content: "↗ ";
|
|
1048
|
+
font-size: 0.85em;
|
|
1049
|
+
opacity: 0.7;
|
|
1050
|
+
}
|
|
1051
|
+
.panel-ref:hover {
|
|
1052
|
+
background: rgba(0, 212, 255, 0.12);
|
|
1053
|
+
border-bottom-style: solid;
|
|
1054
|
+
}
|
|
1055
|
+
/* Orphan reference — the card is no longer in the panel. Subdued so
|
|
1056
|
+
the user sees the link works but the card isn't currently here. */
|
|
1057
|
+
.panel-ref.panel-ref-orphan {
|
|
1058
|
+
color: var(--text-dim);
|
|
1059
|
+
opacity: 0.7;
|
|
1060
|
+
}
|
|
1061
|
+
.panel-ref.panel-ref-orphan::before {
|
|
1062
|
+
content: "↗ ";
|
|
1063
|
+
}
|
|
1064
|
+
/* Click-miss flash: a brief pink tint signals "I tried to dwell but
|
|
1065
|
+
that card isn't currently registered." */
|
|
1066
|
+
.panel-ref.panel-ref-miss {
|
|
1067
|
+
animation: panel-ref-miss-pulse 1s ease-out;
|
|
1068
|
+
}
|
|
1069
|
+
@keyframes panel-ref-miss-pulse {
|
|
1070
|
+
0%,
|
|
1071
|
+
100% {
|
|
1072
|
+
background: rgba(0, 212, 255, 0.12);
|
|
1073
|
+
}
|
|
1074
|
+
50% {
|
|
1075
|
+
background: rgba(244, 114, 182, 0.22);
|
|
1076
|
+
}
|
|
1077
|
+
}
|
|
1078
|
+
|
|
964
1079
|
/* ── Per-mode layout overrides ───────────────────────────────── */
|
|
965
1080
|
/* Default (ambient): inherits the base .symframe grid above —
|
|
966
1081
|
auto / 1fr / auto rows. No override needed. */
|
|
@@ -242,6 +242,19 @@
|
|
|
242
242
|
<button type="button" class="mode-auto" id="mode-auto" hidden title="Release to agent">
|
|
243
243
|
AUTO
|
|
244
244
|
</button>
|
|
245
|
+
<!-- Stage E (3.5.28): "what are you considering?" — clicking -->
|
|
246
|
+
<!-- this dwells every weighing card and dims non-weighing cards -->
|
|
247
|
+
<!-- for ~5s. Direct visual answer to "what options is the agent -->
|
|
248
|
+
<!-- holding open right now?" -->
|
|
249
|
+
<button
|
|
250
|
+
type="button"
|
|
251
|
+
class="considering-btn"
|
|
252
|
+
id="considering-btn"
|
|
253
|
+
title="What are you considering? (highlights weighing cards)"
|
|
254
|
+
aria-label="Highlight weighing cards"
|
|
255
|
+
>
|
|
256
|
+
⚖
|
|
257
|
+
</button>
|
|
245
258
|
</div>
|
|
246
259
|
<div class="symframe-sub">window into the agent's mind</div>
|
|
247
260
|
</div>
|
|
@@ -1029,5 +1042,6 @@
|
|
|
1029
1042
|
<script src="js/symframe-substrate.js"></script>
|
|
1030
1043
|
<script src="js/symframe-awaiting.js"></script>
|
|
1031
1044
|
<script src="js/symframe-modes.js"></script>
|
|
1045
|
+
<script src="js/symframe-bidirectional.js"></script>
|
|
1032
1046
|
</body>
|
|
1033
1047
|
</html>
|
|
@@ -0,0 +1,210 @@
|
|
|
1
|
+
// ── Symframe Bidirectional ──────────────────────────────────────────
|
|
2
|
+
// Stage E of the Dynamic Glass Panel arc — see ~/Documents/dynamic-glass-panel.md §5 Stage E.
|
|
3
|
+
//
|
|
4
|
+
// Two user-facing features that bridge the chat column and the symframe:
|
|
5
|
+
//
|
|
6
|
+
// 1. Mention-binding (agent → user direction)
|
|
7
|
+
// When the agent writes `[panel:<card-id>]` in a chat message, this
|
|
8
|
+
// module rewrites the literal text into a clickable span showing the
|
|
9
|
+
// card's title (or id if no title) AND auto-pulses (dwell) the
|
|
10
|
+
// referenced card. Clicking the span re-pulses. Fresh messages
|
|
11
|
+
// auto-dwell once on first render; history-loaded messages get
|
|
12
|
+
// clickable spans but no auto-dwell (so a session with 50 referenced
|
|
13
|
+
// messages doesn't dwell 50 times on reload).
|
|
14
|
+
//
|
|
15
|
+
// 2. "What are you considering?" (user → agent introspection)
|
|
16
|
+
// Small button in the symframe header. On click, dwells every
|
|
17
|
+
// weighing card AND adds .considering-weighing to #symframe which
|
|
18
|
+
// dims non-weighing cards for ~5s. Direct visual answer to "what
|
|
19
|
+
// options are the agent holding open right now?"
|
|
20
|
+
//
|
|
21
|
+
// Implementation notes:
|
|
22
|
+
// - Mention-scanning runs on a 500ms interval over all unscanned
|
|
23
|
+
// assistant bubbles; once processed, a bubble gets the
|
|
24
|
+
// .mentions-scanned class and is skipped. Streaming bubbles
|
|
25
|
+
// (.stream-bubble without .done) are skipped until they finalize.
|
|
26
|
+
// - The pageReadyAt + 1500ms grace window suppresses the initial
|
|
27
|
+
// auto-dwell flood from history reload.
|
|
28
|
+
// - The considering button reads window.symframe.list() to find
|
|
29
|
+
// weighing cards. Sticky cards (subagents/scheduling panels —
|
|
30
|
+
// mostly gone post-Stage-C, but defensive) are excluded.
|
|
31
|
+
// ─────────────────────────────────────────────────────────────────────
|
|
32
|
+
|
|
33
|
+
"use strict";
|
|
34
|
+
|
|
35
|
+
(function () {
|
|
36
|
+
const PANEL_REF_PATTERN = /\[panel:([a-zA-Z0-9_-]+)\]/g;
|
|
37
|
+
const SCAN_INTERVAL_MS = 500;
|
|
38
|
+
const PAGE_READY_AT = Date.now() + 1500;
|
|
39
|
+
const CONSIDERING_DURATION_MS = 5000;
|
|
40
|
+
|
|
41
|
+
// ── Mention-binding ─────────────────────────────────────────────
|
|
42
|
+
function buildPanelRefSpan(id) {
|
|
43
|
+
const span = document.createElement("span");
|
|
44
|
+
span.className = "panel-ref";
|
|
45
|
+
span.dataset.cardId = id;
|
|
46
|
+
const cards = window.symframe?.list?.() || [];
|
|
47
|
+
const card = cards.find((c) => c.id === id);
|
|
48
|
+
const hasCard = !!card;
|
|
49
|
+
span.textContent = card?.title || id;
|
|
50
|
+
span.title = hasCard
|
|
51
|
+
? `Click to pulse "${card.title || id}" in the panel`
|
|
52
|
+
: `Card "${id}" — not currently in the panel`;
|
|
53
|
+
if (!hasCard) {
|
|
54
|
+
span.classList.add("panel-ref-orphan");
|
|
55
|
+
}
|
|
56
|
+
span.addEventListener("click", (e) => {
|
|
57
|
+
e.preventDefault();
|
|
58
|
+
const result = window.symframe?.dwell?.(id);
|
|
59
|
+
if (!result) {
|
|
60
|
+
span.classList.add("panel-ref-miss");
|
|
61
|
+
setTimeout(() => span.classList.remove("panel-ref-miss"), 1000);
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
return span;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
function walkTextNodes(node, callback) {
|
|
68
|
+
if (!node) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
if (node.nodeType === Node.TEXT_NODE) {
|
|
72
|
+
callback(node);
|
|
73
|
+
return;
|
|
74
|
+
}
|
|
75
|
+
if (node.nodeType !== Node.ELEMENT_NODE) {
|
|
76
|
+
return;
|
|
77
|
+
}
|
|
78
|
+
const el = node;
|
|
79
|
+
// Skip elements we've already processed, code blocks, and links.
|
|
80
|
+
if (el.classList?.contains("panel-ref")) {
|
|
81
|
+
return;
|
|
82
|
+
}
|
|
83
|
+
if (el.tagName === "CODE" || el.tagName === "PRE" || el.tagName === "A") {
|
|
84
|
+
return;
|
|
85
|
+
}
|
|
86
|
+
for (const child of Array.from(el.childNodes)) {
|
|
87
|
+
walkTextNodes(child, callback);
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
function processMentionsIn(bubble) {
|
|
92
|
+
const matchedIds = [];
|
|
93
|
+
walkTextNodes(bubble, (textNode) => {
|
|
94
|
+
const text = textNode.textContent;
|
|
95
|
+
if (!text) {
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
PANEL_REF_PATTERN.lastIndex = 0;
|
|
99
|
+
if (!PANEL_REF_PATTERN.test(text)) {
|
|
100
|
+
return;
|
|
101
|
+
}
|
|
102
|
+
PANEL_REF_PATTERN.lastIndex = 0;
|
|
103
|
+
const fragment = document.createDocumentFragment();
|
|
104
|
+
let lastIndex = 0;
|
|
105
|
+
let match;
|
|
106
|
+
while ((match = PANEL_REF_PATTERN.exec(text)) !== null) {
|
|
107
|
+
const literal = match[0];
|
|
108
|
+
const id = match[1];
|
|
109
|
+
if (match.index > lastIndex) {
|
|
110
|
+
fragment.appendChild(document.createTextNode(text.slice(lastIndex, match.index)));
|
|
111
|
+
}
|
|
112
|
+
fragment.appendChild(buildPanelRefSpan(id));
|
|
113
|
+
matchedIds.push(id);
|
|
114
|
+
lastIndex = match.index + literal.length;
|
|
115
|
+
}
|
|
116
|
+
if (lastIndex < text.length) {
|
|
117
|
+
fragment.appendChild(document.createTextNode(text.slice(lastIndex)));
|
|
118
|
+
}
|
|
119
|
+
textNode.replaceWith(fragment);
|
|
120
|
+
});
|
|
121
|
+
|
|
122
|
+
// Auto-dwell on fresh mentions only — suppress during the initial
|
|
123
|
+
// history-reload window so we don't flood with pulses.
|
|
124
|
+
if (matchedIds.length > 0 && Date.now() >= PAGE_READY_AT) {
|
|
125
|
+
for (const id of matchedIds) {
|
|
126
|
+
try {
|
|
127
|
+
window.symframe?.dwell?.(id);
|
|
128
|
+
} catch (err) {
|
|
129
|
+
console.warn("[symframe-bidirectional] dwell threw:", err);
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
|
|
135
|
+
function scanForMentions() {
|
|
136
|
+
const bubbles = document.querySelectorAll(".message.symi-msg .bubble:not(.mentions-scanned)");
|
|
137
|
+
for (const bubble of bubbles) {
|
|
138
|
+
// Skip still-streaming bubbles (delta still incoming)
|
|
139
|
+
if (bubble.classList.contains("stream-bubble") && !bubble.classList.contains("done")) {
|
|
140
|
+
continue;
|
|
141
|
+
}
|
|
142
|
+
processMentionsIn(bubble);
|
|
143
|
+
bubble.classList.add("mentions-scanned");
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
// ── "What are you considering?" gesture ──────────────────────────
|
|
148
|
+
let considerTimer = null;
|
|
149
|
+
|
|
150
|
+
function showConsidering() {
|
|
151
|
+
const symframeRoot = document.getElementById("symframe");
|
|
152
|
+
if (!symframeRoot) {
|
|
153
|
+
return;
|
|
154
|
+
}
|
|
155
|
+
const list = window.symframe?.list?.() || [];
|
|
156
|
+
const weighing = list.filter((c) => c.intent === "weighing" && !c.sticky);
|
|
157
|
+
if (weighing.length === 0) {
|
|
158
|
+
// Brief flash on the considering button itself to signal "no
|
|
159
|
+
// weighing cards right now"
|
|
160
|
+
const btn = document.getElementById("considering-btn");
|
|
161
|
+
if (btn) {
|
|
162
|
+
btn.classList.add("considering-empty");
|
|
163
|
+
setTimeout(() => btn.classList.remove("considering-empty"), 800);
|
|
164
|
+
}
|
|
165
|
+
return;
|
|
166
|
+
}
|
|
167
|
+
// Add the dimming class to non-weighing cards
|
|
168
|
+
symframeRoot.classList.add("considering-weighing");
|
|
169
|
+
// Dwell each weighing card (cyan halo pulses)
|
|
170
|
+
for (const c of weighing) {
|
|
171
|
+
try {
|
|
172
|
+
window.symframe?.dwell?.(c.id);
|
|
173
|
+
} catch (err) {
|
|
174
|
+
console.warn("[symframe-bidirectional] dwell threw:", err);
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
// Clear after the duration
|
|
178
|
+
if (considerTimer) {
|
|
179
|
+
clearTimeout(considerTimer);
|
|
180
|
+
}
|
|
181
|
+
considerTimer = setTimeout(() => {
|
|
182
|
+
symframeRoot.classList.remove("considering-weighing");
|
|
183
|
+
considerTimer = null;
|
|
184
|
+
}, CONSIDERING_DURATION_MS);
|
|
185
|
+
}
|
|
186
|
+
|
|
187
|
+
function wireConsideringButton() {
|
|
188
|
+
const btn = document.getElementById("considering-btn");
|
|
189
|
+
if (!btn) {
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
btn.addEventListener("click", (e) => {
|
|
193
|
+
e.preventDefault();
|
|
194
|
+
showConsidering();
|
|
195
|
+
});
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
// ── Init ────────────────────────────────────────────────────────
|
|
199
|
+
function init() {
|
|
200
|
+
setInterval(scanForMentions, SCAN_INTERVAL_MS);
|
|
201
|
+
scanForMentions();
|
|
202
|
+
wireConsideringButton();
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
if (document.readyState === "loading") {
|
|
206
|
+
document.addEventListener("DOMContentLoaded", init);
|
|
207
|
+
} else {
|
|
208
|
+
init();
|
|
209
|
+
}
|
|
210
|
+
})();
|
|
@@ -9,7 +9,7 @@ import { r as normalizeChannelId, t as getChannelPlugin } from "./plugins-CZ_mYw
|
|
|
9
9
|
import { _ as listDeliverableMessageChannels, c as resolveChunkMode, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, n as chunkByParagraph, v as normalizeMessageChannel } from "./chunk-CAZujdOi.js";
|
|
10
10
|
import { c as loadConfig, d as writeConfigFile, m as parseByteSize, p as parseDurationMs, s as createConfigIO, t as SsrFBlockedError } from "./ssrf-BCSnhba8.js";
|
|
11
11
|
import { t as parseBooleanValue } from "./boolean-BW6OTjPi.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-DNssqQJs.js";
|
|
13
13
|
import { t as formatCliCommand } from "./command-format-DPd9RN2g.js";
|
|
14
14
|
import { a as syncSkillsToWorkspace, l as resolveSandboxInputPath, m as sanitizeEnvVars, u as resolveSandboxPath } from "./skills-DO7WNsVJ.js";
|
|
15
15
|
import { n as formatErrorMessage, t as extractErrorCode } from "./errors-BEU7IHU6.js";
|
|
@@ -1331,7 +1331,7 @@ function isModuleNotFoundError(err) {
|
|
|
1331
1331
|
}
|
|
1332
1332
|
async function loadPwAiModule(mode) {
|
|
1333
1333
|
try {
|
|
1334
|
-
return await import("./pw-ai-
|
|
1334
|
+
return await import("./pw-ai-v__CyAlM.js");
|
|
1335
1335
|
} catch (err) {
|
|
1336
1336
|
if (mode === "soft") return null;
|
|
1337
1337
|
if (isModuleNotFoundError(err)) return null;
|
|
@@ -3928,11 +3928,11 @@ function createProfileContext(opts, profile) {
|
|
|
3928
3928
|
const userDataDir = resolveSymiUserDataDir(profile.name);
|
|
3929
3929
|
const profileState = getProfileState();
|
|
3930
3930
|
if (await isHttpReachable(300) && !profileState.running) try {
|
|
3931
|
-
await (await import("./pw-ai-
|
|
3931
|
+
await (await import("./pw-ai-v__CyAlM.js")).closePlaywrightBrowserConnection();
|
|
3932
3932
|
} catch {}
|
|
3933
3933
|
if (profileState.running) await stopRunningBrowser();
|
|
3934
3934
|
try {
|
|
3935
|
-
await (await import("./pw-ai-
|
|
3935
|
+
await (await import("./pw-ai-v__CyAlM.js")).closePlaywrightBrowserConnection();
|
|
3936
3936
|
} catch {}
|
|
3937
3937
|
if (!fs.existsSync(userDataDir)) return {
|
|
3938
3938
|
moved: false,
|
|
@@ -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-BIAQpZxi.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-vAwL_uEK.js";
|
|
5
5
|
import { spawnSync } from "node:child_process";
|
|
6
6
|
import path from "node:path";
|
|
7
7
|
|
|
@@ -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-D9FXI2qW.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-CsJ2f_fk.js";
|
|
5
5
|
import path from "node:path";
|
|
6
6
|
import { spawnSync } from "node:child_process";
|
|
7
7
|
|
package/dist/entry.js
CHANGED
|
@@ -2315,7 +2315,7 @@ if (!ensureExperimentalWarningSuppressed()) {
|
|
|
2315
2315
|
applyCliProfileEnv({ profile: parsed.profile });
|
|
2316
2316
|
process$1.argv = parsed.argv;
|
|
2317
2317
|
}
|
|
2318
|
-
import("./run-main-
|
|
2318
|
+
import("./run-main-DhgQtxI0.js").then(({ runCli }) => runCli(process$1.argv)).catch((error) => {
|
|
2319
2319
|
console.error("[symi] Failed to start CLI:", error instanceof Error ? error.stack ?? error.message : error);
|
|
2320
2320
|
process$1.exitCode = 1;
|
|
2321
2321
|
});
|
package/dist/extensionAPI.js
CHANGED
|
@@ -6,8 +6,8 @@ import { _ as DEFAULT_PROVIDER, g as DEFAULT_MODEL, p as resolveThinkingDefault
|
|
|
6
6
|
import { a as resolveAgentIdentity } from "./reply-prefix-i-FPYcoQ.js";
|
|
7
7
|
import "./plugins-CZ_mYwXq.js";
|
|
8
8
|
import "./replies-0nzkXt6o.js";
|
|
9
|
-
import { a as resolveAgentTimeoutMs, r as runEmbeddedPiAgent } from "./pi-embedded-
|
|
10
|
-
import { $ as loadSessionStore, nt as saveSessionStore } from "./deliver-
|
|
9
|
+
import { a as resolveAgentTimeoutMs, r as runEmbeddedPiAgent } from "./pi-embedded-V-5MAZNb.js";
|
|
10
|
+
import { $ as loadSessionStore, nt as saveSessionStore } from "./deliver-q23ar_Pm.js";
|
|
11
11
|
import "./diagnostic-BdRnGknC.js";
|
|
12
12
|
import "./diagnostic-session-state-DpxCUzoM.js";
|
|
13
13
|
import "./chunk-CAZujdOi.js";
|
|
@@ -16,14 +16,14 @@ import "./ssrf-BCSnhba8.js";
|
|
|
16
16
|
import "./boolean-BW6OTjPi.js";
|
|
17
17
|
import "./shell-env-DgjeObDZ.js";
|
|
18
18
|
import "./manifest-registry-CAWGTwb5.js";
|
|
19
|
-
import "./chrome-
|
|
19
|
+
import "./chrome-DNssqQJs.js";
|
|
20
20
|
import "./skills-DO7WNsVJ.js";
|
|
21
21
|
import "./redact-DSOAcWMe.js";
|
|
22
22
|
import "./errors-BEU7IHU6.js";
|
|
23
23
|
import "./tokens-yWO1wD7Z.js";
|
|
24
24
|
import "./thinking-DgjGxdSP.js";
|
|
25
25
|
import { n as resolveSessionFilePath, s as resolveStorePath } from "./paths-BsT3BvfH.js";
|
|
26
|
-
import "./manager-
|
|
26
|
+
import "./manager-NDn8AFhr.js";
|
|
27
27
|
import "./github-copilot-token-dYUr1mDQ.js";
|
|
28
28
|
import "./sqlite-D8iYC_CU.js";
|
|
29
29
|
import "./markdown-tables-jQzXAsf3.js";
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { $ as isExternalHookSession, $t as emitAgentEvent, A as resolveSessionDeliveryTarget, At as resolveInputFileLimits, B as normalizeOptionalSessionKey, Bt as countActiveDescendantRuns, Cn as CommandLane, Ct as DEFAULT_INPUT_IMAGE_MAX_BYTES, Dn as runWithModelFallback, Dt as extractFileContentFromSource, Et as DEFAULT_INPUT_TIMEOUT_MS, F as normalizeHttpWebhookUrl, G as buildDeliveryFromLegacyPayload, H as normalizePayloadToSystemText, Ht as initSubagentRegistry, Jt as readLatestAssistantReply, K as hasLegacyDeliveryHints, Kt as resolveAgentTimeoutMs, N as resetDirectoryCache, O as resolveOutboundSessionRoute, Ot as extractImageContentFromSource, Q as getHookType, Qt as clearAgentRunContext, R as inferLegacyName, S as createSymiTools, Sn as waitForActiveTasks, T as resolveAnnounceTargetFromKey, Tn as resolveModelProfile, Tt as DEFAULT_INPUT_MAX_REDIRECTS, U as normalizeRequiredName, Ut as listDescendantRunsForRequester, V as normalizeOptionalText, Vt as countActiveRunsForSession, W as migrateLegacyCronPayload, X as buildSafeExternalPrompt, Z as detectSuspiciousPatterns, a as getPluginToolMeta, an as getActiveEmbeddedRunCount, at as isGatewaySigusr1RestartExternallyAllowed, bn as resetAllLanes, c as handleSlackHttpRequest, cn as registerUnhandledRejectionHandler, ct as setGatewaySigusr1RestartPolicy, d as buildHistoryContextFromEntries, dn as formatUserTime, en as getAgentRunContext, fn as resolveUserTimeFormat, h as getTotalPendingReplies, it as emitGatewayRestart, k as resolveOutboundTarget, kt as normalizeMimeList, l as readJsonBodyWithLimit, ln as ToolInputError, lt as setPreRestartDeferralCheck, n as applyToolPolicyPipeline, nn as registerAgentRunContext, nt as consumeGatewaySigusr1RestartAuthorization, ot as markGatewaySigusr1RestartHandled, pn as resolveUserTimezone, q as stripLegacyDeliveryFields, qt as runSubagentAnnounceFlow, r as buildDefaultToolPolicyPipelineSteps, rt as deferGatewayRestartUntilIdle, s as loadSymiPlugins, t as runAgentTurn, tn as onAgentEvent, u as requestBodyErrorToText, vn as getActiveTaskCount, wn as classifyOutboundMessage, wt as DEFAULT_INPUT_IMAGE_MIMES, xn as setCommandLaneConcurrency, yn as getTotalQueueSize, z as normalizeOptionalAgentId } from "./unified-runner-
|
|
1
|
+
import { $ as isExternalHookSession, $t as emitAgentEvent, A as resolveSessionDeliveryTarget, At as resolveInputFileLimits, B as normalizeOptionalSessionKey, Bt as countActiveDescendantRuns, Cn as CommandLane, Ct as DEFAULT_INPUT_IMAGE_MAX_BYTES, Dn as runWithModelFallback, Dt as extractFileContentFromSource, Et as DEFAULT_INPUT_TIMEOUT_MS, F as normalizeHttpWebhookUrl, G as buildDeliveryFromLegacyPayload, H as normalizePayloadToSystemText, Ht as initSubagentRegistry, Jt as readLatestAssistantReply, K as hasLegacyDeliveryHints, Kt as resolveAgentTimeoutMs, N as resetDirectoryCache, O as resolveOutboundSessionRoute, Ot as extractImageContentFromSource, Q as getHookType, Qt as clearAgentRunContext, R as inferLegacyName, S as createSymiTools, Sn as waitForActiveTasks, T as resolveAnnounceTargetFromKey, Tn as resolveModelProfile, Tt as DEFAULT_INPUT_MAX_REDIRECTS, U as normalizeRequiredName, Ut as listDescendantRunsForRequester, V as normalizeOptionalText, Vt as countActiveRunsForSession, W as migrateLegacyCronPayload, X as buildSafeExternalPrompt, Z as detectSuspiciousPatterns, a as getPluginToolMeta, an as getActiveEmbeddedRunCount, at as isGatewaySigusr1RestartExternallyAllowed, bn as resetAllLanes, c as handleSlackHttpRequest, cn as registerUnhandledRejectionHandler, ct as setGatewaySigusr1RestartPolicy, d as buildHistoryContextFromEntries, dn as formatUserTime, en as getAgentRunContext, fn as resolveUserTimeFormat, h as getTotalPendingReplies, it as emitGatewayRestart, k as resolveOutboundTarget, kt as normalizeMimeList, l as readJsonBodyWithLimit, ln as ToolInputError, lt as setPreRestartDeferralCheck, n as applyToolPolicyPipeline, nn as registerAgentRunContext, nt as consumeGatewaySigusr1RestartAuthorization, ot as markGatewaySigusr1RestartHandled, pn as resolveUserTimezone, q as stripLegacyDeliveryFields, qt as runSubagentAnnounceFlow, r as buildDefaultToolPolicyPipelineSteps, rt as deferGatewayRestartUntilIdle, s as loadSymiPlugins, t as runAgentTurn, tn as onAgentEvent, u as requestBodyErrorToText, vn as getActiveTaskCount, wn as classifyOutboundMessage, wt as DEFAULT_INPUT_IMAGE_MIMES, xn as setCommandLaneConcurrency, yn as getTotalQueueSize, z as normalizeOptionalAgentId } from "./unified-runner-CtSJoaGS.js";
|
|
2
2
|
import { A as isRich, E as setVerbose, H as createInternalHookEvent, M as getChildLogger, N as getLogger, P as getResolvedLoggerSettings, U as registerInternalHook, V as clearInternalHooks, W as triggerInternalHook, j as theme, k as colorize, m as createEmptyPluginRegistry, r as DEFAULT_CHAT_CHANNEL } from "./registry-Sbac4a4z.js";
|
|
3
3
|
import { _ as resolveStateDir, i as isNixMode, l as resolveGatewayLockDir, o as resolveConfigPath, r as STATE_DIR, t as CONFIG_PATH, u as resolveGatewayPort, v as expandHomePrefix } from "./paths-By0XjHBk.js";
|
|
4
4
|
import { h as resolveUserPath, s as ensureDir, t as CONFIG_DIR, v as shortenHomePath, x as truncateUtf16Safe } from "./utils-CTPsqyE_.js";
|
|
@@ -58,8 +58,8 @@ import { c as hasNonzeroUsage, s as deriveSessionTotalTokens } from "./session-c
|
|
|
58
58
|
import { C as enqueueSystemEvent, a as loadCombinedSessionStoreForGateway, f as formatRestartSentinelMessage, i as listSessionsFromStore, m as summarizeRestartSentinel, o as loadSessionEntry, u as consumeRestartSentinel, x as lookupContextTokens } from "./session-utils-Cs1jlD-q.js";
|
|
59
59
|
import { r as getMachineDisplayName } from "./with-timeout-DPR4A2dx.js";
|
|
60
60
|
import { a as resolveAgentIdentity } from "./reply-prefix-BFNeXT65.js";
|
|
61
|
-
import { n as resolveMemoryBackendConfig, t as getMemorySearchManager } from "./memory-
|
|
62
|
-
import { c as resolveMemorySearchConfig } from "./manager-
|
|
61
|
+
import { n as resolveMemoryBackendConfig, t as getMemorySearchManager } from "./memory-DOl2l2AS.js";
|
|
62
|
+
import { c as resolveMemorySearchConfig } from "./manager-CL767Sv9.js";
|
|
63
63
|
import "./sqlite-Cod7C5ba.js";
|
|
64
64
|
import "./chunk-BxfKjCUx.js";
|
|
65
65
|
import "./markdown-tables-CS1Tvb3z.js";
|
|
@@ -92,7 +92,7 @@ import { t as formatDocsLink } from "./links-Bqr0FxXx.js";
|
|
|
92
92
|
import { n as runCommandWithRuntime } from "./cli-utils-CuyGL3rq.js";
|
|
93
93
|
import { t as formatHelpExamples } from "./help-format-7hFcsqss.js";
|
|
94
94
|
import { n as withProgress } from "./progress-swt2y17x.js";
|
|
95
|
-
import "./memory-cli-
|
|
95
|
+
import "./memory-cli-B9_Vfaow.js";
|
|
96
96
|
import "./logging-BWknayJl.js";
|
|
97
97
|
import "./replies-CbXXjn9X.js";
|
|
98
98
|
import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, r as resolveEffectiveToolPolicy } from "./pi-tools.policy-H2t-Xkfc.js";
|
|
@@ -124,15 +124,15 @@ import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } fr
|
|
|
124
124
|
import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-1xPo9ygd.js";
|
|
125
125
|
import { c as resolveNodeCommandAllowlist, l as probeGateway, n as DEFAULT_GATEWAY_HTTP_TOOL_DENY } from "./audit-C_3fAFeS.js";
|
|
126
126
|
import { t as discoverGatewayBeacons } from "./bonjour-discovery-CWTnBKX8.js";
|
|
127
|
-
import { r as pickGatewaySelfPresence } from "./status-
|
|
127
|
+
import { r as pickGatewaySelfPresence } from "./status-CCAO6ZHm.js";
|
|
128
128
|
import { i as styleHealthChannelLine, n as getHealthSnapshot, t as formatHealthChannelLines } from "./health-7UqIGG8U.js";
|
|
129
129
|
import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-CJQ97d4u.js";
|
|
130
130
|
import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, m as normalizeUpdateChannel, n as compareSemverStrings, t as checkUpdateStatus } from "./update-check-BCL_K7kx.js";
|
|
131
|
-
import { t as runOnboardingWizard } from "./onboarding-
|
|
132
|
-
import { C as startGatewayConfigReloader, S as resolveCronRunLogPath, _ as MAX_PAYLOAD_BYTES, a as loadFavoritesSet, b as abortChatRunById, c as resolveAssistantIdentity, d as formatError, f as loadVoiceWakeConfig, g as MAX_BUFFERED_BYTES, h as HEALTH_REFRESH_INTERVAL_MS, i as safeParseJson, l as listSystemPresence, m as DEDUPE_TTL_MS, n as handleGatewayRequest, o as reconcileFavorites, p as DEDUPE_MAX, r as broadcastPresenceSnapshot, s as DEFAULT_ASSISTANT_IDENTITY, t as coreGatewayHandlers, u as upsertPresence, v as TICK_INTERVAL_MS, x as appendCronRunLog, y as getHandshakeTimeoutMs } from "./server-methods-
|
|
133
|
-
import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-
|
|
131
|
+
import { t as runOnboardingWizard } from "./onboarding-BG23DuS1.js";
|
|
132
|
+
import { C as startGatewayConfigReloader, S as resolveCronRunLogPath, _ as MAX_PAYLOAD_BYTES, a as loadFavoritesSet, b as abortChatRunById, c as resolveAssistantIdentity, d as formatError, f as loadVoiceWakeConfig, g as MAX_BUFFERED_BYTES, h as HEALTH_REFRESH_INTERVAL_MS, i as safeParseJson, l as listSystemPresence, m as DEDUPE_TTL_MS, n as handleGatewayRequest, o as reconcileFavorites, p as DEDUPE_MAX, r as broadcastPresenceSnapshot, s as DEFAULT_ASSISTANT_IDENTITY, t as coreGatewayHandlers, u as upsertPresence, v as TICK_INTERVAL_MS, x as appendCronRunLog, y as getHandshakeTimeoutMs } from "./server-methods-6-10RyMD.js";
|
|
133
|
+
import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-HQd5hCpM.js";
|
|
134
134
|
import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-CGaQ7-Vb.js";
|
|
135
|
-
import { a as getCliSessionId, o as setCliSessionId, s as runCliAgent, t as agentCommand } from "./agent-
|
|
135
|
+
import { a as getCliSessionId, o as setCliSessionId, s as runCliAgent, t as agentCommand } from "./agent-BsRYHa15.js";
|
|
136
136
|
import { t as createOutboundSendDeps } from "./outbound-send-deps--SpwgFhS.js";
|
|
137
137
|
import { s as loadAgentIdentityFromWorkspace } from "./agents.config-B7sNDvhz.js";
|
|
138
138
|
import "./dm-policy-shared-CeFt0nch.js";
|
|
@@ -12051,7 +12051,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
|
|
|
12051
12051
|
});
|
|
12052
12052
|
let glassUiBridgeCleanup = null;
|
|
12053
12053
|
if (!minimalTestGateway) {
|
|
12054
|
-
const { createGlassUiBridge } = await import("./glass-ui-ws-
|
|
12054
|
+
const { createGlassUiBridge } = await import("./glass-ui-ws-CrmnRYxe.js");
|
|
12055
12055
|
glassUiBridgeCleanup = createGlassUiBridge({
|
|
12056
12056
|
wss: glassUiWss,
|
|
12057
12057
|
context: gatewayRequestContext,
|
|
@@ -26,7 +26,7 @@ import "./pairing-token-B-OTYROz.js";
|
|
|
26
26
|
import { t as safeEqualSecret } from "./secret-equal-CDUVxXmp.js";
|
|
27
27
|
import { a as isValidIPv4, c as resolveClientIp, d as resolveHostName, f as rawDataToString, i as isTrustedProxyAddress, l as resolveGatewayBindHost, n as isLoopbackHost, o as normalizeHostHeader, t as isLoopbackAddress, u as resolveGatewayListenHosts } from "./net-TZUXtwGR.js";
|
|
28
28
|
import { n as pickPrimaryTailnetIPv4, r as pickPrimaryTailnetIPv6 } from "./tailnet-B2SPYrh4.js";
|
|
29
|
-
import { $ as normalizeHttpWebhookUrl, $t as resolveInputFileLimits, Cn as emitAgentEvent, Ct as deferGatewayRestartUntilIdle, D as getActiveEmbeddedRunCount, En as registerAgentRunContext, Et as markGatewaySigusr1RestartHandled, F as createSymiTools, Gt as registerUnhandledRejectionHandler, H as resolveOutboundSessionRoute, Jt as DEFAULT_INPUT_MAX_REDIRECTS, Kt as DEFAULT_INPUT_IMAGE_MAX_BYTES, M as resolveModelProfile, Ot as setGatewaySigusr1RestartPolicy, Qt as normalizeMimeList, R as readLatestAssistantReply, S as getTotalPendingReplies, Sn as clearAgentRunContext, St as consumeGatewaySigusr1RestartAuthorization, T as runAgentTurn, Tn as onAgentEvent, Tt as isGatewaySigusr1RestartExternallyAllowed, U as resolveOutboundTarget, W as resolveSessionDeliveryTarget, Xt as extractFileContentFromSource, Y as runWithModelFallback, Yt as DEFAULT_INPUT_TIMEOUT_MS, Zt as extractImageContentFromSource, _ as requestBodyErrorToText, _n as getTotalQueueSize, _t as isExternalHookSession, at as normalizeOptionalText, bn as waitForActiveTasks, ct as migrateLegacyCronPayload, dn as formatUserTime, dt as stripLegacyDeliveryFields, f as getPluginToolMeta, fn as resolveUserTimeFormat, g as readJsonBodyWithLimit, gn as getActiveTaskCount, gt as getHookType, h as handleSlackHttpRequest, ht as detectSuspiciousPatterns, i as listDescendantRunsForRequester, it as normalizeOptionalSessionKey, j as classifyOutboundMessage, kt as setPreRestartDeferralCheck, l as applyToolPolicyPipeline, ln as ToolInputError, lt as buildDeliveryFromLegacyPayload, m as loadSymiPlugins, mt as buildSafeExternalPrompt, n as countActiveRunsForSession, nt as inferLegacyName, ot as normalizePayloadToSystemText, pn as resolveUserTimezone, q as resetDirectoryCache, qt as DEFAULT_INPUT_IMAGE_MIMES, r as initSubagentRegistry, rt as normalizeOptionalAgentId, s as runSubagentAnnounceFlow, st as normalizeRequiredName, t as countActiveDescendantRuns, tn as resolveAgentTimeoutMs, u as buildDefaultToolPolicyPipelineSteps, ut as hasLegacyDeliveryHints, v as buildHistoryContextFromEntries, vn as resetAllLanes, wn as getAgentRunContext, wt as emitGatewayRestart, xn as CommandLane, yn as setCommandLaneConcurrency, z as resolveAnnounceTargetFromKey } from "./subagent-registry-
|
|
29
|
+
import { $ as normalizeHttpWebhookUrl, $t as resolveInputFileLimits, Cn as emitAgentEvent, Ct as deferGatewayRestartUntilIdle, D as getActiveEmbeddedRunCount, En as registerAgentRunContext, Et as markGatewaySigusr1RestartHandled, F as createSymiTools, Gt as registerUnhandledRejectionHandler, H as resolveOutboundSessionRoute, Jt as DEFAULT_INPUT_MAX_REDIRECTS, Kt as DEFAULT_INPUT_IMAGE_MAX_BYTES, M as resolveModelProfile, Ot as setGatewaySigusr1RestartPolicy, Qt as normalizeMimeList, R as readLatestAssistantReply, S as getTotalPendingReplies, Sn as clearAgentRunContext, St as consumeGatewaySigusr1RestartAuthorization, T as runAgentTurn, Tn as onAgentEvent, Tt as isGatewaySigusr1RestartExternallyAllowed, U as resolveOutboundTarget, W as resolveSessionDeliveryTarget, Xt as extractFileContentFromSource, Y as runWithModelFallback, Yt as DEFAULT_INPUT_TIMEOUT_MS, Zt as extractImageContentFromSource, _ as requestBodyErrorToText, _n as getTotalQueueSize, _t as isExternalHookSession, at as normalizeOptionalText, bn as waitForActiveTasks, ct as migrateLegacyCronPayload, dn as formatUserTime, dt as stripLegacyDeliveryFields, f as getPluginToolMeta, fn as resolveUserTimeFormat, g as readJsonBodyWithLimit, gn as getActiveTaskCount, gt as getHookType, h as handleSlackHttpRequest, ht as detectSuspiciousPatterns, i as listDescendantRunsForRequester, it as normalizeOptionalSessionKey, j as classifyOutboundMessage, kt as setPreRestartDeferralCheck, l as applyToolPolicyPipeline, ln as ToolInputError, lt as buildDeliveryFromLegacyPayload, m as loadSymiPlugins, mt as buildSafeExternalPrompt, n as countActiveRunsForSession, nt as inferLegacyName, ot as normalizePayloadToSystemText, pn as resolveUserTimezone, q as resetDirectoryCache, qt as DEFAULT_INPUT_IMAGE_MIMES, r as initSubagentRegistry, rt as normalizeOptionalAgentId, s as runSubagentAnnounceFlow, st as normalizeRequiredName, t as countActiveDescendantRuns, tn as resolveAgentTimeoutMs, u as buildDefaultToolPolicyPipelineSteps, ut as hasLegacyDeliveryHints, v as buildHistoryContextFromEntries, vn as resetAllLanes, wn as getAgentRunContext, wt as emitGatewayRestart, xn as CommandLane, yn as setCommandLaneConcurrency, z as resolveAnnounceTargetFromKey } from "./subagent-registry-D8BIWG9Q.js";
|
|
30
30
|
import { D as resolveSessionResetPolicy, F as resolveMainSessionKey, H as cleanStaleLockFiles, I as resolveMainSessionKeyFromConfig, K as mergeDeliveryContext, M as canonicalizeMainSessionAlias, N as resolveAgentMainSessionKey, T as evaluateSessionFreshness, W as deliveryContextFromSession, d as updateSessionStore, n as parseSessionThreadInfo, o as loadSessionStore } from "./sessions-Dn6VXn4p.js";
|
|
31
31
|
import { n as listChannelPlugins, r as normalizeChannelId, t as getChannelPlugin } from "./plugins-BsEhWvLn.js";
|
|
32
32
|
import "./send-Dq252-bi.js";
|
|
@@ -56,8 +56,8 @@ import "./model-auth-Byr7Gic_.js";
|
|
|
56
56
|
import "./github-copilot-token-B5y4__YM.js";
|
|
57
57
|
import "./models-config-CiR_RUxw.js";
|
|
58
58
|
import { a as resolveAgentIdentity } from "./reply-prefix-DV3KhOhL.js";
|
|
59
|
-
import { n as resolveMemoryBackendConfig, t as getMemorySearchManager } from "./memory-
|
|
60
|
-
import { c as resolveMemorySearchConfig } from "./manager-
|
|
59
|
+
import { n as resolveMemoryBackendConfig, t as getMemorySearchManager } from "./memory-CTf9MdBg.js";
|
|
60
|
+
import { c as resolveMemorySearchConfig } from "./manager-XfNxjaX5.js";
|
|
61
61
|
import "./sqlite-9jF_eajd.js";
|
|
62
62
|
import "./chunk-B2lBXhR0.js";
|
|
63
63
|
import "./markdown-tables-BEdkErjm.js";
|
|
@@ -90,7 +90,7 @@ import { t as formatDocsLink } from "./links-Dnmd-RS-.js";
|
|
|
90
90
|
import { n as runCommandWithRuntime } from "./cli-utils-DXfA5936.js";
|
|
91
91
|
import { t as formatHelpExamples } from "./help-format-Dbp8yEhl.js";
|
|
92
92
|
import { n as withProgress } from "./progress-CI19Xh3z.js";
|
|
93
|
-
import "./memory-cli-
|
|
93
|
+
import "./memory-cli-CA5PbH9y.js";
|
|
94
94
|
import "./logging-UO6tk8Em.js";
|
|
95
95
|
import "./replies-CLREUzzB.js";
|
|
96
96
|
import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, r as resolveEffectiveToolPolicy } from "./pi-tools.policy-06k__URR.js";
|
|
@@ -117,17 +117,17 @@ import { n as resolveWideAreaDiscoveryDomain, r as writeWideAreaGatewayZone } fr
|
|
|
117
117
|
import { i as toOptionString, n as extractGatewayMiskeys, r as maybeExplainGatewayServiceStop, t as describeUnknownError } from "./shared-Dl4ZrOve.js";
|
|
118
118
|
import { c as resolveNodeCommandAllowlist, l as probeGateway, n as DEFAULT_GATEWAY_HTTP_TOOL_DENY } from "./audit-DyncRBKq.js";
|
|
119
119
|
import { t as discoverGatewayBeacons } from "./bonjour-discovery-XbH0AYJ4.js";
|
|
120
|
-
import { i as pickGatewaySelfPresence } from "./status-
|
|
120
|
+
import { i as pickGatewaySelfPresence } from "./status-D_0593yR.js";
|
|
121
121
|
import { a as styleHealthChannelLine, n as getHealthSnapshot, t as formatHealthChannelLines } from "./health-Dkwuq8ta.js";
|
|
122
122
|
import { n as createDefaultDeps, t as createOutboundSendDeps } from "./outbound-send-deps-BCyarBRf.js";
|
|
123
123
|
import { a as resolveControlUiRootSync, i as resolveControlUiRootOverrideSync, t as ensureControlUiAssetsBuilt } from "./control-ui-assets-Dnz69KRU.js";
|
|
124
124
|
import { t as ensureSymiCliOnPath } from "./path-env-SUrcTSJ-.js";
|
|
125
125
|
import { a as resolveNpmChannelTag, c as DEFAULT_PACKAGE_CHANNEL, m as normalizeUpdateChannel, n as compareSemverStrings, t as checkUpdateStatus } from "./update-check-DLOnLuop.js";
|
|
126
|
-
import { t as runOnboardingWizard } from "./onboarding-
|
|
127
|
-
import { C as startGatewayConfigReloader, S as resolveCronRunLogPath, _ as MAX_PAYLOAD_BYTES, a as loadFavoritesSet, b as abortChatRunById, c as resolveAssistantIdentity, d as formatError, f as loadVoiceWakeConfig, g as MAX_BUFFERED_BYTES, h as HEALTH_REFRESH_INTERVAL_MS, i as safeParseJson, l as listSystemPresence, m as DEDUPE_TTL_MS, n as handleGatewayRequest, o as reconcileFavorites, p as DEDUPE_MAX, r as broadcastPresenceSnapshot, s as DEFAULT_ASSISTANT_IDENTITY, t as coreGatewayHandlers, u as upsertPresence, v as TICK_INTERVAL_MS, x as appendCronRunLog, y as getHandshakeTimeoutMs } from "./server-methods-
|
|
128
|
-
import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-
|
|
126
|
+
import { t as runOnboardingWizard } from "./onboarding-MPSU9pXd.js";
|
|
127
|
+
import { C as startGatewayConfigReloader, S as resolveCronRunLogPath, _ as MAX_PAYLOAD_BYTES, a as loadFavoritesSet, b as abortChatRunById, c as resolveAssistantIdentity, d as formatError, f as loadVoiceWakeConfig, g as MAX_BUFFERED_BYTES, h as HEALTH_REFRESH_INTERVAL_MS, i as safeParseJson, l as listSystemPresence, m as DEDUPE_TTL_MS, n as handleGatewayRequest, o as reconcileFavorites, p as DEDUPE_MAX, r as broadcastPresenceSnapshot, s as DEFAULT_ASSISTANT_IDENTITY, t as coreGatewayHandlers, u as upsertPresence, v as TICK_INTERVAL_MS, x as appendCronRunLog, y as getHandshakeTimeoutMs } from "./server-methods-Bdz-OwQ4.js";
|
|
128
|
+
import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-D4iLNyBo.js";
|
|
129
129
|
import { T as resolveGmailHookRuntimeConfig, _ as buildGogWatchServeArgs, i as ensureTailscaleEndpoint, v as buildGogWatchStartArgs } from "./gmail-setup-utils-BYBwPfuu.js";
|
|
130
|
-
import { a as getCliSessionId, o as setCliSessionId, s as runCliAgent, t as agentCommand } from "./agent-
|
|
130
|
+
import { a as getCliSessionId, o as setCliSessionId, s as runCliAgent, t as agentCommand } from "./agent-TRt_SsAW.js";
|
|
131
131
|
import { s as loadAgentIdentityFromWorkspace } from "./agents.config-CqfMQEiy.js";
|
|
132
132
|
import "./dm-policy-shared-BtrdvOIT.js";
|
|
133
133
|
import "./node-service-CZlyWmxa.js";
|
|
@@ -12046,7 +12046,7 @@ async function startGatewayServer(port = 18789, opts = {}) {
|
|
|
12046
12046
|
});
|
|
12047
12047
|
let glassUiBridgeCleanup = null;
|
|
12048
12048
|
if (!minimalTestGateway) {
|
|
12049
|
-
const { createGlassUiBridge } = await import("./glass-ui-ws-
|
|
12049
|
+
const { createGlassUiBridge } = await import("./glass-ui-ws-BK5qk7-_.js");
|
|
12050
12050
|
glassUiBridgeCleanup = createGlassUiBridge({
|
|
12051
12051
|
wss: glassUiWss,
|
|
12052
12052
|
context: gatewayRequestContext,
|
|
@@ -17,7 +17,7 @@ import "./client-BOd5o3Kp.js";
|
|
|
17
17
|
import "./call-DTshgdlW.js";
|
|
18
18
|
import "./message-channel-DXToSaWK.js";
|
|
19
19
|
import "./pairing-token-B-OTYROz.js";
|
|
20
|
-
import { M as resolveModelProfile } from "./subagent-registry-
|
|
20
|
+
import { M as resolveModelProfile } from "./subagent-registry-D8BIWG9Q.js";
|
|
21
21
|
import "./sessions-Dn6VXn4p.js";
|
|
22
22
|
import "./plugins-BsEhWvLn.js";
|
|
23
23
|
import "./send-Dq252-bi.js";
|
|
@@ -47,8 +47,8 @@ import "./model-auth-Byr7Gic_.js";
|
|
|
47
47
|
import "./github-copilot-token-B5y4__YM.js";
|
|
48
48
|
import "./models-config-CiR_RUxw.js";
|
|
49
49
|
import "./reply-prefix-DV3KhOhL.js";
|
|
50
|
-
import "./memory-
|
|
51
|
-
import "./manager-
|
|
50
|
+
import "./memory-CTf9MdBg.js";
|
|
51
|
+
import "./manager-XfNxjaX5.js";
|
|
52
52
|
import "./sqlite-9jF_eajd.js";
|
|
53
53
|
import "./chunk-B2lBXhR0.js";
|
|
54
54
|
import "./markdown-tables-BEdkErjm.js";
|
|
@@ -79,7 +79,7 @@ import "./links-Dnmd-RS-.js";
|
|
|
79
79
|
import "./cli-utils-DXfA5936.js";
|
|
80
80
|
import "./help-format-Dbp8yEhl.js";
|
|
81
81
|
import "./progress-CI19Xh3z.js";
|
|
82
|
-
import "./memory-cli-
|
|
82
|
+
import "./memory-cli-CA5PbH9y.js";
|
|
83
83
|
import "./logging-UO6tk8Em.js";
|
|
84
84
|
import "./replies-CLREUzzB.js";
|
|
85
85
|
import "./pi-tools.policy-06k__URR.js";
|
|
@@ -95,14 +95,14 @@ import "./service-DYpU1ajf.js";
|
|
|
95
95
|
import "./diagnostics-D2oNwzue.js";
|
|
96
96
|
import "./table-D0JXlEhQ.js";
|
|
97
97
|
import "./audit-DyncRBKq.js";
|
|
98
|
-
import "./status-
|
|
98
|
+
import "./status-D_0593yR.js";
|
|
99
99
|
import "./health-Dkwuq8ta.js";
|
|
100
100
|
import "./outbound-send-deps-BCyarBRf.js";
|
|
101
101
|
import "./control-ui-assets-Dnz69KRU.js";
|
|
102
102
|
import "./update-check-DLOnLuop.js";
|
|
103
|
-
import { n as handleGatewayRequest } from "./server-methods-
|
|
104
|
-
import "./push-apns-
|
|
105
|
-
import "./agent-
|
|
103
|
+
import { n as handleGatewayRequest } from "./server-methods-Bdz-OwQ4.js";
|
|
104
|
+
import "./push-apns-D4iLNyBo.js";
|
|
105
|
+
import "./agent-TRt_SsAW.js";
|
|
106
106
|
import "./agents.config-CqfMQEiy.js";
|
|
107
107
|
import "./dm-policy-shared-BtrdvOIT.js";
|
|
108
108
|
import "./node-service-CZlyWmxa.js";
|