yepanywhere 0.5.2 → 0.6.0
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/README.md +21 -5
- package/bundled/@yep-anywhere/shared/dist/agent-context.d.ts +9 -0
- package/bundled/@yep-anywhere/shared/dist/agent-context.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/agent-context.js +18 -0
- package/bundled/@yep-anywhere/shared/dist/agent-context.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/app-types.d.ts +104 -1
- package/bundled/@yep-anywhere/shared/dist/app-types.d.ts.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/app-types.js +4 -0
- package/bundled/@yep-anywhere/shared/dist/app-types.js.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/binary-framing.d.ts +4 -1
- package/bundled/@yep-anywhere/shared/dist/binary-framing.d.ts.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/binary-framing.js +8 -3
- package/bundled/@yep-anywhere/shared/dist/binary-framing.js.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/AssistantEntrySchema.d.ts +4 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/AssistantEntrySchema.d.ts.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/BaseEntrySchema.d.ts +4 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/BaseEntrySchema.d.ts.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/BaseEntrySchema.js +7 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/BaseEntrySchema.js.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/ProgressEntrySchema.d.ts +4 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/ProgressEntrySchema.d.ts.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/SystemEntrySchema.d.ts +64 -1
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/SystemEntrySchema.d.ts.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/SystemEntrySchema.js +9 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/SystemEntrySchema.js.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/UserEntrySchema.d.ts +4 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/UserEntrySchema.d.ts.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/guards.d.ts.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/guards.js +45 -1
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/guards.js.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/index.d.ts +144 -2
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/index.d.ts.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/ToolResultSchemas.d.ts +6 -4
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/ToolResultSchemas.d.ts.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/ToolResultSchemas.js +8 -1
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/ToolResultSchemas.js.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/codex-schema/index.d.ts +3 -2
- package/bundled/@yep-anywhere/shared/dist/codex-schema/index.d.ts.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/codex-schema/index.js +3 -2
- package/bundled/@yep-anywhere/shared/dist/codex-schema/index.js.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/codex-schema/session.d.ts +87 -3
- package/bundled/@yep-anywhere/shared/dist/codex-schema/session.d.ts.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/codex-schema/session.js +39 -1
- package/bundled/@yep-anywhere/shared/dist/codex-schema/session.js.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/dag.d.ts +31 -11
- package/bundled/@yep-anywhere/shared/dist/dag.d.ts.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/dag.js +77 -33
- package/bundled/@yep-anywhere/shared/dist/dag.js.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/git-status.d.ts +70 -1
- package/bundled/@yep-anywhere/shared/dist/git-status.d.ts.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/git-status.js +6 -1
- package/bundled/@yep-anywhere/shared/dist/git-status.js.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/ideMetadata.js +1 -1
- package/bundled/@yep-anywhere/shared/dist/ideMetadata.js.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/index.d.ts +20 -11
- package/bundled/@yep-anywhere/shared/dist/index.d.ts.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/index.js +8 -3
- package/bundled/@yep-anywhere/shared/dist/index.js.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/local-resource.d.ts +1 -0
- package/bundled/@yep-anywhere/shared/dist/local-resource.d.ts.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/local-resource.js +4 -0
- package/bundled/@yep-anywhere/shared/dist/local-resource.js.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/opencode-schema/events.d.ts +136 -0
- package/bundled/@yep-anywhere/shared/dist/opencode-schema/events.d.ts.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/opencode-schema/events.js +65 -3
- package/bundled/@yep-anywhere/shared/dist/opencode-schema/events.js.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/opencode-schema/types.d.ts +1 -1
- package/bundled/@yep-anywhere/shared/dist/opencode-schema/types.d.ts.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/project-queue.d.ts +153 -0
- package/bundled/@yep-anywhere/shared/dist/project-queue.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/project-queue.js +8 -0
- package/bundled/@yep-anywhere/shared/dist/project-queue.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/relay-protocol.d.ts +26 -2
- package/bundled/@yep-anywhere/shared/dist/relay-protocol.d.ts.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/relay-protocol.js +33 -0
- package/bundled/@yep-anywhere/shared/dist/relay-protocol.js.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/relay.d.ts +45 -5
- package/bundled/@yep-anywhere/shared/dist/relay.d.ts.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/relay.js.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/safe-restart.d.ts +25 -0
- package/bundled/@yep-anywhere/shared/dist/safe-restart.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/safe-restart.js +2 -0
- package/bundled/@yep-anywhere/shared/dist/safe-restart.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/session/SessionView.d.ts +2 -2
- package/bundled/@yep-anywhere/shared/dist/session/SessionView.js +3 -3
- package/bundled/@yep-anywhere/shared/dist/session/SessionView.js.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/session/UnifiedSession.d.ts +10 -0
- package/bundled/@yep-anywhere/shared/dist/session/UnifiedSession.d.ts.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/session-liveness.d.ts +18 -0
- package/bundled/@yep-anywhere/shared/dist/session-liveness.d.ts.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/types.d.ts +253 -8
- package/bundled/@yep-anywhere/shared/dist/types.d.ts.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/types.js +48 -5
- package/bundled/@yep-anywhere/shared/dist/types.js.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/upload.d.ts +34 -2
- package/bundled/@yep-anywhere/shared/dist/upload.d.ts.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/user-message-metadata.d.ts +47 -0
- package/bundled/@yep-anywhere/shared/dist/user-message-metadata.d.ts.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/user-message-metadata.js +59 -1
- package/bundled/@yep-anywhere/shared/dist/user-message-metadata.js.map +1 -1
- package/bundled/@yep-anywhere/shared/dist/workstreams.d.ts +54 -0
- package/bundled/@yep-anywhere/shared/dist/workstreams.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/workstreams.js +8 -0
- package/bundled/@yep-anywhere/shared/dist/workstreams.js.map +1 -0
- package/bundled/@yep-anywhere/shared/package.json +1 -1
- package/client-dist/assets/alegreya-sans-latin-400-italic-BQIUBrX-.woff2 +0 -0
- package/client-dist/assets/alegreya-sans-latin-400-normal-BxeZdXas.woff2 +0 -0
- package/client-dist/assets/alegreya-sans-latin-500-normal-uodOEoAl.woff2 +0 -0
- package/client-dist/assets/alegreya-sans-latin-700-normal-DFYOGfC8.woff2 +0 -0
- package/client-dist/assets/de-CHMDbVD5.js +6 -0
- package/client-dist/assets/es-CK8MPF_C.js +6 -0
- package/client-dist/assets/fira-mono-latin-400-normal-DVTTRLHv.woff2 +0 -0
- package/client-dist/assets/fira-mono-latin-ext-400-normal-B2gPvaNr.woff2 +0 -0
- package/client-dist/assets/fira-mono-symbols2-400-normal-C6JptOil.woff2 +0 -0
- package/client-dist/assets/fr-49PXQiUL.js +6 -0
- package/client-dist/assets/index-B-09fVut.js +557 -0
- package/client-dist/assets/index-uJnfvD1f.css +1 -0
- package/client-dist/assets/inter-latin-400-italic-D1l0FflY.woff2 +0 -0
- package/client-dist/assets/inter-latin-400-normal-C38fXH4l.woff2 +0 -0
- package/client-dist/assets/inter-latin-500-normal-Cerq10X2.woff2 +0 -0
- package/client-dist/assets/inter-latin-700-normal-Yt3aPRUw.woff2 +0 -0
- package/client-dist/assets/ja-CrCGPmoH.js +6 -0
- package/client-dist/assets/zh-CN-AFJxv5ke.js +6 -0
- package/client-dist/index.html +3 -3
- package/client-dist/sw.js +96 -9
- package/dist/app.d.ts +25 -0
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +350 -35
- package/dist/app.js.map +1 -1
- package/dist/augments/augment-generator.d.ts +1 -1
- package/dist/augments/augment-generator.d.ts.map +1 -1
- package/dist/augments/augment-generator.js +2 -2
- package/dist/augments/augment-generator.js.map +1 -1
- package/dist/augments/markdown-augments.d.ts +1 -1
- package/dist/augments/markdown-augments.d.ts.map +1 -1
- package/dist/augments/markdown-augments.js +5 -5
- package/dist/augments/markdown-augments.js.map +1 -1
- package/dist/augments/safe-markdown.d.ts +10 -0
- package/dist/augments/safe-markdown.d.ts.map +1 -1
- package/dist/augments/safe-markdown.js +146 -3
- package/dist/augments/safe-markdown.js.map +1 -1
- package/dist/augments/stream-augmenter.d.ts +3 -0
- package/dist/augments/stream-augmenter.d.ts.map +1 -1
- package/dist/augments/stream-augmenter.js +6 -3
- package/dist/augments/stream-augmenter.js.map +1 -1
- package/dist/augments/stream-coordinator.d.ts +5 -1
- package/dist/augments/stream-coordinator.d.ts.map +1 -1
- package/dist/augments/stream-coordinator.js +6 -4
- package/dist/augments/stream-coordinator.js.map +1 -1
- package/dist/augments/task-list-augments.d.ts +27 -0
- package/dist/augments/task-list-augments.d.ts.map +1 -0
- package/dist/augments/task-list-augments.js +360 -0
- package/dist/augments/task-list-augments.js.map +1 -0
- package/dist/cli.d.ts +1 -17
- package/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +22 -8
- package/dist/cli.js.map +1 -1
- package/dist/codex/correlationDebugLogger.d.ts.map +1 -1
- package/dist/codex/correlationDebugLogger.js +36 -8
- package/dist/codex/correlationDebugLogger.js.map +1 -1
- package/dist/codex/normalization.d.ts +1 -0
- package/dist/codex/normalization.d.ts.map +1 -1
- package/dist/codex/normalization.js +262 -7
- package/dist/codex/normalization.js.map +1 -1
- package/dist/config.d.ts +49 -6
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +55 -14
- package/dist/config.js.map +1 -1
- package/dist/defaults.d.ts +3 -0
- package/dist/defaults.d.ts.map +1 -0
- package/dist/defaults.js +3 -0
- package/dist/defaults.js.map +1 -0
- package/dist/device/DeviceBridgeService.js +1 -1
- package/dist/device/DeviceBridgeService.js.map +1 -1
- package/dist/envSettings.d.ts +64 -0
- package/dist/envSettings.d.ts.map +1 -0
- package/dist/envSettings.js +553 -0
- package/dist/envSettings.js.map +1 -0
- package/dist/frontend/static.d.ts.map +1 -1
- package/dist/frontend/static.js +3 -1
- package/dist/frontend/static.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +190 -14
- package/dist/index.js.map +1 -1
- package/dist/indexes/SessionDiscoveryIndex.d.ts +78 -0
- package/dist/indexes/SessionDiscoveryIndex.d.ts.map +1 -0
- package/dist/indexes/SessionDiscoveryIndex.js +223 -0
- package/dist/indexes/SessionDiscoveryIndex.js.map +1 -0
- package/dist/indexes/SessionIndexService.d.ts +114 -1
- package/dist/indexes/SessionIndexService.d.ts.map +1 -1
- package/dist/indexes/SessionIndexService.js +875 -105
- package/dist/indexes/SessionIndexService.js.map +1 -1
- package/dist/indexes/index.d.ts +2 -1
- package/dist/indexes/index.d.ts.map +1 -1
- package/dist/indexes/index.js +1 -0
- package/dist/indexes/index.js.map +1 -1
- package/dist/indexes/types.d.ts +26 -0
- package/dist/indexes/types.d.ts.map +1 -1
- package/dist/logging/logger.d.ts.map +1 -1
- package/dist/logging/logger.js +2 -3
- package/dist/logging/logger.js.map +1 -1
- package/dist/maintenance/server.d.ts.map +1 -1
- package/dist/maintenance/server.js +8 -11
- package/dist/maintenance/server.js.map +1 -1
- package/dist/metadata/ProjectMetadataService.d.ts +7 -0
- package/dist/metadata/ProjectMetadataService.d.ts.map +1 -1
- package/dist/metadata/ProjectMetadataService.js +63 -19
- package/dist/metadata/ProjectMetadataService.js.map +1 -1
- package/dist/metadata/SessionMetadataService.d.ts +82 -3
- package/dist/metadata/SessionMetadataService.d.ts.map +1 -1
- package/dist/metadata/SessionMetadataService.js +233 -17
- package/dist/metadata/SessionMetadataService.js.map +1 -1
- package/dist/middleware/file-access.d.ts +66 -0
- package/dist/middleware/file-access.d.ts.map +1 -0
- package/dist/middleware/file-access.js +112 -0
- package/dist/middleware/file-access.js.map +1 -0
- package/dist/projects/codex-scanner.d.ts +28 -1
- package/dist/projects/codex-scanner.d.ts.map +1 -1
- package/dist/projects/codex-scanner.js +149 -39
- package/dist/projects/codex-scanner.js.map +1 -1
- package/dist/projects/gemini-scanner.d.ts.map +1 -1
- package/dist/projects/gemini-scanner.js +59 -6
- package/dist/projects/gemini-scanner.js.map +1 -1
- package/dist/projects/paths.d.ts +15 -1
- package/dist/projects/paths.d.ts.map +1 -1
- package/dist/projects/paths.js +69 -23
- package/dist/projects/paths.js.map +1 -1
- package/dist/projects/scanner.d.ts +5 -0
- package/dist/projects/scanner.d.ts.map +1 -1
- package/dist/projects/scanner.js +136 -28
- package/dist/projects/scanner.js.map +1 -1
- package/dist/push/InactivityPushNotifier.d.ts +61 -0
- package/dist/push/InactivityPushNotifier.d.ts.map +1 -0
- package/dist/push/InactivityPushNotifier.js +305 -0
- package/dist/push/InactivityPushNotifier.js.map +1 -0
- package/dist/push/PushNotifier.d.ts.map +1 -1
- package/dist/push/PushNotifier.js.map +1 -1
- package/dist/push/PushService.d.ts +7 -4
- package/dist/push/PushService.d.ts.map +1 -1
- package/dist/push/PushService.js +27 -7
- package/dist/push/PushService.js.map +1 -1
- package/dist/push/index.d.ts +2 -1
- package/dist/push/index.d.ts.map +1 -1
- package/dist/push/index.js +1 -0
- package/dist/push/index.js.map +1 -1
- package/dist/push/routes.d.ts.map +1 -1
- package/dist/push/routes.js +28 -1
- package/dist/push/routes.js.map +1 -1
- package/dist/push/types.d.ts +21 -3
- package/dist/push/types.d.ts.map +1 -1
- package/dist/push/types.js +2 -0
- package/dist/push/types.js.map +1 -1
- package/dist/routes/dev.d.ts +2 -0
- package/dist/routes/dev.d.ts.map +1 -1
- package/dist/routes/dev.js +25 -0
- package/dist/routes/dev.js.map +1 -1
- package/dist/routes/env-settings.d.ts +20 -0
- package/dist/routes/env-settings.d.ts.map +1 -0
- package/dist/routes/env-settings.js +25 -0
- package/dist/routes/env-settings.js.map +1 -0
- package/dist/routes/files.d.ts +9 -0
- package/dist/routes/files.d.ts.map +1 -1
- package/dist/routes/files.js +98 -10
- package/dist/routes/files.js.map +1 -1
- package/dist/routes/git-status.d.ts.map +1 -1
- package/dist/routes/git-status.js +621 -23
- package/dist/routes/git-status.js.map +1 -1
- package/dist/routes/global-sessions.d.ts +11 -1
- package/dist/routes/global-sessions.d.ts.map +1 -1
- package/dist/routes/global-sessions.js +53 -33
- package/dist/routes/global-sessions.js.map +1 -1
- package/dist/routes/inbox.d.ts +10 -1
- package/dist/routes/inbox.d.ts.map +1 -1
- package/dist/routes/inbox.js +30 -3
- package/dist/routes/inbox.js.map +1 -1
- package/dist/routes/local-file.d.ts +6 -2
- package/dist/routes/local-file.d.ts.map +1 -1
- package/dist/routes/local-file.js +13 -4
- package/dist/routes/local-file.js.map +1 -1
- package/dist/routes/local-image.d.ts +2 -1
- package/dist/routes/local-image.d.ts.map +1 -1
- package/dist/routes/local-image.js.map +1 -1
- package/dist/routes/local-resource-policy.d.ts +7 -1
- package/dist/routes/local-resource-policy.d.ts.map +1 -1
- package/dist/routes/local-resource-policy.js +0 -0
- package/dist/routes/local-resource-policy.js.map +1 -1
- package/dist/routes/processes.d.ts.map +1 -1
- package/dist/routes/processes.js +49 -11
- package/dist/routes/processes.js.map +1 -1
- package/dist/routes/project-queue-response.d.ts +26 -0
- package/dist/routes/project-queue-response.d.ts.map +1 -0
- package/dist/routes/project-queue-response.js +188 -0
- package/dist/routes/project-queue-response.js.map +1 -0
- package/dist/routes/project-queue.d.ts +5 -0
- package/dist/routes/project-queue.d.ts.map +1 -0
- package/dist/routes/project-queue.js +219 -0
- package/dist/routes/project-queue.js.map +1 -0
- package/dist/routes/projects.d.ts +6 -0
- package/dist/routes/projects.d.ts.map +1 -1
- package/dist/routes/projects.js +116 -28
- package/dist/routes/projects.js.map +1 -1
- package/dist/routes/providers.d.ts +5 -0
- package/dist/routes/providers.d.ts.map +1 -1
- package/dist/routes/providers.js +52 -33
- package/dist/routes/providers.js.map +1 -1
- package/dist/routes/public-shares.d.ts.map +1 -1
- package/dist/routes/public-shares.js +46 -17
- package/dist/routes/public-shares.js.map +1 -1
- package/dist/routes/recents.d.ts +3 -0
- package/dist/routes/recents.d.ts.map +1 -1
- package/dist/routes/recents.js +3 -1
- package/dist/routes/recents.js.map +1 -1
- package/dist/routes/server-admin.d.ts +9 -0
- package/dist/routes/server-admin.d.ts.map +1 -1
- package/dist/routes/server-admin.js +45 -7
- package/dist/routes/server-admin.js.map +1 -1
- package/dist/routes/session-claude-resume-guard.d.ts +16 -0
- package/dist/routes/session-claude-resume-guard.d.ts.map +1 -0
- package/dist/routes/session-claude-resume-guard.js +50 -0
- package/dist/routes/session-claude-resume-guard.js.map +1 -0
- package/dist/routes/session-compact-thresholds.d.ts +22 -0
- package/dist/routes/session-compact-thresholds.d.ts.map +1 -0
- package/dist/routes/session-compact-thresholds.js +35 -0
- package/dist/routes/session-compact-thresholds.js.map +1 -0
- package/dist/routes/session-index.d.ts +7 -0
- package/dist/routes/session-index.d.ts.map +1 -0
- package/dist/routes/session-index.js +9 -0
- package/dist/routes/session-index.js.map +1 -0
- package/dist/routes/session-list-options.d.ts +1 -1
- package/dist/routes/session-list-options.d.ts.map +1 -1
- package/dist/routes/session-list-options.js +1 -1
- package/dist/routes/session-list-options.js.map +1 -1
- package/dist/routes/session-request-helpers.d.ts +31 -0
- package/dist/routes/session-request-helpers.d.ts.map +1 -0
- package/dist/routes/session-request-helpers.js +212 -0
- package/dist/routes/session-request-helpers.js.map +1 -0
- package/dist/routes/sessions.d.ts +14 -1
- package/dist/routes/sessions.d.ts.map +1 -1
- package/dist/routes/sessions.js +2141 -551
- package/dist/routes/sessions.js.map +1 -1
- package/dist/routes/settings.d.ts +7 -1
- package/dist/routes/settings.d.ts.map +1 -1
- package/dist/routes/settings.js +771 -25
- package/dist/routes/settings.js.map +1 -1
- package/dist/routes/speech.d.ts +24 -2
- package/dist/routes/speech.d.ts.map +1 -1
- package/dist/routes/speech.js +539 -10
- package/dist/routes/speech.js.map +1 -1
- package/dist/routes/supervisor-queue.d.ts +6 -0
- package/dist/routes/supervisor-queue.d.ts.map +1 -0
- package/dist/routes/supervisor-queue.js +35 -0
- package/dist/routes/supervisor-queue.js.map +1 -0
- package/dist/routes/upload.d.ts +2 -0
- package/dist/routes/upload.d.ts.map +1 -1
- package/dist/routes/upload.js +190 -38
- package/dist/routes/upload.js.map +1 -1
- package/dist/routes/version.d.ts +18 -1
- package/dist/routes/version.d.ts.map +1 -1
- package/dist/routes/version.js +22 -1
- package/dist/routes/version.js.map +1 -1
- package/dist/routes/workstreams.d.ts +11 -0
- package/dist/routes/workstreams.d.ts.map +1 -0
- package/dist/routes/workstreams.js +144 -0
- package/dist/routes/workstreams.js.map +1 -0
- package/dist/routes/ws-message-router.d.ts +10 -1
- package/dist/routes/ws-message-router.d.ts.map +1 -1
- package/dist/routes/ws-message-router.js +43 -4
- package/dist/routes/ws-message-router.js.map +1 -1
- package/dist/routes/ws-relay-handlers.d.ts +27 -5
- package/dist/routes/ws-relay-handlers.d.ts.map +1 -1
- package/dist/routes/ws-relay-handlers.js +177 -19
- package/dist/routes/ws-relay-handlers.js.map +1 -1
- package/dist/routes/ws-relay.d.ts +19 -0
- package/dist/routes/ws-relay.d.ts.map +1 -1
- package/dist/routes/ws-relay.js +21 -7
- package/dist/routes/ws-relay.js.map +1 -1
- package/dist/sdk/cli-detection.d.ts +1 -1
- package/dist/sdk/cli-detection.d.ts.map +1 -1
- package/dist/sdk/cli-detection.js +47 -7
- package/dist/sdk/cli-detection.js.map +1 -1
- package/dist/sdk/messageLogger.d.ts.map +1 -1
- package/dist/sdk/messageLogger.js +38 -10
- package/dist/sdk/messageLogger.js.map +1 -1
- package/dist/sdk/messageQueue.d.ts.map +1 -1
- package/dist/sdk/messageQueue.js +26 -0
- package/dist/sdk/messageQueue.js.map +1 -1
- package/dist/sdk/providers/__mocks__/grok.d.ts +1 -1
- package/dist/sdk/providers/__mocks__/grok.d.ts.map +1 -1
- package/dist/sdk/providers/__mocks__/grok.js +1 -1
- package/dist/sdk/providers/__mocks__/grok.js.map +1 -1
- package/dist/sdk/providers/agentctl-session-env.d.ts +8 -0
- package/dist/sdk/providers/agentctl-session-env.d.ts.map +1 -0
- package/dist/sdk/providers/agentctl-session-env.js +52 -0
- package/dist/sdk/providers/agentctl-session-env.js.map +1 -0
- package/dist/sdk/providers/claude-ollama.d.ts +2 -1
- package/dist/sdk/providers/claude-ollama.d.ts.map +1 -1
- package/dist/sdk/providers/claude-ollama.js +1 -0
- package/dist/sdk/providers/claude-ollama.js.map +1 -1
- package/dist/sdk/providers/claude-retention.d.ts +19 -0
- package/dist/sdk/providers/claude-retention.d.ts.map +1 -0
- package/dist/sdk/providers/claude-retention.js +169 -0
- package/dist/sdk/providers/claude-retention.js.map +1 -0
- package/dist/sdk/providers/claude.d.ts +52 -5
- package/dist/sdk/providers/claude.d.ts.map +1 -1
- package/dist/sdk/providers/claude.js +593 -71
- package/dist/sdk/providers/claude.js.map +1 -1
- package/dist/sdk/providers/codex-protocol/generated/AgentMessageInputContent.d.ts +8 -0
- package/dist/sdk/providers/codex-protocol/generated/AgentMessageInputContent.d.ts.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/AgentMessageInputContent.js +3 -0
- package/dist/sdk/providers/codex-protocol/generated/AgentMessageInputContent.js.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/InternalChatMessageMetadataPassthrough.d.ts +10 -0
- package/dist/sdk/providers/codex-protocol/generated/InternalChatMessageMetadataPassthrough.d.ts.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/InternalChatMessageMetadataPassthrough.js +3 -0
- package/dist/sdk/providers/codex-protocol/generated/InternalChatMessageMetadataPassthrough.js.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/LegacyAppPathString.d.ts +23 -0
- package/dist/sdk/providers/codex-protocol/generated/LegacyAppPathString.d.ts.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/LegacyAppPathString.js +3 -0
- package/dist/sdk/providers/codex-protocol/generated/LegacyAppPathString.js.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/MultiAgentMode.d.ts +8 -0
- package/dist/sdk/providers/codex-protocol/generated/MultiAgentMode.d.ts.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/MultiAgentMode.js +3 -0
- package/dist/sdk/providers/codex-protocol/generated/MultiAgentMode.js.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/ReasoningEffort.d.ts +1 -1
- package/dist/sdk/providers/codex-protocol/generated/ReasoningEffort.d.ts.map +1 -1
- package/dist/sdk/providers/codex-protocol/generated/ResponseItem.d.ts +38 -1
- package/dist/sdk/providers/codex-protocol/generated/ResponseItem.d.ts.map +1 -1
- package/dist/sdk/providers/codex-protocol/generated/v2/AdditionalFileSystemPermissions.d.ts +3 -3
- package/dist/sdk/providers/codex-protocol/generated/v2/AdditionalFileSystemPermissions.d.ts.map +1 -1
- package/dist/sdk/providers/codex-protocol/generated/v2/CapabilityRootLocation.d.ts +9 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/CapabilityRootLocation.d.ts.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/CapabilityRootLocation.js +3 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/CapabilityRootLocation.js.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/CommandExecutionRequestApprovalParams.d.ts +6 -2
- package/dist/sdk/providers/codex-protocol/generated/v2/CommandExecutionRequestApprovalParams.d.ts.map +1 -1
- package/dist/sdk/providers/codex-protocol/generated/v2/DynamicToolFunctionSpec.d.ts +8 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/DynamicToolFunctionSpec.d.ts.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/DynamicToolFunctionSpec.js +3 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/DynamicToolFunctionSpec.js.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/DynamicToolNamespaceSpec.d.ts +7 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/DynamicToolNamespaceSpec.d.ts.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/DynamicToolNamespaceSpec.js +3 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/DynamicToolNamespaceSpec.js.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/DynamicToolNamespaceTool.d.ts +5 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/DynamicToolNamespaceTool.d.ts.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/DynamicToolNamespaceTool.js +3 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/DynamicToolNamespaceTool.js.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/DynamicToolSpec.d.ts +6 -7
- package/dist/sdk/providers/codex-protocol/generated/v2/DynamicToolSpec.d.ts.map +1 -1
- package/dist/sdk/providers/codex-protocol/generated/v2/FileSystemPath.d.ts +2 -2
- package/dist/sdk/providers/codex-protocol/generated/v2/FileSystemPath.d.ts.map +1 -1
- package/dist/sdk/providers/codex-protocol/generated/v2/McpToolCallAppContext.d.ts +6 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/McpToolCallAppContext.d.ts.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/McpToolCallAppContext.js +3 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/McpToolCallAppContext.js.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/PermissionsRequestApprovalParams.d.ts +1 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/PermissionsRequestApprovalParams.d.ts.map +1 -1
- package/dist/sdk/providers/codex-protocol/generated/v2/SelectedCapabilityRoot.d.ts +15 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/SelectedCapabilityRoot.d.ts.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/SelectedCapabilityRoot.js +3 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/SelectedCapabilityRoot.js.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/SortDirection.d.ts +2 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/SortDirection.d.ts.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/SortDirection.js +3 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/SortDirection.js.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/SubAgentActivityKind.d.ts +2 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/SubAgentActivityKind.d.ts.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/SubAgentActivityKind.js +3 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/SubAgentActivityKind.js.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/Thread.d.ts +8 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/Thread.d.ts.map +1 -1
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadCompactStartParams.d.ts +4 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadCompactStartParams.d.ts.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadCompactStartParams.js +3 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadCompactStartParams.js.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadCompactStartResponse.d.ts +2 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadCompactStartResponse.d.ts.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadCompactStartResponse.js +3 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadCompactStartResponse.js.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadForkParams.d.ts +64 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadForkParams.d.ts.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadForkParams.js +3 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadForkParams.js.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadForkResponse.d.ts +46 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadForkResponse.d.ts.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadForkResponse.js +3 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadForkResponse.js.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadItem.d.ts +19 -1
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadItem.d.ts.map +1 -1
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadReadResponse.d.ts +5 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadReadResponse.d.ts.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadReadResponse.js +3 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadReadResponse.js.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadResumeInitialTurnsPageParams.d.ts +17 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadResumeInitialTurnsPageParams.d.ts.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadResumeInitialTurnsPageParams.js +3 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadResumeInitialTurnsPageParams.js.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadResumeParams.d.ts +7 -7
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadResumeParams.d.ts.map +1 -1
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadResumeResponse.d.ts +13 -2
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadResumeResponse.d.ts.map +1 -1
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadRollbackParams.d.ts +11 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadRollbackParams.d.ts.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadRollbackParams.js +3 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadRollbackParams.js.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadRollbackResponse.d.ts +12 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadRollbackResponse.d.ts.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadRollbackResponse.js +3 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadRollbackResponse.js.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadSource.d.ts +1 -1
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadSource.d.ts.map +1 -1
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadStartParams.d.ts +13 -9
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadStartParams.d.ts.map +1 -1
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadStartResponse.d.ts +8 -2
- package/dist/sdk/providers/codex-protocol/generated/v2/ThreadStartResponse.d.ts.map +1 -1
- package/dist/sdk/providers/codex-protocol/generated/v2/ToolRequestUserInputParams.d.ts +1 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/ToolRequestUserInputParams.d.ts.map +1 -1
- package/dist/sdk/providers/codex-protocol/generated/v2/TurnEnvironmentParams.d.ts +2 -2
- package/dist/sdk/providers/codex-protocol/generated/v2/TurnEnvironmentParams.d.ts.map +1 -1
- package/dist/sdk/providers/codex-protocol/generated/v2/TurnStartParams.d.ts +17 -5
- package/dist/sdk/providers/codex-protocol/generated/v2/TurnStartParams.d.ts.map +1 -1
- package/dist/sdk/providers/codex-protocol/generated/v2/TurnSteerParams.d.ts +8 -1
- package/dist/sdk/providers/codex-protocol/generated/v2/TurnSteerParams.d.ts.map +1 -1
- package/dist/sdk/providers/codex-protocol/generated/v2/TurnsPage.d.ts +7 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/TurnsPage.d.ts.map +1 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/TurnsPage.js +3 -0
- package/dist/sdk/providers/codex-protocol/generated/v2/TurnsPage.js.map +1 -0
- package/dist/sdk/providers/codex-protocol/index.d.ts +7 -0
- package/dist/sdk/providers/codex-protocol/index.d.ts.map +1 -1
- package/dist/sdk/providers/codex.d.ts +26 -4
- package/dist/sdk/providers/codex.d.ts.map +1 -1
- package/dist/sdk/providers/codex.js +457 -37
- package/dist/sdk/providers/codex.js.map +1 -1
- package/dist/sdk/providers/env-filter.d.ts.map +1 -1
- package/dist/sdk/providers/env-filter.js +19 -1
- package/dist/sdk/providers/env-filter.js.map +1 -1
- package/dist/sdk/providers/gemini-tools.d.ts +28 -0
- package/dist/sdk/providers/gemini-tools.d.ts.map +1 -0
- package/dist/sdk/providers/gemini-tools.js +57 -0
- package/dist/sdk/providers/gemini-tools.js.map +1 -0
- package/dist/sdk/providers/gemini.d.ts.map +1 -1
- package/dist/sdk/providers/gemini.js +4 -2
- package/dist/sdk/providers/gemini.js.map +1 -1
- package/dist/sdk/providers/grok-acp.d.ts +1 -1
- package/dist/sdk/providers/grok-acp.d.ts.map +1 -1
- package/dist/sdk/providers/grok-acp.js +1 -1
- package/dist/sdk/providers/grok-acp.js.map +1 -1
- package/dist/sdk/providers/index.d.ts +1 -0
- package/dist/sdk/providers/index.d.ts.map +1 -1
- package/dist/sdk/providers/index.js +6 -0
- package/dist/sdk/providers/index.js.map +1 -1
- package/dist/sdk/providers/opencode-tools.d.ts +36 -0
- package/dist/sdk/providers/opencode-tools.d.ts.map +1 -0
- package/dist/sdk/providers/opencode-tools.js +78 -0
- package/dist/sdk/providers/opencode-tools.js.map +1 -0
- package/dist/sdk/providers/opencode.d.ts +53 -5
- package/dist/sdk/providers/opencode.d.ts.map +1 -1
- package/dist/sdk/providers/opencode.js +379 -71
- package/dist/sdk/providers/opencode.js.map +1 -1
- package/dist/sdk/providers/pi-rpc-client.d.ts +90 -0
- package/dist/sdk/providers/pi-rpc-client.d.ts.map +1 -0
- package/dist/sdk/providers/pi-rpc-client.js +168 -0
- package/dist/sdk/providers/pi-rpc-client.js.map +1 -0
- package/dist/sdk/providers/pi-tools.d.ts +38 -0
- package/dist/sdk/providers/pi-tools.d.ts.map +1 -0
- package/dist/sdk/providers/pi-tools.js +214 -0
- package/dist/sdk/providers/pi-tools.js.map +1 -0
- package/dist/sdk/providers/pi.d.ts +84 -0
- package/dist/sdk/providers/pi.d.ts.map +1 -0
- package/dist/sdk/providers/pi.js +686 -0
- package/dist/sdk/providers/pi.js.map +1 -0
- package/dist/sdk/providers/staticSlashCommands.d.ts +4 -0
- package/dist/sdk/providers/staticSlashCommands.d.ts.map +1 -0
- package/dist/sdk/providers/staticSlashCommands.js +14 -0
- package/dist/sdk/providers/staticSlashCommands.js.map +1 -0
- package/dist/sdk/providers/types.d.ts +144 -17
- package/dist/sdk/providers/types.d.ts.map +1 -1
- package/dist/sdk/remote-spawn.d.ts.map +1 -1
- package/dist/sdk/remote-spawn.js.map +1 -1
- package/dist/sdk/slashCommandEmulation.d.ts +9 -0
- package/dist/sdk/slashCommandEmulation.d.ts.map +1 -1
- package/dist/sdk/slashCommandEmulation.js +15 -0
- package/dist/sdk/slashCommandEmulation.js.map +1 -1
- package/dist/sdk/types.d.ts +40 -0
- package/dist/sdk/types.d.ts.map +1 -1
- package/dist/security/approvalAuditLog.d.ts +3 -2
- package/dist/security/approvalAuditLog.d.ts.map +1 -1
- package/dist/security/approvalAuditLog.js +62 -2
- package/dist/security/approvalAuditLog.js.map +1 -1
- package/dist/services/BrowserProfileService.d.ts +21 -0
- package/dist/services/BrowserProfileService.d.ts.map +1 -1
- package/dist/services/BrowserProfileService.js +74 -1
- package/dist/services/BrowserProfileService.js.map +1 -1
- package/dist/services/CacheMissBillingMonitor.d.ts +25 -0
- package/dist/services/CacheMissBillingMonitor.d.ts.map +1 -0
- package/dist/services/CacheMissBillingMonitor.js +179 -0
- package/dist/services/CacheMissBillingMonitor.js.map +1 -0
- package/dist/services/CodexUpdateChecker.d.ts.map +1 -1
- package/dist/services/CodexUpdateChecker.js +3 -2
- package/dist/services/CodexUpdateChecker.js.map +1 -1
- package/dist/services/ModelInfoService.d.ts +58 -9
- package/dist/services/ModelInfoService.d.ts.map +1 -1
- package/dist/services/ModelInfoService.js +127 -14
- package/dist/services/ModelInfoService.js.map +1 -1
- package/dist/services/ProjectQueueScheduler.d.ts +91 -0
- package/dist/services/ProjectQueueScheduler.d.ts.map +1 -0
- package/dist/services/ProjectQueueScheduler.js +404 -0
- package/dist/services/ProjectQueueScheduler.js.map +1 -0
- package/dist/services/ProjectQueueService.d.ts +60 -0
- package/dist/services/ProjectQueueService.d.ts.map +1 -0
- package/dist/services/ProjectQueueService.js +804 -0
- package/dist/services/ProjectQueueService.js.map +1 -0
- package/dist/services/RelayClientService.d.ts +5 -0
- package/dist/services/RelayClientService.d.ts.map +1 -1
- package/dist/services/RelayClientService.js +26 -12
- package/dist/services/RelayClientService.js.map +1 -1
- package/dist/services/SafeRestartService.d.ts +48 -0
- package/dist/services/SafeRestartService.d.ts.map +1 -0
- package/dist/services/SafeRestartService.js +173 -0
- package/dist/services/SafeRestartService.js.map +1 -0
- package/dist/services/ServerSettingsService.d.ts +41 -1
- package/dist/services/ServerSettingsService.d.ts.map +1 -1
- package/dist/services/ServerSettingsService.js +110 -1
- package/dist/services/ServerSettingsService.js.map +1 -1
- package/dist/services/SessionQueuePersistenceService.d.ts +55 -0
- package/dist/services/SessionQueuePersistenceService.d.ts.map +1 -0
- package/dist/services/SessionQueuePersistenceService.js +264 -0
- package/dist/services/SessionQueuePersistenceService.js.map +1 -0
- package/dist/services/WorkstreamService.d.ts +92 -0
- package/dist/services/WorkstreamService.d.ts.map +1 -0
- package/dist/services/WorkstreamService.js +627 -0
- package/dist/services/WorkstreamService.js.map +1 -0
- package/dist/services/index.d.ts +4 -0
- package/dist/services/index.d.ts.map +1 -1
- package/dist/services/index.js +4 -0
- package/dist/services/index.js.map +1 -1
- package/dist/services/projectWorkIdle.d.ts +42 -0
- package/dist/services/projectWorkIdle.d.ts.map +1 -0
- package/dist/services/projectWorkIdle.js +50 -0
- package/dist/services/projectWorkIdle.js.map +1 -0
- package/dist/services/voice/SpeechBackend.d.ts +18 -1
- package/dist/services/voice/SpeechBackend.d.ts.map +1 -1
- package/dist/services/voice/SpeechBackend.js +3 -0
- package/dist/services/voice/SpeechBackend.js.map +1 -1
- package/dist/services/voice/audioRetention.d.ts +20 -0
- package/dist/services/voice/audioRetention.d.ts.map +1 -1
- package/dist/services/voice/audioRetention.js +2 -0
- package/dist/services/voice/audioRetention.js.map +1 -1
- package/dist/services/voice/deepgramBackend.d.ts.map +1 -1
- package/dist/services/voice/deepgramBackend.js +4 -1
- package/dist/services/voice/deepgramBackend.js.map +1 -1
- package/dist/services/voice/localNemoBackend.d.ts +31 -0
- package/dist/services/voice/localNemoBackend.d.ts.map +1 -0
- package/dist/services/voice/localNemoBackend.js +181 -0
- package/dist/services/voice/localNemoBackend.js.map +1 -0
- package/dist/services/voice/localParakeetBackend.d.ts +31 -0
- package/dist/services/voice/localParakeetBackend.d.ts.map +1 -0
- package/dist/services/voice/localParakeetBackend.js +180 -0
- package/dist/services/voice/localParakeetBackend.js.map +1 -0
- package/dist/services/voice/localSttRuntime.d.ts +21 -0
- package/dist/services/voice/localSttRuntime.d.ts.map +1 -0
- package/dist/services/voice/localSttRuntime.js +87 -0
- package/dist/services/voice/localSttRuntime.js.map +1 -0
- package/dist/services/voice/localWhisperBackend.d.ts +2 -1
- package/dist/services/voice/localWhisperBackend.d.ts.map +1 -1
- package/dist/services/voice/localWhisperBackend.js +47 -34
- package/dist/services/voice/localWhisperBackend.js.map +1 -1
- package/dist/services/voice/nemo_worker.py +232 -0
- package/dist/services/voice/parakeet_worker.py +151 -0
- package/dist/services/voice/registry.d.ts +19 -4
- package/dist/services/voice/registry.d.ts.map +1 -1
- package/dist/services/voice/registry.js +72 -22
- package/dist/services/voice/registry.js.map +1 -1
- package/dist/services/voice/serialQueue.d.ts +17 -0
- package/dist/services/voice/serialQueue.d.ts.map +1 -0
- package/dist/services/voice/serialQueue.js +24 -0
- package/dist/services/voice/serialQueue.js.map +1 -0
- package/dist/services/voice/whisper_worker.py +94 -0
- package/dist/services/voice/xaiSttBackend.d.ts +1 -1
- package/dist/services/voice/xaiSttBackend.d.ts.map +1 -1
- package/dist/services/voice/xaiSttBackend.js +15 -3
- package/dist/services/voice/xaiSttBackend.js.map +1 -1
- package/dist/sessions/agent-excerpt.d.ts +29 -0
- package/dist/sessions/agent-excerpt.d.ts.map +1 -0
- package/dist/sessions/agent-excerpt.js +128 -0
- package/dist/sessions/agent-excerpt.js.map +1 -0
- package/dist/sessions/claude-messages.d.ts.map +1 -1
- package/dist/sessions/claude-messages.js +75 -4
- package/dist/sessions/claude-messages.js.map +1 -1
- package/dist/sessions/claude-summary.d.ts +33 -0
- package/dist/sessions/claude-summary.d.ts.map +1 -0
- package/dist/sessions/claude-summary.js +461 -0
- package/dist/sessions/claude-summary.js.map +1 -0
- package/dist/sessions/codex-discovery.d.ts +46 -0
- package/dist/sessions/codex-discovery.d.ts.map +1 -0
- package/dist/sessions/codex-discovery.js +269 -0
- package/dist/sessions/codex-discovery.js.map +1 -0
- package/dist/sessions/codex-reader.d.ts +96 -13
- package/dist/sessions/codex-reader.d.ts.map +1 -1
- package/dist/sessions/codex-reader.js +1069 -141
- package/dist/sessions/codex-reader.js.map +1 -1
- package/dist/sessions/dag.d.ts +25 -4
- package/dist/sessions/dag.d.ts.map +1 -1
- package/dist/sessions/dag.js +37 -4
- package/dist/sessions/dag.js.map +1 -1
- package/dist/sessions/gemini-reader.d.ts +3 -1
- package/dist/sessions/gemini-reader.d.ts.map +1 -1
- package/dist/sessions/gemini-reader.js +17 -8
- package/dist/sessions/gemini-reader.js.map +1 -1
- package/dist/sessions/grok-reader.d.ts +1 -0
- package/dist/sessions/grok-reader.d.ts.map +1 -1
- package/dist/sessions/grok-reader.js +11 -5
- package/dist/sessions/grok-reader.js.map +1 -1
- package/dist/sessions/normalization.d.ts +3 -1
- package/dist/sessions/normalization.d.ts.map +1 -1
- package/dist/sessions/normalization.js +72 -16
- package/dist/sessions/normalization.js.map +1 -1
- package/dist/sessions/null-reader.d.ts +31 -0
- package/dist/sessions/null-reader.d.ts.map +1 -0
- package/dist/sessions/null-reader.js +30 -0
- package/dist/sessions/null-reader.js.map +1 -0
- package/dist/sessions/opencode-db-reader.d.ts +66 -0
- package/dist/sessions/opencode-db-reader.d.ts.map +1 -0
- package/dist/sessions/opencode-db-reader.js +333 -0
- package/dist/sessions/opencode-db-reader.js.map +1 -0
- package/dist/sessions/opencode-reader.d.ts +50 -0
- package/dist/sessions/opencode-reader.d.ts.map +1 -1
- package/dist/sessions/opencode-reader.js +375 -71
- package/dist/sessions/opencode-reader.js.map +1 -1
- package/dist/sessions/pagination.d.ts.map +1 -1
- package/dist/sessions/pagination.js +119 -3
- package/dist/sessions/pagination.js.map +1 -1
- package/dist/sessions/persisted-augments.d.ts +2 -1
- package/dist/sessions/persisted-augments.d.ts.map +1 -1
- package/dist/sessions/persisted-augments.js +2 -2
- package/dist/sessions/persisted-augments.js.map +1 -1
- package/dist/sessions/pi-fork.d.ts +12 -0
- package/dist/sessions/pi-fork.d.ts.map +1 -0
- package/dist/sessions/pi-fork.js +125 -0
- package/dist/sessions/pi-fork.js.map +1 -0
- package/dist/sessions/pi-reader.d.ts +81 -0
- package/dist/sessions/pi-reader.d.ts.map +1 -0
- package/dist/sessions/pi-reader.js +413 -0
- package/dist/sessions/pi-reader.js.map +1 -0
- package/dist/sessions/provider-resolution.d.ts +10 -3
- package/dist/sessions/provider-resolution.d.ts.map +1 -1
- package/dist/sessions/provider-resolution.js +62 -6
- package/dist/sessions/provider-resolution.js.map +1 -1
- package/dist/sessions/reader.d.ts +17 -24
- package/dist/sessions/reader.d.ts.map +1 -1
- package/dist/sessions/reader.js +86 -157
- package/dist/sessions/reader.js.map +1 -1
- package/dist/sessions/recap-overlays.d.ts +38 -0
- package/dist/sessions/recap-overlays.d.ts.map +1 -0
- package/dist/sessions/recap-overlays.js +176 -0
- package/dist/sessions/recap-overlays.js.map +1 -0
- package/dist/sessions/summary-parser-worker-client.d.ts +80 -0
- package/dist/sessions/summary-parser-worker-client.d.ts.map +1 -0
- package/dist/sessions/summary-parser-worker-client.js +539 -0
- package/dist/sessions/summary-parser-worker-client.js.map +1 -0
- package/dist/sessions/summary-parser-worker-entry.d.ts +2 -0
- package/dist/sessions/summary-parser-worker-entry.d.ts.map +1 -0
- package/dist/sessions/summary-parser-worker-entry.js +29 -0
- package/dist/sessions/summary-parser-worker-entry.js.map +1 -0
- package/dist/sessions/summary-parser-worker-protocol.d.ts +105 -0
- package/dist/sessions/summary-parser-worker-protocol.d.ts.map +1 -0
- package/dist/sessions/summary-parser-worker-protocol.js +35 -0
- package/dist/sessions/summary-parser-worker-protocol.js.map +1 -0
- package/dist/sessions/summary-parser-worker-runner.d.ts +3 -0
- package/dist/sessions/summary-parser-worker-runner.d.ts.map +1 -0
- package/dist/sessions/summary-parser-worker-runner.js +158 -0
- package/dist/sessions/summary-parser-worker-runner.js.map +1 -0
- package/dist/sessions/types.d.ts +30 -1
- package/dist/sessions/types.d.ts.map +1 -1
- package/dist/startupEnv.d.ts +2 -0
- package/dist/startupEnv.d.ts.map +1 -0
- package/dist/startupEnv.js +97 -0
- package/dist/startupEnv.js.map +1 -0
- package/dist/subscriptions.d.ts.map +1 -1
- package/dist/subscriptions.js +28 -18
- package/dist/subscriptions.js.map +1 -1
- package/dist/supervisor/ExternalSessionTracker.d.ts +5 -1
- package/dist/supervisor/ExternalSessionTracker.d.ts.map +1 -1
- package/dist/supervisor/ExternalSessionTracker.js +98 -6
- package/dist/supervisor/ExternalSessionTracker.js.map +1 -1
- package/dist/supervisor/Process.d.ts +252 -32
- package/dist/supervisor/Process.d.ts.map +1 -1
- package/dist/supervisor/Process.js +1233 -219
- package/dist/supervisor/Process.js.map +1 -1
- package/dist/supervisor/Supervisor.d.ts +201 -5
- package/dist/supervisor/Supervisor.d.ts.map +1 -1
- package/dist/supervisor/Supervisor.js +1074 -55
- package/dist/supervisor/Supervisor.js.map +1 -1
- package/dist/supervisor/WorkerQueue.d.ts +3 -1
- package/dist/supervisor/WorkerQueue.d.ts.map +1 -1
- package/dist/supervisor/WorkerQueue.js +1 -0
- package/dist/supervisor/WorkerQueue.js.map +1 -1
- package/dist/supervisor/composeTimeAnchor.d.ts +36 -0
- package/dist/supervisor/composeTimeAnchor.d.ts.map +1 -0
- package/dist/supervisor/composeTimeAnchor.js +51 -0
- package/dist/supervisor/composeTimeAnchor.js.map +1 -0
- package/dist/supervisor/deferredDeliverySettings.d.ts +23 -0
- package/dist/supervisor/deferredDeliverySettings.d.ts.map +1 -0
- package/dist/supervisor/deferredDeliverySettings.js +40 -0
- package/dist/supervisor/deferredDeliverySettings.js.map +1 -0
- package/dist/supervisor/liveness.d.ts +5 -2
- package/dist/supervisor/liveness.d.ts.map +1 -1
- package/dist/supervisor/liveness.js +40 -2
- package/dist/supervisor/liveness.js.map +1 -1
- package/dist/supervisor/types.d.ts +56 -5
- package/dist/supervisor/types.d.ts.map +1 -1
- package/dist/supervisor/types.js +0 -2
- package/dist/supervisor/types.js.map +1 -1
- package/dist/uploads/AttachmentStagingService.d.ts +94 -0
- package/dist/uploads/AttachmentStagingService.d.ts.map +1 -0
- package/dist/uploads/AttachmentStagingService.js +673 -0
- package/dist/uploads/AttachmentStagingService.js.map +1 -0
- package/dist/uploads/index.d.ts +2 -0
- package/dist/uploads/index.d.ts.map +1 -1
- package/dist/uploads/index.js +1 -0
- package/dist/uploads/index.js.map +1 -1
- package/dist/uploads/manager.d.ts +1 -0
- package/dist/uploads/manager.d.ts.map +1 -1
- package/dist/uploads/manager.js +72 -12
- package/dist/uploads/manager.js.map +1 -1
- package/dist/utils/codexRolloutFiles.d.ts +16 -0
- package/dist/utils/codexRolloutFiles.d.ts.map +1 -0
- package/dist/utils/codexRolloutFiles.js +45 -0
- package/dist/utils/codexRolloutFiles.js.map +1 -0
- package/dist/utils/jsonl.d.ts +8 -0
- package/dist/utils/jsonl.d.ts.map +1 -1
- package/dist/utils/jsonl.js +158 -5
- package/dist/utils/jsonl.js.map +1 -1
- package/dist/utils/publicShareViewerUrl.d.ts.map +1 -1
- package/dist/utils/publicShareViewerUrl.js +2 -15
- package/dist/utils/publicShareViewerUrl.js.map +1 -1
- package/dist/watcher/EventBus.d.ts +42 -4
- package/dist/watcher/EventBus.d.ts.map +1 -1
- package/dist/watcher/EventBus.js.map +1 -1
- package/dist/watcher/FileWatcher.d.ts +47 -0
- package/dist/watcher/FileWatcher.d.ts.map +1 -1
- package/dist/watcher/FileWatcher.js +185 -14
- package/dist/watcher/FileWatcher.js.map +1 -1
- package/dist/watcher/index.d.ts +2 -2
- package/dist/watcher/index.d.ts.map +1 -1
- package/dist/watcher/index.js.map +1 -1
- package/dist/yaModuleEnv.d.ts +6 -6
- package/dist/yaModuleEnv.d.ts.map +1 -1
- package/dist/yaModuleEnv.js +12 -12
- package/dist/yaModuleEnv.js.map +1 -1
- package/package.json +5 -6
- package/client-dist/assets/de-BuEb60Yc.js +0 -6
- package/client-dist/assets/es-CRlmPKnE.js +0 -6
- package/client-dist/assets/fr-Cglgjc2X.js +0 -6
- package/client-dist/assets/index-BNj7ibmq.js +0 -524
- package/client-dist/assets/index-CAmsUazi.css +0 -1
- package/client-dist/assets/ja-DMb9mFPv.js +0 -6
- package/client-dist/assets/zh-CN-D1tbfamz.js +0 -6
|
@@ -9,11 +9,13 @@ import { homedir } from "node:os";
|
|
|
9
9
|
import { promisify } from "node:util";
|
|
10
10
|
import { HELPER_SIDE_MODEL_CHEAPEST, } from "../../../bundled/@yep-anywhere/shared/dist/index.js";
|
|
11
11
|
import { isCodexCorrelationDebugEnabled, logCodexCorrelationDebug, summarizeCodexNormalizedMessage, } from "../../codex/correlationDebugLogger.js";
|
|
12
|
-
import { canonicalizeCodexToolName, isCodexBackgroundProcessOutput, isCodexInterruptedToolOutput, normalizeCodexCommandExecutionOutput, normalizeCodexToolInvocation, normalizeCodexToolOutputWithContext, parseCodexToolArguments, } from "../../codex/normalization.js";
|
|
12
|
+
import { canonicalizeCodexToolName, isCodexBackgroundProcessOutput, isCodexInterruptedToolOutput, normalizeCodexCommandActionInvocation, normalizeCodexCommandExecutionOutput, normalizeCodexToolInvocation, normalizeCodexToolOutputWithContext, parseCodexToolArguments, } from "../../codex/normalization.js";
|
|
13
13
|
import { getLogger } from "../../logging/logger.js";
|
|
14
14
|
import { findCodexCliPath } from "../cli-detection.js";
|
|
15
15
|
import { logSDKMessage } from "../messageLogger.js";
|
|
16
16
|
import { MessageQueue } from "../messageQueue.js";
|
|
17
|
+
import { createAgentctlSessionEnvBridge } from "./agentctl-session-env.js";
|
|
18
|
+
import { CODEX_BUILTIN_COMMANDS } from "./staticSlashCommands.js";
|
|
17
19
|
const log = getLogger().child({ component: "codex-provider" });
|
|
18
20
|
const execFileAsync = promisify(execFile);
|
|
19
21
|
function logSdkCorrelationDebug(sessionId, message, metadata = {}) {
|
|
@@ -58,13 +60,14 @@ const CODEX_CLI_GPT55_MIN_VERSION = "0.124.0";
|
|
|
58
60
|
const CODEX_FAILURE_TRACE_LIMIT = 12;
|
|
59
61
|
const CODEX_FAILURE_PREVIEW_CHARS = 240;
|
|
60
62
|
const CODEX_RECAP_TIMEOUT_MS = 20_000;
|
|
63
|
+
const CODEX_SUMMARY_TIMEOUT_MS = 60_000;
|
|
61
64
|
const CODEX_RECAP_MAX_TOTAL_CHARS = 6000;
|
|
62
65
|
const CODEX_RECAP_CHEAPEST_MODEL_PREFERENCES = [
|
|
63
66
|
"gpt-5.4-mini",
|
|
64
67
|
"gpt-5.1-codex-mini",
|
|
65
68
|
"gpt-5.3-codex-spark",
|
|
66
69
|
];
|
|
67
|
-
const CODEX_DISABLE_LIVE_DELTAS_ENV = "
|
|
70
|
+
const CODEX_DISABLE_LIVE_DELTAS_ENV = "YEP_CODEX_DISABLE_LIVE_DELTAS";
|
|
68
71
|
const CODEX_LIVE_DELTA_NOTIFICATION_METHODS = new Set([
|
|
69
72
|
"item/agentMessage/delta",
|
|
70
73
|
"item/plan/delta",
|
|
@@ -78,13 +81,6 @@ function isCodexLiveDeltaSuppressionEnabled() {
|
|
|
78
81
|
function isCodexLiveDeltaNotificationMethod(method) {
|
|
79
82
|
return CODEX_LIVE_DELTA_NOTIFICATION_METHODS.has(method);
|
|
80
83
|
}
|
|
81
|
-
const CODEX_BUILTIN_COMMANDS = [
|
|
82
|
-
{
|
|
83
|
-
name: "goal",
|
|
84
|
-
description: "Keep working toward a verifiable end state until it is met",
|
|
85
|
-
argumentHint: "<verifiable end state>",
|
|
86
|
-
},
|
|
87
|
-
];
|
|
88
84
|
const CODEX_THINKING_OFF_MIN_REASONING_EFFORT_PREFIXES = [
|
|
89
85
|
"gpt-5.3-codex-spark",
|
|
90
86
|
];
|
|
@@ -100,10 +96,12 @@ const CODEX_POLICY_OVERRIDES = {
|
|
|
100
96
|
sandbox: null,
|
|
101
97
|
};
|
|
102
98
|
/**
|
|
103
|
-
* When enabled, declare Codex session originator as "Codex Desktop"
|
|
104
|
-
*
|
|
99
|
+
* When enabled, declare Codex session originator as "Codex Desktop" when
|
|
100
|
+
* initializing app-server sessions. Disabled by default so we report
|
|
101
|
+
* "yep-anywhere" as the originator, making Yep Anywhere usage visible in the
|
|
102
|
+
* Codex/ChatGPT token-usage UI.
|
|
105
103
|
*/
|
|
106
|
-
const DECLARE_CODEX_ORIGINATOR =
|
|
104
|
+
const DECLARE_CODEX_ORIGINATOR = false;
|
|
107
105
|
const DECLARED_CODEX_ORIGINATOR = "Codex Desktop";
|
|
108
106
|
const YEP_ANYWHERE_ORIGINATOR = "yep-anywhere";
|
|
109
107
|
const PREFERRED_MODEL_ORDER = [
|
|
@@ -269,7 +267,21 @@ async function terminateChildProcess(child, graceMs = APP_SERVER_SHUTDOWN_GRACE_
|
|
|
269
267
|
const exited = new Promise((resolve) => {
|
|
270
268
|
child.once("exit", () => resolve());
|
|
271
269
|
});
|
|
272
|
-
|
|
270
|
+
if (process.platform === "win32") {
|
|
271
|
+
const taskkill = new Promise((resolve) => {
|
|
272
|
+
execFile("taskkill", ["/pid", String(child.pid), "/T", "/F"], () => resolve());
|
|
273
|
+
});
|
|
274
|
+
await Promise.race([
|
|
275
|
+
taskkill,
|
|
276
|
+
new Promise((resolve) => setTimeout(resolve, graceMs)),
|
|
277
|
+
]);
|
|
278
|
+
await Promise.race([
|
|
279
|
+
exited,
|
|
280
|
+
new Promise((resolve) => setTimeout(resolve, 100)),
|
|
281
|
+
]);
|
|
282
|
+
return;
|
|
283
|
+
}
|
|
284
|
+
const killTarget = child.pid > 0 ? -child.pid : child.pid;
|
|
273
285
|
try {
|
|
274
286
|
process.kill(killTarget, "SIGTERM");
|
|
275
287
|
}
|
|
@@ -356,6 +368,7 @@ class CodexAppServerClient {
|
|
|
356
368
|
shouldSuppressNotification;
|
|
357
369
|
process = null;
|
|
358
370
|
stdoutBuffer = "";
|
|
371
|
+
closePromise = null;
|
|
359
372
|
/** OS PID of the spawned app-server child process */
|
|
360
373
|
get pid() {
|
|
361
374
|
return this.process?.pid;
|
|
@@ -553,7 +566,10 @@ class CodexAppServerClient {
|
|
|
553
566
|
async nextNotification(signal) {
|
|
554
567
|
return await this.notifications.shift(signal);
|
|
555
568
|
}
|
|
556
|
-
close() {
|
|
569
|
+
async close() {
|
|
570
|
+
if (this.closePromise) {
|
|
571
|
+
return await this.closePromise;
|
|
572
|
+
}
|
|
557
573
|
if (this.closed)
|
|
558
574
|
return;
|
|
559
575
|
this.closed = true;
|
|
@@ -565,7 +581,8 @@ class CodexAppServerClient {
|
|
|
565
581
|
this.notifications.close(closeError);
|
|
566
582
|
const child = this.process;
|
|
567
583
|
this.process = null;
|
|
568
|
-
|
|
584
|
+
this.closePromise = terminateChildProcess(child);
|
|
585
|
+
await this.closePromise;
|
|
569
586
|
}
|
|
570
587
|
handleProcessClose(error) {
|
|
571
588
|
if (this.closed)
|
|
@@ -1091,8 +1108,78 @@ export class CodexProvider {
|
|
|
1091
1108
|
});
|
|
1092
1109
|
return true;
|
|
1093
1110
|
},
|
|
1111
|
+
runProviderCommand: async (command) => {
|
|
1112
|
+
// Only `/compact` is dispatched natively; every other slash command
|
|
1113
|
+
// falls through to ordinary turn delivery.
|
|
1114
|
+
const name = command.trim().replace(/^\/+/, "").toLowerCase();
|
|
1115
|
+
if (name !== "compact") {
|
|
1116
|
+
return { handled: false };
|
|
1117
|
+
}
|
|
1118
|
+
// Codex compaction takes no instructions, so any trailing argument is
|
|
1119
|
+
// intentionally dropped here — there is no app-server surface for it.
|
|
1120
|
+
if (!activeClient || !runtimeState.threadId) {
|
|
1121
|
+
return {
|
|
1122
|
+
handled: true,
|
|
1123
|
+
error: "Codex session is not ready for compaction yet",
|
|
1124
|
+
};
|
|
1125
|
+
}
|
|
1126
|
+
// A compact runs as its own (non-steerable) turn; refuse mid-turn so we
|
|
1127
|
+
// do not collide with active work or send `/compact` as plain text.
|
|
1128
|
+
if (runtimeState.activeTurnId) {
|
|
1129
|
+
return {
|
|
1130
|
+
handled: true,
|
|
1131
|
+
error: "Cannot compact while a turn is in progress",
|
|
1132
|
+
};
|
|
1133
|
+
}
|
|
1134
|
+
try {
|
|
1135
|
+
await activeClient.request("thread/compact/start", {
|
|
1136
|
+
threadId: runtimeState.threadId,
|
|
1137
|
+
});
|
|
1138
|
+
return { handled: true };
|
|
1139
|
+
}
|
|
1140
|
+
catch (error) {
|
|
1141
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
1142
|
+
log.warn({ threadId: runtimeState.threadId, error: message }, "Codex thread/compact/start failed");
|
|
1143
|
+
return { handled: true, error: message };
|
|
1144
|
+
}
|
|
1145
|
+
},
|
|
1094
1146
|
};
|
|
1095
1147
|
}
|
|
1148
|
+
async forkSession(options) {
|
|
1149
|
+
const codexCommand = await this.resolveCodexCommand();
|
|
1150
|
+
const appServer = new CodexAppServerClient(codexCommand, options.cwd, this.getCodexEnv());
|
|
1151
|
+
appServer.setServerRequestHandler((request) => this.handleForkServerRequest(request));
|
|
1152
|
+
try {
|
|
1153
|
+
await appServer.connect();
|
|
1154
|
+
const experimentalApiEnabled = await this.initializeAppServer(appServer);
|
|
1155
|
+
appServer.notify("initialized");
|
|
1156
|
+
const rollbackCount = options.upToMessageId
|
|
1157
|
+
? await this.resolveCodexForkRollbackCount(appServer, options.sessionId, options.upToMessageId)
|
|
1158
|
+
: 0;
|
|
1159
|
+
const policy = this.mapPermissionModeToThreadPolicy(undefined);
|
|
1160
|
+
const fork = await appServer.request("thread/fork", this.createThreadForkParams(options, policy, experimentalApiEnabled));
|
|
1161
|
+
const forkSessionId = fork.thread?.id;
|
|
1162
|
+
if (!forkSessionId) {
|
|
1163
|
+
throw new Error("Codex thread/fork did not return a thread id");
|
|
1164
|
+
}
|
|
1165
|
+
if (rollbackCount > 0) {
|
|
1166
|
+
await appServer.request("thread/rollback", {
|
|
1167
|
+
threadId: forkSessionId,
|
|
1168
|
+
numTurns: rollbackCount,
|
|
1169
|
+
});
|
|
1170
|
+
}
|
|
1171
|
+
log.info({
|
|
1172
|
+
sourceSessionId: options.sessionId,
|
|
1173
|
+
forkSessionId,
|
|
1174
|
+
upToMessageId: options.upToMessageId ?? null,
|
|
1175
|
+
rollbackCount,
|
|
1176
|
+
}, "Forked Codex app-server thread");
|
|
1177
|
+
return { sessionId: forkSessionId };
|
|
1178
|
+
}
|
|
1179
|
+
finally {
|
|
1180
|
+
await appServer.close();
|
|
1181
|
+
}
|
|
1182
|
+
}
|
|
1096
1183
|
async probeCodexLiveness(activeClient, runtimeState) {
|
|
1097
1184
|
const checkedAt = new Date();
|
|
1098
1185
|
const source = "codex:thread/read";
|
|
@@ -1117,7 +1204,9 @@ export class CodexProvider {
|
|
|
1117
1204
|
threadId: runtimeState.threadId,
|
|
1118
1205
|
includeTurns: false,
|
|
1119
1206
|
});
|
|
1120
|
-
const status = response.thread?.status
|
|
1207
|
+
const status = response.thread?.status && typeof response.thread.status === "object"
|
|
1208
|
+
? response.thread.status
|
|
1209
|
+
: null;
|
|
1121
1210
|
const statusType = status?.type;
|
|
1122
1211
|
const activeFlags = Array.isArray(status?.activeFlags)
|
|
1123
1212
|
? status.activeFlags.filter((flag) => typeof flag === "string")
|
|
@@ -1186,7 +1275,17 @@ export class CodexProvider {
|
|
|
1186
1275
|
*/
|
|
1187
1276
|
async *runSession(options, queue, signal, runtimeState, setActiveClient) {
|
|
1188
1277
|
const codexCommand = await this.resolveCodexCommand();
|
|
1189
|
-
const
|
|
1278
|
+
const agentctlSessionEnvBridge = createAgentctlSessionEnvBridge(options.resumeSessionId);
|
|
1279
|
+
const codexEnv = agentctlSessionEnvBridge.extendEnv(this.getCodexEnv());
|
|
1280
|
+
if (options.resumeSessionId) {
|
|
1281
|
+
// The bridge only reaches bash tool shells that source BASH_ENV, which
|
|
1282
|
+
// codex's sandbox may strip. For resume the id is known at spawn, so set
|
|
1283
|
+
// it directly in the app-server env too; every shell codex launches
|
|
1284
|
+
// inherits it regardless of BASH_ENV. New sessions (id unknown until
|
|
1285
|
+
// thread/start) stay on the bridge alone.
|
|
1286
|
+
codexEnv.AGENTCTL_SESSION_ID = options.resumeSessionId;
|
|
1287
|
+
}
|
|
1288
|
+
const appServer = new CodexAppServerClient(codexCommand, options.cwd, codexEnv, (notification) => this.shouldSuppressLiveDeltaNotification(notification, options));
|
|
1190
1289
|
setActiveClient(appServer);
|
|
1191
1290
|
let sessionId = options.resumeSessionId ?? "";
|
|
1192
1291
|
const usageByTurnId = new Map();
|
|
@@ -1210,6 +1309,7 @@ export class CodexProvider {
|
|
|
1210
1309
|
const threadStartParams = this.createThreadStartParams(options, policy);
|
|
1211
1310
|
const threadResult = await this.startOrResumeThread(appServer, options, threadStartParams, threadResumeParams);
|
|
1212
1311
|
sessionId = threadResult.thread.id;
|
|
1312
|
+
agentctlSessionEnvBridge.publishSessionId(sessionId);
|
|
1213
1313
|
runtimeState.threadId = sessionId;
|
|
1214
1314
|
failureTrace.sessionId = sessionId;
|
|
1215
1315
|
log.info({
|
|
@@ -1366,7 +1466,8 @@ export class CodexProvider {
|
|
|
1366
1466
|
}
|
|
1367
1467
|
finally {
|
|
1368
1468
|
runtimeState.activeTurnId = null;
|
|
1369
|
-
appServer.close();
|
|
1469
|
+
await appServer.close();
|
|
1470
|
+
agentctlSessionEnvBridge.cleanup();
|
|
1370
1471
|
}
|
|
1371
1472
|
yield {
|
|
1372
1473
|
type: "result",
|
|
@@ -1483,7 +1584,6 @@ export class CodexProvider {
|
|
|
1483
1584
|
...this.buildThreadPermissionParams(policy),
|
|
1484
1585
|
config: this.buildThreadConfigOverrides(options),
|
|
1485
1586
|
experimentalRawEvents: false,
|
|
1486
|
-
persistExtendedHistory: false,
|
|
1487
1587
|
};
|
|
1488
1588
|
}
|
|
1489
1589
|
createThreadResumeParams(options, sessionId, policy, experimentalApiEnabled = false) {
|
|
@@ -1494,13 +1594,78 @@ export class CodexProvider {
|
|
|
1494
1594
|
cwd: options.cwd,
|
|
1495
1595
|
...this.buildThreadPermissionParams(policy),
|
|
1496
1596
|
config: this.buildThreadConfigOverrides(options),
|
|
1497
|
-
persistExtendedHistory: false,
|
|
1498
1597
|
};
|
|
1499
1598
|
if (experimentalApiEnabled) {
|
|
1500
1599
|
params.excludeTurns = true;
|
|
1501
1600
|
}
|
|
1502
1601
|
return params;
|
|
1503
1602
|
}
|
|
1603
|
+
createThreadForkParams(options, policy, experimentalApiEnabled = false) {
|
|
1604
|
+
const params = {
|
|
1605
|
+
threadId: options.sessionId,
|
|
1606
|
+
cwd: options.cwd,
|
|
1607
|
+
...this.buildThreadPermissionParams(policy),
|
|
1608
|
+
config: null,
|
|
1609
|
+
};
|
|
1610
|
+
if (experimentalApiEnabled) {
|
|
1611
|
+
params.excludeTurns = true;
|
|
1612
|
+
}
|
|
1613
|
+
return params;
|
|
1614
|
+
}
|
|
1615
|
+
async resolveCodexForkRollbackCount(appServer, sessionId, upToMessageId) {
|
|
1616
|
+
const response = await appServer.request("thread/read", {
|
|
1617
|
+
threadId: sessionId,
|
|
1618
|
+
includeTurns: true,
|
|
1619
|
+
});
|
|
1620
|
+
const turns = response.thread.turns ?? [];
|
|
1621
|
+
return this.computeCodexForkRollbackCount(turns, upToMessageId);
|
|
1622
|
+
}
|
|
1623
|
+
computeCodexForkRollbackCount(turns, upToMessageId) {
|
|
1624
|
+
const anchor = this.findCodexForkAnchor(turns, upToMessageId);
|
|
1625
|
+
if (!anchor) {
|
|
1626
|
+
throw new Error(`Codex fork anchor ${upToMessageId} was not found in source thread`);
|
|
1627
|
+
}
|
|
1628
|
+
if (anchor.itemIndex !== null) {
|
|
1629
|
+
const turn = turns[anchor.turnIndex];
|
|
1630
|
+
if (!turn) {
|
|
1631
|
+
throw new Error(`Codex fork anchor ${upToMessageId} resolved to a missing turn`);
|
|
1632
|
+
}
|
|
1633
|
+
if (anchor.itemIndex < turn.items.length - 1) {
|
|
1634
|
+
throw new Error(`Codex fork anchor ${upToMessageId} is inside a turn; Codex can only fork at completed turn boundaries`);
|
|
1635
|
+
}
|
|
1636
|
+
}
|
|
1637
|
+
return turns.length - anchor.turnIndex - 1;
|
|
1638
|
+
}
|
|
1639
|
+
findCodexForkAnchor(turns, upToMessageId) {
|
|
1640
|
+
for (const [turnIndex, turn] of turns.entries()) {
|
|
1641
|
+
if (turn.id === upToMessageId ||
|
|
1642
|
+
`codex-turn-interrupted-${turn.id}` === upToMessageId) {
|
|
1643
|
+
return { turnIndex, itemIndex: null };
|
|
1644
|
+
}
|
|
1645
|
+
for (const [itemIndex, item] of turn.items.entries()) {
|
|
1646
|
+
if (this.codexItemMatchesForkAnchor(item, turn.id, upToMessageId)) {
|
|
1647
|
+
return { turnIndex, itemIndex };
|
|
1648
|
+
}
|
|
1649
|
+
}
|
|
1650
|
+
if (`codex-compaction-${turn.id}` === upToMessageId) {
|
|
1651
|
+
return { turnIndex, itemIndex: turn.items.length - 1 };
|
|
1652
|
+
}
|
|
1653
|
+
}
|
|
1654
|
+
return null;
|
|
1655
|
+
}
|
|
1656
|
+
codexItemMatchesForkAnchor(item, turnId, upToMessageId) {
|
|
1657
|
+
const candidates = new Set();
|
|
1658
|
+
candidates.add(item.id);
|
|
1659
|
+
candidates.add(`${item.id}-${turnId}`);
|
|
1660
|
+
candidates.add(`${item.id}-result`);
|
|
1661
|
+
const itemRecord = item;
|
|
1662
|
+
const clientId = this.getOptionalString(itemRecord.clientId);
|
|
1663
|
+
if (clientId) {
|
|
1664
|
+
candidates.add(clientId);
|
|
1665
|
+
candidates.add(`${clientId}-${turnId}`);
|
|
1666
|
+
}
|
|
1667
|
+
return candidates.has(upToMessageId);
|
|
1668
|
+
}
|
|
1504
1669
|
buildThreadPermissionParams(policy) {
|
|
1505
1670
|
return {
|
|
1506
1671
|
approvalPolicy: policy.approvalPolicy,
|
|
@@ -1536,9 +1701,19 @@ export class CodexProvider {
|
|
|
1536
1701
|
* not natively emit prompt_suggestion messages, but it can still run the YA
|
|
1537
1702
|
* simulated recap helper without mutating the parent session transcript.
|
|
1538
1703
|
*/
|
|
1539
|
-
async
|
|
1704
|
+
async generateSummary(request) {
|
|
1705
|
+
switch (request.strategy) {
|
|
1706
|
+
case "side-session": {
|
|
1707
|
+
const text = await this.generateSideSessionRecap(request.recentAssistantText, request.model);
|
|
1708
|
+
return { text };
|
|
1709
|
+
}
|
|
1710
|
+
case "fork":
|
|
1711
|
+
return await this.generateForkBackedSummary(request);
|
|
1712
|
+
}
|
|
1713
|
+
}
|
|
1714
|
+
async generateSideSessionRecap(recentAssistantText, requestedModel) {
|
|
1540
1715
|
const userPrompt = this.createRecapPrompt(recentAssistantText);
|
|
1541
|
-
const model = await this.resolveRecapHelperModel(
|
|
1716
|
+
const model = await this.resolveRecapHelperModel(requestedModel);
|
|
1542
1717
|
const codexCommand = await this.resolveCodexCommand();
|
|
1543
1718
|
const abortController = new AbortController();
|
|
1544
1719
|
let timedOut = false;
|
|
@@ -1560,7 +1735,6 @@ export class CodexProvider {
|
|
|
1560
1735
|
sandbox: "read-only",
|
|
1561
1736
|
ephemeral: true,
|
|
1562
1737
|
experimentalRawEvents: false,
|
|
1563
|
-
persistExtendedHistory: false,
|
|
1564
1738
|
developerInstructions: "You are a recap helper. Reply with the recap text only, no preamble. Do not call tools.",
|
|
1565
1739
|
});
|
|
1566
1740
|
const turnResult = await appServer.request("turn/start", {
|
|
@@ -1609,7 +1783,7 @@ export class CodexProvider {
|
|
|
1609
1783
|
finally {
|
|
1610
1784
|
clearTimeout(timeout);
|
|
1611
1785
|
abortController.abort();
|
|
1612
|
-
appServer.close();
|
|
1786
|
+
await appServer.close();
|
|
1613
1787
|
}
|
|
1614
1788
|
}
|
|
1615
1789
|
createRecapPrompt(recentAssistantText) {
|
|
@@ -1646,6 +1820,174 @@ export class CodexProvider {
|
|
|
1646
1820
|
transcript,
|
|
1647
1821
|
].join("\n");
|
|
1648
1822
|
}
|
|
1823
|
+
async generateForkBackedSummary(request) {
|
|
1824
|
+
const userPrompt = request.purpose === "session-retitle"
|
|
1825
|
+
? this.createSessionRetitlePrompt(request)
|
|
1826
|
+
: request.purpose === "recap"
|
|
1827
|
+
? this.createForkedRecapPrompt()
|
|
1828
|
+
: this.createForkAfterSummaryPrompt(request);
|
|
1829
|
+
const codexCommand = await this.resolveCodexCommand();
|
|
1830
|
+
const appServer = new CodexAppServerClient(codexCommand, request.cwd, this.getCodexEnv());
|
|
1831
|
+
const abortController = new AbortController();
|
|
1832
|
+
let timedOut = false;
|
|
1833
|
+
const abortFromRequest = () => {
|
|
1834
|
+
abortController.abort();
|
|
1835
|
+
void appServer.close();
|
|
1836
|
+
};
|
|
1837
|
+
if (request.signal?.aborted) {
|
|
1838
|
+
abortController.abort();
|
|
1839
|
+
}
|
|
1840
|
+
else {
|
|
1841
|
+
request.signal?.addEventListener("abort", abortFromRequest, {
|
|
1842
|
+
once: true,
|
|
1843
|
+
});
|
|
1844
|
+
}
|
|
1845
|
+
const timeout = setTimeout(() => {
|
|
1846
|
+
timedOut = true;
|
|
1847
|
+
abortController.abort();
|
|
1848
|
+
void appServer.close();
|
|
1849
|
+
}, CODEX_SUMMARY_TIMEOUT_MS);
|
|
1850
|
+
timeout.unref?.();
|
|
1851
|
+
appServer.setServerRequestHandler((serverRequest) => this.handleNonTurnServerRequest(serverRequest, "summary helper"));
|
|
1852
|
+
try {
|
|
1853
|
+
if (abortController.signal.aborted) {
|
|
1854
|
+
throw new DOMException("Summary generation cancelled", "AbortError");
|
|
1855
|
+
}
|
|
1856
|
+
await appServer.connect();
|
|
1857
|
+
const experimentalApiEnabled = await this.initializeAppServer(appServer);
|
|
1858
|
+
appServer.notify("initialized");
|
|
1859
|
+
const threadResult = await appServer.request("thread/resume", this.createForkSummaryThreadResumeParams(request, experimentalApiEnabled));
|
|
1860
|
+
const threadId = threadResult.thread.id || request.generatorSessionId;
|
|
1861
|
+
const turnResult = await appServer.request("turn/start", {
|
|
1862
|
+
threadId,
|
|
1863
|
+
input: [{ type: "text", text: userPrompt, text_elements: [] }],
|
|
1864
|
+
effort: "low",
|
|
1865
|
+
summary: "auto",
|
|
1866
|
+
approvalPolicy: "untrusted",
|
|
1867
|
+
});
|
|
1868
|
+
const textByItemId = new Map();
|
|
1869
|
+
this.captureRecapTextFromTurnItems(turnResult.turn.items, textByItemId);
|
|
1870
|
+
if (turnResult.turn.status === "failed") {
|
|
1871
|
+
throw new Error(turnResult.turn.error?.message ?? "Codex summary generation failed");
|
|
1872
|
+
}
|
|
1873
|
+
const turnId = turnResult.turn.id;
|
|
1874
|
+
let turnComplete = turnResult.turn.status !== "inProgress";
|
|
1875
|
+
while (!turnComplete && !abortController.signal.aborted) {
|
|
1876
|
+
const notification = await appServer.nextNotification(abortController.signal);
|
|
1877
|
+
this.captureRecapTextFromNotification(notification, textByItemId);
|
|
1878
|
+
if (notification.method === "turn/completed") {
|
|
1879
|
+
const completed = this.asTurnCompletedNotification(notification.params);
|
|
1880
|
+
if (completed?.turn.id !== turnId) {
|
|
1881
|
+
continue;
|
|
1882
|
+
}
|
|
1883
|
+
this.captureRecapTextFromTurnItems(completed.turn.items, textByItemId);
|
|
1884
|
+
if (completed.turn.status === "failed") {
|
|
1885
|
+
throw new Error(completed.turn.error?.message ??
|
|
1886
|
+
"Codex summary generation failed");
|
|
1887
|
+
}
|
|
1888
|
+
turnComplete = true;
|
|
1889
|
+
continue;
|
|
1890
|
+
}
|
|
1891
|
+
if (notification.method === "error") {
|
|
1892
|
+
const error = this.asErrorNotification(notification.params);
|
|
1893
|
+
if (error?.turnId === turnId && !error.willRetry) {
|
|
1894
|
+
throw new Error(error.error.message ?? "Codex summary generation failed");
|
|
1895
|
+
}
|
|
1896
|
+
}
|
|
1897
|
+
}
|
|
1898
|
+
if (abortController.signal.aborted) {
|
|
1899
|
+
if (request.signal?.aborted) {
|
|
1900
|
+
throw new DOMException("Summary generation cancelled", "AbortError");
|
|
1901
|
+
}
|
|
1902
|
+
throw new Error("Timed out generating Codex summary");
|
|
1903
|
+
}
|
|
1904
|
+
const cleaned = [...textByItemId.values()].join("\n").trim();
|
|
1905
|
+
if (!cleaned) {
|
|
1906
|
+
throw new Error("Summary generation returned empty text");
|
|
1907
|
+
}
|
|
1908
|
+
return { text: cleaned };
|
|
1909
|
+
}
|
|
1910
|
+
catch (error) {
|
|
1911
|
+
if (request.signal?.aborted) {
|
|
1912
|
+
throw new DOMException("Summary generation cancelled", "AbortError");
|
|
1913
|
+
}
|
|
1914
|
+
if (timedOut) {
|
|
1915
|
+
throw new Error("Timed out generating Codex summary");
|
|
1916
|
+
}
|
|
1917
|
+
throw error;
|
|
1918
|
+
}
|
|
1919
|
+
finally {
|
|
1920
|
+
clearTimeout(timeout);
|
|
1921
|
+
request.signal?.removeEventListener("abort", abortFromRequest);
|
|
1922
|
+
abortController.abort();
|
|
1923
|
+
await appServer.close();
|
|
1924
|
+
}
|
|
1925
|
+
}
|
|
1926
|
+
createForkSummaryThreadResumeParams(request, experimentalApiEnabled = false) {
|
|
1927
|
+
const params = {
|
|
1928
|
+
threadId: request.generatorSessionId,
|
|
1929
|
+
model: null,
|
|
1930
|
+
cwd: request.cwd,
|
|
1931
|
+
approvalPolicy: "untrusted",
|
|
1932
|
+
sandbox: "read-only",
|
|
1933
|
+
config: null,
|
|
1934
|
+
developerInstructions: request.purpose === "session-retitle"
|
|
1935
|
+
? "You are a title helper. Reply with the session title only, no preamble. Do not call tools."
|
|
1936
|
+
: request.purpose === "recap"
|
|
1937
|
+
? "You are a recap helper. Reply with the recap text only, no preamble. Do not call tools."
|
|
1938
|
+
: "You are a handoff summary helper. Reply with the summary text only, no preamble. Do not call tools.",
|
|
1939
|
+
};
|
|
1940
|
+
if (experimentalApiEnabled) {
|
|
1941
|
+
params.excludeTurns = true;
|
|
1942
|
+
}
|
|
1943
|
+
return params;
|
|
1944
|
+
}
|
|
1945
|
+
createForkAfterSummaryPrompt(request) {
|
|
1946
|
+
const instructions = request.instructions?.trim();
|
|
1947
|
+
const boundaryContext = request.afterTurnContext?.trim();
|
|
1948
|
+
return [
|
|
1949
|
+
"The first non-empty line must be a concise title of at most 120 characters, with no trailing period.",
|
|
1950
|
+
"Write it as: Title: <title>",
|
|
1951
|
+
"Then leave one blank line before the handoff summary.",
|
|
1952
|
+
"",
|
|
1953
|
+
"Summarize the useful state after the retained fork boundary for a peer-agent handoff.",
|
|
1954
|
+
`The target fork retains the conversation through completed-turn message id ${request.afterTurnMessageId}.`,
|
|
1955
|
+
boundaryContext
|
|
1956
|
+
? `The retained boundary is the completed turn ending with this excerpt:\n${boundaryContext}`
|
|
1957
|
+
: undefined,
|
|
1958
|
+
"The target fork already includes the original request and the assistant/tool work through that selected completed turn.",
|
|
1959
|
+
"Do not repeat setup, instruction loading, initial repository orientation, or investigation already present in that retained prefix.",
|
|
1960
|
+
"Preserve decisions, constraints, current state, changed files, verification evidence, open risks, and the next useful action.",
|
|
1961
|
+
"Do not continue the task. Write text that can be submitted as the next user turn in the target fork.",
|
|
1962
|
+
instructions ? "" : undefined,
|
|
1963
|
+
instructions ? "Additional user instructions:" : undefined,
|
|
1964
|
+
instructions || undefined,
|
|
1965
|
+
]
|
|
1966
|
+
.filter((part) => part !== undefined)
|
|
1967
|
+
.join("\n");
|
|
1968
|
+
}
|
|
1969
|
+
createForkedRecapPrompt() {
|
|
1970
|
+
return [
|
|
1971
|
+
"The user stepped away and is coming back.",
|
|
1972
|
+
"Recap the current session state in under 40 words, 1-2 plain sentences, no markdown.",
|
|
1973
|
+
"Lead with what the assistant did or is doing; mention any pending next action.",
|
|
1974
|
+
"Do not greet, do not ask a question, do not add a sign-off.",
|
|
1975
|
+
].join("\n");
|
|
1976
|
+
}
|
|
1977
|
+
createSessionRetitlePrompt(request) {
|
|
1978
|
+
const lengthTarget = request.lengthTarget ?? 80;
|
|
1979
|
+
const currentTitle = request.currentTitle?.trim();
|
|
1980
|
+
return [
|
|
1981
|
+
"What is a good new title for this session?",
|
|
1982
|
+
"",
|
|
1983
|
+
`Target length: under ${lengthTarget} characters.`,
|
|
1984
|
+
currentTitle ? `Current title: ${currentTitle}` : undefined,
|
|
1985
|
+
"Prefer a concrete task/result phrase over a generic chat title.",
|
|
1986
|
+
"Return only the title. Do not quote it. Do not add a trailing period.",
|
|
1987
|
+
]
|
|
1988
|
+
.filter((part) => part !== undefined)
|
|
1989
|
+
.join("\n");
|
|
1990
|
+
}
|
|
1649
1991
|
async resolveRecapHelperModel(requestedModel) {
|
|
1650
1992
|
if (!requestedModel || requestedModel !== HELPER_SIDE_MODEL_CHEAPEST) {
|
|
1651
1993
|
return requestedModel ?? null;
|
|
@@ -1660,7 +2002,13 @@ export class CodexProvider {
|
|
|
1660
2002
|
null);
|
|
1661
2003
|
}
|
|
1662
2004
|
handleRecapServerRequest(request) {
|
|
1663
|
-
|
|
2005
|
+
return this.handleNonTurnServerRequest(request, "recap helper");
|
|
2006
|
+
}
|
|
2007
|
+
handleForkServerRequest(request) {
|
|
2008
|
+
return this.handleNonTurnServerRequest(request, "fork");
|
|
2009
|
+
}
|
|
2010
|
+
handleNonTurnServerRequest(request, purpose) {
|
|
2011
|
+
log.warn({ method: request.method, requestId: request.id, purpose }, "Declining Codex non-turn server request");
|
|
1664
2012
|
switch (request.method) {
|
|
1665
2013
|
case "item/commandExecution/requestApproval":
|
|
1666
2014
|
case "item/fileChange/requestApproval":
|
|
@@ -2532,6 +2880,11 @@ export class CodexProvider {
|
|
|
2532
2880
|
return { id, type: "agent_message", text };
|
|
2533
2881
|
}
|
|
2534
2882
|
case "command_execution": {
|
|
2883
|
+
const commandActions = (Array.isArray(itemRecord.commandActions)
|
|
2884
|
+
? itemRecord.commandActions
|
|
2885
|
+
: Array.isArray(itemRecord.command_actions)
|
|
2886
|
+
? itemRecord.command_actions
|
|
2887
|
+
: undefined) ?? undefined;
|
|
2535
2888
|
return {
|
|
2536
2889
|
id,
|
|
2537
2890
|
type: "command_execution",
|
|
@@ -2543,6 +2896,7 @@ export class CodexProvider {
|
|
|
2543
2896
|
this.getOptionalNumber(itemRecord.exitCode) ??
|
|
2544
2897
|
undefined,
|
|
2545
2898
|
status: this.normalizeStatus(itemRecord.status),
|
|
2899
|
+
...(commandActions ? { commandActions } : {}),
|
|
2546
2900
|
};
|
|
2547
2901
|
}
|
|
2548
2902
|
case "file_change": {
|
|
@@ -2650,6 +3004,18 @@ export class CodexProvider {
|
|
|
2650
3004
|
items,
|
|
2651
3005
|
};
|
|
2652
3006
|
}
|
|
3007
|
+
case "sub_agent_activity": {
|
|
3008
|
+
const kind = this.getOptionalString(itemRecord.kind) ?? "updated";
|
|
3009
|
+
const agentPath = this.getOptionalString(itemRecord.agentPath) ?? "";
|
|
3010
|
+
return {
|
|
3011
|
+
id,
|
|
3012
|
+
type: "subagent_activity",
|
|
3013
|
+
kind,
|
|
3014
|
+
agentThreadId: this.getOptionalString(itemRecord.agentThreadId) ?? "",
|
|
3015
|
+
agentPath,
|
|
3016
|
+
text: this.formatSubagentActivity(kind, agentPath),
|
|
3017
|
+
};
|
|
3018
|
+
}
|
|
2653
3019
|
case "context_compaction":
|
|
2654
3020
|
return { id, type: "context_compaction" };
|
|
2655
3021
|
case "image_view": {
|
|
@@ -2688,6 +3054,19 @@ export class CodexProvider {
|
|
|
2688
3054
|
}
|
|
2689
3055
|
return "";
|
|
2690
3056
|
}
|
|
3057
|
+
formatSubagentActivity(kind, agentPath) {
|
|
3058
|
+
const target = agentPath ? `: ${agentPath}` : "";
|
|
3059
|
+
switch (kind) {
|
|
3060
|
+
case "started":
|
|
3061
|
+
return `Subagent started${target}`;
|
|
3062
|
+
case "interacted":
|
|
3063
|
+
return `Subagent updated${target}`;
|
|
3064
|
+
case "interrupted":
|
|
3065
|
+
return `Subagent interrupted${target}`;
|
|
3066
|
+
default:
|
|
3067
|
+
return `Subagent ${kind}${target}`;
|
|
3068
|
+
}
|
|
3069
|
+
}
|
|
2691
3070
|
normalizeStatus(status) {
|
|
2692
3071
|
if (typeof status !== "string")
|
|
2693
3072
|
return "unknown";
|
|
@@ -2891,8 +3270,17 @@ export class CodexProvider {
|
|
|
2891
3270
|
buildItemMessageUuid(turnId, itemId) {
|
|
2892
3271
|
return `${itemId}-${turnId}`;
|
|
2893
3272
|
}
|
|
2894
|
-
|
|
2895
|
-
|
|
3273
|
+
// Tool items carry Codex's globally-unique call_id as their thread item id,
|
|
3274
|
+
// and the durable rollout persists the same call_id on the matching response
|
|
3275
|
+
// item. Key the rendered uuid on call_id alone (no turn scoping — call_id is
|
|
3276
|
+
// already unique) so the streamed message and its durable backfill row share
|
|
3277
|
+
// a uuid and dedup by id instead of the content+timestamp backstop. See
|
|
3278
|
+
// topics/stream-durable-id-dedup.md (Codex tool calls).
|
|
3279
|
+
buildItemToolUuid(callId) {
|
|
3280
|
+
return callId;
|
|
3281
|
+
}
|
|
3282
|
+
buildItemResultUuid(callId) {
|
|
3283
|
+
return `${callId}-result`;
|
|
2896
3284
|
}
|
|
2897
3285
|
isResultBackedThreadItem(item) {
|
|
2898
3286
|
return (item.type === "command_execution" ||
|
|
@@ -2901,6 +3289,12 @@ export class CodexProvider {
|
|
|
2901
3289
|
item.type === "dynamic_tool_call" ||
|
|
2902
3290
|
item.type === "image_view");
|
|
2903
3291
|
}
|
|
3292
|
+
// Thread items whose rendered uuid keys on call_id (item.id) so the streamed
|
|
3293
|
+
// message matches its durable backfill row. web_search emits a tool_use but is
|
|
3294
|
+
// not result-backed, so it is not covered by isResultBackedThreadItem.
|
|
3295
|
+
isToolBackedThreadItem(item) {
|
|
3296
|
+
return this.isResultBackedThreadItem(item) || item.type === "web_search";
|
|
3297
|
+
}
|
|
2904
3298
|
recordLiveResultBackedToolItem(liveEventState, turnId, itemId) {
|
|
2905
3299
|
const items = liveEventState.resultBackedToolItemsByTurnId.get(turnId) ?? new Set();
|
|
2906
3300
|
items.add(itemId);
|
|
@@ -2977,7 +3371,7 @@ export class CodexProvider {
|
|
|
2977
3371
|
const message = withCodexTimestamp({
|
|
2978
3372
|
type: "user",
|
|
2979
3373
|
session_id: sessionId,
|
|
2980
|
-
uuid: this.buildItemResultUuid(
|
|
3374
|
+
uuid: this.buildItemResultUuid(itemId),
|
|
2981
3375
|
_isStreaming: true,
|
|
2982
3376
|
message: {
|
|
2983
3377
|
role: "user",
|
|
@@ -3030,7 +3424,7 @@ export class CodexProvider {
|
|
|
3030
3424
|
const message = withCodexTimestamp({
|
|
3031
3425
|
type: "assistant",
|
|
3032
3426
|
session_id: sessionId,
|
|
3033
|
-
uuid: this.
|
|
3427
|
+
uuid: this.buildItemToolUuid(callId),
|
|
3034
3428
|
message: {
|
|
3035
3429
|
role: "assistant",
|
|
3036
3430
|
content: [
|
|
@@ -3074,7 +3468,7 @@ export class CodexProvider {
|
|
|
3074
3468
|
const message = withCodexTimestamp({
|
|
3075
3469
|
type: "user",
|
|
3076
3470
|
session_id: sessionId,
|
|
3077
|
-
uuid: this.buildItemResultUuid(
|
|
3471
|
+
uuid: this.buildItemResultUuid(callId),
|
|
3078
3472
|
message: {
|
|
3079
3473
|
role: "user",
|
|
3080
3474
|
content: [toolResult],
|
|
@@ -3110,7 +3504,7 @@ export class CodexProvider {
|
|
|
3110
3504
|
const message = withCodexTimestamp({
|
|
3111
3505
|
type: "assistant",
|
|
3112
3506
|
session_id: sessionId,
|
|
3113
|
-
uuid: this.
|
|
3507
|
+
uuid: this.buildItemToolUuid(callId),
|
|
3114
3508
|
message: {
|
|
3115
3509
|
role: "assistant",
|
|
3116
3510
|
content: [
|
|
@@ -3154,7 +3548,7 @@ export class CodexProvider {
|
|
|
3154
3548
|
const message = withCodexTimestamp({
|
|
3155
3549
|
type: "user",
|
|
3156
3550
|
session_id: sessionId,
|
|
3157
|
-
uuid: this.buildItemResultUuid(
|
|
3551
|
+
uuid: this.buildItemResultUuid(callId),
|
|
3158
3552
|
message: {
|
|
3159
3553
|
role: "user",
|
|
3160
3554
|
content: [toolResult],
|
|
@@ -3200,8 +3594,12 @@ export class CodexProvider {
|
|
|
3200
3594
|
convertItemToSDKMessages(item, sessionId, turnId, sourceEvent) {
|
|
3201
3595
|
const isComplete = sourceEvent === "item/completed";
|
|
3202
3596
|
const observedAt = new Date().toISOString();
|
|
3203
|
-
//
|
|
3204
|
-
|
|
3597
|
+
// Tool items key the uuid on call_id (item.id) so stream and durable rows
|
|
3598
|
+
// dedup by id; message/reasoning items use a counter id (item-N) with no
|
|
3599
|
+
// durable equivalent, so they stay turn-scoped and rely on the backstop.
|
|
3600
|
+
const uuid = this.isToolBackedThreadItem(item)
|
|
3601
|
+
? this.buildItemToolUuid(item.id)
|
|
3602
|
+
: `${item.id}-${turnId}`;
|
|
3205
3603
|
switch (item.type) {
|
|
3206
3604
|
case "reasoning": {
|
|
3207
3605
|
const message = withCodexTimestamp({
|
|
@@ -3248,9 +3646,10 @@ export class CodexProvider {
|
|
|
3248
3646
|
}
|
|
3249
3647
|
case "command_execution": {
|
|
3250
3648
|
const messages = [];
|
|
3251
|
-
const normalizedInvocation =
|
|
3252
|
-
|
|
3253
|
-
|
|
3649
|
+
const normalizedInvocation = normalizeCodexCommandActionInvocation(item.command, item.commandActions) ??
|
|
3650
|
+
normalizeCodexToolInvocation("Bash", {
|
|
3651
|
+
command: item.command,
|
|
3652
|
+
});
|
|
3254
3653
|
const toolContext = {
|
|
3255
3654
|
toolName: normalizedInvocation.toolName,
|
|
3256
3655
|
input: normalizedInvocation.input,
|
|
@@ -3566,6 +3965,26 @@ export class CodexProvider {
|
|
|
3566
3965
|
});
|
|
3567
3966
|
return [message];
|
|
3568
3967
|
}
|
|
3968
|
+
case "subagent_activity": {
|
|
3969
|
+
const message = withCodexTimestamp({
|
|
3970
|
+
type: "system",
|
|
3971
|
+
subtype: "subagent_activity",
|
|
3972
|
+
session_id: sessionId,
|
|
3973
|
+
uuid,
|
|
3974
|
+
content: item.text,
|
|
3975
|
+
codexSubagentKind: item.kind,
|
|
3976
|
+
codexSubagentThreadId: item.agentThreadId,
|
|
3977
|
+
codexSubagentPath: item.agentPath,
|
|
3978
|
+
}, observedAt);
|
|
3979
|
+
logSdkCorrelationDebug(sessionId, message, {
|
|
3980
|
+
eventKind: "subagent_activity",
|
|
3981
|
+
turnId,
|
|
3982
|
+
itemId: item.id,
|
|
3983
|
+
phase: isComplete ? "completed" : "started",
|
|
3984
|
+
sourceEvent,
|
|
3985
|
+
});
|
|
3986
|
+
return [message];
|
|
3987
|
+
}
|
|
3569
3988
|
case "context_compaction": {
|
|
3570
3989
|
const message = withCodexTimestamp({
|
|
3571
3990
|
type: "system",
|
|
@@ -3690,6 +4109,7 @@ export class CodexProvider {
|
|
|
3690
4109
|
case "acceptEdits":
|
|
3691
4110
|
case "plan":
|
|
3692
4111
|
case "bypassPermissions":
|
|
4112
|
+
case "auto":
|
|
3693
4113
|
return mode;
|
|
3694
4114
|
default:
|
|
3695
4115
|
return undefined;
|