@symerian/symi 2.6.18 → 2.6.20

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 (118) hide show
  1. package/dist/{agents-BEWe0DLk.js → agents-p4UQ5QFH.js} +4 -4
  2. package/dist/{agents.config-C76tSodQ.js → agents.config-D7aaLeuW.js} +1 -1
  3. package/dist/{agents.config-DxYp0zoG.js → agents.config-DDFFWWKf.js} +1 -1
  4. package/dist/{audio-preflight-CPBOQV4I.js → audio-preflight-C40mKAp7.js} +4 -4
  5. package/dist/{audio-preflight-BVaaZWkg.js → audio-preflight-DHTaS5U1.js} +4 -4
  6. package/dist/{auth-choice-EwOsmB_b.js → auth-choice-BXoSDb_9.js} +1 -1
  7. package/dist/{auth-choice-DrYJKB8t.js → auth-choice-DeYYQOns.js} +1 -1
  8. package/dist/{banner-CJyz7ro7.js → banner-_OS2xmMF.js} +1 -1
  9. package/dist/build-info.json +3 -3
  10. package/dist/bundled/boot-md/handler.js +6 -6
  11. package/dist/bundled/session-memory/handler.js +6 -6
  12. package/dist/canvas-host/a2ui/.bundle.hash +1 -1
  13. package/dist/{channel-options-D0NlH6Qb.js → channel-options-CbZIcMGC.js} +1 -1
  14. package/dist/{channel-options-tWyK68mk.js → channel-options-D9UfDD9j.js} +1 -1
  15. package/dist/{channel-web-PvWA2ukO.js → channel-web-L1DDfHzk.js} +1 -1
  16. package/dist/{channels-cli-B50IZ27a.js → channels-cli-4GM5fqNa.js} +4 -4
  17. package/dist/{channels-cli-BAXmmIxX.js → channels-cli-CXa7mgR9.js} +4 -4
  18. package/dist/{chrome-DkaXoP36.js → chrome-CDJYxX5a.js} +5 -5
  19. package/dist/{chrome-D2SKJnR7.js → chrome-DYZwl5Gv.js} +5 -5
  20. package/dist/{cli-CPKEDe6C.js → cli-B-wwaV4Y.js} +1 -1
  21. package/dist/{cli-BW4igUHG.js → cli-C8QNJgG8.js} +1 -1
  22. package/dist/{command-registry-DV-FTDz1.js → command-registry-DXdP9h9E.js} +9 -9
  23. package/dist/{completion-cli-BqzmOZg7.js → completion-cli-BqsjyQ-I.js} +1 -1
  24. package/dist/{completion-cli-Cbr2b-rs.js → completion-cli-hQmnRt3u.js} +2 -2
  25. package/dist/{config-cli-DBjlHFwQ.js → config-cli-DvqG-E-3.js} +1 -1
  26. package/dist/{config-cli-D5QqQi4y.js → config-cli-i08FMBVe.js} +1 -1
  27. package/dist/{configure-DbTH7t_m.js → configure-Cxa5EWql.js} +3 -3
  28. package/dist/{configure-B4VAN-WJ.js → configure-DKc61kbD.js} +3 -3
  29. package/dist/control-ui/js/models.js +2 -2
  30. package/dist/{deliver-C-37cZUe.js → deliver-BH0l3UKW.js} +1 -1
  31. package/dist/{deliver-C46-vyqg.js → deliver-dODxSv3b.js} +1 -1
  32. package/dist/{doctor-completion-v8uq--hy.js → doctor-completion-C9CcD8pq.js} +1 -1
  33. package/dist/{doctor-completion-Do0e0eZE.js → doctor-completion-Dq3zKXdh.js} +1 -1
  34. package/dist/entry.js +1 -1
  35. package/dist/extensionAPI.js +6 -6
  36. package/dist/{gateway-cli-BkOe3JQ_.js → gateway-cli-CxzaL9HR.js} +9 -9
  37. package/dist/{gateway-cli-BAiFaCGg.js → gateway-cli-D4JEZSb9.js} +9 -9
  38. package/dist/{glass-ui-ws-DFAQWoiK.js → glass-ui-ws-D4Dqbeuw.js} +7 -7
  39. package/dist/{glass-ui-ws-B8V4Slwd.js → glass-ui-ws-KXmUDlRi.js} +7 -7
  40. package/dist/{health-8bTzq722.js → health-8DlAtuas.js} +1 -1
  41. package/dist/{health-B3pwVJ_N.js → health-B8uQe9CP.js} +1 -1
  42. package/dist/{hooks-cli-D1Yhb7y5.js → hooks-cli-B7qROHCQ.js} +2 -2
  43. package/dist/{hooks-cli-Vqz0A84F.js → hooks-cli-BAM_LcfL.js} +2 -2
  44. package/dist/{image-DcpMiprB.js → image-CHzdaNJ4.js} +1 -1
  45. package/dist/{image-CuzFLQWC.js → image-CXu8W39c.js} +1 -1
  46. package/dist/index.js +6 -6
  47. package/dist/llm-slug-generator.js +6 -6
  48. package/dist/{models-cli-BrDyN5KN.js → models-cli-BFkooNFz.js} +3 -3
  49. package/dist/{models-cli-EP_U-tWq.js → models-cli-DwXzh6z6.js} +2 -2
  50. package/dist/{models-BQOnDzS9.js → models-xTtbDVki.js} +2 -2
  51. package/dist/{onboard-BZNptre7.js → onboard-8nBHoLPU.js} +2 -2
  52. package/dist/{onboard-DM0BChC6.js → onboard-D9GAiRIO.js} +2 -2
  53. package/dist/{onboard-channels-C6dLmiYY.js → onboard-channels-G9yKy7Ui.js} +1 -1
  54. package/dist/{onboard-channels-4jeB30Ty.js → onboard-channels-pSqXeoTx.js} +1 -1
  55. package/dist/{onboarding-DQJQ-k9A.js → onboarding-C8K3ipt8.js} +3 -3
  56. package/dist/{onboarding-CDdiYaCC.js → onboarding-Wha0uWD5.js} +3 -3
  57. package/dist/{onboarding.finalize-Bmd5TpyH.js → onboarding.finalize-CC_hOdGz.js} +5 -5
  58. package/dist/{onboarding.finalize-B82xL12C.js → onboarding.finalize-CPqgV8GM.js} +6 -6
  59. package/dist/{pi-embedded-Dtmwbds4.js → pi-embedded-9mHDXoCz.js} +67 -242
  60. package/dist/{pi-embedded-helpers-B8kqLWns.js → pi-embedded-helpers-lgx_U5KS.js} +4 -4
  61. package/dist/{pi-embedded-helpers-CfqDGQ9J.js → pi-embedded-helpers-pubKo8HQ.js} +4 -4
  62. package/dist/{plugin-registry-D7ylmzDw.js → plugin-registry-8Diq8Bpt.js} +1 -1
  63. package/dist/{plugin-registry-DG_WWCr9.js → plugin-registry-8qRWG0zs.js} +1 -1
  64. package/dist/plugin-sdk/{channel-web-_efq-pM9.js → channel-web-CVpBWp5N.js} +1 -1
  65. package/dist/plugin-sdk/index.js +2 -2
  66. package/dist/plugin-sdk/{reply-D2W7XCcz.js → reply-qc0sy-0a.js} +53 -228
  67. package/dist/plugin-sdk/{web-CmT3D7vj.js → web-BRiKjFQe.js} +2 -2
  68. package/dist/{plugins-cli-CMCwFRL9.js → plugins-cli-BsGLF2yJ.js} +2 -2
  69. package/dist/{plugins-cli-BUFrZlyR.js → plugins-cli-DSVlBtQR.js} +2 -2
  70. package/dist/{program-BdVazL5L.js → program-DXDaxm5S.js} +7 -7
  71. package/dist/{program-context-DZNOBe-u.js → program-context-0iUzRT8G.js} +17 -17
  72. package/dist/{prompt-select-styled-XyOMjPBV.js → prompt-select-styled-B9Vx6n4u.js} +4 -4
  73. package/dist/{prompt-select-styled-uLoOKbdZ.js → prompt-select-styled-BTsilnfC.js} +4 -4
  74. package/dist/{provider-auth-helpers-CWf7gdZW.js → provider-auth-helpers-DEqcL4cK.js} +1 -1
  75. package/dist/{provider-auth-helpers-D01YbcHZ.js → provider-auth-helpers-Ta9EaBo3.js} +1 -1
  76. package/dist/{push-apns-B-zVLcnN.js → push-apns-_7NSUBR2.js} +1 -1
  77. package/dist/{push-apns-B2bxLda8.js → push-apns-ivn-KjGr.js} +1 -1
  78. package/dist/{pw-ai-m0mj2KWK.js → pw-ai-B5asscAD.js} +1 -1
  79. package/dist/{pw-ai-1htA-NnS.js → pw-ai-De-KR9_s.js} +1 -1
  80. package/dist/{register.agent-BYZEiWk1.js → register.agent-BKM1SK6p.js} +6 -6
  81. package/dist/{register.agent-BF6_rPdM.js → register.agent-BR0TqnOO.js} +5 -5
  82. package/dist/{register.configure-4lt1A0NF.js → register.configure-B5vBXQB9.js} +6 -6
  83. package/dist/{register.configure-B0g-yfDR.js → register.configure-BIiuwamc.js} +6 -6
  84. package/dist/{register.maintenance-DXZyjFYw.js → register.maintenance-CQMV0_xM.js} +8 -8
  85. package/dist/{register.maintenance-WBpgdygw.js → register.maintenance-CzpoyDDR.js} +7 -7
  86. package/dist/{register.message-BHRBK4eH.js → register.message-DCx7M65y.js} +2 -2
  87. package/dist/{register.message-CuoXu-_e.js → register.message-Dg0DcwTW.js} +2 -2
  88. package/dist/{register.onboard-D-P9Wc41.js → register.onboard-BG0dlbOM.js} +4 -4
  89. package/dist/{register.onboard-D5-L8JYT.js → register.onboard-BWoUYNe1.js} +4 -4
  90. package/dist/{register.setup-D7NNQwXc.js → register.setup-BlhLiXjH.js} +4 -4
  91. package/dist/{register.setup-BzmkdzSO.js → register.setup-BsA9V9Zh.js} +4 -4
  92. package/dist/{register.status-health-sessions-BIwZhPIZ.js → register.status-health-sessions-DMBqK6OA.js} +3 -3
  93. package/dist/{register.status-health-sessions-DiCr003h.js → register.status-health-sessions-DnPQ6EbH.js} +3 -3
  94. package/dist/{register.subclis-BxbyrMu1.js → register.subclis-nswajsbE.js} +9 -9
  95. package/dist/{reply-BgOOEOPX.js → reply-DU025-Dw.js} +53 -228
  96. package/dist/{run-main-BW5eFi2Y.js → run-main-DjiZHV0H.js} +14 -14
  97. package/dist/{runner-BcQ0sF9T.js → runner-DUBExAb5.js} +1 -1
  98. package/dist/{runner-CU9l0uJh.js → runner-WAG0M5s9.js} +1 -1
  99. package/dist/{server-methods-D-Gd1kMo.js → server-methods-BefrlQc3.js} +7 -7
  100. package/dist/{server-methods-Dp8iuEko.js → server-methods-CrPLWtui.js} +7 -7
  101. package/dist/{server-node-events-CnjqDQbZ.js → server-node-events-CKYqZ_QS.js} +2 -2
  102. package/dist/{server-node-events-B2_RCsYi.js → server-node-events-CjsIxKpS.js} +2 -2
  103. package/dist/{status-CrVk9Tz5.js → status-BWaIkbur.js} +1 -1
  104. package/dist/{status-CGhoES6L.js → status-DWpakHjS.js} +1 -1
  105. package/dist/{status-4PSvL6ui.js → status-eergZLRZ.js} +2 -2
  106. package/dist/{status-kFfqsras.js → status-iuYHrvPw.js} +2 -2
  107. package/dist/{subagent-registry-M6DQwhYN.js → subagent-registry-C-JJ2VmR.js} +53 -228
  108. package/dist/{unified-runner-DckayuEM.js → unified-runner-BEC009tx.js} +67 -242
  109. package/dist/{update-cli-x5YGUm9F.js → update-cli-BEQF9OZ6.js} +7 -7
  110. package/dist/{update-cli-DCYkskZu.js → update-cli-C1B-X-g-.js} +8 -8
  111. package/dist/{update-runner-Dmki2xrH.js → update-runner-Dnq8KGjY.js} +1 -1
  112. package/dist/{update-runner-BIp88-4P.js → update-runner-zv3kaly2.js} +1 -1
  113. package/dist/{web-1JPHv6du.js → web-B5ciapWd.js} +6 -6
  114. package/dist/{web-DWSTD7Gy.js → web-BUXU8aHt.js} +1 -1
  115. package/dist/{web-rShvuTx4.js → web-DLKmJqCG.js} +2 -2
  116. package/dist/{web-C40boK8U.js → web-Dkz9WSaL.js} +6 -6
  117. package/package.json +1 -1
  118. package/skills/self-inspect/SKILL.md +0 -109
@@ -1,6 +1,6 @@
1
1
  import { u as resolveGatewayPort } from "./paths-Cqn-zk3M.js";
2
2
  import { B as theme, k as info, z as isRich } from "./utils-B-0b9bGM.js";
3
- import { B as summarizeRestartSentinel, Jt as sha256HexPrefix, _t as formatUsageReportLines, a as buildChannelSummary, gt as loadProviderUsageSummary, h as listAgentsForGateway, m as classifySessionKey, o as buildChannelAccountSnapshot, pr as lookupContextTokens, s as formatChannelAllowFrom, wr as peekSystemEvents, x as resolveSessionModelRef, z as readRestartSentinel } from "./reply-BgOOEOPX.js";
3
+ import { B as summarizeRestartSentinel, Jt as sha256HexPrefix, _t as formatUsageReportLines, a as buildChannelSummary, gt as loadProviderUsageSummary, h as listAgentsForGateway, m as classifySessionKey, o as buildChannelAccountSnapshot, pr as lookupContextTokens, s as formatChannelAllowFrom, wr as peekSystemEvents, x as resolveSessionModelRef, z as readRestartSentinel } from "./reply-DU025-Dw.js";
4
4
  import { S as parseAgentSessionKey } from "./session-key-DCt45XZa.js";
5
5
  import { t as resolveSymiPackageRoot } from "./symi-root-CrGJbkzf.js";
6
6
  import { n as runExec } from "./exec-CWkblSrI.js";
@@ -28,7 +28,7 @@ import { t as formatRuntimeStatusWithDetails } from "./runtime-status-CR9445g5.j
28
28
  import { t as readLastGatewayErrorLine } from "./diagnostics-BAMlsVVX.js";
29
29
  import { t as renderTable } from "./table-BTgkRafz.js";
30
30
  import { a as resolveGatewayProbeAuth$1, c as probeGateway, t as runSecurityAudit } from "./audit-CrITRV6w.js";
31
- import { a as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-B3pwVJ_N.js";
31
+ import { a as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-B8uQe9CP.js";
32
32
  import { g as resolveUpdateChannelDisplay, i as formatGitInstallLabel, m as normalizeUpdateChannel, t as checkUpdateStatus } from "./update-check-CtckACbb.js";
33
33
  import { t as resolveNodeService } from "./node-service-Cxz4e-Qd.js";
34
34
  import { n as redactSecrets, t as formatGatewayAuthUsed } from "./format-yQZNwAF2.js";
@@ -9,7 +9,7 @@ import { c as resolveAgentWorkspaceDir } from "./agent-scope-D-jRCY0d.js";
9
9
  import { t as buildWorkspaceSkillStatus } from "./skills-status-DKXJ-tbi.js";
10
10
  import { H as VERSION, i as loadConfig, o as readConfigFileSnapshot } from "./config-DHBLS1Hl.js";
11
11
  import { n as callGateway, t as buildGatewayConnectionDetails } from "./call-BcE47FtD.js";
12
- import { En as peekSystemEvents, St as summarizeRestartSentinel, cn as buildChannelAccountSnapshot, in as formatUsageReportLines, ln as formatChannelAllowFrom, nt as sha256HexPrefix, rn as loadProviderUsageSummary, sn as buildChannelSummary, xt as readRestartSentinel } from "./subagent-registry-M6DQwhYN.js";
12
+ import { En as peekSystemEvents, St as summarizeRestartSentinel, cn as buildChannelAccountSnapshot, in as formatUsageReportLines, ln as formatChannelAllowFrom, nt as sha256HexPrefix, rn as loadProviderUsageSummary, sn as buildChannelSummary, xt as readRestartSentinel } from "./subagent-registry-C-JJ2VmR.js";
13
13
  import { F as resolveMainSessionKey, j as resolveFreshSessionTotalTokens, o as loadSessionStore } from "./sessions-CJXnZVjR.js";
14
14
  import { n as listChannelPlugins } from "./plugins-CwSlLxM8.js";
15
15
  import { o as getTailnetHostname, s as readTailscaleStatusJson } from "./tailscale-CbbvYNVw.js";
@@ -29,7 +29,7 @@ import { t as formatRuntimeStatusWithDetails } from "./runtime-status-hFVEC3wO.j
29
29
  import { t as readLastGatewayErrorLine } from "./diagnostics-CS1ov_hH.js";
30
30
  import { t as renderTable } from "./table-D01d2GuY.js";
31
31
  import { a as resolveGatewayProbeAuth$1, c as probeGateway, t as runSecurityAudit } from "./audit-Byo5jCLN.js";
32
- import { o as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-8bTzq722.js";
32
+ import { o as resolveHeartbeatSummaryForAgent, t as formatHealthChannelLines } from "./health-8DlAtuas.js";
33
33
  import { g as resolveUpdateChannelDisplay, i as formatGitInstallLabel, m as normalizeUpdateChannel, t as checkUpdateStatus } from "./update-check-ZdimP1aU.js";
34
34
  import { t as resolveNodeService } from "./node-service-fcZExd22.js";
35
35
  import { n as redactSecrets, t as formatGatewayAuthUsed } from "./format-DVLB9DNB.js";
@@ -3,7 +3,7 @@ import { $t as triggerInternalHook, A as normalizeChannelId, B as getPluginComma
3
3
  import { A as buildConfiguredAllowlistKeys, At as resolveShellEnvFallbackTimeoutMs, Ct as resolveEnvApiKey, E as withFileLock, Et as normalizeSecretInput, F as modelKey, H as resolveDefaultModelForAgent, Ht as DEFAULT_MODEL, I as normalizeModelRef$2, K as resolveSubagentSpawnModelSelection, L as normalizeProviderId, M as findNormalizedProviderValue, Ot as getShellPathFromLoginShell, P as isCliProvider, T as resolveSymiAgentDir, Ut as DEFAULT_PROVIDER, V as resolveConfiguredModelRef, Vt as DEFAULT_CONTEXT_TOKENS, W as resolveModelRefFromString, Wt as resolveAuthProfileDisplayLabel, _t as createOllamaStreamFn, a as markAuthProfileFailure, b as ensureAuthProfileStore, bt as requireApiKey, c as resolveApiKeyForProfile, g as markAuthProfileGood, gt as OLLAMA_NATIVE_BASE_URL, h as listProfilesForProvider, i as isProfileInCooldown, j as buildModelAliasIndex, k as buildAllowedModelSet, m as dedupeProfileIds, n as resolveAuthProfileOrder, o as markAuthProfileUsed, q as resolveThinkingDefault, r as getSoonestCooldownExpiry, vt as getApiKeyForModel, w as resolveAuthStorePathForDisplay, wt as resolveModelAuthMode, xt as resolveApiKeyForProvider, yt as getCustomProviderApiKey } from "./auth-profiles-Q1xTr5SX.js";
4
4
  import { t as formatCliCommand } from "./command-format-BtYOfWxC.js";
5
5
  import { C as resolveThreadParentSessionKey, S as parseAgentSessionKey, _ as getSubagentDepth, b as isCronSessionKey, c as normalizeMainKey, d as sanitizeAgentId, h as normalizeAccountId$2, l as resolveAgentIdFromSessionKey, m as DEFAULT_ACCOUNT_ID, o as classifySessionKeyShape, r as buildAgentMainSessionKey, s as normalizeAgentId, t as DEFAULT_AGENT_ID, u as resolveThreadSessionKeys, v as isAcpSessionKey, x as isSubagentSessionKey } from "./session-key-DjZ7Z1hW.js";
6
- import { n as resolveSymiPackageRootSync, t as resolveSymiPackageRoot } from "./symi-root-BNuQ4lAT.js";
6
+ import { t as resolveSymiPackageRoot } from "./symi-root-BNuQ4lAT.js";
7
7
  import { a as logError, i as logDebug, n as runExec, o as logInfo, r as spawnWithFallback, s as logWarn, t as runCommandWithTimeout } from "./exec-CBKBIMpA.js";
8
8
  import { C as ensureAgentWorkspace, E as loadWorkspaceBootstrapFiles, a as resolveAgentModelFallbacksOverride, c as resolveAgentWorkspaceDir, d as resolveSessionAgentId, f as resolveSessionAgentIds, g as DEFAULT_IDENTITY_FILENAME, h as DEFAULT_BOOTSTRAP_FILENAME, i as resolveAgentDir, l as resolveDefaultAgentId, m as DEFAULT_AGENT_WORKSPACE_DIR, n as listAgentIds, o as resolveAgentModelPrimary, r as resolveAgentConfig, s as resolveAgentSkillsFilter, u as resolveEffectiveModelFallbacks, w as filterBootstrapFilesForSession } from "./agent-scope-D-jRCY0d.js";
9
9
  import { a as saveJsonFile, i as loadJsonFile } from "./github-copilot-token-DuFIqfeC.js";
@@ -32297,30 +32297,6 @@ function setCliSessionId(entry, provider, sessionId) {
32297
32297
  //#endregion
32298
32298
  //#region src/config/model-profiles-builtin.ts
32299
32299
  /**
32300
- * Starter pack — always-on context for models with tool arg corruption.
32301
- * ~500 tokens. Prevents the most common failure patterns.
32302
- * For detailed file modification guides, the self-inspect skill cascades from here.
32303
- */
32304
- const STARTER_PACK = [
32305
- "",
32306
- "YOUR FILES (use read tool directly on these paths — NEVER use exec to find or read files):",
32307
- "- Glass UI CSS: <SYMI_ROOT>/dist/control-ui/css/style.css",
32308
- "- Glass UI HTML: <SYMI_ROOT>/dist/control-ui/index.html",
32309
- "- Glass UI JS: <SYMI_ROOT>/dist/control-ui/js/app.js, gateway.js, render.js, models.js, history.js, symipulse.js, debug.js",
32310
- "- Package: <SYMI_ROOT>/package.json",
32311
- "- Config: ~/.symi/symi.json | Sessions: ~/.symi/agents/main/sessions/ | Memory: ~/.symi/state/memory/",
32312
- "- For detailed modification guides, read the self-inspect skill.",
32313
- "",
32314
- "TOOL RULES (mandatory):",
32315
- "- read/write/edit: Always provide the full absolute path directly. NEVER use exec with cat, head, find, grep, or ls to view files.",
32316
- "- exec/bash: Provide only valid shell syntax. No tags, no tokens, no markup. Spell commands exactly.",
32317
- "- web_search: Always include query argument. Example: web_search({ query: \"search terms\" })",
32318
- "- sessions_spawn: Always include task and mode. Example: sessions_spawn({ label: \"name\", mode: \"run\", task: \"description\" })",
32319
- "",
32320
- "KNOWN SHELL COMMANDS (use exact spelling):",
32321
- "awk basename brew cargo cat chmod chown cp curl cut date dd df diff dig dirname docker du echo env find gcc git go grep gunzip gzip head hostname id ifconfig ip java javac journalctl kill killall launchctl less ln locate ls make man mkdir mktemp more mount mv nc netstat nice node nohup npm npx open paste pbcopy pbpaste ping pip pip3 plutil printf ps pwd python python3 readlink realpath rm rmdir rsync ruby scp sed sleep sort ssh stat strings sudo su sw_vers sysctl system_profiler systemctl tail tar tee test top touch tr type uname uniq unzip wc wget which xargs xz yes zip"
32322
- ];
32323
- /**
32324
32300
  * Built-in model profiles. Ordered from most-specific to least-specific so
32325
32301
  * that `resolveModelProfile` can return the first match.
32326
32302
  *
@@ -32363,8 +32339,7 @@ const BUILTIN_PROFILES = [
32363
32339
  "- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
32364
32340
  "- If you need to verify your work, do so before writing your response, not after.",
32365
32341
  "- Send brief progress updates on long tasks so the user knows you are active.",
32366
- "- When calling tools, provide arguments as clean values only. Never include <|, |>, or XML-like tags in tool argument values. For exec/bash commands, provide only valid shell syntax.",
32367
- ...STARTER_PACK
32342
+ "- When calling tools, provide arguments as clean values only. Never include <|, |>, or XML-like tags in tool argument values. For exec/bash commands, provide only valid shell syntax."
32368
32343
  ],
32369
32344
  ui: {
32370
32345
  badge: "Local",
@@ -32372,6 +32347,52 @@ const BUILTIN_PROFILES = [
32372
32347
  armWatchdogOnSend: true
32373
32348
  }
32374
32349
  },
32350
+ {
32351
+ match: ["nemotron/"],
32352
+ label: "Nemotron",
32353
+ params: {
32354
+ temperature: 1,
32355
+ top_p: .95,
32356
+ top_k: 64,
32357
+ max_tokens: 4096,
32358
+ stop: ["<end_of_turn>", "<eos>"]
32359
+ },
32360
+ streaming: {
32361
+ deltaThrottleMs: 50,
32362
+ flushOnFinal: true,
32363
+ chunkPattern: "burst"
32364
+ },
32365
+ filters: {
32366
+ stripPatterns: [
32367
+ "<\\|channel>\\w*",
32368
+ "<channel\\|>",
32369
+ "<start_of_turn>(?:model|user)?",
32370
+ "<end_of_turn>",
32371
+ "<\\|(?:fim_prefix|fim_suffix|fim_middle)\\|>",
32372
+ "^\\s*<bos>\\s*"
32373
+ ],
32374
+ suppressMonologue: true,
32375
+ hasStructuredThinking: false,
32376
+ validateToolArgs: true
32377
+ },
32378
+ promptAdditions: [
32379
+ "CRITICAL OUTPUT RULES:",
32380
+ "- Your response ends when you have delivered the answer. Do not append anything after.",
32381
+ "- Do not output raw control tokens, channel tags, turn markers, or <|channel>thought syntax.",
32382
+ "- Do not begin any sentence with 'I have addressed' or 'I've reviewed'.",
32383
+ "- Do not write verification checklists, self-assessments, or numbered assessment lists after your answer.",
32384
+ "- Do not write 'Verification:', 'Requirements:', 'Status Check:', or 'Everything is correct'.",
32385
+ "- If you need to verify your work, do so before writing your response, not after.",
32386
+ "- Keep planning and reasoning internal. Only speak when you have a result or need user input.",
32387
+ "- When working on multi-step tasks, send a brief one-line status update so the user knows you are active.",
32388
+ "- When calling tools, provide arguments as clean values only. Never include <|, |>, or XML-like tags in tool argument values. For exec/bash commands, provide only valid shell syntax."
32389
+ ],
32390
+ ui: {
32391
+ badge: "Local",
32392
+ watchdogMs: 6e5,
32393
+ armWatchdogOnSend: true
32394
+ }
32395
+ },
32375
32396
  {
32376
32397
  match: ["anthropic/", "claude-"],
32377
32398
  label: "Claude",
@@ -32436,8 +32457,7 @@ const BUILTIN_PROFILES = [
32436
32457
  "- If you need to verify your work, do so before writing your response, not after.",
32437
32458
  "- Keep planning and reasoning internal. Only speak when you have a result or need user input.",
32438
32459
  "- When working on multi-step tasks, send a brief one-line status update so the user knows you are active.",
32439
- "- When calling tools, provide arguments as clean values only. Never include <|, |>, or XML-like tags in tool argument values. For exec/bash commands, provide only valid shell syntax.",
32440
- ...STARTER_PACK
32460
+ "- When calling tools, provide arguments as clean values only. Never include <|, |>, or XML-like tags in tool argument values. For exec/bash commands, provide only valid shell syntax."
32441
32461
  ],
32442
32462
  ui: {
32443
32463
  badge: "CoreWeave",
@@ -35605,175 +35625,6 @@ function toClientToolDefinitions(tools, onClientToolCall, hookContext) {
35605
35625
  * @module
35606
35626
  */
35607
35627
  /**
35608
- * Known shell commands for prefix deduplication.
35609
- * When token boundary corruption doubles a command prefix (grep → grgrep,
35610
- * ls → lsls), we check the first token against this set. If stripping
35611
- * the repeated prefix yields a known command, use it.
35612
- *
35613
- * O(1) lookup. Zero false positives — no valid command is its own prefix doubled.
35614
- */
35615
- const KNOWN_COMMANDS = new Set([
35616
- "ls",
35617
- "cat",
35618
- "cp",
35619
- "mv",
35620
- "rm",
35621
- "mkdir",
35622
- "rmdir",
35623
- "touch",
35624
- "chmod",
35625
- "chown",
35626
- "chgrp",
35627
- "ln",
35628
- "pwd",
35629
- "echo",
35630
- "printf",
35631
- "head",
35632
- "tail",
35633
- "wc",
35634
- "sort",
35635
- "uniq",
35636
- "cut",
35637
- "tr",
35638
- "tee",
35639
- "xargs",
35640
- "env",
35641
- "date",
35642
- "sleep",
35643
- "true",
35644
- "false",
35645
- "yes",
35646
- "test",
35647
- "expr",
35648
- "basename",
35649
- "dirname",
35650
- "readlink",
35651
- "realpath",
35652
- "mktemp",
35653
- "stat",
35654
- "file",
35655
- "dd",
35656
- "df",
35657
- "du",
35658
- "id",
35659
- "whoami",
35660
- "hostname",
35661
- "uname",
35662
- "grep",
35663
- "egrep",
35664
- "fgrep",
35665
- "find",
35666
- "locate",
35667
- "sed",
35668
- "awk",
35669
- "diff",
35670
- "patch",
35671
- "strings",
35672
- "less",
35673
- "more",
35674
- "tar",
35675
- "gzip",
35676
- "gunzip",
35677
- "zip",
35678
- "unzip",
35679
- "bzip2",
35680
- "xz",
35681
- "curl",
35682
- "wget",
35683
- "ssh",
35684
- "scp",
35685
- "rsync",
35686
- "ping",
35687
- "dig",
35688
- "nslookup",
35689
- "netstat",
35690
- "lsof",
35691
- "nc",
35692
- "ifconfig",
35693
- "ip",
35694
- "ps",
35695
- "top",
35696
- "kill",
35697
- "killall",
35698
- "nohup",
35699
- "nice",
35700
- "which",
35701
- "type",
35702
- "where",
35703
- "man",
35704
- "sudo",
35705
- "su",
35706
- "mount",
35707
- "umount",
35708
- "systemctl",
35709
- "journalctl",
35710
- "launchctl",
35711
- "dmesg",
35712
- "sysctl",
35713
- "git",
35714
- "make",
35715
- "gcc",
35716
- "python",
35717
- "python3",
35718
- "pip",
35719
- "pip3",
35720
- "node",
35721
- "npm",
35722
- "npx",
35723
- "pnpm",
35724
- "yarn",
35725
- "cargo",
35726
- "go",
35727
- "ruby",
35728
- "gem",
35729
- "java",
35730
- "javac",
35731
- "docker",
35732
- "brew",
35733
- "open",
35734
- "pbcopy",
35735
- "pbpaste",
35736
- "defaults",
35737
- "diskutil",
35738
- "sw_vers",
35739
- "system_profiler",
35740
- "plutil",
35741
- "mdfind",
35742
- "mdls",
35743
- "softwareupdate",
35744
- "caffeinate",
35745
- "say",
35746
- "osascript",
35747
- "security",
35748
- "codesign",
35749
- "hdiutil",
35750
- "installer",
35751
- "lipo",
35752
- "otool",
35753
- "dscl",
35754
- "scutil"
35755
- ]);
35756
- /**
35757
- * Fix command prefix duplication from token boundary splits.
35758
- * Token corruption can double a multi-char prefix: grep → grgrep, ls → lsls.
35759
- * Check if the first token starts with a repeated prefix that, when removed,
35760
- * yields a known command.
35761
- *
35762
- * Examples: grgrep → grep, lsls → ls, catcat → cat, curlcurl → curl
35763
- */
35764
- function dedupCommandPrefix(command) {
35765
- const match = command.match(/^([a-zA-Z0-9_-]+)/);
35766
- if (!match) return command;
35767
- const firstToken = match[1];
35768
- if (KNOWN_COMMANDS.has(firstToken)) return command;
35769
- for (let prefixLen = 2; prefixLen <= Math.min(10, Math.floor(firstToken.length / 2)); prefixLen++) {
35770
- const prefix = firstToken.slice(0, prefixLen);
35771
- const candidate = firstToken.slice(prefixLen);
35772
- if (candidate.startsWith(prefix.slice(0, Math.min(prefix.length, candidate.length))) && KNOWN_COMMANDS.has(candidate)) return candidate + command.slice(firstToken.length);
35773
- }
35774
- return command;
35775
- }
35776
- /**
35777
35628
  * Validate that a command string contains extractable valid shell syntax.
35778
35629
  * Returns the cleaned command if valid, or an error reason if not.
35779
35630
  *
@@ -35792,7 +35643,6 @@ function validateShellCommand(command) {
35792
35643
  cleaned = cleaned.replace(/<\|[^|>]*(?:\|>)?/g, "").trim();
35793
35644
  cleaned = cleanResidualTokenFragments(cleaned);
35794
35645
  }
35795
- cleaned = dedupCommandPrefix(cleaned);
35796
35646
  if (!cleaned || !cleaned.trim()) return {
35797
35647
  valid: false,
35798
35648
  cleaned: "",
@@ -39849,18 +39699,7 @@ async function runEmbeddedAttempt(params) {
39849
39699
  const profileModelKey = params.modelId ?? "";
39850
39700
  const modelProfile = resolveModelProfile(profileModelKey, params.config?.models?.profiles);
39851
39701
  log$5.debug(`[profile] resolved: modelId=${profileModelKey} → profile=${modelProfile.label} validateToolArgs=${modelProfile.filters?.validateToolArgs ?? false}`);
39852
- const systemPromptText = createSystemPromptOverride(appendPrompt + (() => {
39853
- if (modelProfile.promptAdditions.length === 0) return "";
39854
- let text = "\n\n" + modelProfile.promptAdditions.join("\n");
39855
- if (text.includes("<SYMI_ROOT>")) {
39856
- const symiRoot = resolveSymiPackageRootSync({
39857
- moduleUrl: import.meta.url,
39858
- argv1: process.argv[1]
39859
- });
39860
- if (symiRoot) text = text.replaceAll("<SYMI_ROOT>", symiRoot);
39861
- }
39862
- return text;
39863
- })())();
39702
+ const systemPromptText = createSystemPromptOverride(appendPrompt + (modelProfile.promptAdditions.length > 0 ? "\n\n" + modelProfile.promptAdditions.join("\n") : ""))();
39864
39703
  const sessionLock = await acquireSessionWriteLock({
39865
39704
  sessionFile: params.sessionFile,
39866
39705
  maxHoldMs: resolveSessionLockMaxHoldFromTimeout({ timeoutMs: params.timeoutMs })
@@ -40134,18 +39973,6 @@ async function runEmbeddedAttempt(params) {
40134
39973
  const TOOL_ERROR_ABORT_THRESHOLD = 5;
40135
39974
  const TOOL_ERROR_WARN_THRESHOLD = 3;
40136
39975
  let consecutiveToolErrors = 0;
40137
- /** Detect exec/bash results that indicate a shell error (non-zero exit, command not found, etc.) */
40138
- const isShellErrorResult = (result) => {
40139
- if (!result || typeof result !== "object") return false;
40140
- const content = result.content;
40141
- if (!Array.isArray(content)) return false;
40142
- const text = content.filter((b) => b && typeof b === "object" && b.type === "text").map((b) => {
40143
- const t = b.text;
40144
- return typeof t === "string" ? t : "";
40145
- }).join("\n");
40146
- if (!text) return false;
40147
- return /exit code [1-9]\d*|command not found|No such file or directory|syntax error|parse error|Permission denied|not recognized|cannot execute/i.test(text);
40148
- };
40149
39976
  const subscription = subscribeEmbeddedPiSession({
40150
39977
  session: activeSession,
40151
39978
  runId: params.runId,
@@ -40171,9 +39998,7 @@ async function runEmbeddedAttempt(params) {
40171
39998
  const phase = typeof evt.data?.phase === "string" ? evt.data.phase : "";
40172
39999
  const isError = evt.data?.isError === true;
40173
40000
  if (phase === "result") {
40174
- const toolName = typeof evt.data?.name === "string" ? evt.data.name : "";
40175
- const isExecShellError = !isError && (toolName === "exec" || toolName === "bash") && isShellErrorResult(evt.data?.result);
40176
- if (isError || isExecShellError) consecutiveToolErrors++;
40001
+ if (isError) consecutiveToolErrors++;
40177
40002
  else consecutiveToolErrors = 0;
40178
40003
  if (consecutiveToolErrors >= TOOL_ERROR_ABORT_THRESHOLD) {
40179
40004
  const toolName = typeof evt.data?.name === "string" ? evt.data.name : "unknown";
@@ -53300,7 +53125,7 @@ function isVoiceChannelType(type) {
53300
53125
  function createDefaultDeps() {
53301
53126
  return {
53302
53127
  sendMessageWhatsApp: async (...args) => {
53303
- const { sendMessageWhatsApp } = await import("./web-DWSTD7Gy.js");
53128
+ const { sendMessageWhatsApp } = await import("./web-BUXU8aHt.js");
53304
53129
  return await sendMessageWhatsApp(...args);
53305
53130
  },
53306
53131
  sendMessageTelegram: async (...args) => {
@@ -68614,7 +68439,7 @@ function loadWebLoginQr() {
68614
68439
  return webLoginQrPromise;
68615
68440
  }
68616
68441
  function loadWebChannel() {
68617
- webChannelPromise ??= import("./web-DWSTD7Gy.js");
68442
+ webChannelPromise ??= import("./web-BUXU8aHt.js");
68618
68443
  return webChannelPromise;
68619
68444
  }
68620
68445
  function loadWhatsAppActions() {