Skip to content

Commit 2dd9794

Browse files
committed
refactor(ui): 重构代码结构,调整文件路径和导入引用
- 将多个 UI 组件和模块从 src/ui 目录移动到 src/ui/views 目录 - 更新所有相关文件中的导入路径,确保引用正确 - 修改多个类型导入路径,从 session-types 改为 session/types - 统一调整 hooks 和核心模块的导入路径,修正导入命名和位置 - 维护代码一致性,避免因路径更改导致的引用错误 - 重命名 session.ts 为 session/index.ts,并修改相关导入 - 更新测试用例中的类型导入路径以匹配新的文件结构 - 将多处核心或公共模块导入路径调整为模块根目录的对应位置
1 parent febcd93 commit 2dd9794

39 files changed

Lines changed: 109 additions & 121 deletions

src/prompt.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ import * as os from "os";
44
import * as path from "path";
55
import { fileURLToPath } from "url";
66
import ejs from "ejs";
7-
import type { SessionMessage } from "./session-types";
7+
import type { SessionMessage } from "./session/types";
88
import { findGitBashPath, resolveShellPath } from "./common/system/shell-utils";
99
import { supportsMultimodal } from "./common/model-capabilities";
1010

src/session.ts renamed to src/session/index.ts

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -6,32 +6,32 @@ import { fileURLToPath } from "url";
66
import matter from "gray-matter";
77
import ejs from "ejs";
88
import type { ChatCompletionContentPart, ChatCompletionMessageParam } from "openai/resources/chat/completions";
9-
import { launchNotifyScript } from "./common/notify";
10-
import { buildThinkingRequestOptions } from "./common/openai-thinking";
11-
import { supportsMultimodal } from "./common/model-capabilities";
9+
import { launchNotifyScript } from "../common/notify";
10+
import { buildThinkingRequestOptions } from "../common/openai-thinking";
11+
import { supportsMultimodal } from "../common/model-capabilities";
1212
import {
1313
getCompactPrompt,
1414
getDefaultSkillPrompt,
1515
getRuntimeContext,
1616
getSystemPrompt,
1717
getTools,
1818
type ToolDefinition,
19-
} from "./prompt";
19+
} from "../prompt";
2020
import {
2121
type CreateOpenAIClient,
2222
type ProcessTimeoutControl,
2323
type ProcessTimeoutInfo,
2424
type ToolCallExecution,
2525
type ToolExecutionHooks,
2626
ToolExecutor,
27-
} from "./tools/executor";
28-
import { McpManager } from "./mcp/mcp-manager";
29-
import type { McpServerConfig, PermissionSettings } from "./settings";
30-
import { logApiError } from "./common/logging/error-logger";
31-
import { logOpenAIChatCompletionDebug, normalizeDebugError } from "./common/logging/debug-logger";
32-
import { killProcessTree } from "./common/system/process-tree";
33-
import { GitFileHistory } from "./common/runtime/file-history";
34-
import { getSnippet } from "./common/runtime/state";
27+
} from "../tools/executor";
28+
import { McpManager } from "../mcp/mcp-manager";
29+
import type { McpServerConfig, PermissionSettings } from "../settings";
30+
import { logApiError } from "../common/logging/error-logger";
31+
import { logOpenAIChatCompletionDebug, normalizeDebugError } from "../common/logging/debug-logger";
32+
import { killProcessTree } from "../common/system/process-tree";
33+
import { GitFileHistory } from "../common/runtime/file-history";
34+
import { getSnippet } from "../common/runtime/state";
3535
import {
3636
appendProjectPermissionAllows,
3737
buildPermissionToolExecution,
@@ -42,9 +42,9 @@ import {
4242
parseToolCallForPermissions,
4343
type PermissionToolCall,
4444
type UserToolPermission,
45-
} from "./common/permissions";
45+
} from "../common/permissions";
4646

47-
import { getCompactPromptTokenThreshold, getTotalTokens } from "./session/utils";
47+
import { getCompactPromptTokenThreshold, getTotalTokens } from "./utils";
4848
import {
4949
type BashTimeoutAdjustment,
5050
type LlmStreamProgress,
@@ -59,7 +59,7 @@ import {
5959
type SkillInfo,
6060
type UndoTarget,
6161
type UserPromptContent,
62-
} from "./session-types";
62+
} from "./types";
6363

6464
const MAX_SESSION_ENTRIES = 50;
6565
const DEFAULT_NEW_PROMPT_API_URL = "https://deepcode.vegamo.cn/api/plugin/new";
@@ -135,11 +135,11 @@ function accumulateUsagePerModel(
135135

136136
function getExtensionRoot(): string {
137137
if (typeof __dirname !== "undefined") {
138-
return path.resolve(__dirname, "..");
138+
return path.resolve(__dirname, "../..");
139139
}
140140

141141
const currentFilePath = fileURLToPath(import.meta.url);
142-
return path.resolve(path.dirname(currentFilePath), "..");
142+
return path.resolve(path.dirname(currentFilePath), "../..");
143143
}
144144

145145
export class SessionManager {
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
1-
import type { McpServerConfig, PermissionScope, PermissionSettings } from "./settings";
2-
import type { AskPermissionRequest, MessageToolPermission, UserToolPermission } from "./common/permissions";
3-
import type { CreateOpenAIClient } from "./tools/executor";
1+
import type { McpServerConfig, PermissionScope, PermissionSettings } from "../settings";
2+
import type { AskPermissionRequest, MessageToolPermission, UserToolPermission } from "../common/permissions";
3+
import type { CreateOpenAIClient } from "../tools/executor";
44

55
export type SessionStatus =
66
| "failed"

src/session/utils.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import { DEEPSEEK_V4_MODELS } from "../common/model-capabilities";
2-
import type { ModelUsage } from "../session-types";
2+
import type { ModelUsage } from "./types";
33

44
const DEFAULT_COMPACT_PROMPT_TOKEN_THRESHOLD = 128 * 1024;
55
const DEEPSEEK_V4_COMPACT_PROMPT_TOKEN_THRESHOLD = 512 * 1024;

src/tests/askUserQuestion.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { test } from "node:test";
22
import assert from "node:assert/strict";
33
import { findPendingAskUserQuestion, formatAskUserQuestionAnswers, formatAskUserQuestionDecline } from "../ui";
4-
import type { SessionMessage } from "../session-types";
4+
import type { SessionMessage } from "../session/types";
55

66
function message(content: unknown): SessionMessage {
77
const now = "2026-04-29T00:00:00.000Z";

src/tests/exitSummary.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { test } from "node:test";
22
import assert from "node:assert/strict";
33
import { buildExitSummaryText } from "../ui";
4-
import type { ModelUsage, SessionEntry } from "../session-types";
4+
import type { ModelUsage, SessionEntry } from "../session/types";
55

66
const stripAnsi = (text: string): string => text.replace(/\u001b\[[0-9;]*m/g, "");
77

src/tests/messageView.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ import {
88
parseToolPayload,
99
} from "../ui/components/MessageView/utils";
1010
import { RawMode } from "../ui/contexts";
11-
import type { SessionMessage } from "../session-types";
11+
import type { SessionMessage } from "../session/types";
1212
import type { ToolSummary } from "../ui/components/MessageView/types";
1313

1414
test("parseDiffPreview removes headers and classifies lines", () => {

src/tests/permission-prompt.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { test } from "node:test";
22
import assert from "node:assert/strict";
3-
import { getScopeRiskColor } from "../ui/PermissionPrompt";
3+
import { getScopeRiskColor } from "../ui/views/PermissionPrompt";
44

55
test("getScopeRiskColor maps permission scopes by risk", () => {
66
assert.equal(getScopeRiskColor("read-in-cwd"), "#22c55e");

src/tests/promptInputKeys.test.ts

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -14,20 +14,19 @@ import {
1414
getPromptCursorPlacement,
1515
getPromptReturnKeyAction,
1616
isClearImageAttachmentsShortcut,
17-
parseTerminalInput,
1817
removeCurrentSlashToken,
1918
toggleSkillSelection,
2019
renderBufferWithCursor,
2120
buildInitPromptSubmission,
2221
buildPromptDraftFromSessionMessage,
23-
dispatchTerminalInput,
2422
disableTerminalExtendedKeys,
2523
enableTerminalExtendedKeys,
2624
EMPTY_BUFFER,
2725
insertText,
2826
backspace,
2927
} from "../ui";
30-
import type { SessionMessage, SkillInfo } from "../session-types";
28+
import type { SessionMessage, SkillInfo } from "../session/types";
29+
import { dispatchTerminalInput, parseTerminalInput } from "../ui/hooks";
3130

3231
function collectDispatchedInput(data: string) {
3332
const events: ReturnType<typeof parseTerminalInput>[] = [];

src/tests/session.test.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ import * as fs from "fs";
55
import * as os from "os";
66
import * as path from "path";
77
import { GitFileHistory } from "../common/runtime/file-history";
8-
import { type SessionMessage } from "../session-types";
8+
import { type SessionMessage } from "../session/types";
99
import { SessionManager } from "../session";
1010

1111
const originalFetch = globalThis.fetch;

0 commit comments

Comments
 (0)