@jingyi0605/codingns 0.6.0 → 0.6.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/bin/codingns.mjs +240 -2
- package/dist/public/assets/AdaptiveButlerPage-CfsUVZKl.js +3 -0
- package/dist/public/assets/{App-BZvapsi8.js → App-B9HcTkMT.js} +3 -3
- package/dist/public/assets/{BootstrapPage-gHSoa4JN.js → BootstrapPage-BgLdZEKQ.js} +1 -1
- package/dist/public/assets/ConversationPage-Cj8go7L0.js +4 -0
- package/dist/public/assets/{DesktopDetachPreviewPage-4eMRxiBW.js → DesktopDetachPreviewPage-YCBnyC58.js} +1 -1
- package/dist/public/assets/DesktopWindowPage-CrvndE23.js +2 -0
- package/dist/public/assets/FileContextPanel-CdC7GGw5.js +1 -0
- package/dist/public/assets/GitSidebar-z2SBinQh.js +6 -0
- package/dist/public/assets/MobileCreateSessionSheet-Cb2HM-y3.js +1 -0
- package/dist/public/assets/{MobileTopHeaderFrame-Bwv8Ovm_.js → MobileTopHeaderFrame-etF2HKlm.js} +1 -1
- package/dist/public/assets/MobileWorkspaceSwitcherHeader-CuGJ31kb.js +1 -0
- package/dist/public/assets/{RelayConnectEntryPage-D_4YL-YH.js → RelayConnectEntryPage-BB6DbGtP.js} +1 -1
- package/dist/public/assets/{ServerSettingsModal-CMSm3BZU.js → ServerSettingsModal-Bl1sacZg.js} +1 -1
- package/dist/public/assets/SessionIndexPage-NbF9gJnp.js +1 -0
- package/dist/public/assets/SettingsPage-DGsmQpLv.js +1 -0
- package/dist/public/assets/TerminalManagerPanel-BOm8Hi_v.js +1 -0
- package/dist/public/assets/{TerminalPage-DaooFaJ4.js → TerminalPage-B5JNFU6w.js} +19 -19
- package/dist/public/assets/TerminalRuntimeFallbackModal-CM3LRKOJ.js +1 -0
- package/dist/public/assets/{ToolFilesPage-CGxBvYG0.js → ToolFilesPage-GSqKQsj_.js} +1 -1
- package/dist/public/assets/ToolGitPage-BVFWMMQp.js +1 -0
- package/dist/public/assets/ToolProcessesPage-DZ456fYz.js +1 -0
- package/dist/public/assets/ToolsHomePage-DsJp0y8A.js +1 -0
- package/dist/public/assets/WorkbenchLandingPage-DyPei0e-.js +1 -0
- package/dist/public/assets/WorkbenchLayout-DlbgBT3n.js +4 -0
- package/dist/public/assets/WorkbenchModal-LNfB69qx.js +1 -0
- package/dist/public/assets/WorkbenchShellRoute-BsxumYx5.js +1 -0
- package/dist/public/assets/WorkbenchShellRoute-DhQo_0vu.css +1 -0
- package/dist/public/assets/WorkspaceDebugDetailPage-CaXj5zVI.js +1 -0
- package/dist/public/assets/WorkspaceDetailPage-DOexuuaw.js +1 -0
- package/dist/public/assets/WorkspaceHomePage-DkCHNjKD.js +1 -0
- package/dist/public/assets/{client-runtime-manager-BZpL17fc.js → client-runtime-manager-6OoYHXGd.js} +1 -1
- package/dist/public/assets/{file-tree-icon-Db5LXC8h.js → file-tree-icon-9pt1OStn.js} +1 -1
- package/dist/public/assets/index-BwlbvwaA.css +1 -0
- package/dist/public/assets/index-DSw-TkQL.js +42 -0
- package/dist/public/assets/legna-code-6TqgZ4Ls.png +0 -0
- package/dist/public/assets/{login-direct-candidate-resolver-1mxe_Oh8.js → login-direct-candidate-resolver-CLlYtBRq.js} +1 -1
- package/dist/public/assets/model-switch-api-C-l8-E1S.js +1 -0
- package/dist/public/assets/{preferences-service-DWnzl5a0.js → preferences-service-BCcfYP_d.js} +1 -1
- package/dist/public/assets/{relay-entry-C5_Iay0I.js → relay-entry-BmLkMKuq.js} +1 -1
- package/dist/public/assets/session-runtime-machine-DgtvREca.js +21 -0
- package/dist/public/assets/{terminal-runtime-meta-cdtWVfCm.js → terminal-runtime-meta-0h-75uRy.js} +1 -1
- package/dist/public/assets/useRegisteredDebugTemplates-rBVmAqh3.js +1 -0
- package/dist/public/index.html +2 -2
- package/dist/server/config/env.d.ts +2 -0
- package/dist/server/config/env.js +7 -0
- package/dist/server/config/env.js.map +1 -1
- package/dist/server/modules/assistant-capability/assistant-capability-service.d.ts +4 -1
- package/dist/server/modules/assistant-capability/assistant-capability-service.js +12 -1
- package/dist/server/modules/assistant-capability/assistant-capability-service.js.map +1 -1
- package/dist/server/modules/butler/butler-control-session-service.d.ts +4 -1
- package/dist/server/modules/butler/butler-control-session-service.js +17 -1
- package/dist/server/modules/butler/butler-control-session-service.js.map +1 -1
- package/dist/server/modules/butler/butler-profile-service.d.ts +3 -1
- package/dist/server/modules/butler/butler-profile-service.js +16 -4
- package/dist/server/modules/butler/butler-profile-service.js.map +1 -1
- package/dist/server/modules/model-switch/cc-switch-adapter.d.ts +7 -0
- package/dist/server/modules/model-switch/cc-switch-adapter.js +17 -0
- package/dist/server/modules/model-switch/cc-switch-adapter.js.map +1 -1
- package/dist/server/modules/opencli/opencli-bridge-skill-service.d.ts +12 -0
- package/dist/server/modules/opencli/opencli-bridge-skill-service.js +124 -0
- package/dist/server/modules/opencli/opencli-bridge-skill-service.js.map +1 -0
- package/dist/server/modules/opencli/opencli-catalog-service.d.ts +50 -0
- package/dist/server/modules/opencli/opencli-catalog-service.js +345 -0
- package/dist/server/modules/opencli/opencli-catalog-service.js.map +1 -0
- package/dist/server/modules/opencli/opencli-controller.d.ts +13 -0
- package/dist/server/modules/opencli/opencli-controller.js +30 -0
- package/dist/server/modules/opencli/opencli-controller.js.map +1 -0
- package/dist/server/modules/opencli/opencli-health-service.d.ts +28 -0
- package/dist/server/modules/opencli/opencli-health-service.js +106 -0
- package/dist/server/modules/opencli/opencli-health-service.js.map +1 -0
- package/dist/server/modules/opencli/opencli-install-discovery.d.ts +23 -0
- package/dist/server/modules/opencli/opencli-install-discovery.js +130 -0
- package/dist/server/modules/opencli/opencli-install-discovery.js.map +1 -0
- package/dist/server/modules/opencli/opencli-management-service.d.ts +59 -0
- package/dist/server/modules/opencli/opencli-management-service.js +152 -0
- package/dist/server/modules/opencli/opencli-management-service.js.map +1 -0
- package/dist/server/modules/opencli/opencli-runtime-builder.d.ts +11 -0
- package/dist/server/modules/opencli/opencli-runtime-builder.js +214 -0
- package/dist/server/modules/opencli/opencli-runtime-builder.js.map +1 -0
- package/dist/server/modules/opencli/opencli-runtime-layout.d.ts +3 -0
- package/dist/server/modules/opencli/opencli-runtime-layout.js +11 -0
- package/dist/server/modules/opencli/opencli-runtime-layout.js.map +1 -0
- package/dist/server/modules/opencli/opencli-runtime-profile-service.d.ts +29 -0
- package/dist/server/modules/opencli/opencli-runtime-profile-service.js +104 -0
- package/dist/server/modules/opencli/opencli-runtime-profile-service.js.map +1 -0
- package/dist/server/modules/opencli/opencli-runtime-resolver.d.ts +29 -0
- package/dist/server/modules/opencli/opencli-runtime-resolver.js +110 -0
- package/dist/server/modules/opencli/opencli-runtime-resolver.js.map +1 -0
- package/dist/server/modules/opencli/opencli-session-prompt-service.d.ts +11 -0
- package/dist/server/modules/opencli/opencli-session-prompt-service.js +66 -0
- package/dist/server/modules/opencli/opencli-session-prompt-service.js.map +1 -0
- package/dist/server/modules/parallel-sessions/parallel-session-controller.d.ts +4 -0
- package/dist/server/modules/parallel-sessions/parallel-session-controller.js +7 -0
- package/dist/server/modules/parallel-sessions/parallel-session-controller.js.map +1 -1
- package/dist/server/modules/parallel-sessions/parallel-session-group-service.d.ts +6 -1
- package/dist/server/modules/parallel-sessions/parallel-session-group-service.js +36 -2
- package/dist/server/modules/parallel-sessions/parallel-session-group-service.js.map +1 -1
- package/dist/server/modules/provider/opencode-model-options.d.ts +1 -0
- package/dist/server/modules/provider/opencode-model-options.js +54 -12
- package/dist/server/modules/provider/opencode-model-options.js.map +1 -1
- package/dist/server/modules/provider/provider-catalog-service.d.ts +46 -0
- package/dist/server/modules/provider/provider-catalog-service.js +249 -0
- package/dist/server/modules/provider/provider-catalog-service.js.map +1 -0
- package/dist/server/modules/provider/provider-controller.d.ts +20 -2
- package/dist/server/modules/provider/provider-controller.js +65 -5
- package/dist/server/modules/provider/provider-controller.js.map +1 -1
- package/dist/server/modules/provider/provider-disabled.d.ts +8 -0
- package/dist/server/modules/provider/provider-disabled.js +45 -0
- package/dist/server/modules/provider/provider-disabled.js.map +1 -0
- package/dist/server/modules/provider/provider-discovery-helper-client.d.ts +3 -0
- package/dist/server/modules/provider/provider-discovery-helper-client.js.map +1 -1
- package/dist/server/modules/provider/provider-discovery-helper-process.js +4 -4
- package/dist/server/modules/provider/provider-discovery-helper-process.js.map +1 -1
- package/dist/server/modules/provider/provider-discovery-runtime.d.ts +1 -1
- package/dist/server/modules/provider/provider-discovery-runtime.js +17 -9
- package/dist/server/modules/provider/provider-discovery-runtime.js.map +1 -1
- package/dist/server/modules/sessions/claude-compatible-provider-registry.d.ts +16 -0
- package/dist/server/modules/sessions/claude-compatible-provider-registry.js +91 -0
- package/dist/server/modules/sessions/claude-compatible-provider-registry.js.map +1 -0
- package/dist/server/modules/sessions/claude-runtime-helper-client.d.ts +1 -0
- package/dist/server/modules/sessions/claude-runtime-helper-client.js +14 -0
- package/dist/server/modules/sessions/claude-runtime-helper-client.js.map +1 -1
- package/dist/server/modules/sessions/codex-app-server-helper-client.d.ts +1 -0
- package/dist/server/modules/sessions/codex-app-server-helper-client.js +10 -0
- package/dist/server/modules/sessions/codex-app-server-helper-client.js.map +1 -1
- package/dist/server/modules/sessions/provider-session-delete-cli.js +2 -0
- package/dist/server/modules/sessions/provider-session-delete-cli.js.map +1 -1
- package/dist/server/modules/sessions/session-controller.d.ts +7 -0
- package/dist/server/modules/sessions/session-controller.js +22 -0
- package/dist/server/modules/sessions/session-controller.js.map +1 -1
- package/dist/server/modules/sessions/session-history-service.d.ts +18 -2
- package/dist/server/modules/sessions/session-history-service.js +330 -29
- package/dist/server/modules/sessions/session-history-service.js.map +1 -1
- package/dist/server/modules/sessions/session-live-runtime-router-service.js +9 -4
- package/dist/server/modules/sessions/session-live-runtime-router-service.js.map +1 -1
- package/dist/server/modules/sessions/session-live-runtime-service.d.ts +22 -5
- package/dist/server/modules/sessions/session-live-runtime-service.js +350 -122
- package/dist/server/modules/sessions/session-live-runtime-service.js.map +1 -1
- package/dist/server/modules/sessions/session-message-attachment-service.js +2 -2
- package/dist/server/modules/sessions/session-message-attachment-service.js.map +1 -1
- package/dist/server/modules/sessions/session-permission-request-service.d.ts +5 -2
- package/dist/server/modules/sessions/session-permission-request-service.js +26 -27
- package/dist/server/modules/sessions/session-permission-request-service.js.map +1 -1
- package/dist/server/modules/sessions/session-provider-config-service.d.ts +82 -0
- package/dist/server/modules/sessions/session-provider-config-service.js +925 -0
- package/dist/server/modules/sessions/session-provider-config-service.js.map +1 -0
- package/dist/server/modules/sessions/session-provider-error-mapper.d.ts +2 -0
- package/dist/server/modules/sessions/session-provider-error-mapper.js +42 -0
- package/dist/server/modules/sessions/session-provider-error-mapper.js.map +1 -1
- package/dist/server/modules/skills/skill-manager-service.d.ts +5 -0
- package/dist/server/modules/skills/skill-manager-service.js +26 -0
- package/dist/server/modules/skills/skill-manager-service.js.map +1 -1
- package/dist/server/modules/tasks/task-helper-process-handlers.d.ts +1 -0
- package/dist/server/modules/tasks/task-helper-process-handlers.js +1 -1
- package/dist/server/modules/tasks/task-helper-process-handlers.js.map +1 -1
- package/dist/server/routes/opencli.d.ts +3 -0
- package/dist/server/routes/opencli.js +7 -0
- package/dist/server/routes/opencli.js.map +1 -0
- package/dist/server/routes/providers.js +4 -2
- package/dist/server/routes/providers.js.map +1 -1
- package/dist/server/server/create-server.d.ts +8 -0
- package/dist/server/server/create-server.js +48 -12
- package/dist/server/server/create-server.js.map +1 -1
- package/dist/server/storage/repositories/opencli-catalog-entry-repository.d.ts +9 -0
- package/dist/server/storage/repositories/opencli-catalog-entry-repository.js +85 -0
- package/dist/server/storage/repositories/opencli-catalog-entry-repository.js.map +1 -0
- package/dist/server/storage/repositories/opencli-provider-repository.d.ts +8 -0
- package/dist/server/storage/repositories/opencli-provider-repository.js +88 -0
- package/dist/server/storage/repositories/opencli-provider-repository.js.map +1 -0
- package/dist/server/storage/repositories/opencli-runtime-profile-repository.d.ts +11 -0
- package/dist/server/storage/repositories/opencli-runtime-profile-repository.js +127 -0
- package/dist/server/storage/repositories/opencli-runtime-profile-repository.js.map +1 -0
- package/dist/server/storage/repositories/provider-control-repository.d.ts +9 -0
- package/dist/server/storage/repositories/provider-control-repository.js +51 -0
- package/dist/server/storage/repositories/provider-control-repository.js.map +1 -0
- package/dist/server/storage/repositories/session-binding-repository.js +44 -5
- package/dist/server/storage/repositories/session-binding-repository.js.map +1 -1
- package/dist/server/storage/repositories/session-index-repository.js +6 -0
- package/dist/server/storage/repositories/session-index-repository.js.map +1 -1
- package/dist/server/storage/sqlite/client.js +72 -0
- package/dist/server/storage/sqlite/client.js.map +1 -1
- package/dist/server/storage/sqlite/schema.sql +71 -0
- package/dist/server/types/domain.d.ts +56 -0
- package/node_modules/@codingns/session-sync-core/dist/claude-message-utils.d.ts +5 -2
- package/node_modules/@codingns/session-sync-core/dist/claude-message-utils.js +40 -8
- package/node_modules/@codingns/session-sync-core/dist/claude-message-utils.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/index.d.ts +2 -0
- package/node_modules/@codingns/session-sync-core/dist/index.js +2 -0
- package/node_modules/@codingns/session-sync-core/dist/index.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.d.ts +10 -1
- package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.js +110 -35
- package/node_modules/@codingns/session-sync-core/dist/providers/claude-code.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/providers/claude-session-store.d.ts +11 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/claude-session-store.js +105 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/claude-session-store.js.map +1 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/gemini.js +131 -39
- package/node_modules/@codingns/session-sync-core/dist/providers/gemini.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/providers/legna-code.d.ts +9 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/legna-code.js +17 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/legna-code.js.map +1 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/opencode-shared.d.ts +8 -1
- package/node_modules/@codingns/session-sync-core/dist/providers/opencode-shared.js +19 -6
- package/node_modules/@codingns/session-sync-core/dist/providers/opencode-shared.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/providers/opencode.d.ts +1 -0
- package/node_modules/@codingns/session-sync-core/dist/providers/opencode.js +13 -8
- package/node_modules/@codingns/session-sync-core/dist/providers/opencode.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/runtime/claude-runtime.d.ts +5 -1
- package/node_modules/@codingns/session-sync-core/dist/runtime/claude-runtime.js +103 -51
- package/node_modules/@codingns/session-sync-core/dist/runtime/claude-runtime.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.d.ts +2 -1
- package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js +41 -21
- package/node_modules/@codingns/session-sync-core/dist/runtime/codex-runtime.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/runtime/gemini-runtime.js +32 -8
- package/node_modules/@codingns/session-sync-core/dist/runtime/gemini-runtime.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/runtime/legna-runtime.d.ts +15 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/legna-runtime.js +16 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/legna-runtime.js.map +1 -0
- package/node_modules/@codingns/session-sync-core/dist/runtime/opencode-runtime.js +167 -10
- package/node_modules/@codingns/session-sync-core/dist/runtime/opencode-runtime.js.map +1 -1
- package/node_modules/@codingns/session-sync-core/dist/runtime/types.d.ts +2 -0
- package/node_modules/@codingns/session-sync-core/dist/types.d.ts +1 -1
- package/node_modules/@codingns/session-sync-core/dist/types.js +1 -1
- package/node_modules/@codingns/session-sync-core/dist/types.js.map +1 -1
- package/package.json +1 -1
- package/dist/public/assets/AdaptiveButlerPage-uFwDdN-F.js +0 -3
- package/dist/public/assets/ConversationPage-z3sXtKZ7.js +0 -4
- package/dist/public/assets/DesktopWindowPage-CZcoGApB.js +0 -2
- package/dist/public/assets/FileContextPanel-C3qex8bb.js +0 -1
- package/dist/public/assets/GitSidebar-BK6H16XU.js +0 -6
- package/dist/public/assets/MobileCreateSessionSheet-BYfbvK8o.js +0 -1
- package/dist/public/assets/MobileSheet-Ckug8hTb.js +0 -1
- package/dist/public/assets/MobileWorkspaceSwitcherHeader-RqWrBdn2.js +0 -1
- package/dist/public/assets/SessionIndexPage-DuK10DL5.js +0 -1
- package/dist/public/assets/SettingsPage-fyD-xaHL.js +0 -1
- package/dist/public/assets/TerminalManagerPanel-CCLr1Ypk.js +0 -1
- package/dist/public/assets/TerminalRuntimeFallbackModal-aUzjEBwP.js +0 -1
- package/dist/public/assets/ToolGitPage-C264yjS9.js +0 -1
- package/dist/public/assets/ToolProcessesPage-BOP4A1cb.js +0 -1
- package/dist/public/assets/ToolsHomePage-CQxGiKQA.js +0 -1
- package/dist/public/assets/WorkbenchLandingPage-CvAY68ca.js +0 -1
- package/dist/public/assets/WorkbenchLayout-DGm8Tc5M.js +0 -3
- package/dist/public/assets/WorkbenchModal-0tPIIhca.js +0 -1
- package/dist/public/assets/WorkbenchShellRoute-BF0nHWOk.css +0 -1
- package/dist/public/assets/WorkbenchShellRoute-DBBOsJo9.js +0 -1
- package/dist/public/assets/WorkspaceDebugDetailPage-CDerFYd2.js +0 -1
- package/dist/public/assets/WorkspaceDetailPage-BlJc1CHE.js +0 -1
- package/dist/public/assets/WorkspaceHomePage-BUsKJ3lv.js +0 -1
- package/dist/public/assets/default-session-permission-mode-DT4SGiwp.js +0 -1
- package/dist/public/assets/index-BZLcEHW3.js +0 -42
- package/dist/public/assets/index-BbspQPC2.css +0 -1
- package/dist/public/assets/session-runtime-machine-DdLeDqQr.js +0 -17
- package/dist/public/assets/useRegisteredDebugTemplates-oFAQNIqh.js +0 -1
|
@@ -6,6 +6,7 @@ export type SessionActivitySource = "none" | "runtime" | "inferred";
|
|
|
6
6
|
export type SessionActivityResolutionSource = "authoritative_runtime" | "authoritative_provider_event" | "inferred_log" | "unknown";
|
|
7
7
|
export type SessionActivityConfidence = "authoritative" | "strong" | "weak";
|
|
8
8
|
export type SessionInterruptSource = "user" | "runtime";
|
|
9
|
+
export type SessionProviderConfigMode = "global-default" | "cc-switch-preset";
|
|
9
10
|
export interface BootstrapState {
|
|
10
11
|
id: "default";
|
|
11
12
|
initialized: boolean;
|
|
@@ -186,6 +187,9 @@ export interface SessionBinding {
|
|
|
186
187
|
provider: ProviderId;
|
|
187
188
|
providerSessionId: string;
|
|
188
189
|
rawStoreRef: string;
|
|
190
|
+
providerConfigMode: SessionProviderConfigMode;
|
|
191
|
+
providerPresetId: string | null;
|
|
192
|
+
runtimeHomeDir: string | null;
|
|
189
193
|
createdAt: string;
|
|
190
194
|
updatedAt: string;
|
|
191
195
|
}
|
|
@@ -299,6 +303,8 @@ export interface SessionListItem {
|
|
|
299
303
|
provider: ProviderId;
|
|
300
304
|
providerSessionId: string;
|
|
301
305
|
rawStoreRef: string;
|
|
306
|
+
providerConfigMode?: SessionProviderConfigMode;
|
|
307
|
+
providerPresetId?: string | null;
|
|
302
308
|
parentSessionId?: string | null;
|
|
303
309
|
sessionKind?: "default" | "annotation";
|
|
304
310
|
annotationSourceMessageId?: string | null;
|
|
@@ -406,6 +412,11 @@ export interface UserPreferenceProfileRecord extends UserPreferenceProfile {
|
|
|
406
412
|
createdAt: string;
|
|
407
413
|
updatedAt: string;
|
|
408
414
|
}
|
|
415
|
+
export interface ProviderControlRecord {
|
|
416
|
+
providerId: ProviderId;
|
|
417
|
+
enabled: boolean;
|
|
418
|
+
updatedAt: string;
|
|
419
|
+
}
|
|
409
420
|
export interface GitRemoteCredentialRecord {
|
|
410
421
|
userId: string;
|
|
411
422
|
remoteUrl: string;
|
|
@@ -1086,6 +1097,11 @@ export type SkillScope = "workspace" | "assistant";
|
|
|
1086
1097
|
export type ManagedSkillState = "active" | "conflicted" | "missing";
|
|
1087
1098
|
export type SkillTargetCli = "codex" | "claude-code" | "gemini" | "opencode";
|
|
1088
1099
|
export type SkillTargetSyncStatus = "synced" | "pending" | "failed" | "conflicted";
|
|
1100
|
+
export type OpenCliProviderId = "opencli";
|
|
1101
|
+
export type OpenCliInstallState = "not_installed" | "installed" | "broken";
|
|
1102
|
+
export type OpenCliHealthState = "unknown" | "binary_ready" | "bridge_missing" | "ready" | "runtime_build_failed";
|
|
1103
|
+
export type OpenCliCatalogSource = "manifest" | "cli_list" | "local_manifest" | "cache";
|
|
1104
|
+
export type OpenCliRuntimeProfileStatus = "pending" | "ready" | "failed" | "stale";
|
|
1089
1105
|
export interface ManagedSkillRecord {
|
|
1090
1106
|
id: string;
|
|
1091
1107
|
name: string;
|
|
@@ -1107,6 +1123,46 @@ export interface SkillTargetBindingRecord {
|
|
|
1107
1123
|
lastErrorCode: string | null;
|
|
1108
1124
|
lastErrorDetail: string | null;
|
|
1109
1125
|
}
|
|
1126
|
+
export interface OpenCliProviderRecord {
|
|
1127
|
+
providerId: OpenCliProviderId;
|
|
1128
|
+
enabled: boolean;
|
|
1129
|
+
installState: OpenCliInstallState;
|
|
1130
|
+
healthState: OpenCliHealthState;
|
|
1131
|
+
version: string | null;
|
|
1132
|
+
installPath: string | null;
|
|
1133
|
+
lastCheckedAt: string | null;
|
|
1134
|
+
activeRuntimeId: string | null;
|
|
1135
|
+
lastErrorCode: string | null;
|
|
1136
|
+
lastErrorDetail: string | null;
|
|
1137
|
+
catalogRefreshedAt: string | null;
|
|
1138
|
+
catalogSource: OpenCliCatalogSource | null;
|
|
1139
|
+
}
|
|
1140
|
+
export interface OpenCliCatalogEntryRecord {
|
|
1141
|
+
providerId: OpenCliProviderId;
|
|
1142
|
+
commandId: string;
|
|
1143
|
+
site: string;
|
|
1144
|
+
name: string;
|
|
1145
|
+
description: string;
|
|
1146
|
+
strategy: string;
|
|
1147
|
+
browser: boolean;
|
|
1148
|
+
modulePath: string | null;
|
|
1149
|
+
sourceFile: string | null;
|
|
1150
|
+
enabled: boolean;
|
|
1151
|
+
sortOrder: number;
|
|
1152
|
+
}
|
|
1153
|
+
export interface OpenCliRuntimeProfileRecord {
|
|
1154
|
+
id: string;
|
|
1155
|
+
version: string;
|
|
1156
|
+
sourceInstallPath: string;
|
|
1157
|
+
enabledCommandIdsJson: string;
|
|
1158
|
+
runtimeRootPath: string;
|
|
1159
|
+
status: OpenCliRuntimeProfileStatus;
|
|
1160
|
+
contentHash: string;
|
|
1161
|
+
createdAt: string;
|
|
1162
|
+
updatedAt: string;
|
|
1163
|
+
lastErrorCode: string | null;
|
|
1164
|
+
lastErrorDetail: string | null;
|
|
1165
|
+
}
|
|
1110
1166
|
export type SkillScanManagementState = "managed" | "unmanaged" | "conflicted";
|
|
1111
1167
|
export interface SkillScanEntry {
|
|
1112
1168
|
targetCli: SkillTargetCli;
|
|
@@ -6,6 +6,7 @@ export interface ClaudeMessageEnvelope {
|
|
|
6
6
|
type: ClaudeEnvelopeRole;
|
|
7
7
|
source: ClaudeEnvelopeSource;
|
|
8
8
|
messageId: string | null;
|
|
9
|
+
envelopeKey?: string | null;
|
|
9
10
|
timestamp: unknown;
|
|
10
11
|
message: {
|
|
11
12
|
content?: unknown;
|
|
@@ -15,13 +16,14 @@ export interface ClaudeStableMessageRef {
|
|
|
15
16
|
rawRef: string;
|
|
16
17
|
sequence: number;
|
|
17
18
|
}
|
|
18
|
-
export declare function buildClaudeProgressiveTrackKey(message: Pick<NormalizedMessage, "providerSessionId" | "role" | "kind">, partIndex: number): string | null;
|
|
19
|
+
export declare function buildClaudeProgressiveTrackKey(message: Pick<NormalizedMessage, "providerSessionId" | "role" | "kind" | "rawRef" | "timestamp">, partIndex: number): string | null;
|
|
19
20
|
export declare function shouldReuseClaudeProgressiveIdentity(previous: Pick<NormalizedMessage, "providerSessionId" | "role" | "kind" | "content" | "toolCall">, next: Pick<NormalizedMessage, "providerSessionId" | "role" | "kind" | "content" | "toolCall">): boolean;
|
|
20
21
|
export declare function buildClaudeMessageSignature(message: Pick<NormalizedMessage, "role" | "kind" | "content" | "toolCall">): string;
|
|
21
22
|
export declare function toClaudeRecord(value: unknown): Record<string, unknown>;
|
|
22
23
|
export declare function readClaudeMessageId(message: Record<string, unknown>, record?: Record<string, unknown>): string | null;
|
|
23
24
|
export declare function normalizeClaudeMessageParts(content: unknown): Array<Record<string, unknown>>;
|
|
24
|
-
export declare function buildClaudeStableRawRef(identity: string): string;
|
|
25
|
+
export declare function buildClaudeStableRawRef(identity: string, providerId?: string): string;
|
|
26
|
+
export declare function readClaudeStableRawRefIdentity(rawRef: string): string | null;
|
|
25
27
|
export declare function buildClaudePartIdentity(input: {
|
|
26
28
|
part: Record<string, unknown>;
|
|
27
29
|
partType: string;
|
|
@@ -31,6 +33,7 @@ export declare function buildClaudePartIdentity(input: {
|
|
|
31
33
|
export declare function normalizeClaudeMessagePart(input: {
|
|
32
34
|
part: Record<string, unknown>;
|
|
33
35
|
envelope: ClaudeMessageEnvelope;
|
|
36
|
+
providerId?: string;
|
|
34
37
|
providerSessionId: string;
|
|
35
38
|
partIndex: number;
|
|
36
39
|
timestamp: string;
|
|
@@ -10,10 +10,17 @@ export function buildClaudeProgressiveTrackKey(message, partIndex) {
|
|
|
10
10
|
if (message.role !== "assistant" && message.role !== "tool") {
|
|
11
11
|
return null;
|
|
12
12
|
}
|
|
13
|
-
if (
|
|
14
|
-
return `${message.providerSessionId}:${message.role}:${message.kind}`;
|
|
13
|
+
if (isClaudeFallbackRawRef(message.rawRef)) {
|
|
14
|
+
return `${message.providerSessionId}:${message.role}:${message.kind}:timestamp:${message.timestamp}:part:${partIndex}`;
|
|
15
15
|
}
|
|
16
|
-
return `${message.providerSessionId}:${message.role}:${message.kind}
|
|
16
|
+
return `${message.providerSessionId}:${message.role}:${message.kind}:${message.rawRef}`;
|
|
17
|
+
}
|
|
18
|
+
function isClaudeFallbackRawRef(rawRef) {
|
|
19
|
+
const identity = readClaudeStableRawRefIdentity(rawRef);
|
|
20
|
+
if (!identity) {
|
|
21
|
+
return false;
|
|
22
|
+
}
|
|
23
|
+
return identity.startsWith("fallback:");
|
|
17
24
|
}
|
|
18
25
|
export function shouldReuseClaudeProgressiveIdentity(previous, next) {
|
|
19
26
|
if (previous.providerSessionId !== next.providerSessionId
|
|
@@ -104,8 +111,21 @@ export function normalizeClaudeMessageParts(content) {
|
|
|
104
111
|
})
|
|
105
112
|
.filter((item) => item !== null);
|
|
106
113
|
}
|
|
107
|
-
export function buildClaudeStableRawRef(identity) {
|
|
108
|
-
return
|
|
114
|
+
export function buildClaudeStableRawRef(identity, providerId = "claude-code") {
|
|
115
|
+
return `${providerId}://message/${encodeURIComponent(identity)}`;
|
|
116
|
+
}
|
|
117
|
+
export function readClaudeStableRawRefIdentity(rawRef) {
|
|
118
|
+
const marker = "://message/";
|
|
119
|
+
const markerIndex = rawRef.indexOf(marker);
|
|
120
|
+
if (markerIndex < 0) {
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
try {
|
|
124
|
+
return decodeURIComponent(rawRef.slice(markerIndex + marker.length));
|
|
125
|
+
}
|
|
126
|
+
catch {
|
|
127
|
+
return null;
|
|
128
|
+
}
|
|
109
129
|
}
|
|
110
130
|
export function buildClaudePartIdentity(input) {
|
|
111
131
|
const { part, partType, envelope, partIndex } = input;
|
|
@@ -129,6 +149,13 @@ export function buildClaudePartIdentity(input) {
|
|
|
129
149
|
}
|
|
130
150
|
return `message:${envelope.type}:${envelope.messageId}:part:${partIndex}:type:${normalizedType}`;
|
|
131
151
|
}
|
|
152
|
+
if (envelope.envelopeKey) {
|
|
153
|
+
if (envelope.type === "assistant" &&
|
|
154
|
+
(normalizedType === "text" || normalizedType === "thinking")) {
|
|
155
|
+
return `stream:${envelope.type}:${envelope.envelopeKey}:type:${normalizedType}`;
|
|
156
|
+
}
|
|
157
|
+
return `stream:${envelope.type}:${envelope.envelopeKey}:part:${partIndex}:type:${normalizedType}`;
|
|
158
|
+
}
|
|
132
159
|
const contentSeed = resolveClaudePartContentSeed(part, normalizedType);
|
|
133
160
|
return [
|
|
134
161
|
"fallback",
|
|
@@ -141,7 +168,7 @@ export function buildClaudePartIdentity(input) {
|
|
|
141
168
|
].join(":");
|
|
142
169
|
}
|
|
143
170
|
export function normalizeClaudeMessagePart(input) {
|
|
144
|
-
const { part, envelope, providerSessionId, partIndex, timestamp, toolNameById, resolveStableMessageRef } = input;
|
|
171
|
+
const { part, envelope, providerId = "claude-code", providerSessionId, partIndex, timestamp, toolNameById, resolveStableMessageRef } = input;
|
|
145
172
|
const partType = ensureText(part.type).trim();
|
|
146
173
|
const identity = buildClaudePartIdentity({
|
|
147
174
|
part,
|
|
@@ -161,6 +188,7 @@ export function normalizeClaudeMessagePart(input) {
|
|
|
161
188
|
return null;
|
|
162
189
|
}
|
|
163
190
|
return createClaudeMessage({
|
|
191
|
+
providerId,
|
|
164
192
|
providerSessionId,
|
|
165
193
|
rawRef,
|
|
166
194
|
sequence,
|
|
@@ -183,6 +211,7 @@ export function normalizeClaudeMessagePart(input) {
|
|
|
183
211
|
return null;
|
|
184
212
|
}
|
|
185
213
|
return createClaudeMessage({
|
|
214
|
+
providerId,
|
|
186
215
|
providerSessionId,
|
|
187
216
|
rawRef,
|
|
188
217
|
sequence,
|
|
@@ -202,6 +231,7 @@ export function normalizeClaudeMessagePart(input) {
|
|
|
202
231
|
if (patchText) {
|
|
203
232
|
toolNameById.set(callId, "apply_patch");
|
|
204
233
|
return createClaudeMessage({
|
|
234
|
+
providerId,
|
|
205
235
|
providerSessionId,
|
|
206
236
|
rawRef,
|
|
207
237
|
sequence,
|
|
@@ -224,6 +254,7 @@ export function normalizeClaudeMessagePart(input) {
|
|
|
224
254
|
return null;
|
|
225
255
|
}
|
|
226
256
|
return createClaudeMessage({
|
|
257
|
+
providerId,
|
|
227
258
|
providerSessionId,
|
|
228
259
|
rawRef,
|
|
229
260
|
sequence,
|
|
@@ -246,6 +277,7 @@ export function normalizeClaudeMessagePart(input) {
|
|
|
246
277
|
return null;
|
|
247
278
|
}
|
|
248
279
|
return createClaudeMessage({
|
|
280
|
+
providerId,
|
|
249
281
|
providerSessionId,
|
|
250
282
|
rawRef,
|
|
251
283
|
sequence,
|
|
@@ -257,10 +289,10 @@ export function normalizeClaudeMessagePart(input) {
|
|
|
257
289
|
});
|
|
258
290
|
}
|
|
259
291
|
function createClaudeMessage(input) {
|
|
260
|
-
const { providerSessionId, rawRef, sequence, timestamp, role, kind, content, toolCall } = input;
|
|
292
|
+
const { providerId, providerSessionId, rawRef, sequence, timestamp, role, kind, content, toolCall } = input;
|
|
261
293
|
return {
|
|
262
294
|
messageId: messageIdFromRawRef(rawRef),
|
|
263
|
-
provider:
|
|
295
|
+
provider: providerId,
|
|
264
296
|
providerSessionId,
|
|
265
297
|
role,
|
|
266
298
|
kind,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-message-utils.js","sourceRoot":"","sources":["../src/claude-message-utils.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"claude-message-utils.js","sourceRoot":"","sources":["../src/claude-message-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -5,11 +5,13 @@ export * from "./runtime/types.js";
|
|
|
5
5
|
export * from "./runtime/active-run-registry.js";
|
|
6
6
|
export * from "./runtime/provider-runtime-service.js";
|
|
7
7
|
export * from "./runtime/claude-runtime.js";
|
|
8
|
+
export * from "./runtime/legna-runtime.js";
|
|
8
9
|
export * from "./runtime/codex-runtime.js";
|
|
9
10
|
export * from "./runtime/gemini-runtime.js";
|
|
10
11
|
export * from "./runtime/kimi-runtime.js";
|
|
11
12
|
export * from "./runtime/opencode-runtime.js";
|
|
12
13
|
export * from "./providers/claude-code.js";
|
|
14
|
+
export * from "./providers/legna-code.js";
|
|
13
15
|
export * from "./providers/codex.js";
|
|
14
16
|
export * from "./providers/opencode.js";
|
|
15
17
|
export * from "./providers/gemini.js";
|
|
@@ -5,11 +5,13 @@ export * from "./runtime/types.js";
|
|
|
5
5
|
export * from "./runtime/active-run-registry.js";
|
|
6
6
|
export * from "./runtime/provider-runtime-service.js";
|
|
7
7
|
export * from "./runtime/claude-runtime.js";
|
|
8
|
+
export * from "./runtime/legna-runtime.js";
|
|
8
9
|
export * from "./runtime/codex-runtime.js";
|
|
9
10
|
export * from "./runtime/gemini-runtime.js";
|
|
10
11
|
export * from "./runtime/kimi-runtime.js";
|
|
11
12
|
export * from "./runtime/opencode-runtime.js";
|
|
12
13
|
export * from "./providers/claude-code.js";
|
|
14
|
+
export * from "./providers/legna-code.js";
|
|
13
15
|
export * from "./providers/codex.js";
|
|
14
16
|
export * from "./providers/opencode.js";
|
|
15
17
|
export * from "./providers/gemini.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kCAAkC,CAAC;AACjD,cAAc,uCAAuC,CAAC;AACtD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,YAAY,CAAC;AAC3B,cAAc,eAAe,CAAC;AAC9B,cAAc,eAAe,CAAC;AAC9B,cAAc,oBAAoB,CAAC;AACnC,cAAc,kCAAkC,CAAC;AACjD,cAAc,uCAAuC,CAAC;AACtD,cAAc,6BAA6B,CAAC;AAC5C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,6BAA6B,CAAC;AAC5C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,+BAA+B,CAAC;AAC9C,cAAc,4BAA4B,CAAC;AAC3C,cAAc,2BAA2B,CAAC;AAC1C,cAAc,sBAAsB,CAAC;AACrC,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC"}
|
|
@@ -1,7 +1,14 @@
|
|
|
1
|
-
import type { ContextUsageSnapshot, DetectSessionsOptions, ForkSessionOptions, ForkSessionResult, HistoryDirection, HistoryPage, ProviderAdapter, ProviderCapabilities, ProviderId, ProviderRealtimeEvent, ProviderSessionDiscovery, ProviderSessionSummary, ProviderSubscription, ResumeSessionResult, SendMessageResult, StartSessionOptions, StartSessionResult } from "../types.js";
|
|
1
|
+
import type { ContextUsageSnapshot, DetectSessionsOptions, ForkSessionOptions, ForkSessionResult, HistoryDirection, HistoryPage, ProviderAdapter, ProviderCapabilities, ProviderId, ProviderModelOption, ProviderRealtimeEvent, ProviderSessionDiscovery, ProviderSessionSummary, ProviderSubscription, ResumeSessionResult, SendMessageResult, StartSessionOptions, StartSessionResult } from "../types.js";
|
|
2
|
+
import { type ClaudeSessionStoreProfile } from "./claude-session-store.js";
|
|
2
3
|
interface ClaudeCodeAdapterOptions {
|
|
3
4
|
homeDir: string;
|
|
5
|
+
providerId?: ProviderId;
|
|
6
|
+
sessionStoreProfile?: ClaudeSessionStoreProfile;
|
|
7
|
+
modelOptions?: ProviderModelOption[];
|
|
8
|
+
defaultSessionTitle?: string;
|
|
9
|
+
capabilityLimitations?: string[];
|
|
4
10
|
}
|
|
11
|
+
export declare const CLAUDE_COMPAT_MODEL_OPTIONS: ProviderModelOption[];
|
|
5
12
|
export declare class ClaudeCodeAdapter implements ProviderAdapter {
|
|
6
13
|
private readonly options;
|
|
7
14
|
readonly providerId: ProviderId;
|
|
@@ -35,5 +42,7 @@ export declare class ClaudeCodeAdapter implements ProviderAdapter {
|
|
|
35
42
|
private parseMessages;
|
|
36
43
|
private collectMessageEnvelopes;
|
|
37
44
|
private readProgressEnvelope;
|
|
45
|
+
private getSessionStoreProfile;
|
|
46
|
+
private getDefaultSessionTitle;
|
|
38
47
|
}
|
|
39
48
|
export {};
|
|
@@ -2,11 +2,12 @@ import { basename, dirname, join } from "node:path";
|
|
|
2
2
|
import { existsSync, rmSync, statSync, writeFileSync } from "node:fs";
|
|
3
3
|
import crypto from "node:crypto";
|
|
4
4
|
import { buildClaudeMessageSignature, buildClaudeProgressiveTrackKey, buildClaudeStableRawRef, normalizeClaudeMessagePart, normalizeClaudeMessageParts, readClaudeMessageId, shouldReuseClaudeProgressiveIdentity, toClaudeRecord } from "../claude-message-utils.js";
|
|
5
|
-
import { appendJsonLine, createRawRef, encodeCursor, ensureDirectory, ensureText, messageIdFromRawRef, nextTimestamp, normalizeWorkspacePath, readFirstNonEmptyLine, readJsonLines, safeDate, sliceHistory
|
|
5
|
+
import { appendJsonLine, createRawRef, encodeCursor, ensureDirectory, ensureText, messageIdFromRawRef, nextTimestamp, normalizeWorkspacePath, readFirstNonEmptyLine, readJsonLines, safeDate, sliceHistory } from "./utils.js";
|
|
6
|
+
import { CLAUDE_CODE_SESSION_STORE_PROFILE } from "./claude-session-store.js";
|
|
6
7
|
const HISTORY_CACHE_LIMIT = 6;
|
|
7
8
|
const SESSION_SUMMARY_CACHE_LIMIT = 512;
|
|
8
9
|
const DEFAULT_CLAUDE_CONTEXT_WINDOW = 200_000;
|
|
9
|
-
const
|
|
10
|
+
export const CLAUDE_COMPAT_MODEL_OPTIONS = [
|
|
10
11
|
{
|
|
11
12
|
id: "provider-default",
|
|
12
13
|
name: "跟随 CLI 默认模型",
|
|
@@ -27,11 +28,12 @@ const CLAUDE_MODEL_OPTIONS = [
|
|
|
27
28
|
];
|
|
28
29
|
export class ClaudeCodeAdapter {
|
|
29
30
|
options;
|
|
30
|
-
providerId
|
|
31
|
+
providerId;
|
|
31
32
|
historyCache = new Map();
|
|
32
33
|
sessionSummaryCache = new Map();
|
|
33
34
|
constructor(options) {
|
|
34
35
|
this.options = options;
|
|
36
|
+
this.providerId = options.providerId ?? "claude-code";
|
|
35
37
|
}
|
|
36
38
|
async detectSessions(workspacePath, options) {
|
|
37
39
|
const discovery = await this.detectSessionsDetailed(workspacePath, options);
|
|
@@ -227,9 +229,9 @@ export class ClaudeCodeAdapter {
|
|
|
227
229
|
}
|
|
228
230
|
async startSession(workspacePath, options) {
|
|
229
231
|
const sessionId = crypto.randomUUID();
|
|
230
|
-
const
|
|
232
|
+
const filePath = this.getSessionStoreProfile().resolveSessionFilePath(this.options.homeDir, workspacePath, sessionId);
|
|
233
|
+
const projectDir = dirname(filePath);
|
|
231
234
|
ensureDirectory(projectDir);
|
|
232
|
-
const filePath = join(projectDir, `${sessionId}.jsonl`);
|
|
233
235
|
const now = nextTimestamp();
|
|
234
236
|
appendJsonLine(filePath, {
|
|
235
237
|
type: "queue-operation",
|
|
@@ -256,13 +258,13 @@ export class ClaudeCodeAdapter {
|
|
|
256
258
|
appendJsonLine(filePath, {
|
|
257
259
|
type: "ai-title",
|
|
258
260
|
sessionId,
|
|
259
|
-
aiTitle: options.initialPrompt?.slice(0, 48) ||
|
|
261
|
+
aiTitle: options.initialPrompt?.slice(0, 48) || this.getDefaultSessionTitle()
|
|
260
262
|
});
|
|
261
263
|
return {
|
|
262
264
|
session: {
|
|
263
265
|
provider: this.providerId,
|
|
264
266
|
providerSessionId: sessionId,
|
|
265
|
-
title: options.initialPrompt?.slice(0, 48) ||
|
|
267
|
+
title: options.initialPrompt?.slice(0, 48) || this.getDefaultSessionTitle(),
|
|
266
268
|
workspacePath,
|
|
267
269
|
rawStoreRef: filePath,
|
|
268
270
|
isArchived: false,
|
|
@@ -273,10 +275,11 @@ export class ClaudeCodeAdapter {
|
|
|
273
275
|
};
|
|
274
276
|
}
|
|
275
277
|
async forkSession(providerSessionId, workspacePath, options) {
|
|
276
|
-
const sourceFilePath = this.resolveForkSourceFilePath(options.rawStoreRef, providerSessionId);
|
|
278
|
+
const sourceFilePath = this.resolveForkSourceFilePath(options.rawStoreRef, providerSessionId, workspacePath);
|
|
277
279
|
const sourceRecords = readJsonLines(sourceFilePath).map((record) => record.data);
|
|
278
280
|
const forkedSessionId = crypto.randomUUID();
|
|
279
|
-
const
|
|
281
|
+
const targetFilePath = this.getSessionStoreProfile().resolveSessionFilePath(this.options.homeDir, workspacePath, forkedSessionId);
|
|
282
|
+
const projectDir = dirname(targetFilePath);
|
|
280
283
|
ensureDirectory(projectDir);
|
|
281
284
|
let forkedRecords = sourceRecords.map((record) => cloneJsonRecord(record));
|
|
282
285
|
let providerSourceMessageId = null;
|
|
@@ -295,7 +298,6 @@ export class ClaudeCodeAdapter {
|
|
|
295
298
|
providerSourceMessageId = target.providerSourceMessageId;
|
|
296
299
|
forkMethod = "native_message_fork";
|
|
297
300
|
}
|
|
298
|
-
const targetFilePath = join(projectDir, `${forkedSessionId}.jsonl`);
|
|
299
301
|
const persistedForkRecords = forkedRecords
|
|
300
302
|
// fork 后的标题必须由子会话自己生成,不能把父会话的 ai-title 原样抄过去。
|
|
301
303
|
.filter((record) => shouldPreserveClaudeForkRecord(record));
|
|
@@ -420,8 +422,9 @@ export class ClaudeCodeAdapter {
|
|
|
420
422
|
supportsSessionFork: true,
|
|
421
423
|
supportsSessionDelete: true,
|
|
422
424
|
supportsCheckpoint: false,
|
|
423
|
-
modelOptions:
|
|
424
|
-
limitations:
|
|
425
|
+
modelOptions: this.options.modelOptions ?? CLAUDE_COMPAT_MODEL_OPTIONS,
|
|
426
|
+
limitations: this.options.capabilityLimitations
|
|
427
|
+
?? ["当前实现只读取原生 jsonl,会话恢复不负责拉起外部 Claude 进程。"]
|
|
425
428
|
};
|
|
426
429
|
}
|
|
427
430
|
async getSessionCapabilities() {
|
|
@@ -488,20 +491,15 @@ export class ClaudeCodeAdapter {
|
|
|
488
491
|
return "";
|
|
489
492
|
}
|
|
490
493
|
listWorkspaceFiles(workspacePath) {
|
|
491
|
-
|
|
492
|
-
if (existsSync(exactProjectDir)) {
|
|
493
|
-
return walkJsonlFiles(exactProjectDir);
|
|
494
|
-
}
|
|
495
|
-
return walkJsonlFiles(join(this.options.homeDir, "projects"));
|
|
494
|
+
return this.getSessionStoreProfile().resolveWorkspaceFiles(this.options.homeDir, workspacePath);
|
|
496
495
|
}
|
|
497
|
-
resolveForkSourceFilePath(rawStoreRef, providerSessionId) {
|
|
496
|
+
resolveForkSourceFilePath(rawStoreRef, providerSessionId, workspacePath = "") {
|
|
498
497
|
if (existsSync(rawStoreRef)) {
|
|
499
498
|
return rawStoreRef;
|
|
500
499
|
}
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
}
|
|
500
|
+
const discoveredFilePath = this.getSessionStoreProfile().findSessionFile(this.options.homeDir, workspacePath, providerSessionId);
|
|
501
|
+
if (discoveredFilePath) {
|
|
502
|
+
return discoveredFilePath;
|
|
505
503
|
}
|
|
506
504
|
throw new Error("PROVIDER_SESSION_NOT_FOUND");
|
|
507
505
|
}
|
|
@@ -518,6 +516,7 @@ export class ClaudeCodeAdapter {
|
|
|
518
516
|
const normalized = normalizeClaudeMessagePart({
|
|
519
517
|
part,
|
|
520
518
|
envelope,
|
|
519
|
+
providerId: this.providerId,
|
|
521
520
|
providerSessionId,
|
|
522
521
|
partIndex,
|
|
523
522
|
timestamp: safeDate(envelope.timestamp, nextTimestamp()),
|
|
@@ -530,7 +529,7 @@ export class ClaudeCodeAdapter {
|
|
|
530
529
|
sequence += 1;
|
|
531
530
|
const created = {
|
|
532
531
|
sequence,
|
|
533
|
-
rawRef: buildClaudeStableRawRef(identity)
|
|
532
|
+
rawRef: buildClaudeStableRawRef(identity, this.providerId)
|
|
534
533
|
};
|
|
535
534
|
stableMessageRefByIdentity.set(identity, created);
|
|
536
535
|
return created;
|
|
@@ -614,19 +613,32 @@ export class ClaudeCodeAdapter {
|
|
|
614
613
|
}
|
|
615
614
|
}
|
|
616
615
|
parseMessages(filePath, records, providerSessionId = basename(filePath, ".jsonl")) {
|
|
617
|
-
const
|
|
618
|
-
const
|
|
616
|
+
const messageEntries = [];
|
|
617
|
+
const entryIndexByMessageId = new Map();
|
|
619
618
|
const toolNameById = new Map();
|
|
620
619
|
const stableMessageRefByIdentity = new Map();
|
|
621
620
|
const progressiveMessagesByTrackKey = new Map();
|
|
622
621
|
let sequence = 0;
|
|
623
|
-
|
|
624
|
-
|
|
622
|
+
let nextGroupOrder = 0;
|
|
623
|
+
const groupOrderByKey = new Map();
|
|
624
|
+
records.forEach((record, recordIndex) => {
|
|
625
|
+
this.collectMessageEnvelopes(record).forEach((envelope, envelopeIndex) => {
|
|
625
626
|
const parts = normalizeClaudeMessageParts(envelope.message.content);
|
|
627
|
+
const groupKey = buildClaudeEnvelopeGroupKey(envelope, record, recordIndex, envelopeIndex);
|
|
628
|
+
const groupOrder = (() => {
|
|
629
|
+
const existing = groupOrderByKey.get(groupKey);
|
|
630
|
+
if (existing !== undefined) {
|
|
631
|
+
return existing;
|
|
632
|
+
}
|
|
633
|
+
nextGroupOrder += 1;
|
|
634
|
+
groupOrderByKey.set(groupKey, nextGroupOrder);
|
|
635
|
+
return nextGroupOrder;
|
|
636
|
+
})();
|
|
626
637
|
parts.forEach((part, partIndex) => {
|
|
627
638
|
const normalized = normalizeClaudeMessagePart({
|
|
628
639
|
part,
|
|
629
640
|
envelope,
|
|
641
|
+
providerId: this.providerId,
|
|
630
642
|
providerSessionId,
|
|
631
643
|
partIndex,
|
|
632
644
|
timestamp: safeDate(envelope.timestamp, nextTimestamp()),
|
|
@@ -639,7 +651,7 @@ export class ClaudeCodeAdapter {
|
|
|
639
651
|
sequence += 1;
|
|
640
652
|
const created = {
|
|
641
653
|
sequence,
|
|
642
|
-
rawRef: buildClaudeStableRawRef(identity)
|
|
654
|
+
rawRef: buildClaudeStableRawRef(identity, this.providerId)
|
|
643
655
|
};
|
|
644
656
|
stableMessageRefByIdentity.set(identity, created);
|
|
645
657
|
return created;
|
|
@@ -667,20 +679,53 @@ export class ClaudeCodeAdapter {
|
|
|
667
679
|
progressiveMessagesByTrackKey.set(trackKey, nextMessage);
|
|
668
680
|
}
|
|
669
681
|
const signature = buildClaudeMessageSignature(nextMessage);
|
|
670
|
-
const
|
|
682
|
+
const currentEntryIndex = entryIndexByMessageId.get(nextMessage.messageId);
|
|
683
|
+
const current = currentEntryIndex === undefined
|
|
684
|
+
? null
|
|
685
|
+
: (messageEntries[currentEntryIndex]?.message ?? null);
|
|
671
686
|
if (current && buildClaudeMessageSignature(current) === signature) {
|
|
672
687
|
return;
|
|
673
688
|
}
|
|
674
|
-
if (
|
|
675
|
-
|
|
689
|
+
if (currentEntryIndex === undefined) {
|
|
690
|
+
entryIndexByMessageId.set(nextMessage.messageId, messageEntries.length);
|
|
691
|
+
messageEntries.push({
|
|
692
|
+
message: nextMessage,
|
|
693
|
+
groupOrder,
|
|
694
|
+
partIndex
|
|
695
|
+
});
|
|
696
|
+
return;
|
|
676
697
|
}
|
|
677
|
-
|
|
698
|
+
messageEntries[currentEntryIndex] = {
|
|
699
|
+
message: nextMessage,
|
|
700
|
+
groupOrder,
|
|
701
|
+
partIndex
|
|
702
|
+
};
|
|
678
703
|
});
|
|
679
704
|
});
|
|
680
705
|
});
|
|
681
|
-
return
|
|
682
|
-
.
|
|
683
|
-
.
|
|
706
|
+
return messageEntries
|
|
707
|
+
.sort((left, right) => {
|
|
708
|
+
if (left.groupOrder !== right.groupOrder) {
|
|
709
|
+
return left.groupOrder - right.groupOrder;
|
|
710
|
+
}
|
|
711
|
+
const kindOrder = resolveClaudeHistoryKindOrder(left.message.kind)
|
|
712
|
+
- resolveClaudeHistoryKindOrder(right.message.kind);
|
|
713
|
+
if (kindOrder !== 0) {
|
|
714
|
+
return kindOrder;
|
|
715
|
+
}
|
|
716
|
+
if (left.partIndex !== right.partIndex) {
|
|
717
|
+
return left.partIndex - right.partIndex;
|
|
718
|
+
}
|
|
719
|
+
const timestampOrder = left.message.timestamp.localeCompare(right.message.timestamp);
|
|
720
|
+
if (timestampOrder !== 0) {
|
|
721
|
+
return timestampOrder;
|
|
722
|
+
}
|
|
723
|
+
return left.message.rawRef.localeCompare(right.message.rawRef);
|
|
724
|
+
})
|
|
725
|
+
.map((entry, index) => ({
|
|
726
|
+
...entry.message,
|
|
727
|
+
sequence: index + 1
|
|
728
|
+
}));
|
|
684
729
|
}
|
|
685
730
|
collectMessageEnvelopes(record) {
|
|
686
731
|
const envelopes = [];
|
|
@@ -719,6 +764,36 @@ export class ClaudeCodeAdapter {
|
|
|
719
764
|
message: nestedMessage
|
|
720
765
|
};
|
|
721
766
|
}
|
|
767
|
+
getSessionStoreProfile() {
|
|
768
|
+
return this.options.sessionStoreProfile ?? CLAUDE_CODE_SESSION_STORE_PROFILE;
|
|
769
|
+
}
|
|
770
|
+
getDefaultSessionTitle() {
|
|
771
|
+
return this.options.defaultSessionTitle ?? "New Claude Code session";
|
|
772
|
+
}
|
|
773
|
+
}
|
|
774
|
+
function buildClaudeEnvelopeGroupKey(envelope, record, recordIndex, envelopeIndex) {
|
|
775
|
+
if (envelope.messageId) {
|
|
776
|
+
return `${envelope.type}:message:${envelope.messageId}`;
|
|
777
|
+
}
|
|
778
|
+
const sessionId = ensureText(record.sessionId).trim()
|
|
779
|
+
|| ensureText(record.session_id).trim()
|
|
780
|
+
|| "unknown";
|
|
781
|
+
const timestamp = ensureText(record.timestamp).trim() || `record-${recordIndex}`;
|
|
782
|
+
return `${envelope.type}:${envelope.source}:${sessionId}:${timestamp}:${recordIndex}:${envelopeIndex}`;
|
|
783
|
+
}
|
|
784
|
+
function resolveClaudeHistoryKindOrder(kind) {
|
|
785
|
+
switch (kind) {
|
|
786
|
+
case "thinking":
|
|
787
|
+
return 0;
|
|
788
|
+
case "text":
|
|
789
|
+
return 1;
|
|
790
|
+
case "tool_call":
|
|
791
|
+
return 2;
|
|
792
|
+
case "tool_result":
|
|
793
|
+
return 3;
|
|
794
|
+
default:
|
|
795
|
+
return 4;
|
|
796
|
+
}
|
|
722
797
|
}
|
|
723
798
|
function isPendingClaudeRuntimeRef(providerSessionId, rawStoreRef) {
|
|
724
799
|
if (providerSessionId.trim().toLowerCase().startsWith("pending://")) {
|