@llm4ts/core 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.
- package/LICENSE +21 -0
- package/README.md +47 -0
- package/dist/AgentSession.d.ts +66 -0
- package/dist/AgentSession.d.ts.map +1 -0
- package/dist/AgentSession.js +53 -0
- package/dist/AgentSession.js.map +1 -0
- package/dist/Capability.d.ts +101 -0
- package/dist/Capability.d.ts.map +1 -0
- package/dist/Capability.js +210 -0
- package/dist/Capability.js.map +1 -0
- package/dist/Connector.d.ts +69 -0
- package/dist/Connector.d.ts.map +1 -0
- package/dist/Connector.js +86 -0
- package/dist/Connector.js.map +1 -0
- package/dist/ConnectorConfig.d.ts +70 -0
- package/dist/ConnectorConfig.d.ts.map +1 -0
- package/dist/ConnectorConfig.js +110 -0
- package/dist/ConnectorConfig.js.map +1 -0
- package/dist/ConnectorRegistry.d.ts +28 -0
- package/dist/ConnectorRegistry.d.ts.map +1 -0
- package/dist/ConnectorRegistry.js +87 -0
- package/dist/ConnectorRegistry.js.map +1 -0
- package/dist/ContextManagement.d.ts +78 -0
- package/dist/ContextManagement.d.ts.map +1 -0
- package/dist/ContextManagement.js +221 -0
- package/dist/ContextManagement.js.map +1 -0
- package/dist/Conversation.d.ts +18 -0
- package/dist/Conversation.d.ts.map +1 -0
- package/dist/Conversation.js +17 -0
- package/dist/Conversation.js.map +1 -0
- package/dist/Errors.d.ts +64 -0
- package/dist/Errors.d.ts.map +1 -0
- package/dist/Errors.js +76 -0
- package/dist/Errors.js.map +1 -0
- package/dist/HttpClient.d.ts +43 -0
- package/dist/HttpClient.d.ts.map +1 -0
- package/dist/HttpClient.js +99 -0
- package/dist/HttpClient.js.map +1 -0
- package/dist/LlmService.d.ts +24 -0
- package/dist/LlmService.d.ts.map +1 -0
- package/dist/LlmService.js +4 -0
- package/dist/LlmService.js.map +1 -0
- package/dist/Models.d.ts +138 -0
- package/dist/Models.d.ts.map +1 -0
- package/dist/Models.js +209 -0
- package/dist/Models.js.map +1 -0
- package/dist/ProcessExecutor.d.ts +57 -0
- package/dist/ProcessExecutor.d.ts.map +1 -0
- package/dist/ProcessExecutor.js +71 -0
- package/dist/ProcessExecutor.js.map +1 -0
- package/dist/RateLimiter.d.ts +44 -0
- package/dist/RateLimiter.d.ts.map +1 -0
- package/dist/RateLimiter.js +155 -0
- package/dist/RateLimiter.js.map +1 -0
- package/dist/Streaming.d.ts +17 -0
- package/dist/Streaming.d.ts.map +1 -0
- package/dist/Streaming.js +65 -0
- package/dist/Streaming.js.map +1 -0
- package/dist/StructuredOutput.d.ts +10 -0
- package/dist/StructuredOutput.d.ts.map +1 -0
- package/dist/StructuredOutput.js +97 -0
- package/dist/StructuredOutput.js.map +1 -0
- package/dist/TemporaryFiles.d.ts +20 -0
- package/dist/TemporaryFiles.d.ts.map +1 -0
- package/dist/TemporaryFiles.js +18 -0
- package/dist/TemporaryFiles.js.map +1 -0
- package/dist/UsageLimits.d.ts +5 -0
- package/dist/UsageLimits.d.ts.map +1 -0
- package/dist/UsageLimits.js +187 -0
- package/dist/UsageLimits.js.map +1 -0
- package/dist/eval/Checks.d.ts +6 -0
- package/dist/eval/Checks.d.ts.map +1 -0
- package/dist/eval/Checks.js +39 -0
- package/dist/eval/Checks.js.map +1 -0
- package/dist/eval/Eval.d.ts +57 -0
- package/dist/eval/Eval.d.ts.map +1 -0
- package/dist/eval/Eval.js +91 -0
- package/dist/eval/Eval.js.map +1 -0
- package/dist/eval/EvalSuite.d.ts +21 -0
- package/dist/eval/EvalSuite.d.ts.map +1 -0
- package/dist/eval/EvalSuite.js +30 -0
- package/dist/eval/EvalSuite.js.map +1 -0
- package/dist/eval/Evaluator.d.ts +10 -0
- package/dist/eval/Evaluator.d.ts.map +1 -0
- package/dist/eval/Evaluator.js +14 -0
- package/dist/eval/Evaluator.js.map +1 -0
- package/dist/eval/Judge.d.ts +15 -0
- package/dist/eval/Judge.d.ts.map +1 -0
- package/dist/eval/Judge.js +73 -0
- package/dist/eval/Judge.js.map +1 -0
- package/dist/observability/MeteredLlmService.d.ts +16 -0
- package/dist/observability/MeteredLlmService.d.ts.map +1 -0
- package/dist/observability/MeteredLlmService.js +66 -0
- package/dist/observability/MeteredLlmService.js.map +1 -0
- package/dist/observability/Metrics.d.ts +71 -0
- package/dist/observability/Metrics.d.ts.map +1 -0
- package/dist/observability/Metrics.js +147 -0
- package/dist/observability/Metrics.js.map +1 -0
- package/dist/observability/Redaction.d.ts +8 -0
- package/dist/observability/Redaction.d.ts.map +1 -0
- package/dist/observability/Redaction.js +38 -0
- package/dist/observability/Redaction.js.map +1 -0
- package/dist/observability/StreamRecorder.d.ts +9 -0
- package/dist/observability/StreamRecorder.d.ts.map +1 -0
- package/dist/observability/StreamRecorder.js +10 -0
- package/dist/observability/StreamRecorder.js.map +1 -0
- package/dist/observability/StructuredLogger.d.ts +31 -0
- package/dist/observability/StructuredLogger.d.ts.map +1 -0
- package/dist/observability/StructuredLogger.js +34 -0
- package/dist/observability/StructuredLogger.js.map +1 -0
- package/dist/observability/Tracing.d.ts +38 -0
- package/dist/observability/Tracing.d.ts.map +1 -0
- package/dist/observability/Tracing.js +75 -0
- package/dist/observability/Tracing.js.map +1 -0
- package/dist/providers/AnthropicModels.d.ts +95 -0
- package/dist/providers/AnthropicModels.d.ts.map +1 -0
- package/dist/providers/AnthropicModels.js +83 -0
- package/dist/providers/AnthropicModels.js.map +1 -0
- package/dist/providers/AnthropicProvider.d.ts +13 -0
- package/dist/providers/AnthropicProvider.d.ts.map +1 -0
- package/dist/providers/AnthropicProvider.js +177 -0
- package/dist/providers/AnthropicProvider.js.map +1 -0
- package/dist/providers/AntigravityConnector.d.ts +7 -0
- package/dist/providers/AntigravityConnector.d.ts.map +1 -0
- package/dist/providers/AntigravityConnector.js +52 -0
- package/dist/providers/AntigravityConnector.js.map +1 -0
- package/dist/providers/ClaudeAgentSession.d.ts +11 -0
- package/dist/providers/ClaudeAgentSession.d.ts.map +1 -0
- package/dist/providers/ClaudeAgentSession.js +158 -0
- package/dist/providers/ClaudeAgentSession.js.map +1 -0
- package/dist/providers/ClaudeCliConnector.d.ts +9 -0
- package/dist/providers/ClaudeCliConnector.d.ts.map +1 -0
- package/dist/providers/ClaudeCliConnector.js +123 -0
- package/dist/providers/ClaudeCliConnector.js.map +1 -0
- package/dist/providers/CliSupport.d.ts +21 -0
- package/dist/providers/CliSupport.d.ts.map +1 -0
- package/dist/providers/CliSupport.js +62 -0
- package/dist/providers/CliSupport.js.map +1 -0
- package/dist/providers/CodexConnector.d.ts +12 -0
- package/dist/providers/CodexConnector.d.ts.map +1 -0
- package/dist/providers/CodexConnector.js +175 -0
- package/dist/providers/CodexConnector.js.map +1 -0
- package/dist/providers/ConnectorFactories.d.ts +15 -0
- package/dist/providers/ConnectorFactories.d.ts.map +1 -0
- package/dist/providers/ConnectorFactories.js +74 -0
- package/dist/providers/ConnectorFactories.js.map +1 -0
- package/dist/providers/CopilotConnector.d.ts +6 -0
- package/dist/providers/CopilotConnector.d.ts.map +1 -0
- package/dist/providers/CopilotConnector.js +35 -0
- package/dist/providers/CopilotConnector.js.map +1 -0
- package/dist/providers/CursorConnector.d.ts +8 -0
- package/dist/providers/CursorConnector.d.ts.map +1 -0
- package/dist/providers/CursorConnector.js +82 -0
- package/dist/providers/CursorConnector.js.map +1 -0
- package/dist/providers/GeminiApiProvider.d.ts +9 -0
- package/dist/providers/GeminiApiProvider.d.ts.map +1 -0
- package/dist/providers/GeminiApiProvider.js +181 -0
- package/dist/providers/GeminiApiProvider.js.map +1 -0
- package/dist/providers/GeminiCliProvider.d.ts +106 -0
- package/dist/providers/GeminiCliProvider.d.ts.map +1 -0
- package/dist/providers/GeminiCliProvider.js +596 -0
- package/dist/providers/GeminiCliProvider.js.map +1 -0
- package/dist/providers/GeminiModels.d.ts +92 -0
- package/dist/providers/GeminiModels.d.ts.map +1 -0
- package/dist/providers/GeminiModels.js +80 -0
- package/dist/providers/GeminiModels.js.map +1 -0
- package/dist/providers/GrokCliConnector.d.ts +8 -0
- package/dist/providers/GrokCliConnector.d.ts.map +1 -0
- package/dist/providers/GrokCliConnector.js +82 -0
- package/dist/providers/GrokCliConnector.js.map +1 -0
- package/dist/providers/LmStudioModels.d.ts +114 -0
- package/dist/providers/LmStudioModels.d.ts.map +1 -0
- package/dist/providers/LmStudioModels.js +102 -0
- package/dist/providers/LmStudioModels.js.map +1 -0
- package/dist/providers/LmStudioProvider.d.ts +13 -0
- package/dist/providers/LmStudioProvider.d.ts.map +1 -0
- package/dist/providers/LmStudioProvider.js +158 -0
- package/dist/providers/LmStudioProvider.js.map +1 -0
- package/dist/providers/MockProvider.d.ts +6 -0
- package/dist/providers/MockProvider.d.ts.map +1 -0
- package/dist/providers/MockProvider.js +271 -0
- package/dist/providers/MockProvider.js.map +1 -0
- package/dist/providers/OllamaModels.d.ts +68 -0
- package/dist/providers/OllamaModels.d.ts.map +1 -0
- package/dist/providers/OllamaModels.js +59 -0
- package/dist/providers/OllamaModels.js.map +1 -0
- package/dist/providers/OllamaProvider.d.ts +7 -0
- package/dist/providers/OllamaProvider.d.ts.map +1 -0
- package/dist/providers/OllamaProvider.js +134 -0
- package/dist/providers/OllamaProvider.js.map +1 -0
- package/dist/providers/OpenAIModels.d.ts +139 -0
- package/dist/providers/OpenAIModels.d.ts.map +1 -0
- package/dist/providers/OpenAIModels.js +123 -0
- package/dist/providers/OpenAIModels.js.map +1 -0
- package/dist/providers/OpenAIProvider.d.ts +9 -0
- package/dist/providers/OpenAIProvider.d.ts.map +1 -0
- package/dist/providers/OpenAIProvider.js +185 -0
- package/dist/providers/OpenAIProvider.js.map +1 -0
- package/dist/providers/OpenCodeCliConnector.d.ts +8 -0
- package/dist/providers/OpenCodeCliConnector.d.ts.map +1 -0
- package/dist/providers/OpenCodeCliConnector.js +93 -0
- package/dist/providers/OpenCodeCliConnector.js.map +1 -0
- package/dist/providers/OpenCodeModels.d.ts +61 -0
- package/dist/providers/OpenCodeModels.d.ts.map +1 -0
- package/dist/providers/OpenCodeModels.js +53 -0
- package/dist/providers/OpenCodeModels.js.map +1 -0
- package/dist/providers/OpenCodeProvider.d.ts +10 -0
- package/dist/providers/OpenCodeProvider.d.ts.map +1 -0
- package/dist/providers/OpenCodeProvider.js +154 -0
- package/dist/providers/OpenCodeProvider.js.map +1 -0
- package/dist/providers/PiConnector.d.ts +8 -0
- package/dist/providers/PiConnector.d.ts.map +1 -0
- package/dist/providers/PiConnector.js +99 -0
- package/dist/providers/PiConnector.js.map +1 -0
- package/dist/tools/Tool.d.ts +83 -0
- package/dist/tools/Tool.d.ts.map +1 -0
- package/dist/tools/Tool.js +278 -0
- package/dist/tools/Tool.js.map +1 -0
- package/dist/tools/ToolCallingExecutor.d.ts +18 -0
- package/dist/tools/ToolCallingExecutor.d.ts.map +1 -0
- package/dist/tools/ToolCallingExecutor.js +64 -0
- package/dist/tools/ToolCallingExecutor.js.map +1 -0
- package/dist/tools/ToolRegistry.d.ts +45 -0
- package/dist/tools/ToolRegistry.d.ts.map +1 -0
- package/dist/tools/ToolRegistry.js +133 -0
- package/dist/tools/ToolRegistry.js.map +1 -0
- package/package.json +105 -0
- package/src/.gitkeep +1 -0
- package/src/AgentSession.ts +69 -0
- package/src/Capability.ts +240 -0
- package/src/Connector.ts +220 -0
- package/src/ConnectorConfig.ts +146 -0
- package/src/ConnectorRegistry.ts +184 -0
- package/src/ContextManagement.ts +372 -0
- package/src/Conversation.ts +21 -0
- package/src/Errors.ts +87 -0
- package/src/HttpClient.ts +202 -0
- package/src/LlmService.ts +45 -0
- package/src/Models.ts +250 -0
- package/src/ProcessExecutor.ts +157 -0
- package/src/RateLimiter.ts +238 -0
- package/src/Streaming.ts +164 -0
- package/src/StructuredOutput.ts +138 -0
- package/src/TemporaryFiles.ts +51 -0
- package/src/UsageLimits.ts +242 -0
- package/src/eval/Checks.ts +68 -0
- package/src/eval/Eval.ts +112 -0
- package/src/eval/EvalSuite.ts +63 -0
- package/src/eval/Evaluator.ts +31 -0
- package/src/eval/Judge.ts +92 -0
- package/src/observability/MeteredLlmService.ts +156 -0
- package/src/observability/Metrics.ts +195 -0
- package/src/observability/Redaction.ts +55 -0
- package/src/observability/StreamRecorder.ts +32 -0
- package/src/observability/StructuredLogger.ts +62 -0
- package/src/observability/Tracing.ts +141 -0
- package/src/providers/AnthropicModels.ts +96 -0
- package/src/providers/AnthropicProvider.ts +320 -0
- package/src/providers/AntigravityConnector.ts +77 -0
- package/src/providers/ClaudeAgentSession.ts +226 -0
- package/src/providers/ClaudeCliConnector.ts +201 -0
- package/src/providers/CliSupport.ts +100 -0
- package/src/providers/CodexConnector.ts +251 -0
- package/src/providers/ConnectorFactories.ts +142 -0
- package/src/providers/CopilotConnector.ts +47 -0
- package/src/providers/CursorConnector.ts +120 -0
- package/src/providers/GeminiApiProvider.ts +337 -0
- package/src/providers/GeminiCliProvider.ts +793 -0
- package/src/providers/GeminiModels.ts +97 -0
- package/src/providers/GrokCliConnector.ts +117 -0
- package/src/providers/LmStudioModels.ts +117 -0
- package/src/providers/LmStudioProvider.ts +260 -0
- package/src/providers/MockProvider.ts +322 -0
- package/src/providers/OllamaModels.ts +64 -0
- package/src/providers/OllamaProvider.ts +236 -0
- package/src/providers/OpenAIModels.ts +152 -0
- package/src/providers/OpenAIProvider.ts +331 -0
- package/src/providers/OpenCodeCliConnector.ts +135 -0
- package/src/providers/OpenCodeModels.ts +60 -0
- package/src/providers/OpenCodeProvider.ts +278 -0
- package/src/providers/PiConnector.ts +142 -0
- package/src/tools/Tool.ts +379 -0
- package/src/tools/ToolCallingExecutor.ts +106 -0
- package/src/tools/ToolRegistry.ts +224 -0
package/dist/Models.d.ts
ADDED
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
import * as Schema from "effect/Schema";
|
|
2
|
+
export declare const LlmProvider: Schema.Literals<readonly ["GeminiCli", "GeminiApi", "OpenAI", "Anthropic", "LmStudio", "Ollama", "OpenCode", "Mock"]>;
|
|
3
|
+
export type LlmProvider = typeof LlmProvider.Type;
|
|
4
|
+
declare const ConnectorId_base: Schema.Class<ConnectorId, Schema.Struct<{
|
|
5
|
+
readonly value: Schema.String;
|
|
6
|
+
}>, {}>;
|
|
7
|
+
export declare class ConnectorId extends ConnectorId_base {
|
|
8
|
+
}
|
|
9
|
+
export declare const ConnectorIds: Readonly<{
|
|
10
|
+
OpenAI: ConnectorId;
|
|
11
|
+
Anthropic: ConnectorId;
|
|
12
|
+
GeminiApi: ConnectorId;
|
|
13
|
+
LmStudio: ConnectorId;
|
|
14
|
+
Ollama: ConnectorId;
|
|
15
|
+
ClaudeCli: ConnectorId;
|
|
16
|
+
GeminiCli: ConnectorId;
|
|
17
|
+
OpenCode: ConnectorId;
|
|
18
|
+
Codex: ConnectorId;
|
|
19
|
+
Copilot: ConnectorId;
|
|
20
|
+
Pi: ConnectorId;
|
|
21
|
+
AntigravityCli: ConnectorId;
|
|
22
|
+
Grok: ConnectorId;
|
|
23
|
+
Cursor: ConnectorId;
|
|
24
|
+
Mock: ConnectorId;
|
|
25
|
+
}>;
|
|
26
|
+
export declare const apiConnectorIds: ReadonlyArray<ConnectorId>;
|
|
27
|
+
export declare const cliConnectorIds: ReadonlyArray<ConnectorId>;
|
|
28
|
+
export declare const connectorIds: ReadonlyArray<ConnectorId>;
|
|
29
|
+
export declare const defaultBaseUrl: (provider: LlmProvider) => string | undefined;
|
|
30
|
+
export declare const connectorProvider: (id: ConnectorId) => LlmProvider | undefined;
|
|
31
|
+
export declare const connectorDefaultBaseUrl: (id: ConnectorId) => string | undefined;
|
|
32
|
+
export declare const providerConnectorId: (provider: LlmProvider) => ConnectorId;
|
|
33
|
+
export declare const ConnectorKind: Schema.Literals<readonly ["Api", "Cli"]>;
|
|
34
|
+
export type ConnectorKind = typeof ConnectorKind.Type;
|
|
35
|
+
export declare const MessageRole: Schema.Literals<readonly ["System", "User", "Assistant", "Tool"]>;
|
|
36
|
+
export type MessageRole = typeof MessageRole.Type;
|
|
37
|
+
declare const Message_base: Schema.Class<Message, Schema.Struct<{
|
|
38
|
+
readonly role: Schema.Literals<readonly ["System", "User", "Assistant", "Tool"]>;
|
|
39
|
+
readonly content: Schema.String;
|
|
40
|
+
}>, {}>;
|
|
41
|
+
export declare class Message extends Message_base {
|
|
42
|
+
}
|
|
43
|
+
declare const TokenUsage_base: Schema.Class<TokenUsage, Schema.Struct<{
|
|
44
|
+
readonly prompt: Schema.Int;
|
|
45
|
+
readonly completion: Schema.Int;
|
|
46
|
+
readonly total: Schema.Int;
|
|
47
|
+
readonly cached: Schema.optionalKey<Schema.Int>;
|
|
48
|
+
}>, {}>;
|
|
49
|
+
export declare class TokenUsage extends TokenUsage_base {
|
|
50
|
+
}
|
|
51
|
+
declare const LlmResponse_base: Schema.Class<LlmResponse, Schema.Struct<{
|
|
52
|
+
readonly content: Schema.String;
|
|
53
|
+
readonly usage: Schema.optionalKey<typeof TokenUsage>;
|
|
54
|
+
readonly metadata: Schema.withConstructorDefault<Schema.$Record<Schema.String, Schema.String>>;
|
|
55
|
+
}>, {}>;
|
|
56
|
+
export declare class LlmResponse extends LlmResponse_base {
|
|
57
|
+
}
|
|
58
|
+
declare const LlmChunk_base: Schema.Class<LlmChunk, Schema.Struct<{
|
|
59
|
+
readonly delta: Schema.String;
|
|
60
|
+
readonly finishReason: Schema.optionalKey<Schema.String>;
|
|
61
|
+
readonly usage: Schema.optionalKey<typeof TokenUsage>;
|
|
62
|
+
readonly metadata: Schema.withConstructorDefault<Schema.$Record<Schema.String, Schema.String>>;
|
|
63
|
+
}>, {}>;
|
|
64
|
+
export declare class LlmChunk extends LlmChunk_base {
|
|
65
|
+
}
|
|
66
|
+
declare const StreamProgress_base: Schema.Class<StreamProgress, Schema.Struct<{
|
|
67
|
+
readonly tokensProcessed: Schema.Int;
|
|
68
|
+
readonly tokensPerSecond: Schema.Number;
|
|
69
|
+
readonly elapsedMs: Schema.Int;
|
|
70
|
+
readonly estimatedRemainingMs: Schema.optionalKey<Schema.Int>;
|
|
71
|
+
}>, {}>;
|
|
72
|
+
export declare class StreamProgress extends StreamProgress_base {
|
|
73
|
+
}
|
|
74
|
+
declare const LlmConfig_base: Schema.Class<LlmConfig, Schema.Struct<{
|
|
75
|
+
readonly provider: Schema.Literals<readonly ["GeminiCli", "GeminiApi", "OpenAI", "Anthropic", "LmStudio", "Ollama", "OpenCode", "Mock"]>;
|
|
76
|
+
readonly model: Schema.String;
|
|
77
|
+
readonly baseUrl: Schema.optionalKey<Schema.String>;
|
|
78
|
+
readonly apiKey: Schema.optionalKey<Schema.Redacted<Schema.String>>;
|
|
79
|
+
readonly timeout: Schema.withConstructorDefault<Schema.Duration>;
|
|
80
|
+
readonly maxRetries: Schema.withConstructorDefault<Schema.Int>;
|
|
81
|
+
readonly requestsPerMinute: Schema.withConstructorDefault<Schema.Int>;
|
|
82
|
+
readonly burstSize: Schema.withConstructorDefault<Schema.Int>;
|
|
83
|
+
readonly acquireTimeout: Schema.withConstructorDefault<Schema.Duration>;
|
|
84
|
+
readonly temperature: Schema.optionalKey<Schema.Number>;
|
|
85
|
+
readonly maxTokens: Schema.optionalKey<Schema.Int>;
|
|
86
|
+
}>, {}>;
|
|
87
|
+
export declare class LlmConfig extends LlmConfig_base {
|
|
88
|
+
}
|
|
89
|
+
export declare const withConfigDefaults: (config: LlmConfig) => LlmConfig;
|
|
90
|
+
declare const ToolCall_base: Schema.Class<ToolCall, Schema.Struct<{
|
|
91
|
+
readonly id: Schema.String;
|
|
92
|
+
readonly name: Schema.String;
|
|
93
|
+
readonly arguments: Schema.String;
|
|
94
|
+
}>, {}>;
|
|
95
|
+
export declare class ToolCall extends ToolCall_base {
|
|
96
|
+
}
|
|
97
|
+
declare const ToolCallResponse_base: Schema.Class<ToolCallResponse, Schema.Struct<{
|
|
98
|
+
readonly content: Schema.optionalKey<Schema.String>;
|
|
99
|
+
readonly toolCalls: Schema.withConstructorDefault<Schema.$Array<typeof ToolCall>>;
|
|
100
|
+
readonly finishReason: Schema.String;
|
|
101
|
+
}>, {}>;
|
|
102
|
+
export declare class ToolCallResponse extends ToolCallResponse_base {
|
|
103
|
+
}
|
|
104
|
+
export declare const JsonSchema: Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>;
|
|
105
|
+
export type JsonSchema = typeof JsonSchema.Type;
|
|
106
|
+
declare const ToolDefinition_base: Schema.Class<ToolDefinition, Schema.Struct<{
|
|
107
|
+
readonly name: Schema.String;
|
|
108
|
+
readonly description: Schema.String;
|
|
109
|
+
readonly parameters: Schema.$Record<Schema.String, Schema.Codec<Schema.Json, Schema.Json, never, never>>;
|
|
110
|
+
}>, {}>;
|
|
111
|
+
export declare class ToolDefinition extends ToolDefinition_base {
|
|
112
|
+
}
|
|
113
|
+
export declare const Availability: Schema.Literals<readonly ["Healthy", "Degraded", "Unhealthy", "Unknown"]>;
|
|
114
|
+
export type Availability = typeof Availability.Type;
|
|
115
|
+
export declare const AuthStatus: Schema.Literals<readonly ["Valid", "Missing", "Invalid", "Unknown"]>;
|
|
116
|
+
export type AuthStatus = typeof AuthStatus.Type;
|
|
117
|
+
declare const HealthStatus_base: Schema.Class<HealthStatus, Schema.Struct<{
|
|
118
|
+
readonly availability: Schema.Literals<readonly ["Healthy", "Degraded", "Unhealthy", "Unknown"]>;
|
|
119
|
+
readonly authStatus: Schema.Literals<readonly ["Valid", "Missing", "Invalid", "Unknown"]>;
|
|
120
|
+
readonly latency: Schema.optionalKey<Schema.Duration>;
|
|
121
|
+
}>, {}>;
|
|
122
|
+
export declare class HealthStatus extends HealthStatus_base {
|
|
123
|
+
}
|
|
124
|
+
export declare const InteractionSupport: Schema.Literals<readonly ["InteractiveStdin", "ContinuationOnly"]>;
|
|
125
|
+
export type InteractionSupport = typeof InteractionSupport.Type;
|
|
126
|
+
declare const ConnectorCapabilities_base: Schema.Class<ConnectorCapabilities, Schema.Struct<{
|
|
127
|
+
readonly streaming: Schema.withConstructorDefault<Schema.Boolean>;
|
|
128
|
+
readonly resumableSessions: Schema.withConstructorDefault<Schema.Boolean>;
|
|
129
|
+
readonly interactiveSessions: Schema.withConstructorDefault<Schema.Boolean>;
|
|
130
|
+
readonly askUser: Schema.withConstructorDefault<Schema.Boolean>;
|
|
131
|
+
readonly approval: Schema.withConstructorDefault<Schema.Boolean>;
|
|
132
|
+
readonly structuredOutput: Schema.withConstructorDefault<Schema.Boolean>;
|
|
133
|
+
readonly usageReporting: Schema.withConstructorDefault<Schema.Boolean>;
|
|
134
|
+
}>, {}>;
|
|
135
|
+
export declare class ConnectorCapabilities extends ConnectorCapabilities_base {
|
|
136
|
+
}
|
|
137
|
+
export {};
|
|
138
|
+
//# sourceMappingURL=Models.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Models.d.ts","sourceRoot":"","sources":["../src/Models.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,eAAO,MAAM,WAAW,uHAStB,CAAA;AACF,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,IAAI,CAAA;;;;AAEjD,qBAAa,WAAY,SAAQ,gBAE/B;CAAG;AAEL,eAAO,MAAM,YAAY;;;;;;;;;;;;;;;;EAgBvB,CAAA;AAEF,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,WAAW,CAMrD,CAAA;AAEF,eAAO,MAAM,eAAe,EAAE,aAAa,CAAC,WAAW,CAUrD,CAAA;AAEF,eAAO,MAAM,YAAY,EAAE,aAAa,CAAC,WAAW,CAIlD,CAAA;AAEF,eAAO,MAAM,cAAc,GAAI,UAAU,WAAW,KAAG,MAAM,GAAG,SAkB/D,CAAA;AAaD,eAAO,MAAM,iBAAiB,GAAI,IAAI,WAAW,KAAG,WAAW,GAAG,SAChC,CAAA;AAElC,eAAO,MAAM,uBAAuB,GAAI,IAAI,WAAW,KAAG,MAAM,GAAG,SAGlE,CAAA;AAED,eAAO,MAAM,mBAAmB,GAAI,UAAU,WAAW,KAAG,WAmB3D,CAAA;AAED,eAAO,MAAM,aAAa,0CAAkC,CAAA;AAC5D,MAAM,MAAM,aAAa,GAAG,OAAO,aAAa,CAAC,IAAI,CAAA;AAErD,eAAO,MAAM,WAAW,mEAA2D,CAAA;AACnF,MAAM,MAAM,WAAW,GAAG,OAAO,WAAW,CAAC,IAAI,CAAA;;;;;AAEjD,qBAAa,OAAQ,SAAQ,YAG3B;CAAG;;;;;;;AAEL,qBAAa,UAAW,SAAQ,eAK9B;CAAG;;;;;;AAIL,qBAAa,WAAY,SAAQ,gBAM/B;CAAG;;;;;;;AAEL,qBAAa,QAAS,SAAQ,aAO5B;CAAG;;;;;;;AAEL,qBAAa,cAAe,SAAQ,mBAKlC;CAAG;;;;;;;;;;;;;;AAEL,qBAAa,SAAU,SAAQ,cAoB7B;CAAG;AAEL,eAAO,MAAM,kBAAkB,GAAI,QAAQ,SAAS,KAAG,SAOtD,CAAA;;;;;;AAED,qBAAa,QAAS,SAAQ,aAI5B;CAAG;;;;;;AAIL,qBAAa,gBAAiB,SAAQ,qBAMpC;CAAG;AAEL,eAAO,MAAM,UAAU,qFAA4C,CAAA;AACnE,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAA;;;;;;AAE/C,qBAAa,cAAe,SAAQ,mBAIlC;CAAG;AAEL,eAAO,MAAM,YAAY,2EAAmE,CAAA;AAC5F,MAAM,MAAM,YAAY,GAAG,OAAO,YAAY,CAAC,IAAI,CAAA;AAEnD,eAAO,MAAM,UAAU,sEAA8D,CAAA;AACrF,MAAM,MAAM,UAAU,GAAG,OAAO,UAAU,CAAC,IAAI,CAAA;;;;;;AAE/C,qBAAa,YAAa,SAAQ,iBAIhC;CAAG;AAEL,eAAO,MAAM,kBAAkB,oEAA4D,CAAA;AAC3F,MAAM,MAAM,kBAAkB,GAAG,OAAO,kBAAkB,CAAC,IAAI,CAAA;;;;;;;;;;AAE/D,qBAAa,qBAAsB,SAAQ,0BAUzC;CAAG"}
|
package/dist/Models.js
ADDED
|
@@ -0,0 +1,209 @@
|
|
|
1
|
+
import * as Duration from "effect/Duration";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import * as Schema from "effect/Schema";
|
|
4
|
+
export const LlmProvider = Schema.Literals([
|
|
5
|
+
"GeminiCli",
|
|
6
|
+
"GeminiApi",
|
|
7
|
+
"OpenAI",
|
|
8
|
+
"Anthropic",
|
|
9
|
+
"LmStudio",
|
|
10
|
+
"Ollama",
|
|
11
|
+
"OpenCode",
|
|
12
|
+
"Mock"
|
|
13
|
+
]);
|
|
14
|
+
export class ConnectorId extends Schema.Class("ConnectorId")({
|
|
15
|
+
value: Schema.String
|
|
16
|
+
}) {
|
|
17
|
+
}
|
|
18
|
+
export const ConnectorIds = Object.freeze({
|
|
19
|
+
OpenAI: new ConnectorId({ value: "openai" }),
|
|
20
|
+
Anthropic: new ConnectorId({ value: "anthropic" }),
|
|
21
|
+
GeminiApi: new ConnectorId({ value: "gemini-api" }),
|
|
22
|
+
LmStudio: new ConnectorId({ value: "lm-studio" }),
|
|
23
|
+
Ollama: new ConnectorId({ value: "ollama" }),
|
|
24
|
+
ClaudeCli: new ConnectorId({ value: "claude-cli" }),
|
|
25
|
+
GeminiCli: new ConnectorId({ value: "gemini-cli" }),
|
|
26
|
+
OpenCode: new ConnectorId({ value: "opencode" }),
|
|
27
|
+
Codex: new ConnectorId({ value: "codex" }),
|
|
28
|
+
Copilot: new ConnectorId({ value: "copilot" }),
|
|
29
|
+
Pi: new ConnectorId({ value: "pi" }),
|
|
30
|
+
AntigravityCli: new ConnectorId({ value: "antigravity-cli" }),
|
|
31
|
+
Grok: new ConnectorId({ value: "grok" }),
|
|
32
|
+
Cursor: new ConnectorId({ value: "cursor" }),
|
|
33
|
+
Mock: new ConnectorId({ value: "mock" })
|
|
34
|
+
});
|
|
35
|
+
export const apiConnectorIds = Object.freeze([
|
|
36
|
+
ConnectorIds.OpenAI,
|
|
37
|
+
ConnectorIds.Anthropic,
|
|
38
|
+
ConnectorIds.GeminiApi,
|
|
39
|
+
ConnectorIds.LmStudio,
|
|
40
|
+
ConnectorIds.Ollama
|
|
41
|
+
]);
|
|
42
|
+
export const cliConnectorIds = Object.freeze([
|
|
43
|
+
ConnectorIds.ClaudeCli,
|
|
44
|
+
ConnectorIds.GeminiCli,
|
|
45
|
+
ConnectorIds.OpenCode,
|
|
46
|
+
ConnectorIds.Codex,
|
|
47
|
+
ConnectorIds.Copilot,
|
|
48
|
+
ConnectorIds.Pi,
|
|
49
|
+
ConnectorIds.AntigravityCli,
|
|
50
|
+
ConnectorIds.Grok,
|
|
51
|
+
ConnectorIds.Cursor
|
|
52
|
+
]);
|
|
53
|
+
export const connectorIds = Object.freeze([
|
|
54
|
+
...apiConnectorIds,
|
|
55
|
+
...cliConnectorIds,
|
|
56
|
+
ConnectorIds.Mock
|
|
57
|
+
]);
|
|
58
|
+
export const defaultBaseUrl = (provider) => {
|
|
59
|
+
switch (provider) {
|
|
60
|
+
case "GeminiCli":
|
|
61
|
+
case "Mock":
|
|
62
|
+
return undefined;
|
|
63
|
+
case "GeminiApi":
|
|
64
|
+
return "https://generativelanguage.googleapis.com";
|
|
65
|
+
case "OpenAI":
|
|
66
|
+
return "https://api.openai.com/v1";
|
|
67
|
+
case "Anthropic":
|
|
68
|
+
return "https://api.anthropic.com";
|
|
69
|
+
case "LmStudio":
|
|
70
|
+
return "http://localhost:1234/v1";
|
|
71
|
+
case "Ollama":
|
|
72
|
+
return "http://localhost:11434";
|
|
73
|
+
case "OpenCode":
|
|
74
|
+
return "http://localhost:4096";
|
|
75
|
+
}
|
|
76
|
+
};
|
|
77
|
+
const connectorProviderTable = {
|
|
78
|
+
openai: "OpenAI",
|
|
79
|
+
anthropic: "Anthropic",
|
|
80
|
+
"gemini-api": "GeminiApi",
|
|
81
|
+
"lm-studio": "LmStudio",
|
|
82
|
+
ollama: "Ollama",
|
|
83
|
+
opencode: "OpenCode",
|
|
84
|
+
"gemini-cli": "GeminiCli",
|
|
85
|
+
mock: "Mock"
|
|
86
|
+
};
|
|
87
|
+
export const connectorProvider = (id) => connectorProviderTable[id.value];
|
|
88
|
+
export const connectorDefaultBaseUrl = (id) => {
|
|
89
|
+
const provider = connectorProvider(id);
|
|
90
|
+
return provider === undefined ? undefined : defaultBaseUrl(provider);
|
|
91
|
+
};
|
|
92
|
+
export const providerConnectorId = (provider) => {
|
|
93
|
+
switch (provider) {
|
|
94
|
+
case "GeminiCli":
|
|
95
|
+
return ConnectorIds.GeminiCli;
|
|
96
|
+
case "GeminiApi":
|
|
97
|
+
return ConnectorIds.GeminiApi;
|
|
98
|
+
case "OpenAI":
|
|
99
|
+
return ConnectorIds.OpenAI;
|
|
100
|
+
case "Anthropic":
|
|
101
|
+
return ConnectorIds.Anthropic;
|
|
102
|
+
case "LmStudio":
|
|
103
|
+
return ConnectorIds.LmStudio;
|
|
104
|
+
case "Ollama":
|
|
105
|
+
return ConnectorIds.Ollama;
|
|
106
|
+
case "OpenCode":
|
|
107
|
+
return ConnectorIds.OpenCode;
|
|
108
|
+
case "Mock":
|
|
109
|
+
return ConnectorIds.Mock;
|
|
110
|
+
}
|
|
111
|
+
};
|
|
112
|
+
export const ConnectorKind = Schema.Literals(["Api", "Cli"]);
|
|
113
|
+
export const MessageRole = Schema.Literals(["System", "User", "Assistant", "Tool"]);
|
|
114
|
+
export class Message extends Schema.Class("Message")({
|
|
115
|
+
role: MessageRole,
|
|
116
|
+
content: Schema.String
|
|
117
|
+
}) {
|
|
118
|
+
}
|
|
119
|
+
export class TokenUsage extends Schema.Class("TokenUsage")({
|
|
120
|
+
prompt: Schema.Int,
|
|
121
|
+
completion: Schema.Int,
|
|
122
|
+
total: Schema.Int,
|
|
123
|
+
cached: Schema.optionalKey(Schema.Int)
|
|
124
|
+
}) {
|
|
125
|
+
}
|
|
126
|
+
const emptyMetadata = Object.freeze({});
|
|
127
|
+
export class LlmResponse extends Schema.Class("LlmResponse")({
|
|
128
|
+
content: Schema.String,
|
|
129
|
+
usage: Schema.optionalKey(TokenUsage),
|
|
130
|
+
metadata: Schema.Record(Schema.String, Schema.String).pipe(Schema.withConstructorDefault(Effect.succeed(emptyMetadata)))
|
|
131
|
+
}) {
|
|
132
|
+
}
|
|
133
|
+
export class LlmChunk extends Schema.Class("LlmChunk")({
|
|
134
|
+
delta: Schema.String,
|
|
135
|
+
finishReason: Schema.optionalKey(Schema.String),
|
|
136
|
+
usage: Schema.optionalKey(TokenUsage),
|
|
137
|
+
metadata: Schema.Record(Schema.String, Schema.String).pipe(Schema.withConstructorDefault(Effect.succeed(emptyMetadata)))
|
|
138
|
+
}) {
|
|
139
|
+
}
|
|
140
|
+
export class StreamProgress extends Schema.Class("StreamProgress")({
|
|
141
|
+
tokensProcessed: Schema.Int,
|
|
142
|
+
tokensPerSecond: Schema.Number,
|
|
143
|
+
elapsedMs: Schema.Int,
|
|
144
|
+
estimatedRemainingMs: Schema.optionalKey(Schema.Int)
|
|
145
|
+
}) {
|
|
146
|
+
}
|
|
147
|
+
export class LlmConfig extends Schema.Class("LlmConfig")({
|
|
148
|
+
provider: LlmProvider,
|
|
149
|
+
model: Schema.String,
|
|
150
|
+
baseUrl: Schema.optionalKey(Schema.String),
|
|
151
|
+
apiKey: Schema.optionalKey(Schema.Redacted(Schema.String, {
|
|
152
|
+
disallowJsonEncode: true
|
|
153
|
+
})),
|
|
154
|
+
timeout: Schema.Duration.pipe(Schema.withConstructorDefault(Effect.succeed(Duration.seconds(300)))),
|
|
155
|
+
maxRetries: Schema.Int.pipe(Schema.withConstructorDefault(Effect.succeed(3))),
|
|
156
|
+
requestsPerMinute: Schema.Int.pipe(Schema.withConstructorDefault(Effect.succeed(60))),
|
|
157
|
+
burstSize: Schema.Int.pipe(Schema.withConstructorDefault(Effect.succeed(10))),
|
|
158
|
+
acquireTimeout: Schema.Duration.pipe(Schema.withConstructorDefault(Effect.succeed(Duration.seconds(30)))),
|
|
159
|
+
temperature: Schema.optionalKey(Schema.Number),
|
|
160
|
+
maxTokens: Schema.optionalKey(Schema.Int)
|
|
161
|
+
}) {
|
|
162
|
+
}
|
|
163
|
+
export const withConfigDefaults = (config) => {
|
|
164
|
+
if (config.baseUrl !== undefined) {
|
|
165
|
+
return config;
|
|
166
|
+
}
|
|
167
|
+
const baseUrl = defaultBaseUrl(config.provider);
|
|
168
|
+
return baseUrl === undefined ? config : new LlmConfig({ ...config, baseUrl });
|
|
169
|
+
};
|
|
170
|
+
export class ToolCall extends Schema.Class("ToolCall")({
|
|
171
|
+
id: Schema.String,
|
|
172
|
+
name: Schema.String,
|
|
173
|
+
arguments: Schema.String
|
|
174
|
+
}) {
|
|
175
|
+
}
|
|
176
|
+
const emptyToolCalls = Object.freeze([]);
|
|
177
|
+
export class ToolCallResponse extends Schema.Class("ToolCallResponse")({
|
|
178
|
+
content: Schema.optionalKey(Schema.String),
|
|
179
|
+
toolCalls: Schema.Array(ToolCall).pipe(Schema.withConstructorDefault(Effect.succeed(emptyToolCalls))),
|
|
180
|
+
finishReason: Schema.String
|
|
181
|
+
}) {
|
|
182
|
+
}
|
|
183
|
+
export const JsonSchema = Schema.Record(Schema.String, Schema.Json);
|
|
184
|
+
export class ToolDefinition extends Schema.Class("ToolDefinition")({
|
|
185
|
+
name: Schema.String,
|
|
186
|
+
description: Schema.String,
|
|
187
|
+
parameters: JsonSchema
|
|
188
|
+
}) {
|
|
189
|
+
}
|
|
190
|
+
export const Availability = Schema.Literals(["Healthy", "Degraded", "Unhealthy", "Unknown"]);
|
|
191
|
+
export const AuthStatus = Schema.Literals(["Valid", "Missing", "Invalid", "Unknown"]);
|
|
192
|
+
export class HealthStatus extends Schema.Class("HealthStatus")({
|
|
193
|
+
availability: Availability,
|
|
194
|
+
authStatus: AuthStatus,
|
|
195
|
+
latency: Schema.optionalKey(Schema.Duration)
|
|
196
|
+
}) {
|
|
197
|
+
}
|
|
198
|
+
export const InteractionSupport = Schema.Literals(["InteractiveStdin", "ContinuationOnly"]);
|
|
199
|
+
export class ConnectorCapabilities extends Schema.Class("ConnectorCapabilities")({
|
|
200
|
+
streaming: Schema.Boolean.pipe(Schema.withConstructorDefault(Effect.succeed(true))),
|
|
201
|
+
resumableSessions: Schema.Boolean.pipe(Schema.withConstructorDefault(Effect.succeed(false))),
|
|
202
|
+
interactiveSessions: Schema.Boolean.pipe(Schema.withConstructorDefault(Effect.succeed(false))),
|
|
203
|
+
askUser: Schema.Boolean.pipe(Schema.withConstructorDefault(Effect.succeed(false))),
|
|
204
|
+
approval: Schema.Boolean.pipe(Schema.withConstructorDefault(Effect.succeed(false))),
|
|
205
|
+
structuredOutput: Schema.Boolean.pipe(Schema.withConstructorDefault(Effect.succeed(true))),
|
|
206
|
+
usageReporting: Schema.Boolean.pipe(Schema.withConstructorDefault(Effect.succeed(true)))
|
|
207
|
+
}) {
|
|
208
|
+
}
|
|
209
|
+
//# sourceMappingURL=Models.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Models.js","sourceRoot":"","sources":["../src/Models.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
import * as Context from "effect/Context";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import type * as Queue from "effect/Queue";
|
|
4
|
+
import * as Schema from "effect/Schema";
|
|
5
|
+
import type * as Scope from "effect/Scope";
|
|
6
|
+
import * as Stream from "effect/Stream";
|
|
7
|
+
import { type LlmError } from "./Errors.ts";
|
|
8
|
+
declare const ProcessResult_base: Schema.Class<ProcessResult, Schema.Struct<{
|
|
9
|
+
readonly stdout: Schema.$Array<Schema.String>;
|
|
10
|
+
readonly exitCode: Schema.Int;
|
|
11
|
+
readonly stderr: Schema.withConstructorDefault<Schema.$Array<Schema.String>>;
|
|
12
|
+
}>, {}>;
|
|
13
|
+
export declare class ProcessResult extends ProcessResult_base {
|
|
14
|
+
}
|
|
15
|
+
declare const ProcessInvocation_base: Schema.Class<ProcessInvocation, Schema.Struct<{
|
|
16
|
+
readonly argv: Schema.$Array<Schema.String>;
|
|
17
|
+
readonly cwd: Schema.String;
|
|
18
|
+
readonly envVars: Schema.withConstructorDefault<Schema.$Record<Schema.String, Schema.String>>;
|
|
19
|
+
readonly stdin: Schema.optionalKey<Schema.String>;
|
|
20
|
+
readonly streaming: Schema.Boolean;
|
|
21
|
+
}>, {}>;
|
|
22
|
+
export declare class ProcessInvocation extends ProcessInvocation_base {
|
|
23
|
+
}
|
|
24
|
+
export type BidirectionalProcess = readonly [
|
|
25
|
+
stdin: Queue.Queue<string>,
|
|
26
|
+
stdout: Stream.Stream<string, LlmError>
|
|
27
|
+
];
|
|
28
|
+
export interface ProcessExecutorShape {
|
|
29
|
+
readonly run: (argv: ReadonlyArray<string>, cwd: string, envVars: Readonly<Record<string, string>>) => Effect.Effect<ProcessResult, LlmError>;
|
|
30
|
+
readonly runStreaming: (argv: ReadonlyArray<string>, cwd: string, envVars: Readonly<Record<string, string>>) => Stream.Stream<string, LlmError>;
|
|
31
|
+
readonly runWithStdin: (argv: ReadonlyArray<string>, cwd: string, envVars: Readonly<Record<string, string>>, stdin: string) => Effect.Effect<ProcessResult, LlmError>;
|
|
32
|
+
readonly runStreamingWithStdin: (argv: ReadonlyArray<string>, cwd: string, envVars: Readonly<Record<string, string>>, stdin: string) => Stream.Stream<string, LlmError>;
|
|
33
|
+
readonly runBidirectional: (argv: ReadonlyArray<string>, cwd: string, envVars: Readonly<Record<string, string>>) => Effect.Effect<BidirectionalProcess, LlmError, Scope.Scope>;
|
|
34
|
+
}
|
|
35
|
+
declare const ProcessExecutor_base: Context.ServiceClass<ProcessExecutor, "@llm4ts/core/ProcessExecutor", ProcessExecutorShape>;
|
|
36
|
+
export declare class ProcessExecutor extends ProcessExecutor_base {
|
|
37
|
+
}
|
|
38
|
+
export interface ProcessExecutorPrimitives {
|
|
39
|
+
readonly run: ProcessExecutorShape["run"];
|
|
40
|
+
readonly runStreaming: ProcessExecutorShape["runStreaming"];
|
|
41
|
+
readonly runWithStdin?: ProcessExecutorShape["runWithStdin"];
|
|
42
|
+
readonly runStreamingWithStdin?: ProcessExecutorShape["runStreamingWithStdin"];
|
|
43
|
+
readonly runBidirectional?: ProcessExecutorShape["runBidirectional"];
|
|
44
|
+
}
|
|
45
|
+
export declare const makeProcessExecutor: (primitives: ProcessExecutorPrimitives) => ProcessExecutorShape;
|
|
46
|
+
export declare const processCommandKey: (argv: ReadonlyArray<string>) => string;
|
|
47
|
+
export interface FakeProcessExecutor {
|
|
48
|
+
readonly executor: ProcessExecutorShape;
|
|
49
|
+
readonly recorded: Effect.Effect<ReadonlyArray<ProcessInvocation>>;
|
|
50
|
+
}
|
|
51
|
+
export interface FakeProcessPlan {
|
|
52
|
+
readonly responses?: ReadonlyMap<string, ProcessResult>;
|
|
53
|
+
readonly streamResponses?: ReadonlyMap<string, ReadonlyArray<string>>;
|
|
54
|
+
}
|
|
55
|
+
export declare const makeFakeProcessExecutor: (plan?: FakeProcessPlan | undefined) => Effect.Effect<FakeProcessExecutor, never, never>;
|
|
56
|
+
export {};
|
|
57
|
+
//# sourceMappingURL=ProcessExecutor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProcessExecutor.d.ts","sourceRoot":"","sources":["../src/ProcessExecutor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import * as Context from "effect/Context";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import * as Ref from "effect/Ref";
|
|
4
|
+
import * as Schema from "effect/Schema";
|
|
5
|
+
import * as Stream from "effect/Stream";
|
|
6
|
+
import { InvalidRequestError, ProviderError } from "./Errors.js";
|
|
7
|
+
const emptyLines = Object.freeze([]);
|
|
8
|
+
const emptyEnvironment = Object.freeze({});
|
|
9
|
+
export class ProcessResult extends Schema.Class("ProcessResult")({
|
|
10
|
+
stdout: Schema.Array(Schema.String),
|
|
11
|
+
exitCode: Schema.Int,
|
|
12
|
+
stderr: Schema.Array(Schema.String).pipe(Schema.withConstructorDefault(Effect.succeed(emptyLines)))
|
|
13
|
+
}) {
|
|
14
|
+
}
|
|
15
|
+
export class ProcessInvocation extends Schema.Class("ProcessInvocation")({
|
|
16
|
+
argv: Schema.Array(Schema.String),
|
|
17
|
+
cwd: Schema.String,
|
|
18
|
+
envVars: Schema.Record(Schema.String, Schema.String).pipe(Schema.withConstructorDefault(Effect.succeed(emptyEnvironment))),
|
|
19
|
+
stdin: Schema.optionalKey(Schema.String),
|
|
20
|
+
streaming: Schema.Boolean
|
|
21
|
+
}) {
|
|
22
|
+
}
|
|
23
|
+
export class ProcessExecutor extends Context.Service()("@llm4ts/core/ProcessExecutor") {
|
|
24
|
+
}
|
|
25
|
+
export const makeProcessExecutor = (primitives) => ({
|
|
26
|
+
run: primitives.run,
|
|
27
|
+
runStreaming: primitives.runStreaming,
|
|
28
|
+
runWithStdin: primitives.runWithStdin ?? ((argv, cwd, envVars, _stdin) => primitives.run(argv, cwd, envVars)),
|
|
29
|
+
runStreamingWithStdin: primitives.runStreamingWithStdin ??
|
|
30
|
+
((argv, cwd, envVars, _stdin) => primitives.runStreaming(argv, cwd, envVars)),
|
|
31
|
+
runBidirectional: primitives.runBidirectional ??
|
|
32
|
+
((argv, _cwd, _envVars) => Effect.fail(InvalidRequestError.make({
|
|
33
|
+
message: `${argv[0] ?? "process"} does not support bidirectional sessions`
|
|
34
|
+
})))
|
|
35
|
+
});
|
|
36
|
+
export const processCommandKey = (argv) => JSON.stringify(argv);
|
|
37
|
+
export const makeFakeProcessExecutor = Effect.fn("@llm4ts/core/ProcessExecutor.makeFake")(function* (plan = {}) {
|
|
38
|
+
const invocations = yield* Ref.make([]);
|
|
39
|
+
const record = (invocation) => Ref.update(invocations, (current) => [...current, invocation]);
|
|
40
|
+
const executor = makeProcessExecutor({
|
|
41
|
+
run: (argv, cwd, envVars) => {
|
|
42
|
+
const invocation = ProcessInvocation.make({
|
|
43
|
+
argv,
|
|
44
|
+
cwd,
|
|
45
|
+
envVars,
|
|
46
|
+
streaming: false
|
|
47
|
+
});
|
|
48
|
+
const response = plan.responses?.get(processCommandKey(argv));
|
|
49
|
+
return record(invocation).pipe(Effect.andThen(response === undefined
|
|
50
|
+
? Effect.fail(ProviderError.make({
|
|
51
|
+
message: `No fake response for argv: ${argv.join(" ")}`
|
|
52
|
+
}))
|
|
53
|
+
: Effect.succeed(response)));
|
|
54
|
+
},
|
|
55
|
+
runStreaming: (argv, cwd, envVars) => {
|
|
56
|
+
const invocation = ProcessInvocation.make({
|
|
57
|
+
argv,
|
|
58
|
+
cwd,
|
|
59
|
+
envVars,
|
|
60
|
+
streaming: true
|
|
61
|
+
});
|
|
62
|
+
const lines = plan.streamResponses?.get(processCommandKey(argv)) ?? emptyLines;
|
|
63
|
+
return Stream.concat(Stream.drain(Stream.fromEffect(record(invocation))), Stream.fromIterable(lines));
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
return {
|
|
67
|
+
executor,
|
|
68
|
+
recorded: Ref.get(invocations)
|
|
69
|
+
};
|
|
70
|
+
});
|
|
71
|
+
//# sourceMappingURL=ProcessExecutor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ProcessExecutor.js","sourceRoot":"","sources":["../src/ProcessExecutor.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AACzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,GAAG,MAAM,YAAY,CAAA;AACjC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAiB,MAAM,aAAa,CAAA;AAE/E,MAAM,UAAU,GAA0B,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AAC3D,MAAM,gBAAgB,GAAqC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;AAE5E,MAAM,OAAO,aAAc,SAAQ,MAAM,CAAC,KAAK,CAAgB,eAAe,CAAC,CAAC;IAC9E,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;IACnC,QAAQ,EAAE,MAAM,CAAC,GAAG;IACpB,MAAM,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CACtC,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAC1D;CACF,CAAC;CAAG;AAEL,MAAM,OAAO,iBAAkB,SAAQ,MAAM,CAAC,KAAK,CAAoB,mBAAmB,CAAC,CAAC;IAC1F,IAAI,EAAE,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC;IACjC,GAAG,EAAE,MAAM,CAAC,MAAM;IAClB,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,CAAC,IAAI,CACvD,MAAM,CAAC,sBAAsB,CAAC,MAAM,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC,CAChE;IACD,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,MAAM,CAAC,MAAM,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC,OAAO;CAC1B,CAAC;CAAG;AAqCL,MAAM,OAAO,eAAgB,SAAQ,OAAO,CAAC,OAAO,EAAyC,CAC3F,8BAA8B,CAC/B;CAAG;AAUJ,MAAM,CAAC,MAAM,mBAAmB,GAAG,CACjC,UAAqC,EACf,EAAE,CAAC,CAAC;IAC1B,GAAG,EAAE,UAAU,CAAC,GAAG;IACnB,YAAY,EAAE,UAAU,CAAC,YAAY;IACrC,YAAY,EACV,UAAU,CAAC,YAAY,IAAI,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,GAAG,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IACjG,qBAAqB,EACnB,UAAU,CAAC,qBAAqB;QAChC,CAAC,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,CAAC,UAAU,CAAC,YAAY,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,CAAC,CAAC;IAC/E,gBAAgB,EACd,UAAU,CAAC,gBAAgB;QAC3B,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,CACxB,MAAM,CAAC,IAAI,CACT,mBAAmB,CAAC,IAAI,CAAC;YACvB,OAAO,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,SAAS,0CAA0C;SAC3E,CAAC,CACH,CAAC;CACP,CAAC,CAAA;AAEF,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,IAA2B,EAAU,EAAE,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;AAY9F,MAAM,CAAC,MAAM,uBAAuB,GAAG,MAAM,CAAC,EAAE,CAAC,uCAAuC,CAAC,CACvF,QAAQ,CAAC,EAAE,OAAwB,EAAE;IACnC,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,GAAG,CAAC,IAAI,CAAmC,EAAE,CAAC,CAAA;IACzE,MAAM,MAAM,GAAG,CAAC,UAA6B,EAAuB,EAAE,CACpE,GAAG,CAAC,MAAM,CAAC,WAAW,EAAE,CAAC,OAAO,EAAE,EAAE,CAAC,CAAC,GAAG,OAAO,EAAE,UAAU,CAAC,CAAC,CAAA;IAEhE,MAAM,QAAQ,GAAG,mBAAmB,CAAC;QACnC,GAAG,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;YAC1B,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC;gBACxC,IAAI;gBACJ,GAAG;gBACH,OAAO;gBACP,SAAS,EAAE,KAAK;aACjB,CAAC,CAAA;YACF,MAAM,QAAQ,GAAG,IAAI,CAAC,SAAS,EAAE,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAA;YAC7D,OAAO,MAAM,CAAC,UAAU,CAAC,CAAC,IAAI,CAC5B,MAAM,CAAC,OAAO,CACZ,QAAQ,KAAK,SAAS;gBACpB,CAAC,CAAC,MAAM,CAAC,IAAI,CACT,aAAa,CAAC,IAAI,CAAC;oBACjB,OAAO,EAAE,8BAA8B,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE;iBACxD,CAAC,CACH;gBACH,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,QAAQ,CAAC,CAC7B,CACF,CAAA;QACH,CAAC;QACD,YAAY,EAAE,CAAC,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,EAAE;YACnC,MAAM,UAAU,GAAG,iBAAiB,CAAC,IAAI,CAAC;gBACxC,IAAI;gBACJ,GAAG;gBACH,OAAO;gBACP,SAAS,EAAE,IAAI;aAChB,CAAC,CAAA;YACF,MAAM,KAAK,GAAG,IAAI,CAAC,eAAe,EAAE,GAAG,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC,IAAI,UAAU,CAAA;YAC9E,OAAO,MAAM,CAAC,MAAM,CAClB,MAAM,CAAC,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,EACnD,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,CAC3B,CAAA;QACH,CAAC;KACF,CAAC,CAAA;IAEF,OAAO;QACL,QAAQ;QACR,QAAQ,EAAE,GAAG,CAAC,GAAG,CAAC,WAAW,CAAC;KAC/B,CAAA;AACH,CAAC,CACF,CAAA"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
import * as Context from "effect/Context";
|
|
2
|
+
import * as Effect from "effect/Effect";
|
|
3
|
+
import * as Layer from "effect/Layer";
|
|
4
|
+
import * as Schema from "effect/Schema";
|
|
5
|
+
import type { LlmConfig } from "./Models.ts";
|
|
6
|
+
declare const RateLimiterAcquireTimeout_base: Schema.Class<RateLimiterAcquireTimeout, Schema.TaggedStruct<"AcquireTimeout", {
|
|
7
|
+
readonly timeout: Schema.Duration;
|
|
8
|
+
}>, import("effect/Cause").YieldableError>;
|
|
9
|
+
export declare class RateLimiterAcquireTimeout extends RateLimiterAcquireTimeout_base {
|
|
10
|
+
}
|
|
11
|
+
declare const RateLimiterInvalidConfig_base: Schema.Class<RateLimiterInvalidConfig, Schema.TaggedStruct<"InvalidConfig", {
|
|
12
|
+
readonly details: Schema.String;
|
|
13
|
+
}>, import("effect/Cause").YieldableError>;
|
|
14
|
+
export declare class RateLimiterInvalidConfig extends RateLimiterInvalidConfig_base {
|
|
15
|
+
}
|
|
16
|
+
export declare const RateLimiterError: Schema.Union<readonly [typeof RateLimiterAcquireTimeout, typeof RateLimiterInvalidConfig]>;
|
|
17
|
+
export type RateLimiterError = typeof RateLimiterError.Type;
|
|
18
|
+
declare const RateLimiterConfig_base: Schema.Class<RateLimiterConfig, Schema.Struct<{
|
|
19
|
+
readonly requestsPerMinute: Schema.withConstructorDefault<Schema.Int>;
|
|
20
|
+
readonly burstSize: Schema.withConstructorDefault<Schema.Int>;
|
|
21
|
+
readonly acquireTimeout: Schema.withConstructorDefault<Schema.Duration>;
|
|
22
|
+
}>, {}>;
|
|
23
|
+
export declare class RateLimiterConfig extends RateLimiterConfig_base {
|
|
24
|
+
}
|
|
25
|
+
export declare const rateLimiterConfigFromLlmConfig: (config: LlmConfig) => RateLimiterConfig;
|
|
26
|
+
declare const RateLimiterMetrics_base: Schema.Class<RateLimiterMetrics, Schema.Struct<{
|
|
27
|
+
readonly totalRequests: Schema.Int;
|
|
28
|
+
readonly throttledRequests: Schema.Int;
|
|
29
|
+
readonly currentTokens: Schema.Int;
|
|
30
|
+
}>, {}>;
|
|
31
|
+
export declare class RateLimiterMetrics extends RateLimiterMetrics_base {
|
|
32
|
+
}
|
|
33
|
+
export interface RateLimiterShape {
|
|
34
|
+
readonly acquire: Effect.Effect<void, RateLimiterError>;
|
|
35
|
+
readonly tryAcquire: Effect.Effect<boolean>;
|
|
36
|
+
readonly metrics: Effect.Effect<RateLimiterMetrics>;
|
|
37
|
+
}
|
|
38
|
+
declare const RateLimiter_base: Context.ServiceClass<RateLimiter, "@llm4ts/core/RateLimiter", RateLimiterShape>;
|
|
39
|
+
export declare class RateLimiter extends RateLimiter_base {
|
|
40
|
+
}
|
|
41
|
+
export declare const makeRateLimiter: (config: RateLimiterConfig) => Effect.Effect<RateLimiterShape, never, never>;
|
|
42
|
+
export declare const rateLimiterLayer: (config: RateLimiterConfig) => Layer.Layer<RateLimiter>;
|
|
43
|
+
export {};
|
|
44
|
+
//# sourceMappingURL=RateLimiter.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RateLimiter.d.ts","sourceRoot":"","sources":["../src/RateLimiter.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,OAAO,MAAM,gBAAgB,CAAA;AAEzC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,KAAK,MAAM,cAAc,CAAA;AAErC,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AACvC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAA;;;;AAE5C,qBAAa,yBAA0B,SAAQ,8BAK9C;CAAG;;;;AAEJ,qBAAa,wBAAyB,SAAQ,6BAK7C;CAAG;AAEJ,eAAO,MAAM,gBAAgB,4FAAsE,CAAA;AACnG,MAAM,MAAM,gBAAgB,GAAG,OAAO,gBAAgB,CAAC,IAAI,CAAA;;;;;;AAE3D,qBAAa,iBAAkB,SAAQ,sBAMrC;CAAG;AAEL,eAAO,MAAM,8BAA8B,GAAI,QAAQ,SAAS,KAAG,iBAK/D,CAAA;;;;;;AAEJ,qBAAa,kBAAmB,SAAQ,uBAItC;CAAG;AAEL,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,IAAI,EAAE,gBAAgB,CAAC,CAAA;IACvD,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAA;IAC3C,QAAQ,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,CAAC,kBAAkB,CAAC,CAAA;CACpD;;AAED,qBAAa,WAAY,SAAQ,gBAEhC;CAAG;AAwBJ,eAAO,MAAM,eAAe,8EA2J1B,CAAA;AAEF,eAAO,MAAM,gBAAgB,GAAI,QAAQ,iBAAiB,KAAG,KAAK,CAAC,KAAK,CAAC,WAAW,CAChC,CAAA"}
|