ai-sdk-provider-goose 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/README.md +38 -0
- package/dist/index.cjs +462 -0
- package/dist/index.cjs.map +1 -0
- package/dist/index.d.cts +162 -0
- package/dist/index.d.ts +162 -0
- package/dist/index.js +430 -0
- package/dist/index.js.map +1 -0
- package/package.json +58 -0
package/dist/index.d.cts
ADDED
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { LanguageModelV3, LanguageModelV3CallOptions, LanguageModelV3GenerateResult, LanguageModelV3StreamResult, ProviderV3, APICallError } from '@ai-sdk/provider';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Settings for configuring the Goose language model provider.
|
|
5
|
+
*/
|
|
6
|
+
interface GooseSettings {
|
|
7
|
+
/**
|
|
8
|
+
* Path to the Goose binary.
|
|
9
|
+
* @default 'goose'
|
|
10
|
+
*/
|
|
11
|
+
binPath?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Additional CLI arguments to pass to Goose.
|
|
14
|
+
* @example ['--profile', 'custom']
|
|
15
|
+
*/
|
|
16
|
+
args?: string[];
|
|
17
|
+
/**
|
|
18
|
+
* Timeout for the entire request in milliseconds.
|
|
19
|
+
* @default 120000 (2 minutes)
|
|
20
|
+
*/
|
|
21
|
+
timeout?: number;
|
|
22
|
+
/**
|
|
23
|
+
* Logger instance for debugging.
|
|
24
|
+
*/
|
|
25
|
+
logger?: Logger;
|
|
26
|
+
/**
|
|
27
|
+
* Session name for the conversation.
|
|
28
|
+
* When provided, adds --name flag to the CLI.
|
|
29
|
+
* @example 'my-session'
|
|
30
|
+
*/
|
|
31
|
+
sessionName?: string;
|
|
32
|
+
/**
|
|
33
|
+
* Whether to resume an existing session.
|
|
34
|
+
* When true, adds --resume flag to the CLI.
|
|
35
|
+
* Requires sessionName to be set.
|
|
36
|
+
* @default false
|
|
37
|
+
*/
|
|
38
|
+
resume?: boolean;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Logger interface for debugging.
|
|
42
|
+
*/
|
|
43
|
+
interface Logger {
|
|
44
|
+
debug(message: string, ...args: any[]): void;
|
|
45
|
+
info(message: string, ...args: any[]): void;
|
|
46
|
+
warn(message: string, ...args: any[]): void;
|
|
47
|
+
error(message: string, ...args: any[]): void;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
type GooseModelId = 'goose' | (string & {});
|
|
51
|
+
interface GooseLanguageModelOptions {
|
|
52
|
+
id: GooseModelId;
|
|
53
|
+
settings?: GooseSettings;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Goose CLI language model implementation for AI SDK.
|
|
57
|
+
*/
|
|
58
|
+
declare class GooseLanguageModel implements LanguageModelV3 {
|
|
59
|
+
readonly specificationVersion: "v3";
|
|
60
|
+
readonly provider = "goose";
|
|
61
|
+
readonly modelId: string;
|
|
62
|
+
readonly supportedUrls: {};
|
|
63
|
+
private settings;
|
|
64
|
+
private logger?;
|
|
65
|
+
constructor(options: GooseLanguageModelOptions);
|
|
66
|
+
doGenerate(options: LanguageModelV3CallOptions): Promise<LanguageModelV3GenerateResult>;
|
|
67
|
+
doStream(options: LanguageModelV3CallOptions): Promise<LanguageModelV3StreamResult>;
|
|
68
|
+
private buildCLIArgs;
|
|
69
|
+
private spawnGooseProcess;
|
|
70
|
+
private createStreamFromProcess;
|
|
71
|
+
private convertPromptToText;
|
|
72
|
+
private eventsToGenerateResult;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Goose provider interface extending AI SDK ProviderV3.
|
|
77
|
+
*/
|
|
78
|
+
interface GooseProvider extends ProviderV3 {
|
|
79
|
+
/**
|
|
80
|
+
* Create a language model (callable shorthand).
|
|
81
|
+
*/
|
|
82
|
+
(modelId: GooseModelId, settings?: GooseSettings): LanguageModelV3;
|
|
83
|
+
/**
|
|
84
|
+
* Create a language model.
|
|
85
|
+
*/
|
|
86
|
+
languageModel(modelId: GooseModelId, settings?: GooseSettings): LanguageModelV3;
|
|
87
|
+
/**
|
|
88
|
+
* Alias for languageModel (follows AI SDK pattern).
|
|
89
|
+
*/
|
|
90
|
+
chat(modelId: GooseModelId, settings?: GooseSettings): LanguageModelV3;
|
|
91
|
+
/**
|
|
92
|
+
* Embedding models are not supported.
|
|
93
|
+
*/
|
|
94
|
+
embeddingModel(modelId: string): never;
|
|
95
|
+
/**
|
|
96
|
+
* Image models are not supported.
|
|
97
|
+
*/
|
|
98
|
+
imageModel(modelId: string): never;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Provider-level settings for Goose.
|
|
102
|
+
*/
|
|
103
|
+
interface GooseProviderSettings extends GooseSettings {
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Creates a Goose provider with the specified settings.
|
|
107
|
+
*
|
|
108
|
+
* @param settings Provider-level settings
|
|
109
|
+
* @returns Goose provider instance
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* ```typescript
|
|
113
|
+
* import { createGoose } from 'ai-sdk-provider-goose';
|
|
114
|
+
*
|
|
115
|
+
* const provider = createGoose({
|
|
116
|
+
* binPath: '/path/to/goose',
|
|
117
|
+
* timeout: 60000,
|
|
118
|
+
* });
|
|
119
|
+
*
|
|
120
|
+
* const model = provider('goose');
|
|
121
|
+
* ```
|
|
122
|
+
*/
|
|
123
|
+
declare function createGoose(settings?: GooseProviderSettings): GooseProvider;
|
|
124
|
+
/**
|
|
125
|
+
* Default Goose provider instance.
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* ```typescript
|
|
129
|
+
* import { goose } from 'ai-sdk-provider-goose';
|
|
130
|
+
* import { generateText } from 'ai';
|
|
131
|
+
*
|
|
132
|
+
* const result = await generateText({
|
|
133
|
+
* model: goose('goose'),
|
|
134
|
+
* prompt: 'Hello!',
|
|
135
|
+
* });
|
|
136
|
+
* ```
|
|
137
|
+
*/
|
|
138
|
+
declare const goose: GooseProvider;
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Metadata attached to errors from the Goose CLI provider.
|
|
142
|
+
*/
|
|
143
|
+
interface GooseErrorMetadata {
|
|
144
|
+
binPath?: string;
|
|
145
|
+
args?: string[];
|
|
146
|
+
exitCode?: number;
|
|
147
|
+
stderr?: string;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Creates a general API call error.
|
|
151
|
+
*/
|
|
152
|
+
declare function createAPICallError(message: string, metadata?: GooseErrorMetadata): APICallError;
|
|
153
|
+
/**
|
|
154
|
+
* Creates a timeout error (retryable).
|
|
155
|
+
*/
|
|
156
|
+
declare function createTimeoutError(timeoutMs: number, metadata?: GooseErrorMetadata): APICallError;
|
|
157
|
+
/**
|
|
158
|
+
* Creates a process error for non-zero exit codes.
|
|
159
|
+
*/
|
|
160
|
+
declare function createProcessError(message: string, exitCode: number, stderr: string, metadata?: GooseErrorMetadata): APICallError;
|
|
161
|
+
|
|
162
|
+
export { type GooseErrorMetadata, GooseLanguageModel, type GooseLanguageModelOptions, type GooseModelId, type GooseProvider, type GooseProviderSettings, type GooseSettings, type Logger, createAPICallError, createGoose, createProcessError, createTimeoutError, goose };
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
import { LanguageModelV3, LanguageModelV3CallOptions, LanguageModelV3GenerateResult, LanguageModelV3StreamResult, ProviderV3, APICallError } from '@ai-sdk/provider';
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* Settings for configuring the Goose language model provider.
|
|
5
|
+
*/
|
|
6
|
+
interface GooseSettings {
|
|
7
|
+
/**
|
|
8
|
+
* Path to the Goose binary.
|
|
9
|
+
* @default 'goose'
|
|
10
|
+
*/
|
|
11
|
+
binPath?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Additional CLI arguments to pass to Goose.
|
|
14
|
+
* @example ['--profile', 'custom']
|
|
15
|
+
*/
|
|
16
|
+
args?: string[];
|
|
17
|
+
/**
|
|
18
|
+
* Timeout for the entire request in milliseconds.
|
|
19
|
+
* @default 120000 (2 minutes)
|
|
20
|
+
*/
|
|
21
|
+
timeout?: number;
|
|
22
|
+
/**
|
|
23
|
+
* Logger instance for debugging.
|
|
24
|
+
*/
|
|
25
|
+
logger?: Logger;
|
|
26
|
+
/**
|
|
27
|
+
* Session name for the conversation.
|
|
28
|
+
* When provided, adds --name flag to the CLI.
|
|
29
|
+
* @example 'my-session'
|
|
30
|
+
*/
|
|
31
|
+
sessionName?: string;
|
|
32
|
+
/**
|
|
33
|
+
* Whether to resume an existing session.
|
|
34
|
+
* When true, adds --resume flag to the CLI.
|
|
35
|
+
* Requires sessionName to be set.
|
|
36
|
+
* @default false
|
|
37
|
+
*/
|
|
38
|
+
resume?: boolean;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Logger interface for debugging.
|
|
42
|
+
*/
|
|
43
|
+
interface Logger {
|
|
44
|
+
debug(message: string, ...args: any[]): void;
|
|
45
|
+
info(message: string, ...args: any[]): void;
|
|
46
|
+
warn(message: string, ...args: any[]): void;
|
|
47
|
+
error(message: string, ...args: any[]): void;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
type GooseModelId = 'goose' | (string & {});
|
|
51
|
+
interface GooseLanguageModelOptions {
|
|
52
|
+
id: GooseModelId;
|
|
53
|
+
settings?: GooseSettings;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Goose CLI language model implementation for AI SDK.
|
|
57
|
+
*/
|
|
58
|
+
declare class GooseLanguageModel implements LanguageModelV3 {
|
|
59
|
+
readonly specificationVersion: "v3";
|
|
60
|
+
readonly provider = "goose";
|
|
61
|
+
readonly modelId: string;
|
|
62
|
+
readonly supportedUrls: {};
|
|
63
|
+
private settings;
|
|
64
|
+
private logger?;
|
|
65
|
+
constructor(options: GooseLanguageModelOptions);
|
|
66
|
+
doGenerate(options: LanguageModelV3CallOptions): Promise<LanguageModelV3GenerateResult>;
|
|
67
|
+
doStream(options: LanguageModelV3CallOptions): Promise<LanguageModelV3StreamResult>;
|
|
68
|
+
private buildCLIArgs;
|
|
69
|
+
private spawnGooseProcess;
|
|
70
|
+
private createStreamFromProcess;
|
|
71
|
+
private convertPromptToText;
|
|
72
|
+
private eventsToGenerateResult;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
/**
|
|
76
|
+
* Goose provider interface extending AI SDK ProviderV3.
|
|
77
|
+
*/
|
|
78
|
+
interface GooseProvider extends ProviderV3 {
|
|
79
|
+
/**
|
|
80
|
+
* Create a language model (callable shorthand).
|
|
81
|
+
*/
|
|
82
|
+
(modelId: GooseModelId, settings?: GooseSettings): LanguageModelV3;
|
|
83
|
+
/**
|
|
84
|
+
* Create a language model.
|
|
85
|
+
*/
|
|
86
|
+
languageModel(modelId: GooseModelId, settings?: GooseSettings): LanguageModelV3;
|
|
87
|
+
/**
|
|
88
|
+
* Alias for languageModel (follows AI SDK pattern).
|
|
89
|
+
*/
|
|
90
|
+
chat(modelId: GooseModelId, settings?: GooseSettings): LanguageModelV3;
|
|
91
|
+
/**
|
|
92
|
+
* Embedding models are not supported.
|
|
93
|
+
*/
|
|
94
|
+
embeddingModel(modelId: string): never;
|
|
95
|
+
/**
|
|
96
|
+
* Image models are not supported.
|
|
97
|
+
*/
|
|
98
|
+
imageModel(modelId: string): never;
|
|
99
|
+
}
|
|
100
|
+
/**
|
|
101
|
+
* Provider-level settings for Goose.
|
|
102
|
+
*/
|
|
103
|
+
interface GooseProviderSettings extends GooseSettings {
|
|
104
|
+
}
|
|
105
|
+
/**
|
|
106
|
+
* Creates a Goose provider with the specified settings.
|
|
107
|
+
*
|
|
108
|
+
* @param settings Provider-level settings
|
|
109
|
+
* @returns Goose provider instance
|
|
110
|
+
*
|
|
111
|
+
* @example
|
|
112
|
+
* ```typescript
|
|
113
|
+
* import { createGoose } from 'ai-sdk-provider-goose';
|
|
114
|
+
*
|
|
115
|
+
* const provider = createGoose({
|
|
116
|
+
* binPath: '/path/to/goose',
|
|
117
|
+
* timeout: 60000,
|
|
118
|
+
* });
|
|
119
|
+
*
|
|
120
|
+
* const model = provider('goose');
|
|
121
|
+
* ```
|
|
122
|
+
*/
|
|
123
|
+
declare function createGoose(settings?: GooseProviderSettings): GooseProvider;
|
|
124
|
+
/**
|
|
125
|
+
* Default Goose provider instance.
|
|
126
|
+
*
|
|
127
|
+
* @example
|
|
128
|
+
* ```typescript
|
|
129
|
+
* import { goose } from 'ai-sdk-provider-goose';
|
|
130
|
+
* import { generateText } from 'ai';
|
|
131
|
+
*
|
|
132
|
+
* const result = await generateText({
|
|
133
|
+
* model: goose('goose'),
|
|
134
|
+
* prompt: 'Hello!',
|
|
135
|
+
* });
|
|
136
|
+
* ```
|
|
137
|
+
*/
|
|
138
|
+
declare const goose: GooseProvider;
|
|
139
|
+
|
|
140
|
+
/**
|
|
141
|
+
* Metadata attached to errors from the Goose CLI provider.
|
|
142
|
+
*/
|
|
143
|
+
interface GooseErrorMetadata {
|
|
144
|
+
binPath?: string;
|
|
145
|
+
args?: string[];
|
|
146
|
+
exitCode?: number;
|
|
147
|
+
stderr?: string;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Creates a general API call error.
|
|
151
|
+
*/
|
|
152
|
+
declare function createAPICallError(message: string, metadata?: GooseErrorMetadata): APICallError;
|
|
153
|
+
/**
|
|
154
|
+
* Creates a timeout error (retryable).
|
|
155
|
+
*/
|
|
156
|
+
declare function createTimeoutError(timeoutMs: number, metadata?: GooseErrorMetadata): APICallError;
|
|
157
|
+
/**
|
|
158
|
+
* Creates a process error for non-zero exit codes.
|
|
159
|
+
*/
|
|
160
|
+
declare function createProcessError(message: string, exitCode: number, stderr: string, metadata?: GooseErrorMetadata): APICallError;
|
|
161
|
+
|
|
162
|
+
export { type GooseErrorMetadata, GooseLanguageModel, type GooseLanguageModelOptions, type GooseModelId, type GooseProvider, type GooseProviderSettings, type GooseSettings, type Logger, createAPICallError, createGoose, createProcessError, createTimeoutError, goose };
|