@elpapi42/pi-fleet-sdk 0.2.2 → 0.3.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
@@ -16,6 +16,7 @@ const agent = await client.create({
16
16
  instructions: "Give concise answers.",
17
17
  })
18
18
 
19
+ await agent.send("Investigate the database schema")
19
20
  console.log(await agent.status())
20
21
  await client.close()
21
22
  ```
@@ -42,4 +43,10 @@ const client = await connectPiFleet({ stateDir: "/path/to/pi-fleet-state" })
42
43
 
43
44
  `client.get(name)` and `client.list()` discover agents created by another local client. `client.close()` only closes this SDK client. It does not stop an agent worker.
44
45
 
45
- Slice 1 supports Unix-like hosts with ZeroMQ `ipc://` support. It provides create, get, list, and status. Sending work, event streaming, recovery, retirement, compact, and destroy come in later slices.
46
+ `agent.send(message)` starts work when Pi is idle. During active work, it uses `steer` by default. Use `followUp` to deliver after the current work settles:
47
+
48
+ ```ts
49
+ await agent.send("Summarize the findings", { delivery: "followUp" })
50
+ ```
51
+
52
+ `send()` resolves after Pi accepts or queues the instruction. It does not wait for completion. Slice 2 supports Unix-like hosts with ZeroMQ `ipc://` support. It provides create, get, list, status, and send. Event streaming, recovery, retirement, compact, and destroy come in later slices.
package/dist/agent.d.ts CHANGED
@@ -1,6 +1,7 @@
1
- import type { Agent, AgentStatus } from "./types.js";
1
+ import type { Agent, AgentStatus, SendOptions, SendResult } from "./types.js";
2
2
  type AgentClient = {
3
3
  status(id: string, name: string): Promise<AgentStatus>;
4
+ send(id: string, name: string, message: string, options?: SendOptions): Promise<SendResult>;
4
5
  };
5
6
  export declare class AgentHandle implements Agent {
6
7
  #private;
@@ -8,6 +9,7 @@ export declare class AgentHandle implements Agent {
8
9
  get id(): string;
9
10
  get name(): string;
10
11
  status(): Promise<AgentStatus>;
12
+ send(message: string, options?: SendOptions): Promise<SendResult>;
11
13
  }
12
14
  export {};
13
15
  //# sourceMappingURL=agent.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AAEpD,KAAK,WAAW,GAAG;IACjB,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;CACvD,CAAA;AAED,qBAAa,WAAY,YAAW,KAAK;;gBAK3B,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAMzD,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC;CAG/B"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,YAAY,CAAA;AAE7E,KAAK,WAAW,GAAG;IACjB,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,CAAC,CAAA;IACtD,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;CAC5F,CAAA;AAED,qBAAa,WAAY,YAAW,KAAK;;gBAK3B,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM;IAMzD,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC;IAI9B,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;CAGlE"}
package/dist/agent.js CHANGED
@@ -16,5 +16,8 @@ export class AgentHandle {
16
16
  status() {
17
17
  return this.#client.status(this.#id, this.#name);
18
18
  }
19
+ send(message, options) {
20
+ return this.#client.send(this.#id, this.#name, message, options);
21
+ }
19
22
  }
20
23
  //# sourceMappingURL=agent.js.map
package/dist/agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAMA,MAAM,OAAO,WAAW;IACb,OAAO,CAAa;IACpB,GAAG,CAAQ;IACX,KAAK,CAAQ;IAEtB,YAAY,MAAmB,EAAE,EAAU,EAAE,IAAY;QACvD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;QACrB,IAAI,CAAC,GAAG,GAAG,EAAE,CAAA;QACb,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;IACnB,CAAC;IAED,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,GAAG,CAAA;IACjB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IAClD,CAAC;CACF"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAOA,MAAM,OAAO,WAAW;IACb,OAAO,CAAa;IACpB,GAAG,CAAQ;IACX,KAAK,CAAQ;IAEtB,YAAY,MAAmB,EAAE,EAAU,EAAE,IAAY;QACvD,IAAI,CAAC,OAAO,GAAG,MAAM,CAAA;QACrB,IAAI,CAAC,GAAG,GAAG,EAAE,CAAA;QACb,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;IACnB,CAAC;IAED,IAAI,EAAE;QACJ,OAAO,IAAI,CAAC,GAAG,CAAA;IACjB,CAAC;IAED,IAAI,IAAI;QACN,OAAO,IAAI,CAAC,KAAK,CAAA;IACnB,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,CAAC,CAAA;IAClD,CAAC;IAED,IAAI,CAAC,OAAe,EAAE,OAAqB;QACzC,OAAO,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,IAAI,CAAC,KAAK,EAAE,OAAO,EAAE,OAAO,CAAC,CAAA;IAClE,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAMA,OAAO,EAAuE,KAAK,cAAc,EAA2B,KAAK,aAAa,EAAE,MAAM,YAAY,CAAA;AAsFlK,wBAAsB,cAAc,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAIzF"}
1
+ {"version":3,"file":"client.d.ts","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAMA,OAAO,EAAuE,KAAK,cAAc,EAA2B,KAAK,aAAa,EAAwD,MAAM,YAAY,CAAA;AAgGxN,wBAAsB,cAAc,CAAC,OAAO,GAAE,cAAmB,GAAG,OAAO,CAAC,aAAa,CAAC,CAIzF"}
package/dist/client.js CHANGED
@@ -7,7 +7,7 @@ import { AgentNotFoundError } from "./types.js";
7
7
  import { resolveStateDir, workerEndpoint } from "./internal/paths.js";
8
8
  import { openRegistry } from "./internal/registry.js";
9
9
  import { launchWorker } from "./internal/worker-launcher.js";
10
- import { requestStatus } from "./internal/worker-client.js";
10
+ import { requestSend, requestStatus } from "./internal/worker-client.js";
11
11
  const STARTUP_TIMEOUT_MS = 10_000;
12
12
  const OWNED_PI_OPTIONS = new Set(["--mode", "--no-session"]);
13
13
  class PiFleetClientImpl {
@@ -72,6 +72,18 @@ class PiFleetClientImpl {
72
72
  const status = await requestStatus(record);
73
73
  return { id: status.id, name: status.name, state: status.state };
74
74
  }
75
+ async send(id, name, message, options = {}) {
76
+ this.assertOpen();
77
+ const record = this.#registry.getById(id);
78
+ if (!record || record.name !== name)
79
+ throw new AgentNotFoundError(name);
80
+ if (typeof message !== "string" || !message.trim())
81
+ throw new TypeError("Message must not be empty");
82
+ const delivery = options.delivery ?? "steer";
83
+ if (!isSendDelivery(delivery))
84
+ throw new TypeError(`Invalid delivery: ${String(delivery)}`);
85
+ return requestSend(record, message, delivery);
86
+ }
75
87
  close() {
76
88
  if (this.#closed)
77
89
  return Promise.resolve();
@@ -89,6 +101,9 @@ export async function connectPiFleet(options = {}) {
89
101
  const stateDir = resolveStateDir(options);
90
102
  return new PiFleetClientImpl(await openRegistry(stateDir), stateDir);
91
103
  }
104
+ function isSendDelivery(value) {
105
+ return value === "steer" || value === "followUp";
106
+ }
92
107
  async function validateCreateOptions(options) {
93
108
  const name = options.name?.trim();
94
109
  if (!name)
@@ -1 +1 @@
1
- {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"client.js","sourceRoot":"","sources":["../src/client.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAA;AAEnC,OAAO,EAAE,IAAI,EAAE,MAAM,kBAAkB,CAAA;AACvC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,YAAY,CAAA;AACxC,OAAO,EAAE,kBAAkB,EAA2K,MAAM,YAAY,CAAA;AACxN,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AACrE,OAAO,EAAE,YAAY,EAAmC,MAAM,wBAAwB,CAAA;AACtF,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAA;AAC5D,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAA;AAExE,MAAM,kBAAkB,GAAG,MAAM,CAAA;AACjC,MAAM,gBAAgB,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,cAAc,CAAC,CAAC,CAAA;AAE5D,MAAM,iBAAiB;IACZ,SAAS,CAAU;IACnB,SAAS,CAAQ;IAC1B,OAAO,GAAG,KAAK,CAAA;IAEf,YAAY,QAAkB,EAAE,QAAgB;QAC9C,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;QACzB,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAA;IAC3B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,OAA2B;QACtC,IAAI,CAAC,UAAU,EAAE,CAAA;QACjB,MAAM,KAAK,GAAG,MAAM,qBAAqB,CAAC,OAAO,CAAC,CAAA;QAClD,MAAM,EAAE,GAAG,UAAU,EAAE,CAAA;QACvB,MAAM,UAAU,GAAG,UAAU,EAAE,CAAA;QAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAA;QACtB,MAAM,MAAM,GAAgB;YAC1B,EAAE;YACF,IAAI,EAAE,KAAK,CAAC,IAAI;YAChB,GAAG,EAAE,KAAK,CAAC,GAAG;YACd,YAAY,EAAE,KAAK,CAAC,YAAY;YAChC,MAAM,EAAE,KAAK,CAAC,MAAM;YACpB,KAAK,EAAE,UAAU;YACjB,OAAO,EAAE;gBACP,UAAU;gBACV,KAAK,EAAE,UAAU;gBACjB,QAAQ,EAAE,cAAc,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,UAAU,CAAC;aACzD;YACD,YAAY,EAAE,CAAC;YACf,SAAS,EAAE,GAAG;YACd,SAAS,EAAE,GAAG;SACf,CAAA;QAED,MAAM,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACnC,IAAI,MAAgC,CAAA;QACpC,IAAI,CAAC;YACH,MAAM,GAAG,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,EAAE,EAAE,UAAU,CAAC,CAAA;YACrD,MAAM,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,kBAAkB,CAAC,CAAA;YAC5D,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE,EAAE,EAAE,KAAK,CAAC,IAAI,CAAC,CAAA;QAC9C,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,UAAU,CAAC,MAAM,CAAC,CAAA;YACxB,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,EAAE,EAAE,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;YACjE,MAAM,KAAK,CAAA;QACb,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,IAAY;QACpB,IAAI,CAAC,UAAU,EAAE,CAAA;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,SAAS,CAAC,IAAI,CAAC,CAAA;QAC7C,IAAI,CAAC,MAAM;YAAE,MAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAA;QAC/C,OAAO,IAAI,WAAW,CAAC,IAAI,EAAE,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,IAAI,CAAC,CAAA;IACtD,CAAC;IAED,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,UAAU,EAAE,CAAA;QACjB,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,CAAA;IAC9B,CAAC;IAED,KAAK,CAAC,MAAM,CAAC,EAAU,EAAE,IAAY;QACnC,IAAI,CAAC,UAAU,EAAE,CAAA;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACzC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI;YAAE,MAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAA;QACvE,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC,MAAM,CAAC,CAAA;QAC1C,OAAO,EAAE,EAAE,EAAE,MAAM,CAAC,EAAE,EAAE,IAAI,EAAE,MAAM,CAAC,IAAI,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,EAAE,CAAA;IAClE,CAAC;IAED,KAAK,CAAC,IAAI,CAAC,EAAU,EAAE,IAAY,EAAE,OAAe,EAAE,UAAuB,EAAE;QAC7E,IAAI,CAAC,UAAU,EAAE,CAAA;QACjB,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACzC,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,IAAI,KAAK,IAAI;YAAE,MAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC,CAAA;QACvE,IAAI,OAAO,OAAO,KAAK,QAAQ,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE;YAAE,MAAM,IAAI,SAAS,CAAC,2BAA2B,CAAC,CAAA;QACpG,MAAM,QAAQ,GAAG,OAAO,CAAC,QAAQ,IAAI,OAAO,CAAA;QAC5C,IAAI,CAAC,cAAc,CAAC,QAAQ,CAAC;YAAE,MAAM,IAAI,SAAS,CAAC,qBAAqB,MAAM,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QAC3F,OAAO,WAAW,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,CAAC,CAAA;IAC/C,CAAC;IAED,KAAK;QACH,IAAI,IAAI,CAAC,OAAO;YAAE,OAAO,OAAO,CAAC,OAAO,EAAE,CAAA;QAC1C,IAAI,CAAC,OAAO,GAAG,IAAI,CAAA;QACnB,OAAO,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,CAAA;IAC/B,CAAC;IAEO,UAAU;QAChB,IAAI,IAAI,CAAC,OAAO;YAAE,MAAM,IAAI,KAAK,CAAC,+BAA+B,CAAC,CAAA;IACpE,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,cAAc,CAAC,UAA0B,EAAE;IAC/D,IAAI,CAAC,UAAU,CAAC,GAAG;QAAE,MAAM,IAAI,KAAK,CAAC,sDAAsD,CAAC,CAAA;IAC5F,MAAM,QAAQ,GAAG,eAAe,CAAC,OAAO,CAAC,CAAA;IACzC,OAAO,IAAI,iBAAiB,CAAC,MAAM,YAAY,CAAC,QAAQ,CAAC,EAAE,QAAQ,CAAC,CAAA;AACtE,CAAC;AAED,SAAS,cAAc,CAAC,KAAc;IACpC,OAAO,KAAK,KAAK,OAAO,IAAI,KAAK,KAAK,UAAU,CAAA;AAClD,CAAC;AAED,KAAK,UAAU,qBAAqB,CAAC,OAA2B;IAC9D,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,EAAE,IAAI,EAAE,CAAA;IACjC,IAAI,CAAC,IAAI;QAAE,MAAM,IAAI,SAAS,CAAC,8BAA8B,CAAC,CAAA;IAC9D,IAAI,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC;QAAE,MAAM,IAAI,SAAS,CAAC,yCAAyC,CAAC,CAAA;IACvF,IAAI,CAAC,OAAO,CAAC,GAAG;QAAE,MAAM,IAAI,SAAS,CAAC,uBAAuB,CAAC,CAAA;IAC9D,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAA;IAChC,IAAI,CAAC,CAAC,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,WAAW,EAAE;QAAE,MAAM,IAAI,SAAS,CAAC,iCAAiC,GAAG,EAAE,CAAC,CAAA;IACjG,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAA;IACxD,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;QACzB,IAAI,gBAAgB,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,gBAAgB,CAAC,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC;YACtG,MAAM,IAAI,SAAS,CAAC,eAAe,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,yBAAyB,CAAC,CAAA;QAClF,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,GAAG,EAAE,YAAY,EAAE,OAAO,CAAC,YAAY,EAAE,MAAM,EAAE,CAAA;AAClE,CAAC;AAED,KAAK,UAAU,kBAAkB,CAAC,MAAmB,EAAE,MAAoB,EAAE,SAAiB;IAC5F,IAAI,MAAM,GAAiE,GAAG,EAAE,GAAE,CAAC,CAAA;IACnF,MAAM,MAAM,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;QAC9C,MAAM,GAAG,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,mCAAmC,MAAM,IAAI,IAAI,IAAI,SAAS,GAAG,CAAC,CAAC,CAAA;QAC/G,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,CAAC,CAAC,CAAA;IACF,IAAI,CAAC;QACH,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,aAAa,CAAC,MAAM,EAAE,SAAS,CAAC,EAAE,MAAM,CAAC,CAAC,CAAA;IAChE,CAAC;YAAS,CAAC;QACT,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC5B,CAAC;AACH,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,MAAgC;IACxD,IAAI,CAAC,MAAM,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI;QAAE,OAAM;IAC7E,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACtB,IAAI,MAAM,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC;QAAE,OAAM;IAC5C,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;IACtB,MAAM,WAAW,CAAC,MAAM,EAAE,KAAK,CAAC,CAAA;AAClC,CAAC;AAED,KAAK,UAAU,WAAW,CAAC,MAAoB,EAAE,SAAiB;IAChE,IAAI,MAAM,CAAC,QAAQ,KAAK,IAAI,IAAI,MAAM,CAAC,UAAU,KAAK,IAAI;QAAE,OAAO,IAAI,CAAA;IACvE,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;QAC7B,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC9B,MAAM,CAAC,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;YAC1B,OAAO,CAAC,KAAK,CAAC,CAAA;QAChB,CAAC,EAAE,SAAS,CAAC,CAAA;QACb,MAAM,MAAM,GAAG,GAAG,EAAE;YAClB,YAAY,CAAC,OAAO,CAAC,CAAA;YACrB,OAAO,CAAC,IAAI,CAAC,CAAA;QACf,CAAC,CAAA;QACD,MAAM,CAAC,IAAI,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC7B,CAAC,CAAC,CAAA;AACJ,CAAC;AAED,KAAK,UAAU,aAAa,CAAC,MAAmB,EAAE,SAAiB;IACjE,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS,CAAA;IAClC,IAAI,SAAkB,CAAA;IACtB,OAAO,IAAI,CAAC,GAAG,EAAE,GAAG,GAAG,EAAE,CAAC;QACxB,IAAI,CAAC;YACH,MAAM,aAAa,CAAC,MAAM,EAAE,IAAI,CAAC,GAAG,CAAC,GAAG,EAAE,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAA;YAC5D,OAAM;QACR,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,SAAS,GAAG,KAAK,CAAA;YACjB,MAAM,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,UAAU,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAA;QAC1D,CAAC;IACH,CAAC;IACD,MAAM,SAAS,YAAY,KAAK,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,6BAA6B,CAAC,CAAA;AACzF,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,5 +1,5 @@
1
- export declare const version = "0.2.2";
1
+ export declare const version = "0.3.1";
2
2
  export { connectPiFleet } from "./client.js";
3
3
  export { AgentNameTakenError, AgentNotFoundError, AgentUnavailableError, } from "./types.js";
4
- export type { Agent, AgentState, AgentStatus, AgentSummary, ConnectOptions, CreateAgentOptions, PiFleetClient, } from "./types.js";
4
+ export type { Agent, AgentState, AgentStatus, AgentSummary, ConnectOptions, CreateAgentOptions, PiFleetClient, SendDelivery, SendOptions, SendResult, } from "./types.js";
5
5
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAAU,CAAA;AAE9B,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,YAAY,CAAA;AAEnB,YAAY,EACV,KAAK,EACL,UAAU,EACV,WAAW,EACX,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,aAAa,GACd,MAAM,YAAY,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,OAAO,UAAU,CAAA;AAE9B,OAAO,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5C,OAAO,EACL,mBAAmB,EACnB,kBAAkB,EAClB,qBAAqB,GACtB,MAAM,YAAY,CAAA;AAEnB,YAAY,EACV,KAAK,EACL,UAAU,EACV,WAAW,EACX,YAAY,EACZ,cAAc,EACd,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,WAAW,EACX,UAAU,GACX,MAAM,YAAY,CAAA"}
package/dist/index.js CHANGED
@@ -1,4 +1,4 @@
1
- export const version = "0.2.2";
1
+ export const version = "0.3.1";
2
2
  export { connectPiFleet } from "./client.js";
3
3
  export { AgentNameTakenError, AgentNotFoundError, AgentUnavailableError, } from "./types.js";
4
4
  //# sourceMappingURL=index.js.map
@@ -4,10 +4,16 @@ export type PiState = {
4
4
  sessionFile: string;
5
5
  sessionId: string;
6
6
  };
7
- export declare class PiStartupError extends Error {
8
- }
9
- export declare function startPi(record: AgentRecord, timeoutMs?: number): Promise<{
7
+ export type PiDelivery = "steer" | "followUp";
8
+ export type PiEventHandler = (event: unknown) => void;
9
+ export type PiProcess = {
10
10
  process: ChildProcessWithoutNullStreams;
11
11
  state: PiState;
12
- }>;
12
+ send(message: string, delivery: PiDelivery, timeoutMs?: number): Promise<void>;
13
+ };
14
+ export declare class PiStartupError extends Error {
15
+ }
16
+ export declare class PiRequestError extends Error {
17
+ }
18
+ export declare function startPi(record: AgentRecord, timeoutMs?: number, onEvent?: PiEventHandler): Promise<PiProcess>;
13
19
  //# sourceMappingURL=pi-rpc.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"pi-rpc.d.ts","sourceRoot":"","sources":["../../src/internal/pi-rpc.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,KAAK,8BAA8B,EAAE,MAAM,oBAAoB,CAAA;AAE/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD,MAAM,MAAM,OAAO,GAAG;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,qBAAa,cAAe,SAAQ,KAAK;CAAG;AAY5C,wBAAsB,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,SAAS,GAAG,OAAO,CAAC;IAAE,OAAO,EAAE,8BAA8B,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,CAAC,CAuB3I"}
1
+ {"version":3,"file":"pi-rpc.d.ts","sourceRoot":"","sources":["../../src/internal/pi-rpc.ts"],"names":[],"mappings":"AACA,OAAO,EAAS,KAAK,8BAA8B,EAAE,MAAM,oBAAoB,CAAA;AAE/E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAEhD,MAAM,MAAM,OAAO,GAAG;IACpB,WAAW,EAAE,MAAM,CAAA;IACnB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,UAAU,CAAA;AAC7C,MAAM,MAAM,cAAc,GAAG,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,CAAA;AAErD,MAAM,MAAM,SAAS,GAAG;IACtB,OAAO,EAAE,8BAA8B,CAAA;IACvC,KAAK,EAAE,OAAO,CAAA;IACd,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAA;CAC/E,CAAA;AAED,qBAAa,cAAe,SAAQ,KAAK;CAAG;AAC5C,qBAAa,cAAe,SAAQ,KAAK;CAAG;AAmJ5C,wBAAsB,OAAO,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,SAAS,EAAE,OAAO,CAAC,EAAE,cAAc,GAAG,OAAO,CAAC,SAAS,CAAC,CA4BnH"}
@@ -1,7 +1,10 @@
1
+ import { randomUUID } from "node:crypto";
1
2
  import { spawn } from "node:child_process";
2
3
  import { StringDecoder } from "node:string_decoder";
3
4
  export class PiStartupError extends Error {
4
5
  }
6
+ export class PiRequestError extends Error {
7
+ }
5
8
  const USER_SESSION_SELECTORS = new Set([
6
9
  "--session",
7
10
  "--session-id",
@@ -11,7 +14,130 @@ const USER_SESSION_SELECTORS = new Set([
11
14
  "-r",
12
15
  "--fork",
13
16
  ]);
14
- export async function startPi(record, timeoutMs = 10_000) {
17
+ class PiRpcClient {
18
+ #process;
19
+ #onEvent;
20
+ #pending = new Map();
21
+ #decoder = new StringDecoder("utf8");
22
+ #buffer = "";
23
+ #closed = false;
24
+ constructor(process, onEvent) {
25
+ this.#process = process;
26
+ this.#onEvent = onEvent;
27
+ process.stdout.on("data", this.onStdout);
28
+ process.once("exit", this.onExit);
29
+ process.once("error", this.onError);
30
+ process.stdin.once("error", this.onStdinError);
31
+ }
32
+ async getState(timeoutMs) {
33
+ const response = await this.request({ type: "get_state" }, timeoutMs);
34
+ const data = response.data;
35
+ if (!isRecord(data) || typeof data.sessionFile !== "string" || typeof data.sessionId !== "string") {
36
+ throw new PiStartupError("Pi returned an invalid get_state response");
37
+ }
38
+ return { sessionFile: data.sessionFile, sessionId: data.sessionId };
39
+ }
40
+ async send(message, delivery, timeoutMs = 10_000) {
41
+ await this.request({ type: "prompt", message, streamingBehavior: delivery }, timeoutMs);
42
+ }
43
+ close() {
44
+ this.#closed = true;
45
+ this.#process.stdout.off("data", this.onStdout);
46
+ this.#process.off("exit", this.onExit);
47
+ this.#process.off("error", this.onError);
48
+ this.#process.stdin.off("error", this.onStdinError);
49
+ this.rejectPending(new PiStartupError("Pi RPC client closed"));
50
+ }
51
+ request(command, timeoutMs) {
52
+ if (this.#closed || this.#process.exitCode !== null || this.#process.signalCode !== null || this.#process.stdin.destroyed) {
53
+ return Promise.reject(new PiStartupError("Pi is not available"));
54
+ }
55
+ const id = randomUUID();
56
+ return new Promise((resolve, reject) => {
57
+ const timeout = setTimeout(() => {
58
+ this.#pending.delete(id);
59
+ reject(new PiRequestError("Pi did not answer before the request deadline"));
60
+ }, timeoutMs);
61
+ this.#pending.set(id, { resolve, reject, timeout });
62
+ try {
63
+ this.#process.stdin.write(`${JSON.stringify({ id, ...command })}\n`);
64
+ }
65
+ catch (error) {
66
+ this.rejectRequest(id, error instanceof Error ? error : new Error(String(error)));
67
+ }
68
+ });
69
+ }
70
+ onStdout = (chunk) => {
71
+ this.#buffer += this.#decoder.write(chunk);
72
+ while (true) {
73
+ const newline = this.#buffer.indexOf("\n");
74
+ if (newline < 0)
75
+ return;
76
+ const line = this.#buffer.slice(0, newline).replace(/\r$/, "");
77
+ this.#buffer = this.#buffer.slice(newline + 1);
78
+ if (!line)
79
+ continue;
80
+ this.handleLine(line);
81
+ }
82
+ };
83
+ handleLine(line) {
84
+ let message;
85
+ try {
86
+ message = JSON.parse(line);
87
+ }
88
+ catch {
89
+ return;
90
+ }
91
+ if (!isRecord(message))
92
+ return;
93
+ if (message.type === "response") {
94
+ if (typeof message.id === "string" && this.#pending.has(message.id)) {
95
+ if (message.success === true)
96
+ this.resolveRequest(message.id, message);
97
+ else
98
+ this.rejectRequest(message.id, new PiRequestError(typeof message.error === "string" ? message.error : "Pi rejected the request"));
99
+ }
100
+ return;
101
+ }
102
+ this.#onEvent?.(message);
103
+ }
104
+ onExit = (code) => {
105
+ this.#closed = true;
106
+ this.rejectPending(new PiStartupError(`Pi exited before completing the request (code ${code ?? "signal"})`));
107
+ };
108
+ onError = (error) => {
109
+ this.#closed = true;
110
+ this.rejectPending(new PiStartupError(`Pi failed: ${error.message}`));
111
+ };
112
+ onStdinError = (error) => {
113
+ this.#closed = true;
114
+ this.rejectPending(new PiStartupError(`Pi stdin failed: ${error.message}`));
115
+ };
116
+ resolveRequest(id, response) {
117
+ const pending = this.#pending.get(id);
118
+ if (!pending)
119
+ return;
120
+ this.#pending.delete(id);
121
+ clearTimeout(pending.timeout);
122
+ pending.resolve(response);
123
+ }
124
+ rejectRequest(id, error) {
125
+ const pending = this.#pending.get(id);
126
+ if (!pending)
127
+ return;
128
+ this.#pending.delete(id);
129
+ clearTimeout(pending.timeout);
130
+ pending.reject(error);
131
+ }
132
+ rejectPending(error) {
133
+ for (const [id, pending] of this.#pending) {
134
+ this.#pending.delete(id);
135
+ clearTimeout(pending.timeout);
136
+ pending.reject(error);
137
+ }
138
+ }
139
+ }
140
+ export async function startPi(record, timeoutMs = 10_000, onEvent) {
15
141
  const command = process.env.PI_FLEET_PI_COMMAND ?? "pi";
16
142
  const args = ["--mode", "rpc", ...record.piArgs];
17
143
  if (record.instructions)
@@ -24,17 +150,21 @@ export async function startPi(record, timeoutMs = 10_000) {
24
150
  child.stderr.on("data", (chunk) => {
25
151
  stderr = `${stderr}${chunk.toString("utf8")}`.slice(-4_096);
26
152
  });
153
+ const rpc = new PiRpcClient(child, onEvent);
27
154
  try {
28
- const state = await getState(child, timeoutMs);
29
- child.stdout.resume();
30
- return { process: child, state };
155
+ const state = await rpc.getState(timeoutMs);
156
+ return {
157
+ process: child,
158
+ state,
159
+ send: (message, delivery, requestTimeoutMs) => rpc.send(message, delivery, requestTimeoutMs),
160
+ };
31
161
  }
32
162
  catch (error) {
163
+ rpc.close();
33
164
  await terminate(child);
34
165
  const detail = stderr.trim();
35
- if (error instanceof PiStartupError && detail)
36
- throw new PiStartupError(`${error.message}: ${detail}`);
37
- throw error;
166
+ const message = error instanceof Error ? error.message : String(error);
167
+ throw new PiStartupError(detail ? `${message}: ${detail}` : message);
38
168
  }
39
169
  }
40
170
  async function terminate(child) {
@@ -61,55 +191,7 @@ async function waitForExit(child, timeoutMs) {
61
191
  child.once("exit", onExit);
62
192
  });
63
193
  }
64
- async function getState(child, timeoutMs) {
65
- const id = "ready";
66
- const decoder = new StringDecoder("utf8");
67
- let pending = "";
68
- return new Promise((resolve, reject) => {
69
- const timeout = setTimeout(() => fail(new PiStartupError("Pi did not answer get_state before the startup deadline")), timeoutMs);
70
- const onError = (error) => fail(new PiStartupError(`Pi failed to start: ${error.message}`));
71
- const onExit = (code) => fail(new PiStartupError(`Pi exited before readiness (code ${code ?? "signal"})`));
72
- const onData = (chunk) => {
73
- pending += decoder.write(chunk);
74
- while (true) {
75
- const newline = pending.indexOf("\n");
76
- if (newline < 0)
77
- return;
78
- const line = pending.slice(0, newline).replace(/\r$/, "");
79
- pending = pending.slice(newline + 1);
80
- if (!line)
81
- continue;
82
- try {
83
- const message = JSON.parse(line);
84
- if (message.type === "response" && message.id === id) {
85
- if (!message.success)
86
- return fail(new PiStartupError("Pi rejected get_state"));
87
- const { sessionFile, sessionId } = message.data ?? {};
88
- if (typeof sessionFile !== "string" || typeof sessionId !== "string")
89
- return fail(new PiStartupError("Pi returned an invalid get_state response"));
90
- cleanup();
91
- resolve({ sessionFile, sessionId });
92
- }
93
- }
94
- catch {
95
- // Pi events and diagnostics may share stdout. Only a matching response matters here.
96
- }
97
- }
98
- };
99
- const cleanup = () => {
100
- clearTimeout(timeout);
101
- child.stdout.off("data", onData);
102
- child.off("error", onError);
103
- child.off("exit", onExit);
104
- };
105
- const fail = (error) => {
106
- cleanup();
107
- reject(error);
108
- };
109
- child.stdout.on("data", onData);
110
- child.once("error", onError);
111
- child.once("exit", onExit);
112
- child.stdin.write(`${JSON.stringify({ id, type: "get_state" })}\n`);
113
- });
194
+ function isRecord(value) {
195
+ return typeof value === "object" && value !== null;
114
196
  }
115
197
  //# sourceMappingURL=pi-rpc.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"pi-rpc.js","sourceRoot":"","sources":["../../src/internal/pi-rpc.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"pi-rpc.js","sourceRoot":"","sources":["../../src/internal/pi-rpc.ts"],"names":[],"mappings":"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"}
@@ -6,6 +6,15 @@ export type StatusRequest = {
6
6
  agentId: string;
7
7
  runtimeGeneration: string;
8
8
  };
9
+ export type SendRequest = {
10
+ version: 1;
11
+ requestId: string;
12
+ command: "send";
13
+ agentId: string;
14
+ runtimeGeneration: string;
15
+ message: string;
16
+ delivery: "steer" | "followUp";
17
+ };
9
18
  export type StatusResponse = {
10
19
  version: 1;
11
20
  requestId: string;
@@ -18,6 +27,16 @@ export type StatusResponse = {
18
27
  };
19
28
  error?: string;
20
29
  };
21
- export declare function encode(message: StatusRequest | StatusResponse): string;
30
+ export type SendResponse = {
31
+ version: 1;
32
+ requestId: string;
33
+ command: "send";
34
+ ok: boolean;
35
+ agentId: string;
36
+ runtimeGeneration: string;
37
+ acceptedAt?: number;
38
+ error?: string;
39
+ };
40
+ export declare function encode(message: StatusRequest | SendRequest | StatusResponse | SendResponse): string;
22
41
  export declare function decode(text: Buffer): unknown;
23
42
  //# sourceMappingURL=protocol.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/internal/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE7C,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,CAAC,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,QAAQ,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,iBAAiB,EAAE,MAAM,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,CAAC,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,EAAE,EAAE,OAAO,CAAA;IACX,MAAM,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,UAAU,CAAA;KAAE,CAAA;IACnF,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,wBAAgB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,cAAc,GAAG,MAAM,CAEtE;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE5C"}
1
+ {"version":3,"file":"protocol.d.ts","sourceRoot":"","sources":["../../src/internal/protocol.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,aAAa,CAAA;AAE7C,MAAM,MAAM,aAAa,GAAG;IAC1B,OAAO,EAAE,CAAC,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,QAAQ,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,iBAAiB,EAAE,MAAM,CAAA;CAC1B,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,OAAO,EAAE,CAAC,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,OAAO,EAAE,MAAM,CAAA;IACf,iBAAiB,EAAE,MAAM,CAAA;IACzB,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,OAAO,GAAG,UAAU,CAAA;CAC/B,CAAA;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,CAAC,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,EAAE,EAAE,OAAO,CAAA;IACX,MAAM,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,UAAU,CAAA;KAAE,CAAA;IACnF,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,OAAO,EAAE,CAAC,CAAA;IACV,SAAS,EAAE,MAAM,CAAA;IACjB,OAAO,EAAE,MAAM,CAAA;IACf,EAAE,EAAE,OAAO,CAAA;IACX,OAAO,EAAE,MAAM,CAAA;IACf,iBAAiB,EAAE,MAAM,CAAA;IACzB,UAAU,CAAC,EAAE,MAAM,CAAA;IACnB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf,CAAA;AAED,wBAAgB,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,WAAW,GAAG,cAAc,GAAG,YAAY,GAAG,MAAM,CAEnG;AAED,wBAAgB,MAAM,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAE5C"}
@@ -1 +1 @@
1
- {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/internal/protocol.ts"],"names":[],"mappings":"AAkBA,MAAM,UAAU,MAAM,CAAC,OAAuC;IAC5D,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;AAChC,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,IAAY;IACjC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;AAC1C,CAAC"}
1
+ {"version":3,"file":"protocol.js","sourceRoot":"","sources":["../../src/internal/protocol.ts"],"names":[],"mappings":"AAuCA,MAAM,UAAU,MAAM,CAAC,OAAoE;IACzF,OAAO,IAAI,CAAC,SAAS,CAAC,OAAO,CAAC,CAAA;AAChC,CAAC;AAED,MAAM,UAAU,MAAM,CAAC,IAAY;IACjC,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAA;AAC1C,CAAC"}
@@ -37,6 +37,7 @@ export declare class Registry {
37
37
  getByName(name: string): AgentRecord | undefined;
38
38
  list(): AgentSummary[];
39
39
  markReady(id: string, runtimeGeneration: string, ready: Pick<NonNullable<AgentRecord["runtime"]>, "workerPid" | "endpoint"> & Pick<AgentRecord, "sessionPath" | "sessionId">): Promise<boolean>;
40
+ updateState(id: string, runtimeGeneration: string, state: "working" | "idle"): Promise<boolean>;
40
41
  rollbackCreation(id: string, name: string, runtimeGeneration: string): Promise<void>;
41
42
  close(): Promise<void>;
42
43
  private assertOpen;
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/internal/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,MAAM,CAAA;AAE7D,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAG3D,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,UAAU,CAAA;IACjB,OAAO,CAAC,EAAE;QACR,UAAU,EAAE,MAAM,CAAA;QAClB,KAAK,EAAE,UAAU,GAAG,OAAO,CAAA;QAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,CAAA;IACD,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,KAAK,WAAW,GAAG,YAAY,CAAA;AAC/B,KAAK,iBAAiB,GAAG;IACvB,IAAI,EAAE,WAAW,CAAA;IACjB,MAAM,EAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;IACrC,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;CACxB,CAAA;AAID,qBAAa,QAAQ;;gBAOP,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB;IAOjD,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAUhD,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAK5C,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAMhD,IAAI,IAAI,YAAY,EAAE;IAUhB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAuB/L,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUpF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAe5B,OAAO,CAAC,UAAU;CAGnB;AAED,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAmBtE"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/internal/registry.ts"],"names":[],"mappings":"AAAA,OAAO,EAAQ,KAAK,QAAQ,EAAE,KAAK,YAAY,EAAE,MAAM,MAAM,CAAA;AAE7D,OAAO,KAAK,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAG3D,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,UAAU,CAAA;IACjB,OAAO,CAAC,EAAE;QACR,UAAU,EAAE,MAAM,CAAA;QAClB,KAAK,EAAE,UAAU,GAAG,OAAO,CAAA;QAC3B,SAAS,CAAC,EAAE,MAAM,CAAA;QAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;QACjB,OAAO,CAAC,EAAE,MAAM,CAAA;QAChB,SAAS,CAAC,EAAE,MAAM,CAAA;KACnB,CAAA;IACD,YAAY,EAAE,MAAM,CAAA;IACpB,SAAS,EAAE,MAAM,CAAA;IACjB,SAAS,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,KAAK,WAAW,GAAG,YAAY,CAAA;AAC/B,KAAK,iBAAiB,GAAG;IACvB,IAAI,EAAE,WAAW,CAAA;IACjB,MAAM,EAAE,QAAQ,CAAC,WAAW,EAAE,MAAM,CAAC,CAAA;IACrC,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;IAC/B,UAAU,EAAE,MAAM,CAAA;IAClB,OAAO,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;CACxB,CAAA;AAID,qBAAa,QAAQ;;gBAOP,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,iBAAiB;IAOjD,MAAM,CAAC,MAAM,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAUhD,OAAO,CAAC,EAAE,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAK5C,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS;IAMhD,IAAI,IAAI,YAAY,EAAE;IAUhB,SAAS,CAAC,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,CAAC,WAAW,CAAC,WAAW,CAAC,SAAS,CAAC,CAAC,EAAE,WAAW,GAAG,UAAU,CAAC,GAAG,IAAI,CAAC,WAAW,EAAE,aAAa,GAAG,WAAW,CAAC,GAAG,OAAO,CAAC,OAAO,CAAC;IAuB/L,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,EAAE,KAAK,EAAE,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAiB/F,gBAAgB,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAUpF,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAe5B,OAAO,CAAC,UAAU;CAGnB;AAED,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,CAAC,CAmBtE"}
@@ -63,6 +63,24 @@ export class Registry {
63
63
  const version = entry.version ?? 0;
64
64
  return this.#agents.put(id, record, version + 1, version);
65
65
  }
66
+ async updateState(id, runtimeGeneration, state) {
67
+ this.assertOpen();
68
+ while (true) {
69
+ const entry = this.#agents.getEntry(id);
70
+ if (!entry || entry.value.runtime?.generation !== runtimeGeneration)
71
+ return false;
72
+ if (entry.value.state === state)
73
+ return true;
74
+ const version = entry.version ?? 0;
75
+ const updated = {
76
+ ...entry.value,
77
+ state,
78
+ updatedAt: Date.now(),
79
+ };
80
+ if (await this.#agents.put(id, updated, version + 1, version))
81
+ return true;
82
+ }
83
+ }
66
84
  async rollbackCreation(id, name, runtimeGeneration) {
67
85
  this.assertOpen();
68
86
  await this.#names.transaction(() => {
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/internal/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../src/internal/registry.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,7 @@
1
1
  import { type StatusResponse } from "./protocol.js";
2
2
  import type { AgentRecord } from "./registry.js";
3
3
  export declare function requestStatus(record: AgentRecord, timeoutMs?: number): Promise<NonNullable<StatusResponse["status"]>>;
4
+ export declare function requestSend(record: AgentRecord, message: string, delivery: "steer" | "followUp", timeoutMs?: number): Promise<{
5
+ acceptedAt: number;
6
+ }>;
4
7
  //# sourceMappingURL=worker-client.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"worker-client.d.ts","sourceRoot":"","sources":["../../src/internal/worker-client.ts"],"names":[],"mappings":"AAGA,OAAO,EAAsC,KAAK,cAAc,EAAE,MAAM,eAAe,CAAA;AACvF,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAIhD,wBAAsB,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,SAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAqC1H"}
1
+ {"version":3,"file":"worker-client.d.ts","sourceRoot":"","sources":["../../src/internal/worker-client.ts"],"names":[],"mappings":"AAGA,OAAO,EAA2E,KAAK,cAAc,EAAE,MAAM,eAAe,CAAA;AAC5H,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAIhD,wBAAsB,aAAa,CAAC,MAAM,EAAE,WAAW,EAAE,SAAS,SAAQ,GAAG,OAAO,CAAC,WAAW,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,CAuB1H;AAED,wBAAsB,WAAW,CAAC,MAAM,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAG,UAAU,EAAE,SAAS,SAAS,GAAG,OAAO,CAAC;IAAE,UAAU,EAAE,MAAM,CAAA;CAAE,CAAC,CAqB3J"}
@@ -1,37 +1,61 @@
1
- import { Dealer } from "zeromq";
2
1
  import { randomUUID } from "node:crypto";
2
+ import { Dealer } from "zeromq";
3
3
  import { AgentUnavailableError } from "../types.js";
4
4
  import { decode, encode } from "./protocol.js";
5
5
  const AGENT_STATES = new Set(["starting", "idle", "working", "stopped", "failed"]);
6
6
  export async function requestStatus(record, timeoutMs = 1_000) {
7
+ const request = {
8
+ version: 1,
9
+ requestId: randomUUID(),
10
+ command: "status",
11
+ agentId: record.id,
12
+ runtimeGeneration: record.runtime?.generation ?? "",
13
+ };
14
+ const response = await requestWorker(record, request, timeoutMs);
15
+ if (!isStatusResponse(response) ||
16
+ response.requestId !== request.requestId ||
17
+ !response.ok ||
18
+ !response.status ||
19
+ response.status.id !== record.id ||
20
+ response.status.name !== record.name ||
21
+ response.status.runtimeGeneration !== record.runtime?.generation ||
22
+ !AGENT_STATES.has(response.status.state)) {
23
+ throw new AgentUnavailableError(record.name);
24
+ }
25
+ return response.status;
26
+ }
27
+ export async function requestSend(record, message, delivery, timeoutMs = 10_000) {
28
+ const request = {
29
+ version: 1,
30
+ requestId: randomUUID(),
31
+ command: "send",
32
+ agentId: record.id,
33
+ runtimeGeneration: record.runtime?.generation ?? "",
34
+ message,
35
+ delivery,
36
+ };
37
+ const response = await requestWorker(record, request, timeoutMs);
38
+ if (!isSendResponse(response) || response.requestId !== request.requestId || response.agentId !== record.id || response.runtimeGeneration !== record.runtime?.generation) {
39
+ throw new AgentUnavailableError(record.name);
40
+ }
41
+ if (!response.ok) {
42
+ if (typeof response.error === "string" && response.error)
43
+ throw new Error(response.error);
44
+ throw new AgentUnavailableError(record.name);
45
+ }
46
+ if (typeof response.acceptedAt !== "number")
47
+ throw new AgentUnavailableError(record.name);
48
+ return { acceptedAt: response.acceptedAt };
49
+ }
50
+ async function requestWorker(record, request, timeoutMs) {
7
51
  const runtime = record.runtime;
8
52
  if (!runtime?.endpoint)
9
53
  throw new AgentUnavailableError(record.name);
10
54
  const socket = new Dealer({ routingId: randomUUID(), immediate: true, linger: 0, sendTimeout: timeoutMs });
11
55
  try {
12
56
  socket.connect(runtime.endpoint);
13
- const request = {
14
- version: 1,
15
- requestId: randomUUID(),
16
- command: "status",
17
- agentId: record.id,
18
- runtimeGeneration: runtime.generation,
19
- };
20
57
  await socket.send(encode(request));
21
- const frames = await withTimeout(socket.receive(), timeoutMs, record.name);
22
- const response = decode(frames[0]);
23
- if (!response ||
24
- response.version !== 1 ||
25
- response.requestId !== request.requestId ||
26
- !response.ok ||
27
- !response.status ||
28
- response.status.id !== record.id ||
29
- response.status.name !== record.name ||
30
- response.status.runtimeGeneration !== runtime.generation ||
31
- !AGENT_STATES.has(response.status.state)) {
32
- throw new AgentUnavailableError(record.name);
33
- }
34
- return response.status;
58
+ return decode((await withTimeout(socket.receive(), timeoutMs, record.name))[0]);
35
59
  }
36
60
  catch (error) {
37
61
  if (error instanceof AgentUnavailableError)
@@ -42,6 +66,16 @@ export async function requestStatus(record, timeoutMs = 1_000) {
42
66
  socket.close();
43
67
  }
44
68
  }
69
+ function isStatusResponse(response) {
70
+ return isRecord(response) && response.version === 1 && typeof response.requestId === "string";
71
+ }
72
+ function isSendResponse(response) {
73
+ return isRecord(response) && response.version === 1 && response.command === "send" && typeof response.requestId === "string" &&
74
+ typeof response.agentId === "string" && typeof response.runtimeGeneration === "string" && typeof response.ok === "boolean";
75
+ }
76
+ function isRecord(value) {
77
+ return typeof value === "object" && value !== null;
78
+ }
45
79
  async function withTimeout(promise, timeoutMs, name) {
46
80
  let timeout;
47
81
  try {
@@ -1 +1 @@
1
- {"version":3,"file":"worker-client.js","sourceRoot":"","sources":["../../src/internal/worker-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker-client.js","sourceRoot":"","sources":["../../src/internal/worker-client.ts"],"names":[],"mappings":"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"}
@@ -14,19 +14,52 @@ async function main() {
14
14
  await createStateDirectories(stateDir);
15
15
  const router = new Router({ mandatory: true, immediate: true, linger: 0, sendTimeout: 1_000 });
16
16
  let routerClosed = false;
17
+ let state = record.state;
18
+ let pi;
19
+ let stateUpdates = Promise.resolve();
20
+ let replies = Promise.resolve();
21
+ const handlers = new Set();
17
22
  const closeRouter = () => {
18
23
  if (routerClosed)
19
24
  return;
20
25
  routerClosed = true;
21
26
  router.close();
22
27
  };
23
- let pi;
24
28
  const stop = () => closeRouter();
29
+ const queueStateUpdate = (nextState) => {
30
+ stateUpdates = stateUpdates.then(async () => {
31
+ const updated = await registry.updateState(agentId, generation, nextState);
32
+ if (!updated) {
33
+ closeRouter();
34
+ return;
35
+ }
36
+ state = nextState;
37
+ }).catch(() => closeRouter());
38
+ };
39
+ const queueReply = (route, response) => {
40
+ replies = replies.then(async () => {
41
+ try {
42
+ await router.send([route, encode(response)]);
43
+ }
44
+ catch (error) {
45
+ if (!isUnreachablePeer(error))
46
+ throw error;
47
+ }
48
+ }).catch(() => closeRouter());
49
+ };
50
+ const onPiEvent = (event) => {
51
+ if (!isRecord(event))
52
+ return;
53
+ if (event.type === "agent_start")
54
+ queueStateUpdate("working");
55
+ if (event.type === "agent_settled")
56
+ queueStateUpdate("idle");
57
+ };
25
58
  process.once("SIGTERM", stop);
26
59
  process.once("SIGINT", stop);
27
60
  try {
28
61
  await router.bind(record.runtime.endpoint);
29
- pi = await startPi(record);
62
+ pi = await startPi(record, 10_000, onPiEvent);
30
63
  pi.process.once("exit", closeRouter);
31
64
  const markedReady = await registry.markReady(agentId, generation, {
32
65
  workerPid: process.pid,
@@ -36,15 +69,14 @@ async function main() {
36
69
  });
37
70
  if (!markedReady)
38
71
  throw new Error("Worker claim is no longer current");
72
+ state = "idle";
39
73
  for await (const [route, frame] of router) {
40
- const response = statusResponse(frame, agentId, generation, record.name);
41
- try {
42
- await router.send([route, encode(response)]);
43
- }
44
- catch (error) {
45
- if (!isUnreachablePeer(error))
46
- throw error;
47
- }
74
+ const handler = handleRequest(route, frame, record, generation, pi, () => state, queueReply);
75
+ handlers.add(handler);
76
+ void handler.then(() => handlers.delete(handler), () => {
77
+ handlers.delete(handler);
78
+ closeRouter();
79
+ });
48
80
  }
49
81
  }
50
82
  finally {
@@ -53,9 +85,72 @@ async function main() {
53
85
  pi?.process.off("exit", closeRouter);
54
86
  closeRouter();
55
87
  await stopPi(pi?.process);
88
+ await Promise.allSettled(handlers);
89
+ await stateUpdates;
90
+ await replies;
56
91
  await registry.close();
57
92
  }
58
93
  }
94
+ async function handleRequest(route, frame, record, generation, pi, getState, reply) {
95
+ const request = decodeRequest(frame);
96
+ if (!request || request.agentId !== record.id || request.runtimeGeneration !== generation) {
97
+ reply(route, invalidResponse(request, record.id, generation));
98
+ return;
99
+ }
100
+ if (request.command === "status") {
101
+ reply(route, {
102
+ version: 1,
103
+ requestId: request.requestId,
104
+ ok: true,
105
+ status: { id: record.id, name: record.name, runtimeGeneration: generation, state: getState() },
106
+ });
107
+ return;
108
+ }
109
+ if (!request.message.trim()) {
110
+ reply(route, sendResponse(request, record.id, generation, "Message must not be empty"));
111
+ return;
112
+ }
113
+ if (request.delivery !== "steer" && request.delivery !== "followUp") {
114
+ reply(route, sendResponse(request, record.id, generation, "Invalid delivery"));
115
+ return;
116
+ }
117
+ try {
118
+ await pi.send(request.message, request.delivery);
119
+ reply(route, sendResponse(request, record.id, generation, undefined, Date.now()));
120
+ }
121
+ catch (error) {
122
+ reply(route, sendResponse(request, record.id, generation, error instanceof Error ? error.message : String(error)));
123
+ }
124
+ }
125
+ function decodeRequest(frame) {
126
+ try {
127
+ const request = decode(frame);
128
+ if (!isRecord(request) || request.version !== 1 || typeof request.requestId !== "string" || typeof request.agentId !== "string" || typeof request.runtimeGeneration !== "string")
129
+ return undefined;
130
+ if (request.command === "status")
131
+ return request;
132
+ if (request.command === "send" && typeof request.message === "string" && typeof request.delivery === "string")
133
+ return request;
134
+ }
135
+ catch { }
136
+ return undefined;
137
+ }
138
+ function invalidResponse(request, agentId, generation) {
139
+ if (request?.command === "send")
140
+ return sendResponse(request, agentId, generation, "Worker identity does not match the request");
141
+ return { version: 1, requestId: request?.requestId ?? "", ok: false, error: "Worker identity does not match the request" };
142
+ }
143
+ function sendResponse(request, agentId, generation, error, acceptedAt) {
144
+ return {
145
+ version: 1,
146
+ requestId: request.requestId,
147
+ command: "send",
148
+ ok: error === undefined,
149
+ agentId,
150
+ runtimeGeneration: generation,
151
+ ...(error === undefined ? { acceptedAt } : { error }),
152
+ };
153
+ }
59
154
  async function stopPi(pi) {
60
155
  if (!pi || pi.exitCode !== null || pi.signalCode !== null)
61
156
  return;
@@ -80,17 +175,8 @@ async function waitForExit(pi, timeoutMs) {
80
175
  pi.once("exit", onExit);
81
176
  });
82
177
  }
83
- function statusResponse(frame, agentId, generation, name) {
84
- try {
85
- const request = decode(frame);
86
- if (request.version !== 1 || request.command !== "status" || request.agentId !== agentId || request.runtimeGeneration !== generation) {
87
- return { version: 1, requestId: request?.requestId ?? "", ok: false, error: "Worker identity does not match the request" };
88
- }
89
- return { version: 1, requestId: request.requestId, ok: true, status: { id: agentId, name, runtimeGeneration: generation, state: "idle" } };
90
- }
91
- catch {
92
- return { version: 1, requestId: "", ok: false, error: "Invalid request" };
93
- }
178
+ function isRecord(value) {
179
+ return typeof value === "object" && value !== null;
94
180
  }
95
181
  function isUnreachablePeer(error) {
96
182
  return typeof error === "object" && error !== null && "code" in error &&
@@ -1 +1 @@
1
- {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/internal/worker.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"worker.js","sourceRoot":"","sources":["../../src/internal/worker.ts"],"names":[],"mappings":"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"}
package/dist/types.d.ts CHANGED
@@ -20,10 +20,18 @@ export type AgentStatus = {
20
20
  name: string;
21
21
  state: AgentState;
22
22
  };
23
+ export type SendDelivery = "steer" | "followUp";
24
+ export type SendOptions = {
25
+ delivery?: SendDelivery;
26
+ };
27
+ export type SendResult = {
28
+ acceptedAt: number;
29
+ };
23
30
  export interface Agent {
24
31
  readonly id: string;
25
32
  readonly name: string;
26
33
  status(): Promise<AgentStatus>;
34
+ send(message: string, options?: SendOptions): Promise<SendResult>;
27
35
  }
28
36
  export interface PiFleetClient {
29
37
  create(options: CreateAgentOptions): Promise<Agent>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAA;AAE/E,MAAM,MAAM,cAAc,GAAG;IAC3B,wFAAwF;IACxF,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,UAAU,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,UAAU,CAAA;CAClB,CAAA;AAED,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,CAAA;CAC/B;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;IACnD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;IACjC,IAAI,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAAA;IAC/B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB;AAED,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,IAAI,EAAE,MAAM;CAIzB;AAED,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,IAAI,EAAE,MAAM;CAIzB;AAED,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,IAAI,EAAE,MAAM;CAIzB"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,MAAM,GAAG,SAAS,GAAG,SAAS,GAAG,QAAQ,CAAA;AAE/E,MAAM,MAAM,cAAc,GAAG;IAC3B,wFAAwF;IACxF,QAAQ,CAAC,EAAE,MAAM,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,YAAY,CAAC,EAAE,MAAM,CAAA;IACrB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG;IACzB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,UAAU,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,WAAW,GAAG;IACxB,EAAE,EAAE,MAAM,CAAA;IACV,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,EAAE,UAAU,CAAA;CAClB,CAAA;AAED,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,UAAU,CAAA;AAE/C,MAAM,MAAM,WAAW,GAAG;IACxB,QAAQ,CAAC,EAAE,YAAY,CAAA;CACxB,CAAA;AAED,MAAM,MAAM,UAAU,GAAG;IACvB,UAAU,EAAE,MAAM,CAAA;CACnB,CAAA;AAED,MAAM,WAAW,KAAK;IACpB,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAA;IACnB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAA;IACrB,MAAM,IAAI,OAAO,CAAC,WAAW,CAAC,CAAA;IAC9B,IAAI,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC,CAAA;CAClE;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;IACnD,GAAG,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,CAAC,CAAA;IACjC,IAAI,IAAI,OAAO,CAAC,YAAY,EAAE,CAAC,CAAA;IAC/B,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAA;CACvB;AAED,qBAAa,mBAAoB,SAAQ,KAAK;gBAChC,IAAI,EAAE,MAAM;CAIzB;AAED,qBAAa,kBAAmB,SAAQ,KAAK;gBAC/B,IAAI,EAAE,MAAM;CAIzB;AAED,qBAAa,qBAAsB,SAAQ,KAAK;gBAClC,IAAI,EAAE,MAAM;CAIzB"}
package/dist/types.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAwCA,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,IAAY;QACtB,KAAK,CAAC,kBAAkB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;QAC9D,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAA;IACnC,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,IAAY;QACtB,KAAK,CAAC,kBAAkB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACtD,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAA;IAClC,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,IAAY;QACtB,KAAK,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;QACrD,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAA;IACrC,CAAC;CACF"}
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAmDA,MAAM,OAAO,mBAAoB,SAAQ,KAAK;IAC5C,YAAY,IAAY;QACtB,KAAK,CAAC,kBAAkB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;QAC9D,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAA;IACnC,CAAC;CACF;AAED,MAAM,OAAO,kBAAmB,SAAQ,KAAK;IAC3C,YAAY,IAAY;QACtB,KAAK,CAAC,kBAAkB,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,CAAA;QACtD,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAA;IAClC,CAAC;CACF;AAED,MAAM,OAAO,qBAAsB,SAAQ,KAAK;IAC9C,YAAY,IAAY;QACtB,KAAK,CAAC,SAAS,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,iBAAiB,CAAC,CAAA;QACrD,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAA;IACrC,CAAC;CACF"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@elpapi42/pi-fleet-sdk",
3
- "version": "0.2.2",
3
+ "version": "0.3.1",
4
4
  "description": "SDK for durable, host-local Pi agents",
5
5
  "license": "MIT",
6
6
  "repository": {