clanka 0.0.3 → 0.0.5
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/Agent.d.ts +78 -29
- package/dist/Agent.d.ts.map +1 -1
- package/dist/Agent.js +307 -87
- package/dist/Agent.js.map +1 -1
- package/dist/AgentTools.d.ts +1 -1
- package/dist/AgentTools.d.ts.map +1 -1
- package/dist/AgentTools.js +3 -4
- package/dist/AgentTools.js.map +1 -1
- package/dist/Codex.d.ts +6 -1
- package/dist/Codex.d.ts.map +1 -1
- package/dist/Codex.js +16 -3
- package/dist/Codex.js.map +1 -1
- package/dist/CodexAuth.d.ts +4 -4
- package/dist/Executor.d.ts.map +1 -1
- package/dist/Executor.js +1 -1
- package/dist/Executor.js.map +1 -1
- package/dist/GithubCopilot.d.ts +11 -0
- package/dist/GithubCopilot.d.ts.map +1 -0
- package/dist/GithubCopilot.js +14 -0
- package/dist/GithubCopilot.js.map +1 -0
- package/dist/GithubCopilotAuth.d.ts +57 -0
- package/dist/GithubCopilotAuth.d.ts.map +1 -0
- package/dist/GithubCopilotAuth.js +218 -0
- package/dist/GithubCopilotAuth.js.map +1 -0
- package/dist/GithubCopilotAuth.test.d.ts +2 -0
- package/dist/GithubCopilotAuth.test.d.ts.map +1 -0
- package/dist/GithubCopilotAuth.test.js +267 -0
- package/dist/GithubCopilotAuth.test.js.map +1 -0
- package/dist/OutputFormatter.d.ts +4 -3
- package/dist/OutputFormatter.d.ts.map +1 -1
- package/dist/OutputFormatter.js +49 -54
- package/dist/OutputFormatter.js.map +1 -1
- package/dist/ScriptExtraction.d.ts +34 -0
- package/dist/ScriptExtraction.d.ts.map +1 -0
- package/dist/ScriptExtraction.js +68 -0
- package/dist/ScriptExtraction.js.map +1 -0
- package/dist/ScriptExtraction.test.d.ts +2 -0
- package/dist/ScriptExtraction.test.d.ts.map +1 -0
- package/dist/ScriptExtraction.test.js +64 -0
- package/dist/ScriptExtraction.test.js.map +1 -0
- package/dist/index.d.ts +4 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -0
- package/dist/index.js.map +1 -1
- package/package.json +4 -2
- package/src/Agent.ts +427 -133
- package/src/AgentTools.ts +3 -4
- package/src/Codex.ts +18 -3
- package/src/Executor.ts +0 -1
- package/src/GithubCopilot.ts +14 -0
- package/src/GithubCopilotAuth.test.ts +469 -0
- package/src/GithubCopilotAuth.ts +441 -0
- package/src/OutputFormatter.ts +51 -68
- package/src/ScriptExtraction.test.ts +96 -0
- package/src/ScriptExtraction.ts +75 -0
- package/src/index.ts +5 -0
package/dist/Agent.js
CHANGED
|
@@ -1,21 +1,13 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @since 1.0.0
|
|
3
3
|
*/
|
|
4
|
-
import { Array,
|
|
5
|
-
import { LanguageModel, Prompt, Tool, Toolkit } from "effect/unstable/ai";
|
|
4
|
+
import { Array, Deferred, Effect, FileSystem, identity, Layer, Option, Path, pipe, Queue, Schema, Scope, ServiceMap, Stream, } from "effect";
|
|
5
|
+
import { AiError, LanguageModel, Prompt, Tool, Toolkit, } from "effect/unstable/ai";
|
|
6
6
|
import { AgentToolHandlers, AgentTools, CurrentDirectory, SubagentContext, TaskCompleteDeferred, } from "./AgentTools.js";
|
|
7
7
|
import { Executor } from "./Executor.js";
|
|
8
8
|
import { ToolkitRenderer } from "./ToolkitRenderer.js";
|
|
9
9
|
import { ModelName, ProviderName } from "effect/unstable/ai/Model";
|
|
10
|
-
import { OpenAiLanguageModel } from "@effect/ai-openai";
|
|
11
10
|
import {} from "effect/unstable/ai/Response";
|
|
12
|
-
/**
|
|
13
|
-
* A layer that provides most of the common services needed to run an agent.
|
|
14
|
-
*
|
|
15
|
-
* @since 1.0.0
|
|
16
|
-
* @category Services
|
|
17
|
-
*/
|
|
18
|
-
export const layerServices = Layer.mergeAll(AgentToolHandlers, Executor.layer, ToolkitRenderer.layer);
|
|
19
11
|
/**
|
|
20
12
|
* Start an agent in the given directory with the given prompt and tools.
|
|
21
13
|
*
|
|
@@ -26,89 +18,207 @@ export const make = Effect.fnUntraced(function* (options) {
|
|
|
26
18
|
const fs = yield* FileSystem.FileSystem;
|
|
27
19
|
const pathService = yield* Path.Path;
|
|
28
20
|
const executor = yield* Executor;
|
|
21
|
+
const renderer = yield* ToolkitRenderer;
|
|
29
22
|
const allTools = Toolkit.merge(AgentTools, options.tools ?? Toolkit.empty);
|
|
23
|
+
const allToolsDts = renderer.render(allTools);
|
|
30
24
|
const tools = yield* allTools;
|
|
25
|
+
const singleTool = yield* SingleTools.asEffect().pipe(Effect.provide(SingleToolHandlers));
|
|
31
26
|
const services = yield* Effect.services();
|
|
32
|
-
|
|
33
|
-
if (options.system) {
|
|
34
|
-
system += `\n${options.system}`;
|
|
35
|
-
}
|
|
36
|
-
const withSystemPrompt = OpenAiLanguageModel.withConfigOverride({
|
|
37
|
-
store: false,
|
|
38
|
-
instructions: system,
|
|
39
|
-
});
|
|
27
|
+
const pendingMessages = new Set();
|
|
40
28
|
const agentsMd = yield* pipe(fs.readFileString(pathService.resolve(options.directory, "AGENTS.md")), Effect.option);
|
|
41
|
-
let
|
|
42
|
-
const
|
|
29
|
+
let agentCounter = 0;
|
|
30
|
+
const outputBuffer = new Map();
|
|
31
|
+
let currentOutputAgent = null;
|
|
32
|
+
const spawn = Effect.fnUntraced(function* (agentId, prompt) {
|
|
43
33
|
const ai = yield* LanguageModel.LanguageModel;
|
|
44
|
-
const
|
|
34
|
+
const modelConfig = yield* AgentModelConfig;
|
|
35
|
+
const singleToolMode = modelConfig.supportsNoTools !== false;
|
|
45
36
|
const deferred = yield* Deferred.make();
|
|
46
37
|
const output = yield* Queue.make();
|
|
38
|
+
let system = generateSystem(allToolsDts, !singleToolMode);
|
|
39
|
+
if (Option.isSome(agentsMd)) {
|
|
40
|
+
system += `
|
|
41
|
+
# AGENTS.md
|
|
42
|
+
|
|
43
|
+
The following instructions are from ./AGENTS.md in the current directory.
|
|
44
|
+
You do not need to read this file again.
|
|
45
|
+
|
|
46
|
+
**ALWAYS follow these instructions when completing tasks**:
|
|
47
|
+
|
|
48
|
+
<!-- AGENTS.md start -->
|
|
49
|
+
${agentsMd.value}
|
|
50
|
+
<!-- AGENTS.md end -->
|
|
51
|
+
`;
|
|
52
|
+
}
|
|
53
|
+
if (options.system) {
|
|
54
|
+
system += `\n${options.system}\n`;
|
|
55
|
+
}
|
|
56
|
+
function maybeSend(agentId, part, lock = false) {
|
|
57
|
+
if (currentOutputAgent === null || currentOutputAgent === agentId) {
|
|
58
|
+
Queue.offerUnsafe(output, part);
|
|
59
|
+
if (lock) {
|
|
60
|
+
currentOutputAgent = agentId;
|
|
61
|
+
}
|
|
62
|
+
return true;
|
|
63
|
+
}
|
|
64
|
+
const state = outputBuffer.get(agentId) ?? [];
|
|
65
|
+
state.push(part);
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
function flushBuffer() {
|
|
69
|
+
currentOutputAgent = null;
|
|
70
|
+
for (const [id, state] of outputBuffer) {
|
|
71
|
+
outputBuffer.delete(id);
|
|
72
|
+
Queue.offerAllUnsafe(output, state);
|
|
73
|
+
const lastPart = state[state.length - 1];
|
|
74
|
+
if (lastPart._tag === "ReasoningDelta") {
|
|
75
|
+
currentOutputAgent = id;
|
|
76
|
+
break;
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
47
80
|
const taskServices = SubagentContext.serviceMap({
|
|
48
81
|
spawn: ({ prompt }) => {
|
|
49
|
-
let id =
|
|
50
|
-
|
|
82
|
+
let id = agentCounter++;
|
|
83
|
+
const stream = spawn(id, Prompt.make(`You have been spawned using "subagent" to complete the following task:
|
|
51
84
|
|
|
52
|
-
${prompt}`))
|
|
53
|
-
|
|
54
|
-
}), Effect.flatMap(Effect.fnUntraced(function* (stream) {
|
|
85
|
+
${prompt}`));
|
|
86
|
+
return Effect.gen(function* () {
|
|
55
87
|
const provider = yield* ProviderName;
|
|
56
88
|
const model = yield* ModelName;
|
|
57
|
-
Queue.offerUnsafe(output, new
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
89
|
+
Queue.offerUnsafe(output, new SubagentStart({ id, prompt, model, provider }));
|
|
90
|
+
return yield* stream.pipe(Stream.runForEachArray((parts) => {
|
|
91
|
+
for (const part of parts) {
|
|
92
|
+
switch (part._tag) {
|
|
93
|
+
case "SubagentStart":
|
|
94
|
+
case "SubagentComplete":
|
|
95
|
+
case "SubagentPart":
|
|
96
|
+
break;
|
|
97
|
+
default:
|
|
98
|
+
Queue.offerUnsafe(output, new SubagentPart({ id, part }));
|
|
99
|
+
break;
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
return Effect.void;
|
|
103
|
+
}), Effect.as(""), Effect.catchTag("AgentFinished", (finished) => {
|
|
104
|
+
Queue.offerUnsafe(output, new SubagentComplete({ id, summary: finished.summary }));
|
|
105
|
+
return Effect.succeed(finished.summary);
|
|
106
|
+
}), Effect.orDie);
|
|
107
|
+
}).pipe(options.subagentModel
|
|
66
108
|
? Effect.provide(Layer.orDie(options.subagentModel))
|
|
67
109
|
: Effect.provideServices(services));
|
|
68
110
|
},
|
|
69
111
|
}).pipe(ServiceMap.add(CurrentDirectory, options.directory), ServiceMap.add(TaskCompleteDeferred, deferred));
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
112
|
+
const executeScript = Effect.fnUntraced(function* (script) {
|
|
113
|
+
maybeSend(agentId, new ScriptEnd());
|
|
114
|
+
const output = yield* pipe(executor.execute({ tools, script }), Stream.mkString, Effect.provideServices(taskServices));
|
|
115
|
+
maybeSend(agentId, new ScriptOutput({ output }));
|
|
116
|
+
return output;
|
|
117
|
+
});
|
|
118
|
+
if (!modelConfig.systemPromptTransform) {
|
|
74
119
|
prompt = Prompt.setSystem(prompt, system);
|
|
75
120
|
}
|
|
76
121
|
let currentScript = "";
|
|
77
122
|
yield* Effect.gen(function* () {
|
|
78
123
|
while (true) {
|
|
79
|
-
if (currentScript.length > 0) {
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
124
|
+
if (!singleToolMode && currentScript.length > 0) {
|
|
125
|
+
const result = yield* executeScript(currentScript);
|
|
126
|
+
prompt = Prompt.concat(prompt, [
|
|
127
|
+
{
|
|
128
|
+
role: modelConfig.supportsAssistantPrefill ? "assistant" : "user",
|
|
129
|
+
content: `Javascript output:\n\n${result}`,
|
|
130
|
+
},
|
|
131
|
+
]);
|
|
87
132
|
currentScript = "";
|
|
88
133
|
}
|
|
89
134
|
if (Deferred.isDoneUnsafe(deferred)) {
|
|
90
135
|
yield* Queue.fail(output, new AgentFinished({ summary: yield* Deferred.await(deferred) }));
|
|
91
136
|
return;
|
|
92
137
|
}
|
|
138
|
+
if (pendingMessages.size > 0) {
|
|
139
|
+
prompt = Prompt.concat(prompt, Array.Array.from(pendingMessages, ({ message, resume }) => {
|
|
140
|
+
resume(Effect.void);
|
|
141
|
+
return {
|
|
142
|
+
role: "user",
|
|
143
|
+
content: message,
|
|
144
|
+
};
|
|
145
|
+
}));
|
|
146
|
+
pendingMessages.clear();
|
|
147
|
+
}
|
|
148
|
+
// oxlint-disable-next-line typescript/no-explicit-any
|
|
93
149
|
let response = Array.empty();
|
|
94
|
-
|
|
150
|
+
let reasoningStarted = false;
|
|
151
|
+
let hadReasoningDelta = false;
|
|
152
|
+
yield* pipe(ai.streamText(singleToolMode ? { prompt, toolkit: singleTool } : { prompt }), Stream.takeUntil((part) => {
|
|
153
|
+
if (!singleToolMode &&
|
|
154
|
+
part.type === "text-end" &&
|
|
155
|
+
currentScript.trim().length > 0) {
|
|
156
|
+
return true;
|
|
157
|
+
}
|
|
158
|
+
if ((part.type === "text-end" || part.type === "reasoning-end") &&
|
|
159
|
+
pendingMessages.size > 0) {
|
|
160
|
+
return true;
|
|
161
|
+
}
|
|
162
|
+
return false;
|
|
163
|
+
}), Stream.runForEachArray((parts) => {
|
|
95
164
|
response.push(...parts);
|
|
96
165
|
for (const part of parts) {
|
|
97
166
|
switch (part.type) {
|
|
98
167
|
case "text-start":
|
|
168
|
+
if (singleToolMode) {
|
|
169
|
+
reasoningStarted = true;
|
|
170
|
+
break;
|
|
171
|
+
}
|
|
99
172
|
currentScript = "";
|
|
100
173
|
break;
|
|
101
|
-
case "text-delta":
|
|
174
|
+
case "text-delta": {
|
|
175
|
+
if (singleToolMode) {
|
|
176
|
+
hadReasoningDelta = true;
|
|
177
|
+
if (reasoningStarted) {
|
|
178
|
+
reasoningStarted = false;
|
|
179
|
+
maybeSend(agentId, new ReasoningStart(), true);
|
|
180
|
+
}
|
|
181
|
+
maybeSend(agentId, new ReasoningDelta({ delta: part.delta }));
|
|
182
|
+
break;
|
|
183
|
+
}
|
|
184
|
+
if (currentScript === "" && part.delta.length > 0) {
|
|
185
|
+
maybeSend(agentId, new ScriptStart(), true);
|
|
186
|
+
}
|
|
187
|
+
maybeSend(agentId, new ScriptDelta({ delta: part.delta }));
|
|
102
188
|
currentScript += part.delta;
|
|
103
189
|
break;
|
|
190
|
+
}
|
|
191
|
+
case "text-end": {
|
|
192
|
+
if (singleToolMode) {
|
|
193
|
+
reasoningStarted = false;
|
|
194
|
+
if (hadReasoningDelta) {
|
|
195
|
+
hadReasoningDelta = false;
|
|
196
|
+
const sent = maybeSend(agentId, new ReasoningEnd());
|
|
197
|
+
if (sent)
|
|
198
|
+
flushBuffer();
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
break;
|
|
202
|
+
}
|
|
104
203
|
case "reasoning-start":
|
|
105
|
-
|
|
204
|
+
reasoningStarted = true;
|
|
106
205
|
break;
|
|
107
206
|
case "reasoning-delta":
|
|
108
|
-
|
|
207
|
+
hadReasoningDelta = true;
|
|
208
|
+
if (reasoningStarted) {
|
|
209
|
+
reasoningStarted = false;
|
|
210
|
+
maybeSend(agentId, new ReasoningStart(), true);
|
|
211
|
+
}
|
|
212
|
+
maybeSend(agentId, new ReasoningDelta({ delta: part.delta }));
|
|
109
213
|
break;
|
|
110
214
|
case "reasoning-end":
|
|
111
|
-
|
|
215
|
+
reasoningStarted = false;
|
|
216
|
+
if (hadReasoningDelta) {
|
|
217
|
+
hadReasoningDelta = false;
|
|
218
|
+
const sent = maybeSend(agentId, new ReasoningEnd());
|
|
219
|
+
if (sent)
|
|
220
|
+
flushBuffer();
|
|
221
|
+
}
|
|
112
222
|
break;
|
|
113
223
|
case "finish":
|
|
114
224
|
// console.log("Tokens used:", part.usage, "\n")
|
|
@@ -121,44 +231,41 @@ ${md}`)), Option.getOrElse(() => Prompt.empty)));
|
|
|
121
231
|
response = [];
|
|
122
232
|
return err.isRetryable;
|
|
123
233
|
},
|
|
124
|
-
}),
|
|
234
|
+
}), modelConfig.systemPromptTransform
|
|
235
|
+
? (effect) => modelConfig.systemPromptTransform(system, effect)
|
|
236
|
+
: identity);
|
|
125
237
|
prompt = Prompt.concat(prompt, Prompt.fromResponseParts(response));
|
|
126
238
|
currentScript = currentScript.trim();
|
|
127
239
|
}
|
|
128
|
-
}).pipe(Effect.provideServices(taskServices
|
|
240
|
+
}).pipe(Effect.provideServices(taskServices.pipe(ServiceMap.add(ScriptExecutor, (script) => {
|
|
241
|
+
maybeSend(agentId, new ScriptStart());
|
|
242
|
+
maybeSend(agentId, new ScriptDelta({ delta: script }));
|
|
243
|
+
return executeScript(script);
|
|
244
|
+
}))), Effect.provideServices(services), Effect.catchCause((cause) => Queue.failCause(output, cause)), Effect.forkScoped);
|
|
129
245
|
return Stream.fromQueue(output);
|
|
130
246
|
}, Stream.unwrap);
|
|
131
|
-
const output = yield* spawn(Prompt.make(options.prompt)).pipe(Stream.broadcast({
|
|
247
|
+
const output = yield* spawn(agentCounter++, Prompt.make(options.prompt)).pipe(Stream.broadcast({
|
|
132
248
|
capacity: "unbounded",
|
|
133
249
|
}));
|
|
134
250
|
return identity({
|
|
135
251
|
output,
|
|
252
|
+
steer: (message) => Effect.callback((resume) => {
|
|
253
|
+
const entry = { message, resume };
|
|
254
|
+
pendingMessages.add(entry);
|
|
255
|
+
return Effect.sync(() => pendingMessages.delete(entry));
|
|
256
|
+
}),
|
|
136
257
|
});
|
|
137
258
|
// oxlint-disable-next-line typescript/no-explicit-any
|
|
138
259
|
});
|
|
260
|
+
const generateSystem = (
|
|
139
261
|
// oxlint-disable-next-line typescript/no-explicit-any
|
|
140
|
-
|
|
141
|
-
const
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
You are a professional software engineer. You are precise, thoughtful and concise. You make changes with care and always do the due diligence to ensure the best possible outcome. You make no mistakes.
|
|
145
|
-
|
|
146
|
-
# Completing the task
|
|
147
|
-
|
|
148
|
-
To complete the task respond with javascript code that will be executed for you.
|
|
262
|
+
toolsDts, multi) => {
|
|
263
|
+
const toolMd = multi
|
|
264
|
+
? generateSystemMulti(toolsDts)
|
|
265
|
+
: generateSystemSingle(toolsDts);
|
|
266
|
+
return `You are a professional software engineer. You are precise, thoughtful and concise. You make changes with care and always do the due diligence to ensure the best possible outcome. You make no mistakes.
|
|
149
267
|
|
|
150
|
-
|
|
151
|
-
- Use \`console.log\` to print any output you need.
|
|
152
|
-
- Top level await is supported.
|
|
153
|
-
- **Prefer using the functions provided** over the bash tool
|
|
154
|
-
|
|
155
|
-
You have the following functions available to you:
|
|
156
|
-
|
|
157
|
-
\`\`\`ts
|
|
158
|
-
${renderer.render(tools)}
|
|
159
|
-
|
|
160
|
-
declare const fetch: typeof globalThis.fetch
|
|
161
|
-
\`\`\`
|
|
268
|
+
${toolMd}
|
|
162
269
|
|
|
163
270
|
Here is how you would read a file:
|
|
164
271
|
|
|
@@ -187,11 +294,75 @@ Javascript output:
|
|
|
187
294
|
|
|
188
295
|
- Use the current state of the codebase to inform your decisions. Don't look at git history unless explicity asked to.
|
|
189
296
|
- Only add comments when necessary.
|
|
190
|
-
-
|
|
191
|
-
- Use the "subagent" tool to delegate research / exploration tasks
|
|
192
|
-
- When you have fully completed the task, call the "taskComplete" function
|
|
297
|
+
- Use the "subagent" tool to delegate large tasks / exploration. Run multiple subagents in parallel with Promise.all
|
|
193
298
|
`;
|
|
299
|
+
};
|
|
300
|
+
// oxlint-disable-next-line typescript/no-explicit-any
|
|
301
|
+
const generateSystemMulti = (toolsDts) => {
|
|
302
|
+
return `From now on only respond with javascript code that will be executed for you.
|
|
303
|
+
|
|
304
|
+
- Use \`console.log\` to print any output you need.
|
|
305
|
+
- Top level await is supported.
|
|
306
|
+
- **Prefer using the functions provided** over the bash tool
|
|
307
|
+
|
|
308
|
+
**When you have completed your task**, call the "taskComplete" function with the final output.
|
|
309
|
+
|
|
310
|
+
You have the following functions available to you:
|
|
311
|
+
|
|
312
|
+
\`\`\`ts
|
|
313
|
+
${toolsDts}
|
|
314
|
+
|
|
315
|
+
declare const fetch: typeof globalThis.fetch
|
|
316
|
+
\`\`\``;
|
|
317
|
+
};
|
|
318
|
+
// oxlint-disable-next-line typescript/no-explicit-any
|
|
319
|
+
const generateSystemSingle = (toolsDts) => {
|
|
320
|
+
return `Use the "execute" tool to run javascript code to do your work.
|
|
321
|
+
|
|
322
|
+
- Use \`console.log\` to print any output you need.
|
|
323
|
+
- Top level await is supported.
|
|
324
|
+
- **Prefer using the functions provided** over the bash tool
|
|
325
|
+
|
|
326
|
+
You have the following functions available to you:
|
|
327
|
+
|
|
328
|
+
\`\`\`ts
|
|
329
|
+
${toolsDts}
|
|
330
|
+
|
|
331
|
+
declare const fetch: typeof globalThis.fetch
|
|
332
|
+
\`\`\``;
|
|
333
|
+
};
|
|
334
|
+
class ScriptExecutor extends ServiceMap.Service()("clanka/Agent/ScriptExecutor") {
|
|
335
|
+
}
|
|
336
|
+
const SingleTools = Toolkit.make(Tool.make("execute", {
|
|
337
|
+
description: "Execute javascript code and return the output",
|
|
338
|
+
parameters: Schema.Struct({
|
|
339
|
+
script: Schema.String,
|
|
340
|
+
}),
|
|
341
|
+
success: Schema.String,
|
|
342
|
+
dependencies: [ScriptExecutor],
|
|
343
|
+
}));
|
|
344
|
+
const SingleToolHandlers = SingleTools.toLayer({
|
|
345
|
+
execute: Effect.fnUntraced(function* ({ script }) {
|
|
346
|
+
const execute = yield* ScriptExecutor;
|
|
347
|
+
return yield* execute(script);
|
|
348
|
+
}),
|
|
194
349
|
});
|
|
350
|
+
/**
|
|
351
|
+
* @since 1.0.0
|
|
352
|
+
* @category System prompts
|
|
353
|
+
*/
|
|
354
|
+
export class AgentModelConfig extends ServiceMap.Reference("clanka/Agent/SystemPromptTransform", {
|
|
355
|
+
defaultValue: () => ({}),
|
|
356
|
+
}) {
|
|
357
|
+
static layer = (options) => Layer.succeed(AgentModelConfig, options);
|
|
358
|
+
}
|
|
359
|
+
/**
|
|
360
|
+
* A layer that provides most of the common services needed to run an agent.
|
|
361
|
+
*
|
|
362
|
+
* @since 1.0.0
|
|
363
|
+
* @category Services
|
|
364
|
+
*/
|
|
365
|
+
export const layerServices = Layer.mergeAll(AgentToolHandlers, Executor.layer, ToolkitRenderer.layer);
|
|
195
366
|
/**
|
|
196
367
|
* @since 1.0.0
|
|
197
368
|
* @category Output
|
|
@@ -216,15 +387,27 @@ export class ReasoningEnd extends Schema.TaggedClass()("ReasoningEnd", {}) {
|
|
|
216
387
|
* @since 1.0.0
|
|
217
388
|
* @category Output
|
|
218
389
|
*/
|
|
219
|
-
export class ScriptStart extends Schema.TaggedClass()("ScriptStart", {
|
|
220
|
-
|
|
390
|
+
export class ScriptStart extends Schema.TaggedClass()("ScriptStart", {}) {
|
|
391
|
+
}
|
|
392
|
+
/**
|
|
393
|
+
* @since 1.0.0
|
|
394
|
+
* @category Output
|
|
395
|
+
*/
|
|
396
|
+
export class ScriptDelta extends Schema.TaggedClass()("ScriptDelta", {
|
|
397
|
+
delta: Schema.String,
|
|
221
398
|
}) {
|
|
222
399
|
}
|
|
223
400
|
/**
|
|
224
401
|
* @since 1.0.0
|
|
225
402
|
* @category Output
|
|
226
403
|
*/
|
|
227
|
-
export class ScriptEnd extends Schema.TaggedClass()("ScriptEnd", {
|
|
404
|
+
export class ScriptEnd extends Schema.TaggedClass()("ScriptEnd", {}) {
|
|
405
|
+
}
|
|
406
|
+
/**
|
|
407
|
+
* @since 1.0.0
|
|
408
|
+
* @category Output
|
|
409
|
+
*/
|
|
410
|
+
export class ScriptOutput extends Schema.TaggedClass()("ScriptOutput", {
|
|
228
411
|
output: Schema.String,
|
|
229
412
|
}) {
|
|
230
413
|
}
|
|
@@ -240,20 +423,57 @@ export class AgentFinished extends Schema.TaggedErrorClass()("AgentFinished", {
|
|
|
240
423
|
* @since 1.0.0
|
|
241
424
|
* @category Output
|
|
242
425
|
*/
|
|
243
|
-
export
|
|
426
|
+
export class SubagentStart extends Schema.TaggedClass()("SubagentStart", {
|
|
427
|
+
id: Schema.Number,
|
|
428
|
+
prompt: Schema.String,
|
|
429
|
+
model: Schema.String,
|
|
430
|
+
provider: Schema.String,
|
|
431
|
+
}) {
|
|
432
|
+
get modelAndProvider() {
|
|
433
|
+
return `${this.provider}/${this.model}`;
|
|
434
|
+
}
|
|
435
|
+
}
|
|
436
|
+
/**
|
|
437
|
+
* @since 1.0.0
|
|
438
|
+
* @category Output
|
|
439
|
+
*/
|
|
440
|
+
export class SubagentComplete extends Schema.TaggedClass()("SubagentComplete", {
|
|
441
|
+
id: Schema.Number,
|
|
442
|
+
summary: Schema.String,
|
|
443
|
+
}) {
|
|
444
|
+
}
|
|
445
|
+
export const ContentPart = Schema.Union([
|
|
244
446
|
ReasoningStart,
|
|
245
447
|
ReasoningDelta,
|
|
246
448
|
ReasoningEnd,
|
|
247
449
|
ScriptStart,
|
|
450
|
+
ScriptDelta,
|
|
248
451
|
ScriptEnd,
|
|
452
|
+
ScriptOutput,
|
|
249
453
|
]);
|
|
250
454
|
/**
|
|
251
455
|
* @since 1.0.0
|
|
252
456
|
* @category Output
|
|
253
457
|
*/
|
|
254
|
-
export class SubagentPart extends
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
458
|
+
export class SubagentPart extends Schema.TaggedClass()("SubagentPart", {
|
|
459
|
+
id: Schema.Number,
|
|
460
|
+
part: ContentPart,
|
|
461
|
+
}) {
|
|
258
462
|
}
|
|
463
|
+
/**
|
|
464
|
+
* @since 1.0.0
|
|
465
|
+
* @category Output
|
|
466
|
+
*/
|
|
467
|
+
export const Output = Schema.Union([
|
|
468
|
+
ReasoningStart,
|
|
469
|
+
ReasoningDelta,
|
|
470
|
+
ReasoningEnd,
|
|
471
|
+
ScriptStart,
|
|
472
|
+
ScriptDelta,
|
|
473
|
+
ScriptEnd,
|
|
474
|
+
ScriptOutput,
|
|
475
|
+
SubagentStart,
|
|
476
|
+
SubagentComplete,
|
|
477
|
+
SubagentPart,
|
|
478
|
+
]);
|
|
259
479
|
//# sourceMappingURL=Agent.js.map
|
package/dist/Agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Agent.js","sourceRoot":"","sources":["../src/Agent.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Agent.js","sourceRoot":"","sources":["../src/Agent.ts"],"names":[],"mappings":"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"}
|
package/dist/AgentTools.d.ts
CHANGED
|
@@ -33,7 +33,7 @@ export declare class SubagentContext extends SubagentContext_base {
|
|
|
33
33
|
* @since 1.0.0
|
|
34
34
|
* @category Context
|
|
35
35
|
*/
|
|
36
|
-
export declare const makeContextNoop: (cwd?: string) => ServiceMap.ServiceMap<CurrentDirectory |
|
|
36
|
+
export declare const makeContextNoop: (cwd?: string) => ServiceMap.ServiceMap<CurrentDirectory | SubagentContext | TaskCompleteDeferred>;
|
|
37
37
|
/**
|
|
38
38
|
* @since 1.0.0
|
|
39
39
|
* @category Toolkit
|
package/dist/AgentTools.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AgentTools.d.ts","sourceRoot":"","sources":["../src/AgentTools.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAGL,QAAQ,EACR,MAAM,EACN,UAAU,EACV,IAAI,EAEJ,MAAM,EACN,UAAU,EAEX,MAAM,QAAQ,CAAA;AACf,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAgB,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;;
|
|
1
|
+
{"version":3,"file":"AgentTools.d.ts","sourceRoot":"","sources":["../src/AgentTools.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,OAAO,EAGL,QAAQ,EACR,MAAM,EACN,UAAU,EACV,IAAI,EAEJ,MAAM,EACN,UAAU,EAEX,MAAM,QAAQ,CAAA;AACf,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,MAAM,oBAAoB,CAAA;AAClD,OAAO,EAAgB,mBAAmB,EAAE,MAAM,yBAAyB,CAAA;;AAI3E;;;GAGG;AACH,qBAAa,gBAAiB,SAAQ,qBAGG;CAAG;;AAE5C;;;GAGG;AACH,qBAAa,oBAAqB,SAAQ,yBAGG;CAAG;;mBAS7B;QAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAA;KAAE,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC;;AAPtE;;;GAGG;AACH,qBAAa,eAAgB,SAAQ,oBAKG;CAAG;AAE3C;;;GAGG;AACH,eAAO,MAAM,eAAe,GAAI,MAAM,MAAM,qFAMzC,CAAA;AAEH;;;GAGG;AACH,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA0HtB,CAAA;AAED;;;GAGG;AACH,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;uFAkT7B,CAAA"}
|
package/dist/AgentTools.js
CHANGED
|
@@ -5,7 +5,6 @@ import { Array, Data, Deferred, Effect, FileSystem, Path, pipe, Schema, ServiceM
|
|
|
5
5
|
import { Tool, Toolkit } from "effect/unstable/ai";
|
|
6
6
|
import { ChildProcess, ChildProcessSpawner } from "effect/unstable/process";
|
|
7
7
|
import * as Glob from "glob";
|
|
8
|
-
import * as Rg from "@vscode/ripgrep";
|
|
9
8
|
import { parsePatch, patchChunks } from "./ApplyPatch.js";
|
|
10
9
|
/**
|
|
11
10
|
* @since 1.0.0
|
|
@@ -132,9 +131,9 @@ export const AgentTools = Toolkit.make(Tool.make("readFile", {
|
|
|
132
131
|
identifier: "ms",
|
|
133
132
|
}),
|
|
134
133
|
}), Tool.make("taskComplete", {
|
|
135
|
-
description: "
|
|
134
|
+
description: "Call this to send a final output message and end the current task.",
|
|
136
135
|
parameters: Schema.String.annotate({
|
|
137
|
-
identifier: "
|
|
136
|
+
identifier: "output",
|
|
138
137
|
}),
|
|
139
138
|
dependencies: [TaskCompleteDeferred],
|
|
140
139
|
}));
|
|
@@ -217,7 +216,7 @@ export const AgentToolHandlers = AgentTools.toLayer(Effect.gen(function* () {
|
|
|
217
216
|
args.push("--glob", options.glob);
|
|
218
217
|
}
|
|
219
218
|
args.push(options.pattern);
|
|
220
|
-
let stream = pipe(spawner.streamLines(ChildProcess.make(
|
|
219
|
+
let stream = pipe(spawner.streamLines(ChildProcess.make("rg", args, {
|
|
221
220
|
cwd,
|
|
222
221
|
stdin: "ignore",
|
|
223
222
|
})), Stream.map((line) => {
|