@rkat/sdk 0.3.4 → 0.4.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.
@@ -0,0 +1,86 @@
1
+ /**
2
+ * Session — the first-class handle for multi-turn agent conversations.
3
+ *
4
+ * @example
5
+ * ```ts
6
+ * const client = await Meerkat.connect();
7
+ * const session = await client.createSession("Summarise this repo");
8
+ * console.log(session.text);
9
+ *
10
+ * // Multi-turn
11
+ * const result = await session.turn("Now list the open issues");
12
+ *
13
+ * // Streaming
14
+ * for await (const event of session.stream("Explain the CI pipeline")) {
15
+ * if (event.type === "text_delta") {
16
+ * process.stdout.write(event.delta);
17
+ * }
18
+ * }
19
+ * ```
20
+ */
21
+ import type { RunResult, SkillRef } from "./types.js";
22
+ import type { MeerkatClient } from "./client.js";
23
+ import type { EventStream } from "./streaming.js";
24
+ export declare class Session {
25
+ /** @internal */
26
+ _lastResult: RunResult;
27
+ private readonly _client;
28
+ private readonly _id;
29
+ private readonly _ref;
30
+ /** @internal — constructed by MeerkatClient, not directly. */
31
+ constructor(client: MeerkatClient, result: RunResult);
32
+ /** The stable UUID for this session. */
33
+ get id(): string;
34
+ /** Optional human-readable session reference. */
35
+ get ref(): string | undefined;
36
+ /** The most recent {@link RunResult}. */
37
+ get lastResult(): RunResult;
38
+ /** The assistant's text from the last turn. */
39
+ get text(): string;
40
+ /** Token usage from the last turn. */
41
+ get usage(): import("./events.js").Usage;
42
+ /** Number of LLM turns in the last run. */
43
+ get turns(): number;
44
+ /** Number of tool calls in the last run. */
45
+ get toolCalls(): number;
46
+ /** Structured output from the last run, if requested. */
47
+ get structuredOutput(): unknown;
48
+ /** Run another turn on this session (non-streaming). */
49
+ turn(prompt: string, options?: {
50
+ skillRefs?: SkillRef[];
51
+ skillReferences?: string[];
52
+ }): Promise<RunResult>;
53
+ /**
54
+ * Run another turn on this session with streaming events.
55
+ *
56
+ * Returns an {@link EventStream} `AsyncIterable<AgentEvent>`.
57
+ *
58
+ * @example
59
+ * ```ts
60
+ * for await (const event of session.stream("prompt")) {
61
+ * // ...
62
+ * }
63
+ * ```
64
+ */
65
+ stream(prompt: string, options?: {
66
+ skillRefs?: SkillRef[];
67
+ skillReferences?: string[];
68
+ }): EventStream;
69
+ /** Cancel the currently running turn, if any. */
70
+ interrupt(): Promise<void>;
71
+ /** Archive (remove) this session from the server. */
72
+ archive(): Promise<void>;
73
+ /**
74
+ * Invoke a skill in this session.
75
+ *
76
+ * Accepts a {@link SkillKey} or a legacy string reference.
77
+ * Sends the structured `skill_refs` parameter to the runtime.
78
+ */
79
+ invokeSkill(skillRef: SkillRef, prompt: string): Promise<RunResult>;
80
+ /** Send a comms command scoped to this session. */
81
+ send(command: Record<string, unknown>): Promise<Record<string, unknown>>;
82
+ /** List peers visible to this session's comms runtime. */
83
+ peers(): Promise<Array<Record<string, unknown>>>;
84
+ toString(): string;
85
+ }
86
+ //# sourceMappingURL=session.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAGH,OAAO,KAAK,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AACjD,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAElD,qBAAa,OAAO;IAClB,gBAAgB;IAChB,WAAW,EAAE,SAAS,CAAC;IAEvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAgB;IACxC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAS;IAC7B,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAqB;IAE1C,8DAA8D;gBAClD,MAAM,EAAE,aAAa,EAAE,MAAM,EAAE,SAAS;IASpD,wCAAwC;IACxC,IAAI,EAAE,IAAI,MAAM,CAEf;IAED,iDAAiD;IACjD,IAAI,GAAG,IAAI,MAAM,GAAG,SAAS,CAE5B;IAID,yCAAyC;IACzC,IAAI,UAAU,IAAI,SAAS,CAE1B;IAED,+CAA+C;IAC/C,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,sCAAsC;IACtC,IAAI,KAAK,gCAER;IAED,2CAA2C;IAC3C,IAAI,KAAK,IAAI,MAAM,CAElB;IAED,4CAA4C;IAC5C,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,yDAAyD;IACzD,IAAI,gBAAgB,IAAI,OAAO,CAE9B;IAID,wDAAwD;IAClD,IAAI,CACR,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAC/D,OAAO,CAAC,SAAS,CAAC;IAUrB;;;;;;;;;;;OAWG;IACH,MAAM,CACJ,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;QAAC,eAAe,CAAC,EAAE,MAAM,EAAE,CAAA;KAAE,GAC/D,WAAW;IAWd,iDAAiD;IAC3C,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAIhC,qDAAqD;IAC/C,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAM9B;;;;;OAKG;IACG,WAAW,CACf,QAAQ,EAAE,QAAQ,EAClB,MAAM,EAAE,MAAM,GACb,OAAO,CAAC,SAAS,CAAC;IAOrB,mDAAmD;IAC7C,IAAI,CAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAI9E,0DAA0D;IACpD,KAAK,IAAI,OAAO,CAAC,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAKtD,QAAQ,IAAI,MAAM;CAInB"}
@@ -0,0 +1,125 @@
1
+ /**
2
+ * Session — the first-class handle for multi-turn agent conversations.
3
+ *
4
+ * @example
5
+ * ```ts
6
+ * const client = await Meerkat.connect();
7
+ * const session = await client.createSession("Summarise this repo");
8
+ * console.log(session.text);
9
+ *
10
+ * // Multi-turn
11
+ * const result = await session.turn("Now list the open issues");
12
+ *
13
+ * // Streaming
14
+ * for await (const event of session.stream("Explain the CI pipeline")) {
15
+ * if (event.type === "text_delta") {
16
+ * process.stdout.write(event.delta);
17
+ * }
18
+ * }
19
+ * ```
20
+ */
21
+ export class Session {
22
+ /** @internal */
23
+ _lastResult;
24
+ _client;
25
+ _id;
26
+ _ref;
27
+ /** @internal — constructed by MeerkatClient, not directly. */
28
+ constructor(client, result) {
29
+ this._client = client;
30
+ this._id = result.sessionId;
31
+ this._ref = result.sessionRef;
32
+ this._lastResult = result;
33
+ }
34
+ // -- Identity -----------------------------------------------------------
35
+ /** The stable UUID for this session. */
36
+ get id() {
37
+ return this._id;
38
+ }
39
+ /** Optional human-readable session reference. */
40
+ get ref() {
41
+ return this._ref;
42
+ }
43
+ // -- Last result shortcuts ----------------------------------------------
44
+ /** The most recent {@link RunResult}. */
45
+ get lastResult() {
46
+ return this._lastResult;
47
+ }
48
+ /** The assistant's text from the last turn. */
49
+ get text() {
50
+ return this._lastResult.text;
51
+ }
52
+ /** Token usage from the last turn. */
53
+ get usage() {
54
+ return this._lastResult.usage;
55
+ }
56
+ /** Number of LLM turns in the last run. */
57
+ get turns() {
58
+ return this._lastResult.turns;
59
+ }
60
+ /** Number of tool calls in the last run. */
61
+ get toolCalls() {
62
+ return this._lastResult.toolCalls;
63
+ }
64
+ /** Structured output from the last run, if requested. */
65
+ get structuredOutput() {
66
+ return this._lastResult.structuredOutput;
67
+ }
68
+ // -- Multi-turn ---------------------------------------------------------
69
+ /** Run another turn on this session (non-streaming). */
70
+ async turn(prompt, options) {
71
+ const result = await this._client._startTurn(this._id, prompt, options);
72
+ this._lastResult = result;
73
+ return result;
74
+ }
75
+ /**
76
+ * Run another turn on this session with streaming events.
77
+ *
78
+ * Returns an {@link EventStream} `AsyncIterable<AgentEvent>`.
79
+ *
80
+ * @example
81
+ * ```ts
82
+ * for await (const event of session.stream("prompt")) {
83
+ * // ...
84
+ * }
85
+ * ```
86
+ */
87
+ stream(prompt, options) {
88
+ return this._client._startTurnStreaming(this._id, prompt, options, this);
89
+ }
90
+ // -- Lifecycle ----------------------------------------------------------
91
+ /** Cancel the currently running turn, if any. */
92
+ async interrupt() {
93
+ await this._client._interrupt(this._id);
94
+ }
95
+ /** Archive (remove) this session from the server. */
96
+ async archive() {
97
+ await this._client._archive(this._id);
98
+ }
99
+ // -- Skills convenience -------------------------------------------------
100
+ /**
101
+ * Invoke a skill in this session.
102
+ *
103
+ * Accepts a {@link SkillKey} or a legacy string reference.
104
+ * Sends the structured `skill_refs` parameter to the runtime.
105
+ */
106
+ async invokeSkill(skillRef, prompt) {
107
+ this._client.requireCapability("skills");
108
+ return this.turn(prompt, { skillRefs: [skillRef] });
109
+ }
110
+ // -- Comms convenience --------------------------------------------------
111
+ /** Send a comms command scoped to this session. */
112
+ async send(command) {
113
+ return this._client._send(this._id, command);
114
+ }
115
+ /** List peers visible to this session's comms runtime. */
116
+ async peers() {
117
+ const result = await this._client._peers(this._id);
118
+ return (result.peers ?? []);
119
+ }
120
+ toString() {
121
+ const ref = this._ref ? ` ref=${this._ref}` : "";
122
+ return `Session(id=${this._id}${ref})`;
123
+ }
124
+ }
125
+ //# sourceMappingURL=session.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
@@ -1,26 +1,64 @@
1
1
  /**
2
- * Async event stream over JSON-RPC notifications from rkat-rpc.
3
- */
4
- import type { Interface as ReadlineInterface } from "node:readline";
5
- import type { WireEvent } from "./generated/types.js";
6
- /**
7
- * Async iterator that yields WireEvent objects from JSON-RPC notifications.
2
+ * Streaming API for the Meerkat TypeScript SDK.
8
3
  *
9
- * Skips response messages (which have an `id` field) and only yields
10
- * notification payloads parsed as WireEvent.
4
+ * {@link EventStream} is an `AsyncIterable<StreamEvent>` that yields typed
5
+ * events from a running turn, with access to the final {@link RunResult}
6
+ * after iteration.
11
7
  *
12
8
  * @example
13
9
  * ```ts
14
- * for await (const event of new EventStream(readline)) {
15
- * console.log(event.session_id, event.event);
10
+ * for await (const event of session.stream("prompt")) {
11
+ * if (event.type === "text_delta") {
12
+ * process.stdout.write(event.delta);
13
+ * }
16
14
  * }
15
+ * console.log(stream.result.usage.inputTokens);
17
16
  * ```
18
17
  */
19
- export declare class EventStream implements AsyncIterable<WireEvent> {
18
+ import type { StreamEvent } from "./events.js";
19
+ import type { RunResult } from "./types.js";
20
+ import type { Session } from "./session.js";
21
+ /** @internal Queue with promise-based get(). */
22
+ declare class AsyncQueue<T> {
20
23
  private buffer;
21
24
  private waiters;
22
- private closed;
23
- constructor(rl: ReadlineInterface);
24
- [Symbol.asyncIterator](): AsyncIterator<WireEvent>;
25
+ put(item: T): void;
26
+ get(): Promise<T>;
27
+ tryGet(): T | undefined;
28
+ get isEmpty(): boolean;
29
+ failAll(error: Error): void;
30
+ }
31
+ /**
32
+ * Typed async iterable of {@link StreamEvent} objects from a running turn.
33
+ *
34
+ * After iteration completes, the {@link result} getter returns the final
35
+ * {@link RunResult}.
36
+ */
37
+ export declare class EventStream implements AsyncIterable<StreamEvent> {
38
+ /** @internal */ _sessionId: string;
39
+ private readonly _eventQueue;
40
+ private readonly _responsePromise;
41
+ private readonly _parseResult;
42
+ private _result;
43
+ private readonly _session;
44
+ /** @internal — constructed by MeerkatClient, not directly. */
45
+ constructor(opts: {
46
+ sessionId: string;
47
+ eventQueue: AsyncQueue<Record<string, unknown> | null>;
48
+ responsePromise: Promise<Record<string, unknown>>;
49
+ parseResult: (raw: Record<string, unknown>) => RunResult;
50
+ session?: Session;
51
+ });
52
+ /** The session ID for this turn. */
53
+ get sessionId(): string;
54
+ /** The final {@link RunResult}. Available after iteration completes. */
55
+ get result(): RunResult;
56
+ [Symbol.asyncIterator](): AsyncGenerator<StreamEvent, void, undefined>;
57
+ /** Consume all events silently and return the final result. */
58
+ collect(): Promise<RunResult>;
59
+ /** Consume events, accumulate text deltas, return `[fullText, result]`. */
60
+ collectText(): Promise<[string, RunResult]>;
61
+ private _finalise;
25
62
  }
63
+ export { AsyncQueue };
26
64
  //# sourceMappingURL=streaming.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../src/streaming.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,SAAS,IAAI,iBAAiB,EAAE,MAAM,eAAe,CAAC;AACpE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AAEtD;;;;;;;;;;;;GAYG;AACH,qBAAa,WAAY,YAAW,aAAa,CAAC,SAAS,CAAC;IAC1D,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,OAAO,CAAyD;IACxE,OAAO,CAAC,MAAM,CAAS;gBAEX,EAAE,EAAE,iBAAiB;IAoCjC,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,aAAa,CAAC,SAAS,CAAC;CAqBnD"}
1
+ {"version":3,"file":"streaming.d.ts","sourceRoot":"","sources":["../src/streaming.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAEH,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AAC5C,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAG5C,gDAAgD;AAChD,cAAM,UAAU,CAAC,CAAC;IAChB,OAAO,CAAC,MAAM,CAAW;IACzB,OAAO,CAAC,OAAO,CAAiC;IAEhD,GAAG,CAAC,IAAI,EAAE,CAAC,GAAG,IAAI;IAQlB,GAAG,IAAI,OAAO,CAAC,CAAC,CAAC;IASjB,MAAM,IAAI,CAAC,GAAG,SAAS;IAIvB,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,IAAI;CAQ5B;AAKD;;;;;GAKG;AACH,qBAAa,WAAY,YAAW,aAAa,CAAC,WAAW,CAAC;IAC5D,gBAAgB,CAAC,UAAU,EAAE,MAAM,CAAC;IACpC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAA6C;IACzE,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmC;IACpE,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA8C;IAC3E,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAiB;IAE1C,8DAA8D;gBAClD,IAAI,EAAE;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,UAAU,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC,CAAC;QACvD,eAAe,EAAE,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;QAClD,WAAW,EAAE,CAAC,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,SAAS,CAAC;QACzD,OAAO,CAAC,EAAE,OAAO,CAAC;KACnB;IAQD,oCAAoC;IACpC,IAAI,SAAS,IAAI,MAAM,CAEtB;IAED,wEAAwE;IACxE,IAAI,MAAM,IAAI,SAAS,CAQtB;IAEM,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,cAAc,CAAC,WAAW,EAAE,IAAI,EAAE,SAAS,CAAC;IA0C7E,+DAA+D;IACzD,OAAO,IAAI,OAAO,CAAC,SAAS,CAAC;IAOnC,2EAA2E;IACrE,WAAW,IAAI,OAAO,CAAC,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;IAUjD,OAAO,CAAC,SAAS;CASlB;AAGD,OAAO,EAAE,UAAU,EAAE,CAAC"}
package/dist/streaming.js CHANGED
@@ -1,78 +1,156 @@
1
1
  /**
2
- * Async event stream over JSON-RPC notifications from rkat-rpc.
3
- */
4
- /**
5
- * Async iterator that yields WireEvent objects from JSON-RPC notifications.
2
+ * Streaming API for the Meerkat TypeScript SDK.
6
3
  *
7
- * Skips response messages (which have an `id` field) and only yields
8
- * notification payloads parsed as WireEvent.
4
+ * {@link EventStream} is an `AsyncIterable<StreamEvent>` that yields typed
5
+ * events from a running turn, with access to the final {@link RunResult}
6
+ * after iteration.
9
7
  *
10
8
  * @example
11
9
  * ```ts
12
- * for await (const event of new EventStream(readline)) {
13
- * console.log(event.session_id, event.event);
10
+ * for await (const event of session.stream("prompt")) {
11
+ * if (event.type === "text_delta") {
12
+ * process.stdout.write(event.delta);
13
+ * }
14
14
  * }
15
+ * console.log(stream.result.usage.inputTokens);
15
16
  * ```
16
17
  */
17
- export class EventStream {
18
+ import { isTextDelta, parseEvent } from "./events.js";
19
+ import { MeerkatError } from "./generated/errors.js";
20
+ /** @internal Queue with promise-based get(). */
21
+ class AsyncQueue {
18
22
  buffer = [];
19
23
  waiters = [];
20
- closed = false;
21
- constructor(rl) {
22
- rl.on("line", (line) => {
23
- try {
24
- const data = JSON.parse(line);
25
- // Skip responses (they have an "id" field)
26
- if ("id" in data)
27
- return;
28
- const params = (data.params ?? {});
29
- const event = {
30
- session_id: String(params.session_id ?? ""),
31
- sequence: Number(params.sequence ?? 0),
32
- event: (params.event ?? {}),
33
- contract_version: String(params.contract_version ?? ""),
34
- };
35
- if (this.waiters.length > 0) {
36
- const waiter = this.waiters.shift();
37
- waiter({ value: event, done: false });
38
- }
39
- else {
40
- this.buffer.push(event);
24
+ put(item) {
25
+ if (this.waiters.length > 0) {
26
+ this.waiters.shift()(item);
27
+ }
28
+ else {
29
+ this.buffer.push(item);
30
+ }
31
+ }
32
+ get() {
33
+ if (this.buffer.length > 0) {
34
+ return Promise.resolve(this.buffer.shift());
35
+ }
36
+ return new Promise((resolve) => {
37
+ this.waiters.push(resolve);
38
+ });
39
+ }
40
+ tryGet() {
41
+ return this.buffer.shift();
42
+ }
43
+ get isEmpty() {
44
+ return this.buffer.length === 0;
45
+ }
46
+ failAll(error) {
47
+ // Waiters receive a rejected promise; we wrap by rejecting in the next tick
48
+ for (const waiter of this.waiters) {
49
+ // Use a sentinel; callers handle it
50
+ waiter(undefined);
51
+ }
52
+ this.waiters = [];
53
+ }
54
+ }
55
+ /** Sentinel for end-of-stream. */
56
+ const SENTINEL = Symbol("eos");
57
+ /**
58
+ * Typed async iterable of {@link StreamEvent} objects from a running turn.
59
+ *
60
+ * After iteration completes, the {@link result} getter returns the final
61
+ * {@link RunResult}.
62
+ */
63
+ export class EventStream {
64
+ /** @internal */ _sessionId;
65
+ _eventQueue;
66
+ _responsePromise;
67
+ _parseResult;
68
+ _result = null;
69
+ _session;
70
+ /** @internal — constructed by MeerkatClient, not directly. */
71
+ constructor(opts) {
72
+ this._sessionId = opts.sessionId;
73
+ this._eventQueue = opts.eventQueue;
74
+ this._responsePromise = opts.responsePromise;
75
+ this._parseResult = opts.parseResult;
76
+ this._session = opts.session ?? null;
77
+ }
78
+ /** The session ID for this turn. */
79
+ get sessionId() {
80
+ return this._sessionId;
81
+ }
82
+ /** The final {@link RunResult}. Available after iteration completes. */
83
+ get result() {
84
+ if (this._result === null) {
85
+ throw new MeerkatError("STREAM_NOT_CONSUMED", "Iterate the stream before accessing result");
86
+ }
87
+ return this._result;
88
+ }
89
+ async *[Symbol.asyncIterator]() {
90
+ // Race event queue items against the response promise
91
+ let responseDone = false;
92
+ let responseResult = null;
93
+ const responseHandler = this._responsePromise.then((result) => {
94
+ responseDone = true;
95
+ responseResult = result;
96
+ });
97
+ while (true) {
98
+ if (responseDone) {
99
+ // Drain remaining queued events
100
+ while (!this._eventQueue.isEmpty) {
101
+ const raw = this._eventQueue.tryGet();
102
+ if (raw == null)
103
+ break;
104
+ yield parseEvent(raw);
41
105
  }
106
+ this._finalise(responseResult);
107
+ return;
42
108
  }
43
- catch {
44
- // Ignore non-JSON lines
109
+ // Race: next event vs response
110
+ const eventPromise = this._eventQueue.get();
111
+ const result = await Promise.race([
112
+ eventPromise.then((raw) => ({ kind: "event", raw })),
113
+ responseHandler.then(() => ({ kind: "response", raw: null })),
114
+ ]);
115
+ if (result.kind === "event") {
116
+ if (result.raw == null) {
117
+ // Sentinel — stream ended
118
+ await responseHandler;
119
+ this._finalise(responseResult);
120
+ return;
121
+ }
122
+ yield parseEvent(result.raw);
45
123
  }
46
- });
47
- rl.on("close", () => {
48
- this.closed = true;
49
- // Resolve any pending waiters with done
50
- for (const waiter of this.waiters) {
51
- waiter({ value: undefined, done: true });
124
+ // If response, loop back to the top which handles drain
125
+ }
126
+ }
127
+ /** Consume all events silently and return the final result. */
128
+ async collect() {
129
+ for await (const _ of this) {
130
+ // discard
131
+ }
132
+ return this.result;
133
+ }
134
+ /** Consume events, accumulate text deltas, return `[fullText, result]`. */
135
+ async collectText() {
136
+ const parts = [];
137
+ for await (const event of this) {
138
+ if (isTextDelta(event)) {
139
+ parts.push(event.delta);
52
140
  }
53
- this.waiters = [];
54
- });
141
+ }
142
+ return [parts.join(""), this.result];
55
143
  }
56
- [Symbol.asyncIterator]() {
57
- return {
58
- next: () => {
59
- if (this.buffer.length > 0) {
60
- return Promise.resolve({
61
- value: this.buffer.shift(),
62
- done: false,
63
- });
64
- }
65
- if (this.closed) {
66
- return Promise.resolve({
67
- value: undefined,
68
- done: true,
69
- });
70
- }
71
- return new Promise((resolve) => {
72
- this.waiters.push(resolve);
73
- });
74
- },
75
- };
144
+ _finalise(rawResult) {
145
+ this._result = this._parseResult(rawResult);
146
+ if (!this._sessionId) {
147
+ this._sessionId = this._result.sessionId;
148
+ }
149
+ if (this._session) {
150
+ this._session._lastResult = this._result;
151
+ }
76
152
  }
77
153
  }
154
+ // Re-export AsyncQueue for internal use by client
155
+ export { AsyncQueue };
78
156
  //# sourceMappingURL=streaming.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"streaming.js","sourceRoot":"","sources":["../src/streaming.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH;;;;;;;;;;;;GAYG;AACH,MAAM,OAAO,WAAW;IACd,MAAM,GAAgB,EAAE,CAAC;IACzB,OAAO,GAAsD,EAAE,CAAC;IAChE,MAAM,GAAG,KAAK,CAAC;IAEvB,YAAY,EAAqB;QAC/B,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,CAAC,IAAY,EAAE,EAAE;YAC7B,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBAC9B,2CAA2C;gBAC3C,IAAI,IAAI,IAAI,IAAI;oBAAE,OAAO;gBAEzB,MAAM,MAAM,GAAG,CAAC,IAAI,CAAC,MAAM,IAAI,EAAE,CAA4B,CAAC;gBAC9D,MAAM,KAAK,GAAc;oBACvB,UAAU,EAAE,MAAM,CAAC,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;oBAC3C,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,QAAQ,IAAI,CAAC,CAAC;oBACtC,KAAK,EAAE,CAAC,MAAM,CAAC,KAAK,IAAI,EAAE,CAA4B;oBACtD,gBAAgB,EAAE,MAAM,CAAC,MAAM,CAAC,gBAAgB,IAAI,EAAE,CAAC;iBACxD,CAAC;gBAEF,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC5B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,EAAG,CAAC;oBACrC,MAAM,CAAC,EAAE,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAC;gBACxC,CAAC;qBAAM,CAAC;oBACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;gBAC1B,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,wBAAwB;YAC1B,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,EAAE,CAAC,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;YAClB,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;YACnB,wCAAwC;YACxC,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBAClC,MAAM,CAAC,EAAE,KAAK,EAAE,SAAiC,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC;YACnE,CAAC;YACD,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;QACpB,CAAC,CAAC,CAAC;IACL,CAAC;IAED,CAAC,MAAM,CAAC,aAAa,CAAC;QACpB,OAAO;YACL,IAAI,EAAE,GAAuC,EAAE;gBAC7C,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;oBAC3B,OAAO,OAAO,CAAC,OAAO,CAAC;wBACrB,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAG;wBAC3B,IAAI,EAAE,KAAK;qBACZ,CAAC,CAAC;gBACL,CAAC;gBACD,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;oBAChB,OAAO,OAAO,CAAC,OAAO,CAAC;wBACrB,KAAK,EAAE,SAAiC;wBACxC,IAAI,EAAE,IAAI;qBACX,CAAC,CAAC;gBACL,CAAC;gBACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;oBAC7B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBAC7B,CAAC,CAAC,CAAC;YACL,CAAC;SACF,CAAC;IACJ,CAAC;CACF"}
1
+ {"version":3,"file":"streaming.js","sourceRoot":"","sources":["../src/streaming.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAGH,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAGtD,OAAO,EAAE,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAErD,gDAAgD;AAChD,MAAM,UAAU;IACN,MAAM,GAAQ,EAAE,CAAC;IACjB,OAAO,GAA8B,EAAE,CAAC;IAEhD,GAAG,CAAC,IAAO;QACT,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO,CAAC,KAAK,EAAG,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,GAAG;QACD,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC3B,OAAO,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,KAAK,EAAG,CAAC,CAAC;QAC/C,CAAC;QACD,OAAO,IAAI,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC7B,IAAI,CAAC,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAC7B,CAAC,CAAC,CAAC;IACL,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC;IAC7B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,CAAC,CAAC;IAClC,CAAC;IAED,OAAO,CAAC,KAAY;QAClB,4EAA4E;QAC5E,KAAK,MAAM,MAAM,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YAClC,oCAAoC;YACpC,MAAM,CAAC,SAAyB,CAAC,CAAC;QACpC,CAAC;QACD,IAAI,CAAC,OAAO,GAAG,EAAE,CAAC;IACpB,CAAC;CACF;AAED,kCAAkC;AAClC,MAAM,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;AAE/B;;;;;GAKG;AACH,MAAM,OAAO,WAAW;IACtB,gBAAgB,CAAC,UAAU,CAAS;IACnB,WAAW,CAA6C;IACxD,gBAAgB,CAAmC;IACnD,YAAY,CAA8C;IACnE,OAAO,GAAqB,IAAI,CAAC;IACxB,QAAQ,CAAiB;IAE1C,8DAA8D;IAC9D,YAAY,IAMX;QACC,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,CAAC,gBAAgB,GAAG,IAAI,CAAC,eAAe,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC;QACrC,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC;IACvC,CAAC;IAED,oCAAoC;IACpC,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,CAAC;IACzB,CAAC;IAED,wEAAwE;IACxE,IAAI,MAAM;QACR,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAC1B,MAAM,IAAI,YAAY,CACpB,qBAAqB,EACrB,4CAA4C,CAC7C,CAAC;QACJ,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC;QAC3B,sDAAsD;QACtD,IAAI,YAAY,GAAG,KAAK,CAAC;QACzB,IAAI,cAAc,GAAmC,IAAI,CAAC;QAE1D,MAAM,eAAe,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE;YAC5D,YAAY,GAAG,IAAI,CAAC;YACpB,cAAc,GAAG,MAAM,CAAC;QAC1B,CAAC,CAAC,CAAC;QAEH,OAAO,IAAI,EAAE,CAAC;YACZ,IAAI,YAAY,EAAE,CAAC;gBACjB,gCAAgC;gBAChC,OAAO,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;oBACjC,MAAM,GAAG,GAAG,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC;oBACtC,IAAI,GAAG,IAAI,IAAI;wBAAE,MAAM;oBACvB,MAAM,UAAU,CAAC,GAAG,CAAC,CAAC;gBACxB,CAAC;gBACD,IAAI,CAAC,SAAS,CAAC,cAAe,CAAC,CAAC;gBAChC,OAAO;YACT,CAAC;YAED,+BAA+B;YAC/B,MAAM,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC,GAAG,EAAE,CAAC;YAC5C,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;gBAChC,YAAY,CAAC,IAAI,CAAC,CAAC,GAAG,EAAE,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,OAAgB,EAAE,GAAG,EAAE,CAAC,CAAC;gBAC7D,eAAe,CAAC,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,UAAmB,EAAE,GAAG,EAAE,IAAI,EAAE,CAAC,CAAC;aACvE,CAAC,CAAC;YAEH,IAAI,MAAM,CAAC,IAAI,KAAK,OAAO,EAAE,CAAC;gBAC5B,IAAI,MAAM,CAAC,GAAG,IAAI,IAAI,EAAE,CAAC;oBACvB,0BAA0B;oBAC1B,MAAM,eAAe,CAAC;oBACtB,IAAI,CAAC,SAAS,CAAC,cAAe,CAAC,CAAC;oBAChC,OAAO;gBACT,CAAC;gBACD,MAAM,UAAU,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC;YAC/B,CAAC;YACD,wDAAwD;QAC1D,CAAC;IACH,CAAC;IAED,+DAA+D;IAC/D,KAAK,CAAC,OAAO;QACX,IAAI,KAAK,EAAE,MAAM,CAAC,IAAI,IAAI,EAAE,CAAC;YAC3B,UAAU;QACZ,CAAC;QACD,OAAO,IAAI,CAAC,MAAM,CAAC;IACrB,CAAC;IAED,2EAA2E;IAC3E,KAAK,CAAC,WAAW;QACf,MAAM,KAAK,GAAa,EAAE,CAAC;QAC3B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,EAAE,CAAC;YAC/B,IAAI,WAAW,CAAC,KAAK,CAAC,EAAE,CAAC;gBACvB,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;IACvC,CAAC;IAEO,SAAS,CAAC,SAAkC;QAClD,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,CAAC;QAC5C,IAAI,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;YACrB,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC;QAC3C,CAAC;QACD,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAClB,IAAI,CAAC,QAAQ,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC;QAC3C,CAAC;IACH,CAAC;CACF;AAED,kDAAkD;AAClD,OAAO,EAAE,UAAU,EAAE,CAAC"}
@@ -0,0 +1,96 @@
1
+ /**
2
+ * Public domain types for the Meerkat TypeScript SDK.
3
+ *
4
+ * These replace the `Wire*` prefixed generated types. All fields use
5
+ * idiomatic camelCase.
6
+ */
7
+ import type { Usage } from "./events.js";
8
+ export type { Usage } from "./events.js";
9
+ /** Warning emitted when structured output doesn't match a provider's schema. */
10
+ export interface SchemaWarning {
11
+ readonly provider: string;
12
+ readonly path: string;
13
+ readonly message: string;
14
+ }
15
+ /** Runtime health snapshot for skill source resolution. */
16
+ export interface SourceHealthSnapshot {
17
+ readonly state: string;
18
+ readonly invalidRatio: number;
19
+ readonly invalidCount: number;
20
+ readonly totalCount: number;
21
+ readonly failureStreak: number;
22
+ readonly handshakeFailed: boolean;
23
+ }
24
+ /** Diagnostic details for a single quarantined skill entry. */
25
+ export interface SkillQuarantineDiagnostic {
26
+ readonly sourceUuid: string;
27
+ readonly skillId: string;
28
+ readonly location: string;
29
+ readonly errorCode: string;
30
+ readonly errorClass: string;
31
+ readonly message: string;
32
+ readonly firstSeenUnixSecs: number;
33
+ readonly lastSeenUnixSecs: number;
34
+ }
35
+ /** Runtime diagnostics emitted by the Rust skill subsystem. */
36
+ export interface SkillRuntimeDiagnostics {
37
+ readonly sourceHealth: SourceHealthSnapshot;
38
+ readonly quarantined: readonly SkillQuarantineDiagnostic[];
39
+ }
40
+ /** Structured skill identifier (source UUID + skill name). */
41
+ export interface SkillKey {
42
+ readonly sourceUuid: string;
43
+ readonly skillName: string;
44
+ }
45
+ /** A skill reference — either a {@link SkillKey} or a legacy string. */
46
+ export type SkillRef = SkillKey | string;
47
+ /** Result of an agent session creation or turn. */
48
+ export interface RunResult {
49
+ readonly sessionId: string;
50
+ readonly sessionRef?: string;
51
+ readonly text: string;
52
+ readonly turns: number;
53
+ readonly toolCalls: number;
54
+ readonly usage: Usage;
55
+ readonly structuredOutput?: unknown;
56
+ readonly schemaWarnings?: readonly SchemaWarning[];
57
+ readonly skillDiagnostics?: SkillRuntimeDiagnostics;
58
+ }
59
+ /** Summary of an active session. */
60
+ export interface SessionInfo {
61
+ readonly sessionId: string;
62
+ readonly sessionRef?: string;
63
+ readonly createdAt: string;
64
+ readonly updatedAt: string;
65
+ readonly messageCount: number;
66
+ readonly totalTokens: number;
67
+ readonly isActive: boolean;
68
+ }
69
+ /** A runtime capability and its availability status. */
70
+ export interface Capability {
71
+ readonly id: string;
72
+ readonly description: string;
73
+ readonly status: string;
74
+ }
75
+ /** Options for creating a new session. */
76
+ export interface SessionOptions {
77
+ model?: string;
78
+ provider?: string;
79
+ systemPrompt?: string;
80
+ maxTokens?: number;
81
+ outputSchema?: Record<string, unknown>;
82
+ structuredOutputRetries?: number;
83
+ hooksOverride?: Record<string, unknown>;
84
+ enableBuiltins?: boolean;
85
+ enableShell?: boolean;
86
+ enableSubagents?: boolean;
87
+ enableMemory?: boolean;
88
+ hostMode?: boolean;
89
+ commsName?: string;
90
+ peerMeta?: Record<string, unknown>;
91
+ providerParams?: Record<string, unknown>;
92
+ preloadSkills?: string[];
93
+ skillRefs?: SkillRef[];
94
+ skillReferences?: string[];
95
+ }
96
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}