@jingyi0605/codingns 0.1.5 → 0.2.5
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 +44 -0
- package/bin/codingns.mjs +640 -53
- package/dist/public/assets/{TerminalPage-4p6EBqrR.js → TerminalPage-BkjqU9NG.js} +19 -19
- package/dist/public/assets/index-C6U8-9jg.css +1 -0
- package/dist/public/assets/index-CKSumuV2.js +109 -0
- package/dist/public/index.html +2 -2
- package/dist/server/config/env.d.ts +2 -0
- package/dist/server/config/env.js +8 -1
- package/dist/server/config/env.js.map +1 -1
- package/dist/server/modules/assistant-capability/assistant-capability-controller.d.ts +89 -0
- package/dist/server/modules/assistant-capability/assistant-capability-controller.js +138 -0
- package/dist/server/modules/assistant-capability/assistant-capability-controller.js.map +1 -0
- package/dist/server/modules/assistant-capability/assistant-capability-service.d.ts +115 -0
- package/dist/server/modules/assistant-capability/assistant-capability-service.js +241 -0
- package/dist/server/modules/assistant-capability/assistant-capability-service.js.map +1 -0
- package/dist/server/modules/butler/butler-control-session-service.js +69 -30
- package/dist/server/modules/butler/butler-control-session-service.js.map +1 -1
- package/dist/server/modules/butler/butler-follow-up-scheduler.d.ts +9 -0
- package/dist/server/modules/butler/butler-follow-up-scheduler.js +47 -11
- package/dist/server/modules/butler/butler-follow-up-scheduler.js.map +1 -1
- package/dist/server/modules/butler/butler-follow-up-service.d.ts +7 -1
- package/dist/server/modules/butler/butler-follow-up-service.js +10 -0
- package/dist/server/modules/butler/butler-follow-up-service.js.map +1 -1
- package/dist/server/modules/butler/butler-session-service.d.ts +2 -1
- package/dist/server/modules/butler/butler-session-service.js +10 -1
- package/dist/server/modules/butler/butler-session-service.js.map +1 -1
- package/dist/server/modules/butler/butler-session-summary-service.d.ts +8 -1
- package/dist/server/modules/butler/butler-session-summary-service.js +34 -7
- package/dist/server/modules/butler/butler-session-summary-service.js.map +1 -1
- package/dist/server/modules/butler/context-aggregator.js +44 -13
- package/dist/server/modules/butler/context-aggregator.js.map +1 -1
- package/dist/server/modules/butler/patrol-scheduler.d.ts +9 -0
- package/dist/server/modules/butler/patrol-scheduler.js +63 -9
- package/dist/server/modules/butler/patrol-scheduler.js.map +1 -1
- package/dist/server/modules/butler/session-summary-scheduler.d.ts +9 -0
- package/dist/server/modules/butler/session-summary-scheduler.js +47 -11
- package/dist/server/modules/butler/session-summary-scheduler.js.map +1 -1
- package/dist/server/modules/debug-target/debug-runtime-reconciliation-scheduler.d.ts +38 -0
- package/dist/server/modules/debug-target/debug-runtime-reconciliation-scheduler.js +99 -0
- package/dist/server/modules/debug-target/debug-runtime-reconciliation-scheduler.js.map +1 -0
- package/dist/server/modules/debug-target/debug-target-controller.d.ts +70 -0
- package/dist/server/modules/debug-target/debug-target-controller.js +113 -0
- package/dist/server/modules/debug-target/debug-target-controller.js.map +1 -0
- package/dist/server/modules/debug-target/debug-target-service.d.ts +102 -0
- package/dist/server/modules/debug-target/debug-target-service.js +1484 -0
- package/dist/server/modules/debug-target/debug-target-service.js.map +1 -0
- package/dist/server/modules/debug-target/framework-compatibility-matrix.d.ts +4 -0
- package/dist/server/modules/debug-target/framework-compatibility-matrix.js +45 -0
- package/dist/server/modules/debug-target/framework-compatibility-matrix.js.map +1 -0
- package/dist/server/modules/debug-target/launch-adapter-registry.d.ts +25 -0
- package/dist/server/modules/debug-target/launch-adapter-registry.js +445 -0
- package/dist/server/modules/debug-target/launch-adapter-registry.js.map +1 -0
- package/dist/server/modules/file/file-content-service.d.ts +2 -1
- package/dist/server/modules/file/file-content-service.js +53 -0
- package/dist/server/modules/file/file-content-service.js.map +1 -1
- package/dist/server/modules/file/file-controller.d.ts +12 -1
- package/dist/server/modules/file/file-controller.js +72 -1
- package/dist/server/modules/file/file-controller.js.map +1 -1
- package/dist/server/modules/file/file-preview-link-service.d.ts +22 -0
- package/dist/server/modules/file/file-preview-link-service.js +160 -0
- package/dist/server/modules/file/file-preview-link-service.js.map +1 -0
- package/dist/server/modules/git/commit-orchestrator.d.ts +4 -1
- package/dist/server/modules/git/commit-orchestrator.js +18 -1
- package/dist/server/modules/git/commit-orchestrator.js.map +1 -1
- package/dist/server/modules/git/git-auth.d.ts +25 -0
- package/dist/server/modules/git/git-auth.js +88 -0
- package/dist/server/modules/git/git-auth.js.map +1 -0
- package/dist/server/modules/git/git-controller.d.ts +6 -0
- package/dist/server/modules/git/git-controller.js +5 -1
- package/dist/server/modules/git/git-controller.js.map +1 -1
- package/dist/server/modules/git/git-read-service.d.ts +2 -1
- package/dist/server/modules/git/git-read-service.js +19 -2
- package/dist/server/modules/git/git-read-service.js.map +1 -1
- package/dist/server/modules/git/git-remote-credential-service.d.ts +9 -0
- package/dist/server/modules/git/git-remote-credential-service.js +76 -0
- package/dist/server/modules/git/git-remote-credential-service.js.map +1 -0
- package/dist/server/modules/git/git-write-service.d.ts +5 -2
- package/dist/server/modules/git/git-write-service.js +33 -17
- package/dist/server/modules/git/git-write-service.js.map +1 -1
- package/dist/server/modules/git/types.d.ts +3 -0
- package/dist/server/modules/git/workspace-repo-guard.js +3 -2
- package/dist/server/modules/git/workspace-repo-guard.js.map +1 -1
- package/dist/server/modules/provider/codex-model-options.d.ts +3 -1
- package/dist/server/modules/provider/codex-model-options.js +4 -1
- package/dist/server/modules/provider/codex-model-options.js.map +1 -1
- package/dist/server/modules/provider/opencode-model-options.d.ts +3 -1
- package/dist/server/modules/provider/opencode-model-options.js +5 -1
- package/dist/server/modules/provider/opencode-model-options.js.map +1 -1
- package/dist/server/modules/provider/provider-discovery-helper-client.d.ts +24 -0
- package/dist/server/modules/provider/provider-discovery-helper-client.js +14 -0
- package/dist/server/modules/provider/provider-discovery-helper-client.js.map +1 -1
- package/dist/server/modules/provider/provider-discovery-helper-process.js +54 -0
- package/dist/server/modules/provider/provider-discovery-helper-process.js.map +1 -1
- package/dist/server/modules/sessions/codex-app-server-helper-client.d.ts +2 -1
- package/dist/server/modules/sessions/codex-app-server-helper-client.js +103 -0
- package/dist/server/modules/sessions/codex-app-server-helper-client.js.map +1 -1
- package/dist/server/modules/sessions/codex-app-server-helper-process.js +106 -1
- package/dist/server/modules/sessions/codex-app-server-helper-process.js.map +1 -1
- package/dist/server/modules/sessions/session-controller.d.ts +26 -0
- package/dist/server/modules/sessions/session-controller.js +39 -1
- package/dist/server/modules/sessions/session-controller.js.map +1 -1
- package/dist/server/modules/sessions/session-history-service.d.ts +51 -5
- package/dist/server/modules/sessions/session-history-service.js +906 -59
- package/dist/server/modules/sessions/session-history-service.js.map +1 -1
- package/dist/server/modules/sessions/session-live-runtime-service.d.ts +5 -0
- package/dist/server/modules/sessions/session-live-runtime-service.js +59 -2
- package/dist/server/modules/sessions/session-live-runtime-service.js.map +1 -1
- package/dist/server/modules/sessions/session-provider-error-mapper.js +66 -0
- package/dist/server/modules/sessions/session-provider-error-mapper.js.map +1 -1
- package/dist/server/modules/tasks/event-loop-monitor.d.ts +21 -0
- package/dist/server/modules/tasks/event-loop-monitor.js +64 -0
- package/dist/server/modules/tasks/event-loop-monitor.js.map +1 -0
- package/dist/server/modules/tasks/observability-controller.d.ts +30 -0
- package/dist/server/modules/tasks/observability-controller.js +44 -0
- package/dist/server/modules/tasks/observability-controller.js.map +1 -0
- package/dist/server/modules/tasks/observability-service.d.ts +32 -0
- package/dist/server/modules/tasks/observability-service.js +104 -0
- package/dist/server/modules/tasks/observability-service.js.map +1 -0
- package/dist/server/modules/tasks/scheduler-metrics.d.ts +41 -0
- package/dist/server/modules/tasks/scheduler-metrics.js +92 -0
- package/dist/server/modules/tasks/scheduler-metrics.js.map +1 -0
- package/dist/server/modules/tasks/task-activity-log.d.ts +39 -0
- package/dist/server/modules/tasks/task-activity-log.js +43 -0
- package/dist/server/modules/tasks/task-activity-log.js.map +1 -0
- package/dist/server/modules/tasks/task-helper-client.d.ts +11 -0
- package/dist/server/modules/tasks/task-helper-client.js +132 -0
- package/dist/server/modules/tasks/task-helper-client.js.map +1 -0
- package/dist/server/modules/tasks/task-helper-process-handlers.d.ts +16 -0
- package/dist/server/modules/tasks/task-helper-process-handlers.js +14 -0
- package/dist/server/modules/tasks/task-helper-process-handlers.js.map +1 -0
- package/dist/server/modules/tasks/task-helper-process.d.ts +1 -0
- package/dist/server/modules/tasks/task-helper-process.js +49 -0
- package/dist/server/modules/tasks/task-helper-process.js.map +1 -0
- package/dist/server/modules/tasks/task-lane-executors.d.ts +2 -0
- package/dist/server/modules/tasks/task-lane-executors.js +15 -0
- package/dist/server/modules/tasks/task-lane-executors.js.map +1 -0
- package/dist/server/modules/tasks/task-manager.d.ts +15 -0
- package/dist/server/modules/tasks/task-manager.js +36 -0
- package/dist/server/modules/tasks/task-manager.js.map +1 -0
- package/dist/server/modules/tasks/task-metrics.d.ts +9 -0
- package/dist/server/modules/tasks/task-metrics.js +81 -0
- package/dist/server/modules/tasks/task-metrics.js.map +1 -0
- package/dist/server/modules/tasks/task-registry.d.ts +7 -0
- package/dist/server/modules/tasks/task-registry.js +21 -0
- package/dist/server/modules/tasks/task-registry.js.map +1 -0
- package/dist/server/modules/tasks/task-scheduler.d.ts +31 -0
- package/dist/server/modules/tasks/task-scheduler.js +473 -0
- package/dist/server/modules/tasks/task-scheduler.js.map +1 -0
- package/dist/server/modules/tasks/task-types.d.ts +106 -0
- package/dist/server/modules/tasks/task-types.js +23 -0
- package/dist/server/modules/tasks/task-types.js.map +1 -0
- package/dist/server/modules/terminal/command-template-service.d.ts +4 -0
- package/dist/server/modules/terminal/command-template-service.js +5 -3
- package/dist/server/modules/terminal/command-template-service.js.map +1 -1
- package/dist/server/modules/terminal/runtime/terminal-log-spooler.d.ts +7 -3
- package/dist/server/modules/terminal/runtime/terminal-log-spooler.js +95 -15
- package/dist/server/modules/terminal/runtime/terminal-log-spooler.js.map +1 -1
- package/dist/server/modules/terminal/runtime/terminal-log-writer-client.d.ts +21 -0
- package/dist/server/modules/terminal/runtime/terminal-log-writer-client.js +144 -0
- package/dist/server/modules/terminal/runtime/terminal-log-writer-client.js.map +1 -0
- package/dist/server/modules/terminal/runtime/terminal-log-writer-process.d.ts +1 -0
- package/dist/server/modules/terminal/runtime/terminal-log-writer-process.js +187 -0
- package/dist/server/modules/terminal/runtime/terminal-log-writer-process.js.map +1 -0
- package/dist/server/modules/terminal/terminal-service.d.ts +12 -0
- package/dist/server/modules/terminal/terminal-service.js +34 -17
- package/dist/server/modules/terminal/terminal-service.js.map +1 -1
- package/dist/server/modules/workbench/workbench-service.d.ts +23 -2
- package/dist/server/modules/workbench/workbench-service.js +126 -15
- package/dist/server/modules/workbench/workbench-service.js.map +1 -1
- package/dist/server/modules/workbench/workspace-panel-snapshot-service.d.ts +5 -1
- package/dist/server/modules/workbench/workspace-panel-snapshot-service.js +88 -19
- package/dist/server/modules/workbench/workspace-panel-snapshot-service.js.map +1 -1
- package/dist/server/modules/workspace/workspace-code-composition.d.ts +2 -0
- package/dist/server/modules/workspace/workspace-code-composition.js +154 -0
- package/dist/server/modules/workspace/workspace-code-composition.js.map +1 -0
- package/dist/server/modules/workspace/workspace-controller.d.ts +14 -0
- package/dist/server/modules/workspace/workspace-controller.js +19 -0
- package/dist/server/modules/workspace/workspace-controller.js.map +1 -1
- package/dist/server/modules/workspace/workspace-service.d.ts +21 -14
- package/dist/server/modules/workspace/workspace-service.js +183 -234
- package/dist/server/modules/workspace/workspace-service.js.map +1 -1
- package/dist/server/modules/worktree/worktree-cleanup-service.d.ts +35 -0
- package/dist/server/modules/worktree/worktree-cleanup-service.js +210 -0
- package/dist/server/modules/worktree/worktree-cleanup-service.js.map +1 -0
- package/dist/server/modules/worktree/worktree-controller.d.ts +44 -0
- package/dist/server/modules/worktree/worktree-controller.js +40 -0
- package/dist/server/modules/worktree/worktree-controller.js.map +1 -0
- package/dist/server/modules/worktree/worktree-manager.d.ts +34 -0
- package/dist/server/modules/worktree/worktree-manager.js +292 -0
- package/dist/server/modules/worktree/worktree-manager.js.map +1 -0
- package/dist/server/modules/worktree/worktree-merge-service.d.ts +52 -0
- package/dist/server/modules/worktree/worktree-merge-service.js +293 -0
- package/dist/server/modules/worktree/worktree-merge-service.js.map +1 -0
- package/dist/server/modules/worktree/worktree-sync-service.d.ts +23 -0
- package/dist/server/modules/worktree/worktree-sync-service.js +166 -0
- package/dist/server/modules/worktree/worktree-sync-service.js.map +1 -0
- package/dist/server/routes/assistant.d.ts +3 -0
- package/dist/server/routes/assistant.js +15 -0
- package/dist/server/routes/assistant.js.map +1 -0
- package/dist/server/routes/debug-targets.d.ts +3 -0
- package/dist/server/routes/debug-targets.js +15 -0
- package/dist/server/routes/debug-targets.js.map +1 -0
- package/dist/server/routes/files.js +2 -0
- package/dist/server/routes/files.js.map +1 -1
- package/dist/server/routes/git.js +1 -0
- package/dist/server/routes/git.js.map +1 -1
- package/dist/server/routes/observability.d.ts +3 -0
- package/dist/server/routes/observability.js +7 -0
- package/dist/server/routes/observability.js.map +1 -0
- package/dist/server/routes/sessions.js +1 -0
- package/dist/server/routes/sessions.js.map +1 -1
- package/dist/server/routes/workspaces.js +2 -0
- package/dist/server/routes/workspaces.js.map +1 -1
- package/dist/server/routes/worktrees.d.ts +3 -0
- package/dist/server/routes/worktrees.js +8 -0
- package/dist/server/routes/worktrees.js.map +1 -0
- package/dist/server/server/create-server.d.ts +38 -0
- package/dist/server/server/create-server.js +106 -11
- package/dist/server/server/create-server.js.map +1 -1
- package/dist/server/shared/utils/command-availability.d.ts +1 -0
- package/dist/server/shared/utils/command-availability.js +83 -0
- package/dist/server/shared/utils/command-availability.js.map +1 -0
- package/dist/server/shared/utils/secret-box.d.ts +2 -0
- package/dist/server/shared/utils/secret-box.js +29 -0
- package/dist/server/shared/utils/secret-box.js.map +1 -0
- package/dist/server/shared/utils/terminal-debug-log.js +5 -3
- package/dist/server/shared/utils/terminal-debug-log.js.map +1 -1
- package/dist/server/storage/repositories/ai-fallback-edit-repository.d.ts +11 -0
- package/dist/server/storage/repositories/ai-fallback-edit-repository.js +118 -0
- package/dist/server/storage/repositories/ai-fallback-edit-repository.js.map +1 -0
- package/dist/server/storage/repositories/debug-runtime-session-repository.d.ts +11 -0
- package/dist/server/storage/repositories/debug-runtime-session-repository.js +100 -0
- package/dist/server/storage/repositories/debug-runtime-session-repository.js.map +1 -0
- package/dist/server/storage/repositories/debug-service-repository.d.ts +9 -0
- package/dist/server/storage/repositories/debug-service-repository.js +99 -0
- package/dist/server/storage/repositories/debug-service-repository.js.map +1 -0
- package/dist/server/storage/repositories/debug-target-repository.d.ts +11 -0
- package/dist/server/storage/repositories/debug-target-repository.js +100 -0
- package/dist/server/storage/repositories/debug-target-repository.js.map +1 -0
- package/dist/server/storage/repositories/framework-analysis-result-repository.d.ts +9 -0
- package/dist/server/storage/repositories/framework-analysis-result-repository.js +98 -0
- package/dist/server/storage/repositories/framework-analysis-result-repository.js.map +1 -0
- package/dist/server/storage/repositories/git-remote-credential-repository.d.ts +9 -0
- package/dist/server/storage/repositories/git-remote-credential-repository.js +51 -0
- package/dist/server/storage/repositories/git-remote-credential-repository.js.map +1 -0
- package/dist/server/storage/repositories/port-lease-repository.d.ts +12 -0
- package/dist/server/storage/repositories/port-lease-repository.js +124 -0
- package/dist/server/storage/repositories/port-lease-repository.js.map +1 -0
- package/dist/server/storage/repositories/runtime-binding-repository.d.ts +10 -0
- package/dist/server/storage/repositories/runtime-binding-repository.js +89 -0
- package/dist/server/storage/repositories/runtime-binding-repository.js.map +1 -0
- package/dist/server/storage/repositories/session-fork-repository.d.ts +8 -0
- package/dist/server/storage/repositories/session-fork-repository.js +69 -0
- package/dist/server/storage/repositories/session-fork-repository.js.map +1 -0
- package/dist/server/storage/repositories/session-index-repository.js +40 -2
- package/dist/server/storage/repositories/session-index-repository.js.map +1 -1
- package/dist/server/storage/repositories/terminal-command-template-repository.js +77 -4
- package/dist/server/storage/repositories/terminal-command-template-repository.js.map +1 -1
- package/dist/server/storage/repositories/terminal-instance-repository.js +89 -7
- package/dist/server/storage/repositories/terminal-instance-repository.js.map +1 -1
- package/dist/server/storage/repositories/workspace-navigation-state-repository.d.ts +9 -0
- package/dist/server/storage/repositories/workspace-navigation-state-repository.js +49 -0
- package/dist/server/storage/repositories/workspace-navigation-state-repository.js.map +1 -0
- package/dist/server/storage/repositories/workspace-repository.d.ts +7 -1
- package/dist/server/storage/repositories/workspace-repository.js +32 -8
- package/dist/server/storage/repositories/workspace-repository.js.map +1 -1
- package/dist/server/storage/repositories/workspace-worktree-repository.d.ts +13 -0
- package/dist/server/storage/repositories/workspace-worktree-repository.js +158 -0
- package/dist/server/storage/repositories/workspace-worktree-repository.js.map +1 -0
- package/dist/server/storage/sqlite/client.js +408 -0
- package/dist/server/storage/sqlite/client.js.map +1 -1
- package/dist/server/storage/sqlite/schema.sql +268 -0
- package/dist/server/types/domain.d.ts +256 -1
- package/dist/server/ws/workbench-ws-hub.js +33 -9
- package/dist/server/ws/workbench-ws-hub.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.d.ts +6 -1
- package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.js +240 -7
- package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/providers/codex.d.ts +26 -1
- package/node_modules/@codingns/session-sync-core/dist/providers/codex.js +507 -2
- package/node_modules/@codingns/session-sync-core/dist/providers/codex.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/providers/gemini.js +94 -5
- package/node_modules/@codingns/session-sync-core/dist/providers/gemini.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/providers/opencode.d.ts +5 -1
- package/node_modules/@codingns/session-sync-core/dist/providers/opencode.js +293 -3
- package/node_modules/@codingns/session-sync-core/dist/providers/opencode.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/providers/utils.d.ts +1 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/utils.js +117 -17
- package/node_modules/@codingns/session-sync-core/dist/providers/utils.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.d.ts +10 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js +128 -8
- package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/services.d.ts +2 -1
- package/node_modules/@codingns/session-sync-core/dist/services.js +55 -8
- package/node_modules/@codingns/session-sync-core/dist/services.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/types.d.ts +33 -0
- package/package.json +1 -1
- package/dist/public/assets/index-CxeghocY.css +0 -1
- package/dist/public/assets/index-DXusStl0.js +0 -108
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import { existsSync } from "node:fs";
|
|
2
|
+
import { randomUUID } from "node:crypto";
|
|
2
3
|
import { homedir } from "node:os";
|
|
3
4
|
import { join } from "node:path";
|
|
4
5
|
import { ensureText, nextTimestamp, normalizeWorkspacePath, sliceHistory } from "./utils.js";
|
|
5
|
-
import { buildMessageRawRef, buildSessionRawStoreRef, firstValidNumber, normalizeOpenCodeMessageEnvelopes, parseSessionIdFromRawStoreRef, readInteger, toIsoTimestamp, toJsonRecord, workspaceMatches } from "./opencode-shared.js";
|
|
6
|
+
import { buildMessageRawRef, normalizeOpenCodePartMessage, buildSessionRawStoreRef, firstValidNumber, normalizeOpenCodeMessageEnvelopes, parseSessionIdFromRawStoreRef, readInteger, toIsoTimestamp, toJsonRecord, workspaceMatches } from "./opencode-shared.js";
|
|
6
7
|
import { createOpenCodeMessagePermissionOptions } from "./opencode-permissions.js";
|
|
7
8
|
import { loadDatabaseSync } from "../sqlite/node-sqlite.js";
|
|
8
9
|
const DEFAULT_DATA_DIR = join(homedir(), ".local", "share", "opencode");
|
|
@@ -144,6 +145,39 @@ export class OpenCodeAdapter {
|
|
|
144
145
|
initialCursor: null
|
|
145
146
|
};
|
|
146
147
|
}
|
|
148
|
+
async forkSession(providerSessionId, rawWorkspacePath, options) {
|
|
149
|
+
const sourceSessionId = this.resolveSessionId(providerSessionId, options.rawStoreRef);
|
|
150
|
+
const workspacePath = rawWorkspacePath.trim() || rawWorkspacePath;
|
|
151
|
+
if (options.sourceType === "message" && !(options.sourceMessageId?.trim())) {
|
|
152
|
+
throw new Error("FORK_SOURCE_MESSAGE_ID_REQUIRED");
|
|
153
|
+
}
|
|
154
|
+
const forked = this.cloneSessionFromSqlite({
|
|
155
|
+
sourceSessionId,
|
|
156
|
+
workspacePath,
|
|
157
|
+
sourceType: options.sourceType,
|
|
158
|
+
sourceMessageId: options.sourceMessageId?.trim() || null,
|
|
159
|
+
sourceMessageSnapshot: options.sourceMessageSnapshot ?? null
|
|
160
|
+
});
|
|
161
|
+
return {
|
|
162
|
+
session: {
|
|
163
|
+
provider: this.providerId,
|
|
164
|
+
providerSessionId: forked.providerSessionId,
|
|
165
|
+
title: forked.title,
|
|
166
|
+
workspacePath,
|
|
167
|
+
rawStoreRef: buildSessionRawStoreRef(forked.providerSessionId),
|
|
168
|
+
isArchived: false,
|
|
169
|
+
lastMessageAt: forked.lastMessageAt,
|
|
170
|
+
messageCount: forked.inheritedPrefixMessageCount,
|
|
171
|
+
parentProviderSessionId: null,
|
|
172
|
+
isSubagent: false,
|
|
173
|
+
subagentLabel: null
|
|
174
|
+
},
|
|
175
|
+
forkMethod: options.sourceType === "session" ? "native_session_fork" : "native_message_fork",
|
|
176
|
+
forkSourceType: options.sourceType,
|
|
177
|
+
inheritedPrefixMessageCount: forked.inheritedPrefixMessageCount,
|
|
178
|
+
providerSourceMessageId: forked.providerSourceMessageId
|
|
179
|
+
};
|
|
180
|
+
}
|
|
147
181
|
async sendMessage(providerSessionId, rawStoreRef, content, clientRequestId, permissionMode) {
|
|
148
182
|
const sessionId = this.resolveSessionId(providerSessionId, rawStoreRef);
|
|
149
183
|
const trimmed = content.trim();
|
|
@@ -173,7 +207,10 @@ export class OpenCodeAdapter {
|
|
|
173
207
|
throw new Error("PROVIDER_SESSION_NOT_FOUND");
|
|
174
208
|
}
|
|
175
209
|
const title = ensureText(row.title).trim();
|
|
176
|
-
|
|
210
|
+
if (title) {
|
|
211
|
+
return title;
|
|
212
|
+
}
|
|
213
|
+
return this.readFirstUserMessageTitleFromSqlite(sessionId) || sessionId;
|
|
177
214
|
}
|
|
178
215
|
async renameSessionTitle(providerSessionId, rawStoreRef, title) {
|
|
179
216
|
const sessionId = this.resolveSessionId(providerSessionId, rawStoreRef);
|
|
@@ -265,7 +302,7 @@ export class OpenCodeAdapter {
|
|
|
265
302
|
};
|
|
266
303
|
}
|
|
267
304
|
catch (error) {
|
|
268
|
-
if (isServerUnavailableError(error)) {
|
|
305
|
+
if (isServerUnavailableError(error) || isServerTimeoutError(error)) {
|
|
269
306
|
return null;
|
|
270
307
|
}
|
|
271
308
|
throw error;
|
|
@@ -426,6 +463,196 @@ export class OpenCodeAdapter {
|
|
|
426
463
|
}
|
|
427
464
|
return Math.max(1_000, Math.floor(configured));
|
|
428
465
|
}
|
|
466
|
+
cloneSessionFromSqlite(input) {
|
|
467
|
+
const forkedSessionId = `ses_${randomUUID().replaceAll("-", "")}`;
|
|
468
|
+
const nowMs = Date.now();
|
|
469
|
+
return this.withWritableDb((db) => {
|
|
470
|
+
const sourceSession = db.prepare(`SELECT
|
|
471
|
+
id,
|
|
472
|
+
project_id,
|
|
473
|
+
parent_id,
|
|
474
|
+
slug,
|
|
475
|
+
directory,
|
|
476
|
+
title,
|
|
477
|
+
version,
|
|
478
|
+
share_url,
|
|
479
|
+
summary_additions,
|
|
480
|
+
summary_deletions,
|
|
481
|
+
summary_files,
|
|
482
|
+
summary_diffs,
|
|
483
|
+
revert,
|
|
484
|
+
permission,
|
|
485
|
+
time_created,
|
|
486
|
+
time_updated,
|
|
487
|
+
time_compacting,
|
|
488
|
+
time_archived,
|
|
489
|
+
workspace_id
|
|
490
|
+
FROM session
|
|
491
|
+
WHERE id = ?
|
|
492
|
+
LIMIT 1`).get(input.sourceSessionId);
|
|
493
|
+
if (!sourceSession) {
|
|
494
|
+
throw new Error("PROVIDER_SESSION_NOT_FOUND");
|
|
495
|
+
}
|
|
496
|
+
const sourceMessageRows = db.prepare(`SELECT id, time_created, time_updated, data
|
|
497
|
+
FROM message
|
|
498
|
+
WHERE session_id = ?
|
|
499
|
+
ORDER BY COALESCE(time_updated, time_created), time_created, id`).all(input.sourceSessionId);
|
|
500
|
+
const readPartRows = db.prepare(`SELECT id, message_id, time_created, time_updated, data
|
|
501
|
+
FROM part
|
|
502
|
+
WHERE session_id = ? AND message_id = ?
|
|
503
|
+
ORDER BY COALESCE(time_updated, time_created), time_created, id`);
|
|
504
|
+
const insertSession = db.prepare(`INSERT INTO session (
|
|
505
|
+
id,
|
|
506
|
+
project_id,
|
|
507
|
+
parent_id,
|
|
508
|
+
slug,
|
|
509
|
+
directory,
|
|
510
|
+
title,
|
|
511
|
+
version,
|
|
512
|
+
share_url,
|
|
513
|
+
summary_additions,
|
|
514
|
+
summary_deletions,
|
|
515
|
+
summary_files,
|
|
516
|
+
summary_diffs,
|
|
517
|
+
revert,
|
|
518
|
+
permission,
|
|
519
|
+
time_created,
|
|
520
|
+
time_updated,
|
|
521
|
+
time_compacting,
|
|
522
|
+
time_archived,
|
|
523
|
+
workspace_id
|
|
524
|
+
) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)`);
|
|
525
|
+
const insertMessage = db.prepare(`INSERT INTO message (
|
|
526
|
+
id,
|
|
527
|
+
session_id,
|
|
528
|
+
time_created,
|
|
529
|
+
time_updated,
|
|
530
|
+
data
|
|
531
|
+
) VALUES (?, ?, ?, ?, ?)`);
|
|
532
|
+
const insertPart = db.prepare(`INSERT INTO part (
|
|
533
|
+
id,
|
|
534
|
+
message_id,
|
|
535
|
+
session_id,
|
|
536
|
+
time_created,
|
|
537
|
+
time_updated,
|
|
538
|
+
data
|
|
539
|
+
) VALUES (?, ?, ?, ?, ?, ?)`);
|
|
540
|
+
let derivedTitle = null;
|
|
541
|
+
insertSession.run(forkedSessionId, ensureText(sourceSession.project_id).trim() || "global", null, buildForkSlug(ensureText(sourceSession.slug).trim(), forkedSessionId), input.workspacePath, "", ensureText(sourceSession.version).trim() || "v1", ensureNullableText(sourceSession.share_url), readInteger(sourceSession.summary_additions), readInteger(sourceSession.summary_deletions), readInteger(sourceSession.summary_files), ensureNullableText(sourceSession.summary_diffs), ensureNullableText(sourceSession.revert), ensureNullableText(sourceSession.permission), readInteger(sourceSession.time_created) ?? nowMs, nowMs, readInteger(sourceSession.time_compacting), null, ensureNullableText(sourceSession.workspace_id));
|
|
542
|
+
let inheritedPrefixMessageCount = 0;
|
|
543
|
+
let providerSourceMessageId = null;
|
|
544
|
+
let lastMessageAtMs = firstValidNumber(sourceSession.time_updated, sourceSession.time_created);
|
|
545
|
+
let reachedAnchor = false;
|
|
546
|
+
for (const messageRow of sourceMessageRows) {
|
|
547
|
+
const sourceMessageRowId = ensureText(messageRow.id).trim();
|
|
548
|
+
if (!sourceMessageRowId) {
|
|
549
|
+
continue;
|
|
550
|
+
}
|
|
551
|
+
const partRows = readPartRows.all(input.sourceSessionId, sourceMessageRowId);
|
|
552
|
+
const includedPartRows = [];
|
|
553
|
+
for (const partRow of partRows) {
|
|
554
|
+
const sourcePartId = ensureText(partRow.id).trim();
|
|
555
|
+
if (!sourcePartId) {
|
|
556
|
+
continue;
|
|
557
|
+
}
|
|
558
|
+
includedPartRows.push(partRow);
|
|
559
|
+
const normalized = normalizeOpenCodePartMessage({
|
|
560
|
+
sessionId: input.sourceSessionId,
|
|
561
|
+
providerSessionId: input.sourceSessionId,
|
|
562
|
+
partId: sourcePartId,
|
|
563
|
+
messageId: sourceMessageRowId,
|
|
564
|
+
partPayload: toJsonRecord(partRow.data) ?? {},
|
|
565
|
+
messagePayload: toJsonRecord(messageRow.data) ?? {},
|
|
566
|
+
defaultTimestamp: toIsoTimestamp(firstValidNumber(partRow.time_created, messageRow.time_created, messageRow.time_updated), null) ?? nextTimestamp()
|
|
567
|
+
});
|
|
568
|
+
if (normalized) {
|
|
569
|
+
inheritedPrefixMessageCount += 1;
|
|
570
|
+
lastMessageAtMs = Date.parse(normalized.timestamp);
|
|
571
|
+
if (derivedTitle === null) {
|
|
572
|
+
derivedTitle = resolveOpenCodeMessageTitle(normalized);
|
|
573
|
+
}
|
|
574
|
+
}
|
|
575
|
+
if (input.sourceType === "message" && normalized?.messageId === input.sourceMessageId) {
|
|
576
|
+
providerSourceMessageId = sourcePartId;
|
|
577
|
+
if (input.sourceMessageSnapshot) {
|
|
578
|
+
includedPartRows[includedPartRows.length - 1] = {
|
|
579
|
+
...partRow,
|
|
580
|
+
data: applyOpenCodeForkSourceSnapshot(toJsonRecord(partRow.data) ?? {}, input.sourceMessageSnapshot)
|
|
581
|
+
};
|
|
582
|
+
}
|
|
583
|
+
reachedAnchor = true;
|
|
584
|
+
break;
|
|
585
|
+
}
|
|
586
|
+
}
|
|
587
|
+
if (includedPartRows.length === 0) {
|
|
588
|
+
continue;
|
|
589
|
+
}
|
|
590
|
+
const forkedMessageId = randomUUID();
|
|
591
|
+
insertMessage.run(forkedMessageId, forkedSessionId, readInteger(messageRow.time_created) ?? nowMs, readInteger(messageRow.time_updated) ?? readInteger(messageRow.time_created) ?? nowMs, JSON.stringify(toJsonRecord(messageRow.data) ?? {}));
|
|
592
|
+
for (const partRow of includedPartRows) {
|
|
593
|
+
insertPart.run(randomUUID(), forkedMessageId, forkedSessionId, readInteger(partRow.time_created) ?? nowMs, readInteger(partRow.time_updated) ?? readInteger(partRow.time_created) ?? nowMs, JSON.stringify(toJsonRecord(partRow.data) ?? {}));
|
|
594
|
+
}
|
|
595
|
+
if (reachedAnchor) {
|
|
596
|
+
break;
|
|
597
|
+
}
|
|
598
|
+
}
|
|
599
|
+
if (input.sourceType === "message" && !reachedAnchor) {
|
|
600
|
+
throw new Error("FORK_SOURCE_MESSAGE_NOT_FOUND");
|
|
601
|
+
}
|
|
602
|
+
const resolvedTitle = derivedTitle ?? "";
|
|
603
|
+
db.prepare("UPDATE session SET title = ? WHERE id = ?").run(resolvedTitle, forkedSessionId);
|
|
604
|
+
return {
|
|
605
|
+
providerSessionId: forkedSessionId,
|
|
606
|
+
title: resolvedTitle,
|
|
607
|
+
lastMessageAt: toIsoTimestamp(lastMessageAtMs, nextTimestamp()),
|
|
608
|
+
inheritedPrefixMessageCount,
|
|
609
|
+
providerSourceMessageId
|
|
610
|
+
};
|
|
611
|
+
});
|
|
612
|
+
}
|
|
613
|
+
readFirstUserMessageTitleFromSqlite(sessionId) {
|
|
614
|
+
return this.withReadonlyDb((db) => {
|
|
615
|
+
const rows = db.prepare(`SELECT
|
|
616
|
+
message.id AS message_id,
|
|
617
|
+
message.time_created AS message_time_created,
|
|
618
|
+
message.time_updated AS message_time_updated,
|
|
619
|
+
message.data AS message_data,
|
|
620
|
+
part.id AS part_id,
|
|
621
|
+
part.time_created AS part_time_created,
|
|
622
|
+
part.time_updated AS part_time_updated,
|
|
623
|
+
part.data AS part_data
|
|
624
|
+
FROM message
|
|
625
|
+
INNER JOIN part
|
|
626
|
+
ON part.message_id = message.id
|
|
627
|
+
AND part.session_id = message.session_id
|
|
628
|
+
WHERE message.session_id = ?
|
|
629
|
+
ORDER BY COALESCE(part.time_updated, part.time_created, message.time_updated, message.time_created),
|
|
630
|
+
COALESCE(part.time_created, message.time_created),
|
|
631
|
+
message.id,
|
|
632
|
+
part.id`).all(sessionId);
|
|
633
|
+
for (const row of rows) {
|
|
634
|
+
const messageId = ensureText(row.message_id).trim();
|
|
635
|
+
const partId = ensureText(row.part_id).trim();
|
|
636
|
+
if (!messageId || !partId) {
|
|
637
|
+
continue;
|
|
638
|
+
}
|
|
639
|
+
const normalized = normalizeOpenCodePartMessage({
|
|
640
|
+
sessionId,
|
|
641
|
+
providerSessionId: sessionId,
|
|
642
|
+
messageId,
|
|
643
|
+
partId,
|
|
644
|
+
messagePayload: toJsonRecord(row.message_data) ?? {},
|
|
645
|
+
partPayload: toJsonRecord(row.part_data) ?? {},
|
|
646
|
+
defaultTimestamp: toIsoTimestamp(firstValidNumber(row.part_time_created, row.part_time_updated, row.message_time_created, row.message_time_updated), null) ?? nextTimestamp()
|
|
647
|
+
});
|
|
648
|
+
const title = normalized ? resolveOpenCodeMessageTitle(normalized) : null;
|
|
649
|
+
if (title) {
|
|
650
|
+
return title;
|
|
651
|
+
}
|
|
652
|
+
}
|
|
653
|
+
return null;
|
|
654
|
+
});
|
|
655
|
+
}
|
|
429
656
|
async fetchJson(pathname, input = {}) {
|
|
430
657
|
return this.fetchJsonWithRetry(pathname, input, false);
|
|
431
658
|
}
|
|
@@ -498,6 +725,33 @@ export class OpenCodeAdapter {
|
|
|
498
725
|
db?.close();
|
|
499
726
|
}
|
|
500
727
|
}
|
|
728
|
+
withWritableDb(run) {
|
|
729
|
+
const dbPath = this.resolveDbPath();
|
|
730
|
+
if (!existsSync(dbPath)) {
|
|
731
|
+
throw new Error("OPENCODE_DB_NOT_FOUND");
|
|
732
|
+
}
|
|
733
|
+
const DatabaseSync = loadDatabaseSync();
|
|
734
|
+
let db = null;
|
|
735
|
+
try {
|
|
736
|
+
db = new DatabaseSync(dbPath, { open: true });
|
|
737
|
+
db.exec("BEGIN IMMEDIATE");
|
|
738
|
+
const result = run(db);
|
|
739
|
+
db.exec("COMMIT");
|
|
740
|
+
return result;
|
|
741
|
+
}
|
|
742
|
+
catch (error) {
|
|
743
|
+
try {
|
|
744
|
+
db?.exec("ROLLBACK");
|
|
745
|
+
}
|
|
746
|
+
catch {
|
|
747
|
+
// 这里优先保留原始异常,回滚失败只做吞吐。
|
|
748
|
+
}
|
|
749
|
+
throw error;
|
|
750
|
+
}
|
|
751
|
+
finally {
|
|
752
|
+
db?.close();
|
|
753
|
+
}
|
|
754
|
+
}
|
|
501
755
|
resolveSessionId(providerSessionId, rawStoreRef) {
|
|
502
756
|
const explicit = providerSessionId.trim();
|
|
503
757
|
if (explicit.length > 0) {
|
|
@@ -693,6 +947,22 @@ export class OpenCodeAdapter {
|
|
|
693
947
|
return normalizeOpenCodeMessageEnvelopes(sessionId, sessionId, [...envelopes.values()]);
|
|
694
948
|
}
|
|
695
949
|
}
|
|
950
|
+
function ensureNullableText(value) {
|
|
951
|
+
const normalized = ensureText(value).trim();
|
|
952
|
+
return normalized || null;
|
|
953
|
+
}
|
|
954
|
+
function resolveOpenCodeMessageTitle(message) {
|
|
955
|
+
if (message.role !== "user" || message.kind !== "text") {
|
|
956
|
+
return null;
|
|
957
|
+
}
|
|
958
|
+
const title = message.content.trim().replace(/\s+/g, " ");
|
|
959
|
+
return title || null;
|
|
960
|
+
}
|
|
961
|
+
function buildForkSlug(sourceSlug, forkedSessionId) {
|
|
962
|
+
const base = sourceSlug.trim() || "session";
|
|
963
|
+
const suffix = forkedSessionId.slice(0, 8);
|
|
964
|
+
return `${base}-fork-${suffix}`;
|
|
965
|
+
}
|
|
696
966
|
function buildSyntheticAcceptedMessage(sessionId, content, timestamp) {
|
|
697
967
|
const rawRef = `${buildMessageRawRef(sessionId, `accepted-${Date.parse(timestamp)}`)}#synthetic`;
|
|
698
968
|
return {
|
|
@@ -720,6 +990,23 @@ function mapOpenCodeHttpError(statusCode, detail) {
|
|
|
720
990
|
}
|
|
721
991
|
return new Error(detail || `OPENCODE_HTTP_${statusCode}`);
|
|
722
992
|
}
|
|
993
|
+
function applyOpenCodeForkSourceSnapshot(partPayload, snapshot) {
|
|
994
|
+
if (!snapshot) {
|
|
995
|
+
return partPayload;
|
|
996
|
+
}
|
|
997
|
+
const nextPart = { ...partPayload };
|
|
998
|
+
const targetKey = typeof nextPart.text === "string"
|
|
999
|
+
? "text"
|
|
1000
|
+
: typeof nextPart.content === "string"
|
|
1001
|
+
? "content"
|
|
1002
|
+
: typeof nextPart.message === "string"
|
|
1003
|
+
? "message"
|
|
1004
|
+
: snapshot.kind === "thinking"
|
|
1005
|
+
? "thinking"
|
|
1006
|
+
: "text";
|
|
1007
|
+
nextPart[targetKey] = snapshot.content;
|
|
1008
|
+
return nextPart;
|
|
1009
|
+
}
|
|
723
1010
|
async function safeReadResponseText(response) {
|
|
724
1011
|
try {
|
|
725
1012
|
return (await response.text()).trim();
|
|
@@ -731,6 +1018,9 @@ async function safeReadResponseText(response) {
|
|
|
731
1018
|
function isServerUnavailableError(error) {
|
|
732
1019
|
return error instanceof Error && error.message === "SERVER_UNAVAILABLE";
|
|
733
1020
|
}
|
|
1021
|
+
function isServerTimeoutError(error) {
|
|
1022
|
+
return error instanceof Error && error.message === "SERVER_TIMEOUT";
|
|
1023
|
+
}
|
|
734
1024
|
function createTimeoutRetryState() {
|
|
735
1025
|
return {
|
|
736
1026
|
startedAtMs: Date.now(),
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../src/providers/opencode.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"opencode.js","sourceRoot":"","sources":["../../src/providers/opencode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AACrC,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAuBjC,OAAO,EACL,UAAU,EACV,aAAa,EACb,sBAAsB,EACtB,YAAY,EACb,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,kBAAkB,EAClB,4BAA4B,EAC5B,uBAAuB,EACvB,gBAAgB,EAChB,iCAAiC,EACjC,6BAA6B,EAC7B,WAAW,EACX,cAAc,EACd,YAAY,EAIZ,gBAAgB,EACjB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,sCAAsC,EAAE,MAAM,2BAA2B,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAyB,MAAM,0BAA0B,CAAC;AAEnF,MAAM,gBAAgB,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;AACxE,MAAM,0BAA0B,GAAG,MAAM,CAAC;AAC1C,MAAM,wBAAwB,GAAG,GAAG,CAAC;AACrC,MAAM,oBAAoB,GAAG,GAAG,CAAC;AACjC,MAAM,yBAAyB,GAAG,GAAG,CAAC;AACtC,MAAM,4BAA4B,GAAG,MAAM,CAAC;AAC5C,MAAM,wBAAwB,GAAG,CAAC,CAAC;AA8FnC,MAAM,OAAO,eAAe;IAGG;IAFpB,UAAU,GAAe,UAAU,CAAC;IAE7C,YAA6B,UAAkC,EAAE;QAApC,YAAO,GAAP,OAAO,CAA6B;IAAG,CAAC;IAErE,KAAK,CAAC,cAAc,CAClB,aAAqB,EACrB,OAA+B;QAE/B,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,sBAAsB,CAAC,aAAa,EAAE,OAAO,CAAC,CAAC;QAC5E,OAAO,SAAS,CAAC,QAAQ,CAAC;IAC5B,CAAC;IAED,KAAK,CAAC,sBAAsB,CAC1B,aAAqB,EACrB,OAA+B;QAE/B,MAAM,UAAU,GAAG,sBAAsB,CAAC,aAAa,CAAC,CAAC;QACzD,MAAM,aAAa,GAAG,CAAC,OAAO,EAAE,aAAa,IAAI,EAAE,CAAC,CAAC,MAAM,CACzD,CAAC,OAAO,EAAE,EAAE,CACV,OAAO,CAAC,QAAQ,KAAK,IAAI,CAAC,UAAU;YACpC,gBAAgB,CAAC,UAAU,EAAE,sBAAsB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAC9E,CAAC;QACF,MAAM,eAAe,GAAG,MAAM,IAAI,CAAC,2BAA2B,CAAC,UAAU,EAAE,aAAa,CAAC,CAAC;QAE1F,IAAI,eAAe,EAAE,CAAC;YACpB,OAAO,eAAe,CAAC;QACzB,CAAC;QAED,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE;YACtC,OAAO,EAAE,CAAC,OAAO,CACf;;;;;;;;;;;;;;;;;;;sCAmB8B,CAC/B,CAAC,GAAG,EAAyB,CAAC;QACjC,CAAC,CAAC,CAAC;QAEH,OAAO;YACL,QAAQ,EAAE,IAAI;iBACX,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,gCAAgC,CAAC,GAAG,CAAC,CAAC;iBACxD,MAAM,CAAC,CAAC,OAAO,EAAqC,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC;iBACxE,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,gBAAgB,CAAC,UAAU,EAAE,sBAAsB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;iBAChG,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC;YAC7F,UAAU,EAAE,IAAI;SACjB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,wBAAwB,CAC5B,iBAAyB,EACzB,WAAmB,EACnB,kBAA0B,EAC1B,KAAa;QAEb,OAAO,IAAI,CAAC,kBAAkB,CAAC,iBAAiB,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;IAC1F,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,iBAAyB,EACzB,WAAmB,EACnB,MAAqB,EACrB,KAAa,EACb,YAA8B,SAAS;QAEvC,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;QACxE,MAAM,cAAc,GAAG,MAAM,IAAI,CAAC,gCAAgC,CAAC,SAAS,CAAC,CAAC;QAC9E,MAAM,QAAQ,GAAG,cAAc,IAAI,IAAI,CAAC,6BAA6B,CAAC,SAAS,CAAC,CAAC;QACjF,OAAO,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,CAAC,CAAC;IAC1D,CAAC;IAED,gBAAgB,CACd,iBAAyB,EACzB,WAAmB,EACnB,MAAqB,EACrB,KAAa,EACb,OAA+D;QAE/D,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;QACxE,MAAM,cAAc,GAAG,IAAI,CAAC,qBAAqB,EAAE,CAAC;QACpD,MAAM,qBAAqB,GAAG,uBAAuB,CAAC,SAAS,CAAC,CAAC;QACjE,IAAI,aAAa,GAAG,MAAM,CAAC;QAC3B,IAAI,MAAM,GAAG,KAAK,CAAC;QACnB,IAAI,QAAQ,GAAG,KAAK,CAAC;QAErB,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;YAC7B,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;gBACvB,OAAO;YACT,CAAC;YAED,QAAQ,GAAG,IAAI,CAAC;YAEhB,KAAK,IAAI,CAAC,kBAAkB,CAC1B,SAAS,EACT,qBAAqB,EACrB,aAAa,EACb,KAAK,EACL,SAAS,CACV;iBACE,IAAI,CAAC,KAAK,EAAE,IAAI,EAAE,EAAE;gBACnB,IAAI,IAAI,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAC/B,OAAO;gBACT,CAAC;gBAED,aAAa,GAAG,IAAI,CAAC,MAAM,CAAC;gBAC5B,MAAM,OAAO,CAAC;oBACZ,QAAQ,EAAE,IAAI,CAAC,QAAQ;oBACvB,MAAM,EAAE,IAAI,CAAC,MAAM;iBACpB,CAAC,CAAC;YACL,CAAC,CAAC;iBACD,KAAK,CAAC,GAAG,EAAE;gBACV,OAAO;YACT,CAAC,CAAC;iBACD,OAAO,CAAC,GAAG,EAAE;gBACZ,QAAQ,GAAG,KAAK,CAAC;YACnB,CAAC,CAAC,CAAC;QACP,CAAC,EAAE,cAAc,CAAC,CAAC;QAEnB,OAAO;YACL,KAAK;gBACH,MAAM,GAAG,IAAI,CAAC;gBACd,aAAa,CAAC,KAAK,CAAC,CAAC;YACvB,CAAC;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,aAAa,CACjB,iBAAyB,EACzB,WAAmB;QAEnB,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;QAExE,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,8BAA8B,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;YAC5D,IAAI,CAAC,2BAA2B,CAAC,SAAS,CAAC,CAAC;QAC9C,CAAC;QAED,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,UAAU;YACzB,iBAAiB,EAAE,SAAS;YAC5B,SAAS,EAAE,aAAa,EAAE;YAC1B,WAAW,EAAE,uBAAuB,CAAC,SAAS,CAAC;SAChD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,aAAqB,EACrB,OAA4B;QAE5B,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,aAAa,CAAC,CAAC;QAEhE,IAAI,OAAO,CAAC,aAAa,EAAE,IAAI,EAAE,EAAE,CAAC;YAClC,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,aAAa,CAAC,IAAI,EAAE,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,4BAA4B,CAAC,OAAO,CAAC,EAAE,CAAC;aAChE,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;QACrB,MAAM,cAAc,GAAG,OAAO,IAAI,IAAI,CAAC,6BAA6B,CAAC,OAAO,EAAE,IAAI,GAAG,EAAE,CAAC,IAAI;YAC1F,QAAQ,EAAE,IAAI,CAAC,UAAU;YACzB,iBAAiB,EAAE,OAAO,CAAC,EAAE;YAC7B,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,OAAO,CAAC,EAAE;YACrD,aAAa;YACb,WAAW,EAAE,uBAAuB,CAAC,OAAO,CAAC,EAAE,CAAC;YAChD,UAAU,EAAE,KAAK;YACjB,aAAa,EAAE,aAAa,EAAE;YAC9B,YAAY,EAAE,OAAO,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC;YACnD,uBAAuB,EAAE,IAAI;YAC7B,UAAU,EAAE,KAAK;YACjB,aAAa,EAAE,IAAI;SACpB,CAAC;QAEF,OAAO;YACL,OAAO,EAAE,cAAc;YACvB,aAAa,EAAE,IAAI;SACpB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CACf,iBAAyB,EACzB,gBAAwB,EACxB,OAA2B;QAE3B,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,OAAO,CAAC,WAAW,CAAC,CAAC;QACtF,MAAM,aAAa,GAAG,gBAAgB,CAAC,IAAI,EAAE,IAAI,gBAAgB,CAAC;QAElE,IAAI,OAAO,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,CAAC,OAAO,CAAC,eAAe,EAAE,IAAI,EAAE,CAAC,EAAE,CAAC;YAC3E,MAAM,IAAI,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACrD,CAAC;QAED,MAAM,MAAM,GAAG,IAAI,CAAC,sBAAsB,CAAC;YACzC,eAAe;YACf,aAAa;YACb,UAAU,EAAE,OAAO,CAAC,UAAU;YAC9B,eAAe,EAAE,OAAO,CAAC,eAAe,EAAE,IAAI,EAAE,IAAI,IAAI;YACxD,qBAAqB,EAAE,OAAO,CAAC,qBAAqB,IAAI,IAAI;SAC7D,CAAC,CAAC;QAEH,OAAO;YACL,OAAO,EAAE;gBACP,QAAQ,EAAE,IAAI,CAAC,UAAU;gBACzB,iBAAiB,EAAE,MAAM,CAAC,iBAAiB;gBAC3C,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,aAAa;gBACb,WAAW,EAAE,uBAAuB,CAAC,MAAM,CAAC,iBAAiB,CAAC;gBAC9D,UAAU,EAAE,KAAK;gBACjB,aAAa,EAAE,MAAM,CAAC,aAAa;gBACnC,YAAY,EAAE,MAAM,CAAC,2BAA2B;gBAChD,uBAAuB,EAAE,IAAI;gBAC7B,UAAU,EAAE,KAAK;gBACjB,aAAa,EAAE,IAAI;aACpB;YACD,UAAU,EAAE,OAAO,CAAC,UAAU,KAAK,SAAS,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,qBAAqB;YAC5F,cAAc,EAAE,OAAO,CAAC,UAAU;YAClC,2BAA2B,EAAE,MAAM,CAAC,2BAA2B;YAC/D,uBAAuB,EAAE,MAAM,CAAC,uBAAuB;SACxD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CACf,iBAAyB,EACzB,WAAmB,EACnB,OAAe,EACf,eAA8B,EAC9B,cAA8B;QAE9B,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;QACxE,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;QAE/B,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QACnC,CAAC;QAED,MAAM,UAAU,GAAG,aAAa,EAAE,CAAC;QAEnC,MAAM,IAAI,CAAC,cAAc,CAAC,SAAS,EAAE,OAAO,EAAE,cAAc,CAAC,CAAC;QAE9D,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,uBAAuB,CAAC,SAAS,EAAE,OAAO,CAAC;eACjE,6BAA6B,CAAC,SAAS,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QAEnE,OAAO;YACL,UAAU;YACV,eAAe;YACf,OAAO;SACR,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,gBAAgB,CACpB,iBAAyB,EACzB,WAAmB;QAEnB,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;QACxE,MAAM,WAAW,GAAG,MAAM,IAAI,CAAC,6BAA6B,CAAC,SAAS,CAAC,CAAC;QAExE,IAAI,WAAW,EAAE,CAAC;YAChB,OAAO,WAAW,CAAC;QACrB,CAAC;QAED,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE;YACrC,OAAO,EAAE,CAAC,OAAO,CACf,gDAAgD,CACjD,CAAC,GAAG,CAAC,SAAS,CAAgC,CAAC;QAClD,CAAC,CAAC,CAAC;QAEH,IAAI,CAAC,GAAG,EAAE,CAAC;YACT,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;QAED,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QAE3C,IAAI,KAAK,EAAE,CAAC;YACV,OAAO,KAAK,CAAC;QACf,CAAC;QAED,OAAO,IAAI,CAAC,mCAAmC,CAAC,SAAS,CAAC,IAAI,SAAS,CAAC;IAC1E,CAAC;IAED,KAAK,CAAC,kBAAkB,CACtB,iBAAyB,EACzB,WAAmB,EACnB,KAAa;QAEb,MAAM,SAAS,GAAG,IAAI,CAAC,gBAAgB,CAAC,iBAAiB,EAAE,WAAW,CAAC,CAAC;QACxE,MAAM,SAAS,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;QAE/B,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,eAAe,CAAC,CAAC;QACnC,CAAC;QAED,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CACnC,YAAY,kBAAkB,CAAC,SAAS,CAAC,EAAE,EAC3C;YACE,MAAM,EAAE,OAAO;YACf,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,KAAK,EAAE,SAAS;aACjB,CAAC;SACH,CACF,CAAC;QAEF,OAAO,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,yBAAyB,CAC7B,kBAA0B,EAC1B,YAAoB,EACpB,WAAoB;QAEpB,MAAM,IAAI,KAAK,CAAC,gCAAgC,CAAC,CAAC;IACpD,CAAC;IAED,uBAAuB;QACrB,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,UAAU;YACzB,eAAe,EAAE,IAAI;YACrB,gBAAgB,EAAE,IAAI;YACtB,cAAc,EAAE,IAAI;YACpB,cAAc,EAAE,MAA+B;YAC/C,iBAAiB,EAAE,IAAI;YACvB,iBAAiB,EAAE,IAAI;YACvB,2BAA2B,EAAE,IAAI;YACjC,kBAAkB,EAAE,KAAK;YACzB,mBAAmB,EAAE,KAAK;YAC1B,wBAAwB,EAAE,KAAK;YAC/B,kBAAkB,EAAE,KAAK;YACzB,YAAY,EAAE,IAAI;YAClB,mBAAmB,EAAE,IAAI;YACzB,0BAA0B,EAAE,IAAI;YAChC,mBAAmB,EAAE,IAAI;YACzB,oBAAoB,EAAE,IAAI;YAC1B,mBAAmB,EAAE,IAAI;YACzB,oBAAoB,EAAE,IAAI;YAC1B,WAAW,EAAE;gBACX,4DAA4D;gBAC5D,2BAA2B;aAC5B;SACF,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,sBAAsB;QAC1B,OAAO,IAAI,CAAC,uBAAuB,EAAE,CAAC;IACxC,CAAC;IAEO,KAAK,CAAC,2BAA2B,CACvC,UAAkB,EAClB,aAAuC;QAEvC,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAA0B,UAAU,EAAE;gBACzE,KAAK,EAAE;oBACL,SAAS,EAAE,UAAU,IAAI,SAAS;oBAClC,KAAK,EAAE,MAAM;iBACd;aACF,CAAC,CAAC;YACH,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI;iBACtB,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;iBAC/C,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;YACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,GAAG,CAAC,CAAC;YAC/C,MAAM,cAAc,GAAG,QAAQ,CAAC,IAAI;iBACjC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,IAAI,CAAC,6BAA6B,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;iBACvE,MAAM,CAAC,CAAC,OAAO,EAAqC,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC;iBACxE,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,gBAAgB,CAAC,UAAU,EAAE,sBAAsB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC;iBAChG,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,CAAC;YAC9F,MAAM,cAAc,GAAG,IAAI,GAAG,CAC5B,cAAc,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAU,CAAC,CAC/E,CAAC;YACF,MAAM,oBAAoB,GAAG,aAAa,CAAC,MAAM,CAC/C,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,CAC5D,CAAC;YACF,IAAI,UAAU,GAAG,IAAI,CAAC;YAEtB,IAAI,oBAAoB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACpC,MAAM,iBAAiB,GAAG,IAAI,CAAC,yBAAyB,CACtD,oBAAoB,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAChE,UAAU,CACX,CAAC;gBAEF,IAAI,iBAAiB,KAAK,IAAI,EAAE,CAAC;oBAC/B,UAAU,GAAG,KAAK,CAAC;gBACrB,CAAC;qBAAM,IAAI,iBAAiB,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBACxC,UAAU,GAAG,KAAK,CAAC;oBAEnB,KAAK,MAAM,OAAO,IAAI,iBAAiB,EAAE,CAAC;wBACxC,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,CAAC,EAAE,CAAC;4BACnD,cAAc,CAAC,GAAG,CAAC,OAAO,CAAC,iBAAiB,EAAE,OAAO,CAAC,CAAC;wBACzD,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAED,OAAO;gBACL,QAAQ,EAAE,CAAC,GAAG,cAAc,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CACzC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,aAAa,IAAI,EAAE,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,IAAI,EAAE,CAAC,CACrF;gBACD,UAAU;aACX,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,wBAAwB,CAAC,KAAK,CAAC,IAAI,oBAAoB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACnE,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,gCAAgC,CAC5C,SAAiB;QAEjB,IAAI,CAAC;YACH,OAAO,MAAM,IAAI,CAAC,6BAA6B,CAAC,SAAS,CAAC,CAAC;QAC7D,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpC,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,6BAA6B,CAAC,SAAiB;QAC3D,MAAM,SAAS,GAA8B,EAAE,CAAC;QAChD,IAAI,MAAM,GAAkB,IAAI,CAAC;QAEjC,OAAO,IAAI,EAAE,CAAC;YACZ,MAAM,QAAQ,GAAmD,MAAM,IAAI,CAAC,SAAS,CACnF,YAAY,kBAAkB,CAAC,SAAS,CAAC,UAAU,EACnD;gBACE,KAAK,EAAE;oBACL,KAAK,EAAE,MAAM,CAAC,yBAAyB,CAAC;oBACxC,MAAM,EAAE,MAAM,IAAI,SAAS;iBAC5B;aACF,CACF,CAAC;YAEF,SAAS,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,IAAI,CAAC,CAAC;YAEjC,MAAM,UAAU,GAAkB,QAAQ,CAAC,OAAO,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;YAExE,IAAI,CAAC,UAAU,EAAE,CAAC;gBAChB,MAAM;YACR,CAAC;YAED,MAAM,GAAG,UAAU,CAAC;QACtB,CAAC;QAED,OAAO,iCAAiC,CACtC,SAAS,EACT,SAAS,EACT,SAAS,CACV,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,qBAAqB,CAAC,aAAqB;QACvD,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CAAwB,UAAU,EAAE;YACvE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,KAAK,EAAE;gBACL,SAAS,EAAE,aAAa;aACzB;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,SAAS,EAAE,aAAa;aACzB,CAAC;SACH,CAAC,CAAC;QACH,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAEtD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;QAClD,CAAC;QAED,OAAO;YACL,EAAE,EAAE,SAAS;YACb,KAAK,EAAE,QAAQ,CAAC,IAAI,CAAC,KAAK;SAC3B,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,cAAc,CAC1B,SAAiB,EACjB,IAAY,EACZ,cAA8B;QAE9B,MAAM,IAAI,CAAC,SAAS,CAClB,YAAY,kBAAkB,CAAC,SAAS,CAAC,UAAU,EACnD;YACE,MAAM,EAAE,MAAM;YACd,OAAO,EAAE;gBACP,cAAc,EAAE,kBAAkB;aACnC;YACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC;gBACnB,GAAG,sCAAsC,CAAC,cAAc,CAAC;gBACzD,KAAK,EAAE;oBACL;wBACE,IAAI,EAAE,MAAM;wBACZ,IAAI;qBACL;iBACF;aACF,CAAC;SACH,CACF,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,uBAAuB,CACnC,SAAiB,EACjB,OAAe;QAEf,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CACnC,YAAY,kBAAkB,CAAC,SAAS,CAAC,UAAU,EACnD;gBACE,KAAK,EAAE;oBACL,KAAK,EAAE,IAAI;iBACZ;aACF,CACF,CAAC;YACF,MAAM,QAAQ,GAAG,iCAAiC,CAChD,SAAS,EACT,SAAS,EACT,QAAQ,CAAC,IAAI,CAAC,OAAO,EAAE,CACxB,CAAC;YACF,MAAM,OAAO,GAAG,OAAO,CAAC,IAAI,EAAE,CAAC;YAE/B,KAAK,IAAI,KAAK,GAAG,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC;gBAC7D,MAAM,OAAO,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;gBAEhC,IACE,OAAO,EAAE,IAAI,KAAK,MAAM;uBACrB,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,OAAO,EACrC,CAAC;oBACD,OAAO,OAAO,CAAC;gBACjB,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,4BAA4B,CACxC,SAAiB;QAEjB,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CACnC,YAAY,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAC5C,CAAC;QACF,MAAM,QAAQ,GAAG,IAAI,CAAC,mBAAmB,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC;QAEvD,OAAO,IAAI,CAAC,6BAA6B,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;IACrE,CAAC;IAEO,KAAK,CAAC,6BAA6B,CAAC,SAAiB;QAC3D,IAAI,CAAC;YACH,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,SAAS,CACnC,YAAY,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAC5C,CAAC;YACF,MAAM,KAAK,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;YACrD,OAAO,KAAK,IAAI,SAAS,CAAC;QAC5B,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpC,OAAO,IAAI,CAAC;YACd,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,8BAA8B,CAAC,SAAiB;QAC5D,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,SAAS,CAAC,YAAY,kBAAkB,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;YAClE,OAAO,IAAI,CAAC;QACd,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,wBAAwB,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpC,OAAO,KAAK,CAAC;YACf,CAAC;YAED,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,KAAK,4BAA4B,EAAE,CAAC;gBAC7E,MAAM,KAAK,CAAC;YACd,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAEO,KAAK,CAAC,cAAc,CAAC,OAAO,GAAG,KAAK;QAC1C,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,eAAe;YAC3C,CAAC,CAAC,MAAM,IAAI,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC;YACjD,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,CAAC;QAEjC,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACxC,CAAC;QAED,OAAO,QAAQ,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAC7C,CAAC;IAEO,aAAa;QACnB,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC;QAEnD,IAAI,cAAc,EAAE,CAAC;YACnB,OAAO,cAAc,CAAC;QACxB,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,IAAI,EAAE,IAAI,gBAAgB,CAAC;QACjE,OAAO,IAAI,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;IACtC,CAAC;IAEO,qBAAqB;QAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,cAAc,CAAC;QAE/C,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACjC,OAAO,wBAAwB,CAAC;QAClC,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,oBAAoB,EAAE,IAAI,CAAC,KAAK,CAAC,UAAoB,CAAC,CAAC,CAAC;IAC1E,CAAC;IAEO,uBAAuB;QAC7B,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,gBAAgB,CAAC;QAEjD,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;YACjC,OAAO,0BAA0B,CAAC;QACpC,CAAC;QAED,OAAO,IAAI,CAAC,GAAG,CAAC,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,UAAoB,CAAC,CAAC,CAAC;IAC3D,CAAC;IAEO,sBAAsB,CAAC,KAM9B;QAOC,MAAM,eAAe,GAAG,OAAO,UAAU,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,EAAE,CAAC,EAAE,CAAC;QAClE,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;QAEzB,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE;YAChC,MAAM,aAAa,GAAG,EAAE,CAAC,OAAO,CAC9B;;;;;;;;;;;;;;;;;;;;;;iBAsBS,CACV,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAqC,CAAC;YAEjE,IAAI,CAAC,aAAa,EAAE,CAAC;gBACnB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;YAChD,CAAC;YAED,MAAM,iBAAiB,GAAG,EAAE,CAAC,OAAO,CAClC;;;yEAGiE,CAClE,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,CAAqB,CAAC;YACjD,MAAM,YAAY,GAAG,EAAE,CAAC,OAAO,CAC7B;;;yEAGiE,CAClE,CAAC;YACF,MAAM,aAAa,GAAG,EAAE,CAAC,OAAO,CAC9B;;;;;;;;;;;;;;;;;;;;4EAoBoE,CACrE,CAAC;YACF,MAAM,aAAa,GAAG,EAAE,CAAC,OAAO,CAC9B;;;;;;kCAM0B,CAC3B,CAAC;YACF,MAAM,UAAU,GAAG,EAAE,CAAC,OAAO,CAC3B;;;;;;;qCAO6B,CAC9B,CAAC;YAEF,IAAI,YAAY,GAAkB,IAAI,CAAC;YACvC,aAAa,CAAC,GAAG,CACf,eAAe,EACf,UAAU,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,QAAQ,EACvD,IAAI,EACJ,aAAa,CAAC,UAAU,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,eAAe,CAAC,EACrE,KAAK,CAAC,aAAa,EACnB,EAAE,EACF,UAAU,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,EAChD,kBAAkB,CAAC,aAAa,CAAC,SAAS,CAAC,EAC3C,WAAW,CAAC,aAAa,CAAC,iBAAiB,CAAC,EAC5C,WAAW,CAAC,aAAa,CAAC,iBAAiB,CAAC,EAC5C,WAAW,CAAC,aAAa,CAAC,aAAa,CAAC,EACxC,kBAAkB,CAAC,aAAa,CAAC,aAAa,CAAC,EAC/C,kBAAkB,CAAC,aAAa,CAAC,MAAM,CAAC,EACxC,kBAAkB,CAAC,aAAa,CAAC,UAAU,CAAC,EAC5C,WAAW,CAAC,aAAa,CAAC,YAAY,CAAC,IAAI,KAAK,EAChD,KAAK,EACL,WAAW,CAAC,aAAa,CAAC,eAAe,CAAC,EAC1C,IAAI,EACJ,kBAAkB,CAAC,aAAa,CAAC,YAAY,CAAC,CAC/C,CAAC;YAEF,IAAI,2BAA2B,GAAG,CAAC,CAAC;YACpC,IAAI,uBAAuB,GAAkB,IAAI,CAAC;YAClD,IAAI,eAAe,GAAG,gBAAgB,CAAC,aAAa,CAAC,YAAY,EAAE,aAAa,CAAC,YAAY,CAAC,CAAC;YAC/F,IAAI,aAAa,GAAG,KAAK,CAAC;YAE1B,KAAK,MAAM,UAAU,IAAI,iBAAiB,EAAE,CAAC;gBAC3C,MAAM,kBAAkB,GAAG,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAE5D,IAAI,CAAC,kBAAkB,EAAE,CAAC;oBACxB,SAAS;gBACX,CAAC;gBAED,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,eAAe,EAAE,kBAAkB,CAAkB,CAAC;gBAC9F,MAAM,gBAAgB,GAAkB,EAAE,CAAC;gBAE3C,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;oBAC/B,MAAM,YAAY,GAAG,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;oBAEnD,IAAI,CAAC,YAAY,EAAE,CAAC;wBAClB,SAAS;oBACX,CAAC;oBAED,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;oBAE/B,MAAM,UAAU,GAAG,4BAA4B,CAAC;wBAC9C,SAAS,EAAE,KAAK,CAAC,eAAe;wBAChC,iBAAiB,EAAE,KAAK,CAAC,eAAe;wBACxC,MAAM,EAAE,YAAY;wBACpB,SAAS,EAAE,kBAAkB;wBAC7B,WAAW,EAAE,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE;wBAC7C,cAAc,EAAE,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE;wBACnD,gBAAgB,EACd,cAAc,CACZ,gBAAgB,CAAC,OAAO,CAAC,YAAY,EAAE,UAAU,CAAC,YAAY,EAAE,UAAU,CAAC,YAAY,CAAC,EACxF,IAAI,CACL,IAAI,aAAa,EAAE;qBACvB,CAAC,CAAC;oBAEH,IAAI,UAAU,EAAE,CAAC;wBACf,2BAA2B,IAAI,CAAC,CAAC;wBACjC,eAAe,GAAG,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC;wBAEnD,IAAI,YAAY,KAAK,IAAI,EAAE,CAAC;4BAC1B,YAAY,GAAG,2BAA2B,CAAC,UAAU,CAAC,CAAC;wBACzD,CAAC;oBACH,CAAC;oBAED,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,UAAU,EAAE,SAAS,KAAK,KAAK,CAAC,eAAe,EAAE,CAAC;wBACtF,uBAAuB,GAAG,YAAY,CAAC;wBACvC,IAAI,KAAK,CAAC,qBAAqB,EAAE,CAAC;4BAChC,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,GAAG,CAAC,CAAC,GAAG;gCAC9C,GAAG,OAAO;gCACV,IAAI,EAAE,+BAA+B,CACnC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,EAChC,KAAK,CAAC,qBAAqB,CAC5B;6BACF,CAAC;wBACJ,CAAC;wBACD,aAAa,GAAG,IAAI,CAAC;wBACrB,MAAM;oBACR,CAAC;gBACH,CAAC;gBAED,IAAI,gBAAgB,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;oBAClC,SAAS;gBACX,CAAC;gBAED,MAAM,eAAe,GAAG,UAAU,EAAE,CAAC;gBACrC,aAAa,CAAC,GAAG,CACf,eAAe,EACf,eAAe,EACf,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,KAAK,EAC7C,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,WAAW,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,KAAK,EACrF,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CACpD,CAAC;gBAEF,KAAK,MAAM,OAAO,IAAI,gBAAgB,EAAE,CAAC;oBACvC,UAAU,CAAC,GAAG,CACZ,UAAU,EAAE,EACZ,eAAe,EACf,eAAe,EACf,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,KAAK,EAC1C,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,KAAK,EAC/E,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CACjD,CAAC;gBACJ,CAAC;gBAED,IAAI,aAAa,EAAE,CAAC;oBAClB,MAAM;gBACR,CAAC;YACH,CAAC;YAED,IAAI,KAAK,CAAC,UAAU,KAAK,SAAS,IAAI,CAAC,aAAa,EAAE,CAAC;gBACrD,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAC;YACnD,CAAC;YAED,MAAM,aAAa,GAAG,YAAY,IAAI,EAAE,CAAC;YACzC,EAAE,CAAC,OAAO,CAAC,2CAA2C,CAAC,CAAC,GAAG,CAAC,aAAa,EAAE,eAAe,CAAC,CAAC;YAE5F,OAAO;gBACL,iBAAiB,EAAE,eAAe;gBAClC,KAAK,EAAE,aAAa;gBACpB,aAAa,EAAE,cAAc,CAAC,eAAe,EAAE,aAAa,EAAE,CAAC;gBAC/D,2BAA2B;gBAC3B,uBAAuB;aACxB,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,mCAAmC,CAAC,SAAiB;QAC3D,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE;YAChC,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CACrB;;;;;;;;;;;;;;;;;0BAiBkB,CACnB,CAAC,GAAG,CAAC,SAAS,CASb,CAAC;YAEH,KAAK,MAAM,GAAG,IAAI,IAAI,EAAE,CAAC;gBACvB,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;gBACpD,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;gBAE9C,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,EAAE,CAAC;oBAC1B,SAAS;gBACX,CAAC;gBAED,MAAM,UAAU,GAAG,4BAA4B,CAAC;oBAC9C,SAAS;oBACT,iBAAiB,EAAE,SAAS;oBAC5B,SAAS;oBACT,MAAM;oBACN,cAAc,EAAE,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,IAAI,EAAE;oBACpD,WAAW,EAAE,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE;oBAC9C,gBAAgB,EACd,cAAc,CACZ,gBAAgB,CACd,GAAG,CAAC,iBAAiB,EACrB,GAAG,CAAC,iBAAiB,EACrB,GAAG,CAAC,oBAAoB,EACxB,GAAG,CAAC,oBAAoB,CACzB,EACD,IAAI,CACL,IAAI,aAAa,EAAE;iBACvB,CAAC,CAAC;gBACH,MAAM,KAAK,GAAG,UAAU,CAAC,CAAC,CAAC,2BAA2B,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBAE1E,IAAI,KAAK,EAAE,CAAC;oBACV,OAAO,KAAK,CAAC;gBACf,CAAC;YACH,CAAC;YAED,OAAO,IAAI,CAAC;QACd,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,KAAK,CAAC,SAAS,CACrB,QAAgB,EAChB,QAKI,EAAE;QAEN,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC;IACzD,CAAC;IAEO,KAAK,CAAC,kBAAkB,CAC9B,QAAgB,EAChB,KAKC,EACD,OAAgB,EAChB,eAAkC,uBAAuB,EAAE;QAE3D,MAAM,GAAG,GAAG,IAAI,GAAG,CAAC,QAAQ,EAAE,GAAG,MAAM,IAAI,CAAC,cAAc,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QAExE,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;YAChB,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvD,IAAI,KAAK,EAAE,CAAC;oBACV,GAAG,CAAC,YAAY,CAAC,GAAG,CAAC,GAAG,EAAE,KAAK,CAAC,CAAC;gBACnC,CAAC;YACH,CAAC;QACH,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,eAAe,EAAE,CAAC;QACzC,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE;YAC5B,UAAU,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC,EAAE,IAAI,CAAC,uBAAuB,EAAE,CAAC,CAAC;QAEnC,IAAI,QAAkB,CAAC;QAEvB,IAAI,CAAC;YACH,QAAQ,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;gBAC1B,MAAM,EAAE,KAAK,CAAC,MAAM,IAAI,KAAK;gBAC7B,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,IAAI,EAAE,KAAK,CAAC,IAAI;gBAChB,MAAM,EAAE,UAAU,CAAC,MAAM;aAC1B,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,YAAY,CAAC,KAAK,CAAC,CAAC;YAEpB,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;gBAC1D,MAAM,gBAAgB,GAAG,wBAAwB,CAAC,YAAY,CAAC,CAAC;gBAEhE,IAAI,CAAC,oBAAoB,CAAC,gBAAgB,CAAC,EAAE,CAAC;oBAC5C,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;wBAC7C,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC;oBAC1E,CAAC;oBAED,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,EAAE,gBAAgB,CAAC,CAAC;gBAC7E,CAAC;gBAED,MAAM,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC;YACpC,CAAC;YAED,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;gBAC7C,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,EAAE,YAAY,CAAC,CAAC;YACtE,CAAC;YAED,MAAM,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;QACxC,CAAC;QAED,YAAY,CAAC,KAAK,CAAC,CAAC;QAEpB,IAAI,CAAC,QAAQ,CAAC,EAAE,EAAE,CAAC;YACjB,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,QAAQ,CAAC,CAAC;YACpD,MAAM,MAAM,GAAG,oBAAoB,CAAC,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;YAE7D,IAAI,CAAC,OAAO,IAAI,wBAAwB,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,eAAe,EAAE,CAAC;gBACjF,OAAO,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,CAAC;YACxD,CAAC;YAED,MAAM,MAAM,CAAC;QACf,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEnC,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC,CAAE,IAAI,CAAC,KAAK,CAAC,IAAI,CAAO,CAAC,CAAC,CAAE,SAAe;YAClE,OAAO,EAAE,QAAQ,CAAC,OAAO;SAC1B,CAAC;IACJ,CAAC;IAEO,cAAc,CAAI,GAAgC;QACxD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAEpC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,YAAY,GAAG,gBAAgB,EAAE,CAAC;QACxC,IAAI,EAAE,GAA4B,IAAI,CAAC;QAEvC,IAAI,CAAC;YACH,EAAE,GAAG,IAAI,YAAY,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9D,OAAO,GAAG,CAAC,EAAE,CAAC,CAAC;QACjB,CAAC;gBAAS,CAAC;YACT,EAAE,EAAE,KAAK,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IAEO,cAAc,CAAI,GAAgC;QACxD,MAAM,MAAM,GAAG,IAAI,CAAC,aAAa,EAAE,CAAC;QAEpC,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,uBAAuB,CAAC,CAAC;QAC3C,CAAC;QAED,MAAM,YAAY,GAAG,gBAAgB,EAAE,CAAC;QACxC,IAAI,EAAE,GAA4B,IAAI,CAAC;QAEvC,IAAI,CAAC;YACH,EAAE,GAAG,IAAI,YAAY,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YAC9C,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAC;YAC3B,MAAM,MAAM,GAAG,GAAG,CAAC,EAAE,CAAC,CAAC;YACvB,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAClB,OAAO,MAAM,CAAC;QAChB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,EAAE,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YACvB,CAAC;YAAC,MAAM,CAAC;gBACP,uBAAuB;YACzB,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;gBAAS,CAAC;YACT,EAAE,EAAE,KAAK,EAAE,CAAC;QACd,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,iBAAyB,EAAE,WAAmB;QACrE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,IAAI,EAAE,CAAC;QAE1C,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACxB,OAAO,QAAQ,CAAC;QAClB,CAAC;QAED,MAAM,MAAM,GAAG,6BAA6B,CAAC,WAAW,CAAC,CAAC;QAE1D,IAAI,MAAM,EAAE,CAAC;YACX,OAAO,MAAM,CAAC;QAChB,CAAC;QAED,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IAEO,2BAA2B,CAAC,SAAiB;QACnD,MAAM,GAAG,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE;YACrC,OAAO,EAAE,CAAC,OAAO,CACf,qEAAqE,CACtE,CAAC,GAAG,CAAC,SAAS,CAAiC,CAAC;QACnD,CAAC,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE,cAAc,CAAC,CAAC;QAEhD,IAAI,MAAM,KAAK,CAAC,EAAE,CAAC;YACjB,MAAM,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;QAChD,CAAC;IACH,CAAC;IAEO,gCAAgC,CAAC,GAAsB;QAC7D,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAE5C,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,aAAa,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;QACvD,MAAM,kBAAkB,GAAG,gBAAgB,CACzC,GAAG,CAAC,oBAAoB,EACxB,GAAG,CAAC,YAAY,EAChB,GAAG,CAAC,YAAY,CACjB,CAAC;QACF,MAAM,aAAa,GAAG,cAAc,CAAC,kBAAkB,EAAE,IAAI,CAAC,CAAC;QAC/D,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;QACxD,MAAM,uBAAuB,GAAG,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,CAAC;QACzE,MAAM,UAAU,GAAG,GAAG,CAAC,aAAa,KAAK,IAAI,IAAI,GAAG,CAAC,aAAa,KAAK,SAAS,CAAC;QAEjF,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,UAAU;YACzB,iBAAiB,EAAE,SAAS;YAC5B,KAAK;YACL,aAAa;YACb,WAAW,EAAE,uBAAuB,CAAC,SAAS,CAAC;YAC/C,UAAU;YACV,aAAa;YACb,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;YAC9D,uBAAuB;YACvB,UAAU,EAAE,OAAO,CAAC,uBAAuB,CAAC;YAC5C,aAAa,EAAE,IAAI;SACpB,CAAC;IACJ,CAAC;IAEO,6BAA6B,CACnC,OAA8B,EAC9B,YAAwD;QAExD,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;QAEhD,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,QAAQ,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;QAC7C,MAAM,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACxC,MAAM,kBAAkB,GAAG,gBAAgB,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC;QAC1E,MAAM,uBAAuB,GAC3B,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,IAAI,EAAE;eAChC,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE;eACpC,QAAQ,EAAE,uBAAuB;eACjC,IAAI,CAAC;QACV,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,CAAC;QAE3D,OAAO;YACL,QAAQ,EAAE,IAAI,CAAC,UAAU;YACzB,iBAAiB,EAAE,SAAS;YAC5B,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,IAAI,SAAS;YACpD,aAAa;YACb,WAAW,EAAE,uBAAuB,CAAC,SAAS,CAAC;YAC/C,UAAU,EAAE,QAAQ,EAAE,UAAU,IAAI,KAAK;YACzC,aAAa,EAAE,cAAc,CAAC,kBAAkB,EAAE,IAAI,CAAC;YACvD,YAAY,EAAE,QAAQ,EAAE,YAAY,IAAI,CAAC;YACzC,uBAAuB;YACvB,UAAU,EAAE,OAAO,CAAC,uBAAuB,CAAC;YAC5C,aAAa,EAAE,IAAI;SACpB,CAAC;IACJ,CAAC;IAEO,mBAAmB,CACzB,UAAoB;QAEpB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC;YACjE,OAAO,IAAI,GAAG,EAAE,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE;YAChC,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1D,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CACrB;;;;;;;;;;;;0BAYkB,YAAY,GAAG,CAClC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAyB,CAAC;YAE7C,OAAO,IAAI,GAAG,CACZ,IAAI;iBACD,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE;gBACX,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;gBAE5C,IAAI,CAAC,SAAS,EAAE,CAAC;oBACf,OAAO,IAAI,CAAC;gBACd,CAAC;gBAED,OAAO;oBACL,SAAS;oBACT;wBACE,uBAAuB,EAAE,UAAU,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI;wBACjE,UAAU,EAAE,GAAG,CAAC,aAAa,KAAK,IAAI,IAAI,GAAG,CAAC,aAAa,KAAK,SAAS;wBACzE,YAAY,EAAE,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,WAAW,CAAC,GAAG,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC;qBACvB;iBACjC,CAAC;YACb,CAAC,CAAC;iBACD,MAAM,CAAC,CAAC,KAAK,EAA6D,EAAE,CAAC,KAAK,KAAK,IAAI,CAAC,CAChG,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,yBAAyB,CAC/B,UAAoB,EACpB,UAAkB;QAElB,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC5B,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,EAAE,CAAC;YACtC,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE;YAChC,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAC1D,MAAM,IAAI,GAAG,EAAE,CAAC,OAAO,CACrB;;;;;;;;;;;;;;;;;;;;0BAoBkB,YAAY,GAAG,CAClC,CAAC,GAAG,CAAC,GAAG,UAAU,CAAwB,CAAC;YAE5C,OAAO,IAAI;iBACR,GAAG,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,IAAI,CAAC,gCAAgC,CAAC,GAAG,CAAC,CAAC;iBACxD,MAAM,CAAC,CAAC,OAAO,EAAqC,EAAE,CAAC,OAAO,KAAK,IAAI,CAAC;iBACxE,MAAM,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,gBAAgB,CAAC,UAAU,EAAE,sBAAsB,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QACtG,CAAC,CAAC,CAAC;IACL,CAAC;IAEO,6BAA6B,CAAC,SAAiB;QACrD,IAAI,CAAC,2BAA2B,CAAC,SAAS,CAAC,CAAC;QAE5C,MAAM,IAAI,GAAG,IAAI,CAAC,cAAc,CAAC,CAAC,EAAE,EAAE,EAAE;YACtC,OAAO,EAAE,CAAC,OAAO,CACf;;;;;;;;;;;kDAW0C,CAC3C,CAAC,GAAG,CAAC,SAAS,CAAqB,CAAC;QACvC,CAAC,CAAC,CAAC;QAEH,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAuC,CAAC,GAAG,EAAE,GAAG,EAAE,EAAE;YAC/E,MAAM,SAAS,GAAG,UAAU,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;YACpD,MAAM,MAAM,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,CAAC;YAC9C,MAAM,cAAc,GAAG,YAAY,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC;YACtD,MAAM,WAAW,GAAG,YAAY,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC;YAEhD,IAAI,CAAC,SAAS,IAAI,CAAC,MAAM,IAAI,CAAC,cAAc,IAAI,CAAC,WAAW,EAAE,CAAC;gBAC7D,OAAO,GAAG,CAAC;YACb,CAAC;YAED,MAAM,QAAQ,GAAG,GAAG,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI;gBACrC,IAAI,EAAE;oBACJ,GAAG,cAAc;oBACjB,EAAE,EAAE,SAAS;oBACb,SAAS,EAAE,SAAS;oBACpB,IAAI,EAAE;wBACJ,GAAG,CAAC,YAAY,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;wBAC5C,OAAO,EAAE,gBAAgB,CAAC,GAAG,CAAC,oBAAoB,CAAC,IAAI,SAAS;qBACjE;iBACF;gBACD,KAAK,EAAE,EAAE;aACV,CAAC;YAEF,MAAM,KAAK,GAAG,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC;YAClE,KAAK,CAAC,IAAI,CAAC;gBACT,GAAG,WAAW;gBACd,EAAE,EAAE,MAAM;gBACV,SAAS,EAAE,SAAS;gBACpB,SAAS,EAAE,SAAS;aACrB,CAAC,CAAC;YACH,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;YACvB,GAAG,CAAC,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;YAC7B,OAAO,GAAG,CAAC;QACb,CAAC,EAAE,IAAI,GAAG,EAAE,CAAC,CAAC;QAEd,OAAO,iCAAiC,CACtC,SAAS,EACT,SAAS,EACT,CAAC,GAAG,SAAS,CAAC,MAAM,EAAE,CAAC,CACxB,CAAC;IACJ,CAAC;CACF;AAED,SAAS,kBAAkB,CAAC,KAAc;IACxC,MAAM,UAAU,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;IAC5C,OAAO,UAAU,IAAI,IAAI,CAAC;AAC5B,CAAC;AAED,SAAS,2BAA2B,CAAC,OAA6D;IAChG,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;QACvD,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,KAAK,GAAG,OAAO,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC,OAAO,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAC1D,OAAO,KAAK,IAAI,IAAI,CAAC;AACvB,CAAC;AAED,SAAS,aAAa,CAAC,UAAkB,EAAE,eAAuB;IAChE,MAAM,IAAI,GAAG,UAAU,CAAC,IAAI,EAAE,IAAI,SAAS,CAAC;IAC5C,MAAM,MAAM,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC3C,OAAO,GAAG,IAAI,SAAS,MAAM,EAAE,CAAC;AAClC,CAAC;AAED,SAAS,6BAA6B,CACpC,SAAiB,EACjB,OAAe,EACf,SAAiB;IAEjB,MAAM,MAAM,GAAG,GAAG,kBAAkB,CAAC,SAAS,EAAE,YAAY,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE,CAAC,YAAY,CAAC;IAEjG,OAAO;QACL,SAAS,EAAE,qBAAqB,IAAI,CAAC,KAAK,CAAC,SAAS,CAAC,EAAE;QACvD,QAAQ,EAAE,UAAU;QACpB,iBAAiB,EAAE,SAAS;QAC5B,IAAI,EAAE,MAAM;QACZ,IAAI,EAAE,MAAM;QACZ,OAAO;QACP,QAAQ,EAAE,IAAI;QACd,SAAS;QACT,QAAQ,EAAE,CAAC;QACX,MAAM;KACP,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,UAAkB,EAAE,MAAc;IAC9D,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;QACvB,OAAO,IAAI,KAAK,CAAC,4BAA4B,CAAC,CAAC;IACjD,CAAC;IAED,IAAI,UAAU,IAAI,GAAG,EAAE,CAAC;QACtB,OAAO,IAAI,KAAK,CAAC,oBAAoB,CAAC,CAAC;IACzC,CAAC;IAED,IAAI,UAAU,KAAK,GAAG,IAAI,sBAAsB,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QAC9D,OAAO,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;IACxC,CAAC;IAED,OAAO,IAAI,KAAK,CAAC,MAAM,IAAI,iBAAiB,UAAU,EAAE,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,+BAA+B,CACtC,WAAoC,EACpC,QAAqD;IAErD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,OAAO,WAAW,CAAC;IACrB,CAAC;IAED,MAAM,QAAQ,GAAG,EAAE,GAAG,WAAW,EAAE,CAAC;IACpC,MAAM,SAAS,GACb,OAAO,QAAQ,CAAC,IAAI,KAAK,QAAQ;QAC/B,CAAC,CAAC,MAAM;QACR,CAAC,CAAC,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ;YACpC,CAAC,CAAC,SAAS;YACX,CAAC,CAAC,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ;gBACpC,CAAC,CAAC,SAAS;gBACX,CAAC,CAAC,QAAQ,CAAC,IAAI,KAAK,UAAU;oBAC5B,CAAC,CAAC,UAAU;oBACZ,CAAC,CAAC,MAAM,CAAC;IAEnB,QAAQ,CAAC,SAAS,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC;IACvC,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,KAAK,UAAU,oBAAoB,CAAC,QAAkB;IACpD,IAAI,CAAC;QACH,OAAO,CAAC,MAAM,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IACxC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,EAAE,CAAC;IACZ,CAAC;AACH,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAc;IAC9C,OAAO,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,KAAK,oBAAoB,CAAC;AAC1E,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAc;IAC1C,OAAO,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,KAAK,gBAAgB,CAAC;AACtE,CAAC;AAED,SAAS,uBAAuB;IAC9B,OAAO;QACL,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE;QACvB,YAAY,EAAE,CAAC;KAChB,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,KAAwB;IACxD,OAAO;QACL,WAAW,EAAE,KAAK,CAAC,WAAW;QAC9B,YAAY,EAAE,KAAK,CAAC,YAAY,GAAG,CAAC;KACrC,CAAC;AACJ,CAAC;AAED,SAAS,oBAAoB,CAAC,KAAwB;IACpD,OAAO,CACL,KAAK,CAAC,YAAY,IAAI,wBAAwB;WAC3C,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,WAAW,IAAI,4BAA4B,CAClE,CAAC;AACJ,CAAC"}
|
|
@@ -47,14 +47,7 @@ export function walkJsonlFiles(rootDir) {
|
|
|
47
47
|
}
|
|
48
48
|
export function readJsonLines(filePath) {
|
|
49
49
|
const content = readFileSync(filePath, "utf8");
|
|
50
|
-
return content
|
|
51
|
-
.split(/\r?\n/)
|
|
52
|
-
.filter((line) => line.trim().length > 0)
|
|
53
|
-
.map((line, index) => ({
|
|
54
|
-
lineNumber: index + 1,
|
|
55
|
-
raw: line,
|
|
56
|
-
data: JSON.parse(line)
|
|
57
|
-
}));
|
|
50
|
+
return parseJsonLines(filePath, content.split(/\r?\n/));
|
|
58
51
|
}
|
|
59
52
|
export function readFirstNonEmptyLine(filePath, maxBytes = 256 * 1024) {
|
|
60
53
|
const stats = statSync(filePath);
|
|
@@ -117,20 +110,127 @@ export function readTrailingJsonLines(filePath, maxBytes) {
|
|
|
117
110
|
return [];
|
|
118
111
|
}
|
|
119
112
|
const firstLineNumber = countLinesBeforeOffset(fd, alignedStartOffset) + 1;
|
|
120
|
-
return content
|
|
121
|
-
.toString("utf8")
|
|
122
|
-
.split(/\r?\n/)
|
|
123
|
-
.filter((line) => line.trim().length > 0)
|
|
124
|
-
.map((line, index) => ({
|
|
125
|
-
lineNumber: firstLineNumber + index,
|
|
126
|
-
raw: line,
|
|
127
|
-
data: JSON.parse(line)
|
|
128
|
-
}));
|
|
113
|
+
return parseJsonLines(filePath, content.toString("utf8").split(/\r?\n/), firstLineNumber);
|
|
129
114
|
}
|
|
130
115
|
finally {
|
|
131
116
|
closeSync(fd);
|
|
132
117
|
}
|
|
133
118
|
}
|
|
119
|
+
const warnedInvalidJsonLineKeys = new Set();
|
|
120
|
+
const MAX_INVALID_JSON_WARNINGS = 256;
|
|
121
|
+
function parseJsonLines(filePath, lines, firstLineNumber = 1) {
|
|
122
|
+
return lines.flatMap((line, index) => parseJsonLine(filePath, line, firstLineNumber + index));
|
|
123
|
+
}
|
|
124
|
+
function parseJsonLine(filePath, rawLine, lineNumber) {
|
|
125
|
+
const trimmed = rawLine.trim();
|
|
126
|
+
if (trimmed.length === 0) {
|
|
127
|
+
return [];
|
|
128
|
+
}
|
|
129
|
+
const directRecord = parseJsonRecord(trimmed);
|
|
130
|
+
if (directRecord) {
|
|
131
|
+
return [{
|
|
132
|
+
lineNumber,
|
|
133
|
+
partIndex: 0,
|
|
134
|
+
raw: trimmed,
|
|
135
|
+
data: directRecord
|
|
136
|
+
}];
|
|
137
|
+
}
|
|
138
|
+
const splitRecords = splitConcatenatedJsonObjects(trimmed);
|
|
139
|
+
if (splitRecords.length > 1) {
|
|
140
|
+
const parsedRecords = splitRecords.flatMap((segment, partIndex) => {
|
|
141
|
+
const parsed = parseJsonRecord(segment);
|
|
142
|
+
if (!parsed) {
|
|
143
|
+
return [];
|
|
144
|
+
}
|
|
145
|
+
return [{
|
|
146
|
+
lineNumber,
|
|
147
|
+
partIndex,
|
|
148
|
+
raw: segment,
|
|
149
|
+
data: parsed
|
|
150
|
+
}];
|
|
151
|
+
});
|
|
152
|
+
if (parsedRecords.length === splitRecords.length) {
|
|
153
|
+
return parsedRecords;
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
warnInvalidJsonLine(filePath, lineNumber, trimmed);
|
|
157
|
+
return [];
|
|
158
|
+
}
|
|
159
|
+
function parseJsonRecord(raw) {
|
|
160
|
+
try {
|
|
161
|
+
const parsed = JSON.parse(raw);
|
|
162
|
+
return parsed && typeof parsed === "object" && !Array.isArray(parsed)
|
|
163
|
+
? parsed
|
|
164
|
+
: null;
|
|
165
|
+
}
|
|
166
|
+
catch {
|
|
167
|
+
return null;
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
function splitConcatenatedJsonObjects(raw) {
|
|
171
|
+
if (!raw.startsWith("{")) {
|
|
172
|
+
return [];
|
|
173
|
+
}
|
|
174
|
+
const segments = [];
|
|
175
|
+
let depth = 0;
|
|
176
|
+
let startIndex = -1;
|
|
177
|
+
let inString = false;
|
|
178
|
+
let escaping = false;
|
|
179
|
+
for (let index = 0; index < raw.length; index += 1) {
|
|
180
|
+
const char = raw[index];
|
|
181
|
+
if (inString) {
|
|
182
|
+
if (escaping) {
|
|
183
|
+
escaping = false;
|
|
184
|
+
continue;
|
|
185
|
+
}
|
|
186
|
+
if (char === "\\") {
|
|
187
|
+
escaping = true;
|
|
188
|
+
continue;
|
|
189
|
+
}
|
|
190
|
+
if (char === "\"") {
|
|
191
|
+
inString = false;
|
|
192
|
+
}
|
|
193
|
+
continue;
|
|
194
|
+
}
|
|
195
|
+
if (char === "\"") {
|
|
196
|
+
inString = true;
|
|
197
|
+
continue;
|
|
198
|
+
}
|
|
199
|
+
if (char === "{") {
|
|
200
|
+
if (depth === 0) {
|
|
201
|
+
startIndex = index;
|
|
202
|
+
}
|
|
203
|
+
depth += 1;
|
|
204
|
+
continue;
|
|
205
|
+
}
|
|
206
|
+
if (char !== "}") {
|
|
207
|
+
continue;
|
|
208
|
+
}
|
|
209
|
+
depth -= 1;
|
|
210
|
+
if (depth === 0 && startIndex >= 0) {
|
|
211
|
+
segments.push(raw.slice(startIndex, index + 1));
|
|
212
|
+
startIndex = -1;
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
if (depth !== 0 || inString || segments.length === 0) {
|
|
216
|
+
return [];
|
|
217
|
+
}
|
|
218
|
+
return segments.join("") === raw ? segments : [];
|
|
219
|
+
}
|
|
220
|
+
function warnInvalidJsonLine(filePath, lineNumber, raw) {
|
|
221
|
+
const warningKey = `${filePath}:${lineNumber}:${createHash("sha1").update(raw).digest("hex")}`;
|
|
222
|
+
if (warnedInvalidJsonLineKeys.has(warningKey)) {
|
|
223
|
+
return;
|
|
224
|
+
}
|
|
225
|
+
warnedInvalidJsonLineKeys.add(warningKey);
|
|
226
|
+
if (warnedInvalidJsonLineKeys.size > MAX_INVALID_JSON_WARNINGS) {
|
|
227
|
+
const oldestKey = warnedInvalidJsonLineKeys.keys().next().value;
|
|
228
|
+
if (oldestKey) {
|
|
229
|
+
warnedInvalidJsonLineKeys.delete(oldestKey);
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
console.warn(`[session-sync-core] 忽略损坏的 JSONL 记录: ${filePath}:${String(lineNumber)}`);
|
|
233
|
+
}
|
|
134
234
|
function countLinesBeforeOffset(fd, offset) {
|
|
135
235
|
if (offset <= 0) {
|
|
136
236
|
return 0;
|