@symerian/symi 3.0.17 → 3.0.18

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 (146) hide show
  1. package/dist/{audio-preflight-CBDFctZN.js → audio-preflight-BfmZbg4Y.js} +4 -4
  2. package/dist/{audio-preflight-gsZSpG-6.js → audio-preflight-DcuC-liM.js} +4 -4
  3. package/dist/build-info.json +3 -3
  4. package/dist/bundled/boot-md/handler.js +8 -8
  5. package/dist/bundled/session-memory/handler.js +7 -7
  6. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  7. package/dist/{chrome-nPMY1XTJ.js → chrome-Bo7cbvFK.js} +5 -5
  8. package/dist/{chrome-BjVab8gM.js → chrome-DYp18Q0t.js} +5 -5
  9. package/dist/{deliver-D-QFqm31.js → deliver-ChSIbiMM.js} +1 -1
  10. package/dist/{deliver-B4-bcot9.js → deliver-DEgRQM4J.js} +1 -1
  11. package/dist/extensionAPI.js +7 -7
  12. package/dist/{image-CDwtQjmt.js → image-Bx-hvoNJ.js} +1 -1
  13. package/dist/{image-CcS-vzTA.js → image-CQl_mjWk.js} +1 -1
  14. package/dist/llm-slug-generator.js +7 -7
  15. package/dist/{manager-BnEdHzmO.js → manager-D_pn0urG.js} +1 -1
  16. package/dist/{manager-09r0qPze.js → manager-YQxK2t0C.js} +1 -1
  17. package/dist/{pi-embedded-CWsY69-4.js → pi-embedded-CLw_ZzEZ.js} +16 -16
  18. package/dist/{pi-embedded-helpers-BBMy-lqr.js → pi-embedded-helpers-B5I53aw6.js} +4 -4
  19. package/dist/{pi-embedded-helpers-ChEYbgVj.js → pi-embedded-helpers-sUAEIC9X.js} +4 -4
  20. package/dist/plugin-sdk/{accounts-BfyWsC_i.js → accounts-CWFytwbR.js} +3 -3
  21. package/dist/plugin-sdk/{active-listener-DcJW7xAT.js → active-listener-BkZ4jHrL.js} +2 -2
  22. package/dist/plugin-sdk/{agent-scope-ChbGV6of.js → agent-scope-C9gfY_Gk.js} +2 -2
  23. package/dist/plugin-sdk/{audio-preflight-D3GtNLqW.js → audio-preflight-HKbdzXLZ.js} +21 -21
  24. package/dist/plugin-sdk/{bindings-CN2Qmefj.js → bindings-BaKIqPPy.js} +2 -2
  25. package/dist/plugin-sdk/{channel-web-DTyqujjA.js → channel-web-D5nWiTH1.js} +18 -18
  26. package/dist/plugin-sdk/{chrome-BKzAKr3K.js → chrome-klTSnz-9.js} +3 -3
  27. package/dist/plugin-sdk/{chunk-DhDkBujV.js → chunk-BbrYSny_.js} +1 -1
  28. package/dist/plugin-sdk/{command-format-CVrYFyZS.js → command-format-BN6tyZt6.js} +1 -1
  29. package/dist/plugin-sdk/{commands-registry-17yfZkHZ.js → commands-registry-CTzKKtY6.js} +4 -4
  30. package/dist/plugin-sdk/{config-7wk65zKC.js → config-Crv2qEdJ.js} +9 -9
  31. package/dist/plugin-sdk/{consolidate-exbAW0ml.js → consolidate-DT1QH65Q.js} +2 -2
  32. package/dist/plugin-sdk/{deliver-TxAcw7J5.js → deliver-7rOvAlrc.js} +12 -12
  33. package/dist/plugin-sdk/{diagnostic-Debx4frd.js → diagnostic-0nsxhWp7.js} +1 -1
  34. package/dist/plugin-sdk/{fs-safe-wBYbAkJF.js → fs-safe-DfWYBeWF.js} +1 -1
  35. package/dist/plugin-sdk/{gemini-auth-7U2pm2Ky.js → gemini-auth-C0N0_u49.js} +1 -1
  36. package/dist/plugin-sdk/{image-BtDVmYA5.js → image-WOSl2apK.js} +4 -4
  37. package/dist/plugin-sdk/index.js +43 -43
  38. package/dist/plugin-sdk/{ir-CKMvRrGW.js → ir-9J84MTls.js} +4 -4
  39. package/dist/plugin-sdk/{local-roots-c_gaPs01.js → local-roots-OLRDbvyY.js} +3 -3
  40. package/dist/plugin-sdk/{login-DUym1Jy0.js → login-C7x4q0i2.js} +7 -7
  41. package/dist/plugin-sdk/{login-qr-B-WBdvrX.js → login-qr-Dv5_MoAW.js} +9 -9
  42. package/dist/plugin-sdk/{manager-B71SCzos.js → manager-C83tK17x.js} +8 -8
  43. package/dist/plugin-sdk/{manifest-registry-Dnic6Chh.js → manifest-registry-CJMV-PI7.js} +1 -1
  44. package/dist/plugin-sdk/{markdown-tables-Dur7OTlM.js → markdown-tables-DXNKz5y_.js} +1 -1
  45. package/dist/plugin-sdk/{message-channel-BrAhJJV_.js → message-channel-aGy1HbQQ.js} +1 -1
  46. package/dist/plugin-sdk/{model-selection-B9qaVQSJ.js → model-selection-C-3-tpe7.js} +4 -4
  47. package/dist/plugin-sdk/{outbound-DB1wDM8b.js → outbound-DquCeSy5.js} +6 -6
  48. package/dist/plugin-sdk/{pi-auth-json-ZO118hoy.js → pi-auth-json-D9PDCXGn.js} +1 -1
  49. package/dist/plugin-sdk/{pi-embedded-helpers-s_U0Un7j.js → pi-embedded-helpers-D3ygfH7l.js} +16 -16
  50. package/dist/plugin-sdk/{plugins-DF81oSaI.js → plugins-DOwnSg9D.js} +4 -4
  51. package/dist/plugin-sdk/{pw-ai-CTwP02uv.js → pw-ai-rlengLjb.js} +8 -8
  52. package/dist/plugin-sdk/{qmd-manager-CBaSGant.js → qmd-manager-BzxFjRFa.js} +4 -4
  53. package/dist/plugin-sdk/{registry-CZVURNhF.js → registry-5iFfixlB.js} +2 -2
  54. package/dist/plugin-sdk/{replies-hwRbkU3z.js → replies-BXOzO_H5.js} +7 -7
  55. package/dist/plugin-sdk/{reply-prefix-CaXmzZlx.js → reply-prefix-INAKTqCU.js} +1 -1
  56. package/dist/plugin-sdk/{resolve-outbound-target-fxVSOBmk.js → resolve-outbound-target-DvbxHtqp.js} +2 -2
  57. package/dist/plugin-sdk/{resolve-route-ClCyiOeu.js → resolve-route-URXlY3AK.js} +3 -3
  58. package/dist/plugin-sdk/{runner-Cq5jvwQ7.js → runner-Bv0_DWoH.js} +9 -9
  59. package/dist/plugin-sdk/{session-B_TkB65Y.js → session-C3r8l7ou.js} +4 -4
  60. package/dist/plugin-sdk/{skill-commands-0LF9HTGr.js → skill-commands-KjLUGIdZ.js} +5 -5
  61. package/dist/plugin-sdk/{skills-BIT_O7J0.js → skills-BrsD4L5c.js} +7 -7
  62. package/dist/plugin-sdk/{sqlite-Bx5Y5U5X.js → sqlite-CjW7ME1H.js} +1 -1
  63. package/dist/plugin-sdk/{subsystem-CXqYeDy-.js → subsystem-DcOg1xJr.js} +1 -1
  64. package/dist/plugin-sdk/{synthesis-DtsYAj1E.js → synthesis-CY7YAasV.js} +38 -38
  65. package/dist/plugin-sdk/{target-errors-B8mokOeH.js → target-errors-BVWJGWFq.js} +2 -2
  66. package/dist/plugin-sdk/{thinking-Ca0DhqzO.js → thinking-CtsTDPOi.js} +3 -3
  67. package/dist/plugin-sdk/{tokens-CvlONEqh.js → tokens-8lqOTZCB.js} +1 -1
  68. package/dist/plugin-sdk/{tool-images-DpBaWEHT.js → tool-images-Cl_rGIUZ.js} +2 -2
  69. package/dist/plugin-sdk/{tool-loop-detection-BOvUFa0f.js → tool-loop-detection-Da4WUT_P.js} +2 -2
  70. package/dist/plugin-sdk/{unified-runner-CnM7lyNd.js → unified-runner-nwMnsZyj.js} +60 -60
  71. package/dist/plugin-sdk/web-BlweOZDp.js +54 -0
  72. package/dist/plugin-sdk/{whatsapp-actions-CvnfsFJm.js → whatsapp-actions-DpfaGYs7.js} +21 -21
  73. package/dist/{pw-ai-BW8_KeDf.js → pw-ai-BqxJG-Wh.js} +1 -1
  74. package/dist/{pw-ai-j9IE1K0-.js → pw-ai-C-NSGye0.js} +1 -1
  75. package/dist/{runner-8ALr2UII.js → runner-COGFTeDw.js} +1 -1
  76. package/dist/{runner-C4-9kFdR.js → runner-DhCi2lT1.js} +1 -1
  77. package/dist/{synthesis-Cph3LhA1.js → synthesis-CXZu24Vx.js} +7 -7
  78. package/dist/{synthesis-Cus0A2dL.js → synthesis-DrPxcMlQ.js} +7 -7
  79. package/dist/{unified-runner-CX80YMTk.js → unified-runner-iByUazvW.js} +16 -16
  80. package/dist/{web-ChozvJ7I.js → web-EsMQBIYf.js} +7 -7
  81. package/dist/{web-DFlsbXmQ.js → web-PPg5y6xI.js} +7 -7
  82. package/package.json +1 -1
  83. package/dist/plugin-sdk/web-CIPJBHAU.js +0 -54
  84. package/skills/1password/SKILL.md +0 -71
  85. package/skills/1password/references/cli-examples.md +0 -29
  86. package/skills/1password/references/get-started.md +0 -17
  87. package/skills/apple-notes/SKILL.md +0 -78
  88. package/skills/apple-reminders/SKILL.md +0 -119
  89. package/skills/bear-notes/SKILL.md +0 -108
  90. package/skills/blogwatcher/SKILL.md +0 -70
  91. package/skills/blucli/SKILL.md +0 -48
  92. package/skills/bluebubbles/SKILL.md +0 -132
  93. package/skills/camsnap/SKILL.md +0 -46
  94. package/skills/canvas/SKILL.md +0 -204
  95. package/skills/connect-email/SKILL.md +0 -142
  96. package/skills/document-generation/SKILL.md +0 -83
  97. package/skills/eightctl/SKILL.md +0 -51
  98. package/skills/food-order/SKILL.md +0 -49
  99. package/skills/gemini/SKILL.md +0 -44
  100. package/skills/gh-issues/SKILL.md +0 -865
  101. package/skills/gifgrep/SKILL.md +0 -80
  102. package/skills/github/SKILL.md +0 -164
  103. package/skills/gog/SKILL.md +0 -117
  104. package/skills/goplaces/SKILL.md +0 -53
  105. package/skills/healthcheck/SKILL.md +0 -246
  106. package/skills/himalaya/SKILL.md +0 -258
  107. package/skills/himalaya/references/configuration.md +0 -184
  108. package/skills/himalaya/references/message-composition.md +0 -199
  109. package/skills/imsg/SKILL.md +0 -122
  110. package/skills/long-task/SKILL.md +0 -58
  111. package/skills/long-task/scripts/detach-task.sh +0 -187
  112. package/skills/nano-banana-pro/SKILL.md +0 -59
  113. package/skills/nano-banana-pro/scripts/generate_image.py +0 -184
  114. package/skills/nano-pdf/SKILL.md +0 -39
  115. package/skills/notion/SKILL.md +0 -173
  116. package/skills/obsidian/SKILL.md +0 -82
  117. package/skills/openai-image-gen/SKILL.md +0 -90
  118. package/skills/openai-image-gen/scripts/gen.py +0 -240
  119. package/skills/openai-whisper/SKILL.md +0 -39
  120. package/skills/openai-whisper-api/SKILL.md +0 -53
  121. package/skills/openai-whisper-api/scripts/transcribe.sh +0 -85
  122. package/skills/openhue/SKILL.md +0 -113
  123. package/skills/oracle/SKILL.md +0 -126
  124. package/skills/ordercli/SKILL.md +0 -79
  125. package/skills/peekaboo/SKILL.md +0 -191
  126. package/skills/reactions-extensive/SKILL.md +0 -30
  127. package/skills/reactions-minimal/SKILL.md +0 -31
  128. package/skills/safe-edit/SKILL.md +0 -51
  129. package/skills/sag/SKILL.md +0 -88
  130. package/skills/sherpa-onnx-tts/SKILL.md +0 -104
  131. package/skills/sherpa-onnx-tts/bin/sherpa-onnx-tts +0 -178
  132. package/skills/songsee/SKILL.md +0 -50
  133. package/skills/sonoscli/SKILL.md +0 -66
  134. package/skills/spotify-player/SKILL.md +0 -65
  135. package/skills/symihub/SKILL.md +0 -78
  136. package/skills/things-mac/SKILL.md +0 -87
  137. package/skills/tmux/SKILL.md +0 -153
  138. package/skills/tmux/scripts/find-sessions.sh +0 -112
  139. package/skills/tmux/scripts/wait-for-text.sh +0 -83
  140. package/skills/trello/SKILL.md +0 -96
  141. package/skills/video-frames/SKILL.md +0 -47
  142. package/skills/video-frames/scripts/frame.sh +0 -81
  143. package/skills/voice-call/SKILL.md +0 -46
  144. package/skills/wacli/SKILL.md +0 -73
  145. package/skills/weather/SKILL.md +0 -113
  146. package/skills/xurl/SKILL.md +0 -462
@@ -10,10 +10,10 @@ import { $ as DEFAULT_PROVIDER, A as resolveThinkingDefault, B as requireApiKey,
10
10
  import { n as formatCliCommand, r as resolveCliName, t as isTruthyEnvValue } from "./env-BevtqzD_.js";
11
11
  import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-cCYzSU9h.js";
12
12
  import { t as parseBooleanValue$1 } from "./boolean-CE7i9tBR.js";
13
- import { $ as normalizeSessionDeliveryFields, A as parseImageDimensionError, At as resolveExistingPathsWithinRoot, B as resolveAndPersistSessionFile, Bt as normalizeToolName, C as isFailoverAssistantError, Ct as acquireSessionWriteLock, D as isRawApiErrorPayload, Dt as resolveBrowserConfig, E as isRateLimitAssistantError, Et as registerBrowserRoutes, F as resolveSandboxRuntimeStatus, Ft as buildPluginToolGroups, G as updateSessionStore, Gt as buildBootstrapContextFiles, H as readSessionUpdatedAt, Ht as stripPluginOnlyAllowlist, I as extractDeliveryInfo, It as collectExplicitAllowlist, J as resolveCacheTtlMs$1, Jt as resolveBootstrapTotalMaxChars, K as updateSessionStoreEntry, Kt as ensureSessionHeader, Lt as expandPolicyWithPluginGroups, M as sanitizeUserFacingText, Mt as ensureBrowserControlAuth, N as ensureSandboxWorkspaceForSession, Nt as resolveBrowserControlAuth, O as isTimeoutErrorMessage, Ot as resolveProfile, P as resolveSandboxContext, Pt as applyOwnerOnlyToolPolicy, Q as normalizeDeliveryContext, R as appendAssistantMessageToSessionTranscript, Rt as expandToolGroups, S as isContextOverflowError, St as resolveGroupSessionKey, T as isLikelyContextOverflowError, Tt as createBrowserRouteContext, U as recordSessionMetaFromInbound, Ut as compileGlobPatterns, V as loadSessionStore, Vt as resolveToolProfilePolicy, W as updateLastRoute, Wt as matchesAnyGlobPattern, X as deliveryContextKey, Y as deliveryContextFromSession, Yt as sanitizeGoogleTurnOrdering, Z as mergeDeliveryContext, _ as getApiErrorPayloadFingerprint, _t as canonicalizeMainSessionAlias, a as normalizeTextForComparison, at as INPUT_PROVENANCE_KIND_VALUES, b as isCloudCodeAssistFormatError, bt as resolveMainSessionKey, c as extractToolResultId, ct as normalizeInputProvenance, d as isGoogleModelApi, dt as resolveChannelResetConfig, f as BILLING_ERROR_USER_MESSAGE, ft as resolveSessionResetPolicy, g as formatRawAssistantErrorForUi, gt as resolveFreshSessionTotalTokens, h as formatBillingErrorMessage, ht as DEFAULT_RESET_TRIGGERS, i as isMessagingToolDuplicateNormalized, it as extractToolCallNames, j as parseImageSizeError, jt as getBridgeAuthForPort, k as isTransientHttpError, kt as DEFAULT_UPLOAD_DIR, l as downgradeOpenAIReasoningBlocks, lt as resolveSessionKey, m as formatAssistantErrorText, mt as resolveThreadFlag, n as validateGeminiTurns, nt as capArrayByJsonBytes, o as sanitizeSessionMessagesImages, ot as applyInputProvenanceToUserMessage, p as classifyFailoverReason, pt as resolveSessionResetType, q as isCacheEnabled, qt as resolveBootstrapMaxChars, r as pickFallbackThinkingLevel, rt as countToolResults, s as extractToolCallsFromAssistant, st as hasInterSessionUserProvenance, t as validateAnthropicTurns, tt as archiveSessionTranscripts, u as isAntigravityClaude, ut as evaluateSessionFreshness, v as isAuthAssistantError, w as isFailoverErrorMessage, wt as resolveSessionLockMaxHoldFromTimeout, x as isCompactionFailureError, xt as deriveSessionMetaPatch, y as isBillingAssistantError, zt as mergeAlsoAllowPolicy } from "./pi-embedded-helpers-BBMy-lqr.js";
13
+ import { $ as normalizeSessionDeliveryFields, A as parseImageDimensionError, At as resolveExistingPathsWithinRoot, B as resolveAndPersistSessionFile, Bt as normalizeToolName, C as isFailoverAssistantError, Ct as acquireSessionWriteLock, D as isRawApiErrorPayload, Dt as resolveBrowserConfig, E as isRateLimitAssistantError, Et as registerBrowserRoutes, F as resolveSandboxRuntimeStatus, Ft as buildPluginToolGroups, G as updateSessionStore, Gt as buildBootstrapContextFiles, H as readSessionUpdatedAt, Ht as stripPluginOnlyAllowlist, I as extractDeliveryInfo, It as collectExplicitAllowlist, J as resolveCacheTtlMs$1, Jt as resolveBootstrapTotalMaxChars, K as updateSessionStoreEntry, Kt as ensureSessionHeader, Lt as expandPolicyWithPluginGroups, M as sanitizeUserFacingText, Mt as ensureBrowserControlAuth, N as ensureSandboxWorkspaceForSession, Nt as resolveBrowserControlAuth, O as isTimeoutErrorMessage, Ot as resolveProfile, P as resolveSandboxContext, Pt as applyOwnerOnlyToolPolicy, Q as normalizeDeliveryContext, R as appendAssistantMessageToSessionTranscript, Rt as expandToolGroups, S as isContextOverflowError, St as resolveGroupSessionKey, T as isLikelyContextOverflowError, Tt as createBrowserRouteContext, U as recordSessionMetaFromInbound, Ut as compileGlobPatterns, V as loadSessionStore, Vt as resolveToolProfilePolicy, W as updateLastRoute, Wt as matchesAnyGlobPattern, X as deliveryContextKey, Y as deliveryContextFromSession, Yt as sanitizeGoogleTurnOrdering, Z as mergeDeliveryContext, _ as getApiErrorPayloadFingerprint, _t as canonicalizeMainSessionAlias, a as normalizeTextForComparison, at as INPUT_PROVENANCE_KIND_VALUES, b as isCloudCodeAssistFormatError, bt as resolveMainSessionKey, c as extractToolResultId, ct as normalizeInputProvenance, d as isGoogleModelApi, dt as resolveChannelResetConfig, f as BILLING_ERROR_USER_MESSAGE, ft as resolveSessionResetPolicy, g as formatRawAssistantErrorForUi, gt as resolveFreshSessionTotalTokens, h as formatBillingErrorMessage, ht as DEFAULT_RESET_TRIGGERS, i as isMessagingToolDuplicateNormalized, it as extractToolCallNames, j as parseImageSizeError, jt as getBridgeAuthForPort, k as isTransientHttpError, kt as DEFAULT_UPLOAD_DIR, l as downgradeOpenAIReasoningBlocks, lt as resolveSessionKey, m as formatAssistantErrorText, mt as resolveThreadFlag, n as validateGeminiTurns, nt as capArrayByJsonBytes, o as sanitizeSessionMessagesImages, ot as applyInputProvenanceToUserMessage, p as classifyFailoverReason, pt as resolveSessionResetType, q as isCacheEnabled, qt as resolveBootstrapMaxChars, r as pickFallbackThinkingLevel, rt as countToolResults, s as extractToolCallsFromAssistant, st as hasInterSessionUserProvenance, t as validateAnthropicTurns, tt as archiveSessionTranscripts, u as isAntigravityClaude, ut as evaluateSessionFreshness, v as isAuthAssistantError, w as isFailoverErrorMessage, wt as resolveSessionLockMaxHoldFromTimeout, x as isCompactionFailureError, xt as deriveSessionMetaPatch, y as isBillingAssistantError, zt as mergeAlsoAllowPolicy } from "./pi-embedded-helpers-B5I53aw6.js";
14
14
  import { A as VERSION, C as getConfigValueAtPath, D as isSafeExecutableValue, E as unsetConfigValueAtPath, O as DEFAULT_SUBAGENT_MAX_SPAWN_DEPTH, S as unsetConfigOverride, T as setConfigValueAtPath, _ as parseDurationMs, a as writeConfigFile, b as resetConfigOverrides, c as TELEGRAM_COMMAND_NAME_PATTERN, f as isInboundPathAllowed, g as normalizeScpRemoteHost, h as resolveIMessageRemoteAttachmentRoots, i as resolveConfigSnapshotHash, k as resolveAgentMaxConcurrent, l as normalizeTelegramCommandName, m as resolveIMessageAttachmentRoots, n as loadConfig, o as validateConfigObjectWithPlugins, r as readConfigFileSnapshot, u as resolveTelegramCustomCommands, v as validateJsonSchemaValue, w as parseConfigPath, x as setConfigOverride, y as getConfigOverrides } from "./config-CmwJ3rLZ.js";
15
15
  import { a as applyTestPluginDefaults, c as resolveMemorySlotDecision, d as isDangerousHostEnvVarName, i as safeStatSync, n as discoverSymiPlugins, o as normalizePluginsConfig, r as isPathInside, s as resolveEnableState, t as loadPluginManifestRegistry, u as isPathInsideWithRealpath } from "./manifest-registry-Dqmu7CGB.js";
16
- import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-BjVab8gM.js";
16
+ import { C as rawDataToString, O as DEFAULT_AI_SNAPSHOT_MAX_CHARS, T as isSecureWebSocketUrl, x as ensureChromeExtensionRelayServer } from "./chrome-Bo7cbvFK.js";
17
17
  import { l as parseFrontmatterBlock } from "./frontmatter-CTR5f_Ez.js";
18
18
  import { c as assertSandboxPath, d as resolveSandboxedMediaSource, f as applySkillEnvOverrides, i as resolveSkillsPromptForRun, l as resolveSandboxInputPath, n as buildWorkspaceSkillSnapshot, p as applySkillEnvOverridesFromSnapshot, r as loadWorkspaceSkillEntries, s as assertMediaNotDataUrl } from "./skills-B7JO0ASH.js";
19
19
  import { n as formatErrorMessage, r as formatUncaughtError } from "./errors-XIsvXeC-.js";
@@ -32,15 +32,15 @@ import { a as resolveSlackWebClientOptions, c as buildSlackBlocksFallbackText, i
32
32
  import { i as resolveSessionTranscriptPath, n as resolveSessionFilePath, o as resolveSessionTranscriptsDirForAgent, r as resolveSessionFilePathOptions, s as resolveStorePath, t as resolveDefaultSessionStorePath } from "./paths-D457mxXH.js";
33
33
  import { t as emitSessionTranscriptUpdate } from "./transcript-events-hbz-cy7j.js";
34
34
  import { i as resolveImageSanitizationLimits, n as sanitizeImageBlocks, r as sanitizeToolResultImages } from "./tool-images-Dli0kbyH.js";
35
- import { c as normalizeChannelTargetInput, d as parseReplyDirectives, f as MEDIA_TOKEN_RE, g as initializeGlobalHookRunner, h as getGlobalHookRunner, l as normalizeTargetForProvider, m as parseInlineDirectives$1, o as normalizeReplyPayloadsForDelivery, p as splitMediaFromOutput, s as buildTargetResolverSignature, t as deliverOutboundPayloads, u as throwIfAborted } from "./deliver-D-QFqm31.js";
35
+ import { c as normalizeChannelTargetInput, d as parseReplyDirectives, f as MEDIA_TOKEN_RE, g as initializeGlobalHookRunner, h as getGlobalHookRunner, l as normalizeTargetForProvider, m as parseInlineDirectives$1, o as normalizeReplyPayloadsForDelivery, p as splitMediaFromOutput, s as buildTargetResolverSignature, t as deliverOutboundPayloads, u as throwIfAborted } from "./deliver-ChSIbiMM.js";
36
36
  import { a as logMessageProcessed, c as logWebhookError, d as startDiagnosticHeartbeat, f as stopDiagnosticHeartbeat, i as logLaneEnqueue, l as logWebhookProcessed, o as logMessageQueued, p as isDiagnosticsEnabled, r as logLaneDequeue, s as logSessionStateChange, t as diag, u as logWebhookReceived } from "./diagnostic-Dz2XLFpJ.js";
37
37
  import { r as getDiagnosticSessionState } from "./diagnostic-session-state-DPIgjnIW.js";
38
- import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-CcS-vzTA.js";
38
+ import { S as ensureSymiModelsJson, _ as stripMinimaxToolCallXml, a as decodeDataUrl, b as stripReasoningTagsFromText, c as extractAssistantText$1, d as extractThinkingFromTaggedText, f as formatReasoningMessage, g as stripDowngradedToolCallText, h as promoteThinkingTagsToBlocks, i as coerceImageModelConfig, l as extractAssistantThinking, m as isAssistantMessage, o as resolveProviderVisionModelFromConfig, p as inferToolMetaFromArgs, r as coerceImageAssistantText, s as minimaxUnderstandImage, u as extractThinkingFromTaggedStream, v as stripThinkingTagsFromText, x as extractTextFromChatContent, y as resolveToolDisplay } from "./image-CQl_mjWk.js";
39
39
  import { t as ensurePiAuthJsonFromAuthProfiles } from "./pi-auth-json-Df3d9-jY.js";
40
40
  import { $ as getPairingAdapter, A as describeReplyTarget, B as resolveTelegramThreadSpec, C as buildSenderLabel, D as buildTelegramParentPeer, E as buildTelegramGroupPeerId, F as resolveTelegramForumThreadId, G as isSenderIdAllowed, H as normalizeAllowFromWithStore$1, I as resolveTelegramGroupAllowFromContext, J as toLocationContext, K as mergeAllowFromSources, L as resolveTelegramMediaPlaceholder, M as extractTelegramLocation, N as hasBotMention, O as buildTelegramThreadParams, P as normalizeForwardedContext, Q as upsertChannelPairingRequest, R as resolveTelegramReplyId, S as buildGroupLabel, T as buildTelegramGroupFrom, U as resolveSenderAllowMatch, V as isSenderAllowed$1, W as firstDefined$1, X as readChannelAllowFromStore, Y as addChannelAllowFromStoreEntry, Z as removeChannelAllowFromStoreEntry, _ as resolveTelegramFetch, a as reactMessageTelegram, b as getChannelActivity, c as sendStickerTelegram, d as wasSentByBot, et as listPairingChannels, f as isRecoverableTelegramNetworkError, g as wrapFileReferencesInHtml, h as renderTelegramHtmlText, i as editMessageTelegram, j as expandTextLinks, k as buildTypingThreadParams, m as markdownToTelegramHtml, n as createForumTopicTelegram, nt as parseTelegramTarget, o as sendMessageTelegram, p as markdownToTelegramChunks, q as formatLocationText, r as deleteMessageTelegram, rt as resolveTelegramTargetChatType, s as sendPollTelegram, t as buildInlineKeyboard, tt as isVoiceCompatibleAudio, u as resolveTelegramVoiceSend, v as splitTelegramCaption, w as buildSenderName, x as recordChannelActivity, y as withTelegramApiErrorLogging, z as resolveTelegramStreamMode } from "./send-BCZh3xVc.js";
41
41
  import { n as discoverModels, t as discoverAuthStorage } from "./pi-model-discovery-Bv5YDJc8.js";
42
42
  import { a as resolveEffectiveMessagesConfig, i as resolveAckReaction, o as resolveHumanDelayConfig, r as resolveResponsePrefixTemplate, t as createReplyPrefixOptions } from "./reply-prefix-DqV_Oetb.js";
43
- import { i as resolveMemorySearchConfig, n as probeOllamaEmbeddingModels, r as resolveOllamaBaseUrl } from "./manager-BnEdHzmO.js";
43
+ import { i as resolveMemorySearchConfig, n as probeOllamaEmbeddingModels, r as resolveOllamaBaseUrl } from "./manager-D_pn0urG.js";
44
44
  import { c as normalizeExtraMemoryPaths, f as runTasksWithConcurrency, s as listMemoryFiles } from "./internal-sLQSTKz4.js";
45
45
  import { n as retryAsync } from "./retry-BimTxCOW.js";
46
46
  import { a as createActionGate, c as jsonResult, d as readStringArrayParam, f as readStringOrNumberParam, l as readNumberParam, n as missingTargetError, o as imageResult, p as readStringParam, r as unknownTargetError, s as imageResultFromFile, t as ambiguousTargetError, u as readReactionParams } from "./target-errors-C9ZKwX6T.js";
@@ -50,7 +50,7 @@ import { n as fetchWithTimeout, t as bindAbortRelay } from "./fetch-timeout-B7YM
50
50
  import { a as readResponseWithLimit, i as fetchRemoteMedia, n as getDefaultMediaLocalRoots, o as fetchWithSsrFGuard, t as getAgentScopedMediaLocalRoots } from "./local-roots-DcPP289R.js";
51
51
  import { a as loadWebMedia, i as getDefaultLocalRoots } from "./ir-ZDAGNleN.js";
52
52
  import { a as listChatCommandsForConfig, c as normalizeCommandBody, d as shouldHandleTextCommands, f as isCommandFlagEnabled, g as resolveNativeSkillsEnabled, h as resolveNativeCommandsEnabled, i as listChatCommands, l as parseCommandArgs, m as isRestartEnabled, o as listNativeCommandSpecs, p as isNativeCommandsExplicitlyDisabled, r as findCommandByNativeName, s as listNativeCommandSpecsForConfig, t as buildCommandTextFromArgs, u as resolveCommandArgMenu } from "./commands-registry-DMyd-Yup.js";
53
- import { _ as CLI_OUTPUT_MAX_BUFFER, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as resolveMediaUnderstandingScope, h as normalizeMediaUnderstandingChatType, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveTimeoutMs$1, n as createMediaAttachmentCache, o as runCapability, p as resolveConcurrency, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as applyTemplate, y as registerUnhandledRejectionHandler } from "./runner-C4-9kFdR.js";
53
+ import { _ as CLI_OUTPUT_MAX_BUFFER, a as resolveMediaAttachmentLocalRoots, c as loadModelCatalog, d as resolveAttachmentKind, f as buildRandomTempFilePath, g as resolveMediaUnderstandingScope, h as normalizeMediaUnderstandingChatType, i as resolveAutoImageModel, l as modelSupportsVision, m as resolveTimeoutMs$1, n as createMediaAttachmentCache, o as runCapability, p as resolveConcurrency, r as normalizeMediaAttachments, s as findModelInCatalog, t as buildProviderRegistry, v as applyTemplate, y as registerUnhandledRejectionHandler } from "./runner-DhCi2lT1.js";
54
54
  import { c as getSkillsSnapshotVersion, d as createAsyncLock, f as readJsonFile, i as resolveSkillCommandInvocation, l as pruneExpiredPending, n as listSkillCommandsForAgents, o as getRemoteSkillEligibility, p as writeJsonAtomic, r as listSkillCommandsForWorkspace, s as ensureSkillsWatcher, t as listReservedChatSlashCommandNames, u as resolvePairingPaths } from "./skill-commands-LTOrAZRN.js";
55
55
  import { r as normalizeInboundTextNewlines, t as finalizeInboundContext } from "./inbound-context-DjlU6iBR.js";
56
56
  import { n as recordCommandPoll, r as resetCommandPollCount } from "./command-poll-backoff-Bup9wS1y.js";
@@ -79,7 +79,7 @@ import { complete, completeSimple, createAssistantMessageEventStream, streamSimp
79
79
  import AjvPkg from "ajv";
80
80
  import { CURRENT_SESSION_VERSION, DefaultResourceLoader, SessionManager, SettingsManager, codingTools, createAgentSession, createEditTool, createReadTool, createWriteTool, estimateTokens, generateSummary, readTool } from "@mariozechner/pi-coding-agent";
81
81
  import { createServer } from "node:http";
82
- import { WebSocket as WebSocket$1 } from "ws";
82
+ import { WebSocket } from "ws";
83
83
  import { Buffer as Buffer$1 } from "node:buffer";
84
84
  import { EdgeTTS } from "node-edge-tts";
85
85
  import { createJiti } from "jiti";
@@ -4712,7 +4712,7 @@ async function getMemorySearchManager(params) {
4712
4712
  const wrapper = new FallbackMemoryManager({
4713
4713
  primary,
4714
4714
  fallbackFactory: async () => {
4715
- const { MemoryIndexManager } = await import("./manager-BnEdHzmO.js").then((n) => n.t);
4715
+ const { MemoryIndexManager } = await import("./manager-D_pn0urG.js").then((n) => n.t);
4716
4716
  return await MemoryIndexManager.get(params);
4717
4717
  }
4718
4718
  }, () => QMD_MANAGER_CACHE.delete(cacheKey));
@@ -4725,7 +4725,7 @@ async function getMemorySearchManager(params) {
4725
4725
  }
4726
4726
  }
4727
4727
  try {
4728
- const { MemoryIndexManager } = await import("./manager-BnEdHzmO.js").then((n) => n.t);
4728
+ const { MemoryIndexManager } = await import("./manager-D_pn0urG.js").then((n) => n.t);
4729
4729
  return { manager: await MemoryIndexManager.get(params) };
4730
4730
  } catch (err) {
4731
4731
  return {
@@ -9733,7 +9733,7 @@ var GatewayClient = class {
9733
9733
  if (fingerprint !== expected) return /* @__PURE__ */ new Error("gateway tls fingerprint mismatch");
9734
9734
  });
9735
9735
  }
9736
- this.ws = new WebSocket$1(url, wsOptions);
9736
+ this.ws = new WebSocket(url, wsOptions);
9737
9737
  this.ws.on("open", () => {
9738
9738
  if (url.startsWith("wss://") && this.opts.tlsFingerprint) {
9739
9739
  const tlsError = this.validateTlsFingerprint();
@@ -9952,7 +9952,7 @@ var GatewayClient = class {
9952
9952
  return null;
9953
9953
  }
9954
9954
  async request(method, params, opts) {
9955
- if (!this.ws || this.ws.readyState !== WebSocket$1.OPEN) throw new Error("gateway not connected");
9955
+ if (!this.ws || this.ws.readyState !== WebSocket.OPEN) throw new Error("gateway not connected");
9956
9956
  const id = randomUUID();
9957
9957
  const frame = {
9958
9958
  type: "req",
@@ -11151,7 +11151,7 @@ async function routeReply(params) {
11151
11151
  const resolvedReplyToId = replyToId ?? (channelId === "slack" && threadId != null && threadId !== "" ? String(threadId) : void 0);
11152
11152
  const resolvedThreadId = channelId === "slack" ? null : threadId ?? null;
11153
11153
  try {
11154
- const { deliverOutboundPayloads } = await import("./deliver-D-QFqm31.js").then((n) => n.n);
11154
+ const { deliverOutboundPayloads } = await import("./deliver-ChSIbiMM.js").then((n) => n.n);
11155
11155
  return {
11156
11156
  ok: true,
11157
11157
  messageId: (await deliverOutboundPayloads({
@@ -40598,7 +40598,7 @@ async function deliverSessionMaintenanceWarning(params) {
40598
40598
  return;
40599
40599
  }
40600
40600
  try {
40601
- const { deliverOutboundPayloads } = await import("./deliver-D-QFqm31.js").then((n) => n.n);
40601
+ const { deliverOutboundPayloads } = await import("./deliver-ChSIbiMM.js").then((n) => n.n);
40602
40602
  await deliverOutboundPayloads({
40603
40603
  cfg: params.cfg,
40604
40604
  channel,
@@ -43244,7 +43244,7 @@ async function describeStickerImage(params) {
43244
43244
  logVerbose(`telegram: describing sticker with ${provider}/${model}`);
43245
43245
  try {
43246
43246
  const buffer = await fs$1.readFile(imagePath);
43247
- const { describeImageWithModel } = await import("./image-CcS-vzTA.js").then((n) => n.n);
43247
+ const { describeImageWithModel } = await import("./image-CQl_mjWk.js").then((n) => n.n);
43248
43248
  return (await describeImageWithModel({
43249
43249
  buffer,
43250
43250
  fileName: "sticker.webp",
@@ -54467,7 +54467,7 @@ const buildTelegramMessageContext = async ({ primaryCtx, allMedia, storeAllowFro
54467
54467
  const hasAudio = allMedia.some((media) => media.contentType?.startsWith("audio/"));
54468
54468
  let preflightTranscript;
54469
54469
  if (isGroup && requireMention && hasAudio && !hasUserText && mentionRegexes.length > 0) try {
54470
- const { transcribeFirstAudio } = await import("./audio-preflight-CBDFctZN.js");
54470
+ const { transcribeFirstAudio } = await import("./audio-preflight-BfmZbg4Y.js");
54471
54471
  preflightTranscript = await transcribeFirstAudio({
54472
54472
  ctx: {
54473
54473
  MediaPaths: allMedia.length > 0 ? allMedia.map((m) => m.path) : void 0,
@@ -56624,7 +56624,7 @@ function loadWebLoginQr() {
56624
56624
  return webLoginQrPromise;
56625
56625
  }
56626
56626
  function loadWebChannel() {
56627
- webChannelPromise ??= import("./web-ChozvJ7I.js");
56627
+ webChannelPromise ??= import("./web-EsMQBIYf.js");
56628
56628
  return webChannelPromise;
56629
56629
  }
56630
56630
  function loadWhatsAppActions() {
@@ -5,15 +5,15 @@ import "./agent-scope-BjwlzIx9.js";
5
5
  import { r as defaultRuntime, t as createSubsystemLogger } from "./subsystem-cuZLebhx.js";
6
6
  import "./workspace-DtomnOme.js";
7
7
  import "./tokens-DA7lUq9l.js";
8
- import { A as resolveEnvelopeFormatOptions, C as enqueueSystemEvent, D as createInboundDebouncer, M as shouldComputeCommandAuthorized, N as buildMentionRegexes, O as resolveInboundDebounceMs, P as normalizeMentionText, T as parseActivationCommand, a as sleepWithAbort, c as recordPendingHistoryEntryIfEnabled, f as createDedupeCache, g as formatDurationPrecise, i as computeBackoff, j as hasControlCommand, k as formatInboundEnvelope, l as shouldAckReactionForWhatsApp, n as resolveMentionGating, o as DEFAULT_GROUP_HISTORY_LIMIT, r as buildPairingReply, s as buildHistoryContextFromEntries, u as dispatchReplyWithBufferedBlockDispatcher, w as normalizeGroupActivation } from "./unified-runner-CX80YMTk.js";
8
+ import { A as resolveEnvelopeFormatOptions, C as enqueueSystemEvent, D as createInboundDebouncer, M as shouldComputeCommandAuthorized, N as buildMentionRegexes, O as resolveInboundDebounceMs, P as normalizeMentionText, T as parseActivationCommand, a as sleepWithAbort, c as recordPendingHistoryEntryIfEnabled, f as createDedupeCache, g as formatDurationPrecise, i as computeBackoff, j as hasControlCommand, k as formatInboundEnvelope, l as shouldAckReactionForWhatsApp, n as resolveMentionGating, o as DEFAULT_GROUP_HISTORY_LIMIT, r as buildPairingReply, s as buildHistoryContextFromEntries, u as dispatchReplyWithBufferedBlockDispatcher, w as normalizeGroupActivation } from "./unified-runner-iByUazvW.js";
9
9
  import "./auth-profiles-CcmUp4KB.js";
10
10
  import { n as formatCliCommand } from "./env-BevtqzD_.js";
11
11
  import "./github-copilot-token-cCYzSU9h.js";
12
12
  import "./boolean-CE7i9tBR.js";
13
- import { H as readSessionUpdatedAt, St as resolveGroupSessionKey, U as recordSessionMetaFromInbound, V as loadSessionStore, W as updateLastRoute } from "./pi-embedded-helpers-BBMy-lqr.js";
13
+ import { H as readSessionUpdatedAt, St as resolveGroupSessionKey, U as recordSessionMetaFromInbound, V as loadSessionStore, W as updateLastRoute } from "./pi-embedded-helpers-B5I53aw6.js";
14
14
  import { n as loadConfig } from "./config-CmwJ3rLZ.js";
15
15
  import "./manifest-registry-Dqmu7CGB.js";
16
- import "./chrome-BjVab8gM.js";
16
+ import "./chrome-Bo7cbvFK.js";
17
17
  import "./frontmatter-CTR5f_Ez.js";
18
18
  import "./skills-B7JO0ASH.js";
19
19
  import "./redact-BDMXB06K.js";
@@ -31,15 +31,15 @@ import "./bindings-CWfvNWzb.js";
31
31
  import "./send-CJCwdFt2.js";
32
32
  import { s as resolveStorePath } from "./paths-D457mxXH.js";
33
33
  import "./tool-images-Dli0kbyH.js";
34
- import "./deliver-D-QFqm31.js";
34
+ import "./deliver-ChSIbiMM.js";
35
35
  import "./diagnostic-Dz2XLFpJ.js";
36
36
  import "./diagnostic-session-state-DPIgjnIW.js";
37
- import "./image-CcS-vzTA.js";
37
+ import "./image-CQl_mjWk.js";
38
38
  import "./pi-auth-json-Df3d9-jY.js";
39
39
  import { J as toLocationContext, Q as upsertChannelPairingRequest, X as readChannelAllowFromStore, q as formatLocationText, x as recordChannelActivity } from "./send-BCZh3xVc.js";
40
40
  import "./pi-model-discovery-Bv5YDJc8.js";
41
41
  import { c as resolveMessagePrefix, s as resolveIdentityNamePrefix, t as createReplyPrefixOptions } from "./reply-prefix-DqV_Oetb.js";
42
- import "./manager-BnEdHzmO.js";
42
+ import "./manager-D_pn0urG.js";
43
43
  import "./gemini-auth-DUyW_oaE.js";
44
44
  import "./retry-BimTxCOW.js";
45
45
  import "./sqlite-BY0p7qhs.js";
@@ -50,7 +50,7 @@ import { t as getAgentScopedMediaLocalRoots } from "./local-roots-DcPP289R.js";
50
50
  import { a as loadWebMedia } from "./ir-ZDAGNleN.js";
51
51
  import "./render-BhKzKdV0.js";
52
52
  import "./commands-registry-DMyd-Yup.js";
53
- import { y as registerUnhandledRejectionHandler } from "./runner-C4-9kFdR.js";
53
+ import { y as registerUnhandledRejectionHandler } from "./runner-DhCi2lT1.js";
54
54
  import "./skill-commands-LTOrAZRN.js";
55
55
  import { t as finalizeInboundContext } from "./inbound-context-DjlU6iBR.js";
56
56
  import "./fetch-Bn4GCTGl.js";
@@ -8,30 +8,30 @@ import { c as resolveIdentityNamePrefix, l as resolveMessagePrefix, t as createR
8
8
  import "./github-copilot-token-BbsJ0Qbo.js";
9
9
  import { r as formatCliCommand } from "./env-CVhxRaxk.js";
10
10
  import "./tokens-W53xiM4v.js";
11
- import { A as normalizeMentionText, C as createInboundDebouncer, D as hasControlCommand, E as resolveEnvelopeFormatOptions, O as shouldComputeCommandAuthorized, S as parseActivationCommand, T as formatInboundEnvelope, _ as formatDurationPrecise, a as DEFAULT_GROUP_HISTORY_LIMIT, b as enqueueSystemEvent, c as recordChannelActivity, f as createDedupeCache, g as toLocationContext, h as formatLocationText, i as sleepWithAbort, k as buildMentionRegexes, l as shouldAckReactionForWhatsApp, n as buildPairingReply, o as buildHistoryContextFromEntries, r as computeBackoff, s as recordPendingHistoryEntryIfEnabled, t as resolveMentionGating, u as dispatchReplyWithBufferedBlockDispatcher, v as readChannelAllowFromStore, w as resolveInboundDebounceMs, x as normalizeGroupActivation, y as upsertChannelPairingRequest } from "./pi-embedded-CWsY69-4.js";
11
+ import { A as normalizeMentionText, C as createInboundDebouncer, D as hasControlCommand, E as resolveEnvelopeFormatOptions, O as shouldComputeCommandAuthorized, S as parseActivationCommand, T as formatInboundEnvelope, _ as formatDurationPrecise, a as DEFAULT_GROUP_HISTORY_LIMIT, b as enqueueSystemEvent, c as recordChannelActivity, f as createDedupeCache, g as toLocationContext, h as formatLocationText, i as sleepWithAbort, k as buildMentionRegexes, l as shouldAckReactionForWhatsApp, n as buildPairingReply, o as buildHistoryContextFromEntries, r as computeBackoff, s as recordPendingHistoryEntryIfEnabled, t as resolveMentionGating, u as dispatchReplyWithBufferedBlockDispatcher, v as readChannelAllowFromStore, w as resolveInboundDebounceMs, x as normalizeGroupActivation, y as upsertChannelPairingRequest } from "./pi-embedded-CLw_ZzEZ.js";
12
12
  import { i as logWebSelfId, l as readWebSelfId, n as WA_WEB_AUTH_DIR, p as webAuthExists, r as getWebAuthAgeMs, s as pickWebChannel, t as resolveWhatsAppAccount } from "./accounts-DhrbJeGC.js";
13
13
  import "./plugins-BubU3QyP.js";
14
14
  import "./bindings-BXUZYJ9y.js";
15
15
  import "./replies-6QoHWaww.js";
16
- import "./deliver-B4-bcot9.js";
16
+ import "./deliver-DEgRQM4J.js";
17
17
  import "./diagnostic-ClKr4DnF.js";
18
18
  import "./diagnostic-session-state-DmrztgHU.js";
19
19
  import { g as resolveChannelGroupRequireMention, h as resolveChannelGroupPolicy } from "./thinking-CuOvs-Ey.js";
20
20
  import "./image-ops-B_RhmJoE.js";
21
21
  import "./pi-model-discovery-DZrt2PIy.js";
22
22
  import "./message-channel-CPEGgWpF.js";
23
- import { B as loadSessionStore, Dt as saveMediaBuffer, H as recordSessionMetaFromInbound, V as readSessionUpdatedAt, W as updateLastRoute, yt as resolveGroupSessionKey } from "./pi-embedded-helpers-ChEYbgVj.js";
23
+ import { B as loadSessionStore, Dt as saveMediaBuffer, H as recordSessionMetaFromInbound, V as readSessionUpdatedAt, W as updateLastRoute, yt as resolveGroupSessionKey } from "./pi-embedded-helpers-sUAEIC9X.js";
24
24
  import { n as loadConfig } from "./config-BrEmT6tv.js";
25
25
  import "./manifest-registry-B51J8ZWx.js";
26
- import "./chrome-nPMY1XTJ.js";
26
+ import "./chrome-DYp18Q0t.js";
27
27
  import "./skills-t4ZOwJM2.js";
28
28
  import "./redact-Bcq1snj9.js";
29
29
  import "./errors-C2nBLmDT.js";
30
30
  import "./ssrf-CQMi5Tnq.js";
31
31
  import { s as resolveStorePath } from "./paths-CM0XImQQ.js";
32
32
  import "./tool-images-BwyT-V2q.js";
33
- import "./image-CDwtQjmt.js";
34
- import "./manager-09r0qPze.js";
33
+ import "./image-Bx-hvoNJ.js";
34
+ import "./manager-YQxK2t0C.js";
35
35
  import "./gemini-auth-B4V7QI4Y.js";
36
36
  import "./sqlite-D1y8Y46G.js";
37
37
  import "./target-errors-BjoQKl76.js";
@@ -43,7 +43,7 @@ import "./render-2Ztmr_V0.js";
43
43
  import "./commands-registry-B19Mna74.js";
44
44
  import "./skill-commands-CAGUvBqy.js";
45
45
  import { t as finalizeInboundContext } from "./inbound-context-D8AKttSx.js";
46
- import { p as registerUnhandledRejectionHandler } from "./runner-8ALr2UII.js";
46
+ import { p as registerUnhandledRejectionHandler } from "./runner-COGFTeDw.js";
47
47
  import { i as convertMarkdownTables, r as setActiveWebListener } from "./active-listener-UTJr_K1e.js";
48
48
  import { n as resolveAgentRoute, t as buildAgentSessionKey } from "./resolve-route-DWXhDXTs.js";
49
49
  import "./pi-auth-json-DYImz-_r.js";
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@symerian/symi",
3
- "version": "3.0.17",
3
+ "version": "3.0.18",
4
4
  "description": "Multi-channel AI gateway with extensible messaging integrations",
5
5
  "keywords": [],
6
6
  "homepage": "https://github.com/jaysteelmind/symi#readme",
@@ -1,54 +0,0 @@
1
- import { a as WA_WEB_AUTH_DIR, g as webAuthExists, s as logWebSelfId, u as pickWebChannel } from "./accounts-BfyWsC_i.js";
2
- import "./unified-runner-CnM7lyNd.js";
3
- import "./registry-CZVURNhF.js";
4
- import "./paths-DAMyaxr7.js";
5
- import "./model-selection-B9qaVQSJ.js";
6
- import "./config-7wk65zKC.js";
7
- import "./fs-safe-wBYbAkJF.js";
8
- import "./subsystem-CXqYeDy-.js";
9
- import "./agent-scope-ChbGV6of.js";
10
- import "./tool-images-DpBaWEHT.js";
11
- import "./target-errors-B8mokOeH.js";
12
- import "./replies-hwRbkU3z.js";
13
- import "./chunk-DhDkBujV.js";
14
- import "./runner-Cq5jvwQ7.js";
15
- import "./reply-prefix-CaXmzZlx.js";
16
- import "./tokens-CvlONEqh.js";
17
- import "./skill-commands-0LF9HTGr.js";
18
- import "./skills-BIT_O7J0.js";
19
- import "./redact-Dd8jrogi.js";
20
- import "./errors-C4A6pz-b.js";
21
- import "./ssrf-BgY65jh5.js";
22
- import "./local-roots-c_gaPs01.js";
23
- import "./chrome-BKzAKr3K.js";
24
- import "./command-format-CVrYFyZS.js";
25
- import "./thinking-Ca0DhqzO.js";
26
- import "./plugins-DF81oSaI.js";
27
- import "./bindings-CN2Qmefj.js";
28
- import "./deliver-TxAcw7J5.js";
29
- import "./message-channel-BrAhJJV_.js";
30
- import "./pi-embedded-helpers-s_U0Un7j.js";
31
- import "./github-copilot-token-BbOxnzZ-.js";
32
- import "./manifest-registry-Dnic6Chh.js";
33
- import "./paths-DP1ngpUU.js";
34
- import "./diagnostic-Debx4frd.js";
35
- import { n as monitorWebInbox, t as monitorWebChannel } from "./channel-web-DTyqujjA.js";
36
- import "./diagnostic-session-state-BORFVz7h.js";
37
- import "./image-BtDVmYA5.js";
38
- import "./pi-auth-json-ZO118hoy.js";
39
- import "./pi-model-discovery-Cvbykdeu.js";
40
- import "./manager-B71SCzos.js";
41
- import "./gemini-auth-7U2pm2Ky.js";
42
- import "./sqlite-Bx5Y5U5X.js";
43
- import "./markdown-tables-Dur7OTlM.js";
44
- import "./ir-CKMvRrGW.js";
45
- import "./render-qcqmrHse.js";
46
- import "./commands-registry-17yfZkHZ.js";
47
- import "./active-listener-DcJW7xAT.js";
48
- import "./resolve-route-ClCyiOeu.js";
49
- import "./proxy-DOYns4nT.js";
50
- import { n as sendMessageWhatsApp } from "./outbound-DB1wDM8b.js";
51
- import { i as waitForWaConnection, t as createWaSocket } from "./session-B_TkB65Y.js";
52
- import { t as loginWeb } from "./login-DUym1Jy0.js";
53
-
54
- export { WA_WEB_AUTH_DIR, createWaSocket, logWebSelfId, loginWeb, monitorWebChannel, monitorWebInbox, pickWebChannel, sendMessageWhatsApp, waitForWaConnection, webAuthExists };
@@ -1,71 +0,0 @@
1
- ---
2
- name: 1password
3
- description: Set up and use 1Password CLI (op). Use when installing the CLI, enabling desktop app integration, signing in (single or multi-account), or reading/injecting/running secrets via op.
4
- homepage: https://developer.1password.com/docs/cli/get-started/
5
- metadata:
6
- {
7
- "symi":
8
- {
9
- "emoji": "🔐",
10
- "requires": { "bins": ["op"] },
11
- "install":
12
- [
13
- {
14
- "id": "brew",
15
- "kind": "brew",
16
- "formula": "1password-cli",
17
- "bins": ["op"],
18
- "label": "Install 1Password CLI (brew)",
19
- },
20
- ],
21
- },
22
- }
23
- triggers: [1password]
24
- ---
25
-
26
- # 1Password CLI
27
-
28
- Follow the official CLI get-started steps. Don't guess install commands.
29
-
30
- ## References
31
-
32
- - `references/get-started.md` (install + app integration + sign-in flow)
33
- - `references/cli-examples.md` (real `op` examples)
34
-
35
- ## Workflow
36
-
37
- 1. Check OS + shell.
38
- 2. Verify CLI present: `op --version`.
39
- 3. Confirm desktop app integration is enabled (per get-started) and the app is unlocked.
40
- 4. REQUIRED: create a fresh tmux session for all `op` commands (no direct `op` calls outside tmux).
41
- 5. Sign in / authorize inside tmux: `op signin` (expect app prompt).
42
- 6. Verify access inside tmux: `op whoami` (must succeed before any secret read).
43
- 7. If multiple accounts: use `--account` or `OP_ACCOUNT`.
44
-
45
- ## REQUIRED tmux session (T-Max)
46
-
47
- The shell tool uses a fresh TTY per command. To avoid re-prompts and failures, always run `op` inside a dedicated tmux session with a fresh socket/session name.
48
-
49
- Example (see `tmux` skill for socket conventions, do not reuse old session names):
50
-
51
- ```bash
52
- SOCKET_DIR="${SYMI_TMUX_SOCKET_DIR:-${SYMI_TMUX_SOCKET_DIR:-${TMPDIR:-/tmp}/symi-tmux-sockets}}"
53
- mkdir -p "$SOCKET_DIR"
54
- SOCKET="$SOCKET_DIR/symi-op.sock"
55
- SESSION="op-auth-$(date +%Y%m%d-%H%M%S)"
56
-
57
- tmux -S "$SOCKET" new -d -s "$SESSION" -n shell
58
- tmux -S "$SOCKET" send-keys -t "$SESSION":0.0 -- "op signin --account my.1password.com" Enter
59
- tmux -S "$SOCKET" send-keys -t "$SESSION":0.0 -- "op whoami" Enter
60
- tmux -S "$SOCKET" send-keys -t "$SESSION":0.0 -- "op vault list" Enter
61
- tmux -S "$SOCKET" capture-pane -p -J -t "$SESSION":0.0 -S -200
62
- tmux -S "$SOCKET" kill-session -t "$SESSION"
63
- ```
64
-
65
- ## Guardrails
66
-
67
- - Never paste secrets into logs, chat, or code.
68
- - Prefer `op run` / `op inject` over writing secrets to disk.
69
- - If sign-in without app integration is needed, use `op account add`.
70
- - If a command returns "account is not signed in", re-run `op signin` inside tmux and authorize in the app.
71
- - Do not run `op` outside tmux; stop and ask if tmux is unavailable.
@@ -1,29 +0,0 @@
1
- # op CLI examples (from op help)
2
-
3
- ## Sign in
4
-
5
- - `op signin`
6
- - `op signin --account <shorthand|signin-address|account-id|user-id>`
7
-
8
- ## Read
9
-
10
- - `op read op://app-prod/db/password`
11
- - `op read "op://app-prod/db/one-time password?attribute=otp"`
12
- - `op read "op://app-prod/ssh key/private key?ssh-format=openssh"`
13
- - `op read --out-file ./key.pem op://app-prod/server/ssh/key.pem`
14
-
15
- ## Run
16
-
17
- - `export DB_PASSWORD="op://app-prod/db/password"`
18
- - `op run --no-masking -- printenv DB_PASSWORD`
19
- - `op run --env-file="./.env" -- printenv DB_PASSWORD`
20
-
21
- ## Inject
22
-
23
- - `echo "db_password: {{ op://app-prod/db/password }}" | op inject`
24
- - `op inject -i config.yml.tpl -o config.yml`
25
-
26
- ## Whoami / accounts
27
-
28
- - `op whoami`
29
- - `op account list`
@@ -1,17 +0,0 @@
1
- # 1Password CLI get-started (summary)
2
-
3
- - Works on macOS, Windows, and Linux.
4
- - macOS/Linux shells: bash, zsh, sh, fish.
5
- - Windows shell: PowerShell.
6
- - Requires a 1Password subscription and the desktop app to use app integration.
7
- - macOS requirement: Big Sur 11.0.0 or later.
8
- - Linux app integration requires PolKit + an auth agent.
9
- - Install the CLI per the official doc for your OS.
10
- - Enable desktop app integration in the 1Password app:
11
- - Open and unlock the app, then select your account/collection.
12
- - macOS: Settings > Developer > Integrate with 1Password CLI (Touch ID optional).
13
- - Windows: turn on Windows Hello, then Settings > Developer > Integrate.
14
- - Linux: Settings > Security > Unlock using system authentication, then Settings > Developer > Integrate.
15
- - After integration, run any command to sign in (example in docs: `op vault list`).
16
- - If multiple accounts: use `op signin` to pick one, or `--account` / `OP_ACCOUNT`.
17
- - For non-integration auth, use `op account add`.
@@ -1,78 +0,0 @@
1
- ---
2
- name: apple-notes
3
- description: Manage Apple Notes via the `memo` CLI on macOS (create, view, edit, delete, search, move, and export notes). Use when a user asks Symi to add a note, list notes, search notes, or manage note folders.
4
- homepage: https://github.com/antoniorodr/memo
5
- metadata:
6
- {
7
- "symi":
8
- {
9
- "emoji": "📝",
10
- "os": ["darwin"],
11
- "requires": { "bins": ["memo"] },
12
- "install":
13
- [
14
- {
15
- "id": "brew",
16
- "kind": "brew",
17
- "formula": "antoniorodr/memo/memo",
18
- "bins": ["memo"],
19
- "label": "Install memo via Homebrew",
20
- },
21
- ],
22
- },
23
- }
24
- triggers: [apple-notes, apple, notes]
25
- ---
26
-
27
- # Apple Notes CLI
28
-
29
- Use `memo notes` to manage Apple Notes directly from the terminal. Create, view, edit, delete, search, move notes between folders, and export to HTML/Markdown.
30
-
31
- Setup
32
-
33
- - Install (Homebrew): `brew tap antoniorodr/memo && brew install antoniorodr/memo/memo`
34
- - Manual (pip): `pip install .` (after cloning the repo)
35
- - macOS-only; if prompted, grant Automation access to Notes.app.
36
-
37
- View Notes
38
-
39
- - List all notes: `memo notes`
40
- - Filter by folder: `memo notes -f "Folder Name"`
41
- - Search notes (fuzzy): `memo notes -s "query"`
42
-
43
- Create Notes
44
-
45
- - Add a new note: `memo notes -a`
46
- - Opens an interactive editor to compose the note.
47
- - Quick add with title: `memo notes -a "Note Title"`
48
-
49
- Edit Notes
50
-
51
- - Edit existing note: `memo notes -e`
52
- - Interactive selection of note to edit.
53
-
54
- Delete Notes
55
-
56
- - Delete a note: `memo notes -d`
57
- - Interactive selection of note to delete.
58
-
59
- Move Notes
60
-
61
- - Move note to folder: `memo notes -m`
62
- - Interactive selection of note and destination folder.
63
-
64
- Export Notes
65
-
66
- - Export to HTML/Markdown: `memo notes -ex`
67
- - Exports selected note; uses Mistune for markdown processing.
68
-
69
- Limitations
70
-
71
- - Cannot edit notes containing images or attachments.
72
- - Interactive prompts may require terminal access.
73
-
74
- Notes
75
-
76
- - macOS-only.
77
- - Requires Apple Notes.app to be accessible.
78
- - For automation, grant permissions in System Settings > Privacy & Security > Automation.
@@ -1,119 +0,0 @@
1
- ---
2
- name: apple-reminders
3
- description: Manage Apple Reminders via remindctl CLI (list, add, edit, complete, delete). Supports lists, date filters, and JSON/plain output.
4
- homepage: https://github.com/steipete/remindctl
5
- metadata:
6
- {
7
- "symi":
8
- {
9
- "emoji": "⏰",
10
- "os": ["darwin"],
11
- "requires": { "bins": ["remindctl"] },
12
- "install":
13
- [
14
- {
15
- "id": "brew",
16
- "kind": "brew",
17
- "formula": "steipete/tap/remindctl",
18
- "bins": ["remindctl"],
19
- "label": "Install remindctl via Homebrew",
20
- },
21
- ],
22
- },
23
- }
24
- triggers: [apple-reminders, apple, reminders]
25
- ---
26
-
27
- # Apple Reminders CLI (remindctl)
28
-
29
- Use `remindctl` to manage Apple Reminders directly from the terminal.
30
-
31
- ## When to Use
32
-
33
- ✅ **USE this skill when:**
34
-
35
- - User explicitly mentions "reminder" or "Reminders app"
36
- - Creating personal to-dos with due dates that sync to iOS
37
- - Managing Apple Reminders lists
38
- - User wants tasks to appear in their iPhone/iPad Reminders app
39
-
40
- ## When NOT to Use
41
-
42
- ❌ **DON'T use this skill when:**
43
-
44
- - Scheduling Symi tasks or alerts → use `cron` tool with systemEvent instead
45
- - Calendar events or appointments → use Apple Calendar
46
- - Project/work task management → use Notion, GitHub Issues, or task queue
47
- - One-time notifications → use `cron` tool for timed alerts
48
- - User says "remind me" but means a Symi alert → clarify first
49
-
50
- ## Setup
51
-
52
- - Install: `brew install steipete/tap/remindctl`
53
- - macOS-only; grant Reminders permission when prompted
54
- - Check status: `remindctl status`
55
- - Request access: `remindctl authorize`
56
-
57
- ## Common Commands
58
-
59
- ### View Reminders
60
-
61
- ```bash
62
- remindctl # Today's reminders
63
- remindctl today # Today
64
- remindctl tomorrow # Tomorrow
65
- remindctl week # This week
66
- remindctl overdue # Past due
67
- remindctl all # Everything
68
- remindctl 2026-01-04 # Specific date
69
- ```
70
-
71
- ### Manage Lists
72
-
73
- ```bash
74
- remindctl list # List all lists
75
- remindctl list Work # Show specific list
76
- remindctl list Projects --create # Create list
77
- remindctl list Work --delete # Delete list
78
- ```
79
-
80
- ### Create Reminders
81
-
82
- ```bash
83
- remindctl add "Buy milk"
84
- remindctl add --title "Call mom" --list Personal --due tomorrow
85
- remindctl add --title "Meeting prep" --due "2026-02-15 09:00"
86
- ```
87
-
88
- ### Complete/Delete
89
-
90
- ```bash
91
- remindctl complete 1 2 3 # Complete by ID
92
- remindctl delete 4A83 --force # Delete by ID
93
- ```
94
-
95
- ### Output Formats
96
-
97
- ```bash
98
- remindctl today --json # JSON for scripting
99
- remindctl today --plain # TSV format
100
- remindctl today --quiet # Counts only
101
- ```
102
-
103
- ## Date Formats
104
-
105
- Accepted by `--due` and date filters:
106
-
107
- - `today`, `tomorrow`, `yesterday`
108
- - `YYYY-MM-DD`
109
- - `YYYY-MM-DD HH:mm`
110
- - ISO 8601 (`2026-01-04T12:34:56Z`)
111
-
112
- ## Example: Clarifying User Intent
113
-
114
- User: "Remind me to check on the deploy in 2 hours"
115
-
116
- **Ask:** "Do you want this in Apple Reminders (syncs to your phone) or as a Symi alert (I'll message you here)?"
117
-
118
- - Apple Reminders → use this skill
119
- - Symi alert → use `cron` tool with systemEvent