yepanywhere 0.1.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/bundled/@yep-anywhere/shared/dist/app-types.d.ts +229 -0
- package/bundled/@yep-anywhere/shared/dist/app-types.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/app-types.js +46 -0
- package/bundled/@yep-anywhere/shared/dist/app-types.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/DocumentContentSchema.d.ts +16 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/DocumentContentSchema.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/DocumentContentSchema.js +17 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/DocumentContentSchema.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/ImageContentSchema.d.ts +15 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/ImageContentSchema.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/ImageContentSchema.js +10 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/ImageContentSchema.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/TextContentSchema.d.ts +6 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/TextContentSchema.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/TextContentSchema.js +6 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/TextContentSchema.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/ThinkingContentSchema.d.ts +7 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/ThinkingContentSchema.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/ThinkingContentSchema.js +7 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/ThinkingContentSchema.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/ToolResultContentSchema.d.ts +24 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/ToolResultContentSchema.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/ToolResultContentSchema.js +13 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/ToolResultContentSchema.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/ToolUseContentSchema.d.ts +8 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/ToolUseContentSchema.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/ToolUseContentSchema.js +8 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/content/ToolUseContentSchema.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/AssistantEntrySchema.d.ts +78 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/AssistantEntrySchema.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/AssistantEntrySchema.js +13 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/AssistantEntrySchema.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/BaseEntrySchema.d.ts +18 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/BaseEntrySchema.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/BaseEntrySchema.js +19 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/BaseEntrySchema.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/FileHistorySnapshotEntrySchema.d.ts +13 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/FileHistorySnapshotEntrySchema.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/FileHistorySnapshotEntrySchema.js +14 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/FileHistorySnapshotEntrySchema.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/QueueOperationEntrySchema.d.ts +68 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/QueueOperationEntrySchema.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/QueueOperationEntrySchema.js +37 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/QueueOperationEntrySchema.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/SummaryEntrySchema.d.ts +8 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/SummaryEntrySchema.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/SummaryEntrySchema.js +7 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/SummaryEntrySchema.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/SystemEntrySchema.d.ts +52 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/SystemEntrySchema.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/SystemEntrySchema.js +29 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/SystemEntrySchema.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/UserEntrySchema.d.ts +72 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/UserEntrySchema.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/UserEntrySchema.js +10 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/UserEntrySchema.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/normalizeQueueOperationContent.d.ts +14 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/normalizeQueueOperationContent.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/normalizeQueueOperationContent.js +39 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/entry/normalizeQueueOperationContent.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/guards.d.ts +15 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/guards.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/guards.js +26 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/guards.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/index.d.ts +566 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/index.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/index.js +39 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/index.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/message/AssistantMessageSchema.d.ts +93 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/message/AssistantMessageSchema.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/message/AssistantMessageSchema.js +40 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/message/AssistantMessageSchema.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/message/UserMessageSchema.d.ts +105 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/message/UserMessageSchema.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/message/UserMessageSchema.js +20 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/message/UserMessageSchema.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/CommonToolSchema.d.ts +53 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/CommonToolSchema.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/CommonToolSchema.js +54 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/CommonToolSchema.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/StructuredPatchSchema.d.ts +9 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/StructuredPatchSchema.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/StructuredPatchSchema.js +9 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/StructuredPatchSchema.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/TodoSchema.d.ts +32 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/TodoSchema.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/TodoSchema.js +12 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/TodoSchema.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/ToolResultSchemas.d.ts +288 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/ToolResultSchemas.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/ToolResultSchemas.js +293 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/ToolResultSchemas.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/index.d.ts +83 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/index.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/index.js +10 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/tool/index.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/types.d.ts +42 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/types.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/types.js +11 -0
- package/bundled/@yep-anywhere/shared/dist/claude-sdk-schema/types.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/codex-schema/content.d.ts +99 -0
- package/bundled/@yep-anywhere/shared/dist/codex-schema/content.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/codex-schema/content.js +64 -0
- package/bundled/@yep-anywhere/shared/dist/codex-schema/content.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/codex-schema/index.d.ts +17 -0
- package/bundled/@yep-anywhere/shared/dist/codex-schema/index.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/codex-schema/index.js +17 -0
- package/bundled/@yep-anywhere/shared/dist/codex-schema/index.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/codex-schema/session.d.ts +600 -0
- package/bundled/@yep-anywhere/shared/dist/codex-schema/session.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/codex-schema/session.js +282 -0
- package/bundled/@yep-anywhere/shared/dist/codex-schema/session.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/codex-schema/types.d.ts +7 -0
- package/bundled/@yep-anywhere/shared/dist/codex-schema/types.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/codex-schema/types.js +6 -0
- package/bundled/@yep-anywhere/shared/dist/codex-schema/types.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/dag.d.ts +35 -0
- package/bundled/@yep-anywhere/shared/dist/dag.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/dag.js +75 -0
- package/bundled/@yep-anywhere/shared/dist/dag.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/filePathDetection.d.ts +72 -0
- package/bundled/@yep-anywhere/shared/dist/filePathDetection.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/filePathDetection.js +376 -0
- package/bundled/@yep-anywhere/shared/dist/filePathDetection.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/gemini-schema/content.d.ts +95 -0
- package/bundled/@yep-anywhere/shared/dist/gemini-schema/content.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/gemini-schema/content.js +57 -0
- package/bundled/@yep-anywhere/shared/dist/gemini-schema/content.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/gemini-schema/events.d.ts +174 -0
- package/bundled/@yep-anywhere/shared/dist/gemini-schema/events.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/gemini-schema/events.js +117 -0
- package/bundled/@yep-anywhere/shared/dist/gemini-schema/events.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/gemini-schema/index.d.ts +18 -0
- package/bundled/@yep-anywhere/shared/dist/gemini-schema/index.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/gemini-schema/index.js +18 -0
- package/bundled/@yep-anywhere/shared/dist/gemini-schema/index.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/gemini-schema/session.d.ts +267 -0
- package/bundled/@yep-anywhere/shared/dist/gemini-schema/session.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/gemini-schema/session.js +147 -0
- package/bundled/@yep-anywhere/shared/dist/gemini-schema/session.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/gemini-schema/types.d.ts +7 -0
- package/bundled/@yep-anywhere/shared/dist/gemini-schema/types.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/gemini-schema/types.js +6 -0
- package/bundled/@yep-anywhere/shared/dist/gemini-schema/types.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/ideMetadata.d.ts +30 -0
- package/bundled/@yep-anywhere/shared/dist/ideMetadata.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/ideMetadata.js +58 -0
- package/bundled/@yep-anywhere/shared/dist/ideMetadata.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/index.d.ts +24 -0
- package/bundled/@yep-anywhere/shared/dist/index.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/index.js +17 -0
- package/bundled/@yep-anywhere/shared/dist/index.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/opencode-schema/events.d.ts +457 -0
- package/bundled/@yep-anywhere/shared/dist/opencode-schema/events.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/opencode-schema/events.js +217 -0
- package/bundled/@yep-anywhere/shared/dist/opencode-schema/events.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/opencode-schema/index.d.ts +23 -0
- package/bundled/@yep-anywhere/shared/dist/opencode-schema/index.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/opencode-schema/index.js +23 -0
- package/bundled/@yep-anywhere/shared/dist/opencode-schema/index.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/opencode-schema/session.d.ts +149 -0
- package/bundled/@yep-anywhere/shared/dist/opencode-schema/session.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/opencode-schema/session.js +158 -0
- package/bundled/@yep-anywhere/shared/dist/opencode-schema/session.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/opencode-schema/types.d.ts +7 -0
- package/bundled/@yep-anywhere/shared/dist/opencode-schema/types.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/opencode-schema/types.js +6 -0
- package/bundled/@yep-anywhere/shared/dist/opencode-schema/types.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/projectId.d.ts +48 -0
- package/bundled/@yep-anywhere/shared/dist/projectId.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/projectId.js +74 -0
- package/bundled/@yep-anywhere/shared/dist/projectId.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/session/SessionView.d.ts +171 -0
- package/bundled/@yep-anywhere/shared/dist/session/SessionView.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/session/SessionView.js +189 -0
- package/bundled/@yep-anywhere/shared/dist/session/SessionView.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/session/UnifiedSession.d.ts +31 -0
- package/bundled/@yep-anywhere/shared/dist/session/UnifiedSession.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/session/UnifiedSession.js +2 -0
- package/bundled/@yep-anywhere/shared/dist/session/UnifiedSession.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/session/index.d.ts +3 -0
- package/bundled/@yep-anywhere/shared/dist/session/index.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/session/index.js +2 -0
- package/bundled/@yep-anywhere/shared/dist/session/index.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/types.d.ts +172 -0
- package/bundled/@yep-anywhere/shared/dist/types.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/types.js +33 -0
- package/bundled/@yep-anywhere/shared/dist/types.js.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/upload.d.ts +58 -0
- package/bundled/@yep-anywhere/shared/dist/upload.d.ts.map +1 -0
- package/bundled/@yep-anywhere/shared/dist/upload.js +6 -0
- package/bundled/@yep-anywhere/shared/dist/upload.js.map +1 -0
- package/bundled/@yep-anywhere/shared/package.json +7 -0
- package/client-dist/assets/index-C7DeAWG4.css +1 -0
- package/client-dist/assets/index-yX0HPwrz.js +147 -0
- package/client-dist/badge-96.png +0 -0
- package/client-dist/badge.svg +20 -0
- package/client-dist/debug-streaming.html +746 -0
- package/client-dist/favicon.ico +0 -0
- package/client-dist/icon-192.png +0 -0
- package/client-dist/icon-512.png +0 -0
- package/client-dist/icon.svg +27 -0
- package/client-dist/index.html +35 -0
- package/client-dist/manifest.json +23 -0
- package/client-dist/sw.js +482 -0
- package/dist/app.d.ts +67 -0
- package/dist/app.d.ts.map +1 -0
- package/dist/app.js +236 -0
- package/dist/app.js.map +1 -0
- package/dist/augments/augment-generator.d.ts +30 -0
- package/dist/augments/augment-generator.d.ts.map +1 -0
- package/dist/augments/augment-generator.js +171 -0
- package/dist/augments/augment-generator.js.map +1 -0
- package/dist/augments/block-detector.d.ts +81 -0
- package/dist/augments/block-detector.d.ts.map +1 -0
- package/dist/augments/block-detector.js +615 -0
- package/dist/augments/block-detector.js.map +1 -0
- package/dist/augments/edit-augments.d.ts +138 -0
- package/dist/augments/edit-augments.d.ts.map +1 -0
- package/dist/augments/edit-augments.js +665 -0
- package/dist/augments/edit-augments.js.map +1 -0
- package/dist/augments/index.d.ts +14 -0
- package/dist/augments/index.d.ts.map +1 -0
- package/dist/augments/index.js +20 -0
- package/dist/augments/index.js.map +1 -0
- package/dist/augments/markdown-augments.d.ts +33 -0
- package/dist/augments/markdown-augments.d.ts.map +1 -0
- package/dist/augments/markdown-augments.js +128 -0
- package/dist/augments/markdown-augments.js.map +1 -0
- package/dist/augments/read-augments.d.ts +40 -0
- package/dist/augments/read-augments.d.ts.map +1 -0
- package/dist/augments/read-augments.js +64 -0
- package/dist/augments/read-augments.js.map +1 -0
- package/dist/augments/stream-coordinator.d.ts +32 -0
- package/dist/augments/stream-coordinator.d.ts.map +1 -0
- package/dist/augments/stream-coordinator.js +115 -0
- package/dist/augments/stream-coordinator.js.map +1 -0
- package/dist/augments/write-augments.d.ts +32 -0
- package/dist/augments/write-augments.d.ts.map +1 -0
- package/dist/augments/write-augments.js +27 -0
- package/dist/augments/write-augments.js.map +1 -0
- package/dist/auth/AuthService.d.ts +98 -0
- package/dist/auth/AuthService.d.ts.map +1 -0
- package/dist/auth/AuthService.js +217 -0
- package/dist/auth/AuthService.js.map +1 -0
- package/dist/auth/index.d.ts +3 -0
- package/dist/auth/index.d.ts.map +1 -0
- package/dist/auth/index.js +3 -0
- package/dist/auth/index.js.map +1 -0
- package/dist/auth/routes.d.ts +13 -0
- package/dist/auth/routes.d.ts.map +1 -0
- package/dist/auth/routes.js +149 -0
- package/dist/auth/routes.js.map +1 -0
- package/dist/cli.d.ts +19 -0
- package/dist/cli.d.ts.map +1 -0
- package/dist/cli.js +152 -0
- package/dist/cli.js.map +1 -0
- package/dist/config.d.ts +76 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +124 -0
- package/dist/config.js.map +1 -0
- package/dist/dev-mock.d.ts +18 -0
- package/dist/dev-mock.d.ts.map +1 -0
- package/dist/dev-mock.js +260 -0
- package/dist/dev-mock.js.map +1 -0
- package/dist/frontend/index.d.ts +10 -0
- package/dist/frontend/index.d.ts.map +1 -0
- package/dist/frontend/index.js +10 -0
- package/dist/frontend/index.js.map +1 -0
- package/dist/frontend/proxy.d.ts +70 -0
- package/dist/frontend/proxy.d.ts.map +1 -0
- package/dist/frontend/proxy.js +329 -0
- package/dist/frontend/proxy.js.map +1 -0
- package/dist/frontend/static.d.ts +16 -0
- package/dist/frontend/static.d.ts.map +1 -0
- package/dist/frontend/static.js +106 -0
- package/dist/frontend/static.js.map +1 -0
- package/dist/highlighting/index.d.ts +43 -0
- package/dist/highlighting/index.d.ts.map +1 -0
- package/dist/highlighting/index.js +224 -0
- package/dist/highlighting/index.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +259 -0
- package/dist/index.js.map +1 -0
- package/dist/indexes/SessionIndexService.d.ts +106 -0
- package/dist/indexes/SessionIndexService.d.ts.map +1 -0
- package/dist/indexes/SessionIndexService.js +356 -0
- package/dist/indexes/SessionIndexService.js.map +1 -0
- package/dist/indexes/index.d.ts +3 -0
- package/dist/indexes/index.d.ts.map +1 -0
- package/dist/indexes/index.js +2 -0
- package/dist/indexes/index.js.map +1 -0
- package/dist/indexes/types.d.ts +55 -0
- package/dist/indexes/types.d.ts.map +1 -0
- package/dist/indexes/types.js +8 -0
- package/dist/indexes/types.js.map +1 -0
- package/dist/logging/index.d.ts +2 -0
- package/dist/logging/index.d.ts.map +1 -0
- package/dist/logging/index.js +2 -0
- package/dist/logging/index.js.map +1 -0
- package/dist/logging/logger.d.ts +81 -0
- package/dist/logging/logger.d.ts.map +1 -0
- package/dist/logging/logger.js +257 -0
- package/dist/logging/logger.js.map +1 -0
- package/dist/maintenance/debug-routes.d.ts +39 -0
- package/dist/maintenance/debug-routes.d.ts.map +1 -0
- package/dist/maintenance/debug-routes.js +561 -0
- package/dist/maintenance/debug-routes.js.map +1 -0
- package/dist/maintenance/index.d.ts +3 -0
- package/dist/maintenance/index.d.ts.map +1 -0
- package/dist/maintenance/index.js +3 -0
- package/dist/maintenance/index.js.map +1 -0
- package/dist/maintenance/server.d.ts +53 -0
- package/dist/maintenance/server.d.ts.map +1 -0
- package/dist/maintenance/server.js +419 -0
- package/dist/maintenance/server.js.map +1 -0
- package/dist/metadata/SessionMetadataService.d.ts +96 -0
- package/dist/metadata/SessionMetadataService.d.ts.map +1 -0
- package/dist/metadata/SessionMetadataService.js +209 -0
- package/dist/metadata/SessionMetadataService.js.map +1 -0
- package/dist/metadata/index.d.ts +2 -0
- package/dist/metadata/index.d.ts.map +1 -0
- package/dist/metadata/index.js +2 -0
- package/dist/metadata/index.js.map +1 -0
- package/dist/middleware/auth.d.ts +18 -0
- package/dist/middleware/auth.d.ts.map +1 -0
- package/dist/middleware/auth.js +53 -0
- package/dist/middleware/auth.js.map +1 -0
- package/dist/middleware/security.d.ts +4 -0
- package/dist/middleware/security.d.ts.map +1 -0
- package/dist/middleware/security.js +28 -0
- package/dist/middleware/security.js.map +1 -0
- package/dist/notifications/NotificationService.d.ts +76 -0
- package/dist/notifications/NotificationService.d.ts.map +1 -0
- package/dist/notifications/NotificationService.js +155 -0
- package/dist/notifications/NotificationService.js.map +1 -0
- package/dist/notifications/index.d.ts +2 -0
- package/dist/notifications/index.d.ts.map +1 -0
- package/dist/notifications/index.js +2 -0
- package/dist/notifications/index.js.map +1 -0
- package/dist/projects/codex-scanner.d.ts +52 -0
- package/dist/projects/codex-scanner.d.ts.map +1 -0
- package/dist/projects/codex-scanner.js +167 -0
- package/dist/projects/codex-scanner.js.map +1 -0
- package/dist/projects/gemini-project-map.d.ts +54 -0
- package/dist/projects/gemini-project-map.d.ts.map +1 -0
- package/dist/projects/gemini-project-map.js +116 -0
- package/dist/projects/gemini-project-map.js.map +1 -0
- package/dist/projects/gemini-scanner.d.ts +58 -0
- package/dist/projects/gemini-scanner.d.ts.map +1 -0
- package/dist/projects/gemini-scanner.js +210 -0
- package/dist/projects/gemini-scanner.js.map +1 -0
- package/dist/projects/index.d.ts +16 -0
- package/dist/projects/index.d.ts.map +1 -0
- package/dist/projects/index.js +17 -0
- package/dist/projects/index.js.map +1 -0
- package/dist/projects/paths.d.ts +127 -0
- package/dist/projects/paths.d.ts.map +1 -0
- package/dist/projects/paths.js +185 -0
- package/dist/projects/paths.js.map +1 -0
- package/dist/projects/scanner.d.ts +45 -0
- package/dist/projects/scanner.d.ts.map +1 -0
- package/dist/projects/scanner.js +287 -0
- package/dist/projects/scanner.js.map +1 -0
- package/dist/push/PushNotifier.d.ts +48 -0
- package/dist/push/PushNotifier.d.ts.map +1 -0
- package/dist/push/PushNotifier.js +145 -0
- package/dist/push/PushNotifier.js.map +1 -0
- package/dist/push/PushService.d.ts +95 -0
- package/dist/push/PushService.d.ts.map +1 -0
- package/dist/push/PushService.js +245 -0
- package/dist/push/PushService.js.map +1 -0
- package/dist/push/index.d.ts +9 -0
- package/dist/push/index.d.ts.map +1 -0
- package/dist/push/index.js +8 -0
- package/dist/push/index.js.map +1 -0
- package/dist/push/routes.d.ts +10 -0
- package/dist/push/routes.d.ts.map +1 -0
- package/dist/push/routes.js +111 -0
- package/dist/push/routes.js.map +1 -0
- package/dist/push/types.d.ts +80 -0
- package/dist/push/types.d.ts.map +1 -0
- package/dist/push/types.js +5 -0
- package/dist/push/types.js.map +1 -0
- package/dist/push/vapid.d.ts +42 -0
- package/dist/push/vapid.d.ts.map +1 -0
- package/dist/push/vapid.js +132 -0
- package/dist/push/vapid.js.map +1 -0
- package/dist/recents/RecentsService.d.ts +77 -0
- package/dist/recents/RecentsService.d.ts.map +1 -0
- package/dist/recents/RecentsService.js +155 -0
- package/dist/recents/RecentsService.js.map +1 -0
- package/dist/recents/index.d.ts +2 -0
- package/dist/recents/index.d.ts.map +1 -0
- package/dist/recents/index.js +2 -0
- package/dist/recents/index.js.map +1 -0
- package/dist/routes/activity.d.ts +7 -0
- package/dist/routes/activity.d.ts.map +1 -0
- package/dist/routes/activity.js +80 -0
- package/dist/routes/activity.js.map +1 -0
- package/dist/routes/beads.d.ts +42 -0
- package/dist/routes/beads.d.ts.map +1 -0
- package/dist/routes/beads.js +101 -0
- package/dist/routes/beads.js.map +1 -0
- package/dist/routes/debug-streaming.d.ts +7 -0
- package/dist/routes/debug-streaming.d.ts.map +1 -0
- package/dist/routes/debug-streaming.js +88 -0
- package/dist/routes/debug-streaming.js.map +1 -0
- package/dist/routes/dev.d.ts +11 -0
- package/dist/routes/dev.d.ts.map +1 -0
- package/dist/routes/dev.js +55 -0
- package/dist/routes/dev.js.map +1 -0
- package/dist/routes/files.d.ts +7 -0
- package/dist/routes/files.d.ts.map +1 -0
- package/dist/routes/files.js +429 -0
- package/dist/routes/files.js.map +1 -0
- package/dist/routes/global-sessions.d.ts +76 -0
- package/dist/routes/global-sessions.d.ts.map +1 -0
- package/dist/routes/global-sessions.js +207 -0
- package/dist/routes/global-sessions.js.map +1 -0
- package/dist/routes/health.d.ts +3 -0
- package/dist/routes/health.d.ts.map +1 -0
- package/dist/routes/health.js +6 -0
- package/dist/routes/health.js.map +1 -0
- package/dist/routes/inbox.d.ts +45 -0
- package/dist/routes/inbox.d.ts.map +1 -0
- package/dist/routes/inbox.js +174 -0
- package/dist/routes/inbox.js.map +1 -0
- package/dist/routes/processes.d.ts +16 -0
- package/dist/routes/processes.d.ts.map +1 -0
- package/dist/routes/processes.js +82 -0
- package/dist/routes/processes.js.map +1 -0
- package/dist/routes/projects.d.ts +30 -0
- package/dist/routes/projects.d.ts.map +1 -0
- package/dist/routes/projects.js +316 -0
- package/dist/routes/projects.js.map +1 -0
- package/dist/routes/providers.d.ts +9 -0
- package/dist/routes/providers.d.ts.map +1 -0
- package/dist/routes/providers.js +63 -0
- package/dist/routes/providers.js.map +1 -0
- package/dist/routes/recents.d.ts +14 -0
- package/dist/routes/recents.d.ts.map +1 -0
- package/dist/routes/recents.js +82 -0
- package/dist/routes/recents.js.map +1 -0
- package/dist/routes/sessions.d.ts +26 -0
- package/dist/routes/sessions.d.ts.map +1 -0
- package/dist/routes/sessions.js +962 -0
- package/dist/routes/sessions.js.map +1 -0
- package/dist/routes/stream.d.ts +7 -0
- package/dist/routes/stream.d.ts.map +1 -0
- package/dist/routes/stream.js +561 -0
- package/dist/routes/stream.js.map +1 -0
- package/dist/routes/upload.d.ts +14 -0
- package/dist/routes/upload.d.ts.map +1 -0
- package/dist/routes/upload.js +278 -0
- package/dist/routes/upload.js.map +1 -0
- package/dist/sdk/cli-detection.d.ts +47 -0
- package/dist/sdk/cli-detection.d.ts.map +1 -0
- package/dist/sdk/cli-detection.js +122 -0
- package/dist/sdk/cli-detection.js.map +1 -0
- package/dist/sdk/messageLogger.d.ts +15 -0
- package/dist/sdk/messageLogger.d.ts.map +1 -0
- package/dist/sdk/messageLogger.js +68 -0
- package/dist/sdk/messageLogger.js.map +1 -0
- package/dist/sdk/messageQueue.d.ts +49 -0
- package/dist/sdk/messageQueue.d.ts.map +1 -0
- package/dist/sdk/messageQueue.js +186 -0
- package/dist/sdk/messageQueue.js.map +1 -0
- package/dist/sdk/mock.d.ts +16 -0
- package/dist/sdk/mock.d.ts.map +1 -0
- package/dist/sdk/mock.js +81 -0
- package/dist/sdk/mock.js.map +1 -0
- package/dist/sdk/providers/__mocks__/base.d.ts +78 -0
- package/dist/sdk/providers/__mocks__/base.d.ts.map +1 -0
- package/dist/sdk/providers/__mocks__/base.js +185 -0
- package/dist/sdk/providers/__mocks__/base.js.map +1 -0
- package/dist/sdk/providers/__mocks__/claude.d.ts +33 -0
- package/dist/sdk/providers/__mocks__/claude.d.ts.map +1 -0
- package/dist/sdk/providers/__mocks__/claude.js +146 -0
- package/dist/sdk/providers/__mocks__/claude.js.map +1 -0
- package/dist/sdk/providers/__mocks__/codex.d.ts +45 -0
- package/dist/sdk/providers/__mocks__/codex.d.ts.map +1 -0
- package/dist/sdk/providers/__mocks__/codex.js +160 -0
- package/dist/sdk/providers/__mocks__/codex.js.map +1 -0
- package/dist/sdk/providers/__mocks__/factory.d.ts +40 -0
- package/dist/sdk/providers/__mocks__/factory.d.ts.map +1 -0
- package/dist/sdk/providers/__mocks__/factory.js +183 -0
- package/dist/sdk/providers/__mocks__/factory.js.map +1 -0
- package/dist/sdk/providers/__mocks__/gemini.d.ts +43 -0
- package/dist/sdk/providers/__mocks__/gemini.d.ts.map +1 -0
- package/dist/sdk/providers/__mocks__/gemini.js +198 -0
- package/dist/sdk/providers/__mocks__/gemini.js.map +1 -0
- package/dist/sdk/providers/__mocks__/index.d.ts +23 -0
- package/dist/sdk/providers/__mocks__/index.d.ts.map +1 -0
- package/dist/sdk/providers/__mocks__/index.js +25 -0
- package/dist/sdk/providers/__mocks__/index.js.map +1 -0
- package/dist/sdk/providers/__mocks__/opencode.d.ts +33 -0
- package/dist/sdk/providers/__mocks__/opencode.d.ts.map +1 -0
- package/dist/sdk/providers/__mocks__/opencode.js +136 -0
- package/dist/sdk/providers/__mocks__/opencode.js.map +1 -0
- package/dist/sdk/providers/__mocks__/types.d.ts +50 -0
- package/dist/sdk/providers/__mocks__/types.d.ts.map +1 -0
- package/dist/sdk/providers/__mocks__/types.js +8 -0
- package/dist/sdk/providers/__mocks__/types.js.map +1 -0
- package/dist/sdk/providers/claude.d.ts +63 -0
- package/dist/sdk/providers/claude.d.ts.map +1 -0
- package/dist/sdk/providers/claude.js +252 -0
- package/dist/sdk/providers/claude.js.map +1 -0
- package/dist/sdk/providers/codex-oss.d.ts +108 -0
- package/dist/sdk/providers/codex-oss.d.ts.map +1 -0
- package/dist/sdk/providers/codex-oss.js +744 -0
- package/dist/sdk/providers/codex-oss.js.map +1 -0
- package/dist/sdk/providers/codex.d.ts +82 -0
- package/dist/sdk/providers/codex.d.ts.map +1 -0
- package/dist/sdk/providers/codex.js +597 -0
- package/dist/sdk/providers/codex.js.map +1 -0
- package/dist/sdk/providers/gemini.d.ts +78 -0
- package/dist/sdk/providers/gemini.d.ts.map +1 -0
- package/dist/sdk/providers/gemini.js +536 -0
- package/dist/sdk/providers/gemini.js.map +1 -0
- package/dist/sdk/providers/index.d.ts +22 -0
- package/dist/sdk/providers/index.d.ts.map +1 -0
- package/dist/sdk/providers/index.js +53 -0
- package/dist/sdk/providers/index.js.map +1 -0
- package/dist/sdk/providers/opencode.d.ts +95 -0
- package/dist/sdk/providers/opencode.d.ts.map +1 -0
- package/dist/sdk/providers/opencode.js +586 -0
- package/dist/sdk/providers/opencode.js.map +1 -0
- package/dist/sdk/providers/types.d.ts +99 -0
- package/dist/sdk/providers/types.d.ts.map +1 -0
- package/dist/sdk/providers/types.js +2 -0
- package/dist/sdk/providers/types.js.map +1 -0
- package/dist/sdk/real.d.ts +20 -0
- package/dist/sdk/real.d.ts.map +1 -0
- package/dist/sdk/real.js +22 -0
- package/dist/sdk/real.js.map +1 -0
- package/dist/sdk/types.d.ts +113 -0
- package/dist/sdk/types.d.ts.map +1 -0
- package/dist/sdk/types.js +3 -0
- package/dist/sdk/types.js.map +1 -0
- package/dist/sessions/Session.d.ts +80 -0
- package/dist/sessions/Session.d.ts.map +1 -0
- package/dist/sessions/Session.js +119 -0
- package/dist/sessions/Session.js.map +1 -0
- package/dist/sessions/codex-reader.d.ts +166 -0
- package/dist/sessions/codex-reader.d.ts.map +1 -0
- package/dist/sessions/codex-reader.js +664 -0
- package/dist/sessions/codex-reader.js.map +1 -0
- package/dist/sessions/dag.d.ts +62 -0
- package/dist/sessions/dag.d.ts.map +1 -0
- package/dist/sessions/dag.js +175 -0
- package/dist/sessions/dag.js.map +1 -0
- package/dist/sessions/fork.d.ts +34 -0
- package/dist/sessions/fork.d.ts.map +1 -0
- package/dist/sessions/fork.js +58 -0
- package/dist/sessions/fork.js.map +1 -0
- package/dist/sessions/gemini-reader.d.ts +103 -0
- package/dist/sessions/gemini-reader.d.ts.map +1 -0
- package/dist/sessions/gemini-reader.js +332 -0
- package/dist/sessions/gemini-reader.js.map +1 -0
- package/dist/sessions/normalization.d.ts +7 -0
- package/dist/sessions/normalization.d.ts.map +1 -0
- package/dist/sessions/normalization.js +429 -0
- package/dist/sessions/normalization.js.map +1 -0
- package/dist/sessions/opencode-reader.d.ts +99 -0
- package/dist/sessions/opencode-reader.d.ts.map +1 -0
- package/dist/sessions/opencode-reader.js +370 -0
- package/dist/sessions/opencode-reader.js.map +1 -0
- package/dist/sessions/reader.d.ts +118 -0
- package/dist/sessions/reader.d.ts.map +1 -0
- package/dist/sessions/reader.js +444 -0
- package/dist/sessions/reader.js.map +1 -0
- package/dist/sessions/types.d.ts +77 -0
- package/dist/sessions/types.d.ts.map +1 -0
- package/dist/sessions/types.js +8 -0
- package/dist/sessions/types.js.map +1 -0
- package/dist/supervisor/ExternalSessionTracker.d.ts +94 -0
- package/dist/supervisor/ExternalSessionTracker.d.ts.map +1 -0
- package/dist/supervisor/ExternalSessionTracker.js +507 -0
- package/dist/supervisor/ExternalSessionTracker.js.map +1 -0
- package/dist/supervisor/Process.d.ts +230 -0
- package/dist/supervisor/Process.d.ts.map +1 -0
- package/dist/supervisor/Process.js +878 -0
- package/dist/supervisor/Process.js.map +1 -0
- package/dist/supervisor/Supervisor.d.ts +191 -0
- package/dist/supervisor/Supervisor.d.ts.map +1 -0
- package/dist/supervisor/Supervisor.js +933 -0
- package/dist/supervisor/Supervisor.js.map +1 -0
- package/dist/supervisor/WorkerQueue.d.ts +113 -0
- package/dist/supervisor/WorkerQueue.d.ts.map +1 -0
- package/dist/supervisor/WorkerQueue.js +148 -0
- package/dist/supervisor/WorkerQueue.js.map +1 -0
- package/dist/supervisor/types.d.ts +176 -0
- package/dist/supervisor/types.d.ts.map +1 -0
- package/dist/supervisor/types.js +7 -0
- package/dist/supervisor/types.js.map +1 -0
- package/dist/testing/mockProjectData.d.ts +5 -0
- package/dist/testing/mockProjectData.d.ts.map +1 -0
- package/dist/testing/mockProjectData.js +27 -0
- package/dist/testing/mockProjectData.js.map +1 -0
- package/dist/uploads/index.d.ts +3 -0
- package/dist/uploads/index.d.ts.map +1 -0
- package/dist/uploads/index.js +2 -0
- package/dist/uploads/index.js.map +1 -0
- package/dist/uploads/manager.d.ts +84 -0
- package/dist/uploads/manager.d.ts.map +1 -0
- package/dist/uploads/manager.js +215 -0
- package/dist/uploads/manager.js.map +1 -0
- package/dist/utils/fileLock.d.ts +57 -0
- package/dist/utils/fileLock.d.ts.map +1 -0
- package/dist/utils/fileLock.js +91 -0
- package/dist/utils/fileLock.js.map +1 -0
- package/dist/watcher/BatchProcessor.d.ts +58 -0
- package/dist/watcher/BatchProcessor.d.ts.map +1 -0
- package/dist/watcher/BatchProcessor.js +105 -0
- package/dist/watcher/BatchProcessor.js.map +1 -0
- package/dist/watcher/EventBus.d.ts +157 -0
- package/dist/watcher/EventBus.d.ts.map +1 -0
- package/dist/watcher/EventBus.js +36 -0
- package/dist/watcher/EventBus.js.map +1 -0
- package/dist/watcher/FileWatcher.d.ts +42 -0
- package/dist/watcher/FileWatcher.d.ts.map +1 -0
- package/dist/watcher/FileWatcher.js +165 -0
- package/dist/watcher/FileWatcher.js.map +1 -0
- package/dist/watcher/SourceWatcher.d.ts +36 -0
- package/dist/watcher/SourceWatcher.d.ts.map +1 -0
- package/dist/watcher/SourceWatcher.js +97 -0
- package/dist/watcher/SourceWatcher.js.map +1 -0
- package/dist/watcher/index.d.ts +9 -0
- package/dist/watcher/index.d.ts.map +1 -0
- package/dist/watcher/index.js +5 -0
- package/dist/watcher/index.js.map +1 -0
- package/package.json +54 -0
- package/scripts/postinstall.js +48 -0
|
@@ -0,0 +1,370 @@
|
|
|
1
|
+
import { readFile, readdir, stat } from "node:fs/promises";
|
|
2
|
+
import { homedir } from "node:os";
|
|
3
|
+
import { join } from "node:path";
|
|
4
|
+
import { SESSION_TITLE_MAX_LENGTH, } from "@yep-anywhere/shared";
|
|
5
|
+
// OpenCode context window size (200K tokens, same as Claude)
|
|
6
|
+
const CONTEXT_WINDOW_SIZE = 200_000;
|
|
7
|
+
/** Default OpenCode storage directory */
|
|
8
|
+
export const OPENCODE_STORAGE_DIR = join(homedir(), ".local", "share", "opencode", "storage");
|
|
9
|
+
// Use OpenCodeMessage and OpenCodeStoredPart types from shared
|
|
10
|
+
/**
|
|
11
|
+
* Find the OpenCode project ID for a given project path by scanning project files.
|
|
12
|
+
*
|
|
13
|
+
* OpenCode uses an opaque hash as project ID. This function reads all project
|
|
14
|
+
* JSON files and returns the ID whose worktree matches the given path.
|
|
15
|
+
*
|
|
16
|
+
* @param projectPath - The absolute path to the project directory
|
|
17
|
+
* @param storageDir - The OpenCode storage directory (default: ~/.local/share/opencode/storage)
|
|
18
|
+
* @returns The OpenCode project ID, or null if not found
|
|
19
|
+
*/
|
|
20
|
+
export async function findOpenCodeProjectId(projectPath, storageDir = OPENCODE_STORAGE_DIR) {
|
|
21
|
+
const projectDir = join(storageDir, "project");
|
|
22
|
+
try {
|
|
23
|
+
const files = await readdir(projectDir);
|
|
24
|
+
const jsonFiles = files.filter((f) => f.endsWith(".json") && f !== "global.json");
|
|
25
|
+
for (const file of jsonFiles) {
|
|
26
|
+
try {
|
|
27
|
+
const content = await readFile(join(projectDir, file), "utf-8");
|
|
28
|
+
const project = JSON.parse(content);
|
|
29
|
+
if (project.worktree === projectPath) {
|
|
30
|
+
return project.id;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
// Skip unreadable files
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
// Directory doesn't exist
|
|
40
|
+
}
|
|
41
|
+
return null;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* OpenCode-specific session reader for OpenCode's file-based storage.
|
|
45
|
+
*
|
|
46
|
+
* OpenCode stores sessions in a directory structure rather than JSONL files:
|
|
47
|
+
* - Project info in project/{id}.json
|
|
48
|
+
* - Sessions in session/{projectId}/{sessionId}.json
|
|
49
|
+
* - Messages in message/{sessionId}/{messageId}.json
|
|
50
|
+
* - Parts (content) in part/{messageId}/{partId}.json
|
|
51
|
+
*/
|
|
52
|
+
export class OpenCodeSessionReader {
|
|
53
|
+
storageDir;
|
|
54
|
+
projectPath;
|
|
55
|
+
openCodeProjectIdCache = undefined;
|
|
56
|
+
constructor(options) {
|
|
57
|
+
this.storageDir = options.storageDir ?? OPENCODE_STORAGE_DIR;
|
|
58
|
+
this.projectPath = options.projectPath;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Get the OpenCode project ID, looking it up lazily from storage.
|
|
62
|
+
* Returns null if no OpenCode project exists for this path.
|
|
63
|
+
*/
|
|
64
|
+
async getOpenCodeProjectId() {
|
|
65
|
+
if (this.openCodeProjectIdCache !== undefined) {
|
|
66
|
+
return this.openCodeProjectIdCache;
|
|
67
|
+
}
|
|
68
|
+
this.openCodeProjectIdCache = await findOpenCodeProjectId(this.projectPath, this.storageDir);
|
|
69
|
+
return this.openCodeProjectIdCache;
|
|
70
|
+
}
|
|
71
|
+
async listSessions(projectId) {
|
|
72
|
+
const openCodeProjectId = await this.getOpenCodeProjectId();
|
|
73
|
+
if (!openCodeProjectId) {
|
|
74
|
+
return [];
|
|
75
|
+
}
|
|
76
|
+
const summaries = [];
|
|
77
|
+
const sessionDir = join(this.storageDir, "session", openCodeProjectId);
|
|
78
|
+
try {
|
|
79
|
+
const files = await readdir(sessionDir);
|
|
80
|
+
const jsonFiles = files.filter((f) => f.endsWith(".json"));
|
|
81
|
+
for (const file of jsonFiles) {
|
|
82
|
+
const sessionId = file.replace(".json", "");
|
|
83
|
+
const summary = await this.getSessionSummary(sessionId, projectId);
|
|
84
|
+
if (summary) {
|
|
85
|
+
summaries.push(summary);
|
|
86
|
+
}
|
|
87
|
+
}
|
|
88
|
+
}
|
|
89
|
+
catch {
|
|
90
|
+
// Directory doesn't exist or not readable
|
|
91
|
+
return [];
|
|
92
|
+
}
|
|
93
|
+
// Sort by updatedAt descending
|
|
94
|
+
summaries.sort((a, b) => new Date(b.updatedAt).getTime() - new Date(a.updatedAt).getTime());
|
|
95
|
+
return summaries;
|
|
96
|
+
}
|
|
97
|
+
async getSessionSummary(sessionId, projectId) {
|
|
98
|
+
const openCodeProjectId = await this.getOpenCodeProjectId();
|
|
99
|
+
if (!openCodeProjectId) {
|
|
100
|
+
return null;
|
|
101
|
+
}
|
|
102
|
+
const sessionPath = join(this.storageDir, "session", openCodeProjectId, `${sessionId}.json`);
|
|
103
|
+
try {
|
|
104
|
+
const content = await readFile(sessionPath, "utf-8");
|
|
105
|
+
const session = JSON.parse(content);
|
|
106
|
+
// Get message count and first user message for title
|
|
107
|
+
const messageDir = join(this.storageDir, "message", sessionId);
|
|
108
|
+
let messageCount = 0;
|
|
109
|
+
let firstUserMessageText = null;
|
|
110
|
+
let model;
|
|
111
|
+
try {
|
|
112
|
+
const messageFiles = await readdir(messageDir);
|
|
113
|
+
const jsonFiles = messageFiles.filter((f) => f.endsWith(".json"));
|
|
114
|
+
messageCount = jsonFiles.length;
|
|
115
|
+
// Sort by filename (which contains timestamp) to get chronological order
|
|
116
|
+
jsonFiles.sort();
|
|
117
|
+
// Find first user message and model
|
|
118
|
+
for (const file of jsonFiles) {
|
|
119
|
+
const msgPath = join(messageDir, file);
|
|
120
|
+
try {
|
|
121
|
+
const msgContent = await readFile(msgPath, "utf-8");
|
|
122
|
+
const msg = JSON.parse(msgContent);
|
|
123
|
+
// Get model from first assistant message
|
|
124
|
+
if (!model && msg.role === "assistant" && msg.modelID) {
|
|
125
|
+
model = msg.modelID;
|
|
126
|
+
}
|
|
127
|
+
// Get first user message text
|
|
128
|
+
if (!firstUserMessageText && msg.role === "user") {
|
|
129
|
+
const text = await this.getMessageText(msg.id);
|
|
130
|
+
if (text) {
|
|
131
|
+
firstUserMessageText = text;
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
// Stop if we have both
|
|
135
|
+
if (model && firstUserMessageText)
|
|
136
|
+
break;
|
|
137
|
+
}
|
|
138
|
+
catch {
|
|
139
|
+
// Skip unreadable messages
|
|
140
|
+
}
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
catch {
|
|
144
|
+
// No messages yet
|
|
145
|
+
}
|
|
146
|
+
// Skip sessions with no messages
|
|
147
|
+
if (messageCount === 0) {
|
|
148
|
+
return null;
|
|
149
|
+
}
|
|
150
|
+
const stats = await stat(sessionPath);
|
|
151
|
+
const contextUsage = await this.extractContextUsage(sessionId);
|
|
152
|
+
// Use session title if available, otherwise first user message
|
|
153
|
+
const fullTitle = session.title || firstUserMessageText?.trim() || null;
|
|
154
|
+
return {
|
|
155
|
+
id: sessionId,
|
|
156
|
+
projectId,
|
|
157
|
+
title: this.truncateTitle(fullTitle),
|
|
158
|
+
fullTitle,
|
|
159
|
+
createdAt: session.time?.created
|
|
160
|
+
? new Date(session.time.created).toISOString()
|
|
161
|
+
: stats.birthtime.toISOString(),
|
|
162
|
+
updatedAt: session.time?.updated
|
|
163
|
+
? new Date(session.time.updated).toISOString()
|
|
164
|
+
: stats.mtime.toISOString(),
|
|
165
|
+
messageCount,
|
|
166
|
+
status: { state: "idle" }, // Will be updated by Supervisor
|
|
167
|
+
contextUsage,
|
|
168
|
+
provider: "opencode",
|
|
169
|
+
model,
|
|
170
|
+
};
|
|
171
|
+
}
|
|
172
|
+
catch {
|
|
173
|
+
return null;
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
async getSession(sessionId, projectId, afterMessageId, _options) {
|
|
177
|
+
const summary = await this.getSessionSummary(sessionId, projectId);
|
|
178
|
+
if (!summary)
|
|
179
|
+
return null;
|
|
180
|
+
const messages = await this.loadSessionMessages(sessionId, afterMessageId);
|
|
181
|
+
return {
|
|
182
|
+
summary,
|
|
183
|
+
data: {
|
|
184
|
+
provider: "opencode",
|
|
185
|
+
session: {
|
|
186
|
+
messages,
|
|
187
|
+
},
|
|
188
|
+
},
|
|
189
|
+
};
|
|
190
|
+
}
|
|
191
|
+
async getSessionSummaryIfChanged(sessionId, projectId, cachedMtime, cachedSize) {
|
|
192
|
+
const openCodeProjectId = await this.getOpenCodeProjectId();
|
|
193
|
+
if (!openCodeProjectId) {
|
|
194
|
+
return null;
|
|
195
|
+
}
|
|
196
|
+
const sessionPath = join(this.storageDir, "session", openCodeProjectId, `${sessionId}.json`);
|
|
197
|
+
try {
|
|
198
|
+
const stats = await stat(sessionPath);
|
|
199
|
+
const mtime = stats.mtimeMs;
|
|
200
|
+
const size = stats.size;
|
|
201
|
+
// If mtime and size match cached values, return null (no change)
|
|
202
|
+
if (mtime === cachedMtime && size === cachedSize) {
|
|
203
|
+
return null;
|
|
204
|
+
}
|
|
205
|
+
// Otherwise parse the file and return { summary, mtime, size }
|
|
206
|
+
const summary = await this.getSessionSummary(sessionId, projectId);
|
|
207
|
+
if (!summary)
|
|
208
|
+
return null;
|
|
209
|
+
return { summary, mtime, size };
|
|
210
|
+
}
|
|
211
|
+
catch {
|
|
212
|
+
return null;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
/**
|
|
216
|
+
* OpenCode doesn't have agent sessions like Claude's Task tool.
|
|
217
|
+
* Return empty array.
|
|
218
|
+
*/
|
|
219
|
+
async getAgentMappings() {
|
|
220
|
+
return [];
|
|
221
|
+
}
|
|
222
|
+
/**
|
|
223
|
+
* OpenCode doesn't have agent sessions like Claude's Task tool.
|
|
224
|
+
* Return null.
|
|
225
|
+
*/
|
|
226
|
+
async getAgentSession(_agentId) {
|
|
227
|
+
return null;
|
|
228
|
+
}
|
|
229
|
+
/**
|
|
230
|
+
* Load all messages for a session, optionally after a specific message ID.
|
|
231
|
+
*/
|
|
232
|
+
async loadSessionMessages(sessionId, afterMessageId) {
|
|
233
|
+
const messageDir = join(this.storageDir, "message", sessionId);
|
|
234
|
+
const messages = [];
|
|
235
|
+
try {
|
|
236
|
+
const messageFiles = await readdir(messageDir);
|
|
237
|
+
const jsonFiles = messageFiles.filter((f) => f.endsWith(".json"));
|
|
238
|
+
// Sort by filename to get chronological order
|
|
239
|
+
jsonFiles.sort();
|
|
240
|
+
let foundAfterMessage = !afterMessageId;
|
|
241
|
+
for (const file of jsonFiles) {
|
|
242
|
+
const messageId = file.replace(".json", "");
|
|
243
|
+
// Skip messages until we find afterMessageId
|
|
244
|
+
if (!foundAfterMessage) {
|
|
245
|
+
if (messageId === afterMessageId) {
|
|
246
|
+
foundAfterMessage = true;
|
|
247
|
+
}
|
|
248
|
+
continue;
|
|
249
|
+
}
|
|
250
|
+
const entry = await this.loadMessageEntry(messageDir, file);
|
|
251
|
+
if (entry) {
|
|
252
|
+
messages.push(entry);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
catch {
|
|
257
|
+
// Directory doesn't exist or not readable
|
|
258
|
+
}
|
|
259
|
+
return messages;
|
|
260
|
+
}
|
|
261
|
+
/**
|
|
262
|
+
* Load a single message with its parts as an OpenCodeSessionEntry.
|
|
263
|
+
*/
|
|
264
|
+
async loadMessageEntry(messageDir, file) {
|
|
265
|
+
try {
|
|
266
|
+
const msgPath = join(messageDir, file);
|
|
267
|
+
const content = await readFile(msgPath, "utf-8");
|
|
268
|
+
const message = JSON.parse(content);
|
|
269
|
+
// Load parts for this message
|
|
270
|
+
const parts = await this.loadMessageParts(message.id);
|
|
271
|
+
return { message, parts };
|
|
272
|
+
}
|
|
273
|
+
catch {
|
|
274
|
+
return null;
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
/**
|
|
278
|
+
* Load all parts for a message.
|
|
279
|
+
*/
|
|
280
|
+
async loadMessageParts(messageId) {
|
|
281
|
+
const partDir = join(this.storageDir, "part", messageId);
|
|
282
|
+
const parts = [];
|
|
283
|
+
try {
|
|
284
|
+
const partFiles = await readdir(partDir);
|
|
285
|
+
const jsonFiles = partFiles.filter((f) => f.endsWith(".json"));
|
|
286
|
+
// Sort by filename to get chronological order
|
|
287
|
+
jsonFiles.sort();
|
|
288
|
+
for (const file of jsonFiles) {
|
|
289
|
+
try {
|
|
290
|
+
const partPath = join(partDir, file);
|
|
291
|
+
const content = await readFile(partPath, "utf-8");
|
|
292
|
+
const part = JSON.parse(content);
|
|
293
|
+
parts.push(part);
|
|
294
|
+
}
|
|
295
|
+
catch {
|
|
296
|
+
// Skip unreadable parts
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
catch {
|
|
301
|
+
// No parts directory
|
|
302
|
+
}
|
|
303
|
+
return parts;
|
|
304
|
+
}
|
|
305
|
+
/**
|
|
306
|
+
* Get the text content of a message by loading its parts.
|
|
307
|
+
*/
|
|
308
|
+
async getMessageText(messageId) {
|
|
309
|
+
const parts = await this.loadMessageParts(messageId);
|
|
310
|
+
for (const part of parts) {
|
|
311
|
+
if (part.type === "text" && part.text) {
|
|
312
|
+
return part.text;
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
return null;
|
|
316
|
+
}
|
|
317
|
+
/**
|
|
318
|
+
* Extract context usage from the last assistant message's tokens.
|
|
319
|
+
*/
|
|
320
|
+
async extractContextUsage(sessionId) {
|
|
321
|
+
const messageDir = join(this.storageDir, "message", sessionId);
|
|
322
|
+
try {
|
|
323
|
+
const messageFiles = await readdir(messageDir);
|
|
324
|
+
const jsonFiles = messageFiles.filter((f) => f.endsWith(".json"));
|
|
325
|
+
// Sort and reverse to get most recent first
|
|
326
|
+
jsonFiles.sort().reverse();
|
|
327
|
+
for (const file of jsonFiles) {
|
|
328
|
+
try {
|
|
329
|
+
const msgPath = join(messageDir, file);
|
|
330
|
+
const content = await readFile(msgPath, "utf-8");
|
|
331
|
+
const msg = JSON.parse(content);
|
|
332
|
+
if (msg.role === "assistant" && msg.tokens) {
|
|
333
|
+
const inputTokens = (msg.tokens.input ?? 0) + (msg.tokens.cache?.read ?? 0);
|
|
334
|
+
if (inputTokens === 0)
|
|
335
|
+
continue;
|
|
336
|
+
const percentage = Math.round((inputTokens / CONTEXT_WINDOW_SIZE) * 100);
|
|
337
|
+
const result = { inputTokens, percentage };
|
|
338
|
+
if (msg.tokens.output !== undefined && msg.tokens.output > 0) {
|
|
339
|
+
result.outputTokens = msg.tokens.output;
|
|
340
|
+
}
|
|
341
|
+
if (msg.tokens.cache?.read !== undefined &&
|
|
342
|
+
msg.tokens.cache.read > 0) {
|
|
343
|
+
result.cacheReadTokens = msg.tokens.cache.read;
|
|
344
|
+
}
|
|
345
|
+
return result;
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
catch {
|
|
349
|
+
// Skip unreadable messages
|
|
350
|
+
}
|
|
351
|
+
}
|
|
352
|
+
}
|
|
353
|
+
catch {
|
|
354
|
+
// No messages
|
|
355
|
+
}
|
|
356
|
+
return undefined;
|
|
357
|
+
}
|
|
358
|
+
/**
|
|
359
|
+
* Truncate title to max length.
|
|
360
|
+
*/
|
|
361
|
+
truncateTitle(title) {
|
|
362
|
+
if (!title)
|
|
363
|
+
return null;
|
|
364
|
+
const trimmed = title.trim();
|
|
365
|
+
if (trimmed.length <= SESSION_TITLE_MAX_LENGTH)
|
|
366
|
+
return trimmed;
|
|
367
|
+
return `${trimmed.slice(0, SESSION_TITLE_MAX_LENGTH - 3)}...`;
|
|
368
|
+
}
|
|
369
|
+
}
|
|
370
|
+
//# sourceMappingURL=opencode-reader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"opencode-reader.js","sourceRoot":"","sources":["../../src/sessions/opencode-reader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC3D,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAIL,wBAAwB,GAEzB,MAAM,sBAAsB,CAAC;AAY9B,6DAA6D;AAC7D,MAAM,mBAAmB,GAAG,OAAO,CAAC;AAEpC,yCAAyC;AACzC,MAAM,CAAC,MAAM,oBAAoB,GAAG,IAAI,CACtC,OAAO,EAAE,EACT,QAAQ,EACR,OAAO,EACP,UAAU,EACV,SAAS,CACV,CAAC;AAgDF,+DAA+D;AAE/D;;;;;;;;;GASG;AACH,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,WAAmB,EACnB,aAAqB,oBAAoB;IAEzC,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,EAAE,SAAS,CAAC,CAAC;IAE/C,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;QACxC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAC5B,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,aAAa,CAClD,CAAC;QAEF,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;YAC7B,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,OAAO,CAAC,CAAC;gBAChE,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAwB,CAAC;gBAC3D,IAAI,OAAO,CAAC,QAAQ,KAAK,WAAW,EAAE,CAAC;oBACrC,OAAO,OAAO,CAAC,EAAE,CAAC;gBACpB,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,wBAAwB;YAC1B,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,0BAA0B;IAC5B,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED;;;;;;;;GAQG;AACH,MAAM,OAAO,qBAAqB;IACxB,UAAU,CAAS;IACnB,WAAW,CAAS;IACpB,sBAAsB,GAA8B,SAAS,CAAC;IAEtE,YAAY,OAAqC;QAC/C,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,UAAU,IAAI,oBAAoB,CAAC;QAC7D,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,WAAW,CAAC;IACzC,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,oBAAoB;QAChC,IAAI,IAAI,CAAC,sBAAsB,KAAK,SAAS,EAAE,CAAC;YAC9C,OAAO,IAAI,CAAC,sBAAsB,CAAC;QACrC,CAAC;QACD,IAAI,CAAC,sBAAsB,GAAG,MAAM,qBAAqB,CACvD,IAAI,CAAC,WAAW,EAChB,IAAI,CAAC,UAAU,CAChB,CAAC;QACF,OAAO,IAAI,CAAC,sBAAsB,CAAC;IACrC,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,SAAuB;QACxC,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5D,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,SAAS,GAAqB,EAAE,CAAC;QACvC,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,iBAAiB,CAAC,CAAC;QAEvE,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;YACxC,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YAE3D,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;gBAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAC5C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;gBACnE,IAAI,OAAO,EAAE,CAAC;oBACZ,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,0CAA0C;YAC1C,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,+BAA+B;QAC/B,SAAS,CAAC,IAAI,CACZ,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACP,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,OAAO,EAAE,CACpE,CAAC;QAEF,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,KAAK,CAAC,iBAAiB,CACrB,SAAiB,EACjB,SAAuB;QAEvB,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5D,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CACtB,IAAI,CAAC,UAAU,EACf,SAAS,EACT,iBAAiB,EACjB,GAAG,SAAS,OAAO,CACpB,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;YACrD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAwB,CAAC;YAE3D,qDAAqD;YACrD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;YAC/D,IAAI,YAAY,GAAG,CAAC,CAAC;YACrB,IAAI,oBAAoB,GAAkB,IAAI,CAAC;YAC/C,IAAI,KAAyB,CAAC;YAE9B,IAAI,CAAC;gBACH,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;gBAC/C,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;gBAClE,YAAY,GAAG,SAAS,CAAC,MAAM,CAAC;gBAEhC,yEAAyE;gBACzE,SAAS,CAAC,IAAI,EAAE,CAAC;gBAEjB,oCAAoC;gBACpC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;oBAC7B,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;oBACvC,IAAI,CAAC;wBACH,MAAM,UAAU,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;wBACpD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAoB,CAAC;wBAEtD,yCAAyC;wBACzC,IAAI,CAAC,KAAK,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;4BACtD,KAAK,GAAG,GAAG,CAAC,OAAO,CAAC;wBACtB,CAAC;wBAED,8BAA8B;wBAC9B,IAAI,CAAC,oBAAoB,IAAI,GAAG,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;4BACjD,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;4BAC/C,IAAI,IAAI,EAAE,CAAC;gCACT,oBAAoB,GAAG,IAAI,CAAC;4BAC9B,CAAC;wBACH,CAAC;wBAED,uBAAuB;wBACvB,IAAI,KAAK,IAAI,oBAAoB;4BAAE,MAAM;oBAC3C,CAAC;oBAAC,MAAM,CAAC;wBACP,2BAA2B;oBAC7B,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,kBAAkB;YACpB,CAAC;YAED,iCAAiC;YACjC,IAAI,YAAY,KAAK,CAAC,EAAE,CAAC;gBACvB,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC;YACtC,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,CAAC,CAAC;YAE/D,+DAA+D;YAC/D,MAAM,SAAS,GAAG,OAAO,CAAC,KAAK,IAAI,oBAAoB,EAAE,IAAI,EAAE,IAAI,IAAI,CAAC;YAExE,OAAO;gBACL,EAAE,EAAE,SAAS;gBACb,SAAS;gBACT,KAAK,EAAE,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC;gBACpC,SAAS;gBACT,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO;oBAC9B,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE;oBAC9C,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,WAAW,EAAE;gBACjC,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,OAAO;oBAC9B,CAAC,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,WAAW,EAAE;oBAC9C,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,WAAW,EAAE;gBAC7B,YAAY;gBACZ,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,gCAAgC;gBAC3D,YAAY;gBACZ,QAAQ,EAAE,UAAU;gBACpB,KAAK;aACN,CAAC;QACJ,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,UAAU,CACd,SAAiB,EACjB,SAAuB,EACvB,cAAuB,EACvB,QAA4B;QAE5B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QACnE,IAAI,CAAC,OAAO;YAAE,OAAO,IAAI,CAAC;QAE1B,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,SAAS,EAAE,cAAc,CAAC,CAAC;QAE3E,OAAO;YACL,OAAO;YACP,IAAI,EAAE;gBACJ,QAAQ,EAAE,UAAU;gBACpB,OAAO,EAAE;oBACP,QAAQ;iBACT;aACF;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,0BAA0B,CAC9B,SAAiB,EACjB,SAAuB,EACvB,WAAmB,EACnB,UAAkB;QAElB,MAAM,iBAAiB,GAAG,MAAM,IAAI,CAAC,oBAAoB,EAAE,CAAC;QAC5D,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,WAAW,GAAG,IAAI,CACtB,IAAI,CAAC,UAAU,EACf,SAAS,EACT,iBAAiB,EACjB,GAAG,SAAS,OAAO,CACpB,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,WAAW,CAAC,CAAC;YACtC,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC;YAC5B,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,CAAC;YAExB,iEAAiE;YACjE,IAAI,KAAK,KAAK,WAAW,IAAI,IAAI,KAAK,UAAU,EAAE,CAAC;gBACjD,OAAO,IAAI,CAAC;YACd,CAAC;YAED,+DAA+D;YAC/D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;YACnE,IAAI,CAAC,OAAO;gBAAE,OAAO,IAAI,CAAC;YAE1B,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;QAClC,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,gBAAgB;QACpB,OAAO,EAAE,CAAC;IACZ,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,eAAe,CACnB,QAAgB;QAEhB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,mBAAmB,CAC/B,SAAiB,EACjB,cAAuB;QAEvB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAC/D,MAAM,QAAQ,GAA2B,EAAE,CAAC;QAE5C,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;YAC/C,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YAElE,8CAA8C;YAC9C,SAAS,CAAC,IAAI,EAAE,CAAC;YAEjB,IAAI,iBAAiB,GAAG,CAAC,cAAc,CAAC;YAExC,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;gBAC7B,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC;gBAE5C,6CAA6C;gBAC7C,IAAI,CAAC,iBAAiB,EAAE,CAAC;oBACvB,IAAI,SAAS,KAAK,cAAc,EAAE,CAAC;wBACjC,iBAAiB,GAAG,IAAI,CAAC;oBAC3B,CAAC;oBACD,SAAS;gBACX,CAAC;gBAED,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;gBAC5D,IAAI,KAAK,EAAE,CAAC;oBACV,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBACvB,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,0CAA0C;QAC5C,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,gBAAgB,CAC5B,UAAkB,EAClB,IAAY;QAEZ,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;YACvC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACjD,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAoB,CAAC;YAEvD,8BAA8B;YAC9B,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC;YAEtD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,CAAC;QAC5B,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,gBAAgB,CAC5B,SAAiB;QAEjB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,CAAC,CAAC;QACzD,MAAM,KAAK,GAAyB,EAAE,CAAC;QAEvC,IAAI,CAAC;YACH,MAAM,SAAS,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,CAAC;YACzC,MAAM,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YAE/D,8CAA8C;YAC9C,SAAS,CAAC,IAAI,EAAE,CAAC;YAEjB,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;gBAC7B,IAAI,CAAC;oBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;oBACrC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;oBAClD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAuB,CAAC;oBACvD,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACnB,CAAC;gBAAC,MAAM,CAAC;oBACP,wBAAwB;gBAC1B,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,qBAAqB;QACvB,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,cAAc,CAAC,SAAiB;QAC5C,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAErD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,IAAI,IAAI,CAAC,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACtC,OAAO,IAAI,CAAC,IAAI,CAAC;YACnB,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACK,KAAK,CAAC,mBAAmB,CAC/B,SAAiB;QAEjB,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC;QAE/D,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,MAAM,OAAO,CAAC,UAAU,CAAC,CAAC;YAC/C,MAAM,SAAS,GAAG,YAAY,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;YAElE,4CAA4C;YAC5C,SAAS,CAAC,IAAI,EAAE,CAAC,OAAO,EAAE,CAAC;YAE3B,KAAK,MAAM,IAAI,IAAI,SAAS,EAAE,CAAC;gBAC7B,IAAI,CAAC;oBACH,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,CAAC;oBACvC,MAAM,OAAO,GAAG,MAAM,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;oBACjD,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAoB,CAAC;oBAEnD,IAAI,GAAG,CAAC,IAAI,KAAK,WAAW,IAAI,GAAG,CAAC,MAAM,EAAE,CAAC;wBAC3C,MAAM,WAAW,GACf,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC;wBAE1D,IAAI,WAAW,KAAK,CAAC;4BAAE,SAAS;wBAEhC,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAC3B,CAAC,WAAW,GAAG,mBAAmB,CAAC,GAAG,GAAG,CAC1C,CAAC;wBAEF,MAAM,MAAM,GAAiB,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;wBAEzD,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,KAAK,SAAS,IAAI,GAAG,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;4BAC7D,MAAM,CAAC,YAAY,GAAG,GAAG,CAAC,MAAM,CAAC,MAAM,CAAC;wBAC1C,CAAC;wBACD,IACE,GAAG,CAAC,MAAM,CAAC,KAAK,EAAE,IAAI,KAAK,SAAS;4BACpC,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,GAAG,CAAC,EACzB,CAAC;4BACD,MAAM,CAAC,eAAe,GAAG,GAAG,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC;wBACjD,CAAC;wBAED,OAAO,MAAM,CAAC;oBAChB,CAAC;gBACH,CAAC;gBAAC,MAAM,CAAC;oBACP,2BAA2B;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,cAAc;QAChB,CAAC;QAED,OAAO,SAAS,CAAC;IACnB,CAAC;IAED;;OAEG;IACK,aAAa,CAAC,KAAoB;QACxC,IAAI,CAAC,KAAK;YAAE,OAAO,IAAI,CAAC;QACxB,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAC7B,IAAI,OAAO,CAAC,MAAM,IAAI,wBAAwB;YAAE,OAAO,OAAO,CAAC;QAC/D,OAAO,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,wBAAwB,GAAG,CAAC,CAAC,KAAK,CAAC;IAChE,CAAC;CACF"}
|
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import { type AgentStatus, type UrlProjectId } from "@yep-anywhere/shared";
|
|
2
|
+
import type { Message, SessionSummary } from "../supervisor/types.js";
|
|
3
|
+
import type { GetSessionOptions, ISessionReader, LoadedSession } from "./types.js";
|
|
4
|
+
export type { GetSessionOptions, ISessionReader } from "./types.js";
|
|
5
|
+
export interface ClaudeSessionReaderOptions {
|
|
6
|
+
sessionDir: string;
|
|
7
|
+
}
|
|
8
|
+
/** @deprecated Use ClaudeSessionReaderOptions */
|
|
9
|
+
export type SessionReaderOptions = ClaudeSessionReaderOptions;
|
|
10
|
+
export type { AgentStatus } from "@yep-anywhere/shared";
|
|
11
|
+
/**
|
|
12
|
+
* Agent session content returned by getAgentSession.
|
|
13
|
+
* Uses the server's Message type (loosely-typed JSONL pass-through).
|
|
14
|
+
*/
|
|
15
|
+
export interface AgentSession {
|
|
16
|
+
messages: Message[];
|
|
17
|
+
status: AgentStatus;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Mapping of toolUseId to agentId.
|
|
21
|
+
* Used to find agent sessions for pending Tasks on page reload.
|
|
22
|
+
*/
|
|
23
|
+
export interface AgentMapping {
|
|
24
|
+
toolUseId: string;
|
|
25
|
+
agentId: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Claude-specific session reader for Claude Code JSONL files.
|
|
29
|
+
*
|
|
30
|
+
* Handles Claude's DAG-based conversation structure with parentUuid,
|
|
31
|
+
* agent sessions, orphaned tool detection, and context window tracking.
|
|
32
|
+
*/
|
|
33
|
+
export declare class ClaudeSessionReader implements ISessionReader {
|
|
34
|
+
private sessionDir;
|
|
35
|
+
constructor(options: ClaudeSessionReaderOptions);
|
|
36
|
+
listSessions(projectId: UrlProjectId): Promise<SessionSummary[]>;
|
|
37
|
+
getSessionSummary(sessionId: string, projectId: UrlProjectId): Promise<SessionSummary | null>;
|
|
38
|
+
getSession(sessionId: string, projectId: UrlProjectId, afterMessageId?: string, _options?: GetSessionOptions): Promise<LoadedSession | null>;
|
|
39
|
+
/**
|
|
40
|
+
* Get agent session content for lazy-loading completed Tasks.
|
|
41
|
+
*
|
|
42
|
+
* Agent JSONL files are stored at: {sessionDir}/agent-{agentId}.jsonl
|
|
43
|
+
* They have the same format as parent session JSONL files.
|
|
44
|
+
*
|
|
45
|
+
* @param agentId - The agent session ID (used as filename: agent-{agentId}.jsonl)
|
|
46
|
+
* @returns Agent session with messages and inferred status
|
|
47
|
+
*/
|
|
48
|
+
getAgentSession(agentId: string): Promise<AgentSession>;
|
|
49
|
+
/**
|
|
50
|
+
* Get mappings of toolUseId → agentId for all agent files in the session directory.
|
|
51
|
+
*
|
|
52
|
+
* This is used to find agent sessions for pending Tasks on page reload.
|
|
53
|
+
* It scans all agent-*.jsonl files and extracts the parent_tool_use_id from
|
|
54
|
+
* the first message or system message.
|
|
55
|
+
*
|
|
56
|
+
* @returns Array of toolUseId → agentId mappings
|
|
57
|
+
*/
|
|
58
|
+
getAgentMappings(): Promise<AgentMapping[]>;
|
|
59
|
+
/**
|
|
60
|
+
* Infer agent status from its messages.
|
|
61
|
+
*
|
|
62
|
+
* Status inference:
|
|
63
|
+
* - pending: no messages
|
|
64
|
+
* - failed: last message has is_error or error type
|
|
65
|
+
* - completed: has a 'result' type message
|
|
66
|
+
* - running: has messages but no result (still in progress or interrupted)
|
|
67
|
+
*/
|
|
68
|
+
private inferAgentStatus;
|
|
69
|
+
private findFirstUserMessage;
|
|
70
|
+
/**
|
|
71
|
+
* Extract context usage from the last assistant message.
|
|
72
|
+
* Usage data is stored in message.usage with input_tokens, cache_read_input_tokens, etc.
|
|
73
|
+
*/
|
|
74
|
+
private extractContextUsage;
|
|
75
|
+
/**
|
|
76
|
+
* Extract the model from the first assistant message.
|
|
77
|
+
* The model is stored in message.model (e.g., "claude-opus-4-5-20251101").
|
|
78
|
+
*/
|
|
79
|
+
private extractModel;
|
|
80
|
+
private extractTitle;
|
|
81
|
+
private extractContent;
|
|
82
|
+
/**
|
|
83
|
+
* Extract content for title generation, skipping IDE metadata blocks.
|
|
84
|
+
* This ensures session titles show the actual user message, not IDE metadata
|
|
85
|
+
* like <ide_opened_file> or <ide_selection> tags.
|
|
86
|
+
*/
|
|
87
|
+
private extractTitleContent;
|
|
88
|
+
/**
|
|
89
|
+
* Get session summary only if the file has changed since the cached values.
|
|
90
|
+
* Used by SessionIndexService for cache invalidation.
|
|
91
|
+
*
|
|
92
|
+
* @param sessionId - The session ID
|
|
93
|
+
* @param projectId - The project ID
|
|
94
|
+
* @param cachedMtime - The mtime (ms since epoch) from the cache
|
|
95
|
+
* @param cachedSize - The file size (bytes) from the cache
|
|
96
|
+
* @returns Summary with file stats if changed, null if unchanged
|
|
97
|
+
*/
|
|
98
|
+
getSessionSummaryIfChanged(sessionId: string, projectId: UrlProjectId, cachedMtime: number, cachedSize: number): Promise<{
|
|
99
|
+
summary: SessionSummary;
|
|
100
|
+
mtime: number;
|
|
101
|
+
size: number;
|
|
102
|
+
} | null>;
|
|
103
|
+
/**
|
|
104
|
+
* Convert a raw JSONL message to our Message format.
|
|
105
|
+
*
|
|
106
|
+
* We pass through all fields from JSONL without stripping.
|
|
107
|
+
* This preserves debugging info, DAG structure, and metadata.
|
|
108
|
+
* The only transformation is:
|
|
109
|
+
* - Normalize content blocks (pass through all fields)
|
|
110
|
+
* - Add computed orphanedToolUseIds
|
|
111
|
+
*/
|
|
112
|
+
private convertMessage;
|
|
113
|
+
}
|
|
114
|
+
/** @deprecated Use ClaudeSessionReader */
|
|
115
|
+
export declare const SessionReader: typeof ClaudeSessionReader;
|
|
116
|
+
/** @deprecated Use ClaudeSessionReader */
|
|
117
|
+
export type SessionReader = ClaudeSessionReader;
|
|
118
|
+
//# sourceMappingURL=reader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reader.d.ts","sourceRoot":"","sources":["../../src/sessions/reader.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,WAAW,EAEhB,KAAK,YAAY,EAGlB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,KAAK,EAGV,OAAO,EACP,cAAc,EACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EACV,iBAAiB,EACjB,cAAc,EACd,aAAa,EACd,MAAM,YAAY,CAAC;AAGpB,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAYpE,MAAM,WAAW,0BAA0B;IACzC,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,iDAAiD;AACjD,MAAM,MAAM,oBAAoB,GAAG,0BAA0B,CAAC;AAG9D,YAAY,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAExD;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED;;;GAGG;AACH,MAAM,WAAW,YAAY;IAC3B,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AAED;;;;;GAKG;AACH,qBAAa,mBAAoB,YAAW,cAAc;IACxD,OAAO,CAAC,UAAU,CAAS;gBAEf,OAAO,EAAE,0BAA0B;IAIzC,YAAY,CAAC,SAAS,EAAE,YAAY,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IA+BhE,iBAAiB,CACrB,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,YAAY,GACtB,OAAO,CAAC,cAAc,GAAG,IAAI,CAAC;IAgE3B,UAAU,CACd,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,YAAY,EACvB,cAAc,CAAC,EAAE,MAAM,EACvB,QAAQ,CAAC,EAAE,iBAAiB,GAC3B,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAyChC;;;;;;;;OAQG;IACG,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IA4C7D;;;;;;;;OAQG;IACG,gBAAgB,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC;IAgDjD;;;;;;;;OAQG;IACH,OAAO,CAAC,gBAAgB;IAwBxB,OAAO,CAAC,oBAAoB;IAoB5B;;;OAGG;IACH,OAAO,CAAC,mBAAmB;IA0D3B;;;OAGG;IACH,OAAO,CAAC,YAAY;IAapB,OAAO,CAAC,YAAY;IAOpB,OAAO,CAAC,cAAc;IAatB;;;;OAIG;IACH,OAAO,CAAC,mBAAmB;IAiB3B;;;;;;;;;OASG;IACG,0BAA0B,CAC9B,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,YAAY,EACvB,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,GACjB,OAAO,CAAC;QAAE,OAAO,EAAE,cAAc,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAuB3E;;;;;;;;OAQG;IACH,OAAO,CAAC,cAAc;CAoDvB;AAED,0CAA0C;AAC1C,eAAO,MAAM,aAAa,4BAAsB,CAAC;AACjD,0CAA0C;AAC1C,MAAM,MAAM,aAAa,GAAG,mBAAmB,CAAC"}
|