pocket-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 +140 -0
- package/dist/adapters/createLLMEvaluator.d.ts +19 -0
- package/dist/adapters/createLLMEvaluator.d.ts.map +1 -0
- package/dist/adapters/createLLMEvaluator.js +150 -0
- package/dist/adapters/createLLMEvaluator.js.map +1 -0
- package/dist/adapters/models/anthropic.d.ts +15 -0
- package/dist/adapters/models/anthropic.d.ts.map +1 -0
- package/dist/adapters/models/anthropic.js +45 -0
- package/dist/adapters/models/anthropic.js.map +1 -0
- package/dist/adapters/models/gemini.d.ts +16 -0
- package/dist/adapters/models/gemini.d.ts.map +1 -0
- package/dist/adapters/models/gemini.js +58 -0
- package/dist/adapters/models/gemini.js.map +1 -0
- package/dist/adapters/models/lmStudioStreaming.d.ts +21 -0
- package/dist/adapters/models/lmStudioStreaming.d.ts.map +1 -0
- package/dist/adapters/models/lmStudioStreaming.js +90 -0
- package/dist/adapters/models/lmStudioStreaming.js.map +1 -0
- package/dist/adapters/models/lmstudio.d.ts +20 -0
- package/dist/adapters/models/lmstudio.d.ts.map +1 -0
- package/dist/adapters/models/lmstudio.js +59 -0
- package/dist/adapters/models/lmstudio.js.map +1 -0
- package/dist/adapters/models/ollama.d.ts +22 -0
- package/dist/adapters/models/ollama.d.ts.map +1 -0
- package/dist/adapters/models/ollama.js +61 -0
- package/dist/adapters/models/ollama.js.map +1 -0
- package/dist/adapters/models/ollamaStreaming.d.ts +30 -0
- package/dist/adapters/models/ollamaStreaming.d.ts.map +1 -0
- package/dist/adapters/models/ollamaStreaming.js +88 -0
- package/dist/adapters/models/ollamaStreaming.js.map +1 -0
- package/dist/adapters/models/openai.d.ts +17 -0
- package/dist/adapters/models/openai.d.ts.map +1 -0
- package/dist/adapters/models/openai.js +50 -0
- package/dist/adapters/models/openai.js.map +1 -0
- package/dist/defaults/defaultExecutor.d.ts +20 -0
- package/dist/defaults/defaultExecutor.d.ts.map +1 -0
- package/dist/defaults/defaultExecutor.js +67 -0
- package/dist/defaults/defaultExecutor.js.map +1 -0
- package/dist/defaults/llmPlanner.d.ts +20 -0
- package/dist/defaults/llmPlanner.d.ts.map +1 -0
- package/dist/defaults/llmPlanner.js +151 -0
- package/dist/defaults/llmPlanner.js.map +1 -0
- package/dist/defaults/planBuilder.d.ts +48 -0
- package/dist/defaults/planBuilder.d.ts.map +1 -0
- package/dist/defaults/planBuilder.js +105 -0
- package/dist/defaults/planBuilder.js.map +1 -0
- package/dist/defaults/singleStepPlanner.d.ts +17 -0
- package/dist/defaults/singleStepPlanner.d.ts.map +1 -0
- package/dist/defaults/singleStepPlanner.js +52 -0
- package/dist/defaults/singleStepPlanner.js.map +1 -0
- package/dist/evaluator/StepEvaluator.d.ts +9 -0
- package/dist/evaluator/StepEvaluator.d.ts.map +1 -0
- package/dist/evaluator/StepEvaluator.js +5 -0
- package/dist/evaluator/StepEvaluator.js.map +1 -0
- package/dist/events/EventBus.d.ts +13 -0
- package/dist/events/EventBus.d.ts.map +1 -0
- package/dist/events/EventBus.js +34 -0
- package/dist/events/EventBus.js.map +1 -0
- package/dist/executor/StepExecutor.d.ts +9 -0
- package/dist/executor/StepExecutor.d.ts.map +1 -0
- package/dist/executor/StepExecutor.js +5 -0
- package/dist/executor/StepExecutor.js.map +1 -0
- package/dist/index.d.ts +48 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +22 -0
- package/dist/index.js.map +1 -0
- package/dist/models/ModelAdapter.d.ts +5 -0
- package/dist/models/ModelAdapter.d.ts.map +1 -0
- package/dist/models/ModelAdapter.js +5 -0
- package/dist/models/ModelAdapter.js.map +1 -0
- package/dist/planner/PlanValidator.d.ts +16 -0
- package/dist/planner/PlanValidator.d.ts.map +1 -0
- package/dist/planner/PlanValidator.js +44 -0
- package/dist/planner/PlanValidator.js.map +1 -0
- package/dist/planner/Planner.d.ts +10 -0
- package/dist/planner/Planner.d.ts.map +1 -0
- package/dist/planner/Planner.js +5 -0
- package/dist/planner/Planner.js.map +1 -0
- package/dist/quickStart.d.ts +49 -0
- package/dist/quickStart.d.ts.map +1 -0
- package/dist/quickStart.js +77 -0
- package/dist/quickStart.js.map +1 -0
- package/dist/runner/AgentRunner.d.ts +29 -0
- package/dist/runner/AgentRunner.d.ts.map +1 -0
- package/dist/runner/AgentRunner.js +223 -0
- package/dist/runner/AgentRunner.js.map +1 -0
- package/dist/runner/RunStateManager.d.ts +21 -0
- package/dist/runner/RunStateManager.d.ts.map +1 -0
- package/dist/runner/RunStateManager.js +96 -0
- package/dist/runner/RunStateManager.js.map +1 -0
- package/dist/runner/RunningExecution.d.ts +14 -0
- package/dist/runner/RunningExecution.d.ts.map +1 -0
- package/dist/runner/RunningExecution.js +5 -0
- package/dist/runner/RunningExecution.js.map +1 -0
- package/dist/runner/StepScheduler.d.ts +12 -0
- package/dist/runner/StepScheduler.d.ts.map +1 -0
- package/dist/runner/StepScheduler.js +42 -0
- package/dist/runner/StepScheduler.js.map +1 -0
- package/dist/runner/createAgentRunner.d.ts +32 -0
- package/dist/runner/createAgentRunner.d.ts.map +1 -0
- package/dist/runner/createAgentRunner.js +57 -0
- package/dist/runner/createAgentRunner.js.map +1 -0
- package/dist/runner/resolveInputs.d.ts +7 -0
- package/dist/runner/resolveInputs.d.ts.map +1 -0
- package/dist/runner/resolveInputs.js +28 -0
- package/dist/runner/resolveInputs.js.map +1 -0
- package/dist/tools/ToolAdapter.d.ts +5 -0
- package/dist/tools/ToolAdapter.d.ts.map +1 -0
- package/dist/tools/ToolAdapter.js +5 -0
- package/dist/tools/ToolAdapter.js.map +1 -0
- package/dist/types/errors.d.ts +28 -0
- package/dist/types/errors.d.ts.map +1 -0
- package/dist/types/errors.js +37 -0
- package/dist/types/errors.js.map +1 -0
- package/dist/types/evaluator.d.ts +14 -0
- package/dist/types/evaluator.d.ts.map +1 -0
- package/dist/types/evaluator.js +5 -0
- package/dist/types/evaluator.js.map +1 -0
- package/dist/types/events.d.ts +79 -0
- package/dist/types/events.d.ts.map +1 -0
- package/dist/types/events.js +17 -0
- package/dist/types/events.js.map +1 -0
- package/dist/types/executor.d.ts +18 -0
- package/dist/types/executor.d.ts.map +1 -0
- package/dist/types/executor.js +5 -0
- package/dist/types/executor.js.map +1 -0
- package/dist/types/models.d.ts +18 -0
- package/dist/types/models.d.ts.map +1 -0
- package/dist/types/models.js +6 -0
- package/dist/types/models.js.map +1 -0
- package/dist/types/plan.d.ts +37 -0
- package/dist/types/plan.d.ts.map +1 -0
- package/dist/types/plan.js +5 -0
- package/dist/types/plan.js.map +1 -0
- package/dist/types/planner.d.ts +24 -0
- package/dist/types/planner.d.ts.map +1 -0
- package/dist/types/planner.js +5 -0
- package/dist/types/planner.js.map +1 -0
- package/dist/types/run.d.ts +48 -0
- package/dist/types/run.d.ts.map +1 -0
- package/dist/types/run.js +14 -0
- package/dist/types/run.js.map +1 -0
- package/dist/types/step.d.ts +52 -0
- package/dist/types/step.d.ts.map +1 -0
- package/dist/types/step.js +5 -0
- package/dist/types/step.js.map +1 -0
- package/dist/types/tools.d.ts +21 -0
- package/dist/types/tools.d.ts.map +1 -0
- package/dist/types/tools.js +5 -0
- package/dist/types/tools.js.map +1 -0
- package/dist/utils/dag.d.ts +18 -0
- package/dist/utils/dag.d.ts.map +1 -0
- package/dist/utils/dag.js +77 -0
- package/dist/utils/dag.js.map +1 -0
- package/dist/utils/ids.d.ts +6 -0
- package/dist/utils/ids.d.ts.map +1 -0
- package/dist/utils/ids.js +11 -0
- package/dist/utils/ids.js.map +1 -0
- package/dist/utils/schema.d.ts +15 -0
- package/dist/utils/schema.d.ts.map +1 -0
- package/dist/utils/schema.js +11 -0
- package/dist/utils/schema.js.map +1 -0
- package/dist/utils/time.d.ts +6 -0
- package/dist/utils/time.d.ts.map +1 -0
- package/dist/utils/time.js +10 -0
- package/dist/utils/time.js.map +1 -0
- package/package.json +50 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"llmPlanner.js","sourceRoot":"","sources":["../../src/defaults/llmPlanner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fluent helpers to define steps and build plans with minimal syntax.
|
|
3
|
+
*/
|
|
4
|
+
import type { Plan, StepDefinition, StepType, RetryPolicy } from "../types/plan.js";
|
|
5
|
+
export interface StepBuilderOptions {
|
|
6
|
+
type?: StepType;
|
|
7
|
+
retryPolicy?: RetryPolicy;
|
|
8
|
+
}
|
|
9
|
+
/**
|
|
10
|
+
* Fluent step builder. Chain methods then call .build() to get a StepDefinition.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* step("find_doc", "Find document")
|
|
14
|
+
* .objective("Locate the latest contract.")
|
|
15
|
+
* .outputs("path")
|
|
16
|
+
* .inputsFromContext("customerId")
|
|
17
|
+
* .build()
|
|
18
|
+
*/
|
|
19
|
+
export declare function step(id: string, name: string, options?: StepBuilderOptions): StepBuilder;
|
|
20
|
+
declare class StepBuilder {
|
|
21
|
+
private options;
|
|
22
|
+
private def;
|
|
23
|
+
private inputRefs;
|
|
24
|
+
constructor(id: string, name: string, options?: StepBuilderOptions);
|
|
25
|
+
objective(text: string): this;
|
|
26
|
+
outputs(...keys: string[]): this;
|
|
27
|
+
dependsOn(...stepIds: string[]): this;
|
|
28
|
+
/** Add input from run context: { source: "runContext", key } */
|
|
29
|
+
inputsFromContext(...keys: string[]): this;
|
|
30
|
+
/** Add input from a previous step's output: { source: "stepOutput", stepId, key } */
|
|
31
|
+
inputsFromStep(stepId: string, key: string): this;
|
|
32
|
+
type(t: StepType): this;
|
|
33
|
+
/** Allow these tools for this step (for type "tool"). */
|
|
34
|
+
tools(...toolNames: string[]): this;
|
|
35
|
+
completionCriteria(...criteria: string[]): this;
|
|
36
|
+
retry(maxAttempts: number, strategy?: RetryPolicy["strategy"]): this;
|
|
37
|
+
build(): StepDefinition;
|
|
38
|
+
}
|
|
39
|
+
export interface BuildPlanOptions {
|
|
40
|
+
planId?: string;
|
|
41
|
+
version?: number;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Build a Plan from a goal and an array of steps (from step().build() or plain StepDefinition).
|
|
45
|
+
*/
|
|
46
|
+
export declare function buildPlan(goal: string, steps: StepDefinition[], options?: BuildPlanOptions): Plan;
|
|
47
|
+
export {};
|
|
48
|
+
//# sourceMappingURL=planBuilder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"planBuilder.d.ts","sourceRoot":"","sources":["../../src/defaults/planBuilder.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAgB,WAAW,EAAE,MAAM,kBAAkB,CAAC;AAQlG,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;;;;;;;;GASG;AACH,wBAAgB,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,GAAE,kBAAuB,GAAG,WAAW,CAE5F;AAED,cAAM,WAAW;IAOb,OAAO,CAAC,OAAO;IANjB,OAAO,CAAC,GAAG,CAAyD;IACpE,OAAO,CAAC,SAAS,CAAsB;gBAGrC,EAAE,EAAE,MAAM,EACV,IAAI,EAAE,MAAM,EACJ,OAAO,GAAE,kBAAuB;IAgB1C,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI;IAK7B,OAAO,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI;IAQhC,SAAS,CAAC,GAAG,OAAO,EAAE,MAAM,EAAE,GAAG,IAAI;IAKrC,gEAAgE;IAChE,iBAAiB,CAAC,GAAG,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI;IAO1C,qFAAqF;IACrF,cAAc,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,IAAI;IAKjD,IAAI,CAAC,CAAC,EAAE,QAAQ,GAAG,IAAI;IAKvB,yDAAyD;IACzD,KAAK,CAAC,GAAG,SAAS,EAAE,MAAM,EAAE,GAAG,IAAI;IAKnC,kBAAkB,CAAC,GAAG,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAK/C,KAAK,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,GAAE,WAAW,CAAC,UAAU,CAAyB,GAAG,IAAI;IAK3F,KAAK,IAAI,cAAc;CAQxB;AAED,MAAM,WAAW,gBAAgB;IAC/B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED;;GAEG;AACH,wBAAgB,SAAS,CACvB,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,cAAc,EAAE,EACvB,OAAO,GAAE,gBAAqB,GAC7B,IAAI,CAQN"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Fluent helpers to define steps and build plans with minimal syntax.
|
|
3
|
+
*/
|
|
4
|
+
import { nowISO } from "../utils/time.js";
|
|
5
|
+
const DEFAULT_RETRY = {
|
|
6
|
+
maxAttempts: 2,
|
|
7
|
+
strategy: "retry_with_feedback",
|
|
8
|
+
};
|
|
9
|
+
/**
|
|
10
|
+
* Fluent step builder. Chain methods then call .build() to get a StepDefinition.
|
|
11
|
+
*
|
|
12
|
+
* @example
|
|
13
|
+
* step("find_doc", "Find document")
|
|
14
|
+
* .objective("Locate the latest contract.")
|
|
15
|
+
* .outputs("path")
|
|
16
|
+
* .inputsFromContext("customerId")
|
|
17
|
+
* .build()
|
|
18
|
+
*/
|
|
19
|
+
export function step(id, name, options = {}) {
|
|
20
|
+
return new StepBuilder(id, name, options);
|
|
21
|
+
}
|
|
22
|
+
class StepBuilder {
|
|
23
|
+
constructor(id, name, options = {}) {
|
|
24
|
+
this.options = options;
|
|
25
|
+
this.inputRefs = [];
|
|
26
|
+
this.def = {
|
|
27
|
+
id,
|
|
28
|
+
name,
|
|
29
|
+
type: options.type ?? "transform",
|
|
30
|
+
objective: "",
|
|
31
|
+
dependencies: [],
|
|
32
|
+
allowedTools: [],
|
|
33
|
+
inputs: [],
|
|
34
|
+
outputs: [],
|
|
35
|
+
completionCriteria: [],
|
|
36
|
+
retryPolicy: options.retryPolicy ?? DEFAULT_RETRY,
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
objective(text) {
|
|
40
|
+
this.def.objective = text;
|
|
41
|
+
return this;
|
|
42
|
+
}
|
|
43
|
+
outputs(...keys) {
|
|
44
|
+
this.def.outputs = keys.length ? keys : ["output"];
|
|
45
|
+
if (!this.def.completionCriteria?.length) {
|
|
46
|
+
this.def.completionCriteria = this.def.outputs.map((k) => `Output "${k}" is produced.`);
|
|
47
|
+
}
|
|
48
|
+
return this;
|
|
49
|
+
}
|
|
50
|
+
dependsOn(...stepIds) {
|
|
51
|
+
this.def.dependencies = stepIds;
|
|
52
|
+
return this;
|
|
53
|
+
}
|
|
54
|
+
/** Add input from run context: { source: "runContext", key } */
|
|
55
|
+
inputsFromContext(...keys) {
|
|
56
|
+
for (const key of keys) {
|
|
57
|
+
this.inputRefs.push({ source: "runContext", key });
|
|
58
|
+
}
|
|
59
|
+
return this;
|
|
60
|
+
}
|
|
61
|
+
/** Add input from a previous step's output: { source: "stepOutput", stepId, key } */
|
|
62
|
+
inputsFromStep(stepId, key) {
|
|
63
|
+
this.inputRefs.push({ source: "stepOutput", stepId, key });
|
|
64
|
+
return this;
|
|
65
|
+
}
|
|
66
|
+
type(t) {
|
|
67
|
+
this.def.type = t;
|
|
68
|
+
return this;
|
|
69
|
+
}
|
|
70
|
+
/** Allow these tools for this step (for type "tool"). */
|
|
71
|
+
tools(...toolNames) {
|
|
72
|
+
this.def.allowedTools = toolNames;
|
|
73
|
+
return this;
|
|
74
|
+
}
|
|
75
|
+
completionCriteria(...criteria) {
|
|
76
|
+
this.def.completionCriteria = criteria;
|
|
77
|
+
return this;
|
|
78
|
+
}
|
|
79
|
+
retry(maxAttempts, strategy = "retry_with_feedback") {
|
|
80
|
+
this.def.retryPolicy = { maxAttempts, strategy };
|
|
81
|
+
return this;
|
|
82
|
+
}
|
|
83
|
+
build() {
|
|
84
|
+
this.def.inputs = this.inputRefs.length ? this.inputRefs : this.def.inputs ?? [];
|
|
85
|
+
if (!this.def.outputs?.length)
|
|
86
|
+
this.def.outputs = ["output"];
|
|
87
|
+
if (!this.def.completionCriteria?.length) {
|
|
88
|
+
this.def.completionCriteria = this.def.outputs.map((k) => `Output "${k}" is produced.`);
|
|
89
|
+
}
|
|
90
|
+
return this.def;
|
|
91
|
+
}
|
|
92
|
+
}
|
|
93
|
+
/**
|
|
94
|
+
* Build a Plan from a goal and an array of steps (from step().build() or plain StepDefinition).
|
|
95
|
+
*/
|
|
96
|
+
export function buildPlan(goal, steps, options = {}) {
|
|
97
|
+
return {
|
|
98
|
+
id: options.planId ?? "plan-1",
|
|
99
|
+
version: options.version ?? 1,
|
|
100
|
+
goal,
|
|
101
|
+
steps,
|
|
102
|
+
createdAt: nowISO(),
|
|
103
|
+
};
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=planBuilder.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"planBuilder.js","sourceRoot":"","sources":["../../src/defaults/planBuilder.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default planner that always produces a single step: "answer the goal".
|
|
3
|
+
* Useful for quick starts and simple QA flows.
|
|
4
|
+
*/
|
|
5
|
+
import type { StepDefinition } from "../types/plan.js";
|
|
6
|
+
import type { Planner } from "../planner/Planner.js";
|
|
7
|
+
/**
|
|
8
|
+
* Creates a planner that always returns a one-step plan: a single "answer" step that
|
|
9
|
+
* uses the run context goal. Ideal for quick starts and simple question-answering.
|
|
10
|
+
*/
|
|
11
|
+
export declare function createSingleStepPlanner(): Planner;
|
|
12
|
+
/**
|
|
13
|
+
* Creates a planner that always returns the given plan (goal is taken from input at createPlan time).
|
|
14
|
+
* Use with buildPlan(goal, steps) so the goal stays in sync, or pass a plan built once.
|
|
15
|
+
*/
|
|
16
|
+
export declare function createFixedPlanPlanner(fixedSteps: StepDefinition[]): Planner;
|
|
17
|
+
//# sourceMappingURL=singleStepPlanner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"singleStepPlanner.d.ts","sourceRoot":"","sources":["../../src/defaults/singleStepPlanner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAQ,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAC7D,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAiBrD;;;GAGG;AACH,wBAAgB,uBAAuB,IAAI,OAAO,CAYjD;AAED;;;GAGG;AACH,wBAAgB,sBAAsB,CAAC,UAAU,EAAE,cAAc,EAAE,GAAG,OAAO,CAY5E"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Default planner that always produces a single step: "answer the goal".
|
|
3
|
+
* Useful for quick starts and simple QA flows.
|
|
4
|
+
*/
|
|
5
|
+
import { buildPlan } from "./planBuilder.js";
|
|
6
|
+
const SINGLE_STEP = {
|
|
7
|
+
id: "answer",
|
|
8
|
+
name: "Answer",
|
|
9
|
+
type: "transform",
|
|
10
|
+
objective: "Answer the user's goal or question clearly and completely.",
|
|
11
|
+
dependencies: [],
|
|
12
|
+
allowedTools: [],
|
|
13
|
+
inputs: [{ source: "runContext", key: "goal" }],
|
|
14
|
+
outputs: ["answer"],
|
|
15
|
+
completionCriteria: ["A clear answer is produced."],
|
|
16
|
+
retryPolicy: { maxAttempts: 2, strategy: "retry_with_feedback" },
|
|
17
|
+
};
|
|
18
|
+
/**
|
|
19
|
+
* Creates a planner that always returns a one-step plan: a single "answer" step that
|
|
20
|
+
* uses the run context goal. Ideal for quick starts and simple question-answering.
|
|
21
|
+
*/
|
|
22
|
+
export function createSingleStepPlanner() {
|
|
23
|
+
return {
|
|
24
|
+
async createPlan(input) {
|
|
25
|
+
return buildPlan(input.goal, [SINGLE_STEP]);
|
|
26
|
+
},
|
|
27
|
+
async replan(input) {
|
|
28
|
+
return buildPlan(input.goal, [SINGLE_STEP], {
|
|
29
|
+
planId: input.currentPlan.id,
|
|
30
|
+
version: input.currentPlan.version + 1,
|
|
31
|
+
});
|
|
32
|
+
},
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Creates a planner that always returns the given plan (goal is taken from input at createPlan time).
|
|
37
|
+
* Use with buildPlan(goal, steps) so the goal stays in sync, or pass a plan built once.
|
|
38
|
+
*/
|
|
39
|
+
export function createFixedPlanPlanner(fixedSteps) {
|
|
40
|
+
return {
|
|
41
|
+
async createPlan(input) {
|
|
42
|
+
return buildPlan(input.goal, fixedSteps);
|
|
43
|
+
},
|
|
44
|
+
async replan(input) {
|
|
45
|
+
return buildPlan(input.goal, fixedSteps, {
|
|
46
|
+
planId: input.currentPlan.id,
|
|
47
|
+
version: input.currentPlan.version + 1,
|
|
48
|
+
});
|
|
49
|
+
},
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=singleStepPlanner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"singleStepPlanner.js","sourceRoot":"","sources":["../../src/defaults/singleStepPlanner.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAE7C,MAAM,WAAW,GAAmB;IAClC,EAAE,EAAE,QAAQ;IACZ,IAAI,EAAE,QAAQ;IACd,IAAI,EAAE,WAAW;IACjB,SAAS,EAAE,4DAA4D;IACvE,YAAY,EAAE,EAAE;IAChB,YAAY,EAAE,EAAE;IAChB,MAAM,EAAE,CAAC,EAAE,MAAM,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,EAAE,CAAC;IAC/C,OAAO,EAAE,CAAC,QAAQ,CAAC;IACnB,kBAAkB,EAAE,CAAC,6BAA6B,CAAC;IACnD,WAAW,EAAE,EAAE,WAAW,EAAE,CAAC,EAAE,QAAQ,EAAE,qBAAqB,EAAE;CACjE,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,uBAAuB;IACrC,OAAO;QACL,KAAK,CAAC,UAAU,CAAC,KAAmB;YAClC,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QAC9C,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,KAAkB;YAC7B,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,CAAC,WAAW,CAAC,EAAE;gBAC1C,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE;gBAC5B,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,GAAG,CAAC;aACvC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,sBAAsB,CAAC,UAA4B;IACjE,OAAO;QACL,KAAK,CAAC,UAAU,CAAC,KAAmB;YAClC,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;QAC3C,CAAC;QACD,KAAK,CAAC,MAAM,CAAC,KAAkB;YAC7B,OAAO,SAAS,CAAC,KAAK,CAAC,IAAI,EAAE,UAAU,EAAE;gBACvC,MAAM,EAAE,KAAK,CAAC,WAAW,CAAC,EAAE;gBAC5B,OAAO,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,GAAG,CAAC;aACvC,CAAC,CAAC;QACL,CAAC;KACF,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Step evaluator contract (spec §12).
|
|
3
|
+
*/
|
|
4
|
+
import type { EvaluationResult } from "../types/step.js";
|
|
5
|
+
import type { StepEvaluationInput } from "../types/evaluator.js";
|
|
6
|
+
export interface StepEvaluator {
|
|
7
|
+
evaluate(input: StepEvaluationInput): Promise<EvaluationResult>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=StepEvaluator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StepEvaluator.d.ts","sourceRoot":"","sources":["../../src/evaluator/StepEvaluator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AACzD,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,MAAM,WAAW,aAAa;IAC5B,QAAQ,CAAC,KAAK,EAAE,mBAAmB,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACjE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StepEvaluator.js","sourceRoot":"","sources":["../../src/evaluator/StepEvaluator.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Run-scoped event bus for execution lifecycle events (spec §16).
|
|
3
|
+
*/
|
|
4
|
+
import type { AgentRunnerEvent, EventName } from "../types/events.js";
|
|
5
|
+
type Handler = (event: AgentRunnerEvent) => void;
|
|
6
|
+
export declare class EventBus {
|
|
7
|
+
private listeners;
|
|
8
|
+
on(eventName: EventName, handler: Handler): void;
|
|
9
|
+
emit(eventName: EventName, payload: Record<string, unknown>): void;
|
|
10
|
+
removeAllListeners(): void;
|
|
11
|
+
}
|
|
12
|
+
export {};
|
|
13
|
+
//# sourceMappingURL=EventBus.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventBus.d.ts","sourceRoot":"","sources":["../../src/events/EventBus.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAGtE,KAAK,OAAO,GAAG,CAAC,KAAK,EAAE,gBAAgB,KAAK,IAAI,CAAC;AAEjD,qBAAa,QAAQ;IACnB,OAAO,CAAC,SAAS,CAAgC;IAEjD,EAAE,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,OAAO,GAAG,IAAI;IAMhD,IAAI,CAAC,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;IAgBlE,kBAAkB,IAAI,IAAI;CAG3B"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Run-scoped event bus for execution lifecycle events (spec §16).
|
|
3
|
+
*/
|
|
4
|
+
import { nowISO } from "../utils/time.js";
|
|
5
|
+
export class EventBus {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.listeners = new Map();
|
|
8
|
+
}
|
|
9
|
+
on(eventName, handler) {
|
|
10
|
+
const list = this.listeners.get(eventName) ?? [];
|
|
11
|
+
list.push(handler);
|
|
12
|
+
this.listeners.set(eventName, list);
|
|
13
|
+
}
|
|
14
|
+
emit(eventName, payload) {
|
|
15
|
+
const event = {
|
|
16
|
+
...payload,
|
|
17
|
+
type: eventName,
|
|
18
|
+
timestamp: nowISO(),
|
|
19
|
+
};
|
|
20
|
+
const list = this.listeners.get(eventName) ?? [];
|
|
21
|
+
for (const h of list) {
|
|
22
|
+
try {
|
|
23
|
+
h(event);
|
|
24
|
+
}
|
|
25
|
+
catch (_e) {
|
|
26
|
+
// Don't let one listener break others
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
removeAllListeners() {
|
|
31
|
+
this.listeners.clear();
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
//# sourceMappingURL=EventBus.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EventBus.js","sourceRoot":"","sources":["../../src/events/EventBus.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,MAAM,EAAE,MAAM,kBAAkB,CAAC;AAI1C,MAAM,OAAO,QAAQ;IAArB;QACU,cAAS,GAAG,IAAI,GAAG,EAAqB,CAAC;IA2BnD,CAAC;IAzBC,EAAE,CAAC,SAAoB,EAAE,OAAgB;QACvC,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACjD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACnB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC;IACtC,CAAC;IAED,IAAI,CAAC,SAAoB,EAAE,OAAgC;QACzD,MAAM,KAAK,GAAG;YACZ,GAAG,OAAO;YACV,IAAI,EAAE,SAAS;YACf,SAAS,EAAE,MAAM,EAAE;SACA,CAAC;QACtB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,EAAE,CAAC;QACjD,KAAK,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YACrB,IAAI,CAAC;gBACH,CAAC,CAAC,KAAK,CAAC,CAAC;YACX,CAAC;YAAC,OAAO,EAAE,EAAE,CAAC;gBACZ,sCAAsC;YACxC,CAAC;QACH,CAAC;IACH,CAAC;IAED,kBAAkB;QAChB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;IACzB,CAAC;CACF"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Step executor contract (spec §11).
|
|
3
|
+
*/
|
|
4
|
+
import type { StepAttemptResult } from "../types/step.js";
|
|
5
|
+
import type { StepExecutionInput } from "../types/executor.js";
|
|
6
|
+
export interface StepExecutor {
|
|
7
|
+
execute(input: StepExecutionInput): Promise<StepAttemptResult>;
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=StepExecutor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StepExecutor.d.ts","sourceRoot":"","sources":["../../src/executor/StepExecutor.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAE/D,MAAM,WAAW,YAAY;IAC3B,OAAO,CAAC,KAAK,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;CAChE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"StepExecutor.js","sourceRoot":"","sources":["../../src/executor/StepExecutor.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* pocket-agent — Reusable Node.js framework for plan-driven agent execution.
|
|
3
|
+
* @author sam_thewise
|
|
4
|
+
*/
|
|
5
|
+
export { createAgentRunner } from "./runner/createAgentRunner.js";
|
|
6
|
+
export type { AgentRunner, AgentRunnerConfig, ProviderName, } from "./runner/createAgentRunner.js";
|
|
7
|
+
export type { RunningExecution } from "./runner/RunningExecution.js";
|
|
8
|
+
export { createQuickAgent, createGoalDrivenAgent } from "./quickStart.js";
|
|
9
|
+
export type { QuickAgentConfig, GoalDrivenAgentConfig } from "./quickStart.js";
|
|
10
|
+
export { createLLMPlanner } from "./defaults/llmPlanner.js";
|
|
11
|
+
export type { LLMPlannerOptions } from "./defaults/llmPlanner.js";
|
|
12
|
+
export { step, buildPlan } from "./defaults/planBuilder.js";
|
|
13
|
+
export type { StepBuilderOptions, BuildPlanOptions } from "./defaults/planBuilder.js";
|
|
14
|
+
export { createSingleStepPlanner, createFixedPlanPlanner } from "./defaults/singleStepPlanner.js";
|
|
15
|
+
export { createDefaultExecutor } from "./defaults/defaultExecutor.js";
|
|
16
|
+
export type { DefaultExecutorOptions } from "./defaults/defaultExecutor.js";
|
|
17
|
+
export { createLLMEvaluator } from "./adapters/createLLMEvaluator.js";
|
|
18
|
+
export type { LLMEvaluatorOptions } from "./adapters/createLLMEvaluator.js";
|
|
19
|
+
export { createOpenAIModelAdapter } from "./adapters/models/openai.js";
|
|
20
|
+
export type { OpenAIModelConfig } from "./adapters/models/openai.js";
|
|
21
|
+
export { createAnthropicModelAdapter } from "./adapters/models/anthropic.js";
|
|
22
|
+
export type { AnthropicModelConfig } from "./adapters/models/anthropic.js";
|
|
23
|
+
export { createGeminiModelAdapter } from "./adapters/models/gemini.js";
|
|
24
|
+
export type { GeminiModelConfig } from "./adapters/models/gemini.js";
|
|
25
|
+
export { createOllamaModelAdapter } from "./adapters/models/ollama.js";
|
|
26
|
+
export type { OllamaModelConfig } from "./adapters/models/ollama.js";
|
|
27
|
+
export { ollamaStreamingChat, getOllamaBaseUrl, } from "./adapters/models/ollamaStreaming.js";
|
|
28
|
+
export type { OllamaStreamingOptions, OllamaStreamingResult, } from "./adapters/models/ollamaStreaming.js";
|
|
29
|
+
export { createLmStudioModelAdapter } from "./adapters/models/lmstudio.js";
|
|
30
|
+
export type { LmStudioModelConfig } from "./adapters/models/lmstudio.js";
|
|
31
|
+
export { lmStudioStreamingChat, getLMStudioBaseUrl, } from "./adapters/models/lmStudioStreaming.js";
|
|
32
|
+
export type { LMStudioStreamingOptions, LMStudioStreamingResult, } from "./adapters/models/lmStudioStreaming.js";
|
|
33
|
+
export type { RunTaskInput, RunOptions, RunResult, RunState, RunStatus, } from "./types/run.js";
|
|
34
|
+
export { DEFAULT_RUN_OPTIONS } from "./types/run.js";
|
|
35
|
+
export type { Plan, StepDefinition, StepType, StepInputRef, RetryPolicy, JsonSchemaLike, } from "./types/plan.js";
|
|
36
|
+
export type { StepStatus, StepAttemptResult, StepRunRecord, EvaluationVerdict, EvaluationResult, ArtifactRef, EvidenceRef, StepExecutionError, } from "./types/step.js";
|
|
37
|
+
export type { PlannerInput, ReplanInput, } from "./types/planner.js";
|
|
38
|
+
export type { StepExecutionInput, } from "./types/executor.js";
|
|
39
|
+
export type { StepEvaluationInput, } from "./types/evaluator.js";
|
|
40
|
+
export type { ToolDefinition, ToolAdapter, ToolInvocationContext } from "./types/tools.js";
|
|
41
|
+
export type { ModelAdapter, ModelGenerateInput, ModelGenerateOutput } from "./types/models.js";
|
|
42
|
+
export type { AgentRunnerEvent, EventName, RunStartedEvent, PlanCreatedEvent, PlanRevisedEvent, StepReadyEvent, StepStartedEvent, StepRetryingEvent, StepCompletedEvent, StepBlockedEvent, StepFailedEvent, RunCompletedEvent, RunFailedEvent, } from "./types/events.js";
|
|
43
|
+
export { EVENT_NAMES } from "./types/events.js";
|
|
44
|
+
export { PlanningFailureError, ExecutionFailureError, EvaluationFailureError, RunFailureError, } from "./types/errors.js";
|
|
45
|
+
export type { Planner } from "./planner/Planner.js";
|
|
46
|
+
export type { StepExecutor } from "./executor/StepExecutor.js";
|
|
47
|
+
export type { StepEvaluator } from "./evaluator/StepEvaluator.js";
|
|
48
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* pocket-agent — Reusable Node.js framework for plan-driven agent execution.
|
|
3
|
+
* @author sam_thewise
|
|
4
|
+
*/
|
|
5
|
+
export { createAgentRunner } from "./runner/createAgentRunner.js";
|
|
6
|
+
export { createQuickAgent, createGoalDrivenAgent } from "./quickStart.js";
|
|
7
|
+
export { createLLMPlanner } from "./defaults/llmPlanner.js";
|
|
8
|
+
export { step, buildPlan } from "./defaults/planBuilder.js";
|
|
9
|
+
export { createSingleStepPlanner, createFixedPlanPlanner } from "./defaults/singleStepPlanner.js";
|
|
10
|
+
export { createDefaultExecutor } from "./defaults/defaultExecutor.js";
|
|
11
|
+
export { createLLMEvaluator } from "./adapters/createLLMEvaluator.js";
|
|
12
|
+
export { createOpenAIModelAdapter } from "./adapters/models/openai.js";
|
|
13
|
+
export { createAnthropicModelAdapter } from "./adapters/models/anthropic.js";
|
|
14
|
+
export { createGeminiModelAdapter } from "./adapters/models/gemini.js";
|
|
15
|
+
export { createOllamaModelAdapter } from "./adapters/models/ollama.js";
|
|
16
|
+
export { ollamaStreamingChat, getOllamaBaseUrl, } from "./adapters/models/ollamaStreaming.js";
|
|
17
|
+
export { createLmStudioModelAdapter } from "./adapters/models/lmstudio.js";
|
|
18
|
+
export { lmStudioStreamingChat, getLMStudioBaseUrl, } from "./adapters/models/lmStudioStreaming.js";
|
|
19
|
+
export { DEFAULT_RUN_OPTIONS } from "./types/run.js";
|
|
20
|
+
export { EVENT_NAMES } from "./types/events.js";
|
|
21
|
+
export { PlanningFailureError, ExecutionFailureError, EvaluationFailureError, RunFailureError, } from "./types/errors.js";
|
|
22
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,iBAAiB,EAAE,MAAM,+BAA+B,CAAC;AAQlE,OAAO,EAAE,gBAAgB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAG5D,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAE5D,OAAO,EAAE,uBAAuB,EAAE,sBAAsB,EAAE,MAAM,iCAAiC,CAAC;AAClG,OAAO,EAAE,qBAAqB,EAAE,MAAM,+BAA+B,CAAC;AAGtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,kCAAkC,CAAC;AAEtE,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAE7E,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,OAAO,EAAE,wBAAwB,EAAE,MAAM,6BAA6B,CAAC;AAEvE,OAAO,EACL,mBAAmB,EACnB,gBAAgB,GACjB,MAAM,sCAAsC,CAAC;AAK9C,OAAO,EAAE,0BAA0B,EAAE,MAAM,+BAA+B,CAAC;AAE3E,OAAO,EACL,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,wCAAwC,CAAC;AAahD,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AA8CrD,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EACL,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,eAAe,GAChB,MAAM,mBAAmB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelAdapter.d.ts","sourceRoot":"","sources":["../../src/models/ModelAdapter.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,YAAY,EAAE,YAAY,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ModelAdapter.js","sourceRoot":"","sources":["../../src/models/ModelAdapter.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plan validation (spec §10). Validates before execution.
|
|
3
|
+
*/
|
|
4
|
+
import type { Plan } from "../types/plan.js";
|
|
5
|
+
export type ValidationResult = {
|
|
6
|
+
valid: true;
|
|
7
|
+
} | {
|
|
8
|
+
valid: false;
|
|
9
|
+
errors: string[];
|
|
10
|
+
};
|
|
11
|
+
export declare function validatePlan(plan: Plan): ValidationResult;
|
|
12
|
+
/**
|
|
13
|
+
* Validates the plan and throws PlanningFailureError if invalid.
|
|
14
|
+
*/
|
|
15
|
+
export declare function assertValidPlan(plan: Plan): void;
|
|
16
|
+
//# sourceMappingURL=PlanValidator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlanValidator.d.ts","sourceRoot":"","sources":["../../src/planner/PlanValidator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAI7C,MAAM,MAAM,gBAAgB,GACxB;IAAE,KAAK,EAAE,IAAI,CAAA;CAAE,GACf;IAAE,KAAK,EAAE,KAAK,CAAC;IAAC,MAAM,EAAE,MAAM,EAAE,CAAA;CAAE,CAAC;AAEvC,wBAAgB,YAAY,CAAC,IAAI,EAAE,IAAI,GAAG,gBAAgB,CAiCzD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,CAQhD"}
|
|
@@ -0,0 +1,44 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Plan validation (spec §10). Validates before execution.
|
|
3
|
+
*/
|
|
4
|
+
import { hasCycle } from "../utils/dag.js";
|
|
5
|
+
import { PlanningFailureError } from "../types/errors.js";
|
|
6
|
+
export function validatePlan(plan) {
|
|
7
|
+
const errors = [];
|
|
8
|
+
const steps = plan.steps ?? [];
|
|
9
|
+
const stepIds = new Set();
|
|
10
|
+
for (const step of steps) {
|
|
11
|
+
if (stepIds.has(step.id)) {
|
|
12
|
+
errors.push(`Duplicate step id: ${step.id}`);
|
|
13
|
+
}
|
|
14
|
+
stepIds.add(step.id);
|
|
15
|
+
if (!step.outputs || step.outputs.length === 0) {
|
|
16
|
+
errors.push(`Step ${step.id}: outputs must be declared`);
|
|
17
|
+
}
|
|
18
|
+
if (!step.retryPolicy) {
|
|
19
|
+
errors.push(`Step ${step.id}: retryPolicy must be present`);
|
|
20
|
+
}
|
|
21
|
+
for (const depId of step.dependencies ?? []) {
|
|
22
|
+
if (!stepIds.has(depId)) {
|
|
23
|
+
errors.push(`Step ${step.id}: dependency "${depId}" is not a valid step id`);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
if (hasCycle(steps)) {
|
|
28
|
+
errors.push("Plan contains a cycle in step dependencies");
|
|
29
|
+
}
|
|
30
|
+
if (errors.length > 0) {
|
|
31
|
+
return { valid: false, errors };
|
|
32
|
+
}
|
|
33
|
+
return { valid: true };
|
|
34
|
+
}
|
|
35
|
+
/**
|
|
36
|
+
* Validates the plan and throws PlanningFailureError if invalid.
|
|
37
|
+
*/
|
|
38
|
+
export function assertValidPlan(plan) {
|
|
39
|
+
const result = validatePlan(plan);
|
|
40
|
+
if (!result.valid) {
|
|
41
|
+
throw new PlanningFailureError(`Invalid plan: ${result.errors.join("; ")}`, result.errors);
|
|
42
|
+
}
|
|
43
|
+
}
|
|
44
|
+
//# sourceMappingURL=PlanValidator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"PlanValidator.js","sourceRoot":"","sources":["../../src/planner/PlanValidator.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAC3C,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAM1D,MAAM,UAAU,YAAY,CAAC,IAAU;IACrC,MAAM,MAAM,GAAa,EAAE,CAAC;IAC5B,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,IAAI,EAAE,CAAC;IAC/B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;IAElC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACzB,IAAI,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,CAAC;YACzB,MAAM,CAAC,IAAI,CAAC,sBAAsB,IAAI,CAAC,EAAE,EAAE,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAErB,IAAI,CAAC,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YAC/C,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE,4BAA4B,CAAC,CAAC;QAC3D,CAAC;QACD,IAAI,CAAC,IAAI,CAAC,WAAW,EAAE,CAAC;YACtB,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE,+BAA+B,CAAC,CAAC;QAC9D,CAAC;QAED,KAAK,MAAM,KAAK,IAAI,IAAI,CAAC,YAAY,IAAI,EAAE,EAAE,CAAC;YAC5C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACxB,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,CAAC,EAAE,iBAAiB,KAAK,0BAA0B,CAAC,CAAC;YAC/E,CAAC;QACH,CAAC;IACH,CAAC;IAED,IAAI,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QACpB,MAAM,CAAC,IAAI,CAAC,4CAA4C,CAAC,CAAC;IAC5D,CAAC;IAED,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACtB,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;IAClC,CAAC;IACD,OAAO,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACzB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,IAAU;IACxC,MAAM,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC;IAClC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;QAClB,MAAM,IAAI,oBAAoB,CAC5B,iBAAiB,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,EAC3C,MAAM,CAAC,MAAM,CACd,CAAC;IACJ,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Planner contract (spec §10).
|
|
3
|
+
*/
|
|
4
|
+
import type { Plan } from "../types/plan.js";
|
|
5
|
+
import type { PlannerInput, ReplanInput } from "../types/planner.js";
|
|
6
|
+
export interface Planner {
|
|
7
|
+
createPlan(input: PlannerInput): Promise<Plan>;
|
|
8
|
+
replan(input: ReplanInput): Promise<Plan>;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=Planner.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Planner.d.ts","sourceRoot":"","sources":["../../src/planner/Planner.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAErE,MAAM,WAAW,OAAO;IACtB,UAAU,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/C,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3C"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Planner.js","sourceRoot":"","sources":["../../src/planner/Planner.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* One-call quick start: create an agent with default single-step plan and
|
|
3
|
+
* model-based executor. Get running in a few lines, then customize as needed.
|
|
4
|
+
*/
|
|
5
|
+
import type { ProviderName } from "./runner/createAgentRunner.js";
|
|
6
|
+
import type { OpenAIModelConfig } from "./adapters/models/openai.js";
|
|
7
|
+
import type { AnthropicModelConfig } from "./adapters/models/anthropic.js";
|
|
8
|
+
import type { GeminiModelConfig } from "./adapters/models/gemini.js";
|
|
9
|
+
import type { OllamaModelConfig } from "./adapters/models/ollama.js";
|
|
10
|
+
import type { LmStudioModelConfig } from "./adapters/models/lmstudio.js";
|
|
11
|
+
import type { AgentRunner } from "./runner/AgentRunner.js";
|
|
12
|
+
import type { LLMPlannerOptions } from "./defaults/llmPlanner.js";
|
|
13
|
+
export type QuickAgentConfig = {
|
|
14
|
+
/** Provider (uses env for API keys). */
|
|
15
|
+
provider: ProviderName;
|
|
16
|
+
/** Optional model config override. */
|
|
17
|
+
modelConfig?: OpenAIModelConfig | AnthropicModelConfig | GeminiModelConfig | OllamaModelConfig | LmStudioModelConfig;
|
|
18
|
+
/** Optional system prompt for the default executor (e.g. "Respond in one sentence."). */
|
|
19
|
+
systemPrompt?: string;
|
|
20
|
+
};
|
|
21
|
+
export type GoalDrivenAgentConfig = QuickAgentConfig & {
|
|
22
|
+
/** If true, the LLM generates the plan (steps) from the goal; if false, a single implicit step is used. Default false. */
|
|
23
|
+
useLLMPlanner?: boolean;
|
|
24
|
+
/** Options for the LLM planner when useLLMPlanner is true. */
|
|
25
|
+
llmPlannerOptions?: LLMPlannerOptions;
|
|
26
|
+
};
|
|
27
|
+
/**
|
|
28
|
+
* Create an agent runner with a single-step plan and model-based executor.
|
|
29
|
+
* No tools; just set your provider (and API key in env) and run.
|
|
30
|
+
*
|
|
31
|
+
* @example
|
|
32
|
+
* const runner = createQuickAgent({ provider: "openai" });
|
|
33
|
+
* const run = await runner.run({ goal: "What is 2+2? Explain briefly." });
|
|
34
|
+
* console.log(run.outputs?.answer);
|
|
35
|
+
*/
|
|
36
|
+
export declare function createQuickAgent(config: QuickAgentConfig): AgentRunner;
|
|
37
|
+
/**
|
|
38
|
+
* Create an agent runner that works from a goal only: no steps defined by you.
|
|
39
|
+
* When useLLMPlanner is true, the LLM generates the plan (steps) from the goal;
|
|
40
|
+
* otherwise a single implicit step is used (same as createQuickAgent).
|
|
41
|
+
* No tools; uses default executor and evaluator.
|
|
42
|
+
*
|
|
43
|
+
* @example
|
|
44
|
+
* const runner = createGoalDrivenAgent({ provider: "openai", useLLMPlanner: true });
|
|
45
|
+
* const run = await runner.run({ goal: "Explain quantum computing in 3 steps." });
|
|
46
|
+
* console.log(run.plan.steps, run.outputs);
|
|
47
|
+
*/
|
|
48
|
+
export declare function createGoalDrivenAgent(config: GoalDrivenAgentConfig): AgentRunner;
|
|
49
|
+
//# sourceMappingURL=quickStart.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quickStart.d.ts","sourceRoot":"","sources":["../src/quickStart.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAElE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,gCAAgC,CAAC;AAC3E,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACrE,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,+BAA+B,CAAC;AAUzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,yBAAyB,CAAC;AAC3D,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAElE,MAAM,MAAM,gBAAgB,GAAG;IAC7B,wCAAwC;IACxC,QAAQ,EAAE,YAAY,CAAC;IACvB,sCAAsC;IACtC,WAAW,CAAC,EACR,iBAAiB,GACjB,oBAAoB,GACpB,iBAAiB,GACjB,iBAAiB,GACjB,mBAAmB,CAAC;IACxB,yFAAyF;IACzF,YAAY,CAAC,EAAE,MAAM,CAAC;CACvB,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG,gBAAgB,GAAG;IACrD,0HAA0H;IAC1H,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,8DAA8D;IAC9D,iBAAiB,CAAC,EAAE,iBAAiB,CAAC;CACvC,CAAC;AAmBF;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,gBAAgB,GAAG,WAAW,CAYtE;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,qBAAqB,GAAG,WAAW,CAYhF"}
|