@symerian/symi 3.5.33 → 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.
Files changed (113) hide show
  1. package/dist/{agent-_8O2q22a.js → agent-DkwJ_C7T.js} +1 -1
  2. package/dist/{agent-Bt6Mg6tN.js → agent-Dyqpglpp.js} +1 -1
  3. package/dist/{agents-Vp-Z9p7d.js → agents-CuwUmffQ.js} +2 -2
  4. package/dist/{auth-choice-DKYz4IVA.js → auth-choice-CbNJI71b.js} +1 -1
  5. package/dist/{auth-choice-CGoOl1W1.js → auth-choice-Di2NnC96.js} +1 -1
  6. package/dist/{banner-CRWXer7O.js → banner-F6EJmEcS.js} +1 -1
  7. package/dist/build-info.json +3 -3
  8. package/dist/bundled/boot-md/handler.js +2 -2
  9. package/dist/bundled/session-memory/handler.js +2 -2
  10. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  11. package/dist/{channel-options-DCTxFF6Q.js → channel-options-CLEZcALj.js} +1 -1
  12. package/dist/{channel-options-CJybMNab.js → channel-options-IVQWWWuc.js} +1 -1
  13. package/dist/{channels-cli-DZt1Cvdz.js → channels-cli-Bl17If5e.js} +7 -7
  14. package/dist/{channels-cli-om139RPU.js → channels-cli-D8d9ok3b.js} +7 -7
  15. package/dist/{chrome-DNssqQJs.js → chrome-3jl2ulOE.js} +7 -7
  16. package/dist/{cli-Bv1nUo9u.js → cli-BIoLyk88.js} +4 -4
  17. package/dist/{cli-C2-eHINP.js → cli-CbAnYkYs.js} +4 -4
  18. package/dist/{command-registry-dhtbmE5H.js → command-registry-C5LOUwKq.js} +10 -10
  19. package/dist/{completion-cli-COi7vEYW.js → completion-cli-Dcc5-bYY.js} +2 -2
  20. package/dist/{completion-cli-Db4l70VM.js → completion-cli-DewJuifK.js} +1 -1
  21. package/dist/{config-cli-EA720djS.js → config-cli-CMsbPGB3.js} +1 -1
  22. package/dist/{config-cli-KZLy9MiQ.js → config-cli-DemkhbXj.js} +1 -1
  23. package/dist/{configure-DPlT_UCY.js → configure-CW75YbiI.js} +2 -2
  24. package/dist/{configure-iuJmiuup.js → configure-Dc5xcSyf.js} +2 -2
  25. package/dist/control-ui/css/style.css +75 -0
  26. package/dist/control-ui/js/symframe.js +38 -0
  27. package/dist/{deliver-q23ar_Pm.js → deliver-f3cIWxXT.js} +4 -4
  28. package/dist/{doctor-completion-DGqRy0Cz.js → doctor-completion-BpVYwGK0.js} +1 -1
  29. package/dist/{doctor-completion-CewCMEl2.js → doctor-completion-DQmw1ojx.js} +1 -1
  30. package/dist/entry.js +1 -1
  31. package/dist/extensionAPI.js +4 -4
  32. package/dist/{gateway-cli-CKfsJdhp.js → gateway-cli-Dx6ulSWd.js} +10 -10
  33. package/dist/{gateway-cli-DrGrF6Bs.js → gateway-cli-TdnIAl4W.js} +10 -10
  34. package/dist/{glass-ui-ws-pIUgjT7J.js → glass-ui-ws-BF5GGXNz.js} +8 -8
  35. package/dist/{glass-ui-ws-DdeGPN_x.js → glass-ui-ws-CZkskC04.js} +8 -8
  36. package/dist/{hooks-cli-N0huwTDb.js → hooks-cli-DFMpZI4k.js} +5 -5
  37. package/dist/{hooks-cli-CQI6K5RQ.js → hooks-cli-Djw7WFoS.js} +5 -5
  38. package/dist/index.js +8 -8
  39. package/dist/llm-slug-generator.js +2 -2
  40. package/dist/{manager-xUNV-43S.js → manager-BVgukgOu.js} +1 -1
  41. package/dist/{manager-DiD9uXmC.js → manager-CAdF4u2G.js} +1 -1
  42. package/dist/{manager-Cv0Qqs-i.js → manager-DSXvXUZQ.js} +1 -1
  43. package/dist/{manager-C1nI_dqb.js → manager-Dw6j9KTZ.js} +1 -1
  44. package/dist/{memory-D0mvqRoH.js → memory-7DZfwFEz.js} +2 -2
  45. package/dist/{memory-BPVD3vxj.js → memory-CuBkKhKM.js} +2 -2
  46. package/dist/{memory-cli-CHqD-NnN.js → memory-cli-C8h9g8yO.js} +2 -2
  47. package/dist/{memory-cli-0d49vHrN.js → memory-cli-CGqqpDlw.js} +2 -2
  48. package/dist/{models-DV9S_FIE.js → models-CLJSIS8A.js} +2 -2
  49. package/dist/{models-cli-BKvgQEeX.js → models-cli-CbG4PAoP.js} +5 -5
  50. package/dist/{models-cli-DMqrIAd-.js → models-cli-D9bmuwoB.js} +6 -6
  51. package/dist/{onboard-CHlG7cRV.js → onboard-BY-QnWdl.js} +1 -1
  52. package/dist/{onboard--gW_iFPC.js → onboard-BdPqyQmJ.js} +1 -1
  53. package/dist/{onboard-channels-f5axd972.js → onboard-channels-Bzi2ck6V.js} +1 -1
  54. package/dist/{onboard-channels-C2S5txWG.js → onboard-channels-C8bsROUq.js} +1 -1
  55. package/dist/{onboarding-CMZaGD0x.js → onboarding-Ccnav61g.js} +3 -3
  56. package/dist/{onboarding-BnEiVW9s.js → onboarding-Hbt4RoTz.js} +3 -3
  57. package/dist/{onboarding.finalize-BKADBjqn.js → onboarding.finalize--xJkztAR.js} +3 -3
  58. package/dist/{onboarding.finalize-Br7a9LAG.js → onboarding.finalize-OpyyTxY1.js} +4 -4
  59. package/dist/{pi-embedded-B9Dhow_H.js → pi-embedded-RgjY3r6K.js} +66 -10
  60. package/dist/{plugin-registry-0UStQ7W0.js → plugin-registry-B_NJFVHQ.js} +1 -1
  61. package/dist/{plugin-registry-DS4ST-Y2.js → plugin-registry-X13tkCTS.js} +1 -1
  62. package/dist/plugin-sdk/index.js +6 -6
  63. package/dist/{plugins-cli-er9ogmCp.js → plugins-cli-C4bJxBRh.js} +5 -5
  64. package/dist/{plugins-cli-DVTehGDF.js → plugins-cli-DtdwfV-d.js} +5 -5
  65. package/dist/{program-context-DdmFH7Cp.js → program-context-YblB1bz7.js} +18 -18
  66. package/dist/{program-D-0WYYlC.js → program-qzq3Lh15.js} +10 -10
  67. package/dist/{prompt-select-styled-vGccUKhR.js → prompt-select-styled-B_ial7p9.js} +4 -4
  68. package/dist/{prompt-select-styled-BM9wWyI-.js → prompt-select-styled-CQDea8e4.js} +4 -4
  69. package/dist/{provider-auth-helpers-Cqbaelri.js → provider-auth-helpers-BcP3qXzm.js} +1 -1
  70. package/dist/{provider-auth-helpers-BL9b1FfT.js → provider-auth-helpers-BjVtTJHF.js} +1 -1
  71. package/dist/{push-apns-BFn57H8S.js → push-apns-BWhqnXlG.js} +1 -1
  72. package/dist/{push-apns-DOFxmS8_.js → push-apns-D5FHZT1S.js} +1 -1
  73. package/dist/{pw-ai-v__CyAlM.js → pw-ai-DOAsQ5NX.js} +1 -1
  74. package/dist/{register.agent-B2IHb1wt.js → register.agent-BDw4ZFQo.js} +9 -9
  75. package/dist/{register.agent-CyoF3uiI.js → register.agent-DBb8ssU_.js} +8 -8
  76. package/dist/{register.configure-CyjtBFqz.js → register.configure-ClTC_gFo.js} +8 -8
  77. package/dist/{register.configure-Bmj3lkgi.js → register.configure-DwN6_ucd.js} +8 -8
  78. package/dist/{register.maintenance-D0crO8FC.js → register.maintenance-C4EBdIW-.js} +9 -9
  79. package/dist/{register.maintenance-BdJMnGR5.js → register.maintenance-J8-7UEyc.js} +8 -8
  80. package/dist/{register.message-BSie6t4a.js → register.message-CBkdglWp.js} +5 -5
  81. package/dist/{register.message-DHZmSrnW.js → register.message-DkhnvbOo.js} +5 -5
  82. package/dist/{register.onboard-CH-qxgyo.js → register.onboard-B62sO2YM.js} +2 -2
  83. package/dist/{register.onboard-CCZI7O-C.js → register.onboard-BTM1uWDL.js} +2 -2
  84. package/dist/{register.setup-CoxrZJWQ.js → register.setup-C7ai_6EG.js} +2 -2
  85. package/dist/{register.setup-CJhL35sR.js → register.setup-X1z8nL1f.js} +2 -2
  86. package/dist/{register.status-health-sessions-DM5hIwtm.js → register.status-health-sessions-PBqHdGtS.js} +3 -3
  87. package/dist/{register.status-health-sessions-DwbUXRBk.js → register.status-health-sessions-oi4VY1yI.js} +3 -3
  88. package/dist/{register.subclis-VsMMpQQN.js → register.subclis-C1nbYmb-.js} +9 -9
  89. package/dist/{run-main-DUWpRI1w.js → run-main-Dcnq5F34.js} +17 -17
  90. package/dist/{server-methods-Bb9tFpUg.js → server-methods-B8BrOzmI.js} +7 -7
  91. package/dist/{server-methods-Ks6EkY9L.js → server-methods-Cb-Z7rAJ.js} +7 -7
  92. package/dist/{server-node-events-CSbKHyjJ.js → server-node-events-BHcTrVe6.js} +6 -6
  93. package/dist/{server-node-events-CMww2xmX.js → server-node-events-DnbQWd7e.js} +6 -6
  94. package/dist/{status-BJ3X3PxD.js → status-CMnu_ZM8.js} +1 -1
  95. package/dist/{status-BD_s-wIt.js → status-DtfiqHU9.js} +1 -1
  96. package/dist/{status-BUGRo8kk.js → status-KQBTdecN.js} +1 -1
  97. package/dist/{status-9ot0bcuW.js → status-qu-13pDh.js} +1 -1
  98. package/dist/{subagent-registry-BDj_vbwB.js → subagent-registry-BagjubTG.js} +59 -3
  99. package/dist/{synthesis-B1T3Vj63.js → synthesis-BFginQes.js} +4 -4
  100. package/dist/{synthesis-dXo-gmWS.js → synthesis-CNxkpSl0.js} +4 -4
  101. package/dist/{synthesis-DffSaiSK.js → synthesis-CjbRZN2u.js} +4 -4
  102. package/dist/{synthesis-CnAORBtf.js → synthesis-CzEJh0zD.js} +2 -2
  103. package/dist/{unified-runner-Cz7iBOgg.js → unified-runner-B2uJpfUK.js} +59 -3
  104. package/dist/{unified-runner-Bcapans4.js → unified-runner-BoNa4zCp.js} +59 -3
  105. package/dist/{update-cli-CppPa_Bz.js → update-cli-D6uHO0yM.js} +9 -9
  106. package/dist/{update-cli-CMqYGsDK.js → update-cli-Dj7wVif6.js} +8 -8
  107. package/extensions/memory-core/package.json +1 -1
  108. package/extensions/msteams/CHANGELOG.md +6 -0
  109. package/extensions/msteams/package.json +1 -1
  110. package/extensions/open-prose/package.json +1 -1
  111. package/extensions/outlook/package.json +1 -1
  112. package/extensions/slack/package.json +1 -1
  113. package/package.json +1 -1
@@ -49,8 +49,8 @@ import { a as normalizeElevatedLevel, c as normalizeUsageDisplay, d as supportsX
49
49
  import { i as resolveApiKeyForProvider, n as getCustomProviderApiKey, o as resolveEnvApiKey, r as requireApiKey, s as resolveModelAuthMode, t as getApiKeyForModel } from "./model-auth-Byr7Gic_.js";
50
50
  import { b as OLLAMA_NATIVE_BASE_URL, c as normalizeGoogleModelId, t as ensureSymiModelsJson, x as createOllamaStreamFn } from "./models-config-CiR_RUxw.js";
51
51
  import { i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-DV3KhOhL.js";
52
- import { n as resolveMemoryBackendConfig, t as getMemorySearchManager } from "./memory-D0mvqRoH.js";
53
- import { a as parseGeminiAuth, c as resolveMemorySearchConfig, n as retryAsync, o as collectProviderApiKeysForExecution, s as executeWithApiKeyRotation } from "./manager-Cv0Qqs-i.js";
52
+ import { n as resolveMemoryBackendConfig, t as getMemorySearchManager } from "./memory-7DZfwFEz.js";
53
+ import { a as parseGeminiAuth, c as resolveMemorySearchConfig, n as retryAsync, o as collectProviderApiKeysForExecution, s as executeWithApiKeyRotation } from "./manager-DSXvXUZQ.js";
54
54
  import { f as runTasksWithConcurrency } from "./internal-D3mEiuyB.js";
55
55
  import { a as chunkText, c as resolveChunkMode, d as isSafeFenceBreak, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, o as chunkTextWithMode, r as chunkMarkdownText, t as chunkByNewline, u as findFenceSpanAt } from "./chunk-B2lBXhR0.js";
56
56
  import { n as resolveMarkdownTableMode } from "./markdown-tables-BEdkErjm.js";
@@ -83,7 +83,7 @@ import { t as emitSymframePush } from "./symframe-broadcast-BVxModY5.js";
83
83
  import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-CmU8iVio.js";
84
84
  import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-BVJ4-d9c.js";
85
85
  import { t as parseTimeoutMs } from "./parse-timeout-widuTpq9.js";
86
- import { n as registerMemoryCli } from "./memory-cli-0d49vHrN.js";
86
+ import { n as registerMemoryCli } from "./memory-cli-CGqqpDlw.js";
87
87
  import { i as resolveSlackThreadTs, n as deliverReplies, t as createSlackReplyDeliveryPlan } from "./replies-CLREUzzB.js";
88
88
  import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-06k__URR.js";
89
89
  import { createRequire } from "node:module";
@@ -38188,6 +38188,44 @@ function injectHistoryImagesIntoMessages(messages, historyImagesByIndex) {
38188
38188
  }
38189
38189
  return didMutate;
38190
38190
  }
38191
+ function parseMemorySnippet(path, snippet) {
38192
+ const baseName = (path.split(/[/\\]/).pop() ?? path).replace(/\.md$/i, "");
38193
+ const typeFromPrefix = (() => {
38194
+ const prefix = baseName.split("_")[0]?.toLowerCase() ?? "";
38195
+ if ([
38196
+ "user",
38197
+ "feedback",
38198
+ "project",
38199
+ "reference"
38200
+ ].includes(prefix)) return prefix;
38201
+ return "memory";
38202
+ })();
38203
+ let title = baseName;
38204
+ let type = typeFromPrefix;
38205
+ let description = "";
38206
+ const lines = snippet.split(/\r?\n/);
38207
+ for (const raw of lines) {
38208
+ const line = raw.trim();
38209
+ if (!line || line === "---") continue;
38210
+ const m = line.match(/^([a-z][a-z0-9_-]*)\s*:\s*(.+)$/i);
38211
+ if (!m) {
38212
+ if (!description && line.length > 0 && !line.startsWith("#")) description = line;
38213
+ continue;
38214
+ }
38215
+ const key = m[1].toLowerCase();
38216
+ const value = m[2].trim();
38217
+ if (key === "name" && !title.includes(" ")) title = value;
38218
+ else if (key === "name") title = value;
38219
+ else if (key === "description") description = value;
38220
+ else if (key === "type") type = value.toLowerCase();
38221
+ }
38222
+ if (description.length > 160) description = `${description.slice(0, 157)}…`;
38223
+ return {
38224
+ title,
38225
+ type,
38226
+ description
38227
+ };
38228
+ }
38191
38229
  function summarizeMessagePayload(msg) {
38192
38230
  const content = msg.content;
38193
38231
  if (typeof content === "string") return {
@@ -38890,6 +38928,24 @@ async function runEmbeddedAttempt(params) {
38890
38928
  const recallBlock = `<memory_context>\nThe following memory snippets were automatically retrieved as relevant context:\n\n${recallResults.map((r) => `[${r.path}#L${r.startLine}-L${r.endLine}]\n${r.snippet}`).join("\n---\n")}\n</memory_context>`;
38891
38929
  effectivePrompt = `${recallBlock}\n\n${effectivePrompt}`;
38892
38930
  log$5.debug(`auto-recall: injected ${recallResults.length} snippets (${recallBlock.length} chars)`);
38931
+ for (const r of recallResults) {
38932
+ const parsed = parseMemorySnippet(r.path, r.snippet);
38933
+ emitSymframePush({
38934
+ action: "add",
38935
+ id: `memory-${r.path}#L${r.startLine}`,
38936
+ card: {
38937
+ id: `memory-${r.path}#L${r.startLine}`,
38938
+ type: "memory",
38939
+ intent: "holding",
38940
+ title: parsed.title,
38941
+ memoryType: parsed.type,
38942
+ memoryDescription: parsed.description,
38943
+ memoryPath: r.path,
38944
+ memoryScore: r.score,
38945
+ releaseAfterMs: 6e4
38946
+ }
38947
+ });
38948
+ }
38893
38949
  }
38894
38950
  }
38895
38951
  } catch (recallErr) {
@@ -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 { T as runAgentTurn } from "./subagent-registry-BDj_vbwB.js";
20
+ import { T as runAgentTurn } from "./subagent-registry-BagjubTG.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-D0mvqRoH.js";
51
- import "./manager-Cv0Qqs-i.js";
50
+ import "./memory-7DZfwFEz.js";
51
+ import "./manager-DSXvXUZQ.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-0d49vHrN.js";
82
+ import "./memory-cli-CGqqpDlw.js";
83
83
  import "./logging-UO6tk8Em.js";
84
84
  import "./replies-CLREUzzB.js";
85
85
  import "./pi-tools.policy-06k__URR.js";
@@ -6,8 +6,8 @@ import "./model-selection-BisYvTBb.js";
6
6
  import "./reply-prefix-i-FPYcoQ.js";
7
7
  import "./plugins-CZ_mYwXq.js";
8
8
  import "./replies-0nzkXt6o.js";
9
- import { n as runAgentTurn } from "./pi-embedded-B9Dhow_H.js";
10
- import "./deliver-q23ar_Pm.js";
9
+ import { n as runAgentTurn } from "./pi-embedded-RgjY3r6K.js";
10
+ import "./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-DNssqQJs.js";
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 "./paths-BsT3BvfH.js";
26
- import "./manager-DiD9uXmC.js";
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";
@@ -1,4 +1,4 @@
1
- import { t as runAgentTurn } from "./unified-runner-Bcapans4.js";
1
+ import { t as runAgentTurn } 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-BPVD3vxj.js";
54
- import "./manager-C1nI_dqb.js";
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-CHqD-NnN.js";
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";
@@ -3,7 +3,7 @@ import "./registry-C-JddWwo.js";
3
3
  import "./agent-scope-B1Ina6jV.js";
4
4
  import { t as createSubsystemLogger } from "./subsystem-DzRUKS9f.js";
5
5
  import "./workspace-CsaDUuDn.js";
6
- import { t as runAgentTurn } from "./unified-runner-Cz7iBOgg.js";
6
+ import { t as runAgentTurn } from "./unified-runner-B2uJpfUK.js";
7
7
  import "./auth-profiles-BSw0aQND.js";
8
8
  import "./model-selection-BqshlIZc.js";
9
9
  import "./deliver-B04yNX82.js";
@@ -25,7 +25,7 @@ import "./paths-BsT3BvfH.js";
25
25
  import "./tokens-D_vCJSzF.js";
26
26
  import "./diagnostic-BALvP9wI.js";
27
27
  import "./diagnostic-session-state-BDfanaOY.js";
28
- import "./manager-xUNV-43S.js";
28
+ import "./manager-BVgukgOu.js";
29
29
  import "./github-copilot-token-uhEBNQfj.js";
30
30
  import "./pi-auth-json-DCGR3yfh.js";
31
31
  import "./reply-prefix-D0NzzC4I.js";
@@ -31,7 +31,7 @@ import { t as emitSessionTranscriptUpdate } from "./transcript-events-ChU6IQwp.j
31
31
  import { n as isSilentReplyText, t as SILENT_REPLY_TOKEN } from "./tokens-D_vCJSzF.js";
32
32
  import { a as logMessageProcessed, i as logLaneEnqueue, o as logMessageQueued, r as logLaneDequeue, s as logSessionStateChange, t as diag } from "./diagnostic-BALvP9wI.js";
33
33
  import { n as getDiagnosticSessionState } from "./diagnostic-session-state-BDfanaOY.js";
34
- import { a as parseGeminiAuth, c as resolveMemorySearchConfig, d as requireApiKey, f as resolveApiKeyForProvider, h as resolveModelAuthMode, i as resolveOllamaBaseUrl, l as getApiKeyForModel, m as resolveEnvApiKey, n as retryAsync, o as collectProviderApiKeysForExecution, p as resolveAwsSdkEnvVarName, r as probeOllamaEmbeddingModels, s as executeWithApiKeyRotation, u as getCustomProviderApiKey } from "./manager-xUNV-43S.js";
34
+ import { a as parseGeminiAuth, c as resolveMemorySearchConfig, d as requireApiKey, f as resolveApiKeyForProvider, h as resolveModelAuthMode, i as resolveOllamaBaseUrl, l as getApiKeyForModel, m as resolveEnvApiKey, n as retryAsync, o as collectProviderApiKeysForExecution, p as resolveAwsSdkEnvVarName, r as probeOllamaEmbeddingModels, s as executeWithApiKeyRotation, u as getCustomProviderApiKey } from "./manager-BVgukgOu.js";
35
35
  import { r as resolveCopilotApiToken, t as DEFAULT_COPILOT_API_BASE_URL } from "./github-copilot-token-uhEBNQfj.js";
36
36
  import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-DCGR3yfh.js";
37
37
  import { a as resolveEffectiveMessagesConfig, i as resolveAckReaction, o as resolveHumanDelayConfig, r as resolveResponsePrefixTemplate, t as createReplyPrefixOptions } from "./reply-prefix-D0NzzC4I.js";
@@ -4460,7 +4460,7 @@ async function getMemorySearchManager(params) {
4460
4460
  const wrapper = new FallbackMemoryManager({
4461
4461
  primary,
4462
4462
  fallbackFactory: async () => {
4463
- const { MemoryIndexManager } = await import("./manager-xUNV-43S.js").then((n) => n.t);
4463
+ const { MemoryIndexManager } = await import("./manager-BVgukgOu.js").then((n) => n.t);
4464
4464
  return await MemoryIndexManager.get(params);
4465
4465
  }
4466
4466
  }, () => QMD_MANAGER_CACHE.delete(cacheKey));
@@ -4473,7 +4473,7 @@ async function getMemorySearchManager(params) {
4473
4473
  }
4474
4474
  }
4475
4475
  try {
4476
- const { MemoryIndexManager } = await import("./manager-xUNV-43S.js").then((n) => n.t);
4476
+ const { MemoryIndexManager } = await import("./manager-BVgukgOu.js").then((n) => n.t);
4477
4477
  return { manager: await MemoryIndexManager.get(params) };
4478
4478
  } catch (err) {
4479
4479
  return {
@@ -60789,6 +60789,44 @@ function injectHistoryImagesIntoMessages(messages, historyImagesByIndex) {
60789
60789
  }
60790
60790
  return didMutate;
60791
60791
  }
60792
+ function parseMemorySnippet(path, snippet) {
60793
+ const baseName = (path.split(/[/\\]/).pop() ?? path).replace(/\.md$/i, "");
60794
+ const typeFromPrefix = (() => {
60795
+ const prefix = baseName.split("_")[0]?.toLowerCase() ?? "";
60796
+ if ([
60797
+ "user",
60798
+ "feedback",
60799
+ "project",
60800
+ "reference"
60801
+ ].includes(prefix)) return prefix;
60802
+ return "memory";
60803
+ })();
60804
+ let title = baseName;
60805
+ let type = typeFromPrefix;
60806
+ let description = "";
60807
+ const lines = snippet.split(/\r?\n/);
60808
+ for (const raw of lines) {
60809
+ const line = raw.trim();
60810
+ if (!line || line === "---") continue;
60811
+ const m = line.match(/^([a-z][a-z0-9_-]*)\s*:\s*(.+)$/i);
60812
+ if (!m) {
60813
+ if (!description && line.length > 0 && !line.startsWith("#")) description = line;
60814
+ continue;
60815
+ }
60816
+ const key = m[1].toLowerCase();
60817
+ const value = m[2].trim();
60818
+ if (key === "name" && !title.includes(" ")) title = value;
60819
+ else if (key === "name") title = value;
60820
+ else if (key === "description") description = value;
60821
+ else if (key === "type") type = value.toLowerCase();
60822
+ }
60823
+ if (description.length > 160) description = `${description.slice(0, 157)}…`;
60824
+ return {
60825
+ title,
60826
+ type,
60827
+ description
60828
+ };
60829
+ }
60792
60830
  function summarizeMessagePayload(msg) {
60793
60831
  const content = msg.content;
60794
60832
  if (typeof content === "string") return {
@@ -61491,6 +61529,24 @@ async function runEmbeddedAttempt(params) {
61491
61529
  const recallBlock = `<memory_context>\nThe following memory snippets were automatically retrieved as relevant context:\n\n${recallResults.map((r) => `[${r.path}#L${r.startLine}-L${r.endLine}]\n${r.snippet}`).join("\n---\n")}\n</memory_context>`;
61492
61530
  effectivePrompt = `${recallBlock}\n\n${effectivePrompt}`;
61493
61531
  log$8.debug(`auto-recall: injected ${recallResults.length} snippets (${recallBlock.length} chars)`);
61532
+ for (const r of recallResults) {
61533
+ const parsed = parseMemorySnippet(r.path, r.snippet);
61534
+ emitSymframePush({
61535
+ action: "add",
61536
+ id: `memory-${r.path}#L${r.startLine}`,
61537
+ card: {
61538
+ id: `memory-${r.path}#L${r.startLine}`,
61539
+ type: "memory",
61540
+ intent: "holding",
61541
+ title: parsed.title,
61542
+ memoryType: parsed.type,
61543
+ memoryDescription: parsed.description,
61544
+ memoryPath: r.path,
61545
+ memoryScore: r.score,
61546
+ releaseAfterMs: 6e4
61547
+ }
61548
+ });
61549
+ }
61494
61550
  }
61495
61551
  }
61496
61552
  } catch (recallErr) {
@@ -52,8 +52,8 @@ import { c as hasNonzeroUsage, l as normalizeUsage, n as loadCostUsageSummary, o
52
52
  import { C as enqueueSystemEvent, E as buildChannelSummary, S as drainSystemEventEntries, _ as loadProviderUsageSummary, a as loadCombinedSessionStoreForGateway, b as resolveUsageProviderId, d as formatDoctorNonInteractiveHint, g as writeRestartSentinel, k as redactIdentifier, x as lookupContextTokens, y as formatUsageWindowSummary } from "./session-utils-Cs1jlD-q.js";
53
53
  import { n as createBrowserRouteDispatcher, r as getMachineDisplayName, t as withTimeout$2 } from "./with-timeout-DPR4A2dx.js";
54
54
  import { i as resolveAckReaction, o as resolveEffectiveMessagesConfig, r as resolveResponsePrefixTemplate, s as resolveHumanDelayConfig, t as createReplyPrefixOptions } from "./reply-prefix-BFNeXT65.js";
55
- import { n as resolveMemoryBackendConfig, t as getMemorySearchManager } from "./memory-BPVD3vxj.js";
56
- import { a as parseGeminiAuth, c as resolveMemorySearchConfig, n as retryAsync, o as collectProviderApiKeysForExecution, s as executeWithApiKeyRotation } from "./manager-C1nI_dqb.js";
55
+ import { n as resolveMemoryBackendConfig, t as getMemorySearchManager } from "./memory-CuBkKhKM.js";
56
+ import { a as parseGeminiAuth, c as resolveMemorySearchConfig, n as retryAsync, o as collectProviderApiKeysForExecution, s as executeWithApiKeyRotation } from "./manager-Dw6j9KTZ.js";
57
57
  import { f as runTasksWithConcurrency } from "./internal-DVCddhhN.js";
58
58
  import { a as chunkText, c as resolveChunkMode, d as isSafeFenceBreak, f as parseFenceSpans, i as chunkMarkdownTextWithMode, l as resolveTextChunkLimit, o as chunkTextWithMode, r as chunkMarkdownText, t as chunkByNewline, u as findFenceSpanAt } from "./chunk-BxfKjCUx.js";
59
59
  import { n as resolveMarkdownTableMode } from "./markdown-tables-CS1Tvb3z.js";
@@ -86,7 +86,7 @@ import { t as emitSymframePush } from "./symframe-broadcast-CXo2qoxy.js";
86
86
  import { n as resolveMessageChannelSelection, t as listConfiguredMessageChannels } from "./channel-selection-H1qOf0q-.js";
87
87
  import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-C1IIA6kH.js";
88
88
  import { t as parseTimeoutMs } from "./parse-timeout-DmEcHIsV.js";
89
- import { n as registerMemoryCli } from "./memory-cli-CHqD-NnN.js";
89
+ import { n as registerMemoryCli } from "./memory-cli-C8h9g8yO.js";
90
90
  import { i as resolveSlackThreadTs, n as deliverReplies, t as createSlackReplyDeliveryPlan } from "./replies-CbXXjn9X.js";
91
91
  import { a as resolveSubagentToolPolicy, i as resolveGroupToolPolicy, n as isToolAllowedByPolicies, r as resolveEffectiveToolPolicy, t as filterToolsByPolicy } from "./pi-tools.policy-H2t-Xkfc.js";
92
92
  import { a as buildModelAliasLines, n as resolveModel$2 } from "./model-MUMSB_7d.js";
@@ -48123,6 +48123,44 @@ function injectHistoryImagesIntoMessages(messages, historyImagesByIndex) {
48123
48123
  }
48124
48124
  return didMutate;
48125
48125
  }
48126
+ function parseMemorySnippet(path, snippet) {
48127
+ const baseName = (path.split(/[/\\]/).pop() ?? path).replace(/\.md$/i, "");
48128
+ const typeFromPrefix = (() => {
48129
+ const prefix = baseName.split("_")[0]?.toLowerCase() ?? "";
48130
+ if ([
48131
+ "user",
48132
+ "feedback",
48133
+ "project",
48134
+ "reference"
48135
+ ].includes(prefix)) return prefix;
48136
+ return "memory";
48137
+ })();
48138
+ let title = baseName;
48139
+ let type = typeFromPrefix;
48140
+ let description = "";
48141
+ const lines = snippet.split(/\r?\n/);
48142
+ for (const raw of lines) {
48143
+ const line = raw.trim();
48144
+ if (!line || line === "---") continue;
48145
+ const m = line.match(/^([a-z][a-z0-9_-]*)\s*:\s*(.+)$/i);
48146
+ if (!m) {
48147
+ if (!description && line.length > 0 && !line.startsWith("#")) description = line;
48148
+ continue;
48149
+ }
48150
+ const key = m[1].toLowerCase();
48151
+ const value = m[2].trim();
48152
+ if (key === "name" && !title.includes(" ")) title = value;
48153
+ else if (key === "name") title = value;
48154
+ else if (key === "description") description = value;
48155
+ else if (key === "type") type = value.toLowerCase();
48156
+ }
48157
+ if (description.length > 160) description = `${description.slice(0, 157)}…`;
48158
+ return {
48159
+ title,
48160
+ type,
48161
+ description
48162
+ };
48163
+ }
48126
48164
  function summarizeMessagePayload(msg) {
48127
48165
  const content = msg.content;
48128
48166
  if (typeof content === "string") return {
@@ -48825,6 +48863,24 @@ async function runEmbeddedAttempt(params) {
48825
48863
  const recallBlock = `<memory_context>\nThe following memory snippets were automatically retrieved as relevant context:\n\n${recallResults.map((r) => `[${r.path}#L${r.startLine}-L${r.endLine}]\n${r.snippet}`).join("\n---\n")}\n</memory_context>`;
48826
48864
  effectivePrompt = `${recallBlock}\n\n${effectivePrompt}`;
48827
48865
  log$7.debug(`auto-recall: injected ${recallResults.length} snippets (${recallBlock.length} chars)`);
48866
+ for (const r of recallResults) {
48867
+ const parsed = parseMemorySnippet(r.path, r.snippet);
48868
+ emitSymframePush({
48869
+ action: "add",
48870
+ id: `memory-${r.path}#L${r.startLine}`,
48871
+ card: {
48872
+ id: `memory-${r.path}#L${r.startLine}`,
48873
+ type: "memory",
48874
+ intent: "holding",
48875
+ title: parsed.title,
48876
+ memoryType: parsed.type,
48877
+ memoryDescription: parsed.description,
48878
+ memoryPath: r.path,
48879
+ memoryScore: r.score,
48880
+ releaseAfterMs: 6e4
48881
+ }
48882
+ });
48883
+ }
48828
48884
  }
48829
48885
  }
48830
48886
  } catch (recallErr) {
@@ -21,7 +21,7 @@ import "./client-BOd5o3Kp.js";
21
21
  import "./call-DTshgdlW.js";
22
22
  import "./message-channel-DXToSaWK.js";
23
23
  import "./pairing-token-B-OTYROz.js";
24
- import "./subagent-registry-BDj_vbwB.js";
24
+ import "./subagent-registry-BagjubTG.js";
25
25
  import "./sessions-Dn6VXn4p.js";
26
26
  import "./plugins-BsEhWvLn.js";
27
27
  import "./send-Dq252-bi.js";
@@ -51,8 +51,8 @@ import "./model-auth-Byr7Gic_.js";
51
51
  import "./github-copilot-token-B5y4__YM.js";
52
52
  import "./models-config-CiR_RUxw.js";
53
53
  import "./reply-prefix-DV3KhOhL.js";
54
- import "./memory-D0mvqRoH.js";
55
- import "./manager-Cv0Qqs-i.js";
54
+ import "./memory-7DZfwFEz.js";
55
+ import "./manager-DSXvXUZQ.js";
56
56
  import "./sqlite-9jF_eajd.js";
57
57
  import "./chunk-B2lBXhR0.js";
58
58
  import "./markdown-tables-BEdkErjm.js";
@@ -85,7 +85,7 @@ import { t as formatDocsLink } from "./links-Dnmd-RS-.js";
85
85
  import "./cli-utils-DXfA5936.js";
86
86
  import { t as formatHelpExamples } from "./help-format-Dbp8yEhl.js";
87
87
  import "./progress-CI19Xh3z.js";
88
- import "./memory-cli-0d49vHrN.js";
88
+ import "./memory-cli-CGqqpDlw.js";
89
89
  import "./logging-UO6tk8Em.js";
90
90
  import "./replies-CLREUzzB.js";
91
91
  import "./pi-tools.policy-06k__URR.js";
@@ -99,10 +99,10 @@ import "./npm-registry-spec-BPgK9EL7.js";
99
99
  import "./skill-scanner-BC3PyNso.js";
100
100
  import "./installs-Dunp9UFl.js";
101
101
  import "./channels-status-issues-BTvrA4nx.js";
102
- import "./register.subclis-VsMMpQQN.js";
103
- import "./command-registry-dhtbmE5H.js";
102
+ import "./register.subclis-C1nbYmb-.js";
103
+ import "./command-registry-C5LOUwKq.js";
104
104
  import "./program-context-B_0V80zV.js";
105
- import { r as installCompletion } from "./completion-cli-COi7vEYW.js";
105
+ import { r as installCompletion } from "./completion-cli-Dcc5-bYY.js";
106
106
  import "./daemon-runtime-AkgOtHR6.js";
107
107
  import { r as parseSemver } from "./runtime-guard-LRRZ73eX.js";
108
108
  import "./onboard-helpers-t7tI9KSA.js";
@@ -124,8 +124,8 @@ import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from
124
124
  import "./doctor-config-flow-BIBJeoRl.js";
125
125
  import "./systemd-linger-CctFkWNE.js";
126
126
  import "./health-format-6tfMqkNX.js";
127
- import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-vGccUKhR.js";
128
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-DGqRy0Cz.js";
127
+ import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-B_ial7p9.js";
128
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-BpVYwGK0.js";
129
129
  import { spawn, spawnSync } from "node:child_process";
130
130
  import os from "node:os";
131
131
  import path from "node:path";
@@ -1,4 +1,4 @@
1
- import "./unified-runner-Bcapans4.js";
1
+ import "./unified-runner-BoNa4zCp.js";
2
2
  import { j as theme } from "./registry-Sbac4a4z.js";
3
3
  import { _ as resolveStateDir } from "./paths-By0XjHBk.js";
4
4
  import { f as pathExists } from "./utils-CTPsqyE_.js";
@@ -53,8 +53,8 @@ import "./session-cost-usage-D3mgssM_.js";
53
53
  import { h as trimLogTail } from "./session-utils-Cs1jlD-q.js";
54
54
  import "./with-timeout-DPR4A2dx.js";
55
55
  import "./reply-prefix-BFNeXT65.js";
56
- import "./memory-BPVD3vxj.js";
57
- import "./manager-C1nI_dqb.js";
56
+ import "./memory-CuBkKhKM.js";
57
+ import "./manager-Dw6j9KTZ.js";
58
58
  import "./sqlite-Cod7C5ba.js";
59
59
  import "./chunk-BxfKjCUx.js";
60
60
  import "./markdown-tables-CS1Tvb3z.js";
@@ -87,13 +87,13 @@ import { t as formatDocsLink } from "./links-Bqr0FxXx.js";
87
87
  import "./cli-utils-CuyGL3rq.js";
88
88
  import { t as formatHelpExamples } from "./help-format-7hFcsqss.js";
89
89
  import "./progress-swt2y17x.js";
90
- import "./memory-cli-CHqD-NnN.js";
90
+ import "./memory-cli-C8h9g8yO.js";
91
91
  import "./logging-BWknayJl.js";
92
92
  import "./replies-CbXXjn9X.js";
93
93
  import "./pi-tools.policy-H2t-Xkfc.js";
94
94
  import "./model-MUMSB_7d.js";
95
95
  import { r as parseSemver } from "./runtime-guard-CWA00ZXa.js";
96
- import "./program-context-DdmFH7Cp.js";
96
+ import "./program-context-YblB1bz7.js";
97
97
  import "./catalog-BptA-dUv.js";
98
98
  import "./skills-status-BKX1PjCc.js";
99
99
  import { n as inheritOptionFromParent } from "./command-options-DDDwkB9t.js";
@@ -105,7 +105,7 @@ import "./npm-registry-spec-DTqn-NXZ.js";
105
105
  import "./skill-scanner-BCgVcIwi.js";
106
106
  import "./installs-D890uIIW.js";
107
107
  import "./channels-status-issues-DLIzUsjR.js";
108
- import { r as installCompletion } from "./completion-cli-Db4l70VM.js";
108
+ import { r as installCompletion } from "./completion-cli-DewJuifK.js";
109
109
  import "./daemon-runtime-DlQla_dA.js";
110
110
  import "./onboard-helpers-7IGQ8nAM.js";
111
111
  import "./systemd-CUIM0n5P.js";
@@ -126,8 +126,8 @@ import { n as updateNpmInstalledPlugins, t as syncPluginsForUpdateChannel } from
126
126
  import "./doctor-config-flow-C52W1uUK.js";
127
127
  import "./systemd-linger-BzYk7A6M.js";
128
128
  import "./health-format-Bxg84_f4.js";
129
- import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-BM9wWyI-.js";
130
- import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-CewCMEl2.js";
129
+ import { n as doctorCommand, t as selectStyled } from "./prompt-select-styled-CQDea8e4.js";
130
+ import { r as ensureCompletionCacheExists, t as checkShellCompletionStatus } from "./doctor-completion-DQmw1ojx.js";
131
131
  import path from "node:path";
132
132
  import os from "node:os";
133
133
  import fs from "node:fs/promises";
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@symi/memory-core",
3
- "version": "3.5.33",
3
+ "version": "3.5.34",
4
4
  "private": true,
5
5
  "description": "Symi core memory search plugin",
6
6
  "type": "module",
@@ -1,5 +1,11 @@
1
1
  # Changelog
2
2
 
3
+ ## 3.5.34
4
+
5
+ ### Changes
6
+
7
+ - Version alignment with core Symi release numbers.
8
+
3
9
  ## 3.5.33
4
10
 
5
11
  ### Changes
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@symi/msteams",
3
- "version": "3.5.33",
3
+ "version": "3.5.34",
4
4
  "description": "Symi Microsoft Teams channel plugin",
5
5
  "type": "module",
6
6
  "dependencies": {
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@symi/open-prose",
3
- "version": "3.5.33",
3
+ "version": "3.5.34",
4
4
  "private": true,
5
5
  "description": "OpenProse VM skill pack plugin (slash command + telemetry).",
6
6
  "type": "module",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@symi/outlook",
3
- "version": "3.5.33",
3
+ "version": "3.5.34",
4
4
  "private": true,
5
5
  "description": "Symi Outlook 365 email integration via Microsoft Graph API",
6
6
  "type": "module",
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@symi/slack",
3
- "version": "3.5.33",
3
+ "version": "3.5.34",
4
4
  "private": true,
5
5
  "description": "Symi Slack channel plugin",
6
6
  "type": "module",
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@symerian/symi",
3
- "version": "3.5.33",
3
+ "version": "3.5.34",
4
4
  "description": "Multi-channel AI gateway with extensible messaging integrations",
5
5
  "keywords": [],
6
6
  "homepage": "https://github.com/jaysteelmind/symi#readme",