@jingyi0605/codingns 0.6.1 → 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.
Files changed (162) hide show
  1. package/bin/codingns.mjs +225 -0
  2. package/dist/public/assets/AdaptiveButlerPage-CfsUVZKl.js +3 -0
  3. package/dist/public/assets/{App-Dsf3ooXU.js → App-B9HcTkMT.js} +3 -3
  4. package/dist/public/assets/{BootstrapPage-CE0m1qSR.js → BootstrapPage-BgLdZEKQ.js} +1 -1
  5. package/dist/public/assets/ConversationPage-Cj8go7L0.js +4 -0
  6. package/dist/public/assets/{DesktopDetachPreviewPage-Dxarr_Wf.js → DesktopDetachPreviewPage-YCBnyC58.js} +1 -1
  7. package/dist/public/assets/{DesktopWindowPage-VytPwJ4c.js → DesktopWindowPage-CrvndE23.js} +1 -1
  8. package/dist/public/assets/{FileContextPanel-DwFzLsOp.js → FileContextPanel-CdC7GGw5.js} +1 -1
  9. package/dist/public/assets/{GitSidebar-CH6WqTrM.js → GitSidebar-z2SBinQh.js} +1 -1
  10. package/dist/public/assets/{MobileCreateSessionSheet-DcxKM00P.js → MobileCreateSessionSheet-Cb2HM-y3.js} +1 -1
  11. package/dist/public/assets/{MobileTopHeaderFrame-C5rIKQT6.js → MobileTopHeaderFrame-etF2HKlm.js} +1 -1
  12. package/dist/public/assets/{MobileWorkspaceSwitcherHeader-CfUnHgv_.js → MobileWorkspaceSwitcherHeader-CuGJ31kb.js} +1 -1
  13. package/dist/public/assets/{RelayConnectEntryPage-CgMvVZwa.js → RelayConnectEntryPage-BB6DbGtP.js} +1 -1
  14. package/dist/public/assets/{ServerSettingsModal-CFul__z1.js → ServerSettingsModal-Bl1sacZg.js} +1 -1
  15. package/dist/public/assets/{SessionIndexPage-B-tRhBXC.js → SessionIndexPage-NbF9gJnp.js} +1 -1
  16. package/dist/public/assets/SettingsPage-DGsmQpLv.js +1 -0
  17. package/dist/public/assets/{TerminalManagerPanel-BbORd-ee.js → TerminalManagerPanel-BOm8Hi_v.js} +1 -1
  18. package/dist/public/assets/{TerminalPage-DWHv6mlu.js → TerminalPage-B5JNFU6w.js} +19 -19
  19. package/dist/public/assets/{TerminalRuntimeFallbackModal-B29YxbQe.js → TerminalRuntimeFallbackModal-CM3LRKOJ.js} +1 -1
  20. package/dist/public/assets/{ToolFilesPage-Dx9cv9hu.js → ToolFilesPage-GSqKQsj_.js} +1 -1
  21. package/dist/public/assets/{ToolGitPage-D7H3vAia.js → ToolGitPage-BVFWMMQp.js} +1 -1
  22. package/dist/public/assets/{ToolProcessesPage-PqQWxsy-.js → ToolProcessesPage-DZ456fYz.js} +1 -1
  23. package/dist/public/assets/{ToolsHomePage-CX05Pe_4.js → ToolsHomePage-DsJp0y8A.js} +1 -1
  24. package/dist/public/assets/{WorkbenchLandingPage-CchkAC75.js → WorkbenchLandingPage-DyPei0e-.js} +1 -1
  25. package/dist/public/assets/WorkbenchLayout-DlbgBT3n.js +4 -0
  26. package/dist/public/assets/WorkbenchModal-LNfB69qx.js +1 -0
  27. package/dist/public/assets/WorkbenchShellRoute-BsxumYx5.js +1 -0
  28. package/dist/public/assets/{WorkbenchShellRoute-RGZpA0_J.css → WorkbenchShellRoute-DhQo_0vu.css} +1 -1
  29. package/dist/public/assets/{WorkspaceDebugDetailPage-Deqy2_pO.js → WorkspaceDebugDetailPage-CaXj5zVI.js} +1 -1
  30. package/dist/public/assets/{WorkspaceDetailPage-Cvf-ZdlB.js → WorkspaceDetailPage-DOexuuaw.js} +1 -1
  31. package/dist/public/assets/{WorkspaceHomePage-Dsyvqyk1.js → WorkspaceHomePage-DkCHNjKD.js} +1 -1
  32. package/dist/public/assets/{client-runtime-manager-DROQJ9v3.js → client-runtime-manager-6OoYHXGd.js} +1 -1
  33. package/dist/public/assets/{file-tree-icon-Bp3Ntt7u.js → file-tree-icon-9pt1OStn.js} +1 -1
  34. package/dist/public/assets/index-BwlbvwaA.css +1 -0
  35. package/dist/public/assets/index-DSw-TkQL.js +42 -0
  36. package/dist/public/assets/{login-direct-candidate-resolver-DotM530R.js → login-direct-candidate-resolver-CLlYtBRq.js} +1 -1
  37. package/dist/public/assets/model-switch-api-C-l8-E1S.js +1 -0
  38. package/dist/public/assets/{preferences-service-BG6GKG29.js → preferences-service-BCcfYP_d.js} +1 -1
  39. package/dist/public/assets/{relay-entry-pmr-c42O.js → relay-entry-BmLkMKuq.js} +1 -1
  40. package/dist/public/assets/session-runtime-machine-DgtvREca.js +21 -0
  41. package/dist/public/assets/{terminal-runtime-meta-8_uRZf7h.js → terminal-runtime-meta-0h-75uRy.js} +1 -1
  42. package/dist/public/assets/{useRegisteredDebugTemplates-DWX7LXQu.js → useRegisteredDebugTemplates-rBVmAqh3.js} +1 -1
  43. package/dist/public/index.html +2 -2
  44. package/dist/server/modules/assistant-capability/assistant-capability-service.d.ts +4 -1
  45. package/dist/server/modules/assistant-capability/assistant-capability-service.js +12 -1
  46. package/dist/server/modules/assistant-capability/assistant-capability-service.js.map +1 -1
  47. package/dist/server/modules/butler/butler-control-session-service.d.ts +4 -1
  48. package/dist/server/modules/butler/butler-control-session-service.js +17 -1
  49. package/dist/server/modules/butler/butler-control-session-service.js.map +1 -1
  50. package/dist/server/modules/butler/butler-profile-service.d.ts +3 -1
  51. package/dist/server/modules/butler/butler-profile-service.js +16 -4
  52. package/dist/server/modules/butler/butler-profile-service.js.map +1 -1
  53. package/dist/server/modules/opencli/opencli-bridge-skill-service.d.ts +12 -0
  54. package/dist/server/modules/opencli/opencli-bridge-skill-service.js +124 -0
  55. package/dist/server/modules/opencli/opencli-bridge-skill-service.js.map +1 -0
  56. package/dist/server/modules/opencli/opencli-catalog-service.d.ts +50 -0
  57. package/dist/server/modules/opencli/opencli-catalog-service.js +345 -0
  58. package/dist/server/modules/opencli/opencli-catalog-service.js.map +1 -0
  59. package/dist/server/modules/opencli/opencli-controller.d.ts +13 -0
  60. package/dist/server/modules/opencli/opencli-controller.js +30 -0
  61. package/dist/server/modules/opencli/opencli-controller.js.map +1 -0
  62. package/dist/server/modules/opencli/opencli-health-service.d.ts +28 -0
  63. package/dist/server/modules/opencli/opencli-health-service.js +106 -0
  64. package/dist/server/modules/opencli/opencli-health-service.js.map +1 -0
  65. package/dist/server/modules/opencli/opencli-install-discovery.d.ts +23 -0
  66. package/dist/server/modules/opencli/opencli-install-discovery.js +130 -0
  67. package/dist/server/modules/opencli/opencli-install-discovery.js.map +1 -0
  68. package/dist/server/modules/opencli/opencli-management-service.d.ts +59 -0
  69. package/dist/server/modules/opencli/opencli-management-service.js +152 -0
  70. package/dist/server/modules/opencli/opencli-management-service.js.map +1 -0
  71. package/dist/server/modules/opencli/opencli-runtime-builder.d.ts +11 -0
  72. package/dist/server/modules/opencli/opencli-runtime-builder.js +214 -0
  73. package/dist/server/modules/opencli/opencli-runtime-builder.js.map +1 -0
  74. package/dist/server/modules/opencli/opencli-runtime-layout.d.ts +3 -0
  75. package/dist/server/modules/opencli/opencli-runtime-layout.js +11 -0
  76. package/dist/server/modules/opencli/opencli-runtime-layout.js.map +1 -0
  77. package/dist/server/modules/opencli/opencli-runtime-profile-service.d.ts +29 -0
  78. package/dist/server/modules/opencli/opencli-runtime-profile-service.js +104 -0
  79. package/dist/server/modules/opencli/opencli-runtime-profile-service.js.map +1 -0
  80. package/dist/server/modules/opencli/opencli-runtime-resolver.d.ts +29 -0
  81. package/dist/server/modules/opencli/opencli-runtime-resolver.js +110 -0
  82. package/dist/server/modules/opencli/opencli-runtime-resolver.js.map +1 -0
  83. package/dist/server/modules/opencli/opencli-session-prompt-service.d.ts +11 -0
  84. package/dist/server/modules/opencli/opencli-session-prompt-service.js +66 -0
  85. package/dist/server/modules/opencli/opencli-session-prompt-service.js.map +1 -0
  86. package/dist/server/modules/provider/provider-catalog-service.d.ts +46 -0
  87. package/dist/server/modules/provider/provider-catalog-service.js +249 -0
  88. package/dist/server/modules/provider/provider-catalog-service.js.map +1 -0
  89. package/dist/server/modules/provider/provider-controller.d.ts +15 -2
  90. package/dist/server/modules/provider/provider-controller.js +44 -6
  91. package/dist/server/modules/provider/provider-controller.js.map +1 -1
  92. package/dist/server/modules/provider/provider-disabled.d.ts +8 -0
  93. package/dist/server/modules/provider/provider-disabled.js +45 -0
  94. package/dist/server/modules/provider/provider-disabled.js.map +1 -0
  95. package/dist/server/modules/provider/provider-discovery-helper-client.d.ts +1 -0
  96. package/dist/server/modules/provider/provider-discovery-helper-client.js.map +1 -1
  97. package/dist/server/modules/provider/provider-discovery-helper-process.js +3 -3
  98. package/dist/server/modules/provider/provider-discovery-helper-process.js.map +1 -1
  99. package/dist/server/modules/provider/provider-discovery-runtime.d.ts +1 -1
  100. package/dist/server/modules/provider/provider-discovery-runtime.js +12 -8
  101. package/dist/server/modules/provider/provider-discovery-runtime.js.map +1 -1
  102. package/dist/server/modules/sessions/claude-compatible-provider-registry.d.ts +16 -0
  103. package/dist/server/modules/sessions/claude-compatible-provider-registry.js +91 -0
  104. package/dist/server/modules/sessions/claude-compatible-provider-registry.js.map +1 -0
  105. package/dist/server/modules/sessions/session-history-service.d.ts +7 -1
  106. package/dist/server/modules/sessions/session-history-service.js +49 -16
  107. package/dist/server/modules/sessions/session-history-service.js.map +1 -1
  108. package/dist/server/modules/sessions/session-live-runtime-router-service.js +9 -4
  109. package/dist/server/modules/sessions/session-live-runtime-router-service.js.map +1 -1
  110. package/dist/server/modules/sessions/session-live-runtime-service.d.ts +8 -4
  111. package/dist/server/modules/sessions/session-live-runtime-service.js +100 -87
  112. package/dist/server/modules/sessions/session-live-runtime-service.js.map +1 -1
  113. package/dist/server/modules/sessions/session-permission-request-service.d.ts +5 -2
  114. package/dist/server/modules/sessions/session-permission-request-service.js +26 -27
  115. package/dist/server/modules/sessions/session-permission-request-service.js.map +1 -1
  116. package/dist/server/modules/sessions/session-provider-config-service.d.ts +17 -1
  117. package/dist/server/modules/sessions/session-provider-config-service.js +121 -17
  118. package/dist/server/modules/sessions/session-provider-config-service.js.map +1 -1
  119. package/dist/server/modules/skills/skill-manager-service.d.ts +5 -0
  120. package/dist/server/modules/skills/skill-manager-service.js +26 -0
  121. package/dist/server/modules/skills/skill-manager-service.js.map +1 -1
  122. package/dist/server/modules/tasks/task-helper-process-handlers.d.ts +1 -0
  123. package/dist/server/modules/tasks/task-helper-process-handlers.js +1 -1
  124. package/dist/server/modules/tasks/task-helper-process-handlers.js.map +1 -1
  125. package/dist/server/routes/opencli.d.ts +3 -0
  126. package/dist/server/routes/opencli.js +7 -0
  127. package/dist/server/routes/opencli.js.map +1 -0
  128. package/dist/server/routes/providers.js +4 -2
  129. package/dist/server/routes/providers.js.map +1 -1
  130. package/dist/server/server/create-server.d.ts +8 -0
  131. package/dist/server/server/create-server.js +44 -11
  132. package/dist/server/server/create-server.js.map +1 -1
  133. package/dist/server/storage/repositories/opencli-catalog-entry-repository.d.ts +9 -0
  134. package/dist/server/storage/repositories/opencli-catalog-entry-repository.js +85 -0
  135. package/dist/server/storage/repositories/opencli-catalog-entry-repository.js.map +1 -0
  136. package/dist/server/storage/repositories/opencli-provider-repository.d.ts +8 -0
  137. package/dist/server/storage/repositories/opencli-provider-repository.js +88 -0
  138. package/dist/server/storage/repositories/opencli-provider-repository.js.map +1 -0
  139. package/dist/server/storage/repositories/opencli-runtime-profile-repository.d.ts +11 -0
  140. package/dist/server/storage/repositories/opencli-runtime-profile-repository.js +127 -0
  141. package/dist/server/storage/repositories/opencli-runtime-profile-repository.js.map +1 -0
  142. package/dist/server/storage/repositories/provider-control-repository.d.ts +9 -0
  143. package/dist/server/storage/repositories/provider-control-repository.js +51 -0
  144. package/dist/server/storage/repositories/provider-control-repository.js.map +1 -0
  145. package/dist/server/storage/sqlite/client.js +53 -0
  146. package/dist/server/storage/sqlite/client.js.map +1 -1
  147. package/dist/server/storage/sqlite/schema.sql +66 -0
  148. package/dist/server/types/domain.d.ts +50 -0
  149. package/node_modules/@codingns/session-sync-core/dist/runtime/legna-runtime.d.ts +5 -0
  150. package/node_modules/@codingns/session-sync-core/dist/runtime/legna-runtime.js +1 -1
  151. package/node_modules/@codingns/session-sync-core/dist/runtime/legna-runtime.js.map +1 -1
  152. package/package.json +1 -1
  153. package/dist/public/assets/AdaptiveButlerPage-Dw72U3hG.js +0 -3
  154. package/dist/public/assets/ConversationPage-8wOY7SX-.js +0 -4
  155. package/dist/public/assets/SettingsPage-C9LGxSQZ.js +0 -1
  156. package/dist/public/assets/WorkbenchLayout-pOZvEqp7.js +0 -3
  157. package/dist/public/assets/WorkbenchModal-ColqvV6a.js +0 -1
  158. package/dist/public/assets/WorkbenchShellRoute-C0_h4lP6.js +0 -1
  159. package/dist/public/assets/index-B84Po2NA.css +0 -1
  160. package/dist/public/assets/index-C-0oeG_5.js +0 -42
  161. package/dist/public/assets/model-switch-api-Bh9nYslz.js +0 -1
  162. package/dist/public/assets/session-runtime-machine-YN84QBlr.js +0 -21
@@ -0,0 +1,46 @@
1
+ import { type ProviderCapabilities, type ProviderId } from "@codingns/session-sync-core";
2
+ import type { HostConfig } from "../../config/env.js";
3
+ import type { ProviderControlRepository } from "../../storage/repositories/provider-control-repository.js";
4
+ export type ProviderInstallState = "ready" | "missing" | "unknown";
5
+ export interface ProviderCatalogEntryDto {
6
+ provider: ProviderId;
7
+ displayName: string;
8
+ enabled: boolean;
9
+ installState: ProviderInstallState;
10
+ version: string | null;
11
+ disableImpact: {
12
+ hidesSessions: boolean;
13
+ blocksSessionStart: boolean;
14
+ blocksFork: boolean;
15
+ blocksAssistant: boolean;
16
+ blocksSkillTargets: boolean;
17
+ };
18
+ capabilities: ProviderCapabilities;
19
+ productCapabilities: {
20
+ streamingOutput: boolean;
21
+ toolCalls: boolean;
22
+ assistantService: boolean;
23
+ sessionFork: boolean;
24
+ skillUsage: boolean;
25
+ };
26
+ }
27
+ export declare class ProviderCatalogService {
28
+ private readonly providerControlRepository;
29
+ private readonly capabilityService;
30
+ private readonly providerIds;
31
+ private readonly providerInstallCommands;
32
+ constructor(config: HostConfig, providerControlRepository: Pick<ProviderControlRepository, "get" | "upsert">);
33
+ listCatalog(): ProviderCatalogEntryDto[];
34
+ getCatalogEntry(provider: string): ProviderCatalogEntryDto;
35
+ isProviderEnabled(provider: string): boolean;
36
+ assertProviderEnabled(provider: string, field?: string): void;
37
+ updateProviderEnabled(provider: string, enabled: boolean): ProviderCatalogEntryDto;
38
+ applyProviderEnabledState(capabilities: ProviderCapabilities): ProviderCapabilities;
39
+ private buildCatalogEntry;
40
+ private getBaseCapabilities;
41
+ private normalizeKnownProvider;
42
+ private applyInstallState;
43
+ private resolveInstallState;
44
+ private resolveProviderVersion;
45
+ private resolveProviderCommandPath;
46
+ }
@@ -0,0 +1,249 @@
1
+ import { spawnSync } from "node:child_process";
2
+ import { CapabilityService, ClaudeCodeAdapter, CodexAdapter, GeminiAdapter, KimiAdapter, LegnaCodeAdapter, OpenCodeAdapter, ProviderRegistry } from "@codingns/session-sync-core";
3
+ import { AppError } from "../../shared/errors/app-error.js";
4
+ import { resolveAvailableCommandPath } from "../../shared/utils/command-availability.js";
5
+ import { nowIso } from "../../shared/utils/time.js";
6
+ import { applyProviderDisabledState, createProviderDisabledError } from "./provider-disabled.js";
7
+ const STREAMING_OUTPUT_PROVIDER_IDS = new Set([
8
+ "claude-code",
9
+ "legna-code",
10
+ "codex",
11
+ "opencode",
12
+ "gemini",
13
+ "kimi"
14
+ ]);
15
+ const ASSISTANT_SERVICE_PROVIDER_IDS = new Set(["codex", "claude-code"]);
16
+ const SKILL_TARGET_PROVIDER_IDS = new Set(["codex", "claude-code", "gemini", "opencode"]);
17
+ const RECONSTRUCTED_FORK_PROVIDER_IDS = new Set(["codex", "claude-code", "opencode"]);
18
+ export class ProviderCatalogService {
19
+ providerControlRepository;
20
+ capabilityService;
21
+ providerIds;
22
+ providerInstallCommands;
23
+ constructor(config, providerControlRepository) {
24
+ this.providerControlRepository = providerControlRepository;
25
+ const providerRegistry = new ProviderRegistry([
26
+ new ClaudeCodeAdapter({ homeDir: config.claudeCodeHomeDir }),
27
+ new LegnaCodeAdapter({
28
+ homeDir: config.legnaCodeHomeDir,
29
+ legacyClaudeHomeDir: config.claudeCodeHomeDir
30
+ }),
31
+ new CodexAdapter({ homeDir: config.codexHomeDir }),
32
+ new GeminiAdapter({
33
+ homeDir: config.geminiHomeDir,
34
+ commandPath: config.geminiCliPath
35
+ }),
36
+ new KimiAdapter({
37
+ homeDir: config.kimiHomeDir,
38
+ defaultModel: config.kimiDefaultModel
39
+ }),
40
+ new OpenCodeAdapter({
41
+ baseUrl: config.opencodeBaseUrl,
42
+ baseUrlResolver: config.opencodeBaseUrlResolver?.resolve.bind(config.opencodeBaseUrlResolver),
43
+ dataDir: config.opencodeDataDir,
44
+ dbPath: config.opencodeDbPath
45
+ })
46
+ ]);
47
+ this.capabilityService = new CapabilityService(providerRegistry);
48
+ this.providerIds = providerRegistry.list().map((adapter) => adapter.providerId);
49
+ this.providerInstallCommands = {
50
+ "claude-code": process.platform === "win32" ? "claude.cmd" : "claude",
51
+ "legna-code": config.legnaCodeCliPath,
52
+ codex: config.codexCliPath,
53
+ gemini: config.geminiCliPath,
54
+ kimi: config.kimiCliPath,
55
+ opencode: config.opencodeCliPath
56
+ };
57
+ }
58
+ listCatalog() {
59
+ return this.providerIds.map((provider) => this.buildCatalogEntry(provider));
60
+ }
61
+ getCatalogEntry(provider) {
62
+ const normalizedProvider = this.normalizeKnownProvider(provider);
63
+ return this.buildCatalogEntry(normalizedProvider);
64
+ }
65
+ isProviderEnabled(provider) {
66
+ return this.providerControlRepository.get(provider.trim()).enabled;
67
+ }
68
+ assertProviderEnabled(provider, field = "provider") {
69
+ if (this.isProviderEnabled(provider)) {
70
+ return;
71
+ }
72
+ throw createProviderDisabledError(provider.trim(), field);
73
+ }
74
+ updateProviderEnabled(provider, enabled) {
75
+ const normalizedProvider = this.normalizeKnownProvider(provider);
76
+ const record = this.providerControlRepository.upsert({
77
+ providerId: normalizedProvider,
78
+ enabled,
79
+ updatedAt: nowIso()
80
+ });
81
+ return this.buildCatalogEntry(record.providerId);
82
+ }
83
+ applyProviderEnabledState(capabilities) {
84
+ if (this.isProviderEnabled(capabilities.provider)) {
85
+ return capabilities;
86
+ }
87
+ return applyProviderDisabledState(capabilities);
88
+ }
89
+ buildCatalogEntry(provider) {
90
+ const enabled = this.providerControlRepository.get(provider).enabled;
91
+ const capabilities = this.getBaseCapabilities(provider);
92
+ const supportsSessionFork = Boolean(capabilities.supportsSessionFork || RECONSTRUCTED_FORK_PROVIDER_IDS.has(provider));
93
+ return {
94
+ provider,
95
+ displayName: resolveProviderDisplayName(provider),
96
+ enabled,
97
+ installState: this.resolveInstallState(provider),
98
+ version: this.resolveProviderVersion(provider),
99
+ disableImpact: {
100
+ hidesSessions: true,
101
+ blocksSessionStart: true,
102
+ blocksFork: supportsSessionFork,
103
+ blocksAssistant: ASSISTANT_SERVICE_PROVIDER_IDS.has(provider),
104
+ blocksSkillTargets: SKILL_TARGET_PROVIDER_IDS.has(provider)
105
+ },
106
+ capabilities,
107
+ productCapabilities: {
108
+ streamingOutput: capabilities.canSendMessage && STREAMING_OUTPUT_PROVIDER_IDS.has(provider),
109
+ toolCalls: capabilities.supportsStructuredToolCalls,
110
+ assistantService: enabled && ASSISTANT_SERVICE_PROVIDER_IDS.has(provider),
111
+ sessionFork: supportsSessionFork,
112
+ skillUsage: enabled && SKILL_TARGET_PROVIDER_IDS.has(provider)
113
+ }
114
+ };
115
+ }
116
+ getBaseCapabilities(provider) {
117
+ try {
118
+ return this.applyInstallState(this.capabilityService.getProviderCapabilities(provider));
119
+ }
120
+ catch (error) {
121
+ throw normalizeUnknownProviderError(error);
122
+ }
123
+ }
124
+ normalizeKnownProvider(provider) {
125
+ const normalizedProvider = provider.trim();
126
+ if (this.providerIds.includes(normalizedProvider)) {
127
+ return normalizedProvider;
128
+ }
129
+ throw new AppError({
130
+ statusCode: 400,
131
+ errorCode: "PROVIDER_NOT_SUPPORTED",
132
+ detail: "当前 provider 不受支持",
133
+ field: "provider"
134
+ });
135
+ }
136
+ applyInstallState(capabilities) {
137
+ if (this.resolveInstallState(capabilities.provider) !== "missing") {
138
+ return capabilities;
139
+ }
140
+ const limitation = buildProviderMissingMessage(capabilities.provider);
141
+ const limitations = capabilities.limitations.includes(limitation)
142
+ ? capabilities.limitations
143
+ : [limitation, ...capabilities.limitations];
144
+ return {
145
+ ...capabilities,
146
+ canStartSession: false,
147
+ canResumeSession: false,
148
+ canSendMessage: false,
149
+ supportsSubagents: false,
150
+ supportsInterrupt: false,
151
+ supportsSessionFork: false,
152
+ supportsNativeAgents: false,
153
+ limitations
154
+ };
155
+ }
156
+ resolveInstallState(provider) {
157
+ const configuredCommandPath = this.providerInstallCommands[provider];
158
+ if (!configuredCommandPath) {
159
+ return "unknown";
160
+ }
161
+ return this.resolveProviderCommandPath(provider) ? "ready" : "missing";
162
+ }
163
+ resolveProviderVersion(provider) {
164
+ const commandPath = this.resolveProviderCommandPath(provider);
165
+ if (!commandPath) {
166
+ return null;
167
+ }
168
+ for (const args of VERSION_COMMAND_ARGUMENTS) {
169
+ const result = spawnSync(commandPath, args, {
170
+ encoding: "utf8",
171
+ timeout: 1_500,
172
+ windowsHide: true
173
+ });
174
+ const version = parseProviderVersionOutput(result.stdout, result.stderr);
175
+ if (version) {
176
+ return version;
177
+ }
178
+ }
179
+ return null;
180
+ }
181
+ resolveProviderCommandPath(provider) {
182
+ const configuredCommandPath = this.providerInstallCommands[provider];
183
+ if (!configuredCommandPath) {
184
+ return null;
185
+ }
186
+ return resolveAvailableCommandPath(configuredCommandPath);
187
+ }
188
+ }
189
+ const VERSION_COMMAND_ARGUMENTS = [["--version"], ["-V"], ["version"]];
190
+ const VERSION_PATTERN = /\bv?\d+(?:\.\d+)+(?:[-+][0-9A-Za-z.-]+)?\b/;
191
+ function parseProviderVersionOutput(stdout, stderr) {
192
+ const output = `${stdout}\n${stderr}`.trim();
193
+ if (!output) {
194
+ return null;
195
+ }
196
+ const match = output.match(VERSION_PATTERN);
197
+ return match?.[0] ?? null;
198
+ }
199
+ function normalizeUnknownProviderError(error) {
200
+ if (error instanceof AppError) {
201
+ throw error;
202
+ }
203
+ if (error instanceof Error && error.message === "PROVIDER_NOT_SUPPORTED") {
204
+ throw new AppError({
205
+ statusCode: 400,
206
+ errorCode: "PROVIDER_NOT_SUPPORTED",
207
+ detail: "当前 provider 不受支持",
208
+ field: "provider"
209
+ });
210
+ }
211
+ throw error;
212
+ }
213
+ function resolveProviderDisplayName(provider) {
214
+ switch (provider) {
215
+ case "claude-code":
216
+ return "Claude Code";
217
+ case "legna-code":
218
+ return "Legna Code";
219
+ case "codex":
220
+ return "Codex";
221
+ case "opencode":
222
+ return "OpenCode";
223
+ case "gemini":
224
+ return "Gemini";
225
+ case "kimi":
226
+ return "Kimi";
227
+ default:
228
+ return provider;
229
+ }
230
+ }
231
+ function buildProviderMissingMessage(provider) {
232
+ switch (provider) {
233
+ case "claude-code":
234
+ return "未检测到 Claude CLI";
235
+ case "legna-code":
236
+ return "未检测到 Legna CLI";
237
+ case "codex":
238
+ return "未检测到 Codex CLI";
239
+ case "opencode":
240
+ return "未检测到 OpenCode CLI";
241
+ case "gemini":
242
+ return "未检测到 Gemini CLI";
243
+ case "kimi":
244
+ return "未检测到 Kimi CLI";
245
+ default:
246
+ return "未检测到对应 provider 运行环境";
247
+ }
248
+ }
249
+ //# sourceMappingURL=provider-catalog-service.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-catalog-service.js","sourceRoot":"","sources":["../../../../src/modules/provider/provider-catalog-service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAE/C,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,YAAY,EACZ,aAAa,EACb,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,gBAAgB,EAGjB,MAAM,6BAA6B,CAAC;AAGrC,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,2BAA2B,EAAE,MAAM,4CAA4C,CAAC;AACzF,OAAO,EAAE,MAAM,EAAE,MAAM,4BAA4B,CAAC;AAGpD,OAAO,EAAE,0BAA0B,EAAE,2BAA2B,EAAE,MAAM,wBAAwB,CAAC;AAEjG,MAAM,6BAA6B,GAAG,IAAI,GAAG,CAAa;IACxD,aAAa;IACb,YAAY;IACZ,OAAO;IACP,UAAU;IACV,QAAQ;IACR,MAAM;CACP,CAAC,CAAC;AACH,MAAM,8BAA8B,GAAG,IAAI,GAAG,CAAa,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC,CAAC;AACrF,MAAM,yBAAyB,GAAG,IAAI,GAAG,CAAa,CAAC,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AACtG,MAAM,+BAA+B,GAAG,IAAI,GAAG,CAAa,CAAC,OAAO,EAAE,aAAa,EAAE,UAAU,CAAC,CAAC,CAAC;AA2BlG,MAAM,OAAO,sBAAsB;IAOd;IANF,iBAAiB,CAAoB;IACrC,WAAW,CAAe;IAC1B,uBAAuB,CAAgD;IAExF,YACE,MAAkB,EACD,yBAGhB;QAHgB,8BAAyB,GAAzB,yBAAyB,CAGzC;QAED,MAAM,gBAAgB,GAAG,IAAI,gBAAgB,CAAC;YAC5C,IAAI,iBAAiB,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,iBAAiB,EAAE,CAAC;YAC5D,IAAI,gBAAgB,CAAC;gBACnB,OAAO,EAAE,MAAM,CAAC,gBAAgB;gBAChC,mBAAmB,EAAE,MAAM,CAAC,iBAAiB;aAC9C,CAAC;YACF,IAAI,YAAY,CAAC,EAAE,OAAO,EAAE,MAAM,CAAC,YAAY,EAAE,CAAC;YAClD,IAAI,aAAa,CAAC;gBAChB,OAAO,EAAE,MAAM,CAAC,aAAa;gBAC7B,WAAW,EAAE,MAAM,CAAC,aAAa;aAClC,CAAC;YACF,IAAI,WAAW,CAAC;gBACd,OAAO,EAAE,MAAM,CAAC,WAAW;gBAC3B,YAAY,EAAE,MAAM,CAAC,gBAAgB;aACtC,CAAC;YACF,IAAI,eAAe,CAAC;gBAClB,OAAO,EAAE,MAAM,CAAC,eAAe;gBAC/B,eAAe,EAAE,MAAM,CAAC,uBAAuB,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC;gBAC7F,OAAO,EAAE,MAAM,CAAC,eAAe;gBAC/B,MAAM,EAAE,MAAM,CAAC,cAAc;aAC9B,CAAC;SACH,CAAC,CAAC;QAEH,IAAI,CAAC,iBAAiB,GAAG,IAAI,iBAAiB,CAAC,gBAAgB,CAAC,CAAC;QACjE,IAAI,CAAC,WAAW,GAAG,gBAAgB,CAAC,IAAI,EAAE,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QAChF,IAAI,CAAC,uBAAuB,GAAG;YAC7B,aAAa,EAAE,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,QAAQ;YACrE,YAAY,EAAE,MAAM,CAAC,gBAAgB;YACrC,KAAK,EAAE,MAAM,CAAC,YAAY;YAC1B,MAAM,EAAE,MAAM,CAAC,aAAa;YAC5B,IAAI,EAAE,MAAM,CAAC,WAAW;YACxB,QAAQ,EAAE,MAAM,CAAC,eAAe;SACjC,CAAC;IACJ,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC9E,CAAC;IAED,eAAe,CAAC,QAAgB;QAC9B,MAAM,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QACjE,OAAO,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,CAAC;IACpD,CAAC;IAED,iBAAiB,CAAC,QAAgB;QAChC,OAAO,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC,OAAO,CAAC;IACrE,CAAC;IAED,qBAAqB,CAAC,QAAgB,EAAE,KAAK,GAAG,UAAU;QACxD,IAAI,IAAI,CAAC,iBAAiB,CAAC,QAAQ,CAAC,EAAE,CAAC;YACrC,OAAO;QACT,CAAC;QAED,MAAM,2BAA2B,CAAC,QAAQ,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,CAAC;IAC5D,CAAC;IAED,qBAAqB,CAAC,QAAgB,EAAE,OAAgB;QACtD,MAAM,kBAAkB,GAAG,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC,CAAC;QACjE,MAAM,MAAM,GAAG,IAAI,CAAC,yBAAyB,CAAC,MAAM,CAAC;YACnD,UAAU,EAAE,kBAAkB;YAC9B,OAAO;YACP,SAAS,EAAE,MAAM,EAAE;SACY,CAAC,CAAC;QAEnC,OAAO,IAAI,CAAC,iBAAiB,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;IACnD,CAAC;IAED,yBAAyB,CAAC,YAAkC;QAC1D,IAAI,IAAI,CAAC,iBAAiB,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;YAClD,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,OAAO,0BAA0B,CAAC,YAAY,CAAC,CAAC;IAClD,CAAC;IAEO,iBAAiB,CAAC,QAAoB;QAC5C,MAAM,OAAO,GAAG,IAAI,CAAC,yBAAyB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC;QACrE,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QACxD,MAAM,mBAAmB,GAAG,OAAO,CACjC,YAAY,CAAC,mBAAmB,IAAI,+BAA+B,CAAC,GAAG,CAAC,QAAQ,CAAC,CAClF,CAAC;QAEF,OAAO;YACL,QAAQ;YACR,WAAW,EAAE,0BAA0B,CAAC,QAAQ,CAAC;YACjD,OAAO;YACP,YAAY,EAAE,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC;YAChD,OAAO,EAAE,IAAI,CAAC,sBAAsB,CAAC,QAAQ,CAAC;YAC9C,aAAa,EAAE;gBACb,aAAa,EAAE,IAAI;gBACnB,kBAAkB,EAAE,IAAI;gBACxB,UAAU,EAAE,mBAAmB;gBAC/B,eAAe,EAAE,8BAA8B,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAC7D,kBAAkB,EAAE,yBAAyB,CAAC,GAAG,CAAC,QAAQ,CAAC;aAC5D;YACD,YAAY;YACZ,mBAAmB,EAAE;gBACnB,eAAe,EAAE,YAAY,CAAC,cAAc,IAAI,6BAA6B,CAAC,GAAG,CAAC,QAAQ,CAAC;gBAC3F,SAAS,EAAE,YAAY,CAAC,2BAA2B;gBACnD,gBAAgB,EAAE,OAAO,IAAI,8BAA8B,CAAC,GAAG,CAAC,QAAQ,CAAC;gBACzE,WAAW,EAAE,mBAAmB;gBAChC,UAAU,EAAE,OAAO,IAAI,yBAAyB,CAAC,GAAG,CAAC,QAAQ,CAAC;aAC/D;SACF,CAAC;IACJ,CAAC;IAEO,mBAAmB,CAAC,QAAoB;QAC9C,IAAI,CAAC;YACH,OAAO,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,iBAAiB,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC1F,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,6BAA6B,CAAC,KAAK,CAAC,CAAC;QAC7C,CAAC;IACH,CAAC;IAEO,sBAAsB,CAAC,QAAgB;QAC7C,MAAM,kBAAkB,GAAG,QAAQ,CAAC,IAAI,EAAE,CAAC;QAE3C,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,kBAAgC,CAAC,EAAE,CAAC;YAChE,OAAO,kBAAgC,CAAC;QAC1C,CAAC;QAED,MAAM,IAAI,QAAQ,CAAC;YACjB,UAAU,EAAE,GAAG;YACf,SAAS,EAAE,wBAAwB;YACnC,MAAM,EAAE,kBAAkB;YAC1B,KAAK,EAAE,UAAU;SAClB,CAAC,CAAC;IACL,CAAC;IAEO,iBAAiB,CAAC,YAAkC;QAC1D,IAAI,IAAI,CAAC,mBAAmB,CAAC,YAAY,CAAC,QAAQ,CAAC,KAAK,SAAS,EAAE,CAAC;YAClE,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,MAAM,UAAU,GAAG,2BAA2B,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QACtE,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,UAAU,CAAC;YAC/D,CAAC,CAAC,YAAY,CAAC,WAAW;YAC1B,CAAC,CAAC,CAAC,UAAU,EAAE,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;QAE9C,OAAO;YACL,GAAG,YAAY;YACf,eAAe,EAAE,KAAK;YACtB,gBAAgB,EAAE,KAAK;YACvB,cAAc,EAAE,KAAK;YACrB,iBAAiB,EAAE,KAAK;YACxB,iBAAiB,EAAE,KAAK;YACxB,mBAAmB,EAAE,KAAK;YAC1B,oBAAoB,EAAE,KAAK;YAC3B,WAAW;SACZ,CAAC;IACJ,CAAC;IAEO,mBAAmB,CAAC,QAAoB;QAC9C,MAAM,qBAAqB,GAAG,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;QAErE,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC3B,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,SAAS,CAAC;IACzE,CAAC;IAEO,sBAAsB,CAAC,QAAoB;QACjD,MAAM,WAAW,GAAG,IAAI,CAAC,0BAA0B,CAAC,QAAQ,CAAC,CAAC;QAE9D,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO,IAAI,CAAC;QACd,CAAC;QAED,KAAK,MAAM,IAAI,IAAI,yBAAyB,EAAE,CAAC;YAC7C,MAAM,MAAM,GAAG,SAAS,CAAC,WAAW,EAAE,IAAI,EAAE;gBAC1C,QAAQ,EAAE,MAAM;gBAChB,OAAO,EAAE,KAAK;gBACd,WAAW,EAAE,IAAI;aAClB,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,0BAA0B,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC;YAEzE,IAAI,OAAO,EAAE,CAAC;gBACZ,OAAO,OAAO,CAAC;YACjB,CAAC;QACH,CAAC;QAED,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,0BAA0B,CAAC,QAAoB;QACrD,MAAM,qBAAqB,GAAG,IAAI,CAAC,uBAAuB,CAAC,QAAQ,CAAC,CAAC;QAErE,IAAI,CAAC,qBAAqB,EAAE,CAAC;YAC3B,OAAO,IAAI,CAAC;QACd,CAAC;QAED,OAAO,2BAA2B,CAAC,qBAAqB,CAAC,CAAC;IAC5D,CAAC;CACF;AAED,MAAM,yBAAyB,GAAe,CAAC,CAAC,WAAW,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC;AACnF,MAAM,eAAe,GAAG,4CAA4C,CAAC;AAErE,SAAS,0BAA0B,CAAC,MAAc,EAAE,MAAc;IAChE,MAAM,MAAM,GAAG,GAAG,MAAM,KAAK,MAAM,EAAE,CAAC,IAAI,EAAE,CAAC;IAE7C,IAAI,CAAC,MAAM,EAAE,CAAC;QACZ,OAAO,IAAI,CAAC;IACd,CAAC;IAED,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;IAC5C,OAAO,KAAK,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC;AAC5B,CAAC;AAED,SAAS,6BAA6B,CAAC,KAAc;IACnD,IAAI,KAAK,YAAY,QAAQ,EAAE,CAAC;QAC9B,MAAM,KAAK,CAAC;IACd,CAAC;IAED,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,OAAO,KAAK,wBAAwB,EAAE,CAAC;QACzE,MAAM,IAAI,QAAQ,CAAC;YACjB,UAAU,EAAE,GAAG;YACf,SAAS,EAAE,wBAAwB;YACnC,MAAM,EAAE,kBAAkB;YAC1B,KAAK,EAAE,UAAU;SAClB,CAAC,CAAC;IACL,CAAC;IAED,MAAM,KAAK,CAAC;AACd,CAAC;AAED,SAAS,0BAA0B,CAAC,QAAoB;IACtD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,aAAa;YAChB,OAAO,aAAa,CAAC;QACvB,KAAK,YAAY;YACf,OAAO,YAAY,CAAC;QACtB,KAAK,OAAO;YACV,OAAO,OAAO,CAAC;QACjB,KAAK,UAAU;YACb,OAAO,UAAU,CAAC;QACpB,KAAK,QAAQ;YACX,OAAO,QAAQ,CAAC;QAClB,KAAK,MAAM;YACT,OAAO,MAAM,CAAC;QAChB;YACE,OAAO,QAAQ,CAAC;IACpB,CAAC;AACH,CAAC;AAED,SAAS,2BAA2B,CAAC,QAAoB;IACvD,QAAQ,QAAQ,EAAE,CAAC;QACjB,KAAK,aAAa;YAChB,OAAO,iBAAiB,CAAC;QAC3B,KAAK,YAAY;YACf,OAAO,gBAAgB,CAAC;QAC1B,KAAK,OAAO;YACV,OAAO,gBAAgB,CAAC;QAC1B,KAAK,UAAU;YACb,OAAO,mBAAmB,CAAC;QAC7B,KAAK,QAAQ;YACX,OAAO,iBAAiB,CAAC;QAC3B,KAAK,MAAM;YACT,OAAO,eAAe,CAAC;QACzB;YACE,OAAO,sBAAsB,CAAC;IAClC,CAAC;AACH,CAAC"}
@@ -4,6 +4,7 @@ import type { SessionHistoryService } from "../sessions/session-history-service.
4
4
  import type { SessionLiveRuntimeService } from "../sessions/session-live-runtime-service.js";
5
5
  import type { SessionProviderConfigMode } from "../../types/domain.js";
6
6
  import type { SessionProviderConfigService } from "../sessions/session-provider-config-service.js";
7
+ import type { ProviderCatalogService } from "./provider-catalog-service.js";
7
8
  interface ProviderParams {
8
9
  provider: string;
9
10
  }
@@ -12,6 +13,9 @@ interface ProviderCapabilitiesQuery {
12
13
  providerConfigMode?: SessionProviderConfigMode;
13
14
  providerPresetId?: string | null;
14
15
  }
16
+ interface UpdateProviderCatalogBody {
17
+ enabled?: boolean;
18
+ }
15
19
  interface ClaudeHookEventBody {
16
20
  hook_event_name?: string;
17
21
  session_id?: string;
@@ -25,15 +29,24 @@ interface ClaudeHookEventBody {
25
29
  export declare class ProviderController {
26
30
  private readonly sessionHistoryService;
27
31
  private readonly sessionProviderConfigService;
32
+ private readonly providerCatalogService;
28
33
  private readonly sessionLiveRuntimeService;
29
34
  private readonly config;
30
- constructor(sessionHistoryService: SessionHistoryService, sessionProviderConfigService: SessionProviderConfigService, sessionLiveRuntimeService: Pick<SessionLiveRuntimeService, "getClaudeHookBridgeConfig" | "ingestClaudeHookEvent">, config: HostConfig);
35
+ constructor(sessionHistoryService: SessionHistoryService, sessionProviderConfigService: SessionProviderConfigService, providerCatalogService: ProviderCatalogService, sessionLiveRuntimeService: Pick<SessionLiveRuntimeService, "getClaudeHookBridgeConfig" | "ingestClaudeHookEvent">, config: HostConfig);
31
36
  readonly getCapabilities: (request: FastifyRequest<{
32
37
  Params: ProviderParams;
33
38
  Querystring: ProviderCapabilitiesQuery;
34
39
  }>, reply: FastifyReply) => Promise<void>;
35
- readonly getClaudeHookBridgeConfig: (request: FastifyRequest, reply: FastifyReply) => Promise<void>;
40
+ readonly listCatalog: (_request: FastifyRequest, reply: FastifyReply) => Promise<void>;
41
+ readonly updateCatalogEntry: (request: FastifyRequest<{
42
+ Params: ProviderParams;
43
+ Body: UpdateProviderCatalogBody;
44
+ }>, reply: FastifyReply) => Promise<void>;
45
+ readonly getClaudeHookBridgeConfig: (request: FastifyRequest<{
46
+ Params: ProviderParams;
47
+ }>, reply: FastifyReply) => Promise<void>;
36
48
  readonly receiveClaudeHookEvent: (request: FastifyRequest<{
49
+ Params: ProviderParams;
37
50
  Body: ClaudeHookEventBody;
38
51
  }>, reply: FastifyReply) => Promise<void>;
39
52
  }
@@ -1,13 +1,16 @@
1
1
  import { AppError } from "../../shared/errors/app-error.js";
2
2
  import { logPermissionDebug } from "../../shared/utils/permission-debug-log.js";
3
+ import { isClaudeCompatibleProvider } from "../sessions/claude-compatible-provider-registry.js";
3
4
  export class ProviderController {
4
5
  sessionHistoryService;
5
6
  sessionProviderConfigService;
7
+ providerCatalogService;
6
8
  sessionLiveRuntimeService;
7
9
  config;
8
- constructor(sessionHistoryService, sessionProviderConfigService, sessionLiveRuntimeService, config) {
10
+ constructor(sessionHistoryService, sessionProviderConfigService, providerCatalogService, sessionLiveRuntimeService, config) {
9
11
  this.sessionHistoryService = sessionHistoryService;
10
12
  this.sessionProviderConfigService = sessionProviderConfigService;
13
+ this.providerCatalogService = providerCatalogService;
11
14
  this.sessionLiveRuntimeService = sessionLiveRuntimeService;
12
15
  this.config = config;
13
16
  }
@@ -22,12 +25,31 @@ export class ProviderController {
22
25
  });
23
26
  }
24
27
  const baseCapabilities = await this.sessionHistoryService.getProviderCapabilities(provider, request.query.workspaceId?.trim() || null);
25
- reply.send(this.sessionProviderConfigService.resolveCapabilities({
28
+ const resolvedCapabilities = this.sessionProviderConfigService.resolveCapabilities({
26
29
  provider: baseCapabilities.provider,
27
30
  baseCapabilities,
28
31
  providerConfigMode: normalizeProviderConfigMode(request.query.providerConfigMode),
29
32
  providerPresetId: request.query.providerPresetId?.trim() || null
30
- }));
33
+ });
34
+ reply.send(this.providerCatalogService.applyProviderEnabledState(resolvedCapabilities));
35
+ };
36
+ listCatalog = async (_request, reply) => {
37
+ reply.send({
38
+ items: this.providerCatalogService.listCatalog()
39
+ });
40
+ };
41
+ updateCatalogEntry = async (request, reply) => {
42
+ if (typeof request.body?.enabled !== "boolean") {
43
+ throw new AppError({
44
+ statusCode: 400,
45
+ errorCode: "INVALID_INPUT",
46
+ detail: "enabled 必须是 boolean",
47
+ field: "enabled"
48
+ });
49
+ }
50
+ reply.send({
51
+ item: this.providerCatalogService.updateProviderEnabled(request.params.provider, request.body.enabled)
52
+ });
31
53
  };
32
54
  getClaudeHookBridgeConfig = async (request, reply) => {
33
55
  if (!request.auth?.user.userId) {
@@ -37,9 +59,11 @@ export class ProviderController {
37
59
  detail: "当前请求缺少有效登录态"
38
60
  });
39
61
  }
40
- reply.send(this.sessionLiveRuntimeService.getClaudeHookBridgeConfig());
62
+ const provider = requireClaudeCompatibleProvider(request.params.provider);
63
+ reply.send(this.sessionLiveRuntimeService.getClaudeHookBridgeConfig(provider));
41
64
  };
42
65
  receiveClaudeHookEvent = async (request, reply) => {
66
+ const provider = requireClaudeCompatibleProvider(request.params.provider);
43
67
  const providedToken = request.headers["x-codingns-hook-token"];
44
68
  const normalizedToken = typeof providedToken === "string"
45
69
  ? providedToken.trim()
@@ -53,10 +77,11 @@ export class ProviderController {
53
77
  throw new AppError({
54
78
  statusCode: 401,
55
79
  errorCode: "UNAUTHORIZED",
56
- detail: "Claude hook token 无效"
80
+ detail: "兼容 CLI hook token 无效"
57
81
  });
58
82
  }
59
83
  logPermissionDebug("claude_hook_bridge.receive", {
84
+ provider,
60
85
  hookEventName: request.body?.hook_event_name ?? null,
61
86
  sessionId: request.body?.session_id ?? null,
62
87
  cwd: request.body?.cwd ?? null,
@@ -64,8 +89,9 @@ export class ProviderController {
64
89
  toolName: request.body?.tool_name ?? null,
65
90
  notificationType: request.body?.notification_type ?? null
66
91
  });
67
- const result = await this.sessionLiveRuntimeService.ingestClaudeHookEvent(request.body ?? {});
92
+ const result = await this.sessionLiveRuntimeService.ingestClaudeHookEvent(provider, request.body ?? {});
68
93
  logPermissionDebug("claude_hook_bridge.respond", {
94
+ provider,
69
95
  hookEventName: request.body?.hook_event_name ?? null,
70
96
  accepted: result.accepted,
71
97
  ignored: result.ignored,
@@ -89,4 +115,16 @@ function normalizeProviderConfigMode(value) {
89
115
  field: "providerConfigMode"
90
116
  });
91
117
  }
118
+ function requireClaudeCompatibleProvider(value) {
119
+ const normalized = value.trim();
120
+ if (isClaudeCompatibleProvider(normalized)) {
121
+ return normalized;
122
+ }
123
+ throw new AppError({
124
+ statusCode: 400,
125
+ errorCode: "INVALID_INPUT",
126
+ detail: "hook bridge 只支持 claude-code 或 legna-code",
127
+ field: "provider"
128
+ });
129
+ }
92
130
  //# sourceMappingURL=provider-controller.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"provider-controller.js","sourceRoot":"","sources":["../../../../src/modules/provider/provider-controller.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider-controller.js","sourceRoot":"","sources":["../../../../src/modules/provider/provider-controller.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAC5D,OAAO,EAAE,kBAAkB,EAAE,MAAM,4CAA4C,CAAC;AAMhF,OAAO,EACL,0BAA0B,EAE3B,MAAM,oDAAoD,CAAC;AA2B5D,MAAM,OAAO,kBAAkB;IAEV;IACA;IACA;IACA;IAIA;IARnB,YACmB,qBAA4C,EAC5C,4BAA0D,EAC1D,sBAA8C,EAC9C,yBAGhB,EACgB,MAAkB;QAPlB,0BAAqB,GAArB,qBAAqB,CAAuB;QAC5C,iCAA4B,GAA5B,4BAA4B,CAA8B;QAC1D,2BAAsB,GAAtB,sBAAsB,CAAwB;QAC9C,8BAAyB,GAAzB,yBAAyB,CAGzC;QACgB,WAAM,GAAN,MAAM,CAAY;IAClC,CAAC;IAEK,eAAe,GAAG,KAAK,EAC9B,OAA2F,EAC3F,KAAmB,EACJ,EAAE;QACjB,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,EAAE,CAAC;QAEhD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,MAAM,IAAI,QAAQ,CAAC;gBACjB,UAAU,EAAE,GAAG;gBACf,SAAS,EAAE,eAAe;gBAC1B,MAAM,EAAE,eAAe;gBACvB,KAAK,EAAE,UAAU;aAClB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,gBAAgB,GAAG,MAAM,IAAI,CAAC,qBAAqB,CAAC,uBAAuB,CAC/E,QAAQ,EACR,OAAO,CAAC,KAAK,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,IAAI,CAC1C,CAAC;QAEF,MAAM,oBAAoB,GAAG,IAAI,CAAC,4BAA4B,CAAC,mBAAmB,CAAC;YAC/E,QAAQ,EAAE,gBAAgB,CAAC,QAAQ;YACnC,gBAAgB;YAChB,kBAAkB,EAAE,2BAA2B,CAAC,OAAO,CAAC,KAAK,CAAC,kBAAkB,CAAC;YACjF,gBAAgB,EAAE,OAAO,CAAC,KAAK,CAAC,gBAAgB,EAAE,IAAI,EAAE,IAAI,IAAI;SACjE,CAAC,CAAC;QAEL,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,sBAAsB,CAAC,yBAAyB,CAAC,oBAAoB,CAAC,CAAC,CAAC;IAC1F,CAAC,CAAC;IAEO,WAAW,GAAG,KAAK,EAAE,QAAwB,EAAE,KAAmB,EAAiB,EAAE;QAC5F,KAAK,CAAC,IAAI,CAAC;YACT,KAAK,EAAE,IAAI,CAAC,sBAAsB,CAAC,WAAW,EAAE;SACjD,CAAC,CAAC;IACL,CAAC,CAAC;IAEO,kBAAkB,GAAG,KAAK,EACjC,OAAoF,EACpF,KAAmB,EACJ,EAAE;QACjB,IAAI,OAAO,OAAO,CAAC,IAAI,EAAE,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/C,MAAM,IAAI,QAAQ,CAAC;gBACjB,UAAU,EAAE,GAAG;gBACf,SAAS,EAAE,eAAe;gBAC1B,MAAM,EAAE,qBAAqB;gBAC7B,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,IAAI,CAAC;YACT,IAAI,EAAE,IAAI,CAAC,sBAAsB,CAAC,qBAAqB,CACrD,OAAO,CAAC,MAAM,CAAC,QAAQ,EACvB,OAAO,CAAC,IAAI,CAAC,OAAO,CACrB;SACF,CAAC,CAAC;IACL,CAAC,CAAC;IAEO,yBAAyB,GAAG,KAAK,EACxC,OAAmD,EACnD,KAAmB,EACJ,EAAE;QACjB,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC;YAC/B,MAAM,IAAI,QAAQ,CAAC;gBACjB,UAAU,EAAE,GAAG;gBACf,SAAS,EAAE,cAAc;gBACzB,MAAM,EAAE,aAAa;aACtB,CAAC,CAAC;QACL,CAAC;QAED,MAAM,QAAQ,GAAG,+BAA+B,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1E,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,yBAAyB,CAAC,yBAAyB,CAAC,QAAQ,CAAC,CAAC,CAAC;IACjF,CAAC,CAAC;IAEO,sBAAsB,GAAG,KAAK,EACrC,OAA8E,EAC9E,KAAmB,EACJ,EAAE;QACjB,MAAM,QAAQ,GAAG,+BAA+B,CAAC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC1E,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;QAC/D,MAAM,eAAe,GACnB,OAAO,aAAa,KAAK,QAAQ;YAC/B,CAAC,CAAC,aAAa,CAAC,IAAI,EAAE;YACtB,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC;gBAC5B,CAAC,CAAC,aAAa,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE;gBAChC,CAAC,CAAC,EAAE,CAAC;QAEX,IAAI,eAAe,KAAK,IAAI,CAAC,MAAM,CAAC,qBAAqB,EAAE,CAAC;YAC1D,kBAAkB,CAAC,wCAAwC,EAAE;gBAC3D,mBAAmB,EAAE,eAAe,CAAC,MAAM;aAC5C,CAAC,CAAC;YACH,MAAM,IAAI,QAAQ,CAAC;gBACjB,UAAU,EAAE,GAAG;gBACf,SAAS,EAAE,cAAc;gBACzB,MAAM,EAAE,sBAAsB;aAC/B,CAAC,CAAC;QACL,CAAC;QAED,kBAAkB,CAAC,4BAA4B,EAAE;YAC/C,QAAQ;YACR,aAAa,EAAE,OAAO,CAAC,IAAI,EAAE,eAAe,IAAI,IAAI;YACpD,SAAS,EAAE,OAAO,CAAC,IAAI,EAAE,UAAU,IAAI,IAAI;YAC3C,GAAG,EAAE,OAAO,CAAC,IAAI,EAAE,GAAG,IAAI,IAAI;YAC9B,cAAc,EAAE,OAAO,CAAC,IAAI,EAAE,eAAe,IAAI,IAAI;YACrD,QAAQ,EAAE,OAAO,CAAC,IAAI,EAAE,SAAS,IAAI,IAAI;YACzC,gBAAgB,EAAE,OAAO,CAAC,IAAI,EAAE,iBAAiB,IAAI,IAAI;SAC1D,CAAC,CAAC;QACH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,yBAAyB,CAAC,qBAAqB,CAAC,QAAQ,EAAE,OAAO,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QACxG,kBAAkB,CAAC,4BAA4B,EAAE;YAC/C,QAAQ;YACR,aAAa,EAAE,OAAO,CAAC,IAAI,EAAE,eAAe,IAAI,IAAI;YACpD,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,SAAS,EAAE,MAAM,CAAC,SAAS;YAC3B,iBAAiB,EAAE,MAAM,CAAC,cAAc,KAAK,IAAI;SAClD,CAAC,CAAC;QACH,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,cAAc,IAAI,EAAE,CAAC,CAAC;IAC1C,CAAC,CAAC;CACH;AAED,SAAS,2BAA2B,CAClC,KAAyB;IAEzB,IAAI,CAAC,KAAK,EAAE,CAAC;QACX,OAAO,SAAS,CAAC;IACnB,CAAC;IAED,IAAI,KAAK,KAAK,gBAAgB,IAAI,KAAK,KAAK,kBAAkB,EAAE,CAAC;QAC/D,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,IAAI,QAAQ,CAAC;QACjB,UAAU,EAAE,GAAG;QACf,SAAS,EAAE,eAAe;QAC1B,MAAM,EAAE,uBAAuB;QAC/B,KAAK,EAAE,oBAAoB;KAC5B,CAAC,CAAC;AACL,CAAC;AAED,SAAS,+BAA+B,CAAC,KAAa;IACpD,MAAM,UAAU,GAAG,KAAK,CAAC,IAAI,EAAE,CAAC;IAEhC,IAAI,0BAA0B,CAAC,UAAU,CAAC,EAAE,CAAC;QAC3C,OAAO,UAAU,CAAC;IACpB,CAAC;IAED,MAAM,IAAI,QAAQ,CAAC;QACjB,UAAU,EAAE,GAAG;QACf,SAAS,EAAE,eAAe;QAC1B,MAAM,EAAE,0CAA0C;QAClD,KAAK,EAAE,UAAU;KAClB,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { ProviderCapabilities } from "@codingns/session-sync-core";
2
+ import { AppError } from "../../shared/errors/app-error.js";
3
+ export declare const PROVIDER_DISABLED_ERROR_CODE = "PROVIDER_DISABLED";
4
+ export declare const PROVIDER_DISABLED_LIMITATION = "\u5F53\u524D provider \u5DF2\u88AB\u7981\u7528";
5
+ export declare function createProviderDisabledError(provider: string, field?: string): AppError;
6
+ export declare function applyProviderDisabledState(capabilities: ProviderCapabilities): ProviderCapabilities;
7
+ export declare function isProviderDisabledCapabilities(capabilities: Pick<ProviderCapabilities, "limitations">): boolean;
8
+ export declare function createProviderCapabilityBlockedError(capabilities: ProviderCapabilities, field: string, fallbackDetail: string): AppError;
@@ -0,0 +1,45 @@
1
+ import { AppError } from "../../shared/errors/app-error.js";
2
+ export const PROVIDER_DISABLED_ERROR_CODE = "PROVIDER_DISABLED";
3
+ export const PROVIDER_DISABLED_LIMITATION = "当前 provider 已被禁用";
4
+ export function createProviderDisabledError(provider, field = "provider") {
5
+ return new AppError({
6
+ statusCode: 409,
7
+ errorCode: PROVIDER_DISABLED_ERROR_CODE,
8
+ detail: `${provider} 已被项目禁用,请先重新启用后再继续`,
9
+ field,
10
+ data: {
11
+ provider
12
+ }
13
+ });
14
+ }
15
+ export function applyProviderDisabledState(capabilities) {
16
+ const limitations = capabilities.limitations.includes(PROVIDER_DISABLED_LIMITATION)
17
+ ? capabilities.limitations
18
+ : [PROVIDER_DISABLED_LIMITATION, ...capabilities.limitations];
19
+ return {
20
+ ...capabilities,
21
+ canStartSession: false,
22
+ canResumeSession: false,
23
+ canSendMessage: false,
24
+ supportsSubagents: false,
25
+ supportsInterrupt: false,
26
+ supportsSessionFork: false,
27
+ supportsNativeAgents: false,
28
+ limitations
29
+ };
30
+ }
31
+ export function isProviderDisabledCapabilities(capabilities) {
32
+ return capabilities.limitations.includes(PROVIDER_DISABLED_LIMITATION);
33
+ }
34
+ export function createProviderCapabilityBlockedError(capabilities, field, fallbackDetail) {
35
+ if (isProviderDisabledCapabilities(capabilities)) {
36
+ return createProviderDisabledError(capabilities.provider, field);
37
+ }
38
+ return new AppError({
39
+ statusCode: 409,
40
+ errorCode: "PROVIDER_UNAVAILABLE",
41
+ detail: capabilities.limitations[0] ?? fallbackDetail,
42
+ field
43
+ });
44
+ }
45
+ //# sourceMappingURL=provider-disabled.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"provider-disabled.js","sourceRoot":"","sources":["../../../../src/modules/provider/provider-disabled.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AAE5D,MAAM,CAAC,MAAM,4BAA4B,GAAG,mBAAmB,CAAC;AAChE,MAAM,CAAC,MAAM,4BAA4B,GAAG,kBAAkB,CAAC;AAE/D,MAAM,UAAU,2BAA2B,CACzC,QAAgB,EAChB,KAAK,GAAG,UAAU;IAElB,OAAO,IAAI,QAAQ,CAAC;QAClB,UAAU,EAAE,GAAG;QACf,SAAS,EAAE,4BAA4B;QACvC,MAAM,EAAE,GAAG,QAAQ,oBAAoB;QACvC,KAAK;QACL,IAAI,EAAE;YACJ,QAAQ;SACT;KACF,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,YAAkC;IAElC,MAAM,WAAW,GAAG,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QACjF,CAAC,CAAC,YAAY,CAAC,WAAW;QAC1B,CAAC,CAAC,CAAC,4BAA4B,EAAE,GAAG,YAAY,CAAC,WAAW,CAAC,CAAC;IAEhE,OAAO;QACL,GAAG,YAAY;QACf,eAAe,EAAE,KAAK;QACtB,gBAAgB,EAAE,KAAK;QACvB,cAAc,EAAE,KAAK;QACrB,iBAAiB,EAAE,KAAK;QACxB,iBAAiB,EAAE,KAAK;QACxB,mBAAmB,EAAE,KAAK;QAC1B,oBAAoB,EAAE,KAAK;QAC3B,WAAW;KACZ,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,8BAA8B,CAC5C,YAAuD;IAEvD,OAAO,YAAY,CAAC,WAAW,CAAC,QAAQ,CAAC,4BAA4B,CAAC,CAAC;AACzE,CAAC;AAED,MAAM,UAAU,oCAAoC,CAClD,YAAkC,EAClC,KAAa,EACb,cAAsB;IAEtB,IAAI,8BAA8B,CAAC,YAAY,CAAC,EAAE,CAAC;QACjD,OAAO,2BAA2B,CAAC,YAAY,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACnE,CAAC;IAED,OAAO,IAAI,QAAQ,CAAC;QAClB,UAAU,EAAE,GAAG;QACf,SAAS,EAAE,sBAAsB;QACjC,MAAM,EAAE,YAAY,CAAC,WAAW,CAAC,CAAC,CAAC,IAAI,cAAc;QACrD,KAAK;KACN,CAAC,CAAC;AACL,CAAC"}
@@ -24,6 +24,7 @@ export declare class ProviderDiscoveryHelperClient {
24
24
  config: ProviderSessionDiscoveryHelperConfig;
25
25
  workspacePath: string;
26
26
  knownSessions: ProviderSessionSummary[];
27
+ enabledProviders: string[];
27
28
  }, signal?: AbortSignal): Promise<ProviderSessionDiscovery>;
28
29
  readSessionTitle(input: {
29
30
  config: ProviderSessionDiscoveryHelperConfig;
@@ -1 +1 @@
1
- {"version":3,"file":"provider-discovery-helper-client.js","sourceRoot":"","sources":["../../../../src/modules/provider/provider-discovery-helper-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"provider-discovery-helper-client.js","sourceRoot":"","sources":["../../../../src/modules/provider/provider-discovery-helper-client.ts"],"names":[],"mappings":"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"}
@@ -47,7 +47,7 @@ async function handleLine(line) {
47
47
  return;
48
48
  }
49
49
  case "workspace_session_discovery": {
50
- const result = await discoverWorkspaceSessions(payload.config, payload.workspacePath, payload.knownSessions, controller.signal);
50
+ const result = await discoverWorkspaceSessions(payload.config, payload.workspacePath, payload.knownSessions, payload.enabledProviders, controller.signal);
51
51
  emitResult(payload.id, result);
52
52
  return;
53
53
  }
@@ -387,8 +387,8 @@ function normalizeCliModelId(value) {
387
387
  const normalized = value.trim();
388
388
  return normalized.length > 0 ? normalized : null;
389
389
  }
390
- async function discoverWorkspaceSessions(config, workspacePath, knownSessions, signal) {
391
- return await discoverWorkspaceSessionsInRuntime(config, workspacePath, knownSessions, signal);
390
+ async function discoverWorkspaceSessions(config, workspacePath, knownSessions, enabledProviders, signal) {
391
+ return await discoverWorkspaceSessionsInRuntime(config, workspacePath, knownSessions, enabledProviders, signal);
392
392
  }
393
393
  async function readSessionTitle(config, provider, providerSessionId, rawStoreRef, signal) {
394
394
  return await readSessionTitleInRuntime(config, provider, providerSessionId, rawStoreRef, signal);