mirror of
https://github.com/claude-code-best/claude-code.git
synced 2026-06-17 05:45:51 +00:00
* feat: 适配 zed acp 协议 * docs: 完善 acp 文档 * feat: integrate feature branches + daemon/job 命令层级化 + 跨平台后台引擎 Cherry-picked from origin/lint/preview (637c908), excluding lint-only changes. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: correct detectMimeFromBase64 to decode raw bytes from base64 Cherry-picked from origin/lint/preview (ee36954). Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: daemon 子进程 spawn 跨平台修复 + CliLaunchSpec 集中化重构 Cherry-picked from origin/lint/preview (c5f52cd), excluding lint-only formatting changes. - 新建 src/utils/cliLaunch.ts: 集中化 CLI 子进程启动层 - 修复 --daemon-worker=kind 等号格式解析 - 修复 daemon/bg fast path 缺少 setShellIfWindows() - 修复 checkPathExists 用 existsSync 替代 execSync('dir') - 7 个 spawn 站点迁移到 CliLaunchSpec Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: merge tsconfig.base.json into tsconfig.json with full compiler options The cherry-pick from637c908dropped jsx/strict/etc settings when removing tsconfig.base.json. This commit restores them in a single tsconfig.json. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> * fix: merge tsconfig.base.json into tsconfig.json with full compiler options The cherry-pick from637c908dropped jsx/strict/etc settings when removing tsconfig.base.json. This commit restores them in a single tsconfig.json. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
50 lines
1.1 KiB
TypeScript
50 lines
1.1 KiB
TypeScript
/**
|
|
* BgEngine — cross-platform background session engine abstraction.
|
|
*
|
|
* Implementations:
|
|
* TmuxEngine — macOS/Linux with tmux installed
|
|
* DetachedEngine — Windows, or macOS/Linux without tmux (fallback)
|
|
*/
|
|
|
|
export interface SessionEntry {
|
|
pid: number
|
|
sessionId: string
|
|
cwd: string
|
|
startedAt: number
|
|
kind: string
|
|
name?: string
|
|
logPath?: string
|
|
entrypoint?: string
|
|
status?: string
|
|
waitingFor?: string
|
|
updatedAt?: number
|
|
bridgeSessionId?: string
|
|
agent?: string
|
|
tmuxSessionName?: string
|
|
engine?: 'tmux' | 'detached'
|
|
}
|
|
|
|
export interface BgStartOptions {
|
|
sessionName: string
|
|
args: string[]
|
|
env: Record<string, string | undefined>
|
|
logPath: string
|
|
cwd: string
|
|
}
|
|
|
|
export interface BgStartResult {
|
|
pid: number
|
|
sessionName: string
|
|
logPath: string
|
|
engineUsed: 'tmux' | 'detached'
|
|
}
|
|
|
|
export interface BgEngine {
|
|
readonly name: 'tmux' | 'detached'
|
|
/** Whether the engine provides a TTY for interactive REPL input. */
|
|
readonly supportsInteractiveInput: boolean
|
|
available(): Promise<boolean>
|
|
start(opts: BgStartOptions): Promise<BgStartResult>
|
|
attach(session: SessionEntry): Promise<void>
|
|
}
|