@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.
Files changed (45) hide show
  1. package/dist/cli.d.ts.map +1 -1
  2. package/dist/cli.js +35 -3
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/tasks/run-ai-task.d.ts.map +1 -1
  5. package/dist/commands/tasks/run-ai-task.js +70 -33
  6. package/dist/commands/tasks/run-ai-task.js.map +1 -1
  7. package/dist/commands/tasks/run.d.ts +2 -0
  8. package/dist/commands/tasks/run.d.ts.map +1 -1
  9. package/dist/commands/tasks/run.js +66 -35
  10. package/dist/commands/tasks/run.js.map +1 -1
  11. package/dist/config.d.ts +14 -14
  12. package/dist/helper/ai-retry-error.d.ts +1 -3
  13. package/dist/helper/ai-retry-error.d.ts.map +1 -1
  14. package/dist/helper/ai-retry-error.js +3 -3
  15. package/dist/helper/ai-retry-error.js.map +1 -1
  16. package/dist/helper/parse-progress.d.ts +2 -0
  17. package/dist/helper/parse-progress.d.ts.map +1 -0
  18. package/dist/helper/parse-progress.js +28 -0
  19. package/dist/helper/parse-progress.js.map +1 -0
  20. package/dist/helper/resolve-ai-tasks.d.ts +3 -0
  21. package/dist/helper/resolve-ai-tasks.d.ts.map +1 -1
  22. package/dist/helper/resolve-ai-tasks.js +9 -3
  23. package/dist/helper/resolve-ai-tasks.js.map +1 -1
  24. package/dist/prompts.json +1 -1
  25. package/package.json +2 -2
  26. package/dist/commands/run.d.ts +0 -5
  27. package/dist/commands/run.d.ts.map +0 -1
  28. package/dist/commands/run.js +0 -36
  29. package/dist/commands/run.js.map +0 -1
  30. package/dist/commands/tasks/run-ai.d.ts +0 -278
  31. package/dist/commands/tasks/run-ai.d.ts.map +0 -1
  32. package/dist/commands/tasks/run-ai.js +0 -179
  33. package/dist/commands/tasks/run-ai.js.map +0 -1
  34. package/dist/commands/upgrade.d.ts +0 -4
  35. package/dist/commands/upgrade.d.ts.map +0 -1
  36. package/dist/commands/upgrade.js +0 -17
  37. package/dist/commands/upgrade.js.map +0 -1
  38. package/dist/helper/prompts.d.ts +0 -3
  39. package/dist/helper/prompts.d.ts.map +0 -1
  40. package/dist/helper/prompts.js +0 -28
  41. package/dist/helper/prompts.js.map +0 -1
  42. package/dist/helper/run-ai.d.ts +0 -12
  43. package/dist/helper/run-ai.d.ts.map +0 -1
  44. package/dist/helper/run-ai.js +0 -179
  45. 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,4 +0,0 @@
1
- export declare const upgrade: (dir: string, options: {
2
- mirrorUrl?: string;
3
- }) => Promise<void>;
4
- //# sourceMappingURL=upgrade.d.ts.map
@@ -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"}
@@ -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"]}
@@ -1,3 +0,0 @@
1
- import type { ModelMessage } from "ai";
2
- export declare const getModelMessage: (agents: string[]) => ModelMessage[];
3
- //# sourceMappingURL=prompts.d.ts.map
@@ -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"}
@@ -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"]}
@@ -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"}