源码索引
本页分析版本本页由
npm run generate:source-index自动生成,请勿手工编辑。 全书共 353 处源码引用,全部固定在earendil-works/pi@16787ad。
earendil-works/pi@16787ad2026-09-21按章节
3.5 Agent 与 Agent Loop
packages/agent/src/types.ts:485-491·AgentEventpackages/agent/src/agent-loop.ts:162-255·runLooppackages/agent/src/agent-loop.ts:257-291·executeToolCalls
3.7 Compaction、Extension 与 Skill
packages/agent/src/harness/compaction/compaction.ts:146-161·CompactionSettingspackages/agent/src/harness/compaction/compaction.ts:245-249·shouldCompactpackages/coding-agent/src/core/extensions/types.ts:1893-1906·Extensionpackages/agent/src/harness/types.ts:43-60·Skill
3.6 Agent Harness、Session 与状态
packages/ai/package.json:2-4·@earendil-works/pi-aipackages/agent/src/index.ts:41-43·harness/agent-harness.tspackages/agent/src/types.ts:378-417·AgentStatepackages/coding-agent/src/core/agent-session.ts:921-973·appendMessagepackages/agent/src/harness/runtime/drive/response.ts:46-78·openFrameProgresspackages/coding-agent/package.json:2-4·@earendil-works/pi-coding-agent
3.1 LLM 与模型 API
packages/ai/src/providers/faux.ts:78-101·fauxAssistantMessagepackages/coding-agent/test/agent-session-runtime-events.test.ts:42-46·createRuntimeHost
3.2 消息、上下文与 token
packages/ai/src/types.ts:491-553·Messagepackages/ai/src/types.ts:617-621·Context
3.3 流式输出(Streaming)
packages/ai/src/types.ts:636-668·AssistantMessageEventpackages/ai/src/api/anthropic-messages.ts:699-711·parseStreamingJson
3.4 工具调用(Tool Calling)
packages/ai/src/types.ts:600-605·Toolpackages/ai/src/types.ts:386-394·ToolCallpackages/ai/src/types.ts:515-537·AssistantMessagepackages/ai/src/types.ts:539-551·ToolResultMessage
2.5 异步编程:Promise 与 async/await
packages/coding-agent/src/core/tools/write.ts:58-90·executepackages/coding-agent/src/modes/interactive/interactive-mode.ts:1018-1025·Promise.all
2.6 异步迭代器与 for await
packages/ai/src/utils/event-stream.ts:26-89·EventStreampackages/ai/src/api/anthropic-messages.ts:470-509·iterateAnthropicEvents
2.9 错误处理与测试基础
packages/agent/src/harness/types.ts:172-185·FileErrorpackages/agent/src/harness/env/nodejs.ts:101-129·toFileErrorpackages/coding-agent/test/path-utils.test.ts:1-12·expandPath
2.7 事件、回调与取消(AbortController)
packages/agent/src/agent.ts:332-340·abortpackages/ai/src/utils/abort-signals.ts:6-41·combineAbortSignals
1.2 运行第一个 TypeScript 程序
pi-test.sh:57-57·tsxpackage.json:65-65·tsx
2.4 泛型、class 与类型收窄
packages/agent/src/harness/types.ts:8-19·Resultpackages/agent/src/agent.ts:187-193·Agentpackages/agent/src/harness/session/session.ts:224-241·StorageBackedSessionpackages/agent/src/harness/types.ts:32-41·toError
2.2 interface、type 与函数类型
packages/ai/src/types.ts:600-605·Toolpackages/agent/src/types.ts:442-468·AgentToolpackages/agent/src/types.ts:47-47·ToolExecutionMode
1.4 模块系统:import 与 export
packages/agent/package.json:5-5packages/agent/src/agent.ts:1-36·runAgentLooptsconfig.base.json:18-19·allowImportingTsExtensionspackages/agent/src/index.ts:1-152
2.8 Node.js 文件、路径与进程 API
packages/agent/src/harness/tools/read.ts:55-58·executepackages/agent/src/harness/env/nodejs.ts:1-20·node:fs/promisespackages/agent/src/harness/env/nodejs.ts:750-776·readBinaryFile
1.3 npm、package.json 与项目结构
package.json:5-13·workspacespackages/coding-agent/package.json:51-55·dependenciespackages/coding-agent/package.json:9-11·bin
2.1 类型入门:基本类型与对象
packages/ai/src/types.ts:380-384·ImageContentpackages/ai/src/types.ts:396-417·Usage
2.3 union、字面量与可辨识联合
packages/ai/src/types.ts:364-394·TextContentpackages/ai/src/types.ts:515-537·AssistantMessagepackages/ai/src/types.ts:553-553·Messagepackages/ai/src/types.ts:652-668·AssistantMessageEvent
1.1 JavaScript、TypeScript 与 Node.js
package.json:68-70·enginestsconfig.base.json:2-6
8.5 取消与 Extension Hook
packages/agent/src/agent.ts:503-526·runWithLifecyclepackages/agent/src/agent.ts:332-340·abortpackages/agent/src/agent-loop.ts:241-255·stopReasonpackages/agent/src/agent-loop.ts:773-800·executePreparedToolCallpackages/coding-agent/src/core/extensions/types.ts:1715-1716·ExtensionFactorypackages/coding-agent/src/core/extensions/loader.ts:537-583·loadExtensionpackages/coding-agent/src/core/extensions/loader.ts:479-510·loadExtensionModulepackages/coding-agent/src/core/extensions/types.ts:1349-1419·ExtensionAPIpackages/coding-agent/src/core/event-bus.ts:12-33·createEventBuspackages/coding-agent/src/core/extensions/runner.ts:988-1017·emitpackages/coding-agent/src/core/extensions/loader.ts:273-285·registerToolpackages/coding-agent/src/core/agent-session.ts:3206-3210·toolRegistrypackages/coding-agent/src/core/extensions/loader.ts:153-181·createExtensionRuntime
8.1 最小 CLI 与 Fake Model
packages/coding-agent/src/main.ts:284-296·promptConfirmpackages/coding-agent/src/main.ts:111-122·resolveAppModepackages/ai/src/types.ts:611-621·Contextpackages/ai/src/types.ts:481-553·Messagepackages/ai/src/providers/faux.ts:109-116·FauxResponseSteppackages/ai/src/providers/faux.ts:505-564·streampackages/agent/src/types.ts:19-37·StreamFn
8.3 Agent Loop 与工具执行
packages/agent/src/agent-loop.ts:159-320·runLooppackages/agent/src/agent-loop.ts:475-500·failToolCallsFromTruncatedMessagepackages/agent/src/agent-loop.ts:685-687·shouldTerminateToolBatchpackages/agent/src/agent-loop.ts:703-771·prepareToolCallpackages/ai/src/utils/validation.ts:310-350·validateToolArgumentspackages/ai/src/types.ts:600-605·Toolpackages/agent/src/types.ts:442-468·AgentToolpackages/agent/src/types.ts:478-500·AgentEvent
8.2 消息历史与流式事件
packages/ai/src/types.ts:636-668·AssistantMessageEventpackages/ai/src/types.ts:335-350·StreamFunctionpackages/agent/src/types.ts:19-37·StreamFnpackages/agent/src/types.ts:478-500·AgentEventpackages/agent/src/agent-loop.ts:411-453·message_updatepackages/ai/src/utils/event-stream.ts:91-105·AssistantMessageEventStreampackages/agent/src/agent-loop.ts:241-255·stopReasonpackages/ai/src/providers/faux.ts:390-405·splitStringByTokenSize
8.0 Mini Harness 总览与准备
packages/ai/src/types.ts:611-621·Contextpackages/ai/src/types.ts:625-634·TranscriptContextpackages/ai/src/types.ts:335-350·StreamFunctionpackages/ai/src/types.ts:636-668·AssistantMessageEventpackages/agent/src/types.ts:478-500·AgentEventpackages/agent/src/harness/agent-harness.ts:255-375·HarnessEventPayloadpackages/ai/src/types.ts:17-27·KnownApipackages/ai/src/types.ts:35-76·KnownProviderpackages/agent/src/agent.ts:245-251·toolExecution
8.6 接入真实模型(可选)
packages/ai/src/providers/anthropic.ts:9-41·anthropicApiKeyAuthpackages/coding-agent/src/core/auth-storage.ts:347-350·AuthStoragepackages/ai/src/types.ts:335-350·StreamFunctionpackages/ai/src/api/anthropic-messages.ts:411-468·iterateSseMessagespackages/ai/src/api/anthropic-messages.ts:470-509·iterateAnthropicEventspackages/ai/src/api/anthropic-messages.ts:699-711·input_json_deltapackages/ai/src/api/anthropic-messages.ts:1494-1521·mapStopReason
8.4 Session 保存与恢复
packages/coding-agent/src/core/session-manager.ts:41-50·SessionHeaderpackages/coding-agent/src/core/session-manager.ts:57-62·SessionEntryBasepackages/coding-agent/src/core/session-manager.ts:182-194·SessionEntrypackages/coding-agent/src/core/agent-session.ts:921-943·appendMessagepackages/coding-agent/src/core/session-manager.ts:1160-1187·_persistpackages/coding-agent/src/core/session-manager.ts:626-670·loadEntriesFromFilepackages/coding-agent/src/core/session-manager.ts:333-347·migrateToCurrentVersionpackages/agent/src/harness/session/jsonl/codec.ts:52-62·parseJsonlSessionHeaderpackages/coding-agent/src/main.ts:431-433·continueRecentpackages/coding-agent/src/core/session-manager.ts:748-768·findMostRecentSessionpackages/coding-agent/src/core/session-manager.ts:1790-1798·continueRecentpackages/coding-agent/src/core/sdk.ts:366-373·existingSession.messagespackages/coding-agent/src/core/sdk.ts:402-413·appendModelChangepackages/coding-agent/src/core/agent-session.ts:608-632·_installAgentRequestProjection
7.4 自定义 Provider
packages/coding-agent/src/core/extensions/types.ts:1604-1605·registerProviderpackages/coding-agent/examples/extensions/custom-provider-anthropic/index.ts:581-617·pi.registerProviderpackages/coding-agent/src/core/extensions/loader.ts:421-429·registerProviderpackages/coding-agent/src/core/extensions/loader.ts:204-211·pendingProviderRegistrationspackages/coding-agent/src/core/extensions/runner.ts:442-459·pendingProviderRegistrationspackages/coding-agent/src/core/agent-session.ts:3127-3140·registerNativeProviderpackages/coding-agent/src/core/model-runtime.ts:753-789·registerProviderpackages/coding-agent/src/core/model-runtime.ts:246-268·recomposeProviderpackages/coding-agent/src/core/provider-composer.ts:493-513·streamWithpackages/coding-agent/src/extensions/index.ts:1-4·builtInExtensions
7.3 自定义工具与斜杠命令
packages/coding-agent/src/core/extensions/types.ts:455-504·ToolDefinitionpackages/coding-agent/src/core/extensions/loader.ts:273-285·registerToolpackages/coding-agent/src/core/extensions/runner.ts:586-597·getAllRegisteredToolspackages/coding-agent/src/core/agent-session.ts:3144-3210·_refreshToolRegistrypackages/coding-agent/src/core/extensions/wrapper.ts:17-19·wrapRegisteredToolpackages/agent/src/agent-loop.ts:703-721·prepareToolCallpackages/coding-agent/src/core/slash-commands.ts:19-44·BUILTIN_SLASH_COMMANDSpackages/coding-agent/src/core/extensions/loader.ts:287-294·registerCommandpackages/coding-agent/src/core/agent-session.ts:1766-1790·_tryExecuteExtensionCommandpackages/coding-agent/src/modes/interactive/interactive-mode.ts:679-777·createBaseAutocompleteProvider
7.1 Extension 系统
packages/coding-agent/src/core/extensions/types.ts:1715-1716·ExtensionFactorypackages/coding-agent/src/core/extensions/loader.ts:702-712·discoverExtensionsInDirpackages/coding-agent/src/core/extensions/loader.ts:487-501·createJitiImplpackages/coding-agent/src/core/extensions/loader.ts:557-580·loadExtensionpackages/coding-agent/src/core/extensions/loader.ts:536-555·initializeExtensionpackages/coding-agent/src/core/extensions/types.ts:1349-1419·ExtensionAPIpackages/coding-agent/src/core/extensions/loader.ts:153-221·createExtensionRuntimepackages/coding-agent/src/core/extensions/runner.ts:988-1017·RunnerEmitResultpackages/coding-agent/src/core/agent-session.ts:529-549·_installAgentToolHookspackages/coding-agent/src/core/event-bus.ts:12-33·createEventBuspackages/coding-agent/examples/extensions/pirate.ts:15-46·pirateExtension
7.2 Skill 系统
packages/coding-agent/src/core/skills.ts:67-81·SkillFrontmatterpackages/coding-agent/src/core/skills.ts:304-332·frontmatterName || parentDirNamepackages/coding-agent/src/core/package-manager.ts:2385-2401·userAgentsSkillsDirpackages/coding-agent/src/core/package-manager.ts:421-430·shouldIncludeMarkdownFilepackages/coding-agent/src/core/skills.ts:160-171·loadSkillsFromDirpackages/coding-agent/src/core/resource-loader.ts:468-473·updateSkillsFromPathspackages/coding-agent/src/core/agent-session.ts:1371-1395·_rebuildSystemPromptpackages/coding-agent/src/core/system-prompt.ts:165-169·skillFileReadToolpackages/coding-agent/src/core/skills.ts:355-383·formatSkillsForPromptpackages/coding-agent/src/core/agent-session.ts:1797-1821·_expandSkillCommand
6.3 pi-agent-core:Agent 与循环
packages/agent/src/agent-loop.ts:159-182·runLooppackages/agent/src/agent-loop.ts:244-286·hasMoreToolCallspackages/agent/src/agent-loop.ts:288-319·getFollowUpMessagespackages/agent/src/types.ts:485-500·AgentEventpackages/agent/src/agent.ts:367-408·promptpackages/agent/src/agent.ts:492-500·getSteeringMessagespackages/agent/src/agent.ts:228-251·getDefaultStreamFnpackages/agent/src/harness/agent-harness.ts:614-622·AgentHarnesspackages/agent/src/harness/runtime/drive.ts:28-106·driveOperationpackages/agent/src/harness/runtime/lane.ts:328-381·commandpackages/agent/src/harness/runtime/lane.ts:1418-1432·nextRun
6.1 pi-ai:统一的模型接口
packages/ai/src/providers/all.ts:137-143·builtinModelspackages/ai/src/models.ts:163-235·Modelspackages/ai/src/models.ts:695-701·completepackages/ai/src/types.ts:364-553·Messagepackages/ai/src/types.ts:652-668·AssistantMessageEventpackages/ai/src/utils/event-stream.ts:26-89·EventStreampackages/ai/src/api/anthropic-messages.ts:411-468·iterateSseMessagespackages/ai/src/api/anthropic-messages.ts:699-711·input_json_deltapackages/ai/src/utils/json-parse.ts:104-124·parseStreamingJsonpackages/ai/src/providers/faux.ts:687-710·fauxProvider
6.6 Context 构造与 Compaction
packages/coding-agent/src/core/session-manager.ts:439-466·sessionEntryToContextMessagespackages/coding-agent/src/core/session-manager.ts:476-512·buildContextEntriespackages/coding-agent/src/core/session-manager.ts:543-573·buildSessionProjectionpackages/coding-agent/src/core/messages.ts:148-196·convertToLlmpackages/agent/src/agent-loop.ts:380-406·streamAssistantResponsepackages/coding-agent/src/core/compaction/compaction.ts:289-292·shouldCompactpackages/coding-agent/src/core/agent-session.ts:2599-2735·_checkCompactionpackages/ai/src/utils/overflow.ts:136-170·isContextOverflowpackages/coding-agent/src/core/compaction/compaction.ts:894-958·prepareCompactionpackages/coding-agent/src/core/compaction/compaction.ts:824-892·findProjectedCutPointpackages/coding-agent/src/core/compaction/compaction.ts:641-661·completeSummarization
6.10 交互模式与 RPC 模式
packages/coding-agent/src/main.ts:111-126·resolveAppModepackages/coding-agent/src/main.ts:845-849·createAgentSessionRuntimepackages/coding-agent/src/core/agent-session-runtime.ts:67-79·AgentSessionRuntimepackages/coding-agent/src/main.ts:930-980·runRpcModepackages/coding-agent/src/modes/rpc/jsonl.ts:4-12·serializeJsonLinepackages/coding-agent/src/modes/rpc/rpc-types.ts:20-74·RpcCommandpackages/coding-agent/src/modes/rpc/rpc-mode.ts:50-62·runRpcModepackages/coding-agent/src/modes/json-event.ts:40-61·toJsonEventpackages/coding-agent/src/modes/rpc/rpc-mode.ts:752-802·handleInputLinepackages/coding-agent/src/modes/print-mode.ts:108-127·getHeader
6.7 系统提示词与 Prompt Templates
packages/coding-agent/src/core/system-prompt.ts:9-32·BuildSystemPromptOptionspackages/coding-agent/src/core/system-prompt.ts:142-161·promptSections.preamblepackages/coding-agent/src/core/system-prompt.ts:163-179·project_contextpackages/coding-agent/src/core/system-prompt.ts:143-145·customPromptpackages/ai/src/types.ts:481-507·SystemMessagepackages/coding-agent/src/core/agent-session.ts:1407-1421·_preparePromptAndToolLoadoutpackages/coding-agent/src/core/agent-session.ts:1371-1395·_rebuildSystemPromptpackages/coding-agent/src/core/resource-loader.ts:526-542·systemPromptSourcepackages/coding-agent/src/core/resource-loader.ts:54-69·resolvePromptInputpackages/coding-agent/src/core/prompt-templates.ts:105-154·loadTemplateFromFilepackages/coding-agent/src/core/prompt-templates.ts:304-320·expandPromptTemplatepackages/coding-agent/src/core/prompt-templates.ts:71-103·substituteArgs
6.2 Provider 与模型注册
packages/ai/src/models.ts:99-156·Providerpackages/ai/src/providers/cerebras.ts:6-15·cerebrasProviderpackages/ai/src/models.ts:784-884·createProviderpackages/ai/src/models.ts:48-64·RefreshModelsContextpackages/ai/src/providers/all.ts:90-134·builtinProviderspackages/ai/src/providers/all.ts:137-143·builtinModelspackages/ai/src/models.generated.ts:46-130·MODELSpackages/ai/scripts/generate-models.ts:1733-1738·loadModelsDevDatapackages/ai/src/api/lazy.ts:73-98·lazyApipackages/coding-agent/src/core/model-resolver.ts:204-257·parseModelPatternpackages/ai/src/auth/helpers.ts:9-31·envApiKeyAuthpackages/coding-agent/src/core/model-runtime.ts:173-218·static async create
6.11 SDK:把 Pi 当作库使用
packages/coding-agent/src/core/sdk.ts:175-191·createAgentSessionpackages/coding-agent/src/core/sdk.ts:375-386·streamFnpackages/coding-agent/src/core/agent-session.ts:608-633·_installAgentRequestProjectionpackages/coding-agent/src/core/sdk.ts:415-439·new AgentSessionpackages/coding-agent/src/core/session-manager.ts:1800-1803·static inMemorypackages/coding-agent/src/core/session-manager.ts:1160-1161·_persistpackages/coding-agent/src/core/agent-session-runtime.ts:422-440·createAgentSessionRuntimepackages/coding-agent/src/index.ts:386-403packages/coding-agent/src/modes/rpc/rpc-client.ts:74-98·async startpackages/ai/src/providers/faux.ts:687-710·fauxProviderpackages/coding-agent/src/core/model-runtime.ts:744-751·registerNativeProvider
6.5 Session 存储格式与会话树
packages/agent/src/harness/session/types.ts:455-471·interface Storagepackages/agent/src/harness/session/session.ts:422-454·appendToBranchpackages/agent/src/harness/session/types.ts:592-602·interface SessionRepopackages/coding-agent/src/core/session-manager.ts:183-195·export type SessionEntrypackages/agent/src/harness/session/types.ts:16-64·export type Entrypackages/agent/src/harness/session/session.ts:355-368·createBranchpackages/agent/src/harness/session/in-memory-storage-state.ts:273-301·scanBranchpackages/agent/src/harness/session/jsonl/storage.ts:138-151·applyCommitpackages/agent/src/harness/session/jsonl/repo.ts:146-196·forkpackages/agent/src/harness/session/memory.ts:37-60·MemoryStoragepackages/session-backends/sqlite-node/src/sqlite/repo.ts:157-173·SqliteSessionRepo
6.8 配置系统
packages/coding-agent/src/config.ts:528-534·getAgentDirpackages/coding-agent/src/core/settings-manager.ts:230-239·FileSettingsStoragepackages/coding-agent/src/core/settings-manager.ts:110-163·export interface Settingspackages/coding-agent/src/core/settings-manager.ts:165-191·deepMergeSettingspackages/coding-agent/src/core/settings-manager.ts:410-426·loadFromStoragepackages/coding-agent/src/core/project-trust.ts:46-96·resolveProjectTrustedpackages/coding-agent/src/core/settings-manager.ts:637-666·persistScopedSettingspackages/coding-agent/src/main.ts:675-679·getSessionDirpackages/coding-agent/src/core/sdk.ts:231-249·getDefaultThinkingLevelpackages/coding-agent/src/core/sdk.ts:258-265·getDefaultTools
6.4 工具系统:定义、校验与执行
packages/ai/src/types.ts:600-605·Toolpackages/agent/src/types.ts:443-468·AgentToolpackages/coding-agent/src/core/extensions/types.ts:455-492·ToolDefinitionpackages/agent/src/agent-loop.ts:719-721·validateToolArgumentspackages/ai/src/utils/validation.ts:317-339·validateToolArgumentspackages/coding-agent/src/core/tools/index.ts:182-193·createAllToolDefinitionspackages/coding-agent/src/core/tools/read.ts:101-131·resolveReadPathAsyncpackages/coding-agent/src/core/tools/truncate.ts:168-213·truncateTailpackages/coding-agent/src/core/tools/output-accumulator.ts:91-119·snapshotpackages/coding-agent/src/core/tools/file-mutation-queue.ts:32-61·withFileMutationQueue
6.9 pi-tui:终端界面库
packages/tui/src/tui.ts:111-136·Componentpackages/tui/src/tui.ts:366-378·render(width: number): string[]packages/tui/src/tui-main-screen.ts:363-389·firstChangedpackages/tui/src/tui.ts:952-1004·requestRenderpackages/tui/src/tui-alt-screen.ts:383-406·afterTerminalStoppackages/coding-agent/src/modes/interactive/tui-renderer.ts:21-48·createInteractiveTuipackages/coding-agent/src/modes/interactive/interactive-mode.ts:827-833·mountInteractiveTuipackages/coding-agent/src/modes/interactive/interactive-mode.ts:3401-3434·message_updatepackages/coding-agent/src/modes/interactive/components/assistant-message.ts:91-106·updateContentpackages/coding-agent/src/modes/interactive/components/footer.ts:84-106·render(width: number): string[]
4.3 monorepo 与 package 地图
package.json:5-13·workspacespackages/coding-agent/package.json:9-11·bin
4.1 Pi 是什么
pi-test.sh:57·tsx
4.4 从哪里开始读源码
packages/coding-agent/src/cli.ts:6·mainpackages/coding-agent/src/cli/setup.ts:4-13·setupClipackages/coding-agent/src/main.ts:566·export async function mainpackages/coding-agent/src/main.ts:111-122·resolveAppMode
5.6 取消与错误处理
packages/coding-agent/src/modes/interactive/interactive-mode.ts:2965-2991·onEscapepackages/agent/src/agent.ts:332-340·abortpackages/agent/src/agent-loop.ts:398-406·streamFunctionpackages/ai/src/api/anthropic-messages.ts:817-826·stopReasonpackages/agent/src/agent-loop.ts:244-255·stopReasonpackages/ai/src/api/transform-messages.ts:191-203·closePendingToolCallspackages/ai/src/utils/provider-retry.ts:105-125·retryProviderRequestpackages/ai/src/utils/retry.ts:237-242·isRetryableAssistantErrorpackages/ai/src/utils/overflow.ts:136-169·isContextOverflowpackages/coding-agent/src/core/agent-session.ts:1492-1529·_handlePostAgentRun
5.5 Session 的创建、保存与恢复
packages/coding-agent/src/core/session-manager.ts:589-594·getDefaultSessionDirPathpackages/coding-agent/src/core/session-manager.ts:1057-1083·newSessionpackages/coding-agent/src/core/session-manager.ts:43-62·SessionEntryBasepackages/coding-agent/src/core/sdk.ts:402-413·appendModelChangepackages/coding-agent/src/core/agent-session.ts:894-943·_handleAgentEventpackages/coding-agent/src/core/session-manager.ts:1160-1187·_persistpackages/coding-agent/src/core/session-manager.ts:1566-1586·branchpackages/coding-agent/src/core/session-manager.ts:1103-1122·_buildIndexpackages/coding-agent/src/main.ts:357-448·createSessionManager
5.2 一次普通请求的完整路径
packages/coding-agent/src/modes/interactive/interactive-mode.ts:1184-1193·getUserInputpackages/coding-agent/src/modes/interactive/interactive-mode.ts:3265-3275·onInputCallbackpackages/coding-agent/src/core/agent-session.ts:1606-1625·async promptpackages/coding-agent/src/core/agent-session.ts:1673-1691·hasConfiguredAuthpackages/coding-agent/src/core/agent-session.ts:1468-1490·_runAgentPromptpackages/agent/src/agent.ts:429-443·runPromptMessagespackages/agent/src/agent-loop.ts:178-255·hasMoreToolCallspackages/agent/src/agent-loop.ts:387-406·streamFunctionpackages/coding-agent/src/core/sdk.ts:366-386·streamFnpackages/coding-agent/src/core/agent-session.ts:894-942·_handleAgentEvent
5.1 启动:pi 命令如何跑起来
scripts/build-coding-agent-bundle.mjs:209-215·cliLauncherpackages/coding-agent/src/cli.ts:1-6·mainpackages/coding-agent/src/cli/setup.ts:4-13·setupClipackages/coding-agent/src/main.ts:584-588·getAgentDirpackages/coding-agent/src/cli/args.ts:71-77·parseArgspackages/coding-agent/src/config.ts:527-534·getAgentDirpackages/coding-agent/src/core/settings-manager.ts:234-239·projectSettingsPathpackages/coding-agent/src/core/settings-manager.ts:410-413·loadFromStoragepackages/coding-agent/src/core/project-trust.ts:46-96·resolveProjectTrustedpackages/coding-agent/src/main.ts:357-365·createSessionManagerpackages/coding-agent/src/main.ts:735-741·createAgentSessionServicespackages/coding-agent/src/core/agent-session-runtime.ts:422-440·createAgentSessionRuntime
5.4 流式事件如何传播到界面
packages/ai/src/types.ts:652-668·AssistantMessageEventpackages/ai/src/api/anthropic-messages.ts:674-686·content_block_deltapackages/ai/src/utils/event-stream.ts:43-58·pushpackages/agent/src/types.ts:485-500·AgentEventpackages/agent/src/agent-loop.ts:411-438·message_updatepackages/agent/src/agent.ts:561-608·processEventspackages/coding-agent/src/core/agent-session.ts:164-205·AgentSessionEventpackages/coding-agent/src/core/agent-session.ts:894-919·_handleAgentEventpackages/coding-agent/src/modes/interactive/interactive-mode.ts:3401-3434·message_updatepackages/coding-agent/src/modes/print-mode.ts:106-127·writeRawStdoutpackages/coding-agent/src/modes/json-event.ts:40-61·toJsonEvent
5.3 一次 Tool Call 的完整循环
packages/ai/src/types.ts:386-394·ToolCallpackages/agent/src/agent-loop.ts:258-277·hasMoreToolCallspackages/agent/src/agent-loop.ts:475-500·failToolCallsFromTruncatedMessagepackages/agent/src/agent-loop.ts:505-520·executeToolCallspackages/agent/src/agent-loop.ts:703-771·prepareToolCallpackages/ai/src/utils/validation.ts:317-350·validateToolArgumentspackages/agent/src/agent-loop.ts:773-814·executePreparedToolCallpackages/coding-agent/src/core/tools/read.ts:66-108·createReadToolDefinitionpackages/coding-agent/src/core/tools/truncate.ts:78-119·truncateHeadpackages/agent/src/agent-loop.ts:880-898·createToolResultMessage
按 package 与文件
packages/agent
packages/agent/package.jsonpackages/agent/src/agent-loop.tsrunLoop→ 见 3.5 Agent 与 Agent LoopexecuteToolCalls→ 见 3.5 Agent 与 Agent LoopstopReason→ 见 8.5 取消与 Extension HookexecutePreparedToolCall→ 见 8.5 取消与 Extension HookfailToolCallsFromTruncatedMessage→ 见 8.3 Agent Loop 与工具执行shouldTerminateToolBatch→ 见 8.3 Agent Loop 与工具执行prepareToolCall→ 见 8.3 Agent Loop 与工具执行message_update→ 见 8.2 消息历史与流式事件hasMoreToolCalls→ 见 6.3 pi-agent-core:Agent 与循环getFollowUpMessages→ 见 6.3 pi-agent-core:Agent 与循环streamAssistantResponse→ 见 6.6 Context 构造与 CompactionvalidateToolArguments→ 见 6.4 工具系统:定义、校验与执行streamFunction→ 见 5.6 取消与错误处理createToolResultMessage→ 见 5.3 一次 Tool Call 的完整循环
packages/agent/src/agent.tsabort→ 见 2.7 事件、回调与取消(AbortController)Agent→ 见 2.4 泛型、class 与类型收窄runAgentLoop→ 见 1.4 模块系统:import 与 exportrunWithLifecycle→ 见 8.5 取消与 Extension HooktoolExecution→ 见 8.0 Mini Harness 总览与准备prompt→ 见 6.3 pi-agent-core:Agent 与循环getSteeringMessages→ 见 6.3 pi-agent-core:Agent 与循环getDefaultStreamFn→ 见 6.3 pi-agent-core:Agent 与循环runPromptMessages→ 见 5.2 一次普通请求的完整路径processEvents→ 见 5.4 流式事件如何传播到界面
packages/agent/src/harness/agent-harness.tsHarnessEventPayload→ 见 8.0 Mini Harness 总览与准备AgentHarness→ 见 6.3 pi-agent-core:Agent 与循环
packages/agent/src/harness/compaction/compaction.tsCompactionSettings→ 见 3.7 Compaction、Extension 与 SkillshouldCompact→ 见 3.7 Compaction、Extension 与 Skill
packages/agent/src/harness/env/nodejs.tstoFileError→ 见 2.9 错误处理与测试基础node:fs/promises→ 见 2.8 Node.js 文件、路径与进程 APIreadBinaryFile→ 见 2.8 Node.js 文件、路径与进程 API
packages/agent/src/harness/runtime/drive.tsdriveOperation→ 见 6.3 pi-agent-core:Agent 与循环
packages/agent/src/harness/runtime/drive/response.tsopenFrameProgress→ 见 3.6 Agent Harness、Session 与状态
packages/agent/src/harness/runtime/lane.tscommand→ 见 6.3 pi-agent-core:Agent 与循环nextRun→ 见 6.3 pi-agent-core:Agent 与循环
packages/agent/src/harness/session/in-memory-storage-state.tsscanBranch→ 见 6.5 Session 存储格式与会话树
packages/agent/src/harness/session/jsonl/codec.tsparseJsonlSessionHeader→ 见 8.4 Session 保存与恢复
packages/agent/src/harness/session/jsonl/repo.tsfork→ 见 6.5 Session 存储格式与会话树
packages/agent/src/harness/session/jsonl/storage.tsapplyCommit→ 见 6.5 Session 存储格式与会话树
packages/agent/src/harness/session/memory.tsMemoryStorage→ 见 6.5 Session 存储格式与会话树
packages/agent/src/harness/session/session.tsStorageBackedSession→ 见 2.4 泛型、class 与类型收窄appendToBranch→ 见 6.5 Session 存储格式与会话树createBranch→ 见 6.5 Session 存储格式与会话树
packages/agent/src/harness/session/types.tsinterface Storage→ 见 6.5 Session 存储格式与会话树interface SessionRepo→ 见 6.5 Session 存储格式与会话树export type Entry→ 见 6.5 Session 存储格式与会话树
packages/agent/src/harness/tools/read.tsexecute→ 见 2.8 Node.js 文件、路径与进程 API
packages/agent/src/harness/types.tsSkill→ 见 3.7 Compaction、Extension 与 SkillFileError→ 见 2.9 错误处理与测试基础Result→ 见 2.4 泛型、class 与类型收窄toError→ 见 2.4 泛型、class 与类型收窄
packages/agent/src/index.tsharness/agent-harness.ts→ 见 3.6 Agent Harness、Session 与状态
packages/agent/src/types.tsAgentEvent→ 见 3.5 Agent 与 Agent LoopAgentState→ 见 3.6 Agent Harness、Session 与状态AgentTool→ 见 2.2 interface、type 与函数类型ToolExecutionMode→ 见 2.2 interface、type 与函数类型StreamFn→ 见 8.1 最小 CLI 与 Fake Model
packages/ai
packages/ai/package.json@earendil-works/pi-ai→ 见 3.6 Agent Harness、Session 与状态
packages/ai/scripts/generate-models.tsloadModelsDevData→ 见 6.2 Provider 与模型注册
packages/ai/src/api/anthropic-messages.tsparseStreamingJson→ 见 3.3 流式输出(Streaming)iterateAnthropicEvents→ 见 2.6 异步迭代器与 for awaititerateSseMessages→ 见 8.6 接入真实模型(可选)input_json_delta→ 见 8.6 接入真实模型(可选)mapStopReason→ 见 8.6 接入真实模型(可选)stopReason→ 见 5.6 取消与错误处理content_block_delta→ 见 5.4 流式事件如何传播到界面
packages/ai/src/api/lazy.tslazyApi→ 见 6.2 Provider 与模型注册
packages/ai/src/api/transform-messages.tsclosePendingToolCalls→ 见 5.6 取消与错误处理
packages/ai/src/auth/helpers.tsenvApiKeyAuth→ 见 6.2 Provider 与模型注册
packages/ai/src/models.generated.tsMODELS→ 见 6.2 Provider 与模型注册
packages/ai/src/models.tsModels→ 见 6.1 pi-ai:统一的模型接口complete→ 见 6.1 pi-ai:统一的模型接口Provider→ 见 6.2 Provider 与模型注册createProvider→ 见 6.2 Provider 与模型注册RefreshModelsContext→ 见 6.2 Provider 与模型注册
packages/ai/src/providers/all.tsbuiltinModels→ 见 6.1 pi-ai:统一的模型接口builtinProviders→ 见 6.2 Provider 与模型注册
packages/ai/src/providers/anthropic.tsanthropicApiKeyAuth→ 见 8.6 接入真实模型(可选)
packages/ai/src/providers/cerebras.tscerebrasProvider→ 见 6.2 Provider 与模型注册
packages/ai/src/providers/faux.tsfauxAssistantMessage→ 见 3.1 LLM 与模型 APIFauxResponseStep→ 见 8.1 最小 CLI 与 Fake Modelstream→ 见 8.1 最小 CLI 与 Fake ModelsplitStringByTokenSize→ 见 8.2 消息历史与流式事件fauxProvider→ 见 6.1 pi-ai:统一的模型接口
packages/ai/src/types.tsMessage→ 见 3.2 消息、上下文与 tokenContext→ 见 3.2 消息、上下文与 tokenAssistantMessageEvent→ 见 3.3 流式输出(Streaming)Tool→ 见 3.4 工具调用(Tool Calling)ToolCall→ 见 3.4 工具调用(Tool Calling)AssistantMessage→ 见 3.4 工具调用(Tool Calling)ToolResultMessage→ 见 3.4 工具调用(Tool Calling)ImageContent→ 见 2.1 类型入门:基本类型与对象Usage→ 见 2.1 类型入门:基本类型与对象TextContent→ 见 2.3 union、字面量与可辨识联合StreamFunction→ 见 8.2 消息历史与流式事件TranscriptContext→ 见 8.0 Mini Harness 总览与准备KnownApi→ 见 8.0 Mini Harness 总览与准备KnownProvider→ 见 8.0 Mini Harness 总览与准备SystemMessage→ 见 6.7 系统提示词与 Prompt Templates
packages/ai/src/utils/abort-signals.tscombineAbortSignals→ 见 2.7 事件、回调与取消(AbortController)
packages/ai/src/utils/event-stream.tsEventStream→ 见 2.6 异步迭代器与 for awaitAssistantMessageEventStream→ 见 8.2 消息历史与流式事件push→ 见 5.4 流式事件如何传播到界面
packages/ai/src/utils/json-parse.tsparseStreamingJson→ 见 6.1 pi-ai:统一的模型接口
packages/ai/src/utils/overflow.tsisContextOverflow→ 见 6.6 Context 构造与 Compaction
packages/ai/src/utils/provider-retry.tsretryProviderRequest→ 见 5.6 取消与错误处理
packages/ai/src/utils/retry.tsisRetryableAssistantError→ 见 5.6 取消与错误处理
packages/ai/src/utils/validation.tsvalidateToolArguments→ 见 8.3 Agent Loop 与工具执行
packages/coding-agent
packages/coding-agent/examples/extensions/custom-provider-anthropic/index.tspi.registerProvider→ 见 7.4 自定义 Provider
packages/coding-agent/examples/extensions/pirate.tspirateExtension→ 见 7.1 Extension 系统
packages/coding-agent/package.json@earendil-works/pi-coding-agent→ 见 3.6 Agent Harness、Session 与状态dependencies→ 见 1.3 npm、package.json 与项目结构bin→ 见 1.3 npm、package.json 与项目结构
packages/coding-agent/src/cli.tsmain→ 见 4.4 从哪里开始读源码
packages/coding-agent/src/cli/args.tsparseArgs→ 见 5.1 启动:pi 命令如何跑起来
packages/coding-agent/src/cli/setup.tssetupCli→ 见 4.4 从哪里开始读源码
packages/coding-agent/src/config.tsgetAgentDir→ 见 6.8 配置系统
packages/coding-agent/src/core/agent-session-runtime.tsAgentSessionRuntime→ 见 6.10 交互模式与 RPC 模式createAgentSessionRuntime→ 见 6.11 SDK:把 Pi 当作库使用
packages/coding-agent/src/core/agent-session.tsappendMessage→ 见 3.6 Agent Harness、Session 与状态toolRegistry→ 见 8.5 取消与 Extension Hook_installAgentRequestProjection→ 见 8.4 Session 保存与恢复registerNativeProvider→ 见 7.4 自定义 Provider_refreshToolRegistry→ 见 7.3 自定义工具与斜杠命令_tryExecuteExtensionCommand→ 见 7.3 自定义工具与斜杠命令_installAgentToolHooks→ 见 7.1 Extension 系统_rebuildSystemPrompt→ 见 7.2 Skill 系统_expandSkillCommand→ 见 7.2 Skill 系统_checkCompaction→ 见 6.6 Context 构造与 Compaction_preparePromptAndToolLoadout→ 见 6.7 系统提示词与 Prompt Templates_handlePostAgentRun→ 见 5.6 取消与错误处理_handleAgentEvent→ 见 5.5 Session 的创建、保存与恢复async prompt→ 见 5.2 一次普通请求的完整路径hasConfiguredAuth→ 见 5.2 一次普通请求的完整路径_runAgentPrompt→ 见 5.2 一次普通请求的完整路径AgentSessionEvent→ 见 5.4 流式事件如何传播到界面
packages/coding-agent/src/core/auth-storage.tsAuthStorage→ 见 8.6 接入真实模型(可选)
packages/coding-agent/src/core/compaction/compaction.tsshouldCompact→ 见 6.6 Context 构造与 CompactionprepareCompaction→ 见 6.6 Context 构造与 CompactionfindProjectedCutPoint→ 见 6.6 Context 构造与 CompactioncompleteSummarization→ 见 6.6 Context 构造与 Compaction
packages/coding-agent/src/core/event-bus.tscreateEventBus→ 见 8.5 取消与 Extension Hook
packages/coding-agent/src/core/extensions/loader.tsloadExtension→ 见 8.5 取消与 Extension HookloadExtensionModule→ 见 8.5 取消与 Extension HookregisterTool→ 见 8.5 取消与 Extension HookcreateExtensionRuntime→ 见 8.5 取消与 Extension HookregisterProvider→ 见 7.4 自定义 ProviderpendingProviderRegistrations→ 见 7.4 自定义 ProviderregisterCommand→ 见 7.3 自定义工具与斜杠命令discoverExtensionsInDir→ 见 7.1 Extension 系统createJitiImpl→ 见 7.1 Extension 系统initializeExtension→ 见 7.1 Extension 系统
packages/coding-agent/src/core/extensions/runner.tsemit→ 见 8.5 取消与 Extension HookpendingProviderRegistrations→ 见 7.4 自定义 ProvidergetAllRegisteredTools→ 见 7.3 自定义工具与斜杠命令RunnerEmitResult→ 见 7.1 Extension 系统
packages/coding-agent/src/core/extensions/types.tsExtension→ 见 3.7 Compaction、Extension 与 SkillExtensionFactory→ 见 8.5 取消与 Extension HookExtensionAPI→ 见 8.5 取消与 Extension HookregisterProvider→ 见 7.4 自定义 ProviderToolDefinition→ 见 7.3 自定义工具与斜杠命令
packages/coding-agent/src/core/extensions/wrapper.tswrapRegisteredTool→ 见 7.3 自定义工具与斜杠命令
packages/coding-agent/src/core/messages.tsconvertToLlm→ 见 6.6 Context 构造与 Compaction
packages/coding-agent/src/core/model-resolver.tsparseModelPattern→ 见 6.2 Provider 与模型注册
packages/coding-agent/src/core/model-runtime.tsregisterProvider→ 见 7.4 自定义 ProviderrecomposeProvider→ 见 7.4 自定义 Providerstatic async create→ 见 6.2 Provider 与模型注册registerNativeProvider→ 见 6.11 SDK:把 Pi 当作库使用
packages/coding-agent/src/core/package-manager.tsuserAgentsSkillsDir→ 见 7.2 Skill 系统shouldIncludeMarkdownFile→ 见 7.2 Skill 系统
packages/coding-agent/src/core/project-trust.tsresolveProjectTrusted→ 见 6.8 配置系统
packages/coding-agent/src/core/prompt-templates.tsloadTemplateFromFile→ 见 6.7 系统提示词与 Prompt TemplatesexpandPromptTemplate→ 见 6.7 系统提示词与 Prompt TemplatessubstituteArgs→ 见 6.7 系统提示词与 Prompt Templates
packages/coding-agent/src/core/provider-composer.tsstreamWith→ 见 7.4 自定义 Provider
packages/coding-agent/src/core/resource-loader.tsupdateSkillsFromPaths→ 见 7.2 Skill 系统systemPromptSource→ 见 6.7 系统提示词与 Prompt TemplatesresolvePromptInput→ 见 6.7 系统提示词与 Prompt Templates
packages/coding-agent/src/core/sdk.tsexistingSession.messages→ 见 8.4 Session 保存与恢复appendModelChange→ 见 8.4 Session 保存与恢复createAgentSession→ 见 6.11 SDK:把 Pi 当作库使用streamFn→ 见 6.11 SDK:把 Pi 当作库使用new AgentSession→ 见 6.11 SDK:把 Pi 当作库使用getDefaultThinkingLevel→ 见 6.8 配置系统getDefaultTools→ 见 6.8 配置系统
packages/coding-agent/src/core/session-manager.tsSessionHeader→ 见 8.4 Session 保存与恢复SessionEntryBase→ 见 8.4 Session 保存与恢复SessionEntry→ 见 8.4 Session 保存与恢复_persist→ 见 8.4 Session 保存与恢复loadEntriesFromFile→ 见 8.4 Session 保存与恢复migrateToCurrentVersion→ 见 8.4 Session 保存与恢复findMostRecentSession→ 见 8.4 Session 保存与恢复continueRecent→ 见 8.4 Session 保存与恢复sessionEntryToContextMessages→ 见 6.6 Context 构造与 CompactionbuildContextEntries→ 见 6.6 Context 构造与 CompactionbuildSessionProjection→ 见 6.6 Context 构造与 Compactionstatic inMemory→ 见 6.11 SDK:把 Pi 当作库使用export type SessionEntry→ 见 6.5 Session 存储格式与会话树getDefaultSessionDirPath→ 见 5.5 Session 的创建、保存与恢复newSession→ 见 5.5 Session 的创建、保存与恢复branch→ 见 5.5 Session 的创建、保存与恢复_buildIndex→ 见 5.5 Session 的创建、保存与恢复
packages/coding-agent/src/core/settings-manager.tspackages/coding-agent/src/core/skills.tsSkillFrontmatter→ 见 7.2 Skill 系统frontmatterName || parentDirName→ 见 7.2 Skill 系统loadSkillsFromDir→ 见 7.2 Skill 系统formatSkillsForPrompt→ 见 7.2 Skill 系统
packages/coding-agent/src/core/slash-commands.tsBUILTIN_SLASH_COMMANDS→ 见 7.3 自定义工具与斜杠命令
packages/coding-agent/src/core/system-prompt.tsskillFileReadTool→ 见 7.2 Skill 系统BuildSystemPromptOptions→ 见 6.7 系统提示词与 Prompt TemplatespromptSections.preamble→ 见 6.7 系统提示词与 Prompt Templatesproject_context→ 见 6.7 系统提示词与 Prompt TemplatescustomPrompt→ 见 6.7 系统提示词与 Prompt Templates
packages/coding-agent/src/core/tools/file-mutation-queue.tswithFileMutationQueue→ 见 6.4 工具系统:定义、校验与执行
packages/coding-agent/src/core/tools/index.tscreateAllToolDefinitions→ 见 6.4 工具系统:定义、校验与执行
packages/coding-agent/src/core/tools/output-accumulator.tssnapshot→ 见 6.4 工具系统:定义、校验与执行
packages/coding-agent/src/core/tools/read.tsresolveReadPathAsync→ 见 6.4 工具系统:定义、校验与执行createReadToolDefinition→ 见 5.3 一次 Tool Call 的完整循环
packages/coding-agent/src/core/tools/truncate.tstruncateTail→ 见 6.4 工具系统:定义、校验与执行truncateHead→ 见 5.3 一次 Tool Call 的完整循环
packages/coding-agent/src/core/tools/write.tsexecute→ 见 2.5 异步编程:Promise 与 async/await
packages/coding-agent/src/extensions/index.tsbuiltInExtensions→ 见 7.4 自定义 Provider
packages/coding-agent/src/index.tspackages/coding-agent/src/main.tspromptConfirm→ 见 8.1 最小 CLI 与 Fake ModelresolveAppMode→ 见 8.1 最小 CLI 与 Fake ModelcontinueRecent→ 见 8.4 Session 保存与恢复createAgentSessionRuntime→ 见 6.10 交互模式与 RPC 模式runRpcMode→ 见 6.10 交互模式与 RPC 模式getSessionDir→ 见 6.8 配置系统export async function main→ 见 4.4 从哪里开始读源码createSessionManager→ 见 5.5 Session 的创建、保存与恢复getAgentDir→ 见 5.1 启动:pi 命令如何跑起来createAgentSessionServices→ 见 5.1 启动:pi 命令如何跑起来
packages/coding-agent/src/modes/interactive/components/assistant-message.tsupdateContent→ 见 6.9 pi-tui:终端界面库
packages/coding-agent/src/modes/interactive/components/footer.tsrender(width: number): string[]→ 见 6.9 pi-tui:终端界面库
packages/coding-agent/src/modes/interactive/interactive-mode.tsPromise.all→ 见 2.5 异步编程:Promise 与 async/awaitcreateBaseAutocompleteProvider→ 见 7.3 自定义工具与斜杠命令mountInteractiveTui→ 见 6.9 pi-tui:终端界面库message_update→ 见 6.9 pi-tui:终端界面库onEscape→ 见 5.6 取消与错误处理getUserInput→ 见 5.2 一次普通请求的完整路径onInputCallback→ 见 5.2 一次普通请求的完整路径
packages/coding-agent/src/modes/interactive/tui-renderer.tscreateInteractiveTui→ 见 6.9 pi-tui:终端界面库
packages/coding-agent/src/modes/json-event.tstoJsonEvent→ 见 6.10 交互模式与 RPC 模式
packages/coding-agent/src/modes/print-mode.tsgetHeader→ 见 6.10 交互模式与 RPC 模式writeRawStdout→ 见 5.4 流式事件如何传播到界面
packages/coding-agent/src/modes/rpc/jsonl.tsserializeJsonLine→ 见 6.10 交互模式与 RPC 模式
packages/coding-agent/src/modes/rpc/rpc-client.tsasync start→ 见 6.11 SDK:把 Pi 当作库使用
packages/coding-agent/src/modes/rpc/rpc-mode.tsrunRpcMode→ 见 6.10 交互模式与 RPC 模式handleInputLine→ 见 6.10 交互模式与 RPC 模式
packages/coding-agent/src/modes/rpc/rpc-types.tsRpcCommand→ 见 6.10 交互模式与 RPC 模式
packages/coding-agent/test/agent-session-runtime-events.test.tscreateRuntimeHost→ 见 3.1 LLM 与模型 API
packages/coding-agent/test/path-utils.test.tsexpandPath→ 见 2.9 错误处理与测试基础
packages/session-backends
packages/session-backends/sqlite-node/src/sqlite/repo.tsSqliteSessionRepo→ 见 6.5 Session 存储格式与会话树
packages/tui
packages/tui/src/tui-alt-screen.tsafterTerminalStop→ 见 6.9 pi-tui:终端界面库
packages/tui/src/tui-main-screen.tsfirstChanged→ 见 6.9 pi-tui:终端界面库
packages/tui/src/tui.tsComponent→ 见 6.9 pi-tui:终端界面库render(width: number): string[]→ 见 6.9 pi-tui:终端界面库requestRender→ 见 6.9 pi-tui:终端界面库
(仓库根目录)
package.jsontsx→ 见 1.2 运行第一个 TypeScript 程序workspaces→ 见 1.3 npm、package.json 与项目结构engines→ 见 1.1 JavaScript、TypeScript 与 Node.js
pi-test.shtsx→ 见 1.2 运行第一个 TypeScript 程序
scripts/build-coding-agent-bundle.mjscliLauncher→ 见 5.1 启动:pi 命令如何跑起来
tsconfig.base.jsonallowImportingTsExtensions→ 见 1.4 模块系统:import 与 export