@llm4ts/core 3.3.0 → 4.0.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 (89) hide show
  1. package/dist/ConnectorConfig.d.ts +3 -1
  2. package/dist/ConnectorConfig.d.ts.map +1 -1
  3. package/dist/ConnectorConfig.js +4 -17
  4. package/dist/ConnectorConfig.js.map +1 -1
  5. package/dist/Models.d.ts +177 -22
  6. package/dist/Models.d.ts.map +1 -1
  7. package/dist/Models.js +144 -99
  8. package/dist/Models.js.map +1 -1
  9. package/dist/UsageLimits.d.ts.map +1 -1
  10. package/dist/UsageLimits.js +1 -0
  11. package/dist/UsageLimits.js.map +1 -1
  12. package/dist/eval/Checks.d.ts +1 -1
  13. package/dist/eval/Checks.d.ts.map +1 -1
  14. package/dist/eval/Checks.js.map +1 -1
  15. package/dist/eval/Eval.d.ts +4 -1
  16. package/dist/eval/Eval.d.ts.map +1 -1
  17. package/dist/eval/Eval.js.map +1 -1
  18. package/dist/eval/EvalSuite.d.ts +1 -2
  19. package/dist/eval/EvalSuite.d.ts.map +1 -1
  20. package/dist/eval/EvalSuite.js.map +1 -1
  21. package/dist/eval/Evaluator.d.ts +1 -6
  22. package/dist/eval/Evaluator.d.ts.map +1 -1
  23. package/dist/eval/Evaluator.js.map +1 -1
  24. package/dist/eval/Judge.d.ts +1 -2
  25. package/dist/eval/Judge.d.ts.map +1 -1
  26. package/dist/eval/Judge.js.map +1 -1
  27. package/dist/providers/AntigravityConnector.d.ts.map +1 -1
  28. package/dist/providers/AntigravityConnector.js +5 -4
  29. package/dist/providers/AntigravityConnector.js.map +1 -1
  30. package/dist/providers/ClaudeCliConnector.d.ts.map +1 -1
  31. package/dist/providers/ClaudeCliConnector.js +7 -6
  32. package/dist/providers/ClaudeCliConnector.js.map +1 -1
  33. package/dist/providers/CodexConnector.d.ts.map +1 -1
  34. package/dist/providers/CodexConnector.js +8 -7
  35. package/dist/providers/CodexConnector.js.map +1 -1
  36. package/dist/providers/ConnectorFactories.d.ts.map +1 -1
  37. package/dist/providers/ConnectorFactories.js +26 -20
  38. package/dist/providers/ConnectorFactories.js.map +1 -1
  39. package/dist/providers/CopilotConnector.d.ts.map +1 -1
  40. package/dist/providers/CopilotConnector.js +5 -4
  41. package/dist/providers/CopilotConnector.js.map +1 -1
  42. package/dist/providers/CursorConnector.d.ts.map +1 -1
  43. package/dist/providers/CursorConnector.js +6 -5
  44. package/dist/providers/CursorConnector.js.map +1 -1
  45. package/dist/providers/GeminiAcpSession.d.ts.map +1 -1
  46. package/dist/providers/GeminiAcpSession.js +3 -1
  47. package/dist/providers/GeminiAcpSession.js.map +1 -1
  48. package/dist/providers/GeminiCliProvider.d.ts.map +1 -1
  49. package/dist/providers/GeminiCliProvider.js +4 -3
  50. package/dist/providers/GeminiCliProvider.js.map +1 -1
  51. package/dist/providers/GrokCliConnector.d.ts.map +1 -1
  52. package/dist/providers/GrokCliConnector.js +11 -5
  53. package/dist/providers/GrokCliConnector.js.map +1 -1
  54. package/dist/providers/OpenCodeCliConnector.d.ts.map +1 -1
  55. package/dist/providers/OpenCodeCliConnector.js +6 -5
  56. package/dist/providers/OpenCodeCliConnector.js.map +1 -1
  57. package/dist/providers/PiConnector.d.ts.map +1 -1
  58. package/dist/providers/PiConnector.js +8 -7
  59. package/dist/providers/PiConnector.js.map +1 -1
  60. package/package.json +17 -20
  61. package/src/ConnectorConfig.ts +18 -17
  62. package/src/Models.ts +238 -101
  63. package/src/UsageLimits.ts +1 -0
  64. package/src/eval/Checks.ts +2 -2
  65. package/src/eval/Eval.ts +4 -1
  66. package/src/eval/EvalSuite.ts +1 -2
  67. package/src/eval/Evaluator.ts +1 -6
  68. package/src/eval/Judge.ts +2 -2
  69. package/src/providers/AntigravityConnector.ts +12 -4
  70. package/src/providers/ClaudeCliConnector.ts +9 -6
  71. package/src/providers/CodexConnector.ts +10 -7
  72. package/src/providers/ConnectorFactories.ts +53 -51
  73. package/src/providers/CopilotConnector.ts +6 -4
  74. package/src/providers/CursorConnector.ts +7 -5
  75. package/src/providers/GeminiAcpSession.ts +4 -1
  76. package/src/providers/GeminiCliProvider.ts +6 -3
  77. package/src/providers/GrokCliConnector.ts +12 -5
  78. package/src/providers/OpenCodeCliConnector.ts +7 -5
  79. package/src/providers/PiConnector.ts +15 -7
  80. package/dist/AgentSession.d.ts +0 -66
  81. package/dist/AgentSession.d.ts.map +0 -1
  82. package/dist/AgentSession.js +0 -53
  83. package/dist/AgentSession.js.map +0 -1
  84. package/dist/providers/ClaudeAgentSession.d.ts +0 -11
  85. package/dist/providers/ClaudeAgentSession.d.ts.map +0 -1
  86. package/dist/providers/ClaudeAgentSession.js +0 -161
  87. package/dist/providers/ClaudeAgentSession.js.map +0 -1
  88. package/src/AgentSession.ts +0 -69
  89. package/src/providers/ClaudeAgentSession.ts +0 -230
@@ -1,5 +1,5 @@
1
1
  import * as Schema from "effect/Schema";
2
- import { ConnectorId, LlmConfig } from "./Models.ts";
2
+ import { ConnectorId, LlmConfig, type CliConnectorName, type ConnectorName } from "./Models.ts";
3
3
  declare const DockerSandbox_base: Schema.Class<DockerSandbox, Schema.TaggedStruct<"Docker", {
4
4
  readonly image: Schema.String;
5
5
  readonly mount: Schema.withConstructorDefault<Schema.Boolean>;
@@ -73,6 +73,8 @@ export declare class CliConnectorConfig extends CliConnectorConfig_base {
73
73
  }
74
74
  export declare const ConnectorConfig: Schema.Union<readonly [typeof ApiConnectorConfig, typeof CliConnectorConfig]>;
75
75
  export type ConnectorConfig = typeof ConnectorConfig.Type;
76
+ /** The config class the connector named `K` takes, by its kind in `connectorTable`. */
77
+ export type ConnectorConfigOf<K extends ConnectorName> = K extends CliConnectorName ? CliConnectorConfig : ApiConnectorConfig;
76
78
  export declare const toLlmConfig: (config: ApiConnectorConfig) => LlmConfig;
77
79
  declare const FallbackChain_base: Schema.Class<FallbackChain, Schema.Struct<{
78
80
  readonly connectors: Schema.withConstructorDefault<Schema.$Array<Schema.Union<readonly [typeof ApiConnectorConfig, typeof CliConnectorConfig]>>>;
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectorConfig.d.ts","sourceRoot":"","sources":["../src/ConnectorConfig.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,WAAW,EAAwB,SAAS,EAAoB,MAAM,aAAa,CAAA;;;;;;AAE5F,qBAAa,aAAc,SAAQ,kBAIjC;CAAG;;AAEL,qBAAa,aAAc,SAAQ,kBAAiD;CAAG;;AACvF,qBAAa,oBAAqB,SAAQ,yBAGzC;CAAG;;AACJ,qBAAa,YAAa,SAAQ,iBAA+C;CAAG;;AACpF,qBAAa,UAAW,SAAQ,eAA2C;CAAG;AAE9E,eAAO,MAAM,UAAU,0IAMrB,CAAA;AACF,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAA;;;;;;;;;;;;;IA0B3C,mFAAmF;;IAEnF,gFAAgF;;;AAxBpF,qBAAa,kBAAmB,SAAQ,uBA2BvC;CAAG;;;;;;;;;;;;;IA8BA,mFAAmF;;IAEnF;;;;OAIG;;IAEH;;;;;;OAMG;;;AA1CP,qBAAa,kBAAmB,SAAQ,uBA6CvC;CAAG;AAEJ,eAAO,MAAM,eAAe,+EAAyD,CAAA;AACrF,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC,IAAI,CAAA;AAqBzD,eAAO,MAAM,WAAW,GAAI,QAAQ,kBAAkB,KAAG,SAerD,CAAA;;;;AAIJ,qBAAa,aAAc,SAAQ,kBAIjC;IACA,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;CACF;AAED,eAAO,MAAM,kBAAkB,eAAsB,CAAA;AAErD,eAAO,MAAM,0BAA0B;;;EAGrC,CAAA;AAEF,eAAO,MAAM,sBAAsB,GACjC,OAAO,eAAe,EACtB,WAAW,eAAe,KACzB,eAOF,CAAA"}
1
+ {"version":3,"file":"ConnectorConfig.d.ts","sourceRoot":"","sources":["../src/ConnectorConfig.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EACL,WAAW,EAGX,SAAS,EAET,KAAK,gBAAgB,EACrB,KAAK,aAAa,EAEnB,MAAM,aAAa,CAAA;;;;;;AAEpB,qBAAa,aAAc,SAAQ,kBAIjC;CAAG;;AAEL,qBAAa,aAAc,SAAQ,kBAAiD;CAAG;;AACvF,qBAAa,oBAAqB,SAAQ,yBAGzC;CAAG;;AACJ,qBAAa,YAAa,SAAQ,iBAA+C;CAAG;;AACpF,qBAAa,UAAW,SAAQ,eAA2C;CAAG;AAE9E,eAAO,MAAM,UAAU,0IAMrB,CAAA;AACF,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAA;;;;;;;;;;;;;IA0B3C,mFAAmF;;IAEnF,gFAAgF;;;AAxBpF,qBAAa,kBAAmB,SAAQ,uBA2BvC;CAAG;;;;;;;;;;;;;IA8BA,mFAAmF;;IAEnF;;;;OAIG;;IAEH;;;;;;OAMG;;;AA1CP,qBAAa,kBAAmB,SAAQ,uBA6CvC;CAAG;AAEJ,eAAO,MAAM,eAAe,+EAAyD,CAAA;AACrF,MAAM,MAAM,eAAe,GAAG,OAAO,eAAe,CAAC,IAAI,CAAA;AAEzD,uFAAuF;AACvF,MAAM,MAAM,iBAAiB,CAAC,CAAC,SAAS,aAAa,IAAI,CAAC,SAAS,gBAAgB,GAC/E,kBAAkB,GAClB,kBAAkB,CAAA;AAQtB,eAAO,MAAM,WAAW,GAAI,QAAQ,kBAAkB,KAAG,SAerD,CAAA;;;;AAIJ,qBAAa,aAAc,SAAQ,kBAIjC;IACA,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,IAAI,QAAQ,IAAI,OAAO,CAEtB;CACF;AAED,eAAO,MAAM,kBAAkB,eAAsB,CAAA;AAErD,eAAO,MAAM,0BAA0B;;;EAGrC,CAAA;AAEF,eAAO,MAAM,sBAAsB,GACjC,OAAO,eAAe,EACtB,WAAW,eAAe,KACzB,eAOF,CAAA"}
@@ -1,7 +1,7 @@
1
1
  import * as Duration from "effect/Duration";
2
2
  import * as Effect from "effect/Effect";
3
3
  import * as Schema from "effect/Schema";
4
- import { ConnectorId, ConnectorIds, Effort, LlmConfig } from "./Models.js";
4
+ import { ConnectorId, ConnectorIds, Effort, LlmConfig, connectorRow } from "./Models.js";
5
5
  export class DockerSandbox extends Schema.TaggedClass()("Docker", {
6
6
  image: Schema.String,
7
7
  mount: Schema.Boolean.pipe(Schema.withConstructorDefault(Effect.succeed(true))),
@@ -83,23 +83,10 @@ export class CliConnectorConfig extends Schema.TaggedClass()("CliConnectorConfig
83
83
  }) {
84
84
  }
85
85
  export const ConnectorConfig = Schema.Union([ApiConnectorConfig, CliConnectorConfig]);
86
+ // An id that names no API connector reads as OpenAI, the wire most servers speak.
86
87
  const providerForConnector = (connectorId) => {
87
- switch (connectorId.value) {
88
- case "anthropic":
89
- return "Anthropic";
90
- case "gemini-api":
91
- return "GeminiApi";
92
- case "lm-studio":
93
- return "LmStudio";
94
- case "ollama":
95
- return "Ollama";
96
- case "mlx-lm":
97
- return "MlxLm";
98
- case "mock":
99
- return "Mock";
100
- default:
101
- return "OpenAI";
102
- }
88
+ const row = connectorRow(connectorId);
89
+ return row?.kind === "Api" ? (row.provider ?? "OpenAI") : "OpenAI";
103
90
  };
104
91
  export const toLlmConfig = (config) => new LlmConfig({
105
92
  provider: providerForConnector(config.connectorId),
@@ -1 +1 @@
1
- {"version":3,"file":"ConnectorConfig.js","sourceRoot":"","sources":["../src/ConnectorConfig.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConnectorConfig.js","sourceRoot":"","sources":["../src/ConnectorConfig.ts"],"names":[],"mappings":"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"}
package/dist/Models.d.ts CHANGED
@@ -1,38 +1,193 @@
1
1
  import * as Schema from "effect/Schema";
2
- export declare const LlmProvider: Schema.Literals<readonly ["GeminiCli", "GeminiApi", "OpenAI", "Anthropic", "LmStudio", "Ollama", "MlxLm", "OpenCode", "Mock"]>;
2
+ export declare const LlmProvider: Schema.Literals<readonly ["GeminiCli", "GeminiApi", "OpenAI", "Anthropic", "LmStudio", "Ollama", "MlxLm", "Mock"]>;
3
3
  export type LlmProvider = typeof LlmProvider.Type;
4
4
  declare const ConnectorId_base: Schema.Class<ConnectorId, Schema.Struct<{
5
5
  readonly value: Schema.String;
6
6
  }>, {}>;
7
7
  export declare class ConnectorId extends ConnectorId_base {
8
8
  }
9
- export declare const ConnectorIds: Readonly<{
10
- OpenAI: ConnectorId;
11
- Anthropic: ConnectorId;
12
- GeminiApi: ConnectorId;
13
- LmStudio: ConnectorId;
14
- Ollama: ConnectorId;
15
- MlxLm: ConnectorId;
16
- ClaudeCli: ConnectorId;
17
- GeminiCli: ConnectorId;
18
- OpenCode: ConnectorId;
19
- Codex: ConnectorId;
20
- Copilot: ConnectorId;
21
- Pi: ConnectorId;
22
- AntigravityCli: ConnectorId;
23
- Grok: ConnectorId;
24
- Cursor: ConnectorId;
25
- Mock: ConnectorId;
26
- }>;
9
+ export declare const ConnectorKind: Schema.Literals<readonly ["Api", "Cli"]>;
10
+ export type ConnectorKind = typeof ConnectorKind.Type;
11
+ interface ConnectorIdentity {
12
+ readonly id: string;
13
+ /** The `LlmConfig` provider it serves. Such a row sits under the provider's own name. */
14
+ readonly provider?: LlmProvider;
15
+ readonly baseUrl?: string;
16
+ /**
17
+ * What an operator may write for it: a coder name on a CLI row
18
+ * (`LLM4TS_CODER`, `LLM4TS_REASONER`), a provider name on an API row
19
+ * (`LLM4TS_PROVIDER`). The first is the one help and menus show. Empty
20
+ * means it is not offered under any name.
21
+ */
22
+ readonly names: ReadonlyArray<string>;
23
+ }
24
+ export interface ApiConnectorRow extends ConnectorIdentity {
25
+ readonly kind: "Api";
26
+ /** Environment variables that may hold its key; the first one set wins. */
27
+ readonly credentialVariables: ReadonlyArray<string>;
28
+ /** Answers without a backend, so it is no part of `apiConnectorIds`. */
29
+ readonly simulated?: true;
30
+ }
31
+ export interface CliConnectorRow extends ConnectorIdentity {
32
+ readonly kind: "Cli";
33
+ /** The program it spawns, and the one looked for on `PATH`. */
34
+ readonly executable: string;
35
+ }
36
+ export type ConnectorRow = ApiConnectorRow | CliConnectorRow;
37
+ /**
38
+ * Every connector's identity, one row each. The id lists, the provider
39
+ * mappings and the names an operator may write are all read from here; the
40
+ * factories (`providers/ConnectorFactories.ts`) and the runner's presets are
41
+ * records keyed by these names, so a row without either does not compile.
42
+ */
43
+ export declare const connectorTable: {
44
+ readonly OpenAI: {
45
+ readonly id: "openai";
46
+ readonly kind: "Api";
47
+ readonly provider: "OpenAI";
48
+ readonly baseUrl: "https://api.openai.com/v1";
49
+ readonly credentialVariables: readonly ["OPENAI_API_KEY"];
50
+ readonly names: readonly ["openai"];
51
+ };
52
+ readonly Anthropic: {
53
+ readonly id: "anthropic";
54
+ readonly kind: "Api";
55
+ readonly provider: "Anthropic";
56
+ readonly baseUrl: "https://api.anthropic.com";
57
+ readonly credentialVariables: readonly ["ANTHROPIC_API_KEY"];
58
+ readonly names: readonly ["anthropic"];
59
+ };
60
+ readonly GeminiApi: {
61
+ readonly id: "gemini-api";
62
+ readonly kind: "Api";
63
+ readonly provider: "GeminiApi";
64
+ readonly baseUrl: "https://generativelanguage.googleapis.com";
65
+ readonly credentialVariables: readonly ["GEMINI_API_KEY", "GOOGLE_API_KEY"];
66
+ readonly names: readonly ["gemini", "gemini-api"];
67
+ };
68
+ readonly LmStudio: {
69
+ readonly id: "lm-studio";
70
+ readonly kind: "Api";
71
+ readonly provider: "LmStudio";
72
+ readonly baseUrl: "http://localhost:1234/v1";
73
+ readonly credentialVariables: readonly [];
74
+ readonly names: readonly ["lm-studio", "lmstudio"];
75
+ };
76
+ readonly Ollama: {
77
+ readonly id: "ollama";
78
+ readonly kind: "Api";
79
+ readonly provider: "Ollama";
80
+ readonly baseUrl: "http://localhost:11434";
81
+ readonly credentialVariables: readonly [];
82
+ readonly names: readonly ["ollama"];
83
+ };
84
+ readonly MlxLm: {
85
+ readonly id: "mlx-lm";
86
+ readonly kind: "Api";
87
+ readonly provider: "MlxLm";
88
+ readonly baseUrl: "http://localhost:8080";
89
+ readonly credentialVariables: readonly [];
90
+ readonly names: readonly ["mlx-lm", "mlxlm", "mlx"];
91
+ };
92
+ readonly ClaudeCli: {
93
+ readonly id: "claude-cli";
94
+ readonly kind: "Cli";
95
+ readonly executable: "claude";
96
+ readonly names: readonly ["claude", "claude-cli"];
97
+ };
98
+ readonly GeminiCli: {
99
+ readonly id: "gemini-cli";
100
+ readonly kind: "Cli";
101
+ readonly provider: "GeminiCli";
102
+ readonly executable: "gemini";
103
+ readonly names: readonly ["gemini", "gemini-cli"];
104
+ };
105
+ readonly OpenCode: {
106
+ readonly id: "opencode";
107
+ readonly kind: "Cli";
108
+ readonly executable: "opencode";
109
+ readonly names: readonly ["opencode"];
110
+ };
111
+ readonly Codex: {
112
+ readonly id: "codex";
113
+ readonly kind: "Cli";
114
+ readonly executable: "codex";
115
+ readonly names: readonly ["codex"];
116
+ };
117
+ readonly Copilot: {
118
+ readonly id: "copilot";
119
+ readonly kind: "Cli";
120
+ readonly executable: "gh";
121
+ readonly names: readonly [];
122
+ };
123
+ readonly Pi: {
124
+ readonly id: "pi";
125
+ readonly kind: "Cli";
126
+ readonly executable: "pi";
127
+ readonly names: readonly ["pi"];
128
+ };
129
+ readonly AntigravityCli: {
130
+ readonly id: "antigravity-cli";
131
+ readonly kind: "Cli";
132
+ readonly executable: "agy";
133
+ readonly names: readonly ["agy", "antigravity", "antigravity-cli"];
134
+ };
135
+ readonly Grok: {
136
+ readonly id: "grok";
137
+ readonly kind: "Cli";
138
+ readonly executable: "grok";
139
+ readonly names: readonly ["grok"];
140
+ };
141
+ readonly Cursor: {
142
+ readonly id: "cursor";
143
+ readonly kind: "Cli";
144
+ readonly executable: "cursor-agent";
145
+ readonly names: readonly ["cursor"];
146
+ };
147
+ readonly Mock: {
148
+ readonly id: "mock";
149
+ readonly kind: "Api";
150
+ readonly provider: "Mock";
151
+ readonly credentialVariables: readonly [];
152
+ readonly simulated: true;
153
+ readonly names: readonly ["mock"];
154
+ };
155
+ };
156
+ export type ConnectorName = keyof typeof connectorTable;
157
+ type RowOf<K extends ConnectorName> = (typeof connectorTable)[K];
158
+ export type CliConnectorName = {
159
+ [K in ConnectorName]: RowOf<K>["kind"] extends "Cli" ? K : never;
160
+ }[ConnectorName];
161
+ export type ApiConnectorName = Exclude<ConnectorName, CliConnectorName>;
162
+ /** Every name `LLM4TS_CODER` and `LLM4TS_REASONER` read. */
163
+ export type CoderName = RowOf<CliConnectorName>["names"][number];
164
+ /** Every name `LLM4TS_PROVIDER` and `LLM4TS_JUDGMENT_PROVIDER` read. */
165
+ export type ApiProviderName = RowOf<ApiConnectorName>["names"][number];
166
+ export declare const isCliConnectorName: (name: ConnectorName) => name is CliConnectorName;
167
+ export declare const ConnectorIds: Readonly<Record<ConnectorName, ConnectorId>>;
27
168
  export declare const apiConnectorIds: ReadonlyArray<ConnectorId>;
28
169
  export declare const cliConnectorIds: ReadonlyArray<ConnectorId>;
29
170
  export declare const connectorIds: ReadonlyArray<ConnectorId>;
171
+ export declare const connectorRow: (id: ConnectorId) => ConnectorRow | undefined;
30
172
  export declare const defaultBaseUrl: (provider: LlmProvider) => string | undefined;
31
173
  export declare const connectorProvider: (id: ConnectorId) => LlmProvider | undefined;
32
174
  export declare const connectorDefaultBaseUrl: (id: ConnectorId) => string | undefined;
33
175
  export declare const providerConnectorId: (provider: LlmProvider) => ConnectorId;
34
- export declare const ConnectorKind: Schema.Literals<readonly ["Api", "Cli"]>;
35
- export type ConnectorKind = typeof ConnectorKind.Type;
176
+ /** The CLI connector a coder name stands for; the name as written, lower case. */
177
+ export declare const coderConnector: (name: string) => CliConnectorName | undefined;
178
+ /** The API connector a provider name stands for; the name as written, lower case. */
179
+ export declare const apiProviderConnector: (name: string) => ApiConnectorName | undefined;
180
+ export declare const coderNames: ReadonlyArray<CoderName>;
181
+ export declare const apiProviderNames: ReadonlyArray<ApiProviderName>;
182
+ /** Every variable an API connector reads its key from. Names only, never a value. */
183
+ export declare const credentialVariables: ReadonlyArray<string>;
184
+ export declare const cliExecutable: <K extends CliConnectorName>(name: K) => RowOf<K>["executable"];
185
+ /** The coding agents help and menus offer, in the order they show them. */
186
+ export declare const offeredCoders: readonly ["ClaudeCli", "Codex", "GeminiCli", "Pi", "AntigravityCli", "Grok", "Cursor", "OpenCode"];
187
+ /** The API providers help and errors offer, in the order they show them. */
188
+ export declare const offeredApiProviders: readonly ["Mock", "OpenAI", "Anthropic", "GeminiApi", "LmStudio", "Ollama", "MlxLm"];
189
+ export declare const offeredCoderNames: ("gemini" | "claude" | "opencode" | "codex" | "pi" | "agy" | "grok" | "cursor")[];
190
+ export declare const offeredApiProviderNames: ("openai" | "anthropic" | "gemini" | "lm-studio" | "ollama" | "mlx-lm" | "mock")[];
36
191
  export declare const MessageRole: Schema.Literals<readonly ["System", "User", "Assistant", "Tool"]>;
37
192
  export type MessageRole = typeof MessageRole.Type;
38
193
  declare const Message_base: Schema.Class<Message, Schema.Struct<{
@@ -83,7 +238,7 @@ export declare class StreamProgress extends StreamProgress_base {
83
238
  export declare const Effort: Schema.Literals<readonly ["low", "medium", "high", "max"]>;
84
239
  export type Effort = typeof Effort.Type;
85
240
  declare const LlmConfig_base: Schema.Class<LlmConfig, Schema.Struct<{
86
- readonly provider: Schema.Literals<readonly ["GeminiCli", "GeminiApi", "OpenAI", "Anthropic", "LmStudio", "Ollama", "MlxLm", "OpenCode", "Mock"]>;
241
+ readonly provider: Schema.Literals<readonly ["GeminiCli", "GeminiApi", "OpenAI", "Anthropic", "LmStudio", "Ollama", "MlxLm", "Mock"]>;
87
242
  readonly model: Schema.String;
88
243
  readonly baseUrl: Schema.optionalKey<Schema.String>;
89
244
  readonly apiKey: Schema.optionalKey<Schema.Redacted<Schema.String>>;
@@ -1 +1 @@
1
- {"version":3,"file":"Models.d.ts","sourceRoot":"","sources":["../src/Models.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Models.d.ts","sourceRoot":"","sources":["../src/Models.ts"],"names":[],"mappings":"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"}
package/dist/Models.js CHANGED
@@ -1,5 +1,6 @@
1
1
  import * as Duration from "effect/Duration";
2
2
  import * as Effect from "effect/Effect";
3
+ import * as Record from "effect/Record";
3
4
  import * as Schema from "effect/Schema";
4
5
  export const LlmProvider = Schema.Literals([
5
6
  "GeminiCli",
@@ -9,115 +10,159 @@ export const LlmProvider = Schema.Literals([
9
10
  "LmStudio",
10
11
  "Ollama",
11
12
  "MlxLm",
12
- "OpenCode",
13
13
  "Mock"
14
14
  ]);
15
15
  export class ConnectorId extends Schema.Class("ConnectorId")({
16
16
  value: Schema.String
17
17
  }) {
18
18
  }
19
- export const ConnectorIds = Object.freeze({
20
- OpenAI: new ConnectorId({ value: "openai" }),
21
- Anthropic: new ConnectorId({ value: "anthropic" }),
22
- GeminiApi: new ConnectorId({ value: "gemini-api" }),
23
- LmStudio: new ConnectorId({ value: "lm-studio" }),
24
- Ollama: new ConnectorId({ value: "ollama" }),
25
- MlxLm: new ConnectorId({ value: "mlx-lm" }),
26
- ClaudeCli: new ConnectorId({ value: "claude-cli" }),
27
- GeminiCli: new ConnectorId({ value: "gemini-cli" }),
28
- OpenCode: new ConnectorId({ value: "opencode" }),
29
- Codex: new ConnectorId({ value: "codex" }),
30
- Copilot: new ConnectorId({ value: "copilot" }),
31
- Pi: new ConnectorId({ value: "pi" }),
32
- AntigravityCli: new ConnectorId({ value: "antigravity-cli" }),
33
- Grok: new ConnectorId({ value: "grok" }),
34
- Cursor: new ConnectorId({ value: "cursor" }),
35
- Mock: new ConnectorId({ value: "mock" })
36
- });
37
- export const apiConnectorIds = Object.freeze([
38
- ConnectorIds.OpenAI,
39
- ConnectorIds.Anthropic,
40
- ConnectorIds.GeminiApi,
41
- ConnectorIds.LmStudio,
42
- ConnectorIds.Ollama,
43
- ConnectorIds.MlxLm
44
- ]);
45
- export const cliConnectorIds = Object.freeze([
46
- ConnectorIds.ClaudeCli,
47
- ConnectorIds.GeminiCli,
48
- ConnectorIds.OpenCode,
49
- ConnectorIds.Codex,
50
- ConnectorIds.Copilot,
51
- ConnectorIds.Pi,
52
- ConnectorIds.AntigravityCli,
53
- ConnectorIds.Grok,
54
- ConnectorIds.Cursor
55
- ]);
19
+ export const ConnectorKind = Schema.Literals(["Api", "Cli"]);
20
+ /**
21
+ * Every connector's identity, one row each. The id lists, the provider
22
+ * mappings and the names an operator may write are all read from here; the
23
+ * factories (`providers/ConnectorFactories.ts`) and the runner's presets are
24
+ * records keyed by these names, so a row without either does not compile.
25
+ */
26
+ export const connectorTable = {
27
+ OpenAI: {
28
+ id: "openai",
29
+ kind: "Api",
30
+ provider: "OpenAI",
31
+ baseUrl: "https://api.openai.com/v1",
32
+ credentialVariables: ["OPENAI_API_KEY"],
33
+ names: ["openai"]
34
+ },
35
+ Anthropic: {
36
+ id: "anthropic",
37
+ kind: "Api",
38
+ provider: "Anthropic",
39
+ baseUrl: "https://api.anthropic.com",
40
+ credentialVariables: ["ANTHROPIC_API_KEY"],
41
+ names: ["anthropic"]
42
+ },
43
+ GeminiApi: {
44
+ id: "gemini-api",
45
+ kind: "Api",
46
+ provider: "GeminiApi",
47
+ baseUrl: "https://generativelanguage.googleapis.com",
48
+ credentialVariables: ["GEMINI_API_KEY", "GOOGLE_API_KEY"],
49
+ names: ["gemini", "gemini-api"]
50
+ },
51
+ LmStudio: {
52
+ id: "lm-studio",
53
+ kind: "Api",
54
+ provider: "LmStudio",
55
+ baseUrl: "http://localhost:1234/v1",
56
+ credentialVariables: [],
57
+ names: ["lm-studio", "lmstudio"]
58
+ },
59
+ Ollama: {
60
+ id: "ollama",
61
+ kind: "Api",
62
+ provider: "Ollama",
63
+ baseUrl: "http://localhost:11434",
64
+ credentialVariables: [],
65
+ names: ["ollama"]
66
+ },
67
+ MlxLm: {
68
+ id: "mlx-lm",
69
+ kind: "Api",
70
+ provider: "MlxLm",
71
+ baseUrl: "http://localhost:8080",
72
+ credentialVariables: [],
73
+ names: ["mlx-lm", "mlxlm", "mlx"]
74
+ },
75
+ ClaudeCli: {
76
+ id: "claude-cli",
77
+ kind: "Cli",
78
+ executable: "claude",
79
+ names: ["claude", "claude-cli"]
80
+ },
81
+ GeminiCli: {
82
+ id: "gemini-cli",
83
+ kind: "Cli",
84
+ provider: "GeminiCli",
85
+ executable: "gemini",
86
+ names: ["gemini", "gemini-cli"]
87
+ },
88
+ OpenCode: { id: "opencode", kind: "Cli", executable: "opencode", names: ["opencode"] },
89
+ Codex: { id: "codex", kind: "Cli", executable: "codex", names: ["codex"] },
90
+ Copilot: { id: "copilot", kind: "Cli", executable: "gh", names: [] },
91
+ Pi: { id: "pi", kind: "Cli", executable: "pi", names: ["pi"] },
92
+ AntigravityCli: {
93
+ id: "antigravity-cli",
94
+ kind: "Cli",
95
+ executable: "agy",
96
+ names: ["agy", "antigravity", "antigravity-cli"]
97
+ },
98
+ Grok: { id: "grok", kind: "Cli", executable: "grok", names: ["grok"] },
99
+ Cursor: { id: "cursor", kind: "Cli", executable: "cursor-agent", names: ["cursor"] },
100
+ Mock: {
101
+ id: "mock",
102
+ kind: "Api",
103
+ provider: "Mock",
104
+ credentialVariables: [],
105
+ simulated: true,
106
+ names: ["mock"]
107
+ }
108
+ };
109
+ const rows = connectorTable;
110
+ const providerRows = connectorTable;
111
+ const names = Record.keys(connectorTable);
112
+ export const isCliConnectorName = (name) => rows[name].kind === "Cli";
113
+ export const ConnectorIds = Object.freeze(Record.map(connectorTable, (row) => new ConnectorId({ value: row.id })));
114
+ const idsWhere = (keep) => Object.freeze(names.filter((name) => keep(rows[name])).map((name) => ConnectorIds[name]));
115
+ export const apiConnectorIds = idsWhere((row) => row.kind === "Api" && row.simulated !== true);
116
+ export const cliConnectorIds = idsWhere((row) => row.kind === "Cli");
56
117
  export const connectorIds = Object.freeze([
57
118
  ...apiConnectorIds,
58
119
  ...cliConnectorIds,
59
- ConnectorIds.Mock
120
+ ...idsWhere((row) => row.kind === "Api" && row.simulated === true)
60
121
  ]);
61
- export const defaultBaseUrl = (provider) => {
62
- switch (provider) {
63
- case "GeminiCli":
64
- case "Mock":
65
- return undefined;
66
- case "GeminiApi":
67
- return "https://generativelanguage.googleapis.com";
68
- case "OpenAI":
69
- return "https://api.openai.com/v1";
70
- case "Anthropic":
71
- return "https://api.anthropic.com";
72
- case "LmStudio":
73
- return "http://localhost:1234/v1";
74
- case "Ollama":
75
- return "http://localhost:11434";
76
- case "MlxLm":
77
- return "http://localhost:8080";
78
- case "OpenCode":
79
- return "http://localhost:4096";
80
- }
81
- };
82
- const connectorProviderTable = {
83
- openai: "OpenAI",
84
- anthropic: "Anthropic",
85
- "gemini-api": "GeminiApi",
86
- "lm-studio": "LmStudio",
87
- ollama: "Ollama",
88
- "mlx-lm": "MlxLm",
89
- opencode: "OpenCode",
90
- "gemini-cli": "GeminiCli",
91
- mock: "Mock"
92
- };
93
- export const connectorProvider = (id) => connectorProviderTable[id.value];
94
- export const connectorDefaultBaseUrl = (id) => {
95
- const provider = connectorProvider(id);
96
- return provider === undefined ? undefined : defaultBaseUrl(provider);
97
- };
98
- export const providerConnectorId = (provider) => {
99
- switch (provider) {
100
- case "GeminiCli":
101
- return ConnectorIds.GeminiCli;
102
- case "GeminiApi":
103
- return ConnectorIds.GeminiApi;
104
- case "OpenAI":
105
- return ConnectorIds.OpenAI;
106
- case "Anthropic":
107
- return ConnectorIds.Anthropic;
108
- case "LmStudio":
109
- return ConnectorIds.LmStudio;
110
- case "Ollama":
111
- return ConnectorIds.Ollama;
112
- case "MlxLm":
113
- return ConnectorIds.MlxLm;
114
- case "OpenCode":
115
- return ConnectorIds.OpenCode;
116
- case "Mock":
117
- return ConnectorIds.Mock;
118
- }
119
- };
120
- export const ConnectorKind = Schema.Literals(["Api", "Cli"]);
122
+ const rowsById = new Map(names.map((name) => [rows[name].id, rows[name]]));
123
+ export const connectorRow = (id) => rowsById.get(id.value);
124
+ export const defaultBaseUrl = (provider) => providerRows[provider].baseUrl;
125
+ export const connectorProvider = (id) => connectorRow(id)?.provider;
126
+ export const connectorDefaultBaseUrl = (id) => connectorRow(id)?.baseUrl;
127
+ export const providerConnectorId = (provider) => ConnectorIds[provider];
128
+ const namedConnectors = (keys) => new Map(keys.flatMap((key) => rows[key].names.map((name) => [name, key])));
129
+ const cliNames = names.filter(isCliConnectorName);
130
+ const apiNames = names.filter((name) => !isCliConnectorName(name));
131
+ const coderConnectors = namedConnectors(cliNames);
132
+ const apiProviderConnectors = namedConnectors(apiNames);
133
+ /** The CLI connector a coder name stands for; the name as written, lower case. */
134
+ export const coderConnector = (name) => coderConnectors.get(name);
135
+ /** The API connector a provider name stands for; the name as written, lower case. */
136
+ export const apiProviderConnector = (name) => apiProviderConnectors.get(name);
137
+ export const coderNames = cliNames.flatMap((name) => connectorTable[name].names);
138
+ export const apiProviderNames = apiNames.flatMap((name) => connectorTable[name].names);
139
+ /** Every variable an API connector reads its key from. Names only, never a value. */
140
+ export const credentialVariables = apiNames.flatMap((name) => connectorTable[name].credentialVariables);
141
+ export const cliExecutable = (name) => connectorTable[name].executable;
142
+ const inOrder = () => (list, ..._missing) => list;
143
+ /** The coding agents help and menus offer, in the order they show them. */
144
+ export const offeredCoders = inOrder()([
145
+ "ClaudeCli",
146
+ "Codex",
147
+ "GeminiCli",
148
+ "Pi",
149
+ "AntigravityCli",
150
+ "Grok",
151
+ "Cursor",
152
+ "OpenCode"
153
+ ]);
154
+ /** The API providers help and errors offer, in the order they show them. */
155
+ export const offeredApiProviders = inOrder()([
156
+ "Mock",
157
+ "OpenAI",
158
+ "Anthropic",
159
+ "GeminiApi",
160
+ "LmStudio",
161
+ "Ollama",
162
+ "MlxLm"
163
+ ]);
164
+ export const offeredCoderNames = offeredCoders.map((name) => connectorTable[name].names[0]);
165
+ export const offeredApiProviderNames = offeredApiProviders.map((name) => connectorTable[name].names[0]);
121
166
  export const MessageRole = Schema.Literals(["System", "User", "Assistant", "Tool"]);
122
167
  export class Message extends Schema.Class("Message")({
123
168
  role: MessageRole,