@action-llama/action-llama 0.9.2 → 0.10.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/AGENTS.md +56 -28
- package/README.md +1 -1
- package/dist/agents/container-entry.d.ts.map +1 -1
- package/dist/agents/container-entry.js +66 -4
- package/dist/agents/container-entry.js.map +1 -1
- package/dist/agents/container-runner.d.ts +3 -4
- package/dist/agents/container-runner.d.ts.map +1 -1
- package/dist/agents/container-runner.js +21 -33
- package/dist/agents/container-runner.js.map +1 -1
- package/dist/agents/execution-engine.d.ts +17 -0
- package/dist/agents/execution-engine.d.ts.map +1 -0
- package/dist/agents/execution-engine.js +196 -0
- package/dist/agents/execution-engine.js.map +1 -0
- package/dist/agents/git-environment.d.ts +18 -0
- package/dist/agents/git-environment.d.ts.map +1 -0
- package/dist/agents/git-environment.js +63 -0
- package/dist/agents/git-environment.js.map +1 -0
- package/dist/agents/lambda-handler.js +1 -1
- package/dist/agents/lambda-handler.js.map +1 -1
- package/dist/agents/prompt.d.ts +4 -2
- package/dist/agents/prompt.d.ts.map +1 -1
- package/dist/agents/prompt.js +57 -5
- package/dist/agents/prompt.js.map +1 -1
- package/dist/agents/runner.d.ts +7 -1
- package/dist/agents/runner.d.ts.map +1 -1
- package/dist/agents/runner.js +54 -25
- package/dist/agents/runner.js.map +1 -1
- package/dist/agents/signals.d.ts +25 -0
- package/dist/agents/signals.d.ts.map +1 -0
- package/dist/agents/signals.js +105 -0
- package/dist/agents/signals.js.map +1 -0
- package/dist/agents/status-reporter.d.ts +34 -0
- package/dist/agents/status-reporter.d.ts.map +1 -0
- package/dist/agents/status-reporter.js +64 -0
- package/dist/agents/status-reporter.js.map +1 -0
- package/dist/cli/commands/chat.js +2 -2
- package/dist/cli/commands/chat.js.map +1 -1
- package/dist/cli/commands/creds.js +3 -3
- package/dist/cli/commands/creds.js.map +1 -1
- package/dist/cli/commands/doctor.js +3 -3
- package/dist/cli/commands/doctor.js.map +1 -1
- package/dist/cli/commands/kill.d.ts +4 -0
- package/dist/cli/commands/kill.d.ts.map +1 -0
- package/dist/cli/commands/kill.js +30 -0
- package/dist/cli/commands/kill.js.map +1 -0
- package/dist/cli/commands/new.js +2 -2
- package/dist/cli/commands/new.js.map +1 -1
- package/dist/cli/commands/pause.d.ts +4 -0
- package/dist/cli/commands/pause.d.ts.map +1 -0
- package/dist/cli/commands/pause.js +30 -0
- package/dist/cli/commands/pause.js.map +1 -0
- package/dist/cli/commands/resume.d.ts +4 -0
- package/dist/cli/commands/resume.d.ts.map +1 -0
- package/dist/cli/commands/resume.js +30 -0
- package/dist/cli/commands/resume.js.map +1 -0
- package/dist/cli/commands/run.d.ts +0 -1
- package/dist/cli/commands/run.d.ts.map +1 -1
- package/dist/cli/commands/run.js +7 -18
- package/dist/cli/commands/run.js.map +1 -1
- package/dist/cli/commands/start.d.ts +0 -1
- package/dist/cli/commands/start.d.ts.map +1 -1
- package/dist/cli/commands/start.js +7 -8
- package/dist/cli/commands/start.js.map +1 -1
- package/dist/cli/commands/status.d.ts.map +1 -1
- package/dist/cli/commands/status.js +74 -0
- package/dist/cli/commands/status.js.map +1 -1
- package/dist/cli/main.js +25 -2
- package/dist/cli/main.js.map +1 -1
- package/dist/credentials/prompter.js +3 -3
- package/dist/credentials/prompter.js.map +1 -1
- package/dist/docker/lambda-runtime.d.ts.map +1 -1
- package/dist/docker/lambda-runtime.js +12 -4
- package/dist/docker/lambda-runtime.js.map +1 -1
- package/dist/docker/local-runtime.d.ts +2 -0
- package/dist/docker/local-runtime.d.ts.map +1 -1
- package/dist/docker/local-runtime.js +31 -0
- package/dist/docker/local-runtime.js.map +1 -1
- package/dist/docker/runtime.d.ts +4 -0
- package/dist/docker/runtime.d.ts.map +1 -1
- package/dist/gateway/call-store.d.ts +39 -0
- package/dist/gateway/call-store.d.ts.map +1 -0
- package/dist/gateway/call-store.js +101 -0
- package/dist/gateway/call-store.js.map +1 -0
- package/dist/gateway/index.d.ts +8 -0
- package/dist/gateway/index.d.ts.map +1 -1
- package/dist/gateway/index.js +23 -2
- package/dist/gateway/index.js.map +1 -1
- package/dist/gateway/routes/calls.d.ts +17 -0
- package/dist/gateway/routes/calls.d.ts.map +1 -0
- package/dist/gateway/routes/calls.js +63 -0
- package/dist/gateway/routes/calls.js.map +1 -0
- package/dist/gateway/routes/control.d.ts +10 -0
- package/dist/gateway/routes/control.d.ts.map +1 -0
- package/dist/gateway/routes/control.js +64 -0
- package/dist/gateway/routes/control.js.map +1 -0
- package/dist/gateway/routes/locks.d.ts.map +1 -1
- package/dist/gateway/routes/locks.js +12 -0
- package/dist/gateway/routes/locks.js.map +1 -1
- package/dist/gateway/routes/signals.d.ts +11 -0
- package/dist/gateway/routes/signals.d.ts.map +1 -0
- package/dist/gateway/routes/signals.js +103 -0
- package/dist/gateway/routes/signals.js.map +1 -0
- package/dist/gateway/types.d.ts +16 -0
- package/dist/gateway/types.d.ts.map +1 -1
- package/dist/scheduler/config-validator.d.ts +18 -0
- package/dist/scheduler/config-validator.d.ts.map +1 -0
- package/dist/scheduler/config-validator.js +53 -0
- package/dist/scheduler/config-validator.js.map +1 -0
- package/dist/scheduler/cron-manager.d.ts +14 -0
- package/dist/scheduler/cron-manager.d.ts.map +1 -0
- package/dist/scheduler/cron-manager.js +75 -0
- package/dist/scheduler/cron-manager.js.map +1 -0
- package/dist/scheduler/event-queue.d.ts +7 -4
- package/dist/scheduler/event-queue.d.ts.map +1 -1
- package/dist/scheduler/event-queue.js +4 -2
- package/dist/scheduler/event-queue.js.map +1 -1
- package/dist/scheduler/index.d.ts.map +1 -1
- package/dist/scheduler/index.js +126 -115
- package/dist/scheduler/index.js.map +1 -1
- package/dist/scheduler/runner-pool.d.ts +20 -0
- package/dist/scheduler/runner-pool.d.ts.map +1 -1
- package/dist/scheduler/runner-pool.js +32 -4
- package/dist/scheduler/runner-pool.js.map +1 -1
- package/dist/scheduler/runtime-factory.d.ts +11 -0
- package/dist/scheduler/runtime-factory.d.ts.map +1 -0
- package/dist/scheduler/runtime-factory.js +98 -0
- package/dist/scheduler/runtime-factory.js.map +1 -0
- package/dist/scheduler/shutdown-handler.d.ts +16 -0
- package/dist/scheduler/shutdown-handler.d.ts.map +1 -0
- package/dist/scheduler/shutdown-handler.js +44 -0
- package/dist/scheduler/shutdown-handler.js.map +1 -0
- package/dist/scheduler/trigger-dispatcher.d.ts +12 -0
- package/dist/scheduler/trigger-dispatcher.d.ts.map +1 -0
- package/dist/scheduler/trigger-dispatcher.js +46 -0
- package/dist/scheduler/trigger-dispatcher.js.map +1 -0
- package/dist/scheduler/types.d.ts +8 -0
- package/dist/scheduler/types.d.ts.map +1 -1
- package/dist/scheduler/webhook-setup.d.ts +28 -0
- package/dist/scheduler/webhook-setup.d.ts.map +1 -0
- package/dist/scheduler/webhook-setup.js +146 -0
- package/dist/scheduler/webhook-setup.js.map +1 -0
- package/dist/setup/prompts.js +4 -4
- package/dist/setup/prompts.js.map +1 -1
- package/dist/shared/config.d.ts +4 -0
- package/dist/shared/config.d.ts.map +1 -1
- package/dist/shared/config.js.map +1 -1
- package/dist/shared/credentials.d.ts +11 -31
- package/dist/shared/credentials.d.ts.map +1 -1
- package/dist/shared/credentials.js +22 -87
- package/dist/shared/credentials.js.map +1 -1
- package/dist/shared/exit-codes.d.ts +18 -0
- package/dist/shared/exit-codes.d.ts.map +1 -0
- package/dist/shared/exit-codes.js +40 -0
- package/dist/shared/exit-codes.js.map +1 -0
- package/dist/shared/filesystem-backend.d.ts +4 -0
- package/dist/shared/filesystem-backend.d.ts.map +1 -1
- package/dist/shared/filesystem-backend.js +35 -0
- package/dist/shared/filesystem-backend.js.map +1 -1
- package/dist/tui/status-tracker.d.ts +23 -0
- package/dist/tui/status-tracker.d.ts.map +1 -1
- package/dist/tui/status-tracker.js +36 -0
- package/dist/tui/status-tracker.js.map +1 -1
- package/docker/Dockerfile +1 -0
- package/package.json +1 -1
- package/skills/environment.md +1 -1
- package/skills/resource-locks.md +1 -1
- package/skills/signals.md +67 -25
|
@@ -0,0 +1,196 @@
|
|
|
1
|
+
import { getModel } from "@mariozechner/pi-ai";
|
|
2
|
+
import { AuthStorage, createAgentSession, DefaultResourceLoader, SessionManager, SettingsManager, createCodingTools, } from "@mariozechner/pi-coding-agent";
|
|
3
|
+
import { readFileSync, existsSync, mkdtempSync, rmSync } from "fs";
|
|
4
|
+
import { resolve, join } from "path";
|
|
5
|
+
import { tmpdir } from "os";
|
|
6
|
+
import { loadCredentialField } from "../shared/credentials.js";
|
|
7
|
+
import { installSignalCommands, readSignals } from "./signals.js";
|
|
8
|
+
const UNRECOVERABLE_PATTERNS = [
|
|
9
|
+
"permission denied",
|
|
10
|
+
"could not read from remote repository",
|
|
11
|
+
"resource not accessible by personal access token",
|
|
12
|
+
"bad credentials",
|
|
13
|
+
"authentication failed",
|
|
14
|
+
"the requested url returned error: 403",
|
|
15
|
+
"denied to ",
|
|
16
|
+
];
|
|
17
|
+
function isUnrecoverableError(text) {
|
|
18
|
+
const lower = text.toLowerCase();
|
|
19
|
+
return UNRECOVERABLE_PATTERNS.some((p) => lower.includes(p));
|
|
20
|
+
}
|
|
21
|
+
const UNRECOVERABLE_THRESHOLD = 3;
|
|
22
|
+
export class ExecutionEngine {
|
|
23
|
+
agentConfig;
|
|
24
|
+
logger;
|
|
25
|
+
statusTracker;
|
|
26
|
+
constructor(agentConfig, logger, statusTracker) {
|
|
27
|
+
this.agentConfig = agentConfig;
|
|
28
|
+
this.logger = logger;
|
|
29
|
+
this.statusTracker = statusTracker;
|
|
30
|
+
}
|
|
31
|
+
async execute(prompt, cwd) {
|
|
32
|
+
// Set up file-based signal IPC
|
|
33
|
+
const signalTmpDir = mkdtempSync(join(tmpdir(), "al-signals-"));
|
|
34
|
+
const signalDir = join(signalTmpDir, "signals");
|
|
35
|
+
const signalBinDir = join(signalTmpDir, "bin");
|
|
36
|
+
installSignalCommands(signalBinDir, signalDir);
|
|
37
|
+
const savedPath = process.env.PATH;
|
|
38
|
+
process.env.PATH = `${signalBinDir}:${process.env.PATH || ""}`;
|
|
39
|
+
process.env.AL_SIGNAL_DIR = signalDir;
|
|
40
|
+
const agentsFile = resolve(cwd, "ACTIONS.md");
|
|
41
|
+
const { model } = this.agentConfig;
|
|
42
|
+
// ACTIONS.md must exist on disk (written during al new)
|
|
43
|
+
if (!existsSync(agentsFile)) {
|
|
44
|
+
throw new Error(`ACTIONS.md not found at ${agentsFile}. Run 'al new' to create it.`);
|
|
45
|
+
}
|
|
46
|
+
const agentsContent = readFileSync(agentsFile, "utf-8");
|
|
47
|
+
const llmModel = getModel(model.provider, model.model);
|
|
48
|
+
const authStorage = AuthStorage.create();
|
|
49
|
+
if (model.authType !== "pi_auth") {
|
|
50
|
+
// Try to load API key using provider-specific credential type
|
|
51
|
+
const credentialType = `${model.provider}_key`;
|
|
52
|
+
try {
|
|
53
|
+
const credential = await loadCredentialField(credentialType, "default", "token");
|
|
54
|
+
if (credential) {
|
|
55
|
+
authStorage.setRuntimeApiKey(model.provider, credential);
|
|
56
|
+
this.logger.debug(`Loaded ${credentialType} credential for ${model.provider}`);
|
|
57
|
+
}
|
|
58
|
+
else {
|
|
59
|
+
this.logger.warn(`${credentialType} credential not found — agent may fail to authenticate. Run 'al doctor' to configure it.`);
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
catch (err) {
|
|
63
|
+
this.logger.warn(`Failed to load credential for provider ${model.provider}: ${credentialType} credential type may not be configured.`);
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
const resourceLoader = new DefaultResourceLoader({
|
|
67
|
+
noExtensions: true,
|
|
68
|
+
agentsFilesOverride: () => ({
|
|
69
|
+
agentsFiles: [
|
|
70
|
+
{ path: agentsFile, content: agentsContent },
|
|
71
|
+
],
|
|
72
|
+
}),
|
|
73
|
+
});
|
|
74
|
+
await resourceLoader.reload();
|
|
75
|
+
const settingsManager = SettingsManager.inMemory({
|
|
76
|
+
compaction: { enabled: true },
|
|
77
|
+
retry: { enabled: true, maxRetries: 2 },
|
|
78
|
+
});
|
|
79
|
+
const { session } = await createAgentSession({
|
|
80
|
+
cwd,
|
|
81
|
+
model: llmModel,
|
|
82
|
+
thinkingLevel: model.thinkingLevel,
|
|
83
|
+
authStorage,
|
|
84
|
+
resourceLoader,
|
|
85
|
+
tools: createCodingTools(cwd),
|
|
86
|
+
sessionManager: SessionManager.inMemory(),
|
|
87
|
+
settingsManager,
|
|
88
|
+
});
|
|
89
|
+
// Subscribe to events for logging
|
|
90
|
+
const pendingCmds = new Map();
|
|
91
|
+
let outputText = "";
|
|
92
|
+
let currentTurnText = "";
|
|
93
|
+
let unrecoverableErrors = 0;
|
|
94
|
+
session.subscribe((event) => {
|
|
95
|
+
if (event.type === "message_update" && event.assistantMessageEvent?.type === "text_delta") {
|
|
96
|
+
const delta = event.assistantMessageEvent.delta;
|
|
97
|
+
outputText += delta;
|
|
98
|
+
currentTurnText += delta;
|
|
99
|
+
}
|
|
100
|
+
if (event.type === "message_end") {
|
|
101
|
+
if (currentTurnText.trim()) {
|
|
102
|
+
this.logger.info({ text: currentTurnText.trim() }, "assistant");
|
|
103
|
+
}
|
|
104
|
+
currentTurnText = "";
|
|
105
|
+
}
|
|
106
|
+
if (event.type === "tool_execution_start") {
|
|
107
|
+
const cmd = String(event.args?.command || "");
|
|
108
|
+
if (event.toolName === "bash") {
|
|
109
|
+
pendingCmds.set(event.toolCallId, cmd);
|
|
110
|
+
this.logger.info({ cmd: cmd.slice(0, 200) }, "bash");
|
|
111
|
+
}
|
|
112
|
+
else {
|
|
113
|
+
this.logger.debug({ tool: event.toolName }, "tool start");
|
|
114
|
+
}
|
|
115
|
+
}
|
|
116
|
+
if (event.type === "tool_execution_end") {
|
|
117
|
+
const resultStr = typeof event.result === "string"
|
|
118
|
+
? event.result
|
|
119
|
+
: JSON.stringify(event.result);
|
|
120
|
+
const originCmd = pendingCmds.get(event.toolCallId);
|
|
121
|
+
pendingCmds.delete(event.toolCallId);
|
|
122
|
+
if (event.isError) {
|
|
123
|
+
this.logger.error({ tool: event.toolName, result: resultStr.slice(0, 1000) }, "tool error");
|
|
124
|
+
// Extract a human-readable error message from the result
|
|
125
|
+
let errorMsg = resultStr;
|
|
126
|
+
try {
|
|
127
|
+
const parsed = JSON.parse(resultStr);
|
|
128
|
+
if (parsed?.content?.[0]?.text) {
|
|
129
|
+
errorMsg = parsed.content[0].text;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
catch { /* use raw string */ }
|
|
133
|
+
const cmdPrefix = originCmd ? `$ ${originCmd.slice(0, 80)} — ` : "";
|
|
134
|
+
const detail = `${cmdPrefix}${errorMsg.slice(0, 200)}`;
|
|
135
|
+
this.statusTracker?.setAgentError(this.agentConfig.name, detail);
|
|
136
|
+
this.statusTracker?.addLogLine(this.agentConfig.name, `ERROR: ${detail}`);
|
|
137
|
+
if (isUnrecoverableError(errorMsg)) {
|
|
138
|
+
unrecoverableErrors++;
|
|
139
|
+
if (unrecoverableErrors >= UNRECOVERABLE_THRESHOLD) {
|
|
140
|
+
this.logger.error("Aborting: repeated auth/permission failures — check credentials");
|
|
141
|
+
this.statusTracker?.addLogLine(this.agentConfig.name, "ABORT: repeated auth/permission failures — check credentials");
|
|
142
|
+
session.dispose();
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
else {
|
|
147
|
+
this.logger.debug({ tool: event.toolName, resultLength: resultStr.length }, "tool done");
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
});
|
|
151
|
+
// Retry on rate limit errors with exponential backoff
|
|
152
|
+
const MAX_PROMPT_RETRIES = 5;
|
|
153
|
+
const DEFAULT_BACKOFF_MS = 30_000;
|
|
154
|
+
const MAX_BACKOFF_MS = 300_000;
|
|
155
|
+
for (let attempt = 0; attempt <= MAX_PROMPT_RETRIES; attempt++) {
|
|
156
|
+
try {
|
|
157
|
+
await session.prompt(prompt);
|
|
158
|
+
break;
|
|
159
|
+
}
|
|
160
|
+
catch (promptErr) {
|
|
161
|
+
const msg = String(promptErr?.message || promptErr || "");
|
|
162
|
+
const isRateLimit = msg.includes("rate_limit") || msg.includes("429") || msg.includes("529") || msg.includes("overloaded");
|
|
163
|
+
if (!isRateLimit || attempt === MAX_PROMPT_RETRIES) {
|
|
164
|
+
throw promptErr;
|
|
165
|
+
}
|
|
166
|
+
const delayMs = Math.min(DEFAULT_BACKOFF_MS * Math.pow(2, attempt), MAX_BACKOFF_MS);
|
|
167
|
+
this.logger.warn({ attempt: attempt + 1, delayMs }, "rate limited, retrying prompt");
|
|
168
|
+
this.statusTracker?.addLogLine(this.agentConfig.name, `Rate limited, retrying in ${Math.round(delayMs / 1000)}s...`);
|
|
169
|
+
await new Promise((r) => setTimeout(r, delayMs));
|
|
170
|
+
}
|
|
171
|
+
}
|
|
172
|
+
session.dispose();
|
|
173
|
+
// Read signal files
|
|
174
|
+
const signals = readSignals(signalDir);
|
|
175
|
+
// Clean up signal dir and restore PATH
|
|
176
|
+
if (savedPath !== undefined) {
|
|
177
|
+
process.env.PATH = savedPath;
|
|
178
|
+
}
|
|
179
|
+
delete process.env.AL_SIGNAL_DIR;
|
|
180
|
+
try {
|
|
181
|
+
rmSync(signalTmpDir, { recursive: true, force: true });
|
|
182
|
+
}
|
|
183
|
+
catch { /* best-effort */ }
|
|
184
|
+
let result;
|
|
185
|
+
if (signals.rerun) {
|
|
186
|
+
this.logger.info({ outputLength: outputText.length }, "run completed, rerun requested");
|
|
187
|
+
result = "rerun";
|
|
188
|
+
}
|
|
189
|
+
else {
|
|
190
|
+
this.logger.info({ outputLength: outputText.length }, "run completed");
|
|
191
|
+
result = "completed";
|
|
192
|
+
}
|
|
193
|
+
return { result, outputText, unrecoverableErrors };
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
//# sourceMappingURL=execution-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"execution-engine.js","sourceRoot":"","sources":["../../src/agents/execution-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { Logger } from "../shared/logger.js";
|
|
2
|
+
export interface SavedEnv {
|
|
3
|
+
[key: string]: string | undefined;
|
|
4
|
+
}
|
|
5
|
+
export declare class GitEnvironment {
|
|
6
|
+
private logger;
|
|
7
|
+
constructor(logger: Logger);
|
|
8
|
+
/**
|
|
9
|
+
* Sets up git environment variables from credentials
|
|
10
|
+
* Returns the previous values so they can be restored later
|
|
11
|
+
*/
|
|
12
|
+
setup(credentials: string[]): Promise<SavedEnv>;
|
|
13
|
+
/**
|
|
14
|
+
* Restores git environment variables to their previous values
|
|
15
|
+
*/
|
|
16
|
+
restore(saved: SavedEnv): void;
|
|
17
|
+
}
|
|
18
|
+
//# sourceMappingURL=git-environment.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-environment.d.ts","sourceRoot":"","sources":["../../src/agents/git-environment.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AASlD,MAAM,WAAW,QAAQ;IACvB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAAC;CACnC;AAED,qBAAa,cAAc;IACzB,OAAO,CAAC,MAAM,CAAS;gBAEX,MAAM,EAAE,MAAM;IAI1B;;;OAGG;IACG,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,QAAQ,CAAC;IAgCrD;;OAEG;IACH,OAAO,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;CAW/B"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { parseCredentialRef, loadCredentialField } from "../shared/credentials.js";
|
|
2
|
+
const GIT_ENV_KEYS = [
|
|
3
|
+
"GIT_AUTHOR_NAME",
|
|
4
|
+
"GIT_COMMITTER_NAME",
|
|
5
|
+
"GIT_AUTHOR_EMAIL",
|
|
6
|
+
"GIT_COMMITTER_EMAIL",
|
|
7
|
+
];
|
|
8
|
+
export class GitEnvironment {
|
|
9
|
+
logger;
|
|
10
|
+
constructor(logger) {
|
|
11
|
+
this.logger = logger;
|
|
12
|
+
}
|
|
13
|
+
/**
|
|
14
|
+
* Sets up git environment variables from credentials
|
|
15
|
+
* Returns the previous values so they can be restored later
|
|
16
|
+
*/
|
|
17
|
+
async setup(credentials) {
|
|
18
|
+
// Save current git env vars so they can be restored later
|
|
19
|
+
const savedGitEnv = {};
|
|
20
|
+
for (const key of GIT_ENV_KEYS) {
|
|
21
|
+
savedGitEnv[key] = process.env[key];
|
|
22
|
+
}
|
|
23
|
+
// Set git author identity from git_ssh credential (scoped to this run)
|
|
24
|
+
const gitSshRef = credentials.find((ref) => parseCredentialRef(ref).type === "git_ssh");
|
|
25
|
+
if (gitSshRef) {
|
|
26
|
+
const { instance } = parseCredentialRef(gitSshRef);
|
|
27
|
+
try {
|
|
28
|
+
const gitName = await loadCredentialField("git_ssh", instance, "username");
|
|
29
|
+
if (gitName) {
|
|
30
|
+
process.env.GIT_AUTHOR_NAME = gitName;
|
|
31
|
+
process.env.GIT_COMMITTER_NAME = gitName;
|
|
32
|
+
this.logger.debug({ gitName }, "Set git author name from credential");
|
|
33
|
+
}
|
|
34
|
+
const gitEmail = await loadCredentialField("git_ssh", instance, "email");
|
|
35
|
+
if (gitEmail) {
|
|
36
|
+
process.env.GIT_AUTHOR_EMAIL = gitEmail;
|
|
37
|
+
process.env.GIT_COMMITTER_EMAIL = gitEmail;
|
|
38
|
+
this.logger.debug({ gitEmail }, "Set git author email from credential");
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
catch (err) {
|
|
42
|
+
this.logger.warn({ err, gitSshRef }, "Failed to load git SSH credential");
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
return savedGitEnv;
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Restores git environment variables to their previous values
|
|
49
|
+
*/
|
|
50
|
+
restore(saved) {
|
|
51
|
+
// Restore the git env vars we may have overwritten so other
|
|
52
|
+
// agents running in the same process get a clean slate.
|
|
53
|
+
for (const key of GIT_ENV_KEYS) {
|
|
54
|
+
if (saved[key] === undefined) {
|
|
55
|
+
delete process.env[key];
|
|
56
|
+
}
|
|
57
|
+
else {
|
|
58
|
+
process.env[key] = saved[key];
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
//# sourceMappingURL=git-environment.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"git-environment.js","sourceRoot":"","sources":["../../src/agents/git-environment.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AAGnF,MAAM,YAAY,GAAG;IACnB,iBAAiB;IACjB,oBAAoB;IACpB,kBAAkB;IAClB,qBAAqB;CACb,CAAC;AAMX,MAAM,OAAO,cAAc;IACjB,MAAM,CAAS;IAEvB,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,KAAK,CAAC,WAAqB;QAC/B,0DAA0D;QAC1D,MAAM,WAAW,GAAa,EAAE,CAAC;QACjC,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,WAAW,CAAC,GAAG,CAAC,GAAG,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;QACtC,CAAC;QAED,uEAAuE;QACvE,MAAM,SAAS,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,kBAAkB,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC;QACxF,IAAI,SAAS,EAAE,CAAC;YACd,MAAM,EAAE,QAAQ,EAAE,GAAG,kBAAkB,CAAC,SAAS,CAAC,CAAC;YACnD,IAAI,CAAC;gBACH,MAAM,OAAO,GAAG,MAAM,mBAAmB,CAAC,SAAS,EAAE,QAAQ,EAAE,UAAU,CAAC,CAAC;gBAC3E,IAAI,OAAO,EAAE,CAAC;oBACZ,OAAO,CAAC,GAAG,CAAC,eAAe,GAAG,OAAO,CAAC;oBACtC,OAAO,CAAC,GAAG,CAAC,kBAAkB,GAAG,OAAO,CAAC;oBACzC,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,EAAE,EAAE,qCAAqC,CAAC,CAAC;gBACxE,CAAC;gBACD,MAAM,QAAQ,GAAG,MAAM,mBAAmB,CAAC,SAAS,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;gBACzE,IAAI,QAAQ,EAAE,CAAC;oBACb,OAAO,CAAC,GAAG,CAAC,gBAAgB,GAAG,QAAQ,CAAC;oBACxC,OAAO,CAAC,GAAG,CAAC,mBAAmB,GAAG,QAAQ,CAAC;oBAC3C,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,QAAQ,EAAE,EAAE,sCAAsC,CAAC,CAAC;gBAC1E,CAAC;YACH,CAAC;YAAC,OAAO,GAAG,EAAE,CAAC;gBACb,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE,SAAS,EAAE,EAAE,mCAAmC,CAAC,CAAC;YAC5E,CAAC;QACH,CAAC;QAED,OAAO,WAAW,CAAC;IACrB,CAAC;IAED;;OAEG;IACH,OAAO,CAAC,KAAe;QACrB,4DAA4D;QAC5D,wDAAwD;QACxD,KAAK,MAAM,GAAG,IAAI,YAAY,EAAE,CAAC;YAC/B,IAAI,KAAK,CAAC,GAAG,CAAC,KAAK,SAAS,EAAE,CAAC;gBAC7B,OAAO,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
@@ -54,7 +54,7 @@ async function main() {
|
|
|
54
54
|
body: JSON.stringify({ statusCode: exitCode === 0 ? 200 : exitCode }),
|
|
55
55
|
});
|
|
56
56
|
// Exit with the agent's exit code so Lambda's REPORT line reflects
|
|
57
|
-
// success/failure and the scheduler can detect
|
|
57
|
+
// success/failure and the scheduler can detect rerun (exit 42).
|
|
58
58
|
process.exit(exitCode);
|
|
59
59
|
}
|
|
60
60
|
catch (err) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lambda-handler.js","sourceRoot":"","sources":["../../src/agents/lambda-handler.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAEH,MAAM,WAAW,GAAG,OAAO,CAAC,GAAG,CAAC,sBAAsB,CAAC;AAEvD,SAAS,OAAO,CAAC,KAAa,EAAE,GAAW,EAAE,IAA0B;IACrE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,CAAC;AACnF,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,IAAI,CAAC,WAAW,EAAE,CAAC;QACjB,MAAM,IAAI,KAAK,CAAC,sEAAsE,CAAC,CAAC;IAC1F,CAAC;IAED,iEAAiE;IACjE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,MAAM,CAAC,sBAAsB,CAAC,CAAC;IAE1D,uEAAuE;IACvE,qEAAqE;IACrE,OAAO,IAAI,EAAE,CAAC;QACZ,kDAAkD;QAClD,MAAM,OAAO,GAAG,MAAM,KAAK,CACzB,UAAU,WAAW,qCAAqC,CAC3D,CAAC;QACF,MAAM,SAAS,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,+BAA+B,CAAC,CAAC;QACvE,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,OAAO,CAAC,OAAO,EAAE,6CAA6C,CAAC,CAAC;YAChE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;QAED,IAAI,CAAC;YACH,oEAAoE;YACpE,wEAAwE;YACxE,qDAAqD;YACrD,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,MAAM,OAAO,CAAC,IAAI,EAAyB,CAAC;gBACzD,IAAI,IAAI,EAAE,OAAO,IAAI,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;oBACtD,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC;wBACxD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;4BAC9B,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;wBAC3B,CAAC;oBACH,CAAC;gBACH,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,+DAA+D;YACjE,CAAC;YAED,MAAM,QAAQ,GAAG,MAAM,QAAQ,EAAE,CAAC;YAElC,MAAM,KAAK,CACT,UAAU,WAAW,kCAAkC,SAAS,WAAW,EAC3E;gBACE,MAAM,EAAE,MAAM;gBACd,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,UAAU,EAAE,QAAQ,KAAK,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC;aACtE,CACF,CAAC;YAEF,mEAAmE;YACnE,
|
|
1
|
+
{"version":3,"file":"lambda-handler.js","sourceRoot":"","sources":["../../src/agents/lambda-handler.ts"],"names":[],"mappings":"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"}
|
package/dist/agents/prompt.d.ts
CHANGED
|
@@ -2,8 +2,10 @@ import type { AgentConfig } from "../shared/config.js";
|
|
|
2
2
|
import type { WebhookContext } from "../webhooks/types.js";
|
|
3
3
|
export interface PromptSkills {
|
|
4
4
|
locking?: boolean;
|
|
5
|
+
calling?: boolean;
|
|
5
6
|
}
|
|
6
7
|
export declare function buildLockSkill(): string;
|
|
8
|
+
export declare function buildCallSkill(): string;
|
|
7
9
|
export declare function buildCredentialContext(credentials: string[]): string;
|
|
8
10
|
/**
|
|
9
11
|
* Build the static portion of the prompt that is identical across all trigger types.
|
|
@@ -17,10 +19,10 @@ export declare function buildPromptSkeleton(agentConfig: AgentConfig, skills?: P
|
|
|
17
19
|
*/
|
|
18
20
|
export declare function buildScheduledSuffix(): string;
|
|
19
21
|
export declare function buildManualSuffix(): string;
|
|
20
|
-
export declare function
|
|
22
|
+
export declare function buildCalledSuffix(callerAgent: string, context: string): string;
|
|
21
23
|
export declare function buildWebhookSuffix(context: WebhookContext): string;
|
|
22
24
|
export declare function buildScheduledPrompt(agentConfig: AgentConfig, skills?: PromptSkills): string;
|
|
23
25
|
export declare function buildManualPrompt(agentConfig: AgentConfig, skills?: PromptSkills): string;
|
|
24
|
-
export declare function
|
|
26
|
+
export declare function buildCalledPrompt(agentConfig: AgentConfig, callerAgent: string, context: string, skills?: PromptSkills): string;
|
|
25
27
|
export declare function buildWebhookPrompt(agentConfig: AgentConfig, context: WebhookContext, skills?: PromptSkills): string;
|
|
26
28
|
//# sourceMappingURL=prompt.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/agents/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAK3D,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,cAAc,IAAI,MAAM,CA8CvC;AAMD,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,CAkCpE;
|
|
1
|
+
{"version":3,"file":"prompt.d.ts","sourceRoot":"","sources":["../../src/agents/prompt.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAK3D,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,wBAAgB,cAAc,IAAI,MAAM,CA8CvC;AAED,wBAAgB,cAAc,IAAI,MAAM,CAgDvC;AAMD,wBAAgB,sBAAsB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,MAAM,CAkCpE;AAwBD;;;;GAIG;AACH,wBAAgB,mBAAmB,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,CAM3F;AAED;;;GAGG;AACH,wBAAgB,oBAAoB,IAAI,MAAM,CAE7C;AAED,wBAAgB,iBAAiB,IAAI,MAAM,CAE1C;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAG9E;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,cAAc,GAAG,MAAM,CAGlE;AAED,wBAAgB,oBAAoB,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,CAE5F;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,CAEzF;AAED,wBAAgB,iBAAiB,CAAC,WAAW,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,CAE/H;AAED,wBAAgB,kBAAkB,CAAC,WAAW,EAAE,WAAW,EAAE,OAAO,EAAE,cAAc,EAAE,MAAM,CAAC,EAAE,YAAY,GAAG,MAAM,CAEnH"}
|
package/dist/agents/prompt.js
CHANGED
|
@@ -47,6 +47,55 @@ export function buildLockSkill() {
|
|
|
47
47
|
];
|
|
48
48
|
return lines.join("\n");
|
|
49
49
|
}
|
|
50
|
+
export function buildCallSkill() {
|
|
51
|
+
const lines = [
|
|
52
|
+
"<skill-call>",
|
|
53
|
+
"## Skill: Agent-to-Agent Calls",
|
|
54
|
+
"",
|
|
55
|
+
"Call other agents and retrieve their results. Calls are **non-blocking** — fire a call, continue working, then check or wait for results.",
|
|
56
|
+
"",
|
|
57
|
+
"### Commands",
|
|
58
|
+
"",
|
|
59
|
+
'**`al-call <agent>`** — Call another agent. Pass the context via stdin. Returns a call ID.',
|
|
60
|
+
"```",
|
|
61
|
+
'CALL_ID=$(echo "find competitors for Acme" | al-call researcher | jq -r .callId)',
|
|
62
|
+
"```",
|
|
63
|
+
"",
|
|
64
|
+
"**`al-check <callId>`** — Check the status of a call. Never blocks.",
|
|
65
|
+
"```",
|
|
66
|
+
'al-check "$CALL_ID"',
|
|
67
|
+
"```",
|
|
68
|
+
'- Running: `{"status":"running"}`',
|
|
69
|
+
'- Completed: `{"status":"completed","returnValue":"..."}`',
|
|
70
|
+
'- Error: `{"status":"error","errorMessage":"..."}`',
|
|
71
|
+
"",
|
|
72
|
+
"**`al-wait <callId> [callId...] [--timeout N]`** — Wait for one or more calls to complete. Default timeout: 900s.",
|
|
73
|
+
"```",
|
|
74
|
+
'RESULTS=$(al-wait "$CALL_ID1" "$CALL_ID2" --timeout 600)',
|
|
75
|
+
"```",
|
|
76
|
+
"Returns a JSON object keyed by call ID with each call's final status.",
|
|
77
|
+
"",
|
|
78
|
+
"### Returning Values",
|
|
79
|
+
"",
|
|
80
|
+
"When you are called by another agent, return your result with the `al-return` command:",
|
|
81
|
+
"```",
|
|
82
|
+
'al-return "Your result text here"',
|
|
83
|
+
"```",
|
|
84
|
+
"For multiline results, pipe via stdin:",
|
|
85
|
+
"```",
|
|
86
|
+
'echo "Line 1\\nLine 2" | al-return',
|
|
87
|
+
"```",
|
|
88
|
+
"",
|
|
89
|
+
"### Guidelines",
|
|
90
|
+
"- Calls are non-blocking — fire multiple calls then wait for all at once",
|
|
91
|
+
"- Use `al-wait` to wait for multiple calls efficiently",
|
|
92
|
+
"- Use `al-check` for polling when you want to do work between checks",
|
|
93
|
+
"- Called agents cannot call back to the calling agent (no cycles)",
|
|
94
|
+
"- There is a depth limit on nested calls to prevent infinite chains",
|
|
95
|
+
"</skill-call>",
|
|
96
|
+
];
|
|
97
|
+
return lines.join("\n");
|
|
98
|
+
}
|
|
50
99
|
function buildConfigBlock(agentConfig) {
|
|
51
100
|
return JSON.stringify(agentConfig.params ?? {});
|
|
52
101
|
}
|
|
@@ -98,6 +147,9 @@ function buildSkillsBlock(skills) {
|
|
|
98
147
|
if (skills.locking) {
|
|
99
148
|
blocks.push(buildLockSkill());
|
|
100
149
|
}
|
|
150
|
+
if (skills.calling) {
|
|
151
|
+
blocks.push(buildCallSkill());
|
|
152
|
+
}
|
|
101
153
|
return blocks.length > 0 ? "\n\n" + blocks.join("\n\n") : "";
|
|
102
154
|
}
|
|
103
155
|
/**
|
|
@@ -122,9 +174,9 @@ export function buildScheduledSuffix() {
|
|
|
122
174
|
export function buildManualSuffix() {
|
|
123
175
|
return "You have been triggered manually. Check for new work and act on anything you find.";
|
|
124
176
|
}
|
|
125
|
-
export function
|
|
126
|
-
const
|
|
127
|
-
return `<agent-
|
|
177
|
+
export function buildCalledSuffix(callerAgent, context) {
|
|
178
|
+
const callBlock = JSON.stringify({ caller: callerAgent, context });
|
|
179
|
+
return `<agent-call>\n${callBlock}\n</agent-call>\n\nYou were called by the "${callerAgent}" agent. Review the call context above, do the requested work, and use \`al-return\` to send back your result.`;
|
|
128
180
|
}
|
|
129
181
|
export function buildWebhookSuffix(context) {
|
|
130
182
|
const webhookBlock = JSON.stringify(context);
|
|
@@ -136,8 +188,8 @@ export function buildScheduledPrompt(agentConfig, skills) {
|
|
|
136
188
|
export function buildManualPrompt(agentConfig, skills) {
|
|
137
189
|
return `${buildPromptSkeleton(agentConfig, skills)}\n\n${buildManualSuffix()}`;
|
|
138
190
|
}
|
|
139
|
-
export function
|
|
140
|
-
return `${buildPromptSkeleton(agentConfig, skills)}\n\n${
|
|
191
|
+
export function buildCalledPrompt(agentConfig, callerAgent, context, skills) {
|
|
192
|
+
return `${buildPromptSkeleton(agentConfig, skills)}\n\n${buildCalledSuffix(callerAgent, context)}`;
|
|
141
193
|
}
|
|
142
194
|
export function buildWebhookPrompt(agentConfig, context, skills) {
|
|
143
195
|
return `${buildPromptSkeleton(agentConfig, skills)}\n\n${buildWebhookSuffix(context)}`;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/agents/prompt.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"prompt.js","sourceRoot":"","sources":["../../src/agents/prompt.ts"],"names":[],"mappings":"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"}
|
package/dist/agents/runner.d.ts
CHANGED
|
@@ -9,6 +9,9 @@ export interface TriggerRequest {
|
|
|
9
9
|
export interface RunOutcome {
|
|
10
10
|
result: RunResult;
|
|
11
11
|
triggers: TriggerRequest[];
|
|
12
|
+
returnValue?: string;
|
|
13
|
+
exitCode?: number;
|
|
14
|
+
exitReason?: string;
|
|
12
15
|
}
|
|
13
16
|
export declare class AgentRunner {
|
|
14
17
|
private running;
|
|
@@ -16,8 +19,11 @@ export declare class AgentRunner {
|
|
|
16
19
|
private logger;
|
|
17
20
|
private projectPath;
|
|
18
21
|
private statusTracker?;
|
|
19
|
-
|
|
22
|
+
readonly instanceId: string;
|
|
23
|
+
private abortController;
|
|
24
|
+
constructor(agentConfig: AgentConfig, logger: Logger, projectPath: string, statusTracker?: StatusTracker, instanceId?: string);
|
|
20
25
|
get isRunning(): boolean;
|
|
26
|
+
abort(): void;
|
|
21
27
|
run(prompt: string, triggerInfo?: {
|
|
22
28
|
type: 'schedule' | 'webhook' | 'agent';
|
|
23
29
|
source?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/agents/runner.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../../src/agents/runner.ts"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAGlD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,0BAA0B,CAAC;AAqB9D,MAAM,MAAM,SAAS,GAAG,WAAW,GAAG,OAAO,GAAG,OAAO,CAAC;AAExD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,UAAU;IACzB,MAAM,EAAE,SAAS,CAAC;IAClB,QAAQ,EAAE,cAAc,EAAE,CAAC;IAC3B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAGD,qBAAa,WAAW;IACtB,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,aAAa,CAAC,CAAgB;IACtC,SAAgB,UAAU,EAAE,MAAM,CAAC;IACnC,OAAO,CAAC,eAAe,CAAkB;gBAE7B,WAAW,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,EAAE,aAAa,CAAC,EAAE,aAAa,EAAE,UAAU,CAAC,EAAE,MAAM;IAS7H,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,KAAK,IAAI,IAAI;IAKP,GAAG,CAAC,MAAM,EAAE,MAAM,EAAE,WAAW,CAAC,EAAE;QAAE,IAAI,EAAE,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,UAAU,CAAC;CA6Q1H"}
|