@winmatrix/agent-sdk 0.1.6 → 1.0.4

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 (84) hide show
  1. package/dist/adapters/claude/ClaudeAdapter.d.ts +7 -0
  2. package/dist/adapters/claude/ClaudeAdapter.d.ts.map +1 -1
  3. package/dist/adapters/claude/ClaudeAdapter.js +69 -9
  4. package/dist/adapters/claude/ClaudeAdapter.js.map +1 -1
  5. package/dist/adapters/claude/ClaudeStreamParser.d.ts +7 -2
  6. package/dist/adapters/claude/ClaudeStreamParser.d.ts.map +1 -1
  7. package/dist/adapters/claude/ClaudeStreamParser.js +90 -3
  8. package/dist/adapters/claude/ClaudeStreamParser.js.map +1 -1
  9. package/dist/adapters/claude/claudeCommand.d.ts +2 -1
  10. package/dist/adapters/claude/claudeCommand.d.ts.map +1 -1
  11. package/dist/adapters/claude/claudeCommand.js +88 -7
  12. package/dist/adapters/claude/claudeCommand.js.map +1 -1
  13. package/dist/adapters/codex/CodexAdapter.d.ts +20 -0
  14. package/dist/adapters/codex/CodexAdapter.d.ts.map +1 -0
  15. package/dist/adapters/codex/CodexAdapter.js +286 -0
  16. package/dist/adapters/codex/CodexAdapter.js.map +1 -0
  17. package/dist/adapters/hermes/HermesAdapter.d.ts +1 -0
  18. package/dist/adapters/hermes/HermesAdapter.d.ts.map +1 -1
  19. package/dist/adapters/hermes/HermesAdapter.js +79 -14
  20. package/dist/adapters/hermes/HermesAdapter.js.map +1 -1
  21. package/dist/adapters/openclaw/OpenClawAdapter.d.ts +12 -37
  22. package/dist/adapters/openclaw/OpenClawAdapter.d.ts.map +1 -1
  23. package/dist/adapters/openclaw/OpenClawAdapter.js +168 -634
  24. package/dist/adapters/openclaw/OpenClawAdapter.js.map +1 -1
  25. package/dist/core/AgentAdapter.d.ts +31 -0
  26. package/dist/core/AgentAdapter.d.ts.map +1 -1
  27. package/dist/core/AgentAdapter.js +25 -0
  28. package/dist/core/AgentAdapter.js.map +1 -1
  29. package/dist/core/ClaudeRuntimeDoctor.d.ts +20 -0
  30. package/dist/core/ClaudeRuntimeDoctor.d.ts.map +1 -0
  31. package/dist/core/ClaudeRuntimeDoctor.js +50 -0
  32. package/dist/core/ClaudeRuntimeDoctor.js.map +1 -0
  33. package/dist/core/RuntimeDetector.d.ts.map +1 -1
  34. package/dist/core/RuntimeDetector.js +53 -33
  35. package/dist/core/RuntimeDetector.js.map +1 -1
  36. package/dist/core/WinMatrixAgentClient.d.ts +8 -4
  37. package/dist/core/WinMatrixAgentClient.d.ts.map +1 -1
  38. package/dist/core/WinMatrixAgentClient.js +9 -2
  39. package/dist/core/WinMatrixAgentClient.js.map +1 -1
  40. package/dist/index.d.ts +6 -10
  41. package/dist/index.d.ts.map +1 -1
  42. package/dist/index.js +3 -7
  43. package/dist/index.js.map +1 -1
  44. package/dist/utils/resumeFallback.d.ts +4 -0
  45. package/dist/utils/resumeFallback.d.ts.map +1 -0
  46. package/dist/utils/resumeFallback.js +55 -0
  47. package/dist/utils/resumeFallback.js.map +1 -0
  48. package/package.json +7 -2
  49. package/dist/adapters/openclaw/unwrapOpenClawPayloads.d.ts +0 -6
  50. package/dist/adapters/openclaw/unwrapOpenClawPayloads.d.ts.map +0 -1
  51. package/dist/adapters/openclaw/unwrapOpenClawPayloads.js +0 -24
  52. package/dist/adapters/openclaw/unwrapOpenClawPayloads.js.map +0 -1
  53. package/dist/runtime/DualRuntimeBridge.d.ts +0 -38
  54. package/dist/runtime/DualRuntimeBridge.d.ts.map +0 -1
  55. package/dist/runtime/DualRuntimeBridge.js +0 -321
  56. package/dist/runtime/DualRuntimeBridge.js.map +0 -1
  57. package/dist/runtime/bridgeConfigLoader.d.ts +0 -14
  58. package/dist/runtime/bridgeConfigLoader.d.ts.map +0 -1
  59. package/dist/runtime/bridgeConfigLoader.js +0 -133
  60. package/dist/runtime/bridgeConfigLoader.js.map +0 -1
  61. package/dist/runtime/bridgeConfigTypes.d.ts +0 -26
  62. package/dist/runtime/bridgeConfigTypes.d.ts.map +0 -1
  63. package/dist/runtime/bridgeConfigTypes.js +0 -6
  64. package/dist/runtime/bridgeConfigTypes.js.map +0 -1
  65. package/dist/runtime/bridgeHome.d.ts +0 -19
  66. package/dist/runtime/bridgeHome.d.ts.map +0 -1
  67. package/dist/runtime/bridgeHome.js +0 -61
  68. package/dist/runtime/bridgeHome.js.map +0 -1
  69. package/dist/runtime/bridgeReconnectPolicy.d.ts +0 -8
  70. package/dist/runtime/bridgeReconnectPolicy.d.ts.map +0 -1
  71. package/dist/runtime/bridgeReconnectPolicy.js +0 -16
  72. package/dist/runtime/bridgeReconnectPolicy.js.map +0 -1
  73. package/dist/runtime/bridgeTaskJournal.d.ts +0 -7
  74. package/dist/runtime/bridgeTaskJournal.d.ts.map +0 -1
  75. package/dist/runtime/bridgeTaskJournal.js +0 -66
  76. package/dist/runtime/bridgeTaskJournal.js.map +0 -1
  77. package/dist/runtime/localRuntimeAvailabilityMonitor.d.ts +0 -22
  78. package/dist/runtime/localRuntimeAvailabilityMonitor.d.ts.map +0 -1
  79. package/dist/runtime/localRuntimeAvailabilityMonitor.js +0 -81
  80. package/dist/runtime/localRuntimeAvailabilityMonitor.js.map +0 -1
  81. package/dist/runtime/runDualRuntimeBridge.d.ts +0 -2
  82. package/dist/runtime/runDualRuntimeBridge.d.ts.map +0 -1
  83. package/dist/runtime/runDualRuntimeBridge.js +0 -32
  84. package/dist/runtime/runDualRuntimeBridge.js.map +0 -1
package/dist/index.d.ts CHANGED
@@ -10,27 +10,23 @@ export type { DaemonClientOptions, AgentCreateEvent, AgentStopEvent, AgentErrorE
10
10
  export { ClaudeAdapter } from './adapters/claude/ClaudeAdapter.js';
11
11
  export { parseClaudeLine, splitLines } from './adapters/claude/ClaudeStreamParser.js';
12
12
  export type { ClaudeDeltaAction, ClaudeToolUseAction, ClaudeResultAction, ClaudeErrorAction, ClaudeSkipAction, ClaudeLineAction, } from './adapters/claude/ClaudeStreamParser.js';
13
+ export { CodexAdapter } from './adapters/codex/CodexAdapter.js';
14
+ export type { CodexAdapterOptions } from './adapters/codex/CodexAdapter.js';
13
15
  export { OpenClawAdapter } from './adapters/openclaw/OpenClawAdapter.js';
14
16
  export type { OpenClawAdapterOptions } from './adapters/openclaw/OpenClawAdapter.js';
15
- export { unwrapOpenClawPayloads } from './adapters/openclaw/unwrapOpenClawPayloads.js';
16
17
  export { HermesAdapter } from './adapters/hermes/HermesAdapter.js';
17
18
  export type { HermesAdapterOptions } from './adapters/hermes/HermesAdapter.js';
18
19
  export { METHODS, EVENTS, ERROR_CODES, nextRequestId, createRequest, createEvent, parseFrame, parseResponse, parseEvent, isResponse, isEvent, isRequest, isTaskAssignRequest, isTaskCancelEvent, isTaskResumeEvent, isSessionListRequest, isSessionGetRequest, } from '@winmatrix/protocol';
19
20
  export type { BaseRequest, BaseResponse, BaseEvent, ClientInboundFrame as InboundFrame, RegisterParams, RegisterResponsePayload, ComputerRegisterParams, ComputerRegisterResponsePayload, TaskContext, TaskConstraints, TaskAssignParams, TaskDeltaPayload, TaskThinkingPayload, TaskCompletePayload, TaskErrorPayload, TaskCancelPayload, TaskCancelledPayload, TaskResumePayload, SessionListParams, SessionListResponsePayload, SessionGetParams, SessionGetResponsePayload, RuntimeAvailabilityPayload, ToolCallParams, ToolCallResponse, AgentProfile, } from '@winmatrix/protocol';
20
- export type { AgentAdapter, AdapterEvent, AdapterMeta, AgentTaskContext, ClaudeTaskOptions, HermesTaskOptions, OpenClawTaskOptions, HealthStatus, SessionListOptions, SessionDetailOptions, SessionEntry, SessionListResult, SessionDetailResult, TokenUsage, } from './core/AgentAdapter.js';
21
+ export type { AgentAdapter, AdapterEvent, EngineProgressEvent, AdapterMeta, AgentTaskContext, ClaudeTaskOptions, HermesTaskOptions, OpenClawTaskOptions, HealthStatus, SessionListOptions, SessionDetailOptions, SessionEntry, SessionListResult, SessionDetailResult, TokenUsage, } from './core/AgentAdapter.js';
21
22
  export { LOCAL_FILE_TOOLS, isLocalTool } from './core/AgentAdapter.js';
23
+ export { adapterCapabilityProfile } from './core/AgentAdapter.js';
22
24
  export { AdapterRegistry, getGlobalRegistry } from './core/AdapterRegistry.js';
23
25
  export type { AdapterConstructor } from './core/AdapterRegistry.js';
24
26
  export { detectRuntimes } from './core/RuntimeDetector.js';
25
27
  export type { Runtime } from './core/RuntimeDetector.js';
26
- export { loadBridgeConfig, loadBridgeConfigFromJsonFile, loadBridgeConfigFromJsonObject, DEFAULT_BRIDGE_CONFIG_BASENAME, } from './runtime/bridgeConfigLoader.js';
27
- export type { BridgeConfigFileJson, BridgeRuntimeFileJson } from './runtime/bridgeConfigTypes.js';
28
- export { BRIDGE_CONFIG_FILE_VERSION } from './runtime/bridgeConfigTypes.js';
29
- export type { BridgeConfig, RuntimeConfig } from './runtime/DualRuntimeBridge.js';
30
- export { isNonRecoverableExternalAgentAuthError, nextReconnectDelayMs, } from './runtime/bridgeReconnectPolicy.js';
31
- export { probeLocalHttpEndpoint, startLocalRuntimeAvailabilityMonitor, } from './runtime/localRuntimeAvailabilityMonitor.js';
32
- export type { LocalRuntimeKindBridge } from './runtime/localRuntimeAvailabilityMonitor.js';
33
- export { getBridgeHomeDir, getBridgeConfigPath, ensureBridgeHomeLayout, DEFAULT_BRIDGE_DIR_NAME, BRIDGE_CONFIG_FILENAME, } from './runtime/bridgeHome.js';
28
+ export { runClaudeRuntimeDoctor } from './core/ClaudeRuntimeDoctor.js';
29
+ export type { ClaudeRuntimeDoctorOptions, ClaudeRuntimeDoctorResult, } from './core/ClaudeRuntimeDoctor.js';
34
30
  export { spawnHelper } from './utils/spawnHelper.js';
35
31
  export type { SpawnHelperOptions, SpawnResult } from './utils/spawnHelper.js';
36
32
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AACtE,YAAY,EAAE,2BAA2B,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,gCAAgC,CAAC;AAE1G,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AACtD,YAAY,EACV,mBAAmB,EACnB,gBAAgB,EAChB,cAAc,EACd,eAAe,GAChB,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AACtF,YAAY,EACV,iBAAiB,EACjB,mBAAmB,EACnB,kBAAkB,EAClB,iBAAiB,EACjB,gBAAgB,EAChB,gBAAgB,GACjB,MAAM,yCAAyC,CAAC;AAEjD,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,YAAY,EAAE,mBAAmB,EAAE,MAAM,kCAAkC,CAAC;AAE5E,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AACzE,YAAY,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAErF,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,YAAY,EAAE,oBAAoB,EAAE,MAAM,oCAAoC,CAAC;AAE/E,OAAO,EAEL,OAAO,EACP,MAAM,EACN,WAAW,EAEX,aAAa,EACb,aAAa,EACb,WAAW,EACX,UAAU,EACV,aAAa,EACb,UAAU,EAEV,UAAU,EACV,OAAO,EACP,SAAS,EACT,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAE7B,YAAY,EAEV,WAAW,EACX,YAAY,EACZ,SAAS,EACT,kBAAkB,IAAI,YAAY,EAElC,cAAc,EACd,uBAAuB,EACvB,sBAAsB,EACtB,+BAA+B,EAE/B,WAAW,EACX,eAAe,EACf,gBAAgB,EAChB,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,iBAAiB,EACjB,oBAAoB,EACpB,iBAAiB,EAEjB,iBAAiB,EACjB,0BAA0B,EAC1B,gBAAgB,EAChB,yBAAyB,EAEzB,0BAA0B,EAE1B,cAAc,EACd,gBAAgB,EAEhB,YAAY,GACb,MAAM,qBAAqB,CAAC;AAG7B,YAAY,EACV,YAAY,EACZ,YAAY,EACZ,mBAAmB,EACnB,WAAW,EACX,gBAAgB,EAChB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,YAAY,EACZ,kBAAkB,EAClB,oBAAoB,EACpB,YAAY,EACZ,iBAAiB,EACjB,mBAAmB,EACnB,UAAU,GACX,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAGlE,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC/E,YAAY,EAAE,kBAAkB,EAAE,MAAM,2BAA2B,CAAC;AAGpE,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAC3D,YAAY,EAAE,OAAO,EAAE,MAAM,2BAA2B,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AACvE,YAAY,EACV,0BAA0B,EAC1B,yBAAyB,GAC1B,MAAM,+BAA+B,CAAC;AAGvC,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,YAAY,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC"}
package/dist/index.js CHANGED
@@ -7,8 +7,8 @@ export { WinMatrixAgentClient } from './core/WinMatrixAgentClient.js';
7
7
  export { DaemonClient } from './core/DaemonClient.js';
8
8
  export { ClaudeAdapter } from './adapters/claude/ClaudeAdapter.js';
9
9
  export { parseClaudeLine, splitLines } from './adapters/claude/ClaudeStreamParser.js';
10
+ export { CodexAdapter } from './adapters/codex/CodexAdapter.js';
10
11
  export { OpenClawAdapter } from './adapters/openclaw/OpenClawAdapter.js';
11
- export { unwrapOpenClawPayloads } from './adapters/openclaw/unwrapOpenClawPayloads.js';
12
12
  export { HermesAdapter } from './adapters/hermes/HermesAdapter.js';
13
13
  export {
14
14
  // Constants
@@ -18,16 +18,12 @@ nextRequestId, createRequest, createEvent, parseFrame, parseResponse, parseEvent
18
18
  // Type guards
19
19
  isResponse, isEvent, isRequest, isTaskAssignRequest, isTaskCancelEvent, isTaskResumeEvent, isSessionListRequest, isSessionGetRequest, } from '@winmatrix/protocol';
20
20
  export { LOCAL_FILE_TOOLS, isLocalTool } from './core/AgentAdapter.js';
21
+ export { adapterCapabilityProfile } from './core/AgentAdapter.js';
21
22
  // AdapterRegistry
22
23
  export { AdapterRegistry, getGlobalRegistry } from './core/AdapterRegistry.js';
23
24
  // Runtime 检测
24
25
  export { detectRuntimes } from './core/RuntimeDetector.js';
25
- // Dual Runtime Bridge JSON configuration(用户目录 ~/.winmatrix-bridge)
26
- export { loadBridgeConfig, loadBridgeConfigFromJsonFile, loadBridgeConfigFromJsonObject, DEFAULT_BRIDGE_CONFIG_BASENAME, } from './runtime/bridgeConfigLoader.js';
27
- export { BRIDGE_CONFIG_FILE_VERSION } from './runtime/bridgeConfigTypes.js';
28
- export { isNonRecoverableExternalAgentAuthError, nextReconnectDelayMs, } from './runtime/bridgeReconnectPolicy.js';
29
- export { probeLocalHttpEndpoint, startLocalRuntimeAvailabilityMonitor, } from './runtime/localRuntimeAvailabilityMonitor.js';
30
- export { getBridgeHomeDir, getBridgeConfigPath, ensureBridgeHomeLayout, DEFAULT_BRIDGE_DIR_NAME, BRIDGE_CONFIG_FILENAME, } from './runtime/bridgeHome.js';
26
+ export { runClaudeRuntimeDoctor } from './core/ClaudeRuntimeDoctor.js';
31
27
  // Spawn helper
32
28
  export { spawnHelper } from './utils/spawnHelper.js';
33
29
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAGtE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAQtD,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AAUtF,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAEzE,OAAO,EAAE,sBAAsB,EAAE,MAAM,+CAA+C,CAAC;AAEvF,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAGnE,OAAO;AACL,YAAY;AACZ,OAAO,EACP,MAAM,EACN,WAAW;AACX,UAAU;AACV,aAAa,EACb,aAAa,EACb,WAAW,EACX,UAAU,EACV,aAAa,EACb,UAAU;AACV,cAAc;AACd,UAAU,EACV,OAAO,EACP,SAAS,EACT,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAuD7B,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AAEvE,kBAAkB;AAClB,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAG/E,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAG3D,qEAAqE;AACrE,OAAO,EACL,gBAAgB,EAChB,4BAA4B,EAC5B,8BAA8B,EAC9B,8BAA8B,GAC/B,MAAM,iCAAiC,CAAC;AAEzC,OAAO,EAAE,0BAA0B,EAAE,MAAM,gCAAgC,CAAC;AAE5E,OAAO,EACL,sCAAsC,EACtC,oBAAoB,GACrB,MAAM,oCAAoC,CAAC;AAC5C,OAAO,EACL,sBAAsB,EACtB,oCAAoC,GACrC,MAAM,8CAA8C,CAAC;AAEtD,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,sBAAsB,EACtB,uBAAuB,EACvB,sBAAsB,GACvB,MAAM,yBAAyB,CAAC;AAEjC,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAGtE,OAAO,EAAE,YAAY,EAAE,MAAM,wBAAwB,CAAC;AAQtD,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AACnE,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,yCAAyC,CAAC;AAUtF,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAGhE,OAAO,EAAE,eAAe,EAAE,MAAM,wCAAwC,CAAC;AAGzE,OAAO,EAAE,aAAa,EAAE,MAAM,oCAAoC,CAAC;AAGnE,OAAO;AACL,YAAY;AACZ,OAAO,EACP,MAAM,EACN,WAAW;AACX,UAAU;AACV,aAAa,EACb,aAAa,EACb,WAAW,EACX,UAAU,EACV,aAAa,EACb,UAAU;AACV,cAAc;AACd,UAAU,EACV,OAAO,EACP,SAAS,EACT,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,qBAAqB,CAAC;AAwD7B,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,wBAAwB,CAAC;AAElE,kBAAkB;AAClB,OAAO,EAAE,eAAe,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAG/E,aAAa;AACb,OAAO,EAAE,cAAc,EAAE,MAAM,2BAA2B,CAAC;AAE3D,OAAO,EAAE,sBAAsB,EAAE,MAAM,+BAA+B,CAAC;AAMvE,eAAe;AACf,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { AdapterEvent, AgentTaskContext } from '../core/AgentAdapter.js';
2
+ export declare function isLikelyResumeSessionError(message: string): boolean;
3
+ export declare function executeWithResumeFallback(task: AgentTaskContext, signal: AbortSignal | undefined, executeOnce: (task: AgentTaskContext, signal?: AbortSignal) => AsyncGenerator<AdapterEvent>): AsyncGenerator<AdapterEvent>;
4
+ //# sourceMappingURL=resumeFallback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resumeFallback.d.ts","sourceRoot":"","sources":["../../src/utils/resumeFallback.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAuB9E,wBAAgB,0BAA0B,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAEnE;AAED,wBAAuB,yBAAyB,CAC9C,IAAI,EAAE,gBAAgB,EACtB,MAAM,EAAE,WAAW,GAAG,SAAS,EAC/B,WAAW,EAAE,CAAC,IAAI,EAAE,gBAAgB,EAAE,MAAM,CAAC,EAAE,WAAW,KAAK,cAAc,CAAC,YAAY,CAAC,GAC1F,cAAc,CAAC,YAAY,CAAC,CAkC9B"}
@@ -0,0 +1,55 @@
1
+ const RESUME_SESSION_ERROR_PATTERNS = [
2
+ /session .*not found/i,
3
+ /session .*not exist/i,
4
+ /session .*does not exist/i,
5
+ /session .*expired/i,
6
+ /session .*invalid/i,
7
+ /invalid .*session/i,
8
+ /unknown .*session/i,
9
+ /missing .*session/i,
10
+ /resume .*not found/i,
11
+ /resume .*expired/i,
12
+ /resume .*invalid/i,
13
+ /thread .*not found/i,
14
+ /thread .*not exist/i,
15
+ /thread .*does not exist/i,
16
+ /thread .*expired/i,
17
+ /thread .*invalid/i,
18
+ /no conversation/i,
19
+ /conversation .*not found/i,
20
+ ];
21
+ export function isLikelyResumeSessionError(message) {
22
+ return RESUME_SESSION_ERROR_PATTERNS.some((pattern) => pattern.test(message));
23
+ }
24
+ export async function* executeWithResumeFallback(task, signal, executeOnce) {
25
+ if (!(task.resumeSession && task.sessionId)) {
26
+ yield* executeOnce(task, signal);
27
+ return;
28
+ }
29
+ const bufferedEvents = [];
30
+ for await (const event of executeOnce(task, signal)) {
31
+ if (event.type === 'error') {
32
+ if (isLikelyResumeSessionError(event.message)) {
33
+ yield* executeOnce({ ...task, sessionId: undefined, resumeSession: false }, signal);
34
+ return;
35
+ }
36
+ yield* bufferedEvents;
37
+ yield event;
38
+ return;
39
+ }
40
+ if (event.type === 'result') {
41
+ // resume 返回空 content → session 可能过期/无效(claude CLI --resume 无效 session 返回空 result 不报错)
42
+ const isEmptyResumeResult = !(event.content || '').trim();
43
+ if (isEmptyResumeResult || isLikelyResumeSessionError(event.content)) {
44
+ yield* executeOnce({ ...task, sessionId: undefined, resumeSession: false }, signal);
45
+ return;
46
+ }
47
+ yield* bufferedEvents;
48
+ yield event;
49
+ return;
50
+ }
51
+ bufferedEvents.push(event);
52
+ }
53
+ yield* bufferedEvents;
54
+ }
55
+ //# sourceMappingURL=resumeFallback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"resumeFallback.js","sourceRoot":"","sources":["../../src/utils/resumeFallback.ts"],"names":[],"mappings":"AAEA,MAAM,6BAA6B,GAAG;IACpC,sBAAsB;IACtB,sBAAsB;IACtB,2BAA2B;IAC3B,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,oBAAoB;IACpB,qBAAqB;IACrB,mBAAmB;IACnB,mBAAmB;IACnB,qBAAqB;IACrB,qBAAqB;IACrB,0BAA0B;IAC1B,mBAAmB;IACnB,mBAAmB;IACnB,kBAAkB;IAClB,2BAA2B;CAC5B,CAAC;AAEF,MAAM,UAAU,0BAA0B,CAAC,OAAe;IACxD,OAAO,6BAA6B,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC;AAChF,CAAC;AAED,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,yBAAyB,CAC9C,IAAsB,EACtB,MAA+B,EAC/B,WAA2F;IAE3F,IAAI,CAAC,CAAC,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5C,KAAK,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QACjC,OAAO;IACT,CAAC;IAED,MAAM,cAAc,GAAmB,EAAE,CAAC;IAC1C,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,CAAC;QACpD,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;YAC3B,IAAI,0BAA0B,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gBAC9C,KAAK,CAAC,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;gBACpF,OAAO;YACT,CAAC;YACD,KAAK,CAAC,CAAC,cAAc,CAAC;YACtB,MAAM,KAAK,CAAC;YACZ,OAAO;QACT,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAC5B,sFAAsF;YACtF,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC1D,IAAI,mBAAmB,IAAI,0BAA0B,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC;gBACrE,KAAK,CAAC,CAAC,WAAW,CAAC,EAAE,GAAG,IAAI,EAAE,SAAS,EAAE,SAAS,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;gBACpF,OAAO;YACT,CAAC;YACD,KAAK,CAAC,CAAC,cAAc,CAAC;YACtB,MAAM,KAAK,CAAC;YACZ,OAAO;QACT,CAAC;QAED,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC;IAED,KAAK,CAAC,CAAC,cAAc,CAAC;AACxB,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@winmatrix/agent-sdk",
3
- "version": "0.1.6",
3
+ "version": "1.0.4",
4
4
  "type": "module",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",
@@ -30,6 +30,11 @@
30
30
  "import": "./dist/adapters/hermes/HermesAdapter.js",
31
31
  "default": "./dist/adapters/hermes/HermesAdapter.js"
32
32
  },
33
+ "./adapters/codex": {
34
+ "types": "./dist/adapters/codex/CodexAdapter.d.ts",
35
+ "import": "./dist/adapters/codex/CodexAdapter.js",
36
+ "default": "./dist/adapters/codex/CodexAdapter.js"
37
+ },
33
38
  "./adapters/openclaw": {
34
39
  "types": "./dist/adapters/openclaw/OpenClawAdapter.d.ts",
35
40
  "import": "./dist/adapters/openclaw/OpenClawAdapter.js",
@@ -54,7 +59,7 @@
54
59
  "node": ">=18"
55
60
  },
56
61
  "dependencies": {
57
- "@winmatrix/protocol": "^1.0.2",
62
+ "@winmatrix/protocol": "^1.0.4",
58
63
  "ws": "^8.16.0"
59
64
  },
60
65
  "peerDependencies": {
@@ -1,6 +0,0 @@
1
- /**
2
- * OpenClaw `--json` returns `{ payloads: [{ text: "..." }], meta: {...} }`.
3
- * Extract joined text; for Hermes or non-envelope JSON, returns the original string unchanged.
4
- */
5
- export declare function unwrapOpenClawPayloads(text: string): string;
6
- //# sourceMappingURL=unwrapOpenClawPayloads.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"unwrapOpenClawPayloads.d.ts","sourceRoot":"","sources":["../../../src/adapters/openclaw/unwrapOpenClawPayloads.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAkB3D"}
@@ -1,24 +0,0 @@
1
- /**
2
- * OpenClaw `--json` returns `{ payloads: [{ text: "..." }], meta: {...} }`.
3
- * Extract joined text; for Hermes or non-envelope JSON, returns the original string unchanged.
4
- */
5
- export function unwrapOpenClawPayloads(text) {
6
- try {
7
- const parsed = JSON.parse(text);
8
- if (typeof parsed === 'object' && parsed !== null
9
- && 'payloads' in parsed
10
- && Array.isArray(parsed.payloads)) {
11
- const payloads = parsed.payloads;
12
- if (payloads.length > 0) {
13
- const texts = payloads.map((p) => p.text ?? '').filter(Boolean);
14
- if (texts.length > 0)
15
- return texts.join('\n');
16
- }
17
- }
18
- }
19
- catch {
20
- // Not JSON — return raw text (hermes -Q output, etc.)
21
- }
22
- return text;
23
- }
24
- //# sourceMappingURL=unwrapOpenClawPayloads.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"unwrapOpenClawPayloads.js","sourceRoot":"","sources":["../../../src/adapters/openclaw/unwrapOpenClawPayloads.ts"],"names":[],"mappings":"AAAA;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,IAAY;IACjD,IAAI,CAAC;QACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;QAC3C,IACE,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI;eAC1C,UAAU,IAAI,MAAM;eACpB,KAAK,CAAC,OAAO,CAAE,MAAiC,CAAC,QAAQ,CAAC,EAC7D,CAAC;YACD,MAAM,QAAQ,GAAI,MAAkD,CAAC,QAAS,CAAC;YAC/E,IAAI,QAAQ,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBACxB,MAAM,KAAK,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;gBAChE,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC;oBAAE,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAChD,CAAC;QACH,CAAC;IACH,CAAC;IAAC,MAAM,CAAC;QACP,sDAAsD;IACxD,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
@@ -1,38 +0,0 @@
1
- /**
2
- * Dual runtime bridge for WinMatrix Agent SDK.
3
- *
4
- * Connects local Hermes/OpenClaw runtimes to WinMatrix using a shared
5
- * WebSocket endpoint, while each runtime keeps its own registration identity.
6
- */
7
- type RuntimeKind = 'hermes' | 'openclaw';
8
- export type RuntimeConfig = {
9
- kind: RuntimeKind;
10
- endpoint?: string;
11
- endpointToken?: string;
12
- command?: string;
13
- commandTimeoutMs?: number;
14
- maxConcurrentTasks: number;
15
- agentId: string;
16
- apiKey: string;
17
- agentName: string;
18
- agentType: string;
19
- /** WinMatrix MCP Bridge URL(统一传递给所有适酝器类型) */
20
- mcpBridgeUrl?: string;
21
- /** MCP Bridge 认话 token */
22
- mcpApiKey?: string;
23
- };
24
- export type BridgeConfig = {
25
- wsUrl: string;
26
- runtimes: RuntimeConfig[];
27
- };
28
- export type BridgeHandle = {
29
- stop: () => void;
30
- states: () => Array<{
31
- runtime: RuntimeKind;
32
- state: string;
33
- }>;
34
- };
35
- export declare function validateBridgeRuntimeList(runtimes: RuntimeConfig[]): void;
36
- export declare function startDualRuntimeBridge(config: BridgeConfig): Promise<BridgeHandle>;
37
- export {};
38
- //# sourceMappingURL=DualRuntimeBridge.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DualRuntimeBridge.d.ts","sourceRoot":"","sources":["../../src/runtime/DualRuntimeBridge.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAiBH,KAAK,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;AAsEzC,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,WAAW,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,kBAAkB,EAAE,MAAM,CAAC;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,6CAA6C;IAC7C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,0BAA0B;IAC1B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,IAAI,EAAE,MAAM,IAAI,CAAC;IACjB,MAAM,EAAE,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,WAAW,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC9D,CAAC;AA0DF,wBAAgB,yBAAyB,CAAC,QAAQ,EAAE,aAAa,EAAE,GAAG,IAAI,CAazE;AAED,wBAAsB,sBAAsB,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC,CAiOxF"}
@@ -1,321 +0,0 @@
1
- /**
2
- * Dual runtime bridge for WinMatrix Agent SDK.
3
- *
4
- * Connects local Hermes/OpenClaw runtimes to WinMatrix using a shared
5
- * WebSocket endpoint, while each runtime keeps its own registration identity.
6
- */
7
- import { HermesAdapter } from '../adapters/hermes/HermesAdapter.js';
8
- import { OpenClawAdapter } from '../adapters/openclaw/OpenClawAdapter.js';
9
- import { unwrapOpenClawPayloads } from '../adapters/openclaw/unwrapOpenClawPayloads.js';
10
- import { WinMatrixAgentClient } from '../core/WinMatrixAgentClient.js';
11
- import { exec } from 'node:child_process';
12
- import { promisify } from 'node:util';
13
- import { ensureBridgeHomeLayout, getBridgeHomeDir, logPendingTasksRecoveryHint } from './bridgeHome.js';
14
- import { recordTaskFinished, recordTaskStarted } from './bridgeTaskJournal.js';
15
- import { isNonRecoverableExternalAgentAuthError, nextReconnectDelayMs, } from './bridgeReconnectPolicy.js';
16
- import { startLocalRuntimeAvailabilityMonitor } from './localRuntimeAvailabilityMonitor.js';
17
- function clearBridgeReconnectTimer(m) {
18
- if (m.reconnectTimer) {
19
- clearTimeout(m.reconnectTimer);
20
- m.reconnectTimer = null;
21
- }
22
- }
23
- /**
24
- * Blocking until TCP + register succeeds, or a non-recoverable auth error propagates out.
25
- */
26
- async function waitUntilBridgeRegistered(m) {
27
- let delayMs = 1000;
28
- for (;;) {
29
- try {
30
- await m.client.connect();
31
- return;
32
- }
33
- catch (err) {
34
- if (isNonRecoverableExternalAgentAuthError(err)) {
35
- throw err;
36
- }
37
- const msg = err instanceof Error ? err.message : String(err);
38
- console.warn(`[bridge:${m.runtime}] connect failed (${msg}), retry in ${delayMs}ms (recoverable transport/server)`);
39
- await new Promise((resolve) => setTimeout(resolve, delayMs));
40
- delayMs = nextReconnectDelayMs(delayMs);
41
- }
42
- }
43
- }
44
- function scheduleManagedBridgeReconnect(m) {
45
- if (m.stopped)
46
- return;
47
- if (m.reconnectTimer)
48
- return;
49
- const delay = m.reconnectDelayMs;
50
- m.reconnectDelayMs = nextReconnectDelayMs(m.reconnectDelayMs);
51
- m.reconnectTimer = setTimeout(() => {
52
- m.reconnectTimer = null;
53
- void (async () => {
54
- try {
55
- await m.client.connect();
56
- m.reconnectDelayMs = 1000;
57
- console.log(`[bridge:${m.runtime}] reconnected`);
58
- }
59
- catch (err) {
60
- if (isNonRecoverableExternalAgentAuthError(err)) {
61
- console.error(`[bridge:${m.runtime}] reconnect stopped: credentials/registration rejected by server (${err instanceof Error ? err.message : String(err)})`);
62
- return;
63
- }
64
- const msg = err instanceof Error ? err.message : String(err);
65
- console.warn(`[bridge:${m.runtime}] reconnect failed: ${msg}, will retry`);
66
- scheduleManagedBridgeReconnect(m);
67
- }
68
- })();
69
- }, delay);
70
- }
71
- function maskSecret(value) {
72
- if (value.length <= 8)
73
- return '****';
74
- return `${value.slice(0, 4)}***${value.slice(-4)}`;
75
- }
76
- const execAsync = promisify(exec);
77
- function shellEscapeSingleQuoted(value) {
78
- return `'${value.replace(/'/g, `'\\''`)}'`;
79
- }
80
- async function runCommandTask(commandTemplate, input, timeoutMs, context) {
81
- const hasPlaceholder = commandTemplate.includes('{input}');
82
- const command = hasPlaceholder
83
- ? commandTemplate.replaceAll('{input}', shellEscapeSingleQuoted(input))
84
- : commandTemplate;
85
- const { stdout, stderr } = await execAsync(command, {
86
- timeout: timeoutMs,
87
- env: {
88
- ...process.env,
89
- WINMATRIX_TASK_INPUT: input,
90
- ...(context?.projectId ? { WINMATRIX_PROJECT_ID: context.projectId } : {}),
91
- ...(context?.projectName ? { WINMATRIX_PROJECT_NAME: context.projectName } : {}),
92
- ...(context?.projectCode ? { WINMATRIX_PROJECT_CODE: context.projectCode } : {}),
93
- },
94
- maxBuffer: 1024 * 1024 * 8,
95
- });
96
- const out = (stdout ?? '').trim();
97
- const err = (stderr ?? '').trim();
98
- if (!out && err)
99
- return err;
100
- return out || '{}';
101
- }
102
- function summarizeOutput(value) {
103
- return `len=${value.length}`;
104
- }
105
- function sanitizeEndpoint(url) {
106
- try {
107
- const parsed = new URL(url);
108
- return parsed.origin;
109
- }
110
- catch {
111
- return '<invalid-url>';
112
- }
113
- }
114
- function sanitizeCommand(cmd) {
115
- const binary = cmd.split(/\s+/)[0] ?? '';
116
- return binary.length > 40 ? `${binary.slice(0, 37)}...` : binary;
117
- }
118
- export function validateBridgeRuntimeList(runtimes) {
119
- if (runtimes.length === 0) {
120
- throw new Error('No runtime enabled. Set at least one of hermes / openclaw in bridge.config.json (or disable flags).');
121
- }
122
- for (const runtime of runtimes) {
123
- if (!runtime.command && !runtime.endpoint) {
124
- throw new Error(`Runtime ${runtime.kind} requires either command or endpoint in bridge.config.json.`);
125
- }
126
- }
127
- }
128
- export async function startDualRuntimeBridge(config) {
129
- ensureBridgeHomeLayout();
130
- console.log(`[bridge] user data dir=${getBridgeHomeDir()}`);
131
- logPendingTasksRecoveryHint();
132
- const managed = [];
133
- for (const runtime of config.runtimes) {
134
- const client = new WinMatrixAgentClient({
135
- url: config.wsUrl,
136
- agentId: runtime.agentId,
137
- apiKey: runtime.apiKey,
138
- name: runtime.agentName,
139
- agentType: runtime.agentType,
140
- capabilities: {
141
- streaming: true,
142
- toolCall: true,
143
- cancellation: true,
144
- maxConcurrentTasks: runtime.maxConcurrentTasks,
145
- },
146
- bridgeHooks: {
147
- onTaskAssigned: (task) => recordTaskStarted(runtime.kind, task),
148
- onTaskCompleted: (taskId) => recordTaskFinished(runtime.kind, taskId, 'complete'),
149
- onTaskFailed: (taskId) => recordTaskFinished(runtime.kind, taskId, 'fail'),
150
- },
151
- /** Reconnect/backoff lives in bridge (below), not in WinMatrixAgentClient. */
152
- autoReconnect: false,
153
- });
154
- const m = {
155
- runtime: runtime.kind,
156
- client,
157
- reconnectTimer: null,
158
- reconnectDelayMs: 1000,
159
- stopped: false,
160
- };
161
- client.on('disconnect', () => {
162
- console.log(`[bridge:${runtime.kind}] disconnected`);
163
- if (m.stopped)
164
- return;
165
- /* Fresh backoff sequence after an unexpected socket drop �?bridge owns retries. */
166
- m.reconnectDelayMs = 1000;
167
- scheduleManagedBridgeReconnect(m);
168
- });
169
- client.on('error', (err) => {
170
- const msg = err instanceof Error ? err.message : String(err);
171
- console.error(`[bridge:${runtime.kind}] error: ${msg}`);
172
- });
173
- if (runtime.command) {
174
- client.on('task', (async (payload) => {
175
- const task = payload;
176
- const startedAt = Date.now();
177
- // 命令模弝下将 systemPrompt 拼接�?input 剝方
178
- const effectiveInput = task.systemPrompt
179
- ? `${task.systemPrompt}\n\n---\n\n${task.input}`
180
- : task.input;
181
- console.log(`[bridge:${runtime.kind}] task start taskId=${task.taskId} inputLength=${effectiveInput.length} timeoutMs=${runtime.commandTimeoutMs ?? 180000}`);
182
- try {
183
- const text = await runCommandTask(runtime.command, effectiveInput, runtime.commandTimeoutMs ?? 180000, task.context);
184
- console.log(`[bridge:${runtime.kind}] runtime output taskId=${task.taskId} length=${text.length} summary=${summarizeOutput(text)}`);
185
- const unwrapped = unwrapOpenClawPayloads(text);
186
- let result = unwrapped;
187
- try {
188
- result = JSON.parse(unwrapped);
189
- }
190
- catch {
191
- // Keep plain text output.
192
- }
193
- client.completeTask(task.taskId, result);
194
- console.log(`[bridge:${runtime.kind}] task complete taskId=${task.taskId} mode=runtime durationMs=${Date.now() - startedAt}`);
195
- }
196
- catch (err) {
197
- const msg = err instanceof Error ? err.message : String(err);
198
- client.failTask(task.taskId, msg);
199
- console.error(`[bridge:${runtime.kind}] task failed taskId=${task.taskId} durationMs=${Date.now() - startedAt} error=${msg}`);
200
- }
201
- }));
202
- }
203
- else {
204
- // New AgentAdapter-based execution (native protocol)
205
- const adapter = runtime.kind === 'hermes'
206
- ? new HermesAdapter({
207
- mcpBridgeUrl: runtime.mcpBridgeUrl ?? runtime.endpoint,
208
- mcpApiKey: runtime.mcpApiKey ?? runtime.endpointToken,
209
- })
210
- : new OpenClawAdapter({
211
- token: runtime.endpointToken,
212
- mcpBridgeUrl: runtime.mcpBridgeUrl,
213
- mcpApiKey: runtime.mcpApiKey ?? runtime.endpointToken,
214
- });
215
- // Session query handler: route server RPC to adapter
216
- client.setSessionQueryHandler(async (method, params) => {
217
- if (method === 'session.list') {
218
- return adapter.listSessions?.(params) ?? { sessions: [], total: 0 };
219
- }
220
- if (method === 'session.get') {
221
- const p = params;
222
- return (adapter.getSession?.(p.sessionId, p) ?? {
223
- session: { id: p.sessionId, summary: 'N/A', createdAt: '', lastActivityAt: '' },
224
- messageCount: 0,
225
- truncated: false,
226
- userPrompts: [],
227
- assistantText: '',
228
- lastAssistantText: '',
229
- });
230
- }
231
- throw new Error(`Unsupported session method: ${method}`);
232
- });
233
- client.on('task', (async (payload) => {
234
- const task = payload;
235
- const startedAt = Date.now();
236
- console.log(`[bridge:${runtime.kind}] task start taskId=${task.taskId} inputLength=${task.input.length}`);
237
- try {
238
- for await (const event of adapter.execute({
239
- taskId: task.taskId,
240
- input: task.input,
241
- workDir: undefined,
242
- systemPrompt: task.systemPrompt,
243
- })) {
244
- if (m.stopped)
245
- break;
246
- if (event.type === 'thinking') {
247
- client.sendFrame({
248
- type: 'event',
249
- event: 'task.delta',
250
- payload: {
251
- taskId: task.taskId,
252
- content: event.content,
253
- meta: { stream: 'thinking' },
254
- },
255
- });
256
- continue;
257
- }
258
- switch (event.type) {
259
- case 'delta':
260
- client.streamDelta(task.taskId, event.content);
261
- break;
262
- case 'tool_call':
263
- try {
264
- const toolResult = await client.callTool(event.name, event.args, task.taskId);
265
- // Tool result handled by adapter via MCP bridge
266
- void toolResult;
267
- }
268
- catch (err) {
269
- console.error(`[bridge:${runtime.kind}] tool call failed tool=${event.name} error=${err instanceof Error ? err.message : String(err)}`);
270
- }
271
- break;
272
- case 'result':
273
- client.completeTask(task.taskId, event.content, event.sessionId, event.usage);
274
- console.log(`[bridge:${runtime.kind}] task complete taskId=${task.taskId} sessionId=${event.sessionId ?? '-'} durationMs=${Date.now() - startedAt}`);
275
- return;
276
- case 'error':
277
- client.failTask(task.taskId, event.message);
278
- console.error(`[bridge:${runtime.kind}] task error taskId=${task.taskId} error=${event.message}`);
279
- return;
280
- }
281
- }
282
- }
283
- catch (err) {
284
- const msg = err instanceof Error ? err.message : String(err);
285
- client.failTask(task.taskId, msg);
286
- console.error(`[bridge:${runtime.kind}] task failed taskId=${task.taskId} durationMs=${Date.now() - startedAt} error=${msg}`);
287
- }
288
- }));
289
- }
290
- console.log(`[bridge:${runtime.kind}] connecting ws=${sanitizeEndpoint(config.wsUrl)} agentId=${runtime.agentId} apiKey=${maskSecret(runtime.apiKey)} mode=${runtime.command ? 'command' : 'http'} maxConcurrentTasks=${runtime.maxConcurrentTasks} target=${runtime.command ? sanitizeCommand(runtime.command) : (runtime.endpoint ? sanitizeEndpoint(runtime.endpoint) : '(none)')}`);
291
- managed.push(m);
292
- await waitUntilBridgeRegistered(m);
293
- console.log(`[bridge:${runtime.kind}] registered state=${client.getState()}`);
294
- m.disposeLocalRuntimeAvailability = startLocalRuntimeAvailabilityMonitor({
295
- client,
296
- runtimeKind: runtime.kind,
297
- mode: runtime.command ? 'command' : 'endpoint',
298
- endpointUrl: runtime.endpoint,
299
- isStopped: () => m.stopped,
300
- });
301
- }
302
- const heartbeat = setInterval(() => {
303
- const line = managed
304
- .map((item) => `${item.runtime}:${item.client.getState()}`)
305
- .join(' ');
306
- console.log(`[bridge] states ${line}`);
307
- }, 20_000);
308
- return {
309
- stop: () => {
310
- clearInterval(heartbeat);
311
- for (const item of managed) {
312
- item.stopped = true;
313
- clearBridgeReconnectTimer(item);
314
- item.disposeLocalRuntimeAvailability?.();
315
- item.client.disconnect();
316
- }
317
- },
318
- states: () => managed.map((item) => ({ runtime: item.runtime, state: item.client.getState() })),
319
- };
320
- }
321
- //# sourceMappingURL=DualRuntimeBridge.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"DualRuntimeBridge.js","sourceRoot":"","sources":["../../src/runtime/DualRuntimeBridge.ts"],"names":[],"mappings":"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"}
@@ -1,14 +0,0 @@
1
- import type { BridgeConfig } from './DualRuntimeBridge.js';
2
- export declare const DEFAULT_BRIDGE_CONFIG_BASENAME = "bridge.config.json";
3
- /** 解析任意 JSON 对象为运行时配置(供测试或外部嵌入调用)。 */
4
- export declare function loadBridgeConfigFromJsonObject(data: unknown): BridgeConfig;
5
- export declare function loadBridgeConfigFromJsonFile(absPath: string): BridgeConfig;
6
- /**
7
- * 解析顺序:
8
- * 1. 若设置了 `WINMATRIX_BRIDGE_CONFIG`,仅从该路径读 JSON(文件必须存在);
9
- * 2. 否则读取用户目录 `{WINMATRIX_BRIDGE_HOME or ~/.winmatrix-bridge}/bridge.config.json`。
10
- *
11
- * 不再从 `.env` 或进程环境变量读取桥接配置。
12
- */
13
- export declare function loadBridgeConfig(): BridgeConfig;
14
- //# sourceMappingURL=bridgeConfigLoader.d.ts.map