@agentex/agent 0.0.17 → 0.0.20

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 (171) hide show
  1. package/README.md +140 -22
  2. package/dist/derived.d.ts +69 -0
  3. package/dist/derived.d.ts.map +1 -0
  4. package/dist/derived.js +218 -0
  5. package/dist/derived.js.map +1 -0
  6. package/dist/index.d.ts +8 -1
  7. package/dist/index.d.ts.map +1 -1
  8. package/dist/index.js +3 -0
  9. package/dist/index.js.map +1 -1
  10. package/dist/providers/_shared/http-agent.d.ts +39 -0
  11. package/dist/providers/_shared/http-agent.d.ts.map +1 -0
  12. package/dist/providers/_shared/http-agent.js +265 -0
  13. package/dist/providers/_shared/http-agent.js.map +1 -0
  14. package/dist/providers/acp/index.d.ts +29 -0
  15. package/dist/providers/acp/index.d.ts.map +1 -0
  16. package/dist/providers/acp/index.js +153 -0
  17. package/dist/providers/acp/index.js.map +1 -0
  18. package/dist/providers/acp/parse.d.ts +22 -0
  19. package/dist/providers/acp/parse.d.ts.map +1 -0
  20. package/dist/providers/acp/parse.js +122 -0
  21. package/dist/providers/acp/parse.js.map +1 -0
  22. package/dist/providers/acp/session.d.ts +36 -0
  23. package/dist/providers/acp/session.d.ts.map +1 -0
  24. package/dist/providers/acp/session.js +487 -0
  25. package/dist/providers/acp/session.js.map +1 -0
  26. package/dist/providers/claude/execute.d.ts.map +1 -1
  27. package/dist/providers/claude/execute.js +22 -9
  28. package/dist/providers/claude/execute.js.map +1 -1
  29. package/dist/providers/claude/index.d.ts.map +1 -1
  30. package/dist/providers/claude/index.js +1 -0
  31. package/dist/providers/claude/index.js.map +1 -1
  32. package/dist/providers/claude/mcp.d.ts +28 -0
  33. package/dist/providers/claude/mcp.d.ts.map +1 -0
  34. package/dist/providers/claude/mcp.js +82 -0
  35. package/dist/providers/claude/mcp.js.map +1 -0
  36. package/dist/providers/claude/parse.d.ts +12 -1
  37. package/dist/providers/claude/parse.d.ts.map +1 -1
  38. package/dist/providers/claude/parse.js +84 -2
  39. package/dist/providers/claude/parse.js.map +1 -1
  40. package/dist/providers/claude/session.d.ts +29 -3
  41. package/dist/providers/claude/session.d.ts.map +1 -1
  42. package/dist/providers/claude/session.js +144 -16
  43. package/dist/providers/claude/session.js.map +1 -1
  44. package/dist/providers/codex/execute.d.ts.map +1 -1
  45. package/dist/providers/codex/execute.js +5 -1
  46. package/dist/providers/codex/execute.js.map +1 -1
  47. package/dist/providers/codex/index.d.ts.map +1 -1
  48. package/dist/providers/codex/index.js +3 -0
  49. package/dist/providers/codex/index.js.map +1 -1
  50. package/dist/providers/codex/modes.d.ts +35 -0
  51. package/dist/providers/codex/modes.d.ts.map +1 -0
  52. package/dist/providers/codex/modes.js +148 -0
  53. package/dist/providers/codex/modes.js.map +1 -0
  54. package/dist/providers/codex/parse.d.ts.map +1 -1
  55. package/dist/providers/codex/parse.js +4 -0
  56. package/dist/providers/codex/parse.js.map +1 -1
  57. package/dist/providers/codex/session.d.ts +41 -2
  58. package/dist/providers/codex/session.d.ts.map +1 -1
  59. package/dist/providers/codex/session.js +331 -16
  60. package/dist/providers/codex/session.js.map +1 -1
  61. package/dist/providers/codex/transcript.d.ts +14 -0
  62. package/dist/providers/codex/transcript.d.ts.map +1 -1
  63. package/dist/providers/codex/transcript.js +15 -1
  64. package/dist/providers/codex/transcript.js.map +1 -1
  65. package/dist/providers/copilot/index.d.ts +15 -0
  66. package/dist/providers/copilot/index.d.ts.map +1 -0
  67. package/dist/providers/copilot/index.js +19 -0
  68. package/dist/providers/copilot/index.js.map +1 -0
  69. package/dist/providers/cursor/index.d.ts.map +1 -1
  70. package/dist/providers/cursor/index.js +1 -0
  71. package/dist/providers/cursor/index.js.map +1 -1
  72. package/dist/providers/cursor/parse.d.ts.map +1 -1
  73. package/dist/providers/cursor/parse.js +1 -0
  74. package/dist/providers/cursor/parse.js.map +1 -1
  75. package/dist/providers/gemini/index.d.ts.map +1 -1
  76. package/dist/providers/gemini/index.js +16 -20
  77. package/dist/providers/gemini/index.js.map +1 -1
  78. package/dist/providers/openclaw/execute.d.ts +5 -0
  79. package/dist/providers/openclaw/execute.d.ts.map +1 -1
  80. package/dist/providers/openclaw/execute.js +13 -173
  81. package/dist/providers/openclaw/execute.js.map +1 -1
  82. package/dist/providers/openclaw/index.d.ts.map +1 -1
  83. package/dist/providers/openclaw/index.js +1 -0
  84. package/dist/providers/openclaw/index.js.map +1 -1
  85. package/dist/providers/opencode/event-parse.d.ts +23 -0
  86. package/dist/providers/opencode/event-parse.d.ts.map +1 -0
  87. package/dist/providers/opencode/event-parse.js +128 -0
  88. package/dist/providers/opencode/event-parse.js.map +1 -0
  89. package/dist/providers/opencode/http-session.d.ts +4 -0
  90. package/dist/providers/opencode/http-session.d.ts.map +1 -0
  91. package/dist/providers/opencode/http-session.js +376 -0
  92. package/dist/providers/opencode/http-session.js.map +1 -0
  93. package/dist/providers/opencode/index.d.ts.map +1 -1
  94. package/dist/providers/opencode/index.js +6 -1
  95. package/dist/providers/opencode/index.js.map +1 -1
  96. package/dist/providers/opencode/parse.d.ts.map +1 -1
  97. package/dist/providers/opencode/parse.js +1 -0
  98. package/dist/providers/opencode/parse.js.map +1 -1
  99. package/dist/providers/opencode/server.d.ts +8 -0
  100. package/dist/providers/opencode/server.d.ts.map +1 -0
  101. package/dist/providers/opencode/server.js +0 -0
  102. package/dist/providers/opencode/server.js.map +1 -0
  103. package/dist/providers/pi/index.d.ts.map +1 -1
  104. package/dist/providers/pi/index.js +6 -1
  105. package/dist/providers/pi/index.js.map +1 -1
  106. package/dist/providers/pi/parse.d.ts.map +1 -1
  107. package/dist/providers/pi/parse.js +1 -0
  108. package/dist/providers/pi/parse.js.map +1 -1
  109. package/dist/providers/pi/session.d.ts +40 -0
  110. package/dist/providers/pi/session.d.ts.map +1 -0
  111. package/dist/providers/pi/session.js +328 -0
  112. package/dist/providers/pi/session.js.map +1 -0
  113. package/dist/providers/process/index.d.ts.map +1 -1
  114. package/dist/providers/process/index.js +1 -0
  115. package/dist/providers/process/index.js.map +1 -1
  116. package/dist/registry.d.ts +1 -0
  117. package/dist/registry.d.ts.map +1 -1
  118. package/dist/registry.js +6 -0
  119. package/dist/registry.js.map +1 -1
  120. package/dist/types.d.ts +185 -4
  121. package/dist/types.d.ts.map +1 -1
  122. package/dist/types.js.map +1 -1
  123. package/dist/utils/tool-names.d.ts +24 -0
  124. package/dist/utils/tool-names.d.ts.map +1 -0
  125. package/dist/utils/tool-names.js +50 -0
  126. package/dist/utils/tool-names.js.map +1 -0
  127. package/package.json +22 -13
  128. package/dist/providers/claude/test.d.ts +0 -3
  129. package/dist/providers/claude/test.d.ts.map +0 -1
  130. package/dist/providers/claude/test.js +0 -167
  131. package/dist/providers/claude/test.js.map +0 -1
  132. package/dist/providers/codex/test.d.ts +0 -3
  133. package/dist/providers/codex/test.d.ts.map +0 -1
  134. package/dist/providers/codex/test.js +0 -74
  135. package/dist/providers/codex/test.js.map +0 -1
  136. package/dist/providers/cursor/test.d.ts +0 -3
  137. package/dist/providers/cursor/test.d.ts.map +0 -1
  138. package/dist/providers/cursor/test.js +0 -58
  139. package/dist/providers/cursor/test.js.map +0 -1
  140. package/dist/providers/gemini/codec.d.ts +0 -3
  141. package/dist/providers/gemini/codec.d.ts.map +0 -1
  142. package/dist/providers/gemini/codec.js +0 -47
  143. package/dist/providers/gemini/codec.js.map +0 -1
  144. package/dist/providers/gemini/execute.d.ts +0 -3
  145. package/dist/providers/gemini/execute.d.ts.map +0 -1
  146. package/dist/providers/gemini/execute.js +0 -256
  147. package/dist/providers/gemini/execute.js.map +0 -1
  148. package/dist/providers/gemini/parse.d.ts +0 -20
  149. package/dist/providers/gemini/parse.d.ts.map +0 -1
  150. package/dist/providers/gemini/parse.js +0 -235
  151. package/dist/providers/gemini/parse.js.map +0 -1
  152. package/dist/providers/gemini/test.d.ts +0 -3
  153. package/dist/providers/gemini/test.d.ts.map +0 -1
  154. package/dist/providers/gemini/test.js +0 -67
  155. package/dist/providers/gemini/test.js.map +0 -1
  156. package/dist/providers/openclaw/test.d.ts +0 -3
  157. package/dist/providers/openclaw/test.d.ts.map +0 -1
  158. package/dist/providers/openclaw/test.js +0 -54
  159. package/dist/providers/openclaw/test.js.map +0 -1
  160. package/dist/providers/opencode/test.d.ts +0 -3
  161. package/dist/providers/opencode/test.d.ts.map +0 -1
  162. package/dist/providers/opencode/test.js +0 -60
  163. package/dist/providers/opencode/test.js.map +0 -1
  164. package/dist/providers/pi/test.d.ts +0 -3
  165. package/dist/providers/pi/test.d.ts.map +0 -1
  166. package/dist/providers/pi/test.js +0 -60
  167. package/dist/providers/pi/test.js.map +0 -1
  168. package/dist/utils/model-cache.d.ts +0 -11
  169. package/dist/utils/model-cache.d.ts.map +0 -1
  170. package/dist/utils/model-cache.js +0 -17
  171. package/dist/utils/model-cache.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../../src/providers/opencode/server.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/pi/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAKrD,eAAO,MAAM,UAAU,EAAE,cAiBxB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/pi/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAgC,MAAM,gBAAgB,CAAC;AAMnF,eAAO,MAAM,UAAU,EAAE,cAqBxB,CAAC"}
@@ -1,10 +1,11 @@
1
1
  import { executePiProvider } from "./execute.js";
2
2
  import { piSessionCodec } from "./codec.js";
3
3
  import { resolveAuthForProvider } from "../../utils/auth.js";
4
+ import { createPiSession } from "./session.js";
4
5
  export const piProvider = {
5
6
  type: "pi",
6
7
  capabilities: {
7
- sessions: false,
8
+ sessions: true,
8
9
  modelDiscovery: false,
9
10
  quotaProbing: false,
10
11
  mcp: false,
@@ -14,8 +15,12 @@ export const piProvider = {
14
15
  planMode: false,
15
16
  concurrentSend: false,
16
17
  cancelQueuedMessage: false,
18
+ modes: false,
17
19
  },
20
+ // One-shot `pi --mode rpc` for execute(); a persistent `pi --mode rpc` process
21
+ // across turns for createSession().
18
22
  execute: executePiProvider,
23
+ createSession: (ctx) => createPiSession(ctx),
19
24
  resolveAuth: (ctx) => resolveAuthForProvider("pi", ctx),
20
25
  sessionCodec: piSessionCodec,
21
26
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/pi/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAE7D,MAAM,CAAC,MAAM,UAAU,GAAmB;IACxC,IAAI,EAAE,IAAI;IACV,YAAY,EAAE;QACZ,QAAQ,EAAE,KAAK;QACf,cAAc,EAAE,KAAK;QACrB,YAAY,EAAE,KAAK;QACnB,GAAG,EAAE,KAAK;QACV,MAAM,EAAE,IAAI;QACZ,YAAY,EAAE,IAAI;QAClB,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,KAAK;QACf,cAAc,EAAE,KAAK;QACrB,mBAAmB,EAAE,KAAK;KAC3B;IACD,OAAO,EAAE,iBAAiB;IAC1B,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,sBAAsB,CAAC,IAAI,EAAE,GAAG,CAAC;IACvD,YAAY,EAAE,cAAc;CAC7B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/pi/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,EAAE,sBAAsB,EAAE,MAAM,qBAAqB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,MAAM,CAAC,MAAM,UAAU,GAAmB;IACxC,IAAI,EAAE,IAAI;IACV,YAAY,EAAE;QACZ,QAAQ,EAAE,IAAI;QACd,cAAc,EAAE,KAAK;QACrB,YAAY,EAAE,KAAK;QACnB,GAAG,EAAE,KAAK;QACV,MAAM,EAAE,IAAI;QACZ,YAAY,EAAE,IAAI;QAClB,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,KAAK;QACf,cAAc,EAAE,KAAK;QACrB,mBAAmB,EAAE,KAAK;QAC1B,KAAK,EAAE,KAAK;KACb;IACD,+EAA+E;IAC/E,oCAAoC;IACpC,OAAO,EAAE,iBAAiB;IAC1B,aAAa,EAAE,CAAC,GAAmB,EAAyB,EAAE,CAAC,eAAe,CAAC,GAAG,CAAC;IACnF,WAAW,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,sBAAsB,CAAC,IAAI,EAAE,GAAG,CAAC;IACvD,YAAY,EAAE,cAAc;CAC7B,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../src/providers/pi/parse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAyB,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAiBzE,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACxG,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAoCD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CA4G3D;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAqDlE;AAID,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAE/E"}
1
+ {"version":3,"file":"parse.d.ts","sourceRoot":"","sources":["../../../src/providers/pi/parse.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAyB,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAiBzE,MAAM,WAAW,cAAc;IAC7B,SAAS,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,KAAK,EAAE;QAAE,WAAW,EAAE,MAAM,CAAC;QAAC,YAAY,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IACxG,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;CAC7B;AAoCD,wBAAgB,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,cAAc,CA4G3D;AAED,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,IAAI,CAsDlE;AAID,wBAAgB,uBAAuB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAE/E"}
@@ -172,6 +172,7 @@ export function parsePiStreamLine(line) {
172
172
  return {
173
173
  type: "tool_result",
174
174
  toolCallId: asString(event["toolCallId"], "") || null,
175
+ toolName: asString(event["toolName"], "") || null,
175
176
  content: typeof result === "string" ? result : JSON.stringify(result),
176
177
  isError: event["isError"] === true,
177
178
  exitCode: null,
@@ -1 +1 @@
1
- {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/providers/pi/parse.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"parse.js","sourceRoot":"","sources":["../../../src/providers/pi/parse.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,40 @@
1
+ import type { AgentSession, CancelResult, SendHandle, SendOptions, SessionContext, SessionState } from "../../types.js";
2
+ /** Create + connect a persistent `pi --mode rpc` session. */
3
+ export declare function createPiSession(ctx: SessionContext): Promise<AgentSession>;
4
+ /** @internal Exported for unit testing — not part of the public API. */
5
+ export declare class PiSession implements AgentSession {
6
+ private readonly ctx;
7
+ private _state;
8
+ private proc;
9
+ private _sessionPath;
10
+ private _lineBuffer;
11
+ private _turnActive;
12
+ private _turnText;
13
+ private _pending;
14
+ private _inFlight;
15
+ private _draining;
16
+ /** Serial dispatch so onEvent fires in order and a turn resolves after them. */
17
+ private _eventChain;
18
+ /** Decided outcome of an interrupted turn, applied when its `agent_end` acks. */
19
+ private _pendingStatus;
20
+ private _pendingMessage;
21
+ /** Force-resolve timer if pi never acks an abort with `agent_end`. */
22
+ private _graceTimer;
23
+ /** Count of `agent_end`s to swallow (from turns force-resolved before their ack). */
24
+ private _staleEnds;
25
+ constructor(ctx: SessionContext);
26
+ get sessionId(): string | null;
27
+ get state(): SessionState;
28
+ connect(): Promise<void>;
29
+ private onStdout;
30
+ private handleLine;
31
+ private resolveTurn;
32
+ private failPending;
33
+ send(message: string, options?: SendOptions): Promise<SendHandle>;
34
+ private onTurnInterrupt;
35
+ cancel(_uuid: string): Promise<CancelResult>;
36
+ interrupt(): Promise<void>;
37
+ drain(): Promise<void>;
38
+ close(): Promise<void>;
39
+ }
40
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../../src/providers/pi/session.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,WAAW,EACX,cAAc,EACd,YAAY,EAEb,MAAM,gBAAgB,CAAC;AA8BxB,6DAA6D;AAC7D,wBAAsB,eAAe,CAAC,GAAG,EAAE,cAAc,GAAG,OAAO,CAAC,YAAY,CAAC,CAIhF;AAED,wEAAwE;AACxE,qBAAa,SAAU,YAAW,YAAY;IAqBhC,OAAO,CAAC,QAAQ,CAAC,GAAG;IApBhC,OAAO,CAAC,MAAM,CAAwB;IACtC,OAAO,CAAC,IAAI,CAA6B;IACzC,OAAO,CAAC,YAAY,CAAM;IAC1B,OAAO,CAAC,WAAW,CAAM;IAEzB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,SAAS,CAAM;IACvB,OAAO,CAAC,QAAQ,CAA4B;IAC5C,OAAO,CAAC,SAAS,CAAoC;IACrD,OAAO,CAAC,SAAS,CAAS;IAC1B,gFAAgF;IAChF,OAAO,CAAC,WAAW,CAAoC;IACvD,iFAAiF;IACjF,OAAO,CAAC,cAAc,CAAqC;IAC3D,OAAO,CAAC,eAAe,CAAuB;IAC9C,sEAAsE;IACtE,OAAO,CAAC,WAAW,CAA8C;IACjE,qFAAqF;IACrF,OAAO,CAAC,UAAU,CAAK;gBAEM,GAAG,EAAE,cAAc;IAEhD,IAAI,SAAS,IAAI,MAAM,GAAG,IAAI,CAE7B;IACD,IAAI,KAAK,IAAI,YAAY,CAExB;IAEK,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAyE9B,OAAO,CAAC,QAAQ;IAiBhB,OAAO,CAAC,UAAU;IA0ClB,OAAO,CAAC,WAAW;IA4BnB,OAAO,CAAC,WAAW;IAQb,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAoCvE,OAAO,CAAC,eAAe;IAkBjB,MAAM,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAI5C,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAU1B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAYtB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAY7B"}
@@ -0,0 +1,328 @@
1
+ import { spawn } from "node:child_process";
2
+ import * as fs from "node:fs/promises";
3
+ import * as path from "node:path";
4
+ import * as os from "node:os";
5
+ import { findBinary } from "../../utils/binary.js";
6
+ import { buildEnv, ensurePathInEnv } from "../../utils/env.js";
7
+ import { uuidv7 } from "../../utils/uuid.js";
8
+ import { resolveInstructions } from "../../utils/instructions.js";
9
+ import { injectHomeSkills } from "../../utils/skills.js";
10
+ import { parsePiStreamLine } from "./parse.js";
11
+ import { piSessionCodec } from "./codec.js";
12
+ const PI_SESSIONS_DIR = path.join(os.homedir(), ".pi", "sessions");
13
+ function parseProviderModel(model) {
14
+ const m = (model ?? "").trim();
15
+ if (!m)
16
+ return { provider: null, modelId: null };
17
+ const idx = m.indexOf("/");
18
+ if (idx < 0)
19
+ return { provider: null, modelId: m };
20
+ return { provider: m.slice(0, idx).trim() || null, modelId: m.slice(idx + 1).trim() || null };
21
+ }
22
+ function buildSessionPath() {
23
+ const ts = new Date().toISOString().replace(/[:.]/g, "-");
24
+ return path.join(PI_SESSIONS_DIR, `${ts}-${uuidv7()}.jsonl`);
25
+ }
26
+ /** Create + connect a persistent `pi --mode rpc` session. */
27
+ export async function createPiSession(ctx) {
28
+ const session = new PiSession(ctx);
29
+ await session.connect();
30
+ return session;
31
+ }
32
+ /** @internal Exported for unit testing — not part of the public API. */
33
+ export class PiSession {
34
+ ctx;
35
+ _state = "idle";
36
+ proc = null;
37
+ _sessionPath = "";
38
+ _lineBuffer = "";
39
+ _turnActive = false;
40
+ _turnText = "";
41
+ _pending = null;
42
+ _inFlight = null;
43
+ _draining = false;
44
+ /** Serial dispatch so onEvent fires in order and a turn resolves after them. */
45
+ _eventChain = Promise.resolve();
46
+ /** Decided outcome of an interrupted turn, applied when its `agent_end` acks. */
47
+ _pendingStatus = null;
48
+ _pendingMessage = null;
49
+ /** Force-resolve timer if pi never acks an abort with `agent_end`. */
50
+ _graceTimer = null;
51
+ /** Count of `agent_end`s to swallow (from turns force-resolved before their ack). */
52
+ _staleEnds = 0;
53
+ constructor(ctx) {
54
+ this.ctx = ctx;
55
+ }
56
+ get sessionId() {
57
+ return this._sessionPath || null;
58
+ }
59
+ get state() {
60
+ return this._state;
61
+ }
62
+ async connect() {
63
+ const config = this.ctx.config ?? {};
64
+ const resolved = await findBinary("pi", config.command);
65
+ const env = buildEnv(this.ctx.env);
66
+ ensurePathInEnv(env);
67
+ const cwd = this.ctx.cwd ?? process.cwd();
68
+ if (config.instructionsFile)
69
+ await resolveInstructions(config.instructionsFile);
70
+ let skillsDir = null;
71
+ if (config.skillDirs && config.skillDirs.length > 0) {
72
+ try {
73
+ skillsDir = await injectHomeSkills(config.skillDirs, "pi");
74
+ }
75
+ catch {
76
+ /* non-fatal */
77
+ }
78
+ }
79
+ await fs.mkdir(PI_SESSIONS_DIR, { recursive: true });
80
+ // Resume an existing session file, or start a new one. Pi keys sessions by
81
+ // file path; `--session <file>` resumes when the file exists, creates otherwise.
82
+ const decoded = piSessionCodec.deserialize(this.ctx.sessionParams ?? null);
83
+ const resumeId = typeof decoded?.["sessionId"] === "string" ? decoded["sessionId"] : null;
84
+ this._sessionPath = resumeId || buildSessionPath();
85
+ const { provider, modelId } = parseProviderModel(this.ctx.config?.model);
86
+ const args = [...resolved.prefixArgs, "--mode", "rpc"];
87
+ if (provider)
88
+ args.push("--provider", provider);
89
+ if (modelId)
90
+ args.push("--model", modelId);
91
+ if (config.thinking)
92
+ args.push("--thinking", config.thinking);
93
+ args.push("--tools", "read,bash,edit,write,grep,find,ls");
94
+ args.push("--session", this._sessionPath);
95
+ if (skillsDir)
96
+ args.push("--skill", skillsDir);
97
+ if (config.instructionsFile)
98
+ args.push("--append-system-prompt", config.instructionsFile);
99
+ if (config.extraArgs)
100
+ args.push(...config.extraArgs);
101
+ const proc = spawn(resolved.bin, args, { cwd, env, stdio: ["pipe", "pipe", "pipe"] });
102
+ this.proc = proc;
103
+ proc.stdout.setEncoding("utf-8");
104
+ proc.stdout.on("data", (chunk) => this.onStdout(chunk));
105
+ proc.stderr.setEncoding("utf-8");
106
+ proc.stderr.on("data", (chunk) => {
107
+ if (this.ctx.onOutput) {
108
+ try {
109
+ void this.ctx.onOutput("stderr", chunk);
110
+ }
111
+ catch {
112
+ /* swallow */
113
+ }
114
+ }
115
+ });
116
+ proc.on("exit", (code, signal) => {
117
+ if (this._state !== "closed") {
118
+ this._state = "closed";
119
+ this.failPending(`pi process exited (code=${code}, signal=${signal})`);
120
+ }
121
+ });
122
+ proc.on("error", (err) => {
123
+ if (this._state !== "closed") {
124
+ this._state = "closed";
125
+ this.failPending(err instanceof Error ? err.message : String(err));
126
+ }
127
+ });
128
+ if (this.ctx.signal) {
129
+ if (this.ctx.signal.aborted)
130
+ void this.close();
131
+ else
132
+ this.ctx.signal.addEventListener("abort", () => void this.close(), { once: true });
133
+ }
134
+ }
135
+ // -------------------------------------------------------------------------
136
+ // stdout → events (strict \n framing per pi's RPC contract)
137
+ // -------------------------------------------------------------------------
138
+ onStdout(chunk) {
139
+ if (this.ctx.onOutput) {
140
+ try {
141
+ void this.ctx.onOutput("stdout", chunk);
142
+ }
143
+ catch {
144
+ /* swallow */
145
+ }
146
+ }
147
+ this._lineBuffer += chunk;
148
+ const lines = this._lineBuffer.split("\n");
149
+ this._lineBuffer = lines.pop() ?? "";
150
+ for (const line of lines) {
151
+ const trimmed = line.replace(/\r$/, "").trim();
152
+ if (trimmed)
153
+ this.handleLine(trimmed);
154
+ }
155
+ }
156
+ handleLine(line) {
157
+ // Command acks (`{"type":"response",...}`) aren't agent events — skip.
158
+ let obj;
159
+ try {
160
+ obj = JSON.parse(line);
161
+ }
162
+ catch {
163
+ return;
164
+ }
165
+ if (obj && typeof obj === "object" && obj["type"] === "response")
166
+ return;
167
+ const ev = parsePiStreamLine(line);
168
+ if (!ev)
169
+ return;
170
+ // `agent_end` (mapped to "result") is a turn terminal. Swallow a stale end
171
+ // from a turn that was already force-resolved (timed out and pi never acked
172
+ // before the grace deadline) so it can't resolve the NEXT turn.
173
+ if (ev.type === "result" && this._staleEnds > 0) {
174
+ this._staleEnds--;
175
+ return;
176
+ }
177
+ // Only accumulate/emit while a turn is active so stragglers from a finished
178
+ // turn don't contaminate the next one's summary or event stream.
179
+ if (!this._turnActive)
180
+ return;
181
+ if (ev.type === "assistant")
182
+ this._turnText += ev.text;
183
+ // Emit through the serial chain so handlers run in order.
184
+ if (this.ctx.onEvent) {
185
+ const handler = this.ctx.onEvent;
186
+ this._eventChain = this._eventChain.then(() => handler(ev)).catch(() => { });
187
+ }
188
+ // agent_end → the turn is complete. If the turn was interrupted, apply the
189
+ // decided status (timeout/aborted); otherwise it completed.
190
+ if (ev.type === "result") {
191
+ const status = this._pendingStatus ?? "completed";
192
+ const message = this._pendingMessage ?? undefined;
193
+ void this._eventChain.then(() => this.resolveTurn(status, message));
194
+ }
195
+ }
196
+ resolveTurn(status, errorMessage) {
197
+ const pending = this._pending;
198
+ if (!pending || pending.settled)
199
+ return;
200
+ pending.settled = true;
201
+ pending.cleanup();
202
+ if (this._graceTimer) {
203
+ clearTimeout(this._graceTimer);
204
+ this._graceTimer = null;
205
+ }
206
+ const summary = this._turnText || null;
207
+ // Reset per-turn accumulators here (not only in send()) so anything that
208
+ // arrives between turns can't leak into the next turn's summary.
209
+ this._turnText = "";
210
+ this._turnActive = false;
211
+ this._inFlight = null;
212
+ this._pending = null;
213
+ this._pendingStatus = null;
214
+ this._pendingMessage = null;
215
+ if (this._state !== "closed")
216
+ this._state = "idle";
217
+ pending.resolve({
218
+ summary,
219
+ costUsd: null,
220
+ status,
221
+ errorCode: status === "completed" ? null : status === "failed" ? "error" : status,
222
+ errorMessage: errorMessage ?? null,
223
+ });
224
+ }
225
+ failPending(message) {
226
+ if (this._pending && !this._pending.settled)
227
+ this.resolveTurn("failed", message);
228
+ }
229
+ // -------------------------------------------------------------------------
230
+ // Public API
231
+ // -------------------------------------------------------------------------
232
+ async send(message, options) {
233
+ if (this._state === "closed")
234
+ throw new Error("Session is closed");
235
+ if (this._draining)
236
+ throw new Error("Session is draining — no new sends accepted");
237
+ if (this._turnActive) {
238
+ throw new Error("Pi session is busy — a turn is already in progress (concurrentSend not supported)");
239
+ }
240
+ if (!this.proc?.stdin)
241
+ throw new Error("Pi session is not connected");
242
+ const uuid = uuidv7();
243
+ this._turnActive = true;
244
+ this._turnText = "";
245
+ this._state = "thinking";
246
+ const timeoutSec = options?.timeoutSec ?? this.ctx.config?.timeoutSec;
247
+ const result = new Promise((resolve) => {
248
+ let timer = null;
249
+ const onAbort = () => this.onTurnInterrupt("aborted");
250
+ const cleanup = () => {
251
+ if (timer)
252
+ clearTimeout(timer);
253
+ options?.signal?.removeEventListener("abort", onAbort);
254
+ };
255
+ this._pending = { resolve, settled: false, cleanup };
256
+ if (timeoutSec && timeoutSec > 0) {
257
+ timer = setTimeout(() => this.onTurnInterrupt("timeout"), timeoutSec * 1000);
258
+ }
259
+ if (options?.signal) {
260
+ if (options.signal.aborted)
261
+ this.onTurnInterrupt("aborted");
262
+ else
263
+ options.signal.addEventListener("abort", onAbort, { once: true });
264
+ }
265
+ });
266
+ this._inFlight = result;
267
+ this.proc.stdin.write(JSON.stringify({ id: uuid, type: "prompt", message }) + "\n");
268
+ return { uuid, result };
269
+ }
270
+ onTurnInterrupt(status) {
271
+ if (!this._pending || this._pending.settled)
272
+ return;
273
+ // Decide the outcome, send `abort`, but keep the turn open until pi acks with
274
+ // `agent_end` so the aborted turn's stragglers stay inside this turn (and
275
+ // don't bleed into the next). Force-resolve after a grace deadline if pi
276
+ // never acks — and then swallow the eventual stale `agent_end`.
277
+ this._pendingStatus = status;
278
+ this._pendingMessage = status === "timeout" ? "Turn exceeded its timeout" : "Turn aborted";
279
+ void this.interrupt();
280
+ if (this._graceTimer)
281
+ clearTimeout(this._graceTimer);
282
+ const graceMs = (this.ctx.config?.graceSec ?? 5) * 1000;
283
+ this._graceTimer = setTimeout(() => {
284
+ this._graceTimer = null;
285
+ this._staleEnds++;
286
+ this.resolveTurn(status, status === "timeout" ? "Turn exceeded its timeout" : "Turn aborted");
287
+ }, graceMs);
288
+ }
289
+ async cancel(_uuid) {
290
+ return { cancelled: false };
291
+ }
292
+ async interrupt() {
293
+ if (this.proc?.stdin && !this.proc.stdin.destroyed) {
294
+ try {
295
+ this.proc.stdin.write(JSON.stringify({ type: "abort" }) + "\n");
296
+ }
297
+ catch {
298
+ /* best effort */
299
+ }
300
+ }
301
+ }
302
+ async drain() {
303
+ this._draining = true;
304
+ if (this._inFlight) {
305
+ try {
306
+ await this._inFlight;
307
+ }
308
+ catch {
309
+ /* ignore */
310
+ }
311
+ }
312
+ await this.close();
313
+ }
314
+ async close() {
315
+ this._state = "closed";
316
+ const proc = this.proc;
317
+ this.proc = null;
318
+ if (proc && !proc.killed) {
319
+ try {
320
+ proc.kill();
321
+ }
322
+ catch {
323
+ /* ignore */
324
+ }
325
+ }
326
+ }
327
+ }
328
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../../src/providers/pi/session.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAqB,MAAM,oBAAoB,CAAC;AAC9D,OAAO,KAAK,EAAE,MAAM,kBAAkB,CAAC;AACvC,OAAO,KAAK,IAAI,MAAM,WAAW,CAAC;AAClC,OAAO,KAAK,EAAE,MAAM,SAAS,CAAC;AAU9B,OAAO,EAAE,UAAU,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EAAE,QAAQ,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC7C,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAC;AAClE,OAAO,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,EAAE,iBAAiB,EAAE,MAAM,YAAY,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAE5C,MAAM,eAAe,GAAG,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,UAAU,CAAC,CAAC;AAEnE,SAAS,kBAAkB,CAAC,KAAyB;IACnD,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;IAC/B,IAAI,CAAC,CAAC;QAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC;IACjD,MAAM,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;IAC3B,IAAI,GAAG,GAAG,CAAC;QAAE,OAAO,EAAE,QAAQ,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,EAAE,CAAC;IACnD,OAAO,EAAE,QAAQ,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,KAAK,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,IAAI,EAAE,CAAC;AAChG,CAAC;AAED,SAAS,gBAAgB;IACvB,MAAM,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC;IAC1D,OAAO,IAAI,CAAC,IAAI,CAAC,eAAe,EAAE,GAAG,EAAE,IAAI,MAAM,EAAE,QAAQ,CAAC,CAAC;AAC/D,CAAC;AAQD,6DAA6D;AAC7D,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,GAAmB;IACvD,MAAM,OAAO,GAAG,IAAI,SAAS,CAAC,GAAG,CAAC,CAAC;IACnC,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;IACxB,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,wEAAwE;AACxE,MAAM,OAAO,SAAS;IAqBS;IApBrB,MAAM,GAAiB,MAAM,CAAC;IAC9B,IAAI,GAAwB,IAAI,CAAC;IACjC,YAAY,GAAG,EAAE,CAAC;IAClB,WAAW,GAAG,EAAE,CAAC;IAEjB,WAAW,GAAG,KAAK,CAAC;IACpB,SAAS,GAAG,EAAE,CAAC;IACf,QAAQ,GAAuB,IAAI,CAAC;IACpC,SAAS,GAA+B,IAAI,CAAC;IAC7C,SAAS,GAAG,KAAK,CAAC;IAC1B,gFAAgF;IACxE,WAAW,GAAkB,OAAO,CAAC,OAAO,EAAE,CAAC;IACvD,iFAAiF;IACzE,cAAc,GAAgC,IAAI,CAAC;IACnD,eAAe,GAAkB,IAAI,CAAC;IAC9C,sEAAsE;IAC9D,WAAW,GAAyC,IAAI,CAAC;IACjE,qFAAqF;IAC7E,UAAU,GAAG,CAAC,CAAC;IAEvB,YAA6B,GAAmB;QAAnB,QAAG,GAAH,GAAG,CAAgB;IAAG,CAAC;IAEpD,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,YAAY,IAAI,IAAI,CAAC;IACnC,CAAC;IACD,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,OAAO;QACX,MAAM,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAG,MAAM,UAAU,CAAC,IAAI,EAAE,MAAM,CAAC,OAAO,CAAC,CAAC;QACxD,MAAM,GAAG,GAAG,QAAQ,CAAC,IAAI,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACnC,eAAe,CAAC,GAAG,CAAC,CAAC;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,EAAE,CAAC;QAE1C,IAAI,MAAM,CAAC,gBAAgB;YAAE,MAAM,mBAAmB,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAChF,IAAI,SAAS,GAAkB,IAAI,CAAC;QACpC,IAAI,MAAM,CAAC,SAAS,IAAI,MAAM,CAAC,SAAS,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpD,IAAI,CAAC;gBACH,SAAS,GAAG,MAAM,gBAAgB,CAAC,MAAM,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;YAC7D,CAAC;YAAC,MAAM,CAAC;gBACP,eAAe;YACjB,CAAC;QACH,CAAC;QACD,MAAM,EAAE,CAAC,KAAK,CAAC,eAAe,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;QAErD,2EAA2E;QAC3E,iFAAiF;QACjF,MAAM,OAAO,GAAG,cAAc,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,CAAC,aAAa,IAAI,IAAI,CAAC,CAAC;QAC3E,MAAM,QAAQ,GAAG,OAAO,OAAO,EAAE,CAAC,WAAW,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAE,OAAO,CAAC,WAAW,CAAY,CAAC,CAAC,CAAC,IAAI,CAAC;QACtG,IAAI,CAAC,YAAY,GAAG,QAAQ,IAAI,gBAAgB,EAAE,CAAC;QAEnD,MAAM,EAAE,QAAQ,EAAE,OAAO,EAAE,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,KAAK,CAAC,CAAC;QACzE,MAAM,IAAI,GAAG,CAAC,GAAG,QAAQ,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,CAAC,CAAC;QACvD,IAAI,QAAQ;YAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,QAAQ,CAAC,CAAC;QAChD,IAAI,OAAO;YAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;QAC3C,IAAI,MAAM,CAAC,QAAQ;YAAE,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,QAAQ,CAAC,CAAC;QAC9D,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,mCAAmC,CAAC,CAAC;QAC1D,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAC1C,IAAI,SAAS;YAAE,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC;QAC/C,IAAI,MAAM,CAAC,gBAAgB;YAAE,IAAI,CAAC,IAAI,CAAC,wBAAwB,EAAE,MAAM,CAAC,gBAAgB,CAAC,CAAC;QAC1F,IAAI,MAAM,CAAC,SAAS;YAAE,IAAI,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QAErD,MAAM,IAAI,GAAG,KAAK,CAAC,QAAQ,CAAC,GAAG,EAAE,IAAI,EAAE,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,CAAC,CAAC;QACtF,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QAEjB,IAAI,CAAC,MAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,CAAC,MAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC,CAAC;QACjE,IAAI,CAAC,MAAO,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAClC,IAAI,CAAC,MAAO,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,KAAa,EAAE,EAAE;YACxC,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;gBACtB,IAAI,CAAC;oBACH,KAAK,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;gBAC1C,CAAC;gBAAC,MAAM,CAAC;oBACP,aAAa;gBACf,CAAC;YACH,CAAC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE;YAC/B,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC7B,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;gBACvB,IAAI,CAAC,WAAW,CAAC,2BAA2B,IAAI,YAAY,MAAM,GAAG,CAAC,CAAC;YACzE,CAAC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,EAAE,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,EAAE;YACvB,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ,EAAE,CAAC;gBAC7B,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;gBACvB,IAAI,CAAC,WAAW,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC;YACrE,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,CAAC;YACpB,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO;gBAAE,KAAK,IAAI,CAAC,KAAK,EAAE,CAAC;;gBAC1C,IAAI,CAAC,GAAG,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,GAAG,EAAE,CAAC,KAAK,IAAI,CAAC,KAAK,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;QAC1F,CAAC;IACH,CAAC;IAED,4EAA4E;IAC5E,4DAA4D;IAC5D,4EAA4E;IAEpE,QAAQ,CAAC,KAAa;QAC5B,IAAI,IAAI,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC;YACtB,IAAI,CAAC;gBACH,KAAK,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;YAC1C,CAAC;YAAC,MAAM,CAAC;gBACP,aAAa;YACf,CAAC;QACH,CAAC;QACD,IAAI,CAAC,WAAW,IAAI,KAAK,CAAC;QAC1B,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QACrC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,CAAC;YAC/C,IAAI,OAAO;gBAAE,IAAI,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QACxC,CAAC;IACH,CAAC;IAEO,UAAU,CAAC,IAAY;QAC7B,uEAAuE;QACvE,IAAI,GAAY,CAAC;QACjB,IAAI,CAAC;YACH,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO;QACT,CAAC;QACD,IAAI,GAAG,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAK,GAA+B,CAAC,MAAM,CAAC,KAAK,UAAU;YAAE,OAAO;QAEtG,MAAM,EAAE,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC;QACnC,IAAI,CAAC,EAAE;YAAE,OAAO;QAEhB,2EAA2E;QAC3E,4EAA4E;QAC5E,gEAAgE;QAChE,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,UAAU,GAAG,CAAC,EAAE,CAAC;YAChD,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,OAAO;QACT,CAAC;QAED,4EAA4E;QAC5E,iEAAiE;QACjE,IAAI,CAAC,IAAI,CAAC,WAAW;YAAE,OAAO;QAE9B,IAAI,EAAE,CAAC,IAAI,KAAK,WAAW;YAAE,IAAI,CAAC,SAAS,IAAI,EAAE,CAAC,IAAI,CAAC;QAEvD,0DAA0D;QAC1D,IAAI,IAAI,CAAC,GAAG,CAAC,OAAO,EAAE,CAAC;YACrB,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC;YACjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,GAAE,CAAC,CAAC,CAAC;QAC9E,CAAC;QAED,2EAA2E;QAC3E,4DAA4D;QAC5D,IAAI,EAAE,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,IAAI,CAAC,cAAc,IAAI,WAAW,CAAC;YAClD,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,IAAI,SAAS,CAAC;YAClD,KAAK,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QACtE,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,MAA4B,EAAE,YAAqB;QACrE,MAAM,OAAO,GAAG,IAAI,CAAC,QAAQ,CAAC;QAC9B,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,OAAO;YAAE,OAAO;QACxC,OAAO,CAAC,OAAO,GAAG,IAAI,CAAC;QACvB,OAAO,CAAC,OAAO,EAAE,CAAC;QAClB,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;YAC/B,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QAC1B,CAAC;QACD,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC;QACvC,yEAAyE;QACzE,iEAAiE;QACjE,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;QACzB,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC;QACrB,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;QAC3B,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;QAC5B,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ;YAAE,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACnD,OAAO,CAAC,OAAO,CAAC;YACd,OAAO;YACP,OAAO,EAAE,IAAI;YACb,MAAM;YACN,SAAS,EAAE,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM;YACjF,YAAY,EAAE,YAAY,IAAI,IAAI;SACnC,CAAC,CAAC;IACL,CAAC;IAEO,WAAW,CAAC,OAAe;QACjC,IAAI,IAAI,CAAC,QAAQ,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,OAAO;YAAE,IAAI,CAAC,WAAW,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnF,CAAC;IAED,4EAA4E;IAC5E,aAAa;IACb,4EAA4E;IAE5E,KAAK,CAAC,IAAI,CAAC,OAAe,EAAE,OAAqB;QAC/C,IAAI,IAAI,CAAC,MAAM,KAAK,QAAQ;YAAE,MAAM,IAAI,KAAK,CAAC,mBAAmB,CAAC,CAAC;QACnE,IAAI,IAAI,CAAC,SAAS;YAAE,MAAM,IAAI,KAAK,CAAC,6CAA6C,CAAC,CAAC;QACnF,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,mFAAmF,CAAC,CAAC;QACvG,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK;YAAE,MAAM,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAC;QAEtE,MAAM,IAAI,GAAG,MAAM,EAAE,CAAC;QACtB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,SAAS,GAAG,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,GAAG,UAAU,CAAC;QAEzB,MAAM,UAAU,GAAG,OAAO,EAAE,UAAU,IAAI,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,UAAU,CAAC;QACtE,MAAM,MAAM,GAAG,IAAI,OAAO,CAAa,CAAC,OAAO,EAAE,EAAE;YACjD,IAAI,KAAK,GAAyC,IAAI,CAAC;YACvD,MAAM,OAAO,GAAG,GAAS,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;YAC5D,MAAM,OAAO,GAAG,GAAS,EAAE;gBACzB,IAAI,KAAK;oBAAE,YAAY,CAAC,KAAK,CAAC,CAAC;gBAC/B,OAAO,EAAE,MAAM,EAAE,mBAAmB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC;YACzD,CAAC,CAAC;YACF,IAAI,CAAC,QAAQ,GAAG,EAAE,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC;YACrD,IAAI,UAAU,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;gBACjC,KAAK,GAAG,UAAU,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,EAAE,UAAU,GAAG,IAAI,CAAC,CAAC;YAC/E,CAAC;YACD,IAAI,OAAO,EAAE,MAAM,EAAE,CAAC;gBACpB,IAAI,OAAO,CAAC,MAAM,CAAC,OAAO;oBAAE,IAAI,CAAC,eAAe,CAAC,SAAS,CAAC,CAAC;;oBACvD,OAAO,CAAC,MAAM,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACzE,CAAC;QACH,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,SAAS,GAAG,MAAM,CAAC;QAExB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;QACpF,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;IAC1B,CAAC;IAEO,eAAe,CAAC,MAA6B;QACnD,IAAI,CAAC,IAAI,CAAC,QAAQ,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO;YAAE,OAAO;QACpD,8EAA8E;QAC9E,0EAA0E;QAC1E,yEAAyE;QACzE,gEAAgE;QAChE,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC;QAC7B,IAAI,CAAC,eAAe,GAAG,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,cAAc,CAAC;QAC3F,KAAK,IAAI,CAAC,SAAS,EAAE,CAAC;QACtB,IAAI,IAAI,CAAC,WAAW;YAAE,YAAY,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;QACrD,MAAM,OAAO,GAAG,CAAC,IAAI,CAAC,GAAG,CAAC,MAAM,EAAE,QAAQ,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC;QACxD,IAAI,CAAC,WAAW,GAAG,UAAU,CAAC,GAAG,EAAE;YACjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;YACxB,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,MAAM,KAAK,SAAS,CAAC,CAAC,CAAC,2BAA2B,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC;QAChG,CAAC,EAAE,OAAO,CAAC,CAAC;IACd,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,KAAa;QACxB,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,CAAC;IAC9B,CAAC;IAED,KAAK,CAAC,SAAS;QACb,IAAI,IAAI,CAAC,IAAI,EAAE,KAAK,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,SAAS,EAAE,CAAC;YACnD,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC;YAClE,CAAC;YAAC,MAAM,CAAC;gBACP,iBAAiB;YACnB,CAAC;QACH,CAAC;IACH,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,SAAS,GAAG,IAAI,CAAC;QACtB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,SAAS,CAAC;YACvB,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY;YACd,CAAC;QACH,CAAC;QACD,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;IACrB,CAAC;IAED,KAAK,CAAC,KAAK;QACT,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAC;QACvB,MAAM,IAAI,GAAG,IAAI,CAAC,IAAI,CAAC;QACvB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC;YACzB,IAAI,CAAC;gBACH,IAAI,CAAC,IAAI,EAAE,CAAC;YACd,CAAC;YAAC,MAAM,CAAC;gBACP,YAAY;YACd,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/process/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkC,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAiCrF,eAAO,MAAM,eAAe,EAAE,cAgB7B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/process/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAkC,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAiCrF,eAAO,MAAM,eAAe,EAAE,cAiB7B,CAAC"}
@@ -42,6 +42,7 @@ export const processProvider = {
42
42
  planMode: false,
43
43
  concurrentSend: false,
44
44
  cancelQueuedMessage: false,
45
+ modes: false,
45
46
  },
46
47
  execute: executeProcessProvider,
47
48
  resolveAuth: resolveProcessAuth,
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/process/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,KAAK,UAAU,kBAAkB,CAAC,GAAwB;IACxD,kFAAkF;IAClF,gFAAgF;IAChF,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC;QAClB,OAAO;YACL,YAAY,EAAE,SAAS;YACvB,MAAM,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,iEAAiE,EAAE;YACtG,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,YAAY;SACrB,CAAC;IACJ,CAAC;IACD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5D,OAAO;YACL,YAAY,EAAE,SAAS;YACvB,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,CAAC,GAAG,EAAE;YACvD,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,YAAY;SACrB,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,YAAY,EAAE,SAAS;YACvB,MAAM,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YACrF,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,YAAY;SACrB,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAmB;IAC7C,IAAI,EAAE,SAAS;IACf,YAAY,EAAE;QACZ,QAAQ,EAAE,KAAK;QACf,cAAc,EAAE,KAAK;QACrB,YAAY,EAAE,KAAK;QACnB,GAAG,EAAE,KAAK;QACV,MAAM,EAAE,KAAK;QACb,YAAY,EAAE,IAAI;QAClB,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,KAAK;QACf,cAAc,EAAE,KAAK;QACrB,mBAAmB,EAAE,KAAK;KAC3B;IACD,OAAO,EAAE,sBAAsB;IAC/B,WAAW,EAAE,kBAAkB;CAChC,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/process/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,sBAAsB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,uBAAuB,CAAC;AAEhE,KAAK,UAAU,kBAAkB,CAAC,GAAwB;IACxD,kFAAkF;IAClF,gFAAgF;IAChF,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC;QAClB,OAAO;YACL,YAAY,EAAE,SAAS;YACvB,MAAM,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,iEAAiE,EAAE;YACtG,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,YAAY;SACrB,CAAC;IACJ,CAAC;IACD,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,uBAAuB,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;QAC5D,OAAO;YACL,YAAY,EAAE,SAAS;YACvB,MAAM,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,YAAY,EAAE,QAAQ,CAAC,GAAG,EAAE;YACvD,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,YAAY;SACrB,CAAC;IACJ,CAAC;IAAC,OAAO,GAAG,EAAE,CAAC;QACb,OAAO;YACL,YAAY,EAAE,SAAS;YACvB,MAAM,EAAE,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,EAAE;YACrF,OAAO,EAAE,EAAE;YACX,MAAM,EAAE,YAAY;SACrB,CAAC;IACJ,CAAC;AACH,CAAC;AAED,MAAM,CAAC,MAAM,eAAe,GAAmB;IAC7C,IAAI,EAAE,SAAS;IACf,YAAY,EAAE;QACZ,QAAQ,EAAE,KAAK;QACf,cAAc,EAAE,KAAK;QACrB,YAAY,EAAE,KAAK;QACnB,GAAG,EAAE,KAAK;QACV,MAAM,EAAE,KAAK;QACb,YAAY,EAAE,IAAI;QAClB,SAAS,EAAE,IAAI;QACf,QAAQ,EAAE,KAAK;QACf,cAAc,EAAE,KAAK;QACrB,mBAAmB,EAAE,KAAK;QAC1B,KAAK,EAAE,KAAK;KACb;IACD,OAAO,EAAE,sBAAsB;IAC/B,WAAW,EAAE,kBAAkB;CAChC,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import type { ProviderModule } from "./types.js";
2
+ import "./providers/acp/index.js";
2
3
  export declare function getProvider(type: string): ProviderModule;
3
4
  export declare function listProviders(): string[];
4
5
  export declare function registerProvider(provider: ProviderModule): void;
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAsBjD,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAOxD;AAED,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAExC;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAE/D"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAajD,OAAO,0BAA0B,CAAC;AAelC,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,cAAc,CAOxD;AAED,wBAAgB,aAAa,IAAI,MAAM,EAAE,CAExC;AAED,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,cAAc,GAAG,IAAI,CAE/D"}
package/dist/registry.js CHANGED
@@ -6,6 +6,11 @@ import { geminiProvider } from "./providers/gemini/index.js";
6
6
  import { cursorProvider } from "./providers/cursor/index.js";
7
7
  import { opencodeProvider } from "./providers/opencode/index.js";
8
8
  import { piProvider } from "./providers/pi/index.js";
9
+ import { copilotProvider } from "./providers/copilot/index.js";
10
+ // Side-effect import: registers the ACP factory so `loadProvidersFromConfig`
11
+ // can build `extends: "acp"` providers. Cheap — the ACP SDK is only loaded when
12
+ // an ACP session actually runs.
13
+ import "./providers/acp/index.js";
9
14
  const providers = new Map();
10
15
  // Pre-register built-in providers
11
16
  providers.set("claude", claudeProvider);
@@ -16,6 +21,7 @@ providers.set("gemini", geminiProvider);
16
21
  providers.set("cursor", cursorProvider);
17
22
  providers.set("opencode", opencodeProvider);
18
23
  providers.set("pi", piProvider);
24
+ providers.set("copilot", copilotProvider);
19
25
  export function getProvider(type) {
20
26
  const provider = providers.get(type);
21
27
  if (!provider) {
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAErD,MAAM,SAAS,GAAG,IAAI,GAAG,EAA0B,CAAC;AAEpD,kCAAkC;AAClC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;AACxC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AACtC,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;AAC5C,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;AAC1C,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;AACxC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;AACxC,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;AAC5C,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAEhC,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,SAAS,GAAG,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,iBAAiB,SAAS,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAAwB;IACvD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AACrD,OAAO,EAAE,eAAe,EAAE,MAAM,8BAA8B,CAAC;AAC/D,6EAA6E;AAC7E,gFAAgF;AAChF,gCAAgC;AAChC,OAAO,0BAA0B,CAAC;AAElC,MAAM,SAAS,GAAG,IAAI,GAAG,EAA0B,CAAC;AAEpD,kCAAkC;AAClC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;AACxC,SAAS,CAAC,GAAG,CAAC,OAAO,EAAE,aAAa,CAAC,CAAC;AACtC,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;AAC5C,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;AAC1C,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;AACxC,SAAS,CAAC,GAAG,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC;AACxC,SAAS,CAAC,GAAG,CAAC,UAAU,EAAE,gBAAgB,CAAC,CAAC;AAC5C,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;AAChC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,eAAe,CAAC,CAAC;AAE1C,MAAM,UAAU,WAAW,CAAC,IAAY;IACtC,MAAM,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;IACrC,IAAI,CAAC,QAAQ,EAAE,CAAC;QACd,MAAM,SAAS,GAAG,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnD,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,iBAAiB,SAAS,EAAE,CAAC,CAAC;IAC9E,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,aAAa;IAC3B,OAAO,CAAC,GAAG,SAAS,CAAC,IAAI,EAAE,CAAC,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,QAAwB;IACvD,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE,QAAQ,CAAC,CAAC;AACzC,CAAC"}