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
|
@@ -1,14 +1,26 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { readFile, readdir, stat } from "node:fs/promises";
|
|
3
|
-
import { homedir } from "node:os";
|
|
1
|
+
import { spawn } from "node:child_process";
|
|
2
|
+
import { open, readFile, readdir, stat, unlink, } from "node:fs/promises";
|
|
3
|
+
import { homedir, tmpdir } from "node:os";
|
|
4
4
|
import { join } from "node:path";
|
|
5
5
|
import { getModelContextWindow, truncateSessionTitle, } from "../../bundled/@yep-anywhere/shared/dist/index.js";
|
|
6
|
+
import { OpenCodeDbReader, } from "./opencode-db-reader.js";
|
|
6
7
|
/** Default OpenCode storage directory */
|
|
7
8
|
export const OPENCODE_STORAGE_DIR = join(homedir(), ".local", "share", "opencode", "storage");
|
|
8
9
|
const OPENCODE_DATA_DIR = process.env.XDG_DATA_HOME ?? join(homedir(), ".local", "share");
|
|
9
10
|
export const OPENCODE_DB_PATH = join(OPENCODE_DATA_DIR, "opencode", "opencode.db");
|
|
10
11
|
const OPENCODE_CLI_TIMEOUT_MS = 10_000;
|
|
11
12
|
const OPENCODE_CLI_MAX_SESSIONS = 200;
|
|
13
|
+
// `opencode session list` output is global (not scoped to the spawn cwd), so
|
|
14
|
+
// one spawn can serve every project's reader. Index validations for several
|
|
15
|
+
// legacy (pre-1.16, no-DB) projects land in one burst; without sharing, each
|
|
16
|
+
// scope paid its own 1-2s subprocess. TTL only bounds staleness between
|
|
17
|
+
// bursts — the periodic index revalidation re-runs it anyway.
|
|
18
|
+
const OPENCODE_CLI_LIST_CACHE_TTL_MS = 10_000;
|
|
19
|
+
// Shared across reader instances (one per project): the CLI list output is
|
|
20
|
+
// global, so any project's spawn serves them all. Keyed by the opencode
|
|
21
|
+
// binary path; holds the in-flight promise so concurrent validations
|
|
22
|
+
// coalesce onto one subprocess.
|
|
23
|
+
const cliSessionListCache = new Map();
|
|
12
24
|
// Use OpenCodeMessage and OpenCodeStoredPart types from shared
|
|
13
25
|
/**
|
|
14
26
|
* Find the OpenCode project ID for a given project path by scanning project files.
|
|
@@ -58,11 +70,13 @@ export class OpenCodeSessionReader {
|
|
|
58
70
|
opencodePath;
|
|
59
71
|
projectPath;
|
|
60
72
|
openCodeProjectIdCache = undefined;
|
|
73
|
+
dbReader;
|
|
61
74
|
constructor(options) {
|
|
62
75
|
this.storageDir = options.storageDir ?? OPENCODE_STORAGE_DIR;
|
|
63
76
|
this.databasePath = options.databasePath ?? OPENCODE_DB_PATH;
|
|
64
77
|
this.opencodePath = options.opencodePath ?? "opencode";
|
|
65
78
|
this.projectPath = options.projectPath;
|
|
79
|
+
this.dbReader = new OpenCodeDbReader(this.databasePath);
|
|
66
80
|
}
|
|
67
81
|
/**
|
|
68
82
|
* Get the OpenCode project ID, looking it up lazily from storage.
|
|
@@ -78,25 +92,43 @@ export class OpenCodeSessionReader {
|
|
|
78
92
|
async listSessions(projectId) {
|
|
79
93
|
const summaries = [];
|
|
80
94
|
const seen = new Set();
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
95
|
+
// OpenCode 1.16+: the DB is authoritative and the CLI `session list` reads
|
|
96
|
+
// the same store, so when the DB has this project we enumerate from it and
|
|
97
|
+
// skip the subprocess. The CLI stays a legacy fallback for pre-1.16 / no-DB.
|
|
98
|
+
const dbProjectId = await this.dbReader.getProjectId(this.projectPath);
|
|
99
|
+
if (dbProjectId) {
|
|
100
|
+
for (const summary of await this.listDbSessions(projectId)) {
|
|
101
|
+
summaries.push(summary);
|
|
102
|
+
seen.add(summary.id);
|
|
103
|
+
}
|
|
84
104
|
}
|
|
85
|
-
for (const summary of await this.
|
|
105
|
+
for (const summary of await this.listFileSessions(projectId)) {
|
|
86
106
|
if (seen.has(summary.id))
|
|
87
107
|
continue;
|
|
88
108
|
summaries.push(summary);
|
|
89
109
|
seen.add(summary.id);
|
|
90
110
|
}
|
|
111
|
+
if (!dbProjectId) {
|
|
112
|
+
for (const summary of await this.listCliSessions(projectId)) {
|
|
113
|
+
if (seen.has(summary.id))
|
|
114
|
+
continue;
|
|
115
|
+
summaries.push(summary);
|
|
116
|
+
seen.add(summary.id);
|
|
117
|
+
}
|
|
118
|
+
}
|
|
91
119
|
// Sort by updatedAt descending
|
|
92
120
|
summaries.sort((a, b) => new Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime());
|
|
93
121
|
return summaries;
|
|
94
122
|
}
|
|
95
123
|
async getSessionSummary(sessionId, projectId) {
|
|
96
|
-
return ((await this.
|
|
124
|
+
return ((await this.getDbSessionSummary(sessionId, projectId)) ??
|
|
125
|
+
(await this.getFileSessionSummary(sessionId, projectId)) ??
|
|
97
126
|
(await this.getCliSessionSummary(sessionId, projectId)));
|
|
98
127
|
}
|
|
99
128
|
async getSession(sessionId, projectId, afterMessageId, _options) {
|
|
129
|
+
const fromDb = await this.loadDbSession(sessionId, projectId, afterMessageId);
|
|
130
|
+
if (fromDb)
|
|
131
|
+
return fromDb;
|
|
100
132
|
const fileSummary = await this.getFileSessionSummary(sessionId, projectId);
|
|
101
133
|
if (fileSummary) {
|
|
102
134
|
const messages = await this.loadSessionMessages(sessionId, afterMessageId);
|
|
@@ -130,11 +162,31 @@ export class OpenCodeSessionReader {
|
|
|
130
162
|
};
|
|
131
163
|
}
|
|
132
164
|
async getSessionSummaryIfChanged(sessionId, projectId, cachedMtime, cachedSize) {
|
|
165
|
+
const dbChanged = await this.getDbSessionSummaryIfChanged(sessionId, projectId, cachedMtime, cachedSize);
|
|
166
|
+
if (dbChanged === "unchanged") {
|
|
167
|
+
// The session exists in the DB and its row matches the cache. Without
|
|
168
|
+
// this terminal, an unchanged DB session fell through to the file-tree
|
|
169
|
+
// check (no json file for DB sessions) and then a per-session CLI
|
|
170
|
+
// spawn — on every index validation.
|
|
171
|
+
return null;
|
|
172
|
+
}
|
|
173
|
+
if (dbChanged) {
|
|
174
|
+
return dbChanged;
|
|
175
|
+
}
|
|
133
176
|
const fileChanged = await this.getFileSessionSummaryIfChanged(sessionId, projectId, cachedMtime, cachedSize);
|
|
134
177
|
if (fileChanged) {
|
|
135
178
|
return fileChanged;
|
|
136
179
|
}
|
|
137
|
-
|
|
180
|
+
// Legacy CLI sessions: probe freshness from the (shared, cached) session
|
|
181
|
+
// list rather than a per-session `opencode export` spawn — the list row's
|
|
182
|
+
// updated-time is the same signal at 1/Nth the subprocesses. The stored
|
|
183
|
+
// summary matches what listCliSessions builds from the same row.
|
|
184
|
+
const cliSessions = await this.loadCliSessionList();
|
|
185
|
+
const cliRow = cliSessions.find((session) => this.stringField(session.id) === sessionId &&
|
|
186
|
+
this.cliListSessionBelongsToProject(session));
|
|
187
|
+
if (!cliRow)
|
|
188
|
+
return null;
|
|
189
|
+
const summary = this.summaryFromCliListSession(cliRow, projectId);
|
|
138
190
|
if (!summary)
|
|
139
191
|
return null;
|
|
140
192
|
const mtime = Date.parse(summary.updatedAt);
|
|
@@ -148,20 +200,78 @@ export class OpenCodeSessionReader {
|
|
|
148
200
|
return this.databasePath;
|
|
149
201
|
}
|
|
150
202
|
async listSessionFiles(_sessionDir, options) {
|
|
151
|
-
const
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
163
|
-
|
|
164
|
-
|
|
203
|
+
const out = [];
|
|
204
|
+
const seen = new Set();
|
|
205
|
+
// DB sessions (OpenCode 1.16+) are the primary durable source. Enumerate
|
|
206
|
+
// them straight from the `session` table rather than the CLI `session list`,
|
|
207
|
+
// using the db path as the index anchor (the index then stats nothing
|
|
208
|
+
// per-session; change detection runs through getSessionSummaryIfChanged,
|
|
209
|
+
// which compares the row's time_updated + message count).
|
|
210
|
+
const dbProjectId = await this.dbReader.getProjectId(this.projectPath);
|
|
211
|
+
if (dbProjectId) {
|
|
212
|
+
for (const { id, timeUpdated } of await this.dbReader.listSessionRows(dbProjectId)) {
|
|
213
|
+
if (seen.has(id))
|
|
214
|
+
continue;
|
|
215
|
+
if (options?.activeAfterMs !== undefined &&
|
|
216
|
+
timeUpdated < options.activeAfterMs) {
|
|
217
|
+
continue;
|
|
218
|
+
}
|
|
219
|
+
out.push({
|
|
220
|
+
sessionId: id,
|
|
221
|
+
filePath: this.databasePath,
|
|
222
|
+
sharedFilePath: true,
|
|
223
|
+
});
|
|
224
|
+
seen.add(id);
|
|
225
|
+
}
|
|
226
|
+
}
|
|
227
|
+
// File-storage sessions: storage/session/{openCodeProjectId}/*.json.
|
|
228
|
+
// These are the bulk of OpenCode sessions. The session index enumerates via
|
|
229
|
+
// this method (not listSessions), so omitting file sessions here meant they
|
|
230
|
+
// never appeared in project listings even though listSessions returns them.
|
|
231
|
+
// Use the session json path as filePath so the index gets per-session mtime.
|
|
232
|
+
const openCodeProjectId = await this.getOpenCodeProjectId();
|
|
233
|
+
if (openCodeProjectId) {
|
|
234
|
+
const sessionDir = join(this.storageDir, "session", openCodeProjectId);
|
|
235
|
+
try {
|
|
236
|
+
for (const file of await readdir(sessionDir)) {
|
|
237
|
+
if (!file.endsWith(".json"))
|
|
238
|
+
continue;
|
|
239
|
+
const sessionId = file.replace(".json", "");
|
|
240
|
+
out.push({ sessionId, filePath: join(sessionDir, file) });
|
|
241
|
+
seen.add(sessionId);
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
catch {
|
|
245
|
+
// Session dir missing/unreadable — fall through to CLI sessions.
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
// CLI-listed sessions: legacy fallback only. With a 1.16+ DB present the
|
|
249
|
+
// CLI `session list` reads the same store, so enumerating it would just
|
|
250
|
+
// re-spawn the subprocess for rows the DB already returned. Run it only when
|
|
251
|
+
// the DB has no project for this worktree (pre-1.16 / no DB).
|
|
252
|
+
if (!dbProjectId) {
|
|
253
|
+
const cliSessions = await this.loadCliSessionList();
|
|
254
|
+
for (const session of cliSessions) {
|
|
255
|
+
if (!this.cliListSessionBelongsToProject(session))
|
|
256
|
+
continue;
|
|
257
|
+
const sessionId = String(session.id);
|
|
258
|
+
if (seen.has(sessionId))
|
|
259
|
+
continue;
|
|
260
|
+
if (options?.activeAfterMs !== undefined) {
|
|
261
|
+
const updatedAt = this.numberField(session.updated);
|
|
262
|
+
if (updatedAt !== undefined && updatedAt < options.activeAfterMs) {
|
|
263
|
+
continue;
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
out.push({
|
|
267
|
+
sessionId,
|
|
268
|
+
filePath: this.databasePath,
|
|
269
|
+
sharedFilePath: true,
|
|
270
|
+
});
|
|
271
|
+
seen.add(sessionId);
|
|
272
|
+
}
|
|
273
|
+
}
|
|
274
|
+
return out;
|
|
165
275
|
}
|
|
166
276
|
getIndexScopeKey(_sessionDir) {
|
|
167
277
|
return `opencode::${this.projectPath}`;
|
|
@@ -218,9 +328,12 @@ export class OpenCodeSessionReader {
|
|
|
218
328
|
try {
|
|
219
329
|
const msgContent = await readFile(msgPath, "utf-8");
|
|
220
330
|
const msg = JSON.parse(msgContent);
|
|
221
|
-
//
|
|
222
|
-
|
|
223
|
-
|
|
331
|
+
// Track the latest assistant model (a session's model can
|
|
332
|
+
// change mid-transcript); files iterate in chronological order.
|
|
333
|
+
if (msg.role === "assistant" && msg.modelID) {
|
|
334
|
+
model =
|
|
335
|
+
this.canonicalModelId(msg.providerID, msg.modelID) ??
|
|
336
|
+
msg.modelID;
|
|
224
337
|
}
|
|
225
338
|
// Get first user message text
|
|
226
339
|
if (!firstUserMessageText && msg.role === "user") {
|
|
@@ -295,6 +408,121 @@ export class OpenCodeSessionReader {
|
|
|
295
408
|
return null;
|
|
296
409
|
}
|
|
297
410
|
}
|
|
411
|
+
/**
|
|
412
|
+
* Load a session straight from `opencode.db` — the authoritative durable
|
|
413
|
+
* source for OpenCode 1.16+ and the only one that does not spawn a subprocess
|
|
414
|
+
* or depend on the (frozen) JSON file tree. Returns null when the DB is
|
|
415
|
+
* absent, the session is not in this project, or sqlite is unavailable
|
|
416
|
+
* (Node < 22.5), so callers fall through to the file-tree and CLI-export
|
|
417
|
+
* readers. The summary always reflects the whole session even when
|
|
418
|
+
* `afterMessageId` pages the returned messages.
|
|
419
|
+
*/
|
|
420
|
+
async loadDbSession(sessionId, projectId, afterMessageId) {
|
|
421
|
+
const projectIdHash = await this.dbReader.getProjectId(this.projectPath);
|
|
422
|
+
if (!projectIdHash)
|
|
423
|
+
return null;
|
|
424
|
+
const row = await this.dbReader.getSessionRow(sessionId, projectIdHash);
|
|
425
|
+
// Skip empty sessions (0 messages) so an unstarted session falls through to
|
|
426
|
+
// the same null the file path returns, rather than rendering blank.
|
|
427
|
+
if (!row || row.messageCount === 0)
|
|
428
|
+
return null;
|
|
429
|
+
const entries = await this.dbReader.loadEntries(sessionId, afterMessageId);
|
|
430
|
+
if (entries === null)
|
|
431
|
+
return null;
|
|
432
|
+
const summary = await this.buildDbSummary(row, projectId);
|
|
433
|
+
return {
|
|
434
|
+
summary,
|
|
435
|
+
data: {
|
|
436
|
+
provider: "opencode",
|
|
437
|
+
session: { messages: entries },
|
|
438
|
+
},
|
|
439
|
+
};
|
|
440
|
+
}
|
|
441
|
+
async getDbSessionSummary(sessionId, projectId) {
|
|
442
|
+
const projectIdHash = await this.dbReader.getProjectId(this.projectPath);
|
|
443
|
+
if (!projectIdHash)
|
|
444
|
+
return null;
|
|
445
|
+
const row = await this.dbReader.getSessionRow(sessionId, projectIdHash);
|
|
446
|
+
if (!row || row.messageCount === 0)
|
|
447
|
+
return null;
|
|
448
|
+
return this.buildDbSummary(row, projectId);
|
|
449
|
+
}
|
|
450
|
+
/**
|
|
451
|
+
* Change detection for DB sessions. Unlike the file path (which stats one
|
|
452
|
+
* per-session JSON file), every DB session shares a single `opencode.db`, so
|
|
453
|
+
* the db-file mtime over-triggers. Compare the session row's `time_updated`
|
|
454
|
+
* and message count instead — carried as the index's (mtime, size) pair, the
|
|
455
|
+
* same convention the CLI fallback uses.
|
|
456
|
+
*/
|
|
457
|
+
/**
|
|
458
|
+
* DB-row change check. Returns "unchanged" as a terminal answer (the
|
|
459
|
+
* session is in the DB and needs no re-summarize), a changed summary, or
|
|
460
|
+
* null only when the DB cannot answer for this session at all — only then
|
|
461
|
+
* may callers fall through to the file-tree / CLI readers.
|
|
462
|
+
*/
|
|
463
|
+
async getDbSessionSummaryIfChanged(sessionId, projectId, cachedMtime, cachedSize) {
|
|
464
|
+
const projectIdHash = await this.dbReader.getProjectId(this.projectPath);
|
|
465
|
+
if (!projectIdHash)
|
|
466
|
+
return null;
|
|
467
|
+
const meta = await this.dbReader.getSessionMeta(sessionId, projectIdHash);
|
|
468
|
+
if (!meta)
|
|
469
|
+
return null;
|
|
470
|
+
// An empty DB session summarizes to nothing; treat it as unchanged
|
|
471
|
+
// rather than "not in the DB" so it never triggers the CLI fallback.
|
|
472
|
+
if (meta.messageCount === 0)
|
|
473
|
+
return "unchanged";
|
|
474
|
+
if (meta.timeUpdated === cachedMtime && meta.messageCount === cachedSize) {
|
|
475
|
+
return "unchanged";
|
|
476
|
+
}
|
|
477
|
+
const summary = await this.getDbSessionSummary(sessionId, projectId);
|
|
478
|
+
// The row exists but yielded no summary (e.g. deleted mid-read): the DB
|
|
479
|
+
// is still authoritative for this session, so stay terminal.
|
|
480
|
+
if (!summary)
|
|
481
|
+
return "unchanged";
|
|
482
|
+
return { summary, mtime: meta.timeUpdated, size: meta.messageCount };
|
|
483
|
+
}
|
|
484
|
+
/**
|
|
485
|
+
* Build a SessionSummary from a DB session row plus cheap targeted lookups
|
|
486
|
+
* (first user text for the title fallback; last assistant tokens for context
|
|
487
|
+
* usage), so a summary never loads the full part list.
|
|
488
|
+
*/
|
|
489
|
+
async buildDbSummary(row, projectId) {
|
|
490
|
+
const model = this.canonicalModelId(row.model?.providerID, row.model?.id ?? row.model?.modelID);
|
|
491
|
+
const dbTitle = row.title?.trim() || null;
|
|
492
|
+
const firstUserText = !dbTitle || dbTitle === "Yep Anywhere Session"
|
|
493
|
+
? await this.dbReader.loadFirstUserText(row.id)
|
|
494
|
+
: null;
|
|
495
|
+
const fullTitle = dbTitle && dbTitle !== "Yep Anywhere Session"
|
|
496
|
+
? dbTitle
|
|
497
|
+
: (firstUserText ?? dbTitle);
|
|
498
|
+
const tokens = await this.dbReader.loadLastAssistantTokens(row.id);
|
|
499
|
+
return {
|
|
500
|
+
id: row.id,
|
|
501
|
+
projectId,
|
|
502
|
+
title: this.truncateTitle(fullTitle),
|
|
503
|
+
fullTitle,
|
|
504
|
+
createdAt: this.dateFromMillis(row.timeCreated ?? undefined),
|
|
505
|
+
updatedAt: this.dateFromMillis(row.timeUpdated ?? undefined),
|
|
506
|
+
messageCount: row.messageCount,
|
|
507
|
+
ownership: { owner: "none" },
|
|
508
|
+
contextUsage: this.contextUsageFromTokens(tokens ?? undefined, model),
|
|
509
|
+
provider: "opencode",
|
|
510
|
+
model,
|
|
511
|
+
};
|
|
512
|
+
}
|
|
513
|
+
async listDbSessions(projectId) {
|
|
514
|
+
const projectIdHash = await this.dbReader.getProjectId(this.projectPath);
|
|
515
|
+
if (!projectIdHash)
|
|
516
|
+
return [];
|
|
517
|
+
const rows = await this.dbReader.listSessionRows(projectIdHash);
|
|
518
|
+
const summaries = [];
|
|
519
|
+
for (const { id } of rows) {
|
|
520
|
+
const summary = await this.getDbSessionSummary(id, projectId);
|
|
521
|
+
if (summary)
|
|
522
|
+
summaries.push(summary);
|
|
523
|
+
}
|
|
524
|
+
return summaries;
|
|
525
|
+
}
|
|
298
526
|
async listCliSessions(projectId) {
|
|
299
527
|
const sessions = await this.loadCliSessionList();
|
|
300
528
|
const summaries = [];
|
|
@@ -317,6 +545,18 @@ export class OpenCodeSessionReader {
|
|
|
317
545
|
return this.summaryFromExport(exported, entries, projectId);
|
|
318
546
|
}
|
|
319
547
|
async loadCliSessionList() {
|
|
548
|
+
const cached = cliSessionListCache.get(this.opencodePath);
|
|
549
|
+
if (cached && Date.now() - cached.atMs < OPENCODE_CLI_LIST_CACHE_TTL_MS) {
|
|
550
|
+
return cached.promise;
|
|
551
|
+
}
|
|
552
|
+
const promise = this.spawnCliSessionList();
|
|
553
|
+
cliSessionListCache.set(this.opencodePath, {
|
|
554
|
+
atMs: Date.now(),
|
|
555
|
+
promise,
|
|
556
|
+
});
|
|
557
|
+
return promise;
|
|
558
|
+
}
|
|
559
|
+
async spawnCliSessionList() {
|
|
320
560
|
const output = await this.runOpenCodeCli([
|
|
321
561
|
"session",
|
|
322
562
|
"list",
|
|
@@ -347,21 +587,58 @@ export class OpenCodeSessionReader {
|
|
|
347
587
|
return parsed;
|
|
348
588
|
}
|
|
349
589
|
async runOpenCodeCli(args) {
|
|
350
|
-
|
|
351
|
-
|
|
352
|
-
|
|
353
|
-
|
|
354
|
-
|
|
355
|
-
|
|
356
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
590
|
+
// Capture stdout into a real file fd, not a pipe. `opencode` is a Bun
|
|
591
|
+
// binary that drops buffered piped stdout on process.exit() once it
|
|
592
|
+
// exceeds the kernel pipe buffer, so large `export` JSON was truncated
|
|
593
|
+
// mid-string (execFile) and failed to parse — blanking session reload.
|
|
594
|
+
// A regular file fd is lossless. See topics/opencode-backend.md
|
|
595
|
+
// "Durable Storage Format".
|
|
596
|
+
const tmpFile = join(tmpdir(), `ya-opencode-${process.pid}-${Date.now()}-${Math.random()
|
|
597
|
+
.toString(36)
|
|
598
|
+
.slice(2)}.json`);
|
|
599
|
+
let handle;
|
|
600
|
+
try {
|
|
601
|
+
handle = await open(tmpFile, "w");
|
|
602
|
+
}
|
|
603
|
+
catch {
|
|
604
|
+
return null;
|
|
605
|
+
}
|
|
606
|
+
try {
|
|
607
|
+
const fd = handle.fd;
|
|
608
|
+
const exitedOk = await new Promise((resolve) => {
|
|
609
|
+
const child = spawn(this.opencodePath, args, {
|
|
610
|
+
cwd: this.projectPath,
|
|
611
|
+
stdio: ["ignore", fd, "ignore"],
|
|
612
|
+
windowsHide: true,
|
|
613
|
+
});
|
|
614
|
+
const timer = setTimeout(() => {
|
|
615
|
+
child.kill("SIGKILL");
|
|
616
|
+
resolve(false);
|
|
617
|
+
}, OPENCODE_CLI_TIMEOUT_MS);
|
|
618
|
+
child.on("error", () => {
|
|
619
|
+
clearTimeout(timer);
|
|
620
|
+
resolve(false);
|
|
621
|
+
});
|
|
622
|
+
child.on("close", (code) => {
|
|
623
|
+
clearTimeout(timer);
|
|
624
|
+
resolve(code === 0);
|
|
625
|
+
});
|
|
363
626
|
});
|
|
364
|
-
|
|
627
|
+
await handle.close();
|
|
628
|
+
handle = undefined;
|
|
629
|
+
if (!exitedOk)
|
|
630
|
+
return null;
|
|
631
|
+
return await readFile(tmpFile, "utf8");
|
|
632
|
+
}
|
|
633
|
+
catch {
|
|
634
|
+
return null;
|
|
635
|
+
}
|
|
636
|
+
finally {
|
|
637
|
+
if (handle) {
|
|
638
|
+
await handle.close().catch(() => { });
|
|
639
|
+
}
|
|
640
|
+
await unlink(tmpFile).catch(() => { });
|
|
641
|
+
}
|
|
365
642
|
}
|
|
366
643
|
parseJsonOutput(output) {
|
|
367
644
|
const trimmed = output.trim();
|
|
@@ -387,9 +664,7 @@ export class OpenCodeSessionReader {
|
|
|
387
664
|
return !directory || directory === this.projectPath;
|
|
388
665
|
}
|
|
389
666
|
exportMessagesToEntries(exported, afterMessageId) {
|
|
390
|
-
const messages = Array.isArray(exported.messages)
|
|
391
|
-
? exported.messages
|
|
392
|
-
: [];
|
|
667
|
+
const messages = Array.isArray(exported.messages) ? exported.messages : [];
|
|
393
668
|
const entries = [];
|
|
394
669
|
let foundAfterMessage = !afterMessageId;
|
|
395
670
|
for (const exportedMessage of messages) {
|
|
@@ -511,48 +786,77 @@ export class OpenCodeSessionReader {
|
|
|
511
786
|
}
|
|
512
787
|
if (model && typeof model === "object" && !Array.isArray(model)) {
|
|
513
788
|
const raw = model;
|
|
514
|
-
const
|
|
515
|
-
if (
|
|
516
|
-
return
|
|
789
|
+
const canonical = this.canonicalModelId(raw.providerID, this.stringField(raw.id) ?? this.stringField(raw.modelID));
|
|
790
|
+
if (canonical)
|
|
791
|
+
return canonical;
|
|
517
792
|
}
|
|
518
793
|
for (const entry of entries) {
|
|
519
794
|
if (entry.message.role !== "assistant")
|
|
520
795
|
continue;
|
|
521
|
-
const
|
|
522
|
-
|
|
523
|
-
|
|
524
|
-
|
|
525
|
-
|
|
526
|
-
|
|
527
|
-
if (
|
|
528
|
-
return
|
|
796
|
+
const nested = entry.message.model &&
|
|
797
|
+
typeof entry.message.model === "object" &&
|
|
798
|
+
!Array.isArray(entry.message.model)
|
|
799
|
+
? entry.message.model
|
|
800
|
+
: undefined;
|
|
801
|
+
const canonical = this.canonicalModelId(entry.message.providerID ?? nested?.providerID, entry.message.modelID ?? this.stringField(nested?.modelID));
|
|
802
|
+
if (canonical)
|
|
803
|
+
return canonical;
|
|
529
804
|
}
|
|
530
805
|
return undefined;
|
|
531
806
|
}
|
|
807
|
+
/**
|
|
808
|
+
* Canonical OpenCode model id as `providerID/modelID` — the form
|
|
809
|
+
* `opencode models` prints and `parseOpenCodeModelSelection` requires.
|
|
810
|
+
* A reload must not drop the provider prefix, or the next turn fails with
|
|
811
|
+
* `OpenCode model must use provider/model format`. modelID may itself
|
|
812
|
+
* contain slashes (e.g. `local-glm/Qwen/Qwen3.6-27B`); only the first
|
|
813
|
+
* slash separates provider from model, so a present prefix is preserved.
|
|
814
|
+
*/
|
|
815
|
+
canonicalModelId(providerID, modelID) {
|
|
816
|
+
const mid = this.stringField(modelID);
|
|
817
|
+
if (!mid)
|
|
818
|
+
return undefined;
|
|
819
|
+
const pid = this.stringField(providerID);
|
|
820
|
+
if (!pid || mid.startsWith(`${pid}/`))
|
|
821
|
+
return mid;
|
|
822
|
+
return `${pid}/${mid}`;
|
|
823
|
+
}
|
|
532
824
|
extractContextUsageFromEntries(entries, model) {
|
|
533
|
-
const contextWindowSize = getModelContextWindow(model);
|
|
534
825
|
for (const entry of [...entries].reverse()) {
|
|
535
826
|
const msg = entry.message;
|
|
536
|
-
if (msg.role !== "assistant"
|
|
827
|
+
if (msg.role !== "assistant")
|
|
537
828
|
continue;
|
|
538
|
-
const
|
|
539
|
-
if (
|
|
540
|
-
|
|
541
|
-
const result = {
|
|
542
|
-
inputTokens,
|
|
543
|
-
percentage: Math.round((inputTokens / contextWindowSize) * 100),
|
|
544
|
-
contextWindow: contextWindowSize,
|
|
545
|
-
};
|
|
546
|
-
if (msg.tokens.output !== undefined && msg.tokens.output > 0) {
|
|
547
|
-
result.outputTokens = msg.tokens.output;
|
|
548
|
-
}
|
|
549
|
-
if (msg.tokens.cache?.read !== undefined && msg.tokens.cache.read > 0) {
|
|
550
|
-
result.cacheReadTokens = msg.tokens.cache.read;
|
|
551
|
-
}
|
|
552
|
-
return result;
|
|
829
|
+
const usage = this.contextUsageFromTokens(msg.tokens, model);
|
|
830
|
+
if (usage)
|
|
831
|
+
return usage;
|
|
553
832
|
}
|
|
554
833
|
return undefined;
|
|
555
834
|
}
|
|
835
|
+
/**
|
|
836
|
+
* Context-window fill from an assistant message's token counts — input plus
|
|
837
|
+
* cache-read represents the prompt size carried into the next turn. Shared by
|
|
838
|
+
* the entries scan (file/export paths) and the DB path's last-assistant probe.
|
|
839
|
+
*/
|
|
840
|
+
contextUsageFromTokens(tokens, model) {
|
|
841
|
+
if (!tokens)
|
|
842
|
+
return undefined;
|
|
843
|
+
const inputTokens = (tokens.input ?? 0) + (tokens.cache?.read ?? 0);
|
|
844
|
+
if (inputTokens === 0)
|
|
845
|
+
return undefined;
|
|
846
|
+
const contextWindowSize = getModelContextWindow(model);
|
|
847
|
+
const result = {
|
|
848
|
+
inputTokens,
|
|
849
|
+
percentage: Math.round((inputTokens / contextWindowSize) * 100),
|
|
850
|
+
contextWindow: contextWindowSize,
|
|
851
|
+
};
|
|
852
|
+
if (tokens.output !== undefined && tokens.output > 0) {
|
|
853
|
+
result.outputTokens = tokens.output;
|
|
854
|
+
}
|
|
855
|
+
if (tokens.cache?.read !== undefined && tokens.cache.read > 0) {
|
|
856
|
+
result.cacheReadTokens = tokens.cache.read;
|
|
857
|
+
}
|
|
858
|
+
return result;
|
|
859
|
+
}
|
|
556
860
|
stringField(value) {
|
|
557
861
|
return typeof value === "string" && value.trim() ? value : undefined;
|
|
558
862
|
}
|