coding-agent-forge 1.1.0 → 1.2.1

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 CHANGED
@@ -154,9 +154,8 @@ merged with the variables passed to `runStreamed`. Per-call variables override
154
154
  same-named constants.
155
155
 
156
156
  `AgentTeam` receives an `AgentFactoryMap` keyed by agent `kind`. Each factory gets
157
- the agent name, thread, and constants, then decides which concrete `Agent` to
158
- return. Validate constants inside the factory when an agent requires specific
159
- constant keys.
157
+ the thread and constants, then decides which concrete `Agent` to return. Validate
158
+ constants inside the factory when an agent requires specific constant keys.
160
159
 
161
160
  For TypeScript-authored configuration, use `defineConfig` to keep thread options
162
161
  bound to the runtime kind selected by each named runtime. Agent thread names are
@@ -1,5 +1,5 @@
1
1
  import { PromptTemplateAgent } from "./template.js";
2
2
  export declare const defaultAgentFactories: {
3
- "prompt-template": (name: string, thread: import("../index.js").Thread<keyof import("../index.js").RuntimeSpec>, constants: Readonly<import("./agent.js").PromptConstants>) => PromptTemplateAgent<import("./agent.js").PromptVariables>;
3
+ "prompt-template": (thread: import("../index.js").Thread<keyof import("../runtime/types.js").RuntimeSpec>, constants: Readonly<import("./agent.js").PromptConstants>) => PromptTemplateAgent<import("./agent.js").PromptVariables>;
4
4
  };
5
5
  //# sourceMappingURL=factories.d.ts.map
@@ -1,5 +1,5 @@
1
1
  import { PromptTemplateAgent } from "./template.js";
2
2
  export const defaultAgentFactories = {
3
- "prompt-template": (name, thread, constants) => new PromptTemplateAgent(name, thread, constants),
3
+ "prompt-template": (thread, constants) => new PromptTemplateAgent(thread, constants),
4
4
  };
5
5
  //# sourceMappingURL=factories.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"factories.js","sourceRoot":"","sources":["../../src/agent/factories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGpD,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,iBAAiB,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,CAAC;CACvE,CAAC"}
1
+ {"version":3,"file":"factories.js","sourceRoot":"","sources":["../../src/agent/factories.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AAGpD,MAAM,CAAC,MAAM,qBAAqB,GAAG;IACnC,iBAAiB,EAAE,CAAC,MAAM,EAAE,SAAS,EAAE,EAAE,CAAC,IAAI,mBAAmB,CAAC,MAAM,EAAE,SAAS,CAAC;CAC3D,CAAC"}
@@ -4,7 +4,6 @@ export type { AgentDefinition, AgentDefinitions, RuntimeThreadAgentConfig } from
4
4
  export { loadAgentDefinitions, loadRuntimeThreadAgentConfig } from "./config.js";
5
5
  export { AgentTeam } from "./team.js";
6
6
  export type { AgentFactory, AgentFactoryMap, AgentVariablesByName } from "./team.js";
7
- export type { Pipeline } from "./pipeline.js";
8
7
  export { PromptTemplateAgent, formatPromptTemplate } from "./template.js";
9
8
  export type { PromptTemplateConstants } from "./template.js";
10
9
  export { defaultAgentFactories } from "./factories.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACnE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC/F,OAAO,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACrF,YAAY,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAC9C,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC1E,YAAY,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AACnC,YAAY,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AACnE,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAC/F,OAAO,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AACtC,YAAY,EAAE,YAAY,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AACrF,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAC1E,YAAY,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC,OAAO,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAGtC,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/agent/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,YAAY,CAAC;AAGnC,OAAO,EAAE,oBAAoB,EAAE,4BAA4B,EAAE,MAAM,aAAa,CAAC;AACjF,OAAO,EAAE,SAAS,EAAE,MAAM,WAAW,CAAC;AAEtC,OAAO,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE1E,OAAO,EAAE,qBAAqB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -1,7 +1,7 @@
1
1
  import type { RecordCallback, Thread } from "../runtime/index.js";
2
2
  import type { Agent, PromptConstants, PromptVariables } from "./agent.js";
3
3
  import type { RuntimeThreadAgentConfig } from "./config.js";
4
- export type AgentFactory = (name: string, thread: Thread, constants: Readonly<PromptConstants>) => Agent;
4
+ export type AgentFactory = (thread: Thread, constants: Readonly<PromptConstants>) => Agent;
5
5
  export type AgentFactoryMap = Record<string, AgentFactory>;
6
6
  export type AgentVariablesByName = Record<string, PromptVariables>;
7
7
  export declare class AgentTeam<VariablesByName extends AgentVariablesByName = AgentVariablesByName> {
@@ -1 +1 @@
1
- {"version":3,"file":"team.d.ts","sourceRoot":"","sources":["../../src/agent/team.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAW,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAE5D,MAAM,MAAM,YAAY,GAAG,CACzB,IAAI,EAAE,MAAM,EACZ,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,QAAQ,CAAC,eAAe,CAAC,KACjC,KAAK,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAE3D,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAEnE,qBAAa,SAAS,CAAC,eAAe,SAAS,oBAAoB,GAAG,oBAAoB;;IAMtF,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBADT,MAAM,EAAE,wBAAwB,EAChC,SAAS,EAAE,eAAe;IAG7C,OAAO,CAAC,UAAU;YAgBJ,SAAS;YAoBT,WAAW;IAenB,QAAQ,CAAC,IAAI,SAAS,MAAM,eAAe,GAAG,MAAM,EACxD,IAAI,EAAE,IAAI,GACT,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;IAiBlC,WAAW,CAAC,IAAI,SAAS,MAAM,eAAe,GAAG,MAAM,EAC3D,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,EAChC,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,MAAM,CAAC;IAKZ,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAQ7B"}
1
+ {"version":3,"file":"team.d.ts","sourceRoot":"","sources":["../../src/agent/team.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,cAAc,EAAW,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAC3E,OAAO,KAAK,EAAE,KAAK,EAAE,eAAe,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAC1E,OAAO,KAAK,EAAE,wBAAwB,EAAE,MAAM,aAAa,CAAC;AAE5D,MAAM,MAAM,YAAY,GAAG,CACzB,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,QAAQ,CAAC,eAAe,CAAC,KACjC,KAAK,CAAC;AAEX,MAAM,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;AAE3D,MAAM,MAAM,oBAAoB,GAAG,MAAM,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;AAEnE,qBAAa,SAAS,CAAC,eAAe,SAAS,oBAAoB,GAAG,oBAAoB;;IAMtF,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,SAAS;gBADT,MAAM,EAAE,wBAAwB,EAChC,SAAS,EAAE,eAAe;IAG7C,OAAO,CAAC,UAAU;YAgBJ,SAAS;YAoBT,WAAW;IAenB,QAAQ,CAAC,IAAI,SAAS,MAAM,eAAe,GAAG,MAAM,EACxD,IAAI,EAAE,IAAI,GACT,OAAO,CAAC,KAAK,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC,CAAC;IAiBlC,WAAW,CAAC,IAAI,SAAS,MAAM,eAAe,GAAG,MAAM,EAC3D,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,EAChC,QAAQ,CAAC,EAAE,cAAc,GACxB,OAAO,CAAC,MAAM,CAAC;IAKZ,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAW7B"}
@@ -44,12 +44,12 @@ export class AgentTeam {
44
44
  if (!agentDefinition) {
45
45
  throw new Error(`Unknown agent: ${name}`);
46
46
  }
47
- const constants = agentDefinition.constants ?? {};
47
+ const constants = Object.freeze({ ...(agentDefinition.constants ?? {}) });
48
48
  const factory = this.factories[agentDefinition.kind];
49
49
  if (!factory) {
50
50
  throw new Error(`Unknown agent kind for ${name}: ${agentDefinition.kind}`);
51
51
  }
52
- return factory(name, await this.getThread(agentDefinition.thread), constants);
52
+ return factory(await this.getThread(agentDefinition.thread), constants);
53
53
  }
54
54
  async getAgent(name) {
55
55
  // VariablesByName is a caller-provided type witness; factories are validated at runtime only by name.
@@ -71,10 +71,13 @@ export class AgentTeam {
71
71
  return await agent.runStreamed(variables, onRecord);
72
72
  }
73
73
  async close() {
74
+ const agents = [...this.#agents.values()];
75
+ const threads = [...this.#threads.values()];
74
76
  const runtimes = [...this.#runtimes.values()];
75
77
  this.#agents.clear();
76
78
  this.#threads.clear();
77
79
  this.#runtimes.clear();
80
+ await Promise.allSettled([...agents, ...threads]);
78
81
  await Promise.all(runtimes.map((runtime) => runtime.close()));
79
82
  }
80
83
  }
@@ -1 +1 @@
1
- {"version":3,"file":"team.js","sourceRoot":"","sources":["../../src/agent/team.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,sBAAsB,CAAC;AAelE,MAAM,OAAO,SAAS;IAMD;IACA;IANV,OAAO,GAAG,IAAI,GAAG,EAA0B,CAAC;IAC5C,SAAS,GAAG,IAAI,GAAG,EAAmB,CAAC;IACvC,QAAQ,GAAG,IAAI,GAAG,EAA2B,CAAC;IAEvD,YACmB,MAAgC,EAChC,SAA0B;QAD1B,WAAM,GAAN,MAAM,CAA0B;QAChC,cAAS,GAAT,SAAS,CAAiB;IAC1C,CAAC;IAEI,UAAU,CAAC,IAAY;QAC7B,MAAM,aAAa,GAAG,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,aAAa,EAAE,CAAC;YAClB,OAAO,aAAa,CAAC;QACvB,CAAC;QAED,MAAM,iBAAiB,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,iBAAiB,EAAE,CAAC;YACvB,MAAM,IAAI,KAAK,CAAC,oBAAoB,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,OAAO,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAC;QACjD,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;QAClC,OAAO,OAAO,CAAC;IACjB,CAAC;IAEO,KAAK,CAAC,SAAS,CAAC,IAAY;QAClC,MAAM,YAAY,GAAG,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC7C,IAAI,YAAY,EAAE,CAAC;YACjB,OAAO,MAAM,YAAY,CAAC;QAC5B,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACnD,IAAI,CAAC,gBAAgB,EAAE,CAAC;YACtB,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,EAAE,CAAC,CAAC;QAC7C,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,CAAC,OAAO,CAAC,CAAC;QAC1D,MAAM,MAAM,GAAG,WAAW,CAAC,OAAO,EAAE,gBAAgB,CAAC,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YACrF,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC3B,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAChC,OAAO,MAAM,MAAM,CAAC;IACtB,CAAC;IAEO,KAAK,CAAC,WAAW,CAAC,IAAY;QACpC,MAAM,eAAe,GAAG,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QACjD,IAAI,CAAC,eAAe,EAAE,CAAC;YACrB,MAAM,IAAI,KAAK,CAAC,kBAAkB,IAAI,EAAE,CAAC,CAAC;QAC5C,CAAC;QAED,MAAM,SAAS,GAAoB,eAAe,CAAC,SAAS,IAAI,EAAE,CAAC;QACnE,MAAM,OAAO,GAAG,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,CAAC;QACrD,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,0BAA0B,IAAI,KAAK,eAAe,CAAC,IAAI,EAAE,CAAC,CAAC;QAC7E,CAAC;QAED,OAAO,OAAO,CAAC,IAAI,EAAE,MAAM,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,MAAM,CAAC,EAAE,SAAS,CAAC,CAAC;IAChF,CAAC;IAED,KAAK,CAAC,QAAQ,CACZ,IAAU;QAEV,sGAAsG;QACtG,MAAM,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;QAC3C,IAAI,WAAW,EAAE,CAAC;YAChB,+IAA+I;YAC/I,OAAO,CAAC,MAAM,WAAW,CAAiC,CAAC;QAC7D,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,KAAc,EAAE,EAAE;YAC5D,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC1B,MAAM,KAAK,CAAC;QACd,CAAC,CAAC,CAAC;QACH,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QAC9B,+IAA+I;QAC/I,OAAO,CAAC,MAAM,KAAK,CAAiC,CAAC;IACvD,CAAC;IAED,KAAK,CAAC,WAAW,CACf,IAAU,EACV,SAAgC,EAChC,QAAyB;QAEzB,MAAM,KAAK,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;QACxC,OAAO,MAAM,KAAK,CAAC,WAAW,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,QAAQ,GAAG,CAAC,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;QACrB,IAAI,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QACtB,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAC;QAEvB,MAAM,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;IAChE,CAAC;CACF"}
1
+ {"version":3,"file":"team.js","sourceRoot":"","sources":["../../src/agent/team.ts"],"names":[],"mappings":"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"}
@@ -6,7 +6,7 @@ export type PromptTemplateConstants = PromptConstants & {
6
6
  export declare function formatPromptTemplate(template: string, variables: Readonly<PromptVariables>): string;
7
7
  export declare function mergePromptTemplateVariables(constants: Readonly<PromptTemplateConstants>, variables: Readonly<PromptVariables>, exceptConstants?: readonly string[]): PromptVariables;
8
8
  export declare class PromptTemplateAgent<Variables extends PromptVariables = PromptVariables> extends Agent<Variables, PromptTemplateConstants> {
9
- constructor(agentName: string, thread: Thread, constants: Readonly<PromptConstants>);
9
+ constructor(thread: Thread, constants: Readonly<PromptConstants>);
10
10
  protected buildPrompt(variables: Readonly<Variables>, constants: Readonly<PromptTemplateConstants>): string;
11
11
  }
12
12
  //# sourceMappingURL=template.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/agent/template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,KAAK,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAE/E,MAAM,MAAM,uBAAuB,GAAG,eAAe,GAAG;IACtD,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,QAAQ,CAAC,eAAe,CAAC,GACnC,MAAM,CAeR;AAED,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,QAAQ,CAAC,uBAAuB,CAAC,EAC5C,SAAS,EAAE,QAAQ,CAAC,eAAe,CAAC,EACpC,eAAe,GAAE,SAAS,MAAM,EAAO,GACtC,eAAe,CASjB;AAED,qBAAa,mBAAmB,CAAC,SAAS,SAAS,eAAe,GAAG,eAAe,CAAE,SAAQ,KAAK,CACjG,SAAS,EACT,uBAAuB,CACxB;gBACa,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,eAAe,CAAC;IASnF,SAAS,CAAC,WAAW,CACnB,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,EAC9B,SAAS,EAAE,QAAQ,CAAC,uBAAuB,CAAC,GAC3C,MAAM;CAMV"}
1
+ {"version":3,"file":"template.d.ts","sourceRoot":"","sources":["../../src/agent/template.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,qBAAqB,CAAC;AAClD,OAAO,EAAE,KAAK,EAAE,KAAK,eAAe,EAAE,KAAK,eAAe,EAAE,MAAM,YAAY,CAAC;AAE/E,MAAM,MAAM,uBAAuB,GAAG,eAAe,GAAG;IACtD,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,wBAAgB,oBAAoB,CAClC,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,QAAQ,CAAC,eAAe,CAAC,GACnC,MAAM,CA0CR;AAED,wBAAgB,4BAA4B,CAC1C,SAAS,EAAE,QAAQ,CAAC,uBAAuB,CAAC,EAC5C,SAAS,EAAE,QAAQ,CAAC,eAAe,CAAC,EACpC,eAAe,GAAE,SAAS,MAAM,EAAO,GACtC,eAAe,CASjB;AAED,qBAAa,mBAAmB,CAAC,SAAS,SAAS,eAAe,GAAG,eAAe,CAAE,SAAQ,KAAK,CACjG,SAAS,EACT,uBAAuB,CACxB;gBACa,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,CAAC,eAAe,CAAC;IAShE,SAAS,CAAC,WAAW,CACnB,SAAS,EAAE,QAAQ,CAAC,SAAS,CAAC,EAC9B,SAAS,EAAE,QAAQ,CAAC,uBAAuB,CAAC,GAC3C,MAAM;CAUV"}
@@ -1,17 +1,38 @@
1
1
  import { Agent } from "./agent.js";
2
2
  export function formatPromptTemplate(template, variables) {
3
- let prompt = template;
3
+ const replacements = [];
4
4
  for (const [name, value] of Object.entries(variables)) {
5
5
  if (!/^[A-Za-z_][A-Za-z0-9_]*$/.test(name)) {
6
6
  throw new Error(`Invalid prompt template variable name: ${name}`);
7
7
  }
8
- prompt = prompt.replace(new RegExp(`\\{\\{\\s*${name}\\s*\\}\\}`, "g"), () => value);
8
+ const placeholderPattern = new RegExp(`\\{\\{\\s*${name}\\s*\\}\\}`, "g");
9
+ let placeholder;
10
+ while ((placeholder = placeholderPattern.exec(template)) !== null) {
11
+ replacements.push({
12
+ start: placeholder.index,
13
+ end: placeholder.index + placeholder[0].length,
14
+ value,
15
+ });
16
+ }
17
+ }
18
+ const placeholderPattern = /\{\{\s*[^{}]*\S[^{}]*\s*\}\}/g;
19
+ let placeholder;
20
+ while ((placeholder = placeholderPattern.exec(template)) !== null) {
21
+ const start = placeholder.index;
22
+ const end = start + placeholder[0].length;
23
+ if (!replacements.some((replacement) => replacement.start === start && replacement.end === end)) {
24
+ throw new Error(`Missing prompt template variable: ${placeholder[0]}`);
25
+ }
9
26
  }
10
- const remainingPlaceholder = /\{\{\s*[^{}]*\S[^{}]*\s*\}\}/.exec(prompt);
11
- if (remainingPlaceholder) {
12
- throw new Error(`Missing prompt template variable: ${remainingPlaceholder[0]}`);
27
+ replacements.sort((left, right) => left.start - right.start);
28
+ let prompt = "";
29
+ let cursor = 0;
30
+ for (const replacement of replacements) {
31
+ prompt += template.slice(cursor, replacement.start);
32
+ prompt += replacement.value;
33
+ cursor = replacement.end;
13
34
  }
14
- return prompt;
35
+ return prompt + template.slice(cursor);
15
36
  }
16
37
  export function mergePromptTemplateVariables(constants, variables, exceptConstants = []) {
17
38
  const constantVariables = {};
@@ -23,14 +44,17 @@ export function mergePromptTemplateVariables(constants, variables, exceptConstan
23
44
  return { ...constantVariables, ...variables };
24
45
  }
25
46
  export class PromptTemplateAgent extends Agent {
26
- constructor(agentName, thread, constants) {
47
+ constructor(thread, constants) {
27
48
  const template = constants.template;
28
49
  if (template === undefined) {
29
- throw new Error(`Agent ${agentName} constants must define template`);
50
+ throw new Error("PromptTemplateAgent constants must define template");
30
51
  }
31
52
  super(thread, { ...constants, template });
32
53
  }
33
54
  buildPrompt(variables, constants) {
55
+ if (Object.hasOwn(variables, "template")) {
56
+ throw new Error("Prompt variables cannot define reserved key: template");
57
+ }
34
58
  return formatPromptTemplate(constants.template, mergePromptTemplateVariables(constants, variables, ["template"]));
35
59
  }
36
60
  }
@@ -1 +1 @@
1
- {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/agent/template.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,KAAK,EAA8C,MAAM,YAAY,CAAC;AAM/E,MAAM,UAAU,oBAAoB,CAClC,QAAgB,EAChB,SAAoC;IAEpC,IAAI,MAAM,GAAG,QAAQ,CAAC;IACtB,KAAK,MAAM,CAAC,IAAI,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACtD,IAAI,CAAC,0BAA0B,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC;YAC3C,MAAM,IAAI,KAAK,CAAC,0CAA0C,IAAI,EAAE,CAAC,CAAC;QACpE,CAAC;QACD,MAAM,GAAG,MAAM,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,aAAa,IAAI,YAAY,EAAE,GAAG,CAAC,EAAE,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC;IACvF,CAAC;IAED,MAAM,oBAAoB,GAAG,8BAA8B,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IACzE,IAAI,oBAAoB,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,qCAAqC,oBAAoB,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAClF,CAAC;IAED,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,4BAA4B,CAC1C,SAA4C,EAC5C,SAAoC,EACpC,kBAAqC,EAAE;IAEvC,MAAM,iBAAiB,GAAoB,EAAE,CAAC;IAC9C,KAAK,MAAM,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC;QACrD,IAAI,CAAC,eAAe,CAAC,QAAQ,CAAC,GAAG,CAAC,EAAE,CAAC;YACnC,iBAAiB,CAAC,GAAG,CAAC,GAAG,KAAK,CAAC;QACjC,CAAC;IACH,CAAC;IAED,OAAO,EAAE,GAAG,iBAAiB,EAAE,GAAG,SAAS,EAAE,CAAC;AAChD,CAAC;AAED,MAAM,OAAO,mBAAyE,SAAQ,KAG7F;IACC,YAAY,SAAiB,EAAE,MAAc,EAAE,SAAoC;QACjF,MAAM,QAAQ,GAAG,SAAS,CAAC,QAAQ,CAAC;QACpC,IAAI,QAAQ,KAAK,SAAS,EAAE,CAAC;YAC3B,MAAM,IAAI,KAAK,CAAC,SAAS,SAAS,iCAAiC,CAAC,CAAC;QACvE,CAAC;QAED,KAAK,CAAC,MAAM,EAAE,EAAE,GAAG,SAAS,EAAE,QAAQ,EAAE,CAAC,CAAC;IAC5C,CAAC;IAES,WAAW,CACnB,SAA8B,EAC9B,SAA4C;QAE5C,OAAO,oBAAoB,CACzB,SAAS,CAAC,QAAQ,EAClB,4BAA4B,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,UAAU,CAAC,CAAC,CACjE,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"template.js","sourceRoot":"","sources":["../../src/agent/template.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -18,15 +18,6 @@ function parseVariables(entry) {
18
18
  }
19
19
  return variables;
20
20
  }
21
- const pipeline = async (team, variableGroups) => {
22
- const logRecord = (thread, record) => {
23
- process.stderr.write(`${thread.recordToPrettyString(record)}\n`);
24
- };
25
- for (const variableGroup of variableGroups) {
26
- const response = await team.runStreamed(agentName, parseVariables(variableGroup), logRecord);
27
- process.stdout.write(`${response}\n`);
28
- }
29
- };
30
21
  const { values, positionals: variableGroups } = parseArgs({
31
22
  args: process.argv.slice(2),
32
23
  options: {
@@ -48,7 +39,13 @@ if (!config.agents[agentName]) {
48
39
  }
49
40
  const team = new AgentTeam(config, defaultAgentFactories);
50
41
  try {
51
- await pipeline(team, variableGroups);
42
+ const logRecord = (thread, record) => {
43
+ process.stderr.write(`${thread.recordToPrettyString(record)}\n`);
44
+ };
45
+ for (const variableGroup of variableGroups) {
46
+ const response = await team.runStreamed(agentName, parseVariables(variableGroup), logRecord);
47
+ process.stdout.write(`${response}\n`);
48
+ }
52
49
  }
53
50
  finally {
54
51
  await team.close();
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,7 @@
1
- export * from "./config.js";
2
- export * from "./agent/index.js";
3
- export * from "./runtime/index.js";
1
+ export { defineConfig, loadConfig } from "./config.js";
2
+ export { Agent, AgentTeam, PromptTemplateAgent, formatPromptTemplate, } from "./agent/index.js";
3
+ export { createRuntime, startThread } from "./runtime/index.js";
4
+ export type { Config } from "./config.js";
5
+ export type { AgentDefinition, AgentFactory, AgentFactoryMap, AgentVariablesByName, PromptConstants, PromptVariables, PromptTemplateConstants, } from "./agent/index.js";
6
+ export type { Runtime, RuntimeKind, RuntimeOptions, RuntimeRecord, Thread, ThreadOptions, RecordCallback, } from "./runtime/index.js";
4
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EACL,KAAK,EACL,SAAS,EACT,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEhE,YAAY,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAE1C,YAAY,EACV,eAAe,EACf,YAAY,EACZ,eAAe,EACf,oBAAoB,EACpB,eAAe,EACf,eAAe,EACf,uBAAuB,GACxB,MAAM,kBAAkB,CAAC;AAE1B,YAAY,EACV,OAAO,EACP,WAAW,EACX,cAAc,EACd,aAAa,EACb,MAAM,EACN,aAAa,EACb,cAAc,GACf,MAAM,oBAAoB,CAAC"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export * from "./config.js";
2
- export * from "./agent/index.js";
3
- export * from "./runtime/index.js";
1
+ export { defineConfig, loadConfig } from "./config.js";
2
+ export { Agent, AgentTeam, PromptTemplateAgent, formatPromptTemplate, } from "./agent/index.js";
3
+ export { createRuntime, startThread } from "./runtime/index.js";
4
4
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,aAAa,CAAC;AAC5B,cAAc,kBAAkB,CAAC;AACjC,cAAc,oBAAoB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACvD,OAAO,EACL,KAAK,EACL,SAAS,EACT,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/runtime/format.ts"],"names":[],"mappings":"AAEA,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAOlD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAM,GAAG,MAAM,CAGjE;AAED,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAKjF"}
1
+ {"version":3,"file":"format.d.ts","sourceRoot":"","sources":["../../src/runtime/format.ts"],"names":[],"mappings":"AAEA,wBAAgB,WAAW,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAOlD;AAED,wBAAgB,WAAW,CAAC,IAAI,EAAE,MAAM,EAAE,SAAS,SAAM,GAAG,MAAM,CAGjE;AAGD,wBAAgB,uBAAuB,CAAC,CAAC,SAAS,MAAM,EAAE,IAAI,EAAE,CAAC,EAAE,QAAQ,EAAE,CAAC,GAAG,CAAC,CAKjF"}
@@ -10,6 +10,7 @@ export function previewText(text, maxLength = 240) {
10
10
  const trimmed = text.trim();
11
11
  return trimmed.length <= maxLength ? trimmed : `${trimmed.slice(0, maxLength - 3)}...`;
12
12
  }
13
+ // YAML options are checked only as plain objects; provider SDKs remain the final shape validators.
13
14
  export function mergePlainObjectOptions(base, override) {
14
15
  return mergePlainObjects(base, override);
15
16
  }
@@ -1 +1 @@
1
- {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/runtime/format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAuB,CAAC;IACxE,OAAO,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,SAAS,GAAG,GAAG;IACvD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,OAAO,OAAO,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC;AACzF,CAAC;AAED,MAAM,UAAU,uBAAuB,CAAmB,IAAO,EAAE,QAAW;IAC5E,OAAO,iBAAiB,CACtB,IAA+B,EAC/B,QAAmC,CAC/B,CAAC;AACT,CAAC"}
1
+ {"version":3,"file":"format.js","sourceRoot":"","sources":["../../src/runtime/format.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AAEvD,MAAM,UAAU,WAAW,CAAC,KAAc;IACxC,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;QAC9B,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,CAAC,CAAuB,CAAC;IACxE,OAAO,UAAU,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC;AACrC,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,IAAY,EAAE,SAAS,GAAG,GAAG;IACvD,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5B,OAAO,OAAO,CAAC,MAAM,IAAI,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,CAAC,EAAE,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC;AACzF,CAAC;AAED,mGAAmG;AACnG,MAAM,UAAU,uBAAuB,CAAmB,IAAO,EAAE,QAAW;IAC5E,OAAO,iBAAiB,CACtB,IAA+B,EAC/B,QAAmC,CAC/B,CAAC;AACT,CAAC"}
@@ -1,5 +1,5 @@
1
- export type { RuntimeSpec, RuntimeKind, RuntimeOptions, ThreadOptions, RuntimeRecord, Runtime, BaseRuntime, Thread, RecordCallback, } from "./types.js";
2
- export { isRuntimeKind, runtimeKinds } from "./types.js";
1
+ export type { RuntimeSpec, RuntimeKind, RuntimeOptions, ThreadOptions, RuntimeRecord, Runtime, Thread, RecordCallback, } from "./types.js";
2
+ export { BaseRuntime, isRuntimeKind, runtimeKinds } from "./types.js";
3
3
  export { createRuntime, startThread, loadRuntimeDefinitions, loadThreadDefinitions, } from "./config.js";
4
4
  export type { RuntimeDefinition, RuntimeDefinitions, ThreadDefinition, ThreadDefinitions, RuntimeThreadConfig, } from "./config.js";
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,WAAW,EACX,WAAW,EACX,cAAc,EACd,aAAa,EACb,aAAa,EACb,OAAO,EACP,WAAW,EACX,MAAM,EACN,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EACL,aAAa,EACb,WAAW,EACX,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,YAAY,EACV,WAAW,EACX,WAAW,EACX,cAAc,EACd,aAAa,EACb,aAAa,EACb,OAAO,EACP,MAAM,EACN,cAAc,GACf,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EACL,aAAa,EACb,WAAW,EACX,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,aAAa,CAAC;AACrB,YAAY,EACV,iBAAiB,EACjB,kBAAkB,EAClB,gBAAgB,EAChB,iBAAiB,EACjB,mBAAmB,GACpB,MAAM,aAAa,CAAC"}
@@ -1,3 +1,3 @@
1
- export { isRuntimeKind, runtimeKinds } from "./types.js";
1
+ export { BaseRuntime, isRuntimeKind, runtimeKinds } from "./types.js";
2
2
  export { createRuntime, startThread, loadRuntimeDefinitions, loadThreadDefinitions, } from "./config.js";
3
3
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAWA,OAAO,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACzD,OAAO,EACL,aAAa,EACb,WAAW,EACX,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAUA,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AACtE,OAAO,EACL,aAAa,EACb,WAAW,EACX,sBAAsB,EACtB,qBAAqB,GACtB,MAAM,aAAa,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "coding-agent-forge",
3
- "version": "1.1.0",
3
+ "version": "1.2.1",
4
4
  "description": "A small runtime wrapper for Codex, Claude, Qwen Code, and opencode.",
5
5
  "repository": {
6
6
  "type": "git",
@@ -1,3 +0,0 @@
1
- import type { AgentTeam, AgentVariablesByName } from "./team.js";
2
- export type Pipeline<Option extends readonly unknown[] = [], VariablesByName extends AgentVariablesByName = AgentVariablesByName> = (team: AgentTeam<VariablesByName>, ...options: Option) => Promise<void>;
3
- //# sourceMappingURL=pipeline.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pipeline.d.ts","sourceRoot":"","sources":["../../src/agent/pipeline.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEjE,MAAM,MAAM,QAAQ,CAClB,MAAM,SAAS,SAAS,OAAO,EAAE,GAAG,EAAE,EACtC,eAAe,SAAS,oBAAoB,GAAG,oBAAoB,IACjE,CAAC,IAAI,EAAE,SAAS,CAAC,eAAe,CAAC,EAAE,GAAG,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=pipeline.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"pipeline.js","sourceRoot":"","sources":["../../src/agent/pipeline.ts"],"names":[],"mappings":""}