@praveencs/agent 0.1.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/README.md +1007 -0
- package/bin/agent.ts +6 -0
- package/dist/bin/agent.d.ts +3 -0
- package/dist/bin/agent.d.ts.map +1 -0
- package/dist/bin/agent.js +5 -0
- package/dist/bin/agent.js.map +1 -0
- package/dist/src/cli/commands/config.d.ts +3 -0
- package/dist/src/cli/commands/config.d.ts.map +1 -0
- package/dist/src/cli/commands/config.js +54 -0
- package/dist/src/cli/commands/config.js.map +1 -0
- package/dist/src/cli/commands/daemon.d.ts +3 -0
- package/dist/src/cli/commands/daemon.d.ts.map +1 -0
- package/dist/src/cli/commands/daemon.js +43 -0
- package/dist/src/cli/commands/daemon.js.map +1 -0
- package/dist/src/cli/commands/doctor.d.ts +3 -0
- package/dist/src/cli/commands/doctor.d.ts.map +1 -0
- package/dist/src/cli/commands/doctor.js +84 -0
- package/dist/src/cli/commands/doctor.js.map +1 -0
- package/dist/src/cli/commands/init.d.ts +8 -0
- package/dist/src/cli/commands/init.d.ts.map +1 -0
- package/dist/src/cli/commands/init.js +112 -0
- package/dist/src/cli/commands/init.js.map +1 -0
- package/dist/src/cli/commands/mcp.d.ts +3 -0
- package/dist/src/cli/commands/mcp.d.ts.map +1 -0
- package/dist/src/cli/commands/mcp.js +26 -0
- package/dist/src/cli/commands/mcp.js.map +1 -0
- package/dist/src/cli/commands/plan.d.ts +3 -0
- package/dist/src/cli/commands/plan.d.ts.map +1 -0
- package/dist/src/cli/commands/plan.js +220 -0
- package/dist/src/cli/commands/plan.js.map +1 -0
- package/dist/src/cli/commands/run.d.ts +3 -0
- package/dist/src/cli/commands/run.d.ts.map +1 -0
- package/dist/src/cli/commands/run.js +192 -0
- package/dist/src/cli/commands/run.js.map +1 -0
- package/dist/src/cli/commands/skills.d.ts +3 -0
- package/dist/src/cli/commands/skills.d.ts.map +1 -0
- package/dist/src/cli/commands/skills.js +143 -0
- package/dist/src/cli/commands/skills.js.map +1 -0
- package/dist/src/cli/index.d.ts +6 -0
- package/dist/src/cli/index.d.ts.map +1 -0
- package/dist/src/cli/index.js +33 -0
- package/dist/src/cli/index.js.map +1 -0
- package/dist/src/cli/ui/progress.d.ts +17 -0
- package/dist/src/cli/ui/progress.d.ts.map +1 -0
- package/dist/src/cli/ui/progress.js +43 -0
- package/dist/src/cli/ui/progress.js.map +1 -0
- package/dist/src/cli/ui/prompt.d.ts +10 -0
- package/dist/src/cli/ui/prompt.d.ts.map +1 -0
- package/dist/src/cli/ui/prompt.js +53 -0
- package/dist/src/cli/ui/prompt.js.map +1 -0
- package/dist/src/cli/ui/report.d.ts +6 -0
- package/dist/src/cli/ui/report.d.ts.map +1 -0
- package/dist/src/cli/ui/report.js +81 -0
- package/dist/src/cli/ui/report.js.map +1 -0
- package/dist/src/config/defaults.d.ts +3 -0
- package/dist/src/config/defaults.d.ts.map +1 -0
- package/dist/src/config/defaults.js +82 -0
- package/dist/src/config/defaults.js.map +1 -0
- package/dist/src/config/loader.d.ts +33 -0
- package/dist/src/config/loader.d.ts.map +1 -0
- package/dist/src/config/loader.js +161 -0
- package/dist/src/config/loader.js.map +1 -0
- package/dist/src/config/schema.d.ts +530 -0
- package/dist/src/config/schema.d.ts.map +1 -0
- package/dist/src/config/schema.js +97 -0
- package/dist/src/config/schema.js.map +1 -0
- package/dist/src/config/secrets.d.ts +31 -0
- package/dist/src/config/secrets.d.ts.map +1 -0
- package/dist/src/config/secrets.js +98 -0
- package/dist/src/config/secrets.js.map +1 -0
- package/dist/src/daemon/manager.d.ts +28 -0
- package/dist/src/daemon/manager.d.ts.map +1 -0
- package/dist/src/daemon/manager.js +77 -0
- package/dist/src/daemon/manager.js.map +1 -0
- package/dist/src/daemon/scheduler.d.ts +6 -0
- package/dist/src/daemon/scheduler.d.ts.map +1 -0
- package/dist/src/daemon/scheduler.js +82 -0
- package/dist/src/daemon/scheduler.js.map +1 -0
- package/dist/src/daemon/watcher.d.ts +16 -0
- package/dist/src/daemon/watcher.d.ts.map +1 -0
- package/dist/src/daemon/watcher.js +59 -0
- package/dist/src/daemon/watcher.js.map +1 -0
- package/dist/src/engine/executor.d.ts +51 -0
- package/dist/src/engine/executor.d.ts.map +1 -0
- package/dist/src/engine/executor.js +189 -0
- package/dist/src/engine/executor.js.map +1 -0
- package/dist/src/engine/rollback.d.ts +37 -0
- package/dist/src/engine/rollback.d.ts.map +1 -0
- package/dist/src/engine/rollback.js +95 -0
- package/dist/src/engine/rollback.js.map +1 -0
- package/dist/src/engine/types.d.ts +31 -0
- package/dist/src/engine/types.d.ts.map +1 -0
- package/dist/src/engine/types.js +2 -0
- package/dist/src/engine/types.js.map +1 -0
- package/dist/src/engine/verification.d.ts +27 -0
- package/dist/src/engine/verification.d.ts.map +1 -0
- package/dist/src/engine/verification.js +75 -0
- package/dist/src/engine/verification.js.map +1 -0
- package/dist/src/index.d.ts +17 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +13 -0
- package/dist/src/index.js.map +1 -0
- package/dist/src/llm/cache.d.ts +20 -0
- package/dist/src/llm/cache.d.ts.map +1 -0
- package/dist/src/llm/cache.js +45 -0
- package/dist/src/llm/cache.js.map +1 -0
- package/dist/src/llm/providers/anthropic.d.ts +13 -0
- package/dist/src/llm/providers/anthropic.d.ts.map +1 -0
- package/dist/src/llm/providers/anthropic.js +69 -0
- package/dist/src/llm/providers/anthropic.js.map +1 -0
- package/dist/src/llm/providers/azure.d.ts +14 -0
- package/dist/src/llm/providers/azure.d.ts.map +1 -0
- package/dist/src/llm/providers/azure.js +98 -0
- package/dist/src/llm/providers/azure.js.map +1 -0
- package/dist/src/llm/providers/ollama.d.ts +13 -0
- package/dist/src/llm/providers/ollama.d.ts.map +1 -0
- package/dist/src/llm/providers/ollama.js +80 -0
- package/dist/src/llm/providers/ollama.js.map +1 -0
- package/dist/src/llm/providers/openai.d.ts +13 -0
- package/dist/src/llm/providers/openai.d.ts.map +1 -0
- package/dist/src/llm/providers/openai.js +74 -0
- package/dist/src/llm/providers/openai.js.map +1 -0
- package/dist/src/llm/router.d.ts +26 -0
- package/dist/src/llm/router.d.ts.map +1 -0
- package/dist/src/llm/router.js +104 -0
- package/dist/src/llm/router.js.map +1 -0
- package/dist/src/llm/types.d.ts +44 -0
- package/dist/src/llm/types.d.ts.map +1 -0
- package/dist/src/llm/types.js +2 -0
- package/dist/src/llm/types.js.map +1 -0
- package/dist/src/logging/audit-log.d.ts +89 -0
- package/dist/src/logging/audit-log.d.ts.map +1 -0
- package/dist/src/logging/audit-log.js +132 -0
- package/dist/src/logging/audit-log.js.map +1 -0
- package/dist/src/logging/logger.d.ts +13 -0
- package/dist/src/logging/logger.d.ts.map +1 -0
- package/dist/src/logging/logger.js +57 -0
- package/dist/src/logging/logger.js.map +1 -0
- package/dist/src/logging/redactor.d.ts +14 -0
- package/dist/src/logging/redactor.d.ts.map +1 -0
- package/dist/src/logging/redactor.js +48 -0
- package/dist/src/logging/redactor.js.map +1 -0
- package/dist/src/mcp/handlers.d.ts +21 -0
- package/dist/src/mcp/handlers.d.ts.map +1 -0
- package/dist/src/mcp/handlers.js +156 -0
- package/dist/src/mcp/handlers.js.map +1 -0
- package/dist/src/mcp/server.d.ts +8 -0
- package/dist/src/mcp/server.d.ts.map +1 -0
- package/dist/src/mcp/server.js +40 -0
- package/dist/src/mcp/server.js.map +1 -0
- package/dist/src/mcp/types.d.ts +20 -0
- package/dist/src/mcp/types.d.ts.map +1 -0
- package/dist/src/mcp/types.js +2 -0
- package/dist/src/mcp/types.js.map +1 -0
- package/dist/src/plans/parser.d.ts +33 -0
- package/dist/src/plans/parser.d.ts.map +1 -0
- package/dist/src/plans/parser.js +93 -0
- package/dist/src/plans/parser.js.map +1 -0
- package/dist/src/plans/propose.d.ts +26 -0
- package/dist/src/plans/propose.d.ts.map +1 -0
- package/dist/src/plans/propose.js +85 -0
- package/dist/src/plans/propose.js.map +1 -0
- package/dist/src/plans/runner.d.ts +19 -0
- package/dist/src/plans/runner.d.ts.map +1 -0
- package/dist/src/plans/runner.js +159 -0
- package/dist/src/plans/runner.js.map +1 -0
- package/dist/src/plans/triggers.d.ts +12 -0
- package/dist/src/plans/triggers.d.ts.map +1 -0
- package/dist/src/plans/triggers.js +43 -0
- package/dist/src/plans/triggers.js.map +1 -0
- package/dist/src/plans/types.d.ts +454 -0
- package/dist/src/plans/types.d.ts.map +1 -0
- package/dist/src/plans/types.js +56 -0
- package/dist/src/plans/types.js.map +1 -0
- package/dist/src/policy/audit.d.ts +35 -0
- package/dist/src/policy/audit.d.ts.map +1 -0
- package/dist/src/policy/audit.js +39 -0
- package/dist/src/policy/audit.js.map +1 -0
- package/dist/src/policy/engine.d.ts +35 -0
- package/dist/src/policy/engine.d.ts.map +1 -0
- package/dist/src/policy/engine.js +134 -0
- package/dist/src/policy/engine.js.map +1 -0
- package/dist/src/policy/scope.d.ts +27 -0
- package/dist/src/policy/scope.d.ts.map +1 -0
- package/dist/src/policy/scope.js +89 -0
- package/dist/src/policy/scope.js.map +1 -0
- package/dist/src/policy/types.d.ts +15 -0
- package/dist/src/policy/types.d.ts.map +1 -0
- package/dist/src/policy/types.js +2 -0
- package/dist/src/policy/types.js.map +1 -0
- package/dist/src/self-extend/generator.d.ts +27 -0
- package/dist/src/self-extend/generator.d.ts.map +1 -0
- package/dist/src/self-extend/generator.js +107 -0
- package/dist/src/self-extend/generator.js.map +1 -0
- package/dist/src/self-extend/publisher.d.ts +5 -0
- package/dist/src/self-extend/publisher.d.ts.map +1 -0
- package/dist/src/self-extend/publisher.js +40 -0
- package/dist/src/self-extend/publisher.js.map +1 -0
- package/dist/src/self-extend/sandbox.d.ts +10 -0
- package/dist/src/self-extend/sandbox.d.ts.map +1 -0
- package/dist/src/self-extend/sandbox.js +22 -0
- package/dist/src/self-extend/sandbox.js.map +1 -0
- package/dist/src/skills/hub/lockfile.d.ts +15 -0
- package/dist/src/skills/hub/lockfile.d.ts.map +1 -0
- package/dist/src/skills/hub/lockfile.js +13 -0
- package/dist/src/skills/hub/lockfile.js.map +1 -0
- package/dist/src/skills/hub/publisher.d.ts +7 -0
- package/dist/src/skills/hub/publisher.d.ts.map +1 -0
- package/dist/src/skills/hub/publisher.js +10 -0
- package/dist/src/skills/hub/publisher.js.map +1 -0
- package/dist/src/skills/hub/registry.d.ts +16 -0
- package/dist/src/skills/hub/registry.d.ts.map +1 -0
- package/dist/src/skills/hub/registry.js +24 -0
- package/dist/src/skills/hub/registry.js.map +1 -0
- package/dist/src/skills/index.d.ts +12 -0
- package/dist/src/skills/index.d.ts.map +1 -0
- package/dist/src/skills/index.js +82 -0
- package/dist/src/skills/index.js.map +1 -0
- package/dist/src/skills/lifecycle.d.ts +19 -0
- package/dist/src/skills/lifecycle.d.ts.map +1 -0
- package/dist/src/skills/lifecycle.js +48 -0
- package/dist/src/skills/lifecycle.js.map +1 -0
- package/dist/src/skills/loader.d.ts +43 -0
- package/dist/src/skills/loader.d.ts.map +1 -0
- package/dist/src/skills/loader.js +142 -0
- package/dist/src/skills/loader.js.map +1 -0
- package/dist/src/skills/runner.d.ts +43 -0
- package/dist/src/skills/runner.d.ts.map +1 -0
- package/dist/src/skills/runner.js +198 -0
- package/dist/src/skills/runner.js.map +1 -0
- package/dist/src/skills/types.d.ts +150 -0
- package/dist/src/skills/types.d.ts.map +1 -0
- package/dist/src/skills/types.js +31 -0
- package/dist/src/skills/types.js.map +1 -0
- package/dist/src/skills/validator.d.ts +19 -0
- package/dist/src/skills/validator.d.ts.map +1 -0
- package/dist/src/skills/validator.js +92 -0
- package/dist/src/skills/validator.js.map +1 -0
- package/dist/src/tools/core/cmd.d.ts +24 -0
- package/dist/src/tools/core/cmd.d.ts.map +1 -0
- package/dist/src/tools/core/cmd.js +55 -0
- package/dist/src/tools/core/cmd.js.map +1 -0
- package/dist/src/tools/core/fs.d.ts +76 -0
- package/dist/src/tools/core/fs.d.ts.map +1 -0
- package/dist/src/tools/core/fs.js +173 -0
- package/dist/src/tools/core/fs.js.map +1 -0
- package/dist/src/tools/core/git.d.ts +62 -0
- package/dist/src/tools/core/git.d.ts.map +1 -0
- package/dist/src/tools/core/git.js +138 -0
- package/dist/src/tools/core/git.js.map +1 -0
- package/dist/src/tools/core/project.d.ts +17 -0
- package/dist/src/tools/core/project.d.ts.map +1 -0
- package/dist/src/tools/core/project.js +104 -0
- package/dist/src/tools/core/project.js.map +1 -0
- package/dist/src/tools/plugins/loader.d.ts +13 -0
- package/dist/src/tools/plugins/loader.d.ts.map +1 -0
- package/dist/src/tools/plugins/loader.js +36 -0
- package/dist/src/tools/plugins/loader.js.map +1 -0
- package/dist/src/tools/registry.d.ts +38 -0
- package/dist/src/tools/registry.d.ts.map +1 -0
- package/dist/src/tools/registry.js +118 -0
- package/dist/src/tools/registry.js.map +1 -0
- package/dist/src/tools/types.d.ts +46 -0
- package/dist/src/tools/types.d.ts.map +1 -0
- package/dist/src/tools/types.js +10 -0
- package/dist/src/tools/types.js.map +1 -0
- package/dist/src/utils/hash.d.ts +13 -0
- package/dist/src/utils/hash.d.ts.map +1 -0
- package/dist/src/utils/hash.js +22 -0
- package/dist/src/utils/hash.js.map +1 -0
- package/dist/src/utils/paths.d.ts +45 -0
- package/dist/src/utils/paths.d.ts.map +1 -0
- package/dist/src/utils/paths.js +71 -0
- package/dist/src/utils/paths.js.map +1 -0
- package/dist/src/utils/schema.d.ts +16 -0
- package/dist/src/utils/schema.d.ts.map +1 -0
- package/dist/src/utils/schema.js +66 -0
- package/dist/src/utils/schema.js.map +1 -0
- package/package.json +77 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor.js","sourceRoot":"","sources":["../../../src/engine/executor.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import type { FileDiff } from './types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Rollback tracker — captures file states and generates patches for undo
|
|
4
|
+
*/
|
|
5
|
+
export declare class RollbackTracker {
|
|
6
|
+
private beforeStates;
|
|
7
|
+
private diffs;
|
|
8
|
+
/**
|
|
9
|
+
* Capture file state before modification
|
|
10
|
+
*/
|
|
11
|
+
captureBeforeState(stepId: string, filePath: string, cwd: string): Promise<void>;
|
|
12
|
+
/**
|
|
13
|
+
* Capture file state after modification and generate diff
|
|
14
|
+
*/
|
|
15
|
+
captureAfterState(stepId: string, filePath: string, cwd: string): Promise<void>;
|
|
16
|
+
/**
|
|
17
|
+
* Get all diffs captured during execution
|
|
18
|
+
*/
|
|
19
|
+
getDiffs(): FileDiff[];
|
|
20
|
+
/**
|
|
21
|
+
* Rollback a specific step
|
|
22
|
+
*/
|
|
23
|
+
rollbackStep(stepId: string): Promise<string[]>;
|
|
24
|
+
/**
|
|
25
|
+
* Rollback all steps in reverse order
|
|
26
|
+
*/
|
|
27
|
+
rollbackAll(): Promise<string[]>;
|
|
28
|
+
/**
|
|
29
|
+
* Export all patches for manual rollback
|
|
30
|
+
*/
|
|
31
|
+
exportPatches(): string;
|
|
32
|
+
/**
|
|
33
|
+
* Clear all tracked state
|
|
34
|
+
*/
|
|
35
|
+
clear(): void;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=rollback.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rollback.d.ts","sourceRoot":"","sources":["../../../src/engine/rollback.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAE3C;;GAEG;AACH,qBAAa,eAAe;IACxB,OAAO,CAAC,YAAY,CAA+C;IACnE,OAAO,CAAC,KAAK,CAAkB;IAE/B;;OAEG;IACG,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBtF;;OAEG;IACG,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBrF;;OAEG;IACH,QAAQ,IAAI,QAAQ,EAAE;IAItB;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAarD;;OAEG;IACG,WAAW,IAAI,OAAO,CAAC,MAAM,EAAE,CAAC;IAYtC;;OAEG;IACH,aAAa,IAAI,MAAM;IAIvB;;OAEG;IACH,KAAK,IAAI,IAAI;CAIhB"}
|
|
@@ -0,0 +1,95 @@
|
|
|
1
|
+
import { readFile, writeFile, access } from 'node:fs/promises';
|
|
2
|
+
import path from 'node:path';
|
|
3
|
+
import { createPatch } from 'diff';
|
|
4
|
+
/**
|
|
5
|
+
* Rollback tracker — captures file states and generates patches for undo
|
|
6
|
+
*/
|
|
7
|
+
export class RollbackTracker {
|
|
8
|
+
beforeStates = new Map(); // stepId → (file → content)
|
|
9
|
+
diffs = [];
|
|
10
|
+
/**
|
|
11
|
+
* Capture file state before modification
|
|
12
|
+
*/
|
|
13
|
+
async captureBeforeState(stepId, filePath, cwd) {
|
|
14
|
+
const absPath = path.resolve(cwd, filePath);
|
|
15
|
+
let content = '';
|
|
16
|
+
try {
|
|
17
|
+
await access(absPath);
|
|
18
|
+
content = await readFile(absPath, 'utf-8');
|
|
19
|
+
}
|
|
20
|
+
catch {
|
|
21
|
+
content = ''; // File doesn't exist yet
|
|
22
|
+
}
|
|
23
|
+
if (!this.beforeStates.has(stepId)) {
|
|
24
|
+
this.beforeStates.set(stepId, new Map());
|
|
25
|
+
}
|
|
26
|
+
this.beforeStates.get(stepId).set(absPath, content);
|
|
27
|
+
}
|
|
28
|
+
/**
|
|
29
|
+
* Capture file state after modification and generate diff
|
|
30
|
+
*/
|
|
31
|
+
async captureAfterState(stepId, filePath, cwd) {
|
|
32
|
+
const absPath = path.resolve(cwd, filePath);
|
|
33
|
+
const beforeMap = this.beforeStates.get(stepId);
|
|
34
|
+
if (!beforeMap)
|
|
35
|
+
return;
|
|
36
|
+
const before = beforeMap.get(absPath) ?? '';
|
|
37
|
+
let after = '';
|
|
38
|
+
try {
|
|
39
|
+
after = await readFile(absPath, 'utf-8');
|
|
40
|
+
}
|
|
41
|
+
catch {
|
|
42
|
+
after = '';
|
|
43
|
+
}
|
|
44
|
+
if (before !== after) {
|
|
45
|
+
const patch = createPatch(absPath, before, after, 'before', 'after');
|
|
46
|
+
this.diffs.push({ file: absPath, before, after, patch });
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Get all diffs captured during execution
|
|
51
|
+
*/
|
|
52
|
+
getDiffs() {
|
|
53
|
+
return this.diffs;
|
|
54
|
+
}
|
|
55
|
+
/**
|
|
56
|
+
* Rollback a specific step
|
|
57
|
+
*/
|
|
58
|
+
async rollbackStep(stepId) {
|
|
59
|
+
const beforeMap = this.beforeStates.get(stepId);
|
|
60
|
+
if (!beforeMap)
|
|
61
|
+
return [];
|
|
62
|
+
const restored = [];
|
|
63
|
+
for (const [filePath, content] of beforeMap) {
|
|
64
|
+
await writeFile(filePath, content, 'utf-8');
|
|
65
|
+
restored.push(filePath);
|
|
66
|
+
}
|
|
67
|
+
return restored;
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Rollback all steps in reverse order
|
|
71
|
+
*/
|
|
72
|
+
async rollbackAll() {
|
|
73
|
+
const allRestored = [];
|
|
74
|
+
const stepIds = Array.from(this.beforeStates.keys()).reverse();
|
|
75
|
+
for (const stepId of stepIds) {
|
|
76
|
+
const restored = await this.rollbackStep(stepId);
|
|
77
|
+
allRestored.push(...restored);
|
|
78
|
+
}
|
|
79
|
+
return allRestored;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Export all patches for manual rollback
|
|
83
|
+
*/
|
|
84
|
+
exportPatches() {
|
|
85
|
+
return this.diffs.map((d) => d.patch).join('\n');
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Clear all tracked state
|
|
89
|
+
*/
|
|
90
|
+
clear() {
|
|
91
|
+
this.beforeStates.clear();
|
|
92
|
+
this.diffs.length = 0;
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
//# sourceMappingURL=rollback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rollback.js","sourceRoot":"","sources":["../../../src/engine/rollback.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { ToolResult, ExecutionContext } from '../tools/types.js';
|
|
2
|
+
/**
|
|
3
|
+
* Result of executing a single step
|
|
4
|
+
*/
|
|
5
|
+
export interface StepResult {
|
|
6
|
+
success: boolean;
|
|
7
|
+
output?: unknown;
|
|
8
|
+
error?: string;
|
|
9
|
+
durationMs: number;
|
|
10
|
+
toolCalls?: {
|
|
11
|
+
tool: string;
|
|
12
|
+
input: unknown;
|
|
13
|
+
result: ToolResult;
|
|
14
|
+
}[];
|
|
15
|
+
diffs?: FileDiff[];
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* File diff captured during execution
|
|
19
|
+
*/
|
|
20
|
+
export interface FileDiff {
|
|
21
|
+
file: string;
|
|
22
|
+
before: string;
|
|
23
|
+
after: string;
|
|
24
|
+
patch: string;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* Execution state per step
|
|
28
|
+
*/
|
|
29
|
+
export type StepState = 'pending' | 'precondition_check' | 'executing' | 'verifying' | 'retrying' | 'completed' | 'failed' | 'skipped';
|
|
30
|
+
export type { ExecutionContext, ToolResult };
|
|
31
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/engine/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAEtE;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,UAAU,CAAA;KAAE,EAAE,CAAC;IACnE,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;CACtB;AAED;;GAEG;AACH,MAAM,WAAW,QAAQ;IACrB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;CACjB;AAED;;GAEG;AACH,MAAM,MAAM,SAAS,GACf,SAAS,GACT,oBAAoB,GACpB,WAAW,GACX,WAAW,GACX,UAAU,GACV,WAAW,GACX,QAAQ,GACR,SAAS,CAAC;AAGhB,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../src/engine/types.ts"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Deterministic verification helpers
|
|
3
|
+
*/
|
|
4
|
+
export declare class VerificationEngine {
|
|
5
|
+
/**
|
|
6
|
+
* Verify that a file exists
|
|
7
|
+
*/
|
|
8
|
+
fileExists(filePath: string, cwd: string): Promise<{
|
|
9
|
+
passed: boolean;
|
|
10
|
+
details: string;
|
|
11
|
+
}>;
|
|
12
|
+
/**
|
|
13
|
+
* Verify that a command exits successfully
|
|
14
|
+
*/
|
|
15
|
+
commandExits(command: string, cwd: string, expectedCode?: number, timeout?: number): Promise<{
|
|
16
|
+
passed: boolean;
|
|
17
|
+
details: string;
|
|
18
|
+
}>;
|
|
19
|
+
/**
|
|
20
|
+
* Verify output contains expected string
|
|
21
|
+
*/
|
|
22
|
+
outputContains(command: string, expected: string, cwd: string): Promise<{
|
|
23
|
+
passed: boolean;
|
|
24
|
+
details: string;
|
|
25
|
+
}>;
|
|
26
|
+
}
|
|
27
|
+
//# sourceMappingURL=verification.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verification.d.ts","sourceRoot":"","sources":["../../../src/engine/verification.ts"],"names":[],"mappings":"AAOA;;GAEG;AACH,qBAAa,kBAAkB;IAC3B;;OAEG;IACG,UAAU,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAU9F;;OAEG;IACG,YAAY,CACd,OAAO,EAAE,MAAM,EACf,GAAG,EAAE,MAAM,EACX,YAAY,GAAE,MAAU,EACxB,OAAO,GAAE,MAAc,GACxB,OAAO,CAAC;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAqBhD;;OAEG;IACG,cAAc,CAChB,OAAO,EAAE,MAAM,EACf,QAAQ,EAAE,MAAM,EAChB,GAAG,EAAE,MAAM,GACZ,OAAO,CAAC;QAAE,MAAM,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAuBnD"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
import { access } from 'node:fs/promises';
|
|
2
|
+
import { execFile } from 'node:child_process';
|
|
3
|
+
import { promisify } from 'node:util';
|
|
4
|
+
import path from 'node:path';
|
|
5
|
+
const execFileAsync = promisify(execFile);
|
|
6
|
+
/**
|
|
7
|
+
* Deterministic verification helpers
|
|
8
|
+
*/
|
|
9
|
+
export class VerificationEngine {
|
|
10
|
+
/**
|
|
11
|
+
* Verify that a file exists
|
|
12
|
+
*/
|
|
13
|
+
async fileExists(filePath, cwd) {
|
|
14
|
+
const absPath = path.resolve(cwd, filePath);
|
|
15
|
+
try {
|
|
16
|
+
await access(absPath);
|
|
17
|
+
return { passed: true, details: `File exists: ${filePath}` };
|
|
18
|
+
}
|
|
19
|
+
catch {
|
|
20
|
+
return { passed: false, details: `File not found: ${filePath}` };
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
/**
|
|
24
|
+
* Verify that a command exits successfully
|
|
25
|
+
*/
|
|
26
|
+
async commandExits(command, cwd, expectedCode = 0, timeout = 30000) {
|
|
27
|
+
try {
|
|
28
|
+
const parts = command.split(' ');
|
|
29
|
+
const { stdout } = await execFileAsync(parts[0], parts.slice(1), {
|
|
30
|
+
cwd,
|
|
31
|
+
timeout,
|
|
32
|
+
shell: true,
|
|
33
|
+
});
|
|
34
|
+
return {
|
|
35
|
+
passed: true,
|
|
36
|
+
details: `Command succeeded (exit 0)\nstdout: ${stdout.toString().substring(0, 500)}`,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
catch (err) {
|
|
40
|
+
const error = err;
|
|
41
|
+
return {
|
|
42
|
+
passed: error.code === expectedCode,
|
|
43
|
+
details: `Command exited with code ${error.code ?? 'unknown'}: ${error.message ?? ''}`,
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Verify output contains expected string
|
|
49
|
+
*/
|
|
50
|
+
async outputContains(command, expected, cwd) {
|
|
51
|
+
try {
|
|
52
|
+
const parts = command.split(' ');
|
|
53
|
+
const { stdout } = await execFileAsync(parts[0], parts.slice(1), {
|
|
54
|
+
cwd,
|
|
55
|
+
timeout: 30000,
|
|
56
|
+
shell: true,
|
|
57
|
+
});
|
|
58
|
+
const output = stdout.toString();
|
|
59
|
+
const contains = output.includes(expected);
|
|
60
|
+
return {
|
|
61
|
+
passed: contains,
|
|
62
|
+
details: contains
|
|
63
|
+
? `Output contains "${expected}"`
|
|
64
|
+
: `Output does not contain "${expected}"\nActual: ${output.substring(0, 300)}`,
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
catch (err) {
|
|
68
|
+
return {
|
|
69
|
+
passed: false,
|
|
70
|
+
details: `Command failed: ${err.message}`,
|
|
71
|
+
};
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=verification.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"verification.js","sourceRoot":"","sources":["../../../src/engine/verification.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
export { createCLI } from './cli/index.js';
|
|
2
|
+
export { ToolRegistry } from './tools/registry.js';
|
|
3
|
+
export { PolicyEngine } from './policy/engine.js';
|
|
4
|
+
export { SkillLoader } from './skills/loader.js';
|
|
5
|
+
export { SkillRunner } from './skills/runner.js';
|
|
6
|
+
export { PlanParser } from './plans/parser.js';
|
|
7
|
+
export { PlanRunner } from './plans/runner.js';
|
|
8
|
+
export { ExecutionEngine } from './engine/executor.js';
|
|
9
|
+
export { LLMRouter } from './llm/router.js';
|
|
10
|
+
export { AuditLogger } from './logging/audit-log.js';
|
|
11
|
+
export { ConfigLoader } from './config/loader.js';
|
|
12
|
+
export type { ToolDefinition, ToolResult } from './tools/types.js';
|
|
13
|
+
export type { SkillManifest } from './skills/types.js';
|
|
14
|
+
export type { Plan, PlanStep, Goal } from './plans/types.js';
|
|
15
|
+
export type { AgentConfig } from './config/schema.js';
|
|
16
|
+
export type { ExecutionContext, StepResult } from './engine/types.js';
|
|
17
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAGlD,YAAY,EAAE,cAAc,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AACnE,YAAY,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACvD,YAAY,EAAE,IAAI,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7D,YAAY,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,gBAAgB,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
// Agent Runtime — Public API Surface
|
|
2
|
+
export { createCLI } from './cli/index.js';
|
|
3
|
+
export { ToolRegistry } from './tools/registry.js';
|
|
4
|
+
export { PolicyEngine } from './policy/engine.js';
|
|
5
|
+
export { SkillLoader } from './skills/loader.js';
|
|
6
|
+
export { SkillRunner } from './skills/runner.js';
|
|
7
|
+
export { PlanParser } from './plans/parser.js';
|
|
8
|
+
export { PlanRunner } from './plans/runner.js';
|
|
9
|
+
export { ExecutionEngine } from './engine/executor.js';
|
|
10
|
+
export { LLMRouter } from './llm/router.js';
|
|
11
|
+
export { AuditLogger } from './logging/audit-log.js';
|
|
12
|
+
export { ConfigLoader } from './config/loader.js';
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA,qCAAqC;AACrC,OAAO,EAAE,SAAS,EAAE,MAAM,gBAAgB,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,qBAAqB,CAAC;AACnD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AACjD,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,OAAO,EAAE,eAAe,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Get a cached response
|
|
3
|
+
*/
|
|
4
|
+
export declare function getCachedResponse(key: string, ttl?: number): unknown | null;
|
|
5
|
+
/**
|
|
6
|
+
* Cache a response
|
|
7
|
+
*/
|
|
8
|
+
export declare function setCachedResponse(key: string, response: unknown): void;
|
|
9
|
+
/**
|
|
10
|
+
* Clear the cache
|
|
11
|
+
*/
|
|
12
|
+
export declare function clearCache(): void;
|
|
13
|
+
/**
|
|
14
|
+
* Generate a cache key from a request
|
|
15
|
+
*/
|
|
16
|
+
export declare function generateCacheKey(messages: {
|
|
17
|
+
role: string;
|
|
18
|
+
content: string;
|
|
19
|
+
}[]): string;
|
|
20
|
+
//# sourceMappingURL=cache.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.d.ts","sourceRoot":"","sources":["../../../src/llm/cache.ts"],"names":[],"mappings":"AAMA;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,GAAG,GAAE,MAAoB,GAAG,OAAO,GAAG,IAAI,CAQxF;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,IAAI,CAEtE;AAED;;GAEG;AACH,wBAAgB,UAAU,IAAI,IAAI,CAEjC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,EAAE,GAAG,MAAM,CAUtF"}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Prompt and response cache for LLM calls
|
|
3
|
+
*/
|
|
4
|
+
const cache = new Map();
|
|
5
|
+
const DEFAULT_TTL = 60 * 60 * 1000; // 1 hour
|
|
6
|
+
/**
|
|
7
|
+
* Get a cached response
|
|
8
|
+
*/
|
|
9
|
+
export function getCachedResponse(key, ttl = DEFAULT_TTL) {
|
|
10
|
+
const entry = cache.get(key);
|
|
11
|
+
if (!entry)
|
|
12
|
+
return null;
|
|
13
|
+
if (Date.now() - entry.timestamp > ttl) {
|
|
14
|
+
cache.delete(key);
|
|
15
|
+
return null;
|
|
16
|
+
}
|
|
17
|
+
return entry.response;
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Cache a response
|
|
21
|
+
*/
|
|
22
|
+
export function setCachedResponse(key, response) {
|
|
23
|
+
cache.set(key, { response, timestamp: Date.now() });
|
|
24
|
+
}
|
|
25
|
+
/**
|
|
26
|
+
* Clear the cache
|
|
27
|
+
*/
|
|
28
|
+
export function clearCache() {
|
|
29
|
+
cache.clear();
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Generate a cache key from a request
|
|
33
|
+
*/
|
|
34
|
+
export function generateCacheKey(messages) {
|
|
35
|
+
const content = messages.map((m) => `${m.role}:${m.content}`).join('|');
|
|
36
|
+
// Simple hash
|
|
37
|
+
let hash = 0;
|
|
38
|
+
for (let i = 0; i < content.length; i++) {
|
|
39
|
+
const char = content.charCodeAt(i);
|
|
40
|
+
hash = ((hash << 5) - hash) + char;
|
|
41
|
+
hash = hash & hash; // Convert to 32bit integer
|
|
42
|
+
}
|
|
43
|
+
return `llm_${Math.abs(hash).toString(36)}`;
|
|
44
|
+
}
|
|
45
|
+
//# sourceMappingURL=cache.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cache.js","sourceRoot":"","sources":["../../../src/llm/cache.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,KAAK,GAAG,IAAI,GAAG,EAAoD,CAAC;AAC1E,MAAM,WAAW,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,SAAS;AAE7C;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW,EAAE,MAAc,WAAW;IACpE,MAAM,KAAK,GAAG,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAC7B,IAAI,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IACxB,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,KAAK,CAAC,SAAS,GAAG,GAAG,EAAE,CAAC;QACrC,KAAK,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;QAClB,OAAO,IAAI,CAAC;IAChB,CAAC;IACD,OAAO,KAAK,CAAC,QAAQ,CAAC;AAC1B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,GAAW,EAAE,QAAiB;IAC5D,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,EAAE,QAAQ,EAAE,SAAS,EAAE,IAAI,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,UAAU;IACtB,KAAK,CAAC,KAAK,EAAE,CAAC;AAClB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,gBAAgB,CAAC,QAA6C;IAC1E,MAAM,OAAO,GAAG,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IACxE,cAAc;IACd,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,IAAI,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;QACnC,IAAI,GAAG,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC;QACnC,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC,CAAC,2BAA2B;IACnD,CAAC;IACD,OAAO,OAAO,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAC,EAAE,CAAC,EAAE,CAAC;AAChD,CAAC"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { LLMProvider, LLMRequest, LLMResponse } from '../types.js';
|
|
2
|
+
import type { ModelProvider } from '../../config/schema.js';
|
|
3
|
+
/**
|
|
4
|
+
* Anthropic provider adapter
|
|
5
|
+
*/
|
|
6
|
+
export declare class AnthropicProvider implements LLMProvider {
|
|
7
|
+
name: string;
|
|
8
|
+
private config;
|
|
9
|
+
constructor(config: ModelProvider);
|
|
10
|
+
chat(request: LLMRequest): Promise<LLMResponse>;
|
|
11
|
+
isAvailable(): Promise<boolean>;
|
|
12
|
+
}
|
|
13
|
+
//# sourceMappingURL=anthropic.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anthropic.d.ts","sourceRoot":"","sources":["../../../../src/llm/providers/anthropic.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAe,MAAM,aAAa,CAAC;AACrF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D;;GAEG;AACH,qBAAa,iBAAkB,YAAW,WAAW;IACjD,IAAI,SAAe;IACnB,OAAO,CAAC,MAAM,CAAgB;gBAElB,MAAM,EAAE,aAAa;IAI3B,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IA4D/C,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;CAIxC"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Anthropic provider adapter
|
|
3
|
+
*/
|
|
4
|
+
export class AnthropicProvider {
|
|
5
|
+
name = 'anthropic';
|
|
6
|
+
config;
|
|
7
|
+
constructor(config) {
|
|
8
|
+
this.config = config;
|
|
9
|
+
}
|
|
10
|
+
async chat(request) {
|
|
11
|
+
const { default: Anthropic } = await import('@anthropic-ai/sdk');
|
|
12
|
+
const client = new Anthropic({
|
|
13
|
+
apiKey: this.config.apiKey ?? process.env['ANTHROPIC_API_KEY'],
|
|
14
|
+
});
|
|
15
|
+
// Separate system message
|
|
16
|
+
const systemMessage = request.messages.find((m) => m.role === 'system')?.content ?? '';
|
|
17
|
+
const messages = request.messages
|
|
18
|
+
.filter((m) => m.role !== 'system')
|
|
19
|
+
.map((m) => ({
|
|
20
|
+
role: m.role === 'tool' ? 'user' : m.role,
|
|
21
|
+
content: m.role === 'tool'
|
|
22
|
+
? `[Tool Result]: ${m.content}`
|
|
23
|
+
: m.content,
|
|
24
|
+
}));
|
|
25
|
+
const tools = request.tools?.map((t) => ({
|
|
26
|
+
name: t.name,
|
|
27
|
+
description: t.description,
|
|
28
|
+
input_schema: { type: 'object', ...t.inputSchema },
|
|
29
|
+
}));
|
|
30
|
+
const response = await client.messages.create({
|
|
31
|
+
model: this.config.model,
|
|
32
|
+
system: systemMessage,
|
|
33
|
+
messages,
|
|
34
|
+
tools: tools && tools.length > 0 ? tools : undefined,
|
|
35
|
+
max_tokens: request.maxTokens ?? this.config.maxTokens,
|
|
36
|
+
temperature: request.temperature ?? this.config.temperature,
|
|
37
|
+
});
|
|
38
|
+
let content = '';
|
|
39
|
+
const toolCalls = [];
|
|
40
|
+
for (const block of response.content) {
|
|
41
|
+
if (block.type === 'text') {
|
|
42
|
+
content += block.text;
|
|
43
|
+
}
|
|
44
|
+
else if (block.type === 'tool_use') {
|
|
45
|
+
toolCalls.push({
|
|
46
|
+
id: block.id,
|
|
47
|
+
name: block.name,
|
|
48
|
+
args: block.input,
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return {
|
|
53
|
+
content,
|
|
54
|
+
toolCalls: toolCalls.length > 0 ? toolCalls : undefined,
|
|
55
|
+
usage: {
|
|
56
|
+
promptTokens: response.usage.input_tokens,
|
|
57
|
+
completionTokens: response.usage.output_tokens,
|
|
58
|
+
totalTokens: response.usage.input_tokens + response.usage.output_tokens,
|
|
59
|
+
},
|
|
60
|
+
provider: 'anthropic',
|
|
61
|
+
model: this.config.model,
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
async isAvailable() {
|
|
65
|
+
const key = this.config.apiKey ?? process.env['ANTHROPIC_API_KEY'];
|
|
66
|
+
return !!key;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=anthropic.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"anthropic.js","sourceRoot":"","sources":["../../../../src/llm/providers/anthropic.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import type { LLMProvider, LLMRequest, LLMResponse } from '../types.js';
|
|
2
|
+
import type { ModelProvider } from '../../config/schema.js';
|
|
3
|
+
/**
|
|
4
|
+
* Azure OpenAI provider adapter
|
|
5
|
+
* Uses the OpenAI SDK with Azure-specific configuration (deployment, API version, base URL)
|
|
6
|
+
*/
|
|
7
|
+
export declare class AzureOpenAIProvider implements LLMProvider {
|
|
8
|
+
name: string;
|
|
9
|
+
private config;
|
|
10
|
+
constructor(config: ModelProvider);
|
|
11
|
+
chat(request: LLMRequest): Promise<LLMResponse>;
|
|
12
|
+
isAvailable(): Promise<boolean>;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=azure.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"azure.d.ts","sourceRoot":"","sources":["../../../../src/llm/providers/azure.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,WAAW,EAAe,MAAM,aAAa,CAAC;AACrF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,wBAAwB,CAAC;AAE5D;;;GAGG;AACH,qBAAa,mBAAoB,YAAW,WAAW;IACnD,IAAI,SAAW;IACf,OAAO,CAAC,MAAM,CAAgB;gBAElB,MAAM,EAAE,aAAa;IAI3B,IAAI,CAAC,OAAO,EAAE,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;IAkG/C,WAAW,IAAI,OAAO,CAAC,OAAO,CAAC;CAKxC"}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Azure OpenAI provider adapter
|
|
3
|
+
* Uses the OpenAI SDK with Azure-specific configuration (deployment, API version, base URL)
|
|
4
|
+
*/
|
|
5
|
+
export class AzureOpenAIProvider {
|
|
6
|
+
name = 'azure';
|
|
7
|
+
config;
|
|
8
|
+
constructor(config) {
|
|
9
|
+
this.config = config;
|
|
10
|
+
}
|
|
11
|
+
async chat(request) {
|
|
12
|
+
const openaiModule = await import('openai');
|
|
13
|
+
const AzureOpenAI = openaiModule.AzureOpenAI;
|
|
14
|
+
const apiKey = this.config.apiKey ?? process.env['AZURE_API_KEY'];
|
|
15
|
+
const endpoint = this.config.baseUrl ?? process.env['AZURE_API_BASE'] ?? '';
|
|
16
|
+
const apiVersion = this.config.apiVersion ?? process.env['AZURE_API_VERSION'] ?? '2024-02-15-preview';
|
|
17
|
+
const deploymentName = this.config.deploymentName ?? process.env['AZURE_DEPLOYMENT_NAME'] ?? this.config.model;
|
|
18
|
+
const client = new AzureOpenAI({
|
|
19
|
+
apiKey,
|
|
20
|
+
endpoint,
|
|
21
|
+
apiVersion,
|
|
22
|
+
deployment: deploymentName,
|
|
23
|
+
});
|
|
24
|
+
const tools = request.tools?.map((t) => ({
|
|
25
|
+
type: 'function',
|
|
26
|
+
function: {
|
|
27
|
+
name: t.name,
|
|
28
|
+
description: t.description,
|
|
29
|
+
parameters: t.inputSchema,
|
|
30
|
+
},
|
|
31
|
+
}));
|
|
32
|
+
const messages = request.messages.map((m) => {
|
|
33
|
+
if (m.role === 'tool') {
|
|
34
|
+
return {
|
|
35
|
+
role: 'tool',
|
|
36
|
+
content: m.content,
|
|
37
|
+
tool_call_id: m.toolCallId ?? '',
|
|
38
|
+
};
|
|
39
|
+
}
|
|
40
|
+
const msg = {
|
|
41
|
+
role: m.role,
|
|
42
|
+
content: m.content,
|
|
43
|
+
};
|
|
44
|
+
if (m.toolCalls && m.toolCalls.length > 0) {
|
|
45
|
+
msg.tool_calls = m.toolCalls.map((tc) => ({
|
|
46
|
+
id: tc.id,
|
|
47
|
+
type: 'function',
|
|
48
|
+
function: {
|
|
49
|
+
name: tc.name,
|
|
50
|
+
arguments: JSON.stringify(tc.args),
|
|
51
|
+
},
|
|
52
|
+
}));
|
|
53
|
+
}
|
|
54
|
+
return msg;
|
|
55
|
+
});
|
|
56
|
+
const createParams = {
|
|
57
|
+
model: deploymentName,
|
|
58
|
+
messages,
|
|
59
|
+
tools: tools && tools.length > 0 ? tools : undefined,
|
|
60
|
+
max_completion_tokens: request.maxTokens ?? this.config.maxTokens,
|
|
61
|
+
};
|
|
62
|
+
// Only include temperature if explicitly set in the request (some models reject non-default values)
|
|
63
|
+
if (request.temperature !== undefined) {
|
|
64
|
+
createParams.temperature = request.temperature;
|
|
65
|
+
}
|
|
66
|
+
const response = await client.chat.completions.create(createParams);
|
|
67
|
+
const choice = response.choices[0];
|
|
68
|
+
const toolCalls = [];
|
|
69
|
+
if (choice.message.tool_calls) {
|
|
70
|
+
for (const tc of choice.message.tool_calls) {
|
|
71
|
+
toolCalls.push({
|
|
72
|
+
id: tc.id,
|
|
73
|
+
name: tc.function.name,
|
|
74
|
+
args: JSON.parse(tc.function.arguments),
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
return {
|
|
79
|
+
content: choice.message.content ?? '',
|
|
80
|
+
toolCalls: toolCalls.length > 0 ? toolCalls : undefined,
|
|
81
|
+
usage: response.usage
|
|
82
|
+
? {
|
|
83
|
+
promptTokens: response.usage.prompt_tokens,
|
|
84
|
+
completionTokens: response.usage.completion_tokens,
|
|
85
|
+
totalTokens: response.usage.total_tokens,
|
|
86
|
+
}
|
|
87
|
+
: undefined,
|
|
88
|
+
provider: 'azure',
|
|
89
|
+
model: deploymentName,
|
|
90
|
+
};
|
|
91
|
+
}
|
|
92
|
+
async isAvailable() {
|
|
93
|
+
const key = this.config.apiKey ?? process.env['AZURE_API_KEY'];
|
|
94
|
+
const base = this.config.baseUrl ?? process.env['AZURE_API_BASE'];
|
|
95
|
+
return !!(key && base);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
//# sourceMappingURL=azure.js.map
|