agents-bridge 0.1.1 → 0.1.2

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 (64) hide show
  1. package/README.md +12 -12
  2. package/dist/agents/agent-resolver.d.ts +12 -0
  3. package/dist/agents/agent-resolver.js +1 -0
  4. package/dist/agents/agent-resolver.js.map +1 -1
  5. package/dist/agents/agent-router.d.ts +8 -0
  6. package/dist/agents/cli-output.d.ts +35 -0
  7. package/dist/agents/cli-output.d.ts.map +1 -0
  8. package/dist/agents/cli-output.js +277 -0
  9. package/dist/agents/cli-output.js.map +1 -0
  10. package/dist/agents/cli-output.test.d.ts +2 -0
  11. package/dist/agents/cli-output.test.d.ts.map +1 -0
  12. package/dist/agents/cli-output.test.js +56 -0
  13. package/dist/agents/cli-output.test.js.map +1 -0
  14. package/dist/agents/cli-runner.d.ts +23 -0
  15. package/dist/agents/cli-runner.d.ts.map +1 -1
  16. package/dist/agents/cli-runner.js +196 -157
  17. package/dist/agents/cli-runner.js.map +1 -1
  18. package/dist/agents/cli-runner.test.d.ts +2 -0
  19. package/dist/agents/cli-runner.test.d.ts.map +1 -0
  20. package/dist/agents/cli-runner.test.js +119 -0
  21. package/dist/agents/cli-runner.test.js.map +1 -0
  22. package/dist/agents/cli-session-store.d.ts +47 -0
  23. package/dist/agents/cli-session-store.d.ts.map +1 -1
  24. package/dist/agents/cli-session-store.js +29 -0
  25. package/dist/agents/cli-session-store.js.map +1 -1
  26. package/dist/agents/cli-session-store.test.d.ts +2 -0
  27. package/dist/agents/cli-session-store.test.d.ts.map +1 -0
  28. package/dist/agents/cli-session-store.test.js +30 -0
  29. package/dist/agents/cli-session-store.test.js.map +1 -0
  30. package/dist/agents/codex-app-server-runtime.d.ts +72 -0
  31. package/dist/agents/codex-app-server-runtime.d.ts.map +1 -0
  32. package/dist/agents/codex-app-server-runtime.js +772 -0
  33. package/dist/agents/codex-app-server-runtime.js.map +1 -0
  34. package/dist/agents/codex-app-server-runtime.test.d.ts +2 -0
  35. package/dist/agents/codex-app-server-runtime.test.d.ts.map +1 -0
  36. package/dist/agents/codex-app-server-runtime.test.js +164 -0
  37. package/dist/agents/codex-app-server-runtime.test.js.map +1 -0
  38. package/dist/agents/model-selection.d.ts +3 -2
  39. package/dist/agents/model-selection.js +1 -1
  40. package/dist/channels/botlink.d.ts +2 -0
  41. package/dist/cli/cmd-start.d.ts.map +1 -1
  42. package/dist/cli/cmd-start.js +154 -16
  43. package/dist/cli/cmd-start.js.map +1 -1
  44. package/dist/cli/run-main.js +27 -27
  45. package/dist/config/paths.d.ts +4 -0
  46. package/dist/config/paths.d.ts.map +1 -1
  47. package/dist/config/paths.js +7 -0
  48. package/dist/config/paths.js.map +1 -1
  49. package/dist/config/zod-schema.d.ts +656 -51
  50. package/dist/config/zod-schema.d.ts.map +1 -1
  51. package/dist/config/zod-schema.js +16 -0
  52. package/dist/config/zod-schema.js.map +1 -1
  53. package/dist/entry.d.ts +1 -1
  54. package/dist/logger.d.ts +1 -0
  55. package/dist/logger.d.ts.map +1 -1
  56. package/dist/logger.js +28 -5
  57. package/dist/logger.js.map +1 -1
  58. package/dist/types/index.d.ts +39 -0
  59. package/dist/types/index.d.ts.map +1 -1
  60. package/package.json +1 -1
  61. package/dist/console-encoding.d.ts +0 -6
  62. package/dist/console-encoding.d.ts.map +0 -1
  63. package/dist/console-encoding.js +0 -35
  64. package/dist/console-encoding.js.map +0 -1
package/README.md CHANGED
@@ -73,16 +73,16 @@ pnpm dev
73
73
  ## CLI 鍛戒护
74
74
 
75
75
  ```bash
76
- agents-bridge start # 启动 gateway(前台)
77
- agents-bridge start --daemon # 启动为后台守护进程
78
- agents-bridge start -c <path> # 指定配置文件启动
79
- agents-bridge stop # 停止守护进程
80
- agents-bridge status # 查看运行状态
81
- agents-bridge onboard # 交互式初始化引导
82
- agents-bridge doctor # 诊断环境、会话持久化、日志与 CLI 路径
83
- agents-bridge logs # 查看当天最新日志
84
- agents-bridge config # 查看当前配置(脱敏显示)
85
- agents-bridge help # 帮助
76
+ agents-bridge start # 启动 gateway(前台)
77
+ agents-bridge start --daemon # 启动为后台守护进程
78
+ agents-bridge start -c <path> # 指定配置文件启动
79
+ agents-bridge stop # 停止守护进程
80
+ agents-bridge status # 查看运行状态
81
+ agents-bridge onboard # 交互式初始化引导
82
+ agents-bridge doctor # 诊断环境、会话持久化、日志与 CLI 路径
83
+ agents-bridge logs # 查看当天最新日志
84
+ agents-bridge config # 查看当前配置(脱敏显示)
85
+ agents-bridge help # 帮助
86
86
  ```
87
87
 
88
88
  ## 閰嶇疆
@@ -267,8 +267,8 @@ agents-bridge/
267
267
  - CLI backend session id 会持久化到 `~/.agent-bridge/data/sessions/cli-sessions.json` 的 `cliSessionIds[providerId]`。
268
268
  - `serialize: true` 的语义是“同一 botlink session 串行、跨 session 可并发”。
269
269
  - Claude CLI 走 JSON 输出;Codex CLI 首次运行走 JSONL,resume 走 text。
270
- - agents-bridge 会把运行日志同时写到 stdout 和 `~/.agent-bridge/data/logs/agent-bridge-YYYY-MM-DD.log`。
271
- - `agents-bridge doctor` 会检查 Codex 会话是否缺失 `thread_id` 持久化,便于定位“每次都 fresh”的问题。
270
+ - agents-bridge 会把运行日志同时写到 stdout 和 `~/.agent-bridge/data/logs/agent-bridge-YYYY-MM-DD.log`。
271
+ - `agents-bridge doctor` 会检查 Codex 会话是否缺失 `thread_id` 持久化,便于定位“每次都 fresh”的问题。
272
272
 
273
273
  ## 鎶€鏈爤
274
274
 
@@ -0,0 +1,12 @@
1
+ import type { AppConfig } from '../config/zod-schema.js';
2
+ import type { Logger, ResolvedAgent } from '../types/index.js';
3
+ export interface ResolveAgentsResult {
4
+ agents: Map<string, ResolvedAgent>;
5
+ defaultAgentId: string;
6
+ }
7
+ /**
8
+ * Resolve agent configurations: merge defaults + list → Map<agentId, ResolvedAgent>.
9
+ * Called once at startup, result cached for routing.
10
+ */
11
+ export declare function resolveAgentConfigs(config: AppConfig, logger: Logger): ResolveAgentsResult;
12
+ //# sourceMappingURL=agent-resolver.d.ts.map
@@ -47,6 +47,7 @@ function buildResolvedAgent(id, defaults, agentConfig) {
47
47
  name: agentConfig?.name ?? id,
48
48
  model,
49
49
  workspace: agentConfig?.workspace ?? process.cwd(),
50
+ cliSessionId: agentConfig?.cliSessionId,
50
51
  systemPrompt: agentConfig?.systemPrompt,
51
52
  cliBackends,
52
53
  env,
@@ -1 +1 @@
1
- {"version":3,"file":"agent-resolver.js","sourceRoot":"","sources":["../../src/agents/agent-resolver.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent-resolver.js","sourceRoot":"","sources":["../../src/agents/agent-resolver.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAA;AAEnD,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,CAAC,WAAW,EAAE,aAAa,EAAE,WAAW,CAAC,CAAC,CAAA;AAOzE;;;GAGG;AACH,MAAM,UAAU,mBAAmB,CAAC,MAAiB,EAAE,MAAc;IACnE,MAAM,QAAQ,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAA;IACvC,MAAM,IAAI,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAA;IAC/B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAA;IAEhC,mDAAmD;IACnD,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC/B,MAAM,KAAK,GAAG,kBAAkB,CAAC,SAAS,EAAE,QAAQ,EAAE,SAAS,CAAC,CAAA;QAChE,mBAAmB,CAAC,QAAQ,EAAE,IAAI,GAAG,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAA;QACnD,OAAO,EAAE,MAAM,EAAE,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,cAAc,EAAE,SAAS,EAAE,CAAA;IAC7E,CAAC;IAED,sBAAsB;IACtB,MAAM,KAAK,GAAG,IAAI,GAAG,EAAU,CAAA;IAC/B,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;QACzB,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,uBAAuB,KAAK,CAAC,EAAE,GAAG,CAAC,CAAA;QACrD,CAAC;QACD,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC,CAAA;IACrB,CAAC;IAED,0BAA0B;IAC1B,MAAM,cAAc,GAAG,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,KAAK,IAAI,CAAC,CAAA;IAC7D,IAAI,cAAc,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QAC9B,MAAM,CAAC,IAAI,CACT,EAAE,MAAM,EAAE,cAAc,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAC3C,wDAAwD,CACzD,CAAA;IACH,CAAC;IACD,MAAM,cAAc,GAAG,cAAc,CAAC,CAAC,CAAC,EAAE,EAAE,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IAE1D,iCAAiC;IACjC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAyB,CAAA;IAC/C,KAAK,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;QACzB,MAAM,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,EAAE,kBAAkB,CAAC,KAAK,CAAC,EAAE,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC,CAAA;IACrE,CAAC;IAED,8BAA8B;IAC9B,mBAAmB,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAA;IAEpC,OAAO,EAAE,MAAM,EAAE,cAAc,EAAE,CAAA;AACnC,CAAC;AAED,SAAS,kBAAkB,CACzB,EAAU,EACV,QAAyC,EACzC,WAAoC;IAEpC,MAAM,KAAK,GAAG,YAAY,CAAC,QAAQ,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,CAAC,CAAA;IAC9D,MAAM,WAAW,GAAG,gBAAgB,CAClC,QAAQ,CAAC,WAAW,IAAI,EAAE,EAC1B,CAAC,WAAW,EAAE,WAAW,IAAI,EAAE,CAAqC,CACrE,CAAA;IACD,MAAM,GAAG,GAAG,EAAE,GAAG,CAAC,QAAQ,CAAC,GAAG,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,WAAW,EAAE,GAAG,IAAI,EAAE,CAAC,EAAE,CAAA;IACpE,MAAM,QAAQ,GAAG,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,GAAG,CAAC,WAAW,EAAE,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAA;IAEjF,OAAO;QACL,EAAE;QACF,IAAI,EAAE,WAAW,EAAE,IAAI,IAAI,EAAE;QAC7B,KAAK;QACL,SAAS,EAAE,WAAW,EAAE,SAAS,IAAI,OAAO,CAAC,GAAG,EAAE;QAClD,YAAY,EAAE,WAAW,EAAE,YAAY;QACvC,YAAY,EAAE,WAAW,EAAE,YAAY;QACvC,WAAW;QACX,GAAG;QACH,QAAQ;QACR,KAAK,EAAE,WAAW,EAAE,KAAK,IAAI,QAAQ,CAAC,KAAK;QAC3C,MAAM,EAAE,WAAW,EAAE,MAAM;QAC3B,QAAQ,EAAE,WAAW,EAAE,QAAQ;QAC/B,QAAQ,EAAE,cAAc,CAAC,EAAE,CAAC;KAC7B,CAAA;AACH,CAAC;AAED,SAAS,YAAY,CACnB,YAAuD,EACvD,UAA+D;IAE/D,IAAI,CAAC,UAAU,EAAE,CAAC;QAChB,OAAO,EAAE,GAAG,YAAY,EAAE,CAAA;IAC5B,CAAC;IACD,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,CAAA;IAChC,CAAC;IACD,OAAO,EAAE,GAAG,UAAU,EAAE,CAAA;AAC1B,CAAC;AAED,SAAS,gBAAgB,CACvB,IAAsC,EACtC,QAAmD;IAEnD,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,CAAA;IAC1B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAQ;QACrC,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAA;QAC5B,IAAI,QAAQ,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YACrC,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,QAA8C,EAAE,KAA2C,CAAgC,CAAA;QACrJ,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,KAAyB,CAAA;QACzC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,SAAS,CAAC,IAA6B,EAAE,QAAiC;IACjF,MAAM,MAAM,GAAG,EAAE,GAAG,IAAI,EAAE,CAAA;IAC1B,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpD,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC;YAAE,SAAQ;QACrC,IAAI,KAAK,KAAK,IAAI,EAAE,CAAC;YACnB,OAAO,MAAM,CAAC,GAAG,CAAC,CAAA;QACpB,CAAC;aAAM,IAAI,aAAa,CAAC,KAAK,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;YAC9D,MAAM,CAAC,GAAG,CAAC,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,CAA4B,EAAE,KAAgC,CAAC,CAAA;QACnG,CAAC;aAAM,CAAC;YACN,MAAM,CAAC,GAAG,CAAC,GAAG,KAAK,CAAA;QACrB,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAA;AACf,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,OAAO,CAAC,KAAK,CAAC,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAA;AAC7E,CAAC;AAED,SAAS,mBAAmB,CAC1B,QAA+B,EAC/B,QAAqB;IAErB,IAAI,CAAC,QAAQ;QAAE,OAAM;IACrB,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CACb,uCAAuC,OAAO,CAAC,OAAO,iBAAiB,CAAC,GAAG,QAAQ,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAClG,CAAA;QACH,CAAC;IACH,CAAC;AACH,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { AgentBinding } from '../config/zod-schema.js';
2
+ import type { ResolvedAgent, SessionEnvelope } from '../types/index.js';
3
+ /**
4
+ * Route an incoming envelope to the appropriate agent.
5
+ * Uses specificity scoring: higher score wins, ties broken by config order.
6
+ */
7
+ export declare function resolveAgent(envelope: SessionEnvelope, bindings: AgentBinding[], agents: Map<string, ResolvedAgent>, defaultAgentId: string): ResolvedAgent;
8
+ //# sourceMappingURL=agent-router.d.ts.map
@@ -0,0 +1,35 @@
1
+ import type { CliBackendConfig, CliRunUsage } from '../types/index.js';
2
+ export interface ParsedCliOutput {
3
+ text: string;
4
+ cliSessionId?: string;
5
+ usage?: CliRunUsage;
6
+ }
7
+ export interface CliOutputProbeSnapshot {
8
+ firstStdoutMs?: number;
9
+ firstStderrMs?: number;
10
+ threadStartedMs?: number;
11
+ firstAgentMessageMs?: number;
12
+ turnCompletedMs?: number;
13
+ reconnectCount: number;
14
+ fellBackToHttps: boolean;
15
+ cliSessionId?: string;
16
+ lastText?: string;
17
+ usage?: CliRunUsage;
18
+ }
19
+ export interface CliOutputProbe {
20
+ onStdout(chunk: string, atMs: number): void;
21
+ onStderr(chunk: string, atMs: number): void;
22
+ snapshot(): CliOutputProbeSnapshot;
23
+ }
24
+ export declare function createCliOutputProbe(params: {
25
+ backend: CliBackendConfig;
26
+ mode: 'json' | 'jsonl' | 'text';
27
+ }): CliOutputProbe;
28
+ export declare function parseCliOutput(raw: string, mode: 'json' | 'jsonl' | 'text', backend: CliBackendConfig): ParsedCliOutput | null;
29
+ export declare function parseCliJson(raw: string, backend: CliBackendConfig): ParsedCliOutput | null;
30
+ export declare function parseCliJsonl(raw: string, backend: CliBackendConfig): ParsedCliOutput | null;
31
+ export declare function pickCliSessionId(parsed: Record<string, unknown>, backend: CliBackendConfig): string | undefined;
32
+ export declare function collectText(value: unknown): string;
33
+ export declare function toUsage(raw: Record<string, unknown>): CliRunUsage | undefined;
34
+ export declare function isSessionExpiredError(error: unknown): boolean;
35
+ //# sourceMappingURL=cli-output.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-output.d.ts","sourceRoot":"","sources":["../../src/agents/cli-output.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAA;AAEtE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAA;IACZ,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,KAAK,CAAC,EAAE,WAAW,CAAA;CACpB;AAED,MAAM,WAAW,sBAAsB;IACrC,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,cAAc,EAAE,MAAM,CAAA;IACtB,eAAe,EAAE,OAAO,CAAA;IACxB,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,KAAK,CAAC,EAAE,WAAW,CAAA;CACpB;AAED,MAAM,WAAW,cAAc;IAC7B,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3C,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;IAC3C,QAAQ,IAAI,sBAAsB,CAAA;CACnC;AAgBD,wBAAgB,oBAAoB,CAAC,MAAM,EAAE;IAC3C,OAAO,EAAE,gBAAgB,CAAA;IACzB,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,CAAA;CAChC,GAAG,cAAc,CAyCjB;AAED,wBAAgB,cAAc,CAC5B,GAAG,EAAE,MAAM,EACX,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,MAAM,EAC/B,OAAO,EAAE,gBAAgB,GACxB,eAAe,GAAG,IAAI,CAWxB;AAED,wBAAgB,YAAY,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,eAAe,GAAG,IAAI,CAyB3F;AAED,wBAAgB,aAAa,CAAC,GAAG,EAAE,MAAM,EAAE,OAAO,EAAE,gBAAgB,GAAG,eAAe,GAAG,IAAI,CAsC5F;AAED,wBAAgB,gBAAgB,CAC9B,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC/B,OAAO,EAAE,gBAAgB,GACxB,MAAM,GAAG,SAAS,CAyBpB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CA6BlD;AASD,wBAAgB,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,WAAW,GAAG,SAAS,CAsB7E;AAED,wBAAgB,qBAAqB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAG7D"}
@@ -0,0 +1,277 @@
1
+ const SESSION_EXPIRED_PATTERNS = [
2
+ /session expired/i,
3
+ /invalid session/i,
4
+ /conversation not found/i,
5
+ /thread not found/i,
6
+ /thread closed/i,
7
+ /no rollout found/i,
8
+ /invalid thread id/i,
9
+ /resume session not found/i,
10
+ ];
11
+ const RECONNECT_PATTERN = /reconnecting\.\.\./i;
12
+ const HTTPS_FALLBACK_PATTERN = /falling back from websockets to https transport/i;
13
+ export function createCliOutputProbe(params) {
14
+ const state = {
15
+ reconnectCount: 0,
16
+ fellBackToHttps: false,
17
+ };
18
+ let stdoutBuffer = '';
19
+ return {
20
+ onStdout(chunk, atMs) {
21
+ if (state.firstStdoutMs === undefined) {
22
+ state.firstStdoutMs = atMs;
23
+ }
24
+ if (params.mode !== 'jsonl') {
25
+ return;
26
+ }
27
+ stdoutBuffer += chunk;
28
+ const lines = stdoutBuffer.split(/\r?\n/g);
29
+ stdoutBuffer = lines.pop() ?? '';
30
+ for (const line of lines) {
31
+ inspectJsonlLine(line, params.backend, state, atMs);
32
+ }
33
+ },
34
+ onStderr(chunk, atMs) {
35
+ if (state.firstStderrMs === undefined) {
36
+ state.firstStderrMs = atMs;
37
+ }
38
+ inspectRawMessage(chunk, state);
39
+ },
40
+ snapshot() {
41
+ if (params.mode === 'jsonl' && stdoutBuffer.trim()) {
42
+ inspectJsonlLine(stdoutBuffer, params.backend, state, state.firstStdoutMs ?? 0);
43
+ stdoutBuffer = '';
44
+ }
45
+ return {
46
+ ...state,
47
+ };
48
+ },
49
+ };
50
+ }
51
+ export function parseCliOutput(raw, mode, backend) {
52
+ if (!raw.trim()) {
53
+ return null;
54
+ }
55
+ if (mode === 'text') {
56
+ return { text: raw.trim() };
57
+ }
58
+ if (mode === 'jsonl') {
59
+ return parseCliJsonl(raw, backend);
60
+ }
61
+ return parseCliJson(raw, backend);
62
+ }
63
+ export function parseCliJson(raw, backend) {
64
+ try {
65
+ const parsed = JSON.parse(raw);
66
+ if (!isRecord(parsed)) {
67
+ return null;
68
+ }
69
+ const result = {
70
+ text: (collectObjectText(parsed.message) ||
71
+ collectText(parsed.content) ||
72
+ collectText(parsed.result) ||
73
+ collectText(parsed)).trim(),
74
+ cliSessionId: pickCliSessionId(parsed, backend),
75
+ usage: isRecord(parsed.usage) ? toUsage(parsed.usage) : undefined,
76
+ };
77
+ if (!result.text && !result.cliSessionId && !result.usage) {
78
+ return null;
79
+ }
80
+ return result;
81
+ }
82
+ catch {
83
+ return null;
84
+ }
85
+ }
86
+ export function parseCliJsonl(raw, backend) {
87
+ const lines = raw
88
+ .split(/\r?\n/g)
89
+ .map((line) => line.trim())
90
+ .filter(Boolean);
91
+ if (lines.length === 0) {
92
+ return null;
93
+ }
94
+ let cliSessionId;
95
+ let usage;
96
+ let lastText = '';
97
+ for (const line of lines) {
98
+ try {
99
+ const parsed = JSON.parse(line);
100
+ if (!isRecord(parsed)) {
101
+ continue;
102
+ }
103
+ cliSessionId = cliSessionId ?? pickCliSessionId(parsed, backend) ?? getString(parsed.thread_id);
104
+ if (isRecord(parsed.usage)) {
105
+ usage = toUsage(parsed.usage) ?? usage;
106
+ }
107
+ const candidate = extractTextCandidate(parsed);
108
+ if (candidate) {
109
+ lastText = candidate;
110
+ }
111
+ }
112
+ catch {
113
+ continue;
114
+ }
115
+ }
116
+ if (!lastText && !cliSessionId && !usage) {
117
+ return null;
118
+ }
119
+ return { text: lastText, cliSessionId, usage };
120
+ }
121
+ export function pickCliSessionId(parsed, backend) {
122
+ const fields = backend.sessionIdFields ?? ['session_id', 'sessionId', 'conversation_id', 'conversationId'];
123
+ const containers = [
124
+ parsed,
125
+ parsed.item,
126
+ parsed.message,
127
+ parsed.result,
128
+ parsed.delta,
129
+ parsed.payload,
130
+ parsed.data,
131
+ ];
132
+ for (const container of containers) {
133
+ if (!isRecord(container)) {
134
+ continue;
135
+ }
136
+ for (const field of fields) {
137
+ const value = getString(container[field]);
138
+ if (value) {
139
+ return value;
140
+ }
141
+ }
142
+ }
143
+ return undefined;
144
+ }
145
+ export function collectText(value) {
146
+ if (!value) {
147
+ return '';
148
+ }
149
+ if (typeof value === 'string') {
150
+ return value;
151
+ }
152
+ if (Array.isArray(value)) {
153
+ return value.map((entry) => collectText(entry)).filter(Boolean).join('\n');
154
+ }
155
+ if (!isRecord(value)) {
156
+ return '';
157
+ }
158
+ if (typeof value.text === 'string') {
159
+ return value.text;
160
+ }
161
+ if (typeof value.content === 'string') {
162
+ return value.content;
163
+ }
164
+ if (Array.isArray(value.content)) {
165
+ return value.content.map((entry) => collectText(entry)).filter(Boolean).join('\n');
166
+ }
167
+ if (isRecord(value.message)) {
168
+ return collectText(value.message);
169
+ }
170
+ if (isRecord(value.item)) {
171
+ return collectText(value.item);
172
+ }
173
+ return '';
174
+ }
175
+ function collectObjectText(value) {
176
+ if (isRecord(value) || Array.isArray(value)) {
177
+ return collectText(value);
178
+ }
179
+ return '';
180
+ }
181
+ export function toUsage(raw) {
182
+ const pick = (...keys) => {
183
+ for (const key of keys) {
184
+ const value = raw[key];
185
+ if (typeof value === 'number' && value >= 0) {
186
+ return value;
187
+ }
188
+ }
189
+ return undefined;
190
+ };
191
+ const usage = {
192
+ input: pick('input_tokens', 'inputTokens'),
193
+ output: pick('output_tokens', 'outputTokens'),
194
+ cacheRead: pick('cache_read_input_tokens', 'cached_input_tokens', 'cacheRead'),
195
+ cacheWrite: pick('cache_write_input_tokens', 'cacheWrite'),
196
+ total: pick('total_tokens', 'total'),
197
+ };
198
+ if (Object.values(usage).every((value) => value === undefined)) {
199
+ return undefined;
200
+ }
201
+ return usage;
202
+ }
203
+ export function isSessionExpiredError(error) {
204
+ const message = error instanceof Error ? error.message : String(error);
205
+ return SESSION_EXPIRED_PATTERNS.some((pattern) => pattern.test(message));
206
+ }
207
+ function inspectJsonlLine(rawLine, backend, state, atMs) {
208
+ const line = rawLine.trim();
209
+ if (!line) {
210
+ return;
211
+ }
212
+ try {
213
+ const parsed = JSON.parse(line);
214
+ if (!isRecord(parsed)) {
215
+ return;
216
+ }
217
+ state.cliSessionId = state.cliSessionId ?? pickCliSessionId(parsed, backend) ?? getString(parsed.thread_id);
218
+ if (isRecord(parsed.usage)) {
219
+ state.usage = toUsage(parsed.usage) ?? state.usage;
220
+ }
221
+ const eventType = getString(parsed.type);
222
+ if (eventType === 'thread.started' && state.threadStartedMs === undefined) {
223
+ state.threadStartedMs = atMs;
224
+ }
225
+ if (eventType === 'turn.completed' && state.turnCompletedMs === undefined) {
226
+ state.turnCompletedMs = atMs;
227
+ }
228
+ const candidate = extractTextCandidate(parsed);
229
+ if (candidate) {
230
+ state.lastText = candidate;
231
+ if (state.firstAgentMessageMs === undefined) {
232
+ state.firstAgentMessageMs = atMs;
233
+ }
234
+ }
235
+ inspectRawMessage(extractEventMessage(parsed), state);
236
+ }
237
+ catch {
238
+ inspectRawMessage(line, state);
239
+ }
240
+ }
241
+ function extractEventMessage(parsed) {
242
+ const directMessage = getString(parsed.message);
243
+ if (directMessage) {
244
+ return directMessage;
245
+ }
246
+ if (isRecord(parsed.item)) {
247
+ const itemMessage = getString(parsed.item.message);
248
+ if (itemMessage) {
249
+ return itemMessage;
250
+ }
251
+ }
252
+ return '';
253
+ }
254
+ function inspectRawMessage(message, state) {
255
+ if (!message) {
256
+ return;
257
+ }
258
+ if (RECONNECT_PATTERN.test(message)) {
259
+ state.reconnectCount += 1;
260
+ }
261
+ if (HTTPS_FALLBACK_PATTERN.test(message)) {
262
+ state.fellBackToHttps = true;
263
+ }
264
+ }
265
+ function extractTextCandidate(parsed) {
266
+ return (collectText(parsed.item) ||
267
+ collectObjectText(parsed.message) ||
268
+ collectText(parsed.delta) ||
269
+ collectText(parsed.result)).trim();
270
+ }
271
+ function isRecord(value) {
272
+ return Boolean(value) && typeof value === 'object' && !Array.isArray(value);
273
+ }
274
+ function getString(value) {
275
+ return typeof value === 'string' && value.trim() ? value.trim() : undefined;
276
+ }
277
+ //# sourceMappingURL=cli-output.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-output.js","sourceRoot":"","sources":["../../src/agents/cli-output.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=cli-output.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-output.test.d.ts","sourceRoot":"","sources":["../../src/agents/cli-output.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,56 @@
1
+ import assert from 'node:assert/strict';
2
+ import test from 'node:test';
3
+ import { createCliOutputProbe, parseCliJsonl, } from './cli-output.js';
4
+ const CODEX_BACKEND = {
5
+ command: 'codex',
6
+ output: 'jsonl',
7
+ sessionIdFields: ['thread_id'],
8
+ };
9
+ test('parseCliJsonl extracts codex thread id and final agent text', () => {
10
+ const raw = [
11
+ '{"type":"thread.started","thread_id":"thread-123"}',
12
+ '{"type":"item.completed","item":{"id":"item_1","type":"agent_message","text":"OK"}}',
13
+ '{"type":"turn.completed","usage":{"input_tokens":10,"output_tokens":2}}',
14
+ ].join('\n');
15
+ const parsed = parseCliJsonl(raw, CODEX_BACKEND);
16
+ assert.ok(parsed);
17
+ assert.equal(parsed.cliSessionId, 'thread-123');
18
+ assert.equal(parsed.text, 'OK');
19
+ assert.deepEqual(parsed.usage, {
20
+ input: 10,
21
+ output: 2,
22
+ cacheRead: undefined,
23
+ cacheWrite: undefined,
24
+ total: undefined,
25
+ });
26
+ });
27
+ test('parseCliJsonl keeps codex thread id even when no final text is present', () => {
28
+ const raw = [
29
+ '{"type":"thread.started","thread_id":"thread-456"}',
30
+ '{"type":"turn.completed","usage":{"input_tokens":10,"output_tokens":0}}',
31
+ ].join('\n');
32
+ const parsed = parseCliJsonl(raw, CODEX_BACKEND);
33
+ assert.ok(parsed);
34
+ assert.equal(parsed.cliSessionId, 'thread-456');
35
+ assert.equal(parsed.text, '');
36
+ });
37
+ test('createCliOutputProbe tracks reconnects, fallback, and first message timing', () => {
38
+ const probe = createCliOutputProbe({
39
+ backend: CODEX_BACKEND,
40
+ mode: 'jsonl',
41
+ });
42
+ probe.onStdout('{"type":"thread.started","thread_id":"thread-789"}\n', 20);
43
+ probe.onStdout('{"type":"error","message":"Reconnecting... 2/5 (timeout waiting for child process to exit)"}\n', 40);
44
+ probe.onStdout('{"type":"item.completed","item":{"id":"item_0","type":"error","message":"Falling back from WebSockets to HTTPS transport. timeout waiting for child process to exit"}}\n', 60);
45
+ probe.onStdout('{"type":"item.completed","item":{"id":"item_1","type":"agent_message","text":"READY"}}\n', 80);
46
+ probe.onStdout('{"type":"turn.completed","usage":{"input_tokens":1,"output_tokens":1}}\n', 100);
47
+ const snapshot = probe.snapshot();
48
+ assert.equal(snapshot.cliSessionId, 'thread-789');
49
+ assert.equal(snapshot.threadStartedMs, 20);
50
+ assert.equal(snapshot.firstAgentMessageMs, 80);
51
+ assert.equal(snapshot.turnCompletedMs, 100);
52
+ assert.equal(snapshot.reconnectCount, 1);
53
+ assert.equal(snapshot.fellBackToHttps, true);
54
+ assert.equal(snapshot.lastText, 'READY');
55
+ });
56
+ //# sourceMappingURL=cli-output.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli-output.test.js","sourceRoot":"","sources":["../../src/agents/cli-output.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import type { AppConfig } from '../config/zod-schema.js';
2
+ import type { CliBackendConfig, CliRunParams, CliRunResult, CliTurnExecutor, Logger } from '../types/index.js';
3
+ import { type CodexTurnRuntime } from './codex-app-server-runtime.js';
4
+ import { CliSessionStore } from './cli-session-store.js';
5
+ export declare class LocalCliTurnExecutor implements CliTurnExecutor {
6
+ private readonly options;
7
+ private codexRuntime;
8
+ constructor(options: {
9
+ config: Pick<AppConfig, 'agents'>;
10
+ logger: Logger;
11
+ sessionStore?: CliSessionStore;
12
+ defaultTimeoutMs?: number;
13
+ createCodexRuntime?: (backend: CliBackendConfig) => CodexTurnRuntime;
14
+ });
15
+ run(params: CliRunParams): Promise<CliRunResult>;
16
+ private emitProcessing;
17
+ private executeTurn;
18
+ teardown(): Promise<void>;
19
+ private getCodexRuntime;
20
+ private executeCodexAppServerTurn;
21
+ private executeCliExecTurn;
22
+ }
23
+ //# sourceMappingURL=cli-runner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"cli-runner.d.ts","sourceRoot":"","sources":["../../src/agents/cli-runner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EAGV,YAAY,EACZ,YAAY,EAEZ,eAAe,EACf,MAAM,EAEP,MAAM,mBAAmB,CAAA;AAQ1B,OAAO,EAAE,eAAe,EAAwB,MAAM,wBAAwB,CAAA;AA+B9E,qBAAa,oBAAqB,YAAW,eAAe;IAExD,OAAO,CAAC,QAAQ,CAAC,OAAO;gBAAP,OAAO,EAAE;QACxB,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QACjC,MAAM,EAAE,MAAM,CAAA;QACd,YAAY,CAAC,EAAE,eAAe,CAAA;QAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAA;KAC1B;IAGG,GAAG,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;YA8FxC,cAAc;YAId,WAAW;CA8F1B"}
1
+ {"version":3,"file":"cli-runner.d.ts","sourceRoot":"","sources":["../../src/agents/cli-runner.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAA;AACxD,OAAO,KAAK,EACV,gBAAgB,EAGhB,YAAY,EACZ,YAAY,EACZ,eAAe,EACf,MAAM,EAEP,MAAM,mBAAmB,CAAA;AAc1B,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,+BAA+B,CAAA;AACtC,OAAO,EAAE,eAAe,EAAwB,MAAM,wBAAwB,CAAA;AAkB9E,qBAAa,oBAAqB,YAAW,eAAe;IAIxD,OAAO,CAAC,QAAQ,CAAC,OAAO;IAH1B,OAAO,CAAC,YAAY,CAAgC;gBAGjC,OAAO,EAAE;QACxB,MAAM,EAAE,IAAI,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAA;QACjC,MAAM,EAAE,MAAM,CAAA;QACd,YAAY,CAAC,EAAE,eAAe,CAAA;QAC9B,gBAAgB,CAAC,EAAE,MAAM,CAAA;QACzB,kBAAkB,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,gBAAgB,CAAA;KACrE;IAGG,GAAG,CAAC,MAAM,EAAE,YAAY,GAAG,OAAO,CAAC,YAAY,CAAC;YAyHxC,cAAc;YAId,WAAW;IAqBnB,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC;IAI/B,OAAO,CAAC,eAAe;YAUT,yBAAyB;YA+DzB,kBAAkB;CAwIjC"}