@symerian/symi 3.5.32 → 3.5.34
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-BsRYHa15.js → agent-DkwJ_C7T.js} +1 -1
- package/dist/{agent-TRt_SsAW.js → agent-Dyqpglpp.js} +1 -1
- package/dist/{agents-7qMp2MWu.js → agents-CuwUmffQ.js} +2 -2
- package/dist/{auth-choice-DcB72YWZ.js → auth-choice-CbNJI71b.js} +1 -1
- package/dist/{auth-choice-C8lwYiEQ.js → auth-choice-Di2NnC96.js} +1 -1
- package/dist/{banner-B5Hv4rlk.js → banner-F6EJmEcS.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-DOzFci6h.js → channel-options-CLEZcALj.js} +1 -1
- package/dist/{channel-options-ZkruGuHl.js → channel-options-IVQWWWuc.js} +1 -1
- package/dist/{channels-cli-CEz9LILV.js → channels-cli-Bl17If5e.js} +7 -7
- package/dist/{channels-cli-DMShhX0d.js → channels-cli-D8d9ok3b.js} +7 -7
- package/dist/{chrome-DNssqQJs.js → chrome-3jl2ulOE.js} +7 -7
- package/dist/{cli-MDHkESMC.js → cli-BIoLyk88.js} +4 -4
- package/dist/{cli-Byovb_j5.js → cli-CbAnYkYs.js} +4 -4
- package/dist/{command-registry-Dzj-Uz5N.js → command-registry-C5LOUwKq.js} +10 -10
- package/dist/{completion-cli-vAwL_uEK.js → completion-cli-Dcc5-bYY.js} +2 -2
- package/dist/{completion-cli-CsJ2f_fk.js → completion-cli-DewJuifK.js} +1 -1
- package/dist/{config-cli-cmea_Z-A.js → config-cli-CMsbPGB3.js} +1 -1
- package/dist/{config-cli-CqqCDyf0.js → config-cli-DemkhbXj.js} +1 -1
- package/dist/{configure-DymrZd1n.js → configure-CW75YbiI.js} +2 -2
- package/dist/{configure-BEPKQuJj.js → configure-Dc5xcSyf.js} +2 -2
- package/dist/control-ui/css/style.css +162 -0
- package/dist/control-ui/js/symframe.js +135 -0
- package/dist/{deliver-q23ar_Pm.js → deliver-f3cIWxXT.js} +4 -4
- package/dist/{doctor-completion--phnyAqO.js → doctor-completion-BpVYwGK0.js} +1 -1
- package/dist/{doctor-completion-BY72G6-l.js → doctor-completion-DQmw1ojx.js} +1 -1
- package/dist/entry.js +1 -1
- package/dist/extensionAPI.js +4 -4
- package/dist/{gateway-cli-Bo80TSkq.js → gateway-cli-Dx6ulSWd.js} +10 -10
- package/dist/{gateway-cli-BVpyqk_H.js → gateway-cli-TdnIAl4W.js} +10 -10
- package/dist/{glass-ui-ws-CrmnRYxe.js → glass-ui-ws-BF5GGXNz.js} +8 -8
- package/dist/{glass-ui-ws-BK5qk7-_.js → glass-ui-ws-CZkskC04.js} +8 -8
- package/dist/{hooks-cli-CjklMDuK.js → hooks-cli-DFMpZI4k.js} +5 -5
- package/dist/{hooks-cli-CqmTdxT6.js → hooks-cli-Djw7WFoS.js} +5 -5
- package/dist/index.js +8 -8
- package/dist/llm-slug-generator.js +2 -2
- package/dist/{manager-DM2oPS8M.js → manager-BVgukgOu.js} +1 -1
- package/dist/{manager-NDn8AFhr.js → manager-CAdF4u2G.js} +1 -1
- package/dist/{manager-XfNxjaX5.js → manager-DSXvXUZQ.js} +1 -1
- package/dist/{manager-CL767Sv9.js → manager-Dw6j9KTZ.js} +1 -1
- package/dist/{memory-CTf9MdBg.js → memory-7DZfwFEz.js} +2 -2
- package/dist/{memory-DOl2l2AS.js → memory-CuBkKhKM.js} +2 -2
- package/dist/{memory-cli-B9_Vfaow.js → memory-cli-C8h9g8yO.js} +2 -2
- package/dist/{memory-cli-CA5PbH9y.js → memory-cli-CGqqpDlw.js} +2 -2
- package/dist/{models-DgiBOeVH.js → models-CLJSIS8A.js} +2 -2
- package/dist/{models-cli-B7gTrlgn.js → models-cli-CbG4PAoP.js} +5 -5
- package/dist/{models-cli-BHN3bt0f.js → models-cli-D9bmuwoB.js} +6 -6
- package/dist/{onboard-DGp6mHJD.js → onboard-BY-QnWdl.js} +1 -1
- package/dist/{onboard-BNdKimpG.js → onboard-BdPqyQmJ.js} +1 -1
- package/dist/{onboard-channels-Dhb-28-_.js → onboard-channels-Bzi2ck6V.js} +1 -1
- package/dist/{onboard-channels-DSBWRjSp.js → onboard-channels-C8bsROUq.js} +1 -1
- package/dist/{onboarding-BG23DuS1.js → onboarding-Ccnav61g.js} +3 -3
- package/dist/{onboarding-MPSU9pXd.js → onboarding-Hbt4RoTz.js} +3 -3
- package/dist/{onboarding.finalize-Cv20GyNt.js → onboarding.finalize--xJkztAR.js} +3 -3
- package/dist/{onboarding.finalize-B-mxzJ08.js → onboarding.finalize-OpyyTxY1.js} +4 -4
- package/dist/{pi-embedded-V-5MAZNb.js → pi-embedded-RgjY3r6K.js} +92 -10
- package/dist/{plugin-registry-c3Skr0q9.js → plugin-registry-B_NJFVHQ.js} +1 -1
- package/dist/{plugin-registry-CBV_Y6Dj.js → plugin-registry-X13tkCTS.js} +1 -1
- package/dist/plugin-sdk/index.js +6 -6
- package/dist/{plugins-cli-8Jo1X8SU.js → plugins-cli-C4bJxBRh.js} +5 -5
- package/dist/{plugins-cli-Dl7-FSCq.js → plugins-cli-DtdwfV-d.js} +5 -5
- package/dist/{program-context-BpeLcVUB.js → program-context-YblB1bz7.js} +18 -18
- package/dist/{program-D-LYHEvk.js → program-qzq3Lh15.js} +10 -10
- package/dist/{prompt-select-styled-ZWxB2Odf.js → prompt-select-styled-B_ial7p9.js} +4 -4
- package/dist/{prompt-select-styled-Ceih9wkY.js → prompt-select-styled-CQDea8e4.js} +4 -4
- package/dist/{provider-auth-helpers-BdvW7eau.js → provider-auth-helpers-BcP3qXzm.js} +1 -1
- package/dist/{provider-auth-helpers-BCejcf5o.js → provider-auth-helpers-BjVtTJHF.js} +1 -1
- package/dist/{push-apns-D4iLNyBo.js → push-apns-BWhqnXlG.js} +1 -1
- package/dist/{push-apns-HQd5hCpM.js → push-apns-D5FHZT1S.js} +1 -1
- package/dist/{pw-ai-v__CyAlM.js → pw-ai-DOAsQ5NX.js} +1 -1
- package/dist/{register.agent-DoUbqZIu.js → register.agent-BDw4ZFQo.js} +9 -9
- package/dist/{register.agent-zwVEiCHs.js → register.agent-DBb8ssU_.js} +8 -8
- package/dist/{register.configure-jBKvvOnk.js → register.configure-ClTC_gFo.js} +8 -8
- package/dist/{register.configure-CSe8Rlda.js → register.configure-DwN6_ucd.js} +8 -8
- package/dist/{register.maintenance-BdikNAV1.js → register.maintenance-C4EBdIW-.js} +9 -9
- package/dist/{register.maintenance-royLmVA2.js → register.maintenance-J8-7UEyc.js} +8 -8
- package/dist/{register.message-C_0uLdYn.js → register.message-CBkdglWp.js} +5 -5
- package/dist/{register.message-C1H5Vcnb.js → register.message-DkhnvbOo.js} +5 -5
- package/dist/{register.onboard-DTLtb0SN.js → register.onboard-B62sO2YM.js} +2 -2
- package/dist/{register.onboard-DnMRUtnl.js → register.onboard-BTM1uWDL.js} +2 -2
- package/dist/{register.setup-KA8Cs3HJ.js → register.setup-C7ai_6EG.js} +2 -2
- package/dist/{register.setup-B9sjRH7l.js → register.setup-X1z8nL1f.js} +2 -2
- package/dist/{register.status-health-sessions-BwiKHLEj.js → register.status-health-sessions-PBqHdGtS.js} +3 -3
- package/dist/{register.status-health-sessions-B_jcsH3c.js → register.status-health-sessions-oi4VY1yI.js} +3 -3
- package/dist/{register.subclis-B_V8vNI0.js → register.subclis-C1nbYmb-.js} +9 -9
- package/dist/{run-main-DhgQtxI0.js → run-main-Dcnq5F34.js} +17 -17
- package/dist/{server-methods-Bdz-OwQ4.js → server-methods-B8BrOzmI.js} +7 -7
- package/dist/{server-methods-6-10RyMD.js → server-methods-Cb-Z7rAJ.js} +7 -7
- package/dist/{server-node-events-C4giIb7q.js → server-node-events-BHcTrVe6.js} +6 -6
- package/dist/{server-node-events-B3Yey3h9.js → server-node-events-DnbQWd7e.js} +6 -6
- package/dist/{status-BRUIJsUm.js → status-CMnu_ZM8.js} +1 -1
- package/dist/{status-D_0593yR.js → status-DtfiqHU9.js} +1 -1
- package/dist/{status-B_CQpjQ9.js → status-KQBTdecN.js} +1 -1
- package/dist/{status-CCAO6ZHm.js → status-qu-13pDh.js} +1 -1
- package/dist/{subagent-registry-D8BIWG9Q.js → subagent-registry-BagjubTG.js} +85 -3
- package/dist/{synthesis-qvteT0Ti.js → synthesis-BFginQes.js} +4 -4
- package/dist/{synthesis-BfVWACNx.js → synthesis-CNxkpSl0.js} +4 -4
- package/dist/{synthesis-CV94EuT_.js → synthesis-CjbRZN2u.js} +4 -4
- package/dist/{synthesis-Bfhs-a4F.js → synthesis-CzEJh0zD.js} +2 -2
- package/dist/{unified-runner-C7BRCFJF.js → unified-runner-B2uJpfUK.js} +85 -3
- package/dist/{unified-runner-CtSJoaGS.js → unified-runner-BoNa4zCp.js} +85 -3
- package/dist/{update-cli-CUos9qgT.js → update-cli-D6uHO0yM.js} +9 -9
- package/dist/{update-cli-BrryYmFA.js → update-cli-Dj7wVif6.js} +8 -8
- package/extensions/memory-core/package.json +1 -1
- package/extensions/msteams/CHANGELOG.md +12 -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
|
@@ -2333,6 +2333,168 @@ body {
|
|
|
2333
2333
|
background: rgba(0, 212, 255, 0.06);
|
|
2334
2334
|
}
|
|
2335
2335
|
|
|
2336
|
+
/* ── Stage F.1: Tool-call cards ────────────────────────────────────────
|
|
2337
|
+
Compact card surfacing what tool the agent is firing right now. Tool
|
|
2338
|
+
name lives in the header (monospace, uppercased). The body slot shows
|
|
2339
|
+
the args meta on top + a status row (dot + duration/state) below.
|
|
2340
|
+
|
|
2341
|
+
Status dot:
|
|
2342
|
+
firing → cyan pulse (animation infinite)
|
|
2343
|
+
done → green solid
|
|
2344
|
+
error → pink solid
|
|
2345
|
+
The pulse animation is named symframe-tool-firing to avoid clashing
|
|
2346
|
+
with the substrate's intent-producing-pulse.
|
|
2347
|
+
*/
|
|
2348
|
+
.symframe-card[data-card-type="tool"] {
|
|
2349
|
+
padding: var(--sf-pad-md) var(--sf-pad-lg);
|
|
2350
|
+
}
|
|
2351
|
+
.symframe-card[data-card-type="tool"] .symframe-card-header {
|
|
2352
|
+
font-family: var(--font-mono);
|
|
2353
|
+
font-size: var(--sf-text-sm);
|
|
2354
|
+
letter-spacing: 0.06em;
|
|
2355
|
+
text-transform: lowercase;
|
|
2356
|
+
}
|
|
2357
|
+
.symframe-body-tool {
|
|
2358
|
+
display: flex;
|
|
2359
|
+
flex-direction: column;
|
|
2360
|
+
gap: var(--sf-pad-xs);
|
|
2361
|
+
font-family: var(--font-mono);
|
|
2362
|
+
font-size: var(--sf-text-xs);
|
|
2363
|
+
}
|
|
2364
|
+
.symframe-tool-meta {
|
|
2365
|
+
color: var(--text-dim);
|
|
2366
|
+
letter-spacing: 0.02em;
|
|
2367
|
+
word-break: break-all;
|
|
2368
|
+
/* Clip to 2 lines so long shell commands / paths don't push the card huge */
|
|
2369
|
+
display: -webkit-box;
|
|
2370
|
+
-webkit-line-clamp: 2;
|
|
2371
|
+
line-clamp: 2;
|
|
2372
|
+
-webkit-box-orient: vertical;
|
|
2373
|
+
overflow: hidden;
|
|
2374
|
+
}
|
|
2375
|
+
.symframe-tool-status-row {
|
|
2376
|
+
display: flex;
|
|
2377
|
+
align-items: center;
|
|
2378
|
+
gap: var(--sf-pad-sm);
|
|
2379
|
+
font-size: var(--sf-text-xs);
|
|
2380
|
+
color: var(--text-dim);
|
|
2381
|
+
opacity: 0.85;
|
|
2382
|
+
}
|
|
2383
|
+
.symframe-tool-status-dot {
|
|
2384
|
+
width: var(--sf-pad-md);
|
|
2385
|
+
height: var(--sf-pad-md);
|
|
2386
|
+
border-radius: var(--sf-radius-pill);
|
|
2387
|
+
background: var(--sf-cyan-flash);
|
|
2388
|
+
box-shadow: 0 0 4px var(--sf-cyan-pulse);
|
|
2389
|
+
}
|
|
2390
|
+
.symframe-body-tool[data-tool-status="firing"] .symframe-tool-status-dot {
|
|
2391
|
+
animation: symframe-tool-firing var(--sf-time-pulse) ease-in-out infinite;
|
|
2392
|
+
}
|
|
2393
|
+
.symframe-body-tool[data-tool-status="done"] .symframe-tool-status-dot {
|
|
2394
|
+
background: var(--sf-green-peak);
|
|
2395
|
+
box-shadow: 0 0 4px var(--sf-green-strong);
|
|
2396
|
+
}
|
|
2397
|
+
.symframe-body-tool[data-tool-status="error"] .symframe-tool-status-dot {
|
|
2398
|
+
background: var(--sf-pink-text);
|
|
2399
|
+
box-shadow: 0 0 4px var(--sf-pink-strong);
|
|
2400
|
+
}
|
|
2401
|
+
.symframe-body-tool[data-tool-status="done"] .symframe-tool-status-text,
|
|
2402
|
+
.symframe-body-tool[data-tool-status="error"] .symframe-tool-status-text {
|
|
2403
|
+
color: var(--text-bright);
|
|
2404
|
+
}
|
|
2405
|
+
@keyframes symframe-tool-firing {
|
|
2406
|
+
0%,
|
|
2407
|
+
100% {
|
|
2408
|
+
opacity: 0.4;
|
|
2409
|
+
transform: scale(0.85);
|
|
2410
|
+
}
|
|
2411
|
+
50% {
|
|
2412
|
+
opacity: 1;
|
|
2413
|
+
transform: scale(1);
|
|
2414
|
+
}
|
|
2415
|
+
}
|
|
2416
|
+
@media (prefers-reduced-motion: reduce) {
|
|
2417
|
+
.symframe-body-tool[data-tool-status="firing"] .symframe-tool-status-dot {
|
|
2418
|
+
animation: none;
|
|
2419
|
+
opacity: 0.7;
|
|
2420
|
+
}
|
|
2421
|
+
}
|
|
2422
|
+
|
|
2423
|
+
/* ── Stage F.2: Memory cards ───────────────────────────────────────────
|
|
2424
|
+
Surfaces which memory entries are influencing the current response.
|
|
2425
|
+
Uses intent="holding" (cyan stripe — working memory) but overrides
|
|
2426
|
+
the corner ribbon to read "RECALL" instead of "HOLDING" so the user
|
|
2427
|
+
knows this is a retrieved memory, not a generic working-memory card.
|
|
2428
|
+
|
|
2429
|
+
Each memory has a type badge (user/feedback/project/reference) that
|
|
2430
|
+
color-codes the badge chip to match the intent palette already
|
|
2431
|
+
established by Stage D.1.
|
|
2432
|
+
*/
|
|
2433
|
+
.symframe-card[data-card-type="memory"][data-intent="holding"]::before {
|
|
2434
|
+
content: "recall";
|
|
2435
|
+
}
|
|
2436
|
+
.symframe-card[data-card-type="memory"] .symframe-card-header {
|
|
2437
|
+
font-family: var(--font-mono);
|
|
2438
|
+
font-size: var(--sf-text-sm);
|
|
2439
|
+
letter-spacing: 0.04em;
|
|
2440
|
+
}
|
|
2441
|
+
.symframe-body-memory {
|
|
2442
|
+
display: flex;
|
|
2443
|
+
flex-direction: column;
|
|
2444
|
+
gap: var(--sf-pad-sm);
|
|
2445
|
+
font-family: var(--font-mono);
|
|
2446
|
+
font-size: var(--sf-text-xs);
|
|
2447
|
+
}
|
|
2448
|
+
.symframe-memory-type {
|
|
2449
|
+
align-self: flex-start;
|
|
2450
|
+
padding: var(--sf-pad-xs) var(--sf-pad-md);
|
|
2451
|
+
|
|
2452
|
+
border-radius: var(--sf-radius-xs);
|
|
2453
|
+
font-size: var(--sf-text-xs);
|
|
2454
|
+
letter-spacing: 0.1em;
|
|
2455
|
+
text-transform: uppercase;
|
|
2456
|
+
font-weight: 700;
|
|
2457
|
+
background: var(--sf-cyan-veil);
|
|
2458
|
+
color: var(--accent-cyan);
|
|
2459
|
+
border: 1px solid var(--sf-cyan-edge);
|
|
2460
|
+
}
|
|
2461
|
+
.symframe-body-memory[data-memory-type="user"] .symframe-memory-type {
|
|
2462
|
+
background: var(--sf-pink-tint);
|
|
2463
|
+
color: var(--sf-pink-text);
|
|
2464
|
+
border-color: var(--sf-pink-edge);
|
|
2465
|
+
}
|
|
2466
|
+
.symframe-body-memory[data-memory-type="feedback"] .symframe-memory-type {
|
|
2467
|
+
background: var(--sf-amber-tint);
|
|
2468
|
+
color: #f5b73a;
|
|
2469
|
+
border-color: var(--sf-amber-edge);
|
|
2470
|
+
}
|
|
2471
|
+
.symframe-body-memory[data-memory-type="project"] .symframe-memory-type {
|
|
2472
|
+
background: var(--sf-green-tint);
|
|
2473
|
+
color: var(--sf-green-strong);
|
|
2474
|
+
border-color: var(--sf-green-edge);
|
|
2475
|
+
}
|
|
2476
|
+
.symframe-body-memory[data-memory-type="reference"] .symframe-memory-type {
|
|
2477
|
+
background: var(--sf-violet-tint);
|
|
2478
|
+
color: #8b5cf6;
|
|
2479
|
+
border-color: var(--sf-violet-edge);
|
|
2480
|
+
}
|
|
2481
|
+
.symframe-memory-description {
|
|
2482
|
+
color: var(--text);
|
|
2483
|
+
line-height: 1.4;
|
|
2484
|
+
/* Clamp to 3 lines so a long description doesn't dominate */
|
|
2485
|
+
display: -webkit-box;
|
|
2486
|
+
-webkit-line-clamp: 3;
|
|
2487
|
+
line-clamp: 3;
|
|
2488
|
+
-webkit-box-orient: vertical;
|
|
2489
|
+
overflow: hidden;
|
|
2490
|
+
}
|
|
2491
|
+
.symframe-memory-path {
|
|
2492
|
+
color: var(--text-dim);
|
|
2493
|
+
font-size: var(--sf-text-xs);
|
|
2494
|
+
opacity: 0.65;
|
|
2495
|
+
word-break: break-all;
|
|
2496
|
+
}
|
|
2497
|
+
|
|
2336
2498
|
/* ── Response Area ────────────────────────────────────────────────── */
|
|
2337
2499
|
.response-area {
|
|
2338
2500
|
position: fixed;
|
|
@@ -242,6 +242,85 @@
|
|
|
242
242
|
return a;
|
|
243
243
|
}
|
|
244
244
|
|
|
245
|
+
// Stage F.1 (3.5.33): tool-call cards. Compact card surfacing what the
|
|
246
|
+
// agent is doing in real time — tool name + args meta + status + duration.
|
|
247
|
+
// Pushed by the server-side tool execution start/end hooks; auto-released
|
|
248
|
+
// 3s after completion via the releaseAfterMs field honored by add().
|
|
249
|
+
function renderToolBody(card) {
|
|
250
|
+
const wrap = document.createElement("div");
|
|
251
|
+
wrap.className = "symframe-body-tool";
|
|
252
|
+
wrap.dataset.toolStatus = card.toolStatus || "firing";
|
|
253
|
+
|
|
254
|
+
if (card.toolMeta) {
|
|
255
|
+
const meta = document.createElement("div");
|
|
256
|
+
meta.className = "symframe-tool-meta";
|
|
257
|
+
meta.textContent = card.toolMeta;
|
|
258
|
+
wrap.appendChild(meta);
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
const statusRow = document.createElement("div");
|
|
262
|
+
statusRow.className = "symframe-tool-status-row";
|
|
263
|
+
const dot = document.createElement("span");
|
|
264
|
+
dot.className = "symframe-tool-status-dot";
|
|
265
|
+
statusRow.appendChild(dot);
|
|
266
|
+
const statusText = document.createElement("span");
|
|
267
|
+
statusText.className = "symframe-tool-status-text";
|
|
268
|
+
if (card.toolStatus === "done") {
|
|
269
|
+
statusText.textContent = formatDuration(card.toolDurationMs);
|
|
270
|
+
} else if (card.toolStatus === "error") {
|
|
271
|
+
statusText.textContent = `error · ${formatDuration(card.toolDurationMs)}`;
|
|
272
|
+
} else {
|
|
273
|
+
statusText.textContent = "running";
|
|
274
|
+
}
|
|
275
|
+
statusRow.appendChild(statusText);
|
|
276
|
+
wrap.appendChild(statusRow);
|
|
277
|
+
|
|
278
|
+
return wrap;
|
|
279
|
+
}
|
|
280
|
+
|
|
281
|
+
function formatDuration(ms) {
|
|
282
|
+
if (ms == null) {
|
|
283
|
+
return "";
|
|
284
|
+
}
|
|
285
|
+
if (ms < 1000) {
|
|
286
|
+
return `${ms}ms`;
|
|
287
|
+
}
|
|
288
|
+
return `${(ms / 1000).toFixed(1)}s`;
|
|
289
|
+
}
|
|
290
|
+
|
|
291
|
+
// Stage F.2 (3.5.34): memory cards. Surface which memory entries are
|
|
292
|
+
// shaping the current turn — pushed by the auto-recall path when memory
|
|
293
|
+
// search retrieves snippets at prompt-build time. Releases ~60s later
|
|
294
|
+
// so the user sees what informed the response while it streams.
|
|
295
|
+
function renderMemoryBody(card) {
|
|
296
|
+
const wrap = document.createElement("div");
|
|
297
|
+
wrap.className = "symframe-body-memory";
|
|
298
|
+
wrap.dataset.memoryType = card.memoryType || "memory";
|
|
299
|
+
|
|
300
|
+
if (card.memoryType) {
|
|
301
|
+
const badge = document.createElement("span");
|
|
302
|
+
badge.className = "symframe-memory-type";
|
|
303
|
+
badge.textContent = card.memoryType;
|
|
304
|
+
wrap.appendChild(badge);
|
|
305
|
+
}
|
|
306
|
+
|
|
307
|
+
if (card.memoryDescription) {
|
|
308
|
+
const desc = document.createElement("div");
|
|
309
|
+
desc.className = "symframe-memory-description";
|
|
310
|
+
desc.textContent = card.memoryDescription;
|
|
311
|
+
wrap.appendChild(desc);
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
if (card.memoryPath) {
|
|
315
|
+
const path = document.createElement("div");
|
|
316
|
+
path.className = "symframe-memory-path";
|
|
317
|
+
path.textContent = card.memoryPath;
|
|
318
|
+
wrap.appendChild(path);
|
|
319
|
+
}
|
|
320
|
+
|
|
321
|
+
return wrap;
|
|
322
|
+
}
|
|
323
|
+
|
|
245
324
|
const renderers = {
|
|
246
325
|
text: renderTextBody,
|
|
247
326
|
markdown: renderMarkdownBody,
|
|
@@ -250,6 +329,8 @@
|
|
|
250
329
|
pdf: renderPdfBody,
|
|
251
330
|
audio: renderAudioBody,
|
|
252
331
|
video: renderVideoBody,
|
|
332
|
+
tool: renderToolBody,
|
|
333
|
+
memory: renderMemoryBody,
|
|
253
334
|
};
|
|
254
335
|
|
|
255
336
|
function renderBodyForType(card) {
|
|
@@ -271,6 +352,14 @@
|
|
|
271
352
|
if (card.email && typeof card.email === "object") {
|
|
272
353
|
return true;
|
|
273
354
|
}
|
|
355
|
+
// Stage F.1: tool cards carry their data in dedicated fields, not body
|
|
356
|
+
if (card.type === "tool" && (card.toolMeta || card.toolStatus)) {
|
|
357
|
+
return true;
|
|
358
|
+
}
|
|
359
|
+
// Stage F.2: memory cards carry their data in dedicated fields, not body
|
|
360
|
+
if (card.type === "memory" && (card.memoryDescription || card.memoryPath)) {
|
|
361
|
+
return true;
|
|
362
|
+
}
|
|
274
363
|
return false;
|
|
275
364
|
}
|
|
276
365
|
|
|
@@ -486,6 +575,37 @@
|
|
|
486
575
|
return entry;
|
|
487
576
|
}
|
|
488
577
|
|
|
578
|
+
// Stage F.1: per-card auto-release timers keyed by card id. Honored by
|
|
579
|
+
// add() and update() when the card carries releaseAfterMs.
|
|
580
|
+
const releaseTimers = new Map();
|
|
581
|
+
|
|
582
|
+
function scheduleAutoRelease(id, releaseAfterMs) {
|
|
583
|
+
if (!Number.isFinite(releaseAfterMs) || releaseAfterMs <= 0) {
|
|
584
|
+
return;
|
|
585
|
+
}
|
|
586
|
+
const prev = releaseTimers.get(id);
|
|
587
|
+
if (prev) {
|
|
588
|
+
clearTimeout(prev);
|
|
589
|
+
}
|
|
590
|
+
const timer = setTimeout(() => {
|
|
591
|
+
releaseTimers.delete(id);
|
|
592
|
+
try {
|
|
593
|
+
release(id);
|
|
594
|
+
} catch (err) {
|
|
595
|
+
console.warn("[symframe] auto-release failed:", id, err);
|
|
596
|
+
}
|
|
597
|
+
}, releaseAfterMs);
|
|
598
|
+
releaseTimers.set(id, timer);
|
|
599
|
+
}
|
|
600
|
+
|
|
601
|
+
function cancelAutoRelease(id) {
|
|
602
|
+
const timer = releaseTimers.get(id);
|
|
603
|
+
if (timer) {
|
|
604
|
+
clearTimeout(timer);
|
|
605
|
+
releaseTimers.delete(id);
|
|
606
|
+
}
|
|
607
|
+
}
|
|
608
|
+
|
|
489
609
|
/**
|
|
490
610
|
* Add a new dynamic card. Renders into the container, prepended for
|
|
491
611
|
* ephemeral cards or appended for sticky cards.
|
|
@@ -514,6 +634,10 @@
|
|
|
514
634
|
if (modeState.current === "focus" && modeState.focusedId === id) {
|
|
515
635
|
el.classList.add("symframe-card-focused");
|
|
516
636
|
}
|
|
637
|
+
// Stage F.1: honor releaseAfterMs from the card payload.
|
|
638
|
+
if (Number.isFinite(card?.releaseAfterMs) && card.releaseAfterMs > 0) {
|
|
639
|
+
scheduleAutoRelease(id, card.releaseAfterMs);
|
|
640
|
+
}
|
|
517
641
|
return entry;
|
|
518
642
|
}
|
|
519
643
|
|
|
@@ -559,6 +683,15 @@
|
|
|
559
683
|
if (modeState.current === "focus" && modeState.focusedId === id) {
|
|
560
684
|
newEl.classList.add("symframe-card-focused");
|
|
561
685
|
}
|
|
686
|
+
// Stage F.1: a patch may carry releaseAfterMs (e.g. tool result hook
|
|
687
|
+
// schedules a 3s release). Always cancel any prior timer first so an
|
|
688
|
+
// update can re-extend or cancel (releaseAfterMs: 0).
|
|
689
|
+
if (patch && Object.hasOwn(patch, "releaseAfterMs")) {
|
|
690
|
+
cancelAutoRelease(id);
|
|
691
|
+
if (Number.isFinite(patch.releaseAfterMs) && patch.releaseAfterMs > 0) {
|
|
692
|
+
scheduleAutoRelease(id, patch.releaseAfterMs);
|
|
693
|
+
}
|
|
694
|
+
}
|
|
562
695
|
return merged;
|
|
563
696
|
}
|
|
564
697
|
|
|
@@ -582,6 +715,7 @@
|
|
|
582
715
|
console.warn(`[symframe] remove: refusing to drop sticky card '${id}' without force=true`);
|
|
583
716
|
return false;
|
|
584
717
|
}
|
|
718
|
+
cancelAutoRelease(id);
|
|
585
719
|
if (entry.element && entry.element.parentElement === container) {
|
|
586
720
|
entry.element.remove();
|
|
587
721
|
}
|
|
@@ -743,6 +877,7 @@
|
|
|
743
877
|
console.warn(`[symframe] release: refusing sticky card '${id}' without force=true`);
|
|
744
878
|
return false;
|
|
745
879
|
}
|
|
880
|
+
cancelAutoRelease(id);
|
|
746
881
|
// Snapshot for recall (strip the live DOM element)
|
|
747
882
|
const snapshot = { ...entry };
|
|
748
883
|
delete snapshot.element;
|
|
@@ -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-3jl2ulOE.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-DOAsQ5NX.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-DOAsQ5NX.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-DOAsQ5NX.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-Dcc5-bYY.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-DewJuifK.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-Dcnq5F34.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-RgjY3r6K.js";
|
|
10
|
+
import { $ as loadSessionStore, nt as saveSessionStore } from "./deliver-f3cIWxXT.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-3jl2ulOE.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-CAdF4u2G.js";
|
|
27
27
|
import "./github-copilot-token-dYUr1mDQ.js";
|
|
28
28
|
import "./sqlite-D8iYC_CU.js";
|
|
29
29
|
import "./markdown-tables-jQzXAsf3.js";
|
|
@@ -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-BagjubTG.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-7DZfwFEz.js";
|
|
60
|
+
import { c as resolveMemorySearchConfig } from "./manager-DSXvXUZQ.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-CGqqpDlw.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-DtfiqHU9.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-Hbt4RoTz.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-B8BrOzmI.js";
|
|
128
|
+
import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-BWhqnXlG.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-Dyqpglpp.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-CZkskC04.js");
|
|
12050
12050
|
glassUiBridgeCleanup = createGlassUiBridge({
|
|
12051
12051
|
wss: glassUiWss,
|
|
12052
12052
|
context: gatewayRequestContext,
|
|
@@ -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-BoNa4zCp.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-CuBkKhKM.js";
|
|
62
|
+
import { c as resolveMemorySearchConfig } from "./manager-Dw6j9KTZ.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-C8h9g8yO.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-qu-13pDh.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-Ccnav61g.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-Cb-Z7rAJ.js";
|
|
133
|
+
import { d as shouldLogWs, f as summarizeAgentEventForWsLog, l as formatForLog, p as setGatewayWsLogStyle, u as logWs } from "./push-apns-D5FHZT1S.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-DkwJ_C7T.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-BF5GGXNz.js");
|
|
12055
12055
|
glassUiBridgeCleanup = createGlassUiBridge({
|
|
12056
12056
|
wss: glassUiWss,
|
|
12057
12057
|
context: gatewayRequestContext,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { Tn as resolveModelProfile } from "./unified-runner-
|
|
1
|
+
import { Tn as resolveModelProfile } from "./unified-runner-BoNa4zCp.js";
|
|
2
2
|
import "./registry-Sbac4a4z.js";
|
|
3
3
|
import "./paths-By0XjHBk.js";
|
|
4
4
|
import "./utils-CTPsqyE_.js";
|
|
@@ -50,8 +50,8 @@ import "./session-cost-usage-D3mgssM_.js";
|
|
|
50
50
|
import "./session-utils-Cs1jlD-q.js";
|
|
51
51
|
import "./with-timeout-DPR4A2dx.js";
|
|
52
52
|
import "./reply-prefix-BFNeXT65.js";
|
|
53
|
-
import "./memory-
|
|
54
|
-
import "./manager-
|
|
53
|
+
import "./memory-CuBkKhKM.js";
|
|
54
|
+
import "./manager-Dw6j9KTZ.js";
|
|
55
55
|
import "./sqlite-Cod7C5ba.js";
|
|
56
56
|
import "./chunk-BxfKjCUx.js";
|
|
57
57
|
import "./markdown-tables-CS1Tvb3z.js";
|
|
@@ -82,7 +82,7 @@ import "./links-Bqr0FxXx.js";
|
|
|
82
82
|
import "./cli-utils-CuyGL3rq.js";
|
|
83
83
|
import "./help-format-7hFcsqss.js";
|
|
84
84
|
import "./progress-swt2y17x.js";
|
|
85
|
-
import "./memory-cli-
|
|
85
|
+
import "./memory-cli-C8h9g8yO.js";
|
|
86
86
|
import "./logging-BWknayJl.js";
|
|
87
87
|
import "./replies-CbXXjn9X.js";
|
|
88
88
|
import "./pi-tools.policy-H2t-Xkfc.js";
|
|
@@ -101,13 +101,13 @@ import "./service-e6MzlLCd.js";
|
|
|
101
101
|
import "./diagnostics-DlZODdRf.js";
|
|
102
102
|
import "./table-0A3xKJVC.js";
|
|
103
103
|
import "./audit-C_3fAFeS.js";
|
|
104
|
-
import "./status-
|
|
104
|
+
import "./status-qu-13pDh.js";
|
|
105
105
|
import "./health-7UqIGG8U.js";
|
|
106
106
|
import "./control-ui-assets-CJQ97d4u.js";
|
|
107
107
|
import "./update-check-BCL_K7kx.js";
|
|
108
|
-
import { n as handleGatewayRequest } from "./server-methods-
|
|
109
|
-
import "./push-apns-
|
|
110
|
-
import "./agent-
|
|
108
|
+
import { n as handleGatewayRequest } from "./server-methods-Cb-Z7rAJ.js";
|
|
109
|
+
import "./push-apns-D5FHZT1S.js";
|
|
110
|
+
import "./agent-DkwJ_C7T.js";
|
|
111
111
|
import "./agents.config-B7sNDvhz.js";
|
|
112
112
|
import "./dm-policy-shared-CeFt0nch.js";
|
|
113
113
|
import "./node-service-BH08wY5j.js";
|