@jxburros/ai-nugget 0.3.1 → 0.6.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 (183) hide show
  1. package/README.md +134 -271
  2. package/UPGRADING.md +158 -0
  3. package/dist/adapters/engines/anthropic.d.ts +7 -1
  4. package/dist/adapters/engines/anthropic.js +64 -37
  5. package/dist/adapters/engines/base.d.ts +29 -2
  6. package/dist/adapters/engines/base.js +52 -8
  7. package/dist/adapters/engines/google.d.ts +17 -1
  8. package/dist/adapters/engines/google.js +93 -29
  9. package/dist/adapters/engines/ollama.d.ts +2 -1
  10. package/dist/adapters/engines/ollama.js +51 -15
  11. package/dist/adapters/engines/openaiChat.d.ts +2 -1
  12. package/dist/adapters/engines/openaiChat.js +60 -30
  13. package/dist/adapters/profiles.d.ts +21 -1
  14. package/dist/adapters/profiles.js +12 -2
  15. package/dist/agent/loop.d.ts +43 -1
  16. package/dist/agent/loop.js +120 -13
  17. package/dist/cjs/adapters/engines/anthropic.js +308 -0
  18. package/dist/cjs/adapters/engines/base.js +147 -0
  19. package/dist/cjs/adapters/engines/google.js +284 -0
  20. package/dist/cjs/adapters/engines/ollama.js +199 -0
  21. package/dist/cjs/adapters/engines/openaiChat.js +261 -0
  22. package/dist/cjs/adapters/index.js +22 -0
  23. package/dist/cjs/adapters/profiles.js +125 -0
  24. package/dist/cjs/agent/index.js +18 -0
  25. package/dist/cjs/agent/loop.js +372 -0
  26. package/dist/cjs/agent/tools.js +51 -0
  27. package/dist/cjs/connect.js +27 -0
  28. package/dist/cjs/errors.js +110 -0
  29. package/dist/cjs/handler.js +561 -0
  30. package/dist/cjs/index.js +27 -0
  31. package/dist/cjs/json.js +121 -0
  32. package/dist/cjs/keys.js +81 -0
  33. package/dist/cjs/package.json +3 -0
  34. package/dist/cjs/policy.js +42 -0
  35. package/dist/cjs/redact.js +78 -0
  36. package/dist/cjs/tokens.js +22 -0
  37. package/dist/cjs/transport.js +172 -0
  38. package/dist/cjs/types.js +6 -0
  39. package/dist/cjs/util.js +112 -0
  40. package/dist/connect.d.ts +31 -0
  41. package/dist/connect.js +25 -0
  42. package/dist/errors.js +25 -1
  43. package/dist/handler.d.ts +61 -1
  44. package/dist/handler.js +247 -61
  45. package/dist/index.d.ts +1 -0
  46. package/dist/index.js +1 -0
  47. package/dist/keys.js +1 -4
  48. package/dist/redact.d.ts +18 -0
  49. package/dist/redact.js +29 -1
  50. package/dist/transport.d.ts +3 -1
  51. package/dist/transport.js +21 -1
  52. package/dist/types.d.ts +96 -2
  53. package/dist/util.d.ts +16 -0
  54. package/dist/util.js +50 -0
  55. package/nugget/VERSION.txt +2 -2
  56. package/nugget/dist/adapters/engines/anthropic.d.ts +14 -0
  57. package/nugget/dist/adapters/engines/anthropic.d.ts.map +1 -0
  58. package/nugget/dist/adapters/engines/anthropic.js +305 -0
  59. package/nugget/dist/adapters/engines/anthropic.js.map +1 -0
  60. package/nugget/dist/adapters/engines/base.d.ts +50 -0
  61. package/nugget/dist/adapters/engines/base.d.ts.map +1 -0
  62. package/nugget/dist/adapters/engines/base.js +137 -0
  63. package/nugget/dist/adapters/engines/base.js.map +1 -0
  64. package/nugget/dist/adapters/engines/google.d.ts +24 -0
  65. package/nugget/dist/adapters/engines/google.d.ts.map +1 -0
  66. package/nugget/dist/adapters/engines/google.js +281 -0
  67. package/nugget/dist/adapters/engines/google.js.map +1 -0
  68. package/nugget/dist/adapters/engines/ollama.d.ts +11 -0
  69. package/nugget/dist/adapters/engines/ollama.d.ts.map +1 -0
  70. package/nugget/dist/adapters/engines/ollama.js +196 -0
  71. package/nugget/dist/adapters/engines/ollama.js.map +1 -0
  72. package/nugget/dist/adapters/engines/openaiChat.d.ts +16 -0
  73. package/nugget/dist/adapters/engines/openaiChat.d.ts.map +1 -0
  74. package/nugget/dist/adapters/engines/openaiChat.js +258 -0
  75. package/nugget/dist/adapters/engines/openaiChat.js.map +1 -0
  76. package/nugget/dist/adapters/index.d.ts +5 -0
  77. package/nugget/dist/adapters/index.d.ts.map +1 -0
  78. package/nugget/dist/adapters/index.js +17 -0
  79. package/nugget/dist/adapters/index.js.map +1 -0
  80. package/nugget/dist/adapters/profiles.d.ts +62 -0
  81. package/nugget/dist/adapters/profiles.d.ts.map +1 -0
  82. package/nugget/dist/adapters/profiles.js +121 -0
  83. package/nugget/dist/adapters/profiles.js.map +1 -0
  84. package/nugget/dist/agent/index.d.ts +3 -0
  85. package/nugget/dist/agent/index.d.ts.map +1 -0
  86. package/nugget/dist/agent/index.js +3 -0
  87. package/nugget/dist/agent/index.js.map +1 -0
  88. package/nugget/dist/agent/loop.d.ts +112 -0
  89. package/nugget/dist/agent/loop.d.ts.map +1 -0
  90. package/nugget/dist/agent/loop.js +370 -0
  91. package/nugget/dist/agent/loop.js.map +1 -0
  92. package/nugget/dist/agent/tools.d.ts +29 -0
  93. package/nugget/dist/agent/tools.d.ts.map +1 -0
  94. package/nugget/dist/agent/tools.js +48 -0
  95. package/nugget/dist/agent/tools.js.map +1 -0
  96. package/nugget/dist/cjs/adapters/engines/anthropic.js +308 -0
  97. package/nugget/dist/cjs/adapters/engines/base.js +147 -0
  98. package/nugget/dist/cjs/adapters/engines/google.js +284 -0
  99. package/nugget/dist/cjs/adapters/engines/ollama.js +199 -0
  100. package/nugget/dist/cjs/adapters/engines/openaiChat.js +261 -0
  101. package/nugget/dist/cjs/adapters/index.js +22 -0
  102. package/nugget/dist/cjs/adapters/profiles.js +125 -0
  103. package/nugget/dist/cjs/agent/index.js +18 -0
  104. package/nugget/dist/cjs/agent/loop.js +372 -0
  105. package/nugget/dist/cjs/agent/tools.js +51 -0
  106. package/nugget/dist/cjs/connect.js +27 -0
  107. package/nugget/dist/cjs/errors.js +110 -0
  108. package/nugget/dist/cjs/handler.js +561 -0
  109. package/nugget/dist/cjs/index.js +27 -0
  110. package/nugget/dist/cjs/json.js +121 -0
  111. package/nugget/dist/cjs/keys.js +81 -0
  112. package/nugget/dist/cjs/package.json +3 -0
  113. package/nugget/dist/cjs/policy.js +42 -0
  114. package/nugget/dist/cjs/redact.js +78 -0
  115. package/nugget/dist/cjs/tokens.js +22 -0
  116. package/nugget/dist/cjs/transport.js +172 -0
  117. package/nugget/dist/cjs/types.js +6 -0
  118. package/nugget/dist/cjs/util.js +112 -0
  119. package/nugget/dist/connect.d.ts +31 -0
  120. package/nugget/dist/connect.d.ts.map +1 -0
  121. package/nugget/dist/connect.js +25 -0
  122. package/nugget/dist/connect.js.map +1 -0
  123. package/nugget/dist/errors.d.ts +22 -0
  124. package/nugget/dist/errors.d.ts.map +1 -0
  125. package/nugget/dist/errors.js +104 -0
  126. package/nugget/dist/errors.js.map +1 -0
  127. package/nugget/dist/handler.d.ts +108 -0
  128. package/nugget/dist/handler.d.ts.map +1 -0
  129. package/nugget/dist/handler.js +557 -0
  130. package/nugget/dist/handler.js.map +1 -0
  131. package/nugget/dist/index.d.ts +12 -0
  132. package/nugget/dist/index.d.ts.map +1 -0
  133. package/nugget/dist/index.js +12 -0
  134. package/nugget/dist/index.js.map +1 -0
  135. package/nugget/dist/json.d.ts +7 -0
  136. package/nugget/dist/json.d.ts.map +1 -0
  137. package/nugget/dist/json.js +114 -0
  138. package/nugget/dist/json.js.map +1 -0
  139. package/nugget/dist/keys.d.ts +7 -0
  140. package/nugget/dist/keys.d.ts.map +1 -0
  141. package/nugget/dist/keys.js +75 -0
  142. package/nugget/dist/keys.js.map +1 -0
  143. package/nugget/dist/policy.d.ts +6 -0
  144. package/nugget/dist/policy.d.ts.map +1 -0
  145. package/nugget/dist/policy.js +37 -0
  146. package/nugget/dist/policy.js.map +1 -0
  147. package/nugget/dist/redact.d.ts +26 -0
  148. package/nugget/dist/redact.d.ts.map +1 -0
  149. package/nugget/dist/redact.js +74 -0
  150. package/nugget/dist/redact.js.map +1 -0
  151. package/nugget/dist/tokens.d.ts +5 -0
  152. package/nugget/dist/tokens.d.ts.map +1 -0
  153. package/nugget/dist/tokens.js +18 -0
  154. package/nugget/dist/tokens.js.map +1 -0
  155. package/nugget/dist/transport.d.ts +30 -0
  156. package/nugget/dist/transport.d.ts.map +1 -0
  157. package/nugget/dist/transport.js +165 -0
  158. package/nugget/dist/transport.js.map +1 -0
  159. package/nugget/dist/types.d.ts +285 -0
  160. package/nugget/dist/types.d.ts.map +1 -0
  161. package/nugget/dist/types.js +4 -0
  162. package/nugget/dist/types.js.map +1 -0
  163. package/nugget/dist/util.d.ts +24 -0
  164. package/nugget/dist/util.d.ts.map +1 -0
  165. package/nugget/dist/util.js +101 -0
  166. package/nugget/dist/util.js.map +1 -0
  167. package/nugget/src/adapters/engines/anthropic.ts +62 -37
  168. package/nugget/src/adapters/engines/base.ts +50 -7
  169. package/nugget/src/adapters/engines/google.ts +92 -29
  170. package/nugget/src/adapters/engines/ollama.ts +51 -17
  171. package/nugget/src/adapters/engines/openaiChat.ts +61 -32
  172. package/nugget/src/adapters/profiles.ts +53 -3
  173. package/nugget/src/agent/loop.ts +158 -14
  174. package/nugget/src/connect.ts +48 -0
  175. package/nugget/src/errors.ts +25 -1
  176. package/nugget/src/handler.ts +286 -59
  177. package/nugget/src/index.ts +1 -0
  178. package/nugget/src/keys.ts +1 -5
  179. package/nugget/src/redact.ts +32 -1
  180. package/nugget/src/transport.ts +20 -1
  181. package/nugget/src/types.ts +96 -1
  182. package/nugget/src/util.ts +55 -0
  183. package/package.json +20 -6
@@ -0,0 +1 @@
1
+ {"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../src/adapters/engines/anthropic.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,50 @@
1
+ import { AIError } from '../../errors.js';
2
+ import { withTimeout } from '../../transport.js';
3
+ import type { ModelInfo, ResolvedConnection } from '../../types.js';
4
+ import type { ProviderProfile } from '../profiles.js';
5
+ export declare const DEFAULT_TIMEOUT_MS = 120000;
6
+ /**
7
+ * Maps a raw streaming failure onto a typed {@link AIError}. A fired timeout is
8
+ * reported as `timeout` regardless of how the underlying `fetch` surfaced the
9
+ * abort; anything else is normalized through {@link fromUnknown} (which passes
10
+ * an existing {@link AIError} through untouched, preserving retryability).
11
+ */
12
+ export declare function streamError(error: unknown, timeout: {
13
+ timedOut(): boolean;
14
+ }, provider: string): AIError;
15
+ /**
16
+ * Create a timeout/abort scope covering the full stream lifetime, plus an
17
+ * optional idle timeout (`conn.idleTimeoutMs`) that the engine rearms via
18
+ * `bump()` on each received chunk.
19
+ */
20
+ export declare function streamTimeout(conn: ResolvedConnection, signal?: AbortSignal): ReturnType<typeof withTimeout>;
21
+ export declare function listOpenModels(conn: ResolvedConnection, profile: ProviderProfile): Promise<ModelInfo[]>;
22
+ export declare function health(conn: ResolvedConnection, profile: ProviderProfile): Promise<{
23
+ ok: boolean;
24
+ detail?: string;
25
+ }>;
26
+ /**
27
+ * Coerce a provider's tool-call `arguments` into an object. Providers disagree
28
+ * on the shape: OpenAI/Anthropic stream a JSON *string*, Google and Ollama send
29
+ * a native object — but Ollama-compatible backends (llama.cpp and friends)
30
+ * sometimes send a string too. Malformed JSON degrades to `{}` so a single bad
31
+ * tool call surfaces as an argument-validation error rather than a stream crash.
32
+ */
33
+ export declare function parseArgs(raw: unknown): unknown;
34
+ /** JSON.parse that returns undefined instead of throwing — for per-line stream frames. */
35
+ export declare function safeParse(line: string): unknown;
36
+ /** Stable-enough id for a tool call a provider didn't give one for. */
37
+ export declare function randomId(): string;
38
+ /**
39
+ * A stream that ended without the provider's terminal marker (an OpenAI
40
+ * `finish_reason`, an Anthropic `message_delta.stop_reason`, a Google
41
+ * `finishReason`, an Ollama `done`) was almost certainly truncated. Every
42
+ * engine yields this so a dropped connection is diagnosable identically
43
+ * regardless of provider.
44
+ */
45
+ export declare function streamAnomaly(reason?: string): {
46
+ type: 'context';
47
+ kind: string;
48
+ data: unknown;
49
+ };
50
+ //# sourceMappingURL=base.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.d.ts","sourceRoot":"","sources":["../../../src/adapters/engines/base.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAe,MAAM,iBAAiB,CAAC;AACvD,OAAO,EAAa,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,KAAK,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAEtD,eAAO,MAAM,kBAAkB,SAAU,CAAC;AAE1C;;;;;GAKG;AACH,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE;IAAE,QAAQ,IAAI,OAAO,CAAA;CAAE,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAGvG;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,kBAAkB,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC,OAAO,WAAW,CAAC,CAE5G;AAED,wBAAsB,cAAc,CAAC,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,CA0B7G;AAED,wBAAsB,MAAM,CAAC,IAAI,EAAE,kBAAkB,EAAE,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC;IAAE,EAAE,EAAE,OAAO,CAAC;IAAC,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC,CAc1H;AAED;;;;;;GAMG;AACH,wBAAgB,SAAS,CAAC,GAAG,EAAE,OAAO,GAAG,OAAO,CAS/C;AAED,0FAA0F;AAC1F,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAM/C;AAED,uEAAuE;AACvE,wBAAgB,QAAQ,IAAI,MAAM,CAEjC;AAED;;;;;;GAMG;AACH,wBAAgB,aAAa,CAAC,MAAM,SAAkD,GAAG;IAAE,IAAI,EAAE,SAAS,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,OAAO,CAAA;CAAE,CAExI"}
@@ -0,0 +1,137 @@
1
+ import { AIError, fromUnknown } from '../../errors.js';
2
+ import { fetchJson, withTimeout } from '../../transport.js';
3
+ import { asRecord, asString, joinUrl } from '../../util.js';
4
+ export const DEFAULT_TIMEOUT_MS = 120_000;
5
+ /**
6
+ * Maps a raw streaming failure onto a typed {@link AIError}. A fired timeout is
7
+ * reported as `timeout` regardless of how the underlying `fetch` surfaced the
8
+ * abort; anything else is normalized through {@link fromUnknown} (which passes
9
+ * an existing {@link AIError} through untouched, preserving retryability).
10
+ */
11
+ export function streamError(error, timeout, provider) {
12
+ if (timeout.timedOut())
13
+ return new AIError('Request timed out', { kind: 'timeout', provider });
14
+ return fromUnknown(error, provider);
15
+ }
16
+ /**
17
+ * Create a timeout/abort scope covering the full stream lifetime, plus an
18
+ * optional idle timeout (`conn.idleTimeoutMs`) that the engine rearms via
19
+ * `bump()` on each received chunk.
20
+ */
21
+ export function streamTimeout(conn, signal) {
22
+ return withTimeout(conn.timeoutMs ?? DEFAULT_TIMEOUT_MS, signal, conn.idleTimeoutMs);
23
+ }
24
+ export async function listOpenModels(conn, profile) {
25
+ if (!profile.listModelsPath)
26
+ return [];
27
+ const { data } = await fetchJson(joinUrl(conn.baseUrl, profile.listModelsPath), {
28
+ method: 'GET',
29
+ headers: conn.headers,
30
+ timeoutMs: conn.timeoutMs ?? DEFAULT_TIMEOUT_MS,
31
+ provider: conn.provider,
32
+ });
33
+ const record = asRecord(data);
34
+ const items = Array.isArray(record?.data) ? record.data : Array.isArray(record?.models) ? record.models : [];
35
+ const models = [];
36
+ for (const item of items) {
37
+ const row = asRecord(item);
38
+ const id = asString(row?.id) ?? asString(row?.name);
39
+ if (!id)
40
+ continue;
41
+ const contextWindow = asContextWindow(row);
42
+ const capabilities = asCapabilities(row);
43
+ const model = {
44
+ id,
45
+ source: { provider: conn.provider, connectionId: conn.id, baseUrl: conn.baseUrl },
46
+ };
47
+ if (contextWindow !== undefined)
48
+ model.contextWindow = contextWindow;
49
+ if (capabilities)
50
+ model.capabilities = capabilities;
51
+ models.push(model);
52
+ }
53
+ return models;
54
+ }
55
+ export async function health(conn, profile) {
56
+ const path = profile.healthPath ?? profile.listModelsPath;
57
+ if (!path)
58
+ return { ok: true };
59
+ try {
60
+ await fetchJson(joinUrl(conn.baseUrl, path), {
61
+ method: 'GET',
62
+ headers: conn.headers,
63
+ timeoutMs: Math.min(conn.timeoutMs ?? DEFAULT_TIMEOUT_MS, 10_000),
64
+ provider: conn.provider,
65
+ });
66
+ return { ok: true };
67
+ }
68
+ catch (error) {
69
+ return { ok: false, detail: error instanceof Error ? error.message : 'Health check failed' };
70
+ }
71
+ }
72
+ /**
73
+ * Coerce a provider's tool-call `arguments` into an object. Providers disagree
74
+ * on the shape: OpenAI/Anthropic stream a JSON *string*, Google and Ollama send
75
+ * a native object — but Ollama-compatible backends (llama.cpp and friends)
76
+ * sometimes send a string too. Malformed JSON degrades to `{}` so a single bad
77
+ * tool call surfaces as an argument-validation error rather than a stream crash.
78
+ */
79
+ export function parseArgs(raw) {
80
+ if (raw === undefined || raw === null)
81
+ return {};
82
+ if (typeof raw !== 'string')
83
+ return raw;
84
+ if (!raw.trim())
85
+ return {};
86
+ try {
87
+ return JSON.parse(raw);
88
+ }
89
+ catch {
90
+ return {};
91
+ }
92
+ }
93
+ /** JSON.parse that returns undefined instead of throwing — for per-line stream frames. */
94
+ export function safeParse(line) {
95
+ try {
96
+ return JSON.parse(line);
97
+ }
98
+ catch {
99
+ return undefined;
100
+ }
101
+ }
102
+ /** Stable-enough id for a tool call a provider didn't give one for. */
103
+ export function randomId() {
104
+ return globalThis.crypto?.randomUUID?.() ?? `tool_${Date.now()}_${Math.random().toString(36).slice(2)}`;
105
+ }
106
+ /**
107
+ * A stream that ended without the provider's terminal marker (an OpenAI
108
+ * `finish_reason`, an Anthropic `message_delta.stop_reason`, a Google
109
+ * `finishReason`, an Ollama `done`) was almost certainly truncated. Every
110
+ * engine yields this so a dropped connection is diagnosable identically
111
+ * regardless of provider.
112
+ */
113
+ export function streamAnomaly(reason = 'stream ended without a terminal finish reason') {
114
+ return { type: 'context', kind: 'stream_anomaly', data: { reason } };
115
+ }
116
+ /**
117
+ * Pulls a context-window figure out of the many shapes providers use for it
118
+ * (OpenRouter `context_length`, OpenAI-style `context_window`, Ollama
119
+ * `/api/show` `model_info` entries surfaced as `contextWindow`).
120
+ */
121
+ function asContextWindow(row) {
122
+ if (!row)
123
+ return undefined;
124
+ const direct = row['context_length'] ?? row['context_window'] ?? row['contextWindow'];
125
+ return typeof direct === 'number' && Number.isFinite(direct) ? direct : undefined;
126
+ }
127
+ function asCapabilities(row) {
128
+ if (!row)
129
+ return undefined;
130
+ const value = row['capabilities'] ?? asRecord(row['architecture'])?.['modality'];
131
+ if (Array.isArray(value) && value.every((entry) => typeof entry === 'string'))
132
+ return value;
133
+ if (typeof value === 'string')
134
+ return [value];
135
+ return undefined;
136
+ }
137
+ //# sourceMappingURL=base.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"base.js","sourceRoot":"","sources":["../../../src/adapters/engines/base.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,24 @@
1
+ import type { ChatRequest, ChatResult, ModelInfo, ProviderAdapter, ResolvedConnection, StreamEvent } from '../../types.js';
2
+ export declare class GoogleAdapter implements ProviderAdapter {
3
+ readonly provider: string;
4
+ constructor(provider: string);
5
+ chat(conn: ResolvedConnection, req: ChatRequest): Promise<ChatResult>;
6
+ stream(conn: ResolvedConnection, req: ChatRequest): AsyncIterable<StreamEvent>;
7
+ /**
8
+ * `GoogleAdapter` has no `listModels`, so without a `health` probe
9
+ * `AIHandler.testConnection` would report `ok: true` without ever making a
10
+ * network call. `/v1beta/models` is a lightweight, key-authenticated GET
11
+ * that gives an honest connectivity/auth check.
12
+ */
13
+ health(conn: ResolvedConnection): Promise<{
14
+ ok: boolean;
15
+ detail?: string;
16
+ }>;
17
+ /**
18
+ * Lists models from Google's `/v1beta/models`. Strips the `models/` name
19
+ * prefix, and maps `inputTokenLimit` → `contextWindow` and
20
+ * `supportedGenerationMethods` → `capabilities`.
21
+ */
22
+ listModels(conn: ResolvedConnection): Promise<ModelInfo[]>;
23
+ }
24
+ //# sourceMappingURL=google.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google.d.ts","sourceRoot":"","sources":["../../../src/adapters/engines/google.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAe,WAAW,EAAE,UAAU,EAAE,SAAS,EAAE,eAAe,EAAE,kBAAkB,EAAE,WAAW,EAAY,MAAM,gBAAgB,CAAC;AAIlJ,qBAAa,aAAc,YAAW,eAAe;IACnD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBACd,QAAQ,EAAE,MAAM;IAItB,IAAI,CAAC,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAUpE,MAAM,CAAC,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC;IA+ErF;;;;;OAKG;IACG,MAAM,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAcjF;;;;OAIG;IACG,UAAU,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;CAuBjE"}
@@ -0,0 +1,281 @@
1
+ import { AIError } from '../../errors.js';
2
+ import { estimatedUsage } from '../../tokens.js';
3
+ import { fetchJson, postResponse, sseLines } from '../../transport.js';
4
+ import { applyProviderOptions, asNumber, asRecord, asString, joinUrl, textFromMessages } from '../../util.js';
5
+ import { DEFAULT_TIMEOUT_MS, randomId, safeParse, streamAnomaly, streamError, streamTimeout } from './base.js';
6
+ export class GoogleAdapter {
7
+ provider;
8
+ constructor(provider) {
9
+ this.provider = provider;
10
+ }
11
+ async chat(conn, req) {
12
+ let result;
13
+ for await (const event of this.stream(conn, req)) {
14
+ if (event.type === 'done')
15
+ result = event.result;
16
+ if (event.type === 'error')
17
+ throw event.error;
18
+ }
19
+ if (!result)
20
+ throw new AIError('Google stream ended without a result', { kind: 'invalid_response', provider: conn.provider });
21
+ return result;
22
+ }
23
+ async *stream(conn, req) {
24
+ const started = Date.now();
25
+ let firstTokenMs = null;
26
+ let text = '';
27
+ let inputTokens;
28
+ let outputTokens;
29
+ let finish;
30
+ const toolCalls = [];
31
+ const timeout = streamTimeout(conn, req.signal);
32
+ yield { type: 'start', callId: '', provider: conn.provider, model: req.model };
33
+ // Gemini rejects `responseMimeType: application/json` combined with function
34
+ // declarations, so `body()` drops JSON mode when tools are present. Surface
35
+ // that downgrade instead of silently returning unstructured text.
36
+ if (jsonModeDowngraded(req)) {
37
+ yield {
38
+ type: 'context',
39
+ kind: 'json_mode_downgraded',
40
+ data: { reason: 'Gemini does not accept JSON response mode together with tools; the request was sent without JSON mode', provider: conn.provider },
41
+ };
42
+ }
43
+ try {
44
+ const streamUrl = `${conn.baseUrl}/v1beta/models/${encodeURIComponent(req.model)}:streamGenerateContent?alt=sse`;
45
+ const res = await postResponse(streamUrl, body(req), conn.headers, timeout.signal, conn.provider);
46
+ const contentType = res.headers.get('content-type') ?? '';
47
+ const chunks = contentType.includes('text/event-stream') ? sseLines(res) : singleJsonLine(res);
48
+ for await (const line of chunks) {
49
+ timeout.bump();
50
+ const parsed = safeParse(line);
51
+ const record = asRecord(parsed);
52
+ const promptFeedback = asRecord(record?.promptFeedback);
53
+ if (!firstCandidate(record) && promptFeedback?.blockReason)
54
+ finish = 'SAFETY';
55
+ for (const part of candidateParts(record)) {
56
+ const partText = asString(asRecord(part)?.text);
57
+ if (partText) {
58
+ // Gemini marks reasoning parts with `thought: true`; route those to
59
+ // the reasoning channel so they don't blend into the answer text.
60
+ if (asRecord(part)?.thought === true) {
61
+ yield { type: 'reasoning', text: partText };
62
+ continue;
63
+ }
64
+ if (firstTokenMs === null)
65
+ firstTokenMs = Date.now() - started;
66
+ text += partText;
67
+ yield { type: 'delta', text: partText };
68
+ }
69
+ const fnCall = asRecord(asRecord(part)?.functionCall);
70
+ if (fnCall) {
71
+ const call = {
72
+ id: randomId(),
73
+ name: asString(fnCall.name) ?? 'unknown',
74
+ arguments: fnCall.args ?? {},
75
+ raw: JSON.stringify(fnCall.args ?? {}),
76
+ };
77
+ toolCalls.push(call);
78
+ yield { type: 'tool_call', call };
79
+ }
80
+ }
81
+ finish = asString(asRecord(firstCandidate(record))?.finishReason) ?? finish;
82
+ const usage = asRecord(record?.usageMetadata);
83
+ inputTokens = asNumber(usage?.promptTokenCount) ?? inputTokens;
84
+ outputTokens = asNumber(usage?.candidatesTokenCount) ?? outputTokens;
85
+ }
86
+ if (!finish)
87
+ yield streamAnomaly('stream ended without a finishReason');
88
+ const hasTools = toolCalls.length > 0;
89
+ yield { type: 'done', result: {
90
+ text,
91
+ toolCalls: hasTools ? toolCalls : undefined,
92
+ finishReason: mapFinish(finish, hasTools),
93
+ usage: inputTokens !== undefined || outputTokens !== undefined ? { inputTokens, outputTokens, estimated: false } : estimatedUsage(textFromMessages(req.messages), text),
94
+ timing: { firstTokenMs, totalMs: Date.now() - started },
95
+ model: req.model,
96
+ source: { provider: conn.provider, connectionId: conn.id, baseUrl: conn.baseUrl },
97
+ } };
98
+ }
99
+ catch (error) {
100
+ throw streamError(error, timeout, conn.provider);
101
+ }
102
+ finally {
103
+ timeout.done();
104
+ }
105
+ }
106
+ /**
107
+ * `GoogleAdapter` has no `listModels`, so without a `health` probe
108
+ * `AIHandler.testConnection` would report `ok: true` without ever making a
109
+ * network call. `/v1beta/models` is a lightweight, key-authenticated GET
110
+ * that gives an honest connectivity/auth check.
111
+ */
112
+ async health(conn) {
113
+ try {
114
+ await fetchJson(joinUrl(conn.baseUrl, '/v1beta/models'), {
115
+ method: 'GET',
116
+ headers: conn.headers,
117
+ timeoutMs: Math.min(conn.timeoutMs ?? DEFAULT_TIMEOUT_MS, 10_000),
118
+ provider: conn.provider,
119
+ });
120
+ return { ok: true };
121
+ }
122
+ catch (error) {
123
+ return { ok: false, detail: error instanceof Error ? error.message : 'Health check failed' };
124
+ }
125
+ }
126
+ /**
127
+ * Lists models from Google's `/v1beta/models`. Strips the `models/` name
128
+ * prefix, and maps `inputTokenLimit` → `contextWindow` and
129
+ * `supportedGenerationMethods` → `capabilities`.
130
+ */
131
+ async listModels(conn) {
132
+ const { data } = await fetchJson(joinUrl(conn.baseUrl, '/v1beta/models'), {
133
+ method: 'GET',
134
+ headers: conn.headers,
135
+ timeoutMs: Math.min(conn.timeoutMs ?? DEFAULT_TIMEOUT_MS, 15_000),
136
+ provider: conn.provider,
137
+ });
138
+ const rows = Array.isArray(asRecord(data)?.models) ? asRecord(data).models : [];
139
+ const models = [];
140
+ for (const value of rows) {
141
+ const row = asRecord(value);
142
+ const name = asString(row?.name);
143
+ if (!name)
144
+ continue;
145
+ const id = name.startsWith('models/') ? name.slice('models/'.length) : name;
146
+ const model = { id, source: { provider: conn.provider, connectionId: conn.id, baseUrl: conn.baseUrl } };
147
+ const contextWindow = asNumber(row?.inputTokenLimit);
148
+ if (contextWindow !== undefined)
149
+ model.contextWindow = contextWindow;
150
+ const methods = row?.supportedGenerationMethods;
151
+ if (Array.isArray(methods) && methods.every((m) => typeof m === 'string'))
152
+ model.capabilities = methods;
153
+ models.push(model);
154
+ }
155
+ return models;
156
+ }
157
+ }
158
+ /** True when the caller asked for JSON mode but tools force it off. */
159
+ function jsonModeDowngraded(req) {
160
+ return req.responseFormat?.type === 'json' && !!req.tools?.length;
161
+ }
162
+ function body(req) {
163
+ const systemText = req.messages.filter((m) => m.role === 'system').map((m) => textContent(m.content)).join('\n\n');
164
+ const jsonMode = req.responseFormat?.type === 'json' && !req.tools?.length;
165
+ const responseSchema = req.responseFormat?.type === 'json' ? req.responseFormat.schema : undefined;
166
+ const payload = {
167
+ contents: toGoogleContents(req.messages.filter((m) => m.role !== 'system')),
168
+ generationConfig: {
169
+ temperature: req.temperature,
170
+ topP: req.topP,
171
+ maxOutputTokens: req.maxTokens,
172
+ stopSequences: req.stopSequences,
173
+ responseMimeType: jsonMode ? 'application/json' : undefined,
174
+ responseSchema: jsonMode ? responseSchema : undefined,
175
+ },
176
+ };
177
+ if (systemText)
178
+ payload.systemInstruction = { parts: [{ text: systemText }] };
179
+ if (req.tools?.length) {
180
+ payload.tools = [{ functionDeclarations: req.tools.map((tool) => ({ name: tool.name, description: tool.description, parameters: tool.parameters })) }];
181
+ const mode = req.toolChoice === 'none' ? 'NONE' : typeof req.toolChoice === 'object' ? 'ANY' : 'AUTO';
182
+ const config = { mode };
183
+ if (typeof req.toolChoice === 'object')
184
+ config.allowedFunctionNames = [req.toolChoice.name];
185
+ payload.toolConfig = { functionCallingConfig: config };
186
+ }
187
+ // providerOptions reaches Google-native fields: top-level `safetySettings`,
188
+ // `cachedContent`, and `generationConfig` extras (`thinkingConfig`,
189
+ // `responseModalities`, …) merged one level deep into generationConfig.
190
+ return applyProviderOptions(payload, req.providerOptions, ['generationConfig']);
191
+ }
192
+ function toGoogleContents(messages) {
193
+ const contents = [];
194
+ for (let index = 0; index < messages.length; index += 1) {
195
+ const message = messages[index];
196
+ if (message.role !== 'tool') {
197
+ contents.push(toGoogleContent(message));
198
+ continue;
199
+ }
200
+ const parts = [];
201
+ while (index < messages.length && messages[index]?.role === 'tool') {
202
+ const toolMessage = messages[index];
203
+ parts.push({ functionResponse: { name: toolMessage.name ?? 'unknown', response: toolResponseObject(toolMessage) } });
204
+ index += 1;
205
+ }
206
+ index -= 1;
207
+ contents.push({ role: 'user', parts });
208
+ }
209
+ return contents;
210
+ }
211
+ function toGoogleContent(m) {
212
+ // Tool-role messages are handled by toGoogleContents' batching loop and never
213
+ // reach here, so no tool branch is needed.
214
+ if (m.role === 'assistant' && m.toolCalls?.length) {
215
+ const parts = [...googleParts(m.content)];
216
+ for (const call of m.toolCalls)
217
+ parts.push({ functionCall: { name: call.name, args: call.arguments ?? {} } });
218
+ return { role: 'model', parts };
219
+ }
220
+ return {
221
+ role: m.role === 'assistant' ? 'model' : 'user',
222
+ parts: googleParts(m.content),
223
+ };
224
+ }
225
+ /** Maps text/image content — a string or a ContentPart[] — onto Google parts. */
226
+ function googleParts(content) {
227
+ if (typeof content === 'string')
228
+ return content ? [{ text: content }] : [];
229
+ return content.map((part) => part.type === 'image'
230
+ ? { inlineData: { mimeType: part.mimeType ?? 'image/png', data: part.imageBase64 ?? '' } }
231
+ : { text: part.text ?? '' });
232
+ }
233
+ function textContent(content) {
234
+ if (typeof content === 'string')
235
+ return content;
236
+ if (!content)
237
+ return '';
238
+ return content.filter((part) => part.type === 'text').map((part) => part.text ?? '').join('\n');
239
+ }
240
+ function toolResponseObject(message) {
241
+ if (typeof message.content !== 'string')
242
+ return { content: textContent(message.content) };
243
+ try {
244
+ const parsed = JSON.parse(message.content);
245
+ if (parsed !== null && typeof parsed === 'object' && !Array.isArray(parsed))
246
+ return parsed;
247
+ }
248
+ catch {
249
+ // keep string fallback
250
+ }
251
+ return { content: message.content };
252
+ }
253
+ async function* singleJsonLine(res) {
254
+ const data = await res.json();
255
+ // Non-SSE responses may be a single object or an array of streamed chunks.
256
+ if (Array.isArray(data)) {
257
+ for (const item of data)
258
+ yield JSON.stringify(item);
259
+ }
260
+ else {
261
+ yield JSON.stringify(data);
262
+ }
263
+ }
264
+ function firstCandidate(record) {
265
+ const candidates = Array.isArray(record?.candidates) ? record.candidates : [];
266
+ return candidates[0];
267
+ }
268
+ function candidateParts(record) {
269
+ const content = asRecord(asRecord(firstCandidate(record))?.content);
270
+ return Array.isArray(content?.parts) ? content.parts : [];
271
+ }
272
+ function mapFinish(finish, hasTools) {
273
+ if (hasTools)
274
+ return 'tool';
275
+ if (finish === 'MAX_TOKENS')
276
+ return 'length';
277
+ if (finish === 'SAFETY' || finish === 'RECITATION' || finish === 'BLOCKLIST' || finish === 'PROHIBITED_CONTENT')
278
+ return 'content_filter';
279
+ return 'stop';
280
+ }
281
+ //# sourceMappingURL=google.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"google.js","sourceRoot":"","sources":["../../../src/adapters/engines/google.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import type { ChatRequest, ChatResult, EmbedRequest, EmbedResult, ModelInfo, ProviderAdapter, ResolvedConnection, StreamEvent } from '../../types.js';
2
+ export declare class OllamaAdapter implements ProviderAdapter {
3
+ readonly provider: string;
4
+ constructor(provider: string);
5
+ chat(conn: ResolvedConnection, req: ChatRequest): Promise<ChatResult>;
6
+ stream(conn: ResolvedConnection, req: ChatRequest): AsyncIterable<StreamEvent>;
7
+ listModels(conn: ResolvedConnection): Promise<ModelInfo[]>;
8
+ embed(conn: ResolvedConnection, req: EmbedRequest): Promise<EmbedResult>;
9
+ private showModel;
10
+ }
11
+ //# sourceMappingURL=ollama.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ollama.d.ts","sourceRoot":"","sources":["../../../src/adapters/engines/ollama.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAe,WAAW,EAAE,UAAU,EAAE,YAAY,EAAE,WAAW,EAAE,SAAS,EAAE,eAAe,EAAE,kBAAkB,EAAE,WAAW,EAAY,MAAM,gBAAgB,CAAC;AAO7K,qBAAa,aAAc,YAAW,eAAe;IACnD,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;gBACd,QAAQ,EAAE,MAAM;IAItB,IAAI,CAAC,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAUpE,MAAM,CAAC,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,WAAW,GAAG,aAAa,CAAC,WAAW,CAAC;IAgE/E,UAAU,CAAC,IAAI,EAAE,kBAAkB,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC;IAqB1D,KAAK,CAAC,IAAI,EAAE,kBAAkB,EAAE,GAAG,EAAE,YAAY,GAAG,OAAO,CAAC,WAAW,CAAC;YAsBhE,SAAS;CAuBxB"}