@antaif3ng/til-work 0.1.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 (150) hide show
  1. package/README.md +573 -0
  2. package/dist/cli.d.ts +3 -0
  3. package/dist/cli.d.ts.map +1 -0
  4. package/dist/cli.js +7 -0
  5. package/dist/cli.js.map +1 -0
  6. package/dist/core/agent.d.ts +78 -0
  7. package/dist/core/agent.d.ts.map +1 -0
  8. package/dist/core/agent.js +372 -0
  9. package/dist/core/agent.js.map +1 -0
  10. package/dist/core/compaction.d.ts +40 -0
  11. package/dist/core/compaction.d.ts.map +1 -0
  12. package/dist/core/compaction.js +228 -0
  13. package/dist/core/compaction.js.map +1 -0
  14. package/dist/core/config.d.ts +54 -0
  15. package/dist/core/config.d.ts.map +1 -0
  16. package/dist/core/config.js +257 -0
  17. package/dist/core/config.js.map +1 -0
  18. package/dist/core/llm.d.ts +29 -0
  19. package/dist/core/llm.d.ts.map +1 -0
  20. package/dist/core/llm.js +553 -0
  21. package/dist/core/llm.js.map +1 -0
  22. package/dist/core/markdown.d.ts +20 -0
  23. package/dist/core/markdown.d.ts.map +1 -0
  24. package/dist/core/markdown.js +173 -0
  25. package/dist/core/markdown.js.map +1 -0
  26. package/dist/core/memory.d.ts +30 -0
  27. package/dist/core/memory.d.ts.map +1 -0
  28. package/dist/core/memory.js +163 -0
  29. package/dist/core/memory.js.map +1 -0
  30. package/dist/core/pricing.d.ts +21 -0
  31. package/dist/core/pricing.d.ts.map +1 -0
  32. package/dist/core/pricing.js +70 -0
  33. package/dist/core/pricing.js.map +1 -0
  34. package/dist/core/session-manager.d.ts +83 -0
  35. package/dist/core/session-manager.d.ts.map +1 -0
  36. package/dist/core/session-manager.js +250 -0
  37. package/dist/core/session-manager.js.map +1 -0
  38. package/dist/core/session.d.ts +76 -0
  39. package/dist/core/session.d.ts.map +1 -0
  40. package/dist/core/session.js +270 -0
  41. package/dist/core/session.js.map +1 -0
  42. package/dist/core/skills.d.ts +49 -0
  43. package/dist/core/skills.d.ts.map +1 -0
  44. package/dist/core/skills.js +232 -0
  45. package/dist/core/skills.js.map +1 -0
  46. package/dist/core/system-prompt.d.ts +17 -0
  47. package/dist/core/system-prompt.d.ts.map +1 -0
  48. package/dist/core/system-prompt.js +77 -0
  49. package/dist/core/system-prompt.js.map +1 -0
  50. package/dist/core/tool-permissions.d.ts +12 -0
  51. package/dist/core/tool-permissions.d.ts.map +1 -0
  52. package/dist/core/tool-permissions.js +71 -0
  53. package/dist/core/tool-permissions.js.map +1 -0
  54. package/dist/core/types.d.ts +157 -0
  55. package/dist/core/types.d.ts.map +1 -0
  56. package/dist/core/types.js +21 -0
  57. package/dist/core/types.js.map +1 -0
  58. package/dist/extensions/builtin/mcp.d.ts +61 -0
  59. package/dist/extensions/builtin/mcp.d.ts.map +1 -0
  60. package/dist/extensions/builtin/mcp.js +407 -0
  61. package/dist/extensions/builtin/mcp.js.map +1 -0
  62. package/dist/extensions/index.d.ts +4 -0
  63. package/dist/extensions/index.d.ts.map +1 -0
  64. package/dist/extensions/index.js +3 -0
  65. package/dist/extensions/index.js.map +1 -0
  66. package/dist/extensions/loader.d.ts +19 -0
  67. package/dist/extensions/loader.d.ts.map +1 -0
  68. package/dist/extensions/loader.js +118 -0
  69. package/dist/extensions/loader.js.map +1 -0
  70. package/dist/extensions/runner.d.ts +28 -0
  71. package/dist/extensions/runner.d.ts.map +1 -0
  72. package/dist/extensions/runner.js +77 -0
  73. package/dist/extensions/runner.js.map +1 -0
  74. package/dist/extensions/types.d.ts +84 -0
  75. package/dist/extensions/types.d.ts.map +1 -0
  76. package/dist/extensions/types.js +6 -0
  77. package/dist/extensions/types.js.map +1 -0
  78. package/dist/index.d.ts +21 -0
  79. package/dist/index.d.ts.map +1 -0
  80. package/dist/index.js +15 -0
  81. package/dist/index.js.map +1 -0
  82. package/dist/main.d.ts +5 -0
  83. package/dist/main.d.ts.map +1 -0
  84. package/dist/main.js +355 -0
  85. package/dist/main.js.map +1 -0
  86. package/dist/modes/interactive.d.ts +6 -0
  87. package/dist/modes/interactive.d.ts.map +1 -0
  88. package/dist/modes/interactive.js +961 -0
  89. package/dist/modes/interactive.js.map +1 -0
  90. package/dist/modes/oneshot.d.ts +8 -0
  91. package/dist/modes/oneshot.d.ts.map +1 -0
  92. package/dist/modes/oneshot.js +71 -0
  93. package/dist/modes/oneshot.js.map +1 -0
  94. package/dist/tools/bash.d.ts +3 -0
  95. package/dist/tools/bash.d.ts.map +1 -0
  96. package/dist/tools/bash.js +104 -0
  97. package/dist/tools/bash.js.map +1 -0
  98. package/dist/tools/edit.d.ts +3 -0
  99. package/dist/tools/edit.d.ts.map +1 -0
  100. package/dist/tools/edit.js +63 -0
  101. package/dist/tools/edit.js.map +1 -0
  102. package/dist/tools/file-manager.d.ts +3 -0
  103. package/dist/tools/file-manager.d.ts.map +1 -0
  104. package/dist/tools/file-manager.js +85 -0
  105. package/dist/tools/file-manager.js.map +1 -0
  106. package/dist/tools/index.d.ts +17 -0
  107. package/dist/tools/index.d.ts.map +1 -0
  108. package/dist/tools/index.js +42 -0
  109. package/dist/tools/index.js.map +1 -0
  110. package/dist/tools/read.d.ts +3 -0
  111. package/dist/tools/read.d.ts.map +1 -0
  112. package/dist/tools/read.js +65 -0
  113. package/dist/tools/read.js.map +1 -0
  114. package/dist/tools/system-info.d.ts +3 -0
  115. package/dist/tools/system-info.d.ts.map +1 -0
  116. package/dist/tools/system-info.js +101 -0
  117. package/dist/tools/system-info.js.map +1 -0
  118. package/dist/tools/web-fetch.d.ts +3 -0
  119. package/dist/tools/web-fetch.d.ts.map +1 -0
  120. package/dist/tools/web-fetch.js +117 -0
  121. package/dist/tools/web-fetch.js.map +1 -0
  122. package/dist/tools/web-search.d.ts +9 -0
  123. package/dist/tools/web-search.d.ts.map +1 -0
  124. package/dist/tools/web-search.js +124 -0
  125. package/dist/tools/web-search.js.map +1 -0
  126. package/dist/tools/write.d.ts +3 -0
  127. package/dist/tools/write.d.ts.map +1 -0
  128. package/dist/tools/write.js +30 -0
  129. package/dist/tools/write.js.map +1 -0
  130. package/dist/utils/autocomplete.d.ts +23 -0
  131. package/dist/utils/autocomplete.d.ts.map +1 -0
  132. package/dist/utils/autocomplete.js +191 -0
  133. package/dist/utils/autocomplete.js.map +1 -0
  134. package/dist/utils/file-processor.d.ts +19 -0
  135. package/dist/utils/file-processor.d.ts.map +1 -0
  136. package/dist/utils/file-processor.js +86 -0
  137. package/dist/utils/file-processor.js.map +1 -0
  138. package/dist/utils/path.d.ts +8 -0
  139. package/dist/utils/path.d.ts.map +1 -0
  140. package/dist/utils/path.js +60 -0
  141. package/dist/utils/path.js.map +1 -0
  142. package/dist/utils/shell.d.ts +6 -0
  143. package/dist/utils/shell.d.ts.map +1 -0
  144. package/dist/utils/shell.js +64 -0
  145. package/dist/utils/shell.js.map +1 -0
  146. package/dist/utils/truncate.d.ts +12 -0
  147. package/dist/utils/truncate.d.ts.map +1 -0
  148. package/dist/utils/truncate.js +46 -0
  149. package/dist/utils/truncate.js.map +1 -0
  150. package/package.json +58 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compaction.js","sourceRoot":"","sources":["../../src/core/compaction.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ /**
2
+ * Configuration management for til-cli.
3
+ * Stores provider settings (API keys, base URLs, headers),
4
+ * default model, and tool preferences in ~/.til/config.json.
5
+ */
6
+ import type { CompactionSettings } from "./compaction.js";
7
+ import type { ModelConfig } from "./types.js";
8
+ import type { McpServerConfig } from "../extensions/types.js";
9
+ export interface ProviderConfig {
10
+ apiKey?: string;
11
+ baseUrl?: string;
12
+ /** Extra headers sent with every request to this provider */
13
+ headers?: Record<string, string>;
14
+ }
15
+ export interface TilConfig {
16
+ /** Per-provider settings: API key, base URL, custom headers */
17
+ providers: Record<string, ProviderConfig>;
18
+ /** Legacy flat key map — auto-migrated into `providers` on load */
19
+ apiKeys?: Record<string, string>;
20
+ defaultModel: {
21
+ provider: string;
22
+ id: string;
23
+ };
24
+ defaultTools: string[];
25
+ /** User-defined models that aren't in the built-in list */
26
+ customModels?: Record<string, {
27
+ provider: string;
28
+ name?: string;
29
+ maxTokens?: number;
30
+ contextWindow?: number;
31
+ }>;
32
+ /** Context compaction settings */
33
+ compaction?: CompactionSettings;
34
+ /** MCP server configurations */
35
+ mcpServers?: Record<string, McpServerConfig>;
36
+ /** Paths to extension files (.js/.mjs) */
37
+ extensions?: string[];
38
+ }
39
+ export declare function getConfigDir(): string;
40
+ export declare function getConfigPath(): string;
41
+ export declare function loadConfig(): Promise<TilConfig>;
42
+ export declare function saveConfig(config: TilConfig): Promise<void>;
43
+ export declare function resolveModel(modelId: string, config: TilConfig): ModelConfig;
44
+ export declare function resolveApiKey(model: ModelConfig, config: TilConfig): string | undefined;
45
+ export declare function resolveBaseUrl(model: ModelConfig, config: TilConfig): string | undefined;
46
+ export declare function guessProvider(modelId: string): string;
47
+ export declare function getKnownModelIds(): string[];
48
+ export declare function getKnownModels(): Record<string, ModelConfig>;
49
+ export declare function getProviderDisplayInfo(provider: string, config: TilConfig): {
50
+ hasKey: boolean;
51
+ baseUrl: string;
52
+ isCustomUrl: boolean;
53
+ };
54
+ //# sourceMappingURL=config.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AAC1D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,wBAAwB,CAAC;AAI9D,MAAM,WAAW,cAAc;IAC9B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,6DAA6D;IAC7D,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACjC;AAID,MAAM,WAAW,SAAS;IACzB,+DAA+D;IAC/D,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IAC1C,mEAAmE;IACnE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACjC,YAAY,EAAE;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,EAAE,EAAE,MAAM,CAAC;KACX,CAAC;IACF,YAAY,EAAE,MAAM,EAAE,CAAC;IACvB,2DAA2D;IAC3D,YAAY,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE;QAC7B,QAAQ,EAAE,MAAM,CAAC;QACjB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,aAAa,CAAC,EAAE,MAAM,CAAC;KACvB,CAAC,CAAC;IACH,kCAAkC;IAClC,UAAU,CAAC,EAAE,kBAAkB,CAAC;IAChC,gCAAgC;IAChC,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC7C,0CAA0C;IAC1C,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;CACtB;AA2FD,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAED,wBAAgB,aAAa,IAAI,MAAM,CAEtC;AAID,wBAAsB,UAAU,IAAI,OAAO,CAAC,SAAS,CAAC,CAYrD;AAsBD,wBAAsB,UAAU,CAAC,MAAM,EAAE,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAMjE;AAkBD,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG,WAAW,CAoC5E;AAaD,wBAAgB,aAAa,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAavF;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE,MAAM,EAAE,SAAS,GAAG,MAAM,GAAG,SAAS,CAaxF;AAID,wBAAgB,aAAa,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAKrD;AAED,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAE3C;AAED,wBAAgB,cAAc,IAAI,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,CAE5D;AAED,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,GAAG;IAC5E,MAAM,EAAE,OAAO,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,OAAO,CAAC;CACrB,CAaA"}
@@ -0,0 +1,257 @@
1
+ /**
2
+ * Configuration management for til-cli.
3
+ * Stores provider settings (API keys, base URLs, headers),
4
+ * default model, and tool preferences in ~/.til/config.json.
5
+ */
6
+ import { existsSync } from "node:fs";
7
+ import { mkdir, readFile, writeFile } from "node:fs/promises";
8
+ import { dirname, join } from "node:path";
9
+ import { homedir } from "node:os";
10
+ const DEFAULT_CONFIG = {
11
+ providers: {},
12
+ defaultModel: {
13
+ provider: "anthropic",
14
+ id: "claude-sonnet-4-20250514",
15
+ },
16
+ defaultTools: ["bash", "read", "write", "edit", "system_info", "file_manager", "web_search", "web_fetch"],
17
+ };
18
+ // ── Built-in Model Registry ──
19
+ const BUILTIN_MODELS = {
20
+ "claude-sonnet-4-20250514": {
21
+ provider: "anthropic",
22
+ id: "claude-sonnet-4-20250514",
23
+ name: "Claude Sonnet 4",
24
+ maxTokens: 8192,
25
+ contextWindow: 200000,
26
+ },
27
+ "claude-opus-4-20250514": {
28
+ provider: "anthropic",
29
+ id: "claude-opus-4-20250514",
30
+ name: "Claude Opus 4",
31
+ maxTokens: 8192,
32
+ contextWindow: 200000,
33
+ },
34
+ "claude-3-5-sonnet-20241022": {
35
+ provider: "anthropic",
36
+ id: "claude-3-5-sonnet-20241022",
37
+ name: "Claude 3.5 Sonnet",
38
+ maxTokens: 8192,
39
+ contextWindow: 200000,
40
+ },
41
+ "gpt-4o": {
42
+ provider: "openai",
43
+ id: "gpt-4o",
44
+ name: "GPT-4o",
45
+ maxTokens: 8192,
46
+ contextWindow: 128000,
47
+ },
48
+ "gpt-4o-mini": {
49
+ provider: "openai",
50
+ id: "gpt-4o-mini",
51
+ name: "GPT-4o Mini",
52
+ maxTokens: 8192,
53
+ contextWindow: 128000,
54
+ },
55
+ "o3-mini": {
56
+ provider: "openai",
57
+ id: "o3-mini",
58
+ name: "o3 Mini",
59
+ maxTokens: 8192,
60
+ contextWindow: 200000,
61
+ },
62
+ "gemini-2.0-flash": {
63
+ provider: "google",
64
+ id: "gemini-2.0-flash",
65
+ name: "Gemini 2.0 Flash",
66
+ maxTokens: 8192,
67
+ contextWindow: 1048576,
68
+ },
69
+ "gemini-2.5-pro-preview-06-05": {
70
+ provider: "google",
71
+ id: "gemini-2.5-pro-preview-06-05",
72
+ name: "Gemini 2.5 Pro",
73
+ maxTokens: 8192,
74
+ contextWindow: 1048576,
75
+ },
76
+ };
77
+ const DEFAULT_BASE_URLS = {
78
+ anthropic: "https://api.anthropic.com/v1",
79
+ openai: "https://api.openai.com/v1",
80
+ google: "https://generativelanguage.googleapis.com/v1beta",
81
+ };
82
+ const ENV_KEY_MAP = {
83
+ anthropic: "ANTHROPIC_API_KEY",
84
+ openai: "OPENAI_API_KEY",
85
+ google: "GOOGLE_API_KEY",
86
+ };
87
+ const ENV_BASE_URL_MAP = {
88
+ anthropic: "ANTHROPIC_BASE_URL",
89
+ openai: "OPENAI_BASE_URL",
90
+ };
91
+ // ── Paths ──
92
+ export function getConfigDir() {
93
+ return join(homedir(), ".til");
94
+ }
95
+ export function getConfigPath() {
96
+ return join(getConfigDir(), "config.json");
97
+ }
98
+ // ── Load / Save ──
99
+ export async function loadConfig() {
100
+ const configPath = getConfigPath();
101
+ if (!existsSync(configPath)) {
102
+ return structuredClone(DEFAULT_CONFIG);
103
+ }
104
+ try {
105
+ const content = await readFile(configPath, "utf-8");
106
+ const parsed = JSON.parse(content);
107
+ return migrateConfig({ ...DEFAULT_CONFIG, ...parsed });
108
+ }
109
+ catch {
110
+ return structuredClone(DEFAULT_CONFIG);
111
+ }
112
+ }
113
+ /**
114
+ * Migrate legacy `apiKeys` flat map into `providers` structure.
115
+ */
116
+ function migrateConfig(config) {
117
+ if (config.apiKeys && Object.keys(config.apiKeys).length > 0) {
118
+ if (!config.providers)
119
+ config.providers = {};
120
+ for (const [provider, key] of Object.entries(config.apiKeys)) {
121
+ if (!config.providers[provider]) {
122
+ config.providers[provider] = {};
123
+ }
124
+ if (key && !config.providers[provider].apiKey) {
125
+ config.providers[provider].apiKey = key;
126
+ }
127
+ }
128
+ delete config.apiKeys;
129
+ }
130
+ if (!config.providers)
131
+ config.providers = {};
132
+ return config;
133
+ }
134
+ export async function saveConfig(config) {
135
+ const configPath = getConfigPath();
136
+ await mkdir(dirname(configPath), { recursive: true });
137
+ const toSave = { ...config };
138
+ delete toSave.apiKeys;
139
+ await writeFile(configPath, JSON.stringify(toSave, null, 2), "utf-8");
140
+ }
141
+ // ── Model Resolution ──
142
+ /**
143
+ * `openai-compatible` is not a real provider with its own credentials.
144
+ * It falls back to `openai` for API key / base URL resolution,
145
+ * but uses `openai-compatible` as the wire protocol tag so the LLM
146
+ * layer routes through the OpenAI streaming handler.
147
+ */
148
+ const PROVIDER_FALLBACK = {
149
+ "openai-compatible": "openai",
150
+ };
151
+ function credentialProvider(provider) {
152
+ return PROVIDER_FALLBACK[provider] ?? provider;
153
+ }
154
+ export function resolveModel(modelId, config) {
155
+ const builtin = BUILTIN_MODELS[modelId];
156
+ if (builtin) {
157
+ return applyProviderConfig({ ...builtin }, config);
158
+ }
159
+ const custom = config.customModels?.[modelId];
160
+ if (custom) {
161
+ const model = {
162
+ provider: custom.provider,
163
+ id: modelId,
164
+ name: custom.name ?? modelId,
165
+ maxTokens: custom.maxTokens ?? 8192,
166
+ };
167
+ return applyProviderConfig(model, config);
168
+ }
169
+ // If modelId matches the configured default, use its provider directly
170
+ if (modelId === config.defaultModel.id && config.defaultModel.provider) {
171
+ const model = {
172
+ provider: config.defaultModel.provider,
173
+ id: modelId,
174
+ name: modelId,
175
+ maxTokens: 8192,
176
+ };
177
+ return applyProviderConfig(model, config);
178
+ }
179
+ const provider = guessProvider(modelId);
180
+ const model = {
181
+ provider,
182
+ id: modelId,
183
+ name: modelId,
184
+ maxTokens: 8192,
185
+ };
186
+ return applyProviderConfig(model, config);
187
+ }
188
+ function applyProviderConfig(model, config) {
189
+ // Try the exact provider first, then fall back (e.g. openai-compatible → openai)
190
+ const prov = config.providers[model.provider] ?? config.providers[credentialProvider(model.provider)];
191
+ if (prov) {
192
+ if (!model.apiKey)
193
+ model.apiKey = prov.apiKey;
194
+ if (!model.baseUrl)
195
+ model.baseUrl = prov.baseUrl;
196
+ if (prov.headers)
197
+ model.headers = { ...prov.headers, ...model.headers };
198
+ }
199
+ return model;
200
+ }
201
+ export function resolveApiKey(model, config) {
202
+ if (model.apiKey)
203
+ return model.apiKey;
204
+ // Try exact provider, then fallback provider
205
+ for (const p of [model.provider, credentialProvider(model.provider)]) {
206
+ const prov = config.providers[p];
207
+ if (prov?.apiKey)
208
+ return prov.apiKey;
209
+ const envVar = ENV_KEY_MAP[p];
210
+ if (envVar && process.env[envVar])
211
+ return process.env[envVar];
212
+ }
213
+ return undefined;
214
+ }
215
+ export function resolveBaseUrl(model, config) {
216
+ if (model.baseUrl)
217
+ return model.baseUrl;
218
+ // Try exact provider, then fallback provider
219
+ for (const p of [model.provider, credentialProvider(model.provider)]) {
220
+ const prov = config.providers[p];
221
+ if (prov?.baseUrl)
222
+ return prov.baseUrl;
223
+ const envVar = ENV_BASE_URL_MAP[p];
224
+ if (envVar && process.env[envVar])
225
+ return process.env[envVar];
226
+ }
227
+ return DEFAULT_BASE_URLS[model.provider] ?? DEFAULT_BASE_URLS[credentialProvider(model.provider)];
228
+ }
229
+ // ── Helpers ──
230
+ export function guessProvider(modelId) {
231
+ if (modelId.startsWith("claude"))
232
+ return "anthropic";
233
+ if (modelId.startsWith("gpt") || modelId.startsWith("o3") || modelId.startsWith("o1"))
234
+ return "openai";
235
+ if (modelId.startsWith("gemini"))
236
+ return "google";
237
+ return "openai-compatible";
238
+ }
239
+ export function getKnownModelIds() {
240
+ return Object.keys(BUILTIN_MODELS);
241
+ }
242
+ export function getKnownModels() {
243
+ return { ...BUILTIN_MODELS };
244
+ }
245
+ export function getProviderDisplayInfo(provider, config) {
246
+ const prov = config.providers[provider];
247
+ const envVar = ENV_KEY_MAP[provider];
248
+ const hasKey = !!(prov?.apiKey || (envVar && process.env[envVar]));
249
+ const envUrlVar = ENV_BASE_URL_MAP[provider];
250
+ const configUrl = prov?.baseUrl;
251
+ const envUrl = envUrlVar ? process.env[envUrlVar] : undefined;
252
+ const defaultUrl = DEFAULT_BASE_URLS[provider] ?? "";
253
+ const baseUrl = configUrl || envUrl || defaultUrl;
254
+ const isCustomUrl = baseUrl !== defaultUrl && !!baseUrl;
255
+ return { hasKey, baseUrl, isCustomUrl };
256
+ }
257
+ //# sourceMappingURL=config.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/core/config.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,29 @@
1
+ /**
2
+ * LLM provider abstraction layer.
3
+ * Supports Anthropic, OpenAI, and Google providers via their HTTP APIs.
4
+ */
5
+ import type { AssistantMessage, Message, ModelConfig, Tool, ToolCall } from "./types.js";
6
+ export interface StreamCallbacks {
7
+ onToken?: (text: string) => void;
8
+ onThinking?: (text: string) => void;
9
+ onToolCall?: (toolCall: ToolCall) => void;
10
+ onDone?: (message: AssistantMessage) => void;
11
+ onError?: (error: Error) => void;
12
+ }
13
+ interface AnthropicToolDef {
14
+ name: string;
15
+ description: string;
16
+ input_schema: Record<string, any>;
17
+ }
18
+ export declare function toAnthropicTools(tools: Tool[]): AnthropicToolDef[];
19
+ export declare function toAnthropicMessages(messages: Message[]): any[];
20
+ export declare function toOpenAIMessages(messages: Message[]): any[];
21
+ export declare function toOpenAITools(tools: Tool[]): any[];
22
+ /**
23
+ * Simplified (non-streaming) LLM call for internal tasks like compaction summaries.
24
+ * Uses the same provider routing but returns a plain text response.
25
+ */
26
+ export declare function completeLLM(model: ModelConfig, systemPrompt: string, userMessage: string, maxTokens?: number): Promise<string>;
27
+ export declare function streamLLM(model: ModelConfig, systemPrompt: string, messages: Message[], tools: Tool[], callbacks: StreamCallbacks, signal?: AbortSignal): Promise<AssistantMessage>;
28
+ export {};
29
+ //# sourceMappingURL=llm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["../../src/core/llm.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EACX,gBAAgB,EAChB,OAAO,EACP,WAAW,EAGX,IAAI,EACJ,QAAQ,EAER,MAAM,YAAY,CAAC;AAEpB,MAAM,WAAW,eAAe;IAC/B,OAAO,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACjC,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IACpC,UAAU,CAAC,EAAE,CAAC,QAAQ,EAAE,QAAQ,KAAK,IAAI,CAAC;IAC1C,MAAM,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,KAAK,IAAI,CAAC;IAC7C,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACjC;AAED,UAAU,gBAAgB;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;CAClC;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,gBAAgB,EAAE,CAMlE;AAED,wBAAgB,mBAAmB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,GAAG,EAAE,CA8B9D;AAiBD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,OAAO,EAAE,GAAG,GAAG,EAAE,CAqC3D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,IAAI,EAAE,GAAG,GAAG,EAAE,CAKlD;AAwRD;;;GAGG;AACH,wBAAsB,WAAW,CAChC,KAAK,EAAE,WAAW,EAClB,YAAY,EAAE,MAAM,EACpB,WAAW,EAAE,MAAM,EACnB,SAAS,CAAC,EAAE,MAAM,GAChB,OAAO,CAAC,MAAM,CAAC,CAYjB;AAED,wBAAsB,SAAS,CAC9B,KAAK,EAAE,WAAW,EAClB,YAAY,EAAE,MAAM,EACpB,QAAQ,EAAE,OAAO,EAAE,EACnB,KAAK,EAAE,IAAI,EAAE,EACb,SAAS,EAAE,eAAe,EAC1B,MAAM,CAAC,EAAE,WAAW,GAClB,OAAO,CAAC,gBAAgB,CAAC,CAY3B"}