zidane 7.0.27 → 7.0.29
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{acp-C5O2YBst.js → acp-DcJRNtIr.js} +4 -4
- package/dist/{acp-C5O2YBst.js.map → acp-DcJRNtIr.js.map} +1 -1
- package/dist/acp-cli.js +5 -5
- package/dist/acp.js +1 -1
- package/dist/{agent-BjI9-PlG.js → agent-DSej5JPY.js} +60 -8
- package/dist/agent-DSej5JPY.js.map +1 -0
- package/dist/agent.js +1 -1
- package/dist/{anthropic-CUM2CjXS.js → anthropic-B4UmPm4H.js} +3 -3
- package/dist/{anthropic-CUM2CjXS.js.map → anthropic-B4UmPm4H.js.map} +1 -1
- package/dist/{approvals-xpcwa2UM.js → approvals-BOr8_M0D.js} +24 -8
- package/dist/approvals-BOr8_M0D.js.map +1 -0
- package/dist/{auth-BhbRmx2I.js → auth-DaBtlC8B.js} +5 -5
- package/dist/{auth-BhbRmx2I.js.map → auth-DaBtlC8B.js.map} +1 -1
- package/dist/chat.js +3 -3
- package/dist/daemon-cli.js +1 -1
- package/dist/eval.js +1 -1
- package/dist/extensions.js +1 -1
- package/dist/headless.js +3 -3
- package/dist/index-C0y2tSgk.d.ts.map +1 -1
- package/dist/index.js +6 -6
- package/dist/{ipc-PQ6PYI9f.js → ipc-Dmq3B7H6.js} +2 -2
- package/dist/{ipc-PQ6PYI9f.js.map → ipc-Dmq3B7H6.js.map} +1 -1
- package/dist/ipc.js +3 -3
- package/dist/{messages-aORUmIKe.js → messages-2jcOA_5R.js} +2 -2
- package/dist/{messages-aORUmIKe.js.map → messages-2jcOA_5R.js.map} +1 -1
- package/dist/{openai-compat-cIeLSED_.js → openai-compat-Dy56weK8.js} +28 -15
- package/dist/openai-compat-Dy56weK8.js.map +1 -0
- package/dist/presets.js +1 -1
- package/dist/providers/anthropic.js +1 -1
- package/dist/providers/arcee.js +1 -1
- package/dist/providers/baseten.js +1 -1
- package/dist/providers/cerebras.js +1 -1
- package/dist/providers/local.js +1 -1
- package/dist/providers/openai-compat.js +1 -1
- package/dist/providers/openai.js +2 -2
- package/dist/providers/openrouter.js +1 -1
- package/dist/providers/xai.js +1 -1
- package/dist/{providers-DPygcIX3.js → providers-DP9kwXYo.js} +2 -2
- package/dist/{providers-DPygcIX3.js.map → providers-DP9kwXYo.js.map} +1 -1
- package/dist/providers.js +3 -3
- package/dist/restate.js +2 -2
- package/dist/{server-riQevPg-.js → server-DM3yjH5O.js} +5 -5
- package/dist/{server-riQevPg-.js.map → server-DM3yjH5O.js.map} +1 -1
- package/dist/{session-23Stp71-.js → session-CVy-2mAy.js} +2 -2
- package/dist/{session-23Stp71-.js.map → session-CVy-2mAy.js.map} +1 -1
- package/dist/session.js +2 -2
- package/dist/tools.js +1 -1
- package/dist/transcript-anchors-BHyrChoO.d.ts.map +1 -1
- package/dist/tui.d.ts.map +1 -1
- package/dist/tui.js +40 -12
- package/dist/tui.js.map +1 -1
- package/docs/ARTIFACTS.md +5 -0
- package/package.json +1 -1
- package/dist/agent-BjI9-PlG.js.map +0 -1
- package/dist/approvals-xpcwa2UM.js.map +0 -1
- package/dist/openai-compat-cIeLSED_.js.map +0 -1
package/dist/tui.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { C as estimateRebilledCostUsd } from "./openai-compat-
|
|
1
|
+
import { C as estimateRebilledCostUsd } from "./openai-compat-Dy56weK8.js";
|
|
2
2
|
import { t as buildContextSegments } from "./context-segments-BrEsRhA0.js";
|
|
3
|
-
import { $ as installExtensionFromSpec, A as selectFilesFromSession, C as resolveLegacySessionDir, Cn as createDebugLog, D as resolveTasksDir, Dn as coerceExtensionConfigInput, Dt as isSpawnTool, E as resolveSessionDir, Fn as createExtensionBus, Ft as tailTruncate, G as summaryToTurn, Gn as renderArtifactRow, Jt as artifacts_default, Lt as looksBinary, M as compactConversation, Mn as sanitizeExtensionConfigActionPatch, O as buildPostCompactAttachments, Rn as artifactKindLabel, S as resolveLegacyPersistDir, Sn as scanExtensionDirectories, T as resolvePersistDir, Wn as refreshArtifact, X as createExtensionPromptBridge, Xn as effectiveContextWindow, Yn as OUTPUT_RESERVE_TOKENS, Z as ExtensionInstallError, an as matchesBinding, at as createExtensionHud, dt as filterExtensionRegistry, en as KEYBINDING_KEY_COL_WIDTH, f as applyCompactSummaryCutoff, ft as filterRegistryPlugins, gt as createExtensionHostRuntimeBridge, hn as registerExtensionHostModules, in as keybindingsPath, it as updateInstalledExtension, jn as resolveExtensionConfigValue, lt as composeExtensionPreset, mt as partitionExtensionCatalog, nn as formatBindingForDisplay, ot as discoverAndBuildExtensionRegistry, rn as groupBindings, rt as removeInstalledExtension, t as createAgent, tn as ensureKeybindingsFile, un as resolveExtensionKeybindings, ut as disposeExtensionRegistry, v as cleanupPersistedSession, vt as composePresets, w as resolveMcpWarningsDir, wn as setDebugLogSink, x as rehomePersistedStubs, xn as parseExtensionScanPathEnv, xt as basic_default, yn as inlineLoadedExtension, zt as createModelSearchTool } from "./agent-
|
|
3
|
+
import { $ as installExtensionFromSpec, A as selectFilesFromSession, C as resolveLegacySessionDir, Cn as createDebugLog, D as resolveTasksDir, Dn as coerceExtensionConfigInput, Dt as isSpawnTool, E as resolveSessionDir, Fn as createExtensionBus, Ft as tailTruncate, G as summaryToTurn, Gn as renderArtifactRow, Jt as artifacts_default, Lt as looksBinary, M as compactConversation, Mn as sanitizeExtensionConfigActionPatch, O as buildPostCompactAttachments, Rn as artifactKindLabel, S as resolveLegacyPersistDir, Sn as scanExtensionDirectories, T as resolvePersistDir, Wn as refreshArtifact, X as createExtensionPromptBridge, Xn as effectiveContextWindow, Yn as OUTPUT_RESERVE_TOKENS, Z as ExtensionInstallError, an as matchesBinding, at as createExtensionHud, dt as filterExtensionRegistry, en as KEYBINDING_KEY_COL_WIDTH, f as applyCompactSummaryCutoff, ft as filterRegistryPlugins, gt as createExtensionHostRuntimeBridge, hn as registerExtensionHostModules, in as keybindingsPath, it as updateInstalledExtension, jn as resolveExtensionConfigValue, lt as composeExtensionPreset, mt as partitionExtensionCatalog, nn as formatBindingForDisplay, ot as discoverAndBuildExtensionRegistry, rn as groupBindings, rt as removeInstalledExtension, t as createAgent, tn as ensureKeybindingsFile, un as resolveExtensionKeybindings, ut as disposeExtensionRegistry, v as cleanupPersistedSession, vt as composePresets, w as resolveMcpWarningsDir, wn as setDebugLogSink, x as rehomePersistedStubs, xn as parseExtensionScanPathEnv, xt as basic_default, yn as inlineLoadedExtension, zt as createModelSearchTool } from "./agent-DSej5JPY.js";
|
|
4
4
|
import { D as shouldAutoGenerateTitle, E as generateSessionTitle, F as parseCommandInvocation, M as commandBlocksToContent, P as executeCommand, S as resolveInlineSuggestion, a as loginMcpServer, b as createPathAutocompleteProvider, c as SKILL_EDIT_METADATA_KEY, g as readSkillEditMarker, h as extensionScaffold, j as commandBlockToEvent, l as ZIDANE_EXTENSION_SKILL_NAME, m as extensionDirForCwd, p as editSessionMetadata, u as ZIDANE_SKILL_EDIT_SKILL_NAME, v as withZidaneExtensionSkill, w as generateStructuredData, x as patchInlineGhost, y as withZidaneSkillEditSkill } from "./src-DzzhE2YO.js";
|
|
5
5
|
import { a as formatDuration, c as previewLine, i as fmtTokens, l as shortId, n as compactPath, o as formatTaskStatus, r as fmtCost, s as formatTaskSummary, t as ageString } from "./format-BF745pLL.js";
|
|
6
6
|
import { n as appendCapped } from "./output-cap-C9zukcCj.js";
|
|
@@ -12,7 +12,7 @@ import { a as createRingBufferSink, c as logFileTimestamp, i as createLoggingHoo
|
|
|
12
12
|
import { i as sniffImageMediaType } from "./media-sniff-UKijEaiQ.js";
|
|
13
13
|
import { _ as hasAuthorizationHeader, h as McpOAuthProvider, n as connectMcpServers, s as nonOwningMcpView } from "./mcp-BIWa57eY.js";
|
|
14
14
|
import { replaceDynamicSection, splitSystemPrompt } from "./prompt.js";
|
|
15
|
-
import { a as getExtensionSessionState, c as setExtensionSessionState, i as demoteStaleRunningStatus, o as loadSession, t as createSession } from "./session-
|
|
15
|
+
import { a as getExtensionSessionState, c as setExtensionSessionState, i as demoteStaleRunningStatus, o as loadSession, t as createSession } from "./session-CVy-2mAy.js";
|
|
16
16
|
import { t as effectiveInputFromTurn } from "./stats-DAKBEKjc.js";
|
|
17
17
|
import { s as withTimeout } from "./timeout-CjOG2mea.js";
|
|
18
18
|
import { i as installCacheBreakLogger } from "./cache-telemetry-ehVdWsg2.js";
|
|
@@ -20,9 +20,9 @@ import { s as resolveCompletionSubmit } from "./completion-core-BRo86R_L.js";
|
|
|
20
20
|
import { n as JsonRpcRemoteError, t as JsonRpcConnectionClosedError } from "./json-rpc-rSWMUh9b.js";
|
|
21
21
|
import { $ as reorderKeyed, $t as formatTokenCount, A as chunkMarkdownForRender, B as streamingLabel, C as usageTone, Ct as retagUserPromptEvents, Dt as streamEventSearchText, E as filterModelCatalog, Et as selectionAfterTurnRemoval, F as stripHtmlCommentsOutsideCode, G as chainPositionOf, Gt as shortSessionId, H as DAEMON_HEALTH_STYLE, Ht as sessionEventExcerpt, I as cacheBreakChip, It as isMainSession, J as filterChainFallbacks, Jt as fitRunReceiptCells, K as chainsEqual, Kt as truncateTitle, L as compactingLabel, M as codeTokenHasClosingFence, Mt as SESSION_EVENT_STATUS_STYLE, N as normalizeMarkdownCodeFences, O as parseCustomModelQuery, Ot as turnSelectionOwnership, P as splitMarkdownCodeBlocks, Q as providerKeySetChanged, Qt as formatRunReceiptLine, R as liveSessionCost, S as resetLabel, Sn as summarizeOutcomes, T as buildModelCatalog, Tn as createChatsCompletionProvider, Tt as selectableTurnIds, U as buildRunModel, Vt as sessionDirLabel, Wt as sessionEventMeta, Y as pickChainPrimary, Yt as formatCostUsd, Zt as formatRunReceiptCells, _ as turnContextSize, _n as mergeApprovalAndBodyOutcomes, _t as isTurnHighlighted, a as TOOL_DISPLAY, an as buildUnifiedDiff, at as createSkillsCompletionProvider, b as formatUsagePercent, bn as rewriteMultiEditHeader, bt as isVisibleDuringSearch, ct as createFilesCompletionProvider, d as finalizeStreamingMarkdown, dn as previewEditPayload, dt as createCommandsCompletionProvider, et as restoreChainFallbacks, f as finalizeStreamingMarkdownForOwner, ft as blendHsl, g as revealEarlierTranscriptEvents, gt as isEditErrorResult, h as replaceTranscriptTurnEvents, hn as buildEditOutcomesAnnotation, ht as EDIT_TOOL_NAMES, i as turnAsText, in as buildContextualDiff, j as closeDanglingCodeFence, ln as extractEditPayload, mt as BASH_CALL_ID_PREFIX, n as deleteTurnSafely, nn as runReceiptFromRun, nt as toggleChainEntry, o as displayNameFor, on as clipDiffForRender, ot as uniqueSkillNamesFromReferences, p as hiddenEarlierTranscriptCount, pn as summarizeEditPayload, pt as buildLinearRamp, r as truncateTurnsAt, s as formatToolCall, tn as hasRunReceipt, u as capTranscriptEvents, un as filetypeFromPath, v as formatBalance, vn as parseEditOutcomesFromResult, vt as isUserBashEvent, w as splitPromptSegments, wt as retagUserPromptEventsFromRefs, x as mostConstrainedWindow, xn as stripEditOutcomesAnnotation, xt as promptHistoryFromEvents, yn as resolveApprovalForPayload, yt as isVisible } from "./turn-operations-BgqpLlOG.js";
|
|
22
22
|
import { a as searchHighlightRanges, c as searchSessionHistoryIndexAsync, i as highlightSegments, n as buildSessionSearchIndexAsync, r as filterSessionSearchCatalog, u as searchSessionIndexAsync } from "./history-search-C4bk1Wz_.js";
|
|
23
|
-
import { $ as supportsOAuth, A as useSafeModeQueue, An as quoteForShell, At as makeRequestInteraction, Bn as createArtifactsCompletionProvider, Ci as stripSpawnTokensLine, Ct as InteractionsProvider, Di as toolResultText, Dt as createInteractionTools, Ei as toolCallPreview, Et as createAutomaticInteractionResponse, Fn as ConfigProvider, Fr as TODO_STATUS_GLYPHS, G as usageChecksOptedOut, Gn as importFromClaudeCode, Gr as selectActiveTodos, Gt as createMainSession, H as fetchAllProviderUsage, Hn as useCompletion, Hr as pickActiveRunId, In as useConfig, J as fetchOAuthRedirect, Jn as upsertMcpServer, Jr as useActiveTodos, Jt as runEndNotice, Kn as mcpsWritePath, Kr as setTodosForRun, Ln as resolveConfig, Lr as applyTodosSnapshot, M as addToSafelist, Mn as DiscoveryProvider, N as getSafelist, Nn as useDiscovery, Nt as useInteractionsActions, O as SafeModeProvider, Oi as updateToolEventOutcomes, Or as accentColor, P as isOnSafelist, Pn as useDiscoveryOptional, Pt as useInteractionsQueue, Q as runOAuthLogin, Qn as discoverProjectMcps, Qt as attachMcpWarnLog, R as suggestSafelistEntries, Rn as resolveStoragePaths, Rt as installProviderDiagnosticHook, Si as serverToolResultSummary, St as HOST_INTERACTION_ID_PREFIX, Tt as buildResumedToolResultsTurn, U as fetchProviderUsage, Un as countClaudeSessionFiles, Ur as pruneTodosByRun, V as clearProviderUsageCache, W as providerUsageSupported, Wn as hasClaudeCodeSetup, Wt as createBuiltinCommands, X as redirectUriFromAuthUrl, Xn as dedupMcpServersByName, Xt as discoverProjectPlugins, Yn as buildMcpServers, Yt as buildPluginContributions, Z as oauthUsesManualCodePaste, Zt as parsePluginScanPathEnv, _ as buildSpawnEndEvent, _i as listSessionMeta, _n as useSettings, _r as chatAutoCompactBehavior, _t as useMcpAuthState, ai as buildBuildSystem, an as buildHints, ar as useUpdateCheck, at as subscribeMcpToolsCache, b as defaultSkillScanPaths, bi as noticeTurnContent, bn as resolveChipColor, br as discoverAgentsMd, bt as ASK_USER_TOOL, c as useSelectStyle, ci as chatReferenceTokensForPrompt, cn as useEnabledToggleSet, d as useTheme, di as compactSummaryEvent, dn as SETTINGS_CHOICES, dt as parentServerName, er as tryOpenBrowser, f as discoverSystemMd, fn as SETTINGS_INPUTS, ft as createFileMcpCredentialStore, g as useStreamBuffer, gi as lastContextSizeFromTurns, gt as useMcpAuthDispatch, h as userSystemMdPath, hi as getSessionMeta, hn as clampFps, ht as McpAuthProvider, in as truncateTrailing, ir as buildUpdateHint, jn as createDiscoverySlot, jt as pendingInteractionsFromTurns, k as useSafeModeActions, ki as usageByModel, kn as parseEditorCommand, kt as isModelInteraction, l as useSurfaces, li as createChatTurnsReadTool, ln as DEFAULT_SETTINGS, lt as buildVisibleMcpRows, m as userScopeOverridesLoad, mi as eventsFromTurns, mn as SettingsProvider, nn as clipHintsToWidth, nt as mcpToolsCachePath, o as ThemeProvider, oi as buildPlanSystem, p as renderSystemMdSeed, pi as deriveSessionTitle, pn as SETTINGS_TOGGLES, q as formatPathForCwd, qn as removeMcpServer, qr as todoProgressLabel, r as computeTurnAnchors, rn as hintsLength, rr as bootTick, rt as refreshMcpToolsCatalog, s as useColors, si as envSection, sn as listProjectFiles, st as useMcpToolToggleMap, tn as EMPTY_HINTS, tr as tryRevealPath, tt as loadMcpToolsCache, un as SETTINGS_CATEGORIES, ut as indexOfServerRow, v as buildSpawnStartEvent, vi as loadState, vr as groupArtifacts, vt as getMcpAuthStatus, w as writeSessionExport, wi as sumRunCosts, wt as PRESENT_PLAN_TOOL, x as discoverProjectSkills, xn as resolveTheme, y as buildSkillsConfig, yi as marginTopFor } from "./approvals-
|
|
24
|
-
import { E as renderDefaultCallbackPage, T as restoreModelOptions, b as modelSupportsReasoning, c as setPreferredCredential, g as getContextWindow, h as enabledModelOptions, l as setProviderCredential, n as applyApiKeyEnv, t as detectAuth, w as piIdOf, y as modelOptionsFor } from "./auth-
|
|
25
|
-
import { a as connectIpcClient, d as defaultSocketPath, f as ensureDaemonRunning, m as selfDaemonSpawnCommand, o as connectOrSpawnDaemon } from "./server-
|
|
23
|
+
import { $ as supportsOAuth, A as useSafeModeQueue, An as quoteForShell, At as makeRequestInteraction, Bn as createArtifactsCompletionProvider, Ci as stripSpawnTokensLine, Ct as InteractionsProvider, Di as toolResultText, Dt as createInteractionTools, Ei as toolCallPreview, Et as createAutomaticInteractionResponse, Fn as ConfigProvider, Fr as TODO_STATUS_GLYPHS, G as usageChecksOptedOut, Gn as importFromClaudeCode, Gr as selectActiveTodos, Gt as createMainSession, H as fetchAllProviderUsage, Hn as useCompletion, Hr as pickActiveRunId, In as useConfig, J as fetchOAuthRedirect, Jn as upsertMcpServer, Jr as useActiveTodos, Jt as runEndNotice, Kn as mcpsWritePath, Kr as setTodosForRun, Ln as resolveConfig, Lr as applyTodosSnapshot, M as addToSafelist, Mn as DiscoveryProvider, N as getSafelist, Nn as useDiscovery, Nt as useInteractionsActions, O as SafeModeProvider, Oi as updateToolEventOutcomes, Or as accentColor, P as isOnSafelist, Pn as useDiscoveryOptional, Pt as useInteractionsQueue, Q as runOAuthLogin, Qn as discoverProjectMcps, Qt as attachMcpWarnLog, R as suggestSafelistEntries, Rn as resolveStoragePaths, Rt as installProviderDiagnosticHook, Si as serverToolResultSummary, St as HOST_INTERACTION_ID_PREFIX, Tt as buildResumedToolResultsTurn, U as fetchProviderUsage, Un as countClaudeSessionFiles, Ur as pruneTodosByRun, V as clearProviderUsageCache, W as providerUsageSupported, Wn as hasClaudeCodeSetup, Wt as createBuiltinCommands, X as redirectUriFromAuthUrl, Xn as dedupMcpServersByName, Xt as discoverProjectPlugins, Yn as buildMcpServers, Yt as buildPluginContributions, Z as oauthUsesManualCodePaste, Zt as parsePluginScanPathEnv, _ as buildSpawnEndEvent, _i as listSessionMeta, _n as useSettings, _r as chatAutoCompactBehavior, _t as useMcpAuthState, ai as buildBuildSystem, an as buildHints, ar as useUpdateCheck, at as subscribeMcpToolsCache, b as defaultSkillScanPaths, bi as noticeTurnContent, bn as resolveChipColor, br as discoverAgentsMd, bt as ASK_USER_TOOL, c as useSelectStyle, ci as chatReferenceTokensForPrompt, cn as useEnabledToggleSet, d as useTheme, di as compactSummaryEvent, dn as SETTINGS_CHOICES, dt as parentServerName, er as tryOpenBrowser, f as discoverSystemMd, fn as SETTINGS_INPUTS, ft as createFileMcpCredentialStore, g as useStreamBuffer, gi as lastContextSizeFromTurns, gt as useMcpAuthDispatch, h as userSystemMdPath, hi as getSessionMeta, hn as clampFps, ht as McpAuthProvider, in as truncateTrailing, ir as buildUpdateHint, jn as createDiscoverySlot, jt as pendingInteractionsFromTurns, k as useSafeModeActions, ki as usageByModel, kn as parseEditorCommand, kt as isModelInteraction, l as useSurfaces, li as createChatTurnsReadTool, ln as DEFAULT_SETTINGS, lt as buildVisibleMcpRows, m as userScopeOverridesLoad, mi as eventsFromTurns, mn as SettingsProvider, nn as clipHintsToWidth, nt as mcpToolsCachePath, o as ThemeProvider, oi as buildPlanSystem, p as renderSystemMdSeed, pi as deriveSessionTitle, pn as SETTINGS_TOGGLES, q as formatPathForCwd, qn as removeMcpServer, qr as todoProgressLabel, r as computeTurnAnchors, rn as hintsLength, rr as bootTick, rt as refreshMcpToolsCatalog, s as useColors, si as envSection, sn as listProjectFiles, st as useMcpToolToggleMap, tn as EMPTY_HINTS, tr as tryRevealPath, tt as loadMcpToolsCache, un as SETTINGS_CATEGORIES, ut as indexOfServerRow, v as buildSpawnStartEvent, vi as loadState, vr as groupArtifacts, vt as getMcpAuthStatus, w as writeSessionExport, wi as sumRunCosts, wt as PRESENT_PLAN_TOOL, x as discoverProjectSkills, xn as resolveTheme, y as buildSkillsConfig, yi as marginTopFor } from "./approvals-BOr8_M0D.js";
|
|
24
|
+
import { E as renderDefaultCallbackPage, T as restoreModelOptions, b as modelSupportsReasoning, c as setPreferredCredential, g as getContextWindow, h as enabledModelOptions, l as setProviderCredential, n as applyApiKeyEnv, t as detectAuth, w as piIdOf, y as modelOptionsFor } from "./auth-DaBtlC8B.js";
|
|
25
|
+
import { a as connectIpcClient, d as defaultSocketPath, f as ensureDaemonRunning, m as selfDaemonSpawnCommand, o as connectOrSpawnDaemon } from "./server-DM3yjH5O.js";
|
|
26
26
|
import { createDockerContext } from "./contexts/docker.js";
|
|
27
27
|
import { createTuiStore } from "./session/sqlite.js";
|
|
28
28
|
import { _ as buildVisibleAuthRows, a as editTodo, b as parentProviderKey, c as NOTICE_GLYPH, f as validateMcpForm, g as instructionPreviewLines, h as instructionOriginBadge, i as cycleTodoStatus, l as MCP_TRANSPORTS, m as buildVisibleInstructionRows, n as buildTodoRetryMessage, r as clearTodos, s as removeTodo, t as addTodo, v as indexOfProviderRow, x as selectableSources } from "./todo-edits-Dw2oO2ON.js";
|
|
@@ -47,6 +47,28 @@ import * as OpenTuiReactJsxDevRuntime from "@opentui/react/jsx-dev-runtime";
|
|
|
47
47
|
import * as OpenTuiReactJsxRuntime from "@opentui/react/jsx-runtime";
|
|
48
48
|
import { Fragment, jsx as jsx$1, jsxs } from "@opentui/react/jsx-runtime";
|
|
49
49
|
import * as ReactJsxDevRuntime from "react/jsx-dev-runtime";
|
|
50
|
+
//#region src/chat/artifact-editor.ts
|
|
51
|
+
/** The caller owns the terminal; always give it back, including failed launches. */
|
|
52
|
+
function openArtifactFile(path, options) {
|
|
53
|
+
const env = options.env ?? process.env;
|
|
54
|
+
const [command, ...args] = parseEditorCommand((env.VISUAL ?? "").trim() || (env.EDITOR ?? "").trim());
|
|
55
|
+
if (!command) {
|
|
56
|
+
options.openDefault(path);
|
|
57
|
+
return;
|
|
58
|
+
}
|
|
59
|
+
options.suspend();
|
|
60
|
+
try {
|
|
61
|
+
const result = (options.launch ?? ((cmd, argv) => spawnSync(cmd, argv, {
|
|
62
|
+
stdio: "inherit",
|
|
63
|
+
shell: false
|
|
64
|
+
})))(command, [...args, path]);
|
|
65
|
+
if (result.error) throw result.error;
|
|
66
|
+
if (result.status !== 0) throw new Error(`Editor exited with status ${result.status ?? "unknown"}`);
|
|
67
|
+
} finally {
|
|
68
|
+
options.resume();
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
//#endregion
|
|
50
72
|
//#region src/tui/clickable.tsx
|
|
51
73
|
/** Glyph / word aliases → OpenTUI key names (`parse.keypress` conventions). */
|
|
52
74
|
const KEY_NAME_ALIASES = {
|
|
@@ -643,7 +665,7 @@ function ArtifactsModal({ load, subscribe, registry, initialScope = "session", p
|
|
|
643
665
|
return;
|
|
644
666
|
}
|
|
645
667
|
if (key.name === "c") {
|
|
646
|
-
if (focused && onCopy) onCopy(focused.row.href ?? focused.artifact.uri);
|
|
668
|
+
if (focused && onCopy) onCopy(focused.artifact.kind === "commit" ? focused.artifact.uri.replace(/^git:commit:/, "") : focused.row.href ?? focused.artifact.uri);
|
|
647
669
|
return;
|
|
648
670
|
}
|
|
649
671
|
if (key.name === "j") {
|
|
@@ -22827,12 +22849,18 @@ function AppShell() {
|
|
|
22827
22849
|
tryOpenBrowser(href);
|
|
22828
22850
|
return;
|
|
22829
22851
|
}
|
|
22830
|
-
let isDirectory = false;
|
|
22831
22852
|
try {
|
|
22832
|
-
|
|
22833
|
-
|
|
22834
|
-
|
|
22835
|
-
|
|
22853
|
+
const stat = statSync(href);
|
|
22854
|
+
if (stat.isDirectory()) tryRevealPath(href, true);
|
|
22855
|
+
else if (stat.isFile()) openArtifactFile(href, {
|
|
22856
|
+
suspend: () => renderer.suspend(),
|
|
22857
|
+
resume: () => renderer.resume(),
|
|
22858
|
+
openDefault: tryOpenBrowser
|
|
22859
|
+
});
|
|
22860
|
+
} catch (err) {
|
|
22861
|
+
debugLog("open artifact failed", err);
|
|
22862
|
+
}
|
|
22863
|
+
}, [renderer]);
|
|
22836
22864
|
const sessionTitleByIdRef = useRef(() => void 0);
|
|
22837
22865
|
sessionTitleByIdRef.current = (id) => sessions.find((s) => s.id === id)?.title;
|
|
22838
22866
|
const projectDirRef = useRef(projectDir);
|