@jixo/cli 0.9.0 β 0.10.1
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/dist/cli.d.ts.map +1 -1
- package/dist/cli.js +35 -3
- package/dist/cli.js.map +1 -1
- package/dist/commands/tasks/run-ai-task.d.ts.map +1 -1
- package/dist/commands/tasks/run-ai-task.js +70 -33
- package/dist/commands/tasks/run-ai-task.js.map +1 -1
- package/dist/commands/tasks/run.d.ts +2 -0
- package/dist/commands/tasks/run.d.ts.map +1 -1
- package/dist/commands/tasks/run.js +66 -35
- package/dist/commands/tasks/run.js.map +1 -1
- package/dist/config.d.ts +14 -14
- package/dist/helper/ai-retry-error.d.ts +1 -3
- package/dist/helper/ai-retry-error.d.ts.map +1 -1
- package/dist/helper/ai-retry-error.js +3 -3
- package/dist/helper/ai-retry-error.js.map +1 -1
- package/dist/helper/parse-progress.d.ts +2 -0
- package/dist/helper/parse-progress.d.ts.map +1 -0
- package/dist/helper/parse-progress.js +28 -0
- package/dist/helper/parse-progress.js.map +1 -0
- package/dist/helper/resolve-ai-tasks.d.ts +3 -0
- package/dist/helper/resolve-ai-tasks.d.ts.map +1 -1
- package/dist/helper/resolve-ai-tasks.js +9 -3
- package/dist/helper/resolve-ai-tasks.js.map +1 -1
- package/dist/prompts.json +1 -1
- package/package.json +2 -2
- package/dist/commands/run.d.ts +0 -5
- package/dist/commands/run.d.ts.map +0 -1
- package/dist/commands/run.js +0 -36
- package/dist/commands/run.js.map +0 -1
- package/dist/commands/tasks/run-ai.d.ts +0 -278
- package/dist/commands/tasks/run-ai.d.ts.map +0 -1
- package/dist/commands/tasks/run-ai.js +0 -179
- package/dist/commands/tasks/run-ai.js.map +0 -1
- package/dist/commands/upgrade.d.ts +0 -4
- package/dist/commands/upgrade.d.ts.map +0 -1
- package/dist/commands/upgrade.js +0 -17
- package/dist/commands/upgrade.js.map +0 -1
- package/dist/helper/prompts.d.ts +0 -3
- package/dist/helper/prompts.d.ts.map +0 -1
- package/dist/helper/prompts.js +0 -28
- package/dist/helper/prompts.js.map +0 -1
- package/dist/helper/run-ai.d.ts +0 -12
- package/dist/helper/run-ai.d.ts.map +0 -1
- package/dist/helper/run-ai.js +0 -179
- package/dist/helper/run-ai.js.map +0 -1
@@ -1,278 +0,0 @@
|
|
1
|
-
import { FileEntry } from "@gaubee/nodekit";
|
2
|
-
import { type ToolSet } from "ai";
|
3
|
-
import type { AiTask } from "../../helper/resolve-ai-tasks.js";
|
4
|
-
export declare const providers: {
|
5
|
-
readonly deepseek: import("@ai-sdk/deepseek").DeepSeekProvider;
|
6
|
-
readonly anthropic: import("@ai-sdk/anthropic").AnthropicProvider;
|
7
|
-
readonly google: import("@ai-sdk/google").GoogleGenerativeAIProvider;
|
8
|
-
readonly openai: import("@ai-sdk/openai").OpenAIProvider;
|
9
|
-
readonly xai: import("@ai-sdk/xai").XaiProvider;
|
10
|
-
readonly deepinfra: import("@ai-sdk/deepinfra").DeepInfraProvider;
|
11
|
-
};
|
12
|
-
export declare const tools: {
|
13
|
-
fileSystem: (cwd: string) => Promise<ToolSet>;
|
14
|
-
fetch: import("@gaubee/util").FuncRemember<() => Promise<{
|
15
|
-
[x: string]: import("ai").Tool<unknown, import("zod").objectOutputType<{
|
16
|
-
_meta: import("zod").ZodOptional<import("zod").ZodObject<{}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{}, import("zod").ZodTypeAny, "passthrough">>>;
|
17
|
-
} & {
|
18
|
-
content: import("zod").ZodArray<import("zod").ZodUnion<[import("zod").ZodObject<{
|
19
|
-
type: import("zod").ZodLiteral<"text">;
|
20
|
-
text: import("zod").ZodString;
|
21
|
-
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
22
|
-
type: import("zod").ZodLiteral<"text">;
|
23
|
-
text: import("zod").ZodString;
|
24
|
-
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
25
|
-
type: import("zod").ZodLiteral<"text">;
|
26
|
-
text: import("zod").ZodString;
|
27
|
-
}, import("zod").ZodTypeAny, "passthrough">>, import("zod").ZodObject<{
|
28
|
-
type: import("zod").ZodLiteral<"image">;
|
29
|
-
data: import("zod").ZodString;
|
30
|
-
mimeType: import("zod").ZodString;
|
31
|
-
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
32
|
-
type: import("zod").ZodLiteral<"image">;
|
33
|
-
data: import("zod").ZodString;
|
34
|
-
mimeType: import("zod").ZodString;
|
35
|
-
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
36
|
-
type: import("zod").ZodLiteral<"image">;
|
37
|
-
data: import("zod").ZodString;
|
38
|
-
mimeType: import("zod").ZodString;
|
39
|
-
}, import("zod").ZodTypeAny, "passthrough">>, import("zod").ZodObject<{
|
40
|
-
type: import("zod").ZodLiteral<"resource">;
|
41
|
-
resource: import("zod").ZodUnion<[import("zod").ZodObject<{
|
42
|
-
uri: import("zod").ZodString;
|
43
|
-
mimeType: import("zod").ZodOptional<import("zod").ZodString>;
|
44
|
-
} & {
|
45
|
-
text: import("zod").ZodString;
|
46
|
-
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
47
|
-
uri: import("zod").ZodString;
|
48
|
-
mimeType: import("zod").ZodOptional<import("zod").ZodString>;
|
49
|
-
} & {
|
50
|
-
text: import("zod").ZodString;
|
51
|
-
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
52
|
-
uri: import("zod").ZodString;
|
53
|
-
mimeType: import("zod").ZodOptional<import("zod").ZodString>;
|
54
|
-
} & {
|
55
|
-
text: import("zod").ZodString;
|
56
|
-
}, import("zod").ZodTypeAny, "passthrough">>, import("zod").ZodObject<{
|
57
|
-
uri: import("zod").ZodString;
|
58
|
-
mimeType: import("zod").ZodOptional<import("zod").ZodString>;
|
59
|
-
} & {
|
60
|
-
blob: import("zod").ZodString;
|
61
|
-
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
62
|
-
uri: import("zod").ZodString;
|
63
|
-
mimeType: import("zod").ZodOptional<import("zod").ZodString>;
|
64
|
-
} & {
|
65
|
-
blob: import("zod").ZodString;
|
66
|
-
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
67
|
-
uri: import("zod").ZodString;
|
68
|
-
mimeType: import("zod").ZodOptional<import("zod").ZodString>;
|
69
|
-
} & {
|
70
|
-
blob: import("zod").ZodString;
|
71
|
-
}, import("zod").ZodTypeAny, "passthrough">>]>;
|
72
|
-
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
73
|
-
type: import("zod").ZodLiteral<"resource">;
|
74
|
-
resource: import("zod").ZodUnion<[import("zod").ZodObject<{
|
75
|
-
uri: import("zod").ZodString;
|
76
|
-
mimeType: import("zod").ZodOptional<import("zod").ZodString>;
|
77
|
-
} & {
|
78
|
-
text: import("zod").ZodString;
|
79
|
-
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
80
|
-
uri: import("zod").ZodString;
|
81
|
-
mimeType: import("zod").ZodOptional<import("zod").ZodString>;
|
82
|
-
} & {
|
83
|
-
text: import("zod").ZodString;
|
84
|
-
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
85
|
-
uri: import("zod").ZodString;
|
86
|
-
mimeType: import("zod").ZodOptional<import("zod").ZodString>;
|
87
|
-
} & {
|
88
|
-
text: import("zod").ZodString;
|
89
|
-
}, import("zod").ZodTypeAny, "passthrough">>, import("zod").ZodObject<{
|
90
|
-
uri: import("zod").ZodString;
|
91
|
-
mimeType: import("zod").ZodOptional<import("zod").ZodString>;
|
92
|
-
} & {
|
93
|
-
blob: import("zod").ZodString;
|
94
|
-
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
95
|
-
uri: import("zod").ZodString;
|
96
|
-
mimeType: import("zod").ZodOptional<import("zod").ZodString>;
|
97
|
-
} & {
|
98
|
-
blob: import("zod").ZodString;
|
99
|
-
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
100
|
-
uri: import("zod").ZodString;
|
101
|
-
mimeType: import("zod").ZodOptional<import("zod").ZodString>;
|
102
|
-
} & {
|
103
|
-
blob: import("zod").ZodString;
|
104
|
-
}, import("zod").ZodTypeAny, "passthrough">>]>;
|
105
|
-
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
106
|
-
type: import("zod").ZodLiteral<"resource">;
|
107
|
-
resource: import("zod").ZodUnion<[import("zod").ZodObject<{
|
108
|
-
uri: import("zod").ZodString;
|
109
|
-
mimeType: import("zod").ZodOptional<import("zod").ZodString>;
|
110
|
-
} & {
|
111
|
-
text: import("zod").ZodString;
|
112
|
-
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
113
|
-
uri: import("zod").ZodString;
|
114
|
-
mimeType: import("zod").ZodOptional<import("zod").ZodString>;
|
115
|
-
} & {
|
116
|
-
text: import("zod").ZodString;
|
117
|
-
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
118
|
-
uri: import("zod").ZodString;
|
119
|
-
mimeType: import("zod").ZodOptional<import("zod").ZodString>;
|
120
|
-
} & {
|
121
|
-
text: import("zod").ZodString;
|
122
|
-
}, import("zod").ZodTypeAny, "passthrough">>, import("zod").ZodObject<{
|
123
|
-
uri: import("zod").ZodString;
|
124
|
-
mimeType: import("zod").ZodOptional<import("zod").ZodString>;
|
125
|
-
} & {
|
126
|
-
blob: import("zod").ZodString;
|
127
|
-
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
128
|
-
uri: import("zod").ZodString;
|
129
|
-
mimeType: import("zod").ZodOptional<import("zod").ZodString>;
|
130
|
-
} & {
|
131
|
-
blob: import("zod").ZodString;
|
132
|
-
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
133
|
-
uri: import("zod").ZodString;
|
134
|
-
mimeType: import("zod").ZodOptional<import("zod").ZodString>;
|
135
|
-
} & {
|
136
|
-
blob: import("zod").ZodString;
|
137
|
-
}, import("zod").ZodTypeAny, "passthrough">>]>;
|
138
|
-
}, import("zod").ZodTypeAny, "passthrough">>]>, "many">;
|
139
|
-
isError: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodBoolean>>;
|
140
|
-
}, import("zod").ZodTypeAny, "passthrough"> | import("zod").objectOutputType<{
|
141
|
-
_meta: import("zod").ZodOptional<import("zod").ZodObject<{}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{}, import("zod").ZodTypeAny, "passthrough">>>;
|
142
|
-
} & {
|
143
|
-
toolResult: import("zod").ZodUnknown;
|
144
|
-
}, import("zod").ZodTypeAny, "passthrough">> & Required<Pick<import("ai").Tool<unknown, import("zod").objectOutputType<{
|
145
|
-
_meta: import("zod").ZodOptional<import("zod").ZodObject<{}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{}, import("zod").ZodTypeAny, "passthrough">>>;
|
146
|
-
} & {
|
147
|
-
content: import("zod").ZodArray<import("zod").ZodUnion<[import("zod").ZodObject<{
|
148
|
-
type: import("zod").ZodLiteral<"text">;
|
149
|
-
text: import("zod").ZodString;
|
150
|
-
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
151
|
-
type: import("zod").ZodLiteral<"text">;
|
152
|
-
text: import("zod").ZodString;
|
153
|
-
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
154
|
-
type: import("zod").ZodLiteral<"text">;
|
155
|
-
text: import("zod").ZodString;
|
156
|
-
}, import("zod").ZodTypeAny, "passthrough">>, import("zod").ZodObject<{
|
157
|
-
type: import("zod").ZodLiteral<"image">;
|
158
|
-
data: import("zod").ZodString;
|
159
|
-
mimeType: import("zod").ZodString;
|
160
|
-
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
161
|
-
type: import("zod").ZodLiteral<"image">;
|
162
|
-
data: import("zod").ZodString;
|
163
|
-
mimeType: import("zod").ZodString;
|
164
|
-
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
165
|
-
type: import("zod").ZodLiteral<"image">;
|
166
|
-
data: import("zod").ZodString;
|
167
|
-
mimeType: import("zod").ZodString;
|
168
|
-
}, import("zod").ZodTypeAny, "passthrough">>, import("zod").ZodObject<{
|
169
|
-
type: import("zod").ZodLiteral<"resource">;
|
170
|
-
resource: import("zod").ZodUnion<[import("zod").ZodObject<{
|
171
|
-
uri: import("zod").ZodString;
|
172
|
-
mimeType: import("zod").ZodOptional<import("zod").ZodString>;
|
173
|
-
} & {
|
174
|
-
text: import("zod").ZodString;
|
175
|
-
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
176
|
-
uri: import("zod").ZodString;
|
177
|
-
mimeType: import("zod").ZodOptional<import("zod").ZodString>;
|
178
|
-
} & {
|
179
|
-
text: import("zod").ZodString;
|
180
|
-
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
181
|
-
uri: import("zod").ZodString;
|
182
|
-
mimeType: import("zod").ZodOptional<import("zod").ZodString>;
|
183
|
-
} & {
|
184
|
-
text: import("zod").ZodString;
|
185
|
-
}, import("zod").ZodTypeAny, "passthrough">>, import("zod").ZodObject<{
|
186
|
-
uri: import("zod").ZodString;
|
187
|
-
mimeType: import("zod").ZodOptional<import("zod").ZodString>;
|
188
|
-
} & {
|
189
|
-
blob: import("zod").ZodString;
|
190
|
-
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
191
|
-
uri: import("zod").ZodString;
|
192
|
-
mimeType: import("zod").ZodOptional<import("zod").ZodString>;
|
193
|
-
} & {
|
194
|
-
blob: import("zod").ZodString;
|
195
|
-
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
196
|
-
uri: import("zod").ZodString;
|
197
|
-
mimeType: import("zod").ZodOptional<import("zod").ZodString>;
|
198
|
-
} & {
|
199
|
-
blob: import("zod").ZodString;
|
200
|
-
}, import("zod").ZodTypeAny, "passthrough">>]>;
|
201
|
-
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
202
|
-
type: import("zod").ZodLiteral<"resource">;
|
203
|
-
resource: import("zod").ZodUnion<[import("zod").ZodObject<{
|
204
|
-
uri: import("zod").ZodString;
|
205
|
-
mimeType: import("zod").ZodOptional<import("zod").ZodString>;
|
206
|
-
} & {
|
207
|
-
text: import("zod").ZodString;
|
208
|
-
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
209
|
-
uri: import("zod").ZodString;
|
210
|
-
mimeType: import("zod").ZodOptional<import("zod").ZodString>;
|
211
|
-
} & {
|
212
|
-
text: import("zod").ZodString;
|
213
|
-
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
214
|
-
uri: import("zod").ZodString;
|
215
|
-
mimeType: import("zod").ZodOptional<import("zod").ZodString>;
|
216
|
-
} & {
|
217
|
-
text: import("zod").ZodString;
|
218
|
-
}, import("zod").ZodTypeAny, "passthrough">>, import("zod").ZodObject<{
|
219
|
-
uri: import("zod").ZodString;
|
220
|
-
mimeType: import("zod").ZodOptional<import("zod").ZodString>;
|
221
|
-
} & {
|
222
|
-
blob: import("zod").ZodString;
|
223
|
-
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
224
|
-
uri: import("zod").ZodString;
|
225
|
-
mimeType: import("zod").ZodOptional<import("zod").ZodString>;
|
226
|
-
} & {
|
227
|
-
blob: import("zod").ZodString;
|
228
|
-
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
229
|
-
uri: import("zod").ZodString;
|
230
|
-
mimeType: import("zod").ZodOptional<import("zod").ZodString>;
|
231
|
-
} & {
|
232
|
-
blob: import("zod").ZodString;
|
233
|
-
}, import("zod").ZodTypeAny, "passthrough">>]>;
|
234
|
-
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
235
|
-
type: import("zod").ZodLiteral<"resource">;
|
236
|
-
resource: import("zod").ZodUnion<[import("zod").ZodObject<{
|
237
|
-
uri: import("zod").ZodString;
|
238
|
-
mimeType: import("zod").ZodOptional<import("zod").ZodString>;
|
239
|
-
} & {
|
240
|
-
text: import("zod").ZodString;
|
241
|
-
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
242
|
-
uri: import("zod").ZodString;
|
243
|
-
mimeType: import("zod").ZodOptional<import("zod").ZodString>;
|
244
|
-
} & {
|
245
|
-
text: import("zod").ZodString;
|
246
|
-
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
247
|
-
uri: import("zod").ZodString;
|
248
|
-
mimeType: import("zod").ZodOptional<import("zod").ZodString>;
|
249
|
-
} & {
|
250
|
-
text: import("zod").ZodString;
|
251
|
-
}, import("zod").ZodTypeAny, "passthrough">>, import("zod").ZodObject<{
|
252
|
-
uri: import("zod").ZodString;
|
253
|
-
mimeType: import("zod").ZodOptional<import("zod").ZodString>;
|
254
|
-
} & {
|
255
|
-
blob: import("zod").ZodString;
|
256
|
-
}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{
|
257
|
-
uri: import("zod").ZodString;
|
258
|
-
mimeType: import("zod").ZodOptional<import("zod").ZodString>;
|
259
|
-
} & {
|
260
|
-
blob: import("zod").ZodString;
|
261
|
-
}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{
|
262
|
-
uri: import("zod").ZodString;
|
263
|
-
mimeType: import("zod").ZodOptional<import("zod").ZodString>;
|
264
|
-
} & {
|
265
|
-
blob: import("zod").ZodString;
|
266
|
-
}, import("zod").ZodTypeAny, "passthrough">>]>;
|
267
|
-
}, import("zod").ZodTypeAny, "passthrough">>]>, "many">;
|
268
|
-
isError: import("zod").ZodOptional<import("zod").ZodDefault<import("zod").ZodBoolean>>;
|
269
|
-
}, import("zod").ZodTypeAny, "passthrough"> | import("zod").objectOutputType<{
|
270
|
-
_meta: import("zod").ZodOptional<import("zod").ZodObject<{}, "passthrough", import("zod").ZodTypeAny, import("zod").objectOutputType<{}, import("zod").ZodTypeAny, "passthrough">, import("zod").objectInputType<{}, import("zod").ZodTypeAny, "passthrough">>>;
|
271
|
-
} & {
|
272
|
-
toolResult: import("zod").ZodUnknown;
|
273
|
-
}, import("zod").ZodTypeAny, "passthrough">>, "execute">>;
|
274
|
-
}>, void | ((this: unknown) => any)>;
|
275
|
-
git: (repo: string) => Promise<ToolSet>;
|
276
|
-
};
|
277
|
-
export declare const runAiTask: (ai_task: AiTask, allFiles: FileEntry[], changedFiles: FileEntry[]) => Promise<void>;
|
278
|
-
//# sourceMappingURL=run-ai.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"run-ai.d.ts","sourceRoot":"","sources":["../../../src/commands/tasks/run-ai.ts"],"names":[],"mappings":"AAMA,OAAO,EAAO,SAAS,EAAuB,MAAM,iBAAiB,CAAC;AAEtE,OAAO,EAAiF,KAAK,OAAO,EAAC,MAAM,IAAI,CAAC;AAKhH,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,kCAAkC,CAAC;AAG7D,eAAO,MAAM,SAAS;;;;;;;CA2CpB,CAAC;AA2BH,eAAO,MAAM,KAAK;sBAGD,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBA0BL,MAAM;CAavB,CAAC;AACF,eAAO,MAAM,SAAS,GAAU,SAAS,MAAM,EAAE,UAAU,SAAS,EAAE,EAAE,cAAc,SAAS,EAAE,kBAyDhG,CAAC"}
|
@@ -1,179 +0,0 @@
|
|
1
|
-
import { createAnthropic } from "@ai-sdk/anthropic";
|
2
|
-
import { createDeepInfra } from "@ai-sdk/deepinfra";
|
3
|
-
import { createDeepSeek } from "@ai-sdk/deepseek";
|
4
|
-
import { createGoogleGenerativeAI } from "@ai-sdk/google";
|
5
|
-
import { createOpenAI } from "@ai-sdk/openai";
|
6
|
-
import { createXai } from "@ai-sdk/xai";
|
7
|
-
import { cyan, FileEntry, gray, green, spinner } from "@gaubee/nodekit";
|
8
|
-
import { func_lazy, func_remember, map_get_or_put_async, obj_lazify } from "@gaubee/util";
|
9
|
-
import { experimental_createMCPClient as createMCPClient, streamText } from "ai";
|
10
|
-
import { Experimental_StdioMCPTransport } from "ai/mcp-stdio";
|
11
|
-
import { match, P } from "ts-pattern";
|
12
|
-
import { safeEnv } from "../../env.js";
|
13
|
-
import { getModelMessage, getPromptConfigs } from "../../helper/prompts-loader.js";
|
14
|
-
// const wrapper = (provider:)
|
15
|
-
export const providers = obj_lazify({
|
16
|
-
get deepseek() {
|
17
|
-
return createDeepSeek({
|
18
|
-
baseURL: safeEnv.JIXO_DEEPSEEK_BASE_URL || undefined,
|
19
|
-
apiKey: safeEnv.JIXO_DEEPSEEK_API_KEY,
|
20
|
-
});
|
21
|
-
},
|
22
|
-
get anthropic() {
|
23
|
-
// const bashTool = anthropic.tools.bash_20250124({
|
24
|
-
// execute: async ({command, restart}) => execSync(command).toString(),
|
25
|
-
// });
|
26
|
-
const provider = createAnthropic({
|
27
|
-
baseURL: safeEnv.JIXO_ANTHROPIC_BASE_URL || undefined,
|
28
|
-
apiKey: safeEnv.JIXO_ANTHROPIC_API_KEY,
|
29
|
-
});
|
30
|
-
return provider;
|
31
|
-
},
|
32
|
-
get google() {
|
33
|
-
return createGoogleGenerativeAI({
|
34
|
-
baseURL: safeEnv.JIXO_GOOGLE_BASE_URL || undefined,
|
35
|
-
apiKey: safeEnv.JIXO_GOOGLE_API_KEY,
|
36
|
-
});
|
37
|
-
},
|
38
|
-
get openai() {
|
39
|
-
return createOpenAI({
|
40
|
-
baseURL: safeEnv.JIXO_OPENAI_BASE_URL || undefined,
|
41
|
-
apiKey: safeEnv.JIXO_OPENAI_API_KEY,
|
42
|
-
organization: safeEnv.JIXO_OPENAI_ORGANIZATION || undefined,
|
43
|
-
});
|
44
|
-
},
|
45
|
-
get xai() {
|
46
|
-
return createXai({
|
47
|
-
baseURL: safeEnv.JIXO_XAI_BASE_URL || undefined,
|
48
|
-
apiKey: safeEnv.JIXO_XAI_API_KEY,
|
49
|
-
});
|
50
|
-
},
|
51
|
-
get deepinfra() {
|
52
|
-
return createDeepInfra({
|
53
|
-
baseURL: safeEnv.JIXO_DEEPINFRA_BASE_URL || undefined,
|
54
|
-
apiKey: safeEnv.JIXO_DEEPINFRA_API_KEY,
|
55
|
-
});
|
56
|
-
},
|
57
|
-
});
|
58
|
-
const getModel = (model) => {
|
59
|
-
return match(model)
|
60
|
-
.with(P.string.startsWith("deepseek-"), (model) => providers.deepseek(model))
|
61
|
-
.otherwise(() => {
|
62
|
-
if (safeEnv.JIXO_DEEPSEEK_API_KEY) {
|
63
|
-
return providers.deepseek("deepseek-chat");
|
64
|
-
}
|
65
|
-
if (safeEnv.JIXO_GOOGLE_API_KEY) {
|
66
|
-
return providers.google("gemini-2.5-pro-preview-05-06");
|
67
|
-
}
|
68
|
-
if (safeEnv.JIXO_OPENAI_API_KEY) {
|
69
|
-
return providers.openai("o3-mini");
|
70
|
-
}
|
71
|
-
if (safeEnv.JIXO_ANTHROPIC_API_KEY) {
|
72
|
-
return providers.anthropic("claude-4-sonnet-20250514");
|
73
|
-
}
|
74
|
-
if (safeEnv.JIXO_XAI_API_KEY) {
|
75
|
-
return providers.xai("grok-3-beta");
|
76
|
-
}
|
77
|
-
if (safeEnv.JIXO_DEEPINFRA_API_KEY) {
|
78
|
-
return providers.deepinfra("meta-llama/Meta-Llama-3.1-405B-Instruct");
|
79
|
-
}
|
80
|
-
return providers.deepseek("deepseek-reasoner");
|
81
|
-
});
|
82
|
-
};
|
83
|
-
export const tools = {
|
84
|
-
fileSystem: func_lazy(() => {
|
85
|
-
const map = new Map();
|
86
|
-
return (cwd) => {
|
87
|
-
return map_get_or_put_async(map, cwd, async () => {
|
88
|
-
const mcpClient = await createMCPClient({
|
89
|
-
transport: new Experimental_StdioMCPTransport({
|
90
|
-
command: "pnpx",
|
91
|
-
args: ["@modelcontextprotocol/server-filesystem", cwd],
|
92
|
-
}),
|
93
|
-
});
|
94
|
-
const tools = await mcpClient.tools();
|
95
|
-
return tools;
|
96
|
-
});
|
97
|
-
};
|
98
|
-
}),
|
99
|
-
fetch: func_remember(async () => {
|
100
|
-
const mcpClient = await createMCPClient({
|
101
|
-
transport: new Experimental_StdioMCPTransport({
|
102
|
-
command: "uvx",
|
103
|
-
args: ["mcp-server-fetch"],
|
104
|
-
}),
|
105
|
-
});
|
106
|
-
const tools = await mcpClient.tools();
|
107
|
-
return tools;
|
108
|
-
}),
|
109
|
-
git: func_lazy(() => {
|
110
|
-
const map = new Map();
|
111
|
-
return (repo) => {
|
112
|
-
return map_get_or_put_async(map, repo, async () => {
|
113
|
-
const mcpClient = await createMCPClient({
|
114
|
-
transport: new Experimental_StdioMCPTransport({
|
115
|
-
command: "uvx",
|
116
|
-
args: ["mcp-server-git", "--repository", repo],
|
117
|
-
}),
|
118
|
-
});
|
119
|
-
const tools = await mcpClient.tools();
|
120
|
-
return tools;
|
121
|
-
});
|
122
|
-
};
|
123
|
-
}),
|
124
|
-
};
|
125
|
-
export const runAiTask = async (ai_task, allFiles, changedFiles) => {
|
126
|
-
const model = getModel(ai_task.model);
|
127
|
-
const modelMessage = getModelMessage(ai_task.agents);
|
128
|
-
modelMessage.push(
|
129
|
-
//
|
130
|
-
{
|
131
|
-
role: "system",
|
132
|
-
content: getPromptConfigs()
|
133
|
-
.base.content //
|
134
|
-
.replaceAll("{{task.name}}", ai_task.name)
|
135
|
-
.replaceAll("{{task.memory}}", ai_task.memory)
|
136
|
-
.replaceAll("{{task.content}}", ai_task.content)
|
137
|
-
.replaceAll("{{allFiles}}", allFiles.map((file) => `- ${file.path}`).join("\n"))
|
138
|
-
.replaceAll("{{changedFiles}}", changedFiles.map((file) => `- ${file.path}`).join("\n")),
|
139
|
-
});
|
140
|
-
// console.log("QAQ modelMessage", modelMessage);
|
141
|
-
// return;
|
142
|
-
const result = streamText({
|
143
|
-
model: model,
|
144
|
-
prompt: modelMessage,
|
145
|
-
tools: {
|
146
|
-
...(await tools.fileSystem(ai_task.cwd)),
|
147
|
-
// ...(await tools.fetch()),
|
148
|
-
// ...(await tools.git(ai_task.cwd)),
|
149
|
-
},
|
150
|
-
onChunk: ({ chunk }) => {
|
151
|
-
if (chunk.type === "reasoning") {
|
152
|
-
if (reasoning === "") {
|
153
|
-
loading.prefixText = "π€ ";
|
154
|
-
loading.text = "";
|
155
|
-
}
|
156
|
-
reasoning += chunk.text;
|
157
|
-
loading.text = gray(reasoning.split("\n").slice(-3).join("\n"));
|
158
|
-
}
|
159
|
-
},
|
160
|
-
});
|
161
|
-
const loading = spinner.default(`Connecting To ${model.provider}...`);
|
162
|
-
loading.prefixText = "β³ ";
|
163
|
-
loading.start();
|
164
|
-
let reasoning = "";
|
165
|
-
let fulltext = "";
|
166
|
-
for await (const text of result.textStream) {
|
167
|
-
if (fulltext === "") {
|
168
|
-
loading.prefixText = "π€ ";
|
169
|
-
loading.text = "";
|
170
|
-
}
|
171
|
-
fulltext += text;
|
172
|
-
loading.text = fulltext;
|
173
|
-
}
|
174
|
-
loading.stopAndPersist({
|
175
|
-
suffixText: green(`\nβ
${cyan(`[${ai_task.name}]`)} Completed\n`),
|
176
|
-
});
|
177
|
-
console.log("QAQ done", result.text);
|
178
|
-
};
|
179
|
-
//# sourceMappingURL=run-ai.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"run-ai.js","sourceRoot":"","sources":["../../../src/commands/tasks/run-ai.ts"],"names":[],"mappings":"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","sourcesContent":["import {createAnthropic} from \"@ai-sdk/anthropic\";\nimport {createDeepInfra} from \"@ai-sdk/deepinfra\";\nimport {createDeepSeek} from \"@ai-sdk/deepseek\";\nimport {createGoogleGenerativeAI} from \"@ai-sdk/google\";\nimport {createOpenAI} from \"@ai-sdk/openai\";\nimport {createXai} from \"@ai-sdk/xai\";\nimport {cyan, FileEntry, gray, green, spinner} from \"@gaubee/nodekit\";\nimport {func_lazy, func_remember, map_get_or_put_async, obj_lazify} from \"@gaubee/util\";\nimport {experimental_createMCPClient as createMCPClient, streamText, type ModelMessage, type ToolSet} from \"ai\";\nimport {Experimental_StdioMCPTransport} from \"ai/mcp-stdio\";\nimport {match, P} from \"ts-pattern\";\nimport {safeEnv} from \"../../env.js\";\nimport {getModelMessage, getPromptConfigs} from \"../../helper/prompts-loader.js\";\nimport type {AiTask} from \"../../helper/resolve-ai-tasks.js\";\n\n// const wrapper = (provider:)\nexport const providers = obj_lazify({\n get deepseek() {\n return createDeepSeek({\n baseURL: safeEnv.JIXO_DEEPSEEK_BASE_URL || undefined,\n apiKey: safeEnv.JIXO_DEEPSEEK_API_KEY,\n });\n },\n get anthropic() {\n // const bashTool = anthropic.tools.bash_20250124({\n // execute: async ({command, restart}) => execSync(command).toString(),\n // });\n\n const provider = createAnthropic({\n baseURL: safeEnv.JIXO_ANTHROPIC_BASE_URL || undefined,\n apiKey: safeEnv.JIXO_ANTHROPIC_API_KEY,\n });\n return provider;\n },\n get google() {\n return createGoogleGenerativeAI({\n baseURL: safeEnv.JIXO_GOOGLE_BASE_URL || undefined,\n apiKey: safeEnv.JIXO_GOOGLE_API_KEY,\n });\n },\n get openai() {\n return createOpenAI({\n baseURL: safeEnv.JIXO_OPENAI_BASE_URL || undefined,\n apiKey: safeEnv.JIXO_OPENAI_API_KEY,\n organization: safeEnv.JIXO_OPENAI_ORGANIZATION || undefined,\n });\n },\n get xai() {\n return createXai({\n baseURL: safeEnv.JIXO_XAI_BASE_URL || undefined,\n apiKey: safeEnv.JIXO_XAI_API_KEY,\n });\n },\n get deepinfra() {\n return createDeepInfra({\n baseURL: safeEnv.JIXO_DEEPINFRA_BASE_URL || undefined,\n apiKey: safeEnv.JIXO_DEEPINFRA_API_KEY,\n });\n },\n});\nconst getModel = (model?: string) => {\n return match(model)\n .with(P.string.startsWith(\"deepseek-\"), (model) => providers.deepseek(model))\n .otherwise(() => {\n if (safeEnv.JIXO_DEEPSEEK_API_KEY) {\n return providers.deepseek(\"deepseek-chat\");\n }\n if (safeEnv.JIXO_GOOGLE_API_KEY) {\n return providers.google(\"gemini-2.5-pro-preview-05-06\");\n }\n if (safeEnv.JIXO_OPENAI_API_KEY) {\n return providers.openai(\"o3-mini\");\n }\n if (safeEnv.JIXO_ANTHROPIC_API_KEY) {\n return providers.anthropic(\"claude-4-sonnet-20250514\");\n }\n if (safeEnv.JIXO_XAI_API_KEY) {\n return providers.xai(\"grok-3-beta\");\n }\n if (safeEnv.JIXO_DEEPINFRA_API_KEY) {\n return providers.deepinfra(\"meta-llama/Meta-Llama-3.1-405B-Instruct\");\n }\n return providers.deepseek(\"deepseek-reasoner\");\n });\n};\n\nexport const tools = {\n fileSystem: func_lazy(() => {\n const map = new Map<string, ToolSet>();\n return (cwd: string) => {\n return map_get_or_put_async(map, cwd, async () => {\n const mcpClient = await createMCPClient({\n transport: new Experimental_StdioMCPTransport({\n command: \"pnpx\",\n args: [\"@modelcontextprotocol/server-filesystem\", cwd],\n }),\n });\n const tools = await mcpClient.tools();\n return tools;\n });\n };\n }),\n fetch: func_remember(async () => {\n const mcpClient = await createMCPClient({\n transport: new Experimental_StdioMCPTransport({\n command: \"uvx\",\n args: [\"mcp-server-fetch\"],\n }),\n });\n const tools = await mcpClient.tools();\n return tools;\n }),\n git: func_lazy(() => {\n const map = new Map<string, ToolSet>();\n\n return (repo: string) => {\n return map_get_or_put_async(map, repo, async () => {\n const mcpClient = await createMCPClient({\n transport: new Experimental_StdioMCPTransport({\n command: \"uvx\",\n args: [\"mcp-server-git\", \"--repository\", repo],\n }),\n });\n const tools = await mcpClient.tools();\n return tools;\n });\n };\n }),\n};\nexport const runAiTask = async (ai_task: AiTask, allFiles: FileEntry[], changedFiles: FileEntry[]) => {\n const model = getModel(ai_task.model);\n\n const modelMessage: ModelMessage[] = getModelMessage(ai_task.agents);\n modelMessage.push(\n //\n {\n role: \"system\",\n content: getPromptConfigs()\n .base.content //\n .replaceAll(\"{{task.name}}\", ai_task.name)\n .replaceAll(\"{{task.memory}}\", ai_task.memory)\n .replaceAll(\"{{task.content}}\", ai_task.content)\n .replaceAll(\"{{allFiles}}\", allFiles.map((file) => `- ${file.path}`).join(\"\\n\"))\n .replaceAll(\"{{changedFiles}}\", changedFiles.map((file) => `- ${file.path}`).join(\"\\n\")),\n },\n );\n // console.log(\"QAQ modelMessage\", modelMessage);\n // return;\n const result = streamText({\n model: model,\n prompt: modelMessage,\n tools: {\n ...(await tools.fileSystem(ai_task.cwd)),\n // ...(await tools.fetch()),\n // ...(await tools.git(ai_task.cwd)),\n },\n onChunk: ({chunk}) => {\n if (chunk.type === \"reasoning\") {\n if (reasoning === \"\") {\n loading.prefixText = \"π€ \";\n loading.text = \"\";\n }\n reasoning += chunk.text;\n loading.text = gray(reasoning.split(\"\\n\").slice(-3).join(\"\\n\"));\n }\n },\n });\n const loading = spinner.default(`Connecting To ${model.provider}...`);\n loading.prefixText = \"β³ \";\n loading.start();\n let reasoning = \"\";\n let fulltext = \"\";\n for await (const text of result.textStream) {\n if (fulltext === \"\") {\n loading.prefixText = \"π€ \";\n loading.text = \"\";\n }\n fulltext += text;\n loading.text = fulltext;\n }\n\n loading.stopAndPersist({\n suffixText: green(`\\nβ
${cyan(`[${ai_task.name}]`)} Completed\\n`),\n });\n\n console.log(\"QAQ done\", result.text);\n};\n"]}
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"upgrade.d.ts","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"AAEA,eAAO,MAAM,OAAO,GAAU,KAAK,MAAM,EAAE,SAAS;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAC,kBAavE,CAAC"}
|
package/dist/commands/upgrade.js
DELETED
@@ -1,17 +0,0 @@
|
|
1
|
-
import { spinner, writeJson } from "@gaubee/nodekit";
|
2
|
-
export const upgrade = async (dir, options) => {
|
3
|
-
// TODO δΈθ½½ζζ°ηζη€Ίθ―ιε
|
4
|
-
const mirrorUrl = options.mirrorUrl || "https://jixo.ai/jixo-prompts.json";
|
5
|
-
const loading = spinner.default("Upgrading prompts");
|
6
|
-
loading.start("Downloading...");
|
7
|
-
// await delay(1000);
|
8
|
-
try {
|
9
|
-
const prompts = await fetch(mirrorUrl).then((res) => res.json());
|
10
|
-
loading.stopAndPersist({ symbol: "β
", text: "Download completed" });
|
11
|
-
writeJson(import.meta.resolve("jixo-prompts.json"), prompts);
|
12
|
-
}
|
13
|
-
catch (e) {
|
14
|
-
loading.stopAndPersist({ symbol: "β", text: "Download failed" });
|
15
|
-
}
|
16
|
-
};
|
17
|
-
//# sourceMappingURL=upgrade.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"upgrade.js","sourceRoot":"","sources":["../../src/commands/upgrade.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,OAAO,EAAE,SAAS,EAAC,MAAM,iBAAiB,CAAC;AAEnD,MAAM,CAAC,MAAM,OAAO,GAAG,KAAK,EAAE,GAAW,EAAE,OAA6B,EAAE,EAAE;IAC1E,kBAAkB;IAClB,MAAM,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,mCAAmC,CAAC;IAC3E,MAAM,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,mBAAmB,CAAC,CAAC;IACrD,OAAO,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAChC,uBAAuB;IACvB,IAAI,CAAC;QACH,MAAM,OAAO,GAAG,MAAM,KAAK,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC,CAAC;QACjE,OAAO,CAAC,cAAc,CAAC,EAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,oBAAoB,EAAC,CAAC,CAAC;QAClE,SAAS,CAAC,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,mBAAmB,CAAC,EAAE,OAAO,CAAC,CAAC;IAC/D,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,OAAO,CAAC,cAAc,CAAC,EAAC,MAAM,EAAE,GAAG,EAAE,IAAI,EAAE,iBAAiB,EAAC,CAAC,CAAC;IACjE,CAAC;AACH,CAAC,CAAC","sourcesContent":["import {spinner, writeJson} from \"@gaubee/nodekit\";\n\nexport const upgrade = async (dir: string, options: {mirrorUrl?: string}) => {\n // TODO δΈθ½½ζζ°ηζη€Ίθ―ιε\n const mirrorUrl = options.mirrorUrl || \"https://jixo.ai/jixo-prompts.json\";\n const loading = spinner.default(\"Upgrading prompts\");\n loading.start(\"Downloading...\");\n // await delay(1000);\n try {\n const prompts = await fetch(mirrorUrl).then((res) => res.json());\n loading.stopAndPersist({symbol: \"β
\", text: \"Download completed\"});\n writeJson(import.meta.resolve(\"jixo-prompts.json\"), prompts);\n } catch (e) {\n loading.stopAndPersist({symbol: \"β\", text: \"Download failed\"});\n }\n};\n"]}
|
package/dist/helper/prompts.d.ts
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"prompts.d.ts","sourceRoot":"","sources":["../../src/helper/prompts.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAC,YAAY,EAAC,MAAM,IAAI,CAAC;AAerC,eAAO,MAAM,eAAe,GAAI,QAAQ,MAAM,EAAE,mBAc/C,CAAC"}
|
package/dist/helper/prompts.js
DELETED
@@ -1,28 +0,0 @@
|
|
1
|
-
import { createResolverByRootFile } from "@gaubee/node";
|
2
|
-
import { readJson } from "@gaubee/nodekit";
|
3
|
-
import { func_remember } from "@gaubee/util";
|
4
|
-
import fs from "node:fs";
|
5
|
-
import defaultPrompts from "../prompts.json" with { type: "json" };
|
6
|
-
const rootResolver = createResolverByRootFile(import.meta.url);
|
7
|
-
const getPromptConfigs = func_remember(() => {
|
8
|
-
const download_prompts_json_filepath = rootResolver("prompts.json");
|
9
|
-
if (fs.existsSync(download_prompts_json_filepath)) {
|
10
|
-
return readJson(download_prompts_json_filepath);
|
11
|
-
}
|
12
|
-
return defaultPrompts;
|
13
|
-
});
|
14
|
-
export const getModelMessage = (agents) => {
|
15
|
-
const promptConfigs = getPromptConfigs();
|
16
|
-
const modelMessage = [];
|
17
|
-
const names = agents.slice();
|
18
|
-
for (const name of names) {
|
19
|
-
const promptConfig = name in promptConfigs ? Reflect.get(promptConfigs, name) : null;
|
20
|
-
if (!promptConfig) {
|
21
|
-
continue;
|
22
|
-
}
|
23
|
-
modelMessage.unshift({ role: "system", content: promptConfig.content });
|
24
|
-
names.push(...promptConfig.data.parent);
|
25
|
-
}
|
26
|
-
return modelMessage;
|
27
|
-
};
|
28
|
-
//# sourceMappingURL=prompts.js.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"prompts.js","sourceRoot":"","sources":["../../src/helper/prompts.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,wBAAwB,EAAC,MAAM,cAAc,CAAC;AACtD,OAAO,EAAC,QAAQ,EAAC,MAAM,iBAAiB,CAAC;AACzC,OAAO,EAAC,aAAa,EAAC,MAAM,cAAc,CAAC;AAE3C,OAAO,EAAE,MAAM,SAAS,CAAC;AACzB,OAAO,cAAc,MAAM,iBAAiB,CAAC,OAAM,IAAI,EAAE,MAAM,EAAC,CAAC;AACjE,MAAM,YAAY,GAAG,wBAAwB,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAE/D,MAAM,gBAAgB,GAAG,aAAa,CAAC,GAA0B,EAAE;IACjE,MAAM,8BAA8B,GAAG,YAAY,CAAC,cAAc,CAAC,CAAC;IACpE,IAAI,EAAE,CAAC,UAAU,CAAC,8BAA8B,CAAC,EAAE,CAAC;QAClD,OAAO,QAAQ,CAAC,8BAA8B,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,cAAc,CAAC;AACxB,CAAC,CAAC,CAAC;AAIH,MAAM,CAAC,MAAM,eAAe,GAAG,CAAC,MAAgB,EAAE,EAAE;IAClD,MAAM,aAAa,GAAG,gBAAgB,EAAE,CAAC;IACzC,MAAM,YAAY,GAAmB,EAAE,CAAC;IACxC,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,EAAE,CAAC;IAC7B,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,MAAM,YAAY,GAAG,IAAI,IAAI,aAAa,CAAC,CAAC,CAAE,OAAO,CAAC,GAAG,CAAC,aAAa,EAAE,IAAI,CAAsB,CAAC,CAAC,CAAC,IAAI,CAAC;QAC3G,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,SAAS;QACX,CAAC;QACD,YAAY,CAAC,OAAO,CAAC,EAAC,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,YAAY,CAAC,OAAO,EAAC,CAAC,CAAC;QACtE,KAAK,CAAC,IAAI,CAAC,GAAG,YAAY,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC1C,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC,CAAC","sourcesContent":["import {createResolverByRootFile} from \"@gaubee/node\";\nimport {readJson} from \"@gaubee/nodekit\";\nimport {func_remember} from \"@gaubee/util\";\nimport type {ModelMessage} from \"ai\";\nimport fs from \"node:fs\";\nimport defaultPrompts from \"../prompts.json\" with {type: \"json\"};\nconst rootResolver = createResolverByRootFile(import.meta.url);\n\nconst getPromptConfigs = func_remember((): typeof defaultPrompts => {\n const download_prompts_json_filepath = rootResolver(\"prompts.json\");\n if (fs.existsSync(download_prompts_json_filepath)) {\n return readJson(download_prompts_json_filepath);\n }\n return defaultPrompts;\n});\ntype PromptConfigs = typeof defaultPrompts;\ntype PromptItemConfig = PromptConfigs[keyof PromptConfigs];\n\nexport const getModelMessage = (agents: string[]) => {\n const promptConfigs = getPromptConfigs();\n const modelMessage: ModelMessage[] = [];\n const names = agents.slice();\n for (const name of names) {\n const promptConfig = name in promptConfigs ? (Reflect.get(promptConfigs, name) as PromptItemConfig) : null;\n if (!promptConfig) {\n continue;\n }\n modelMessage.unshift({role: \"system\", content: promptConfig.content});\n names.push(...promptConfig.data.parent);\n }\n\n return modelMessage;\n};\n"]}
|
package/dist/helper/run-ai.d.ts
DELETED
@@ -1,12 +0,0 @@
|
|
1
|
-
import { FileEntry } from "@gaubee/nodekit";
|
2
|
-
import type { AiTask } from "./resolve-ai-tasks.js";
|
3
|
-
export declare const providers: {
|
4
|
-
readonly deepseek: import("@ai-sdk/deepseek").DeepSeekProvider;
|
5
|
-
readonly anthropic: import("@ai-sdk/anthropic").AnthropicProvider;
|
6
|
-
readonly google: import("@ai-sdk/google").GoogleGenerativeAIProvider;
|
7
|
-
readonly openai: import("@ai-sdk/openai").OpenAIProvider;
|
8
|
-
readonly xai: import("@ai-sdk/xai").XaiProvider;
|
9
|
-
readonly deepinfra: import("@ai-sdk/deepinfra").DeepInfraProvider;
|
10
|
-
};
|
11
|
-
export declare const runAiTask: (ai_task: AiTask, allFiles: FileEntry[], changedFiles: FileEntry[]) => Promise<void>;
|
12
|
-
//# sourceMappingURL=run-ai.d.ts.map
|
@@ -1 +0,0 @@
|
|
1
|
-
{"version":3,"file":"run-ai.d.ts","sourceRoot":"","sources":["../../src/helper/run-ai.ts"],"names":[],"mappings":"AAMA,OAAO,EAAO,SAAS,EAAuB,MAAM,iBAAiB,CAAC;AAOtE,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,uBAAuB,CAAC;AAGlD,eAAO,MAAM,SAAS;;;;;;;CA2CpB,CAAC;AAsEH,eAAO,MAAM,SAAS,GAAU,SAAS,MAAM,EAAE,UAAU,SAAS,EAAE,EAAE,cAAc,SAAS,EAAE,kBAyDhG,CAAC"}
|