cpa-agents 0.2.2 → 0.3.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.
@@ -1,151 +1,234 @@
1
1
  /**
2
2
  * Pi Harness adapter
3
3
  */
4
- import { par, } from "../process.js";
5
- import { agentProcess, codeThenFix } from "../agent.js";
4
+ import { par, branchFix, } from "../process.js";
5
+ import { fanOut } from "../agent.js";
6
6
  import { invertible, or, retryWithBackoff, saga, timeout } from "../operators.js";
7
7
  import { Scheduler } from "../scheduler.js";
8
+ import { sessionTreeToMarkdown } from "../session-tree.js";
9
+ import { VERSION } from "../version.js";
10
+ let configuredPiBridge;
11
+ /** Connect standalone piTool/piSubAgent factories to a host runtime. */
12
+ export function configurePiBridge(bridge) {
13
+ configuredPiBridge = bridge;
14
+ }
15
+ function resolvePiBridge(explicit) {
16
+ const bridge = explicit ?? configuredPiBridge;
17
+ if (!bridge) {
18
+ throw new Error("Pi bridge not connected. Pass bridge to the factory, call configurePiBridge(), " +
19
+ "or use createPiCpaExtension() with piCtx.agent.");
20
+ }
21
+ return bridge;
22
+ }
23
+ function requirePiAgent(ctx) {
24
+ if (!ctx.agent) {
25
+ throw new Error("Pi agent runtime not connected. Provide piCtx.agent with a run() method.");
26
+ }
27
+ return ctx.agent;
28
+ }
29
+ function sessionId(ctx) {
30
+ return ctx.session?.id ?? "default";
31
+ }
32
+ function makeScheduler(ctx) {
33
+ return new Scheduler({
34
+ onTrace: (e) => {
35
+ ctx.log?.(`[cpa] ${e.type}: ${e.runId}`);
36
+ ctx.session?.appendEvent?.(e);
37
+ },
38
+ });
39
+ }
40
+ function makeRunTask(agent) {
41
+ return (task, model) => async (runCtx) => {
42
+ const result = await agent.run(task, {
43
+ model,
44
+ signal: runCtx.signal,
45
+ });
46
+ if (result.errors?.length) {
47
+ throw new Error(result.errors.join("; "));
48
+ }
49
+ return result.output;
50
+ };
51
+ }
52
+ function makeRunTaskVoid(agent) {
53
+ const runTask = makeRunTask(agent);
54
+ return (task, model) => async (runCtx) => {
55
+ await runTask(task, model)(runCtx);
56
+ };
57
+ }
8
58
  export function piTool(opts) {
9
59
  return {
10
60
  name: `pi:${opts.name}`,
11
- invoke: async (_input, _signal) => {
12
- throw new Error(`piTool(${opts.name}): RPC bridge not connected. ` +
13
- `Run Pi in RPC mode and configure the bridge.`);
61
+ invoke: async (input, signal) => {
62
+ const bridge = resolvePiBridge(opts.bridge);
63
+ const raw = await bridge.runTool({ tool: opts.tool, args: opts.buildArgs(input) }, signal);
64
+ return opts.parseResult(raw);
14
65
  },
15
66
  };
16
67
  }
17
68
  export function piSubAgent(opts) {
18
69
  return {
19
70
  name: `pi:subagent:${opts.name}`,
20
- invoke: async (_, _signal) => {
21
- throw new Error(`piSubAgent(${opts.name}): sub-agent bridge not connected.`);
71
+ invoke: async (_, signal) => {
72
+ const bridge = resolvePiBridge(opts.bridge);
73
+ const output = await bridge.runSubAgent({ prompt: opts.prompt, model: opts.model }, signal);
74
+ return opts.parseResult(output);
75
+ },
76
+ };
77
+ }
78
+ export function createPiBridgeFromAgent(agent) {
79
+ return {
80
+ runSubAgent: async ({ prompt, model }, signal) => {
81
+ const result = await agent.run(prompt, { model, signal });
82
+ if (result.errors?.length) {
83
+ throw new Error(result.errors.join("; "));
84
+ }
85
+ return result.output;
86
+ },
87
+ runTool: async ({ tool, args }, signal) => {
88
+ if (!agent.runTool) {
89
+ throw new Error(`Pi agent runtime has no runTool() for tool "${tool}"`);
90
+ }
91
+ return agent.runTool(tool, args, { signal });
22
92
  },
23
93
  };
24
94
  }
25
95
  export function createPiCpaExtension() {
96
+ const lastTrees = new Map();
97
+ async function rememberTree(ctx, result) {
98
+ lastTrees.set(sessionId(ctx), result.sessionTree);
99
+ return result;
100
+ }
26
101
  return {
27
102
  name: "cpa-agents",
28
- version: "0.2.2",
103
+ version: VERSION,
29
104
  description: "Concurrent Process Algebra for AI agent orchestration",
30
105
  commands: {
31
106
  "cpa:par": {
32
107
  description: "Run tasks in parallel using process algebra",
33
108
  handler: async (args, piCtx) => {
34
- const tasks = args.split("|").map((t) => t.trim());
35
- const scheduler = new Scheduler({
36
- onTrace: (e) => piCtx.log?.(`[cpa] ${e.type}: ${e.runId}`),
37
- });
38
- const processes = tasks.map((task) => piSubAgent({
39
- name: task.slice(0, 30),
40
- prompt: task,
41
- parseResult: (out) => out,
42
- }));
43
- const parallelProc = par(...processes.map((p) => agentProcess(p, undefined)));
44
- return scheduler.run("par", parallelProc);
109
+ const agent = requirePiAgent(piCtx);
110
+ const scheduler = makeScheduler(piCtx);
111
+ const tasks = args
112
+ .split("|")
113
+ .map((t) => t.trim())
114
+ .filter(Boolean);
115
+ const runTask = makeRunTask(agent);
116
+ const processes = tasks.map((task) => runTask(task));
117
+ return rememberTree(piCtx, await scheduler.run("par", par(...processes)));
45
118
  },
46
119
  },
47
120
  "cpa:fix": {
48
121
  description: "Run a task with automatic fix-on-error branching",
49
122
  handler: async (args, piCtx) => {
50
- const scheduler = new Scheduler({
51
- onTrace: (e) => piCtx.log?.(`[cpa] ${e.type}: ${e.runId}`),
123
+ const agent = requirePiAgent(piCtx);
124
+ const scheduler = makeScheduler(piCtx);
125
+ const task = args.trim();
126
+ const proc = branchFix({
127
+ name: "pi-fix",
128
+ main: (requestFix) => async (ctx) => {
129
+ const result = await agent.run(task, { signal: ctx.signal });
130
+ if (result.errors?.length) {
131
+ await requestFix(result.errors.join("; "));
132
+ }
133
+ return result.output;
134
+ },
135
+ fix: (reason) => async (ctx) => {
136
+ await agent.run(`Fix the following issues: ${reason}`, {
137
+ signal: ctx.signal,
138
+ });
139
+ },
52
140
  });
53
- const coder = {
54
- name: "coder",
55
- invoke: async (task, _signal) => `// TODO: implement ${task}`,
56
- };
57
- const checker = {
58
- name: "checker",
59
- invoke: async (_code, _signal) => ({ pass: true, errors: [] }),
60
- };
61
- const fixer = {
62
- name: "fixer",
63
- invoke: async (input, _signal) => input.code,
64
- };
65
- const proc = codeThenFix({ coder, checker, fixer, task: args });
66
- return scheduler.run("fix", proc);
141
+ return rememberTree(piCtx, await scheduler.run("fix", proc));
67
142
  },
68
143
  },
69
144
  "cpa:tree": {
70
145
  description: "Display the CPA session tree",
71
- handler: async (_args, _piCtx) => {
72
- return { message: "Session tree display (see trace output)" };
146
+ handler: async (_args, piCtx) => {
147
+ const tree = lastTrees.get(sessionId(piCtx)) ?? [];
148
+ return {
149
+ tree,
150
+ markdown: sessionTreeToMarkdown(tree),
151
+ };
73
152
  },
74
153
  },
75
154
  "cpa:retry": {
76
155
  description: "Retry a Pi task with backoff and timeout",
77
156
  handler: async (args, piCtx) => {
78
- const scheduler = new Scheduler({
79
- onTrace: (e) => piCtx.log?.(`[cpa] ${e.type}: ${e.runId}`),
80
- });
157
+ const agent = requirePiAgent(piCtx);
158
+ const scheduler = makeScheduler(piCtx);
81
159
  const task = args.trim();
160
+ const runTask = makeRunTask(agent);
82
161
  const proc = retryWithBackoff({
83
- process: timeout(30_000, async (ctx) => {
84
- const sub = piSubAgent({
85
- name: task.slice(0, 30) || "retry-task",
86
- prompt: task,
87
- parseResult: (out) => out,
88
- });
89
- return sub.invoke(undefined, ctx.signal);
90
- }),
162
+ process: timeout(30_000, runTask(task)),
91
163
  maxAttempts: 3,
92
164
  initialDelayMs: 100,
93
165
  });
94
- return scheduler.run("retry", proc);
166
+ return rememberTree(piCtx, await scheduler.run("retry", proc));
95
167
  },
96
168
  },
97
169
  "cpa:fallback": {
98
170
  description: "Run fallback Pi task if primary fails",
99
171
  handler: async (args, piCtx) => {
100
- const scheduler = new Scheduler({
101
- onTrace: (e) => piCtx.log?.(`[cpa] ${e.type}: ${e.runId}`),
102
- });
172
+ const agent = requirePiAgent(piCtx);
173
+ const scheduler = makeScheduler(piCtx);
103
174
  const [primary, fallback] = args
104
175
  .split("||")
105
176
  .map((part) => part.trim())
106
177
  .filter(Boolean);
107
178
  const primaryPrompt = primary ?? args.trim();
108
179
  const fallbackPrompt = fallback ?? `Fallback for: ${primaryPrompt}`;
180
+ const runTask = makeRunTask(agent);
109
181
  const proc = async (ctx) => {
110
- const result = await or(async (c) => piSubAgent({
111
- name: "primary",
112
- prompt: primaryPrompt,
113
- parseResult: (out) => out,
114
- }).invoke(undefined, c.signal), async (c) => piSubAgent({
115
- name: "fallback",
116
- prompt: fallbackPrompt,
117
- parseResult: (out) => out,
118
- }).invoke(undefined, c.signal))(ctx);
182
+ const result = await or(runTask(primaryPrompt), runTask(fallbackPrompt))(ctx);
119
183
  if (!result.ok) {
120
184
  throw result.error;
121
185
  }
122
186
  return result.value;
123
187
  };
124
- return scheduler.run("fallback", proc);
188
+ return rememberTree(piCtx, await scheduler.run("fallback", proc));
125
189
  },
126
190
  },
127
191
  "cpa:saga": {
128
192
  description: "Run rollback-aware multi-step Pi workflow",
129
193
  handler: async (args, piCtx) => {
130
- const scheduler = new Scheduler({
131
- onTrace: (e) => piCtx.log?.(`[cpa] ${e.type}: ${e.runId}`),
132
- });
194
+ const agent = requirePiAgent(piCtx);
195
+ const scheduler = makeScheduler(piCtx);
196
+ const runTask = makeRunTask(agent);
197
+ const runTaskVoid = makeRunTaskVoid(agent);
133
198
  const steps = args
134
199
  .split("|")
135
200
  .map((part) => part.trim())
136
201
  .filter(Boolean);
137
- const proc = saga(steps.map((step) => invertible(async (ctx) => piSubAgent({
138
- name: step.slice(0, 30) || "saga-step",
139
- prompt: step,
140
- parseResult: (out) => out,
141
- }).invoke(undefined, ctx.signal), () => async (ctx) => {
142
- await piSubAgent({
143
- name: "undo",
144
- prompt: `Undo/rollback this step: ${step}`,
145
- parseResult: (out) => out,
146
- }).invoke(undefined, ctx.signal);
147
- })));
148
- return scheduler.run("saga", proc);
202
+ const proc = saga(steps.map((step) => invertible(runTask(step), () => runTaskVoid(`Rollback/undo the effects of this step: ${step}`))));
203
+ return rememberTree(piCtx, await scheduler.run("saga", proc));
204
+ },
205
+ },
206
+ "cpa:fan-out": {
207
+ description: "Run the same task across multiple Pi models",
208
+ handler: async (args, piCtx) => {
209
+ const agent = requirePiAgent(piCtx);
210
+ const scheduler = makeScheduler(piCtx);
211
+ const [taskPart, modelsPart] = args.split("::").map((s) => s.trim());
212
+ const task = taskPart || args.trim();
213
+ const models = modelsPart
214
+ ? modelsPart.split(",").map((m) => m.trim()).filter(Boolean)
215
+ : [undefined];
216
+ const agents = models.map((model) => ({
217
+ name: model ? `model:${model}` : "model:default",
218
+ invoke: async (input, signal) => {
219
+ const result = await agent.run(input, { model, signal });
220
+ if (result.errors?.length) {
221
+ throw new Error(result.errors.join("; "));
222
+ }
223
+ return result.output;
224
+ },
225
+ }));
226
+ const proc = fanOut({
227
+ agents,
228
+ input: task,
229
+ merge: (results) => ({ results, count: results.length }),
230
+ });
231
+ return rememberTree(piCtx, await scheduler.run("fan-out", proc));
149
232
  },
150
233
  },
151
234
  },
@@ -1 +1 @@
1
- {"version":3,"file":"pi-harness.js","sourceRoot":"","sources":["../../src/adapters/pi-harness.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pi-harness.js","sourceRoot":"","sources":["../../src/adapters/pi-harness.ts"],"names":[],"mappings":"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"}
package/dist/agent.js CHANGED
@@ -129,11 +129,11 @@ export function handoff(opts) {
129
129
  channel: ch.name,
130
130
  ts: Date.now(),
131
131
  });
132
- await ch.send(result);
132
+ await ch.send(result, pCtx.signal);
133
133
  },
134
134
  // Consumer: receives from channel, runs `to`
135
135
  async (cCtx) => {
136
- const value = await ch.receive();
136
+ const value = await ch.receive(cCtx.signal);
137
137
  cCtx.trace.emit({
138
138
  type: "receive",
139
139
  runId: cCtx.runId,
package/dist/agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"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"}
package/dist/channel.d.ts CHANGED
@@ -24,12 +24,12 @@ export declare class Channel<T = unknown> {
24
24
  * Send a value. Blocks until a receiver picks it up (rendezvous).
25
25
  * In π-calculus: ā⟨v⟩.P — output v on channel a, then continue as P.
26
26
  */
27
- send(value: T): Promise<void>;
27
+ send(value: T, signal?: AbortSignal): Promise<void>;
28
28
  /**
29
29
  * Receive a value. Blocks until a sender provides one.
30
30
  * In π-calculus: a(x).P — input x from channel a, then continue as P.
31
31
  */
32
- receive(): Promise<T>;
32
+ receive(signal?: AbortSignal): Promise<T>;
33
33
  /**
34
34
  * Non-blocking try-receive. Returns undefined if nothing is waiting.
35
35
  */
@@ -38,6 +38,11 @@ export declare class Channel<T = unknown> {
38
38
  * Close the channel. Rejects all pending waiters.
39
39
  */
40
40
  close(): void;
41
+ /** Cancel pending receivers without closing the channel. */
42
+ cancelPendingReceives(reason?: Error): void;
43
+ /** Cancel pending senders without closing the channel. */
44
+ cancelPendingSends(reason?: Error): void;
45
+ private cancelPendingWaiters;
41
46
  /**
42
47
  * π-calculus restriction: ν(x). Creates a fresh channel
43
48
  * scoped to the provided function. The channel is closed
@@ -48,10 +53,12 @@ export declare class Channel<T = unknown> {
48
53
  /**
49
54
  * Select: π-calculus external choice (P + Q).
50
55
  * Waits on multiple channels, returns the first that fires.
56
+ * Losing branches are cancelled so receivers do not leak.
51
57
  */
52
58
  export interface SelectCase<T> {
53
59
  channel: Channel<T>;
54
60
  handler: (value: T) => Promise<void> | void;
55
61
  }
62
+ export declare function select(signal: AbortSignal, ...cases: SelectCase<any>[]): Promise<void>;
56
63
  export declare function select(...cases: SelectCase<any>[]): Promise<void>;
57
64
  //# sourceMappingURL=channel.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG;IAAE,OAAO,EAAE,WAAW,CAAA;CAAE,CAAC;AAG1D,wBAAgB,OAAO,CAAC,MAAM,SAAO,GAAG,SAAS,CAEhD;AAOD;;;GAGG;AACH,qBAAa,OAAO,CAAC,CAAC,GAAG,OAAO;IAC9B,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,SAAS,CAA+C;IAChE,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,OAAO,CAAS;gBAEZ,IAAI,CAAC,EAAE,MAAM;IAKzB,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED;;;OAGG;IACH,IAAI,CAAC,KAAK,EAAE,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IAkB7B;;;OAGG;IACH,OAAO,IAAI,OAAO,CAAC,CAAC,CAAC;IAkBrB;;OAEG;IACH,UAAU,IAAI,CAAC,GAAG,SAAS;IAS3B;;OAEG;IACH,KAAK,IAAI,IAAI;IASb;;;;OAIG;WACU,QAAQ,CAAC,CAAC,EAAE,CAAC,EACxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GACnC,OAAO,CAAC,CAAC,CAAC;CAQd;AAED;;;GAGG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC7C;AAED,wBAAsB,MAAM,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAUvE"}
1
+ {"version":3,"file":"channel.d.ts","sourceRoot":"","sources":["../src/channel.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,MAAM,SAAS,GAAG,MAAM,GAAG;IAAE,OAAO,EAAE,WAAW,CAAA;CAAE,CAAC;AAG1D,wBAAgB,OAAO,CAAC,MAAM,SAAO,GAAG,SAAS,CAEhD;AAwBD;;;GAGG;AACH,qBAAa,OAAO,CAAC,CAAC,GAAG,OAAO;IAC9B,QAAQ,CAAC,EAAE,EAAE,SAAS,CAAC;IACvB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,SAAS,CAA+C;IAChE,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,OAAO,CAAS;gBAEZ,IAAI,CAAC,EAAE,MAAM;IAKzB,IAAI,MAAM,IAAI,OAAO,CAEpB;IAED;;;OAGG;IACH,IAAI,CAAC,KAAK,EAAE,CAAC,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAqCnD;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,CAAC,CAAC;IAiCzC;;OAEG;IACH,UAAU,IAAI,CAAC,GAAG,SAAS;IAU3B;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb,4DAA4D;IAC5D,qBAAqB,CAAC,MAAM,CAAC,EAAE,KAAK,GAAG,IAAI;IAS3C,0DAA0D;IAC1D,kBAAkB,CAAC,MAAM,CAAC,EAAE,KAAK,GAAG,IAAI;IASxC,OAAO,CAAC,oBAAoB;IAa5B;;;;OAIG;WACU,QAAQ,CAAC,CAAC,EAAE,CAAC,EACxB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,KAAK,OAAO,CAAC,CAAC,CAAC,GACnC,OAAO,CAAC,CAAC,CAAC;CAQd;AAED;;;;GAIG;AACH,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;IACpB,OAAO,EAAE,CAAC,KAAK,EAAE,CAAC,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAC7C;AAED,wBAAsB,MAAM,CAC1B,MAAM,EAAE,WAAW,EACnB,GAAG,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,GAC1B,OAAO,CAAC,IAAI,CAAC,CAAC;AACjB,wBAAsB,MAAM,CAAC,GAAG,KAAK,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC"}