aws-runtime-bridge 1.9.92 → 1.9.93

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 (133) hide show
  1. package/dist/adapter/AcodeSdkAdapter.d.ts +22 -126
  2. package/dist/adapter/AdapterRegistry.d.ts +10 -38
  3. package/dist/adapter/ClaudeSdkAdapter.d.ts +21 -84
  4. package/dist/adapter/CodexSdkAdapter.d.ts +2 -10
  5. package/dist/adapter/OpencodeSdkAdapter.d.ts +6 -42
  6. package/dist/adapter/acode-tool-names.d.ts +3 -12
  7. package/dist/adapter/idle-poll-loop.d.ts +4 -16
  8. package/dist/adapter/index.d.ts +1 -4
  9. package/dist/adapter/instance-ai-config-resolver.d.ts +9 -29
  10. package/dist/adapter/types.d.ts +124 -242
  11. package/dist/adapters/cc-switch/common.d.ts +4 -14
  12. package/dist/adapters/cc-switch/index.d.ts +3 -11
  13. package/dist/adapters/cc-switch/mcp-acode.d.ts +1 -7
  14. package/dist/adapters/cc-switch/mcp-claude.d.ts +1 -5
  15. package/dist/adapters/cc-switch/mcp-claudecode.d.ts +1 -5
  16. package/dist/adapters/cc-switch/mcp-codex.d.ts +1 -7
  17. package/dist/adapters/cc-switch/mcp-opencode.d.ts +3 -11
  18. package/dist/adapters/cc-switch/mcp-placeholder.d.ts +1 -5
  19. package/dist/adapters/cc-switch/skill-acode.d.ts +1 -6
  20. package/dist/adapters/cc-switch/skill-claude.d.ts +1 -5
  21. package/dist/adapters/cc-switch/skill-claudecode.d.ts +1 -5
  22. package/dist/adapters/cc-switch/skill-opencode.d.ts +1 -5
  23. package/dist/adapters/cc-switch/skill-placeholder.d.ts +1 -5
  24. package/dist/config.d.ts +39 -57
  25. package/dist/index.d.ts +1 -5
  26. package/dist/middleware/auth.d.ts +4 -22
  27. package/dist/routes/acode-todos.d.ts +1 -9
  28. package/dist/routes/dashboard.d.ts +1 -6
  29. package/dist/routes/events.d.ts +1 -5
  30. package/dist/routes/file-browser.d.ts +2 -8
  31. package/dist/routes/file-diff-rollback.d.ts +13 -41
  32. package/dist/routes/file-snapshot.d.ts +1 -8
  33. package/dist/routes/git.d.ts +18 -91
  34. package/dist/routes/instance.d.ts +4 -15
  35. package/dist/routes/processes.d.ts +1 -5
  36. package/dist/routes/properties.d.ts +1 -5
  37. package/dist/routes/pty.d.ts +9 -36
  38. package/dist/routes/runtime-binding.d.ts +1 -4
  39. package/dist/routes/sessions.d.ts +2 -9
  40. package/dist/routes/sub-agents.d.ts +1 -12
  41. package/dist/routes/task-context.d.ts +1 -6
  42. package/dist/routes/terminal.d.ts +18 -92
  43. package/dist/routes/yml.d.ts +1 -5
  44. package/dist/services/acode-package.d.ts +2 -12
  45. package/dist/services/agent-event-store.d.ts +6 -26
  46. package/dist/services/agent-process-manager.d.ts +30 -184
  47. package/dist/services/ai-source-apply.d.ts +1 -3
  48. package/dist/services/auto-register.d.ts +29 -106
  49. package/dist/services/bridge-package-publish-hooks.d.ts +5 -19
  50. package/dist/services/cc-switch-sdk.d.ts +1 -6
  51. package/dist/services/cli-commands.d.ts +12 -33
  52. package/dist/services/event-delta-pusher.d.ts +5 -20
  53. package/dist/services/fileSnapshotStore.d.ts +7 -35
  54. package/dist/services/instance-ai-config-service.d.ts +4 -21
  55. package/dist/services/instance-service.d.ts +1 -10
  56. package/dist/services/instance-state.d.ts +5 -30
  57. package/dist/services/legacy-path-migration.d.ts +1 -1
  58. package/dist/services/lifecycle-state.d.ts +1 -4
  59. package/dist/services/mcp-launch-binding-queue.d.ts +2 -8
  60. package/dist/services/orphan-monitor.d.ts +20 -63
  61. package/dist/services/panel-auth.d.ts +12 -28
  62. package/dist/services/process-detector.d.ts +18 -122
  63. package/dist/services/process-registry.d.ts +30 -150
  64. package/dist/services/ring-buffer.d.ts +9 -42
  65. package/dist/services/runtime-binding.d.ts +2 -9
  66. package/dist/services/runtime-lifecycle-policy.d.ts +3 -15
  67. package/dist/services/session-output.d.ts +14 -67
  68. package/dist/services/startup-config-wizard.d.ts +3 -10
  69. package/dist/services/system-metrics.d.ts +1 -4
  70. package/dist/services/terminal-persistence.d.ts +10 -53
  71. package/dist/services/tool-installer.d.ts +6 -18
  72. package/dist/services/tunnel-client.d.ts +3 -18
  73. package/dist/services/windows-service-manager.d.ts +1 -13
  74. package/dist/services/workspace-files.d.ts +17 -57
  75. package/dist/services/workspace-watch.d.ts +2 -6
  76. package/dist/services/workspaceTaskChangeWatcher.d.ts +13 -51
  77. package/dist/types.d.ts +2 -8
  78. package/dist/utils/instance-ai-config-debug-logger.d.ts +5 -20
  79. package/dist/utils/logger.d.ts +7 -20
  80. package/dist/utils/mcp-utils.d.ts +8 -44
  81. package/dist/utils/path-utils.d.ts +3 -15
  82. package/dist/utils/sdk-package-loader.d.ts +2 -8
  83. package/dist/utils/validation.d.ts +3 -20
  84. package/dist/utils/yaml-utils.d.ts +8 -56
  85. package/node_modules/@cc-switch/sdk/dist/index.d.ts +1 -6
  86. package/node_modules/@cc-switch/sdk/dist/sdk.d.ts +11 -42
  87. package/package/acode/dist/ask-user-question-tool.d.ts +7 -20
  88. package/package/acode/dist/built-in-file-tools.d.ts +3 -6
  89. package/package/acode/dist/built-in-symbols-tool.d.ts +1 -4
  90. package/package/acode/dist/builtins/commandArtifacts.d.ts +1 -4
  91. package/package/acode/dist/builtins/shellOutputDecoder.d.ts +3 -18
  92. package/package/acode/dist/commands/commandLoader.d.ts +1 -4
  93. package/package/acode/dist/commands/commandParser.d.ts +1 -4
  94. package/package/acode/dist/compaction.d.ts +38 -175
  95. package/package/acode/dist/config.d.ts +1 -4
  96. package/package/acode/dist/fs-utils.d.ts +1 -19
  97. package/package/acode/dist/hooks/hookBus.d.ts +1 -4
  98. package/package/acode/dist/mcpToolNames.d.ts +2 -8
  99. package/package/acode/dist/parsers/ast-cache.d.ts +7 -20
  100. package/package/acode/dist/parsers/language-detector.d.ts +1 -5
  101. package/package/acode/dist/parsers/language-queries.d.ts +1 -1
  102. package/package/acode/dist/parsers/tree-sitter-loader.d.ts +4 -12
  103. package/package/acode/dist/parsers/types.d.ts +19 -30
  104. package/package/acode/dist/runtime.d.ts +47 -269
  105. package/package/acode/dist/skill-tool.d.ts +3 -23
  106. package/package/acode/dist/sub-agent-manager.d.ts +41 -206
  107. package/package/acode/dist/sub-agent-store.d.ts +12 -61
  108. package/package/acode/dist/sub-agent-tools.d.ts +9 -18
  109. package/package/acode/dist/sub-agent-types.d.ts +32 -38
  110. package/package/acode/dist/todo-store.d.ts +8 -23
  111. package/package/acode/dist/todo-tool.d.ts +2 -2
  112. package/package/acode/dist/types.d.ts +17 -38
  113. package/package/aws-client-agent-mcp/dist/agent-client.d.ts +44 -161
  114. package/package/aws-client-agent-mcp/dist/config.d.ts +4 -18
  115. package/package/aws-client-agent-mcp/dist/constants.d.ts +1 -3
  116. package/package/aws-client-agent-mcp/dist/context-manager.d.ts +25 -95
  117. package/package/aws-client-agent-mcp/dist/context-manager.test.d.ts +1 -4
  118. package/package/aws-client-agent-mcp/dist/http-client.d.ts +15 -56
  119. package/package/aws-client-agent-mcp/dist/index.d.ts +1 -11
  120. package/package/aws-client-agent-mcp/dist/logger.d.ts +5 -22
  121. package/package/aws-client-agent-mcp/dist/mcp-server.d.ts +76 -365
  122. package/package/aws-client-agent-mcp/dist/mcp-tools.d.ts +21 -83
  123. package/package/aws-client-agent-mcp/dist/memory-store.d.ts +15 -70
  124. package/package/aws-client-agent-mcp/dist/memory-tools.d.ts +4 -17
  125. package/package/aws-client-agent-mcp/dist/message-buffer.d.ts +23 -92
  126. package/package/aws-client-agent-mcp/dist/messageContent.d.ts +5 -29
  127. package/package/aws-client-agent-mcp/dist/server-memory-store.d.ts +2 -9
  128. package/package/aws-client-agent-mcp/dist/status-reporter.d.ts +17 -55
  129. package/package/aws-client-agent-mcp/dist/types.d.ts +66 -125
  130. package/package/aws-client-agent-mcp/dist/websocket-client.d.ts +30 -125
  131. package/package/cc-switch-sdk/dist/index.d.ts +1 -6
  132. package/package/cc-switch-sdk/dist/sdk.d.ts +11 -42
  133. package/package.json +1 -1
@@ -1,9 +1,5 @@
1
- /**
2
- * Agent MCP Client 类型定义
3
- */
4
- /**
5
- * Token 用量明细
6
- */
1
+
2
+
7
3
  export interface TokenUsage {
8
4
  input: number;
9
5
  output: number;
@@ -13,60 +9,52 @@ export interface TokenUsage {
13
9
  write: number;
14
10
  };
15
11
  }
16
- /**
17
- * 模型信息
18
- */
12
+
19
13
  export interface ModelInfo {
20
14
  provider: string;
21
15
  model: string;
22
- /** 模型上下文窗口上限(token 数) */
16
+
23
17
  contextLimit: number;
24
- /** 模型最大输出 token 数 */
18
+
25
19
  maxOutput?: number;
26
- /** 模型最大输入 token 数(部分模型 input/output 分开限制) */
20
+
27
21
  maxInput?: number;
28
22
  }
29
- /**
30
- * 会话上下文统计
31
- */
23
+
32
24
  export interface ContextStats {
33
- /** 当前会话已使用的 token 总数 */
25
+
34
26
  totalUsed: number;
35
- /** 输入 token 累计 */
27
+
36
28
  totalInput: number;
37
- /** 输出 token 累计 */
29
+
38
30
  totalOutput: number;
39
- /** 模型上下文窗口上限 */
31
+
40
32
  contextLimit: number;
41
- /** 剩余可用 token */
33
+
42
34
  remaining: number;
43
- /** 使用百分比 0-100 */
35
+
44
36
  usagePercent: number;
45
- /** 是否已触发溢出警告 */
37
+
46
38
  overflowWarning: boolean;
47
- /** 最后一次溢出检测时间 */
39
+
48
40
  lastChecked?: string;
49
41
  }
50
- /**
51
- * 压缩策略
52
- */
42
+
53
43
  export type CompactionStrategy = "prune" | "summarize" | "auto";
54
- /**
55
- * 压缩结果
56
- */
44
+
57
45
  export interface CompactionResult {
58
46
  strategy: CompactionStrategy;
59
- /** 释放的 token 数 */
47
+
60
48
  freedTokens: number;
61
- /** 保留的完整对话轮次 */
49
+
62
50
  preservedTurns: number;
63
- /** 被压缩的消息数 */
51
+
64
52
  compactedMessages: number;
65
- /** 压缩后剩余 token */
53
+
66
54
  remainingTokens: number;
67
- /** 压缩摘要(summarize 策略时) */
55
+
68
56
  summary?: string;
69
- /** 压缩时间 */
57
+
70
58
  timestamp: string;
71
59
  }
72
60
  export interface AgentConfig {
@@ -76,12 +64,10 @@ export interface AgentConfig {
76
64
  workspacePath: string;
77
65
  prompt: string;
78
66
  describe: string;
79
- /** Agent 绑定的模型信息,用于上下文窗口检测 */
67
+
80
68
  modelInfo?: ModelInfo;
81
69
  }
82
- /**
83
- * YAML 角色配置(原 AgentRoleTemplate → AgentProfileTemplate)
84
- */
70
+
85
71
  export interface YmlAgentProfileTemplate {
86
72
  name: string;
87
73
  path: string;
@@ -99,62 +85,34 @@ export interface ServerConfig {
99
85
  heartbeatInterval: number;
100
86
  heartbeatTimeout?: number;
101
87
  reconnectInterval: number;
102
- /** 指数退避最大间隔(毫秒),默认 30s */
88
+
103
89
  reconnectMaxInterval?: number;
104
- /** 指数退避随机抖动范围(毫秒),默认 1000 */
90
+
105
91
  reconnectJitterMs?: number;
106
- /**
107
- * 最大重连次数。
108
- * -1 表示无限重试。
109
- */
92
+
110
93
  maxReconnectAttempts: number;
111
- /**
112
- * 调度器下发给 runtime bridge 的访问令牌,MCP HTTP 调用会随请求携带。
113
- */
94
+
114
95
  runtimeAccessToken?: string;
115
96
  runtimeAccessTokenExpiresAt?: string;
116
- /**
117
- * 运行时令牌归属用户 ID,用于 bridge 按 userId + serverIp 读取本地令牌。
118
- */
97
+
119
98
  userId?: string;
120
- /**
121
- * 当前机器 runtime-bridge 地址;当 runtimeAccessToken 缺失时用于向 bridge 申请。
122
- */
99
+
123
100
  runtimeBridgeBaseUrl?: string;
124
- /**
125
- * 可选:MCP HTTP 调用地址。
126
- * 支持完整地址(推荐),若仅提供主机地址会自动补全为 /mcp/call。
127
- */
101
+
128
102
  mcpHttpUrl?: string;
129
- /**
130
- * 后台 runtime token 主动刷新间隔,毫秒。用于在 24h 服务端 TTL 过期前稳定续期。
131
- */
103
+
132
104
  runtimeTokenRefreshIntervalMs?: number;
133
- /**
134
- * MCP HTTP 请求硬超时,毫秒。避免 fetch 半开或服务端卡住导致工具调用永久挂起。
135
- */
105
+
136
106
  mcpHttpRequestTimeoutMs?: number;
137
- /**
138
- * MCP HTTP 请求失败重试间隔,毫秒。默认 5000(5 秒)。
139
- */
107
+
140
108
  mcpRetryIntervalMs?: number;
141
- /**
142
- * MCP HTTP 请求失败累计最大重试时间,毫秒。默认 30000(30 秒)。
143
- * 设置为 0 可禁用重试。
144
- */
109
+
145
110
  mcpRetryMaxAccumulatedMs?: number;
146
- /**
147
- * 最近一次已尝试强制刷新的被拒绝 runtime token。
148
- */
111
+
149
112
  lastForceRefreshAttemptedForToken?: string;
150
- /**
151
- * 当前共享 runtime token 刷新任务。
152
- * 主流程:HTTP 与 WebSocket 共用该 promise,避免同一 MCP 进程内并发刷新轮换互相作废 token。
153
- */
113
+
154
114
  runtimeAccessTokenRefreshPromise?: Promise<void>;
155
- /**
156
- * 当前共享刷新任务是否为强制刷新。
157
- */
115
+
158
116
  runtimeAccessTokenRefreshForce?: boolean;
159
117
  }
160
118
  export interface RuntimeLaunchBinding {
@@ -217,13 +175,13 @@ export interface GroupMessage {
217
175
  roomId?: string;
218
176
  content: string;
219
177
  timestamp: string;
220
- /** 上下文压缩:该消息的 token 用量 */
178
+
221
179
  tokens?: TokenUsage;
222
- /** 上下文压缩:发送方使用的模型信息 */
180
+
223
181
  modelInfo?: ModelInfo;
224
- /** 上下文压缩:是否已被压缩(内容为摘要) */
182
+
225
183
  compacted?: boolean;
226
- /** 上下文压缩:被压缩后的摘要(原文保留在服务端) */
184
+
227
185
  compactionSummary?: string;
228
186
  }
229
187
  export interface GroupMessagesResponse {
@@ -231,15 +189,9 @@ export interface GroupMessagesResponse {
231
189
  currentReadPos: number;
232
190
  hasMore: boolean;
233
191
  }
234
- /**
235
- * 绑定文件的逐文件状态,用于 memory_file_change 自动委托时标注每个文件。
236
- * - no_change: MD5 与基线一致
237
- * - content_changed: 文件存在但 MD5 与基线不一致
238
- * - not_found: 文件读取不到(被删除/移动)
239
- * - no_baseline: 该文件无可用基线(新增绑定尚未建基线,或基线键不匹配),无法判定变更
240
- */
192
+
241
193
  export type BoundFileStatus = 'no_change' | 'content_changed' | 'not_found' | 'no_baseline';
242
- /** 单条绑定文件的路径与状态。 */
194
+
243
195
  export interface BoundFileStatusEntry {
244
196
  path: string;
245
197
  status: BoundFileStatus;
@@ -255,34 +207,29 @@ export interface DirectMessage {
255
207
  content: string;
256
208
  requireReply: boolean;
257
209
  prompt?: string;
258
- /** 消息角色:system=系统指令,user=用户/其他Agent,assistant=本Agent
259
- * role=system 的消息应被 AI 客户端作为系统提示词(system message)处理,
260
- * 而非普通对话消息。用于实现多条 system prompt 的分层注入。 */
210
+
261
211
  role?: 'system' | 'user' | 'assistant';
262
212
  timestamp: string;
263
- /** 上下文压缩:该消息的 token 用量 */
213
+
264
214
  tokens?: TokenUsage;
265
- /** 上下文压缩:发送方使用的模型信息 */
215
+
266
216
  modelInfo?: ModelInfo;
267
- /** 上下文压缩:是否已被压缩(内容为摘要) */
217
+
268
218
  compacted?: boolean;
269
- /** 上下文压缩:被压缩后的摘要(原文保留在服务端) */
219
+
270
220
  compactionSummary?: string;
271
- /** ACode 自动委托:当 ACodeRuntime 识别到此标记时,自动 spawn 子 agent 处理 memory 任务 */
221
+
272
222
  _acodeAutoDelegate?: {
273
223
  type: 'memory_expiration' | 'memory_file_change' | 'memory_cleanup';
274
224
  uris: string[];
275
- /**
276
- * 仅 memory_file_change 类型使用:每个 URI 对应的绑定文件与变更文件详情。
277
- * 让子 agent 无需先调用 read_memory 即可知晓每个 memory 绑定了哪些文件、本次哪个文件发生变更。
278
- */
225
+
279
226
  fileChanges?: Array<{
280
227
  uri: string;
281
- /** 该 memory 当前绑定的全部文件路径(MemoryRecord.bound_files) */
228
+
282
229
  boundFiles?: string[];
283
- /** 本次检测到发生变更的文件路径列表(含状态注释,如 " (文件找不到)"、" (内容变更)") */
230
+
284
231
  changedFiles?: string[];
285
- /** 每个绑定文件的逐文件状态(无变更/内容变更/文件找不到),供子 agent 提示词逐文件标注 */
232
+
286
233
  fileStatuses?: BoundFileStatusEntry[];
287
234
  }>;
288
235
  };
@@ -322,10 +269,7 @@ export interface WebSocketMessage<T = unknown> {
322
269
  data: T;
323
270
  timestamp: string;
324
271
  }
325
- /**
326
- * PROFILE_INFO 消息类型
327
- * 用于在 Agent 连接时自动推送 profile 信息
328
- */
272
+
329
273
  export declare const TYPE_PROFILE_INFO = "PROFILE_INFO";
330
274
  export type MessageHandler = (message: DirectMessage | GroupMessage) => Promise<string | undefined>;
331
275
  export interface AgentState {
@@ -427,9 +371,9 @@ export interface HireBatchResult {
427
371
  summary: HireBatchSummary;
428
372
  results: HireBatchItemResult[];
429
373
  }
430
- /** MCP 工具名称枚举 */
374
+
431
375
  export type McpToolName = "get_colleague" | "get_group_rooms" | "get_profile" | "hire_colleague" | "hire_colleagues_batch" | "send_group" | "send_private" | "poll_message" | "get_message" | "get_dm_history" | "get_group_history" | "start_listening" | "stop_listening";
432
- /** send_private 工具参数 */
376
+
433
377
  export interface SendPrivateArgs {
434
378
  targetId: string;
435
379
  content: string;
@@ -437,43 +381,40 @@ export interface SendPrivateArgs {
437
381
  replyToCallId?: string;
438
382
  timeoutMs?: number;
439
383
  }
440
- /** send_group 工具参数 */
384
+
441
385
  export interface SendGroupArgs {
442
386
  content: string;
443
387
  projectName?: string;
444
388
  roomId?: string;
445
389
  }
446
- /** get_dm_history 工具参数 */
390
+
447
391
  export interface GetDmHistoryArgs {
448
392
  targetUserId?: string;
449
393
  limit?: number;
450
394
  since?: string;
451
395
  }
452
- /** get_group_history 工具参数 */
396
+
453
397
  export interface GetGroupHistoryArgs {
454
398
  roomId?: string;
455
399
  limit?: number;
456
400
  since?: string;
457
401
  }
458
- /** create_task_instance_comment 工具参数 */
402
+
459
403
  export interface TaskInstanceCommentArgs {
460
404
  taskInstanceId: string;
461
405
  content: string;
462
406
  }
463
- /** poll_message 返回结果 */
407
+
464
408
  export interface PollMessageResult {
465
- /** 系统级消息(role=system),应作为系统提示词处理而非普通对话消息。
466
- * 与 directMessages/groupMessages 不同,这些消息的 role='system',
467
- * AI 客户端应将它们按 system message 注入到上下文中。
468
- * 顺序:第一条为全局系统提示词,后续为启动记忆等。 */
409
+
469
410
  systemMessages?: DirectMessage[];
470
411
  directMessages: DirectMessage[];
471
412
  groupMessages: GroupMessage[];
472
413
  fromBuffer: boolean;
473
414
  }
474
- /** Agent 动作类型 */
415
+
475
416
  export type AgentActionType = "skill" | "mcp" | "idle" | "edit_file" | "write_file" | "read_file" | "bash" | "search" | "web" | "thinking" | "tool_using";
476
- /** Agent 状态更新消息 */
417
+
477
418
  export interface AgentStatusUpdate {
478
419
  agentId: string;
479
420
  status: "running" | "starting" | "waiting_input" | "thinking" | "tool_using" | "stopped" | "error";
@@ -1,7 +1,4 @@
1
- /**
2
- * WebSocket 客户端模块
3
- * 负责与调度中心建立和维护 WebSocket 连接
4
- */
1
+
5
2
  import { EventEmitter } from 'node:events';
6
3
  import WebSocket from 'ws';
7
4
  import type { ServerConfig } from './types.js';
@@ -15,171 +12,79 @@ export declare class WebSocketClient extends EventEmitter {
15
12
  private reconnectTimer;
16
13
  private isManualClose;
17
14
  private websocketFactory;
18
- /** 已尝试刷新过的 token,仅当真正拿到新 token 时记录,用于 hammer 保护 */
15
+
19
16
  private lastRefreshedToken;
20
- /** 1008 token 刷新连续失败次数,达到上限后终止重连 */
17
+
21
18
  private consecutiveRefreshFailures;
22
19
  private logBatchQueue;
23
20
  private logBatchTimer;
24
21
  private logSequenceNumber;
25
22
  private pendingLogBatches;
26
23
  private isProcessingLogBatch;
27
- /**
28
- * 已处理的 reliable 消息 ID(msgId → 处理时间戳)。
29
- * 用于对冲服务端 ACK 超时/丢失导致的消息重投,覆盖所有 reliable 事件类型,
30
- * 而非仅靠下游 MessageBuffer 对私信/群聊的去重。
31
- */
24
+
32
25
  private processedMsgIds;
33
26
  constructor(config: ServerConfig, websocketFactory?: (url: string) => WebSocket);
34
- /**
35
- * 建立 WebSocket 连接
36
- * 主流程:准备连接 -> 创建连接 -> 设置事件监听
37
- */
27
+
38
28
  connect(agentId: string): Promise<void>;
39
- /**
40
- * 准备连接前的状态清理
41
- */
29
+
42
30
  private prepareConnection;
43
- /**
44
- * 构建 WebSocket URL
45
- */
31
+
46
32
  private buildWebSocketUrl;
47
33
  private maskRuntimeTokenInUrl;
48
- /**
49
- * 创建一次性 resolve/reject 处理器
50
- */
34
+
51
35
  private createSettledHandlers;
52
- /**
53
- * 设置 WebSocket 事件监听器
54
- */
36
+
55
37
  private setupWebSocketEventHandlers;
56
- /**
57
- * 处理 WebSocket 打开事件
58
- */
38
+
59
39
  private handleWebSocketOpen;
60
- /**
61
- * 处理 WebSocket 消息
62
- *
63
- * 可靠消息去重:服务端 ReliableMessageDeliveryService 在 ACK 超时(5s)或丢失时会
64
- * 重发同一 messageId 的消息(最多 3 次 + 用户上线重投)。接收方若不区分重投与
65
- * 首次投递,会对同一事件(如 agentStatus、profileInfo 等)重复处理。
66
- * 这里在 ACK 之前检查 messageId 是否已处理过:
67
- * - 重复消息:仍回 ACK(避免服务端继续重试堆积),但跳过 handleMessage;
68
- * - 新消息:记录 messageId,回 ACK,正常处理。
69
- */
40
+
70
41
  private handleWebSocketMessage;
71
- /**
72
- * 提取 reliable 消息的 messageId。
73
- * 仅当 data 为对象、含非空 _msgId 且 _requireAck 为真时返回 messageId,否则返回 null。
74
- */
42
+
75
43
  private extractReliableMessageId;
76
- /**
77
- * 标记 messageId 为已处理。
78
- * 返回 true 表示该 messageId 此前已被处理过(重复投递),false 表示首次处理。
79
- * 超出上限时淘汰最旧记录,避免内存无界增长。
80
- */
44
+
81
45
  private markMsgIdProcessed;
82
46
  private acknowledgeReliableMessage;
83
- /**
84
- * 处理 WebSocket 关闭事件
85
- */
47
+
86
48
  private handleWebSocketClose;
87
- /**
88
- * WebSocket 1008(token 失效)时的反应式刷新。
89
- * 修复死循环:旧实现在刷新失败时仍用旧 token 立即重连,导致被 1008 反复拒绝、
90
- * 200ms 无限重连且 Agent 永远 offline。新实现:
91
- * - 仅当拿到【新】token 时才视为刷新成功并立即重连;
92
- * - 服务端返回 token 不变(unchanged)说明换 token 无法解决 1008,直接终止重连,避免死循环;
93
- * - 刷新失败(网络/超时/异常)计入连续失败次数,达到上限后终止重连并上报事件,
94
- * 交由上层 supervisor 重启,而非用旧 token 无限重试。
95
- */
49
+
96
50
  private handleTokenExpiredAndReconnect;
97
- /**
98
- * 向 bridge 请求刷新 runtimeAccessToken(forceRefresh 模式)。
99
- * 返回:
100
- * - 'refreshed':成功拿到【新】token 并已更新 config;
101
- * - 'unchanged':服务端返回 token 与当前一致(换 token 无法解决 1008);
102
- * - 'failed':刷新请求失败(网络/超时/非 2xx/异常)。
103
- * 仅当真正获得新 token 时才记录 lastRefreshedToken(hammer 保护),
104
- * 失败时不再把当前 token 标记为"已刷新",从而允许后续在退避约束下重试。
105
- */
51
+
106
52
  private refreshRuntimeTokenOnPolicyRejection;
107
- /**
108
- * 处理 WebSocket 错误事件
109
- */
53
+
110
54
  private handleWebSocketError;
111
- /**
112
- * 断开 WebSocket 连接
113
- */
55
+
114
56
  disconnect(): void;
115
- /**
116
- * 发送消息
117
- */
57
+
118
58
  send(message: unknown): boolean;
119
- /**
120
- * 上报 MCP Node.js 进程启动后的运行日志(批处理模式)。
121
- * 日志先入队,每 100ms 节流窗口内累积后批量发送,
122
- * 等待 bridge 返回 LOG_ACK 确认后再发送下一批。
123
- */
59
+
124
60
  sendMcpNodeLog(data: {
125
61
  level: string;
126
62
  message: string;
127
63
  timestamp: string;
128
64
  }): boolean;
129
- /**
130
- * 刷新日志批次:取出队列中的日志,按序列号打包发送。
131
- * 等待 bridge 返回 LOG_ACK 后方可发送下一批。
132
- */
65
+
133
66
  private flushLogBatch;
134
- /**
135
- * 发送日志批次(实际发送 + 重试逻辑)
136
- */
67
+
137
68
  private sendLogBatch;
138
- /**
139
- * 处理日志批次发送失败(重试或放弃)
140
- */
69
+
141
70
  private handleLogBatchSendFailure;
142
- /**
143
- * 处理 LOG_ACK 确认。
144
- * 收到 bridge 对某序列号日志批次的确认后,标记该批次完成,继续发送下一批。
145
- */
71
+
146
72
  private handleLogAck;
147
- /**
148
- * 是否已连接
149
- */
73
+
150
74
  isConnected(): boolean;
151
- /**
152
- * 处理接收到的消息
153
- */
75
+
154
76
  private handleMessage;
155
- /**
156
- * 启动心跳
157
- */
77
+
158
78
  private startHeartbeat;
159
- /**
160
- * 停止心跳
161
- */
79
+
162
80
  private stopHeartbeat;
163
81
  private sendProtocolPing;
164
82
  private markHeartbeatReceived;
165
83
  private ensureHeartbeatTimeout;
166
84
  private clearHeartbeatTimeout;
167
85
  private resolveHeartbeatTimeout;
168
- /**
169
- * 安排重连(指数退避 + 随机抖动)
170
- *
171
- * 主流程:校验重连上限 -> 计算指数退避间隔(含抖动)-> 延迟后重连
172
- *
173
- * 退避公式:baseDelay = min(reconnectInterval * 2^(attempt-1), reconnectMaxInterval)
174
- * jitter = random(0, reconnectJitterMs)
175
- * delay = baseDelay + jitter
176
- *
177
- * 首次重连 (attempt=1):baseDelay = reconnectInterval(200ms),与之前行为一致
178
- * 后续重连指数递增,上限 30s + 1s 随机抖动,避免重连风暴
179
- */
86
+
180
87
  private scheduleReconnect;
181
- /**
182
- * 清除重连定时器
183
- */
88
+
184
89
  private clearReconnectTimer;
185
90
  }
@@ -1,9 +1,4 @@
1
- /**
2
- * @cc-switch/sdk - 纯配置管理 SDK
3
- *
4
- * 负责 MCP/Skill 的 CRUD 操作和状态管理。
5
- * 注意:adapters 需要外部注入,SDK 不提供默认实现。
6
- */
1
+
7
2
  import type { AppId, AppFlags, McpServer, McpServerSpec, InstalledSkill, SkillSyncMethod, SdkOptions, SdkPaths, SdkState, IMcpAdapter, ISkillAdapter, AdapterOverrides } from "./types.js";
8
3
  import { CcSwitchSdk } from "./sdk.js";
9
4
  import { AiConfigService, buildToolSpecificAiConfig, type AiConfigTemplate, type ClaudeCodeConfig, type CodexConfig, type OpenCodeConfig, type AiConfigPaths } from "./services/ai-config-service.js";
@@ -8,16 +8,7 @@ export declare class CcSwitchSdk {
8
8
  private readonly skillAdapters;
9
9
  private state;
10
10
  private operationQueue;
11
- /**
12
- * 创建 CcSwitchSdk 实例
13
- *
14
- * 注意:adapters 必须通过 options.adapters 注入,
15
- * cc-switch-sdk 不再提供默认的 adapter 实现。
16
- *
17
- * @param options - SDK 配置选项
18
- * @param options.adapters.mcp - MCP 适配器映射(必需)
19
- * @param options.adapters.skill - Skill 适配器映射(必需)
20
- */
11
+
21
12
  constructor(options: SdkOptions);
22
13
  private executeExclusive;
23
14
  load(): Promise<void>;
@@ -37,22 +28,13 @@ export declare class CcSwitchSdk {
37
28
  deleteMcpServer(id: string): Promise<void>;
38
29
  toggleMcpApp(serverId: string, appId: AppId, enabled: boolean): Promise<McpServer>;
39
30
  importMcpFromApps(): Promise<number>;
40
- /**
41
- * 从单个应用导入 MCP 服务器
42
- */
31
+
43
32
  private importMcpFromApp;
44
- /**
45
- * 处理导入的 MCP 服务器(合并或创建)
46
- * @returns 是否为新创建的 MCP
47
- */
33
+
48
34
  private processImportedMcp;
49
- /**
50
- * 根据名称查找 MCP 服务器
51
- */
35
+
52
36
  private findMcpServerByName;
53
- /**
54
- * 创建带有应用标记的 MCP 服务器
55
- */
37
+
56
38
  private createMcpWithAppFlag;
57
39
  getAllSkills(): InstalledSkill[];
58
40
  getSkillById(id: string): InstalledSkill | undefined;
@@ -61,30 +43,17 @@ export declare class CcSwitchSdk {
61
43
  uninstallSkill(id: string): Promise<void>;
62
44
  toggleSkillApp(skillId: string, appId: AppId, enabled: boolean): Promise<InstalledSkill>;
63
45
  importSkillsFromApps(): Promise<number>;
64
- /**
65
- * 从单个应用导入 Skills
66
- */
46
+
67
47
  private importSkillsFromApp;
68
- /**
69
- * 处理导入的 Skill(合并或创建)
70
- * @returns 是否为新创建的 Skill
71
- */
48
+
72
49
  private processImportedSkill;
73
- /**
74
- * 根据名称查找 Skill
75
- */
50
+
76
51
  private findSkillByName;
77
- /**
78
- * 合并已存在的 Skill
79
- */
52
+
80
53
  private mergeExistingSkill;
81
- /**
82
- * 创建新导入的 Skill
83
- */
54
+
84
55
  private createNewImportedSkill;
85
- /**
86
- * 创建带有应用标记的 Skill
87
- */
56
+
88
57
  private createSkillWithAppFlag;
89
58
  getPaths(): SdkPaths;
90
59
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "aws-runtime-bridge",
3
- "version": "1.9.92",
3
+ "version": "1.9.93",
4
4
  "description": "AgentsWorkStudio runtime bridge service for machine-level agent runtime integration",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",