zidane 5.4.1 → 5.4.3

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 (68) hide show
  1. package/README.md +15 -0
  2. package/dist/{agent-DHQAsdj6.d.ts → agent-Yu8uhpy-.d.ts} +213 -3
  3. package/dist/agent-Yu8uhpy-.d.ts.map +1 -0
  4. package/dist/chat.d.ts +49 -6
  5. package/dist/chat.d.ts.map +1 -1
  6. package/dist/chat.js +2 -2
  7. package/dist/{errors-Byb0F8B9.js → errors-CDwtPIMX.js} +4 -2
  8. package/dist/{errors-Byb0F8B9.js.map → errors-CDwtPIMX.js.map} +1 -1
  9. package/dist/{index-CHSaLab5.d.ts → index-DklfxeYy.d.ts} +8 -2
  10. package/dist/index-DklfxeYy.d.ts.map +1 -0
  11. package/dist/{index-CrqFoaQA.d.ts → index-j9tY28ah.d.ts} +474 -8
  12. package/dist/index-j9tY28ah.d.ts.map +1 -0
  13. package/dist/index.d.ts +4 -4
  14. package/dist/index.js +1528 -53
  15. package/dist/index.js.map +1 -1
  16. package/dist/{interpolate-ERgZUxgg.js → interpolate-CmtjEyRJ.js} +155 -18
  17. package/dist/interpolate-CmtjEyRJ.js.map +1 -0
  18. package/dist/{login-8c5C0FYq.js → login-DxyAERe1.js} +3 -3
  19. package/dist/{login-8c5C0FYq.js.map → login-DxyAERe1.js.map} +1 -1
  20. package/dist/{mcp-DhmmJfxK.js → mcp-CNUbvbsy.js} +2 -2
  21. package/dist/{mcp-DhmmJfxK.js.map → mcp-CNUbvbsy.js.map} +1 -1
  22. package/dist/mcp.d.ts +1 -1
  23. package/dist/mcp.js +1 -1
  24. package/dist/{messages-D0xT979U.js → messages-fTR19Ga6.js} +2 -2
  25. package/dist/{messages-D0xT979U.js.map → messages-fTR19Ga6.js.map} +1 -1
  26. package/dist/{presets-Ck4VusTo.js → presets-D9IbaI40.js} +2 -2
  27. package/dist/{presets-Ck4VusTo.js.map → presets-D9IbaI40.js.map} +1 -1
  28. package/dist/presets.d.ts +2 -2
  29. package/dist/presets.js +1 -1
  30. package/dist/{providers-x3LZByR5.js → providers-CEzRFYtS.js} +3 -3
  31. package/dist/{providers-x3LZByR5.js.map → providers-CEzRFYtS.js.map} +1 -1
  32. package/dist/providers.d.ts +1 -1
  33. package/dist/providers.js +2 -2
  34. package/dist/session/sqlite.d.ts +1 -1
  35. package/dist/session/sqlite.js +1 -1
  36. package/dist/{session-BHZwxmfr.js → session-kwsNnOmt.js} +2 -2
  37. package/dist/{session-BHZwxmfr.js.map → session-kwsNnOmt.js.map} +1 -1
  38. package/dist/session.d.ts +1 -1
  39. package/dist/session.js +2 -2
  40. package/dist/skills.d.ts +2 -2
  41. package/dist/skills.js +1 -1
  42. package/dist/{tools-PQH1Ge4M.js → tools-BK2vG9UX.js} +246 -44
  43. package/dist/tools-BK2vG9UX.js.map +1 -0
  44. package/dist/tools.d.ts +2 -2
  45. package/dist/tools.js +1 -1
  46. package/dist/{transcript-anchors-ByB2MSCB.d.ts → transcript-anchors-DnaBcJej.d.ts} +52 -8
  47. package/dist/transcript-anchors-DnaBcJej.d.ts.map +1 -0
  48. package/dist/tui.d.ts +4 -2
  49. package/dist/tui.d.ts.map +1 -1
  50. package/dist/tui.js +651 -42
  51. package/dist/tui.js.map +1 -1
  52. package/dist/{turn-operations-Bqs4YbbH.js → turn-operations-OzKEOXul.js} +240 -52
  53. package/dist/turn-operations-OzKEOXul.js.map +1 -0
  54. package/dist/types-IcokUOyC.js.map +1 -1
  55. package/dist/types.d.ts +2 -2
  56. package/dist/types.js +1 -1
  57. package/docs/ARCHITECTURE.md +16 -3
  58. package/docs/CHAT.md +1 -1
  59. package/docs/SKILL.md +24 -14
  60. package/docs/TUI.md +24 -0
  61. package/package.json +3 -3
  62. package/dist/agent-DHQAsdj6.d.ts.map +0 -1
  63. package/dist/index-CHSaLab5.d.ts.map +0 -1
  64. package/dist/index-CrqFoaQA.d.ts.map +0 -1
  65. package/dist/interpolate-ERgZUxgg.js.map +0 -1
  66. package/dist/tools-PQH1Ge4M.js.map +0 -1
  67. package/dist/transcript-anchors-ByB2MSCB.d.ts.map +0 -1
  68. package/dist/turn-operations-Bqs4YbbH.js.map +0 -1
package/dist/chat.js CHANGED
@@ -1,2 +1,2 @@
1
- import { $ as useMcpAuthDispatch, $n as blendHsl, $r as INTERACTION_GUIDANCE_NO_PROMPTS, $t as isVisible, A as getSafelist, An as summarizeOutcomes, Ar as PLAN_AGENT, B as supportsOAuth, Bn as readKeybindings, Br as getArchivedTodosForRun, Bt as CATPPUCCIN_MOCHA, C as resolveSessionExportTarget, Cn as buildEditOutcomesAnnotation, Cr as openaiDescriptor, Ct as shortId, D as useSafeModeQueue, Dn as resolveApprovalForPayload, Dr as BUILTIN_AGENTS, Dt as SETTINGS_CHOICES, E as useSafeModeActions, En as parseEditOutcomesFromResult, Er as BUILD_AGENT, Et as DEFAULT_SETTINGS, F as suggestSafelistEntry, Fn as ensureKeybindingsFile, Fr as TODOS_METADATA_KEY, Ft as resolveTheme, G as defaultMcpsConfigPaths, Gn as FILES_TRIGGER, Gr as selectActiveTodos, Gt as ConfigProvider, H as filterModelCatalog, Hn as SKILLS_TRIGGER, Hr as isTodoTool, Ht as DiscoveryProvider, I as writeProjects, In as keybindingsPath, Ir as TODOWRITE_TOOL, It as VAPORWAVE_THEME, J as projectUserPaths, Jn as applyInsert, Jr as ACTIONS_WITH_CARE_DOCTRINE, Jt as createStateStore, K as discoverProjectMcps, Kn as createFilesCompletionProvider, Kr as setTodosForRun, Kt as useConfig, L as splitPromptSegments, Ln as matchesBinding, Lr as TODO_STATUS_GLYPHS, Lt as CATPPUCCIN_FRAPPE, M as matchesSafelistEntry, Mn as DEFAULT_KEYBINDINGS, Mr as resolveAgentId, Mt as BUILTIN_THEMES, N as projectsFilePath, Nn as KEYBINDING_DEFS, Nr as singleAgentRegistry, Nt as DEFAULT_THEME, O as IMPLICITLY_SAFE_TOOLS, On as rewriteMultiEditHeader, Or as DEFAULT_AGENT_ID, Ot as SETTINGS_TOGGLES, P as readProjects, Pn as KEYBINDING_DEF_BY_ACTION, Pr as TODOREAD_TOOL, Pt as resolveChipColor, Q as McpAuthProvider, Qn as useCompletion, Qr as INTERACTION_GUIDANCE, Qt as isTurnHighlighted, R as formatPathForCwd, Rn as mergeKeybindings, Rr as TODO_WRITE_COUNTS_METADATA_KEY, Rt as CATPPUCCIN_LATTE, S as renderSession, Sn as tokenize, Sr as modelsForDescriptor, St as fmtTokens, T as SafeModeProvider, Tn as mergeApprovalAndBodyOutcomes, Tr as piIdOf, Tt as useEnabledToggleSet, U as indexOfEntry, Un as createSkillsCompletionProvider, Ur as pickActiveRunId, Ut as useDiscovery, V as buildModelCatalog, Vn as stripJsonComments, Vr as getTodosForRun, Vt as createDiscoverySlot, W as buildMcpServers, Wn as uniqueSkillNamesFromReferences, Wr as pruneTodosByRun, Wt as useDiscoveryOptional, X as mcpCredentialsPath, Xn as findActiveTrigger, Xr as DOING_TASKS_DOCTRINE, Xt as eventsFromTurns, Y as createFileMcpCredentialStore, Yn as collectReferences, Yr as COMMUNICATION_DOCTRINE, Yt as deriveSessionTitle, Z as patchMcpCredential, Zn as mergeReferences, Zr as IDENTITY_PREFIX, Zt as isEditErrorResult, _ as turnContextSize, _n as computeLineDiff, _r as credKeyOf, _t as truncateTrailing, a as computeTurnAnchors, ai as buildPlanSystem, an as selectableTurnIds, ar as detectAuth, at as InteractionsProvider, b as defaultSkillScanPaths, bn as previewEditPayload, br as getModelInfo, bt as ageString, c as formatToolCall, cn as titleFromTurns, cr as readCredentials, ct as createInteractionTools, d as useSelectStyle, dn as turnSelectionOwnership, dr as setProviderCredential, dt as pendingInteractionsFromTurns, ei as PLAN_MODE_DOCTRINE, en as lastContextSizeFromTurns, er as buildLinearRamp, et as useMcpAuthState, f as useSurfaces, fn as updateToolEventOutcomes, fr as writeCredentials, ft as serializeInteractionResponse, g as finalizeStreamingMarkdownForOwner, gn as computeInlineDiff, gr as cerebrasDescriptor, gt as hintsLength, h as finalizeStreamingMarkdown, hn as buildUnifiedDiff, hr as anthropicDescriptor, ht as clipHintsToWidth, i as turnAsText, ii as buildBuildSystem, in as saveState, ir as shouldAutoCompact, it as ASK_USER_TOOL, j as isOnSafelist, jn as findGitRoot, jr as accentColor, jt as useSettings, k as addToSafelist, kn as stripEditOutcomesAnnotation, kr as DEFAULT_PERSIST_EXCLUDE_TOOLS, kt as SettingsProvider, l as ThemeProvider, ln as toolCallPreview, lr as readProviderCredential, lt as isInteractionTool, m as useTheme, mn as buildContextualDiff, mr as OUTPUT_RESERVE_TOKENS, mt as useInteractionsQueue, n as deleteTurnSafely, ni as SUBAGENT_GUIDANCE, nn as loadState, nr as bootProfileEnabled, nt as reduceMcpAuth, o as TOOL_DISPLAY, oi as envSection, on as stripSpawnTokensLine, or as applyApiKeyEnv, ot as PRESENT_PLAN_TOOL, p as useSyntaxStyles, pn as applyEditPayload, pr as BUILTIN_PROVIDERS, pt as useInteractionsActions, q as parseMcpsFile, qn as uniqueFilesFromReferences, qr as useActiveTodos, qt as resolveConfig, r as truncateTurnsAt, ri as TOKEN_DISCIPLINE_DOCTRINE, rn as marginTopFor, rr as bootTick, rt as splitMarkdownCodeBlocks, s as displayNameFor, sn as sumRunCosts, sr as credentialsPath, st as buildResumedToolResultsTurn, t as countNeighbors, ti as PLAN_MODE_DOCTRINE_NO_PROMPTS, tn as listSessionMeta, tr as tryOpenBrowser, tt as getMcpAuthStatus, u as useColors, un as toolResultText, ur as removeProviderCredential, ut as makeRequestInteraction, v as useStreamBuffer, vn as extractEditPayload, vr as effectiveContextWindow, vt as cleanTitle, w as writeSessionExport, wn as maskToOutcomeKinds, wr as openrouterDescriptor, wt as listProjectFiles, x as discoverProjectSkills, xn as splitLines, xr as modelSupportsReasoning, xt as compactPath, y as buildSkillsConfig, yn as filetypeFromPath, yr as getContextWindow, yt as generateSessionTitle, z as runOAuthLogin, zn as parseBindingSpec, zr as createTodoTools, zt as CATPPUCCIN_MACCHIATO } from "./turn-operations-Bqs4YbbH.js";
2
- export { ACTIONS_WITH_CARE_DOCTRINE, ASK_USER_TOOL, BUILD_AGENT, BUILTIN_AGENTS, BUILTIN_PROVIDERS, BUILTIN_THEMES, CATPPUCCIN_FRAPPE, CATPPUCCIN_LATTE, CATPPUCCIN_MACCHIATO, CATPPUCCIN_MOCHA, COMMUNICATION_DOCTRINE, ConfigProvider, DEFAULT_AGENT_ID, DEFAULT_KEYBINDINGS, DEFAULT_PERSIST_EXCLUDE_TOOLS, DEFAULT_SETTINGS, DEFAULT_THEME, DOING_TASKS_DOCTRINE, DiscoveryProvider, FILES_TRIGGER, IDENTITY_PREFIX, IMPLICITLY_SAFE_TOOLS, INTERACTION_GUIDANCE, INTERACTION_GUIDANCE_NO_PROMPTS, InteractionsProvider, KEYBINDING_DEFS, KEYBINDING_DEF_BY_ACTION, McpAuthProvider, OUTPUT_RESERVE_TOKENS, PLAN_AGENT, PLAN_MODE_DOCTRINE, PLAN_MODE_DOCTRINE_NO_PROMPTS, PRESENT_PLAN_TOOL, SETTINGS_CHOICES, SETTINGS_TOGGLES, SKILLS_TRIGGER, SUBAGENT_GUIDANCE, SafeModeProvider, SettingsProvider, TODOREAD_TOOL, TODOS_METADATA_KEY, TODOWRITE_TOOL, TODO_STATUS_GLYPHS, TODO_WRITE_COUNTS_METADATA_KEY, TOKEN_DISCIPLINE_DOCTRINE, TOOL_DISPLAY, ThemeProvider, VAPORWAVE_THEME, accentColor, addToSafelist, ageString, anthropicDescriptor, applyApiKeyEnv, applyEditPayload, applyInsert, blendHsl, bootProfileEnabled, bootTick, buildBuildSystem, buildContextualDiff, buildEditOutcomesAnnotation, buildLinearRamp, buildMcpServers, buildModelCatalog, buildPlanSystem, buildResumedToolResultsTurn, buildSkillsConfig, buildUnifiedDiff, cerebrasDescriptor, cleanTitle, clipHintsToWidth, collectReferences, compactPath, computeInlineDiff, computeLineDiff, computeTurnAnchors, countNeighbors, createDiscoverySlot, createFileMcpCredentialStore, createFilesCompletionProvider, createInteractionTools, createSkillsCompletionProvider, createStateStore, createTodoTools, credKeyOf, credentialsPath, defaultMcpsConfigPaths, defaultSkillScanPaths, deleteTurnSafely, deriveSessionTitle, detectAuth, discoverProjectMcps, discoverProjectSkills, displayNameFor, effectiveContextWindow, ensureKeybindingsFile, envSection, eventsFromTurns, extractEditPayload, filetypeFromPath, filterModelCatalog, finalizeStreamingMarkdown, finalizeStreamingMarkdownForOwner, findActiveTrigger, findGitRoot, fmtTokens, formatPathForCwd, formatToolCall, generateSessionTitle, getArchivedTodosForRun, getContextWindow, getMcpAuthStatus, getModelInfo, getSafelist, getTodosForRun, hintsLength, indexOfEntry, isEditErrorResult, isInteractionTool, isOnSafelist, isTodoTool, isTurnHighlighted, isVisible, keybindingsPath, lastContextSizeFromTurns, listProjectFiles, listSessionMeta, loadState, makeRequestInteraction, marginTopFor, maskToOutcomeKinds, matchesBinding, matchesSafelistEntry, mcpCredentialsPath, mergeApprovalAndBodyOutcomes, mergeKeybindings, mergeReferences, modelSupportsReasoning, modelsForDescriptor, openaiDescriptor, openrouterDescriptor, parseBindingSpec, parseEditOutcomesFromResult, parseMcpsFile, patchMcpCredential, pendingInteractionsFromTurns, piIdOf, pickActiveRunId, previewEditPayload, projectUserPaths, projectsFilePath, pruneTodosByRun, readCredentials, readKeybindings, readProjects, readProviderCredential, reduceMcpAuth, removeProviderCredential, renderSession, resolveAgentId, resolveApprovalForPayload, resolveChipColor, resolveConfig, resolveSessionExportTarget, resolveTheme, rewriteMultiEditHeader, runOAuthLogin, saveState, selectActiveTodos, selectableTurnIds, serializeInteractionResponse, setProviderCredential, setTodosForRun, shortId, shouldAutoCompact, singleAgentRegistry, splitLines, splitMarkdownCodeBlocks, splitPromptSegments, stripEditOutcomesAnnotation, stripJsonComments, stripSpawnTokensLine, suggestSafelistEntry, sumRunCosts, summarizeOutcomes, supportsOAuth, titleFromTurns, tokenize, toolCallPreview, toolResultText, truncateTrailing, truncateTurnsAt, tryOpenBrowser, turnAsText, turnContextSize, turnSelectionOwnership, uniqueFilesFromReferences, uniqueSkillNamesFromReferences, updateToolEventOutcomes, useActiveTodos, useColors, useCompletion, useConfig, useDiscovery, useDiscoveryOptional, useEnabledToggleSet, useInteractionsActions, useInteractionsQueue, useMcpAuthDispatch, useMcpAuthState, useSafeModeActions, useSafeModeQueue, useSelectStyle, useSettings, useStreamBuffer, useSurfaces, useSyntaxStyles, useTheme, writeCredentials, writeProjects, writeSessionExport };
1
+ import { $ as useMcpAuthDispatch, $n as mergeReferences, $r as IDENTITY_PREFIX, $t as isTurnHighlighted, A as getSafelist, An as rewriteMultiEditHeader, Ar as DEFAULT_AGENT_ID, B as supportsOAuth, Bn as mergeKeybindings, Br as TODO_WRITE_COUNTS_METADATA_KEY, Bt as CATPPUCCIN_MOCHA, C as resolveSessionExportTarget, Cn as summarizeEditPayload, Cr as modelSupportsReasoning, Ct as shortId, D as useSafeModeQueue, Dn as mergeApprovalAndBodyOutcomes, Dr as piIdOf, Dt as SETTINGS_CHOICES, E as useSafeModeActions, En as maskToOutcomeKinds, Er as openrouterDescriptor, Et as DEFAULT_SETTINGS, F as suggestSafelistEntry, Fn as KEYBINDING_DEFS, Fr as singleAgentRegistry, Ft as resolveTheme, G as defaultMcpsConfigPaths, Gn as createSkillsCompletionProvider, Gr as pickActiveRunId, Gt as ConfigProvider, H as filterModelCatalog, Hn as readKeybindings, Hr as getArchivedTodosForRun, Ht as DiscoveryProvider, I as writeProjects, In as KEYBINDING_DEF_BY_ACTION, Ir as TODOREAD_TOOL, It as VAPORWAVE_THEME, J as projectUserPaths, Jn as createFilesCompletionProvider, Jr as setTodosForRun, K as discoverProjectMcps, Kn as uniqueSkillNamesFromReferences, Kr as pruneTodosByRun, Kt as useConfig, L as splitPromptSegments, Ln as ensureKeybindingsFile, Lr as TODOS_METADATA_KEY, Lt as CATPPUCCIN_FRAPPE, M as matchesSafelistEntry, Mn as summarizeOutcomes, Mr as PLAN_AGENT, Mt as BUILTIN_THEMES, N as projectsFilePath, Nn as findGitRoot, Nr as accentColor, Nt as DEFAULT_THEME, O as IMPLICITLY_SAFE_TOOLS, On as parseEditOutcomesFromResult, Or as BUILD_AGENT, Ot as SETTINGS_TOGGLES, P as readProjects, Pn as DEFAULT_KEYBINDINGS, Pr as resolveAgentId, Pt as resolveChipColor, Q as McpAuthProvider, Qn as findActiveTrigger, Qr as DOING_TASKS_DOCTRINE, Qt as isEditErrorResult, R as formatPathForCwd, Rn as keybindingsPath, Rr as TODOWRITE_TOOL, Rt as CATPPUCCIN_LATTE, S as renderSession, Sn as splitLines, Sr as getModelInfo, St as fmtTokens, T as SafeModeProvider, Tn as buildEditOutcomesAnnotation, Tr as openaiDescriptor, Tt as useEnabledToggleSet, U as indexOfEntry, Un as stripJsonComments, Ur as getTodosForRun, Ut as useDiscovery, V as buildModelCatalog, Vn as parseBindingSpec, Vr as createTodoTools, Vt as createDiscoverySlot, W as buildMcpServers, Wn as SKILLS_TRIGGER, Wr as isTodoTool, Wt as useDiscoveryOptional, X as mcpCredentialsPath, Xn as applyInsert, Xr as ACTIONS_WITH_CARE_DOCTRINE, Xt as deriveSessionTitle, Y as createFileMcpCredentialStore, Yn as uniqueFilesFromReferences, Yr as useActiveTodos, Yt as createStateStore, Z as patchMcpCredential, Zn as collectReferences, Zr as COMMUNICATION_DOCTRINE, Zt as eventsFromTurns, _ as turnContextSize, _n as computeInlineDiff, _r as anthropicDescriptor, _t as truncateTrailing, a as computeTurnAnchors, ai as TOKEN_DISCIPLINE_DOCTRINE, an as saveState, ar as bootTick, at as InteractionsProvider, b as defaultSkillScanPaths, bn as filetypeFromPath, br as effectiveContextWindow, bt as ageString, c as formatToolCall, ci as envSection, cn as sumRunCosts, cr as applyApiKeyEnv, ct as createInteractionTools, d as useSelectStyle, dn as toolResultText, dr as readProviderCredential, dt as pendingInteractionsFromTurns, ei as INTERACTION_GUIDANCE, en as isVisible, er as useCompletion, et as useMcpAuthState, f as useSurfaces, fn as turnSelectionOwnership, fr as removeProviderCredential, ft as serializeInteractionResponse, g as finalizeStreamingMarkdownForOwner, gn as buildUnifiedDiff, gr as OUTPUT_RESERVE_TOKENS, gt as hintsLength, h as finalizeStreamingMarkdown, hn as buildContextualDiff, hr as BUILTIN_PROVIDERS, ht as clipHintsToWidth, i as turnAsText, ii as SUBAGENT_GUIDANCE, in as marginTopFor, ir as bootProfileEnabled, it as ASK_USER_TOOL, j as isOnSafelist, jn as stripEditOutcomesAnnotation, jr as DEFAULT_PERSIST_EXCLUDE_TOOLS, jt as useSettings, k as addToSafelist, kn as resolveApprovalForPayload, kr as BUILTIN_AGENTS, kt as SettingsProvider, l as ThemeProvider, ln as titleFromTurns, lr as credentialsPath, lt as isInteractionTool, m as useTheme, mn as applyEditPayload, mr as writeCredentials, mt as useInteractionsQueue, n as deleteTurnSafely, ni as PLAN_MODE_DOCTRINE, nn as listSessionMeta, nr as buildLinearRamp, nt as reduceMcpAuth, o as TOOL_DISPLAY, oi as buildBuildSystem, on as selectableTurnIds, or as shouldAutoCompact, ot as PRESENT_PLAN_TOOL, p as useSyntaxStyles, pn as updateToolEventOutcomes, pr as setProviderCredential, pt as useInteractionsActions, q as parseMcpsFile, qn as FILES_TRIGGER, qr as selectActiveTodos, qt as resolveConfig, r as truncateTurnsAt, ri as PLAN_MODE_DOCTRINE_NO_PROMPTS, rn as loadState, rr as tryOpenBrowser, rt as splitMarkdownCodeBlocks, s as displayNameFor, si as buildPlanSystem, sn as stripSpawnTokensLine, sr as detectAuth, st as buildResumedToolResultsTurn, t as countNeighbors, ti as INTERACTION_GUIDANCE_NO_PROMPTS, tn as lastContextSizeFromTurns, tr as blendHsl, tt as getMcpAuthStatus, u as useColors, un as toolCallPreview, ur as readCredentials, ut as makeRequestInteraction, v as useStreamBuffer, vn as computeLineDiff, vr as cerebrasDescriptor, vt as cleanTitle, w as writeSessionExport, wn as tokenize, wr as modelsForDescriptor, wt as listProjectFiles, x as discoverProjectSkills, xn as previewEditPayload, xr as getContextWindow, xt as compactPath, y as buildSkillsConfig, yn as extractEditPayload, yr as credKeyOf, yt as generateSessionTitle, z as runOAuthLogin, zn as matchesBinding, zr as TODO_STATUS_GLYPHS, zt as CATPPUCCIN_MACCHIATO } from "./turn-operations-OzKEOXul.js";
2
+ export { ACTIONS_WITH_CARE_DOCTRINE, ASK_USER_TOOL, BUILD_AGENT, BUILTIN_AGENTS, BUILTIN_PROVIDERS, BUILTIN_THEMES, CATPPUCCIN_FRAPPE, CATPPUCCIN_LATTE, CATPPUCCIN_MACCHIATO, CATPPUCCIN_MOCHA, COMMUNICATION_DOCTRINE, ConfigProvider, DEFAULT_AGENT_ID, DEFAULT_KEYBINDINGS, DEFAULT_PERSIST_EXCLUDE_TOOLS, DEFAULT_SETTINGS, DEFAULT_THEME, DOING_TASKS_DOCTRINE, DiscoveryProvider, FILES_TRIGGER, IDENTITY_PREFIX, IMPLICITLY_SAFE_TOOLS, INTERACTION_GUIDANCE, INTERACTION_GUIDANCE_NO_PROMPTS, InteractionsProvider, KEYBINDING_DEFS, KEYBINDING_DEF_BY_ACTION, McpAuthProvider, OUTPUT_RESERVE_TOKENS, PLAN_AGENT, PLAN_MODE_DOCTRINE, PLAN_MODE_DOCTRINE_NO_PROMPTS, PRESENT_PLAN_TOOL, SETTINGS_CHOICES, SETTINGS_TOGGLES, SKILLS_TRIGGER, SUBAGENT_GUIDANCE, SafeModeProvider, SettingsProvider, TODOREAD_TOOL, TODOS_METADATA_KEY, TODOWRITE_TOOL, TODO_STATUS_GLYPHS, TODO_WRITE_COUNTS_METADATA_KEY, TOKEN_DISCIPLINE_DOCTRINE, TOOL_DISPLAY, ThemeProvider, VAPORWAVE_THEME, accentColor, addToSafelist, ageString, anthropicDescriptor, applyApiKeyEnv, applyEditPayload, applyInsert, blendHsl, bootProfileEnabled, bootTick, buildBuildSystem, buildContextualDiff, buildEditOutcomesAnnotation, buildLinearRamp, buildMcpServers, buildModelCatalog, buildPlanSystem, buildResumedToolResultsTurn, buildSkillsConfig, buildUnifiedDiff, cerebrasDescriptor, cleanTitle, clipHintsToWidth, collectReferences, compactPath, computeInlineDiff, computeLineDiff, computeTurnAnchors, countNeighbors, createDiscoverySlot, createFileMcpCredentialStore, createFilesCompletionProvider, createInteractionTools, createSkillsCompletionProvider, createStateStore, createTodoTools, credKeyOf, credentialsPath, defaultMcpsConfigPaths, defaultSkillScanPaths, deleteTurnSafely, deriveSessionTitle, detectAuth, discoverProjectMcps, discoverProjectSkills, displayNameFor, effectiveContextWindow, ensureKeybindingsFile, envSection, eventsFromTurns, extractEditPayload, filetypeFromPath, filterModelCatalog, finalizeStreamingMarkdown, finalizeStreamingMarkdownForOwner, findActiveTrigger, findGitRoot, fmtTokens, formatPathForCwd, formatToolCall, generateSessionTitle, getArchivedTodosForRun, getContextWindow, getMcpAuthStatus, getModelInfo, getSafelist, getTodosForRun, hintsLength, indexOfEntry, isEditErrorResult, isInteractionTool, isOnSafelist, isTodoTool, isTurnHighlighted, isVisible, keybindingsPath, lastContextSizeFromTurns, listProjectFiles, listSessionMeta, loadState, makeRequestInteraction, marginTopFor, maskToOutcomeKinds, matchesBinding, matchesSafelistEntry, mcpCredentialsPath, mergeApprovalAndBodyOutcomes, mergeKeybindings, mergeReferences, modelSupportsReasoning, modelsForDescriptor, openaiDescriptor, openrouterDescriptor, parseBindingSpec, parseEditOutcomesFromResult, parseMcpsFile, patchMcpCredential, pendingInteractionsFromTurns, piIdOf, pickActiveRunId, previewEditPayload, projectUserPaths, projectsFilePath, pruneTodosByRun, readCredentials, readKeybindings, readProjects, readProviderCredential, reduceMcpAuth, removeProviderCredential, renderSession, resolveAgentId, resolveApprovalForPayload, resolveChipColor, resolveConfig, resolveSessionExportTarget, resolveTheme, rewriteMultiEditHeader, runOAuthLogin, saveState, selectActiveTodos, selectableTurnIds, serializeInteractionResponse, setProviderCredential, setTodosForRun, shortId, shouldAutoCompact, singleAgentRegistry, splitLines, splitMarkdownCodeBlocks, splitPromptSegments, stripEditOutcomesAnnotation, stripJsonComments, stripSpawnTokensLine, suggestSafelistEntry, sumRunCosts, summarizeEditPayload, summarizeOutcomes, supportsOAuth, titleFromTurns, tokenize, toolCallPreview, toolResultText, truncateTrailing, truncateTurnsAt, tryOpenBrowser, turnAsText, turnContextSize, turnSelectionOwnership, uniqueFilesFromReferences, uniqueSkillNamesFromReferences, updateToolEventOutcomes, useActiveTodos, useColors, useCompletion, useConfig, useDiscovery, useDiscoveryOptional, useEnabledToggleSet, useInteractionsActions, useInteractionsQueue, useMcpAuthDispatch, useMcpAuthState, useSafeModeActions, useSafeModeQueue, useSelectStyle, useSettings, useStreamBuffer, useSurfaces, useSyntaxStyles, useTheme, writeCredentials, writeProjects, writeSessionExport };
@@ -100,7 +100,9 @@ var AgentToolNotAllowedError = class extends Error {
100
100
  /** Names of the skills currently active when the block fired. */
101
101
  activeSkills;
102
102
  constructor(options) {
103
- const msg = `Tool "${options.displayName}" is not in the allowed-tools union of the active skill(s) [${options.activeSkills.join(", ")}]. Union: [${options.allowedUnion.join(" ")}].`;
103
+ const sample = options.activeSkills[0];
104
+ const hint = sample !== void 0 ? ` To use this tool, call \`skills_use\` with \`mode: "deactivate"\` and the active skill name (e.g. "${sample}") to lift its restriction — or ask the user to switch agent profile.` : "";
105
+ const msg = `Tool "${options.displayName}" is not in the allowed-tools union of the active skill(s) [${options.activeSkills.join(", ")}]. Union: [${options.allowedUnion.join(" ")}].${hint}`;
104
106
  super(msg, options.cause !== void 0 ? { cause: options.cause } : void 0);
105
107
  this.name = "AgentToolNotAllowedError";
106
108
  this.toolName = options.toolName;
@@ -167,4 +169,4 @@ function toTypedError(classification, provider, cause) {
167
169
  //#endregion
168
170
  export { AgentToolPairingError as a, matchesContextExceeded as c, AgentToolNotAllowedError as i, toTypedError as l, AgentContextExceededError as n, CONTEXT_EXCEEDED_MESSAGE_PATTERNS as o, AgentProviderError as r, errorMessage as s, AgentAbortedError as t };
169
171
 
170
- //# sourceMappingURL=errors-Byb0F8B9.js.map
172
+ //# sourceMappingURL=errors-CDwtPIMX.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors-Byb0F8B9.js","names":[],"sources":["../src/errors.ts"],"sourcesContent":["/**\n * Typed error classes for agent runs.\n *\n * Providers classify native errors into one of these so downstream consumers\n * can react without string-sniffing messages.\n *\n * Provider authors: implement `Provider.classifyError` to map native errors\n * (SDK exceptions, HTTP responses) to a `ClassifiedError`. The loop wraps\n * unclassified errors in `AgentProviderError` automatically.\n */\n\n/** Kind of classified provider error */\nexport type ClassifiedErrorKind = 'context_exceeded' | 'provider_error' | 'aborted' | 'tool_pairing_corruption'\n\n/** Structured classification returned by `Provider.classifyError` */\nexport interface ClassifiedError {\n kind: ClassifiedErrorKind\n /** Upstream error code as surfaced by the provider (e.g. `context_length_exceeded`). Optional. */\n providerCode?: string\n /** Optional human-readable message override. Falls back to the underlying error's message. */\n message?: string\n /**\n * Hint that the error is transient and a retry with backoff is reasonable\n * (e.g. 429, 5xx, truncated stream). Omitted when the provider can't decide;\n * callers should default to \"do not retry\" when absent to avoid hammering\n * terminal failures (auth, invalid request).\n */\n retryable?: boolean\n}\n\ninterface TypedErrorOptions {\n /** Provider name, always set (e.g. `anthropic`, `openrouter`) */\n provider: string\n /** Optional upstream error code */\n providerCode?: string\n /** Original error from the provider SDK/HTTP layer */\n cause?: unknown\n /** See {@link ClassifiedError.retryable}. */\n retryable?: boolean\n}\n\n/**\n * Thrown when the model or provider signals that the context window was exceeded.\n * Downstream consumers should catch this, prune history, and retry.\n */\nexport class AgentContextExceededError extends Error {\n readonly code = 'context_exceeded' as const\n readonly provider: string\n readonly providerCode?: string\n\n constructor(message: string, options: TypedErrorOptions) {\n super(message, options.cause !== undefined ? { cause: options.cause } : undefined)\n this.name = 'AgentContextExceededError'\n this.provider = options.provider\n this.providerCode = options.providerCode\n }\n}\n\n/**\n * Thrown when the provider returns a non-context error (auth, rate limit, server error, etc.).\n * Catch-all for unclassified provider failures.\n */\nexport class AgentProviderError extends Error {\n readonly code = 'provider_error' as const\n readonly provider: string\n readonly providerCode?: string\n /**\n * Whether a retry with backoff is likely to succeed. See\n * {@link ClassifiedError.retryable}. Absent when the provider did not\n * classify the error — callers should treat absent as \"don't retry\".\n */\n readonly retryable?: boolean\n\n constructor(message: string, options: TypedErrorOptions) {\n super(message, options.cause !== undefined ? { cause: options.cause } : undefined)\n this.name = 'AgentProviderError'\n this.provider = options.provider\n this.providerCode = options.providerCode\n this.retryable = options.retryable\n }\n}\n\n/**\n * Thrown when a run is aborted by the consumer via `agent.abort()` or an external `AbortSignal`.\n */\nexport class AgentAbortedError extends Error {\n readonly code = 'aborted' as const\n\n constructor(message = 'Agent run aborted', options?: { cause?: unknown }) {\n super(message, options?.cause !== undefined ? { cause: options.cause } : undefined)\n this.name = 'AgentAbortedError'\n }\n}\n\n/**\n * Thrown by the pre-send pairing repair when {@link AgentBehavior.strictToolPairing}\n * is `true` and {@link ensureToolResultPairing} would otherwise patch over\n * corruption. Strict mode opts into fail-fast for training-data collectors and\n * any consumer that prefers to bail out rather than ship a transcript carrying\n * a {@link SYNTHETIC_TOOL_RESULT_PLACEHOLDER}.\n *\n * The `repairs` field carries every repair the loop would have made — useful\n * for postmortems and for surfacing exactly which transcripts were rejected.\n *\n * Note: callers consuming the chat layer (TUI/SDK presets) typically leave\n * `strictToolPairing` off so user-facing sessions auto-heal instead of\n * crashing.\n */\nexport class AgentToolPairingError extends Error {\n readonly code = 'tool_pairing_corruption' as const\n /** Provider whose wire format the corruption would have hit. */\n readonly provider?: string\n /** Upstream error code when the corruption was detected from a 400 response. */\n readonly providerCode?: string\n /**\n * Repairs the harness would have performed had strict mode been off.\n * Preserves the full diagnostic so consumers can route to telemetry,\n * `/rewind` flows, or training-data quarantine without re-walking the\n * transcript.\n */\n readonly repairs: ReadonlyArray<{\n mode: string\n callId?: string\n messageIndex: number\n }>\n\n constructor(options: {\n message: string\n provider?: string\n providerCode?: string\n repairs: ReadonlyArray<{ mode: string, callId?: string, messageIndex: number }>\n cause?: unknown\n }) {\n super(options.message, options.cause !== undefined ? { cause: options.cause } : undefined)\n this.name = 'AgentToolPairingError'\n this.provider = options.provider\n this.providerCode = options.providerCode\n this.repairs = options.repairs\n }\n}\n\n/**\n * Thrown (well — constructed; attach via the `tool:gate` block signal) when the\n * union of `allowed-tools` across active skills does not permit a tool call.\n *\n * Produced by the allowed-tools middleware registered on `tool:gate` /\n * `mcp:tool:gate`. The gate's `block = true` + `reason` carry the same message\n * so consumers that don't look at this typed error still get a useful string.\n */\nexport class AgentToolNotAllowedError extends Error {\n readonly code = 'tool_not_allowed' as const\n /** Canonical tool name the agent tried to call. */\n readonly toolName: string\n /** Aliased / wire name the LLM saw. */\n readonly displayName: string\n /** Flattened union of `allowedTools` patterns across active skills. */\n readonly allowedUnion: readonly string[]\n /** Names of the skills currently active when the block fired. */\n readonly activeSkills: readonly string[]\n\n constructor(options: {\n toolName: string\n displayName: string\n allowedUnion: readonly string[]\n activeSkills: readonly string[]\n cause?: unknown\n }) {\n const msg = (\n `Tool \"${options.displayName}\" is not in the allowed-tools union of the active `\n + `skill(s) [${options.activeSkills.join(', ')}]. Union: [${options.allowedUnion.join(' ')}].`\n )\n super(msg, options.cause !== undefined ? { cause: options.cause } : undefined)\n this.name = 'AgentToolNotAllowedError'\n this.toolName = options.toolName\n this.displayName = options.displayName\n this.allowedUnion = options.allowedUnion\n this.activeSkills = options.activeSkills\n }\n}\n\n/**\n * Regex patterns matching common \"context window exceeded\" messages across providers.\n *\n * Use {@link matchesContextExceeded} to test a free-form error message against them.\n * Provider authors can also compose these into their own `classifyError` fallbacks.\n */\nexport const CONTEXT_EXCEEDED_MESSAGE_PATTERNS: readonly RegExp[] = [\n /context[_\\s]length[_\\s]exceeded/i,\n /maximum context length/i,\n /prompt is too long/i,\n /context window/i,\n]\n\n/**\n * Return true when `message` matches any of the known \"context window exceeded\"\n * phrasings. Safe for `''` / non-strings (returns false).\n */\nexport function matchesContextExceeded(message: unknown): boolean {\n if (typeof message !== 'string' || message.length === 0)\n return false\n return CONTEXT_EXCEEDED_MESSAGE_PATTERNS.some(re => re.test(message))\n}\n\n/**\n * Extract a printable message from an unknown thrown value.\n *\n * Standardizes the `err instanceof Error ? err.message : String(err)` idiom\n * that every `catch (err)` block was reaching for.\n */\nexport function errorMessage(err: unknown): string {\n if (err instanceof Error)\n return err.message\n return String(err)\n}\n\n/**\n * Convert a `ClassifiedError` + underlying cause into the matching typed error instance.\n */\nexport function toTypedError(\n classification: ClassifiedError,\n provider: string,\n cause: unknown,\n): AgentContextExceededError | AgentProviderError | AgentAbortedError | AgentToolPairingError {\n const message = classification.message ?? errorMessage(cause)\n\n if (classification.kind === 'context_exceeded') {\n return new AgentContextExceededError(message, {\n provider,\n providerCode: classification.providerCode,\n cause,\n })\n }\n\n if (classification.kind === 'aborted') {\n return new AgentAbortedError(message, { cause })\n }\n\n if (classification.kind === 'tool_pairing_corruption') {\n return new AgentToolPairingError({\n message,\n provider,\n providerCode: classification.providerCode,\n // Server-side rejection: we don't have the structured repair list a\n // local-pre-send strict-mode throw would carry. Surface an empty\n // array so consumers branching on `repairs.length` see \"the harness\n // didn't get a chance to walk the transcript\".\n repairs: [],\n cause,\n })\n }\n\n return new AgentProviderError(message, {\n provider,\n providerCode: classification.providerCode,\n retryable: classification.retryable,\n cause,\n })\n}\n"],"mappings":";;;;;AA6CA,IAAa,4BAAb,cAA+C,MAAM;CACnD,OAAgB;CAChB;CACA;CAEA,YAAY,SAAiB,SAA4B;EACvD,MAAM,SAAS,QAAQ,UAAU,KAAA,IAAY,EAAE,OAAO,QAAQ,OAAO,GAAG,KAAA,EAAU;EAClF,KAAK,OAAO;EACZ,KAAK,WAAW,QAAQ;EACxB,KAAK,eAAe,QAAQ;;;;;;;AAQhC,IAAa,qBAAb,cAAwC,MAAM;CAC5C,OAAgB;CAChB;CACA;;;;;;CAMA;CAEA,YAAY,SAAiB,SAA4B;EACvD,MAAM,SAAS,QAAQ,UAAU,KAAA,IAAY,EAAE,OAAO,QAAQ,OAAO,GAAG,KAAA,EAAU;EAClF,KAAK,OAAO;EACZ,KAAK,WAAW,QAAQ;EACxB,KAAK,eAAe,QAAQ;EAC5B,KAAK,YAAY,QAAQ;;;;;;AAO7B,IAAa,oBAAb,cAAuC,MAAM;CAC3C,OAAgB;CAEhB,YAAY,UAAU,qBAAqB,SAA+B;EACxE,MAAM,SAAS,SAAS,UAAU,KAAA,IAAY,EAAE,OAAO,QAAQ,OAAO,GAAG,KAAA,EAAU;EACnF,KAAK,OAAO;;;;;;;;;;;;;;;;;AAkBhB,IAAa,wBAAb,cAA2C,MAAM;CAC/C,OAAgB;;CAEhB;;CAEA;;;;;;;CAOA;CAMA,YAAY,SAMT;EACD,MAAM,QAAQ,SAAS,QAAQ,UAAU,KAAA,IAAY,EAAE,OAAO,QAAQ,OAAO,GAAG,KAAA,EAAU;EAC1F,KAAK,OAAO;EACZ,KAAK,WAAW,QAAQ;EACxB,KAAK,eAAe,QAAQ;EAC5B,KAAK,UAAU,QAAQ;;;;;;;;;;;AAY3B,IAAa,2BAAb,cAA8C,MAAM;CAClD,OAAgB;;CAEhB;;CAEA;;CAEA;;CAEA;CAEA,YAAY,SAMT;EACD,MAAM,MACJ,SAAS,QAAQ,YAAY,8DACd,QAAQ,aAAa,KAAK,KAAK,CAAC,aAAa,QAAQ,aAAa,KAAK,IAAI,CAAC;EAE7F,MAAM,KAAK,QAAQ,UAAU,KAAA,IAAY,EAAE,OAAO,QAAQ,OAAO,GAAG,KAAA,EAAU;EAC9E,KAAK,OAAO;EACZ,KAAK,WAAW,QAAQ;EACxB,KAAK,cAAc,QAAQ;EAC3B,KAAK,eAAe,QAAQ;EAC5B,KAAK,eAAe,QAAQ;;;;;;;;;AAUhC,MAAa,oCAAuD;CAClE;CACA;CACA;CACA;CACD;;;;;AAMD,SAAgB,uBAAuB,SAA2B;CAChE,IAAI,OAAO,YAAY,YAAY,QAAQ,WAAW,GACpD,OAAO;CACT,OAAO,kCAAkC,MAAK,OAAM,GAAG,KAAK,QAAQ,CAAC;;;;;;;;AASvE,SAAgB,aAAa,KAAsB;CACjD,IAAI,eAAe,OACjB,OAAO,IAAI;CACb,OAAO,OAAO,IAAI;;;;;AAMpB,SAAgB,aACd,gBACA,UACA,OAC4F;CAC5F,MAAM,UAAU,eAAe,WAAW,aAAa,MAAM;CAE7D,IAAI,eAAe,SAAS,oBAC1B,OAAO,IAAI,0BAA0B,SAAS;EAC5C;EACA,cAAc,eAAe;EAC7B;EACD,CAAC;CAGJ,IAAI,eAAe,SAAS,WAC1B,OAAO,IAAI,kBAAkB,SAAS,EAAE,OAAO,CAAC;CAGlD,IAAI,eAAe,SAAS,2BAC1B,OAAO,IAAI,sBAAsB;EAC/B;EACA;EACA,cAAc,eAAe;EAK7B,SAAS,EAAE;EACX;EACD,CAAC;CAGJ,OAAO,IAAI,mBAAmB,SAAS;EACrC;EACA,cAAc,eAAe;EAC7B,WAAW,eAAe;EAC1B;EACD,CAAC"}
1
+ {"version":3,"file":"errors-CDwtPIMX.js","names":[],"sources":["../src/errors.ts"],"sourcesContent":["/**\n * Typed error classes for agent runs.\n *\n * Providers classify native errors into one of these so downstream consumers\n * can react without string-sniffing messages.\n *\n * Provider authors: implement `Provider.classifyError` to map native errors\n * (SDK exceptions, HTTP responses) to a `ClassifiedError`. The loop wraps\n * unclassified errors in `AgentProviderError` automatically.\n */\n\n/** Kind of classified provider error */\nexport type ClassifiedErrorKind = 'context_exceeded' | 'provider_error' | 'aborted' | 'tool_pairing_corruption'\n\n/** Structured classification returned by `Provider.classifyError` */\nexport interface ClassifiedError {\n kind: ClassifiedErrorKind\n /** Upstream error code as surfaced by the provider (e.g. `context_length_exceeded`). Optional. */\n providerCode?: string\n /** Optional human-readable message override. Falls back to the underlying error's message. */\n message?: string\n /**\n * Hint that the error is transient and a retry with backoff is reasonable\n * (e.g. 429, 5xx, truncated stream). Omitted when the provider can't decide;\n * callers should default to \"do not retry\" when absent to avoid hammering\n * terminal failures (auth, invalid request).\n */\n retryable?: boolean\n}\n\ninterface TypedErrorOptions {\n /** Provider name, always set (e.g. `anthropic`, `openrouter`) */\n provider: string\n /** Optional upstream error code */\n providerCode?: string\n /** Original error from the provider SDK/HTTP layer */\n cause?: unknown\n /** See {@link ClassifiedError.retryable}. */\n retryable?: boolean\n}\n\n/**\n * Thrown when the model or provider signals that the context window was exceeded.\n * Downstream consumers should catch this, prune history, and retry.\n */\nexport class AgentContextExceededError extends Error {\n readonly code = 'context_exceeded' as const\n readonly provider: string\n readonly providerCode?: string\n\n constructor(message: string, options: TypedErrorOptions) {\n super(message, options.cause !== undefined ? { cause: options.cause } : undefined)\n this.name = 'AgentContextExceededError'\n this.provider = options.provider\n this.providerCode = options.providerCode\n }\n}\n\n/**\n * Thrown when the provider returns a non-context error (auth, rate limit, server error, etc.).\n * Catch-all for unclassified provider failures.\n */\nexport class AgentProviderError extends Error {\n readonly code = 'provider_error' as const\n readonly provider: string\n readonly providerCode?: string\n /**\n * Whether a retry with backoff is likely to succeed. See\n * {@link ClassifiedError.retryable}. Absent when the provider did not\n * classify the error — callers should treat absent as \"don't retry\".\n */\n readonly retryable?: boolean\n\n constructor(message: string, options: TypedErrorOptions) {\n super(message, options.cause !== undefined ? { cause: options.cause } : undefined)\n this.name = 'AgentProviderError'\n this.provider = options.provider\n this.providerCode = options.providerCode\n this.retryable = options.retryable\n }\n}\n\n/**\n * Thrown when a run is aborted by the consumer via `agent.abort()` or an external `AbortSignal`.\n */\nexport class AgentAbortedError extends Error {\n readonly code = 'aborted' as const\n\n constructor(message = 'Agent run aborted', options?: { cause?: unknown }) {\n super(message, options?.cause !== undefined ? { cause: options.cause } : undefined)\n this.name = 'AgentAbortedError'\n }\n}\n\n/**\n * Thrown by the pre-send pairing repair when {@link AgentBehavior.strictToolPairing}\n * is `true` and {@link ensureToolResultPairing} would otherwise patch over\n * corruption. Strict mode opts into fail-fast for training-data collectors and\n * any consumer that prefers to bail out rather than ship a transcript carrying\n * a {@link SYNTHETIC_TOOL_RESULT_PLACEHOLDER}.\n *\n * The `repairs` field carries every repair the loop would have made — useful\n * for postmortems and for surfacing exactly which transcripts were rejected.\n *\n * Note: callers consuming the chat layer (TUI/SDK presets) typically leave\n * `strictToolPairing` off so user-facing sessions auto-heal instead of\n * crashing.\n */\nexport class AgentToolPairingError extends Error {\n readonly code = 'tool_pairing_corruption' as const\n /** Provider whose wire format the corruption would have hit. */\n readonly provider?: string\n /** Upstream error code when the corruption was detected from a 400 response. */\n readonly providerCode?: string\n /**\n * Repairs the harness would have performed had strict mode been off.\n * Preserves the full diagnostic so consumers can route to telemetry,\n * `/rewind` flows, or training-data quarantine without re-walking the\n * transcript.\n */\n readonly repairs: ReadonlyArray<{\n mode: string\n callId?: string\n messageIndex: number\n }>\n\n constructor(options: {\n message: string\n provider?: string\n providerCode?: string\n repairs: ReadonlyArray<{ mode: string, callId?: string, messageIndex: number }>\n cause?: unknown\n }) {\n super(options.message, options.cause !== undefined ? { cause: options.cause } : undefined)\n this.name = 'AgentToolPairingError'\n this.provider = options.provider\n this.providerCode = options.providerCode\n this.repairs = options.repairs\n }\n}\n\n/**\n * Thrown (well — constructed; attach via the `tool:gate` block signal) when the\n * union of `allowed-tools` across active skills does not permit a tool call.\n *\n * Produced by the allowed-tools middleware registered on `tool:gate` /\n * `mcp:tool:gate`. The gate's `block = true` + `reason` carry the same message\n * so consumers that don't look at this typed error still get a useful string.\n */\nexport class AgentToolNotAllowedError extends Error {\n readonly code = 'tool_not_allowed' as const\n /** Canonical tool name the agent tried to call. */\n readonly toolName: string\n /** Aliased / wire name the LLM saw. */\n readonly displayName: string\n /** Flattened union of `allowedTools` patterns across active skills. */\n readonly allowedUnion: readonly string[]\n /** Names of the skills currently active when the block fired. */\n readonly activeSkills: readonly string[]\n\n constructor(options: {\n toolName: string\n displayName: string\n allowedUnion: readonly string[]\n activeSkills: readonly string[]\n cause?: unknown\n }) {\n // Recovery hint points the model at the deactivate path. Without it the\n // model would invent folk theories like \"skill restrictions reset on\n // the next user message\" and silently waste turns probing other tools.\n // The hint mentions exactly one of the active skills (if any) so the\n // model has a concrete `skills_use({ mode: \"deactivate\", name: ... })`\n // call to make.\n const sample = options.activeSkills[0]\n const hint = sample !== undefined\n ? ` To use this tool, call \\`skills_use\\` with \\`mode: \"deactivate\"\\` and the active skill name (e.g. \"${sample}\") to lift its restriction — or ask the user to switch agent profile.`\n : ''\n const msg = (\n `Tool \"${options.displayName}\" is not in the allowed-tools union of the active `\n + `skill(s) [${options.activeSkills.join(', ')}]. Union: [${options.allowedUnion.join(' ')}].${hint}`\n )\n super(msg, options.cause !== undefined ? { cause: options.cause } : undefined)\n this.name = 'AgentToolNotAllowedError'\n this.toolName = options.toolName\n this.displayName = options.displayName\n this.allowedUnion = options.allowedUnion\n this.activeSkills = options.activeSkills\n }\n}\n\n/**\n * Regex patterns matching common \"context window exceeded\" messages across providers.\n *\n * Use {@link matchesContextExceeded} to test a free-form error message against them.\n * Provider authors can also compose these into their own `classifyError` fallbacks.\n */\nexport const CONTEXT_EXCEEDED_MESSAGE_PATTERNS: readonly RegExp[] = [\n /context[_\\s]length[_\\s]exceeded/i,\n /maximum context length/i,\n /prompt is too long/i,\n /context window/i,\n]\n\n/**\n * Return true when `message` matches any of the known \"context window exceeded\"\n * phrasings. Safe for `''` / non-strings (returns false).\n */\nexport function matchesContextExceeded(message: unknown): boolean {\n if (typeof message !== 'string' || message.length === 0)\n return false\n return CONTEXT_EXCEEDED_MESSAGE_PATTERNS.some(re => re.test(message))\n}\n\n/**\n * Extract a printable message from an unknown thrown value.\n *\n * Standardizes the `err instanceof Error ? err.message : String(err)` idiom\n * that every `catch (err)` block was reaching for.\n */\nexport function errorMessage(err: unknown): string {\n if (err instanceof Error)\n return err.message\n return String(err)\n}\n\n/**\n * Convert a `ClassifiedError` + underlying cause into the matching typed error instance.\n */\nexport function toTypedError(\n classification: ClassifiedError,\n provider: string,\n cause: unknown,\n): AgentContextExceededError | AgentProviderError | AgentAbortedError | AgentToolPairingError {\n const message = classification.message ?? errorMessage(cause)\n\n if (classification.kind === 'context_exceeded') {\n return new AgentContextExceededError(message, {\n provider,\n providerCode: classification.providerCode,\n cause,\n })\n }\n\n if (classification.kind === 'aborted') {\n return new AgentAbortedError(message, { cause })\n }\n\n if (classification.kind === 'tool_pairing_corruption') {\n return new AgentToolPairingError({\n message,\n provider,\n providerCode: classification.providerCode,\n // Server-side rejection: we don't have the structured repair list a\n // local-pre-send strict-mode throw would carry. Surface an empty\n // array so consumers branching on `repairs.length` see \"the harness\n // didn't get a chance to walk the transcript\".\n repairs: [],\n cause,\n })\n }\n\n return new AgentProviderError(message, {\n provider,\n providerCode: classification.providerCode,\n retryable: classification.retryable,\n cause,\n })\n}\n"],"mappings":";;;;;AA6CA,IAAa,4BAAb,cAA+C,MAAM;CACnD,OAAgB;CAChB;CACA;CAEA,YAAY,SAAiB,SAA4B;EACvD,MAAM,SAAS,QAAQ,UAAU,KAAA,IAAY,EAAE,OAAO,QAAQ,OAAO,GAAG,KAAA,EAAU;EAClF,KAAK,OAAO;EACZ,KAAK,WAAW,QAAQ;EACxB,KAAK,eAAe,QAAQ;;;;;;;AAQhC,IAAa,qBAAb,cAAwC,MAAM;CAC5C,OAAgB;CAChB;CACA;;;;;;CAMA;CAEA,YAAY,SAAiB,SAA4B;EACvD,MAAM,SAAS,QAAQ,UAAU,KAAA,IAAY,EAAE,OAAO,QAAQ,OAAO,GAAG,KAAA,EAAU;EAClF,KAAK,OAAO;EACZ,KAAK,WAAW,QAAQ;EACxB,KAAK,eAAe,QAAQ;EAC5B,KAAK,YAAY,QAAQ;;;;;;AAO7B,IAAa,oBAAb,cAAuC,MAAM;CAC3C,OAAgB;CAEhB,YAAY,UAAU,qBAAqB,SAA+B;EACxE,MAAM,SAAS,SAAS,UAAU,KAAA,IAAY,EAAE,OAAO,QAAQ,OAAO,GAAG,KAAA,EAAU;EACnF,KAAK,OAAO;;;;;;;;;;;;;;;;;AAkBhB,IAAa,wBAAb,cAA2C,MAAM;CAC/C,OAAgB;;CAEhB;;CAEA;;;;;;;CAOA;CAMA,YAAY,SAMT;EACD,MAAM,QAAQ,SAAS,QAAQ,UAAU,KAAA,IAAY,EAAE,OAAO,QAAQ,OAAO,GAAG,KAAA,EAAU;EAC1F,KAAK,OAAO;EACZ,KAAK,WAAW,QAAQ;EACxB,KAAK,eAAe,QAAQ;EAC5B,KAAK,UAAU,QAAQ;;;;;;;;;;;AAY3B,IAAa,2BAAb,cAA8C,MAAM;CAClD,OAAgB;;CAEhB;;CAEA;;CAEA;;CAEA;CAEA,YAAY,SAMT;EAOD,MAAM,SAAS,QAAQ,aAAa;EACpC,MAAM,OAAO,WAAW,KAAA,IACpB,uGAAuG,OAAO,yEAC9G;EACJ,MAAM,MACJ,SAAS,QAAQ,YAAY,8DACd,QAAQ,aAAa,KAAK,KAAK,CAAC,aAAa,QAAQ,aAAa,KAAK,IAAI,CAAC,IAAI;EAEjG,MAAM,KAAK,QAAQ,UAAU,KAAA,IAAY,EAAE,OAAO,QAAQ,OAAO,GAAG,KAAA,EAAU;EAC9E,KAAK,OAAO;EACZ,KAAK,WAAW,QAAQ;EACxB,KAAK,cAAc,QAAQ;EAC3B,KAAK,eAAe,QAAQ;EAC5B,KAAK,eAAe,QAAQ;;;;;;;;;AAUhC,MAAa,oCAAuD;CAClE;CACA;CACA;CACA;CACD;;;;;AAMD,SAAgB,uBAAuB,SAA2B;CAChE,IAAI,OAAO,YAAY,YAAY,QAAQ,WAAW,GACpD,OAAO;CACT,OAAO,kCAAkC,MAAK,OAAM,GAAG,KAAK,QAAQ,CAAC;;;;;;;;AASvE,SAAgB,aAAa,KAAsB;CACjD,IAAI,eAAe,OACjB,OAAO,IAAI;CACb,OAAO,OAAO,IAAI;;;;;AAMpB,SAAgB,aACd,gBACA,UACA,OAC4F;CAC5F,MAAM,UAAU,eAAe,WAAW,aAAa,MAAM;CAE7D,IAAI,eAAe,SAAS,oBAC1B,OAAO,IAAI,0BAA0B,SAAS;EAC5C;EACA,cAAc,eAAe;EAC7B;EACD,CAAC;CAGJ,IAAI,eAAe,SAAS,WAC1B,OAAO,IAAI,kBAAkB,SAAS,EAAE,OAAO,CAAC;CAGlD,IAAI,eAAe,SAAS,2BAC1B,OAAO,IAAI,sBAAsB;EAC/B;EACA;EACA,cAAc,eAAe;EAK7B,SAAS,EAAE;EACX;EACD,CAAC;CAGJ,OAAO,IAAI,mBAAmB,SAAS;EACrC;EACA,cAAc,eAAe;EAC7B,WAAW,eAAe;EAC1B;EACD,CAAC"}
@@ -1,5 +1,5 @@
1
1
  import { a as ExecutionHandle, i as ExecutionContext } from "./types-Ce78ds4h.js";
2
- import { A as SkillSource, D as SkillConfig, O as SkillDiagnostic, j as SkillsConfig, l as SkillActivationState, r as AgentHooks } from "./agent-DHQAsdj6.js";
2
+ import { A as SkillSource, D as SkillConfig, O as SkillDiagnostic, j as SkillsConfig, l as SkillActivationState, r as AgentHooks } from "./agent-Yu8uhpy-.js";
3
3
  import { Hookable } from "hookable";
4
4
 
5
5
  //#region src/skills/allowed-tools.d.ts
@@ -49,6 +49,12 @@ interface ParsedSkillFile {
49
49
  * - Flat key: value pairs
50
50
  * - Quoted values
51
51
  * - One-level nested maps (for `metadata:`)
52
+ * - One-level nested block lists, `key:` followed by indented `- item`
53
+ * lines (for `allowed-tools` and any future array fields). Items are
54
+ * unquoted with the same rules as scalar values.
55
+ * - Flow-style scalars are preserved verbatim — interpretation (e.g.
56
+ * `[a, b]` as a list) is left to per-field consumers via
57
+ * {@link takeStringOrArray}.
52
58
  * - Lenient recovery from unquoted-colon values (e.g.
53
59
  * `description: Use when: the user asks …`) via a quote-wrap retry.
54
60
  */
@@ -256,4 +262,4 @@ declare function defineSkill(config: Omit<SkillConfig, 'source'> & {
256
262
  }): SkillConfig;
257
263
  //#endregion
258
264
  export { installAllowedToolsGate as S, inferSource as _, SkillValidationResult as a, buildCatalog as b, parseAllowedToolPattern as c, validateSkillName as d, resolveSkills as f, getDefaultScanPaths as g, discoverSkills as h, SkillValidationIssue as i, validateResourcePath as l, SourcedScanPath as m, writeSkillToDisk as n, isToolAllowedByUnion as o, interpolateShellCommands as p, writeSkillsToDisk as r, matchesAllowedTool as s, defineSkill as t, validateSkillForWrite as u, parseFrontmatter as v, IMPLICITLY_ALLOWED_SKILL_TOOLS as x, parseSkillFile as y };
259
- //# sourceMappingURL=index-CHSaLab5.d.ts.map
265
+ //# sourceMappingURL=index-DklfxeYy.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index-DklfxeYy.d.ts","names":[],"sources":["../src/skills/allowed-tools.ts","../src/skills/catalog.ts","../src/skills/discovery.ts","../src/skills/interpolate.ts","../src/skills/resolve.ts","../src/skills/validate.ts","../src/skills/writer.ts","../src/skills/index.ts"],"mappings":";;;;;;cAuBa,8BAAA;;;;;;;;;;ACHb;iBDmBgB,uBAAA,CACd,KAAA,EAAO,QAAA,CAAS,UAAA,GAChB,KAAA,EAAO,oBAAA;;;UCrBQ,mBAAA;EDoBR;;;;;ECdP,oBAAA;EDe2B;;;;ECV3B,YAAA;AAAA;;;;iBAMc,YAAA,CACd,MAAA,EAAQ,WAAA,IACR,OAAA,GAAS,mBAAA;;;UC4ED,eAAA;EACR,WAAA,EAAa,MAAA;EACb,IAAA;EACA,WAAA,EAAa,eAAA;AAAA;;;;;;;;;;;;ADlGf;;;;;iBCqHgB,gBAAA,CAAiB,OAAA,WAAkB,eAAA;AAAA,UAuUzC,iBAAA;;EAER,MAAA,GAAS,WAAA;AAAA;;;;;;;;;AAtc4E;;;iBAodjE,cAAA,CACpB,QAAA,UACA,OAAA,GAAS,iBAAA,GACR,OAAA,CAAQ,WAAA;;UAqNM,eAAA;EACf,IAAA;EACA,MAAA,EAAQ,WAAA;AAAA;;;AAjjBV;;;iBAyjBgB,mBAAA,CAAA,GAAuB,eAAA;;AAxctC;;;iBAyde,WAAA,CAAY,IAAA,WAAe,WAAA;;AAnP3C;;;;;;;;;iBAqQsB,cAAA,CACpB,KAAA,EAAO,eAAA,IACP,MAAA,GAAS,WAAA,GACR,OAAA,CAAQ,WAAA;;;;;;;;;;;;;;;iBC1sBW,wBAAA,CACpB,YAAA,UACA,SAAA,EAAW,gBAAA,EACX,MAAA,EAAQ,eAAA,GACP,OAAA;;;AHXH;;;;;AAgBA;;;;AAhBA,UIGiB,oBAAA;EACf,MAAA,EAAQ,WAAA;EACR,OAAA;AAAA;;;;;;;;;;;AHRF;;;iBGwBsB,aAAA,CAAc,MAAA,EAAQ,YAAA,GAAe,OAAA,CAAQ,oBAAA;;;;;;AJLnE;;UKCiB,oBAAA;ELAC;EKEhB,IAAA;ELDO;EKGP,OAAA;ELH2B;EKK3B,KAAA;AAAA;AAAA,UAGe,qBAAA;EACf,KAAA;EACA,MAAA,EAAQ,oBAAA;AAAA;;;;;AJ/BV;;;;;AAiBA;iBI+BgB,iBAAA,CAAkB,IAAA;;;;;;iBAmBlB,qBAAA,CAAsB,KAAA,EAAO,WAAA,GAAc,qBAAA;;;;;;AH3E4B;;;;;;iBGiLvE,oBAAA,CACd,OAAA,UACA,OAAA;EACG,KAAA;EAAa,YAAA;AAAA;EAA2B,KAAA;EAAc,KAAA;AAAA;;;;AH0D1D;;;;iBGXe,uBAAA,CAAwB,KAAA;EAAkB,IAAA;EAAc,SAAA;AAAA;;;;;;;;;;;;;AHycxE;;iBG5agB,kBAAA,CACd,WAAA,UACA,KAAA,EAAO,MAAA,mBACP,OAAA;;;;;;iBAyBc,oBAAA,CACd,WAAA,UACA,KAAA,EAAO,MAAA,mBACP,KAAA;;;;;;ALpQF;;;;;iBM8BgB,gBAAA,CAAiB,KAAA,EAAO,WAAA,EAAa,SAAA;;;;;;iBAoCrC,iBAAA,CAAkB,MAAA,EAAQ,WAAA,IAAe,SAAA;;;;;;;;;iBCnDzC,WAAA,CAAY,MAAA,EAAQ,IAAA,CAAK,WAAA;EAA2B,MAAA,GAAS,WAAA;AAAA,IAA0B,WAAA"}