@jrkropp/codex-js 0.1.1 → 0.1.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +8 -0
- package/dist/ClientNotification-B6-FhXQf.d.ts +5 -0
- package/dist/{DynamicToolCallResponse-D2OVpa4p.d.ts → DynamicToolCallResponse-82DFjES2.d.ts} +1 -1
- package/dist/DynamicToolSpec-CfnhqAYK.d.ts +29 -0
- package/dist/PermissionsRequestApprovalResponse-DxzPPDRb.d.ts +55 -0
- package/dist/ProviderStatusBanner-BlP6lzwE.d.ts +441 -0
- package/dist/ServerRequest-B5cKVJjr.d.ts +2181 -0
- package/dist/{session-BO6EZNK7.d.ts → ThreadResumeResponse-DvmE1juU.d.ts} +3 -290
- package/dist/ToolRequestUserInputQuestion-CeZa5X1J.d.ts +23 -0
- package/dist/{ToolRequestUserInputResponse-Bxjlpgho.d.ts → ToolRequestUserInputResponse-zcPLwbiK.d.ts} +1 -1
- package/dist/TurnSteerResponse-0kBCfplh.d.ts +209 -0
- package/dist/WebSearchToolConfig-D3ep0625.d.ts +18 -0
- package/dist/chat-runtime-B6azJyKo.d.ts +381 -0
- package/dist/chunk-2DZRMCI2.js +1258 -0
- package/dist/chunk-2DZRMCI2.js.map +1 -0
- package/dist/chunk-4DPLJPB5.js +396 -0
- package/dist/chunk-4DPLJPB5.js.map +1 -0
- package/dist/chunk-5JMJ6OI5.js +3 -0
- package/dist/chunk-5JMJ6OI5.js.map +1 -0
- package/dist/chunk-6ZMJ34KE.js +1153 -0
- package/dist/chunk-6ZMJ34KE.js.map +1 -0
- package/dist/chunk-CGBS37IU.js +128 -0
- package/dist/chunk-CGBS37IU.js.map +1 -0
- package/dist/chunk-DCMKA2A6.js +18 -0
- package/dist/chunk-DCMKA2A6.js.map +1 -0
- package/dist/chunk-DYLHN3HG.js +937 -0
- package/dist/chunk-DYLHN3HG.js.map +1 -0
- package/dist/chunk-ILXA6HLX.js +1973 -0
- package/dist/chunk-ILXA6HLX.js.map +1 -0
- package/dist/{chunk-TZBLUZ2X.js → chunk-LWQNX4LI.js} +7811 -12696
- package/dist/chunk-LWQNX4LI.js.map +1 -0
- package/dist/{chunk-FFASNDXU.js → chunk-NCI4MAWZ.js} +317 -1967
- package/dist/chunk-NCI4MAWZ.js.map +1 -0
- package/dist/chunk-O44XP7LH.js +214 -0
- package/dist/chunk-O44XP7LH.js.map +1 -0
- package/dist/chunk-PST3ZWX2.js +555 -0
- package/dist/chunk-PST3ZWX2.js.map +1 -0
- package/dist/chunk-SYPHCDRD.js +1133 -0
- package/dist/chunk-SYPHCDRD.js.map +1 -0
- package/dist/chunk-V4BMZWBM.js +2401 -0
- package/dist/chunk-V4BMZWBM.js.map +1 -0
- package/dist/chunk-YHVCFD2D.js +117 -0
- package/dist/chunk-YHVCFD2D.js.map +1 -0
- package/dist/chunk-Z63UPBS3.js +152 -0
- package/dist/chunk-Z63UPBS3.js.map +1 -0
- package/dist/client/index.d.ts +16 -111
- package/dist/client/index.js +13 -1
- package/dist/codex-rs/app-server/index.d.ts +161 -0
- package/dist/codex-rs/app-server/index.js +13 -0
- package/dist/codex-rs/app-server/index.js.map +1 -0
- package/dist/codex-rs/app-server-protocol/index.d.ts +1722 -0
- package/dist/codex-rs/app-server-protocol/index.js +6 -0
- package/dist/codex-rs/app-server-protocol/index.js.map +1 -0
- package/dist/codex-rs/app-server-protocol/protocol.d.ts +19 -0
- package/dist/codex-rs/app-server-protocol/protocol.js +4 -0
- package/dist/codex-rs/app-server-protocol/protocol.js.map +1 -0
- package/dist/codex-rs/codex-api/index.d.ts +104 -0
- package/dist/codex-rs/codex-api/index.js +11 -0
- package/dist/codex-rs/codex-api/index.js.map +1 -0
- package/dist/codex-rs/config/index.d.ts +88 -0
- package/dist/codex-rs/config/index.js +4 -0
- package/dist/codex-rs/config/index.js.map +1 -0
- package/dist/codex-rs/core/config/index.d.ts +61 -0
- package/dist/codex-rs/core/config/index.js +5 -0
- package/dist/codex-rs/core/config/index.js.map +1 -0
- package/dist/codex-rs/core/index.d.ts +1393 -0
- package/dist/codex-rs/core/index.js +11 -0
- package/dist/codex-rs/core/index.js.map +1 -0
- package/dist/codex-rs/model-provider/index.d.ts +2 -0
- package/dist/codex-rs/model-provider/index.js +4 -0
- package/dist/codex-rs/model-provider/index.js.map +1 -0
- package/dist/codex-rs/models-manager/index.d.ts +2 -0
- package/dist/codex-rs/models-manager/index.js +4 -0
- package/dist/codex-rs/models-manager/index.js.map +1 -0
- package/dist/codex-rs/parity.d.ts +26 -0
- package/dist/codex-rs/parity.js +3 -0
- package/dist/codex-rs/parity.js.map +1 -0
- package/dist/codex-rs/thread-store/index.d.ts +5 -0
- package/dist/codex-rs/thread-store/index.js +4 -0
- package/dist/codex-rs/thread-store/index.js.map +1 -0
- package/dist/codex-rs/unsupported.d.ts +15 -0
- package/dist/codex-rs/unsupported.js +22 -0
- package/dist/codex-rs/unsupported.js.map +1 -0
- package/dist/codex-rs/utils/output-truncation.d.ts +21 -0
- package/dist/codex-rs/utils/output-truncation.js +4 -0
- package/dist/codex-rs/utils/output-truncation.js.map +1 -0
- package/dist/codex-rs/utils/string.d.ts +7 -0
- package/dist/codex-rs/utils/string.js +3 -0
- package/dist/codex-rs/utils/string.js.map +1 -0
- package/dist/common-CTyph5x8.d.ts +40 -0
- package/dist/event-mapping-CbISdQ1D.d.ts +43 -0
- package/dist/history-CfM-4V7b.d.ts +1654 -0
- package/dist/index-77U_Oc-a.d.ts +63 -0
- package/dist/index-CoDZosq0.d.ts +261 -0
- package/dist/index.d.ts +18 -8
- package/dist/index.js +16 -2
- package/dist/lib-nXlaKiS-.d.ts +48 -0
- package/dist/live-thread-BMvlflzM.d.ts +30 -0
- package/dist/merge-B_AWVmnI.d.ts +24 -0
- package/dist/mod-DYVLSWO4.d.ts +91 -0
- package/dist/plan-mode-Cv6KWb_S.d.ts +14 -0
- package/dist/proposed-plan-DpN1ma0Y.d.ts +53 -0
- package/dist/protocol-mpBcYHrm.d.ts +1655 -0
- package/dist/react/index.d.ts +20 -53
- package/dist/react/index.js +16 -2
- package/dist/{remote-DMPfepa9.d.ts → remote-ClZbq9KN.d.ts} +3 -1
- package/dist/rendered-thread-AOxw3V5b.d.ts +29 -0
- package/dist/responses_websocket-BhxSgCzK.d.ts +183 -0
- package/dist/runtime-Cm6ml53h.d.ts +528 -0
- package/dist/server/index.d.ts +29 -1999
- package/dist/server/index.js +13 -1
- package/dist/session-BRYzi8OT.d.ts +46 -0
- package/dist/shadcn/index.d.ts +1 -1
- package/dist/{sidebar-DT2XoitN.d.ts → sidebar-DMMij22z.d.ts} +1 -1
- package/dist/spec_plan_types-CmsJ-Tfn.d.ts +260 -0
- package/dist/{store-H2cQxdpe.d.ts → store-AGRxhgQ3.d.ts} +2 -1
- package/dist/t3code/apps/web/components/chat.d.ts +508 -0
- package/dist/t3code/apps/web/components/chat.js +12 -0
- package/dist/t3code/apps/web/components/chat.js.map +1 -0
- package/dist/t3code/apps/web/index.d.ts +12 -0
- package/dist/t3code/apps/web/index.js +13 -0
- package/dist/t3code/apps/web/index.js.map +1 -0
- package/dist/testing/index.d.ts +9 -91
- package/dist/testing/index.js +13 -1
- package/dist/thread-history-builder-zW0zeqcS.d.ts +58 -0
- package/dist/thread_event_store-C0zYzukG.d.ts +77 -0
- package/dist/types-BTeabLYr.d.ts +126 -0
- package/package.json +152 -88
- package/dist/chat-runtime-CMli5dzJ.d.ts +0 -748
- package/dist/chunk-FFASNDXU.js.map +0 -1
- package/dist/chunk-TZBLUZ2X.js.map +0 -1
- package/dist/thread_event_store-BIS0qzhi.d.ts +0 -3843
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/upstream/codex-rs/app-server-client/src/session.ts","../src/upstream/codex-rs/app-server-client/src/pending_requests.ts","../src/upstream/codex-rs/app-server-client/src/thread_event_store.ts","../src/upstream/codex-rs/app-server-client/src/lib.ts","../src/upstream/codex-rs/app-server-client/src/remote.ts"],"names":["pending","turn","request","defaultInitializeParams"],"mappings":"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","file":"chunk-6ZMJ34KE.js","sourcesContent":["import type {\n\tClientRequest,\n\tInitializeParams,\n\tInitializeResponse,\n\tRequestId,\n} from \"../../app-server-protocol/schema/typescript\";\nimport type {\n\tCollaborationModeListParams,\n\tCollaborationModeListResponse,\n\tListMcpServerStatusParams,\n\tListMcpServerStatusResponse,\n\tMcpResourceReadParams,\n\tMcpResourceReadResponse,\n\tMcpServerOauthLoginParams,\n\tMcpServerOauthLoginResponse,\n\tMcpServerRefreshResponse,\n\tMcpServerToolCallParams,\n\tMcpServerToolCallResponse,\n\tThreadArchiveParams,\n\tThreadArchiveResponse,\n\tThreadCompactStartParams,\n\tThreadCompactStartResponse,\n\tThreadListParams,\n\tThreadListResponse,\n\tThreadMetadataUpdateParams,\n\tThreadMetadataUpdateResponse,\n\tThreadReadParams,\n\tThreadReadResponse,\n\tThreadResumeParams,\n\tThreadResumeResponse,\n\tThreadSetNameParams,\n\tThreadSetNameResponse,\n\tThreadStartParams,\n\tThreadStartResponse,\n\tThreadUnarchiveParams,\n\tThreadUnarchiveResponse,\n\tTurnInterruptParams,\n\tTurnInterruptResponse,\n\tTurnStartParams,\n\tTurnStartResponse,\n\tTurnSteerParams,\n\tTurnSteerResponse,\n} from \"../../app-server-protocol/schema/typescript/v2\";\nimport type {\n\tAppServerEvent,\n\tJSONRPCErrorError,\n\tResult,\n} from \"./lib\";\n\nexport type CodexAppServer = {\n\tclose?(): void;\n\tevents?(): AsyncIterable<AppServerEvent>;\n\tnextEvent?(): Promise<AppServerEvent | null>;\n\trejectServerRequest(\n\t\trequestId: RequestId,\n\t\terror: JSONRPCErrorError,\n\t): Promise<void>;\n\trequest(request: ClientRequest): Promise<unknown>;\n\trequestTyped<T>(request: ClientRequest): Promise<T>;\n\tresolveServerRequest(requestId: RequestId, result: Result): Promise<void>;\n};\n\nexport class AppServerSession {\n\tprivate nextRequestIdValue = 1;\n\n\tconstructor(private readonly client: CodexAppServer) {}\n\n\tnextRequestId(): RequestId {\n\t\tconst requestId = this.nextRequestIdValue;\n\t\tthis.nextRequestIdValue += 1;\n\t\treturn requestId;\n\t}\n\n\tnextEvent(): Promise<AppServerEvent | null> {\n\t\treturn this.client.nextEvent?.() ?? Promise.resolve(null);\n\t}\n\n\tevents(): AsyncIterable<AppServerEvent> | null {\n\t\treturn this.client.events?.() ?? null;\n\t}\n\n\trequestTyped<T>(request: ClientRequest): Promise<T> {\n\t\treturn this.client.requestTyped<T>(request);\n\t}\n\n\tinitialize(params: InitializeParams = defaultInitializeParams()): Promise<InitializeResponse> {\n\t\treturn this.requestTyped<InitializeResponse>({\n\t\t\tid: this.nextRequestId(),\n\t\t\tmethod: \"initialize\",\n\t\t\tparams,\n\t\t});\n\t}\n\n\tthreadStart(params: ThreadStartParams): Promise<ThreadStartResponse> {\n\t\treturn this.requestTyped<ThreadStartResponse>({\n\t\t\tid: this.nextRequestId(),\n\t\t\tmethod: \"thread/start\",\n\t\t\tparams,\n\t\t});\n\t}\n\n\tthreadResume(params: ThreadResumeParams): Promise<ThreadResumeResponse> {\n\t\treturn this.requestTyped<ThreadResumeResponse>({\n\t\t\tid: this.nextRequestId(),\n\t\t\tmethod: \"thread/resume\",\n\t\t\tparams,\n\t\t});\n\t}\n\n\tthreadList(params: ThreadListParams = {}): Promise<ThreadListResponse> {\n\t\treturn this.requestTyped<ThreadListResponse>({\n\t\t\tid: this.nextRequestId(),\n\t\t\tmethod: \"thread/list\",\n\t\t\tparams,\n\t\t});\n\t}\n\n\tcollaborationModeList(\n\t\tparams: CollaborationModeListParams = {},\n\t): Promise<CollaborationModeListResponse> {\n\t\treturn this.requestTyped<CollaborationModeListResponse>({\n\t\t\tid: this.nextRequestId(),\n\t\t\tmethod: \"collaborationMode/list\",\n\t\t\tparams,\n\t\t});\n\t}\n\n\tconfigMcpServerReload(): Promise<McpServerRefreshResponse> {\n\t\treturn this.requestTyped<McpServerRefreshResponse>({\n\t\t\tid: this.nextRequestId(),\n\t\t\tmethod: \"config/mcpServer/reload\",\n\t\t\tparams: undefined,\n\t\t});\n\t}\n\n\tmcpServerStatusList(\n\t\tparams: ListMcpServerStatusParams = {},\n\t): Promise<ListMcpServerStatusResponse> {\n\t\treturn this.requestTyped<ListMcpServerStatusResponse>({\n\t\t\tid: this.nextRequestId(),\n\t\t\tmethod: \"mcpServerStatus/list\",\n\t\t\tparams,\n\t\t});\n\t}\n\n\tmcpResourceRead(params: McpResourceReadParams): Promise<McpResourceReadResponse> {\n\t\treturn this.requestTyped<McpResourceReadResponse>({\n\t\t\tid: this.nextRequestId(),\n\t\t\tmethod: \"mcpServer/resource/read\",\n\t\t\tparams,\n\t\t});\n\t}\n\n\tmcpServerToolCall(\n\t\tparams: McpServerToolCallParams,\n\t): Promise<McpServerToolCallResponse> {\n\t\treturn this.requestTyped<McpServerToolCallResponse>({\n\t\t\tid: this.nextRequestId(),\n\t\t\tmethod: \"mcpServer/tool/call\",\n\t\t\tparams,\n\t\t});\n\t}\n\n\tmcpServerOauthLogin(\n\t\tparams: McpServerOauthLoginParams,\n\t): Promise<McpServerOauthLoginResponse> {\n\t\treturn this.requestTyped<McpServerOauthLoginResponse>({\n\t\t\tid: this.nextRequestId(),\n\t\t\tmethod: \"mcpServer/oauth/login\",\n\t\t\tparams,\n\t\t});\n\t}\n\n\tthreadRead(params: ThreadReadParams): Promise<ThreadReadResponse> {\n\t\treturn this.requestTyped<ThreadReadResponse>({\n\t\t\tid: this.nextRequestId(),\n\t\t\tmethod: \"thread/read\",\n\t\t\tparams,\n\t\t});\n\t}\n\n\tthreadNameSet(params: ThreadSetNameParams): Promise<ThreadSetNameResponse> {\n\t\treturn this.requestTyped<ThreadSetNameResponse>({\n\t\t\tid: this.nextRequestId(),\n\t\t\tmethod: \"thread/name/set\",\n\t\t\tparams,\n\t\t});\n\t}\n\n\tthreadArchive(params: ThreadArchiveParams): Promise<ThreadArchiveResponse> {\n\t\treturn this.requestTyped<ThreadArchiveResponse>({\n\t\t\tid: this.nextRequestId(),\n\t\t\tmethod: \"thread/archive\",\n\t\t\tparams,\n\t\t});\n\t}\n\n\tthreadUnarchive(params: ThreadUnarchiveParams): Promise<ThreadUnarchiveResponse> {\n\t\treturn this.requestTyped<ThreadUnarchiveResponse>({\n\t\t\tid: this.nextRequestId(),\n\t\t\tmethod: \"thread/unarchive\",\n\t\t\tparams,\n\t\t});\n\t}\n\n\tthreadMetadataUpdate(\n\t\tparams: ThreadMetadataUpdateParams,\n\t): Promise<ThreadMetadataUpdateResponse> {\n\t\treturn this.requestTyped<ThreadMetadataUpdateResponse>({\n\t\t\tid: this.nextRequestId(),\n\t\t\tmethod: \"thread/metadata/update\",\n\t\t\tparams,\n\t\t});\n\t}\n\n\tturnStart(params: TurnStartParams): Promise<TurnStartResponse> {\n\t\treturn this.requestTyped<TurnStartResponse>({\n\t\t\tid: this.nextRequestId(),\n\t\t\tmethod: \"turn/start\",\n\t\t\tparams,\n\t\t});\n\t}\n\n\tturnSteer(params: TurnSteerParams): Promise<TurnSteerResponse> {\n\t\treturn this.requestTyped<TurnSteerResponse>({\n\t\t\tid: this.nextRequestId(),\n\t\t\tmethod: \"turn/steer\",\n\t\t\tparams,\n\t\t});\n\t}\n\n\tturnInterrupt(params: TurnInterruptParams): Promise<TurnInterruptResponse> {\n\t\treturn this.requestTyped<TurnInterruptResponse>({\n\t\t\tid: this.nextRequestId(),\n\t\t\tmethod: \"turn/interrupt\",\n\t\t\tparams,\n\t\t});\n\t}\n\n\tthreadCompactStart(\n\t\tparams: ThreadCompactStartParams,\n\t): Promise<ThreadCompactStartResponse> {\n\t\treturn this.requestTyped<ThreadCompactStartResponse>({\n\t\t\tid: this.nextRequestId(),\n\t\t\tmethod: \"thread/compact/start\",\n\t\t\tparams,\n\t\t});\n\t}\n\n\tresolveServerRequest(requestId: RequestId, result: Result): Promise<void> {\n\t\treturn this.client.resolveServerRequest(requestId, result);\n\t}\n\n\trejectServerRequest(\n\t\trequestId: RequestId,\n\t\terror: JSONRPCErrorError,\n\t): Promise<void> {\n\t\treturn this.client.rejectServerRequest(requestId, error);\n\t}\n}\n\nfunction defaultInitializeParams(): InitializeParams {\n\treturn {\n\t\tcapabilities: {\n\t\t\texperimentalApi: false,\n\t\t\toptOutNotificationMethods: [],\n\t\t},\n\t\tclientInfo: {\n\t\t\tname: \"codex-js\",\n\t\t\ttitle: null,\n\t\t\tversion: \"0.0.0\",\n\t\t},\n\t};\n}\n","import type {\n\tRequestId,\n\tServerRequest,\n} from \"../../app-server-protocol/schema/typescript\";\nimport type {\n\tCommandExecutionRequestApprovalResponse,\n\tDynamicToolCallResponse,\n\tFileChangeRequestApprovalResponse,\n\tMcpServerElicitationRequestResponse,\n\tPermissionsRequestApprovalResponse,\n\tToolRequestUserInputResponse,\n} from \"../../app-server-protocol/schema/typescript/v2\";\nimport type { Result } from \"./lib\";\n\nexport type AppServerRequestResolution = {\n\trequestId: RequestId;\n\tresult: Result;\n};\n\nexport type UnsupportedAppServerRequest = {\n\tmessage: string;\n\trequestId: RequestId;\n};\n\nexport type ResolvedAppServerRequest =\n\t| { id: string; type: \"exec_approval\" }\n\t| { id: string; type: \"file_change_approval\" }\n\t| { id: string; type: \"permissions_approval\" }\n\t| { itemId: string; type: \"user_input\" }\n\t| { requestId: RequestId; serverName: string; type: \"mcp_elicitation\" }\n\t| { callId: string; type: \"dynamic_tool_call\" };\n\ntype PendingUserInputRequest = {\n\titemId: string;\n\trequestId: RequestId;\n};\n\ntype McpRequestKey = `${string}:${string | number}`;\n\nexport class PendingAppServerRequests {\n\tprivate readonly dynamicToolCalls = new Map<string, RequestId>();\n\tprivate readonly execApprovals = new Map<string, RequestId>();\n\tprivate readonly fileChangeApprovals = new Map<string, RequestId>();\n\tprivate readonly mcpRequests = new Map<McpRequestKey, RequestId>();\n\tprivate readonly permissionsApprovals = new Map<string, RequestId>();\n\tprivate readonly userInputs = new Map<string, PendingUserInputRequest[]>();\n\n\tclear(): void {\n\t\tthis.dynamicToolCalls.clear();\n\t\tthis.execApprovals.clear();\n\t\tthis.fileChangeApprovals.clear();\n\t\tthis.mcpRequests.clear();\n\t\tthis.permissionsApprovals.clear();\n\t\tthis.userInputs.clear();\n\t}\n\n\tnoteServerRequest(request: ServerRequest): UnsupportedAppServerRequest | null {\n\t\tswitch (request.method) {\n\t\t\tcase \"item/commandExecution/requestApproval\": {\n\t\t\t\tconst id = request.params.approvalId ?? request.params.itemId;\n\t\t\t\tthis.execApprovals.set(id, request.id);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tcase \"item/fileChange/requestApproval\":\n\t\t\t\tthis.fileChangeApprovals.set(request.params.itemId, request.id);\n\t\t\t\treturn null;\n\t\t\tcase \"item/permissions/requestApproval\":\n\t\t\t\tthis.permissionsApprovals.set(request.params.itemId, request.id);\n\t\t\t\treturn null;\n\t\t\tcase \"item/tool/requestUserInput\": {\n\t\t\t\tconst queue = this.userInputs.get(request.params.turnId) ?? [];\n\t\t\t\tqueue.push({\n\t\t\t\t\titemId: request.params.itemId,\n\t\t\t\t\trequestId: request.id,\n\t\t\t\t});\n\t\t\t\tthis.userInputs.set(request.params.turnId, queue);\n\t\t\t\treturn null;\n\t\t\t}\n\t\t\tcase \"mcpServer/elicitation/request\":\n\t\t\t\tthis.mcpRequests.set(\n\t\t\t\t\tmcpRequestKey(request.params.serverName, request.id),\n\t\t\t\t\trequest.id,\n\t\t\t\t);\n\t\t\t\treturn null;\n\t\t\tcase \"item/tool/call\":\n\t\t\t\tthis.dynamicToolCalls.set(request.params.callId, request.id);\n\t\t\t\treturn null;\n\t\t\tdefault:\n\t\t\t\treturn {\n\t\t\t\t\tmessage: `Unsupported Codex app-server request: ${request.method}`,\n\t\t\t\t\trequestId: request.id,\n\t\t\t\t};\n\t\t}\n\t}\n\n\ttakeCommandExecutionApprovalResolution(\n\t\tid: string,\n\t\tresponse: CommandExecutionRequestApprovalResponse,\n\t): AppServerRequestResolution | null {\n\t\treturn takeMapResolution(this.execApprovals, id, response);\n\t}\n\n\ttakeFileChangeApprovalResolution(\n\t\tid: string,\n\t\tresponse: FileChangeRequestApprovalResponse,\n\t): AppServerRequestResolution | null {\n\t\treturn takeMapResolution(this.fileChangeApprovals, id, response);\n\t}\n\n\ttakePermissionsApprovalResolution(\n\t\tid: string,\n\t\tresponse: PermissionsRequestApprovalResponse,\n\t): AppServerRequestResolution | null {\n\t\treturn takeMapResolution(this.permissionsApprovals, id, response);\n\t}\n\n\ttakeDynamicToolCallResolution(\n\t\tcallId: string,\n\t\tresponse: DynamicToolCallResponse,\n\t): AppServerRequestResolution | null {\n\t\treturn takeMapResolution(this.dynamicToolCalls, callId, response);\n\t}\n\n\ttakeUserInputResolution(\n\t\tturnId: string,\n\t\tresponse: ToolRequestUserInputResponse,\n\t): AppServerRequestResolution | null {\n\t\tconst pending = this.popUserInputRequestForTurn(turnId);\n\t\treturn pending ? { requestId: pending.requestId, result: response } : null;\n\t}\n\n\ttakeMcpElicitationResolution(\n\t\tserverName: string,\n\t\trequestId: RequestId,\n\t\tresponse: McpServerElicitationRequestResponse,\n\t): AppServerRequestResolution | null {\n\t\treturn takeMapResolution(\n\t\t\tthis.mcpRequests,\n\t\t\tmcpRequestKey(serverName, requestId),\n\t\t\tresponse,\n\t\t);\n\t}\n\n\tresolveNotification(requestId: RequestId): ResolvedAppServerRequest | null {\n\t\tconst execApproval = removeValue(this.execApprovals, requestId);\n\t\tif (execApproval) {\n\t\t\treturn { id: execApproval, type: \"exec_approval\" };\n\t\t}\n\t\tconst fileChangeApproval = removeValue(\n\t\t\tthis.fileChangeApprovals,\n\t\t\trequestId,\n\t\t);\n\t\tif (fileChangeApproval) {\n\t\t\treturn { id: fileChangeApproval, type: \"file_change_approval\" };\n\t\t}\n\t\tconst permissionsApproval = removeValue(\n\t\t\tthis.permissionsApprovals,\n\t\t\trequestId,\n\t\t);\n\t\tif (permissionsApproval) {\n\t\t\treturn { id: permissionsApproval, type: \"permissions_approval\" };\n\t\t}\n\t\tconst userInput = this.removeUserInputRequest(requestId);\n\t\tif (userInput) {\n\t\t\treturn { itemId: userInput.itemId, type: \"user_input\" };\n\t\t}\n\t\tconst dynamicToolCall = removeValue(this.dynamicToolCalls, requestId);\n\t\tif (dynamicToolCall) {\n\t\t\treturn { callId: dynamicToolCall, type: \"dynamic_tool_call\" };\n\t\t}\n\t\tconst mcpRequest = removeValue(this.mcpRequests, requestId);\n\t\tif (mcpRequest) {\n\t\t\tconst [serverName] = mcpRequest.split(\":\");\n\t\t\treturn { requestId, serverName, type: \"mcp_elicitation\" };\n\t\t}\n\t\treturn null;\n\t}\n\n\tcontainsServerRequest(request: ServerRequest): boolean {\n\t\treturn this.requestIds().some((requestId) => requestId === request.id);\n\t}\n\n\tprivate requestIds(): RequestId[] {\n\t\treturn [\n\t\t\t...this.execApprovals.values(),\n\t\t\t...this.fileChangeApprovals.values(),\n\t\t\t...this.permissionsApprovals.values(),\n\t\t\t...this.dynamicToolCalls.values(),\n\t\t\t...this.mcpRequests.values(),\n\t\t\t...Array.from(this.userInputs.values()).flatMap((queue) =>\n\t\t\t\tqueue.map((request) => request.requestId),\n\t\t\t),\n\t\t];\n\t}\n\n\tprivate popUserInputRequestForTurn(\n\t\tturnId: string,\n\t): PendingUserInputRequest | null {\n\t\tconst queue = this.userInputs.get(turnId);\n\t\tconst pending = queue?.shift() ?? null;\n\t\tif (queue && queue.length === 0) {\n\t\t\tthis.userInputs.delete(turnId);\n\t\t}\n\t\treturn pending;\n\t}\n\n\tprivate removeUserInputRequest(\n\t\trequestId: RequestId,\n\t): PendingUserInputRequest | null {\n\t\tfor (const [turnId, queue] of this.userInputs) {\n\t\t\tconst index = queue.findIndex((pending) => pending.requestId === requestId);\n\t\t\tif (index === -1) {\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tconst [pending] = queue.splice(index, 1);\n\t\t\tif (queue.length === 0) {\n\t\t\t\tthis.userInputs.delete(turnId);\n\t\t\t}\n\t\t\treturn pending ?? null;\n\t\t}\n\t\treturn null;\n\t}\n}\n\nfunction takeMapResolution<K>(\n\tmap: Map<K, RequestId>,\n\tkey: K,\n\tresult: Result,\n): AppServerRequestResolution | null {\n\tconst requestId = map.get(key);\n\tif (requestId === undefined) {\n\t\treturn null;\n\t}\n\tmap.delete(key);\n\treturn { requestId, result };\n}\n\nfunction removeValue<K>(map: Map<K, RequestId>, value: RequestId): K | null {\n\tfor (const [key, current] of map) {\n\t\tif (current === value) {\n\t\t\tmap.delete(key);\n\t\t\treturn key;\n\t\t}\n\t}\n\treturn null;\n}\n\nfunction mcpRequestKey(\n\tserverName: string,\n\trequestId: RequestId,\n): McpRequestKey {\n\treturn `${serverName}:${requestId}`;\n}\n","import type {\n\tRequestId,\n\tServerNotification,\n\tServerRequest,\n} from \"../../app-server-protocol/schema/typescript\";\nimport type {\n\tThread,\n\tThreadItem,\n\tThreadTokenUsage,\n\tTurn,\n} from \"../../app-server-protocol/schema/typescript/v2\";\nimport type { RateLimitSnapshot } from \"../../app-server-protocol/schema/typescript/v2/RateLimitSnapshot\";\nimport type { RenderedThreadConnectionStatus } from \"../../core/src/rendered-thread\";\n\nexport type ThreadBufferedEvent =\n\t| { notification: ServerNotification; type: \"notification\" }\n\t| { request: ServerRequest; type: \"request\" };\n\nexport type ServerNotificationThreadTarget =\n\t| { threadId: string; type: \"thread\" }\n\t| { threadId: string; type: \"invalid_thread_id\" }\n\t| { type: \"global\" };\n\nexport type ThreadEventSnapshot = {\n\tactiveTurnIds: string[];\n\taccountRateLimits: RateLimitSnapshot | null;\n\tbufferedEvents: ThreadBufferedEvent[];\n\tconnectionStatus: RenderedThreadConnectionStatus;\n\terrors: string[];\n\tpendingRequests: ServerRequest[];\n\tresolvedRequestIds: RequestId[];\n\tthread: Thread | null;\n\ttokenUsage: ThreadTokenUsageSnapshot | null;\n\tturns: Turn[];\n\twarnings: string[];\n};\n\nexport type ThreadTokenUsageSnapshot = {\n\tthreadId: string;\n\ttokenUsage: ThreadTokenUsage;\n\tturnId: string;\n\tupdatedAt: string;\n};\n\nexport class ThreadEventStore {\n\tprivate accountRateLimits: RateLimitSnapshot | null = null;\n\tprivate activeTurnIds = new Set<string>();\n\tprivate bufferedEvents: ThreadBufferedEvent[] = [];\n\tprivate connectionStatus: RenderedThreadConnectionStatus = \"idle\";\n\tprivate errors: string[] = [];\n\tprivate pendingRequests = new Map<RequestId, ServerRequest>();\n\tprivate resolvedRequestIds: RequestId[] = [];\n\tprivate thread: Thread | null = null;\n\tprivate tokenUsage: ThreadTokenUsageSnapshot | null = null;\n\tprivate turns: Turn[] = [];\n\tprivate warnings: string[] = [];\n\n\tstatic fromThread(thread: Thread): ThreadEventStore {\n\t\tconst store = new ThreadEventStore();\n\t\tstore.setThread(thread);\n\t\treturn store;\n\t}\n\n\tapplyNotification(notification: ServerNotification): ThreadEventSnapshot {\n\t\tapplyServerNotificationToThreadEventStore(this, notification);\n\t\treturn this.snapshot();\n\t}\n\n\tapplyRequest(request: ServerRequest): ThreadEventSnapshot {\n\t\tapplyServerRequestToThreadEventStore(this, request);\n\t\treturn this.snapshot();\n\t}\n\n\tsetConnectionStatus(status: RenderedThreadConnectionStatus): ThreadEventSnapshot {\n\t\tthis.connectionStatus = status;\n\t\treturn this.snapshot();\n\t}\n\n\tsetThread(thread: Thread): ThreadEventSnapshot {\n\t\tthis.thread = cloneThread(thread);\n\t\tthis.turns = thread.turns.map(cloneTurn);\n\t\tthis.activeTurnIds = new Set(\n\t\t\tthis.turns\n\t\t\t\t.filter((turn) => turn.status === \"inProgress\")\n\t\t\t\t.map((turn) => turn.id),\n\t\t);\n\t\treturn this.snapshot();\n\t}\n\n\tsnapshot(): ThreadEventSnapshot {\n\t\treturn {\n\t\t\tactiveTurnIds: [...this.activeTurnIds],\n\t\t\taccountRateLimits: this.accountRateLimits ? { ...this.accountRateLimits } : null,\n\t\t\tbufferedEvents: [...this.bufferedEvents],\n\t\t\tconnectionStatus: this.connectionStatus,\n\t\t\terrors: [...this.errors],\n\t\t\tpendingRequests: [...this.pendingRequests.values()],\n\t\t\tresolvedRequestIds: [...this.resolvedRequestIds],\n\t\t\tthread: this.thread ? cloneThread(this.thread) : null,\n\t\t\ttokenUsage: this.tokenUsage\n\t\t\t\t? {\n\t\t\t\t\t\t...this.tokenUsage,\n\t\t\t\t\t\ttokenUsage: cloneThreadTokenUsage(this.tokenUsage.tokenUsage),\n\t\t\t\t\t}\n\t\t\t\t: null,\n\t\t\tturns: this.turns.map(cloneTurn),\n\t\t\twarnings: [...this.warnings],\n\t\t};\n\t}\n\n\tnoteNotification(notification: ServerNotification): void {\n\t\tthis.bufferedEvents = [...this.bufferedEvents, { notification, type: \"notification\" }];\n\t\tswitch (notification.method) {\n\t\t\tcase \"thread/started\":\n\t\t\t\tthis.setThread(notification.params.thread);\n\t\t\t\treturn;\n\t\t\tcase \"thread/status/changed\":\n\t\t\t\tif (this.thread) {\n\t\t\t\t\tthis.thread = { ...this.thread, status: notification.params.status };\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\tcase \"thread/name/updated\":\n\t\t\t\tif (this.thread) {\n\t\t\t\t\tthis.thread = { ...this.thread, name: notification.params.threadName ?? null };\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\tcase \"thread/archived\":\n\t\t\tcase \"thread/unarchived\":\n\t\t\tcase \"thread/closed\":\n\t\t\tcase \"thread/goal/updated\":\n\t\t\tcase \"thread/goal/cleared\":\n\t\t\t\treturn;\n\t\t\tcase \"thread/tokenUsage/updated\":\n\t\t\t\tthis.tokenUsage = {\n\t\t\t\t\tthreadId: notification.params.threadId,\n\t\t\t\t\ttokenUsage: cloneThreadTokenUsage(notification.params.tokenUsage),\n\t\t\t\t\tturnId: notification.params.turnId,\n\t\t\t\t\tupdatedAt: new Date().toISOString(),\n\t\t\t\t};\n\t\t\t\treturn;\n\t\t\tcase \"turn/started\":\n\t\t\t\tthis.upsertTurn(notification.params.turn);\n\t\t\t\tthis.activeTurnIds.add(notification.params.turn.id);\n\t\t\t\treturn;\n\t\t\tcase \"turn/diff/updated\":\n\t\t\tcase \"turn/plan/updated\":\n\t\t\t\tthis.ensureTurn(notification.params.turnId);\n\t\t\t\treturn;\n\t\t\tcase \"turn/completed\":\n\t\t\t\tthis.upsertTurn(notification.params.turn);\n\t\t\t\tthis.activeTurnIds.delete(notification.params.turn.id);\n\t\t\t\tif (notification.params.turn.error?.message) {\n\t\t\t\t\tthis.errors = appendUnique(this.errors, notification.params.turn.error.message);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t\tcase \"item/started\":\n\t\t\tcase \"item/completed\":\n\t\t\t\tthis.upsertItem(notification.params.turnId, notification.params.item);\n\t\t\t\treturn;\n\t\t\tcase \"item/agentMessage/delta\":\n\t\t\t\tthis.applyAgentMessageDelta(\n\t\t\t\t\tnotification.params.turnId,\n\t\t\t\t\tnotification.params.itemId,\n\t\t\t\t\tnotification.params.delta,\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\tcase \"item/plan/delta\":\n\t\t\t\tthis.applyPlanDelta(\n\t\t\t\t\tnotification.params.turnId,\n\t\t\t\t\tnotification.params.itemId,\n\t\t\t\t\tnotification.params.delta,\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\tcase \"item/reasoning/summaryPartAdded\":\n\t\t\t\tthis.applyReasoningSummaryPartAdded(\n\t\t\t\t\tnotification.params.turnId,\n\t\t\t\t\tnotification.params.itemId,\n\t\t\t\t\tnotification.params.summaryIndex,\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\tcase \"item/reasoning/summaryTextDelta\":\n\t\t\t\tthis.applyReasoningSummaryTextDelta(\n\t\t\t\t\tnotification.params.turnId,\n\t\t\t\t\tnotification.params.itemId,\n\t\t\t\t\tnotification.params.summaryIndex,\n\t\t\t\t\tnotification.params.delta,\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\tcase \"item/reasoning/textDelta\":\n\t\t\t\tthis.applyReasoningTextDelta(\n\t\t\t\t\tnotification.params.turnId,\n\t\t\t\t\tnotification.params.itemId,\n\t\t\t\t\tnotification.params.contentIndex,\n\t\t\t\t\tnotification.params.delta,\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\tcase \"item/commandExecution/outputDelta\":\n\t\t\t\tthis.applyCommandOutputDelta(\n\t\t\t\t\tnotification.params.turnId,\n\t\t\t\t\tnotification.params.itemId,\n\t\t\t\t\tnotification.params.delta,\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\tcase \"item/fileChange/outputDelta\":\n\t\t\t\tthis.ensureTurn(notification.params.turnId);\n\t\t\t\treturn;\n\t\t\tcase \"item/fileChange/patchUpdated\":\n\t\t\t\tthis.applyFileChangePatchUpdated(\n\t\t\t\t\tnotification.params.turnId,\n\t\t\t\t\tnotification.params.itemId,\n\t\t\t\t\tnotification.params.changes,\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\tcase \"item/mcpToolCall/progress\":\n\t\t\tcase \"item/commandExecution/terminalInteraction\":\n\t\t\tcase \"command/exec/outputDelta\":\n\t\t\tcase \"process/outputDelta\":\n\t\t\tcase \"process/exited\":\n\t\t\tcase \"rawResponseItem/completed\":\n\t\t\tcase \"hook/started\":\n\t\t\tcase \"hook/completed\":\n\t\t\tcase \"item/autoApprovalReview/started\":\n\t\t\tcase \"item/autoApprovalReview/completed\":\n\t\t\t\treturn;\n\t\t\tcase \"thread/compacted\":\n\t\t\t\tthis.upsertItem(notification.params.turnId, {\n\t\t\t\t\tid: `compacted-${notification.params.turnId}`,\n\t\t\t\t\ttype: \"contextCompaction\",\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\tcase \"serverRequest/resolved\":\n\t\t\t\tthis.pendingRequests.delete(notification.params.requestId);\n\t\t\t\tthis.resolvedRequestIds = appendUnique(\n\t\t\t\t\tthis.resolvedRequestIds,\n\t\t\t\t\tnotification.params.requestId,\n\t\t\t\t);\n\t\t\t\treturn;\n\t\t\tcase \"warning\":\n\t\t\t\tthis.warnings = appendUnique(this.warnings, notification.params.message);\n\t\t\t\treturn;\n\t\t\tcase \"error\":\n\t\t\t\tthis.errors = appendUnique(this.errors, notification.params.error.message);\n\t\t\t\treturn;\n\t\t\tcase \"guardianWarning\":\n\t\t\t\tthis.warnings = appendUnique(this.warnings, notification.params.message);\n\t\t\t\treturn;\n\t\t\tcase \"deprecationNotice\":\n\t\t\t\tthis.warnings = appendUnique(this.warnings, notification.params.summary);\n\t\t\t\treturn;\n\t\t\tcase \"configWarning\":\n\t\t\t\tthis.warnings = appendUnique(this.warnings, notification.params.summary);\n\t\t\t\treturn;\n\t\t\tcase \"account/rateLimits/updated\":\n\t\t\t\tthis.accountRateLimits = { ...notification.params.rateLimits };\n\t\t\t\treturn;\n\t\t\tcase \"thread/realtime/started\":\n\t\t\tcase \"thread/realtime/itemAdded\":\n\t\t\tcase \"thread/realtime/transcript/delta\":\n\t\t\tcase \"thread/realtime/transcript/done\":\n\t\t\tcase \"thread/realtime/outputAudio/delta\":\n\t\t\tcase \"thread/realtime/sdp\":\n\t\t\tcase \"thread/realtime/error\":\n\t\t\tcase \"thread/realtime/closed\":\n\t\t\tcase \"fs/changed\":\n\t\t\tcase \"model/rerouted\":\n\t\t\tcase \"model/verification\":\n\t\t\tcase \"mcpServer/oauthLogin/completed\":\n\t\t\tcase \"mcpServer/startupStatus/updated\":\n\t\t\tcase \"fuzzyFileSearch/sessionUpdated\":\n\t\t\tcase \"fuzzyFileSearch/sessionCompleted\":\n\t\t\tcase \"windows/worldWritableWarning\":\n\t\t\tcase \"windowsSandbox/setupCompleted\":\n\t\t\t\treturn;\n\t\t\tdefault:\n\t\t\t\tif (notificationThreadId(notification)) {\n\t\t\t\t\tthis.warnings = appendUnique(\n\t\t\t\t\t\tthis.warnings,\n\t\t\t\t\t\t`Unsupported Codex app-server notification: ${notification.method}`,\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\treturn;\n\t\t}\n\t}\n\n\tnoteRequest(request: ServerRequest): void {\n\t\tthis.bufferedEvents = [...this.bufferedEvents, { request, type: \"request\" }];\n\t\tthis.pendingRequests.set(request.id, request);\n\t}\n\n\tprivate upsertTurn(turn: Turn): void {\n\t\tconst index = this.turns.findIndex((candidate) => candidate.id === turn.id);\n\t\tif (index === -1) {\n\t\t\tthis.turns = [...this.turns, cloneTurn(turn)];\n\t\t\treturn;\n\t\t}\n\t\tconst current = this.turns[index];\n\t\tthis.turns = replaceAt(this.turns, index, {\n\t\t\t...current,\n\t\t\t...turn,\n\t\t\titems: turn.items.length > 0 ? turn.items.map(cloneThreadItem) : current.items,\n\t\t});\n\t}\n\n\tprivate upsertItem(turnId: string, item: ThreadItem): void {\n\t\tconst turn = this.ensureTurn(turnId);\n\t\tconst itemIndex = turn.items.findIndex((candidate) => candidate.id === item.id);\n\t\tconst nextItems =\n\t\t\titemIndex === -1\n\t\t\t\t? [...turn.items, cloneThreadItem(item)]\n\t\t\t\t: replaceAt(turn.items, itemIndex, cloneThreadItem(item));\n\t\tthis.replaceTurn({ ...turn, items: nextItems, itemsView: \"full\" });\n\t}\n\n\tprivate applyAgentMessageDelta(turnId: string, itemId: string, delta: string): void {\n\t\tconst turn = this.ensureTurn(turnId);\n\t\tconst item = turn.items.find((candidate) => candidate.id === itemId);\n\t\tif (item?.type === \"agentMessage\") {\n\t\t\tthis.upsertItem(turnId, { ...item, text: `${item.text}${delta}` });\n\t\t\treturn;\n\t\t}\n\t\tthis.upsertItem(turnId, {\n\t\t\tid: itemId,\n\t\t\tmemoryCitation: null,\n\t\t\tphase: \"commentary\",\n\t\t\ttext: delta,\n\t\t\ttype: \"agentMessage\",\n\t\t});\n\t}\n\n\tprivate applyPlanDelta(turnId: string, itemId: string, delta: string): void {\n\t\tconst turn = this.ensureTurn(turnId);\n\t\tconst item = turn.items.find((candidate) => candidate.id === itemId);\n\t\tif (item?.type === \"plan\") {\n\t\t\tthis.upsertItem(turnId, { ...item, text: `${item.text}${delta}` });\n\t\t\treturn;\n\t\t}\n\t\tthis.upsertItem(turnId, {\n\t\t\tid: itemId,\n\t\t\ttext: delta,\n\t\t\ttype: \"plan\",\n\t\t});\n\t}\n\n\tprivate applyReasoningSummaryPartAdded(\n\t\tturnId: string,\n\t\titemId: string,\n\t\tsummaryIndex: number,\n\t): void {\n\t\tconst item = this.reasoningItem(turnId, itemId);\n\t\tconst summary = replaceAtOrAppend(item.summary, summaryIndex, \"\");\n\t\tthis.upsertItem(turnId, { ...item, summary });\n\t}\n\n\tprivate applyReasoningSummaryTextDelta(\n\t\tturnId: string,\n\t\titemId: string,\n\t\tsummaryIndex: number,\n\t\tdelta: string,\n\t): void {\n\t\tconst item = this.reasoningItem(turnId, itemId);\n\t\tconst current = item.summary[summaryIndex] ?? \"\";\n\t\tconst summary = replaceAtOrAppend(item.summary, summaryIndex, `${current}${delta}`);\n\t\tthis.upsertItem(turnId, { ...item, summary });\n\t}\n\n\tprivate applyReasoningTextDelta(\n\t\tturnId: string,\n\t\titemId: string,\n\t\tcontentIndex: number,\n\t\tdelta: string,\n\t): void {\n\t\tconst item = this.reasoningItem(turnId, itemId);\n\t\tconst current = item.content[contentIndex] ?? \"\";\n\t\tconst content = replaceAtOrAppend(item.content, contentIndex, `${current}${delta}`);\n\t\tthis.upsertItem(turnId, { ...item, content });\n\t}\n\n\tprivate applyCommandOutputDelta(\n\t\tturnId: string,\n\t\titemId: string,\n\t\tdelta: string,\n\t): void {\n\t\tconst turn = this.ensureTurn(turnId);\n\t\tconst item = turn.items.find((candidate) => candidate.id === itemId);\n\t\tif (item?.type !== \"commandExecution\") {\n\t\t\treturn;\n\t\t}\n\t\tthis.upsertItem(turnId, {\n\t\t\t...item,\n\t\t\taggregatedOutput: `${item.aggregatedOutput ?? \"\"}${delta}`,\n\t\t});\n\t}\n\n\tprivate applyFileChangePatchUpdated(\n\t\tturnId: string,\n\t\titemId: string,\n\t\tchanges: Extract<ThreadItem, { type: \"fileChange\" }>[\"changes\"],\n\t): void {\n\t\tconst turn = this.ensureTurn(turnId);\n\t\tconst item = turn.items.find((candidate) => candidate.id === itemId);\n\t\tif (item?.type !== \"fileChange\") {\n\t\t\treturn;\n\t\t}\n\t\tthis.upsertItem(turnId, { ...item, changes });\n\t}\n\n\tprivate reasoningItem(\n\t\tturnId: string,\n\t\titemId: string,\n\t): Extract<ThreadItem, { type: \"reasoning\" }> {\n\t\tconst turn = this.ensureTurn(turnId);\n\t\tconst item = turn.items.find((candidate) => candidate.id === itemId);\n\t\tif (item?.type === \"reasoning\") {\n\t\t\treturn item;\n\t\t}\n\t\treturn {\n\t\t\tcontent: [],\n\t\t\tid: itemId,\n\t\t\tsummary: [],\n\t\t\ttype: \"reasoning\",\n\t\t};\n\t}\n\n\tprivate ensureTurn(turnId: string): Turn {\n\t\tconst existing = this.turns.find((turn) => turn.id === turnId);\n\t\tif (existing) {\n\t\t\treturn existing;\n\t\t}\n\t\tconst turn: Turn = {\n\t\t\tcompletedAt: null,\n\t\t\tdurationMs: null,\n\t\t\terror: null,\n\t\t\tid: turnId,\n\t\t\titems: [],\n\t\t\titemsView: \"full\",\n\t\t\tstartedAt: null,\n\t\t\tstatus: \"inProgress\",\n\t\t};\n\t\tthis.turns = [...this.turns, turn];\n\t\tthis.activeTurnIds.add(turnId);\n\t\treturn turn;\n\t}\n\n\tprivate replaceTurn(turn: Turn): void {\n\t\tconst index = this.turns.findIndex((candidate) => candidate.id === turn.id);\n\t\tthis.turns = index === -1 ? [...this.turns, turn] : replaceAt(this.turns, index, turn);\n\t}\n}\n\nexport function applyServerNotificationToThreadEventStore(\n\tstore: ThreadEventStore,\n\tnotification: ServerNotification,\n): ThreadEventSnapshot {\n\tstore.noteNotification(notification);\n\treturn store.snapshot();\n}\n\nexport function applyServerRequestToThreadEventStore(\n\tstore: ThreadEventStore,\n\trequest: ServerRequest,\n): ThreadEventSnapshot {\n\tstore.noteRequest(request);\n\treturn store.snapshot();\n}\n\nexport function serverRequestThreadId(request: ServerRequest): string | null {\n\tif (\"params\" in request && request.params && typeof request.params === \"object\") {\n\t\tconst threadId = (request.params as { threadId?: unknown }).threadId;\n\t\treturn typeof threadId === \"string\" ? threadId : null;\n\t}\n\treturn null;\n}\n\nexport function serverNotificationThreadTarget(\n\tnotification: ServerNotification,\n): ServerNotificationThreadTarget {\n\tconst threadId = notificationThreadId(notification);\n\tif (!threadId) {\n\t\treturn { type: \"global\" };\n\t}\n\treturn isUuidLike(threadId)\n\t\t? { threadId, type: \"thread\" }\n\t\t: { threadId, type: \"invalid_thread_id\" };\n}\n\nexport function threadEventSnapshotHasStarted(\n\tsnapshot: ThreadEventSnapshot | null,\n): boolean {\n\tif (!snapshot) {\n\t\treturn false;\n\t}\n\treturn (\n\t\tsnapshot.turns.some((turn) => turn.items.length > 0) ||\n\t\tsnapshot.activeTurnIds.length > 0 ||\n\t\tsnapshot.pendingRequests.length > 0 ||\n\t\tsnapshot.warnings.length > 0 ||\n\t\tsnapshot.errors.length > 0\n\t);\n}\n\nfunction notificationThreadId(notification: ServerNotification): string | null {\n\tif (notification.method === \"thread/started\") {\n\t\treturn notification.params.thread.id;\n\t}\n\tif (\"params\" in notification && notification.params && typeof notification.params === \"object\") {\n\t\tconst threadId = (notification.params as { threadId?: unknown }).threadId;\n\t\treturn typeof threadId === \"string\" ? threadId : null;\n\t}\n\treturn null;\n}\n\nfunction cloneThread(thread: Thread): Thread {\n\treturn {\n\t\t...thread,\n\t\tturns: thread.turns.map(cloneTurn),\n\t};\n}\n\nfunction cloneTurn(turn: Turn): Turn {\n\treturn {\n\t\t...turn,\n\t\titems: turn.items.map(cloneThreadItem),\n\t};\n}\n\nfunction cloneThreadItem(item: ThreadItem): ThreadItem {\n\treturn { ...item };\n}\n\nfunction cloneThreadTokenUsage(tokenUsage: ThreadTokenUsage): ThreadTokenUsage {\n\treturn {\n\t\tlast: { ...tokenUsage.last },\n\t\tmodelContextWindow: tokenUsage.modelContextWindow,\n\t\ttotal: { ...tokenUsage.total },\n\t};\n}\n\nfunction replaceAt<T>(items: readonly T[], index: number, item: T): T[] {\n\treturn [...items.slice(0, index), item, ...items.slice(index + 1)];\n}\n\nfunction replaceAtOrAppend<T>(items: readonly T[], index: number, item: T): T[] {\n\tif (index < items.length) {\n\t\treturn replaceAt(items, index, item);\n\t}\n\treturn [...items, item];\n}\n\nfunction appendUnique<T>(items: readonly T[], item: T): T[] {\n\treturn items.includes(item) ? [...items] : [...items, item];\n}\n\nfunction isUuidLike(value: string): boolean {\n\treturn /^[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}$/iu.test(value);\n}\n","import type {\n\tClientRequest,\n\tRequestId,\n\tServerNotification,\n\tServerRequest,\n} from \"../../app-server-protocol/schema/typescript\";\n\nexport type JsonRpcResult = unknown;\n\nexport type JSONRPCErrorError = {\n\tcode: number;\n\tdata?: unknown;\n\tmessage: string;\n};\n\nexport type Result = JsonRpcResult;\n\nexport type AppServerEvent =\n\t| { skipped: number; type: \"lagged\" }\n\t| {\n\t\t\tnotification: ServerNotification;\n\t\t\ttype: \"server_notification\";\n\t }\n\t| { request: ServerRequest; type: \"server_request\" }\n\t| { message: string; type: \"disconnected\" };\n\nexport type TypedRequestError =\n\t| { method: string; source: unknown; type: \"transport\" }\n\t| { method: string; source: JSONRPCErrorError; type: \"server\" }\n\t| { method: string; source: unknown; type: \"deserialize\" };\n\nexport type AppServerRequestHandle = {\n\trejectServerRequest(\n\t\trequestId: RequestId,\n\t\terror: JSONRPCErrorError,\n\t): Promise<void>;\n\trequest(request: ClientRequest): Promise<unknown>;\n\trequestTyped<T>(request: ClientRequest): Promise<T>;\n\tresolveServerRequest(requestId: RequestId, result: Result): Promise<void>;\n};\n\nexport async function requestTyped<T>(\n\trequest: ClientRequest,\n\tsend: (request: ClientRequest) => Promise<unknown>,\n): Promise<T> {\n\ttry {\n\t\treturn (await send(request)) as T;\n\t} catch (source) {\n\t\tif (isJsonRpcError(source)) {\n\t\t\tthrow {\n\t\t\t\tmethod: request.method,\n\t\t\t\tsource,\n\t\t\t\ttype: \"server\",\n\t\t\t} satisfies TypedRequestError;\n\t\t}\n\t\tthrow {\n\t\t\tmethod: request.method,\n\t\t\tsource,\n\t\t\ttype: \"transport\",\n\t\t} satisfies TypedRequestError;\n\t}\n}\n\nexport function serverNotificationRequiresDelivery(\n\tnotification: ServerNotification,\n): boolean {\n\treturn (\n\t\tnotification.method === \"turn/completed\" ||\n\t\tnotification.method === \"item/completed\" ||\n\t\tnotification.method === \"item/agentMessage/delta\" ||\n\t\tnotification.method === \"item/plan/delta\" ||\n\t\tnotification.method === \"item/reasoning/summaryTextDelta\" ||\n\t\tnotification.method === \"item/reasoning/textDelta\"\n\t);\n}\n\nexport function requestMethodName(request: ClientRequest): string {\n\treturn request.method;\n}\n\nfunction isJsonRpcError(value: unknown): value is JSONRPCErrorError {\n\treturn (\n\t\ttypeof value === \"object\" &&\n\t\tvalue !== null &&\n\t\ttypeof (value as { code?: unknown }).code === \"number\" &&\n\t\ttypeof (value as { message?: unknown }).message === \"string\"\n\t);\n}\n\nexport {\n\tCodexAppServerClientTransportError,\n\tcreateCodexAppServerClient,\n\tparseCodexAppServerEvent,\n\ttype CodexAppServerClientConnectionStatus,\n\ttype CodexAppServerClientOptions,\n} from \"./remote\";\nexport { AppServerSession, type CodexAppServer } from \"./session\";\nexport {\n\tPendingAppServerRequests,\n\ttype AppServerRequestResolution,\n\ttype ResolvedAppServerRequest,\n\ttype UnsupportedAppServerRequest,\n} from \"./pending_requests\";\nexport {\n\tapplyServerNotificationToThreadEventStore,\n\tapplyServerRequestToThreadEventStore,\n\tserverNotificationThreadTarget,\n\tserverRequestThreadId,\n\tthreadEventSnapshotHasStarted,\n\tThreadEventStore,\n\ttype ServerNotificationThreadTarget,\n\ttype ThreadBufferedEvent,\n\ttype ThreadEventSnapshot,\n\ttype ThreadTokenUsageSnapshot,\n} from \"./thread_event_store\";\nexport {\n\tapplyServerNotificationToRenderedThread,\n\tapplyServerRequestToRenderedThread,\n\trenderThreadFromAppServerThread,\n\tserverNotificationToEventMsg,\n\tserverRequestToEventMsg,\n} from \"./thread_projection\";\n","import type {\n\tClientRequest,\n\tInitializeParams,\n\tRequestId,\n\tServerNotification,\n\tServerRequest,\n} from \"../../app-server-protocol/schema/typescript\";\nimport type {\n\tAppServerEvent,\n\tJSONRPCErrorError,\n\tResult,\n} from \"./lib\";\nimport { requestTyped as requestTypedWithErrors } from \"./lib\";\nimport type { CodexAppServer } from \"./session\";\nimport {\n\tparseClientTransportPayload,\n\tserializeJsonRpcError,\n\tserializeJsonRpcResponse,\n} from \"../../app-server-transport/src/transport/mod\";\n\nexport type CodexAppServerClientConnectionStatus =\n\t| \"connecting\"\n\t| \"connected\"\n\t| \"closed\"\n\t| \"error\";\n\nexport type CodexAppServerClientOptions = {\n\tWebSocket?: typeof WebSocket;\n\tinitializeParams?: InitializeParams | (() => InitializeParams | Promise<InitializeParams>);\n\tonConnectionStatus?: (status: CodexAppServerClientConnectionStatus) => void;\n\tparseEvent?: (value: unknown) => AppServerEvent | null;\n\turl: string | (() => string | Promise<string>);\n};\n\nexport class CodexAppServerClientTransportError extends Error {\n\tconstructor(\n\t\tmessage: string,\n\t\treadonly status?: number,\n\t\treadonly body?: unknown,\n\t) {\n\t\tsuper(message);\n\t\tthis.name = \"CodexAppServerClientTransportError\";\n\t}\n}\n\nexport function createCodexAppServerClient(\n\toptions: CodexAppServerClientOptions,\n): CodexAppServer {\n\tlet socket: WebSocket | null = null;\n\tlet openPromise: Promise<WebSocket> | null = null;\n\tlet initializePromise: Promise<unknown> | null = null;\n\tlet initialized = false;\n\tconst pendingRequests = new Map<\n\t\tRequestId,\n\t\t{ reject: (error: unknown) => void; resolve: (result: unknown) => void }\n\t>();\n\tconst eventQueue = createEventQueue<AppServerEvent>();\n\n\tasync function ensureOpenSocket(): Promise<WebSocket> {\n\t\tconst openState = 1;\n\t\tif (socket?.readyState === openState) {\n\t\t\treturn socket;\n\t\t}\n\t\topenPromise ??= openSocket();\n\t\treturn openPromise;\n\t}\n\n\tasync function ensureInitialized(): Promise<void> {\n\t\tif (initialized) {\n\t\t\treturn;\n\t\t}\n\t\tinitializePromise ??= sendClientRequest({\n\t\t\tid: 0,\n\t\t\tmethod: \"initialize\",\n\t\t\tparams: await resolveInitializeParams(options.initializeParams),\n\t\t});\n\t\tawait initializePromise;\n\t\tinitialized = true;\n\t}\n\n\tasync function request(request: ClientRequest): Promise<unknown> {\n\t\tif (request.method !== \"initialize\") {\n\t\t\tawait ensureInitialized();\n\t\t\treturn sendClientRequest(request);\n\t\t}\n\t\tconst result = await sendClientRequest(request);\n\t\tinitialized = true;\n\t\treturn result;\n\t}\n\n\tasync function sendClientRequest(request: ClientRequest): Promise<unknown> {\n\t\tconst websocket = await ensureOpenSocket();\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tpendingRequests.set(request.id, { reject, resolve });\n\t\t\ttry {\n\t\t\t\twebsocket.send(JSON.stringify(request));\n\t\t\t} catch (error) {\n\t\t\t\tpendingRequests.delete(request.id);\n\t\t\t\treject(error);\n\t\t\t}\n\t\t});\n\t}\n\n\tasync function sendClientResponse(\n\t\trequestId: RequestId,\n\t\tresult: Result,\n\t): Promise<void> {\n\t\tconst websocket = await ensureOpenSocket();\n\t\twebsocket.send(serializeJsonRpcResponse(requestId, result));\n\t}\n\n\tasync function sendClientError(\n\t\trequestId: RequestId,\n\t\terror: JSONRPCErrorError,\n\t): Promise<void> {\n\t\tconst websocket = await ensureOpenSocket();\n\t\twebsocket.send(serializeJsonRpcError(requestId, error));\n\t}\n\n\tasync function openSocket(): Promise<WebSocket> {\n\t\toptions.onConnectionStatus?.(\"connecting\");\n\t\teventQueue.reopen();\n\t\tconst WebSocketCtor = options.WebSocket ?? WebSocket;\n\t\tconst websocketUrl = await resolveUrl(options.url);\n\t\treturn new Promise((resolve, reject) => {\n\t\t\tlet settled = false;\n\t\t\tconst nextSocket = new WebSocketCtor(websocketUrl);\n\t\t\tsocket = nextSocket;\n\t\t\tnextSocket.addEventListener(\"open\", () => {\n\t\t\t\tsettled = true;\n\t\t\t\toptions.onConnectionStatus?.(\"connected\");\n\t\t\t\tresolve(nextSocket);\n\t\t\t});\n\t\t\tnextSocket.addEventListener(\"message\", (message) => {\n\t\t\t\thandleSocketMessage(message.data);\n\t\t\t});\n\t\t\tnextSocket.addEventListener(\"close\", () => {\n\t\t\t\tconst error = new CodexAppServerClientTransportError(\n\t\t\t\t\t\"Codex app-server WebSocket closed.\",\n\t\t\t\t);\n\t\t\t\tcloseSocketState(error);\n\t\t\t\teventQueue.push({ message: \"closed\", type: \"disconnected\" });\n\t\t\t\teventQueue.close();\n\t\t\t\toptions.onConnectionStatus?.(\"closed\");\n\t\t\t\tif (!settled) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t});\n\t\t\tnextSocket.addEventListener(\"error\", () => {\n\t\t\t\tconst error = new CodexAppServerClientTransportError(\n\t\t\t\t\t\"Codex app-server WebSocket failed.\",\n\t\t\t\t);\n\t\t\t\tcloseSocketState(error);\n\t\t\t\teventQueue.fail(error);\n\t\t\t\toptions.onConnectionStatus?.(\"error\");\n\t\t\t\tif (!settled) {\n\t\t\t\t\treject(error);\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\tfunction handleSocketMessage(value: unknown): void {\n\t\tconst parsed = parseClientTransportPayload(value);\n\t\tif (parsed.type === \"invalid\") {\n\t\t\tconst event = options.parseEvent?.(value);\n\t\t\tif (event) {\n\t\t\t\teventQueue.push(event);\n\t\t\t}\n\t\t\treturn;\n\t\t}\n\t\tconst message = parsed.message;\n\t\tswitch (message.type) {\n\t\t\tcase \"response\": {\n\t\t\t\tconst pending = pendingRequests.get(message.response.id);\n\t\t\t\tif (!pending) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tpendingRequests.delete(message.response.id);\n\t\t\t\tpending.resolve(message.response.result);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcase \"error\": {\n\t\t\t\tif (message.error.id === null) {\n\t\t\t\t\teventQueue.fail(message.error.error);\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tconst pending = pendingRequests.get(message.error.id);\n\t\t\t\tif (!pending) {\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tpendingRequests.delete(message.error.id);\n\t\t\t\tpending.reject(message.error.error);\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tcase \"server_notification\":\n\t\t\t\teventQueue.push({\n\t\t\t\t\tnotification: message.notification,\n\t\t\t\t\ttype: \"server_notification\",\n\t\t\t\t});\n\t\t\t\treturn;\n\t\t\tcase \"server_request\":\n\t\t\t\teventQueue.push({ request: message.request, type: \"server_request\" });\n\t\t\t\treturn;\n\t\t}\n\t}\n\n\tfunction closeSocketState(error: unknown): void {\n\t\tsocket = null;\n\t\topenPromise = null;\n\t\tinitializePromise = null;\n\t\tinitialized = false;\n\t\tfor (const pending of pendingRequests.values()) {\n\t\t\tpending.reject(error);\n\t\t}\n\t\tpendingRequests.clear();\n\t}\n\n\tfunction close(): void {\n\t\tconst currentSocket = socket;\n\t\tcloseSocketState(\n\t\t\tnew CodexAppServerClientTransportError(\n\t\t\t\t\"Codex app-server WebSocket closed.\",\n\t\t\t),\n\t\t);\n\t\teventQueue.close();\n\t\tif (currentSocket && currentSocket.readyState !== 3) {\n\t\t\tcurrentSocket.close();\n\t\t}\n\t}\n\n\treturn {\n\t\tclose,\n\t\tevents() {\n\t\t\tvoid ensureInitialized().catch((error) => eventQueue.fail(error));\n\t\t\treturn eventQueue.iterable();\n\t\t},\n\t\trequest,\n\t\trequestTyped<T>(clientRequest: ClientRequest): Promise<T> {\n\t\t\treturn requestTypedWithErrors<T>(clientRequest, request);\n\t\t},\n\t\trejectServerRequest(requestId: RequestId, error: JSONRPCErrorError) {\n\t\t\treturn sendClientError(requestId, error);\n\t\t},\n\t\tresolveServerRequest(requestId: RequestId, result: Result) {\n\t\t\treturn sendClientResponse(requestId, result);\n\t\t},\n\t};\n}\n\nexport function parseCodexAppServerEvent(value: unknown): AppServerEvent | null {\n\tconst parsed = parseClientTransportPayload(value);\n\tif (parsed.type === \"ok\") {\n\t\tswitch (parsed.message.type) {\n\t\t\tcase \"server_notification\":\n\t\t\t\treturn {\n\t\t\t\t\tnotification: parsed.message.notification,\n\t\t\t\t\ttype: \"server_notification\",\n\t\t\t\t};\n\t\t\tcase \"server_request\":\n\t\t\t\treturn { request: parsed.message.request, type: \"server_request\" };\n\t\t\tcase \"error\":\n\t\t\tcase \"response\":\n\t\t\t\treturn null;\n\t\t}\n\t}\n\tif (typeof value !== \"string\") {\n\t\treturn appServerEventFromParsed(value);\n\t}\n\ttry {\n\t\treturn appServerEventFromParsed(JSON.parse(value) as unknown);\n\t} catch {\n\t\treturn null;\n\t}\n}\n\nasync function resolveInitializeParams(\n\tparams: CodexAppServerClientOptions[\"initializeParams\"],\n): Promise<InitializeParams> {\n\tif (typeof params === \"function\") {\n\t\treturn params();\n\t}\n\treturn params ?? defaultInitializeParams();\n}\n\nasync function resolveUrl(\n\turl: CodexAppServerClientOptions[\"url\"],\n): Promise<string> {\n\treturn typeof url === \"function\" ? await url() : url;\n}\n\nfunction defaultInitializeParams(): InitializeParams {\n\treturn {\n\t\tcapabilities: {\n\t\t\texperimentalApi: false,\n\t\t\toptOutNotificationMethods: [],\n\t\t},\n\t\tclientInfo: {\n\t\t\tname: \"codex-js\",\n\t\t\ttitle: null,\n\t\t\tversion: \"0.0.0\",\n\t\t},\n\t};\n}\n\nfunction appServerEventFromParsed(value: unknown): AppServerEvent | null {\n\tif (isObject(value) && typeof value.type === \"string\") {\n\t\tif (\n\t\t\tvalue.type === \"server_notification\" ||\n\t\t\tvalue.type === \"server_request\" ||\n\t\t\tvalue.type === \"lagged\" ||\n\t\t\tvalue.type === \"disconnected\"\n\t\t) {\n\t\t\treturn value as AppServerEvent;\n\t\t}\n\t}\n\tif (isObject(value) && typeof value.method === \"string\" && \"params\" in value) {\n\t\tif (\"id\" in value) {\n\t\t\treturn { request: value as ServerRequest, type: \"server_request\" };\n\t\t}\n\t\treturn {\n\t\t\tnotification: value as ServerNotification,\n\t\t\ttype: \"server_notification\",\n\t\t};\n\t}\n\treturn null;\n}\n\nfunction isObject(value: unknown): value is Record<string, unknown> {\n\treturn typeof value === \"object\" && value !== null;\n}\n\nfunction createEventQueue<T>() {\n\tconst values: T[] = [];\n\ttype Waiter = {\n\t\treject: (error: unknown) => void;\n\t\tresolve: (value: IteratorResult<T>) => void;\n\t\tsettled: boolean;\n\t};\n\tconst waiters: Waiter[] = [];\n\tlet closed = false;\n\tlet failure: unknown = null;\n\n\treturn {\n\t\tclose() {\n\t\t\tclosed = true;\n\t\t\tfor (const waiter of waiters.splice(0)) {\n\t\t\t\twaiter.settled = true;\n\t\t\t\twaiter.resolve({ done: true, value: undefined });\n\t\t\t}\n\t\t},\n\t\tfail(error: unknown) {\n\t\t\tfailure = error;\n\t\t\tfor (const waiter of waiters.splice(0)) {\n\t\t\t\twaiter.settled = true;\n\t\t\t\twaiter.reject(error);\n\t\t\t}\n\t\t},\n\t\tpush(value: T) {\n\t\t\twhile (waiters.length > 0) {\n\t\t\t\tconst waiter = waiters.shift() as Waiter;\n\t\t\t\tif (waiter.settled) {\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\twaiter.settled = true;\n\t\t\t\twaiter.resolve({ done: false, value });\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tvalues.push(value);\n\t\t},\n\t\treopen() {\n\t\t\tvalues.splice(0);\n\t\t\tclosed = false;\n\t\t\tfailure = null;\n\t\t},\n\t\titerable(options: { onReturn?: () => void } = {}): AsyncIterable<T> {\n\t\t\treturn {\n\t\t\t\t[Symbol.asyncIterator]() {\n\t\t\t\t\tlet active = true;\n\t\t\t\t\tlet pendingWaiter: Waiter | null = null;\n\t\t\t\t\treturn {\n\t\t\t\t\t\tnext() {\n\t\t\t\t\t\t\tif (!active) {\n\t\t\t\t\t\t\t\treturn Promise.resolve({ done: true, value: undefined });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (failure) {\n\t\t\t\t\t\t\t\treturn Promise.reject(failure);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (values.length > 0) {\n\t\t\t\t\t\t\t\treturn Promise.resolve({\n\t\t\t\t\t\t\t\t\tdone: false,\n\t\t\t\t\t\t\t\t\tvalue: values.shift() as T,\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (closed) {\n\t\t\t\t\t\t\t\treturn Promise.resolve({ done: true, value: undefined });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn new Promise<IteratorResult<T>>((resolve, reject) => {\n\t\t\t\t\t\t\t\tconst waiter = { reject, resolve, settled: false };\n\t\t\t\t\t\t\t\tpendingWaiter = waiter;\n\t\t\t\t\t\t\t\twaiters.push(waiter);\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t},\n\t\t\t\t\t\treturn() {\n\t\t\t\t\t\t\toptions.onReturn?.();\n\t\t\t\t\t\t\tactive = false;\n\t\t\t\t\t\t\tif (pendingWaiter && !pendingWaiter.settled) {\n\t\t\t\t\t\t\t\tpendingWaiter.settled = true;\n\t\t\t\t\t\t\t\tconst index = waiters.indexOf(pendingWaiter);\n\t\t\t\t\t\t\t\tif (index !== -1) {\n\t\t\t\t\t\t\t\t\twaiters.splice(index, 1);\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tpendingWaiter.resolve({ done: true, value: undefined });\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\treturn Promise.resolve({ done: true, value: undefined });\n\t\t\t\t\t\t},\n\t\t\t\t\t};\n\t\t\t\t},\n\t\t\t};\n\t\t},\n\t};\n}\n"]}
|
|
@@ -0,0 +1,128 @@
|
|
|
1
|
+
// src/upstream/codex-rs/core/src/memory.ts
|
|
2
|
+
var ThreadMemoryMode = {
|
|
3
|
+
Enabled: "Enabled",
|
|
4
|
+
Disabled: "Disabled"
|
|
5
|
+
};
|
|
6
|
+
var ThreadMemoryModeSessionMetaValue = {
|
|
7
|
+
Enabled: "enabled",
|
|
8
|
+
Disabled: "disabled"
|
|
9
|
+
};
|
|
10
|
+
function threadMemoryModeToSessionMetaValue(mode) {
|
|
11
|
+
switch (mode) {
|
|
12
|
+
case ThreadMemoryMode.Enabled:
|
|
13
|
+
return ThreadMemoryModeSessionMetaValue.Enabled;
|
|
14
|
+
case ThreadMemoryMode.Disabled:
|
|
15
|
+
return ThreadMemoryModeSessionMetaValue.Disabled;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
// src/upstream/codex-rs/core/src/thread-store/live-thread.ts
|
|
20
|
+
var LiveThread = class _LiveThread {
|
|
21
|
+
constructor(threadId, threadStore) {
|
|
22
|
+
this.threadId = threadId;
|
|
23
|
+
this.threadStore = threadStore;
|
|
24
|
+
}
|
|
25
|
+
threadId;
|
|
26
|
+
threadStore;
|
|
27
|
+
static async create(threadStore, params) {
|
|
28
|
+
await threadStore.createThread(params);
|
|
29
|
+
return new _LiveThread(params.thread_id, threadStore);
|
|
30
|
+
}
|
|
31
|
+
static async resume(threadStore, params) {
|
|
32
|
+
await threadStore.resumeThread(params);
|
|
33
|
+
return new _LiveThread(params.thread_id, threadStore);
|
|
34
|
+
}
|
|
35
|
+
async appendItems(items) {
|
|
36
|
+
await this.threadStore.appendItems({
|
|
37
|
+
thread_id: this.threadId,
|
|
38
|
+
items
|
|
39
|
+
});
|
|
40
|
+
}
|
|
41
|
+
async persist() {
|
|
42
|
+
await this.threadStore.persistThread(this.threadId);
|
|
43
|
+
}
|
|
44
|
+
async flush() {
|
|
45
|
+
await this.threadStore.flushThread(this.threadId);
|
|
46
|
+
}
|
|
47
|
+
async shutdown() {
|
|
48
|
+
await this.threadStore.shutdownThread(this.threadId);
|
|
49
|
+
}
|
|
50
|
+
async discard() {
|
|
51
|
+
await this.threadStore.discardThread(this.threadId);
|
|
52
|
+
}
|
|
53
|
+
async loadHistory(includeArchived) {
|
|
54
|
+
return this.threadStore.loadHistory({
|
|
55
|
+
thread_id: this.threadId,
|
|
56
|
+
include_archived: includeArchived
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
async readThread(includeArchived, includeHistory) {
|
|
60
|
+
const params = {
|
|
61
|
+
thread_id: this.threadId,
|
|
62
|
+
include_archived: includeArchived,
|
|
63
|
+
include_history: includeHistory
|
|
64
|
+
};
|
|
65
|
+
return this.threadStore.readThread(params);
|
|
66
|
+
}
|
|
67
|
+
async updateMemoryMode(mode, includeArchived) {
|
|
68
|
+
const params = {
|
|
69
|
+
thread_id: this.threadId,
|
|
70
|
+
patch: {
|
|
71
|
+
memory_mode: mode
|
|
72
|
+
},
|
|
73
|
+
include_archived: includeArchived
|
|
74
|
+
};
|
|
75
|
+
await this.threadStore.updateThreadMetadata(params);
|
|
76
|
+
}
|
|
77
|
+
async updateMetadata(patch, includeArchived) {
|
|
78
|
+
return this.threadStore.updateThreadMetadata({
|
|
79
|
+
thread_id: this.threadId,
|
|
80
|
+
patch,
|
|
81
|
+
include_archived: includeArchived
|
|
82
|
+
});
|
|
83
|
+
}
|
|
84
|
+
async localRolloutPath() {
|
|
85
|
+
return null;
|
|
86
|
+
}
|
|
87
|
+
};
|
|
88
|
+
var LiveThreadInitGuard = class {
|
|
89
|
+
liveThread;
|
|
90
|
+
constructor(liveThread) {
|
|
91
|
+
this.liveThread = liveThread ?? null;
|
|
92
|
+
}
|
|
93
|
+
asRef() {
|
|
94
|
+
return this.liveThread;
|
|
95
|
+
}
|
|
96
|
+
commit() {
|
|
97
|
+
this.liveThread = null;
|
|
98
|
+
}
|
|
99
|
+
async discard() {
|
|
100
|
+
const liveThread = this.liveThread;
|
|
101
|
+
if (!liveThread) {
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
this.liveThread = null;
|
|
105
|
+
try {
|
|
106
|
+
await liveThread.discard();
|
|
107
|
+
} catch {
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
};
|
|
111
|
+
|
|
112
|
+
// src/upstream/codex-rs/core/src/thread-store/types.ts
|
|
113
|
+
var ThreadEventPersistenceMode = {
|
|
114
|
+
Limited: "Limited",
|
|
115
|
+
Extended: "Extended"
|
|
116
|
+
};
|
|
117
|
+
var ThreadSortKey = {
|
|
118
|
+
CreatedAt: "CreatedAt",
|
|
119
|
+
UpdatedAt: "UpdatedAt"
|
|
120
|
+
};
|
|
121
|
+
var SortDirection = {
|
|
122
|
+
Asc: "Asc",
|
|
123
|
+
Desc: "Desc"
|
|
124
|
+
};
|
|
125
|
+
|
|
126
|
+
export { LiveThread, LiveThreadInitGuard, SortDirection, ThreadEventPersistenceMode, ThreadMemoryMode, ThreadMemoryModeSessionMetaValue, ThreadSortKey, threadMemoryModeToSessionMetaValue };
|
|
127
|
+
//# sourceMappingURL=chunk-CGBS37IU.js.map
|
|
128
|
+
//# sourceMappingURL=chunk-CGBS37IU.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/upstream/codex-rs/core/src/memory.ts","../src/upstream/codex-rs/core/src/thread-store/live-thread.ts","../src/upstream/codex-rs/core/src/thread-store/types.ts"],"names":[],"mappings":";AAAO,IAAM,gBAAA,GAAmB;AAAA,EAC/B,OAAA,EAAS,SAAA;AAAA,EACT,QAAA,EAAU;AACX;AAKO,IAAM,gCAAA,GAAmC;AAAA,EAC/C,OAAA,EAAS,SAAA;AAAA,EACT,QAAA,EAAU;AACX;AAKO,SAAS,mCACf,IAAA,EACmC;AACnC,EAAA,QAAQ,IAAA;AAAM,IACb,KAAK,gBAAA,CAAiB,OAAA;AACrB,MAAA,OAAO,gCAAA,CAAiC,OAAA;AAAA,IACzC,KAAK,gBAAA,CAAiB,QAAA;AACrB,MAAA,OAAO,gCAAA,CAAiC,QAAA;AAAA;AAE3C;;;ACXO,IAAM,UAAA,GAAN,MAAM,WAAA,CAAW;AAAA,EACf,WAAA,CACE,UACQ,WAAA,EAChB;AAFQ,IAAA,IAAA,CAAA,QAAA,GAAA,QAAA;AACQ,IAAA,IAAA,CAAA,WAAA,GAAA,WAAA;AAAA,EACf;AAAA,EAFO,QAAA;AAAA,EACQ,WAAA;AAAA,EAGlB,aAAa,MAAA,CACZ,WAAA,EACA,MAAA,EACsB;AACtB,IAAA,MAAM,WAAA,CAAY,aAAa,MAAM,CAAA;AACrC,IAAA,OAAO,IAAI,WAAA,CAAW,MAAA,CAAO,SAAA,EAAW,WAAW,CAAA;AAAA,EACpD;AAAA,EAEA,aAAa,MAAA,CACZ,WAAA,EACA,MAAA,EACsB;AACtB,IAAA,MAAM,WAAA,CAAY,aAAa,MAAM,CAAA;AACrC,IAAA,OAAO,IAAI,WAAA,CAAW,MAAA,CAAO,SAAA,EAAW,WAAW,CAAA;AAAA,EACpD;AAAA,EAEA,MAAM,YAAY,KAAA,EAAqC;AACtD,IAAA,MAAM,IAAA,CAAK,YAAY,WAAA,CAAY;AAAA,MAClC,WAAW,IAAA,CAAK,QAAA;AAAA,MAChB;AAAA,KACA,CAAA;AAAA,EACF;AAAA,EAEA,MAAM,OAAA,GAAyB;AAC9B,IAAA,MAAM,IAAA,CAAK,WAAA,CAAY,aAAA,CAAc,IAAA,CAAK,QAAQ,CAAA;AAAA,EACnD;AAAA,EAEA,MAAM,KAAA,GAAuB;AAC5B,IAAA,MAAM,IAAA,CAAK,WAAA,CAAY,WAAA,CAAY,IAAA,CAAK,QAAQ,CAAA;AAAA,EACjD;AAAA,EAEA,MAAM,QAAA,GAA0B;AAC/B,IAAA,MAAM,IAAA,CAAK,WAAA,CAAY,cAAA,CAAe,IAAA,CAAK,QAAQ,CAAA;AAAA,EACpD;AAAA,EAEA,MAAM,OAAA,GAAyB;AAC9B,IAAA,MAAM,IAAA,CAAK,WAAA,CAAY,aAAA,CAAc,IAAA,CAAK,QAAQ,CAAA;AAAA,EACnD;AAAA,EAEA,MAAM,YAAY,eAAA,EAAwD;AACzE,IAAA,OAAO,IAAA,CAAK,YAAY,WAAA,CAAY;AAAA,MACnC,WAAW,IAAA,CAAK,QAAA;AAAA,MAChB,gBAAA,EAAkB;AAAA,KAClB,CAAA;AAAA,EACF;AAAA,EAEA,MAAM,UAAA,CACL,eAAA,EACA,cAAA,EACwB;AACxB,IAAA,MAAM,MAAA,GAA2B;AAAA,MAChC,WAAW,IAAA,CAAK,QAAA;AAAA,MAChB,gBAAA,EAAkB,eAAA;AAAA,MAClB,eAAA,EAAiB;AAAA,KAClB;AACA,IAAA,OAAO,IAAA,CAAK,WAAA,CAAY,UAAA,CAAW,MAAM,CAAA;AAAA,EAC1C;AAAA,EAEA,MAAM,gBAAA,CACL,IAAA,EACA,eAAA,EACgB;AAChB,IAAA,MAAM,MAAA,GAAqC;AAAA,MAC1C,WAAW,IAAA,CAAK,QAAA;AAAA,MAChB,KAAA,EAAO;AAAA,QACN,WAAA,EAAa;AAAA,OACd;AAAA,MACA,gBAAA,EAAkB;AAAA,KACnB;AACA,IAAA,MAAM,IAAA,CAAK,WAAA,CAAY,oBAAA,CAAqB,MAAM,CAAA;AAAA,EACnD;AAAA,EAEA,MAAM,cAAA,CACL,KAAA,EACA,eAAA,EACwB;AACxB,IAAA,OAAO,IAAA,CAAK,YAAY,oBAAA,CAAqB;AAAA,MAC5C,WAAW,IAAA,CAAK,QAAA;AAAA,MAChB,KAAA;AAAA,MACA,gBAAA,EAAkB;AAAA,KAClB,CAAA;AAAA,EACF;AAAA,EAEA,MAAM,gBAAA,GAA2C;AAChD,IAAA,OAAO,IAAA;AAAA,EACR;AACD;AAEO,IAAM,sBAAN,MAA0B;AAAA,EACxB,UAAA;AAAA,EAER,YAAY,UAAA,EAAgC;AAC3C,IAAA,IAAA,CAAK,aAAa,UAAA,IAAc,IAAA;AAAA,EACjC;AAAA,EAEA,KAAA,GAA2B;AAC1B,IAAA,OAAO,IAAA,CAAK,UAAA;AAAA,EACb;AAAA,EAEA,MAAA,GAAe;AACd,IAAA,IAAA,CAAK,UAAA,GAAa,IAAA;AAAA,EACnB;AAAA,EAEA,MAAM,OAAA,GAAyB;AAC9B,IAAA,MAAM,aAAa,IAAA,CAAK,UAAA;AACxB,IAAA,IAAI,CAAC,UAAA,EAAY;AAChB,MAAA;AAAA,IACD;AAEA,IAAA,IAAA,CAAK,UAAA,GAAa,IAAA;AAClB,IAAA,IAAI;AACH,MAAA,MAAM,WAAW,OAAA,EAAQ;AAAA,IAC1B,CAAA,CAAA,MAAQ;AAAA,IAGR;AAAA,EACD;AACD;;;ACrIO,IAAM,0BAAA,GAA6B;AAAA,EACzC,OAAA,EAAS,SAAA;AAAA,EACT,QAAA,EAAU;AACX;AAKO,IAAM,aAAA,GAAgB;AAAA,EAC5B,SAAA,EAAW,WAAA;AAAA,EACX,SAAA,EAAW;AACZ;AAIO,IAAM,aAAA,GAAgB;AAAA,EAC5B,GAAA,EAAK,KAAA;AAAA,EACL,IAAA,EAAM;AACP","file":"chunk-CGBS37IU.js","sourcesContent":["export const ThreadMemoryMode = {\n\tEnabled: \"Enabled\",\n\tDisabled: \"Disabled\",\n} as const;\n\nexport type ThreadMemoryMode =\n\t(typeof ThreadMemoryMode)[keyof typeof ThreadMemoryMode];\n\nexport const ThreadMemoryModeSessionMetaValue = {\n\tEnabled: \"enabled\",\n\tDisabled: \"disabled\",\n} as const;\n\nexport type ThreadMemoryModeSessionMetaValue =\n\t(typeof ThreadMemoryModeSessionMetaValue)[keyof typeof ThreadMemoryModeSessionMetaValue];\n\nexport function threadMemoryModeToSessionMetaValue(\n\tmode: ThreadMemoryMode,\n): ThreadMemoryModeSessionMetaValue {\n\tswitch (mode) {\n\t\tcase ThreadMemoryMode.Enabled:\n\t\t\treturn ThreadMemoryModeSessionMetaValue.Enabled;\n\t\tcase ThreadMemoryMode.Disabled:\n\t\t\treturn ThreadMemoryModeSessionMetaValue.Disabled;\n\t}\n}\n\nexport type MemoryCitation = {\n\tentries: MemoryCitationEntry[];\n\trolloutIds: string[];\n};\n\nexport type MemoryCitationEntry = {\n\tpath: string;\n\tlineStart: number;\n\tlineEnd: number;\n\tnote: string;\n};\n","import type { ThreadId } from \"../ids\";\nimport type { ThreadMemoryMode } from \"../memory\";\nimport type { RolloutItem } from \"../protocol\";\nimport type {\n\tCreateThreadParams,\n\tReadThreadParams,\n\tResumeThreadParams,\n\tStoredThread,\n\tStoredThreadHistory,\n\tThreadMetadataPatch,\n\tUpdateThreadMetadataParams,\n} from \"./types\";\nimport type { ThreadStore } from \"./store\";\n\nexport class LiveThread {\n\tprivate constructor(\n\t\treadonly threadId: ThreadId,\n\t\tprivate readonly threadStore: ThreadStore,\n\t) {}\n\n\tstatic async create(\n\t\tthreadStore: ThreadStore,\n\t\tparams: CreateThreadParams,\n\t): Promise<LiveThread> {\n\t\tawait threadStore.createThread(params);\n\t\treturn new LiveThread(params.thread_id, threadStore);\n\t}\n\n\tstatic async resume(\n\t\tthreadStore: ThreadStore,\n\t\tparams: ResumeThreadParams,\n\t): Promise<LiveThread> {\n\t\tawait threadStore.resumeThread(params);\n\t\treturn new LiveThread(params.thread_id, threadStore);\n\t}\n\n\tasync appendItems(items: RolloutItem[]): Promise<void> {\n\t\tawait this.threadStore.appendItems({\n\t\t\tthread_id: this.threadId,\n\t\t\titems,\n\t\t});\n\t}\n\n\tasync persist(): Promise<void> {\n\t\tawait this.threadStore.persistThread(this.threadId);\n\t}\n\n\tasync flush(): Promise<void> {\n\t\tawait this.threadStore.flushThread(this.threadId);\n\t}\n\n\tasync shutdown(): Promise<void> {\n\t\tawait this.threadStore.shutdownThread(this.threadId);\n\t}\n\n\tasync discard(): Promise<void> {\n\t\tawait this.threadStore.discardThread(this.threadId);\n\t}\n\n\tasync loadHistory(includeArchived: boolean): Promise<StoredThreadHistory> {\n\t\treturn this.threadStore.loadHistory({\n\t\t\tthread_id: this.threadId,\n\t\t\tinclude_archived: includeArchived,\n\t\t});\n\t}\n\n\tasync readThread(\n\t\tincludeArchived: boolean,\n\t\tincludeHistory: boolean,\n\t): Promise<StoredThread> {\n\t\tconst params: ReadThreadParams = {\n\t\t\tthread_id: this.threadId,\n\t\t\tinclude_archived: includeArchived,\n\t\t\tinclude_history: includeHistory,\n\t\t};\n\t\treturn this.threadStore.readThread(params);\n\t}\n\n\tasync updateMemoryMode(\n\t\tmode: ThreadMemoryMode,\n\t\tincludeArchived: boolean,\n\t): Promise<void> {\n\t\tconst params: UpdateThreadMetadataParams = {\n\t\t\tthread_id: this.threadId,\n\t\t\tpatch: {\n\t\t\t\tmemory_mode: mode,\n\t\t\t},\n\t\t\tinclude_archived: includeArchived,\n\t\t};\n\t\tawait this.threadStore.updateThreadMetadata(params);\n\t}\n\n\tasync updateMetadata(\n\t\tpatch: ThreadMetadataPatch,\n\t\tincludeArchived: boolean,\n\t): Promise<StoredThread> {\n\t\treturn this.threadStore.updateThreadMetadata({\n\t\t\tthread_id: this.threadId,\n\t\t\tpatch,\n\t\t\tinclude_archived: includeArchived,\n\t\t});\n\t}\n\n\tasync localRolloutPath(): Promise<string | null> {\n\t\treturn null;\n\t}\n}\n\nexport class LiveThreadInitGuard {\n\tprivate liveThread: LiveThread | null;\n\n\tconstructor(liveThread?: LiveThread | null) {\n\t\tthis.liveThread = liveThread ?? null;\n\t}\n\n\tasRef(): LiveThread | null {\n\t\treturn this.liveThread;\n\t}\n\n\tcommit(): void {\n\t\tthis.liveThread = null;\n\t}\n\n\tasync discard(): Promise<void> {\n\t\tconst liveThread = this.liveThread;\n\t\tif (!liveThread) {\n\t\t\treturn;\n\t\t}\n\n\t\tthis.liveThread = null;\n\t\ttry {\n\t\t\tawait liveThread.discard();\n\t\t} catch {\n\t\t\t// Match Codex's initialization guard: discard failures are reported there,\n\t\t\t// but they do not re-own the live thread or fail guard cleanup.\n\t\t}\n\t}\n}\n","import type { BaseInstructions, DynamicToolSpec, RolloutItem } from \"../protocol\";\nimport type { ThreadId } from \"../ids\";\nimport type { ThreadMemoryMode } from \"../memory\";\n\nexport const ThreadEventPersistenceMode = {\n\tLimited: \"Limited\",\n\tExtended: \"Extended\",\n} as const;\n\nexport type ThreadEventPersistenceMode =\n\t(typeof ThreadEventPersistenceMode)[keyof typeof ThreadEventPersistenceMode];\n\nexport const ThreadSortKey = {\n\tCreatedAt: \"CreatedAt\",\n\tUpdatedAt: \"UpdatedAt\",\n} as const;\n\nexport type ThreadSortKey = (typeof ThreadSortKey)[keyof typeof ThreadSortKey];\n\nexport const SortDirection = {\n\tAsc: \"Asc\",\n\tDesc: \"Desc\",\n} as const;\n\nexport type SortDirection = (typeof SortDirection)[keyof typeof SortDirection];\n\nexport type ThreadPersistenceMetadata = {\n\tcwd?: string | null;\n\tmodel_provider: string;\n\tmemory_mode: ThreadMemoryMode;\n\t[key: string]: unknown;\n};\n\nexport type CreateThreadParams = {\n\tthread_id: ThreadId;\n\tforked_from_id?: ThreadId | null;\n\tsource: string;\n\tthread_source?: string | null;\n\tbase_instructions: BaseInstructions;\n\tdynamic_tools: DynamicToolSpec[];\n\tmetadata: ThreadPersistenceMetadata;\n\tevent_persistence_mode: ThreadEventPersistenceMode;\n};\n\nexport type ResumeThreadParams = {\n\tthread_id: ThreadId;\n\trollout_path?: string | null;\n\thistory?: RolloutItem[] | null;\n\tinclude_archived: boolean;\n\tmetadata: ThreadPersistenceMetadata;\n\tevent_persistence_mode: ThreadEventPersistenceMode;\n};\n\nexport type AppendThreadItemsParams = {\n\tthread_id: ThreadId;\n\titems: RolloutItem[];\n};\n\nexport type LoadThreadHistoryParams = {\n\tthread_id: ThreadId;\n\tinclude_archived: boolean;\n};\n\nexport type StoredThreadHistory = {\n\tthread_id: ThreadId;\n\titems: RolloutItem[];\n};\n\nexport type ReadThreadParams = {\n\tthread_id: ThreadId;\n\tinclude_archived: boolean;\n\tinclude_history: boolean;\n};\n\nexport type ReadThreadByRolloutPathParams = {\n\trollout_path: string;\n\tinclude_archived: boolean;\n\tinclude_history: boolean;\n};\n\nexport type ListThreadsParams = {\n\tpage_size: number;\n\tcursor?: string | null;\n\tsort_key: ThreadSortKey;\n\tsort_direction: SortDirection;\n\tallowed_sources: string[];\n\tmodel_providers?: string[] | null;\n\tcwd_filters?: string[] | null;\n\tarchived: boolean;\n\tsearch_term?: string | null;\n\tuse_state_db_only: boolean;\n};\n\nexport type ThreadPage = {\n\titems: StoredThread[];\n\tnext_cursor?: string | null;\n};\n\nexport type StoredThread = {\n\tthread_id: ThreadId;\n\trollout_path?: string | null;\n\tforked_from_id?: ThreadId | null;\n\tpreview: string;\n\tname?: string | null;\n\tmodel_provider: string;\n\tmodel?: string | null;\n\treasoning_effort?: string | null;\n\tcreated_at: string;\n\tupdated_at: string;\n\tarchived_at?: string | null;\n\tcwd: string;\n\tcli_version?: string;\n\tsource: string;\n\tthread_source?: string | null;\n\tagent_nickname?: string | null;\n\tagent_role?: string | null;\n\tagent_path?: string | null;\n\tgit_info?: unknown;\n\tapproval_mode?: string;\n\tsandbox_policy?: unknown;\n\ttoken_usage?: unknown;\n\tfirst_user_message?: string | null;\n\thistory?: StoredThreadHistory | null;\n};\n\nexport type OptionalStringPatch = string | null | undefined;\n\nexport type GitInfoPatch = {\n\tsha?: OptionalStringPatch;\n\tbranch?: OptionalStringPatch;\n\torigin_url?: OptionalStringPatch;\n};\n\nexport type ThreadMetadataPatch = {\n\tname?: string;\n\tmemory_mode?: ThreadMemoryMode;\n\tgit_info?: GitInfoPatch;\n};\n\nexport type UpdateThreadMetadataParams = {\n\tthread_id: ThreadId;\n\tpatch: ThreadMetadataPatch;\n\tinclude_archived: boolean;\n};\n\nexport type ArchiveThreadParams = {\n\tthread_id: ThreadId;\n};\n"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
// src/upstream/codex-rs/core/src/config/managed_features.ts
|
|
2
|
+
function emptyManagedFeatures() {
|
|
3
|
+
return {};
|
|
4
|
+
}
|
|
5
|
+
|
|
6
|
+
// src/upstream/codex-rs/core/src/config/network_proxy_spec.ts
|
|
7
|
+
function defaultNetworkProxySpec() {
|
|
8
|
+
return { mode: "disabled", url: null };
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
// src/upstream/codex-rs/core/src/config/mod.ts
|
|
12
|
+
function tools_config_from_config(config) {
|
|
13
|
+
return config.tools;
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export { defaultNetworkProxySpec, emptyManagedFeatures, tools_config_from_config };
|
|
17
|
+
//# sourceMappingURL=chunk-DCMKA2A6.js.map
|
|
18
|
+
//# sourceMappingURL=chunk-DCMKA2A6.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":["../src/upstream/codex-rs/core/src/config/managed_features.ts","../src/upstream/codex-rs/core/src/config/network_proxy_spec.ts","../src/upstream/codex-rs/core/src/config/mod.ts"],"names":[],"mappings":";AAQO,SAAS,oBAAA,GAAwC;AACvD,EAAA,OAAO,EAAC;AACT;;;ACLO,SAAS,uBAAA,GAA4C;AAC3D,EAAA,OAAO,EAAE,IAAA,EAAM,UAAA,EAAY,GAAA,EAAK,IAAA,EAAK;AACtC;;;ACCO,SAAS,yBAAyB,MAAA,EAAwB;AAChE,EAAA,OAAO,MAAA,CAAO,KAAA;AACf","file":"chunk-DCMKA2A6.js","sourcesContent":["export type ManagedFeature = {\n\tname: string;\n\tenabled: boolean;\n\tsource?: string | null;\n};\n\nexport type ManagedFeatures = Record<string, ManagedFeature>;\n\nexport function emptyManagedFeatures(): ManagedFeatures {\n\treturn {};\n}\n","export type NetworkProxySpec = {\n\tmode: \"disabled\" | \"default\" | \"custom\";\n\turl?: string | null;\n};\n\nexport function defaultNetworkProxySpec(): NetworkProxySpec {\n\treturn { mode: \"disabled\", url: null };\n}\n","export * from \"./permissions\";\nexport * from \"./managed_features\";\nexport * from \"./network_proxy_spec\";\nexport * from \"./agent_roles\";\n\nimport type { ResolvedConfig } from \"../../../config/src\";\nexport { resolve_web_search_mode_for_turn } from \"../../../config/src\";\n\nexport function tools_config_from_config(config: ResolvedConfig) {\n\treturn config.tools;\n}\n"]}
|