@jixo/cli 0.10.1 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/dist/cli.d.ts.map +1 -1
  2. package/dist/cli.js +6 -5
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/init.d.ts.map +1 -1
  5. package/dist/commands/init.js +18 -12
  6. package/dist/commands/init.js.map +1 -1
  7. package/dist/commands/prompts/list.js +2 -2
  8. package/dist/commands/prompts/list.js.map +1 -1
  9. package/dist/commands/tasks/AiTaskTui.d.ts +22 -0
  10. package/dist/commands/tasks/AiTaskTui.d.ts.map +1 -0
  11. package/dist/commands/tasks/AiTaskTui.js +52 -0
  12. package/dist/commands/tasks/AiTaskTui.js.map +1 -0
  13. package/dist/commands/tasks/ai-tasl-tui.d.ts +22 -0
  14. package/dist/commands/tasks/ai-tasl-tui.d.ts.map +1 -0
  15. package/dist/commands/tasks/ai-tasl-tui.js +53 -0
  16. package/dist/commands/tasks/ai-tasl-tui.js.map +1 -0
  17. package/dist/commands/tasks/ai-tools.d.ts +281 -8
  18. package/dist/commands/tasks/ai-tools.d.ts.map +1 -1
  19. package/dist/commands/tasks/ai-tools.js +55 -16
  20. package/dist/commands/tasks/ai-tools.js.map +1 -1
  21. package/dist/commands/tasks/model-providers.d.ts +5 -1
  22. package/dist/commands/tasks/model-providers.d.ts.map +1 -1
  23. package/dist/commands/tasks/model-providers.js +31 -0
  24. package/dist/commands/tasks/model-providers.js.map +1 -1
  25. package/dist/commands/tasks/run-ai-task.d.ts +1 -1
  26. package/dist/commands/tasks/run-ai-task.d.ts.map +1 -1
  27. package/dist/commands/tasks/run-ai-task.js +141 -115
  28. package/dist/commands/tasks/run-ai-task.js.map +1 -1
  29. package/dist/commands/tasks/run.d.ts.map +1 -1
  30. package/dist/commands/tasks/run.js +24 -14
  31. package/dist/commands/tasks/run.js.map +1 -1
  32. package/dist/config.d.ts +14 -14
  33. package/dist/helper/ai-retry-error.d.ts +1 -1
  34. package/dist/helper/ai-retry-error.d.ts.map +1 -1
  35. package/dist/helper/ai-retry-error.js +63 -30
  36. package/dist/helper/ai-retry-error.js.map +1 -1
  37. package/dist/helper/handle-ai-error.d.ts +5 -0
  38. package/dist/helper/handle-ai-error.d.ts.map +1 -0
  39. package/dist/helper/handle-ai-error.js +122 -0
  40. package/dist/helper/handle-ai-error.js.map +1 -0
  41. package/dist/helper/logger.d.ts +3 -0
  42. package/dist/helper/logger.d.ts.map +1 -0
  43. package/dist/helper/logger.js +26 -0
  44. package/dist/helper/logger.js.map +1 -0
  45. package/dist/helper/prompts-loader.d.ts +9 -3
  46. package/dist/helper/prompts-loader.d.ts.map +1 -1
  47. package/dist/helper/prompts-loader.js +16 -16
  48. package/dist/helper/prompts-loader.js.map +1 -1
  49. package/dist/helper/resolve-ai-tasks.d.ts +24 -10
  50. package/dist/helper/resolve-ai-tasks.d.ts.map +1 -1
  51. package/dist/helper/resolve-ai-tasks.js +68 -26
  52. package/dist/helper/resolve-ai-tasks.js.map +1 -1
  53. package/dist/prompts.json +2 -2
  54. package/package.json +8 -3
@@ -1,8 +1,270 @@
1
1
  import { type ToolSet } from "ai";
2
2
  import z from "zod";
3
+ import type { AiTask } from "../../helper/resolve-ai-tasks.js";
3
4
  export declare const tools: {
4
5
  fileSystem: (cwd: string) => Promise<ToolSet>;
5
6
  memory: (memory_filepath: string) => Promise<ToolSet>;
7
+ pnpm: import("@gaubee/util").FuncRemember<() => Promise<{
8
+ [x: string]: import("ai").Tool<unknown, z.objectOutputType<{
9
+ _meta: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>;
10
+ } & {
11
+ content: z.ZodArray<z.ZodUnion<[z.ZodObject<{
12
+ type: z.ZodLiteral<"text">;
13
+ text: z.ZodString;
14
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
15
+ type: z.ZodLiteral<"text">;
16
+ text: z.ZodString;
17
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
18
+ type: z.ZodLiteral<"text">;
19
+ text: z.ZodString;
20
+ }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{
21
+ type: z.ZodLiteral<"image">;
22
+ data: z.ZodString;
23
+ mimeType: z.ZodString;
24
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
25
+ type: z.ZodLiteral<"image">;
26
+ data: z.ZodString;
27
+ mimeType: z.ZodString;
28
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
29
+ type: z.ZodLiteral<"image">;
30
+ data: z.ZodString;
31
+ mimeType: z.ZodString;
32
+ }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{
33
+ type: z.ZodLiteral<"resource">;
34
+ resource: z.ZodUnion<[z.ZodObject<{
35
+ uri: z.ZodString;
36
+ mimeType: z.ZodOptional<z.ZodString>;
37
+ } & {
38
+ text: z.ZodString;
39
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
40
+ uri: z.ZodString;
41
+ mimeType: z.ZodOptional<z.ZodString>;
42
+ } & {
43
+ text: z.ZodString;
44
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
45
+ uri: z.ZodString;
46
+ mimeType: z.ZodOptional<z.ZodString>;
47
+ } & {
48
+ text: z.ZodString;
49
+ }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{
50
+ uri: z.ZodString;
51
+ mimeType: z.ZodOptional<z.ZodString>;
52
+ } & {
53
+ blob: z.ZodString;
54
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
55
+ uri: z.ZodString;
56
+ mimeType: z.ZodOptional<z.ZodString>;
57
+ } & {
58
+ blob: z.ZodString;
59
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
60
+ uri: z.ZodString;
61
+ mimeType: z.ZodOptional<z.ZodString>;
62
+ } & {
63
+ blob: z.ZodString;
64
+ }, z.ZodTypeAny, "passthrough">>]>;
65
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
66
+ type: z.ZodLiteral<"resource">;
67
+ resource: z.ZodUnion<[z.ZodObject<{
68
+ uri: z.ZodString;
69
+ mimeType: z.ZodOptional<z.ZodString>;
70
+ } & {
71
+ text: z.ZodString;
72
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
73
+ uri: z.ZodString;
74
+ mimeType: z.ZodOptional<z.ZodString>;
75
+ } & {
76
+ text: z.ZodString;
77
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
78
+ uri: z.ZodString;
79
+ mimeType: z.ZodOptional<z.ZodString>;
80
+ } & {
81
+ text: z.ZodString;
82
+ }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{
83
+ uri: z.ZodString;
84
+ mimeType: z.ZodOptional<z.ZodString>;
85
+ } & {
86
+ blob: z.ZodString;
87
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
88
+ uri: z.ZodString;
89
+ mimeType: z.ZodOptional<z.ZodString>;
90
+ } & {
91
+ blob: z.ZodString;
92
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
93
+ uri: z.ZodString;
94
+ mimeType: z.ZodOptional<z.ZodString>;
95
+ } & {
96
+ blob: z.ZodString;
97
+ }, z.ZodTypeAny, "passthrough">>]>;
98
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
99
+ type: z.ZodLiteral<"resource">;
100
+ resource: z.ZodUnion<[z.ZodObject<{
101
+ uri: z.ZodString;
102
+ mimeType: z.ZodOptional<z.ZodString>;
103
+ } & {
104
+ text: z.ZodString;
105
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
106
+ uri: z.ZodString;
107
+ mimeType: z.ZodOptional<z.ZodString>;
108
+ } & {
109
+ text: z.ZodString;
110
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
111
+ uri: z.ZodString;
112
+ mimeType: z.ZodOptional<z.ZodString>;
113
+ } & {
114
+ text: z.ZodString;
115
+ }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{
116
+ uri: z.ZodString;
117
+ mimeType: z.ZodOptional<z.ZodString>;
118
+ } & {
119
+ blob: z.ZodString;
120
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
121
+ uri: z.ZodString;
122
+ mimeType: z.ZodOptional<z.ZodString>;
123
+ } & {
124
+ blob: z.ZodString;
125
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
126
+ uri: z.ZodString;
127
+ mimeType: z.ZodOptional<z.ZodString>;
128
+ } & {
129
+ blob: z.ZodString;
130
+ }, z.ZodTypeAny, "passthrough">>]>;
131
+ }, z.ZodTypeAny, "passthrough">>]>, "many">;
132
+ isError: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
133
+ }, z.ZodTypeAny, "passthrough"> | z.objectOutputType<{
134
+ _meta: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>;
135
+ } & {
136
+ toolResult: z.ZodUnknown;
137
+ }, z.ZodTypeAny, "passthrough">> & Required<Pick<import("ai").Tool<unknown, z.objectOutputType<{
138
+ _meta: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>;
139
+ } & {
140
+ content: z.ZodArray<z.ZodUnion<[z.ZodObject<{
141
+ type: z.ZodLiteral<"text">;
142
+ text: z.ZodString;
143
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
144
+ type: z.ZodLiteral<"text">;
145
+ text: z.ZodString;
146
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
147
+ type: z.ZodLiteral<"text">;
148
+ text: z.ZodString;
149
+ }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{
150
+ type: z.ZodLiteral<"image">;
151
+ data: z.ZodString;
152
+ mimeType: z.ZodString;
153
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
154
+ type: z.ZodLiteral<"image">;
155
+ data: z.ZodString;
156
+ mimeType: z.ZodString;
157
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
158
+ type: z.ZodLiteral<"image">;
159
+ data: z.ZodString;
160
+ mimeType: z.ZodString;
161
+ }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{
162
+ type: z.ZodLiteral<"resource">;
163
+ resource: z.ZodUnion<[z.ZodObject<{
164
+ uri: z.ZodString;
165
+ mimeType: z.ZodOptional<z.ZodString>;
166
+ } & {
167
+ text: z.ZodString;
168
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
169
+ uri: z.ZodString;
170
+ mimeType: z.ZodOptional<z.ZodString>;
171
+ } & {
172
+ text: z.ZodString;
173
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
174
+ uri: z.ZodString;
175
+ mimeType: z.ZodOptional<z.ZodString>;
176
+ } & {
177
+ text: z.ZodString;
178
+ }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{
179
+ uri: z.ZodString;
180
+ mimeType: z.ZodOptional<z.ZodString>;
181
+ } & {
182
+ blob: z.ZodString;
183
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
184
+ uri: z.ZodString;
185
+ mimeType: z.ZodOptional<z.ZodString>;
186
+ } & {
187
+ blob: z.ZodString;
188
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
189
+ uri: z.ZodString;
190
+ mimeType: z.ZodOptional<z.ZodString>;
191
+ } & {
192
+ blob: z.ZodString;
193
+ }, z.ZodTypeAny, "passthrough">>]>;
194
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
195
+ type: z.ZodLiteral<"resource">;
196
+ resource: z.ZodUnion<[z.ZodObject<{
197
+ uri: z.ZodString;
198
+ mimeType: z.ZodOptional<z.ZodString>;
199
+ } & {
200
+ text: z.ZodString;
201
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
202
+ uri: z.ZodString;
203
+ mimeType: z.ZodOptional<z.ZodString>;
204
+ } & {
205
+ text: z.ZodString;
206
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
207
+ uri: z.ZodString;
208
+ mimeType: z.ZodOptional<z.ZodString>;
209
+ } & {
210
+ text: z.ZodString;
211
+ }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{
212
+ uri: z.ZodString;
213
+ mimeType: z.ZodOptional<z.ZodString>;
214
+ } & {
215
+ blob: z.ZodString;
216
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
217
+ uri: z.ZodString;
218
+ mimeType: z.ZodOptional<z.ZodString>;
219
+ } & {
220
+ blob: z.ZodString;
221
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
222
+ uri: z.ZodString;
223
+ mimeType: z.ZodOptional<z.ZodString>;
224
+ } & {
225
+ blob: z.ZodString;
226
+ }, z.ZodTypeAny, "passthrough">>]>;
227
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
228
+ type: z.ZodLiteral<"resource">;
229
+ resource: z.ZodUnion<[z.ZodObject<{
230
+ uri: z.ZodString;
231
+ mimeType: z.ZodOptional<z.ZodString>;
232
+ } & {
233
+ text: z.ZodString;
234
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
235
+ uri: z.ZodString;
236
+ mimeType: z.ZodOptional<z.ZodString>;
237
+ } & {
238
+ text: z.ZodString;
239
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
240
+ uri: z.ZodString;
241
+ mimeType: z.ZodOptional<z.ZodString>;
242
+ } & {
243
+ text: z.ZodString;
244
+ }, z.ZodTypeAny, "passthrough">>, z.ZodObject<{
245
+ uri: z.ZodString;
246
+ mimeType: z.ZodOptional<z.ZodString>;
247
+ } & {
248
+ blob: z.ZodString;
249
+ }, "passthrough", z.ZodTypeAny, z.objectOutputType<{
250
+ uri: z.ZodString;
251
+ mimeType: z.ZodOptional<z.ZodString>;
252
+ } & {
253
+ blob: z.ZodString;
254
+ }, z.ZodTypeAny, "passthrough">, z.objectInputType<{
255
+ uri: z.ZodString;
256
+ mimeType: z.ZodOptional<z.ZodString>;
257
+ } & {
258
+ blob: z.ZodString;
259
+ }, z.ZodTypeAny, "passthrough">>]>;
260
+ }, z.ZodTypeAny, "passthrough">>]>, "many">;
261
+ isError: z.ZodOptional<z.ZodDefault<z.ZodBoolean>>;
262
+ }, z.ZodTypeAny, "passthrough"> | z.objectOutputType<{
263
+ _meta: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>;
264
+ } & {
265
+ toolResult: z.ZodUnknown;
266
+ }, z.ZodTypeAny, "passthrough">>, "execute">>;
267
+ }>, void | ((this: unknown) => any)>;
6
268
  sequentialThinking: import("@gaubee/util").FuncRemember<() => Promise<{
7
269
  [x: string]: import("ai").Tool<unknown, z.objectOutputType<{
8
270
  _meta: z.ZodOptional<z.ZodObject<{}, "passthrough", z.ZodTypeAny, z.objectOutputType<{}, z.ZodTypeAny, "passthrough">, z.objectInputType<{}, z.ZodTypeAny, "passthrough">>>;
@@ -526,13 +788,24 @@ export declare const tools: {
526
788
  }, z.ZodTypeAny, "passthrough">>, "execute">>;
527
789
  }>, void | ((this: unknown) => any)>;
528
790
  git: (repo: string) => Promise<ToolSet>;
529
- jixoSkill: import("@gaubee/util").FuncRemember<() => {
530
- allSkillNavList: Record<string, string>;
531
- tools: {
532
- get_jixo_skill: import("ai").Tool<{
533
- name: string;
534
- }, any>;
535
- };
536
- }, void | ((this: unknown) => any)>;
791
+ jixo: (ai_task: AiTask) => {
792
+ jixo_log_lock: import("ai").Tool<{}, {
793
+ type: string;
794
+ filepath: string;
795
+ content: string;
796
+ }>;
797
+ jixo_log_unlock: import("ai").Tool<{}, {
798
+ type: string;
799
+ }>;
800
+ jixo_tasks_exit: import("ai").Tool<{
801
+ code: number;
802
+ reason: string;
803
+ }, {
804
+ type: string;
805
+ }>;
806
+ get_jixo_skill: import("ai").Tool<{
807
+ name: string;
808
+ }, any>;
809
+ };
537
810
  };
538
811
  //# sourceMappingURL=ai-tools.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ai-tools.d.ts","sourceRoot":"","sources":["../../../src/commands/tasks/ai-tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAwD,KAAK,OAAO,EAAC,MAAM,IAAI,CAAC;AAEvF,OAAO,CAAC,MAAM,KAAK,CAAC;AAGpB,eAAO,MAAM,KAAK;sBAGD,MAAM;8BAeM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAuCjB,MAAM;;;;;;;;;CA0CvB,CAAC"}
1
+ {"version":3,"file":"ai-tools.d.ts","sourceRoot":"","sources":["../../../src/commands/tasks/ai-tools.ts"],"names":[],"mappings":"AACA,OAAO,EAAwD,KAAK,OAAO,EAAC,MAAM,IAAI,CAAC;AAEvF,OAAO,CAAC,MAAM,KAAK,CAAC;AAEpB,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,kCAAkC,CAAC;AAE7D,eAAO,MAAM,KAAK;sBAGD,MAAM;8BAeM,MAAM;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;gBAmDjB,MAAM;oBAkBH,MAAM;;;;;;;;;;;;;;;;;;;CAgD1B,CAAC"}
@@ -1,8 +1,8 @@
1
- import { func_lazy, func_remember, map_get_or_put_async, obj_props } from "@gaubee/util";
1
+ import { func_lazy, func_remember, map_get_or_put_async } from "@gaubee/util";
2
2
  import { experimental_createMCPClient as createMCPClient, tool } from "ai";
3
3
  import { Experimental_StdioMCPTransport } from "ai/mcp-stdio";
4
4
  import z from "zod";
5
- import { getPromptConfigs } from "../../helper/prompts-loader.js";
5
+ import { getAllPromptConfigs, getAllSkillMap } from "../../helper/prompts-loader.js";
6
6
  export const tools = {
7
7
  fileSystem: func_lazy(() => {
8
8
  const map = new Map();
@@ -10,8 +10,8 @@ export const tools = {
10
10
  return map_get_or_put_async(map, cwd, async () => {
11
11
  const mcpClient = await createMCPClient({
12
12
  transport: new Experimental_StdioMCPTransport({
13
- command: "pnpx",
14
- args: ["@modelcontextprotocol/server-filesystem", cwd],
13
+ command: "pnpm",
14
+ args: ["mcp-fs", cwd],
15
15
  }),
16
16
  });
17
17
  const tools = await mcpClient.tools();
@@ -37,6 +37,18 @@ export const tools = {
37
37
  });
38
38
  };
39
39
  }),
40
+ pnpm: func_remember(async () => {
41
+ const mcpClient = await createMCPClient({
42
+ transport: new Experimental_StdioMCPTransport({
43
+ // command: "pnpx",
44
+ // args: ["@jixo/mcp-pnpm"],
45
+ command: "pnpm",
46
+ args: ["mcp-pnpm"],
47
+ }),
48
+ });
49
+ const tools = await mcpClient.tools();
50
+ return tools;
51
+ }),
40
52
  sequentialThinking: func_remember(async () => {
41
53
  const mcpClient = await createMCPClient({
42
54
  transport: new Experimental_StdioMCPTransport({
@@ -72,29 +84,56 @@ export const tools = {
72
84
  });
73
85
  };
74
86
  }),
75
- jixoSkill: func_remember(() => {
76
- const configs = getPromptConfigs();
77
- const skills = obj_props(configs).filter((key) => key.endsWith(".skill"));
78
- const allSkillNavList = skills.reduce((tree, skill) => {
79
- tree[skill] = configs[skill].content.split("\n")[0];
80
- return tree;
81
- }, Object.create(null));
82
- return {
83
- allSkillNavList,
84
- tools: {
87
+ jixo: func_lazy(() => {
88
+ // const map = new Map<string, ToolSet>();
89
+ const configs = getAllPromptConfigs();
90
+ const allSkillMap = getAllSkillMap();
91
+ return (ai_task) => {
92
+ return {
85
93
  get_jixo_skill: tool({
86
94
  description: "Get the JIXO skill prompt by name",
87
95
  parameters: z.object({
88
96
  name: z.string().describe("The name to get the skill for"),
89
97
  }),
90
98
  execute: async ({ name }) => {
91
- if (name in allSkillNavList) {
99
+ if (name in allSkillMap) {
92
100
  return Reflect.get(configs, name);
93
101
  }
94
102
  return { type: "error", message: "Skill not found" };
95
103
  },
96
104
  }),
97
- },
105
+ ...(() => {
106
+ // TODO: use process shared lock-manager
107
+ return {
108
+ jixo_log_lock: tool({
109
+ description: "Lock the log file for writing, will return log file content",
110
+ parameters: z.object({}),
111
+ execute: async () => {
112
+ ai_task.reloadLog();
113
+ return { type: "success", filepath: ai_task.log.filepath, content: ai_task.log.content };
114
+ },
115
+ }),
116
+ jixo_log_unlock: tool({
117
+ description: "Unlock the log file, for other locker can read the log file and then write.",
118
+ parameters: z.object({}),
119
+ execute: async () => {
120
+ return { type: "success" };
121
+ },
122
+ }),
123
+ jixo_tasks_exit: tool({
124
+ description: "Exit the tasks.",
125
+ parameters: z.object({
126
+ code: z.number({ description: "Exit code: 0 is Success; 1 is Error; 2 is No Tasks" }),
127
+ reason: z.string({ description: "Exit reasons that provide human-readable information" }),
128
+ }),
129
+ execute: async ({ code, reason }) => {
130
+ ai_task.exit(code, reason);
131
+ return { type: "success" };
132
+ },
133
+ }),
134
+ };
135
+ })(),
136
+ };
98
137
  };
99
138
  }),
100
139
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ai-tools.js","sourceRoot":"","sources":["../../../src/commands/tasks/ai-tools.ts"],"names":[],"mappings":"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","sourcesContent":["import {func_lazy, func_remember, map_get_or_put_async, obj_props} from \"@gaubee/util\";\nimport {experimental_createMCPClient as createMCPClient, tool, type ToolSet} from \"ai\";\nimport {Experimental_StdioMCPTransport} from \"ai/mcp-stdio\";\nimport z from \"zod\";\nimport {getPromptConfigs} from \"../../helper/prompts-loader.js\";\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 memory: func_lazy(() => {\n const map = new Map<string, ToolSet>();\n return (memory_filepath: string) => {\n return map_get_or_put_async(map, memory_filepath, async () => {\n const mcpClient = await createMCPClient({\n transport: new Experimental_StdioMCPTransport({\n command: \"pnpx\",\n args: [\"@modelcontextprotocol/server-memory\"],\n env: {\n MEMORY_FILE_PATH: memory_filepath,\n },\n }),\n });\n const tools = await mcpClient.tools();\n return tools;\n });\n };\n }),\n sequentialThinking: func_remember(async () => {\n const mcpClient = await createMCPClient({\n transport: new Experimental_StdioMCPTransport({\n command: \"pnpx\",\n args: [\"@modelcontextprotocol/server-sequential-thinking\"],\n }),\n });\n const tools = await mcpClient.tools();\n return tools;\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\n jixoSkill: func_remember(() => {\n const configs = getPromptConfigs();\n const skills = obj_props(configs).filter((key) => key.endsWith(\".skill\"));\n const allSkillNavList = skills.reduce(\n (tree, skill) => {\n tree[skill] = configs[skill].content.split(\"\\n\")[0];\n return tree;\n },\n Object.create(null) as Record<string, string>,\n );\n return {\n allSkillNavList,\n tools: {\n get_jixo_skill: tool({\n description: \"Get the JIXO skill prompt by name\",\n parameters: z.object({\n name: z.string().describe(\"The name to get the skill for\"),\n }),\n execute: async ({name}) => {\n if (name in allSkillNavList) {\n return Reflect.get(configs, name);\n }\n return {type: \"error\", message: \"Skill not found\"};\n },\n }),\n },\n };\n }),\n};\n"]}
1
+ {"version":3,"file":"ai-tools.js","sourceRoot":"","sources":["../../../src/commands/tasks/ai-tools.ts"],"names":[],"mappings":"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","sourcesContent":["import {func_lazy, func_remember, map_get_or_put_async} from \"@gaubee/util\";\nimport {experimental_createMCPClient as createMCPClient, tool, type ToolSet} from \"ai\";\nimport {Experimental_StdioMCPTransport} from \"ai/mcp-stdio\";\nimport z from \"zod\";\nimport {getAllPromptConfigs, getAllSkillMap} from \"../../helper/prompts-loader.js\";\nimport type {AiTask} from \"../../helper/resolve-ai-tasks.js\";\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: \"pnpm\",\n args: [\"mcp-fs\", cwd],\n }),\n });\n const tools = await mcpClient.tools();\n return tools;\n });\n };\n }),\n memory: func_lazy(() => {\n const map = new Map<string, ToolSet>();\n return (memory_filepath: string) => {\n return map_get_or_put_async(map, memory_filepath, async () => {\n const mcpClient = await createMCPClient({\n transport: new Experimental_StdioMCPTransport({\n command: \"pnpx\",\n args: [\"@modelcontextprotocol/server-memory\"],\n env: {\n MEMORY_FILE_PATH: memory_filepath,\n },\n }),\n });\n const tools = await mcpClient.tools();\n return tools;\n });\n };\n }),\n pnpm: func_remember(async () => {\n const mcpClient = await createMCPClient({\n transport: new Experimental_StdioMCPTransport({\n // command: \"pnpx\",\n // args: [\"@jixo/mcp-pnpm\"],\n command: \"pnpm\",\n args: [\"mcp-pnpm\"],\n }),\n });\n const tools = await mcpClient.tools();\n return tools;\n }),\n sequentialThinking: func_remember(async () => {\n const mcpClient = await createMCPClient({\n transport: new Experimental_StdioMCPTransport({\n command: \"pnpx\",\n args: [\"@modelcontextprotocol/server-sequential-thinking\"],\n }),\n });\n const tools = await mcpClient.tools();\n return tools;\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\n jixo: func_lazy(() => {\n // const map = new Map<string, ToolSet>();\n const configs = getAllPromptConfigs();\n const allSkillMap = getAllSkillMap();\n return (ai_task: AiTask) => {\n return {\n get_jixo_skill: tool({\n description: \"Get the JIXO skill prompt by name\",\n parameters: z.object({\n name: z.string().describe(\"The name to get the skill for\"),\n }),\n execute: async ({name}) => {\n if (name in allSkillMap) {\n return Reflect.get(configs, name);\n }\n return {type: \"error\", message: \"Skill not found\"};\n },\n }),\n ...(() => {\n // TODO: use process shared lock-manager\n return {\n jixo_log_lock: tool({\n description: \"Lock the log file for writing, will return log file content\",\n parameters: z.object({}),\n execute: async () => {\n ai_task.reloadLog();\n return {type: \"success\", filepath: ai_task.log.filepath, content: ai_task.log.content};\n },\n }),\n jixo_log_unlock: tool({\n description: \"Unlock the log file, for other locker can read the log file and then write.\",\n parameters: z.object({}),\n execute: async () => {\n return {type: \"success\"};\n },\n }),\n jixo_tasks_exit: tool({\n description: \"Exit the tasks.\",\n parameters: z.object({\n code: z.number({description: \"Exit code: 0 is Success; 1 is Error; 2 is No Tasks\"}),\n reason: z.string({description: \"Exit reasons that provide human-readable information\"}),\n }),\n execute: async ({code, reason}) => {\n ai_task.exit(code, reason);\n return {type: \"success\"};\n },\n }),\n };\n })(),\n };\n };\n }),\n};\n"]}
@@ -1,9 +1,13 @@
1
+ import { type OpenAIProvider } from "@ai-sdk/openai";
1
2
  export declare const providers: {
2
3
  readonly deepseek: import("@ai-sdk/deepseek").DeepSeekProvider;
3
4
  readonly anthropic: import("@ai-sdk/anthropic").AnthropicProvider;
4
5
  readonly google: import("@ai-sdk/google").GoogleGenerativeAIProvider;
5
- readonly openai: import("@ai-sdk/openai").OpenAIProvider;
6
+ readonly openai: OpenAIProvider;
6
7
  readonly xai: import("@ai-sdk/xai").XaiProvider;
7
8
  readonly deepinfra: import("@ai-sdk/deepinfra").DeepInfraProvider;
8
9
  };
10
+ type LanguageModelV2 = ReturnType<OpenAIProvider>;
11
+ export declare const getModel: (model?: string) => LanguageModelV2;
12
+ export {};
9
13
  //# sourceMappingURL=model-providers.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"model-providers.d.ts","sourceRoot":"","sources":["../../../src/commands/tasks/model-providers.ts"],"names":[],"mappings":"AAUA,eAAO,MAAM,SAAS;;;;;;;CA2CpB,CAAC"}
1
+ {"version":3,"file":"model-providers.d.ts","sourceRoot":"","sources":["../../../src/commands/tasks/model-providers.ts"],"names":[],"mappings":"AAIA,OAAO,EAAe,KAAK,cAAc,EAAC,MAAM,gBAAgB,CAAC;AAOjE,eAAO,MAAM,SAAS;;;;;;;CA2CpB,CAAC;AAEH,KAAK,eAAe,GAAG,UAAU,CAAC,cAAc,CAAC,CAAC;AAClD,eAAO,MAAM,QAAQ,GAAI,QAAQ,MAAM,KAAG,eA6BzC,CAAC"}
@@ -5,6 +5,7 @@ import { createGoogleGenerativeAI } from "@ai-sdk/google";
5
5
  import { createOpenAI } from "@ai-sdk/openai";
6
6
  import { createXai } from "@ai-sdk/xai";
7
7
  import { obj_lazify } from "@gaubee/util";
8
+ import { match, P } from "ts-pattern";
8
9
  import { safeEnv } from "../../env.js";
9
10
  // const wrapper = (provider:)
10
11
  export const providers = obj_lazify({
@@ -50,4 +51,34 @@ export const providers = obj_lazify({
50
51
  });
51
52
  },
52
53
  });
54
+ export const getModel = (model) => {
55
+ return match(model)
56
+ .with(P.string.startsWith("deepseek-"), (model) => providers.deepseek(model))
57
+ .with(P.string.startsWith("gemini-"), (model) => providers.google(model))
58
+ .with(P.string.startsWith("o3-"), P.string.startsWith("o1-"), P.string.startsWith("gpt-"), (model) => providers.openai(model))
59
+ .with(P.string.startsWith("claude-"), (model) => providers.anthropic(model))
60
+ .with(P.string.startsWith("grok-"), (model) => providers.xai(model))
61
+ .with(P.string.includes("/"), (model) => providers.deepinfra(model))
62
+ .otherwise(() => {
63
+ if (safeEnv.JIXO_DEEPSEEK_API_KEY) {
64
+ return providers.deepseek("deepseek-reasoner");
65
+ }
66
+ if (safeEnv.JIXO_GOOGLE_API_KEY) {
67
+ return providers.google("gemini-2.5-pro-preview-05-06");
68
+ }
69
+ if (safeEnv.JIXO_OPENAI_API_KEY) {
70
+ return providers.openai("o3-mini");
71
+ }
72
+ if (safeEnv.JIXO_ANTHROPIC_API_KEY) {
73
+ return providers.anthropic("claude-4-sonnet-20250514");
74
+ }
75
+ if (safeEnv.JIXO_XAI_API_KEY) {
76
+ return providers.xai("grok-3-beta");
77
+ }
78
+ if (safeEnv.JIXO_DEEPINFRA_API_KEY) {
79
+ return providers.deepinfra("meta-llama/Meta-Llama-3.1-405B-Instruct");
80
+ }
81
+ return providers.deepseek("deepseek-reasoner");
82
+ });
83
+ };
53
84
  //# sourceMappingURL=model-providers.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"model-providers.js","sourceRoot":"","sources":["../../../src/commands/tasks/model-providers.ts"],"names":[],"mappings":"AAAA,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAC,eAAe,EAAC,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAC,cAAc,EAAC,MAAM,kBAAkB,CAAC;AAChD,OAAO,EAAC,wBAAwB,EAAC,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAC,YAAY,EAAC,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAC,SAAS,EAAC,MAAM,aAAa,CAAC;AACtC,OAAO,EAAC,UAAU,EAAC,MAAM,cAAc,CAAC;AACxC,OAAO,EAAC,OAAO,EAAC,MAAM,cAAc,CAAC;AAErC,8BAA8B;AAC9B,MAAM,CAAC,MAAM,SAAS,GAAG,UAAU,CAAC;IAClC,IAAI,QAAQ;QACV,OAAO,cAAc,CAAC;YACpB,OAAO,EAAE,OAAO,CAAC,sBAAsB,IAAI,SAAS;YACpD,MAAM,EAAE,OAAO,CAAC,qBAAqB;SACtC,CAAC,CAAC;IACL,CAAC;IACD,IAAI,SAAS;QACX,mDAAmD;QACnD,yEAAyE;QACzE,MAAM;QAEN,MAAM,QAAQ,GAAG,eAAe,CAAC;YAC/B,OAAO,EAAE,OAAO,CAAC,uBAAuB,IAAI,SAAS;YACrD,MAAM,EAAE,OAAO,CAAC,sBAAsB;SACvC,CAAC,CAAC;QACH,OAAO,QAAQ,CAAC;IAClB,CAAC;IACD,IAAI,MAAM;QACR,OAAO,wBAAwB,CAAC;YAC9B,OAAO,EAAE,OAAO,CAAC,oBAAoB,IAAI,SAAS;YAClD,MAAM,EAAE,OAAO,CAAC,mBAAmB;SACpC,CAAC,CAAC;IACL,CAAC;IACD,IAAI,MAAM;QACR,OAAO,YAAY,CAAC;YAClB,OAAO,EAAE,OAAO,CAAC,oBAAoB,IAAI,SAAS;YAClD,MAAM,EAAE,OAAO,CAAC,mBAAmB;YACnC,YAAY,EAAE,OAAO,CAAC,wBAAwB,IAAI,SAAS;SAC5D,CAAC,CAAC;IACL,CAAC;IACD,IAAI,GAAG;QACL,OAAO,SAAS,CAAC;YACf,OAAO,EAAE,OAAO,CAAC,iBAAiB,IAAI,SAAS;YAC/C,MAAM,EAAE,OAAO,CAAC,gBAAgB;SACjC,CAAC,CAAC;IACL,CAAC;IACD,IAAI,SAAS;QACX,OAAO,eAAe,CAAC;YACrB,OAAO,EAAE,OAAO,CAAC,uBAAuB,IAAI,SAAS;YACrD,MAAM,EAAE,OAAO,CAAC,sBAAsB;SACvC,CAAC,CAAC;IACL,CAAC;CACF,CAAC,CAAC","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 {obj_lazify} from \"@gaubee/util\";\nimport {safeEnv} from \"../../env.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});\n"]}
1
+ {"version":3,"file":"model-providers.js","sourceRoot":"","sources":["../../../src/commands/tasks/model-providers.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, type OpenAIProvider} from \"@ai-sdk/openai\";\nimport {createXai} from \"@ai-sdk/xai\";\nimport {obj_lazify} from \"@gaubee/util\";\nimport {match, P} from \"ts-pattern\";\nimport {safeEnv} from \"../../env.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});\n\ntype LanguageModelV2 = ReturnType<OpenAIProvider>;\nexport const getModel = (model?: string): LanguageModelV2 => {\n return match(model)\n .with(P.string.startsWith(\"deepseek-\"), (model) => providers.deepseek(model))\n .with(P.string.startsWith(\"gemini-\"), (model) => providers.google(model))\n .with(P.string.startsWith(\"o3-\"), P.string.startsWith(\"o1-\"), P.string.startsWith(\"gpt-\"), (model) => providers.openai(model))\n .with(P.string.startsWith(\"claude-\"), (model) => providers.anthropic(model))\n .with(P.string.startsWith(\"grok-\"), (model) => providers.xai(model))\n .with(P.string.includes(\"/\"), (model) => providers.deepinfra(model))\n .otherwise(() => {\n if (safeEnv.JIXO_DEEPSEEK_API_KEY) {\n return providers.deepseek(\"deepseek-reasoner\");\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"]}
@@ -1,4 +1,4 @@
1
1
  import { FileEntry } from "@gaubee/nodekit";
2
2
  import type { AiTask } from "../../helper/resolve-ai-tasks.js";
3
- export declare const runAiTask: (ai_task: AiTask, allFiles: FileEntry[], changedFilesSet: Record<string, FileEntry[]>) => Promise<void>;
3
+ export declare const runAiTask: (ai_task: AiTask, loopTimes: number, allFiles: FileEntry[], changedFilesSet: Record<string, FileEntry[]>) => Promise<void>;
4
4
  //# sourceMappingURL=run-ai-task.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"run-ai-task.d.ts","sourceRoot":"","sources":["../../../src/commands/tasks/run-ai-task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,SAAS,EAAwD,MAAM,iBAAiB,CAAC;AAU7G,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,kCAAkC,CAAC;AAyD7D,eAAO,MAAM,SAAS,GAAU,SAAS,MAAM,EAAE,UAAU,SAAS,EAAE,EAAE,iBAAiB,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,kBAenH,CAAC"}
1
+ {"version":3,"file":"run-ai-task.d.ts","sourceRoot":"","sources":["../../../src/commands/tasks/run-ai-task.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,SAAS,EAA0C,MAAM,iBAAiB,CAAC;AAW/F,OAAO,KAAK,EAAC,MAAM,EAAC,MAAM,kCAAkC,CAAC;AAO7D,eAAO,MAAM,SAAS,GAAU,SAAS,MAAM,EAAE,WAAW,MAAM,EAAE,UAAU,SAAS,EAAE,EAAE,iBAAiB,MAAM,CAAC,MAAM,EAAE,SAAS,EAAE,CAAC,kBAuCtI,CAAC"}