@rzx/ohs 1.1.13 → 1.1.16

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.
@@ -1,17 +1,18 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../frontend/src/theme/builtinThemes.ts", "../../../../packages/protocol/src/session.ts", "../../../../packages/protocol/src/runtime-config.ts", "../../../../packages/protocol/src/session-input-items.ts", "../../../../packages/protocol/src/requests.ts", "../../../../packages/protocol/src/serialization.ts", "../../../../packages/protocol/src/attachment.ts", "../../../../packages/protocol/src/capabilities.ts", "../../../../packages/protocol/src/index.ts", "../../../../packages/client/src/transport/http-client.ts", "../../../../packages/client/src/transport/index.ts", "../../../../packages/client/src/state/reducer.ts", "../../../../packages/client/src/state/selectors.ts", "../../../../packages/client/src/state/sync.ts", "../../../../packages/client/src/state/index.ts", "../../../../packages/client/src/commands/plugin-presentation.ts", "../../../../packages/client/src/commands/session-commands.ts", "../../../../packages/client/src/commands/index.ts", "../../../../packages/client/src/index.ts", "../../../frontend/src/jobs/job-remote-state.ts", "../../../frontend/src/hooks/transcript.ts", "../../../frontend/src/hooks/sessionSlashCommands.ts", "../../../frontend/src/hooks/useServerSync.ts", "../../../frontend/src/ui/constants.ts", "../../../frontend/src/hooks/useEscToCancel.ts", "../../../frontend/src/theme/ThemeContext.tsx", "../../../frontend/src/ui/fuzzy.ts", "../../../frontend/src/hooks/useListNavigation.ts", "../../../frontend/src/ui/DialogSelect.tsx", "../../../frontend/src/ui/DialogText.tsx", "../../../frontend/src/components/dialogs/DiffView.tsx", "../../../frontend/src/components/dialogs/PermissionDialog.tsx", "../../../frontend/src/components/dialogs/QuestionDialog.tsx", "../../../frontend/src/hooks/useModalWiring.tsx", "../../../frontend/src/ui/DialogContext.tsx", "../../../frontend/src/ui/Toast.tsx", "../../../frontend/src/ui/ModelPickerDialog.tsx", "../../../frontend/src/keymap/commands.ts", "../../../frontend/src/keymap/permissionModes.ts", "../../../frontend/src/components/Logo.tsx", "../../../frontend/src/routes/Home.tsx", "../../../frontend/src/theme/syntax.ts", "../../../frontend/src/components/messages/ToolDiff.tsx", "../../../frontend/src/routes/session/parts.tsx", "../../../frontend/src/routes/session/Session.tsx", "../../../frontend/src/routes/session/Sidebar.tsx", "../../../frontend/src/services/status.ts", "../../../frontend/src/routes/session/Footer.tsx", "../../../frontend/src/components/prompt/Autocomplete.tsx", "../../../frontend/src/services/frecency.ts", "../../../frontend/src/ui/commandRanking.ts", "../../../frontend/src/components/prompt/fileCompletion.ts", "../../../frontend/src/components/prompt/Prompt.tsx", "../../../frontend/src/routes/session/AppView.tsx", "../../../frontend/src/components/JobsPanel.tsx", "../../../frontend/src/utils/selection.ts", "../../../frontend/src/App.tsx", "../../../frontend/src/index.tsx", "../../../frontend/src/runtime.ts"],
3
+ "sources": ["../../../frontend/src/theme/builtinThemes.ts", "../../../../packages/protocol/src/session.ts", "../../../../packages/protocol/src/runtime-config.ts", "../../../../packages/protocol/src/session-input-items.ts", "../../../../packages/protocol/src/requests.ts", "../../../../packages/protocol/src/serialization.ts", "../../../../packages/protocol/src/attachment.ts", "../../../../packages/protocol/src/capabilities.ts", "../../../../packages/protocol/src/session-goals.ts", "../../../../packages/protocol/src/index.ts", "../../../../packages/client/src/transport/http-client.ts", "../../../../packages/client/src/transport/index.ts", "../../../../packages/client/src/state/reducer.ts", "../../../../packages/client/src/state/selectors.ts", "../../../../packages/client/src/state/sync.ts", "../../../../packages/client/src/state/index.ts", "../../../../packages/client/src/commands/plugin-presentation.ts", "../../../../packages/client/src/commands/session-commands.ts", "../../../../packages/client/src/commands/index.ts", "../../../../packages/client/src/index.ts", "../../../frontend/src/jobs/job-remote-state.ts", "../../../frontend/src/hooks/transcript.ts", "../../../frontend/src/hooks/sessionSlashCommands.ts", "../../../frontend/src/hooks/useServerSync.ts", "../../../frontend/src/ui/constants.ts", "../../../frontend/src/hooks/useEscToCancel.ts", "../../../frontend/src/theme/ThemeContext.tsx", "../../../frontend/src/ui/fuzzy.ts", "../../../frontend/src/hooks/useListNavigation.ts", "../../../frontend/src/ui/DialogSelect.tsx", "../../../frontend/src/ui/DialogText.tsx", "../../../frontend/src/components/dialogs/DiffView.tsx", "../../../frontend/src/components/dialogs/PermissionDialog.tsx", "../../../frontend/src/components/dialogs/QuestionDialog.tsx", "../../../frontend/src/hooks/useModalWiring.tsx", "../../../frontend/src/ui/DialogContext.tsx", "../../../frontend/src/ui/Toast.tsx", "../../../frontend/src/ui/ModelPickerDialog.tsx", "../../../frontend/src/keymap/commands.ts", "../../../frontend/src/keymap/permissionModes.ts", "../../../frontend/src/components/Logo.tsx", "../../../frontend/src/routes/Home.tsx", "../../../frontend/src/theme/syntax.ts", "../../../frontend/src/components/messages/ToolDiff.tsx", "../../../frontend/src/routes/session/parts.tsx", "../../../frontend/src/routes/session/Session.tsx", "../../../frontend/src/routes/session/Sidebar.tsx", "../../../frontend/src/services/status.ts", "../../../frontend/src/routes/session/Footer.tsx", "../../../frontend/src/components/prompt/Autocomplete.tsx", "../../../frontend/src/services/frecency.ts", "../../../frontend/src/ui/commandRanking.ts", "../../../frontend/src/components/prompt/fileCompletion.ts", "../../../frontend/src/components/prompt/Prompt.tsx", "../../../frontend/src/routes/session/AppView.tsx", "../../../frontend/src/components/JobsPanel.tsx", "../../../frontend/src/utils/selection.ts", "../../../frontend/src/App.tsx", "../../../frontend/src/index.tsx", "../../../frontend/src/runtime.ts"],
4
4
  "sourcesContent": [
5
5
  "export type ThemeConfig = {\n name: string;\n colors: {\n primary: string;\n secondary: string;\n accent: string;\n foreground: string;\n background: string;\n backgroundPanel: string;\n backgroundPrompt: string;\n muted: string;\n success: string;\n warning: string;\n error: string;\n info: string;\n };\n icons: {\n spinner: string[];\n tool: string;\n assistant: string;\n user: string;\n system: string;\n success: string;\n error: string;\n };\n};\n\n/** One Dark — default dark theme */\nexport const defaultTheme: ThemeConfig = {\n name: \"default\",\n colors: {\n primary: \"#56b6c2\",\n secondary: \"#abb2bf\",\n accent: \"#61afef\",\n foreground: \"#abb2bf\",\n background: \"#000000\",\n backgroundPanel: \"#262a33\",\n backgroundPrompt: \"#262626\",\n muted: \"#5c6370\",\n success: \"#98c379\",\n warning: \"#e5c07b\",\n error: \"#e06c75\",\n info: \"#61afef\",\n },\n icons: {\n spinner: [\"⠋\", \"⠙\", \"⠹\", \"⠸\", \"⠼\", \"⠴\", \"⠦\", \"⠧\", \"⠇\", \"⠏\"],\n tool: \" ⏵ \",\n assistant: \"⏺ \",\n user: \"> \",\n system: \"ℹ \",\n success: \"✓ \",\n error: \"✗ \",\n },\n};\n\n/** GitHub Light — bright theme */\nexport const lightTheme: ThemeConfig = {\n name: \"light\",\n colors: {\n primary: \"#0550ae\",\n secondary: \"#24292f\",\n accent: \"#0969da\",\n foreground: \"#24292f\",\n background: \"#ffffff\",\n backgroundPanel: \"#f6f8fa\",\n backgroundPrompt: \"#f3f4f6\",\n muted: \"#6e7781\",\n success: \"#1a7f37\",\n warning: \"#9a6700\",\n error: \"#cf222e\",\n info: \"#0969da\",\n },\n icons: {\n spinner: [\"⠋\", \"⠙\", \"⠹\", \"⠸\", \"⠼\", \"⠴\", \"⠦\", \"⠧\", \"⠇\", \"⠏\"],\n tool: \" ⏵ \",\n assistant: \"⏺ \",\n user: \"> \",\n system: \"ℹ \",\n success: \"✓ \",\n error: \"✗ \",\n },\n};\n\n/** Dracula — high-contrast dark theme */\nexport const draculaTheme: ThemeConfig = {\n name: \"dracula\",\n colors: {\n primary: \"#bd93f9\",\n secondary: \"#f8f8f2\",\n accent: \"#8be9fd\",\n foreground: \"#f8f8f2\",\n background: \"#282a36\",\n backgroundPanel: \"#343746\",\n backgroundPrompt: \"#2f313d\",\n muted: \"#6272a4\",\n success: \"#50fa7b\",\n warning: \"#ffb86c\",\n error: \"#ff5555\",\n info: \"#8be9fd\",\n },\n icons: {\n spinner: [\"⠋\", \"⠙\", \"⠹\", \"⠸\", \"⠼\", \"⠴\", \"⠦\", \"⠧\", \"⠇\", \"⠏\"],\n tool: \" ⏵ \",\n assistant: \"⏺ \",\n user: \"> \",\n system: \"ℹ \",\n success: \"✓ \",\n error: \"✗ \",\n },\n};\n\nexport const BUILTIN_THEMES: Record<string, ThemeConfig> = {\n default: defaultTheme,\n light: lightTheme,\n dracula: draculaTheme,\n};\n\nexport function getTheme(name: string): ThemeConfig {\n return BUILTIN_THEMES[name] ?? defaultTheme;\n}\n",
6
6
  "/**\n * `closing` 表示 Session 正在停止当前工作并等待资源释放,此时不再接收新工作。\n * 等待结束后,Session 会进入不可逆的 archived 状态。\n */\nexport type SessionStatus =\n \"idle\" | \"running\" | \"closing\" | \"archived\" | \"error\";\nexport type InputDelivery = \"queue\" | \"steer\";\nexport type RunStatus =\n \"pending\" | \"running\" | \"completed\" | \"failed\" | \"interrupted\";\nexport type RunAttemptStatus = \"pending\" | \"running\" | \"completed\" | \"failed\" | \"cancelled\";\nexport type SessionTaskStatus =\n \"pending\" | \"running\" | \"completed\" | \"failed\" | \"stopped\" | \"interrupted\";\nexport type PermissionStatus = \"pending\" | \"approved\" | \"denied\" | \"expired\";\nexport type SessionMessageRole = \"system\" | \"user\" | \"assistant\";\nexport type SessionMessagePartType =\n | \"text\"\n | \"attachment\"\n | \"transformation\"\n | \"reasoning\"\n | \"tool\"\n | \"tool_result\"\n | \"error\"\n | \"log\";\nexport type SessionMessagePartStatus =\n \"pending\" | \"running\" | \"completed\" | \"failed\" | \"interrupted\";\nexport type ProjectionSettlementAction = \"retry-terminal-projection\" | \"compensate-child\";\nexport type ProjectionSettlementStatus = \"pending\" | \"retrying\" | \"resolved\" | \"abandoned\";\n\n/** Default durable session-event schema version for types without an override. */\nexport const SESSION_EVENT_SCHEMA_VERSION = 1;\n\n/**\n * Per-event payload schema versions written by the durable event registry.\n * Unlisted types use {@link SESSION_EVENT_SCHEMA_VERSION}.\n */\nexport const SESSION_EVENT_SCHEMA_VERSIONS: Readonly<Record<string, number>> = {\n \"session.input.admitted\": 2,\n};\n\nexport function sessionEventSchemaVersion(type: string): number {\n return SESSION_EVENT_SCHEMA_VERSIONS[type] ?? SESSION_EVENT_SCHEMA_VERSION;\n}\n\nexport interface SessionRecord {\n id: string;\n parentId?: string;\n projectId?: string;\n cwd: string;\n cwdRelative?: string;\n title: string;\n model: string;\n agent?: string;\n status: SessionStatus;\n metadata: Record<string, unknown>;\n createdAt: number;\n updatedAt: number;\n archivedAt?: number;\n}\n\nexport interface ProjectRecord {\n id: string;\n name: string;\n path: string;\n pinnedAt?: number;\n defaultShell?: string;\n lastOpenedAt: number;\n archivedAt?: number;\n createdAt: number;\n updatedAt: number;\n}\n\nexport interface ProjectLocationRecord {\n id: string;\n projectId: string;\n path: string;\n normalizedPath: string;\n status: \"active\" | \"historical\";\n boundAt: number;\n lastVerifiedAt?: number;\n}\n\nexport interface SessionInputRecord {\n id: string;\n sessionId: string;\n seq: number;\n delivery: InputDelivery;\n items: SessionUserInputItem[];\n content: string;\n attachments: SessionInputAttachmentRecord[];\n promotedMessageId?: string;\n metadata: Record<string, unknown>;\n createdAt: number;\n}\n\nexport interface SessionMessageRecord {\n id: string;\n sessionId: string;\n seq: number;\n role: SessionMessageRole;\n runId?: string;\n inputId?: string;\n metadata: Record<string, unknown>;\n createdAt: number;\n updatedAt: number;\n}\n\nexport interface SessionMessagePartRecord {\n id: string;\n sessionId: string;\n messageId: string;\n seq: number;\n type: SessionMessagePartType;\n status: SessionMessagePartStatus;\n text?: string;\n toolUseId?: string;\n toolName?: string;\n input?: Record<string, unknown>;\n output?: unknown;\n isError?: boolean;\n assetId?: string;\n intent?: AttachmentIntent;\n displayName?: string;\n mediaType?: string;\n sizeBytes?: number;\n kind?: \"direct\" | \"document_extract\" | \"tool_mount\";\n representationId?: string;\n processor?: string;\n transformationError?: string;\n metadata: Record<string, unknown>;\n createdAt: number;\n updatedAt: number;\n}\n\nexport interface SessionEventRecord {\n id: string;\n seq: number;\n type: string;\n schemaVersion: number;\n sessionId?: string;\n payload: Record<string, unknown>;\n createdAt: number;\n}\n\nexport interface SessionAttachmentMessagePartRecord\n extends SessionMessagePartRecord {\n type: \"attachment\";\n assetId: string;\n intent: AttachmentIntent;\n displayName: string;\n mediaType: string;\n sizeBytes: number;\n}\n\nexport interface SessionTransformationMessagePartRecord\n extends SessionMessagePartRecord {\n type: \"transformation\";\n assetId: string;\n kind: \"direct\" | \"document_extract\" | \"tool_mount\";\n representationId?: string;\n processor?: string;\n transformationError?: string;\n}\n\nexport interface ProjectionSettlementRecord {\n id: string;\n projector: string;\n rootSessionId: string;\n eventSequence: number;\n action: ProjectionSettlementAction;\n payload: Record<string, unknown>;\n status: ProjectionSettlementStatus;\n attemptCount: number;\n lastError?: string;\n nextRetryAt?: number;\n createdAt: number;\n updatedAt: number;\n resolvedAt?: number;\n}\n\nexport interface SessionRunRecord {\n id: string;\n sessionId: string;\n inputId?: string;\n status: RunStatus;\n startedAt?: number;\n finishedAt?: number;\n error?: string;\n metadata: Record<string, unknown>;\n createdAt: number;\n updatedAt: number;\n}\n\nexport interface SessionRunAttemptRecord {\n id: string;\n runId: string;\n sequence: number;\n status: RunAttemptStatus;\n provider?: string;\n model?: string;\n retryReason?: string;\n errorKind?: string;\n error?: string;\n inputTokens?: number;\n outputTokens?: number;\n startedAt?: number;\n finishedAt?: number;\n createdAt: number;\n updatedAt: number;\n}\n\n/** Daemon-owned execution projection. Live handles stay in their backend runtime and are never persisted. */\nexport interface SessionExecutionRecord {\n id: string;\n sessionId: string;\n /** Producer namespace plus requestId uniquely identify one logical admission. */\n requestNamespace?: string;\n requestId?: string;\n childSessionId?: string;\n runId?: string;\n type: string;\n status: SessionTaskStatus;\n description: string;\n cwd: string;\n output?: string;\n error?: string;\n metadata: Record<string, unknown>;\n createdAt: number;\n startedAt?: number;\n finishedAt?: number;\n updatedAt: number;\n}\n\nexport interface PermissionRequestRecord {\n id: string;\n sessionId: string;\n runId?: string;\n toolName: string;\n payload: Record<string, unknown>;\n status: PermissionStatus;\n decision?: string;\n decidedByClientId?: string;\n createdAt: number;\n updatedAt: number;\n}\n\n/** Atomic, server-owned state used when a client attaches to one session. */\nexport interface SessionStateSnapshot {\n cursor: number;\n session: SessionRecord;\n inputs: SessionInputRecord[];\n messages: SessionMessageRecord[];\n parts: SessionMessagePartRecord[];\n runs: SessionRunRecord[];\n attempts: SessionRunAttemptRecord[];\n tasks?: SessionExecutionRecord[];\n permissions: PermissionRequestRecord[];\n}\n\nexport type ScheduledTaskStatus = \"active\" | \"paused\" | \"completed\";\nexport type ScheduledTaskDestination = \"standalone\" | \"chat\";\nexport type ScheduledTaskExecutionMode = \"local\" | \"worktree\";\nexport type ScheduledRecurrenceFormat = \"rrule\" | \"once\";\nexport type ScheduledOverlapPolicy = \"skip\" | \"queue\";\nexport type ScheduledMissedRunPolicy = \"skip\" | \"run_once\";\n\nexport interface ScheduledPermissionProfile {\n mode: \"read_only\" | \"workspace_write\" | \"full_access\";\n network?: boolean;\n allowedTools?: string[];\n deniedTools?: string[];\n}\n\nexport interface ScheduledStopPolicy {\n runOnce?: boolean;\n maxRuns?: number;\n stopWhenCompleted?: boolean;\n expiresAt?: number;\n}\n\nexport interface ScheduledTaskRecord {\n id: string;\n name: string;\n description?: string;\n prompt: string;\n recurrence: string;\n recurrenceFormat: ScheduledRecurrenceFormat;\n timezone: string;\n status: ScheduledTaskStatus;\n destination: ScheduledTaskDestination;\n sessionId?: string;\n projectPaths: string[];\n executionMode: ScheduledTaskExecutionMode;\n model?: string;\n effort?: string;\n skillNames: string[];\n pluginNames: string[];\n permissionProfile: ScheduledPermissionProfile;\n overlapPolicy: ScheduledOverlapPolicy;\n missedRunPolicy: ScheduledMissedRunPolicy;\n stopPolicy?: ScheduledStopPolicy;\n createdBy: \"user\" | \"agent\" | \"migration\";\n createdFromSessionId?: string;\n lastRunAt?: number;\n nextRunAt?: number;\n runCount: number;\n createdAt: number;\n updatedAt: number;\n}\n\nexport type ScheduledRunCause = \"scheduled\" | \"manual\" | \"missed_run\";\nexport type ScheduledRunStatus =\n | \"queued\"\n | \"running\"\n | \"succeeded\"\n | \"failed\"\n | \"interrupted\"\n | \"needs_attention\"\n | \"skipped\";\n\nexport interface ScheduledRunRecord {\n id: string;\n taskId: string;\n cause: ScheduledRunCause;\n status: ScheduledRunStatus;\n scheduledFor: number;\n sessionId?: string;\n runId?: string;\n summary?: string;\n error?: string;\n unread: boolean;\n attentionReason?: string;\n createdAt: number;\n startedAt?: number;\n finishedAt?: number;\n updatedAt: number;\n}\n\nexport interface CreateScheduledTaskInput {\n id?: string;\n name: string;\n description?: string;\n prompt: string;\n recurrence: string;\n recurrenceFormat: ScheduledRecurrenceFormat;\n timezone: string;\n status?: ScheduledTaskStatus;\n destination: ScheduledTaskDestination;\n sessionId?: string;\n projectPaths?: string[];\n executionMode?: ScheduledTaskExecutionMode;\n model?: string;\n effort?: string;\n skillNames?: string[];\n pluginNames?: string[];\n permissionProfile?: ScheduledPermissionProfile;\n overlapPolicy?: ScheduledOverlapPolicy;\n missedRunPolicy?: ScheduledMissedRunPolicy;\n stopPolicy?: ScheduledStopPolicy;\n createdBy?: ScheduledTaskRecord[\"createdBy\"];\n createdFromSessionId?: string;\n nextRunAt?: number;\n}\n\nexport type UpdateScheduledTaskInput = Partial<\n Omit<CreateScheduledTaskInput, \"id\" | \"nextRunAt\">\n> & {\n lastRunAt?: number | null;\n nextRunAt?: number | null;\n runCount?: number;\n};\n\nexport interface CreateScheduledRunInput {\n id?: string;\n taskId: string;\n cause: ScheduledRunCause;\n scheduledFor: number;\n}\n\nexport interface UpdateScheduledRunInput {\n status?: ScheduledRunStatus;\n sessionId?: string;\n runId?: string;\n summary?: string;\n error?: string;\n unread?: boolean;\n attentionReason?: string;\n startedAt?: number;\n finishedAt?: number;\n}\n\nexport interface CreateSessionInput {\n id?: string;\n parentId?: string;\n projectId?: string;\n cwd: string;\n title?: string;\n model: string;\n agent?: string;\n metadata?: Record<string, unknown>;\n}\n\nexport interface UpdateSessionInput {\n title?: string;\n model?: string;\n agent?: string | null;\n metadata?: Record<string, unknown>;\n}\n\nexport interface AdmitPromptInput {\n id?: string;\n sessionId: string;\n delivery?: InputDelivery;\n items: SessionUserInputItem[];\n attachments?: AdmitPromptAttachmentInput[];\n metadata?: Record<string, unknown>;\n}\n\nexport interface AdmitPromptAttachmentInput {\n assetId: string;\n intent?: AttachmentIntent;\n displayName?: string;\n}\n\nexport interface CreateProjectionSettlementInput {\n id?: string;\n projector: string;\n rootSessionId: string;\n eventSequence: number;\n action: ProjectionSettlementAction;\n payload: Record<string, unknown>;\n error?: string;\n}\n\nexport interface ListProjectionSettlementsOptions {\n projector?: string;\n rootSessionId?: string;\n status?: ProjectionSettlementStatus | readonly ProjectionSettlementStatus[];\n}\n\nexport interface AdmitPromptWithRunInput {\n prompt: AdmitPromptInput;\n run?: {\n id?: string;\n metadata?: Record<string, unknown>;\n };\n}\n\nexport interface CreateMessageInput {\n id?: string;\n sessionId: string;\n role: SessionMessageRole;\n runId?: string;\n inputId?: string;\n metadata?: Record<string, unknown>;\n}\n\nexport interface ReplaceTranscriptPartInput {\n type: SessionMessagePartType;\n status?: SessionMessagePartStatus;\n text?: string;\n toolUseId?: string;\n toolName?: string;\n input?: Record<string, unknown>;\n output?: unknown;\n isError?: boolean;\n assetId?: string;\n intent?: AttachmentIntent;\n displayName?: string;\n mediaType?: string;\n sizeBytes?: number;\n kind?: \"direct\" | \"document_extract\" | \"tool_mount\";\n representationId?: string;\n processor?: string;\n transformationError?: string;\n metadata?: Record<string, unknown>;\n}\n\nexport interface ReplaceTranscriptMessageInput {\n role: SessionMessageRole;\n parts: ReplaceTranscriptPartInput[];\n metadata?: Record<string, unknown>;\n}\n\nexport interface ReplaceTranscriptInput {\n sessionId: string;\n messages: ReplaceTranscriptMessageInput[];\n}\n\nexport interface UpsertMessagePartInput {\n id?: string;\n sessionId: string;\n messageId: string;\n type: SessionMessagePartType;\n status?: SessionMessagePartStatus;\n text?: string;\n toolUseId?: string;\n toolName?: string;\n input?: Record<string, unknown>;\n output?: unknown;\n isError?: boolean;\n assetId?: string;\n intent?: AttachmentIntent;\n displayName?: string;\n mediaType?: string;\n sizeBytes?: number;\n kind?: \"direct\" | \"document_extract\" | \"tool_mount\";\n representationId?: string;\n processor?: string;\n transformationError?: string;\n metadata?: Record<string, unknown>;\n}\n\nexport interface AppendMessagePartDeltaInput {\n sessionId: string;\n messageId: string;\n partId: string;\n field: \"text\";\n delta: string;\n}\n\nexport interface AppendEventInput {\n id?: string;\n type: string;\n sessionId?: string;\n payload?: Record<string, unknown>;\n}\n\nexport interface CreateRunInput {\n id?: string;\n sessionId: string;\n inputId?: string;\n metadata?: Record<string, unknown>;\n}\n\nexport interface UpdateRunInput {\n status?: RunStatus;\n error?: string;\n metadata?: Record<string, unknown>;\n}\n\nexport interface CreateRunAttemptInput {\n id?: string;\n runId: string;\n sequence?: number;\n provider?: string;\n model?: string;\n retryReason?: string;\n}\n\nexport interface UpdateRunAttemptInput {\n status?: RunAttemptStatus;\n errorKind?: string;\n error?: string;\n inputTokens?: number;\n outputTokens?: number;\n}\n\nexport interface CreateSessionTaskInput {\n id?: string;\n sessionId: string;\n childSessionId?: string;\n runId?: string;\n type: string;\n description: string;\n cwd: string;\n status?: SessionTaskStatus;\n requestNamespace?: string;\n requestId?: string;\n metadata?: Record<string, unknown>;\n}\n\nexport interface UpdateSessionTaskInput {\n status?: SessionTaskStatus;\n runId?: string;\n output?: string;\n error?: string;\n metadata?: Record<string, unknown>;\n}\n\nexport interface CreatePermissionRequestInput {\n id?: string;\n sessionId: string;\n runId?: string;\n toolName: string;\n payload?: Record<string, unknown>;\n}\n\nexport interface ReplyPermissionInput {\n requestId: string;\n status: Extract<PermissionStatus, \"approved\" | \"denied\" | \"expired\">;\n decision?: string;\n clientId?: string;\n}\n\nexport interface ListPermissionRequestsOptions {\n sessionId?: string;\n status?: PermissionStatus;\n toolName?: string;\n limit?: number;\n}\n\nexport interface ListEventsOptions {\n afterSeq?: number;\n sessionId?: string;\n limit?: number;\n}\n\nexport interface ListSessionsOptions {\n cwd?: string;\n includeArchived?: boolean;\n limit?: number;\n}\n\nexport interface ListMessagesOptions {\n afterSeq?: number;\n limit?: number;\n}\n\nexport interface ListMessagePartsOptions {\n afterSeq?: number;\n messageId?: string;\n limit?: number;\n}\nimport type {\n AttachmentIntent,\n SessionInputAttachmentRecord,\n} from \"./attachment.js\";\nimport type { SessionUserInputItem } from \"./session-input-items.js\";\n",
7
7
  "import type { SessionRecord } from \"./session.js\";\n\nexport type SessionApiFormat = \"anthropic\" | \"openai\";\n\nexport type SessionRuntimeConfig = {\n model: string;\n provider?: string;\n baseUrl?: string;\n apiFormat?: SessionApiFormat;\n permissionMode?: \"default\" | \"plan\" | \"full_auto\";\n maxTurns?: number;\n effort?: \"low\" | \"medium\" | \"high\";\n sessionMode?: \"direct\" | \"coordinator\";\n systemPrompt?: string;\n allowedTools?: string[];\n disallowedTools?: string[];\n pluginsEnabled?: boolean;\n};\n\nexport type SessionRuntimeConfigPatch = Partial<SessionRuntimeConfig>;\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return !!value && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction stringValue(value: unknown): string | undefined {\n return typeof value === \"string\" && value.trim() ? value : undefined;\n}\n\nfunction numberValue(value: unknown): number | undefined {\n return typeof value === \"number\" && Number.isFinite(value) ? value : undefined;\n}\n\nfunction stringArrayValue(value: unknown): string[] | undefined {\n if (!Array.isArray(value)) return undefined;\n const items = value.filter((item): item is string => typeof item === \"string\" && item.trim().length > 0);\n return items.length > 0 ? items : undefined;\n}\n\nfunction permissionModeValue(value: unknown): SessionRuntimeConfig[\"permissionMode\"] | undefined {\n return value === \"default\" || value === \"plan\" || value === \"full_auto\" ? value : undefined;\n}\n\nfunction effortValue(value: unknown): SessionRuntimeConfig[\"effort\"] | undefined {\n return value === \"low\" || value === \"medium\" || value === \"high\" ? value : undefined;\n}\n\nfunction sessionModeValue(value: unknown): SessionRuntimeConfig[\"sessionMode\"] | undefined {\n return value === \"coordinator\" ? \"coordinator\" : value === \"direct\" ? \"direct\" : undefined;\n}\n\nfunction apiFormatValue(value: unknown): SessionApiFormat | undefined {\n return value === \"anthropic\" || value === \"openai\" ? value : undefined;\n}\n\nfunction booleanValue(value: unknown): boolean | undefined {\n return typeof value === \"boolean\" ? value : undefined;\n}\n\nexport function readRuntimeMetadata(metadata: Record<string, unknown> | undefined): Record<string, unknown> {\n return isRecord(metadata?.runtime) ? metadata.runtime : {};\n}\n\nexport function readSessionRuntimeConfig(\n session: SessionRecord,\n defaults?: Partial<SessionRuntimeConfig>,\n): SessionRuntimeConfig {\n const runtime = readRuntimeMetadata(session.metadata);\n const model = stringValue(runtime.model);\n if (!model) {\n throw new Error(`Session runtime config is missing metadata.runtime.model: ${session.id}`);\n }\n return {\n model,\n ...(stringValue(runtime.provider) ?? defaults?.provider\n ? { provider: stringValue(runtime.provider) ?? defaults?.provider }\n : {}),\n ...(stringValue(runtime.baseUrl) ?? defaults?.baseUrl\n ? { baseUrl: stringValue(runtime.baseUrl) ?? defaults?.baseUrl }\n : {}),\n ...(apiFormatValue(runtime.apiFormat) ?? defaults?.apiFormat\n ? { apiFormat: apiFormatValue(runtime.apiFormat) ?? defaults?.apiFormat }\n : {}),\n ...(permissionModeValue(runtime.permissionMode) ?? defaults?.permissionMode\n ? { permissionMode: permissionModeValue(runtime.permissionMode) ?? defaults?.permissionMode }\n : {}),\n ...(numberValue(runtime.maxTurns) ?? defaults?.maxTurns\n ? { maxTurns: numberValue(runtime.maxTurns) ?? defaults?.maxTurns }\n : {}),\n ...(effortValue(runtime.effort) ?? defaults?.effort\n ? { effort: effortValue(runtime.effort) ?? defaults?.effort }\n : {}),\n ...(sessionModeValue(runtime.sessionMode) ?? defaults?.sessionMode\n ? { sessionMode: sessionModeValue(runtime.sessionMode) ?? defaults?.sessionMode }\n : {}),\n ...(stringValue(runtime.systemPrompt) ?? defaults?.systemPrompt\n ? { systemPrompt: stringValue(runtime.systemPrompt) ?? defaults?.systemPrompt }\n : {}),\n ...(stringArrayValue(runtime.allowedTools) ?? defaults?.allowedTools\n ? { allowedTools: stringArrayValue(runtime.allowedTools) ?? defaults?.allowedTools }\n : {}),\n ...(stringArrayValue(runtime.disallowedTools) ?? defaults?.disallowedTools\n ? { disallowedTools: stringArrayValue(runtime.disallowedTools) ?? defaults?.disallowedTools }\n : {}),\n ...((booleanValue(runtime.pluginsEnabled) ?? defaults?.pluginsEnabled) !== undefined\n ? { pluginsEnabled: booleanValue(runtime.pluginsEnabled) ?? defaults?.pluginsEnabled }\n : {}),\n };\n}\n\nexport function patchSessionRuntimeMetadata(\n metadata: Record<string, unknown>,\n patch: SessionRuntimeConfigPatch,\n): Record<string, unknown> {\n const runtime = {\n ...readRuntimeMetadata(metadata),\n ...stripUndefined(patch),\n };\n return {\n ...metadata,\n runtime,\n };\n}\n\nexport function runtimeMetadataChanged(\n before: Record<string, unknown>,\n after: Record<string, unknown>,\n): boolean {\n return JSON.stringify(readRuntimeMetadata(before)) !== JSON.stringify(readRuntimeMetadata(after));\n}\n\nfunction stripUndefined<T extends Record<string, unknown>>(input: T): Partial<T> {\n return Object.fromEntries(Object.entries(input).filter(([, value]) => value !== undefined)) as Partial<T>;\n}\n",
8
- "export const SESSION_INPUT_LIMITS = {\n maxItems: 256,\n maxSkills: 32,\n maxTextBytes: 1024 * 1024,\n maxNameChars: 128,\n maxDisplayNameChars: 256,\n} as const\n\nexport type SkillSource = \"bundled\" | \"user\" | \"project\" | \"plugin\"\n\nexport type SessionUserInputItem =\n | { type: \"text\"; text: string }\n | { type: \"skill\"; name: string; path: string; displayName?: string; source?: SkillSource }\n | { type: \"mention\"; name: string; path: string; displayName?: string }\n\nconst CONTROL_CHARACTER_PATTERN = /[\\u0000-\\u001F\\u007F-\\u009F]/\nconst TEXT_CONTROL_CHARACTER_PATTERN = /[\\u0000-\\u0008\\u000B\\u000C\\u000E-\\u001F\\u007F-\\u009F]/\n\nexport function validateSessionUserInputItems(\n items: readonly SessionUserInputItem[],\n): SessionUserInputItem[] {\n if (items.length > SESSION_INPUT_LIMITS.maxItems) throw new Error(\"item_limit_exceeded\")\n\n let skillCount = 0\n let textBytes = 0\n for (const item of items) {\n if (item.type === \"text\") {\n assertValidText(item.text)\n textBytes += new TextEncoder().encode(item.text).byteLength\n continue\n }\n\n assertValidString(item.name, \"name\")\n assertValidString(item.path, \"path\")\n assertMaximumLength(item.name, SESSION_INPUT_LIMITS.maxNameChars, \"name\")\n if (item.displayName !== undefined) {\n assertValidString(item.displayName, \"displayName\")\n assertMaximumLength(item.displayName, SESSION_INPUT_LIMITS.maxDisplayNameChars, \"displayName\")\n }\n if (item.type === \"skill\") {\n skillCount += 1\n if (item.source !== undefined && !isSkillSource(item.source)) throw new Error(\"invalid_skill_source\")\n }\n }\n\n if (skillCount > SESSION_INPUT_LIMITS.maxSkills) throw new Error(\"skill_item_limit_exceeded\")\n if (textBytes > SESSION_INPUT_LIMITS.maxTextBytes) throw new Error(\"text_byte_limit_exceeded\")\n return [...items]\n}\n\nexport function normalizeSessionUserInputItems(\n items: readonly SessionUserInputItem[],\n): SessionUserInputItem[] {\n const normalized: SessionUserInputItem[] = []\n for (const item of validateSessionUserInputItems(items)) {\n if (item.type !== \"text\") {\n normalized.push(item)\n } else if (item.text.length > 0) {\n const previous = normalized.at(-1)\n if (previous?.type === \"text\") previous.text += item.text\n else normalized.push({ type: \"text\", text: item.text })\n }\n }\n return normalized\n}\n\nexport function sessionUserInputText(items: readonly SessionUserInputItem[]): string {\n return normalizeSessionUserInputItems(items)\n .map((item) => item.type === \"text\" ? item.text : `$${item.name}`)\n .join(\"\")\n}\n\nfunction assertValidString(value: string, field: string): void {\n if (typeof value !== \"string\" || CONTROL_CHARACTER_PATTERN.test(value)) throw new Error(`invalid_${field}`)\n}\n\nfunction assertValidText(value: string): void {\n if (typeof value !== \"string\" || TEXT_CONTROL_CHARACTER_PATTERN.test(value)) throw new Error(\"invalid_text\")\n}\n\nfunction assertMaximumLength(value: string, maximum: number, field: string): void {\n if (value.length > maximum) throw new Error(`${field}_limit_exceeded`)\n}\n\nfunction isSkillSource(value: string): value is SkillSource {\n return value === \"bundled\" || value === \"user\" || value === \"project\" || value === \"plugin\"\n}\n",
9
- "import {\n patchSessionRuntimeMetadata,\n readRuntimeMetadata,\n} from \"./runtime-config.js\";\nimport type {\n AdmitPromptAttachmentInput,\n AdmitPromptInput,\n CreateScheduledTaskInput,\n CreateSessionInput,\n ReplyPermissionInput,\n ScheduledPermissionProfile,\n ScheduledStopPolicy,\n UpdateScheduledTaskInput,\n UpdateSessionInput,\n} from \"./session.js\";\nimport type { AttachmentIntent } from \"./attachment.js\";\nimport {\n normalizeSessionUserInputItems,\n type SessionUserInputItem,\n type SkillSource,\n} from \"./session-input-items.js\";\n\nexport interface ProtocolError {\n code: string;\n message: string;\n retryable?: boolean;\n details?: Record<string, unknown>;\n traceId?: string;\n}\n\nexport class ProtocolValidationError extends Error {\n readonly code = \"invalid_request\";\n readonly details?: Record<string, unknown>;\n\n constructor(message: string, field?: string) {\n super(message);\n this.name = \"ProtocolValidationError\";\n this.details = field ? { field } : undefined;\n }\n\n toProtocolError(): ProtocolError {\n return {\n code: this.code,\n message: this.message,\n ...(this.details ? { details: this.details } : {}),\n };\n }\n}\n\ntype JsonRecord = Record<string, unknown>;\n\nexport type AdmitPromptRequest = Omit<AdmitPromptInput, \"sessionId\">;\nexport type ReplyPermissionRequest = Omit<ReplyPermissionInput, \"requestId\"> & {\n decision?: \"once\" | \"session\";\n};\n\nfunction record(value: unknown): JsonRecord {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) {\n throw new ProtocolValidationError(\"Request body must be a JSON object\");\n }\n return value as JsonRecord;\n}\n\nfunction requiredString(body: JsonRecord, field: string): string {\n const value = body[field];\n if (typeof value !== \"string\") {\n throw new ProtocolValidationError(`${field} is required`, field);\n }\n return value;\n}\n\nfunction optionalString(body: JsonRecord, field: string): string | undefined {\n const value = body[field];\n if (value === undefined) return undefined;\n if (typeof value !== \"string\") {\n throw new ProtocolValidationError(`${field} must be a string`, field);\n }\n return value;\n}\n\nfunction optionalNumber(\n body: JsonRecord,\n field: string,\n options: { nullable?: boolean; integer?: boolean; minimum?: number } = {},\n): number | null | undefined {\n const value = body[field];\n if (value === undefined) return undefined;\n if (value === null && options.nullable) return null;\n if (\n typeof value !== \"number\" ||\n !Number.isFinite(value) ||\n (options.integer && !Number.isInteger(value)) ||\n (options.minimum !== undefined && value < options.minimum)\n ) {\n throw new ProtocolValidationError(`${field} must be a valid number`, field);\n }\n return value;\n}\n\nfunction optionalBoolean(body: JsonRecord, field: string): boolean | undefined {\n const value = body[field];\n if (value === undefined) return undefined;\n if (typeof value !== \"boolean\") {\n throw new ProtocolValidationError(`${field} must be a boolean`, field);\n }\n return value;\n}\n\nfunction optionalRecord(\n body: JsonRecord,\n field: string,\n): Record<string, unknown> | undefined {\n const value = body[field];\n if (value === undefined) return undefined;\n if (!value || typeof value !== \"object\" || Array.isArray(value)) {\n throw new ProtocolValidationError(`${field} must be an object`, field);\n }\n return value as Record<string, unknown>;\n}\n\nfunction optionalStringArray(body: JsonRecord, field: string): string[] | undefined {\n const value = body[field];\n if (value === undefined) return undefined;\n if (!Array.isArray(value) || value.some((entry) => typeof entry !== \"string\")) {\n throw new ProtocolValidationError(`${field} must be an array of strings`, field);\n }\n return [...value] as string[];\n}\n\nfunction optionalEnum<const T extends readonly string[]>(\n body: JsonRecord,\n field: string,\n values: T,\n): T[number] | undefined {\n const value = body[field];\n if (value === undefined) return undefined;\n if (typeof value !== \"string\" || !values.includes(value)) {\n throw new ProtocolValidationError(\n `${field} must be one of: ${values.join(\", \")}`,\n field,\n );\n }\n return value as T[number];\n}\n\nfunction requiredEnum<const T extends readonly string[]>(\n body: JsonRecord,\n field: string,\n values: T,\n): T[number] {\n const value = optionalEnum(body, field, values);\n if (value === undefined) {\n throw new ProtocolValidationError(`${field} is required`, field);\n }\n return value;\n}\n\nexport function parseCreateSessionRequest(value: unknown): CreateSessionInput {\n const body = record(value);\n const cwd = requiredString(body, \"cwd\");\n const rawMetadata = optionalRecord(body, \"metadata\") ?? {};\n const runtime = readRuntimeMetadata(rawMetadata);\n const bodyModel = optionalString(body, \"model\");\n const model = typeof runtime.model === \"string\" ? runtime.model : bodyModel;\n if (!model) throw new ProtocolValidationError(\"model is required\", \"model\");\n const id = optionalString(body, \"id\");\n const parentId = optionalString(body, \"parentId\");\n const projectId = optionalString(body, \"projectId\");\n const title = optionalString(body, \"title\");\n const agent = optionalString(body, \"agent\");\n\n return {\n cwd,\n model,\n metadata: patchSessionRuntimeMetadata(rawMetadata, { model }),\n ...(id !== undefined ? { id } : {}),\n ...(parentId !== undefined ? { parentId } : {}),\n ...(projectId !== undefined ? { projectId } : {}),\n ...(title !== undefined ? { title } : {}),\n ...(agent !== undefined ? { agent } : {}),\n };\n}\n\nexport function parseUpdateSessionRequest(value: unknown): UpdateSessionInput {\n const body = record(value);\n if (\"model\" in body) {\n throw new ProtocolValidationError(\n \"model must be changed through metadata.runtime.model\",\n \"model\",\n );\n }\n const title = optionalString(body, \"title\");\n const metadata = optionalRecord(body, \"metadata\");\n const rawAgent = body.agent;\n if (rawAgent !== undefined && rawAgent !== null && typeof rawAgent !== \"string\") {\n throw new ProtocolValidationError(\"agent must be a string or null\", \"agent\");\n }\n return {\n ...(title !== undefined ? { title } : {}),\n ...(rawAgent !== undefined ? { agent: rawAgent as string | null } : {}),\n ...(metadata !== undefined ? { metadata } : {}),\n };\n}\n\nexport function parseAdmitPromptRequest(value: unknown): AdmitPromptRequest {\n const body = record(value);\n const id = optionalString(body, \"id\");\n const delivery = optionalEnum(body, \"delivery\", [\"queue\", \"steer\"] as const);\n const metadata = optionalRecord(body, \"metadata\");\n const attachments = parsePromptAttachments(body.attachments);\n return {\n items: parseSessionInputItems(body.items),\n attachments,\n ...(id !== undefined ? { id } : {}),\n ...(delivery !== undefined ? { delivery } : {}),\n ...(metadata !== undefined ? { metadata } : {}),\n };\n}\n\nexport function parseSessionInputItems(value: unknown): SessionUserInputItem[] {\n if (!Array.isArray(value)) {\n throw new ProtocolValidationError(\"items must be an array\", \"items\");\n }\n const items = value.map((entry, index): SessionUserInputItem => {\n const field = `items[${index}]`;\n if (!entry || typeof entry !== \"object\" || Array.isArray(entry)) {\n throw new ProtocolValidationError(`${field} must be an object`, field);\n }\n const item = entry as JsonRecord;\n if (item.type === \"text\") {\n if (typeof item.text !== \"string\") {\n throw new ProtocolValidationError(`${field}.text must be a string`, `${field}.text`);\n }\n return { type: \"text\", text: item.text };\n }\n if (item.type !== \"skill\" && item.type !== \"mention\") {\n throw new ProtocolValidationError(`${field}.type is invalid`, `${field}.type`);\n }\n if (typeof item.name !== \"string\" || typeof item.path !== \"string\") {\n throw new ProtocolValidationError(`${field} requires name and path`, field);\n }\n if (item.displayName !== undefined && typeof item.displayName !== \"string\") {\n throw new ProtocolValidationError(`${field}.displayName must be a string`, `${field}.displayName`);\n }\n if (item.type === \"mention\") {\n return {\n type: \"mention\",\n name: item.name,\n path: item.path,\n ...(typeof item.displayName === \"string\" ? { displayName: item.displayName } : {}),\n };\n }\n if (\n item.source !== undefined &&\n item.source !== \"bundled\" && item.source !== \"user\" && item.source !== \"project\" && item.source !== \"plugin\"\n ) {\n throw new ProtocolValidationError(`${field}.source is invalid`, `${field}.source`);\n }\n return {\n type: \"skill\",\n name: item.name,\n path: item.path,\n ...(typeof item.displayName === \"string\" ? { displayName: item.displayName } : {}),\n ...(item.source !== undefined ? { source: item.source as SkillSource } : {}),\n };\n });\n try {\n return normalizeSessionUserInputItems(items);\n } catch (error) {\n throw new ProtocolValidationError(\n error instanceof Error ? error.message : \"items are invalid\",\n \"items\",\n );\n }\n}\n\nexport function parsePromptAttachments(\n value: unknown,\n): AdmitPromptAttachmentInput[] {\n if (value === undefined) return [];\n if (!Array.isArray(value)) {\n throw new ProtocolValidationError(\"attachments must be an array\", \"attachments\");\n }\n return value.map((entry, index) => {\n const field = `attachments[${index}]`;\n if (!entry || typeof entry !== \"object\" || Array.isArray(entry)) {\n throw new ProtocolValidationError(`${field} must be an object`, field);\n }\n const item = entry as JsonRecord;\n const assetId = item.assetId;\n if (typeof assetId !== \"string\" || assetId.length === 0) {\n throw new ProtocolValidationError(\n `${field}.assetId must be a non-empty string`,\n `${field}.assetId`,\n );\n }\n const intent = item.intent;\n const allowedIntents = [\n \"auto\",\n \"vision\",\n \"ocr\",\n \"document\",\n \"tool_resource\",\n \"workspace_reference\",\n ] as const satisfies readonly AttachmentIntent[];\n if (\n intent !== undefined &&\n (typeof intent !== \"string\" || !allowedIntents.includes(intent as AttachmentIntent))\n ) {\n throw new ProtocolValidationError(\n `${field}.intent must be one of: ${allowedIntents.join(\", \")}`,\n `${field}.intent`,\n );\n }\n const displayName = item.displayName;\n if (displayName !== undefined && typeof displayName !== \"string\") {\n throw new ProtocolValidationError(\n `${field}.displayName must be a string`,\n `${field}.displayName`,\n );\n }\n return {\n assetId,\n ...(intent !== undefined ? { intent: intent as AttachmentIntent } : {}),\n ...(displayName !== undefined ? { displayName } : {}),\n };\n });\n}\n\nexport function parseReplyPermissionRequest(value: unknown): ReplyPermissionRequest {\n const body = record(value);\n const status = requiredEnum(\n body,\n \"status\",\n [\"approved\", \"denied\", \"expired\"] as const,\n );\n const decision = optionalEnum(body, \"decision\", [\"once\", \"session\"] as const);\n const clientId = optionalString(body, \"clientId\");\n return {\n status,\n ...(decision !== undefined ? { decision } : {}),\n ...(clientId !== undefined ? { clientId } : {}),\n };\n}\n\nfunction parsePermissionProfile(value: unknown): ScheduledPermissionProfile {\n const body = record(value);\n const mode = requiredEnum(\n body,\n \"mode\",\n [\"read_only\", \"workspace_write\", \"full_access\"] as const,\n );\n const network = optionalBoolean(body, \"network\");\n const allowedTools = optionalStringArray(body, \"allowedTools\");\n const deniedTools = optionalStringArray(body, \"deniedTools\");\n return {\n mode,\n ...(network !== undefined ? { network } : {}),\n ...(allowedTools !== undefined ? { allowedTools } : {}),\n ...(deniedTools !== undefined ? { deniedTools } : {}),\n };\n}\n\nfunction parseStopPolicy(value: unknown): ScheduledStopPolicy {\n const body = record(value);\n const runOnce = optionalBoolean(body, \"runOnce\");\n const maxRuns = optionalNumber(body, \"maxRuns\", { integer: true, minimum: 1 });\n const stopWhenCompleted = optionalBoolean(body, \"stopWhenCompleted\");\n const expiresAt = optionalNumber(body, \"expiresAt\");\n return {\n ...(runOnce !== undefined ? { runOnce } : {}),\n ...(maxRuns !== undefined ? { maxRuns: maxRuns as number } : {}),\n ...(stopWhenCompleted !== undefined ? { stopWhenCompleted } : {}),\n ...(expiresAt !== undefined ? { expiresAt: expiresAt as number } : {}),\n };\n}\n\nfunction parseScheduleFields(body: JsonRecord): Partial<CreateScheduledTaskInput> {\n const id = optionalString(body, \"id\");\n const name = optionalString(body, \"name\");\n const description = optionalString(body, \"description\");\n const prompt = optionalString(body, \"prompt\");\n const recurrence = optionalString(body, \"recurrence\");\n const recurrenceFormat = optionalEnum(\n body,\n \"recurrenceFormat\",\n [\"rrule\", \"once\"] as const,\n );\n const timezone = optionalString(body, \"timezone\");\n const status = optionalEnum(\n body,\n \"status\",\n [\"active\", \"paused\", \"completed\"] as const,\n );\n const destination = optionalEnum(\n body,\n \"destination\",\n [\"standalone\", \"chat\"] as const,\n );\n const sessionId = optionalString(body, \"sessionId\");\n const projectPaths = optionalStringArray(body, \"projectPaths\");\n const executionMode = optionalEnum(\n body,\n \"executionMode\",\n [\"local\", \"worktree\"] as const,\n );\n const model = optionalString(body, \"model\");\n const effort = optionalString(body, \"effort\");\n const skillNames = optionalStringArray(body, \"skillNames\");\n const pluginNames = optionalStringArray(body, \"pluginNames\");\n const permissionProfile = body.permissionProfile === undefined\n ? undefined\n : parsePermissionProfile(body.permissionProfile);\n const overlapPolicy = optionalEnum(\n body,\n \"overlapPolicy\",\n [\"skip\", \"queue\"] as const,\n );\n const missedRunPolicy = optionalEnum(\n body,\n \"missedRunPolicy\",\n [\"skip\", \"run_once\"] as const,\n );\n const stopPolicy = body.stopPolicy === undefined\n ? undefined\n : parseStopPolicy(body.stopPolicy);\n const createdBy = optionalEnum(\n body,\n \"createdBy\",\n [\"user\", \"agent\", \"migration\"] as const,\n );\n const createdFromSessionId = optionalString(body, \"createdFromSessionId\");\n return {\n ...(id !== undefined ? { id } : {}),\n ...(name !== undefined ? { name } : {}),\n ...(description !== undefined ? { description } : {}),\n ...(prompt !== undefined ? { prompt } : {}),\n ...(recurrence !== undefined ? { recurrence } : {}),\n ...(recurrenceFormat !== undefined ? { recurrenceFormat } : {}),\n ...(timezone !== undefined ? { timezone } : {}),\n ...(status !== undefined ? { status } : {}),\n ...(destination !== undefined ? { destination } : {}),\n ...(sessionId !== undefined ? { sessionId } : {}),\n ...(projectPaths !== undefined ? { projectPaths } : {}),\n ...(executionMode !== undefined ? { executionMode } : {}),\n ...(model !== undefined ? { model } : {}),\n ...(effort !== undefined ? { effort } : {}),\n ...(skillNames !== undefined ? { skillNames } : {}),\n ...(pluginNames !== undefined ? { pluginNames } : {}),\n ...(permissionProfile !== undefined ? { permissionProfile } : {}),\n ...(overlapPolicy !== undefined ? { overlapPolicy } : {}),\n ...(missedRunPolicy !== undefined ? { missedRunPolicy } : {}),\n ...(stopPolicy !== undefined ? { stopPolicy } : {}),\n ...(createdBy !== undefined ? { createdBy } : {}),\n ...(createdFromSessionId !== undefined ? { createdFromSessionId } : {}),\n };\n}\n\nexport function parseCreateScheduledTaskRequest(value: unknown): CreateScheduledTaskInput {\n const body = record(value);\n const parsed = parseScheduleFields(body);\n const nextRunAt = optionalNumber(body, \"nextRunAt\");\n return {\n ...parsed,\n name: requiredString(body, \"name\"),\n prompt: requiredString(body, \"prompt\"),\n recurrence: requiredString(body, \"recurrence\"),\n recurrenceFormat: requiredEnum(body, \"recurrenceFormat\", [\"rrule\", \"once\"] as const),\n timezone: requiredString(body, \"timezone\"),\n destination: requiredEnum(body, \"destination\", [\"standalone\", \"chat\"] as const),\n ...(nextRunAt !== undefined ? { nextRunAt: nextRunAt as number } : {}),\n };\n}\n\nexport function parseUpdateScheduledTaskRequest(value: unknown): UpdateScheduledTaskInput {\n const body = record(value);\n if (\"id\" in body) {\n throw new ProtocolValidationError(\"id cannot be changed\", \"id\");\n }\n const parsed = parseScheduleFields(body);\n const lastRunAt = optionalNumber(body, \"lastRunAt\", { nullable: true });\n const nextRunAt = optionalNumber(body, \"nextRunAt\", { nullable: true });\n const runCount = optionalNumber(body, \"runCount\", { integer: true, minimum: 0 });\n const { id: _id, ...patch } = parsed;\n return {\n ...patch,\n ...(lastRunAt !== undefined ? { lastRunAt: lastRunAt as number | null } : {}),\n ...(nextRunAt !== undefined ? { nextRunAt: nextRunAt as number | null } : {}),\n ...(runCount !== undefined ? { runCount: runCount as number } : {}),\n };\n}\n",
8
+ "export const SESSION_INPUT_LIMITS = {\n maxItems: 256,\n maxSkills: 32,\n maxTextBytes: 1024 * 1024,\n maxNameChars: 128,\n maxDisplayNameChars: 256,\n} as const\n\nexport type SkillSource = \"bundled\" | \"user\" | \"project\" | \"plugin\"\n\nexport type SessionUserInputItem =\n | { type: \"text\"; text: string }\n | { type: \"skill\"; name: string; path: string; displayName?: string; source?: SkillSource }\n | { type: \"mention\"; name: string; path: string; displayName?: string }\n | { type: \"context\"; kind: \"conversation\"; id: string; displayName: string }\n\nconst CONTROL_CHARACTER_PATTERN = /[\\u0000-\\u001F\\u007F-\\u009F]/\nconst TEXT_CONTROL_CHARACTER_PATTERN = /[\\u0000-\\u0008\\u000B\\u000C\\u000E-\\u001F\\u007F-\\u009F]/\n\nexport function validateSessionUserInputItems(\n items: readonly SessionUserInputItem[],\n): SessionUserInputItem[] {\n if (items.length > SESSION_INPUT_LIMITS.maxItems) throw new Error(\"item_limit_exceeded\")\n\n let skillCount = 0\n let textBytes = 0\n for (const item of items) {\n if (item.type === \"text\") {\n assertValidText(item.text)\n textBytes += new TextEncoder().encode(item.text).byteLength\n continue\n }\n\n if (item.type === \"context\") {\n if (item.kind !== \"conversation\") throw new Error(\"invalid_context_kind\")\n assertValidString(item.id, \"id\")\n assertValidString(item.displayName, \"displayName\")\n assertMaximumLength(item.id, SESSION_INPUT_LIMITS.maxNameChars, \"id\")\n assertMaximumLength(item.displayName, SESSION_INPUT_LIMITS.maxDisplayNameChars, \"displayName\")\n continue\n }\n\n assertValidString(item.name, \"name\")\n assertValidString(item.path, \"path\")\n assertMaximumLength(item.name, SESSION_INPUT_LIMITS.maxNameChars, \"name\")\n if (item.displayName !== undefined) {\n assertValidString(item.displayName, \"displayName\")\n assertMaximumLength(item.displayName, SESSION_INPUT_LIMITS.maxDisplayNameChars, \"displayName\")\n }\n if (item.type === \"skill\") {\n skillCount += 1\n if (item.source !== undefined && !isSkillSource(item.source)) throw new Error(\"invalid_skill_source\")\n }\n }\n\n if (skillCount > SESSION_INPUT_LIMITS.maxSkills) throw new Error(\"skill_item_limit_exceeded\")\n if (textBytes > SESSION_INPUT_LIMITS.maxTextBytes) throw new Error(\"text_byte_limit_exceeded\")\n return [...items]\n}\n\nexport function normalizeSessionUserInputItems(\n items: readonly SessionUserInputItem[],\n): SessionUserInputItem[] {\n const normalized: SessionUserInputItem[] = []\n for (const item of validateSessionUserInputItems(items)) {\n if (item.type !== \"text\") {\n normalized.push(item)\n } else if (item.text.length > 0) {\n const previous = normalized.at(-1)\n if (previous?.type === \"text\") previous.text += item.text\n else normalized.push({ type: \"text\", text: item.text })\n }\n }\n return normalized\n}\n\nexport function sessionUserInputText(items: readonly SessionUserInputItem[]): string {\n return normalizeSessionUserInputItems(items)\n .map((item) => item.type === \"text\" ? item.text : item.type === \"context\" ? `@${item.displayName}` : `$${item.name}`)\n .join(\"\")\n}\n\nfunction assertValidString(value: string, field: string): void {\n if (typeof value !== \"string\" || CONTROL_CHARACTER_PATTERN.test(value)) throw new Error(`invalid_${field}`)\n}\n\nfunction assertValidText(value: string): void {\n if (typeof value !== \"string\" || TEXT_CONTROL_CHARACTER_PATTERN.test(value)) throw new Error(\"invalid_text\")\n}\n\nfunction assertMaximumLength(value: string, maximum: number, field: string): void {\n if (value.length > maximum) throw new Error(`${field}_limit_exceeded`)\n}\n\nfunction isSkillSource(value: string): value is SkillSource {\n return value === \"bundled\" || value === \"user\" || value === \"project\" || value === \"plugin\"\n}\n",
9
+ "import {\n patchSessionRuntimeMetadata,\n readRuntimeMetadata,\n} from \"./runtime-config.js\";\nimport type {\n AdmitPromptAttachmentInput,\n AdmitPromptInput,\n CreateScheduledTaskInput,\n CreateSessionInput,\n ReplyPermissionInput,\n ScheduledPermissionProfile,\n ScheduledStopPolicy,\n UpdateScheduledTaskInput,\n UpdateSessionInput,\n} from \"./session.js\";\nimport type { AttachmentIntent } from \"./attachment.js\";\nimport {\n normalizeSessionUserInputItems,\n type SessionUserInputItem,\n type SkillSource,\n} from \"./session-input-items.js\";\n\nexport interface ProtocolError {\n code: string;\n message: string;\n retryable?: boolean;\n details?: Record<string, unknown>;\n traceId?: string;\n}\n\nexport class ProtocolValidationError extends Error {\n readonly code = \"invalid_request\";\n readonly details?: Record<string, unknown>;\n\n constructor(message: string, field?: string) {\n super(message);\n this.name = \"ProtocolValidationError\";\n this.details = field ? { field } : undefined;\n }\n\n toProtocolError(): ProtocolError {\n return {\n code: this.code,\n message: this.message,\n ...(this.details ? { details: this.details } : {}),\n };\n }\n}\n\ntype JsonRecord = Record<string, unknown>;\n\nexport type AdmitPromptRequest = Omit<AdmitPromptInput, \"sessionId\">;\nexport type ReplyPermissionRequest = Omit<ReplyPermissionInput, \"requestId\"> & {\n decision?: \"once\" | \"session\";\n};\n\nfunction record(value: unknown): JsonRecord {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) {\n throw new ProtocolValidationError(\"Request body must be a JSON object\");\n }\n return value as JsonRecord;\n}\n\nfunction requiredString(body: JsonRecord, field: string): string {\n const value = body[field];\n if (typeof value !== \"string\") {\n throw new ProtocolValidationError(`${field} is required`, field);\n }\n return value;\n}\n\nfunction optionalString(body: JsonRecord, field: string): string | undefined {\n const value = body[field];\n if (value === undefined) return undefined;\n if (typeof value !== \"string\") {\n throw new ProtocolValidationError(`${field} must be a string`, field);\n }\n return value;\n}\n\nfunction optionalNumber(\n body: JsonRecord,\n field: string,\n options: { nullable?: boolean; integer?: boolean; minimum?: number } = {},\n): number | null | undefined {\n const value = body[field];\n if (value === undefined) return undefined;\n if (value === null && options.nullable) return null;\n if (\n typeof value !== \"number\" ||\n !Number.isFinite(value) ||\n (options.integer && !Number.isInteger(value)) ||\n (options.minimum !== undefined && value < options.minimum)\n ) {\n throw new ProtocolValidationError(`${field} must be a valid number`, field);\n }\n return value;\n}\n\nfunction optionalBoolean(body: JsonRecord, field: string): boolean | undefined {\n const value = body[field];\n if (value === undefined) return undefined;\n if (typeof value !== \"boolean\") {\n throw new ProtocolValidationError(`${field} must be a boolean`, field);\n }\n return value;\n}\n\nfunction optionalRecord(\n body: JsonRecord,\n field: string,\n): Record<string, unknown> | undefined {\n const value = body[field];\n if (value === undefined) return undefined;\n if (!value || typeof value !== \"object\" || Array.isArray(value)) {\n throw new ProtocolValidationError(`${field} must be an object`, field);\n }\n return value as Record<string, unknown>;\n}\n\nfunction optionalStringArray(body: JsonRecord, field: string): string[] | undefined {\n const value = body[field];\n if (value === undefined) return undefined;\n if (!Array.isArray(value) || value.some((entry) => typeof entry !== \"string\")) {\n throw new ProtocolValidationError(`${field} must be an array of strings`, field);\n }\n return [...value] as string[];\n}\n\nfunction optionalEnum<const T extends readonly string[]>(\n body: JsonRecord,\n field: string,\n values: T,\n): T[number] | undefined {\n const value = body[field];\n if (value === undefined) return undefined;\n if (typeof value !== \"string\" || !values.includes(value)) {\n throw new ProtocolValidationError(\n `${field} must be one of: ${values.join(\", \")}`,\n field,\n );\n }\n return value as T[number];\n}\n\nfunction requiredEnum<const T extends readonly string[]>(\n body: JsonRecord,\n field: string,\n values: T,\n): T[number] {\n const value = optionalEnum(body, field, values);\n if (value === undefined) {\n throw new ProtocolValidationError(`${field} is required`, field);\n }\n return value;\n}\n\nexport function parseCreateSessionRequest(value: unknown): CreateSessionInput {\n const body = record(value);\n const cwd = requiredString(body, \"cwd\");\n const rawMetadata = optionalRecord(body, \"metadata\") ?? {};\n const runtime = readRuntimeMetadata(rawMetadata);\n const bodyModel = optionalString(body, \"model\");\n const model = typeof runtime.model === \"string\" ? runtime.model : bodyModel;\n if (!model) throw new ProtocolValidationError(\"model is required\", \"model\");\n const id = optionalString(body, \"id\");\n const parentId = optionalString(body, \"parentId\");\n const projectId = optionalString(body, \"projectId\");\n const title = optionalString(body, \"title\");\n const agent = optionalString(body, \"agent\");\n\n return {\n cwd,\n model,\n metadata: patchSessionRuntimeMetadata(rawMetadata, { model }),\n ...(id !== undefined ? { id } : {}),\n ...(parentId !== undefined ? { parentId } : {}),\n ...(projectId !== undefined ? { projectId } : {}),\n ...(title !== undefined ? { title } : {}),\n ...(agent !== undefined ? { agent } : {}),\n };\n}\n\nexport function parseUpdateSessionRequest(value: unknown): UpdateSessionInput {\n const body = record(value);\n if (\"model\" in body) {\n throw new ProtocolValidationError(\n \"model must be changed through metadata.runtime.model\",\n \"model\",\n );\n }\n const title = optionalString(body, \"title\");\n const metadata = optionalRecord(body, \"metadata\");\n const rawAgent = body.agent;\n if (rawAgent !== undefined && rawAgent !== null && typeof rawAgent !== \"string\") {\n throw new ProtocolValidationError(\"agent must be a string or null\", \"agent\");\n }\n return {\n ...(title !== undefined ? { title } : {}),\n ...(rawAgent !== undefined ? { agent: rawAgent as string | null } : {}),\n ...(metadata !== undefined ? { metadata } : {}),\n };\n}\n\nexport function parseAdmitPromptRequest(value: unknown): AdmitPromptRequest {\n const body = record(value);\n const id = optionalString(body, \"id\");\n const delivery = optionalEnum(body, \"delivery\", [\"queue\", \"steer\"] as const);\n const metadata = optionalRecord(body, \"metadata\");\n const attachments = parsePromptAttachments(body.attachments);\n return {\n items: parsePromptItems(body),\n attachments,\n ...(id !== undefined ? { id } : {}),\n ...(delivery !== undefined ? { delivery } : {}),\n ...(metadata !== undefined ? { metadata } : {}),\n };\n}\n\nexport function parsePromptItems(value: unknown): SessionUserInputItem[] {\n const body = record(value);\n if (body.items !== undefined) return parseSessionInputItems(body.items);\n const content = optionalString(body, \"content\");\n if (content === undefined) {\n throw new ProtocolValidationError(\"items must be an array\", \"items\");\n }\n return parseSessionInputItems([{ type: \"text\", text: content }]);\n}\n\nexport function parseSessionInputItems(value: unknown): SessionUserInputItem[] {\n if (!Array.isArray(value)) {\n throw new ProtocolValidationError(\"items must be an array\", \"items\");\n }\n const items = value.map((entry, index): SessionUserInputItem => {\n const field = `items[${index}]`;\n if (!entry || typeof entry !== \"object\" || Array.isArray(entry)) {\n throw new ProtocolValidationError(`${field} must be an object`, field);\n }\n const item = entry as JsonRecord;\n if (item.type === \"text\") {\n if (typeof item.text !== \"string\") {\n throw new ProtocolValidationError(`${field}.text must be a string`, `${field}.text`);\n }\n return { type: \"text\", text: item.text };\n }\n if (item.type === \"context\") {\n if (item.kind !== \"conversation\" || typeof item.id !== \"string\" || typeof item.displayName !== \"string\") {\n throw new ProtocolValidationError(`${field} requires kind, id and displayName`, field);\n }\n return { type: \"context\", kind: \"conversation\", id: item.id, displayName: item.displayName };\n }\n if (item.type !== \"skill\" && item.type !== \"mention\") {\n throw new ProtocolValidationError(`${field}.type is invalid`, `${field}.type`);\n }\n if (typeof item.name !== \"string\" || typeof item.path !== \"string\") {\n throw new ProtocolValidationError(`${field} requires name and path`, field);\n }\n if (item.displayName !== undefined && typeof item.displayName !== \"string\") {\n throw new ProtocolValidationError(`${field}.displayName must be a string`, `${field}.displayName`);\n }\n if (item.type === \"mention\") {\n return {\n type: \"mention\",\n name: item.name,\n path: item.path,\n ...(typeof item.displayName === \"string\" ? { displayName: item.displayName } : {}),\n };\n }\n if (\n item.source !== undefined &&\n item.source !== \"bundled\" && item.source !== \"user\" && item.source !== \"project\" && item.source !== \"plugin\"\n ) {\n throw new ProtocolValidationError(`${field}.source is invalid`, `${field}.source`);\n }\n return {\n type: \"skill\",\n name: item.name,\n path: item.path,\n ...(typeof item.displayName === \"string\" ? { displayName: item.displayName } : {}),\n ...(item.source !== undefined ? { source: item.source as SkillSource } : {}),\n };\n });\n try {\n return normalizeSessionUserInputItems(items);\n } catch (error) {\n throw new ProtocolValidationError(\n error instanceof Error ? error.message : \"items are invalid\",\n \"items\",\n );\n }\n}\n\nexport function parsePromptAttachments(\n value: unknown,\n): AdmitPromptAttachmentInput[] {\n if (value === undefined) return [];\n if (!Array.isArray(value)) {\n throw new ProtocolValidationError(\"attachments must be an array\", \"attachments\");\n }\n return value.map((entry, index) => {\n const field = `attachments[${index}]`;\n if (!entry || typeof entry !== \"object\" || Array.isArray(entry)) {\n throw new ProtocolValidationError(`${field} must be an object`, field);\n }\n const item = entry as JsonRecord;\n const assetId = item.assetId;\n if (typeof assetId !== \"string\" || assetId.length === 0) {\n throw new ProtocolValidationError(\n `${field}.assetId must be a non-empty string`,\n `${field}.assetId`,\n );\n }\n const intent = item.intent;\n const allowedIntents = [\n \"auto\",\n \"vision\",\n \"ocr\",\n \"document\",\n \"tool_resource\",\n \"workspace_reference\",\n ] as const satisfies readonly AttachmentIntent[];\n if (\n intent !== undefined &&\n (typeof intent !== \"string\" || !allowedIntents.includes(intent as AttachmentIntent))\n ) {\n throw new ProtocolValidationError(\n `${field}.intent must be one of: ${allowedIntents.join(\", \")}`,\n `${field}.intent`,\n );\n }\n const displayName = item.displayName;\n if (displayName !== undefined && typeof displayName !== \"string\") {\n throw new ProtocolValidationError(\n `${field}.displayName must be a string`,\n `${field}.displayName`,\n );\n }\n return {\n assetId,\n ...(intent !== undefined ? { intent: intent as AttachmentIntent } : {}),\n ...(displayName !== undefined ? { displayName } : {}),\n };\n });\n}\n\nexport function parseReplyPermissionRequest(value: unknown): ReplyPermissionRequest {\n const body = record(value);\n const status = requiredEnum(\n body,\n \"status\",\n [\"approved\", \"denied\", \"expired\"] as const,\n );\n const decision = optionalEnum(body, \"decision\", [\"once\", \"session\"] as const);\n const clientId = optionalString(body, \"clientId\");\n return {\n status,\n ...(decision !== undefined ? { decision } : {}),\n ...(clientId !== undefined ? { clientId } : {}),\n };\n}\n\nfunction parsePermissionProfile(value: unknown): ScheduledPermissionProfile {\n const body = record(value);\n const mode = requiredEnum(\n body,\n \"mode\",\n [\"read_only\", \"workspace_write\", \"full_access\"] as const,\n );\n const network = optionalBoolean(body, \"network\");\n const allowedTools = optionalStringArray(body, \"allowedTools\");\n const deniedTools = optionalStringArray(body, \"deniedTools\");\n return {\n mode,\n ...(network !== undefined ? { network } : {}),\n ...(allowedTools !== undefined ? { allowedTools } : {}),\n ...(deniedTools !== undefined ? { deniedTools } : {}),\n };\n}\n\nfunction parseStopPolicy(value: unknown): ScheduledStopPolicy {\n const body = record(value);\n const runOnce = optionalBoolean(body, \"runOnce\");\n const maxRuns = optionalNumber(body, \"maxRuns\", { integer: true, minimum: 1 });\n const stopWhenCompleted = optionalBoolean(body, \"stopWhenCompleted\");\n const expiresAt = optionalNumber(body, \"expiresAt\");\n return {\n ...(runOnce !== undefined ? { runOnce } : {}),\n ...(maxRuns !== undefined ? { maxRuns: maxRuns as number } : {}),\n ...(stopWhenCompleted !== undefined ? { stopWhenCompleted } : {}),\n ...(expiresAt !== undefined ? { expiresAt: expiresAt as number } : {}),\n };\n}\n\nfunction parseScheduleFields(body: JsonRecord): Partial<CreateScheduledTaskInput> {\n const id = optionalString(body, \"id\");\n const name = optionalString(body, \"name\");\n const description = optionalString(body, \"description\");\n const prompt = optionalString(body, \"prompt\");\n const recurrence = optionalString(body, \"recurrence\");\n const recurrenceFormat = optionalEnum(\n body,\n \"recurrenceFormat\",\n [\"rrule\", \"once\"] as const,\n );\n const timezone = optionalString(body, \"timezone\");\n const status = optionalEnum(\n body,\n \"status\",\n [\"active\", \"paused\", \"completed\"] as const,\n );\n const destination = optionalEnum(\n body,\n \"destination\",\n [\"standalone\", \"chat\"] as const,\n );\n const sessionId = optionalString(body, \"sessionId\");\n const projectPaths = optionalStringArray(body, \"projectPaths\");\n const executionMode = optionalEnum(\n body,\n \"executionMode\",\n [\"local\", \"worktree\"] as const,\n );\n const model = optionalString(body, \"model\");\n const effort = optionalString(body, \"effort\");\n const skillNames = optionalStringArray(body, \"skillNames\");\n const pluginNames = optionalStringArray(body, \"pluginNames\");\n const permissionProfile = body.permissionProfile === undefined\n ? undefined\n : parsePermissionProfile(body.permissionProfile);\n const overlapPolicy = optionalEnum(\n body,\n \"overlapPolicy\",\n [\"skip\", \"queue\"] as const,\n );\n const missedRunPolicy = optionalEnum(\n body,\n \"missedRunPolicy\",\n [\"skip\", \"run_once\"] as const,\n );\n const stopPolicy = body.stopPolicy === undefined\n ? undefined\n : parseStopPolicy(body.stopPolicy);\n const createdBy = optionalEnum(\n body,\n \"createdBy\",\n [\"user\", \"agent\", \"migration\"] as const,\n );\n const createdFromSessionId = optionalString(body, \"createdFromSessionId\");\n return {\n ...(id !== undefined ? { id } : {}),\n ...(name !== undefined ? { name } : {}),\n ...(description !== undefined ? { description } : {}),\n ...(prompt !== undefined ? { prompt } : {}),\n ...(recurrence !== undefined ? { recurrence } : {}),\n ...(recurrenceFormat !== undefined ? { recurrenceFormat } : {}),\n ...(timezone !== undefined ? { timezone } : {}),\n ...(status !== undefined ? { status } : {}),\n ...(destination !== undefined ? { destination } : {}),\n ...(sessionId !== undefined ? { sessionId } : {}),\n ...(projectPaths !== undefined ? { projectPaths } : {}),\n ...(executionMode !== undefined ? { executionMode } : {}),\n ...(model !== undefined ? { model } : {}),\n ...(effort !== undefined ? { effort } : {}),\n ...(skillNames !== undefined ? { skillNames } : {}),\n ...(pluginNames !== undefined ? { pluginNames } : {}),\n ...(permissionProfile !== undefined ? { permissionProfile } : {}),\n ...(overlapPolicy !== undefined ? { overlapPolicy } : {}),\n ...(missedRunPolicy !== undefined ? { missedRunPolicy } : {}),\n ...(stopPolicy !== undefined ? { stopPolicy } : {}),\n ...(createdBy !== undefined ? { createdBy } : {}),\n ...(createdFromSessionId !== undefined ? { createdFromSessionId } : {}),\n };\n}\n\nexport function parseCreateScheduledTaskRequest(value: unknown): CreateScheduledTaskInput {\n const body = record(value);\n const parsed = parseScheduleFields(body);\n const nextRunAt = optionalNumber(body, \"nextRunAt\");\n return {\n ...parsed,\n name: requiredString(body, \"name\"),\n prompt: requiredString(body, \"prompt\"),\n recurrence: requiredString(body, \"recurrence\"),\n recurrenceFormat: requiredEnum(body, \"recurrenceFormat\", [\"rrule\", \"once\"] as const),\n timezone: requiredString(body, \"timezone\"),\n destination: requiredEnum(body, \"destination\", [\"standalone\", \"chat\"] as const),\n ...(nextRunAt !== undefined ? { nextRunAt: nextRunAt as number } : {}),\n };\n}\n\nexport function parseUpdateScheduledTaskRequest(value: unknown): UpdateScheduledTaskInput {\n const body = record(value);\n if (\"id\" in body) {\n throw new ProtocolValidationError(\"id cannot be changed\", \"id\");\n }\n const parsed = parseScheduleFields(body);\n const lastRunAt = optionalNumber(body, \"lastRunAt\", { nullable: true });\n const nextRunAt = optionalNumber(body, \"nextRunAt\", { nullable: true });\n const runCount = optionalNumber(body, \"runCount\", { integer: true, minimum: 0 });\n const { id: _id, ...patch } = parsed;\n return {\n ...patch,\n ...(lastRunAt !== undefined ? { lastRunAt: lastRunAt as number | null } : {}),\n ...(nextRunAt !== undefined ? { nextRunAt: nextRunAt as number | null } : {}),\n ...(runCount !== undefined ? { runCount: runCount as number } : {}),\n };\n}\n",
10
10
  "import type {\n PermissionRequestRecord,\n SessionEventRecord,\n SessionExecutionRecord,\n SessionInputRecord,\n SessionMessagePartRecord,\n SessionMessageRecord,\n SessionRunAttemptRecord,\n SessionRunRecord,\n SessionStateSnapshot,\n} from \"./session.js\";\nimport type { AttachmentIntent } from \"./attachment.js\";\nimport type { JobReadResult, JobSnapshot, JobWaitResult } from \"./job.js\";\nimport type {\n TerminalEvent,\n TerminalReadResult,\n TerminalSessionInfo,\n TerminalWaitResult,\n} from \"./terminal.js\";\nimport type { ProtocolError } from \"./requests.js\";\n\nexport class ProtocolDataError extends Error {\n readonly code = \"invalid_protocol_data\";\n readonly details?: Record<string, unknown>;\n\n constructor(message: string, path?: string) {\n super(message);\n this.name = \"ProtocolDataError\";\n this.details = path ? { path } : undefined;\n }\n\n toProtocolError(): ProtocolError {\n return {\n code: this.code,\n message: this.message,\n ...(this.details ? { details: this.details } : {}),\n };\n }\n}\n\ntype DataRecord = Record<string, unknown>;\ntype Validator<T> = (value: unknown, path: string) => T;\n\nfunction parseJson(text: string): unknown {\n try {\n return JSON.parse(text) as unknown;\n } catch {\n throw new ProtocolDataError(\"Protocol data must be valid JSON\");\n }\n}\n\nfunction object(value: unknown, path: string): DataRecord {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) {\n throw new ProtocolDataError(`${path} must be an object`, path);\n }\n return value as DataRecord;\n}\n\nfunction stringField(value: DataRecord, field: string, path: string): string {\n const fieldPath = `${path}.${field}`;\n if (typeof value[field] !== \"string\") {\n throw new ProtocolDataError(`${fieldPath} must be a string`, fieldPath);\n }\n return value[field] as string;\n}\n\nfunction optionalString(value: DataRecord, field: string, path: string): void {\n const fieldValue = value[field];\n if (fieldValue !== undefined && typeof fieldValue !== \"string\") {\n const fieldPath = `${path}.${field}`;\n throw new ProtocolDataError(`${fieldPath} must be a string`, fieldPath);\n }\n}\n\nfunction numberField(value: DataRecord, field: string, path: string): number {\n const fieldPath = `${path}.${field}`;\n const fieldValue = value[field];\n if (typeof fieldValue !== \"number\" || !Number.isFinite(fieldValue)) {\n throw new ProtocolDataError(`${fieldPath} must be a finite number`, fieldPath);\n }\n return fieldValue;\n}\n\nfunction optionalNumber(\n value: DataRecord,\n field: string,\n path: string,\n nullable = false,\n): void {\n const fieldValue = value[field];\n if (fieldValue === undefined || (nullable && fieldValue === null)) return;\n if (typeof fieldValue !== \"number\" || !Number.isFinite(fieldValue)) {\n const fieldPath = `${path}.${field}`;\n throw new ProtocolDataError(`${fieldPath} must be a finite number`, fieldPath);\n }\n}\n\nfunction booleanField(value: DataRecord, field: string, path: string): boolean {\n const fieldPath = `${path}.${field}`;\n if (typeof value[field] !== \"boolean\") {\n throw new ProtocolDataError(`${fieldPath} must be a boolean`, fieldPath);\n }\n return value[field] as boolean;\n}\n\nfunction recordField(value: DataRecord, field: string, path: string): DataRecord {\n return object(value[field], `${path}.${field}`);\n}\n\nfunction optionalRecord(value: DataRecord, field: string, path: string): void {\n if (value[field] !== undefined) object(value[field], `${path}.${field}`);\n}\n\nfunction enumField<const T extends readonly string[]>(\n value: DataRecord,\n field: string,\n path: string,\n allowed: T,\n): T[number] {\n const fieldPath = `${path}.${field}`;\n const fieldValue = value[field];\n if (typeof fieldValue !== \"string\" || !allowed.includes(fieldValue)) {\n throw new ProtocolDataError(\n `${fieldPath} must be one of: ${allowed.join(\", \")}`,\n fieldPath,\n );\n }\n return fieldValue as T[number];\n}\n\nfunction arrayField<T>(\n value: DataRecord,\n field: string,\n path: string,\n validate: Validator<T>,\n): T[] {\n const fieldPath = `${path}.${field}`;\n const items = value[field];\n if (!Array.isArray(items)) {\n throw new ProtocolDataError(`${fieldPath} must be an array`, fieldPath);\n }\n return items.map((item, index) => validate(item, `${fieldPath}[${index}]`));\n}\n\nfunction validateSession(value: unknown, path: string) {\n const item = object(value, path);\n stringField(item, \"id\", path);\n stringField(item, \"cwd\", path);\n stringField(item, \"title\", path);\n stringField(item, \"model\", path);\n enumField(item, \"status\", path, [\"idle\", \"running\", \"closing\", \"archived\", \"error\"] as const);\n recordField(item, \"metadata\", path);\n numberField(item, \"createdAt\", path);\n numberField(item, \"updatedAt\", path);\n for (const field of [\"parentId\", \"projectId\", \"cwdRelative\", \"agent\"] as const) {\n optionalString(item, field, path);\n }\n optionalNumber(item, \"archivedAt\", path);\n return item;\n}\n\nfunction validateInput(value: unknown, path: string): SessionInputRecord {\n const item = object(value, path);\n stringField(item, \"id\", path);\n stringField(item, \"sessionId\", path);\n numberField(item, \"seq\", path);\n enumField(item, \"delivery\", path, [\"queue\", \"steer\"] as const);\n stringField(item, \"content\", path);\n const attachments = arrayField(item, \"attachments\", path, validateInputAttachment);\n const assetIds = new Set<string>();\n for (const [index, attachment] of attachments.entries()) {\n const attachmentPath = `${path}.attachments[${index}]`;\n if (attachment.sessionId !== item.sessionId) {\n throw new ProtocolDataError(\n `${attachmentPath}.sessionId must match ${path}.sessionId`,\n `${attachmentPath}.sessionId`,\n );\n }\n if (attachment.inputId !== item.id) {\n throw new ProtocolDataError(\n `${attachmentPath}.inputId must match ${path}.id`,\n `${attachmentPath}.inputId`,\n );\n }\n if (attachment.seq !== index) {\n throw new ProtocolDataError(\n `${attachmentPath}.seq must equal its array index`,\n `${attachmentPath}.seq`,\n );\n }\n if (assetIds.has(attachment.assetId)) {\n throw new ProtocolDataError(\n `${attachmentPath}.assetId must be unique within the input`,\n `${attachmentPath}.assetId`,\n );\n }\n assetIds.add(attachment.assetId);\n }\n optionalString(item, \"promotedMessageId\", path);\n recordField(item, \"metadata\", path);\n numberField(item, \"createdAt\", path);\n return item as unknown as SessionInputRecord;\n}\n\nfunction validateInputAttachment(value: unknown, path: string) {\n const item = object(value, path);\n for (const field of [\"id\", \"sessionId\", \"inputId\", \"assetId\", \"displayName\", \"mediaType\"] as const) {\n stringField(item, field, path);\n }\n numberField(item, \"seq\", path);\n enumField(item, \"intent\", path, [\n \"auto\",\n \"vision\",\n \"ocr\",\n \"document\",\n \"tool_resource\",\n \"workspace_reference\",\n ] as const satisfies readonly AttachmentIntent[]);\n numberField(item, \"sizeBytes\", path);\n recordField(item, \"metadata\", path);\n numberField(item, \"createdAt\", path);\n return item as unknown as SessionInputRecord[\"attachments\"][number];\n}\n\nfunction validateMessage(value: unknown, path: string): SessionMessageRecord {\n const item = object(value, path);\n stringField(item, \"id\", path);\n stringField(item, \"sessionId\", path);\n numberField(item, \"seq\", path);\n enumField(item, \"role\", path, [\"system\", \"user\", \"assistant\"] as const);\n optionalString(item, \"runId\", path);\n optionalString(item, \"inputId\", path);\n recordField(item, \"metadata\", path);\n numberField(item, \"createdAt\", path);\n numberField(item, \"updatedAt\", path);\n return item as unknown as SessionMessageRecord;\n}\n\nfunction validatePart(value: unknown, path: string): SessionMessagePartRecord {\n const item = object(value, path);\n stringField(item, \"id\", path);\n stringField(item, \"sessionId\", path);\n stringField(item, \"messageId\", path);\n numberField(item, \"seq\", path);\n const type = enumField(item, \"type\", path, [\n \"text\",\n \"attachment\",\n \"transformation\",\n \"reasoning\",\n \"tool\",\n \"tool_result\",\n \"error\",\n \"log\",\n ] as const);\n enumField(item, \"status\", path, [\"pending\", \"running\", \"completed\", \"failed\", \"interrupted\"] as const);\n for (const field of [\"text\", \"toolUseId\", \"toolName\"] as const) optionalString(item, field, path);\n optionalRecord(item, \"input\", path);\n if (item.isError !== undefined && typeof item.isError !== \"boolean\") {\n throw new ProtocolDataError(`${path}.isError must be a boolean`, `${path}.isError`);\n }\n if (type === \"attachment\") {\n for (const field of [\"assetId\", \"displayName\", \"mediaType\"] as const) {\n stringField(item, field, path);\n }\n enumField(item, \"intent\", path, [\n \"auto\",\n \"vision\",\n \"ocr\",\n \"document\",\n \"tool_resource\",\n \"workspace_reference\",\n ] as const);\n numberField(item, \"sizeBytes\", path);\n }\n if (type === \"transformation\") {\n stringField(item, \"assetId\", path);\n enumField(item, \"kind\", path, [\"direct\", \"document_extract\", \"tool_mount\"] as const);\n for (const field of [\"representationId\", \"processor\", \"transformationError\"] as const) {\n optionalString(item, field, path);\n }\n }\n recordField(item, \"metadata\", path);\n numberField(item, \"createdAt\", path);\n numberField(item, \"updatedAt\", path);\n return item as unknown as SessionMessagePartRecord;\n}\n\nfunction validateRun(value: unknown, path: string): SessionRunRecord {\n const item = object(value, path);\n stringField(item, \"id\", path);\n stringField(item, \"sessionId\", path);\n optionalString(item, \"inputId\", path);\n enumField(item, \"status\", path, [\"pending\", \"running\", \"completed\", \"failed\", \"interrupted\"] as const);\n optionalNumber(item, \"startedAt\", path);\n optionalNumber(item, \"finishedAt\", path);\n optionalString(item, \"error\", path);\n recordField(item, \"metadata\", path);\n numberField(item, \"createdAt\", path);\n numberField(item, \"updatedAt\", path);\n return item as unknown as SessionRunRecord;\n}\n\nfunction validateAttempt(value: unknown, path: string): SessionRunAttemptRecord {\n const item = object(value, path);\n stringField(item, \"id\", path);\n stringField(item, \"runId\", path);\n numberField(item, \"sequence\", path);\n enumField(item, \"status\", path, [\"pending\", \"running\", \"completed\", \"failed\", \"cancelled\"] as const);\n for (const field of [\"provider\", \"model\", \"retryReason\", \"errorKind\", \"error\"] as const) {\n optionalString(item, field, path);\n }\n for (const field of [\"inputTokens\", \"outputTokens\", \"startedAt\", \"finishedAt\"] as const) {\n optionalNumber(item, field, path);\n }\n numberField(item, \"createdAt\", path);\n numberField(item, \"updatedAt\", path);\n return item as unknown as SessionRunAttemptRecord;\n}\n\nfunction validateTask(value: unknown, path: string): SessionExecutionRecord {\n const item = object(value, path);\n for (const field of [\"id\", \"sessionId\", \"type\", \"description\", \"cwd\"] as const) {\n stringField(item, field, path);\n }\n for (const field of [\"childSessionId\", \"runId\", \"requestNamespace\", \"requestId\", \"output\", \"error\"] as const) {\n optionalString(item, field, path);\n }\n enumField(item, \"status\", path, [\"pending\", \"running\", \"completed\", \"failed\", \"stopped\", \"interrupted\"] as const);\n recordField(item, \"metadata\", path);\n numberField(item, \"createdAt\", path);\n optionalNumber(item, \"startedAt\", path);\n optionalNumber(item, \"finishedAt\", path);\n numberField(item, \"updatedAt\", path);\n return item as unknown as SessionExecutionRecord;\n}\n\nfunction validatePermission(value: unknown, path: string): PermissionRequestRecord {\n const item = object(value, path);\n for (const field of [\"id\", \"sessionId\", \"toolName\"] as const) stringField(item, field, path);\n optionalString(item, \"runId\", path);\n recordField(item, \"payload\", path);\n enumField(item, \"status\", path, [\"pending\", \"approved\", \"denied\", \"expired\"] as const);\n optionalString(item, \"decision\", path);\n optionalString(item, \"decidedByClientId\", path);\n numberField(item, \"createdAt\", path);\n numberField(item, \"updatedAt\", path);\n return item as unknown as PermissionRequestRecord;\n}\n\nexport function decodeSessionEventRecord(value: unknown): SessionEventRecord {\n const event = object(value, \"event\");\n stringField(event, \"id\", \"event\");\n numberField(event, \"seq\", \"event\");\n stringField(event, \"type\", \"event\");\n numberField(event, \"schemaVersion\", \"event\");\n optionalString(event, \"sessionId\", \"event\");\n recordField(event, \"payload\", \"event\");\n numberField(event, \"createdAt\", \"event\");\n return event as unknown as SessionEventRecord;\n}\n\nexport function deserializeSessionEventRecord(text: string): SessionEventRecord {\n return decodeSessionEventRecord(parseJson(text));\n}\n\nexport function serializeSessionEventRecord(event: SessionEventRecord): string {\n decodeSessionEventRecord(event);\n return JSON.stringify(event);\n}\n\nexport function decodeSessionStateSnapshot(value: unknown): SessionStateSnapshot {\n const snapshot = object(value, \"snapshot\");\n numberField(snapshot, \"cursor\", \"snapshot\");\n validateSession(snapshot.session, \"snapshot.session\");\n arrayField(snapshot, \"inputs\", \"snapshot\", validateInput);\n arrayField(snapshot, \"messages\", \"snapshot\", validateMessage);\n arrayField(snapshot, \"parts\", \"snapshot\", validatePart);\n arrayField(snapshot, \"runs\", \"snapshot\", validateRun);\n arrayField(snapshot, \"attempts\", \"snapshot\", validateAttempt);\n if (snapshot.tasks !== undefined) arrayField(snapshot, \"tasks\", \"snapshot\", validateTask);\n arrayField(snapshot, \"permissions\", \"snapshot\", validatePermission);\n return snapshot as unknown as SessionStateSnapshot;\n}\n\nexport function deserializeSessionStateSnapshot(text: string): SessionStateSnapshot {\n return decodeSessionStateSnapshot(parseJson(text));\n}\n\nexport function serializeSessionStateSnapshot(snapshot: SessionStateSnapshot): string {\n decodeSessionStateSnapshot(snapshot);\n return JSON.stringify(snapshot);\n}\n\nexport function decodeJobSnapshot(value: unknown): JobSnapshot {\n const job = object(value, \"job\");\n for (const field of [\"id\", \"label\", \"ownerSession\", \"cwd\"] as const) stringField(job, field, \"job\");\n enumField(job, \"kind\", \"job\", [\"terminal\", \"shell\", \"agent\", \"dream\", \"workflow\"] as const);\n enumField(job, \"status\", \"job\", [\"running\", \"stopping\", \"completed\", \"killed\", \"failed\"] as const);\n const capabilities = recordField(job, \"capabilities\", \"job\");\n for (const field of [\"read\", \"wait\", \"send\", \"cancel\"] as const) {\n booleanField(capabilities, field, \"job.capabilities\");\n }\n numberField(job, \"startedAt\", \"job\");\n numberField(job, \"updatedAt\", \"job\");\n optionalNumber(job, \"finishedAt\", \"job\");\n optionalString(job, \"detail\", \"job\");\n optionalRecord(job, \"metadata\", \"job\");\n return job as unknown as JobSnapshot;\n}\n\nexport function decodeJobReadResult(value: unknown): JobReadResult {\n const result = object(value, \"jobReadResult\");\n stringField(result, \"text\", \"jobReadResult\");\n numberField(result, \"cursor\", \"jobReadResult\");\n booleanField(result, \"truncated\", \"jobReadResult\");\n decodeJobSnapshot(result.snapshot);\n optionalRecord(result, \"details\", \"jobReadResult\");\n return result as unknown as JobReadResult;\n}\n\nexport function decodeJobWaitResult(value: unknown): JobWaitResult {\n const result = object(value, \"jobWaitResult\");\n decodeJobReadResult(result);\n booleanField(result, \"timedOut\", \"jobWaitResult\");\n return result as unknown as JobWaitResult;\n}\n\nexport function decodeTerminalSessionInfo(value: unknown): TerminalSessionInfo {\n const terminal = object(value, \"terminal\");\n for (const field of [\"id\", \"name\", \"cwd\", \"shell\", \"createdAt\"] as const) {\n stringField(terminal, field, \"terminal\");\n }\n const scope = recordField(terminal, \"scope\", \"terminal\");\n const scopeKind = enumField(scope, \"kind\", \"terminal.scope\", [\"project\", \"session\"] as const);\n if (scopeKind === \"project\") {\n const projectId = stringField(scope, \"projectId\", \"terminal.scope\");\n optionalString(terminal, \"projectId\", \"terminal\");\n if (terminal.projectId !== undefined && terminal.projectId !== projectId) {\n throw new ProtocolDataError(\n \"terminal.projectId must match terminal.scope.projectId\",\n \"terminal.projectId\",\n );\n }\n } else {\n const sessionId = stringField(scope, \"sessionId\", \"terminal.scope\");\n optionalString(terminal, \"sessionId\", \"terminal\");\n if (terminal.sessionId !== undefined && terminal.sessionId !== sessionId) {\n throw new ProtocolDataError(\n \"terminal.sessionId must match terminal.scope.sessionId\",\n \"terminal.sessionId\",\n );\n }\n }\n optionalString(terminal, \"projectId\", \"terminal\");\n optionalString(terminal, \"sessionId\", \"terminal\");\n enumField(terminal, \"runtime\", \"terminal\", [\"local\", \"environment\"] as const);\n enumField(terminal, \"source\", \"terminal\", [\"user\", \"agent\"] as const);\n enumField(terminal, \"status\", \"terminal\", [\"running\", \"stopping\", \"completed\", \"killed\", \"failed\"] as const);\n numberField(terminal, \"cols\", \"terminal\");\n numberField(terminal, \"rows\", \"terminal\");\n optionalString(terminal, \"exitedAt\", \"terminal\");\n optionalNumber(terminal, \"exitCode\", \"terminal\", true);\n return terminal as unknown as TerminalSessionInfo;\n}\n\nexport function decodeTerminalEvent(value: unknown): TerminalEvent {\n const event = object(value, \"terminalEvent\");\n const type = enumField(event, \"type\", \"terminalEvent\", [\"data\", \"status\", \"exit\", \"title\", \"error\"] as const);\n stringField(event, \"terminalId\", \"terminalEvent\");\n if (type === \"data\") {\n stringField(event, \"data\", \"terminalEvent\");\n numberField(event, \"sequence\", \"terminalEvent\");\n } else if (type === \"status\") {\n enumField(event, \"status\", \"terminalEvent\", [\"stopping\", \"killed\"] as const);\n } else if (type === \"exit\") {\n optionalNumber(event, \"exitCode\", \"terminalEvent\", true);\n if (!(\"exitCode\" in event)) {\n throw new ProtocolDataError(\"terminalEvent.exitCode is required\", \"terminalEvent.exitCode\");\n }\n } else if (type === \"title\") {\n stringField(event, \"title\", \"terminalEvent\");\n } else {\n stringField(event, \"message\", \"terminalEvent\");\n }\n return event as unknown as TerminalEvent;\n}\n\nexport function decodeTerminalReadResult(value: unknown): TerminalReadResult {\n const result = object(value, \"terminalReadResult\");\n stringField(result, \"terminalId\", \"terminalReadResult\");\n stringField(result, \"data\", \"terminalReadResult\");\n numberField(result, \"sequence\", \"terminalReadResult\");\n booleanField(result, \"truncated\", \"terminalReadResult\");\n return result as unknown as TerminalReadResult;\n}\n\nexport function decodeTerminalWaitResult(value: unknown): TerminalWaitResult {\n const result = object(value, \"terminalWaitResult\");\n decodeTerminalReadResult(result);\n decodeTerminalSessionInfo(result.terminal);\n booleanField(result, \"timedOut\", \"terminalWaitResult\");\n return result as unknown as TerminalWaitResult;\n}\n",
11
11
  "export type AttachmentAssetStatus =\n | \"importing\"\n | \"ready\"\n | \"failed\"\n | \"deleted\";\n\nexport type AttachmentIntent =\n | \"auto\"\n | \"vision\"\n | \"ocr\"\n | \"document\"\n | \"tool_resource\"\n | \"workspace_reference\";\n\nexport type AttachmentRepresentationStatus =\n | \"pending\"\n | \"running\"\n | \"completed\"\n | \"failed\";\n\nexport type AttachmentRepresentationKind =\n | \"thumbnail\"\n | \"ocr_text\"\n | \"plain_text\"\n | \"pdf_text\"\n | \"pdf_page_image\"\n | \"archive_manifest\"\n | \"directory_manifest\";\n\nexport interface AttachmentAssetRecord {\n id: string;\n displayName: string;\n declaredMediaType?: string;\n mediaType?: string;\n sizeBytes?: number;\n sha256?: string;\n status: AttachmentAssetStatus;\n failureCode?: string;\n createdAt: number;\n updatedAt: number;\n deletedAt?: number;\n}\n\nexport interface SessionInputAttachmentRecord {\n id: string;\n sessionId: string;\n inputId: string;\n assetId: string;\n seq: number;\n intent: AttachmentIntent;\n displayName: string;\n mediaType: string;\n sizeBytes: number;\n metadata: Record<string, unknown>;\n createdAt: number;\n}\n\nexport interface AttachmentRepresentationRecord {\n id: string;\n assetId: string;\n kind: AttachmentRepresentationKind;\n status: AttachmentRepresentationStatus;\n processor: string;\n processorVersion: string;\n cacheKey: string;\n mediaType: string;\n text?: string;\n error?: string;\n metadata: Record<string, unknown>;\n createdAt: number;\n updatedAt: number;\n}\n\nexport interface AttachmentLimits {\n maxFilesPerPrompt: number;\n maxBytesPerFile: number;\n maxBytesPerPrompt: number;\n maxSessionReferencedBytes: number;\n resumableThresholdBytes: number;\n uploadSessionTtlMs: number;\n stagingTtlMs: number;\n}\n\nexport const DEFAULT_ATTACHMENT_LIMITS: Readonly<AttachmentLimits> = {\n maxFilesPerPrompt: 20,\n maxBytesPerFile: 100 * 1024 * 1024,\n maxBytesPerPrompt: 250 * 1024 * 1024,\n maxSessionReferencedBytes: 2 * 1024 * 1024 * 1024,\n resumableThresholdBytes: 25 * 1024 * 1024,\n uploadSessionTtlMs: 24 * 60 * 60 * 1_000,\n stagingTtlMs: 24 * 60 * 60 * 1_000,\n};\n\nexport function parseAttachmentLimits(value: unknown): AttachmentLimits {\n const record = recordValue(value, \"attachment limits\");\n const limits: AttachmentLimits = {\n maxFilesPerPrompt: positiveInteger(\n record.maxFilesPerPrompt,\n \"maxFilesPerPrompt\",\n ),\n maxBytesPerFile: positiveInteger(record.maxBytesPerFile, \"maxBytesPerFile\"),\n maxBytesPerPrompt: positiveInteger(\n record.maxBytesPerPrompt,\n \"maxBytesPerPrompt\",\n ),\n maxSessionReferencedBytes: positiveInteger(\n record.maxSessionReferencedBytes,\n \"maxSessionReferencedBytes\",\n ),\n resumableThresholdBytes: positiveInteger(\n record.resumableThresholdBytes,\n \"resumableThresholdBytes\",\n ),\n uploadSessionTtlMs: positiveInteger(\n record.uploadSessionTtlMs,\n \"uploadSessionTtlMs\",\n ),\n stagingTtlMs: positiveInteger(record.stagingTtlMs, \"stagingTtlMs\"),\n };\n if (limits.resumableThresholdBytes > limits.maxBytesPerFile) {\n throw new Error(\"resumableThresholdBytes must not exceed maxBytesPerFile\");\n }\n if (limits.maxBytesPerFile > limits.maxBytesPerPrompt) {\n throw new Error(\"maxBytesPerFile must not exceed maxBytesPerPrompt\");\n }\n if (limits.maxBytesPerPrompt > limits.maxSessionReferencedBytes) {\n throw new Error(\n \"maxBytesPerPrompt must not exceed maxSessionReferencedBytes\",\n );\n }\n return limits;\n}\n\nexport function parseAttachmentAssetRecord(\n value: unknown,\n): AttachmentAssetRecord {\n const record = recordValue(value, \"attachment asset\");\n const status = enumValue(\n record.status,\n [\"importing\", \"ready\", \"failed\", \"deleted\"] as const,\n \"status\",\n );\n const asset: AttachmentAssetRecord = {\n id: nonEmptyString(record.id, \"id\"),\n displayName: nonEmptyString(record.displayName, \"displayName\"),\n status,\n createdAt: nonNegativeInteger(record.createdAt, \"createdAt\"),\n updatedAt: nonNegativeInteger(record.updatedAt, \"updatedAt\"),\n };\n\n const declaredMediaType = optionalNonEmptyString(\n record.declaredMediaType,\n \"declaredMediaType\",\n );\n const mediaType = optionalNonEmptyString(record.mediaType, \"mediaType\");\n const sizeBytes = optionalNonNegativeInteger(record.sizeBytes, \"sizeBytes\");\n const sha256 = optionalSha256(record.sha256);\n const failureCode = optionalNonEmptyString(record.failureCode, \"failureCode\");\n const deletedAt = optionalNonNegativeInteger(record.deletedAt, \"deletedAt\");\n\n if (declaredMediaType !== undefined) asset.declaredMediaType = declaredMediaType;\n if (mediaType !== undefined) asset.mediaType = mediaType;\n if (sizeBytes !== undefined) asset.sizeBytes = sizeBytes;\n if (sha256 !== undefined) asset.sha256 = sha256;\n if (failureCode !== undefined) asset.failureCode = failureCode;\n if (deletedAt !== undefined) asset.deletedAt = deletedAt;\n\n if (status === \"ready\" || status === \"deleted\") {\n if (asset.mediaType === undefined) throw new Error(\"mediaType is required\");\n if (asset.sizeBytes === undefined) throw new Error(\"sizeBytes is required\");\n if (asset.sha256 === undefined) throw new Error(\"sha256 is required\");\n }\n if (status === \"failed\" && asset.failureCode === undefined) {\n throw new Error(\"failureCode is required\");\n }\n if (status === \"deleted\" && asset.deletedAt === undefined) {\n throw new Error(\"deletedAt is required\");\n }\n return asset;\n}\n\nfunction recordValue(value: unknown, field: string): Record<string, unknown> {\n if (typeof value !== \"object\" || value === null || Array.isArray(value)) {\n throw new Error(`${field} must be an object`);\n }\n return value as Record<string, unknown>;\n}\n\nfunction positiveInteger(value: unknown, field: string): number {\n if (!Number.isSafeInteger(value) || Number(value) < 1) {\n throw new Error(`${field} must be a positive safe integer`);\n }\n return Number(value);\n}\n\nfunction nonNegativeInteger(value: unknown, field: string): number {\n if (!Number.isSafeInteger(value) || Number(value) < 0) {\n throw new Error(`${field} must be a non-negative safe integer`);\n }\n return Number(value);\n}\n\nfunction optionalNonNegativeInteger(\n value: unknown,\n field: string,\n): number | undefined {\n return value === undefined ? undefined : nonNegativeInteger(value, field);\n}\n\nfunction nonEmptyString(value: unknown, field: string): string {\n if (typeof value !== \"string\" || value.length === 0) {\n throw new Error(`${field} must be a non-empty string`);\n }\n return value;\n}\n\nfunction optionalNonEmptyString(\n value: unknown,\n field: string,\n): string | undefined {\n return value === undefined ? undefined : nonEmptyString(value, field);\n}\n\nfunction optionalSha256(value: unknown): string | undefined {\n if (value === undefined) return undefined;\n if (typeof value !== \"string\" || !/^[a-f0-9]{64}$/.test(value)) {\n throw new Error(\"sha256 must be 64 lowercase hexadecimal characters\");\n }\n return value;\n}\n\nfunction enumValue<const T extends readonly string[]>(\n value: unknown,\n allowed: T,\n field: string,\n): T[number] {\n if (typeof value !== \"string\" || !allowed.includes(value)) {\n throw new Error(`${field} must be one of: ${allowed.join(\", \")}`);\n }\n return value as T[number];\n}\n",
12
- "import {\n parseAttachmentLimits,\n type AttachmentLimits,\n} from \"./attachment.js\";\n\nexport interface ProtocolVersion {\n version: number;\n}\n\nexport interface ServerCapabilities {\n serverVersion: string;\n protocol: ProtocolVersion;\n features: Record<string, number>;\n attachments?: AttachmentTransferCapabilities;\n}\n\nexport type AttachmentUploadMode = \"single\" | \"resumable\";\n\nexport interface AttachmentTransferCapabilities {\n limits: AttachmentLimits;\n uploadModes: readonly [\"single\"] | readonly [\"single\", \"resumable\"];\n}\n\nexport interface ClientProtocolSupport {\n version: number;\n}\n\nexport interface ProtocolCompatibility {\n compatible: boolean;\n reason?: string;\n}\n\nexport function parseServerCapabilities(value: unknown): ServerCapabilities {\n if (!isRecord(value)) throw new Error(\"Capabilities response must be an object\");\n if (typeof value.serverVersion !== \"string\") throw new Error(\"serverVersion must be a string\");\n if (!isRecord(value.protocol)) throw new Error(\"protocol must be an object\");\n const version = positiveInteger(value.protocol.version, \"protocol.version\");\n if (!isRecord(value.features)) throw new Error(\"features must be an object\");\n const features: Record<string, number> = {};\n for (const [name, version] of Object.entries(value.features)) {\n features[name] = positiveInteger(version, `features.${name}`);\n }\n const attachments = parseAttachmentTransferCapabilities(value.attachments);\n return {\n serverVersion: value.serverVersion,\n protocol: { version },\n features,\n ...(attachments ? { attachments } : {}),\n };\n}\n\nexport function checkProtocolCompatibility(\n server: ServerCapabilities,\n client: ClientProtocolSupport,\n): ProtocolCompatibility {\n if (client.version !== server.protocol.version) {\n return {\n compatible: false,\n reason: `Client protocol ${client.version} does not match server protocol ${server.protocol.version}`,\n };\n }\n return { compatible: true };\n}\n\nexport function supportsFeature(\n capabilities: ServerCapabilities,\n feature: string,\n minimumVersion = 1,\n): boolean {\n return (capabilities.features[feature] ?? 0) >= minimumVersion;\n}\n\nfunction positiveInteger(value: unknown, field: string): number {\n if (!Number.isInteger(value) || Number(value) < 1) throw new Error(`${field} must be a positive integer`);\n return Number(value);\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction parseAttachmentTransferCapabilities(\n value: unknown,\n): AttachmentTransferCapabilities | undefined {\n if (value === undefined) return undefined;\n if (!isRecord(value)) throw new Error(\"attachments must be an object\");\n if (!Array.isArray(value.uploadModes) || value.uploadModes.length === 0) {\n throw new Error(\"attachments.uploadModes must be a non-empty array\");\n }\n if (\n value.uploadModes[0] !== \"single\" ||\n value.uploadModes.length > 2 ||\n (value.uploadModes.length === 2 && value.uploadModes[1] !== \"resumable\")\n ) {\n throw new Error(\n 'attachments.uploadModes must be [\"single\"] or [\"single\", \"resumable\"]',\n );\n }\n const uploadModes = value.uploadModes as [\"single\"] | [\"single\", \"resumable\"];\n return {\n limits: parseAttachmentLimits(value.limits),\n uploadModes,\n };\n}\n",
13
- "export * from \"./session.js\";\nexport * from \"./runtime-config.js\";\nexport * from \"./requests.js\";\nexport * from \"./job.js\";\nexport * from \"./terminal.js\";\nexport * from \"./serialization.js\";\nexport * from \"./channel.js\";\nexport * from \"./capabilities.js\";\nexport * from \"./attachment.js\";\nexport * from \"./session-input-items.js\";\n",
14
- "/**\n * daemon HTTP/SSE 客户端。\n *\n * 包装 `@openharness/server` 的 REST 路由与 `/events/stream` SSE;\n * 不含本地状态归并(见 `reducer.ts` / `sync.ts`)。\n */\n\nimport type {\n AdmitClientPromptInput,\n CommandCatalogEntry,\n CreateClientSessionInput,\n EditLatestClientPromptInput,\n CancelQueuedClientPromptInput,\n CancelQueuedPromptResponse,\n EventSyncOptions,\n ForkClientSessionInput,\n InterruptSessionResponse,\n ListClientMessagePartsOptions,\n ListCommandsOptions,\n ListEventsOptions,\n ListMessagesOptions,\n ListPermissionsOptions,\n ListSessionsOptions,\n ListProjectsOptions,\n ProjectRecord,\n AgentPersonaInfo,\n AuthStatus,\n CompactSessionResponse,\n CreateBackgroundShellInput,\n CreateBackgroundShellResult,\n CustomProviderInput,\n CreateScheduledTaskInput,\n HookInfo,\n ReloadPluginsResponse,\n RewindSessionResponse,\n McpServerStatus,\n MemoryEntryRecord,\n MemoryListResponse,\n ModelProviderInfo,\n OpenHarnessClientOptions,\n OpenHarnessServerHealth,\n PermissionRequestRecord,\n PluginInfo,\n PluginArchivePreview,\n SkillSnapshot,\n PromoteQueuedClientPromptInput,\n PromoteQueuedPromptResponse,\n PromptResponse,\n ResumeInterruptedRunInput,\n ResumeInterruptedRunResponse,\n ProviderInfo,\n OutputStyleInfo,\n RememberSessionResponse,\n ScheduledRunRecord,\n ScheduledTaskRecord,\n ScheduledTaskStatusSummary,\n ReplyPermissionInput,\n SessionEventRecord,\n SessionExportResponse,\n SessionMessagePartRecord,\n SessionMessageRecord,\n SessionRecord,\n SessionStateSnapshot,\n SessionUsageResponse,\n StartDreamResponse,\n UpdateClientSessionInput,\n UpdateScheduledTaskInput,\n UploadAttachmentInput,\n DownloadAttachmentOptions,\n AttachmentAssetRecord,\n AttachmentStorageGcResult,\n AttachmentStorageRepairResult,\n AttachmentStorageReport,\n} from \"../types/index.js\";\nimport type {\n JobKind,\n JobReadResult,\n JobSnapshot,\n JobStatus,\n JobWaitResult,\n TerminalCreateRequest,\n TerminalEvent,\n TerminalReadResult,\n TerminalResizeRequest,\n TerminalSessionInfo,\n TerminalSignal,\n TerminalSource,\n TerminalWriteRequest,\n DurableChannelMessageInput,\n DurableChannelMessageResult,\n RecordChannelDeliveryInput,\n ChannelDeliveryRecord,\n ChannelStatusSnapshot,\n ClientProtocolSupport,\n ServerCapabilities,\n} from \"@openharness/protocol\";\nimport {\n checkProtocolCompatibility,\n decodeJobReadResult,\n decodeJobSnapshot,\n decodeJobWaitResult,\n decodeSessionEventRecord,\n decodeSessionStateSnapshot,\n decodeTerminalEvent,\n decodeTerminalReadResult,\n decodeTerminalSessionInfo,\n ProtocolDataError,\n parseServerCapabilities,\n parseAttachmentAssetRecord,\n} from \"@openharness/protocol\";\n\nlet promptRequestCounter = 0;\n\nfunction responseField(value: unknown, field: string): unknown {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) {\n throw new ProtocolDataError(\"Response body must be an object\");\n }\n if (!(field in value)) {\n throw new ProtocolDataError(`Response body is missing ${field}`, field);\n }\n return (value as Record<string, unknown>)[field];\n}\n\nfunction responseArray<T>(\n value: unknown,\n field: string,\n decode: (item: unknown) => T,\n): T[] {\n const items = responseField(value, field);\n if (!Array.isArray(items)) {\n throw new ProtocolDataError(`Response ${field} must be an array`, field);\n }\n return items.map(decode);\n}\n\n/** Normalize a daemon base URL without accepting credentials or request fragments. */\nexport function normalizeDaemonBaseUrl(value: string): string {\n const raw = value.trim();\n if (!raw) throw new Error(\"Daemon URL is required\");\n\n let url: URL;\n try {\n url = new URL(raw);\n } catch {\n throw new Error(\"Daemon URL must be an absolute http or https URL\");\n }\n if (url.protocol !== \"http:\" && url.protocol !== \"https:\") {\n throw new Error(\"Daemon URL must use http or https\");\n }\n if (url.username || url.password) {\n throw new Error(\n \"Daemon URL must not contain credentials; use a bearer token instead\",\n );\n }\n if (url.search || url.hash) {\n throw new Error(\n \"Daemon URL must not contain query parameters or a fragment\",\n );\n }\n\n const pathname = url.pathname.replace(/\\/+$/, \"\");\n return `${url.origin}${pathname === \"/\" ? \"\" : pathname}`;\n}\n\n/** Generate a caller-stable id for one prompt admission attempt. */\nexport function createPromptRequestId(): string {\n if (typeof globalThis.crypto?.randomUUID === \"function\")\n return globalThis.crypto.randomUUID();\n promptRequestCounter += 1;\n return `prompt-${Date.now().toString(36)}-${promptRequestCounter.toString(36)}`;\n}\n\n/** HTTP API 非 2xx 时抛出;携带 status 与原始响应体。 */\nexport class OpenHarnessApiError extends Error {\n constructor(\n message: string,\n readonly status: number,\n readonly body: unknown,\n ) {\n super(message);\n this.name = \"OpenHarnessApiError\";\n }\n}\n\n/**\n * 面向 daemon 的 typed fetch 客户端。\n * 构造时传入 `baseUrl` 与可选 Bearer `token`(通常来自 daemon registry)。\n */\nexport class OpenHarnessClient {\n private readonly baseUrl: string;\n private readonly token?: string;\n private readonly fetchImpl: typeof fetch;\n\n constructor(options: OpenHarnessClientOptions) {\n this.baseUrl = normalizeDaemonBaseUrl(options.baseUrl);\n this.token = options.token;\n this.fetchImpl = options.fetch ?? fetch;\n }\n\n /** `GET /health` */\n async health(\n options: { signal?: AbortSignal } = {},\n ): Promise<OpenHarnessServerHealth> {\n return this.request<OpenHarnessServerHealth>(\"/health\", {\n auth: false,\n signal: options.signal,\n });\n }\n\n /** 连接产品应先调用它,再根据 features 决定显示哪些功能。 */\n async capabilities(\n options: { signal?: AbortSignal; support?: ClientProtocolSupport } = {},\n ): Promise<ServerCapabilities> {\n const value = await this.request<unknown>(\"/capabilities\", {\n auth: false,\n signal: options.signal,\n });\n const capabilities = parseServerCapabilities(value);\n const compatibility = checkProtocolCompatibility(\n capabilities,\n options.support ?? { version: 2 },\n );\n if (!compatibility.compatible) {\n throw new IncompatibleProtocolError(\n capabilities,\n compatibility.reason ??\n \"Client and server protocol versions are incompatible\",\n );\n }\n return capabilities;\n }\n\n /** `POST /attachments` — upload bytes without JSON or multipart buffering. */\n async uploadAttachment(\n input: UploadAttachmentInput,\n ): Promise<AttachmentAssetRecord> {\n const headers = this.headers();\n headers[\"x-openharness-filename\"] = encodeURIComponent(input.displayName);\n if (input.mediaType) headers[\"content-type\"] = input.mediaType;\n const init: RequestInit & { duplex?: \"half\" } = {\n method: \"POST\",\n headers,\n body: input.body as RequestInit[\"body\"],\n signal: input.signal,\n };\n if (isReadableStream(input.body)) init.duplex = \"half\";\n const response = await this.fetchImpl(`${this.baseUrl}/attachments`, init);\n if (!response.ok) await this.throwResponseError(response);\n return parseAttachmentAssetRecord(await response.json());\n }\n\n async getAttachment(\n id: string,\n options: { signal?: AbortSignal } = {},\n ): Promise<AttachmentAssetRecord> {\n const value = await this.request<unknown>(\n `/attachments/${encodeURIComponent(id)}`,\n { signal: options.signal },\n );\n return parseAttachmentAssetRecord(value);\n }\n\n /** Returns the raw response so callers can consume the body as a stream. */\n async downloadAttachment(\n id: string,\n options: DownloadAttachmentOptions = {},\n ): Promise<Response> {\n const range = attachmentRangeHeader(options.range);\n const headers = this.headers();\n if (range) headers.range = range;\n const response = await this.fetchImpl(\n `${this.baseUrl}/attachments/${encodeURIComponent(id)}/content`,\n { method: \"GET\", headers, signal: options.signal },\n );\n if (!response.ok) await this.throwResponseError(response);\n return response;\n }\n\n async deleteAttachment(\n id: string,\n options: { signal?: AbortSignal } = {},\n ): Promise<AttachmentAssetRecord> {\n const value = await this.request<unknown>(\n `/attachments/${encodeURIComponent(id)}`,\n { method: \"DELETE\", signal: options.signal },\n );\n return parseAttachmentAssetRecord(value);\n }\n\n async scanAttachmentStorage(\n options: { signal?: AbortSignal } = {},\n ): Promise<AttachmentStorageReport> {\n return await this.request<AttachmentStorageReport>(\"/attachments/storage\", {\n signal: options.signal,\n });\n }\n\n async repairAttachmentStorage(\n options: { signal?: AbortSignal } = {},\n ): Promise<AttachmentStorageRepairResult> {\n return await this.request<AttachmentStorageRepairResult>(\n \"/attachments/storage/actions\",\n {\n method: \"POST\",\n body: { action: \"repair-safe\" },\n signal: options.signal,\n },\n );\n }\n\n async gcAttachmentStorage(\n options: { signal?: AbortSignal } = {},\n ): Promise<AttachmentStorageGcResult> {\n return await this.request<AttachmentStorageGcResult>(\n \"/attachments/storage/actions\",\n {\n method: \"POST\",\n body: { action: \"gc\" },\n signal: options.signal,\n },\n );\n }\n\n async handleChannelMessage(\n input: DurableChannelMessageInput,\n options: { signal?: AbortSignal } = {},\n ): Promise<DurableChannelMessageResult> {\n return await this.request<DurableChannelMessageResult>(\n \"/channels/messages\",\n { method: \"POST\", body: input, signal: options.signal },\n );\n }\n\n async recordChannelDelivery(\n deliveryId: string,\n input: RecordChannelDeliveryInput,\n options: { signal?: AbortSignal } = {},\n ): Promise<ChannelDeliveryRecord> {\n const response = await this.request<{ delivery: ChannelDeliveryRecord }>(\n `/channels/deliveries/${encodeURIComponent(deliveryId)}/result`,\n { method: \"POST\", body: input, signal: options.signal },\n );\n return response.delivery;\n }\n\n async getChannelStatus(\n options: { connector?: string; limit?: number; signal?: AbortSignal } = {},\n ): Promise<ChannelStatusSnapshot> {\n const { signal, ...query } = options;\n return await this.request<ChannelStatusSnapshot>(\n this.path(\"/channels/status\", query),\n { signal },\n );\n }\n\n async listPendingChannelDeliveries(\n options: { connector?: string; limit?: number; signal?: AbortSignal } = {},\n ): Promise<ChannelDeliveryRecord[]> {\n const { signal, ...query } = options;\n const response = await this.request<{\n deliveries: ChannelDeliveryRecord[];\n }>(this.path(\"/channels/deliveries/pending\", query), { signal });\n return response.deliveries;\n }\n\n /** `GET /commands?cwd=` — cwd-scoped slash command catalog for autocomplete. */\n async listCommands(\n options: ListCommandsOptions & { signal?: AbortSignal },\n ): Promise<CommandCatalogEntry[]> {\n const { signal, ...query } = options;\n const response = await this.request<{ commands: CommandCatalogEntry[] }>(\n this.path(\"/commands\", query),\n { signal },\n );\n return response.commands;\n }\n\n /** `GET /settings` */\n async getSettings(\n options: { signal?: AbortSignal } = {},\n ): Promise<Record<string, unknown>> {\n const response = await this.request<{ settings: Record<string, unknown> }>(\n \"/settings\",\n { signal: options.signal },\n );\n return response.settings;\n }\n\n /** `PATCH /settings` */\n async patchSettings(\n patch: Record<string, unknown>,\n options: { signal?: AbortSignal } = {},\n ): Promise<Record<string, unknown>> {\n const response = await this.request<{ settings: Record<string, unknown> }>(\n \"/settings\",\n {\n method: \"PATCH\",\n body: patch,\n signal: options.signal,\n },\n );\n return response.settings;\n }\n\n /** `GET /providers` */\n async listProviders(\n options: { signal?: AbortSignal } = {},\n ): Promise<ProviderInfo[]> {\n const response = await this.request<{ providers: ProviderInfo[] }>(\n \"/providers\",\n { signal: options.signal },\n );\n return response.providers;\n }\n\n async createCustomProvider(\n input: CustomProviderInput,\n options: { signal?: AbortSignal } = {},\n ): Promise<ProviderInfo> {\n const response = await this.request<{ provider: ProviderInfo }>(\n \"/providers/custom\",\n {\n method: \"POST\",\n body: input,\n signal: options.signal,\n },\n );\n return response.provider;\n }\n\n async connectCatalogProvider(\n id: string,\n apiKey: string,\n options: { signal?: AbortSignal } = {},\n ): Promise<ProviderInfo> {\n const response = await this.request<{ provider: ProviderInfo }>(\n `/providers/catalog/${encodeURIComponent(id)}/connect`,\n { method: \"POST\", body: { apiKey }, signal: options.signal },\n );\n return response.provider;\n }\n\n async disconnectCatalogProvider(\n id: string,\n options: { signal?: AbortSignal } = {},\n ): Promise<void> {\n await this.request<{ ok: true }>(\n `/providers/catalog/${encodeURIComponent(id)}/connect`,\n { method: \"DELETE\", signal: options.signal },\n );\n }\n\n async updateCustomProvider(\n id: string,\n input: CustomProviderInput,\n options: { signal?: AbortSignal } = {},\n ): Promise<ProviderInfo> {\n const response = await this.request<{ provider: ProviderInfo }>(\n `/providers/custom/${encodeURIComponent(id)}`,\n { method: \"PATCH\", body: input, signal: options.signal },\n );\n return response.provider;\n }\n\n async removeCustomProvider(\n id: string,\n options: { signal?: AbortSignal } = {},\n ): Promise<void> {\n await this.request<{ ok: true }>(\n `/providers/custom/${encodeURIComponent(id)}`,\n {\n method: \"DELETE\",\n signal: options.signal,\n },\n );\n }\n\n /** `GET /models` */\n async listModels(\n options: { signal?: AbortSignal } = {},\n ): Promise<ModelProviderInfo[]> {\n const response = await this.request<{ providers: ModelProviderInfo[] }>(\n \"/models\",\n { signal: options.signal },\n );\n return response.providers;\n }\n\n /** `GET /sessions/:id/mcp` */\n async getSessionMcp(\n sessionId: string,\n options: { signal?: AbortSignal } = {},\n ): Promise<McpServerStatus[]> {\n const response = await this.request<{ servers: McpServerStatus[] }>(\n `/sessions/${encodeURIComponent(sessionId)}/mcp`,\n { signal: options.signal },\n );\n return response.servers;\n }\n\n /** `GET /memory?cwd=` */\n async listMemory(options: {\n cwd: string;\n signal?: AbortSignal;\n }): Promise<MemoryListResponse> {\n const { signal, ...query } = options;\n return await this.request<MemoryListResponse>(this.path(\"/memory\", query), {\n signal,\n });\n }\n\n /** `GET /memory/:id?cwd=` */\n async getMemory(\n entryId: string,\n options: { cwd: string; signal?: AbortSignal },\n ): Promise<MemoryEntryRecord> {\n const { signal, cwd } = options;\n const response = await this.request<{ entry: MemoryEntryRecord }>(\n this.path(`/memory/${encodeURIComponent(entryId)}`, { cwd }),\n { signal },\n );\n return response.entry;\n }\n\n /** `POST /memory` */\n async addMemory(\n input: { cwd: string; content: string; tags?: string[] },\n options: { signal?: AbortSignal } = {},\n ): Promise<MemoryEntryRecord> {\n const response = await this.request<{ entry: MemoryEntryRecord }>(\n \"/memory\",\n {\n method: \"POST\",\n body: input,\n signal: options.signal,\n },\n );\n return response.entry;\n }\n\n /** `DELETE /memory/:id?cwd=` */\n async removeMemory(\n entryId: string,\n options: { cwd: string; signal?: AbortSignal },\n ): Promise<void> {\n const { signal, cwd } = options;\n await this.request<{ deleted: boolean }>(\n this.path(`/memory/${encodeURIComponent(entryId)}`, { cwd }),\n { method: \"DELETE\", signal },\n );\n }\n\n /** `GET /auth` */\n async getAuthStatus(\n options: { signal?: AbortSignal } = {},\n ): Promise<AuthStatus> {\n const response = await this.request<{ auth: AuthStatus }>(\"/auth\", {\n signal: options.signal,\n });\n return response.auth;\n }\n\n /** `POST /auth/login` */\n async authLogin(\n input: { provider: string; apiKey?: string },\n options: { signal?: AbortSignal } = {},\n ): Promise<{ message: string }> {\n return await this.request<{ message: string }>(\"/auth/login\", {\n method: \"POST\",\n body: input,\n signal: options.signal,\n });\n }\n\n /** `POST /auth/logout` */\n async authLogout(\n input: { provider: string },\n options: { signal?: AbortSignal } = {},\n ): Promise<{ message: string }> {\n return await this.request<{ message: string }>(\"/auth/logout\", {\n method: \"POST\",\n body: input,\n signal: options.signal,\n });\n }\n\n /** `GET /context?cwd=` */\n async getContextPreview(options: {\n cwd: string;\n signal?: AbortSignal;\n }): Promise<string> {\n const { signal, ...query } = options;\n const response = await this.request<{ report: string }>(\n this.path(\"/context\", query),\n { signal },\n );\n return response.report;\n }\n\n /** `GET /context/status?cwd=` */\n async getContextStatus(options: {\n cwd: string;\n signal?: AbortSignal;\n }): Promise<string> {\n const { signal, ...query } = options;\n const response = await this.request<{ report: string }>(\n this.path(\"/context/status\", query),\n { signal },\n );\n return response.report;\n }\n\n /** `GET /context/usage?cwd=&sessionId=&refresh=` */\n async getContextUsage(options: {\n cwd: string;\n sessionId?: string;\n refresh?: boolean;\n previousContextWindow?: number;\n signal?: AbortSignal;\n }): Promise<{ snapshot: unknown; report: string }> {\n const { signal, refresh, previousContextWindow, ...rest } = options;\n const query: Record<string, string | undefined> = {\n ...rest,\n ...(refresh !== undefined ? { refresh: refresh ? \"true\" : \"false\" } : {}),\n ...(previousContextWindow !== undefined\n ? { previousContextWindow: String(previousContextWindow) }\n : {}),\n };\n return await this.request<{ snapshot: unknown; report: string }>(\n this.path(\"/context/usage\", query),\n { signal },\n );\n }\n\n /** `POST /sessions/:id/compact` */\n async compactSession(\n sessionId: string,\n options: { signal?: AbortSignal } = {},\n ): Promise<CompactSessionResponse> {\n return await this.request<CompactSessionResponse>(\n `/sessions/${encodeURIComponent(sessionId)}/compact`,\n { method: \"POST\", signal: options.signal },\n );\n }\n\n /** `POST /sessions/:id/rewind` */\n async rewindSession(\n sessionId: string,\n input: { count?: number } = {},\n options: { signal?: AbortSignal } = {},\n ): Promise<RewindSessionResponse> {\n return await this.request<RewindSessionResponse>(\n `/sessions/${encodeURIComponent(sessionId)}/rewind`,\n { method: \"POST\", body: input, signal: options.signal },\n );\n }\n\n /** `POST /sessions/:id/remember` */\n async rememberSession(\n sessionId: string,\n options: { signal?: AbortSignal } = {},\n ): Promise<RememberSessionResponse> {\n return await this.request<RememberSessionResponse>(\n `/sessions/${encodeURIComponent(sessionId)}/remember`,\n { method: \"POST\", signal: options.signal },\n );\n }\n\n /** `POST /dream` */\n async startDream(\n input: { cwd: string; sessionId?: string; preview?: boolean },\n options: { signal?: AbortSignal } = {},\n ): Promise<StartDreamResponse> {\n return await this.request<StartDreamResponse>(\"/dream\", {\n method: \"POST\",\n body: input,\n signal: options.signal,\n });\n }\n\n /** `GET /profile` */\n async getProfileStatus(\n options: { signal?: AbortSignal } = {},\n ): Promise<string> {\n const response = await this.request<{ report: string }>(\"/profile\", {\n signal: options.signal,\n });\n return response.report;\n }\n\n /** `POST /profile/init` */\n async initProfile(options: { signal?: AbortSignal } = {}): Promise<string> {\n const response = await this.request<{ report: string }>(\"/profile/init\", {\n method: \"POST\",\n signal: options.signal,\n });\n return response.report;\n }\n\n /** `GET /output-styles` */\n async listOutputStyles(\n options: { signal?: AbortSignal } = {},\n ): Promise<OutputStyleInfo[]> {\n const response = await this.request<{ styles: OutputStyleInfo[] }>(\n \"/output-styles\",\n {\n signal: options.signal,\n },\n );\n return response.styles;\n }\n\n /** `POST /project/init` */\n async initProject(\n input: { cwd: string },\n options: { signal?: AbortSignal } = {},\n ): Promise<string> {\n const response = await this.request<{ report: string }>(\"/project/init\", {\n method: \"POST\",\n body: input,\n signal: options.signal,\n });\n return response.report;\n }\n\n /** `GET /plugins?cwd=` */\n async listPlugins(options: { cwd: string; signal?: AbortSignal }): Promise<{\n plugins: PluginInfo[];\n warnings: string[];\n }> {\n const { signal, ...query } = options;\n return await this.request<{ plugins: PluginInfo[]; warnings: string[] }>(\n this.path(\"/plugins\", query),\n { signal },\n );\n }\n\n /** `POST /plugins/:id/enable` */\n async enablePlugin(\n id: string,\n input: { cwd: string },\n options: { signal?: AbortSignal } = {},\n ): Promise<{ message: string }> {\n return await this.request<{ message: string }>(\n `/plugins/${encodeURIComponent(id)}/enable`,\n { method: \"POST\", body: input, signal: options.signal },\n );\n }\n\n /** `POST /plugins/:id/disable` */\n async disablePlugin(\n id: string,\n input: { cwd: string },\n options: { signal?: AbortSignal } = {},\n ): Promise<{ message: string }> {\n return await this.request<{ message: string }>(\n `/plugins/${encodeURIComponent(id)}/disable`,\n { method: \"POST\", body: input, signal: options.signal },\n );\n }\n\n async installLocalPlugin(input: {\n cwd: string;\n sourcePath: string;\n scope: \"user\";\n approvedPermissions: string[];\n link?: boolean;\n }): Promise<{ message: string }> {\n return await this.request<{ message: string }>(\n input.link ? \"/plugins/link-local\" : \"/plugins/install-local\",\n { method: \"POST\", body: input },\n );\n }\n\n /** `POST /plugins/archive/preview` */\n async previewPluginArchive(\n input: { cwd: string; archivePath: string },\n options: { signal?: AbortSignal } = {},\n ): Promise<PluginArchivePreview> {\n return await this.request<PluginArchivePreview>(\"/plugins/archive/preview\", {\n method: \"POST\", body: input, signal: options.signal,\n });\n }\n\n /** `POST /plugins/archive/install` */\n async installPluginArchive(\n input: { cwd: string; archivePath: string; expectedArchiveDigest: string; approvedPermissions: string[] },\n options: { signal?: AbortSignal } = {},\n ): Promise<{ message: string }> {\n return await this.request<{ message: string }>(\"/plugins/archive/install\", {\n method: \"POST\", body: input, signal: options.signal,\n });\n }\n\n async uninstallPlugin(\n id: string,\n input: { cwd: string },\n ): Promise<{ message: string }> {\n return await this.request<{ message: string }>(\n `/plugins/${encodeURIComponent(id)}`,\n { method: \"DELETE\", body: input },\n );\n }\n\n /** `POST /plugins/reload` */\n async reloadPlugins(\n input: { cwd: string },\n options: { signal?: AbortSignal } = {},\n ): Promise<ReloadPluginsResponse> {\n return await this.request<ReloadPluginsResponse>(\"/plugins/reload\", {\n method: \"POST\",\n body: input,\n signal: options.signal,\n });\n }\n\n /** `GET /skills` */\n async listSkills(\n options: { signal?: AbortSignal } = {},\n ): Promise<SkillSnapshot> {\n return await this.request<SkillSnapshot>(\"/skills\", {\n signal: options.signal,\n });\n }\n\n /** `DELETE /skills/:id` */\n async removeSkill(\n id: string,\n input: { expectedContent: string },\n options: { signal?: AbortSignal } = {},\n ): Promise<SkillSnapshot> {\n return await this.request<SkillSnapshot>(\n `/skills/${encodeURIComponent(id)}`,\n {\n method: \"DELETE\",\n body: input,\n signal: options.signal,\n },\n );\n }\n\n /** `GET /agent-personas` */\n async listAgentPersonas(\n options: { signal?: AbortSignal } = {},\n ): Promise<AgentPersonaInfo[]> {\n const response = await this.request<{ agents: AgentPersonaInfo[] }>(\n \"/agent-personas\",\n {\n signal: options.signal,\n },\n );\n return response.agents;\n }\n\n /** `GET /hooks?cwd=&sessionId=` */\n async listHooks(options: {\n cwd: string;\n sessionId?: string;\n signal?: AbortSignal;\n }): Promise<HookInfo[]> {\n const { signal, ...query } = options;\n const response = await this.request<{ hooks: HookInfo[] }>(\n this.path(\"/hooks\", query),\n { signal },\n );\n return response.hooks;\n }\n\n /** `GET /git/diff?cwd=&full=` */\n async getGitDiff(options: {\n cwd: string;\n full?: boolean;\n signal?: AbortSignal;\n }): Promise<string> {\n const { signal, cwd, full } = options;\n const response = await this.request<{ output: string }>(\n this.path(\"/git/diff\", { cwd, ...(full ? { full: \"true\" } : {}) }),\n { signal },\n );\n return response.output;\n }\n\n /** `GET /git/branch?cwd=&list=` */\n async getGitBranch(options: {\n cwd: string;\n list?: boolean;\n signal?: AbortSignal;\n }): Promise<string> {\n const { signal, cwd, list } = options;\n const response = await this.request<{ output: string }>(\n this.path(\"/git/branch\", { cwd, ...(list ? { list: \"true\" } : {}) }),\n { signal },\n );\n return response.output;\n }\n\n /** `GET /git/status?cwd=` */\n async getGitStatus(options: {\n cwd: string;\n signal?: AbortSignal;\n }): Promise<string> {\n const { signal, cwd } = options;\n const response = await this.request<{ output: string }>(\n this.path(\"/git/status\", { cwd }),\n { signal },\n );\n return response.output;\n }\n\n /** `POST /git/commit` */\n async gitCommit(\n input: { cwd: string; message: string },\n options: { signal?: AbortSignal } = {},\n ): Promise<string> {\n const response = await this.request<{ output: string }>(\"/git/commit\", {\n method: \"POST\",\n body: input,\n signal: options.signal,\n });\n return response.output;\n }\n\n /** `GET /sessions/:id/usage` */\n async getSessionUsage(\n sessionId: string,\n options: { signal?: AbortSignal } = {},\n ): Promise<SessionUsageResponse> {\n return await this.request<SessionUsageResponse>(\n `/sessions/${encodeURIComponent(sessionId)}/usage`,\n { signal: options.signal },\n );\n }\n\n /** `POST /sessions/:id/export` */\n async exportSession(\n sessionId: string,\n input: { filename?: string; json?: boolean } = {},\n options: { signal?: AbortSignal } = {},\n ): Promise<SessionExportResponse> {\n return await this.request<SessionExportResponse>(\n `/sessions/${encodeURIComponent(sessionId)}/export`,\n { method: \"POST\", body: input, signal: options.signal },\n );\n }\n\n /** `GET /sessions` */\n async listSessions(\n options: ListSessionsOptions & { signal?: AbortSignal } = {},\n ): Promise<SessionRecord[]> {\n const { signal, ...query } = options;\n const response = await this.request<{ sessions: SessionRecord[] }>(\n this.path(\"/sessions\", query),\n { signal },\n );\n return response.sessions;\n }\n\n async listProjects(\n options: ListProjectsOptions & { signal?: AbortSignal } = {},\n ): Promise<ProjectRecord[]> {\n const { signal, ...query } = options;\n const response = await this.request<{ projects: ProjectRecord[] }>(\n this.path(\"/projects\", query),\n { signal },\n );\n return response.projects;\n }\n\n async inspectProject(path: string): Promise<ProjectRecord> {\n return (\n await this.request<{ project: ProjectRecord }>(\"/projects/inspect\", {\n method: \"POST\",\n body: { path },\n })\n ).project;\n }\n\n async renameProject(projectId: string, name: string): Promise<ProjectRecord> {\n return (\n await this.request<{ project: ProjectRecord }>(\n `/projects/${encodeURIComponent(projectId)}`,\n { method: \"PATCH\", body: { name } },\n )\n ).project;\n }\n\n async setProjectPinned(\n projectId: string,\n pinned: boolean,\n ): Promise<ProjectRecord> {\n return (\n await this.request<{ project: ProjectRecord }>(\n `/projects/${encodeURIComponent(projectId)}`,\n { method: \"PATCH\", body: { pinned } },\n )\n ).project;\n }\n\n async setProjectDefaultShell(\n projectId: string,\n defaultShell: string | null,\n ): Promise<ProjectRecord> {\n return (\n await this.request<{ project: ProjectRecord }>(\n `/projects/${encodeURIComponent(projectId)}`,\n { method: \"PATCH\", body: { defaultShell } },\n )\n ).project;\n }\n\n async rebindProject(projectId: string, path: string): Promise<ProjectRecord> {\n return (\n await this.request<{ project: ProjectRecord }>(\n `/projects/${encodeURIComponent(projectId)}/rebind`,\n { method: \"POST\", body: { path } },\n )\n ).project;\n }\n\n async archiveProject(projectId: string): Promise<ProjectRecord> {\n return (\n await this.request<{ project: ProjectRecord }>(\n `/projects/${encodeURIComponent(projectId)}`,\n { method: \"DELETE\" },\n )\n ).project;\n }\n\n /** `POST /sessions` */\n async createSession(\n input: CreateClientSessionInput,\n options: { signal?: AbortSignal } = {},\n ): Promise<SessionRecord> {\n const response = await this.request<{ session: SessionRecord }>(\n \"/sessions\",\n {\n method: \"POST\",\n body: input,\n signal: options.signal,\n },\n );\n return response.session;\n }\n\n /** `GET /sessions/:id` */\n async getSession(\n sessionId: string,\n options: { signal?: AbortSignal } = {},\n ): Promise<SessionRecord> {\n const response = await this.request<{ session: SessionRecord }>(\n `/sessions/${encodeURIComponent(sessionId)}`,\n {\n signal: options.signal,\n },\n );\n return response.session;\n }\n\n /** `POST /sessions/:id/fork` */\n async forkSession(\n sessionId: string,\n input: ForkClientSessionInput = {},\n options: { signal?: AbortSignal } = {},\n ): Promise<SessionRecord> {\n const response = await this.request<{ session: SessionRecord }>(\n `/sessions/${encodeURIComponent(sessionId)}/fork`,\n {\n method: \"POST\",\n body: input,\n signal: options.signal,\n },\n );\n return response.session;\n }\n\n /** `GET /sessions/:id/state` - atomic attach snapshot plus SSE cursor. */\n async getSessionState(\n sessionId: string,\n options: { signal?: AbortSignal } = {},\n ): Promise<SessionStateSnapshot> {\n const response = await this.request<unknown>(\n `/sessions/${encodeURIComponent(sessionId)}/state`,\n {\n signal: options.signal,\n },\n );\n return decodeSessionStateSnapshot(response);\n }\n\n /** `DELETE /sessions/:id` */\n async archiveSession(\n sessionId: string,\n options: { signal?: AbortSignal } = {},\n ): Promise<SessionRecord> {\n const response = await this.request<{ session: SessionRecord }>(\n `/sessions/${encodeURIComponent(sessionId)}`,\n {\n method: \"DELETE\",\n signal: options.signal,\n },\n );\n return response.session;\n }\n\n /** `DELETE /sessions/:id/hard` */\n async deleteSession(\n sessionId: string,\n options: { signal?: AbortSignal } = {},\n ): Promise<string[]> {\n const response = await this.request<{ deletedSessionIds: string[] }>(\n `/sessions/${encodeURIComponent(sessionId)}/hard`,\n {\n method: \"DELETE\",\n signal: options.signal,\n },\n );\n return response.deletedSessionIds;\n }\n\n /** `PATCH /sessions/:id` - update title, agent, or metadata.runtime fields. */\n async updateSession(\n sessionId: string,\n input: UpdateClientSessionInput,\n options: { signal?: AbortSignal } = {},\n ): Promise<SessionRecord> {\n const response = await this.request<{ session: SessionRecord }>(\n `/sessions/${encodeURIComponent(sessionId)}`,\n {\n method: \"PATCH\",\n body: input,\n signal: options.signal,\n },\n );\n return response.session;\n }\n\n /** `GET /sessions/:id/messages` */\n async listMessages(\n sessionId: string,\n options: ListMessagesOptions & { signal?: AbortSignal } = {},\n ): Promise<SessionMessageRecord[]> {\n const { signal, ...query } = options;\n const response = await this.request<{ messages: SessionMessageRecord[] }>(\n this.path(`/sessions/${encodeURIComponent(sessionId)}/messages`, query),\n { signal },\n );\n return response.messages;\n }\n\n /** `GET /sessions/:id/parts` */\n async listMessageParts(\n sessionId: string,\n options: ListClientMessagePartsOptions & { signal?: AbortSignal } = {},\n ): Promise<SessionMessagePartRecord[]> {\n const { signal, ...query } = options;\n const response = await this.request<{ parts: SessionMessagePartRecord[] }>(\n this.path(`/sessions/${encodeURIComponent(sessionId)}/parts`, query),\n { signal },\n );\n return response.parts;\n }\n\n /** `POST /sessions/:id/prompts` — 提交用户输入并触发/排队一次 run。 */\n async admitPrompt(\n sessionId: string,\n input: AdmitClientPromptInput,\n options: { signal?: AbortSignal } = {},\n ): Promise<PromptResponse> {\n return await this.request<PromptResponse>(\n `/sessions/${encodeURIComponent(sessionId)}/prompts`,\n {\n method: \"POST\",\n body: { ...input, id: input.id ?? createPromptRequestId() },\n signal: options.signal,\n },\n );\n }\n\n /** `POST /sessions/:id/prompts/latest/edit` */\n async editLatestPrompt(\n sessionId: string,\n input: EditLatestClientPromptInput,\n options: { signal?: AbortSignal } = {},\n ): Promise<PromptResponse> {\n return await this.request<PromptResponse>(\n `/sessions/${encodeURIComponent(sessionId)}/prompts/latest/edit`,\n {\n method: \"POST\",\n body: input,\n signal: options.signal,\n },\n );\n }\n\n /** Promote one durable queued prompt into the exact active run. */\n async promoteQueuedPrompt(\n sessionId: string,\n inputId: string,\n input: PromoteQueuedClientPromptInput,\n options: { signal?: AbortSignal } = {},\n ): Promise<PromoteQueuedPromptResponse> {\n return await this.request<PromoteQueuedPromptResponse>(\n `/sessions/${encodeURIComponent(sessionId)}/prompts/${encodeURIComponent(inputId)}/promote`,\n { method: \"POST\", body: input, signal: options.signal },\n );\n }\n\n /** Cancel one durable prompt that is still waiting in the run queue. */\n async cancelQueuedPrompt(\n sessionId: string,\n inputId: string,\n input: CancelQueuedClientPromptInput,\n options: { signal?: AbortSignal } = {},\n ): Promise<CancelQueuedPromptResponse> {\n return await this.request<CancelQueuedPromptResponse>(\n `/sessions/${encodeURIComponent(sessionId)}/prompts/${encodeURIComponent(inputId)}/cancel`,\n { method: \"POST\", body: input, signal: options.signal },\n );\n }\n\n /**\n * `POST /sessions/:id/runs/:runId/resume` — 显式重放一次中断 run 的原始 prompt。\n * 不会继续旧 provider stream;服务端会创建一个带恢复溯源的新 input/run。\n */\n async resumeInterruptedRun(\n sessionId: string,\n runId: string,\n input: ResumeInterruptedRunInput = {},\n options: { signal?: AbortSignal } = {},\n ): Promise<ResumeInterruptedRunResponse> {\n return await this.request<ResumeInterruptedRunResponse>(\n `/sessions/${encodeURIComponent(sessionId)}/runs/${encodeURIComponent(runId)}/resume`,\n {\n method: \"POST\",\n body: { ...input, id: input.id ?? createPromptRequestId() },\n signal: options.signal,\n },\n );\n }\n\n /** `POST /sessions/:id/interrupt` — 中断当前/排队中的 run。 */\n async interruptSession(\n sessionId: string,\n options: { signal?: AbortSignal; expectedRunId?: string } = {},\n ): Promise<InterruptSessionResponse> {\n return await this.request<InterruptSessionResponse>(\n `/sessions/${encodeURIComponent(sessionId)}/interrupt`,\n {\n method: \"POST\",\n body: options.expectedRunId\n ? { expectedRunId: options.expectedRunId }\n : undefined,\n signal: options.signal,\n },\n );\n }\n\n /** `GET /events` — 用于 attach 时的历史 replay。 */\n async listEvents(\n options: ListEventsOptions & { signal?: AbortSignal } = {},\n ): Promise<SessionEventRecord[]> {\n const { signal, ...query } = options;\n const response = await this.request<unknown>(this.path(\"/events\", query), {\n signal,\n });\n return responseArray(response, \"events\", decodeSessionEventRecord);\n }\n\n /** `GET /permissions` */\n async listPermissions(\n options: ListPermissionsOptions & { signal?: AbortSignal } = {},\n ): Promise<PermissionRequestRecord[]> {\n const { signal, ...query } = options;\n const response = await this.request<{\n requests: PermissionRequestRecord[];\n }>(this.path(\"/permissions\", query), { signal });\n return response.requests;\n }\n\n /** `POST /permissions/:id/reply` — 批准/拒绝工具权限请求。 */\n async replyPermission(\n requestId: string,\n input: ReplyPermissionInput,\n options: { signal?: AbortSignal } = {},\n ): Promise<PermissionRequestRecord> {\n const response = await this.request<{ request: PermissionRequestRecord }>(\n `/permissions/${encodeURIComponent(requestId)}/reply`,\n {\n method: \"POST\",\n body: input,\n signal: options.signal,\n },\n );\n return response.request;\n }\n\n async getScheduledTaskStatus(\n options: { signal?: AbortSignal } = {},\n ): Promise<ScheduledTaskStatusSummary> {\n return await this.request<ScheduledTaskStatusSummary>(\"/schedules/status\", {\n signal: options.signal,\n });\n }\n\n async listScheduledTasks(\n options: {\n status?: ScheduledTaskRecord[\"status\"];\n signal?: AbortSignal;\n } = {},\n ): Promise<ScheduledTaskRecord[]> {\n const { signal, ...query } = options;\n const response = await this.request<{ tasks: ScheduledTaskRecord[] }>(\n this.path(\"/schedules/tasks\", query),\n { signal },\n );\n return response.tasks;\n }\n\n async getScheduledTask(\n id: string,\n options: { signal?: AbortSignal } = {},\n ): Promise<ScheduledTaskRecord> {\n const response = await this.request<{ task: ScheduledTaskRecord }>(\n `/schedules/tasks/${encodeURIComponent(id)}`,\n { signal: options.signal },\n );\n return response.task;\n }\n\n async createScheduledTask(\n input: CreateScheduledTaskInput,\n options: { signal?: AbortSignal } = {},\n ): Promise<ScheduledTaskRecord> {\n const response = await this.request<{ task: ScheduledTaskRecord }>(\n \"/schedules/tasks\",\n {\n method: \"POST\",\n body: input,\n signal: options.signal,\n },\n );\n return response.task;\n }\n\n async updateScheduledTask(\n id: string,\n input: UpdateScheduledTaskInput,\n options: { signal?: AbortSignal } = {},\n ): Promise<ScheduledTaskRecord> {\n const response = await this.request<{ task: ScheduledTaskRecord }>(\n `/schedules/tasks/${encodeURIComponent(id)}`,\n { method: \"PATCH\", body: input, signal: options.signal },\n );\n return response.task;\n }\n\n async removeScheduledTask(\n id: string,\n options: { signal?: AbortSignal } = {},\n ): Promise<void> {\n await this.request<{ removed: true }>(\n `/schedules/tasks/${encodeURIComponent(id)}`,\n {\n method: \"DELETE\",\n signal: options.signal,\n },\n );\n }\n\n async triggerScheduledTask(\n id: string,\n options: { signal?: AbortSignal } = {},\n ): Promise<ScheduledRunRecord> {\n const response = await this.request<{ run: ScheduledRunRecord }>(\n `/schedules/tasks/${encodeURIComponent(id)}/run`,\n { method: \"POST\", signal: options.signal },\n );\n return response.run;\n }\n\n async listScheduledRuns(\n options: {\n taskId?: string;\n unread?: boolean;\n limit?: number;\n signal?: AbortSignal;\n } = {},\n ): Promise<ScheduledRunRecord[]> {\n const { signal, ...query } = options;\n const response = await this.request<{ runs: ScheduledRunRecord[] }>(\n this.path(\"/schedules/runs\", query),\n { signal },\n );\n return response.runs;\n }\n\n async setScheduledRunUnread(\n id: string,\n unread: boolean,\n options: { signal?: AbortSignal } = {},\n ): Promise<ScheduledRunRecord> {\n const response = await this.request<{ run: ScheduledRunRecord }>(\n `/schedules/runs/${encodeURIComponent(id)}/read`,\n { method: \"PATCH\", body: { unread }, signal: options.signal },\n );\n return response.run;\n }\n\n async createTerminal(\n input: TerminalCreateRequest,\n options: { signal?: AbortSignal } = {},\n ): Promise<TerminalSessionInfo> {\n const response = await this.request<unknown>(\"/terminals\", {\n method: \"POST\",\n body: input,\n signal: options.signal,\n });\n return decodeTerminalSessionInfo(responseField(response, \"terminal\"));\n }\n\n async listJobs(options: {\n sessionId: string;\n kinds?: JobKind[];\n statuses?: JobStatus[];\n startedAfter?: number;\n startedBefore?: number;\n updatedAfter?: number;\n updatedBefore?: number;\n includeFinished?: boolean;\n limit?: number;\n signal?: AbortSignal;\n }): Promise<JobSnapshot[]> {\n const { signal, kinds, statuses, includeFinished, ...query } = options;\n const response = await this.request<unknown>(\n this.path(\"/jobs\", {\n ...query,\n ...(kinds ? { kinds: kinds.join(\",\") } : {}),\n ...(statuses ? { statuses: statuses.join(\",\") } : {}),\n ...(includeFinished !== undefined\n ? { includeFinished: String(includeFinished) }\n : {}),\n }),\n { signal },\n );\n return responseArray(response, \"jobs\", decodeJobSnapshot);\n }\n\n async createBackgroundShell(\n input: CreateBackgroundShellInput,\n options: { signal?: AbortSignal } = {},\n ): Promise<CreateBackgroundShellResult> {\n return await this.request<CreateBackgroundShellResult>(\n \"/background-shells\",\n {\n method: \"POST\",\n body: input,\n signal: options.signal,\n },\n );\n }\n\n async readJob(\n jobId: string,\n options: {\n sessionId: string;\n after?: number;\n maxChars?: number;\n signal?: AbortSignal;\n },\n ): Promise<JobReadResult> {\n const { signal, ...query } = options;\n const response = await this.request<unknown>(\n this.path(`/jobs/${encodeURIComponent(jobId)}`, query),\n { signal },\n );\n return decodeJobReadResult(response);\n }\n\n async waitJob(\n jobId: string,\n input: {\n sessionId: string;\n timeoutMs?: number;\n after?: number;\n maxChars?: number;\n },\n options: { signal?: AbortSignal } = {},\n ): Promise<JobWaitResult> {\n const response = await this.request<unknown>(\n `/jobs/${encodeURIComponent(jobId)}/wait`,\n {\n method: \"POST\",\n body: input,\n signal: options.signal,\n },\n );\n return decodeJobWaitResult(response);\n }\n\n async sendJob(\n jobId: string,\n input: { sessionId: string; data: string },\n options: { signal?: AbortSignal } = {},\n ): Promise<void> {\n await this.request(`/jobs/${encodeURIComponent(jobId)}/input`, {\n method: \"POST\",\n body: input,\n signal: options.signal,\n });\n }\n\n async cancelJob(\n jobId: string,\n input: { sessionId: string; reason?: string },\n options: { signal?: AbortSignal } = {},\n ): Promise<JobSnapshot> {\n const response = await this.request<unknown>(\n `/jobs/${encodeURIComponent(jobId)}/cancel`,\n { method: \"POST\", body: input, signal: options.signal },\n );\n return decodeJobSnapshot(responseField(response, \"snapshot\"));\n }\n\n async listTerminals(\n options: {\n projectId?: string;\n sessionId?: string;\n source?: TerminalSource;\n signal?: AbortSignal;\n } = {},\n ): Promise<TerminalSessionInfo[]> {\n const { signal, ...query } = options;\n const response = await this.request<unknown>(\n this.path(\"/terminals\", query),\n { signal },\n );\n return responseArray(response, \"terminals\", decodeTerminalSessionInfo);\n }\n\n async getTerminal(\n terminalId: string,\n options: { signal?: AbortSignal } = {},\n ): Promise<TerminalSessionInfo> {\n const response = await this.request<unknown>(\n `/terminals/${encodeURIComponent(terminalId)}`,\n { signal: options.signal },\n );\n return decodeTerminalSessionInfo(responseField(response, \"terminal\"));\n }\n\n async readTerminal(\n terminalId: string,\n options: { signal?: AbortSignal } = {},\n ): Promise<TerminalReadResult> {\n const response = await this.request<unknown>(\n `/terminals/${encodeURIComponent(terminalId)}/output`,\n { signal: options.signal },\n );\n return decodeTerminalReadResult(responseField(response, \"snapshot\"));\n }\n\n async writeTerminal(\n input: TerminalWriteRequest,\n options: { signal?: AbortSignal } = {},\n ): Promise<void> {\n await this.request<{ written: true }>(\n `/terminals/${encodeURIComponent(input.terminalId)}/input`,\n { method: \"POST\", body: { data: input.data }, signal: options.signal },\n );\n }\n\n async resizeTerminal(\n input: TerminalResizeRequest,\n options: { signal?: AbortSignal } = {},\n ): Promise<void> {\n await this.request<{ resized: true }>(\n `/terminals/${encodeURIComponent(input.terminalId)}/resize`,\n {\n method: \"POST\",\n body: { cols: input.cols, rows: input.rows },\n signal: options.signal,\n },\n );\n }\n\n async signalTerminal(\n terminalId: string,\n signal: TerminalSignal,\n options: { signal?: AbortSignal } = {},\n ): Promise<void> {\n await this.request<{ signaled: true }>(\n `/terminals/${encodeURIComponent(terminalId)}/signal`,\n { method: \"POST\", body: { signal }, signal: options.signal },\n );\n }\n\n async closeTerminal(\n terminalId: string,\n options: { signal?: AbortSignal } = {},\n ): Promise<void> {\n await this.request<{ removed: true }>(\n `/terminals/${encodeURIComponent(terminalId)}`,\n {\n method: \"DELETE\",\n signal: options.signal,\n },\n );\n }\n\n streamTerminalEvents(\n options: { signal?: AbortSignal } = {},\n ): AsyncIterable<TerminalEvent> {\n return streamServerSentEvents(async () => {\n const response = await this.fetchImpl(\n `${this.baseUrl}/terminals/stream`,\n {\n headers: this.headers(),\n signal: options.signal,\n },\n );\n if (!response.ok) await this.throwResponseError(response);\n if (!response.body)\n throw new Error(\"Terminal event stream response has no body\");\n return response.body;\n }, decodeTerminalEvent);\n }\n\n streamEvents(\n options: EventSyncOptions = {},\n ): AsyncIterable<SessionEventRecord> {\n return streamServerSentEvents(async () => {\n const query = {\n cursor: options.cursor,\n sessionId: options.sessionId,\n };\n const response = await this.fetchImpl(\n `${this.baseUrl}${this.path(\"/events/stream\", query)}`,\n {\n headers: this.headers(),\n signal: options.signal,\n },\n );\n if (!response.ok) await this.throwResponseError(response);\n if (!response.body) throw new Error(\"Event stream response has no body\");\n return response.body;\n }, decodeSessionEventRecord);\n }\n\n private async request<T>(\n path: string,\n options: {\n method?: string;\n body?: unknown;\n signal?: AbortSignal;\n auth?: boolean;\n } = {},\n ): Promise<T> {\n const response = await this.fetchImpl(`${this.baseUrl}${path}`, {\n method: options.method ?? \"GET\",\n headers: this.headers(options.body !== undefined, options.auth ?? true),\n body:\n options.body === undefined ? undefined : JSON.stringify(options.body),\n signal: options.signal,\n });\n if (!response.ok) await this.throwResponseError(response);\n return (await response.json()) as T;\n }\n\n private headers(json = false, auth = true): Record<string, string> {\n return {\n ...(auth && this.token ? { authorization: `Bearer ${this.token}` } : {}),\n ...(json ? { \"content-type\": \"application/json\" } : {}),\n };\n }\n\n /** 拼 query;跳过 undefined / null / false。 */\n private path(pathname: string, query: Record<string, unknown> = {}): string {\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries(query)) {\n if (value === undefined || value === null || value === false) continue;\n params.set(key, String(value));\n }\n const qs = params.toString();\n return qs ? `${pathname}?${qs}` : pathname;\n }\n\n private async throwResponseError(response: Response): Promise<never> {\n let body: unknown;\n try {\n body = await response.json();\n } catch {\n body = await response.text().catch(() => \"\");\n }\n const message =\n body &&\n typeof body === \"object\" &&\n \"error\" in body &&\n typeof body.error === \"string\"\n ? body.error\n : body &&\n typeof body === \"object\" &&\n \"message\" in body &&\n typeof body.message === \"string\"\n ? body.message\n : `OpenHarness API request failed with ${response.status}`;\n throw new OpenHarnessApiError(message, response.status, body);\n }\n}\n\nfunction isReadableStream(value: unknown): value is ReadableStream<Uint8Array> {\n return (\n typeof ReadableStream !== \"undefined\" && value instanceof ReadableStream\n );\n}\n\nfunction attachmentRangeHeader(\n range: DownloadAttachmentOptions[\"range\"],\n): string | undefined {\n if (!range) return undefined;\n const { start, end, suffixBytes } = range;\n if (suffixBytes !== undefined) {\n if (start !== undefined || end !== undefined) {\n throw new Error(\"suffixBytes cannot be combined with start or end\");\n }\n assertPositiveSafeInteger(suffixBytes, \"suffixBytes\");\n return `bytes=-${suffixBytes}`;\n }\n if (start === undefined && end === undefined) return undefined;\n if (start === undefined) {\n throw new Error(\"range start is required when end is provided\");\n }\n assertNonNegativeSafeInteger(start, \"start\");\n if (end === undefined) return `bytes=${start}-`;\n assertNonNegativeSafeInteger(end, \"end\");\n if (end < start) throw new Error(\"range end must not be less than start\");\n return `bytes=${start}-${end}`;\n}\n\nfunction assertNonNegativeSafeInteger(value: number, field: string): void {\n if (!Number.isSafeInteger(value) || value < 0) {\n throw new Error(`${field} must be a non-negative safe integer`);\n }\n}\n\nfunction assertPositiveSafeInteger(value: number, field: string): void {\n if (!Number.isSafeInteger(value) || value < 1) {\n throw new Error(`${field} must be a positive safe integer`);\n }\n}\n\n/**\n * 将 SSE 字节流解析为 `SessionEventRecord` 异步迭代。\n * `open` 负责建立连接并返回 response body,便于重试或注入。\n */\nexport async function* streamServerSentEvents<T = SessionEventRecord>(\n open: () => Promise<ReadableStream<Uint8Array>>,\n decode: (value: unknown) => T = (value) => value as T,\n): AsyncIterable<T> {\n const reader = (await open()).getReader();\n const decoder = new TextDecoder();\n let buffer = \"\";\n try {\n while (true) {\n const chunk = await reader.read();\n if (chunk.done) break;\n buffer += decoder.decode(chunk.value, { stream: true });\n // SSE 事件以空行分隔\n const frames = buffer.split(/\\r?\\n\\r?\\n/);\n buffer = frames.pop() ?? \"\";\n for (const frame of frames) {\n const event = parseSseFrame(frame);\n if (event !== undefined) yield decode(event);\n }\n }\n buffer += decoder.decode();\n const event = parseSseFrame(buffer);\n if (event !== undefined) yield decode(event);\n } finally {\n reader.releaseLock();\n }\n}\n\n/** 解析单个 SSE frame 的 `data:` 行,得到事件 JSON。 */\nfunction parseSseFrame(frame: string): unknown | undefined {\n let data = \"\";\n for (const line of frame.split(/\\r?\\n/)) {\n if (!line || line.startsWith(\":\")) continue;\n if (line.startsWith(\"data:\")) data += line.slice(5).trimStart();\n }\n if (!data) return undefined;\n return JSON.parse(data) as unknown;\n}\n\nexport class IncompatibleProtocolError extends Error {\n constructor(\n readonly capabilities: ServerCapabilities,\n message: string,\n ) {\n super(message);\n this.name = \"IncompatibleProtocolError\";\n }\n}\n",
12
+ "import { parseAttachmentLimits, type AttachmentLimits } from \"./attachment.js\";\n\nexport interface ProtocolVersion {\n version: number;\n}\n\nexport interface ServerCapabilities {\n serverVersion: string;\n protocol: ProtocolVersion;\n features: Record<string, number>;\n attachments?: AttachmentTransferCapabilities;\n agentEnvironments?: AgentEnvironmentCapabilities;\n}\n\nexport interface AgentEnvironmentCapabilities {\n native: true;\n wsl: boolean;\n}\n\nexport type AttachmentUploadMode = \"single\" | \"resumable\";\n\nexport interface AttachmentTransferCapabilities {\n limits: AttachmentLimits;\n uploadModes: readonly [\"single\"] | readonly [\"single\", \"resumable\"];\n}\n\nexport interface ClientProtocolSupport {\n version: number;\n}\n\nexport interface ProtocolCompatibility {\n compatible: boolean;\n reason?: string;\n}\n\nexport function parseServerCapabilities(value: unknown): ServerCapabilities {\n if (!isRecord(value))\n throw new Error(\"Capabilities response must be an object\");\n if (typeof value.serverVersion !== \"string\")\n throw new Error(\"serverVersion must be a string\");\n if (!isRecord(value.protocol)) throw new Error(\"protocol must be an object\");\n const version = positiveInteger(value.protocol.version, \"protocol.version\");\n if (!isRecord(value.features)) throw new Error(\"features must be an object\");\n const features: Record<string, number> = {};\n for (const [name, version] of Object.entries(value.features)) {\n features[name] = positiveInteger(version, `features.${name}`);\n }\n const attachments = parseAttachmentTransferCapabilities(value.attachments);\n const agentEnvironments = parseAgentEnvironmentCapabilities(\n value.agentEnvironments,\n );\n return {\n serverVersion: value.serverVersion,\n protocol: { version },\n features,\n ...(attachments ? { attachments } : {}),\n ...(agentEnvironments ? { agentEnvironments } : {}),\n };\n}\n\nfunction parseAgentEnvironmentCapabilities(\n value: unknown,\n): AgentEnvironmentCapabilities | undefined {\n if (value === undefined) return undefined;\n if (\n !isRecord(value) ||\n value.native !== true ||\n typeof value.wsl !== \"boolean\"\n ) {\n throw new Error(\n \"agentEnvironments must contain native=true and a boolean wsl value\",\n );\n }\n return { native: true, wsl: value.wsl };\n}\n\nexport function checkProtocolCompatibility(\n server: ServerCapabilities,\n client: ClientProtocolSupport,\n): ProtocolCompatibility {\n if (client.version !== server.protocol.version) {\n return {\n compatible: false,\n reason: `Client protocol ${client.version} does not match server protocol ${server.protocol.version}`,\n };\n }\n return { compatible: true };\n}\n\nexport function supportsFeature(\n capabilities: ServerCapabilities,\n feature: string,\n minimumVersion = 1,\n): boolean {\n return (capabilities.features[feature] ?? 0) >= minimumVersion;\n}\n\nfunction positiveInteger(value: unknown, field: string): number {\n if (!Number.isInteger(value) || Number(value) < 1)\n throw new Error(`${field} must be a positive integer`);\n return Number(value);\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction parseAttachmentTransferCapabilities(\n value: unknown,\n): AttachmentTransferCapabilities | undefined {\n if (value === undefined) return undefined;\n if (!isRecord(value)) throw new Error(\"attachments must be an object\");\n if (!Array.isArray(value.uploadModes) || value.uploadModes.length === 0) {\n throw new Error(\"attachments.uploadModes must be a non-empty array\");\n }\n if (\n value.uploadModes[0] !== \"single\" ||\n value.uploadModes.length > 2 ||\n (value.uploadModes.length === 2 && value.uploadModes[1] !== \"resumable\")\n ) {\n throw new Error(\n 'attachments.uploadModes must be [\"single\"] or [\"single\", \"resumable\"]',\n );\n }\n const uploadModes = value.uploadModes as [\"single\"] | [\"single\", \"resumable\"];\n return {\n limits: parseAttachmentLimits(value.limits),\n uploadModes,\n };\n}\n",
13
+ "import type { AdmitPromptAttachmentInput } from \"./session.js\";\nimport type { SessionUserInputItem } from \"./session-input-items.js\";\nimport { parsePromptAttachments, parseSessionInputItems, ProtocolValidationError } from \"./requests.js\";\n\nexport type GoalStatus = \"active\" | \"waiting_user\" | \"blocked\" | \"paused\" | \"completed\" | \"cancelled\";\n\nexport type GoalAction = \"pause\" | \"resume\" | \"cancel\" | \"confirm\";\n\nexport type GoalWait =\n | {\n kind: \"user\";\n questionId: string;\n question: string;\n replyInputId?: string;\n }\n | { kind: \"approval\"; permissionRequestId: string }\n | { kind: \"external\"; handleId: string; runId: string; deadlineAt: number };\n\nexport interface GoalEvidenceRef {\n goalId: string;\n revision: number;\n runId: string;\n messagePartId: string;\n criterion: string;\n}\n\nexport interface GoalRequirementAssessment {\n requirement: string;\n source: string;\n status: \"satisfied\" | \"incomplete\" | \"needs_user\";\n evidenceRefs: GoalEvidenceRef[];\n}\n\nexport interface GoalProgressAssessment {\n kind: \"progress\" | \"waiting\" | \"no_progress\";\n summary: string;\n blockerKey?: string;\n}\n\nexport interface SessionGoal {\n id: string;\n sessionId: string;\n objective: string;\n revision: number;\n status: GoalStatus;\n maxAutoTurns: number;\n autoTurnsUsed: number;\n noProgressCount: number;\n blockerKey?: string;\n currentRunId?: string;\n reason?: string;\n wait?: GoalWait;\n evidence: string[];\n assessment?: GoalAssessment;\n createdAt: number;\n updatedAt: number;\n}\n\nexport interface CreateSessionGoalInput {\n requestId: string;\n objective: string;\n maxAutoTurns?: number;\n items?: SessionUserInputItem[];\n attachments?: AdmitPromptAttachmentInput[];\n}\n\nexport interface UpdateSessionGoalInput {\n requestId: string;\n expectedRevision: number;\n objective: string;\n items?: SessionUserInputItem[];\n attachments?: AdmitPromptAttachmentInput[];\n}\n\nexport interface GoalActionInput {\n requestId: string;\n expectedRevision: number;\n action: GoalAction;\n additionalAutoTurns?: number;\n questionId?: string;\n response?: string;\n}\n\nexport interface GoalAssessment {\n goalId: string;\n revision: number;\n runId: string;\n decision: \"continue\" | \"complete\" | \"waiting_user\" | \"blocked\";\n progress: string;\n progressAssessment: GoalProgressAssessment;\n evidence: string[];\n evidenceRefs: GoalEvidenceRef[];\n requirements?: GoalRequirementAssessment[];\n remainingWork?: string[];\n nextStep?: string;\n reason?: string;\n wait?: GoalWait;\n}\n\nexport const DEFAULT_GOAL_AUTO_TURNS = 20;\nexport const MAX_GOAL_AUTO_TURNS = 1_000;\nexport const MAX_GOAL_OBJECTIVE_CHARS = 32_000;\n\nexport function parseCreateSessionGoalInput(value: unknown): CreateSessionGoalInput {\n const record = goalRecord(value);\n return {\n requestId: requiredGoalString(record.requestId, \"requestId\", 128),\n objective: requiredGoalString(record.objective, \"objective\", MAX_GOAL_OBJECTIVE_CHARS),\n ...(record.maxAutoTurns === undefined\n ? {}\n : {\n maxAutoTurns: goalPositiveInteger(record.maxAutoTurns, \"maxAutoTurns\"),\n }),\n ...parseGoalContent(record),\n };\n}\n\nexport function parseUpdateSessionGoalInput(value: unknown): UpdateSessionGoalInput {\n const record = goalRecord(value);\n return {\n requestId: requiredGoalString(record.requestId, \"requestId\", 128),\n expectedRevision: goalNonNegativeInteger(record.expectedRevision, \"expectedRevision\"),\n objective: requiredGoalString(record.objective, \"objective\", MAX_GOAL_OBJECTIVE_CHARS),\n ...parseGoalContent(record),\n };\n}\n\nexport function parseGoalActionInput(value: unknown): GoalActionInput {\n const record = goalRecord(value);\n if (record.action !== \"pause\" && record.action !== \"resume\" && record.action !== \"cancel\" && record.action !== \"confirm\") {\n throw new ProtocolValidationError(\"invalid_goal_action\", \"action\");\n }\n if (record.action !== \"resume\" && (record.additionalAutoTurns !== undefined || record.response !== undefined)) {\n throw new ProtocolValidationError(\"Only resume accepts additionalAutoTurns or response\", \"action\");\n }\n if (record.action === \"confirm\") requiredGoalString(record.questionId, \"questionId\", 256);\n if ((record.action === \"pause\" || record.action === \"cancel\") && record.questionId !== undefined) {\n throw new ProtocolValidationError(\"This action does not answer a question\", \"questionId\");\n }\n return {\n requestId: requiredGoalString(record.requestId, \"requestId\", 128),\n expectedRevision: goalNonNegativeInteger(record.expectedRevision, \"expectedRevision\"),\n action: record.action,\n ...(record.questionId === undefined\n ? {}\n : {\n questionId: requiredGoalString(record.questionId, \"questionId\", 256),\n }),\n ...(record.response === undefined\n ? {}\n : {\n response: requiredGoalString(record.response, \"response\", MAX_GOAL_OBJECTIVE_CHARS),\n }),\n ...(record.additionalAutoTurns === undefined\n ? {}\n : {\n additionalAutoTurns: goalPositiveInteger(record.additionalAutoTurns, \"additionalAutoTurns\"),\n }),\n };\n}\n\nfunction goalRecord(value: unknown): Record<string, unknown> {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) throw new ProtocolValidationError(\"invalid_goal_input\", \"goal\");\n return value as Record<string, unknown>;\n}\n\nfunction requiredGoalString(value: unknown, field: string, max: number): string {\n if (typeof value !== \"string\" || !value.trim() || /[\\u0000-\\u0008\\u000B\\u000C\\u000E-\\u001F\\u007F]/.test(value)) throw new ProtocolValidationError(`invalid_goal_${field}`, field);\n const normalized = value.trim();\n if (normalized.length > max) throw new ProtocolValidationError(`goal_${field}_limit_exceeded`, field);\n return normalized;\n}\n\nfunction goalNonNegativeInteger(value: unknown, field: string): number {\n if (!Number.isSafeInteger(value) || (value as number) < 0) throw new ProtocolValidationError(`invalid_goal_${field}`, field);\n return value as number;\n}\n\nfunction goalPositiveInteger(value: unknown, field: string): number {\n const integer = goalNonNegativeInteger(value, field);\n if (integer < 1 || integer > MAX_GOAL_AUTO_TURNS) throw new ProtocolValidationError(`invalid_goal_${field}`, field);\n return integer;\n}\nfunction parseGoalContent(record: Record<string, unknown>): Pick<CreateSessionGoalInput, \"items\" | \"attachments\"> {\n return {\n ...(record.items === undefined ? {} : { items: parseSessionInputItems(record.items) }),\n ...(record.attachments === undefined ? {} : { attachments: parsePromptAttachments(record.attachments) }),\n };\n}\n\n/** The caller supplies the trusted run identity; model input never sets it. */\nexport function parseGoalAssessment(value: unknown, binding: Pick<GoalAssessment, \"goalId\" | \"revision\" | \"runId\">): GoalAssessment {\n const record = goalRecord(value);\n const decision = record.decision;\n if (decision !== \"continue\" && decision !== \"complete\" && decision !== \"waiting_user\" && decision !== \"blocked\") {\n throw new ProtocolValidationError(\"invalid_goal_decision\", \"decision\");\n }\n if (!Array.isArray(record.evidence) || record.evidence.length > 32) throw new ProtocolValidationError(\"invalid_goal_evidence\", \"evidence\");\n const refs = record.evidenceRefs ?? [];\n if (!Array.isArray(refs) || refs.length > 32) throw new ProtocolValidationError(\"invalid_goal_evidence_refs\", \"evidenceRefs\");\n const savedWait = record.wait && typeof record.wait === \"object\" && !Array.isArray(record.wait) ? (record.wait as Record<string, unknown>) : undefined;\n const questionValue = record.question ?? (savedWait?.kind === \"user\" ? savedWait.question : undefined);\n const question = questionValue === undefined ? undefined : requiredGoalString(questionValue, \"question\", 4000);\n const progressAssessment = parseGoalProgressAssessment(record.progressAssessment);\n if ((decision === \"blocked\" || progressAssessment.kind === \"no_progress\") && !progressAssessment.blockerKey) {\n throw new ProtocolValidationError(\"goal_no_progress_requires_blocker_key\", \"progressAssessment\");\n }\n const requirements = parseGoalRequirements(record.requirements, binding);\n const remainingWork = parseGoalTextArray(record.remainingWork, \"remainingWork\");\n if (decision === \"complete\") {\n if (!requirements?.length) throw new ProtocolValidationError(\"goal_complete_requires_requirements\", \"requirements\");\n }\n const externalWait =\n progressAssessment.kind === \"waiting\" && savedWait?.kind === \"external\"\n ? {\n kind: \"external\" as const,\n handleId: requiredGoalString(savedWait.handleId, \"handleId\", 256),\n runId: binding.runId,\n deadlineAt: goalPositiveTimestamp(savedWait.deadlineAt, \"deadlineAt\"),\n }\n : undefined;\n return {\n ...binding,\n decision,\n progress: requiredGoalString(record.progress, \"progress\", 4000),\n progressAssessment,\n evidence: record.evidence.map((text) => requiredGoalString(text, \"evidence\", 4000)),\n evidenceRefs: refs.map((value) => {\n const ref = goalRecord(value);\n return {\n ...binding,\n messagePartId: requiredGoalString(ref.messagePartId, \"messagePartId\", 256),\n criterion: requiredGoalString(ref.criterion, \"criterion\", 4000),\n };\n }),\n ...(requirements === undefined ? {} : { requirements }),\n ...(remainingWork === undefined ? {} : { remainingWork }),\n ...(record.nextStep === undefined ? {} : { nextStep: requiredGoalString(record.nextStep, \"nextStep\", 4000) }),\n ...(record.reason === undefined ? {} : { reason: requiredGoalString(record.reason, \"reason\", 4000) }),\n ...(externalWait ? { wait: externalWait } : {}),\n ...(decision === \"waiting_user\"\n ? {\n wait: {\n kind: \"user\" as const,\n questionId: `goal-question-${binding.runId}`,\n question: question ?? \"请补充继续目标所需的信息。\",\n },\n }\n : {}),\n };\n}\n\nfunction goalPositiveTimestamp(value: unknown, field: string): number {\n if (!Number.isSafeInteger(value) || (value as number) <= 0) throw new ProtocolValidationError(`invalid_goal_${field}`, field);\n return value as number;\n}\n\nfunction parseGoalProgressAssessment(value: unknown): GoalProgressAssessment {\n const record = goalRecord(value);\n if (record.kind !== \"progress\" && record.kind !== \"waiting\" && record.kind !== \"no_progress\") {\n throw new ProtocolValidationError(\"invalid_goal_progress_kind\", \"progressAssessment\");\n }\n return {\n kind: record.kind,\n summary: requiredGoalString(record.summary, \"progressSummary\", 4000),\n ...(record.blockerKey === undefined\n ? {}\n : {\n blockerKey: requiredGoalString(record.blockerKey, \"blockerKey\", 256),\n }),\n };\n}\n\nfunction parseGoalTextArray(value: unknown, field: string): string[] | undefined {\n if (value === undefined) return undefined;\n if (!Array.isArray(value) || value.length > 64) throw new ProtocolValidationError(`invalid_goal_${field}`, field);\n return value.map((item) => requiredGoalString(item, field, 4000));\n}\n\nfunction parseGoalRequirements(value: unknown, binding: Pick<GoalAssessment, \"goalId\" | \"revision\" | \"runId\">): GoalRequirementAssessment[] | undefined {\n if (value === undefined) return undefined;\n if (!Array.isArray(value) || value.length > 64) throw new ProtocolValidationError(\"invalid_goal_requirements\", \"requirements\");\n return value.map((item) => {\n const record = goalRecord(item);\n if (record.status !== \"satisfied\" && record.status !== \"incomplete\" && record.status !== \"needs_user\") {\n throw new ProtocolValidationError(\"invalid_goal_requirement_status\", \"requirements\");\n }\n const rawRefs = record.evidenceRefs ?? [];\n if (!Array.isArray(rawRefs) || rawRefs.length > 32) throw new ProtocolValidationError(\"invalid_goal_requirement_evidence_refs\", \"requirements\");\n return {\n requirement: requiredGoalString(record.requirement, \"requirement\", 4000),\n source: requiredGoalString(record.source, \"source\", 4000),\n status: record.status,\n evidenceRefs: rawRefs.map((value) => {\n const ref = goalRecord(value);\n return {\n ...binding,\n messagePartId: requiredGoalString(ref.messagePartId, \"messagePartId\", 256),\n criterion: requiredGoalString(ref.criterion, \"criterion\", 4000),\n };\n }),\n };\n });\n}\n",
14
+ "export * from \"./session.js\";\nexport * from \"./runtime-config.js\";\nexport * from \"./requests.js\";\nexport * from \"./job.js\";\nexport * from \"./terminal.js\";\nexport * from \"./serialization.js\";\nexport * from \"./channel.js\";\nexport * from \"./capabilities.js\";\nexport * from \"./attachment.js\";\nexport * from \"./session-input-items.js\";\nexport * from \"./session-goals.js\";\n",
15
+ "/**\n * daemon HTTP/SSE 客户端。\n *\n * 包装 `@openharness/server` 的 REST 路由与 `/events/stream` SSE;\n * 不含本地状态归并(见 `reducer.ts` / `sync.ts`)。\n */\n\nimport type {\n AdmitClientPromptInput,\n CommandCatalogEntry,\n CreateClientSessionInput,\n EditLatestClientPromptInput,\n CancelQueuedClientPromptInput,\n CancelQueuedPromptResponse,\n EventSyncOptions,\n ForkClientSessionInput,\n InterruptSessionResponse,\n ListClientMessagePartsOptions,\n ListCommandsOptions,\n ListEventsOptions,\n ListMessagesOptions,\n ListPermissionsOptions,\n ListSessionsOptions,\n ListProjectsOptions,\n ProjectRecord,\n AgentPersonaInfo,\n AuthStatus,\n CompactSessionResponse,\n CreateBackgroundShellInput,\n CreateBackgroundShellResult,\n CustomProviderInput,\n CreateScheduledTaskInput,\n HookInfo,\n ReloadPluginsResponse,\n RewindSessionResponse,\n McpServerStatus,\n MemoryEntryRecord,\n MemoryListResponse,\n ModelProviderInfo,\n OpenHarnessClientOptions,\n OpenHarnessServerHealth,\n PermissionRequestRecord,\n PluginInfo,\n PluginArchivePreview,\n SkillSnapshot,\n PromoteQueuedClientPromptInput,\n PromoteQueuedPromptResponse,\n PromptResponse,\n ResumeInterruptedRunInput,\n ResumeInterruptedRunResponse,\n ProviderInfo,\n OutputStyleInfo,\n RememberSessionResponse,\n ScheduledRunRecord,\n ScheduledTaskRecord,\n ScheduledTaskStatusSummary,\n ReplyPermissionInput,\n SessionEventRecord,\n SessionExportResponse,\n SessionMessagePartRecord,\n SessionMessageRecord,\n SessionRecord,\n SessionStateSnapshot,\n SessionUsageResponse,\n StartDreamResponse,\n UpdateClientSessionInput,\n UpdateScheduledTaskInput,\n UploadAttachmentInput,\n DownloadAttachmentOptions,\n AttachmentAssetRecord,\n AttachmentStorageGcResult,\n AttachmentStorageRepairResult,\n AttachmentStorageReport,\n} from \"../types/index.js\";\nimport type { CreateSessionGoalInput, GoalActionInput, SessionGoal, UpdateSessionGoalInput } from \"@openharness/protocol\";\nimport type {\n JobKind,\n JobReadResult,\n JobSnapshot,\n JobStatus,\n JobWaitResult,\n TerminalCreateRequest,\n TerminalEvent,\n TerminalReadResult,\n TerminalResizeRequest,\n TerminalSessionInfo,\n TerminalSignal,\n TerminalSource,\n TerminalWriteRequest,\n DurableChannelMessageInput,\n DurableChannelMessageResult,\n RecordChannelDeliveryInput,\n ChannelDeliveryRecord,\n ChannelStatusSnapshot,\n ClientProtocolSupport,\n ServerCapabilities,\n} from \"@openharness/protocol\";\nimport {\n checkProtocolCompatibility,\n decodeJobReadResult,\n decodeJobSnapshot,\n decodeJobWaitResult,\n decodeSessionEventRecord,\n decodeSessionStateSnapshot,\n decodeTerminalEvent,\n decodeTerminalReadResult,\n decodeTerminalSessionInfo,\n ProtocolDataError,\n parseServerCapabilities,\n parseAttachmentAssetRecord,\n} from \"@openharness/protocol\";\n\nlet promptRequestCounter = 0;\n\nfunction responseField(value: unknown, field: string): unknown {\n if (!value || typeof value !== \"object\" || Array.isArray(value)) {\n throw new ProtocolDataError(\"Response body must be an object\");\n }\n if (!(field in value)) {\n throw new ProtocolDataError(`Response body is missing ${field}`, field);\n }\n return (value as Record<string, unknown>)[field];\n}\n\nfunction responseArray<T>(\n value: unknown,\n field: string,\n decode: (item: unknown) => T,\n): T[] {\n const items = responseField(value, field);\n if (!Array.isArray(items)) {\n throw new ProtocolDataError(`Response ${field} must be an array`, field);\n }\n return items.map(decode);\n}\n\n/** Normalize a daemon base URL without accepting credentials or request fragments. */\nexport function normalizeDaemonBaseUrl(value: string): string {\n const raw = value.trim();\n if (!raw) throw new Error(\"Daemon URL is required\");\n\n let url: URL;\n try {\n url = new URL(raw);\n } catch {\n throw new Error(\"Daemon URL must be an absolute http or https URL\");\n }\n if (url.protocol !== \"http:\" && url.protocol !== \"https:\") {\n throw new Error(\"Daemon URL must use http or https\");\n }\n if (url.username || url.password) {\n throw new Error(\n \"Daemon URL must not contain credentials; use a bearer token instead\",\n );\n }\n if (url.search || url.hash) {\n throw new Error(\n \"Daemon URL must not contain query parameters or a fragment\",\n );\n }\n\n const pathname = url.pathname.replace(/\\/+$/, \"\");\n return `${url.origin}${pathname === \"/\" ? \"\" : pathname}`;\n}\n\n/** Generate a caller-stable id for one prompt admission attempt. */\nexport function createPromptRequestId(): string {\n if (typeof globalThis.crypto?.randomUUID === \"function\")\n return globalThis.crypto.randomUUID();\n promptRequestCounter += 1;\n return `prompt-${Date.now().toString(36)}-${promptRequestCounter.toString(36)}`;\n}\n\n/** HTTP API 非 2xx 时抛出;携带 status 与原始响应体。 */\nexport class OpenHarnessApiError extends Error {\n constructor(\n message: string,\n readonly status: number,\n readonly body: unknown,\n ) {\n super(message);\n this.name = \"OpenHarnessApiError\";\n }\n}\n\n/**\n * 面向 daemon 的 typed fetch 客户端。\n * 构造时传入 `baseUrl` 与可选 Bearer `token`(通常来自 daemon registry)。\n */\nexport class OpenHarnessClient {\n private readonly baseUrl: string;\n private readonly token?: string;\n private readonly fetchImpl: typeof fetch;\n\n constructor(options: OpenHarnessClientOptions) {\n this.baseUrl = normalizeDaemonBaseUrl(options.baseUrl);\n this.token = options.token;\n this.fetchImpl = options.fetch ?? fetch;\n }\n\n /** `GET /health` */\n async health(\n options: { signal?: AbortSignal } = {},\n ): Promise<OpenHarnessServerHealth> {\n return this.request<OpenHarnessServerHealth>(\"/health\", {\n auth: false,\n signal: options.signal,\n });\n }\n\n /** 连接产品应先调用它,再根据 features 决定显示哪些功能。 */\n async capabilities(\n options: { signal?: AbortSignal; support?: ClientProtocolSupport } = {},\n ): Promise<ServerCapabilities> {\n const value = await this.request<unknown>(\"/capabilities\", {\n auth: false,\n signal: options.signal,\n });\n const capabilities = parseServerCapabilities(value);\n const compatibility = checkProtocolCompatibility(\n capabilities,\n options.support ?? { version: 2 },\n );\n if (!compatibility.compatible) {\n throw new IncompatibleProtocolError(\n capabilities,\n compatibility.reason ??\n \"Client and server protocol versions are incompatible\",\n );\n }\n return capabilities;\n }\n\n /** `POST /attachments` — upload bytes without JSON or multipart buffering. */\n async uploadAttachment(\n input: UploadAttachmentInput,\n ): Promise<AttachmentAssetRecord> {\n const headers = this.headers();\n headers[\"x-openharness-filename\"] = encodeURIComponent(input.displayName);\n if (input.mediaType) headers[\"content-type\"] = input.mediaType;\n const init: RequestInit & { duplex?: \"half\" } = {\n method: \"POST\",\n headers,\n body: input.body as RequestInit[\"body\"],\n signal: input.signal,\n };\n if (isReadableStream(input.body)) init.duplex = \"half\";\n const response = await this.fetchImpl(`${this.baseUrl}/attachments`, init);\n if (!response.ok) await this.throwResponseError(response);\n return parseAttachmentAssetRecord(await response.json());\n }\n\n async getAttachment(\n id: string,\n options: { signal?: AbortSignal } = {},\n ): Promise<AttachmentAssetRecord> {\n const value = await this.request<unknown>(\n `/attachments/${encodeURIComponent(id)}`,\n { signal: options.signal },\n );\n return parseAttachmentAssetRecord(value);\n }\n\n /** Returns the raw response so callers can consume the body as a stream. */\n async downloadAttachment(\n id: string,\n options: DownloadAttachmentOptions = {},\n ): Promise<Response> {\n const range = attachmentRangeHeader(options.range);\n const headers = this.headers();\n if (range) headers.range = range;\n const response = await this.fetchImpl(\n `${this.baseUrl}/attachments/${encodeURIComponent(id)}/content`,\n { method: \"GET\", headers, signal: options.signal },\n );\n if (!response.ok) await this.throwResponseError(response);\n return response;\n }\n\n async deleteAttachment(\n id: string,\n options: { signal?: AbortSignal } = {},\n ): Promise<AttachmentAssetRecord> {\n const value = await this.request<unknown>(\n `/attachments/${encodeURIComponent(id)}`,\n { method: \"DELETE\", signal: options.signal },\n );\n return parseAttachmentAssetRecord(value);\n }\n\n async scanAttachmentStorage(\n options: { signal?: AbortSignal } = {},\n ): Promise<AttachmentStorageReport> {\n return await this.request<AttachmentStorageReport>(\"/attachments/storage\", {\n signal: options.signal,\n });\n }\n\n async repairAttachmentStorage(\n options: { signal?: AbortSignal } = {},\n ): Promise<AttachmentStorageRepairResult> {\n return await this.request<AttachmentStorageRepairResult>(\n \"/attachments/storage/actions\",\n {\n method: \"POST\",\n body: { action: \"repair-safe\" },\n signal: options.signal,\n },\n );\n }\n\n async gcAttachmentStorage(\n options: { signal?: AbortSignal } = {},\n ): Promise<AttachmentStorageGcResult> {\n return await this.request<AttachmentStorageGcResult>(\n \"/attachments/storage/actions\",\n {\n method: \"POST\",\n body: { action: \"gc\" },\n signal: options.signal,\n },\n );\n }\n\n async handleChannelMessage(\n input: DurableChannelMessageInput,\n options: { signal?: AbortSignal } = {},\n ): Promise<DurableChannelMessageResult> {\n return await this.request<DurableChannelMessageResult>(\n \"/channels/messages\",\n { method: \"POST\", body: input, signal: options.signal },\n );\n }\n\n async recordChannelDelivery(\n deliveryId: string,\n input: RecordChannelDeliveryInput,\n options: { signal?: AbortSignal } = {},\n ): Promise<ChannelDeliveryRecord> {\n const response = await this.request<{ delivery: ChannelDeliveryRecord }>(\n `/channels/deliveries/${encodeURIComponent(deliveryId)}/result`,\n { method: \"POST\", body: input, signal: options.signal },\n );\n return response.delivery;\n }\n\n async getChannelStatus(\n options: { connector?: string; limit?: number; signal?: AbortSignal } = {},\n ): Promise<ChannelStatusSnapshot> {\n const { signal, ...query } = options;\n return await this.request<ChannelStatusSnapshot>(\n this.path(\"/channels/status\", query),\n { signal },\n );\n }\n\n async listPendingChannelDeliveries(\n options: { connector?: string; limit?: number; signal?: AbortSignal } = {},\n ): Promise<ChannelDeliveryRecord[]> {\n const { signal, ...query } = options;\n const response = await this.request<{\n deliveries: ChannelDeliveryRecord[];\n }>(this.path(\"/channels/deliveries/pending\", query), { signal });\n return response.deliveries;\n }\n\n /** `GET /commands?cwd=` — cwd-scoped slash command catalog for autocomplete. */\n async listCommands(\n options: ListCommandsOptions & { signal?: AbortSignal },\n ): Promise<CommandCatalogEntry[]> {\n const { signal, ...query } = options;\n const response = await this.request<{ commands: CommandCatalogEntry[] }>(\n this.path(\"/commands\", query),\n { signal },\n );\n return response.commands;\n }\n\n /** `GET /settings` */\n async getSettings(\n options: { signal?: AbortSignal } = {},\n ): Promise<Record<string, unknown>> {\n const response = await this.request<{ settings: Record<string, unknown> }>(\n \"/settings\",\n { signal: options.signal },\n );\n return response.settings;\n }\n\n /** `PATCH /settings` */\n async patchSettings(\n patch: Record<string, unknown>,\n options: { signal?: AbortSignal } = {},\n ): Promise<Record<string, unknown>> {\n const response = await this.request<{ settings: Record<string, unknown> }>(\n \"/settings\",\n {\n method: \"PATCH\",\n body: patch,\n signal: options.signal,\n },\n );\n return response.settings;\n }\n\n /** `GET /providers` */\n async listProviders(\n options: { signal?: AbortSignal } = {},\n ): Promise<ProviderInfo[]> {\n const response = await this.request<{ providers: ProviderInfo[] }>(\n \"/providers\",\n { signal: options.signal },\n );\n return response.providers;\n }\n\n async createCustomProvider(\n input: CustomProviderInput,\n options: { signal?: AbortSignal } = {},\n ): Promise<ProviderInfo> {\n const response = await this.request<{ provider: ProviderInfo }>(\n \"/providers/custom\",\n {\n method: \"POST\",\n body: input,\n signal: options.signal,\n },\n );\n return response.provider;\n }\n\n async connectCatalogProvider(\n id: string,\n apiKey: string,\n options: { signal?: AbortSignal } = {},\n ): Promise<ProviderInfo> {\n const response = await this.request<{ provider: ProviderInfo }>(\n `/providers/catalog/${encodeURIComponent(id)}/connect`,\n { method: \"POST\", body: { apiKey }, signal: options.signal },\n );\n return response.provider;\n }\n\n async disconnectCatalogProvider(\n id: string,\n options: { signal?: AbortSignal } = {},\n ): Promise<void> {\n await this.request<{ ok: true }>(\n `/providers/catalog/${encodeURIComponent(id)}/connect`,\n { method: \"DELETE\", signal: options.signal },\n );\n }\n\n async updateCustomProvider(\n id: string,\n input: CustomProviderInput,\n options: { signal?: AbortSignal } = {},\n ): Promise<ProviderInfo> {\n const response = await this.request<{ provider: ProviderInfo }>(\n `/providers/custom/${encodeURIComponent(id)}`,\n { method: \"PATCH\", body: input, signal: options.signal },\n );\n return response.provider;\n }\n\n async removeCustomProvider(\n id: string,\n options: { signal?: AbortSignal } = {},\n ): Promise<void> {\n await this.request<{ ok: true }>(\n `/providers/custom/${encodeURIComponent(id)}`,\n {\n method: \"DELETE\",\n signal: options.signal,\n },\n );\n }\n\n /** `GET /models` */\n async listModels(\n options: { signal?: AbortSignal } = {},\n ): Promise<ModelProviderInfo[]> {\n const response = await this.request<{ providers: ModelProviderInfo[] }>(\n \"/models\",\n { signal: options.signal },\n );\n return response.providers;\n }\n\n /** `GET /sessions/:id/mcp` */\n async getSessionMcp(\n sessionId: string,\n options: { signal?: AbortSignal } = {},\n ): Promise<McpServerStatus[]> {\n const response = await this.request<{ servers: McpServerStatus[] }>(\n `/sessions/${encodeURIComponent(sessionId)}/mcp`,\n { signal: options.signal },\n );\n return response.servers;\n }\n\n /** `GET /memory?cwd=` */\n async listMemory(options: {\n cwd: string;\n signal?: AbortSignal;\n }): Promise<MemoryListResponse> {\n const { signal, ...query } = options;\n return await this.request<MemoryListResponse>(this.path(\"/memory\", query), {\n signal,\n });\n }\n\n /** `GET /memory/:id?cwd=` */\n async getMemory(\n entryId: string,\n options: { cwd: string; signal?: AbortSignal },\n ): Promise<MemoryEntryRecord> {\n const { signal, cwd } = options;\n const response = await this.request<{ entry: MemoryEntryRecord }>(\n this.path(`/memory/${encodeURIComponent(entryId)}`, { cwd }),\n { signal },\n );\n return response.entry;\n }\n\n /** `POST /memory` */\n async addMemory(\n input: { cwd: string; content: string; tags?: string[] },\n options: { signal?: AbortSignal } = {},\n ): Promise<MemoryEntryRecord> {\n const response = await this.request<{ entry: MemoryEntryRecord }>(\n \"/memory\",\n {\n method: \"POST\",\n body: input,\n signal: options.signal,\n },\n );\n return response.entry;\n }\n\n /** `DELETE /memory/:id?cwd=` */\n async removeMemory(\n entryId: string,\n options: { cwd: string; signal?: AbortSignal },\n ): Promise<void> {\n const { signal, cwd } = options;\n await this.request<{ deleted: boolean }>(\n this.path(`/memory/${encodeURIComponent(entryId)}`, { cwd }),\n { method: \"DELETE\", signal },\n );\n }\n\n /** `GET /auth` */\n async getAuthStatus(\n options: { signal?: AbortSignal } = {},\n ): Promise<AuthStatus> {\n const response = await this.request<{ auth: AuthStatus }>(\"/auth\", {\n signal: options.signal,\n });\n return response.auth;\n }\n\n /** `POST /auth/login` */\n async authLogin(\n input: { provider: string; apiKey?: string },\n options: { signal?: AbortSignal } = {},\n ): Promise<{ message: string }> {\n return await this.request<{ message: string }>(\"/auth/login\", {\n method: \"POST\",\n body: input,\n signal: options.signal,\n });\n }\n\n /** `POST /auth/logout` */\n async authLogout(\n input: { provider: string },\n options: { signal?: AbortSignal } = {},\n ): Promise<{ message: string }> {\n return await this.request<{ message: string }>(\"/auth/logout\", {\n method: \"POST\",\n body: input,\n signal: options.signal,\n });\n }\n\n /** `GET /context?cwd=` */\n async getContextPreview(options: {\n cwd: string;\n signal?: AbortSignal;\n }): Promise<string> {\n const { signal, ...query } = options;\n const response = await this.request<{ report: string }>(\n this.path(\"/context\", query),\n { signal },\n );\n return response.report;\n }\n\n /** `GET /context/status?cwd=` */\n async getContextStatus(options: {\n cwd: string;\n signal?: AbortSignal;\n }): Promise<string> {\n const { signal, ...query } = options;\n const response = await this.request<{ report: string }>(\n this.path(\"/context/status\", query),\n { signal },\n );\n return response.report;\n }\n\n /** `GET /context/usage?cwd=&sessionId=&refresh=` */\n async getContextUsage(options: {\n cwd: string;\n sessionId?: string;\n refresh?: boolean;\n previousContextWindow?: number;\n signal?: AbortSignal;\n }): Promise<{ snapshot: unknown; report: string }> {\n const { signal, refresh, previousContextWindow, ...rest } = options;\n const query: Record<string, string | undefined> = {\n ...rest,\n ...(refresh !== undefined ? { refresh: refresh ? \"true\" : \"false\" } : {}),\n ...(previousContextWindow !== undefined\n ? { previousContextWindow: String(previousContextWindow) }\n : {}),\n };\n return await this.request<{ snapshot: unknown; report: string }>(\n this.path(\"/context/usage\", query),\n { signal },\n );\n }\n\n /** `POST /sessions/:id/compact` */\n async compactSession(\n sessionId: string,\n options: { signal?: AbortSignal } = {},\n ): Promise<CompactSessionResponse> {\n return await this.request<CompactSessionResponse>(\n `/sessions/${encodeURIComponent(sessionId)}/compact`,\n { method: \"POST\", signal: options.signal },\n );\n }\n\n async getSessionGoal(sessionId: string): Promise<SessionGoal | null> {\n const response = await this.request<{ goal: SessionGoal | null }>(`/sessions/${encodeURIComponent(sessionId)}/goal`);\n return response.goal;\n }\n\n async createSessionGoal(sessionId: string, input: CreateSessionGoalInput): Promise<SessionGoal> {\n const response = await this.request<{ goal: SessionGoal }>(`/sessions/${encodeURIComponent(sessionId)}/goals`, { method: \"POST\", body: input });\n return response.goal;\n }\n\n async updateSessionGoal(sessionId: string, goalId: string, input: UpdateSessionGoalInput): Promise<SessionGoal> {\n const response = await this.request<{ goal: SessionGoal }>(`/sessions/${encodeURIComponent(sessionId)}/goals/${encodeURIComponent(goalId)}`, { method: \"PATCH\", body: input });\n return response.goal;\n }\n\n async applySessionGoalAction(sessionId: string, goalId: string, input: GoalActionInput): Promise<SessionGoal> {\n const response = await this.request<{ goal: SessionGoal }>(`/sessions/${encodeURIComponent(sessionId)}/goals/${encodeURIComponent(goalId)}/actions`, { method: \"POST\", body: input });\n return response.goal;\n }\n\n /** `POST /sessions/:id/rewind` */\n async rewindSession(\n sessionId: string,\n input: { count?: number } = {},\n options: { signal?: AbortSignal } = {},\n ): Promise<RewindSessionResponse> {\n return await this.request<RewindSessionResponse>(\n `/sessions/${encodeURIComponent(sessionId)}/rewind`,\n { method: \"POST\", body: input, signal: options.signal },\n );\n }\n\n /** `POST /sessions/:id/remember` */\n async rememberSession(\n sessionId: string,\n options: { signal?: AbortSignal } = {},\n ): Promise<RememberSessionResponse> {\n return await this.request<RememberSessionResponse>(\n `/sessions/${encodeURIComponent(sessionId)}/remember`,\n { method: \"POST\", signal: options.signal },\n );\n }\n\n /** `POST /dream` */\n async startDream(\n input: { cwd: string; sessionId?: string; preview?: boolean },\n options: { signal?: AbortSignal } = {},\n ): Promise<StartDreamResponse> {\n return await this.request<StartDreamResponse>(\"/dream\", {\n method: \"POST\",\n body: input,\n signal: options.signal,\n });\n }\n\n /** `GET /profile` */\n async getProfileStatus(\n options: { signal?: AbortSignal } = {},\n ): Promise<string> {\n const response = await this.request<{ report: string }>(\"/profile\", {\n signal: options.signal,\n });\n return response.report;\n }\n\n /** `POST /profile/init` */\n async initProfile(options: { signal?: AbortSignal } = {}): Promise<string> {\n const response = await this.request<{ report: string }>(\"/profile/init\", {\n method: \"POST\",\n signal: options.signal,\n });\n return response.report;\n }\n\n /** `GET /output-styles` */\n async listOutputStyles(\n options: { signal?: AbortSignal } = {},\n ): Promise<OutputStyleInfo[]> {\n const response = await this.request<{ styles: OutputStyleInfo[] }>(\n \"/output-styles\",\n {\n signal: options.signal,\n },\n );\n return response.styles;\n }\n\n /** `POST /project/init` */\n async initProject(\n input: { cwd: string },\n options: { signal?: AbortSignal } = {},\n ): Promise<string> {\n const response = await this.request<{ report: string }>(\"/project/init\", {\n method: \"POST\",\n body: input,\n signal: options.signal,\n });\n return response.report;\n }\n\n /** `GET /plugins?cwd=` */\n async listPlugins(options: { cwd: string; signal?: AbortSignal }): Promise<{\n plugins: PluginInfo[];\n warnings: string[];\n }> {\n const { signal, ...query } = options;\n return await this.request<{ plugins: PluginInfo[]; warnings: string[] }>(\n this.path(\"/plugins\", query),\n { signal },\n );\n }\n\n /** `POST /plugins/:id/enable` */\n async enablePlugin(\n id: string,\n input: { cwd: string },\n options: { signal?: AbortSignal } = {},\n ): Promise<{ message: string }> {\n return await this.request<{ message: string }>(\n `/plugins/${encodeURIComponent(id)}/enable`,\n { method: \"POST\", body: input, signal: options.signal },\n );\n }\n\n /** `POST /plugins/:id/disable` */\n async disablePlugin(\n id: string,\n input: { cwd: string },\n options: { signal?: AbortSignal } = {},\n ): Promise<{ message: string }> {\n return await this.request<{ message: string }>(\n `/plugins/${encodeURIComponent(id)}/disable`,\n { method: \"POST\", body: input, signal: options.signal },\n );\n }\n\n async installLocalPlugin(input: {\n cwd: string;\n sourcePath: string;\n scope: \"user\";\n approvedPermissions: string[];\n link?: boolean;\n }): Promise<{ message: string }> {\n return await this.request<{ message: string }>(\n input.link ? \"/plugins/link-local\" : \"/plugins/install-local\",\n { method: \"POST\", body: input },\n );\n }\n\n /** `POST /plugins/archive/preview` */\n async previewPluginArchive(\n input: { cwd: string; archivePath: string },\n options: { signal?: AbortSignal } = {},\n ): Promise<PluginArchivePreview> {\n return await this.request<PluginArchivePreview>(\"/plugins/archive/preview\", {\n method: \"POST\", body: input, signal: options.signal,\n });\n }\n\n /** `POST /plugins/archive/install` */\n async installPluginArchive(\n input: { cwd: string; archivePath: string; expectedArchiveDigest: string; approvedPermissions: string[] },\n options: { signal?: AbortSignal } = {},\n ): Promise<{ message: string }> {\n return await this.request<{ message: string }>(\"/plugins/archive/install\", {\n method: \"POST\", body: input, signal: options.signal,\n });\n }\n\n async uninstallPlugin(\n id: string,\n input: { cwd: string },\n ): Promise<{ message: string }> {\n return await this.request<{ message: string }>(\n `/plugins/${encodeURIComponent(id)}`,\n { method: \"DELETE\", body: input },\n );\n }\n\n /** `POST /plugins/reload` */\n async reloadPlugins(\n input: { cwd: string },\n options: { signal?: AbortSignal } = {},\n ): Promise<ReloadPluginsResponse> {\n return await this.request<ReloadPluginsResponse>(\"/plugins/reload\", {\n method: \"POST\",\n body: input,\n signal: options.signal,\n });\n }\n\n /** `GET /skills` */\n async listSkills(\n options: { signal?: AbortSignal } = {},\n ): Promise<SkillSnapshot> {\n return await this.request<SkillSnapshot>(\"/skills\", {\n signal: options.signal,\n });\n }\n\n /** `DELETE /skills/:id` */\n async removeSkill(\n id: string,\n input: { expectedContent: string },\n options: { signal?: AbortSignal } = {},\n ): Promise<SkillSnapshot> {\n return await this.request<SkillSnapshot>(\n `/skills/${encodeURIComponent(id)}`,\n {\n method: \"DELETE\",\n body: input,\n signal: options.signal,\n },\n );\n }\n\n /** `GET /agent-personas` */\n async listAgentPersonas(\n options: { signal?: AbortSignal } = {},\n ): Promise<AgentPersonaInfo[]> {\n const response = await this.request<{ agents: AgentPersonaInfo[] }>(\n \"/agent-personas\",\n {\n signal: options.signal,\n },\n );\n return response.agents;\n }\n\n /** `GET /hooks?cwd=&sessionId=` */\n async listHooks(options: {\n cwd: string;\n sessionId?: string;\n signal?: AbortSignal;\n }): Promise<HookInfo[]> {\n const { signal, ...query } = options;\n const response = await this.request<{ hooks: HookInfo[] }>(\n this.path(\"/hooks\", query),\n { signal },\n );\n return response.hooks;\n }\n\n /** `GET /git/diff?cwd=&full=` */\n async getGitDiff(options: {\n cwd: string;\n full?: boolean;\n signal?: AbortSignal;\n }): Promise<string> {\n const { signal, cwd, full } = options;\n const response = await this.request<{ output: string }>(\n this.path(\"/git/diff\", { cwd, ...(full ? { full: \"true\" } : {}) }),\n { signal },\n );\n return response.output;\n }\n\n /** `GET /git/branch?cwd=&list=` */\n async getGitBranch(options: {\n cwd: string;\n list?: boolean;\n signal?: AbortSignal;\n }): Promise<string> {\n const { signal, cwd, list } = options;\n const response = await this.request<{ output: string }>(\n this.path(\"/git/branch\", { cwd, ...(list ? { list: \"true\" } : {}) }),\n { signal },\n );\n return response.output;\n }\n\n /** `GET /git/status?cwd=` */\n async getGitStatus(options: {\n cwd: string;\n signal?: AbortSignal;\n }): Promise<string> {\n const { signal, cwd } = options;\n const response = await this.request<{ output: string }>(\n this.path(\"/git/status\", { cwd }),\n { signal },\n );\n return response.output;\n }\n\n /** `POST /git/commit` */\n async gitCommit(\n input: { cwd: string; message: string },\n options: { signal?: AbortSignal } = {},\n ): Promise<string> {\n const response = await this.request<{ output: string }>(\"/git/commit\", {\n method: \"POST\",\n body: input,\n signal: options.signal,\n });\n return response.output;\n }\n\n /** `GET /sessions/:id/usage` */\n async getSessionUsage(\n sessionId: string,\n options: { signal?: AbortSignal } = {},\n ): Promise<SessionUsageResponse> {\n return await this.request<SessionUsageResponse>(\n `/sessions/${encodeURIComponent(sessionId)}/usage`,\n { signal: options.signal },\n );\n }\n\n /** `POST /sessions/:id/export` */\n async exportSession(\n sessionId: string,\n input: { filename?: string; json?: boolean } = {},\n options: { signal?: AbortSignal } = {},\n ): Promise<SessionExportResponse> {\n return await this.request<SessionExportResponse>(\n `/sessions/${encodeURIComponent(sessionId)}/export`,\n { method: \"POST\", body: input, signal: options.signal },\n );\n }\n\n /** `GET /sessions` */\n async listSessions(\n options: ListSessionsOptions & { signal?: AbortSignal } = {},\n ): Promise<SessionRecord[]> {\n const { signal, ...query } = options;\n const response = await this.request<{ sessions: SessionRecord[] }>(\n this.path(\"/sessions\", query),\n { signal },\n );\n return response.sessions;\n }\n\n async listProjects(\n options: ListProjectsOptions & { signal?: AbortSignal } = {},\n ): Promise<ProjectRecord[]> {\n const { signal, ...query } = options;\n const response = await this.request<{ projects: ProjectRecord[] }>(\n this.path(\"/projects\", query),\n { signal },\n );\n return response.projects;\n }\n\n async inspectProject(path: string): Promise<ProjectRecord> {\n return (\n await this.request<{ project: ProjectRecord }>(\"/projects/inspect\", {\n method: \"POST\",\n body: { path },\n })\n ).project;\n }\n\n async renameProject(projectId: string, name: string): Promise<ProjectRecord> {\n return (\n await this.request<{ project: ProjectRecord }>(\n `/projects/${encodeURIComponent(projectId)}`,\n { method: \"PATCH\", body: { name } },\n )\n ).project;\n }\n\n async setProjectPinned(\n projectId: string,\n pinned: boolean,\n ): Promise<ProjectRecord> {\n return (\n await this.request<{ project: ProjectRecord }>(\n `/projects/${encodeURIComponent(projectId)}`,\n { method: \"PATCH\", body: { pinned } },\n )\n ).project;\n }\n\n async setProjectDefaultShell(\n projectId: string,\n defaultShell: string | null,\n ): Promise<ProjectRecord> {\n return (\n await this.request<{ project: ProjectRecord }>(\n `/projects/${encodeURIComponent(projectId)}`,\n { method: \"PATCH\", body: { defaultShell } },\n )\n ).project;\n }\n\n async rebindProject(projectId: string, path: string): Promise<ProjectRecord> {\n return (\n await this.request<{ project: ProjectRecord }>(\n `/projects/${encodeURIComponent(projectId)}/rebind`,\n { method: \"POST\", body: { path } },\n )\n ).project;\n }\n\n async archiveProject(projectId: string): Promise<ProjectRecord> {\n return (\n await this.request<{ project: ProjectRecord }>(\n `/projects/${encodeURIComponent(projectId)}`,\n { method: \"DELETE\" },\n )\n ).project;\n }\n\n /** `POST /sessions` */\n async createSession(\n input: CreateClientSessionInput,\n options: { signal?: AbortSignal } = {},\n ): Promise<SessionRecord> {\n const response = await this.request<{ session: SessionRecord }>(\n \"/sessions\",\n {\n method: \"POST\",\n body: input,\n signal: options.signal,\n },\n );\n return response.session;\n }\n\n /** `GET /sessions/:id` */\n async getSession(\n sessionId: string,\n options: { signal?: AbortSignal } = {},\n ): Promise<SessionRecord> {\n const response = await this.request<{ session: SessionRecord }>(\n `/sessions/${encodeURIComponent(sessionId)}`,\n {\n signal: options.signal,\n },\n );\n return response.session;\n }\n\n /** `POST /sessions/:id/fork` */\n async forkSession(\n sessionId: string,\n input: ForkClientSessionInput = {},\n options: { signal?: AbortSignal } = {},\n ): Promise<SessionRecord> {\n const response = await this.request<{ session: SessionRecord }>(\n `/sessions/${encodeURIComponent(sessionId)}/fork`,\n {\n method: \"POST\",\n body: input,\n signal: options.signal,\n },\n );\n return response.session;\n }\n\n /** `GET /sessions/:id/state` - atomic attach snapshot plus SSE cursor. */\n async getSessionState(\n sessionId: string,\n options: { signal?: AbortSignal } = {},\n ): Promise<SessionStateSnapshot> {\n const response = await this.request<unknown>(\n `/sessions/${encodeURIComponent(sessionId)}/state`,\n {\n signal: options.signal,\n },\n );\n return decodeSessionStateSnapshot(response);\n }\n\n /** `DELETE /sessions/:id` */\n async archiveSession(\n sessionId: string,\n options: { signal?: AbortSignal } = {},\n ): Promise<SessionRecord> {\n const response = await this.request<{ session: SessionRecord }>(\n `/sessions/${encodeURIComponent(sessionId)}`,\n {\n method: \"DELETE\",\n signal: options.signal,\n },\n );\n return response.session;\n }\n\n /** `DELETE /sessions/:id/hard` */\n async deleteSession(\n sessionId: string,\n options: { signal?: AbortSignal } = {},\n ): Promise<string[]> {\n const response = await this.request<{ deletedSessionIds: string[] }>(\n `/sessions/${encodeURIComponent(sessionId)}/hard`,\n {\n method: \"DELETE\",\n signal: options.signal,\n },\n );\n return response.deletedSessionIds;\n }\n\n /** `PATCH /sessions/:id` - update title, agent, or metadata.runtime fields. */\n async updateSession(\n sessionId: string,\n input: UpdateClientSessionInput,\n options: { signal?: AbortSignal } = {},\n ): Promise<SessionRecord> {\n const response = await this.request<{ session: SessionRecord }>(\n `/sessions/${encodeURIComponent(sessionId)}`,\n {\n method: \"PATCH\",\n body: input,\n signal: options.signal,\n },\n );\n return response.session;\n }\n\n /** `GET /sessions/:id/messages` */\n async listMessages(\n sessionId: string,\n options: ListMessagesOptions & { signal?: AbortSignal } = {},\n ): Promise<SessionMessageRecord[]> {\n const { signal, ...query } = options;\n const response = await this.request<{ messages: SessionMessageRecord[] }>(\n this.path(`/sessions/${encodeURIComponent(sessionId)}/messages`, query),\n { signal },\n );\n return response.messages;\n }\n\n /** `GET /sessions/:id/parts` */\n async listMessageParts(\n sessionId: string,\n options: ListClientMessagePartsOptions & { signal?: AbortSignal } = {},\n ): Promise<SessionMessagePartRecord[]> {\n const { signal, ...query } = options;\n const response = await this.request<{ parts: SessionMessagePartRecord[] }>(\n this.path(`/sessions/${encodeURIComponent(sessionId)}/parts`, query),\n { signal },\n );\n return response.parts;\n }\n\n /** `POST /sessions/:id/prompts` — 提交用户输入并触发/排队一次 run。 */\n async admitPrompt(\n sessionId: string,\n input: AdmitClientPromptInput,\n options: { signal?: AbortSignal } = {},\n ): Promise<PromptResponse> {\n return await this.request<PromptResponse>(\n `/sessions/${encodeURIComponent(sessionId)}/prompts`,\n {\n method: \"POST\",\n body: { ...input, id: input.id ?? createPromptRequestId() },\n signal: options.signal,\n },\n );\n }\n\n /** `POST /sessions/:id/prompts/latest/edit` */\n async editLatestPrompt(\n sessionId: string,\n input: EditLatestClientPromptInput,\n options: { signal?: AbortSignal } = {},\n ): Promise<PromptResponse> {\n return await this.request<PromptResponse>(\n `/sessions/${encodeURIComponent(sessionId)}/prompts/latest/edit`,\n {\n method: \"POST\",\n body: input,\n signal: options.signal,\n },\n );\n }\n\n /** Promote one durable queued prompt into the exact active run. */\n async promoteQueuedPrompt(\n sessionId: string,\n inputId: string,\n input: PromoteQueuedClientPromptInput,\n options: { signal?: AbortSignal } = {},\n ): Promise<PromoteQueuedPromptResponse> {\n return await this.request<PromoteQueuedPromptResponse>(\n `/sessions/${encodeURIComponent(sessionId)}/prompts/${encodeURIComponent(inputId)}/promote`,\n { method: \"POST\", body: input, signal: options.signal },\n );\n }\n\n /** Cancel one durable prompt that is still waiting in the run queue. */\n async cancelQueuedPrompt(\n sessionId: string,\n inputId: string,\n input: CancelQueuedClientPromptInput,\n options: { signal?: AbortSignal } = {},\n ): Promise<CancelQueuedPromptResponse> {\n return await this.request<CancelQueuedPromptResponse>(\n `/sessions/${encodeURIComponent(sessionId)}/prompts/${encodeURIComponent(inputId)}/cancel`,\n { method: \"POST\", body: input, signal: options.signal },\n );\n }\n\n /**\n * `POST /sessions/:id/runs/:runId/resume` — 显式重放一次中断 run 的原始 prompt。\n * 不会继续旧 provider stream;服务端会创建一个带恢复溯源的新 input/run。\n */\n async resumeInterruptedRun(\n sessionId: string,\n runId: string,\n input: ResumeInterruptedRunInput = {},\n options: { signal?: AbortSignal } = {},\n ): Promise<ResumeInterruptedRunResponse> {\n return await this.request<ResumeInterruptedRunResponse>(\n `/sessions/${encodeURIComponent(sessionId)}/runs/${encodeURIComponent(runId)}/resume`,\n {\n method: \"POST\",\n body: { ...input, id: input.id ?? createPromptRequestId() },\n signal: options.signal,\n },\n );\n }\n\n /** `POST /sessions/:id/interrupt` — 中断当前/排队中的 run。 */\n async interruptSession(\n sessionId: string,\n options: { signal?: AbortSignal; expectedRunId?: string } = {},\n ): Promise<InterruptSessionResponse> {\n return await this.request<InterruptSessionResponse>(\n `/sessions/${encodeURIComponent(sessionId)}/interrupt`,\n {\n method: \"POST\",\n body: options.expectedRunId\n ? { expectedRunId: options.expectedRunId }\n : undefined,\n signal: options.signal,\n },\n );\n }\n\n /** `GET /events` — 用于 attach 时的历史 replay。 */\n async listEvents(\n options: ListEventsOptions & { signal?: AbortSignal } = {},\n ): Promise<SessionEventRecord[]> {\n const { signal, ...query } = options;\n const response = await this.request<unknown>(this.path(\"/events\", query), {\n signal,\n });\n return responseArray(response, \"events\", decodeSessionEventRecord);\n }\n\n /** `GET /permissions` */\n async listPermissions(\n options: ListPermissionsOptions & { signal?: AbortSignal } = {},\n ): Promise<PermissionRequestRecord[]> {\n const { signal, ...query } = options;\n const response = await this.request<{\n requests: PermissionRequestRecord[];\n }>(this.path(\"/permissions\", query), { signal });\n return response.requests;\n }\n\n /** `POST /permissions/:id/reply` — 批准/拒绝工具权限请求。 */\n async replyPermission(\n requestId: string,\n input: ReplyPermissionInput,\n options: { signal?: AbortSignal } = {},\n ): Promise<PermissionRequestRecord> {\n const response = await this.request<{ request: PermissionRequestRecord }>(\n `/permissions/${encodeURIComponent(requestId)}/reply`,\n {\n method: \"POST\",\n body: input,\n signal: options.signal,\n },\n );\n return response.request;\n }\n\n async getScheduledTaskStatus(\n options: { signal?: AbortSignal } = {},\n ): Promise<ScheduledTaskStatusSummary> {\n return await this.request<ScheduledTaskStatusSummary>(\"/schedules/status\", {\n signal: options.signal,\n });\n }\n\n async listScheduledTasks(\n options: {\n status?: ScheduledTaskRecord[\"status\"];\n signal?: AbortSignal;\n } = {},\n ): Promise<ScheduledTaskRecord[]> {\n const { signal, ...query } = options;\n const response = await this.request<{ tasks: ScheduledTaskRecord[] }>(\n this.path(\"/schedules/tasks\", query),\n { signal },\n );\n return response.tasks;\n }\n\n async getScheduledTask(\n id: string,\n options: { signal?: AbortSignal } = {},\n ): Promise<ScheduledTaskRecord> {\n const response = await this.request<{ task: ScheduledTaskRecord }>(\n `/schedules/tasks/${encodeURIComponent(id)}`,\n { signal: options.signal },\n );\n return response.task;\n }\n\n async createScheduledTask(\n input: CreateScheduledTaskInput,\n options: { signal?: AbortSignal } = {},\n ): Promise<ScheduledTaskRecord> {\n const response = await this.request<{ task: ScheduledTaskRecord }>(\n \"/schedules/tasks\",\n {\n method: \"POST\",\n body: input,\n signal: options.signal,\n },\n );\n return response.task;\n }\n\n async updateScheduledTask(\n id: string,\n input: UpdateScheduledTaskInput,\n options: { signal?: AbortSignal } = {},\n ): Promise<ScheduledTaskRecord> {\n const response = await this.request<{ task: ScheduledTaskRecord }>(\n `/schedules/tasks/${encodeURIComponent(id)}`,\n { method: \"PATCH\", body: input, signal: options.signal },\n );\n return response.task;\n }\n\n async removeScheduledTask(\n id: string,\n options: { signal?: AbortSignal } = {},\n ): Promise<void> {\n await this.request<{ removed: true }>(\n `/schedules/tasks/${encodeURIComponent(id)}`,\n {\n method: \"DELETE\",\n signal: options.signal,\n },\n );\n }\n\n async triggerScheduledTask(\n id: string,\n options: { signal?: AbortSignal } = {},\n ): Promise<ScheduledRunRecord> {\n const response = await this.request<{ run: ScheduledRunRecord }>(\n `/schedules/tasks/${encodeURIComponent(id)}/run`,\n { method: \"POST\", signal: options.signal },\n );\n return response.run;\n }\n\n async listScheduledRuns(\n options: {\n taskId?: string;\n unread?: boolean;\n limit?: number;\n signal?: AbortSignal;\n } = {},\n ): Promise<ScheduledRunRecord[]> {\n const { signal, ...query } = options;\n const response = await this.request<{ runs: ScheduledRunRecord[] }>(\n this.path(\"/schedules/runs\", query),\n { signal },\n );\n return response.runs;\n }\n\n async setScheduledRunUnread(\n id: string,\n unread: boolean,\n options: { signal?: AbortSignal } = {},\n ): Promise<ScheduledRunRecord> {\n const response = await this.request<{ run: ScheduledRunRecord }>(\n `/schedules/runs/${encodeURIComponent(id)}/read`,\n { method: \"PATCH\", body: { unread }, signal: options.signal },\n );\n return response.run;\n }\n\n async createTerminal(\n input: TerminalCreateRequest,\n options: { signal?: AbortSignal } = {},\n ): Promise<TerminalSessionInfo> {\n const response = await this.request<unknown>(\"/terminals\", {\n method: \"POST\",\n body: input,\n signal: options.signal,\n });\n return decodeTerminalSessionInfo(responseField(response, \"terminal\"));\n }\n\n async listJobs(options: {\n sessionId: string;\n kinds?: JobKind[];\n statuses?: JobStatus[];\n startedAfter?: number;\n startedBefore?: number;\n updatedAfter?: number;\n updatedBefore?: number;\n includeFinished?: boolean;\n limit?: number;\n signal?: AbortSignal;\n }): Promise<JobSnapshot[]> {\n const { signal, kinds, statuses, includeFinished, ...query } = options;\n const response = await this.request<unknown>(\n this.path(\"/jobs\", {\n ...query,\n ...(kinds ? { kinds: kinds.join(\",\") } : {}),\n ...(statuses ? { statuses: statuses.join(\",\") } : {}),\n ...(includeFinished !== undefined\n ? { includeFinished: String(includeFinished) }\n : {}),\n }),\n { signal },\n );\n return responseArray(response, \"jobs\", decodeJobSnapshot);\n }\n\n async createBackgroundShell(\n input: CreateBackgroundShellInput,\n options: { signal?: AbortSignal } = {},\n ): Promise<CreateBackgroundShellResult> {\n return await this.request<CreateBackgroundShellResult>(\n \"/background-shells\",\n {\n method: \"POST\",\n body: input,\n signal: options.signal,\n },\n );\n }\n\n async readJob(\n jobId: string,\n options: {\n sessionId: string;\n after?: number;\n maxChars?: number;\n signal?: AbortSignal;\n },\n ): Promise<JobReadResult> {\n const { signal, ...query } = options;\n const response = await this.request<unknown>(\n this.path(`/jobs/${encodeURIComponent(jobId)}`, query),\n { signal },\n );\n return decodeJobReadResult(response);\n }\n\n async waitJob(\n jobId: string,\n input: {\n sessionId: string;\n timeoutMs?: number;\n after?: number;\n maxChars?: number;\n },\n options: { signal?: AbortSignal } = {},\n ): Promise<JobWaitResult> {\n const response = await this.request<unknown>(\n `/jobs/${encodeURIComponent(jobId)}/wait`,\n {\n method: \"POST\",\n body: input,\n signal: options.signal,\n },\n );\n return decodeJobWaitResult(response);\n }\n\n async sendJob(\n jobId: string,\n input: { sessionId: string; data: string },\n options: { signal?: AbortSignal } = {},\n ): Promise<void> {\n await this.request(`/jobs/${encodeURIComponent(jobId)}/input`, {\n method: \"POST\",\n body: input,\n signal: options.signal,\n });\n }\n\n async cancelJob(\n jobId: string,\n input: { sessionId: string; reason?: string },\n options: { signal?: AbortSignal } = {},\n ): Promise<JobSnapshot> {\n const response = await this.request<unknown>(\n `/jobs/${encodeURIComponent(jobId)}/cancel`,\n { method: \"POST\", body: input, signal: options.signal },\n );\n return decodeJobSnapshot(responseField(response, \"snapshot\"));\n }\n\n async listTerminals(\n options: {\n projectId?: string;\n sessionId?: string;\n source?: TerminalSource;\n signal?: AbortSignal;\n } = {},\n ): Promise<TerminalSessionInfo[]> {\n const { signal, ...query } = options;\n const response = await this.request<unknown>(\n this.path(\"/terminals\", query),\n { signal },\n );\n return responseArray(response, \"terminals\", decodeTerminalSessionInfo);\n }\n\n async getTerminal(\n terminalId: string,\n options: { signal?: AbortSignal } = {},\n ): Promise<TerminalSessionInfo> {\n const response = await this.request<unknown>(\n `/terminals/${encodeURIComponent(terminalId)}`,\n { signal: options.signal },\n );\n return decodeTerminalSessionInfo(responseField(response, \"terminal\"));\n }\n\n async readTerminal(\n terminalId: string,\n options: { signal?: AbortSignal } = {},\n ): Promise<TerminalReadResult> {\n const response = await this.request<unknown>(\n `/terminals/${encodeURIComponent(terminalId)}/output`,\n { signal: options.signal },\n );\n return decodeTerminalReadResult(responseField(response, \"snapshot\"));\n }\n\n async writeTerminal(\n input: TerminalWriteRequest,\n options: { signal?: AbortSignal } = {},\n ): Promise<void> {\n await this.request<{ written: true }>(\n `/terminals/${encodeURIComponent(input.terminalId)}/input`,\n { method: \"POST\", body: { data: input.data }, signal: options.signal },\n );\n }\n\n async resizeTerminal(\n input: TerminalResizeRequest,\n options: { signal?: AbortSignal } = {},\n ): Promise<void> {\n await this.request<{ resized: true }>(\n `/terminals/${encodeURIComponent(input.terminalId)}/resize`,\n {\n method: \"POST\",\n body: { cols: input.cols, rows: input.rows },\n signal: options.signal,\n },\n );\n }\n\n async signalTerminal(\n terminalId: string,\n signal: TerminalSignal,\n options: { signal?: AbortSignal } = {},\n ): Promise<void> {\n await this.request<{ signaled: true }>(\n `/terminals/${encodeURIComponent(terminalId)}/signal`,\n { method: \"POST\", body: { signal }, signal: options.signal },\n );\n }\n\n async closeTerminal(\n terminalId: string,\n options: { signal?: AbortSignal } = {},\n ): Promise<void> {\n await this.request<{ removed: true }>(\n `/terminals/${encodeURIComponent(terminalId)}`,\n {\n method: \"DELETE\",\n signal: options.signal,\n },\n );\n }\n\n streamTerminalEvents(\n options: { signal?: AbortSignal } = {},\n ): AsyncIterable<TerminalEvent> {\n return streamServerSentEvents(async () => {\n const response = await this.fetchImpl(\n `${this.baseUrl}/terminals/stream`,\n {\n headers: this.headers(),\n signal: options.signal,\n },\n );\n if (!response.ok) await this.throwResponseError(response);\n if (!response.body)\n throw new Error(\"Terminal event stream response has no body\");\n return response.body;\n }, decodeTerminalEvent);\n }\n\n streamEvents(\n options: EventSyncOptions = {},\n ): AsyncIterable<SessionEventRecord> {\n return streamServerSentEvents(async () => {\n const query = {\n cursor: options.cursor,\n sessionId: options.sessionId,\n };\n const response = await this.fetchImpl(\n `${this.baseUrl}${this.path(\"/events/stream\", query)}`,\n {\n headers: this.headers(),\n signal: options.signal,\n },\n );\n if (!response.ok) await this.throwResponseError(response);\n if (!response.body) throw new Error(\"Event stream response has no body\");\n return response.body;\n }, decodeSessionEventRecord);\n }\n\n private async request<T>(\n path: string,\n options: {\n method?: string;\n body?: unknown;\n signal?: AbortSignal;\n auth?: boolean;\n } = {},\n ): Promise<T> {\n const response = await this.fetchImpl(`${this.baseUrl}${path}`, {\n method: options.method ?? \"GET\",\n headers: this.headers(options.body !== undefined, options.auth ?? true),\n body:\n options.body === undefined ? undefined : JSON.stringify(options.body),\n signal: options.signal,\n });\n if (!response.ok) await this.throwResponseError(response);\n return (await response.json()) as T;\n }\n\n private headers(json = false, auth = true): Record<string, string> {\n return {\n ...(auth && this.token ? { authorization: `Bearer ${this.token}` } : {}),\n ...(json ? { \"content-type\": \"application/json\" } : {}),\n };\n }\n\n /** 拼 query;跳过 undefined / null / false。 */\n private path(pathname: string, query: Record<string, unknown> = {}): string {\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries(query)) {\n if (value === undefined || value === null || value === false) continue;\n params.set(key, String(value));\n }\n const qs = params.toString();\n return qs ? `${pathname}?${qs}` : pathname;\n }\n\n private async throwResponseError(response: Response): Promise<never> {\n let body: unknown;\n try {\n body = await response.json();\n } catch {\n body = await response.text().catch(() => \"\");\n }\n const message =\n body &&\n typeof body === \"object\" &&\n \"error\" in body &&\n typeof body.error === \"string\"\n ? body.error\n : body &&\n typeof body === \"object\" &&\n \"message\" in body &&\n typeof body.message === \"string\"\n ? body.message\n : `OpenHarness API request failed with ${response.status}`;\n throw new OpenHarnessApiError(message, response.status, body);\n }\n}\n\nfunction isReadableStream(value: unknown): value is ReadableStream<Uint8Array> {\n return (\n typeof ReadableStream !== \"undefined\" && value instanceof ReadableStream\n );\n}\n\nfunction attachmentRangeHeader(\n range: DownloadAttachmentOptions[\"range\"],\n): string | undefined {\n if (!range) return undefined;\n const { start, end, suffixBytes } = range;\n if (suffixBytes !== undefined) {\n if (start !== undefined || end !== undefined) {\n throw new Error(\"suffixBytes cannot be combined with start or end\");\n }\n assertPositiveSafeInteger(suffixBytes, \"suffixBytes\");\n return `bytes=-${suffixBytes}`;\n }\n if (start === undefined && end === undefined) return undefined;\n if (start === undefined) {\n throw new Error(\"range start is required when end is provided\");\n }\n assertNonNegativeSafeInteger(start, \"start\");\n if (end === undefined) return `bytes=${start}-`;\n assertNonNegativeSafeInteger(end, \"end\");\n if (end < start) throw new Error(\"range end must not be less than start\");\n return `bytes=${start}-${end}`;\n}\n\nfunction assertNonNegativeSafeInteger(value: number, field: string): void {\n if (!Number.isSafeInteger(value) || value < 0) {\n throw new Error(`${field} must be a non-negative safe integer`);\n }\n}\n\nfunction assertPositiveSafeInteger(value: number, field: string): void {\n if (!Number.isSafeInteger(value) || value < 1) {\n throw new Error(`${field} must be a positive safe integer`);\n }\n}\n\n/**\n * 将 SSE 字节流解析为 `SessionEventRecord` 异步迭代。\n * `open` 负责建立连接并返回 response body,便于重试或注入。\n */\nexport async function* streamServerSentEvents<T = SessionEventRecord>(\n open: () => Promise<ReadableStream<Uint8Array>>,\n decode: (value: unknown) => T = (value) => value as T,\n): AsyncIterable<T> {\n const reader = (await open()).getReader();\n const decoder = new TextDecoder();\n let buffer = \"\";\n try {\n while (true) {\n const chunk = await reader.read();\n if (chunk.done) break;\n buffer += decoder.decode(chunk.value, { stream: true });\n // SSE 事件以空行分隔\n const frames = buffer.split(/\\r?\\n\\r?\\n/);\n buffer = frames.pop() ?? \"\";\n for (const frame of frames) {\n const event = parseSseFrame(frame);\n if (event !== undefined) yield decode(event);\n }\n }\n buffer += decoder.decode();\n const event = parseSseFrame(buffer);\n if (event !== undefined) yield decode(event);\n } finally {\n reader.releaseLock();\n }\n}\n\n/** 解析单个 SSE frame 的 `data:` 行,得到事件 JSON。 */\nfunction parseSseFrame(frame: string): unknown | undefined {\n let data = \"\";\n for (const line of frame.split(/\\r?\\n/)) {\n if (!line || line.startsWith(\":\")) continue;\n if (line.startsWith(\"data:\")) data += line.slice(5).trimStart();\n }\n if (!data) return undefined;\n return JSON.parse(data) as unknown;\n}\n\nexport class IncompatibleProtocolError extends Error {\n constructor(\n readonly capabilities: ServerCapabilities,\n message: string,\n ) {\n super(message);\n this.name = \"IncompatibleProtocolError\";\n }\n}\n",
15
16
  "export * from \"./http-client.js\";\n",
16
17
  "/**\n * 事件 → 客户端状态 reducer。\n *\n * 幂等:同一 `seq` 只应用一次。多端用同一套事件流应收敛到相同状态。\n */\n\nimport { sessionEventSchemaVersion } from \"@openharness/protocol\";\n\nimport type {\n OpenHarnessClientState,\n PermissionRequestRecord,\n SessionBucket,\n SessionEventRecord,\n SessionInputRecord,\n SessionMessagePartRecord,\n SessionMessageRecord,\n SessionRecord,\n SessionRunRecord,\n SessionRunAttemptRecord,\n SessionExecutionRecord,\n SessionStateSnapshot,\n} from \"../types/index.js\";\n\nexport class UnsupportedSessionEventSchemaVersionError extends Error {\n readonly event: Pick<SessionEventRecord, \"seq\" | \"type\" | \"schemaVersion\">;\n\n constructor(event: SessionEventRecord) {\n const expected = sessionEventSchemaVersion(event.type);\n super(\n `Unsupported session event schema version ${event.schemaVersion} for ${event.type} at sequence ${event.seq}; expected ${expected}`,\n );\n this.name = \"UnsupportedSessionEventSchemaVersionError\";\n this.event = {\n seq: event.seq,\n type: event.type,\n schemaVersion: event.schemaVersion,\n };\n }\n}\n\n/** 空客户端状态,作为 replay/hydrate 起点。 */\nexport function createInitialClientState(): OpenHarnessClientState {\n return {\n sessions: {},\n sessionOrder: [],\n buckets: {},\n eventsBySeq: {},\n snapshotCursorBySession: {},\n transientCursor: 0,\n lastSeq: 0,\n };\n}\n\n/** 按序批量应用事件。 */\nexport function applyEvents(\n state: OpenHarnessClientState,\n events: Iterable<SessionEventRecord>,\n): OpenHarnessClientState {\n let next = state;\n for (const event of events) next = applyEvent(next, event);\n return next;\n}\n\n/** Replace one session bucket with an atomic server snapshot. */\nexport function applySessionSnapshot(\n state: OpenHarnessClientState,\n snapshot: SessionStateSnapshot,\n): OpenHarnessClientState {\n const partsByMessageId: SessionBucket[\"partsByMessageId\"] = {};\n for (const part of snapshot.parts) {\n const parts = partsByMessageId[part.messageId] ?? [];\n parts.push(part);\n partsByMessageId[part.messageId] = parts;\n }\n for (const parts of Object.values(partsByMessageId)) parts.sort((a, b) => a.seq - b.seq);\n\n const sessions = { ...state.sessions, [snapshot.session.id]: snapshot.session };\n return {\n ...state,\n sessions,\n sessionOrder: sortSessionOrder(sessions),\n buckets: {\n ...state.buckets,\n [snapshot.session.id]: {\n session: snapshot.session,\n inputs: [...snapshot.inputs].sort((a, b) => a.seq - b.seq),\n messages: [...snapshot.messages].sort((a, b) => a.seq - b.seq),\n partsByMessageId,\n runs: Object.fromEntries(snapshot.runs.map((run) => [run.id, run])),\n attempts: Object.fromEntries((snapshot.attempts ?? []).map((attempt) => [attempt.id, attempt])),\n tasks: Object.fromEntries((snapshot.tasks ?? []).map((task) => [task.id, task])),\n permissions: Object.fromEntries(snapshot.permissions.map((request) => [request.id, request])),\n },\n },\n snapshotCursorBySession: {\n ...state.snapshotCursorBySession,\n [snapshot.session.id]: Math.max(\n state.snapshotCursorBySession[snapshot.session.id] ?? 0,\n snapshot.cursor,\n ),\n },\n transientCursor: Math.max(state.transientCursor, snapshot.cursor),\n lastSeq: Math.max(state.lastSeq, snapshot.cursor),\n };\n}\n\n/**\n * 应用单条事件。已见过的 `seq` 直接返回原 state(引用相等,便于 live 去重)。\n */\nexport function applyEvent(\n state: OpenHarnessClientState,\n event: SessionEventRecord,\n): OpenHarnessClientState {\n if (event.schemaVersion !== sessionEventSchemaVersion(event.type)) {\n throw new UnsupportedSessionEventSchemaVersionError(event);\n }\n const transient = event.type === \"session.message.part.delta\";\n const snapshotCursor = event.sessionId\n ? state.snapshotCursorBySession[event.sessionId] ?? 0\n : 0;\n if (event.seq <= snapshotCursor) return state;\n if (transient && event.seq <= state.transientCursor) return state;\n if (!transient && state.eventsBySeq[event.seq]) return state;\n if (!transient) state.eventsBySeq[event.seq] = event;\n\n let next: OpenHarnessClientState = {\n ...state,\n eventsBySeq: state.eventsBySeq,\n transientCursor: transient ? event.seq : state.transientCursor,\n lastSeq: Math.max(state.lastSeq, event.seq),\n };\n\n switch (event.type) {\n case \"session.created\":\n case \"session.updated\":\n next = upsertSession(next, readPayloadRecord<SessionRecord>(event, \"session\"));\n break;\n case \"session.archived\":\n next = archiveSession(next, event);\n break;\n case \"session.input.admitted\":\n next = upsertInput(next, readPayloadRecord<SessionInputRecord>(event, \"input\"));\n break;\n case \"session.message.created\":\n next = upsertMessage(next, readPayloadRecord<SessionMessageRecord>(event, \"message\"));\n break;\n case \"session.transcript.replaced\":\n next = replaceTranscript(next, event);\n break;\n case \"session.message.part.updated\":\n next = upsertPart(next, readPayloadRecord<SessionMessagePartRecord>(event, \"part\"));\n break;\n case \"session.message.part.delta\":\n next = appendPartDelta(next, event);\n break;\n case \"session.run.created\":\n case \"session.run.updated\":\n next = upsertRun(next, readPayloadRecord<SessionRunRecord>(event, \"run\"));\n break;\n case \"session.run_attempt.created\":\n case \"session.run_attempt.updated\":\n next = upsertRunAttempt(next, readPayloadRecord<SessionRunAttemptRecord>(event, \"attempt\"));\n break;\n case \"session.task.created\":\n case \"session.task.updated\":\n next = upsertTask(next, readPayloadRecord<SessionExecutionRecord>(event, \"task\"));\n break;\n case \"permission.asked\":\n case \"permission.replied\":\n next = upsertPermission(next, readPayloadRecord<PermissionRequestRecord>(event, \"request\"));\n break;\n }\n\n return next;\n}\n\nfunction readPayloadRecord<T>(event: SessionEventRecord, key: string): T | undefined {\n const value = event.payload[key];\n return value && typeof value === \"object\" && !Array.isArray(value) ? value as T : undefined;\n}\n\nfunction upsertSession(state: OpenHarnessClientState, session: SessionRecord | undefined): OpenHarnessClientState {\n if (!session) return state;\n const bucket = cloneBucket(state.buckets[session.id]);\n bucket.session = session;\n const sessions = { ...state.sessions, [session.id]: session };\n return {\n ...state,\n sessions,\n sessionOrder: sortSessionOrder(sessions),\n buckets: { ...state.buckets, [session.id]: bucket },\n };\n}\n\nfunction archiveSession(state: OpenHarnessClientState, event: SessionEventRecord): OpenHarnessClientState {\n const sessionId = typeof event.payload.sessionId === \"string\" ? event.payload.sessionId : event.sessionId;\n if (!sessionId) return state;\n const current = state.sessions[sessionId];\n if (!current) return state;\n const archived: SessionRecord = {\n ...current,\n status: \"archived\",\n archivedAt: current.archivedAt ?? event.createdAt,\n updatedAt: Math.max(current.updatedAt, event.createdAt),\n };\n return upsertSession(state, archived);\n}\n\nfunction upsertInput(state: OpenHarnessClientState, input: SessionInputRecord | undefined): OpenHarnessClientState {\n if (!input) return state;\n const bucket = cloneBucket(state.buckets[input.sessionId]);\n bucket.inputs = upsertSorted(bucket.inputs, input, (row) => row.seq);\n return { ...state, buckets: { ...state.buckets, [input.sessionId]: bucket } };\n}\n\nfunction upsertMessage(state: OpenHarnessClientState, message: SessionMessageRecord | undefined): OpenHarnessClientState {\n if (!message) return state;\n const bucket = cloneBucket(state.buckets[message.sessionId]);\n bucket.messages = upsertSorted(bucket.messages, message, (row) => row.seq);\n return { ...state, buckets: { ...state.buckets, [message.sessionId]: bucket } };\n}\n\nfunction replaceTranscript(state: OpenHarnessClientState, event: SessionEventRecord): OpenHarnessClientState {\n const sessionId = event.sessionId;\n if (!sessionId) return state;\n const messages = Array.isArray(event.payload.messages)\n ? event.payload.messages.filter((row): row is SessionMessageRecord =>\n !!row && typeof row === \"object\" && !Array.isArray(row) && typeof (row as SessionMessageRecord).id === \"string\")\n : [];\n const parts = Array.isArray(event.payload.parts)\n ? event.payload.parts.filter((row): row is SessionMessagePartRecord =>\n !!row && typeof row === \"object\" && !Array.isArray(row) && typeof (row as SessionMessagePartRecord).id === \"string\")\n : [];\n const bucket = cloneBucket(state.buckets[sessionId]);\n const partsByMessageId: SessionBucket[\"partsByMessageId\"] = {};\n for (const part of parts) {\n const rows = partsByMessageId[part.messageId] ?? [];\n rows.push(part);\n partsByMessageId[part.messageId] = rows;\n }\n for (const rows of Object.values(partsByMessageId)) rows.sort((a, b) => a.seq - b.seq);\n bucket.messages = [...messages].sort((a, b) => a.seq - b.seq);\n bucket.partsByMessageId = partsByMessageId;\n if (bucket.session) {\n bucket.session = {\n ...bucket.session,\n updatedAt: Math.max(bucket.session.updatedAt, event.createdAt),\n };\n }\n const sessions = bucket.session\n ? { ...state.sessions, [sessionId]: bucket.session }\n : state.sessions;\n return {\n ...state,\n sessions,\n sessionOrder: sortSessionOrder(sessions),\n buckets: { ...state.buckets, [sessionId]: bucket },\n };\n}\n\nfunction upsertPart(state: OpenHarnessClientState, part: SessionMessagePartRecord | undefined): OpenHarnessClientState {\n if (!part) return state;\n const bucket = cloneBucketForPartWrite(state.buckets[part.sessionId]);\n const existing = bucket.partsByMessageId[part.messageId] ?? [];\n bucket.partsByMessageId = {\n ...bucket.partsByMessageId,\n [part.messageId]: upsertSorted(existing, part, (row) => row.seq),\n };\n return { ...state, buckets: { ...state.buckets, [part.sessionId]: bucket } };\n}\n\nfunction appendPartDelta(state: OpenHarnessClientState, event: SessionEventRecord): OpenHarnessClientState {\n const sessionId = typeof event.payload.sessionId === \"string\" ? event.payload.sessionId : event.sessionId;\n const messageId = typeof event.payload.messageId === \"string\" ? event.payload.messageId : undefined;\n const partId = typeof event.payload.partId === \"string\" ? event.payload.partId : undefined;\n const field = event.payload.field;\n const delta = typeof event.payload.delta === \"string\" ? event.payload.delta : undefined;\n if (!sessionId || !messageId || !partId || field !== \"text\" || delta === undefined) return state;\n\n const bucket = cloneBucketForPartWrite(state.buckets[sessionId]);\n const currentParts = bucket.partsByMessageId[messageId] ?? [];\n const index = currentParts.findIndex((part) => part.id === partId);\n const nextParts = [...currentParts];\n if (index >= 0) {\n const current = nextParts[index]!;\n nextParts[index] = {\n ...current,\n text: `${current.text ?? \"\"}${delta}`,\n updatedAt: Math.max(current.updatedAt, event.createdAt),\n };\n } else {\n const seq = currentParts.reduce((max, part) => Math.max(max, part.seq), 0) + 1;\n nextParts.push({\n id: partId,\n sessionId,\n messageId,\n seq,\n type: \"text\",\n status: \"running\",\n text: delta,\n metadata: {},\n createdAt: event.createdAt,\n updatedAt: event.createdAt,\n });\n }\n const sortedParts = index >= 0\n ? nextParts\n : nextParts.sort((a, b) => a.seq - b.seq);\n bucket.partsByMessageId = {\n ...bucket.partsByMessageId,\n [messageId]: sortedParts,\n };\n return { ...state, buckets: { ...state.buckets, [sessionId]: bucket } };\n}\n\nfunction upsertRun(state: OpenHarnessClientState, run: SessionRunRecord | undefined): OpenHarnessClientState {\n if (!run) return state;\n const bucket = cloneBucket(state.buckets[run.sessionId]);\n bucket.runs = { ...bucket.runs, [run.id]: run };\n const session = refreshSessionStatusFromRuns(bucket.session, bucket.runs, run.updatedAt);\n bucket.session = session;\n const sessions = session ? { ...state.sessions, [run.sessionId]: session } : state.sessions;\n return {\n ...state,\n sessions,\n sessionOrder: session ? sortSessionOrder(sessions) : state.sessionOrder,\n buckets: { ...state.buckets, [run.sessionId]: bucket },\n };\n}\n\nfunction upsertRunAttempt(\n state: OpenHarnessClientState,\n attempt: SessionRunAttemptRecord | undefined,\n): OpenHarnessClientState {\n if (!attempt) return state;\n const run = Object.values(state.buckets)\n .flatMap((bucket) => Object.values(bucket.runs))\n .find((candidate) => candidate.id === attempt.runId);\n if (!run) return state;\n const bucket = cloneBucket(state.buckets[run.sessionId]);\n bucket.attempts = { ...bucket.attempts, [attempt.id]: attempt };\n return { ...state, buckets: { ...state.buckets, [run.sessionId]: bucket } };\n}\n\nfunction refreshSessionStatusFromRuns(\n session: SessionRecord | undefined,\n runs: SessionBucket[\"runs\"],\n updatedAt: number,\n): SessionRecord | undefined {\n if (!session || session.status === \"archived\" || session.status === \"closing\") return session;\n const running = Object.values(runs).some(\n (candidate) => candidate.status === \"pending\" || candidate.status === \"running\",\n );\n return {\n ...session,\n status: running ? \"running\" : \"idle\",\n updatedAt: Math.max(session.updatedAt, updatedAt),\n };\n}\n\nfunction upsertPermission(\n state: OpenHarnessClientState,\n request: PermissionRequestRecord | undefined,\n): OpenHarnessClientState {\n if (!request) return state;\n const bucket = cloneBucket(state.buckets[request.sessionId]);\n bucket.permissions = { ...bucket.permissions, [request.id]: request };\n return { ...state, buckets: { ...state.buckets, [request.sessionId]: bucket } };\n}\n\nfunction upsertTask(state: OpenHarnessClientState, task: SessionExecutionRecord | undefined): OpenHarnessClientState {\n if (!task) return state;\n const bucket = cloneBucket(state.buckets[task.sessionId]);\n bucket.tasks = { ...bucket.tasks, [task.id]: task };\n return { ...state, buckets: { ...state.buckets, [task.sessionId]: bucket } };\n}\n\nfunction cloneBucket(bucket: SessionBucket | undefined): SessionBucket {\n return {\n session: bucket?.session,\n inputs: bucket?.inputs ? [...bucket.inputs] : [],\n messages: bucket?.messages ? [...bucket.messages] : [],\n partsByMessageId: bucket?.partsByMessageId\n ? Object.fromEntries(Object.entries(bucket.partsByMessageId).map(([id, parts]) => [id, [...parts]]))\n : {},\n runs: bucket?.runs ? { ...bucket.runs } : {},\n attempts: bucket?.attempts ? { ...bucket.attempts } : {},\n tasks: bucket?.tasks ? { ...bucket.tasks } : {},\n permissions: bucket?.permissions ? { ...bucket.permissions } : {},\n };\n}\n\nfunction cloneBucketForPartWrite(bucket: SessionBucket | undefined): SessionBucket {\n return {\n session: bucket?.session,\n inputs: bucket?.inputs ?? [],\n messages: bucket?.messages ?? [],\n partsByMessageId: bucket?.partsByMessageId ?? {},\n runs: bucket?.runs ?? {},\n attempts: bucket?.attempts ?? {},\n tasks: bucket?.tasks ?? {},\n permissions: bucket?.permissions ?? {},\n };\n}\n\n/** 按 id 覆盖后按 sortKey 升序排列。 */\nfunction upsertSorted<T extends { id: string }>(rows: T[], row: T, sortKey: (row: T) => number): T[] {\n const without = rows.filter((existing) => existing.id !== row.id);\n without.push(row);\n return without.sort((a, b) => sortKey(a) - sortKey(b));\n}\n\n/** session 列表排序:最近更新优先。 */\nfunction sortSessionOrder(sessions: Record<string, SessionRecord>): string[] {\n return Object.values(sessions)\n .sort((a, b) => b.updatedAt - a.updatedAt || a.id.localeCompare(b.id))\n .map((session) => session.id);\n}\n",
17
18
  "/**\n * Read-only selectors over the reducer state.\n *\n * These stay UI-agnostic so TUI/Web/Desktop can share the canonical\n * message/part view and map it to their own presentation models.\n */\n\nimport type { SessionBucket, SessionMessagePartRecord, SessionMessageRecord } from \"../types/index.js\";\n\nexport interface SessionMessageWithParts {\n message: SessionMessageRecord;\n parts: SessionMessagePartRecord[];\n}\n\nexport function selectSessionMessagesWithParts(\n bucket: SessionBucket | undefined,\n): SessionMessageWithParts[] {\n if (!bucket) return [];\n return [...bucket.messages]\n .sort((a, b) => a.seq - b.seq)\n .map((message) => ({\n message,\n parts: [...(bucket.partsByMessageId[message.id] ?? [])].sort((a, b) => a.seq - b.seq),\n }));\n}\n",
@@ -20,7 +21,7 @@
20
21
  "import type { ReloadPluginsResponse } from \"../types/index.js\";\n\n/** Reload invalidates runtimes; it does not prove that every plugin activated. */\nexport function formatPluginReload(result: ReloadPluginsResponse): string {\n const lines = [result.message];\n if (!result.plugins.length) lines.push(\"No plugins discovered.\");\n else {\n lines.push(\"Plugin validation after reload (runtimes load on next use):\");\n for (const plugin of result.plugins) {\n lines.push(`- ${plugin.identity.id} [${plugin.enabled ? \"enabled\" : \"disabled\"}/${plugin.installation}/${plugin.activation}]`);\n for (const diagnostic of plugin.diagnostics) lines.push(` ${diagnostic.severity}: ${diagnostic.code}: ${diagnostic.message}`);\n if (plugin.permissions.missing.length) lines.push(` Missing permissions: ${plugin.permissions.missing.join(\", \")}`);\n if (plugin.installation !== \"installed\" || plugin.permissions.missing.length || plugin.diagnostics.some(item => item.code.includes(\"permission\"))) {\n lines.push(plugin.scope === \"managed\"\n ? \" Ask your administrator to repair this managed plugin.\"\n : \" Review the source and permissions, then run ohs plugin install-local <source> or ohs plugin link <source>, supplying --approve <permission> for each requested permission.\");\n }\n }\n }\n lines.push(...result.warnings.map(warning => `! ${warning}`));\n return lines.join(\"\\n\");\n}\n",
21
22
  "import type { OpenHarnessClient } from \"../transport/http-client.js\";\nimport type { CommandCatalogEntry, OpenHarnessClientState } from \"../types/index.js\";\nimport type { JobReadResult, JobSnapshot } from \"@openharness/protocol\";\nimport { patchSessionRuntimeMetadata } from \"@openharness/protocol\";\nimport { formatPluginReload } from \"./plugin-presentation.js\";\n\nexport type SlashLine = { name: string; args: string };\n\nexport type PresentationReadRequest = {\n key: string;\n title: string;\n load: () => Promise<string>;\n};\n\nexport type RuntimeDiagnostics = {\n runtime?: string;\n platform?: string;\n architecture?: string;\n};\n\nexport type SessionCommandHost = {\n client: OpenHarnessClient;\n sessionId?: string;\n /** Project cwd for memory/git/plugins/etc. */\n cwd: string;\n /** Values used by /status */\n model?: string;\n permissionMode?: string;\n statusSessionId?: string;\n commandCatalog: CommandCatalogEntry[];\n clientState: OpenHarnessClientState;\n busy: boolean;\n /** Present a system/notice message to the user */\n emit(text: string): void;\n /** Present read-only output in a transient UI surface when available. */\n present?(title: string, content: string): void;\n /** Present cached read-only output immediately and refresh it asynchronously. */\n cacheFirstRead?(request: PresentationReadRequest): void;\n /** Optional status patch for /plan /provider */\n patchStatus?(patch: Record<string, unknown>): void;\n /** Host-specific runtime information used by /doctor. Browsers may omit it. */\n getRuntimeDiagnostics?(): RuntimeDiagnostics | Promise<RuntimeDiagnostics>;\n};\n\nexport type SessionCommandOutcome =\n | \"handled\"\n | \"unhandled\"\n | \"local_ui\";\n\n/** Client-local UI commands; never forwarded as model prompts. */\nexport const LOCAL_COMMAND_DETAILS: Array<{ name: string; description?: string }> = [\n { name: \"/new\", description: \"Start a new session\" },\n { name: \"/sessions\", description: \"List and switch sessions\" },\n { name: \"/resume\", description: \"Replay an interrupted prompt run\" },\n { name: \"/permissions\", description: \"Change permission mode\" },\n { name: \"/plan\", description: \"Toggle plan mode\" },\n { name: \"/theme\", description: \"Change TUI theme\" },\n { name: \"/models\", description: \"Select model\" },\n { name: \"/workflow\", description: \"Open Jobs panel with Workflow details\" },\n { name: \"/workflows\", description: \"Open Jobs panel with Workflow details\" },\n];\n\nexport const LOCAL_COMMAND_NAMES = new Set(LOCAL_COMMAND_DETAILS.map((entry) => entry.name));\n\nexport function parseSlashLine(line: string): SlashLine | null {\n const trimmed = line.trim();\n if (!trimmed.startsWith(\"/\")) return null;\n const spaceIdx = trimmed.search(/\\s/);\n if (spaceIdx === -1) return { name: trimmed, args: \"\" };\n return { name: trimmed.slice(0, spaceIdx), args: trimmed.slice(spaceIdx + 1).trim() };\n}\n\nexport function mergeCommandDetails(\n catalog: CommandCatalogEntry[],\n): Array<{ name: string; description?: string }> {\n const byName = new Map<string, { name: string; description?: string }>();\n for (const entry of LOCAL_COMMAND_DETAILS) byName.set(entry.name, entry);\n for (const entry of catalog) {\n if (byName.has(entry.name)) continue;\n byName.set(entry.name, {\n name: entry.name,\n ...(entry.description ? { description: entry.description } : {}),\n });\n }\n return [...byName.values()].sort((a, b) => a.name.localeCompare(b.name));\n}\n\nexport function hasActiveRun(state: OpenHarnessClientState, sessionId?: string): boolean {\n if (!sessionId) return false;\n const bucket = state.buckets[sessionId];\n if (!bucket) return false;\n return Object.values(bucket.runs).some((run) => run.status === \"pending\" || run.status === \"running\");\n}\n\nexport function resolveSessionCwd(input: {\n statusCwd?: unknown;\n daemonCwd?: string;\n fallback?: string;\n}): string {\n if (typeof input.statusCwd === \"string\" && input.statusCwd) return input.statusCwd;\n if (input.daemonCwd) return input.daemonCwd;\n return input.fallback ?? \".\";\n}\n\nfunction firstArg(args: string): string | undefined {\n return args.trim().split(/\\s+/).filter(Boolean)[0];\n}\n\nfunction shouldPresentSlashOutput(slash: SlashLine): boolean {\n switch (slash.name) {\n case \"/help\":\n case \"/version\":\n case \"/status\":\n case \"/mcp\":\n case \"/context\":\n case \"/stats\":\n case \"/agents\":\n case \"/doctor\":\n case \"/usage\":\n case \"/cost\":\n case \"/hooks\":\n case \"/subagents\":\n case \"/diff\":\n case \"/skills\":\n return true;\n case \"/config\": {\n const args = slash.args.trim();\n return !args || args === \"show\";\n }\n case \"/provider\":\n return !slash.args.trim();\n case \"/jobs\": {\n const sub = firstArg(slash.args);\n return !sub || sub === \"list\" || sub === \"show\";\n }\n case \"/memory\": {\n const sub = firstArg(slash.args);\n return !sub || sub === \"list\" || sub === \"show\";\n }\n case \"/auth\": {\n const sub = firstArg(slash.args);\n return !sub || sub === \"status\";\n }\n case \"/profile\": {\n const action = firstArg(slash.args) ?? \"status\";\n return action === \"status\" || action === \"show\";\n }\n case \"/effort\":\n case \"/turns\":\n return !slash.args.trim();\n case \"/output-style\": {\n const sub = firstArg(slash.args);\n return !sub || sub === \"show\" || sub === \"list\";\n }\n case \"/plugin\": {\n const sub = firstArg(slash.args);\n return !sub || sub === \"list\";\n }\n case \"/branch\":\n return !slash.args.trim() || slash.args.trim().split(/\\s+/).includes(\"list\");\n case \"/commit\":\n return !slash.args.trim();\n default:\n return false;\n }\n}\n\nfunction formatJobReadResult(result: JobReadResult): string {\n const snapshot: JobSnapshot = result.snapshot;\n const capabilities = [\n `read=${snapshot.capabilities.read}`,\n `wait=${snapshot.capabilities.wait}`,\n `send=${snapshot.capabilities.send}`,\n `cancel=${snapshot.capabilities.cancel}`,\n ].join(\", \");\n return [\n `Job: ${snapshot.id}`,\n ` Kind: ${snapshot.kind}`,\n ` Status: ${snapshot.status}`,\n ` Label: ${snapshot.label}`,\n ` Owner session: ${snapshot.ownerSession}`,\n ` CWD: ${snapshot.cwd}`,\n ` Started at: ${snapshot.startedAt}`,\n ` Updated at: ${snapshot.updatedAt}`,\n ` Finished at: ${snapshot.finishedAt ?? \"(n/a)\"}`,\n ` Detail: ${snapshot.detail ?? \"(none)\"}`,\n ` Capabilities: ${capabilities}`,\n ` Metadata: ${snapshot.metadata ? JSON.stringify(snapshot.metadata) : \"(none)\"}`,\n ` Cursor: ${result.cursor}`,\n ` Truncated: ${result.truncated}`,\n \"\",\n \"Output:\",\n result.text || \"(no output)\",\n ].join(\"\\n\");\n}\n\nfunction slashOutputTitle(slash: SlashLine): string {\n const name = slash.name.startsWith(\"/\") ? slash.name.slice(1) : slash.name;\n return name ? name[0]!.toUpperCase() + name.slice(1) : \"Output\";\n}\n\nexport async function dispatchSessionCommand(\n slash: SlashLine | null,\n host: SessionCommandHost,\n): Promise<SessionCommandOutcome> {\n const {\n client,\n sessionId,\n cwd,\n model,\n permissionMode,\n statusSessionId,\n commandCatalog,\n clientState,\n busy,\n } = host;\n const emit = (text: string) => {\n if (slash && host.present && shouldPresentSlashOutput(slash)) {\n host.present(slashOutputTitle(slash), text);\n return;\n }\n host.emit(text);\n };\n const readPresentation = async (\n key: string,\n title: string,\n load: () => Promise<string>,\n ): Promise<void> => {\n if (slash && host.cacheFirstRead && shouldPresentSlashOutput(slash)) {\n host.cacheFirstRead({ key, title, load });\n return;\n }\n emit(await load());\n };\n const patchStatus = (patch: Record<string, unknown>) => host.patchStatus?.(patch);\n\n if (slash?.name === \"/plan\") {\n const next =\n slash.args === \"on\" ? \"plan\"\n : slash.args === \"off\" ? \"default\"\n : undefined;\n if (!next) {\n emit(\"Usage: /plan [on|off]\");\n return \"handled\";\n }\n patchStatus({ permission_mode: next });\n if (sessionId) {\n await client.updateSession(sessionId, {\n metadata: patchSessionRuntimeMetadata({}, { permissionMode: next }),\n });\n }\n emit(`Permission mode: ${next}`);\n return \"handled\";\n }\n\n if (slash?.name === \"/skills\") {\n const templates = commandCatalog.filter((entry) => entry.kind === \"template\");\n if (slash.args) {\n const name = slash.args.startsWith(\"/\") ? slash.args : `/${slash.args}`;\n const match = templates.find((entry) => entry.name === name || entry.name === `/${slash.args}`);\n if (!match) {\n emit(`Unknown skill: ${slash.args}`);\n return \"handled\";\n }\n emit(`${match.name}${match.description ? ` — ${match.description}` : \"\"}`);\n return \"handled\";\n }\n if (templates.length === 0) {\n emit(\"No user-invocable skills available.\");\n return \"handled\";\n }\n emit(\n [\"Skills:\", ...templates.map((entry) =>\n `- ${entry.name}${entry.description ? ` — ${entry.description}` : \"\"}`)].join(\"\\n\"),\n );\n return \"handled\";\n }\n\n if (slash?.name === \"/help\") {\n const details = mergeCommandDetails(commandCatalog);\n emit(\n [\"Available commands:\", ...details.map((entry) =>\n `${entry.name}${entry.description ? ` — ${entry.description}` : \"\"}`)].join(\"\\n\"),\n );\n return \"handled\";\n }\n\n if (slash?.name === \"/version\") {\n await readPresentation(\"version\", \"Version\", async () => {\n const health = await client.health();\n return `OpenHarness${health.version ? ` v${health.version}` : \"\"}`;\n });\n return \"handled\";\n }\n\n if (slash?.name === \"/status\") {\n emit([\n \"Session status:\",\n ` session: ${statusSessionId ?? \"(none)\"}`,\n ` model: ${model ?? \"(unknown)\"}`,\n ` cwd: ${cwd || \"(unknown)\"}`,\n ` mode: ${permissionMode ?? \"default\"}`,\n ` busy: ${busy || hasActiveRun(clientState, sessionId) ? \"yes\" : \"no\"}`,\n ].join(\"\\n\"));\n return \"handled\";\n }\n\n if (slash?.name === \"/config\") {\n const args = slash.args.trim();\n if (!args || args === \"show\") {\n await readPresentation(`config:${cwd}`, \"Config\", async () => {\n const settings = await client.getSettings();\n return JSON.stringify(settings, null, 2);\n });\n return \"handled\";\n }\n const setMatch = args.match(/^set\\s+(\\S+)\\s+([\\s\\S]+)$/);\n if (!setMatch?.[1] || setMatch[2] === undefined) {\n emit(\"Usage: /config [show | set KEY VALUE]\");\n return \"handled\";\n }\n await client.patchSettings({ path: setMatch[1], value: setMatch[2].trim() });\n emit(`Set ${setMatch[1]} = ${setMatch[2].trim()}`);\n return \"handled\";\n }\n\n if (slash?.name === \"/provider\") {\n if (!slash.args) {\n await readPresentation(\"providers\", \"Provider\", async () => {\n const providers = await client.listProviders();\n const lines = [\"Available providers:\", \"\"];\n for (const provider of providers) {\n const marker = provider.active ? \" (active)\" : \"\";\n const keyStatus = provider.local ? \"[local]\" : provider.hasKey ? \"[key]\" : \"[no key]\";\n lines.push(` ${provider.name.padEnd(14)} ${provider.displayName.padEnd(14)} ${keyStatus}${marker}`);\n }\n return lines.join(\"\\n\");\n });\n return \"handled\";\n }\n const settings = await client.patchSettings(\n slash.args === \"auto\"\n ? { provider: \"auto\" }\n : { provider: slash.args },\n );\n if (typeof settings.model === \"string\") {\n patchStatus({ model: settings.model });\n }\n emit(`Provider switched to: ${slash.args}`);\n return \"handled\";\n }\n\n if (slash?.name === \"/mcp\") {\n if (!sessionId) return \"handled\";\n await readPresentation(`mcp:${sessionId}`, \"MCP\", async () => {\n const servers = await client.getSessionMcp(sessionId);\n if (servers.length === 0) return \"No MCP servers connected.\";\n return [\n `MCP Servers (${servers.length}):`,\n \"\",\n ...servers.flatMap((server) => [\n ` ${server.name}: ${server.status}`,\n ...(server.command ? [` Command: ${server.command}`] : []),\n ` Tools: ${server.toolCount} Resources: ${server.resourceCount}`,\n ...(server.error ? [` Error: ${server.error}`] : []),\n \"\",\n ]),\n ].join(\"\\n\");\n });\n return \"handled\";\n }\n\n if (slash?.name === \"/jobs\") {\n if (!sessionId) return \"handled\";\n const args = slash.args.trim();\n const [sub, id, ...extra] = args.split(/\\s+/).filter(Boolean);\n if ((!sub || sub === \"list\") && !id) {\n await readPresentation(`jobs:${sessionId}`, \"Jobs\", async () => {\n const jobs = await client.listJobs({\n sessionId,\n includeFinished: true,\n limit: 100,\n });\n if (jobs.length === 0) return \"No Jobs.\";\n return [\n `Jobs (${jobs.length}):`,\n \"\",\n ...jobs.map((job) => ` ${job.id} [${job.status}] ${job.kind}: ${job.label}`),\n ].join(\"\\n\");\n });\n return \"handled\";\n }\n if (sub === \"show\" && id && extra.length === 0) {\n await readPresentation(`job:${sessionId}:${id}`, \"Jobs\", async () => {\n const result = await client.readJob(id, { sessionId });\n return formatJobReadResult(result);\n });\n return \"handled\";\n }\n if (sub === \"cancel\" && id && extra.length === 0) {\n const snapshot = await client.cancelJob(id, {\n sessionId,\n reason: \"Cancelled from slash command\",\n });\n emit(`Job ${snapshot.id} status: ${snapshot.status}.`);\n return \"handled\";\n }\n emit(\"Usage: /jobs [list | show ID | cancel ID]\");\n return \"handled\";\n }\n\n if (slash?.name === \"/background\") {\n const command = slash.args.trim();\n if (!command) {\n emit(\"Usage: /background <command>\");\n return \"handled\";\n }\n if (!sessionId) return \"handled\";\n const result = await client.createBackgroundShell({ sessionId, command });\n emit(`Background shell started: ${result.jobId}. Use /jobs to inspect it.`);\n return \"handled\";\n }\n\n if (slash?.name === \"/memory\") {\n const args = slash.args.trim();\n const [sub, ...rest] = args.split(/\\s+/).filter(Boolean);\n if (!sub || sub === \"list\") {\n await readPresentation(`memory:${cwd}:list`, \"Memory\", async () => {\n const listed = await client.listMemory({ cwd });\n if (listed.entries.length === 0) return `Memory directory: ${listed.directory}\\nNo entries found.`;\n return [\n `Memory entries (${listed.entries.length}):`,\n \"\",\n ...listed.entries.map((entry) => {\n const tags = entry.tags?.length ? ` [${entry.tags.join(\", \")}]` : \"\";\n const preview = entry.content.length > 80\n ? `${entry.content.slice(0, 80)}...`\n : entry.content;\n return ` ${entry.id}${tags}: ${preview}`;\n }),\n ].join(\"\\n\");\n });\n return \"handled\";\n }\n if (sub === \"show\" && rest[0]) {\n const memoryId = rest[0];\n await readPresentation(`memory:${cwd}:show:${memoryId}`, \"Memory\", async () => {\n const entry = await client.getMemory(memoryId, { cwd });\n return [\n `ID: ${entry.id}`,\n `Created: ${new Date(entry.createdAt).toISOString()}`,\n `Updated: ${new Date(entry.updatedAt).toISOString()}`,\n `Tags: ${entry.tags?.join(\", \") ?? \"(none)\"}`,\n \"\",\n entry.content,\n ].join(\"\\n\");\n });\n return \"handled\";\n }\n if (sub === \"add\") {\n const content = rest.join(\" \").trim();\n if (!content) {\n emit(\"Usage: /memory add <content>\");\n return \"handled\";\n }\n const entry = await client.addMemory({ cwd, content });\n emit(`Memory added: ${entry.id}`);\n return \"handled\";\n }\n if (sub === \"remove\" && rest[0]) {\n await client.removeMemory(rest[0], { cwd });\n emit(`Memory removed: ${rest[0]}`);\n return \"handled\";\n }\n emit(\"Usage: /memory [list | show ID | add CONTENT | remove ID]\");\n return \"handled\";\n }\n\n if (slash?.name === \"/auth\") {\n const args = slash.args.trim();\n const [sub, provider, apiKey] = args.split(/\\s+/).filter(Boolean);\n if (!sub || sub === \"status\") {\n await readPresentation(\"auth:status\", \"Auth\", async () => {\n const auth = await client.getAuthStatus();\n const lines = [\"Credential status:\", \"\", \" Auth sources:\"];\n lines.push(\n ` codex_subscription: ${auth.codex.configured ? \"ready\" : auth.codex.state} (${auth.codex.source})`,\n );\n if (auth.storedProviders.length > 0) {\n lines.push(\"\", \" Stored credentials:\");\n for (const name of auth.storedProviders) lines.push(` ${name}: configured`);\n }\n if (auth.envProviders.length > 0) {\n lines.push(\" Environment variables:\");\n for (const env of auth.envProviders) lines.push(` ${env.name}: ${env.envKey}`);\n }\n if (auth.storedProviders.length === 0 && auth.envProviders.length === 0) {\n lines.push(\"\", \" No credentials configured.\");\n lines.push(\" Use /auth login <provider> <api-key> to store an API key.\");\n lines.push(\" Use /auth login codex to use a Codex subscription.\");\n }\n return lines.join(\"\\n\");\n });\n return \"handled\";\n }\n if (sub === \"login\") {\n if (!provider) {\n emit(\"Usage: /auth login <provider> <api-key> or /auth login codex\");\n return \"handled\";\n }\n const result = await client.authLogin({ provider, apiKey });\n emit(result.message);\n return \"handled\";\n }\n if (sub === \"logout\") {\n if (!provider) {\n emit(\"Usage: /auth logout <provider>\");\n return \"handled\";\n }\n const result = await client.authLogout({ provider });\n emit(result.message);\n return \"handled\";\n }\n emit(\"Unknown subcommand. Use login, logout, or status.\");\n return \"handled\";\n }\n\n if (slash?.name === \"/context\") {\n const action = slash.args.trim().split(/\\s+/).filter(Boolean)[0] ?? \"preview\";\n if (action === \"status\") {\n await readPresentation(`context:${cwd}:status`, \"Context\", async () => await client.getContextStatus({ cwd }));\n return \"handled\";\n }\n if (action === \"usage\") {\n await readPresentation(\n `context:${cwd}:usage:${sessionId ?? \"none\"}`,\n \"Context\",\n async () => {\n const result = await client.getContextUsage({\n cwd,\n ...(sessionId ? { sessionId } : {}),\n });\n return result.report;\n },\n );\n return \"handled\";\n }\n if (action !== \"preview\") {\n emit(\"Usage: /context [preview|status|usage]\");\n return \"handled\";\n }\n await readPresentation(`context:${cwd}`, \"Context\", async () => await client.getContextPreview({ cwd }));\n return \"handled\";\n }\n\n if (slash?.name === \"/stats\") {\n if (!sessionId) return \"handled\";\n const bucket = clientState.buckets[sessionId];\n const messageCount = bucket?.messages.length ?? 0;\n const text = (bucket?.messages ?? [])\n .flatMap((message) => bucket?.partsByMessageId[message.id] ?? [])\n .map((part) => part.text ?? \"\")\n .join(\" \");\n const estimatedTokens = Math.max(1, Math.ceil(text.length / 4));\n const [memory, jobsResult, settings] = await Promise.all([\n client.listMemory({ cwd }).catch(() => ({ entries: [] as Array<{ id: string }> })),\n client.listJobs({ sessionId, includeFinished: true, limit: 100 })\n .then((jobs) => ({ jobs }))\n .catch((error: unknown) => ({\n error: error instanceof Error ? error.message : String(error),\n })),\n client.getSettings().catch(() => ({} as Record<string, unknown>)),\n ]);\n const jobsSummary = \"jobs\" in jobsResult\n ? String(jobsResult.jobs.length)\n : `unavailable (${jobsResult.error})`;\n emit([\n \"Session stats:\",\n `- messages: ${messageCount}`,\n `- estimated_tokens: ${estimatedTokens}`,\n `- memory_entries: ${memory.entries.length}`,\n `- jobs: ${jobsSummary}`,\n `- output_style: ${typeof settings.outputStyle === \"string\" ? settings.outputStyle : \"default\"}`,\n ].join(\"\\n\"));\n return \"handled\";\n }\n\n if (slash?.name === \"/agents\") {\n if (!sessionId) return \"handled\";\n const agents = await client.listJobs({\n sessionId,\n kinds: [\"agent\"],\n includeFinished: true,\n limit: 100,\n });\n if (agents.length === 0) {\n emit(\"No Agent Jobs.\");\n return \"handled\";\n }\n emit(\n [\n `Agent Jobs (${agents.length}):`,\n \"\",\n ...agents.map((job) => ` ${job.id} [${job.status}] ${job.label}`),\n ].join(\"\\n\"),\n );\n return \"handled\";\n }\n\n if (slash?.name === \"/rewind\") {\n if (!sessionId) return \"handled\";\n const raw = slash.args.trim().split(/\\s+/).filter(Boolean)[0] ?? \"1\";\n const count = Number.parseInt(raw, 10);\n if (!Number.isInteger(count) || count < 1) {\n emit(\"Count must be a positive integer\");\n return \"handled\";\n }\n const result = await client.rewindSession(sessionId, { count });\n emit(`Rewound ${result.turns} turn(s), removed ${result.removed} message(s).`);\n return \"handled\";\n }\n\n if (slash?.name === \"/compact\") {\n if (!sessionId) return \"handled\";\n const result = await client.compactSession(sessionId);\n emit(`Conversation compacted (${result.messageCount} messages retained).`);\n return \"handled\";\n }\n\n if (slash?.name === \"/remember\") {\n if (!sessionId) return \"handled\";\n const result = await client.rememberSession(sessionId);\n if (result.skipped) {\n emit(`未写入记忆:${result.reason ?? \"skipped\"}`);\n return \"handled\";\n }\n emit(`已写入 ${result.writtenIds.length} 条记忆:${result.titles.join(\"、\")}`);\n return \"handled\";\n }\n\n if (slash?.name === \"/dream\") {\n const preview = slash.args.includes(\"--preview\");\n const result = await client.startDream({\n cwd,\n ...(sessionId ? { sessionId } : {}),\n preview,\n });\n emit(`Dream started as Job ${result.taskId}. Use /jobs to inspect it.`);\n return \"handled\";\n }\n\n if (slash?.name === \"/profile\") {\n const action = slash.args.trim().split(/\\s+/).filter(Boolean)[0] ?? \"status\";\n if (action === \"status\" || action === \"show\") {\n emit(await client.getProfileStatus());\n return \"handled\";\n }\n if (action === \"init\") {\n emit(await client.initProfile());\n return \"handled\";\n }\n emit(\"Usage: /profile [status|init]\");\n return \"handled\";\n }\n\n if (slash?.name === \"/doctor\") {\n const [settings, auth, memory, mcp, jobsResult] = await Promise.all([\n client.getSettings().catch(() => ({}) as Record<string, unknown>),\n client.getAuthStatus().catch(() => null),\n client.listMemory({ cwd }).catch(() => ({ directory: \"(unavailable)\", entries: [] as Array<{ id: string }> })),\n sessionId ? client.getSessionMcp(sessionId).catch(() => []) : Promise.resolve([]),\n sessionId\n ? client.listJobs({ sessionId, includeFinished: true, limit: 100 })\n .then((jobs) => ({ jobs }))\n .catch((error: unknown) => ({\n error: error instanceof Error ? error.message : String(error),\n }))\n : Promise.resolve({ jobs: [] as JobSnapshot[] }),\n ]);\n const jobsSummary = \"jobs\" in jobsResult\n ? String(jobsResult.jobs.length)\n : `unavailable (${jobsResult.error})`;\n const bucket = sessionId ? clientState.buckets[sessionId] : undefined;\n const diagnostics = await host.getRuntimeDiagnostics?.();\n const runtime = diagnostics?.runtime ?? \"(not provided by this host)\";\n const platform = [diagnostics?.platform, diagnostics?.architecture]\n .filter(Boolean)\n .join(\" \") || \"(not provided by this host)\";\n const lines = [\n \"OpenHarness Environment Diagnostic\",\n \"═\".repeat(40),\n \"\",\n `CWD: ${cwd}`,\n `Runtime: ${runtime}`,\n `Platform: ${platform}`,\n `Model: ${model ?? String(settings.model ?? \"(unknown)\")}`,\n `API Format: ${String(settings.apiFormat ?? \"(default)\")}`,\n `Base URL: ${String(settings.baseUrl ?? \"(default)\")}`,\n `Permission: ${typeof settings.permission === \"object\" && settings.permission && \"mode\" in settings.permission\n ? String((settings.permission as { mode?: string }).mode ?? \"default\")\n : \"default\"}`,\n `Max Turns: ${String(settings.maxTurns ?? \"(default)\")}`,\n `Effort: ${String(settings.effort ?? \"medium\")}`,\n `Passes: ${String(settings.passes ?? 1)}`,\n `Fast Mode: ${settings.fastMode ? \"on\" : \"off\"}`,\n `Theme: ${String(settings.theme ?? \"default\")}`,\n \"\",\n `Messages: ${bucket?.messages.length ?? 0}`,\n `Jobs: ${jobsSummary}`,\n \"\",\n `Memory dir: ${memory.directory}`,\n `Memory entries: ${memory.entries.length}`,\n ];\n if (auth) {\n lines.push(\n \"\",\n `Codex auth: ${auth.codex.configured ? \"ready\" : auth.codex.state} (${auth.codex.source})`,\n `Stored keys: ${auth.storedProviders.length ? auth.storedProviders.join(\", \") : \"(none)\"}`,\n );\n }\n lines.push(\"\", \"MCP Servers:\");\n if (mcp.length === 0) lines.push(\" (none)\");\n else {\n for (const server of mcp) {\n lines.push(` ${server.name}: ${server.status} (${server.toolCount} tools)`);\n }\n }\n emit(lines.join(\"\\n\"));\n return \"handled\";\n }\n\n if (slash?.name === \"/effort\") {\n const level = slash.args.trim().split(/\\s+/).filter(Boolean)[0];\n if (!level) {\n const settings = await client.getSettings();\n emit(`Current effort: ${String(settings.effort ?? \"medium\")}`);\n return \"handled\";\n }\n if (level !== \"low\" && level !== \"medium\" && level !== \"high\") {\n emit(\"Invalid effort. Use: low, medium, or high\");\n return \"handled\";\n }\n await client.patchSettings({ effort: level });\n emit(`Effort set to: ${level}`);\n return \"handled\";\n }\n\n if (slash?.name === \"/fast\") {\n const arg = slash.args.trim().split(/\\s+/).filter(Boolean)[0];\n const settings = await client.getSettings();\n const current = settings.fastMode === true;\n let next: boolean;\n if (arg === \"on\") next = true;\n else if (arg === \"off\") next = false;\n else next = !current;\n await client.patchSettings({ fastMode: next });\n emit(`Fast mode: ${next ? \"ON\" : \"OFF\"}`);\n return \"handled\";\n }\n\n if (slash?.name === \"/turns\") {\n const value = slash.args.trim().split(/\\s+/).filter(Boolean)[0];\n if (!value) {\n const settings = await client.getSettings();\n emit(`Current max turns: ${String(settings.maxTurns ?? \"(default)\")}`);\n return \"handled\";\n }\n const n = Number.parseInt(value, 10);\n if (!Number.isFinite(n) || n < 1 || n > 512) {\n emit(\"Value must be between 1 and 512\");\n return \"handled\";\n }\n await client.patchSettings({ maxTurns: n });\n emit(`Max turns set to: ${n}`);\n return \"handled\";\n }\n\n if (slash?.name === \"/usage\" || slash?.name === \"/cost\") {\n if (!sessionId) return \"handled\";\n if (slash.name === \"/cost\") {\n await readPresentation(`cost:${sessionId}`, \"Cost\", async () => {\n const usage = await client.getSessionUsage(sessionId);\n return [\n \"Cost estimate:\",\n ` Model: ${usage.model}`,\n ` Input tokens: ${usage.inputTokens.toLocaleString()}`,\n ` Output tokens: ${usage.outputTokens.toLocaleString()}`,\n ` Est. cost: ${usage.estimatedCost}`,\n ...(usage.cacheCreationTokens\n ? [` Cache write: ${usage.cacheCreationTokens.toLocaleString()}`]\n : []),\n ...(usage.cacheReadTokens\n ? [` Cache read: ${usage.cacheReadTokens.toLocaleString()}`]\n : []),\n ].join(\"\\n\");\n });\n return \"handled\";\n }\n await readPresentation(`usage:${sessionId}`, \"Usage\", async () => {\n const usage = await client.getSessionUsage(sessionId);\n return [\n \"Token usage:\",\n ` Input: ${usage.inputTokens.toLocaleString()}`,\n ` Output: ${usage.outputTokens.toLocaleString()}`,\n ` Total: ${(usage.inputTokens + usage.outputTokens).toLocaleString()}`,\n ` Cache write: ${usage.cacheCreationTokens.toLocaleString()}`,\n ` Cache read: ${usage.cacheReadTokens.toLocaleString()}`,\n ` Messages: ${usage.messageCount}`,\n ` Est. cost: ${usage.estimatedCost}`,\n ].join(\"\\n\");\n });\n return \"handled\";\n }\n\n if (slash?.name === \"/export\") {\n if (!sessionId) return \"handled\";\n const args = slash.args.trim().split(/\\s+/).filter(Boolean);\n const forceJson = args.includes(\"--json\");\n const filename = args.find((arg) => !arg.startsWith(\"--\"));\n const result = await client.exportSession(sessionId, {\n ...(filename ? { filename } : {}),\n json: forceJson,\n });\n emit(`Exported ${result.format === \"json\" ? \"JSON\" : \"Markdown\"} to: ${result.filepath}`);\n return \"handled\";\n }\n\n if (slash?.name === \"/output-style\") {\n const args = slash.args.trim();\n const styles = await client.listOutputStyles();\n const settings = await client.getSettings();\n const current = typeof settings.outputStyle === \"string\" ? settings.outputStyle : \"default\";\n const firstSpace = args.search(/\\s/);\n const first = firstSpace === -1 ? args : args.slice(0, firstSpace);\n const rest = firstSpace === -1 ? \"\" : args.slice(firstSpace + 1).trim();\n\n if (!first || first === \"show\") {\n emit(`Output style: ${current}`);\n return \"handled\";\n }\n if (first === \"list\") {\n emit(\n styles\n .map((style) => `${style.name === current ? \"* \" : \" \"}${style.name} [${style.source}]`)\n .join(\"\\n\"),\n );\n return \"handled\";\n }\n\n const styleName = first === \"set\" && rest ? rest : rest === \"\" ? first : undefined;\n if (!styleName) {\n emit(\"Usage: /output-style [show|list|NAME]\");\n return \"handled\";\n }\n if (!styles.some((style) => style.name === styleName)) {\n emit(`Unknown output style: ${styleName}`);\n return \"handled\";\n }\n await client.patchSettings({ outputStyle: styleName });\n emit(`Output style set to ${styleName}`);\n return \"handled\";\n }\n\n if (slash?.name === \"/init\") {\n emit(await client.initProject({ cwd }));\n return \"handled\";\n }\n\n if (slash?.name === \"/plugin\") {\n const args = slash.args.trim().split(/\\s+/).filter(Boolean);\n const sub = args[0];\n if (!sub || sub === \"list\") {\n await readPresentation(`plugins:${cwd}`, \"Plugin\", async () => {\n const listed = await client.listPlugins({ cwd });\n if (listed.plugins.length === 0) return \"No plugins discovered.\";\n return [\n ...listed.plugins.map(\n (plugin) =>\n `- ${plugin.identity.id} (${plugin.identity.name}@${plugin.identity.version}) ` +\n `[${plugin.origin}/${plugin.scope}/${plugin.enabled ? \"enabled\" : \"disabled\"}/${plugin.activation}] ` +\n Object.entries(plugin.inventory).map(([kind, count]) => `${kind}=${count}`).join(\" \") +\n plugin.diagnostics.map((item) => `\\n ! ${item.code}: ${item.message}`).join(\"\"),\n ),\n ...listed.warnings.map((warning) => `! ${warning}`),\n ].join(\"\\n\");\n });\n return \"handled\";\n }\n if ((sub === \"enable\" || sub === \"disable\") && args[1]) {\n const result = sub === \"enable\"\n ? await client.enablePlugin(args[1], { cwd })\n : await client.disablePlugin(args[1], { cwd });\n emit(result.message);\n return \"handled\";\n }\n emit(\"Usage: /plugin [list|enable ID|disable ID]\");\n return \"handled\";\n }\n\n if (slash?.name === \"/reload-plugins\") {\n const result = await client.reloadPlugins({ cwd });\n emit(formatPluginReload(result));\n return \"handled\";\n }\n\n if (slash?.name === \"/hooks\") {\n await readPresentation(`hooks:${cwd}:${sessionId ?? \"global\"}`, \"Hooks\", async () => {\n const hooks = await client.listHooks({\n cwd,\n ...(sessionId ? { sessionId } : {}),\n });\n if (hooks.length === 0) return \"No hooks configured.\";\n const settingsHooks = hooks.filter((hook) => hook.origin === \"settings\");\n const runtimeHooks = hooks.filter((hook) => hook.origin === \"runtime\");\n const lines = [\"Hooks:\", \"\"];\n if (runtimeHooks.length > 0) {\n lines.push(\"Runtime hooks:\");\n for (const hook of runtimeHooks) {\n lines.push(` ${hook.id}: ${hook.event} (${hook.type}) [${hook.enabled ? \"enabled\" : \"disabled\"}]`);\n }\n lines.push(\"\");\n }\n if (settingsHooks.length > 0) {\n lines.push(\"Settings hooks:\");\n for (const hook of settingsHooks) {\n lines.push(` ${hook.id}: ${hook.event} (${hook.type}) [${hook.enabled ? \"enabled\" : \"disabled\"}]`);\n }\n }\n return lines.join(\"\\n\");\n });\n return \"handled\";\n }\n\n if (slash?.name === \"/subagents\") {\n const agents = await client.listAgentPersonas();\n emit(\n [\n `Available subagent personas (${agents.length}):`,\n \"\",\n ...agents.flatMap((agent) => [\n `- ${agent.name} [${agent.source ?? \"builtin\"}]${agent.model ? ` model=${agent.model}` : \"\"}`,\n ` ${agent.description.split(\"\\n\")[0]?.slice(0, 100) ?? \"\"}`,\n ]),\n \"\",\n '用法: Agent 工具 subagentType=\"<name>\" 派发;/agents 查看 Agent Jobs。',\n ].join(\"\\n\"),\n );\n return \"handled\";\n }\n\n if (slash?.name === \"/diff\") {\n const full = slash.args.trim().split(/\\s+/).includes(\"full\");\n await readPresentation(`git:diff:${cwd}:${full ? \"full\" : \"summary\"}`, \"Diff\", async () =>\n await client.getGitDiff({ cwd, full }));\n return \"handled\";\n }\n\n if (slash?.name === \"/branch\") {\n const list = slash.args.trim().split(/\\s+/).includes(\"list\");\n await readPresentation(`git:branch:${cwd}:${list ? \"list\" : \"current\"}`, \"Branch\", async () =>\n await client.getGitBranch({ cwd, list }));\n return \"handled\";\n }\n\n if (slash?.name === \"/commit\") {\n const message = slash.args.trim();\n if (!message) {\n await readPresentation(`git:status:${cwd}`, \"Commit\", async () => await client.getGitStatus({ cwd }));\n return \"handled\";\n }\n emit(await client.gitCommit({ cwd, message }));\n return \"handled\";\n }\n\n if (slash && LOCAL_COMMAND_NAMES.has(slash.name)) {\n // UI-only commands are handled by the host UI layer; ignore accidental falls-through.\n return \"local_ui\";\n }\n\n return \"unhandled\";\n}\n",
22
23
  "export * from \"./session-commands.js\";\n",
23
- "/**\n * @openharness/client 公共导出。\n *\n * 面向 TUI / Web / Desktop:typed HTTP API、SSE 解析、事件 reducer、replay+live 同步。\n * 客户端只做展示与控制,不拥有 agent runtime。\n */\n\nexport {\n createPromptRequestId,\n normalizeDaemonBaseUrl,\n OpenHarnessApiError,\n IncompatibleProtocolError,\n OpenHarnessClient,\n streamServerSentEvents,\n} from \"./transport/index.js\";\nexport type {\n AttachmentAssetRecord,\n ClientProtocolSupport,\n ProtocolCompatibility,\n ServerCapabilities,\n} from \"@openharness/protocol\";\nexport {\n checkProtocolCompatibility,\n supportsFeature,\n} from \"@openharness/protocol\";\nexport {\n applyEvent,\n applyEvents,\n applySessionSnapshot,\n createInitialClientState,\n hydrateState,\n selectSessionMessagesWithParts,\n syncEvents,\n UnsupportedSessionEventSchemaVersionError,\n} from \"./state/index.js\";\nexport {\n LOCAL_COMMAND_DETAILS,\n LOCAL_COMMAND_NAMES,\n dispatchSessionCommand,\n hasActiveRun,\n mergeCommandDetails,\n parseSlashLine,\n resolveSessionCwd,\n} from \"./commands/index.js\";\nexport {\n patchSessionRuntimeMetadata,\n readRuntimeMetadata,\n readSessionRuntimeConfig,\n} from \"@openharness/protocol\";\nexport type {\n SessionRuntimeConfig,\n SessionRuntimeConfigPatch,\n} from \"@openharness/protocol\";\nexport type {\n PresentationReadRequest,\n SessionCommandHost,\n SessionCommandOutcome,\n SlashLine,\n} from \"./commands/index.js\";\nexport type {\n AdmitClientPromptInput,\n AgentPersonaInfo,\n AttachmentStorageGcResult,\n AttachmentStorageIssue,\n AttachmentStorageRepairResult,\n AttachmentStorageReport,\n AuthStatus,\n CommandCatalogEntry,\n CommandKind,\n CommandSelection,\n CommandSource,\n CompactSessionResponse,\n CancelQueuedClientPromptInput,\n CancelQueuedPromptResponse,\n CreateBackgroundShellInput,\n CreateBackgroundShellResult,\n CreateScheduledTaskInput,\n AdmitPromptAttachmentInput,\n CreateClientSessionInput,\n EditLatestClientPromptInput,\n EventSyncOptions,\n ForkClientSessionInput,\n HookInfo,\n ReloadPluginsResponse,\n RewindSessionResponse,\n InputDelivery,\n InterruptSessionResponse,\n ListClientMessagePartsOptions,\n ListCommandsOptions,\n ListEventsOptions,\n ListMessagesOptions,\n ListPermissionsOptions,\n ListSessionsOptions,\n ListProjectsOptions,\n ProjectRecord,\n McpServerStatus,\n MemoryEntryRecord,\n MemoryListResponse,\n ModelInfo,\n ModelProviderInfo,\n OpenHarnessClientOptions,\n OpenHarnessClientState,\n OpenHarnessServerHealth,\n OutputStyleInfo,\n PermissionRequestRecord,\n PermissionStatus,\n PluginInfo,\n SkillInfo,\n SkillProject,\n SkillSnapshot,\n SkillSource,\n PromoteQueuedClientPromptInput,\n PromoteQueuedPromptResponse,\n PromptResponse,\n ProviderInfo,\n CustomProviderInput,\n RememberSessionResponse,\n ReplyPermissionInput,\n ScheduledRunRecord,\n ScheduledTaskRecord,\n ScheduledTaskStatusSummary,\n SessionBucket,\n UpdateScheduledTaskInput,\n SessionEventRecord,\n SessionAttachmentMessagePartRecord,\n SessionInputAttachmentRecord,\n SessionExportResponse,\n SessionInputRecord,\n SessionMessagePartRecord,\n SessionMessageRecord,\n SessionRecord,\n SessionRunRecord,\n SessionRunAttemptRecord,\n SessionExecutionRecord,\n SessionStateSnapshot,\n SessionTransformationMessagePartRecord,\n SessionUserInputItem,\n SessionUsageResponse,\n StartDreamResponse,\n SyncEventUpdate,\n UpdateClientSessionInput,\n UploadAttachmentInput,\n DownloadAttachmentOptions,\n} from \"./types/index.js\";\nexport type { SessionMessageWithParts } from \"./state/index.js\";\nexport type {\n TerminalCreateRequest,\n TerminalEvent,\n TerminalReadRequest,\n TerminalReadResult,\n TerminalResizeRequest,\n TerminalRuntime,\n TerminalSessionInfo,\n TerminalSessionStatus,\n TerminalSignal,\n TerminalSource,\n TerminalWriteRequest,\n JobCapabilities,\n JobKind,\n JobReadResult,\n JobSnapshot,\n JobStatus,\n JobWaitResult,\n DurableChannelMessageInput,\n DurableChannelMessageResult,\n ExternalConversationRecord,\n ChannelDeliveryRecord,\n ChannelDeliveryStatus,\n ChannelStatusSnapshot,\n RecordChannelDeliveryInput,\n} from \"@openharness/protocol\";\n",
24
+ "/**\n * @openharness/client 公共导出。\n *\n * 面向 TUI / Web / Desktop:typed HTTP API、SSE 解析、事件 reducer、replay+live 同步。\n * 客户端只做展示与控制,不拥有 agent runtime。\n */\n\nexport {\n createPromptRequestId,\n normalizeDaemonBaseUrl,\n OpenHarnessApiError,\n IncompatibleProtocolError,\n OpenHarnessClient,\n streamServerSentEvents,\n} from \"./transport/index.js\";\nexport { parseCreateSessionGoalInput, parseUpdateSessionGoalInput, parseGoalActionInput } from \"@openharness/protocol\";\nexport type {\n AgentEnvironmentCapabilities,\n AttachmentAssetRecord,\n ClientProtocolSupport,\n ProtocolCompatibility,\n ServerCapabilities,\n} from \"@openharness/protocol\";\nexport {\n checkProtocolCompatibility,\n supportsFeature,\n} from \"@openharness/protocol\";\nexport {\n applyEvent,\n applyEvents,\n applySessionSnapshot,\n createInitialClientState,\n hydrateState,\n selectSessionMessagesWithParts,\n syncEvents,\n UnsupportedSessionEventSchemaVersionError,\n} from \"./state/index.js\";\nexport {\n LOCAL_COMMAND_DETAILS,\n LOCAL_COMMAND_NAMES,\n dispatchSessionCommand,\n hasActiveRun,\n mergeCommandDetails,\n parseSlashLine,\n resolveSessionCwd,\n} from \"./commands/index.js\";\nexport {\n patchSessionRuntimeMetadata,\n readRuntimeMetadata,\n readSessionRuntimeConfig,\n} from \"@openharness/protocol\";\nexport type {\n SessionRuntimeConfig,\n SessionRuntimeConfigPatch,\n} from \"@openharness/protocol\";\nexport type {\n PresentationReadRequest,\n SessionCommandHost,\n SessionCommandOutcome,\n SlashLine,\n} from \"./commands/index.js\";\nexport type {\n AdmitClientPromptInput,\n AgentPersonaInfo,\n AttachmentStorageGcResult,\n AttachmentStorageIssue,\n AttachmentStorageRepairResult,\n AttachmentStorageReport,\n AuthStatus,\n CommandCatalogEntry,\n CommandKind,\n CommandSelection,\n CommandSource,\n CompactSessionResponse,\n CancelQueuedClientPromptInput,\n CancelQueuedPromptResponse,\n CreateBackgroundShellInput,\n CreateBackgroundShellResult,\n CreateScheduledTaskInput,\n AdmitPromptAttachmentInput,\n CreateClientSessionInput,\n EditLatestClientPromptInput,\n EventSyncOptions,\n ForkClientSessionInput,\n HookInfo,\n ReloadPluginsResponse,\n RewindSessionResponse,\n InputDelivery,\n InterruptSessionResponse,\n ListClientMessagePartsOptions,\n ListCommandsOptions,\n ListEventsOptions,\n ListMessagesOptions,\n ListPermissionsOptions,\n ListSessionsOptions,\n ListProjectsOptions,\n ProjectRecord,\n McpServerStatus,\n MemoryEntryRecord,\n MemoryListResponse,\n ModelInfo,\n ModelProviderInfo,\n OpenHarnessClientOptions,\n OpenHarnessClientState,\n OpenHarnessServerHealth,\n OutputStyleInfo,\n PermissionRequestRecord,\n PermissionStatus,\n PluginInfo,\n SkillInfo,\n SkillProject,\n SkillSnapshot,\n SkillSource,\n PromoteQueuedClientPromptInput,\n PromoteQueuedPromptResponse,\n PromptResponse,\n ProviderInfo,\n CustomProviderInput,\n RememberSessionResponse,\n ReplyPermissionInput,\n ScheduledRunRecord,\n ScheduledTaskRecord,\n ScheduledTaskStatusSummary,\n SessionBucket,\n UpdateScheduledTaskInput,\n SessionEventRecord,\n SessionAttachmentMessagePartRecord,\n SessionInputAttachmentRecord,\n SessionExportResponse,\n SessionInputRecord,\n SessionMessagePartRecord,\n SessionMessageRecord,\n SessionRecord,\n SessionRunRecord,\n SessionRunAttemptRecord,\n SessionExecutionRecord,\n SessionStateSnapshot,\n SessionTransformationMessagePartRecord,\n SessionUserInputItem,\n SessionGoal,\n CreateSessionGoalInput,\n UpdateSessionGoalInput,\n GoalActionInput,\n SessionUsageResponse,\n StartDreamResponse,\n SyncEventUpdate,\n UpdateClientSessionInput,\n UploadAttachmentInput,\n DownloadAttachmentOptions,\n} from \"./types/index.js\";\nexport type { SessionMessageWithParts } from \"./state/index.js\";\nexport type {\n TerminalCreateRequest,\n TerminalEvent,\n TerminalReadRequest,\n TerminalReadResult,\n TerminalResizeRequest,\n TerminalRuntime,\n TerminalSessionInfo,\n TerminalSessionStatus,\n TerminalSignal,\n TerminalSource,\n TerminalWriteRequest,\n JobCapabilities,\n JobKind,\n JobReadResult,\n JobSnapshot,\n JobStatus,\n JobWaitResult,\n DurableChannelMessageInput,\n DurableChannelMessageResult,\n ExternalConversationRecord,\n ChannelDeliveryRecord,\n ChannelDeliveryStatus,\n ChannelStatusSnapshot,\n RecordChannelDeliveryInput,\n} from \"@openharness/protocol\";\n",
24
25
  "import type { JobReadResult, JobSnapshot } from \"@openharness/client\";\n\nexport type JobRemoteState =\n | { status: \"idle\"; jobs: JobSnapshot[] }\n | { status: \"loading\"; jobs: JobSnapshot[] }\n | { status: \"ready\"; jobs: JobSnapshot[]; refreshedAt: number }\n | { status: \"error\"; jobs: JobSnapshot[]; error: string; refreshedAt?: number };\n\nexport type JobDetailRemoteState =\n | { status: \"idle\" }\n | { status: \"loading\"; jobId: string; previous?: JobReadResult }\n | { status: \"ready\"; jobId: string; result: JobReadResult; refreshedAt: number }\n | { status: \"error\"; jobId: string; error: string; previous?: JobReadResult };\n\nexport function beginJobList(previous: JobRemoteState): JobRemoteState {\n return { status: \"loading\", jobs: [...previous.jobs] };\n}\n\nexport function resolveJobList(\n jobs: JobSnapshot[],\n now: number,\n previous?: JobRemoteState,\n): JobRemoteState {\n const cachedById = new Map(previous?.jobs.map((job) => [job.id, job]) ?? []);\n return {\n status: \"ready\",\n jobs: jobs.map((snapshot) => preferMonotonicSnapshot(cachedById.get(snapshot.id), snapshot)),\n refreshedAt: now,\n };\n}\n\nexport function rejectJobList(previous: JobRemoteState, error: string): JobRemoteState {\n const refreshedAt = \"refreshedAt\" in previous ? previous.refreshedAt : undefined;\n return {\n status: \"error\",\n jobs: [...previous.jobs],\n error,\n ...(refreshedAt !== undefined ? { refreshedAt } : {}),\n };\n}\n\nexport function mergeJobSnapshot(\n state: JobRemoteState,\n snapshot: JobSnapshot,\n now: number,\n): JobRemoteState {\n const found = state.jobs.some((job) => job.id === snapshot.id);\n const jobs = found\n ? state.jobs.map((job) => job.id === snapshot.id ? preferMonotonicSnapshot(job, snapshot) : job)\n : [snapshot, ...state.jobs];\n return { status: \"ready\", jobs, refreshedAt: now };\n}\n\nfunction preferMonotonicSnapshot(\n cached: JobSnapshot | undefined,\n incoming: JobSnapshot,\n): JobSnapshot {\n if (!cached) return incoming;\n if (isTerminalStatus(cached.status) && !isTerminalStatus(incoming.status)) return cached;\n if (incoming.updatedAt < cached.updatedAt) return cached;\n return incoming;\n}\n\nfunction isTerminalStatus(status: JobSnapshot[\"status\"]): boolean {\n return status === \"completed\" || status === \"killed\" || status === \"failed\";\n}\n\nconst JOB_KINDS = [\"terminal\", \"shell\", \"agent\", \"dream\", \"workflow\"] as const;\nconst JOB_STATUSES = [\"running\", \"stopping\", \"completed\", \"killed\", \"failed\"] as const;\n\ntype UnknownRecord = Record<string, unknown>;\n\nfunction isRecord(value: unknown): value is UnknownRecord {\n return typeof value === \"object\" && value !== null && !Array.isArray(value);\n}\n\nfunction isJobSnapshot(value: unknown, ownerSession: string): value is JobSnapshot {\n if (!isRecord(value)) {\n return false;\n }\n\n const capabilities = value.capabilities;\n return (\n typeof value.id === \"string\" &&\n value.id.trim().length > 0 &&\n value.ownerSession === ownerSession &&\n typeof value.label === \"string\" &&\n typeof value.cwd === \"string\" &&\n typeof value.kind === \"string\" &&\n JOB_KINDS.includes(value.kind as (typeof JOB_KINDS)[number]) &&\n typeof value.status === \"string\" &&\n JOB_STATUSES.includes(value.status as (typeof JOB_STATUSES)[number]) &&\n Number.isFinite(value.startedAt) &&\n Number.isFinite(value.updatedAt) &&\n (value.finishedAt === undefined || Number.isFinite(value.finishedAt)) &&\n (value.detail === undefined || typeof value.detail === \"string\") &&\n (value.metadata === undefined || isRecord(value.metadata)) &&\n isRecord(capabilities) &&\n typeof capabilities.read === \"boolean\" &&\n typeof capabilities.wait === \"boolean\" &&\n typeof capabilities.send === \"boolean\" &&\n typeof capabilities.cancel === \"boolean\"\n );\n}\n\nexport function validateJobSnapshot(\n value: unknown,\n ownerSession: string,\n expectedJobId?: string,\n): { snapshot?: JobSnapshot; error?: string } {\n if (!isRecord(value)) {\n return { error: \"Job snapshot has invalid fields.\" };\n }\n if (typeof value.id === \"string\" && expectedJobId !== undefined && value.id !== expectedJobId) {\n return { error: `Job snapshot id \"${value.id}\" does not match requested Job \"${expectedJobId}\".` };\n }\n if (typeof value.ownerSession === \"string\" && value.ownerSession !== ownerSession) {\n return { error: `Job snapshot ownerSession \"${value.ownerSession}\" does not match active session \"${ownerSession}\".` };\n }\n if (!isJobSnapshot(value, ownerSession)) {\n return { error: \"Job snapshot has invalid fields.\" };\n }\n return { snapshot: value };\n}\n\nexport function validateJobReadResult(\n value: unknown,\n ownerSession: string,\n expectedJobId: string,\n): { result?: JobReadResult; error?: string } {\n if (\n !isRecord(value) ||\n typeof value.text !== \"string\" ||\n !Number.isFinite(value.cursor) ||\n typeof value.truncated !== \"boolean\" ||\n (value.details !== undefined && !isRecord(value.details))\n ) {\n return { error: `Job read response for \"${expectedJobId}\" has invalid fields.` };\n }\n const snapshotValidation = validateJobSnapshot(value.snapshot, ownerSession, expectedJobId);\n if (!snapshotValidation.snapshot) {\n return { error: snapshotValidation.error ?? \"Job snapshot has invalid fields.\" };\n }\n return { result: value as unknown as JobReadResult };\n}\n\nexport function validateJobSnapshots(\n value: unknown,\n ownerSession: string,\n): { jobs: JobSnapshot[]; error?: string } {\n if (!Array.isArray(value)) {\n return { jobs: [], error: \"Jobs response must be an array.\" };\n }\n\n const jobs = value.filter((entry): entry is JobSnapshot => isJobSnapshot(entry, ownerSession));\n const invalidCount = value.length - jobs.length;\n if (invalidCount === 0) {\n return { jobs };\n }\n\n const noun = invalidCount === 1 ? \"snapshot\" : \"snapshots\";\n return { jobs, error: `Ignored ${invalidCount} invalid Job ${noun}.` };\n}\n",
25
26
  "import {\n selectSessionMessagesWithParts,\n type SessionBucket,\n type SessionMessagePartRecord,\n type SessionMessageRecord,\n} from \"@openharness/client\";\n\nimport type { TranscriptItem } from \"../types\";\n\nexport type TranscriptView = { items: TranscriptItem[]; assistantBuffer: string };\n\nfunction contentToText(content: unknown): string {\n if (typeof content === \"string\") return content;\n if (Array.isArray(content)) {\n return content\n .map((block) => {\n if (block && typeof block === \"object\" && \"text\" in block) return String(block.text ?? \"\");\n return JSON.stringify(block);\n })\n .join(\"\");\n }\n if (content == null) return \"\";\n return JSON.stringify(content);\n}\n\nfunction isRecord(value: unknown): value is Record<string, unknown> {\n return !!value && typeof value === \"object\" && !Array.isArray(value);\n}\n\nfunction textFromParts(parts: SessionMessagePartRecord[]): string {\n return parts\n .filter((part) => part.type === \"text\" || part.type === \"reasoning\")\n .map((part) => part.text ?? \"\")\n .join(\"\");\n}\n\nfunction messageToTranscriptItems(\n message: SessionMessageRecord,\n parts: SessionMessagePartRecord[],\n inputText?: string,\n): TranscriptItem[] {\n if (message.role === \"user\") {\n return [{\n id: message.inputId ? `input:${message.inputId}` : message.id,\n role: \"user\",\n text: textFromParts(parts) || inputText || \"\",\n }];\n }\n if (message.role === \"system\") return [{ id: message.id, role: \"system\", text: textFromParts(parts) }];\n\n const items: TranscriptItem[] = [];\n for (const part of parts) {\n if (part.type === \"text\" || part.type === \"reasoning\") {\n if (part.text) items.push({\n id: `${message.id}:${part.id}`,\n role: \"assistant\",\n text: part.text,\n streaming: part.status === \"pending\" || part.status === \"running\",\n });\n continue;\n }\n if (part.type === \"tool\") {\n const toolName = part.toolName ?? \"tool\";\n items.push({\n id: `${message.id}:${part.id}:tool`,\n role: \"tool\",\n text: toolName,\n tool_name: toolName,\n tool_input: part.input,\n });\n if (part.output !== undefined) {\n const output = isRecord(part.output) ? part.output : {};\n items.push({\n id: `${message.id}:${part.id}:result`,\n role: \"tool_result\",\n text: contentToText(output.content),\n tool_name: toolName,\n is_error: part.isError === true,\n });\n }\n continue;\n }\n if (part.type === \"tool_result\") {\n items.push({\n id: `${message.id}:${part.id}:result`,\n role: \"tool_result\",\n text: contentToText(part.output ?? part.text ?? \"\"),\n tool_name: part.toolName,\n is_error: part.isError === true,\n });\n continue;\n }\n if (part.type === \"error\") {\n items.push({ id: `${message.id}:${part.id}`, role: \"system\", text: part.text ?? \"error\" });\n continue;\n }\n if (part.type === \"log\") {\n items.push({ id: `${message.id}:${part.id}`, role: \"log\", text: part.text ?? \"\" });\n }\n }\n return items;\n}\n\nexport function bucketToTranscript(bucket: SessionBucket | undefined): TranscriptItem[] {\n if (!bucket) return [];\n const inputById = new Map(bucket.inputs.map((input) => [input.id, input]));\n const projectedInputIds = new Set<string>();\n const items: TranscriptItem[] = [];\n const activeRuns = Object.values(bucket.runs)\n .filter((run) => run.status === \"pending\" || run.status === \"running\");\n const activeRunInputIds = new Set(activeRuns.flatMap((run) => run.inputId ? [run.inputId] : []));\n const transcriptUpdatedAt = bucket.messages.reduce(\n (latest, message) => Math.max(latest, message.updatedAt),\n bucket.session?.updatedAt ?? 0,\n );\n\n for (const { message, parts } of selectSessionMessagesWithParts(bucket)) {\n if (message.role === \"user\" && message.inputId) projectedInputIds.add(message.inputId);\n items.push(...messageToTranscriptItems(\n message,\n parts,\n message.inputId ? inputById.get(message.inputId)?.content : undefined,\n ));\n }\n\n // Admission and transcript projection are separate daemon steps. Until the user message\n // exists, keep its input-backed placeholder at the canonical transcript tail. input.seq\n // and message.seq are independent counters and must never be compared. Transcript rewrites\n // such as compact/rewind drop historical inputId links, so old inputs are not placeholders.\n for (const input of [...bucket.inputs].sort((a, b) => a.seq - b.seq)) {\n if (projectedInputIds.has(input.id)) continue;\n const belongsToActiveRun = activeRunInputIds.has(input.id)\n || (input.delivery === \"steer\" && activeRuns.some((run) => input.createdAt >= run.createdAt));\n const admittedAfterTranscript = input.createdAt >= transcriptUpdatedAt;\n if (!belongsToActiveRun && !admittedAfterTranscript) continue;\n items.push({ id: `input:${input.id}`, role: \"user\", text: input.content });\n }\n return items;\n}\n\nexport function splitStreamingAssistant(items: TranscriptItem[]): TranscriptView {\n for (let index = items.length - 1; index >= 0; index -= 1) {\n const item = items[index];\n if (!item) continue;\n if (item.role !== \"assistant\" || item.streaming !== true || !item.text) continue;\n return {\n items: [\n ...items.slice(0, index),\n ...items.slice(index + 1),\n ],\n assistantBuffer: item.text,\n };\n }\n return { items, assistantBuffer: \"\" };\n}\n",
26
27
  "import type {\n CommandCatalogEntry,\n OpenHarnessClient,\n OpenHarnessClientState,\n PresentationReadRequest,\n SlashLine,\n} from \"@openharness/client\";\nimport {\n LOCAL_COMMAND_DETAILS,\n LOCAL_COMMAND_NAMES,\n dispatchSessionCommand,\n hasActiveRun,\n mergeCommandDetails,\n parseSlashLine,\n resolveSessionCwd,\n} from \"@openharness/client\";\nimport type { Dispatch, MutableRefObject, SetStateAction } from \"react\";\n\nimport type { FrontendConfig } from \"../types\";\n\nexport {\n LOCAL_COMMAND_DETAILS,\n LOCAL_COMMAND_NAMES,\n hasActiveRun,\n mergeCommandDetails,\n parseSlashLine,\n};\n\nexport type SessionSlashCtx = {\n client: OpenHarnessClient;\n sessionId: string | undefined;\n pushSystem: (text: string) => void;\n presentSystem: (title: string, content: string) => void;\n statusRef: MutableRefObject<Record<string, unknown>>;\n commandCatalogRef: MutableRefObject<CommandCatalogEntry[]>;\n clientState: OpenHarnessClientState;\n localBusy: boolean;\n cacheFirstRead?: (request: PresentationReadRequest) => void;\n daemon?: FrontendConfig[\"daemon\"];\n setStatus: Dispatch<SetStateAction<Record<string, unknown>>>;\n};\n\nexport async function dispatchSessionSlashCommand(\n slash: SlashLine | null,\n ctx: SessionSlashCtx,\n): Promise<\"handled\" | \"unhandled\" | \"local_ui_ignored\"> {\n const {\n client,\n sessionId,\n pushSystem,\n presentSystem,\n statusRef,\n commandCatalogRef,\n clientState,\n localBusy,\n cacheFirstRead,\n daemon,\n setStatus,\n } = ctx;\n\n const outcome = await dispatchSessionCommand(slash, {\n client,\n sessionId,\n cwd: resolveSessionCwd({\n statusCwd: statusRef.current.cwd,\n daemonCwd: daemon?.cwd ?? undefined,\n }),\n model: statusRef.current.model != null\n ? String(statusRef.current.model)\n : daemon?.model ?? undefined,\n permissionMode: typeof statusRef.current.permission_mode === \"string\"\n ? statusRef.current.permission_mode\n : undefined,\n statusSessionId: typeof statusRef.current.session_id === \"string\"\n ? statusRef.current.session_id\n : sessionId,\n commandCatalog: commandCatalogRef.current,\n clientState,\n busy: localBusy,\n emit: pushSystem,\n present: presentSystem,\n cacheFirstRead,\n getRuntimeDiagnostics: () => ({\n runtime: `Node ${process.version}`,\n platform: process.platform,\n architecture: process.arch,\n }),\n patchStatus: (patch) => setStatus((current) => ({ ...current, ...patch })),\n });\n\n if (outcome === \"local_ui\") return \"local_ui_ignored\";\n return outcome;\n}\n",
@@ -62,7 +63,7 @@
62
63
  "/**\n * TUI 前端入口(进程 B,Bun 运行时)。配置经 OPENHARNESS_FRONTEND_CONFIG 注入;\n * daemon 主线由 useServerSync attach。\n * 详见 docs/tui-flow.md 与 docs/client-sync-flow.md。\n */\nimport { getTheme } from \"./theme/builtinThemes\";\nimport { assertSupportedTuiRuntime } from \"./runtime\";\nimport type { FrontendConfig } from \"./types\";\n\nconst rawConfig = process.env.OPENHARNESS_FRONTEND_CONFIG;\nlet config: FrontendConfig;\ntry {\n const parsed = rawConfig ? JSON.parse(rawConfig) : {};\n config = {\n daemon: parsed.daemon ?? (\n process.env.OPENHARNESS_DAEMON_URL\n ? {\n url: process.env.OPENHARNESS_DAEMON_URL,\n token: process.env.OPENHARNESS_DAEMON_TOKEN ?? null,\n cwd: process.env.OPENHARNESS_DAEMON_CWD ?? null,\n model: process.env.OPENHARNESS_DAEMON_MODEL ?? null,\n }\n : null\n ),\n initial_prompt: parsed.initial_prompt ?? process.env.OPENHARNESS_INITIAL_PROMPT ?? null,\n theme: parsed.theme ?? process.env.OPENHARNESS_THEME ?? \"default\",\n version: parsed.version ?? null,\n };\n} catch {\n config = { daemon: null, theme: \"default\" };\n}\n\ntry {\n // OpenTUI 默认 backgroundColor 为 transparent,会透出终端配色;启动时铺上主题底色。\n // Run before importing OpenTUI because its native DLL can crash an unsupported Bun.\n assertSupportedTuiRuntime();\n const [{ createCliRenderer }, { createElement, createRoot }, { App }] = await Promise.all([\n import(\"@opentui/core\"),\n import(\"@opentui/react\"),\n import(\"./App\"),\n ]);\n const initialBg = getTheme(String(config.theme ?? \"default\")).colors.background;\n const renderer = await createCliRenderer({\n exitOnCtrlC: false,\n backgroundColor: initialBg,\n onDestroy: () => process.exit(process.exitCode ?? 0),\n });\n renderer.setTerminalTitle(\"OpenHarness\");\n createRoot(renderer).render(createElement(App, { config }));\n} catch (err) {\n console.error(\"[openharness] 终端渲染器初始化失败(需要 Bun + 支持的平台):\", err);\n process.exit(1);\n}\n",
63
64
  "export const MIN_WINDOWS_BUN_VERSION = \"1.3.12\";\n\ntype RuntimeInfo = {\n platform: string;\n bunVersion: string | null;\n};\n\nfunction compareVersions(left: string, right: string): number {\n const leftParts = left.split(\".\").map((part) => Number.parseInt(part, 10) || 0);\n const rightParts = right.split(\".\").map((part) => Number.parseInt(part, 10) || 0);\n const length = Math.max(leftParts.length, rightParts.length);\n\n for (let index = 0; index < length; index += 1) {\n const difference = (leftParts[index] ?? 0) - (rightParts[index] ?? 0);\n if (difference !== 0) return difference;\n }\n\n return 0;\n}\n\nexport function assertSupportedTuiRuntime(runtime: RuntimeInfo = {\n platform: process.platform,\n bunVersion: typeof Bun === \"undefined\" ? null : Bun.version,\n}): void {\n if (runtime.platform !== \"win32\" || runtime.bunVersion === null) return;\n\n if (compareVersions(runtime.bunVersion, MIN_WINDOWS_BUN_VERSION) < 0) {\n throw new Error(\n `Windows TUI requires Bun ${MIN_WINDOWS_BUN_VERSION} or newer; found ${runtime.bunVersion}. Run: bun upgrade`,\n );\n }\n}\n"
64
65
  ],
65
- "mappings": "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",
66
- "debugId": "DB9708E7A715BB8364756E2164756E21",
66
+ "mappings": "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",
67
+ "debugId": "CC7EA554B2C5EAF964756E2164756E21",
67
68
  "names": []
68
69
  }