@oratis/lisa 0.11.1 → 0.14.0

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 (142) hide show
  1. package/dist/agent.d.ts +2 -0
  2. package/dist/agent.d.ts.map +1 -1
  3. package/dist/agent.js +20 -1
  4. package/dist/agent.js.map +1 -1
  5. package/dist/agents/pty.d.ts.map +1 -1
  6. package/dist/agents/pty.js +13 -2
  7. package/dist/agents/pty.js.map +1 -1
  8. package/dist/autonomy/state.d.ts +14 -0
  9. package/dist/autonomy/state.d.ts.map +1 -0
  10. package/dist/autonomy/state.js +54 -0
  11. package/dist/autonomy/state.js.map +1 -0
  12. package/dist/cli/mail.d.ts +2 -0
  13. package/dist/cli/mail.d.ts.map +1 -0
  14. package/dist/cli/mail.js +209 -0
  15. package/dist/cli/mail.js.map +1 -0
  16. package/dist/cli/pair.d.ts +15 -0
  17. package/dist/cli/pair.d.ts.map +1 -0
  18. package/dist/cli/pair.js +152 -0
  19. package/dist/cli/pair.js.map +1 -0
  20. package/dist/cli.js +22 -14
  21. package/dist/cli.js.map +1 -1
  22. package/dist/consent/store.d.ts +2 -2
  23. package/dist/consent/store.d.ts.map +1 -1
  24. package/dist/consent/store.js +3 -2
  25. package/dist/consent/store.js.map +1 -1
  26. package/dist/edition.d.ts +24 -0
  27. package/dist/edition.d.ts.map +1 -0
  28. package/dist/edition.js +19 -0
  29. package/dist/edition.js.map +1 -0
  30. package/dist/heartbeat/runner.d.ts.map +1 -1
  31. package/dist/heartbeat/runner.js +8 -0
  32. package/dist/heartbeat/runner.js.map +1 -1
  33. package/dist/idle/runner.d.ts.map +1 -1
  34. package/dist/idle/runner.js +7 -0
  35. package/dist/idle/runner.js.map +1 -1
  36. package/dist/mail/accounts.d.ts +20 -0
  37. package/dist/mail/accounts.d.ts.map +1 -0
  38. package/dist/mail/accounts.js +113 -0
  39. package/dist/mail/accounts.js.map +1 -0
  40. package/dist/mail/alerts.d.ts +29 -0
  41. package/dist/mail/alerts.d.ts.map +1 -0
  42. package/dist/mail/alerts.js +40 -0
  43. package/dist/mail/alerts.js.map +1 -0
  44. package/dist/mail/classify.d.ts +26 -0
  45. package/dist/mail/classify.d.ts.map +1 -0
  46. package/dist/mail/classify.js +191 -0
  47. package/dist/mail/classify.js.map +1 -0
  48. package/dist/mail/connectors/gmail.d.ts +55 -0
  49. package/dist/mail/connectors/gmail.d.ts.map +1 -0
  50. package/dist/mail/connectors/gmail.js +87 -0
  51. package/dist/mail/connectors/gmail.js.map +1 -0
  52. package/dist/mail/connectors/imap.d.ts +13 -0
  53. package/dist/mail/connectors/imap.d.ts.map +1 -0
  54. package/dist/mail/connectors/imap.js +136 -0
  55. package/dist/mail/connectors/imap.js.map +1 -0
  56. package/dist/mail/digest.d.ts +21 -0
  57. package/dist/mail/digest.d.ts.map +1 -0
  58. package/dist/mail/digest.js +89 -0
  59. package/dist/mail/digest.js.map +1 -0
  60. package/dist/mail/google-oauth.d.ts +50 -0
  61. package/dist/mail/google-oauth.d.ts.map +1 -0
  62. package/dist/mail/google-oauth.js +74 -0
  63. package/dist/mail/google-oauth.js.map +1 -0
  64. package/dist/mail/hosts.d.ts +3 -0
  65. package/dist/mail/hosts.d.ts.map +1 -0
  66. package/dist/mail/hosts.js +19 -0
  67. package/dist/mail/hosts.js.map +1 -0
  68. package/dist/mail/scheduler.d.ts +9 -0
  69. package/dist/mail/scheduler.d.ts.map +1 -0
  70. package/dist/mail/scheduler.js +21 -0
  71. package/dist/mail/scheduler.js.map +1 -0
  72. package/dist/mail/service.d.ts +32 -0
  73. package/dist/mail/service.d.ts.map +1 -0
  74. package/dist/mail/service.js +129 -0
  75. package/dist/mail/service.js.map +1 -0
  76. package/dist/mail/store.d.ts +7 -0
  77. package/dist/mail/store.d.ts.map +1 -0
  78. package/dist/mail/store.js +58 -0
  79. package/dist/mail/store.js.map +1 -0
  80. package/dist/mail/types.d.ts +114 -0
  81. package/dist/mail/types.d.ts.map +1 -0
  82. package/dist/mail/types.js +26 -0
  83. package/dist/mail/types.js.map +1 -0
  84. package/dist/providers/anthropic.d.ts.map +1 -1
  85. package/dist/providers/anthropic.js +43 -21
  86. package/dist/providers/anthropic.js.map +1 -1
  87. package/dist/providers/gemini.d.ts.map +1 -1
  88. package/dist/providers/gemini.js +67 -64
  89. package/dist/providers/gemini.js.map +1 -1
  90. package/dist/providers/openai.d.ts.map +1 -1
  91. package/dist/providers/openai.js +77 -71
  92. package/dist/providers/openai.js.map +1 -1
  93. package/dist/providers/registry.d.ts +10 -0
  94. package/dist/providers/registry.d.ts.map +1 -1
  95. package/dist/providers/registry.js +26 -0
  96. package/dist/providers/registry.js.map +1 -1
  97. package/dist/providers/stream-retry.d.ts +37 -0
  98. package/dist/providers/stream-retry.d.ts.map +1 -0
  99. package/dist/providers/stream-retry.js +92 -0
  100. package/dist/providers/stream-retry.js.map +1 -0
  101. package/dist/providers/types.d.ts +3 -0
  102. package/dist/providers/types.d.ts.map +1 -1
  103. package/dist/subagent.d.ts +2 -0
  104. package/dist/subagent.d.ts.map +1 -1
  105. package/dist/subagent.js +1 -0
  106. package/dist/subagent.js.map +1 -1
  107. package/dist/web/cloudAuth.d.ts +57 -0
  108. package/dist/web/cloudAuth.d.ts.map +1 -0
  109. package/dist/web/cloudAuth.js +139 -0
  110. package/dist/web/cloudAuth.js.map +1 -0
  111. package/dist/web/island.d.ts.map +1 -1
  112. package/dist/web/island.js +1 -0
  113. package/dist/web/island.js.map +1 -1
  114. package/dist/web/lisa-client.d.ts +1 -1
  115. package/dist/web/lisa-client.d.ts.map +1 -1
  116. package/dist/web/lisa-client.js +703 -40
  117. package/dist/web/lisa-client.js.map +1 -1
  118. package/dist/web/lisa-css.d.ts +1 -1
  119. package/dist/web/lisa-css.d.ts.map +1 -1
  120. package/dist/web/lisa-css.js +568 -43
  121. package/dist/web/lisa-css.js.map +1 -1
  122. package/dist/web/lisa-html.d.ts +1 -1
  123. package/dist/web/lisa-html.d.ts.map +1 -1
  124. package/dist/web/lisa-html.js +71 -21
  125. package/dist/web/lisa-html.js.map +1 -1
  126. package/dist/web/pairing.d.ts +37 -0
  127. package/dist/web/pairing.d.ts.map +1 -0
  128. package/dist/web/pairing.js +79 -0
  129. package/dist/web/pairing.js.map +1 -0
  130. package/dist/web/push.d.ts +91 -0
  131. package/dist/web/push.d.ts.map +1 -1
  132. package/dist/web/push.js +250 -9
  133. package/dist/web/push.js.map +1 -1
  134. package/dist/web/qr-svg.d.ts +11 -0
  135. package/dist/web/qr-svg.d.ts.map +1 -0
  136. package/dist/web/qr-svg.js +41 -0
  137. package/dist/web/qr-svg.js.map +1 -0
  138. package/dist/web/server.d.ts +1 -1
  139. package/dist/web/server.d.ts.map +1 -1
  140. package/dist/web/server.js +378 -14
  141. package/dist/web/server.js.map +1 -1
  142. package/package.json +4 -1
@@ -1,3 +1,4 @@
1
+ import { withStreamRetry } from "./stream-retry.js";
1
2
  export class GeminiProvider {
2
3
  name = "gemini";
3
4
  // Lazily constructed on first runTurn so that merely importing the provider
@@ -36,74 +37,76 @@ export class GeminiProvider {
36
37
  },
37
38
  ]
38
39
  : undefined;
39
- const stream = await client.models.generateContentStream({
40
- model: opts.model,
41
- contents,
42
- config: {
43
- // Aborts the in-flight request (the SDK then throws an abort error).
44
- abortSignal: opts.signal,
45
- systemInstruction: opts.systemPrompt,
46
- tools,
47
- maxOutputTokens: opts.maxTokens ?? 16_000,
48
- },
49
- });
50
- let text = "";
51
- const toolCalls = [];
52
- let finish = "STOP";
53
- let inputTokens = 0;
54
- let outputTokens = 0;
55
- for await (const chunk of stream) {
56
- const cand = chunk.candidates?.[0];
57
- if (cand?.finishReason)
58
- finish = cand.finishReason;
59
- const parts = cand?.content?.parts ?? [];
60
- for (const p of parts) {
61
- if (typeof p.text === "string" && p.text.length > 0) {
62
- text += p.text;
63
- opts.handlers?.onTextDelta?.(p.text);
40
+ // Per-attempt state lives inside the retry closure so it resets cleanly on
41
+ // a transient empty-stream retry (see withStreamRetry).
42
+ return withStreamRetry({ signal: opts.signal }, async (markEmitted) => {
43
+ const stream = await client.models.generateContentStream({
44
+ model: opts.model,
45
+ contents,
46
+ config: {
47
+ // Aborts the in-flight request (the SDK then throws an abort error).
48
+ abortSignal: opts.signal,
49
+ systemInstruction: opts.systemPrompt,
50
+ tools,
51
+ maxOutputTokens: opts.maxTokens ?? 16_000,
52
+ },
53
+ });
54
+ let text = "";
55
+ const toolCalls = [];
56
+ let inputTokens = 0;
57
+ let outputTokens = 0;
58
+ for await (const chunk of stream) {
59
+ const cand = chunk.candidates?.[0];
60
+ const parts = cand?.content?.parts ?? [];
61
+ for (const p of parts) {
62
+ if (typeof p.text === "string" && p.text.length > 0) {
63
+ markEmitted();
64
+ text += p.text;
65
+ opts.handlers?.onTextDelta?.(p.text);
66
+ }
67
+ if (p.functionCall) {
68
+ toolCalls.push({
69
+ id: p.functionCall.id ?? `call_${p.functionCall.name}_${Math.random().toString(36).slice(2)}`,
70
+ name: p.functionCall.name ?? "",
71
+ args: (p.functionCall.args ?? {}),
72
+ });
73
+ }
64
74
  }
65
- if (p.functionCall) {
66
- toolCalls.push({
67
- id: p.functionCall.id ?? `call_${p.functionCall.name}_${Math.random().toString(36).slice(2)}`,
68
- name: p.functionCall.name ?? "",
69
- args: (p.functionCall.args ?? {}),
70
- });
75
+ // usageMetadata is on the final chunk
76
+ const usage = chunk.usageMetadata;
77
+ if (usage) {
78
+ inputTokens = usage.promptTokenCount ?? 0;
79
+ outputTokens = usage.candidatesTokenCount ?? 0;
71
80
  }
72
81
  }
73
- // usageMetadata is on the final chunk
74
- const usage = chunk.usageMetadata;
75
- if (usage) {
76
- inputTokens = usage.promptTokenCount ?? 0;
77
- outputTokens = usage.candidatesTokenCount ?? 0;
82
+ const content = [];
83
+ if (text) {
84
+ content.push({ type: "text", text, citations: null });
78
85
  }
79
- }
80
- const content = [];
81
- if (text) {
82
- content.push({ type: "text", text, citations: null });
83
- }
84
- for (const tc of toolCalls) {
85
- content.push({
86
- type: "tool_use",
87
- id: tc.id,
88
- name: tc.name,
89
- input: tc.args,
90
- });
91
- }
92
- // Gemini finish reasons: STOP, MAX_TOKENS, SAFETY, RECITATION, OTHER, BLOCKLIST,
93
- // PROHIBITED_CONTENT, SPII, MALFORMED_FUNCTION_CALL, IMAGE_SAFETY.
94
- // Tool calls are signaled by the presence of functionCall parts, NOT a
95
- // distinct finishReason — so we infer from toolCalls.length.
96
- const stopReason = toolCalls.length > 0 ? "tool_use" : "end_turn";
97
- return {
98
- content,
99
- stopReason,
100
- usage: {
101
- inputTokens,
102
- outputTokens,
103
- cacheReadTokens: 0,
104
- cacheWriteTokens: 0,
105
- },
106
- };
86
+ for (const tc of toolCalls) {
87
+ content.push({
88
+ type: "tool_use",
89
+ id: tc.id,
90
+ name: tc.name,
91
+ input: tc.args,
92
+ });
93
+ }
94
+ // Gemini finish reasons: STOP, MAX_TOKENS, SAFETY, RECITATION, OTHER, BLOCKLIST,
95
+ // PROHIBITED_CONTENT, SPII, MALFORMED_FUNCTION_CALL, IMAGE_SAFETY.
96
+ // Tool calls are signaled by the presence of functionCall parts, NOT a
97
+ // distinct finishReason — so we infer from toolCalls.length.
98
+ const stopReason = toolCalls.length > 0 ? "tool_use" : "end_turn";
99
+ return {
100
+ content,
101
+ stopReason,
102
+ usage: {
103
+ inputTokens,
104
+ outputTokens,
105
+ cacheReadTokens: 0,
106
+ cacheWriteTokens: 0,
107
+ },
108
+ };
109
+ });
107
110
  }
108
111
  }
109
112
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gemini.js","sourceRoot":"","sources":["../../src/providers/gemini.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,qBAAa,cAAe,YAAW,QAAQ;IAC7C,QAAQ,CAAC,IAAI,YAAY;IACzB,OAAO,CAAC,MAAM,CAAS;gBAEX,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAO;IAQtD,OAAO,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;CA8F9D"}
1
+ {"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EACV,QAAQ,EACR,cAAc,EACd,eAAe,EAChB,MAAM,YAAY,CAAC;AAEpB,qBAAa,cAAe,YAAW,QAAQ;IAC7C,QAAQ,CAAC,IAAI,YAAY;IACzB,OAAO,CAAC,MAAM,CAAS;gBAEX,IAAI,GAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,OAAO,CAAC,EAAE,MAAM,CAAA;KAAO;IAQtD,OAAO,CAAC,IAAI,EAAE,eAAe,GAAG,OAAO,CAAC,cAAc,CAAC;CAmG9D"}
@@ -1,5 +1,6 @@
1
1
  import OpenAI from "openai";
2
2
  import { proxyAwareFetch } from "../proxy-bootstrap.js";
3
+ import { withStreamRetry } from "./stream-retry.js";
3
4
  export class OpenAIProvider {
4
5
  name = "openai";
5
6
  client;
@@ -20,82 +21,87 @@ export class OpenAIProvider {
20
21
  parameters: t.inputSchema,
21
22
  },
22
23
  }));
23
- const stream = await this.client.chat.completions.create({
24
- model: opts.model,
25
- messages,
26
- tools: tools.length ? tools : undefined,
27
- max_tokens: opts.maxTokens ?? 16_000,
28
- stream: true,
29
- stream_options: { include_usage: true },
30
- },
31
- // Per-request options; `signal` aborts the in-flight HTTP stream
32
- // (the SDK then throws APIUserAbortError).
33
- { signal: opts.signal });
34
- let text = "";
35
- const toolCalls = new Map();
36
- let finish = "stop";
37
- let inputTokens = 0;
38
- let outputTokens = 0;
39
- let cacheReadTokens = 0;
40
- for await (const chunk of stream) {
41
- const choice = chunk.choices[0];
42
- if (choice?.delta?.content) {
43
- text += choice.delta.content;
44
- opts.handlers?.onTextDelta?.(choice.delta.content);
45
- }
46
- if (choice?.delta?.tool_calls) {
47
- for (const tc of choice.delta.tool_calls) {
48
- const idx = tc.index;
49
- if (!toolCalls.has(idx)) {
50
- toolCalls.set(idx, { id: "", name: "", args: "" });
24
+ // Per-attempt state lives inside the retry closure so it resets cleanly on
25
+ // a transient empty-stream retry (see withStreamRetry).
26
+ return withStreamRetry({ signal: opts.signal }, async (markEmitted) => {
27
+ const stream = await this.client.chat.completions.create({
28
+ model: opts.model,
29
+ messages,
30
+ tools: tools.length ? tools : undefined,
31
+ max_tokens: opts.maxTokens ?? 16_000,
32
+ stream: true,
33
+ stream_options: { include_usage: true },
34
+ },
35
+ // Per-request options; `signal` aborts the in-flight HTTP stream
36
+ // (the SDK then throws APIUserAbortError).
37
+ { signal: opts.signal });
38
+ let text = "";
39
+ const toolCalls = new Map();
40
+ let finish = "stop";
41
+ let inputTokens = 0;
42
+ let outputTokens = 0;
43
+ let cacheReadTokens = 0;
44
+ for await (const chunk of stream) {
45
+ const choice = chunk.choices[0];
46
+ if (choice?.delta?.content) {
47
+ markEmitted();
48
+ text += choice.delta.content;
49
+ opts.handlers?.onTextDelta?.(choice.delta.content);
50
+ }
51
+ if (choice?.delta?.tool_calls) {
52
+ for (const tc of choice.delta.tool_calls) {
53
+ const idx = tc.index;
54
+ if (!toolCalls.has(idx)) {
55
+ toolCalls.set(idx, { id: "", name: "", args: "" });
56
+ }
57
+ const acc = toolCalls.get(idx);
58
+ if (tc.id)
59
+ acc.id = tc.id;
60
+ if (tc.function?.name)
61
+ acc.name = tc.function.name;
62
+ if (tc.function?.arguments)
63
+ acc.args += tc.function.arguments;
51
64
  }
52
- const acc = toolCalls.get(idx);
53
- if (tc.id)
54
- acc.id = tc.id;
55
- if (tc.function?.name)
56
- acc.name = tc.function.name;
57
- if (tc.function?.arguments)
58
- acc.args += tc.function.arguments;
65
+ }
66
+ if (choice?.finish_reason)
67
+ finish = choice.finish_reason;
68
+ if (chunk.usage) {
69
+ inputTokens = chunk.usage.prompt_tokens ?? 0;
70
+ outputTokens = chunk.usage.completion_tokens ?? 0;
71
+ const details = chunk.usage.prompt_tokens_details;
72
+ cacheReadTokens = details?.cached_tokens ?? 0;
59
73
  }
60
74
  }
61
- if (choice?.finish_reason)
62
- finish = choice.finish_reason;
63
- if (chunk.usage) {
64
- inputTokens = chunk.usage.prompt_tokens ?? 0;
65
- outputTokens = chunk.usage.completion_tokens ?? 0;
66
- const details = chunk.usage.prompt_tokens_details;
67
- cacheReadTokens = details?.cached_tokens ?? 0;
75
+ const content = [];
76
+ if (text) {
77
+ content.push({ type: "text", text, citations: null });
68
78
  }
69
- }
70
- const content = [];
71
- if (text) {
72
- content.push({ type: "text", text, citations: null });
73
- }
74
- for (const tc of toolCalls.values()) {
75
- let parsed = {};
76
- try {
77
- parsed = tc.args ? JSON.parse(tc.args) : {};
78
- }
79
- catch {
80
- parsed = { _raw: tc.args };
79
+ for (const tc of toolCalls.values()) {
80
+ let parsed = {};
81
+ try {
82
+ parsed = tc.args ? JSON.parse(tc.args) : {};
83
+ }
84
+ catch {
85
+ parsed = { _raw: tc.args };
86
+ }
87
+ content.push({
88
+ type: "tool_use",
89
+ id: tc.id || `call_${tc.name}_${Math.random().toString(36).slice(2)}`,
90
+ name: tc.name,
91
+ input: parsed,
92
+ });
81
93
  }
82
- content.push({
83
- type: "tool_use",
84
- id: tc.id || `call_${tc.name}_${Math.random().toString(36).slice(2)}`,
85
- name: tc.name,
86
- input: parsed,
87
- });
88
- }
89
- return {
90
- content,
91
- stopReason: finish === "tool_calls" ? "tool_use" : "end_turn",
92
- usage: {
93
- inputTokens,
94
- outputTokens,
95
- cacheReadTokens,
96
- cacheWriteTokens: 0,
97
- },
98
- };
94
+ return {
95
+ content,
96
+ stopReason: finish === "tool_calls" ? "tool_use" : "end_turn",
97
+ usage: {
98
+ inputTokens,
99
+ outputTokens,
100
+ cacheReadTokens,
101
+ cacheWriteTokens: 0,
102
+ },
103
+ };
104
+ });
99
105
  }
100
106
  }
101
107
  function anthropicToOpenAI(systemPrompt, messages) {
@@ -1 +1 @@
1
- {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openai.js","sourceRoot":"","sources":["../../src/providers/openai.ts"],"names":[],"mappings":"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"}
@@ -38,6 +38,16 @@ export declare function resolveAnthropicAuth(env?: Record<string, string | undef
38
38
  apiKey?: string;
39
39
  authToken?: string;
40
40
  };
41
+ /**
42
+ * Does `env` carry credentials for the provider that MODEL routes to? Mirrors
43
+ * resolveProvider's auth resolution exactly, so the CLI key-gate matches the key
44
+ * the provider will actually read — e.g. a `glm-*` model needs ZHIPU_API_KEY (its
45
+ * preset), not OPENAI_API_KEY. Used by the birth + run gates. Pure.
46
+ *
47
+ * (detectProvider consults process.env for the LISA_BASE_URL / LISA_PROVIDER
48
+ * routing rules; the per-key lookups below read the passed `env`.)
49
+ */
50
+ export declare function hasCredentialsForModel(model: string, env?: Record<string, string | undefined>): boolean;
41
51
  export declare function makeProvider(name: ProviderName): Provider;
42
52
  /**
43
53
  * Resolve the provider for a model, wrapping it in a FallbackProvider when
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/providers/registry.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE7D;;;;;;;;;;;;;;;;GAgBG;AACH,UAAU,kBAAkB;IAC1B,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,qBAAqB,EAAE,kBAAkB,EAqFrD,CAAC;AAeF,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAqB1D;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAIzC;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,QAAQ,CAkBzD;AA6CD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,CAQxD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAK5C;AAED,8BAA8B;AAC9B,wBAAgB,uBAAuB,IAAI,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CAAC,CAsBtF"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/providers/registry.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C,MAAM,MAAM,YAAY,GAAG,WAAW,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE7D;;;;;;;;;;;;;;;;GAgBG;AACH,UAAU,kBAAkB;IAC1B,oCAAoC;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,qDAAqD;IACrD,aAAa,EAAE,MAAM,EAAE,CAAC;IACxB,kCAAkC;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,+DAA+D;IAC/D,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,eAAO,MAAM,qBAAqB,EAAE,kBAAkB,EAqFrD,CAAC;AAeF,wBAAgB,cAAc,CAAC,KAAK,EAAE,MAAM,GAAG,YAAY,CAqB1D;AAED;;;;GAIG;AACH,wBAAgB,oBAAoB,CAClC,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE,CAIzC;AAED;;;;;;;;GAQG;AACH,wBAAgB,sBAAsB,CACpC,KAAK,EAAE,MAAM,EACb,GAAG,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAe,GACpD,OAAO,CAeT;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,YAAY,GAAG,QAAQ,CAkBzD;AA6CD;;;;GAIG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,CAQxD;AAED;;;;GAIG;AACH,wBAAgB,mBAAmB,IAAI,MAAM,CAK5C;AAED,8BAA8B;AAC9B,wBAAgB,uBAAuB,IAAI,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,OAAO,CAAA;CAAE,CAAC,CAsBtF"}
@@ -139,6 +139,32 @@ export function resolveAnthropicAuth(env = process.env) {
139
139
  return { authToken };
140
140
  return { apiKey: env.ANTHROPIC_API_KEY };
141
141
  }
142
+ /**
143
+ * Does `env` carry credentials for the provider that MODEL routes to? Mirrors
144
+ * resolveProvider's auth resolution exactly, so the CLI key-gate matches the key
145
+ * the provider will actually read — e.g. a `glm-*` model needs ZHIPU_API_KEY (its
146
+ * preset), not OPENAI_API_KEY. Used by the birth + run gates. Pure.
147
+ *
148
+ * (detectProvider consults process.env for the LISA_BASE_URL / LISA_PROVIDER
149
+ * routing rules; the per-key lookups below read the passed `env`.)
150
+ */
151
+ export function hasCredentialsForModel(model, env = process.env) {
152
+ const provider = detectProvider(model);
153
+ if (provider === "anthropic") {
154
+ return !!(env.ANTHROPIC_AUTH_TOKEN?.trim() || env.ANTHROPIC_API_KEY);
155
+ }
156
+ if (provider === "gemini") {
157
+ return !!(env.GEMINI_API_KEY ?? env.GOOGLE_API_KEY);
158
+ }
159
+ // openai / openai-compatible — same precedence as resolveProvider.
160
+ const preset = findPreset(model);
161
+ if (preset)
162
+ return !!env[preset.apiKeyEnv];
163
+ if (env.LISA_BASE_URL) {
164
+ return !!(env.LISA_API_KEY ?? env.TAKO_KEY ?? env.OPENAI_API_KEY);
165
+ }
166
+ return !!env.OPENAI_API_KEY;
167
+ }
142
168
  export function makeProvider(name) {
143
169
  switch (name) {
144
170
  case "anthropic":
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/providers/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAC;AAC7C,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,WAAW,CAAC;AAiC1C,MAAM,CAAC,MAAM,qBAAqB,GAAyB;IACzD,qEAAqE;IACrE;QACE,IAAI,EAAE,UAAU;QAChB,aAAa,EAAE,CAAC,WAAW,CAAC;QAC5B,OAAO,EAAE,6BAA6B;QACtC,SAAS,EAAE,kBAAkB;KAC9B;IACD;QACE,IAAI,EAAE,YAAY;QAClB,8DAA8D;QAC9D,aAAa,EAAE,CAAC,UAAU,EAAE,YAAY,EAAE,YAAY,EAAE,YAAY,EAAE,UAAU,CAAC;QACjF,OAAO,EAAE,2BAA2B;QACpC,SAAS,EAAE,iBAAiB;KAC7B;IACD;QACE,IAAI,EAAE,oBAAoB;QAC1B,aAAa,EAAE,CAAC,QAAQ,EAAE,OAAO,CAAC;QAClC,OAAO,EAAE,2BAA2B;QACpC,SAAS,EAAE,oBAAoB;KAChC;IACD;QACE,IAAI,EAAE,UAAU;QAChB,aAAa,EAAE,CAAC,OAAO,CAAC;QACxB,OAAO,EAAE,qBAAqB;QAC9B,SAAS,EAAE,aAAa;KACzB;IACD,oEAAoE;IACpE;QACE,iFAAiF;QACjF,IAAI,EAAE,yBAAyB;QAC/B,aAAa,EAAE,CAAC,SAAS,EAAE,KAAK,CAAC;QACjC,OAAO,EAAE,0CAA0C;QACnD,SAAS,EAAE,aAAa;KACzB;IACD;QACE,IAAI,EAAE,yBAAyB;QAC/B,aAAa,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,OAAO,CAAC;QAC1C,OAAO,EAAE,mDAAmD;QAC5D,SAAS,EAAE,mBAAmB;KAC/B;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,aAAa,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC;QACrC,OAAO,EAAE,4BAA4B;QACrC,SAAS,EAAE,kBAAkB;KAC9B;IACD;QACE,IAAI,EAAE,aAAa;QACnB,aAAa,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC;QACnC,OAAO,EAAE,sCAAsC;QAC/C,SAAS,EAAE,eAAe;KAC3B;IACD;QACE,IAAI,EAAE,gBAAgB;QACtB,aAAa,EAAE,CAAC,OAAO,CAAC;QACxB,OAAO,EAAE,4BAA4B;QACrC,SAAS,EAAE,iBAAiB;KAC7B;IACD;QACE,IAAI,EAAE,YAAY;QAClB,aAAa,EAAE,CAAC,KAAK,CAAC;QACtB,OAAO,EAAE,gCAAgC;QACzC,SAAS,EAAE,gBAAgB;KAC5B;IACD;QACE,IAAI,EAAE,UAAU;QAChB,wFAAwF;QACxF,aAAa,EAAE,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,WAAW,CAAC;QACnE,OAAO,EAAE,gCAAgC;QACzC,SAAS,EAAE,kBAAkB;KAC9B;IACD;QACE,IAAI,EAAE,SAAS;QACf,+DAA+D;QAC/D,aAAa,EAAE,CAAC,MAAM,EAAE,UAAU,CAAC;QACnC,OAAO,EAAE,2BAA2B;QACpC,SAAS,EAAE,iBAAiB;KAC7B;IACD;QACE,IAAI,EAAE,iBAAiB;QACvB,aAAa,EAAE,CAAC,UAAU,CAAC;QAC3B,OAAO,EAAE,0CAA0C;QACnD,SAAS,EAAE,iBAAiB;KAC7B;CACF,CAAC;AAEF;;;;GAIG;AACH,SAAS,UAAU,CAAC,KAAa;IAC/B,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAClC,KAAK,MAAM,CAAC,IAAI,qBAAqB,EAAE,CAAC;QACtC,IAAI,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC;YAAE,OAAO,CAAC,CAAC;IACnF,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAa;IAC1C,MAAM,CAAC,GAAG,KAAK,CAAC,WAAW,EAAE,CAAC;IAC9B,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,WAAW,CAAC;IAChD,IAAI,CAAC,CAAC,UAAU,CAAC,SAAS,CAAC;QAAE,OAAO,QAAQ,CAAC;IAC7C,IACE,CAAC,CAAC,UAAU,CAAC,MAAM,CAAC;QACpB,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;QAClB,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;QAClB,CAAC,CAAC,UAAU,CAAC,IAAI,CAAC;QAClB,CAAC,CAAC,UAAU,CAAC,UAAU,CAAC,EACxB,CAAC;QACD,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,8EAA8E;IAC9E,IAAI,UAAU,CAAC,KAAK,CAAC;QAAE,OAAO,QAAQ,CAAC;IACvC,4EAA4E;IAC5E,oDAAoD;IACpD,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa;QAAE,OAAO,QAAQ,CAAC;IAC/C,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC5D,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,KAAK,QAAQ;QAAE,OAAO,QAAQ,CAAC;IAC5D,OAAO,WAAW,CAAC;AACrB,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAClC,MAA0C,OAAO,CAAC,GAAG;IAErD,MAAM,SAAS,GAAG,GAAG,CAAC,oBAAoB,EAAE,IAAI,EAAE,CAAC;IACnD,IAAI,SAAS;QAAE,OAAO,EAAE,SAAS,EAAE,CAAC;IACpC,OAAO,EAAE,MAAM,EAAE,GAAG,CAAC,iBAAiB,EAAE,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,YAAY,CAAC,IAAkB;IAC7C,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,WAAW;YACd,OAAO,IAAI,iBAAiB,CAAC;gBAC3B,GAAG,oBAAoB,EAAE;gBACzB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;aACxC,CAAC,CAAC;QACL,KAAK,QAAQ;YACX,OAAO,IAAI,cAAc,CAAC;gBACxB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;gBAClC,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe;aACrC,CAAC,CAAC;QACL,KAAK,QAAQ;YACX,OAAO,IAAI,cAAc,CAAC;gBACxB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc;gBAChE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe;aACrC,CAAC,CAAC;IACP,CAAC;AACH,CAAC;AAED;;;;GAIG;AACH,SAAS,eAAe,CAAC,KAAa;IACpC,MAAM,QAAQ,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IACvC,IAAI,QAAQ,KAAK,WAAW,EAAE,CAAC;QAC7B,OAAO,IAAI,iBAAiB,CAAC;YAC3B,GAAG,oBAAoB,EAAE;YACzB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,kBAAkB;SACxC,CAAC,CAAC;IACL,CAAC;IACD,IAAI,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC1B,OAAO,IAAI,cAAc,CAAC;YACxB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc;YAChE,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe;SACrC,CAAC,CAAC;IACL,CAAC;IACD,2EAA2E;IAC3E,MAAM,MAAM,GAAG,UAAU,CAAC,KAAK,CAAC,CAAC;IACjC,IAAI,MAAM,EAAE,CAAC;QACX,OAAO,IAAI,cAAc,CAAC;YACxB,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC;SACtC,CAAC,CAAC;IACL,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QAC9B,2EAA2E;QAC3E,OAAO,IAAI,cAAc,CAAC;YACxB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,aAAa;YAClC,kEAAkE;YAClE,sEAAsE;YACtE,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,YAAY,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc;SACvF,CAAC,CAAC;IACL,CAAC;IACD,kBAAkB;IAClB,OAAO,IAAI,cAAc,CAAC;QACxB,OAAO,EAAE,OAAO,CAAC,GAAG,CAAC,eAAe;QACpC,MAAM,EAAE,OAAO,CAAC,GAAG,CAAC,cAAc;KACnC,CAAC,CAAC;AACL,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,gBAAgB,CAAC,KAAa;IAC5C,MAAM,SAAS,GAAG,CAAC,OAAO,CAAC,GAAG,CAAC,mBAAmB,IAAI,EAAE,CAAC;SACtD,KAAK,CAAC,GAAG,CAAC;SACV,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;SACpB,MAAM,CAAC,OAAO,CAAC,CAAC;IACnB,IAAI,SAAS,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,eAAe,CAAC,KAAK,CAAC,CAAC;IAC1D,MAAM,KAAK,GAAG,CAAC,KAAK,EAAE,GAAG,SAAS,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,QAAQ,EAAE,eAAe,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IAC7F,OAAO,IAAI,gBAAgB,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,mBAAmB;IACjC,IAAI,OAAO,CAAC,GAAG,CAAC,UAAU,EAAE,IAAI,EAAE;QAAE,OAAO,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,IAAI,EAAE,CAAC;IACzE,IAAI,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB;QAAE,OAAO,aAAa,CAAC;IAC5F,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc;QAAE,OAAO,QAAQ,CAAC;IAChD,OAAO,aAAa,CAAC;AACvB,CAAC;AAED,8BAA8B;AAC9B,MAAM,UAAU,uBAAuB;IACrC,MAAM,GAAG,GAAiD;QACxD;YACE,IAAI,EAAE,WAAW;YACjB,UAAU,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,iBAAiB,IAAI,OAAO,CAAC,GAAG,CAAC,oBAAoB,CAAC;SAClF;QACD,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE;QAC5D;YACE,IAAI,EAAE,eAAe;YACrB,UAAU,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,cAAc,IAAI,OAAO,CAAC,GAAG,CAAC,cAAc,CAAC;SACzE;KACF,CAAC;IACF,KAAK,MAAM,CAAC,IAAI,qBAAqB,EAAE,CAAC;QACtC,GAAG,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,UAAU,EAAE,CAAC,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;IACrE,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,CAAC;QAC9B,GAAG,CAAC,IAAI,CAAC;YACP,IAAI,EAAE,yBAAyB,OAAO,CAAC,GAAG,CAAC,aAAa,GAAG;YAC3D,UAAU,EAAE,IAAI;SACjB,CAAC,CAAC;IACL,CAAC;IACD,OAAO,GAAG,CAAC;AACb,CAAC"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/providers/registry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,37 @@
1
+ export interface StreamRetryOpts {
2
+ /** Max number of *additional* attempts after the first (default 2 → 3 total). */
3
+ maxRetries?: number;
4
+ /** Linear backoff base; attempt N waits baseDelayMs * N (default 400). */
5
+ baseDelayMs?: number;
6
+ /** Abort signal for the turn; a triggered signal stops retrying. */
7
+ signal?: AbortSignal;
8
+ }
9
+ /**
10
+ * True for transient streaming failures that are safe to retry *as long as no
11
+ * output has been emitted yet*. Chiefly the Anthropic SDK's "request ended
12
+ * without sending any chunks" — a 200 response whose SSE body closed before any
13
+ * event arrived — plus connection resets / premature closes commonly caused by
14
+ * HTTP proxies (Clash, one-api relays) tearing down an idle CONNECT tunnel
15
+ * during a long time-to-first-byte on a large request.
16
+ *
17
+ * Crucially never matches a user abort: APIUserAbortError / AbortError mean the
18
+ * turn was cancelled on purpose and must surface, not retry.
19
+ */
20
+ export declare function isRetryableStreamError(err: unknown): boolean;
21
+ /**
22
+ * Run a streaming attempt with bounded retries for transient empty-stream
23
+ * failures. The SDK's own retries don't cover these: the error is thrown while
24
+ * iterating the stream, *after* the HTTP request already returned 200, so it
25
+ * escapes the SDK's request-level retry and reaches the user as a hard error.
26
+ *
27
+ * The attempt receives `markEmitted`, which it MUST call the moment it forwards
28
+ * the first text/thinking delta. Once called, a later failure is surfaced
29
+ * rather than retried — we can't replay already-streamed output without
30
+ * duplicating it in the UI. The reported failure ("…any chunks") emits nothing,
31
+ * so it always stays retryable.
32
+ *
33
+ * Per-attempt accumulator state must live *inside* `attempt` so it resets on
34
+ * each retry.
35
+ */
36
+ export declare function withStreamRetry<T>(opts: StreamRetryOpts, attempt: (markEmitted: () => void) => Promise<T>): Promise<T>;
37
+ //# sourceMappingURL=stream-retry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-retry.d.ts","sourceRoot":"","sources":["../../src/providers/stream-retry.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAC9B,iFAAiF;IACjF,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,oEAAoE;IACpE,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAgC5D;AAED;;;;;;;;;;;;;;GAcG;AACH,wBAAsB,eAAe,CAAC,CAAC,EACrC,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,CAAC,WAAW,EAAE,MAAM,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,GAC/C,OAAO,CAAC,CAAC,CAAC,CAiCZ"}
@@ -0,0 +1,92 @@
1
+ import { setTimeout as delay } from "node:timers/promises";
2
+ /**
3
+ * True for transient streaming failures that are safe to retry *as long as no
4
+ * output has been emitted yet*. Chiefly the Anthropic SDK's "request ended
5
+ * without sending any chunks" — a 200 response whose SSE body closed before any
6
+ * event arrived — plus connection resets / premature closes commonly caused by
7
+ * HTTP proxies (Clash, one-api relays) tearing down an idle CONNECT tunnel
8
+ * during a long time-to-first-byte on a large request.
9
+ *
10
+ * Crucially never matches a user abort: APIUserAbortError / AbortError mean the
11
+ * turn was cancelled on purpose and must surface, not retry.
12
+ */
13
+ export function isRetryableStreamError(err) {
14
+ const e = err;
15
+ const name = e?.name;
16
+ if (name === "APIUserAbortError" || name === "AbortError")
17
+ return false;
18
+ if (name === "APIConnectionError" || name === "APIConnectionTimeoutError") {
19
+ return true;
20
+ }
21
+ // undici surfaces socket failures as `TypeError: terminated` / `fetch failed`
22
+ // with the real reason on `.cause.code`. Match those codes precisely rather
23
+ // than substring-matching "terminated", which could also appear in a
24
+ // legitimate API error message and trigger a spurious re-send.
25
+ const code = e?.cause?.code;
26
+ if (code === "ECONNRESET" ||
27
+ code === "ECONNREFUSED" ||
28
+ code === "EPIPE" ||
29
+ code === "ETIMEDOUT" ||
30
+ code === "ENOTFOUND" ||
31
+ code === "UND_ERR_SOCKET") {
32
+ return true;
33
+ }
34
+ const msg = (err instanceof Error ? err.message : String(err)).toLowerCase();
35
+ return (msg.includes("without sending any chunks") ||
36
+ msg.includes("premature close") ||
37
+ msg.includes("socket hang up") ||
38
+ msg.includes("econnreset") ||
39
+ msg === "terminated" ||
40
+ msg.includes("network error") ||
41
+ msg.includes("fetch failed"));
42
+ }
43
+ /**
44
+ * Run a streaming attempt with bounded retries for transient empty-stream
45
+ * failures. The SDK's own retries don't cover these: the error is thrown while
46
+ * iterating the stream, *after* the HTTP request already returned 200, so it
47
+ * escapes the SDK's request-level retry and reaches the user as a hard error.
48
+ *
49
+ * The attempt receives `markEmitted`, which it MUST call the moment it forwards
50
+ * the first text/thinking delta. Once called, a later failure is surfaced
51
+ * rather than retried — we can't replay already-streamed output without
52
+ * duplicating it in the UI. The reported failure ("…any chunks") emits nothing,
53
+ * so it always stays retryable.
54
+ *
55
+ * Per-attempt accumulator state must live *inside* `attempt` so it resets on
56
+ * each retry.
57
+ */
58
+ export async function withStreamRetry(opts, attempt) {
59
+ const maxRetries = opts.maxRetries ?? 2;
60
+ const baseDelayMs = opts.baseDelayMs ?? 400;
61
+ // Each retry reopens a fresh upstream request, so the prompt's input tokens
62
+ // are re-billed per attempt — maxRetries (default 2) bounds that to ≤3×. We
63
+ // only retry when nothing was emitted, so no output work is ever wasted.
64
+ let lastErr;
65
+ for (let i = 0; i <= maxRetries; i++) {
66
+ let emitted = false;
67
+ try {
68
+ return await attempt(() => {
69
+ emitted = true;
70
+ });
71
+ }
72
+ catch (err) {
73
+ lastErr = err;
74
+ if (i === maxRetries ||
75
+ emitted ||
76
+ opts.signal?.aborted ||
77
+ !isRetryableStreamError(err)) {
78
+ throw err;
79
+ }
80
+ try {
81
+ await delay(baseDelayMs * (i + 1), undefined, { signal: opts.signal });
82
+ }
83
+ catch {
84
+ // Signal aborted during backoff → stop retrying, surface the error.
85
+ throw err;
86
+ }
87
+ }
88
+ }
89
+ // Unreachable: the final iteration (i === maxRetries) always throws above.
90
+ throw lastErr;
91
+ }
92
+ //# sourceMappingURL=stream-retry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"stream-retry.js","sourceRoot":"","sources":["../../src/providers/stream-retry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,IAAI,KAAK,EAAE,MAAM,sBAAsB,CAAC;AAW3D;;;;;;;;;;GAUG;AACH,MAAM,UAAU,sBAAsB,CAAC,GAAY;IACjD,MAAM,CAAC,GAAG,GAA0D,CAAC;IACrE,MAAM,IAAI,GAAG,CAAC,EAAE,IAAI,CAAC;IACrB,IAAI,IAAI,KAAK,mBAAmB,IAAI,IAAI,KAAK,YAAY;QAAE,OAAO,KAAK,CAAC;IACxE,IAAI,IAAI,KAAK,oBAAoB,IAAI,IAAI,KAAK,2BAA2B,EAAE,CAAC;QAC1E,OAAO,IAAI,CAAC;IACd,CAAC;IACD,8EAA8E;IAC9E,4EAA4E;IAC5E,qEAAqE;IACrE,+DAA+D;IAC/D,MAAM,IAAI,GAAG,CAAC,EAAE,KAAK,EAAE,IAAI,CAAC;IAC5B,IACE,IAAI,KAAK,YAAY;QACrB,IAAI,KAAK,cAAc;QACvB,IAAI,KAAK,OAAO;QAChB,IAAI,KAAK,WAAW;QACpB,IAAI,KAAK,WAAW;QACpB,IAAI,KAAK,gBAAgB,EACzB,CAAC;QACD,OAAO,IAAI,CAAC;IACd,CAAC;IACD,MAAM,GAAG,GAAG,CAAC,GAAG,YAAY,KAAK,CAAC,CAAC,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE,CAAC;IAC7E,OAAO,CACL,GAAG,CAAC,QAAQ,CAAC,4BAA4B,CAAC;QAC1C,GAAG,CAAC,QAAQ,CAAC,iBAAiB,CAAC;QAC/B,GAAG,CAAC,QAAQ,CAAC,gBAAgB,CAAC;QAC9B,GAAG,CAAC,QAAQ,CAAC,YAAY,CAAC;QAC1B,GAAG,KAAK,YAAY;QACpB,GAAG,CAAC,QAAQ,CAAC,eAAe,CAAC;QAC7B,GAAG,CAAC,QAAQ,CAAC,cAAc,CAAC,CAC7B,CAAC;AACJ,CAAC;AAED;;;;;;;;;;;;;;GAcG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CACnC,IAAqB,EACrB,OAAgD;IAEhD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,CAAC,CAAC;IACxC,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,IAAI,GAAG,CAAC;IAC5C,4EAA4E;IAC5E,4EAA4E;IAC5E,yEAAyE;IACzE,IAAI,OAAgB,CAAC;IACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,IAAI,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,IAAI,OAAO,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC;YACH,OAAO,MAAM,OAAO,CAAC,GAAG,EAAE;gBACxB,OAAO,GAAG,IAAI,CAAC;YACjB,CAAC,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,OAAO,GAAG,GAAG,CAAC;YACd,IACE,CAAC,KAAK,UAAU;gBAChB,OAAO;gBACP,IAAI,CAAC,MAAM,EAAE,OAAO;gBACpB,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAC5B,CAAC;gBACD,MAAM,GAAG,CAAC;YACZ,CAAC;YACD,IAAI,CAAC;gBACH,MAAM,KAAK,CAAC,WAAW,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,SAAS,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YACzE,CAAC;YAAC,MAAM,CAAC;gBACP,oEAAoE;gBACpE,MAAM,GAAG,CAAC;YACZ,CAAC;QACH,CAAC;IACH,CAAC;IACD,2EAA2E;IAC3E,MAAM,OAAO,CAAC;AAChB,CAAC"}