cpa-agents 0.1.0 → 0.2.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.
@@ -6,7 +6,7 @@
6
6
  import { type TraceEvent, type SessionNode } from "../process.js";
7
7
  import { type AgentCall } from "../agent.js";
8
8
  import { type SchedulerResult } from "../scheduler.js";
9
- export declare const SKILL_MD = "# cpa-agents \u2014 Concurrent Process Algebra\n\nOrchestrate complex multi-step agent workflows using formal\nprocess algebra primitives. Supports parallel execution,\nbranch-fix-continue patterns, and supervised error recovery.\n\n## Commands\n\n- `cpa:parallel` \u2014 Run multiple tasks concurrently\n- `cpa:pipeline` \u2014 Chain tasks sequentially\n- `cpa:branch-fix` \u2014 Run a task with automatic error correction branching\n- `cpa:fan-out` \u2014 Send same task to multiple models, merge results\n- `cpa:status` \u2014 Show running process tree\n\n## When to use\n\nUse this skill when:\n- You need to run multiple independent tasks at the same time\n- A task might fail and needs automatic retry/fix before continuing\n- You want to compare outputs from different approaches\n- Complex workflows with dependencies between steps\n";
9
+ export declare const SKILL_MD = "# cpa-agents \u2014 Concurrent Process Algebra\n\nUse process algebra primitives to orchestrate agent workflows in OpenClaw.\nThis skill is useful for parallel execution, branch-fix loops, fan-out\ncomparison, and inspecting workflow state.\n\n## Install\n\n### 1) Install library\n```bash\nnpm install cpa-agents\n```\n\n### 2) Create the skill entrypoint\n```ts\nimport { createOpenClawSkill } from \"cpa-agents/adapters/openclaw\";\n\nexport default createOpenClawSkill();\n```\n\n### 3) Ensure OpenClaw can execute skills\n- OpenClaw Gateway must be running.\n- Your skill runtime must allow async tool execution.\n- Keep this package at version `0.1.0` or newer.\n\n## Commands\n\n### cpa:parallel\nRun independent tasks concurrently.\n\nInput:\n```json\n{ \"tasks\": [\"task one\", \"task two\"], \"timeout\": 300000 }\n```\n\n### cpa:branch-fix\nRun task, detect errors, branch into a fix subprocess, then continue.\n\nInput:\n```json\n{ \"task\": \"implement feature with checks\", \"timeout\": 300000 }\n```\n\n### cpa:fan-out\nRun same task across multiple models and return merged results.\n\nInput:\n```json\n{ \"task\": \"draft API design\", \"models\": [\"model-a\", \"model-b\"], \"timeout\": 300000 }\n```\n\n### cpa:status\nGet current process tree/status for the current session.\n\nInput:\n```json\n{}\n```\n\n## Recommended usage prompts\n\n- \"Run in parallel: analyze bug, propose fix, generate tests\"\n- \"Branch-fix this refactor until no type errors remain\"\n- \"Fan-out this architecture prompt across 2 models and compare\"\n- \"Show cpa status\"\n\n## Troubleshooting\n\n- **Gateway not connected**\n - Start OpenClaw Gateway and retry.\n- **Unknown command**\n - Use one of: `parallel`, `branch-fix`, `fan-out`, `status`.\n- **Timeout errors**\n - Increase `timeout` in command args.\n- **No session events**\n - Confirm session context has `appendEvent` enabled.\n";
10
10
  export declare function openclawTool<TInput, TOutput>(opts: {
11
11
  name: string;
12
12
  tool: string;
@@ -1 +1 @@
1
- {"version":3,"file":"openclaw.d.ts","sourceRoot":"","sources":["../../src/adapters/openclaw.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAGL,KAAK,UAAU,EACf,KAAK,WAAW,EAGjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,KAAK,SAAS,EAAwB,MAAM,aAAa,CAAC;AACnE,OAAO,EAAa,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAIlE,eAAO,MAAM,QAAQ,80BAqBpB,CAAC;AAIF,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtD,WAAW,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC;CACxC,GAAG,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAU7B;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG;IACF,UAAU,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,WAAW,EAAE,SAAS,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,IAAI,CAAC,CAAC;CAC9D,CAkBA;AAID,UAAU,eAAe;IACvB,OAAO,CAAC,EAAE;QACR,EAAE,EAAE,MAAM,CAAC;QACX,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;KAC3C,CAAC;IACF,KAAK,EAAE;QACL,GAAG,EAAE,CACH,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,WAAW,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,KAC5C,OAAO,CAAC;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAC;KACrD,CAAC;CACH;AAED,wBAAgB,mBAAmB;;;;2BASpB,MAAM,QACT,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,eAChB,eAAe,GAC3B,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;EAkHvC;AAID,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,WAAW,EAAE,EACpB,KAAK,SAAI,GACR,MAAM,CAsCR"}
1
+ {"version":3,"file":"openclaw.d.ts","sourceRoot":"","sources":["../../src/adapters/openclaw.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAGL,KAAK,UAAU,EACf,KAAK,WAAW,EAGjB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,KAAK,SAAS,EAAwB,MAAM,aAAa,CAAC;AACnE,OAAO,EAAa,KAAK,eAAe,EAAE,MAAM,iBAAiB,CAAC;AAIlE,eAAO,MAAM,QAAQ,i3DA4EpB,CAAC;AAIF,wBAAgB,YAAY,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,EAAE;IAClD,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACtD,WAAW,EAAE,CAAC,GAAG,EAAE,OAAO,KAAK,OAAO,CAAC;CACxC,GAAG,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,CAU7B;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,aAAa,CAAC,EAAE,MAAM,CAAC;CACxB,GAAG;IACF,UAAU,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACtC,WAAW,EAAE,SAAS,CAAC;QAAE,GAAG,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,IAAI,CAAC,CAAC;CAC9D,CAkBA;AAID,UAAU,eAAe;IACvB,OAAO,CAAC,EAAE;QACR,EAAE,EAAE,MAAM,CAAC;QACX,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,IAAI,CAAC;KAC3C,CAAC;IACF,KAAK,EAAE;QACL,GAAG,EAAE,CACH,IAAI,EAAE,MAAM,EACZ,IAAI,CAAC,EAAE;YAAE,MAAM,CAAC,EAAE,WAAW,CAAC;YAAC,KAAK,CAAC,EAAE,MAAM,CAAA;SAAE,KAC5C,OAAO,CAAC;YAAE,MAAM,EAAE,MAAM,CAAC;YAAC,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC,CAAC;KACrD,CAAC;CACH;AAED,wBAAgB,mBAAmB;;;;2BASpB,MAAM,QACT,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,eAChB,eAAe,GAC3B,OAAO,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;EAkHvC;AAID,wBAAgB,qBAAqB,CACnC,KAAK,EAAE,WAAW,EAAE,EACpB,KAAK,SAAI,GACR,MAAM,CAsCR"}
@@ -9,25 +9,80 @@ import { Scheduler } from "../scheduler.js";
9
9
  // ─── SKILL.md content ───────────────────────────────────────────
10
10
  export const SKILL_MD = `# cpa-agents — Concurrent Process Algebra
11
11
 
12
- Orchestrate complex multi-step agent workflows using formal
13
- process algebra primitives. Supports parallel execution,
14
- branch-fix-continue patterns, and supervised error recovery.
12
+ Use process algebra primitives to orchestrate agent workflows in OpenClaw.
13
+ This skill is useful for parallel execution, branch-fix loops, fan-out
14
+ comparison, and inspecting workflow state.
15
+
16
+ ## Install
17
+
18
+ ### 1) Install library
19
+ \`\`\`bash
20
+ npm install cpa-agents
21
+ \`\`\`
22
+
23
+ ### 2) Create the skill entrypoint
24
+ \`\`\`ts
25
+ import { createOpenClawSkill } from "cpa-agents/adapters/openclaw";
26
+
27
+ export default createOpenClawSkill();
28
+ \`\`\`
29
+
30
+ ### 3) Ensure OpenClaw can execute skills
31
+ - OpenClaw Gateway must be running.
32
+ - Your skill runtime must allow async tool execution.
33
+ - Keep this package at version \`0.1.0\` or newer.
15
34
 
16
35
  ## Commands
17
36
 
18
- - \`cpa:parallel\` — Run multiple tasks concurrently
19
- - \`cpa:pipeline\` — Chain tasks sequentially
20
- - \`cpa:branch-fix\` — Run a task with automatic error correction branching
21
- - \`cpa:fan-out\` — Send same task to multiple models, merge results
22
- - \`cpa:status\` — Show running process tree
37
+ ### cpa:parallel
38
+ Run independent tasks concurrently.
39
+
40
+ Input:
41
+ \`\`\`json
42
+ { "tasks": ["task one", "task two"], "timeout": 300000 }
43
+ \`\`\`
44
+
45
+ ### cpa:branch-fix
46
+ Run task, detect errors, branch into a fix subprocess, then continue.
47
+
48
+ Input:
49
+ \`\`\`json
50
+ { "task": "implement feature with checks", "timeout": 300000 }
51
+ \`\`\`
52
+
53
+ ### cpa:fan-out
54
+ Run same task across multiple models and return merged results.
55
+
56
+ Input:
57
+ \`\`\`json
58
+ { "task": "draft API design", "models": ["model-a", "model-b"], "timeout": 300000 }
59
+ \`\`\`
60
+
61
+ ### cpa:status
62
+ Get current process tree/status for the current session.
63
+
64
+ Input:
65
+ \`\`\`json
66
+ {}
67
+ \`\`\`
68
+
69
+ ## Recommended usage prompts
70
+
71
+ - "Run in parallel: analyze bug, propose fix, generate tests"
72
+ - "Branch-fix this refactor until no type errors remain"
73
+ - "Fan-out this architecture prompt across 2 models and compare"
74
+ - "Show cpa status"
23
75
 
24
- ## When to use
76
+ ## Troubleshooting
25
77
 
26
- Use this skill when:
27
- - You need to run multiple independent tasks at the same time
28
- - A task might fail and needs automatic retry/fix before continuing
29
- - You want to compare outputs from different approaches
30
- - Complex workflows with dependencies between steps
78
+ - **Gateway not connected**
79
+ - Start OpenClaw Gateway and retry.
80
+ - **Unknown command**
81
+ - Use one of: \`parallel\`, \`branch-fix\`, \`fan-out\`, \`status\`.
82
+ - **Timeout errors**
83
+ - Increase \`timeout\` in command args.
84
+ - **No session events**
85
+ - Confirm session context has \`appendEvent\` enabled.
31
86
  `;
32
87
  // ─── OpenClaw tool wrappers ─────────────────────────────────────
33
88
  export function openclawTool(opts) {
@@ -59,7 +114,7 @@ export function createOpenClawSkill() {
59
114
  const schedulers = new Map();
60
115
  return {
61
116
  name: "cpa-agents",
62
- version: "0.1.0",
117
+ version: "0.2.0",
63
118
  skillMd: SKILL_MD,
64
119
  async handleCommand(command, args, openclawCtx) {
65
120
  const scheduler = new Scheduler({
@@ -1 +1 @@
1
- {"version":3,"file":"openclaw.js","sourceRoot":"","sources":["../../src/adapters/openclaw.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"openclaw.js","sourceRoot":"","sources":["../../src/adapters/openclaw.ts"],"names":[],"mappings":"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"}
@@ -24,7 +24,7 @@ export function piSubAgent(opts) {
24
24
  export function createPiCpaExtension() {
25
25
  return {
26
26
  name: "cpa-agents",
27
- version: "0.1.0",
27
+ version: "0.2.0",
28
28
  description: "Concurrent Process Algebra for AI agent orchestration",
29
29
  commands: {
30
30
  "cpa:par": {
@@ -0,0 +1,35 @@
1
+ /**
2
+ * Fork Algebra layer for cpa-agents
3
+ *
4
+ * Fork algebras extend relation algebras with a fork operator that pairs
5
+ * two relations:
6
+ *
7
+ * R: A -> B, S: A -> C => R∇S: A -> BxC
8
+ */
9
+ import { type Process } from "./process.js";
10
+ export type RelationFn<A, B> = (input: A) => Promise<B[]>;
11
+ export interface Relation<A, B> {
12
+ readonly name: string;
13
+ readonly fn: RelationFn<A, B>;
14
+ }
15
+ export declare function rel<A, B>(name: string, fn: RelationFn<A, B>): Relation<A, B>;
16
+ export declare function detRel<A, B>(name: string, fn: (input: A) => Promise<B>): Relation<A, B>;
17
+ export declare function compose<A, B, C>(r: Relation<A, B>, s: Relation<B, C>): Relation<A, C>;
18
+ export declare function fork<A, B, C>(r: Relation<A, B>, s: Relation<A, C>): Relation<A, [B, C]>;
19
+ export declare function forkN<A>(...relations: Relation<A, any>[]): Relation<A, any[]>;
20
+ export declare function converse<A, B>(r: Relation<A, B>, inverseFn: RelationFn<B, A>): Relation<B, A>;
21
+ export declare function meet<A, B>(r: Relation<A, B>, s: Relation<A, B>, eq?: (b1: B, b2: B) => boolean): Relation<A, B>;
22
+ export declare function join<A, B>(r: Relation<A, B>, s: Relation<A, B>, dedup?: (b1: B, b2: B) => boolean): Relation<A, B>;
23
+ export declare function identity<A>(name?: string): Relation<A, A>;
24
+ export declare function empty<A, B>(name?: string): Relation<A, B>;
25
+ export declare function proj1<B, C>(name?: string): Relation<[B, C], B>;
26
+ export declare function proj2<B, C>(name?: string): Relation<[B, C], C>;
27
+ export declare function domRestrict<A, B>(guard: Relation<A, A>, body: Relation<A, B>): Relation<A, B>;
28
+ export declare function ranRestrict<A, B>(body: Relation<A, B>, filter: Relation<B, any>): Relation<A, B>;
29
+ export declare function toProcess<A, B>(relation: Relation<A, B>, input: A, mode?: "first" | "all"): Process<B | B[]>;
30
+ export declare function forkToProcess<A, B, C>(r: Relation<A, B>, s: Relation<A, C>, input: A): Process<[B[], C[]]>;
31
+ export declare function verifyAxioms<A, B, C>(r: Relation<A, B>, s: Relation<A, C>, testInputs: A[], eqB?: (a: B, b: B) => boolean, eqC?: (a: C, b: C) => boolean): Promise<{
32
+ passed: boolean;
33
+ failures: string[];
34
+ }>;
35
+ //# sourceMappingURL=fork-algebra.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fork-algebra.d.ts","sourceRoot":"","sources":["../src/fork-algebra.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,201 @@
1
+ /**
2
+ * Fork Algebra layer for cpa-agents
3
+ *
4
+ * Fork algebras extend relation algebras with a fork operator that pairs
5
+ * two relations:
6
+ *
7
+ * R: A -> B, S: A -> C => R∇S: A -> BxC
8
+ */
9
+ import { par } from "./process.js";
10
+ export function rel(name, fn) {
11
+ return { name, fn };
12
+ }
13
+ export function detRel(name, fn) {
14
+ return { name, fn: async (a) => [await fn(a)] };
15
+ }
16
+ export function compose(r, s) {
17
+ return {
18
+ name: `${r.name};${s.name}`,
19
+ fn: async (a) => {
20
+ const bs = await r.fn(a);
21
+ const results = [];
22
+ for (const b of bs) {
23
+ const cs = await s.fn(b);
24
+ results.push(...cs);
25
+ }
26
+ return results;
27
+ },
28
+ };
29
+ }
30
+ export function fork(r, s) {
31
+ return {
32
+ name: `${r.name}∇${s.name}`,
33
+ fn: async (a) => {
34
+ const [bs, cs] = await Promise.all([r.fn(a), s.fn(a)]);
35
+ const pairs = [];
36
+ for (const b of bs) {
37
+ for (const c of cs) {
38
+ pairs.push([b, c]);
39
+ }
40
+ }
41
+ return pairs;
42
+ },
43
+ };
44
+ }
45
+ export function forkN(...relations) {
46
+ return {
47
+ name: relations.map((r) => r.name).join("∇"),
48
+ fn: async (a) => {
49
+ const allResults = await Promise.all(relations.map((r) => r.fn(a)));
50
+ return cartesian(allResults);
51
+ },
52
+ };
53
+ }
54
+ export function converse(r, inverseFn) {
55
+ return {
56
+ name: `${r.name}⁻¹`,
57
+ fn: inverseFn,
58
+ };
59
+ }
60
+ export function meet(r, s, eq = (a, b) => a === b) {
61
+ return {
62
+ name: `${r.name}∩${s.name}`,
63
+ fn: async (a) => {
64
+ const [rResults, sResults] = await Promise.all([r.fn(a), s.fn(a)]);
65
+ return rResults.filter((rb) => sResults.some((sb) => eq(rb, sb)));
66
+ },
67
+ };
68
+ }
69
+ export function join(r, s, dedup) {
70
+ return {
71
+ name: `${r.name}∪${s.name}`,
72
+ fn: async (a) => {
73
+ const [rResults, sResults] = await Promise.all([r.fn(a), s.fn(a)]);
74
+ const combined = [...rResults, ...sResults];
75
+ if (!dedup)
76
+ return combined;
77
+ return combined.filter((b, i) => combined.findIndex((other) => dedup(b, other)) === i);
78
+ },
79
+ };
80
+ }
81
+ export function identity(name = "id") {
82
+ return { name, fn: async (a) => [a] };
83
+ }
84
+ export function empty(name = "∅") {
85
+ return { name, fn: async () => [] };
86
+ }
87
+ export function proj1(name = "π₁") {
88
+ return { name, fn: async ([b, _c]) => [b] };
89
+ }
90
+ export function proj2(name = "π₂") {
91
+ return { name, fn: async ([_b, c]) => [c] };
92
+ }
93
+ export function domRestrict(guard, body) {
94
+ return {
95
+ name: `${guard.name}◁${body.name}`,
96
+ fn: async (a) => {
97
+ const guardResult = await guard.fn(a);
98
+ if (guardResult.length === 0)
99
+ return [];
100
+ const results = [];
101
+ for (const ga of guardResult) {
102
+ results.push(...(await body.fn(ga)));
103
+ }
104
+ return results;
105
+ },
106
+ };
107
+ }
108
+ export function ranRestrict(body, filter) {
109
+ return {
110
+ name: `${body.name}▷${filter.name}`,
111
+ fn: async (a) => {
112
+ const bs = await body.fn(a);
113
+ const kept = [];
114
+ for (const b of bs) {
115
+ const filterResult = await filter.fn(b);
116
+ if (filterResult.length > 0)
117
+ kept.push(b);
118
+ }
119
+ return kept;
120
+ },
121
+ };
122
+ }
123
+ export function toProcess(relation, input, mode = "first") {
124
+ return async (ctx) => {
125
+ ctx.trace.emit({
126
+ type: "spawn",
127
+ runId: ctx.runId,
128
+ parentId: ctx.parentId,
129
+ name: `rel:${relation.name}`,
130
+ ts: Date.now(),
131
+ });
132
+ const results = await relation.fn(input);
133
+ ctx.trace.emit({
134
+ type: "done",
135
+ runId: ctx.runId,
136
+ ts: Date.now(),
137
+ });
138
+ if (mode === "first") {
139
+ if (results.length === 0) {
140
+ throw new Error(`Relation ${relation.name} produced no results`);
141
+ }
142
+ return results[0];
143
+ }
144
+ return results;
145
+ };
146
+ }
147
+ export function forkToProcess(r, s, input) {
148
+ return par(async (ctx) => {
149
+ ctx.trace.emit({
150
+ type: "spawn",
151
+ runId: ctx.runId,
152
+ parentId: ctx.parentId,
153
+ name: `fork-left:${r.name}`,
154
+ ts: Date.now(),
155
+ });
156
+ const result = await r.fn(input);
157
+ ctx.trace.emit({ type: "done", runId: ctx.runId, ts: Date.now() });
158
+ return result;
159
+ }, async (ctx) => {
160
+ ctx.trace.emit({
161
+ type: "spawn",
162
+ runId: ctx.runId,
163
+ parentId: ctx.parentId,
164
+ name: `fork-right:${s.name}`,
165
+ ts: Date.now(),
166
+ });
167
+ const result = await s.fn(input);
168
+ ctx.trace.emit({ type: "done", runId: ctx.runId, ts: Date.now() });
169
+ return result;
170
+ });
171
+ }
172
+ export async function verifyAxioms(r, s, testInputs, eqB = (a, b) => a === b, eqC = (a, b) => a === b) {
173
+ const failures = [];
174
+ for (const input of testInputs) {
175
+ const forked = fork(r, s);
176
+ const forkedResults = await forked.fn(input);
177
+ const rResults = await r.fn(input);
178
+ const sResults = await s.fn(input);
179
+ const proj1Results = forkedResults.map(([b, _c]) => b);
180
+ for (const p of proj1Results) {
181
+ if (!rResults.some((rb) => eqB(rb, p))) {
182
+ failures.push(`Fork-projection π₁ failed for input ${String(input)}: got ${String(p)} not in R`);
183
+ }
184
+ }
185
+ const proj2Results = forkedResults.map(([_b, c]) => c);
186
+ for (const p of proj2Results) {
187
+ if (!sResults.some((sc) => eqC(sc, p))) {
188
+ failures.push(`Fork-projection π₂ failed for input ${String(input)}: got ${String(p)} not in S`);
189
+ }
190
+ }
191
+ }
192
+ return { passed: failures.length === 0, failures };
193
+ }
194
+ function cartesian(arrays) {
195
+ if (arrays.length === 0)
196
+ return [[]];
197
+ const [first, ...rest] = arrays;
198
+ const restProduct = cartesian(rest);
199
+ return first.flatMap((x) => restProduct.map((r) => [x, ...r]));
200
+ }
201
+ //# sourceMappingURL=fork-algebra.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fork-algebra.js","sourceRoot":"","sources":["../src/fork-algebra.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -27,4 +27,6 @@ export { Channel, freshId, select, type ChannelId, type SelectCase } from "./cha
27
27
  export { type Process, type ProcessContext, type TraceEvent, type SessionNode, TraceCollector, par, seq, choice, branchFix, restrict, replicate, supervisor, } from "./process.js";
28
28
  export { type AgentCall, type CheckResult, agentProcess, codeThenFix, fanOut, pipeline, PipelineBuilder, handoff, } from "./agent.js";
29
29
  export { Scheduler, type SchedulerOpts, type SchedulerResult } from "./scheduler.js";
30
+ export { type Relation, type RelationFn, rel, detRel, compose, fork, forkN, converse, meet, join, identity, empty, proj1, proj2, domRestrict, ranRestrict, toProcess, forkToProcess, verifyAxioms, } from "./fork-algebra.js";
31
+ export { type Result, type BackgroundHandle, type Invertible, attempt, unwrap, and, or, ifThenElse, pipe, pipeChain, bg, not, waitAll, andChain, orChain, subshell, invertible, runInvertible, saga, guard, guardValue, timeout, retryWithBackoff, } from "./operators.js";
30
32
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAGzF,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,cAAc,EACd,GAAG,EACH,GAAG,EACH,MAAM,EACN,SAAS,EACT,QAAQ,EACR,SAAS,EACT,UAAU,GACX,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,YAAY,EACZ,WAAW,EACX,MAAM,EACN,QAAQ,EACR,eAAe,EACf,OAAO,GACR,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,SAAS,EAAE,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAGH,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,SAAS,EAAE,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AAGzF,OAAO,EACL,KAAK,OAAO,EACZ,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,WAAW,EAChB,cAAc,EACd,GAAG,EACH,GAAG,EACH,MAAM,EACN,SAAS,EACT,QAAQ,EACR,SAAS,EACT,UAAU,GACX,MAAM,cAAc,CAAC;AAGtB,OAAO,EACL,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,YAAY,EACZ,WAAW,EACX,MAAM,EACN,QAAQ,EACR,eAAe,EACf,OAAO,GACR,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,SAAS,EAAE,KAAK,aAAa,EAAE,KAAK,eAAe,EAAE,MAAM,gBAAgB,CAAC;AAGrF,OAAO,EACL,KAAK,QAAQ,EACb,KAAK,UAAU,EACf,GAAG,EACH,MAAM,EACN,OAAO,EACP,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,KAAK,EACL,KAAK,EACL,WAAW,EACX,WAAW,EACX,SAAS,EACT,aAAa,EACb,YAAY,GACb,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EACL,KAAK,MAAM,EACX,KAAK,gBAAgB,EACrB,KAAK,UAAU,EACf,OAAO,EACP,MAAM,EACN,GAAG,EACH,EAAE,EACF,UAAU,EACV,IAAI,EACJ,SAAS,EACT,EAAE,EACF,GAAG,EACH,OAAO,EACP,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,UAAU,EACV,aAAa,EACb,IAAI,EACJ,KAAK,EACL,UAAU,EACV,OAAO,EACP,gBAAgB,GACjB,MAAM,gBAAgB,CAAC"}
package/dist/index.js CHANGED
@@ -31,4 +31,8 @@ export { TraceCollector, par, seq, choice, branchFix, restrict, replicate, super
31
31
  export { agentProcess, codeThenFix, fanOut, pipeline, PipelineBuilder, handoff, } from "./agent.js";
32
32
  // Scheduler
33
33
  export { Scheduler } from "./scheduler.js";
34
+ // Fork algebra (relational layer)
35
+ export { rel, detRel, compose, fork, forkN, converse, meet, join, identity, empty, proj1, proj2, domRestrict, ranRestrict, toProcess, forkToProcess, verifyAxioms, } from "./fork-algebra.js";
36
+ // Operators (bash-style control flow + inverse/undo)
37
+ export { attempt, unwrap, and, or, ifThenElse, pipe, pipeChain, bg, not, waitAll, andChain, orChain, subshell, invertible, runInvertible, saga, guard, guardValue, timeout, retryWithBackoff, } from "./operators.js";
34
38
  //# 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;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,kBAAkB;AAClB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAmC,MAAM,cAAc,CAAC;AAEzF,kBAAkB;AAClB,OAAO,EAKL,cAAc,EACd,GAAG,EACH,GAAG,EACH,MAAM,EACN,SAAS,EACT,QAAQ,EACR,SAAS,EACT,UAAU,GACX,MAAM,cAAc,CAAC;AAEtB,iBAAiB;AACjB,OAAO,EAGL,YAAY,EACZ,WAAW,EACX,MAAM,EACN,QAAQ,EACR,eAAe,EACf,OAAO,GACR,MAAM,YAAY,CAAC;AAEpB,YAAY;AACZ,OAAO,EAAE,SAAS,EAA4C,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;GAwBG;AAEH,kBAAkB;AAClB,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAmC,MAAM,cAAc,CAAC;AAEzF,kBAAkB;AAClB,OAAO,EAKL,cAAc,EACd,GAAG,EACH,GAAG,EACH,MAAM,EACN,SAAS,EACT,QAAQ,EACR,SAAS,EACT,UAAU,GACX,MAAM,cAAc,CAAC;AAEtB,iBAAiB;AACjB,OAAO,EAGL,YAAY,EACZ,WAAW,EACX,MAAM,EACN,QAAQ,EACR,eAAe,EACf,OAAO,GACR,MAAM,YAAY,CAAC;AAEpB,YAAY;AACZ,OAAO,EAAE,SAAS,EAA4C,MAAM,gBAAgB,CAAC;AAErF,kCAAkC;AAClC,OAAO,EAGL,GAAG,EACH,MAAM,EACN,OAAO,EACP,IAAI,EACJ,KAAK,EACL,QAAQ,EACR,IAAI,EACJ,IAAI,EACJ,QAAQ,EACR,KAAK,EACL,KAAK,EACL,KAAK,EACL,WAAW,EACX,WAAW,EACX,SAAS,EACT,aAAa,EACb,YAAY,GACb,MAAM,mBAAmB,CAAC;AAE3B,qDAAqD;AACrD,OAAO,EAIL,OAAO,EACP,MAAM,EACN,GAAG,EACH,EAAE,EACF,UAAU,EACV,IAAI,EACJ,SAAS,EACT,EAAE,EACF,GAAG,EACH,OAAO,EACP,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,UAAU,EACV,aAAa,EACb,IAAI,EACJ,KAAK,EACL,UAAU,EACV,OAAO,EACP,gBAAgB,GACjB,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,44 @@
1
+ import { type Process, type ProcessContext } from "./process.js";
2
+ export type Result<T> = {
3
+ ok: true;
4
+ value: T;
5
+ } | {
6
+ ok: false;
7
+ error: Error;
8
+ };
9
+ export declare function attempt<T>(process: Process<T>): Process<Result<T>>;
10
+ export declare function unwrap<T>(result: Result<T>): T;
11
+ export declare function and<A, B>(a: Process<A>, b: Process<B>): Process<Result<B>>;
12
+ export declare function or<T>(a: Process<T>, b: Process<T>): Process<Result<T>>;
13
+ export declare function ifThenElse<T>(condition: Process<unknown>, then: Process<T>, otherwise: Process<T>): Process<T>;
14
+ export declare function pipe<A, B>(a: Process<A>, b: (input: A) => Process<B>): Process<B>;
15
+ export declare function pipeChain<T>(first: Process<T>, ...rest: Array<(input: any) => Process<any>>): Process<any>;
16
+ export interface BackgroundHandle<T> {
17
+ wait: () => Promise<Result<T>>;
18
+ abort: () => void;
19
+ }
20
+ export declare function bg<T>(process: Process<T>): Process<BackgroundHandle<T>>;
21
+ export declare function not(process: Process<unknown>): Process<void>;
22
+ export declare function waitAll<T>(handles: BackgroundHandle<T>[]): Promise<Result<T>[]>;
23
+ export declare function andChain(...processes: Process<any>[]): Process<Result<any>>;
24
+ export declare function orChain<T>(...processes: Process<T>[]): Process<Result<T>>;
25
+ export declare function subshell<T>(name: string, process: Process<T>): Process<T>;
26
+ export interface Invertible<T> {
27
+ forward: Process<T>;
28
+ undo: (result: T) => Process<void>;
29
+ }
30
+ export declare function invertible<T>(forward: Process<T>, undo: (result: T) => Process<void>): Invertible<T>;
31
+ export declare function runInvertible<T>(inv: Invertible<T>): Process<T>;
32
+ export declare function saga(steps: Invertible<any>[]): Process<any[]>;
33
+ export declare function guard(name: string, predicate: (ctx: ProcessContext) => Promise<boolean>): Process<void>;
34
+ export declare function guardValue<T>(name: string, extract: (ctx: ProcessContext) => Promise<T | null | undefined>): Process<T>;
35
+ export declare function timeout<T>(ms: number, process: Process<T>): Process<T>;
36
+ export declare function retryWithBackoff<T>(opts: {
37
+ process: Process<T>;
38
+ maxAttempts: number;
39
+ initialDelayMs?: number;
40
+ maxDelayMs?: number;
41
+ backoffFactor?: number;
42
+ retryIf?: (err: Error) => boolean;
43
+ }): Process<T>;
44
+ //# sourceMappingURL=operators.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operators.d.ts","sourceRoot":"","sources":["../src/operators.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,291 @@
1
+ import { freshId } from "./channel.js";
2
+ function ok(value) {
3
+ return { ok: true, value };
4
+ }
5
+ function fail(error) {
6
+ return { ok: false, error };
7
+ }
8
+ export function attempt(process) {
9
+ return async (ctx) => {
10
+ try {
11
+ const value = await process(ctx);
12
+ return ok(value);
13
+ }
14
+ catch (err) {
15
+ return fail(err instanceof Error ? err : new Error(String(err)));
16
+ }
17
+ };
18
+ }
19
+ export function unwrap(result) {
20
+ if (result.ok)
21
+ return result.value;
22
+ throw result.error;
23
+ }
24
+ export function and(a, b) {
25
+ return async (ctx) => {
26
+ const aResult = await attempt(a)(ctx);
27
+ if (!aResult.ok)
28
+ return fail(aResult.error);
29
+ return attempt(b)(ctx);
30
+ };
31
+ }
32
+ export function or(a, b) {
33
+ return async (ctx) => {
34
+ const aResult = await attempt(a)(ctx);
35
+ if (aResult.ok)
36
+ return aResult;
37
+ ctx.trace.emit({
38
+ type: "branch",
39
+ runId: ctx.runId,
40
+ chosen: "fallback",
41
+ alternatives: ["primary", "fallback"],
42
+ ts: Date.now(),
43
+ });
44
+ return attempt(b)(ctx);
45
+ };
46
+ }
47
+ export function ifThenElse(condition, then, otherwise) {
48
+ return async (ctx) => {
49
+ const condResult = await attempt(condition)(ctx);
50
+ ctx.trace.emit({
51
+ type: "branch",
52
+ runId: ctx.runId,
53
+ chosen: condResult.ok ? "then" : "else",
54
+ alternatives: ["then", "else"],
55
+ ts: Date.now(),
56
+ });
57
+ if (condResult.ok)
58
+ return then(ctx);
59
+ return otherwise(ctx);
60
+ };
61
+ }
62
+ export function pipe(a, b) {
63
+ return async (ctx) => {
64
+ const aResult = await a(ctx);
65
+ return b(aResult)(ctx);
66
+ };
67
+ }
68
+ export function pipeChain(first, ...rest) {
69
+ return async (ctx) => {
70
+ let result = await first(ctx);
71
+ for (const step of rest) {
72
+ result = await step(result)(ctx);
73
+ }
74
+ return result;
75
+ };
76
+ }
77
+ export function bg(process) {
78
+ return async (ctx) => {
79
+ const bgController = new AbortController();
80
+ const mergedSignal = anySignal(ctx.signal, bgController.signal);
81
+ const bgCtx = {
82
+ ...ctx,
83
+ runId: freshId("bg"),
84
+ parentId: ctx.runId,
85
+ signal: mergedSignal,
86
+ };
87
+ ctx.trace.emit({
88
+ type: "spawn",
89
+ runId: bgCtx.runId,
90
+ parentId: ctx.runId,
91
+ name: "background",
92
+ ts: Date.now(),
93
+ });
94
+ const promise = attempt(process)(bgCtx).then((result) => {
95
+ ctx.trace.emit({
96
+ type: result.ok ? "done" : "error",
97
+ runId: bgCtx.runId,
98
+ ...(result.ok ? {} : { error: result.error.message }),
99
+ ts: Date.now(),
100
+ });
101
+ return result;
102
+ });
103
+ return {
104
+ wait: () => promise,
105
+ abort: () => bgController.abort(),
106
+ };
107
+ };
108
+ }
109
+ export function not(process) {
110
+ return async (ctx) => {
111
+ const result = await attempt(process)(ctx);
112
+ if (result.ok) {
113
+ throw new Error("Process succeeded (not operator inverts this to failure)");
114
+ }
115
+ };
116
+ }
117
+ export async function waitAll(handles) {
118
+ return Promise.all(handles.map((h) => h.wait()));
119
+ }
120
+ export function andChain(...processes) {
121
+ return async (ctx) => {
122
+ let lastResult = ok(undefined);
123
+ for (const p of processes) {
124
+ lastResult = await attempt(p)(ctx);
125
+ if (!lastResult.ok)
126
+ return lastResult;
127
+ }
128
+ return lastResult;
129
+ };
130
+ }
131
+ export function orChain(...processes) {
132
+ return async (ctx) => {
133
+ let lastResult = fail(new Error("No processes in orChain"));
134
+ for (const p of processes) {
135
+ lastResult = await attempt(p)(ctx);
136
+ if (lastResult.ok)
137
+ return lastResult;
138
+ }
139
+ return lastResult;
140
+ };
141
+ }
142
+ export function subshell(name, process) {
143
+ return async (ctx) => {
144
+ const subId = freshId("sub");
145
+ const subCtx = {
146
+ ...ctx,
147
+ runId: subId,
148
+ parentId: ctx.runId,
149
+ channels: new Map(ctx.channels),
150
+ };
151
+ ctx.trace.emit({
152
+ type: "spawn",
153
+ runId: subId,
154
+ parentId: ctx.runId,
155
+ name: `(${name})`,
156
+ ts: Date.now(),
157
+ });
158
+ const result = await process(subCtx);
159
+ ctx.trace.emit({
160
+ type: "done",
161
+ runId: subId,
162
+ ts: Date.now(),
163
+ });
164
+ return result;
165
+ };
166
+ }
167
+ export function invertible(forward, undo) {
168
+ return { forward, undo };
169
+ }
170
+ export function runInvertible(inv) {
171
+ return inv.forward;
172
+ }
173
+ export function saga(steps) {
174
+ return async (ctx) => {
175
+ const completed = [];
176
+ for (const step of steps) {
177
+ const result = await attempt(step.forward)(ctx);
178
+ if (!result.ok) {
179
+ ctx.trace.emit({
180
+ type: "fix_start",
181
+ runId: ctx.runId,
182
+ reason: `Saga rollback: ${result.error.message}`,
183
+ ts: Date.now(),
184
+ });
185
+ for (let i = completed.length - 1; i >= 0; i--) {
186
+ const comp = completed[i];
187
+ try {
188
+ await comp.undo(comp.result)(ctx);
189
+ }
190
+ catch (undoErr) {
191
+ ctx.trace.emit({
192
+ type: "error",
193
+ runId: ctx.runId,
194
+ error: `Compensation failed at step ${i}: ${undoErr}`,
195
+ ts: Date.now(),
196
+ });
197
+ }
198
+ }
199
+ ctx.trace.emit({
200
+ type: "fix_end",
201
+ runId: ctx.runId,
202
+ success: false,
203
+ ts: Date.now(),
204
+ });
205
+ throw result.error;
206
+ }
207
+ completed.push({ result: result.value, undo: step.undo });
208
+ }
209
+ return completed.map((c) => c.result);
210
+ };
211
+ }
212
+ export function guard(name, predicate) {
213
+ return async (ctx) => {
214
+ const passed = await predicate(ctx);
215
+ if (!passed)
216
+ throw new Error(`Guard failed: ${name}`);
217
+ };
218
+ }
219
+ export function guardValue(name, extract) {
220
+ return async (ctx) => {
221
+ const value = await extract(ctx);
222
+ if (value === null || value === undefined) {
223
+ throw new Error(`Guard failed (no value): ${name}`);
224
+ }
225
+ return value;
226
+ };
227
+ }
228
+ export function timeout(ms, process) {
229
+ return async (ctx) => Promise.race([
230
+ process(ctx),
231
+ new Promise((_, reject) => setTimeout(() => reject(new Error(`Timeout after ${ms}ms`)), ms)),
232
+ ]);
233
+ }
234
+ export function retryWithBackoff(opts) {
235
+ const { process, maxAttempts, initialDelayMs = 100, maxDelayMs = 30000, backoffFactor = 2, retryIf, } = opts;
236
+ return async (ctx) => {
237
+ let delay = initialDelayMs;
238
+ let lastError;
239
+ for (let attempt = 0; attempt < maxAttempts; attempt++) {
240
+ if (ctx.signal.aborted)
241
+ throw new Error("Aborted");
242
+ const result = await attemptFn(process)(ctx);
243
+ if (result.ok)
244
+ return result.value;
245
+ lastError = result.error;
246
+ if (retryIf && !retryIf(lastError))
247
+ throw lastError;
248
+ if (attempt < maxAttempts - 1) {
249
+ ctx.trace.emit({
250
+ type: "fix_start",
251
+ runId: ctx.runId,
252
+ reason: `Retry ${attempt + 1}/${maxAttempts}: ${lastError.message}`,
253
+ ts: Date.now(),
254
+ });
255
+ await new Promise((r) => setTimeout(r, delay));
256
+ delay = Math.min(delay * backoffFactor, maxDelayMs);
257
+ ctx.trace.emit({
258
+ type: "fix_end",
259
+ runId: ctx.runId,
260
+ success: false,
261
+ ts: Date.now(),
262
+ });
263
+ }
264
+ }
265
+ throw lastError;
266
+ };
267
+ }
268
+ function attemptFn(process) {
269
+ return async (ctx) => {
270
+ try {
271
+ return ok(await process(ctx));
272
+ }
273
+ catch (err) {
274
+ return fail(err instanceof Error ? err : new Error(String(err)));
275
+ }
276
+ };
277
+ }
278
+ function anySignal(...signals) {
279
+ const controller = new AbortController();
280
+ for (const signal of signals) {
281
+ if (signal.aborted) {
282
+ controller.abort(signal.reason);
283
+ return controller.signal;
284
+ }
285
+ signal.addEventListener("abort", () => controller.abort(signal.reason), {
286
+ once: true,
287
+ });
288
+ }
289
+ return controller.signal;
290
+ }
291
+ //# sourceMappingURL=operators.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"operators.js","sourceRoot":"","sources":["../src/operators.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cpa-agents",
3
- "version": "0.1.0",
3
+ "version": "0.2.0",
4
4
  "description": "Concurrent Process Algebra for AI Agents — π-calculus primitives for Pi Harness and OpenClaw",
5
5
  "type": "module",
6
6
  "main": "dist/index.js",