@minpeter/pss-runtime 0.0.1 → 0.0.2

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
@@ -17,3 +17,101 @@ The runtime does not read environment variables or create a default provider.
17
17
  Pass a caller-owned `LanguageModel` through `model`, or pass a custom `llm`.
18
18
  Product tools are intentionally not included; pass tools from a separate package
19
19
  when constructing an `Agent`.
20
+
21
+ ## Session history
22
+
23
+ Use `history` when the caller already owns the stored model-message history and
24
+ needs a new `AgentSession` to continue from that state. This is the best fit for
25
+ stateless request handlers, background jobs, and tests that persist history
26
+ outside the runtime.
27
+
28
+ ```ts
29
+ import { type AgentMessage } from "@minpeter/pss-runtime";
30
+
31
+ const history: AgentMessage[] = [
32
+ { role: "user", content: "Hello!" },
33
+ { role: "assistant", content: "Hi! How can I help you today?" },
34
+ ];
35
+
36
+ const session = agent.createSession({ history });
37
+
38
+ const currentHistory: AgentMessage[] = session.getHistory();
39
+ ```
40
+
41
+ `getHistory()` returns a cloned snapshot, so callers can persist or inspect it
42
+ without mutating the session.
43
+
44
+ ### Reactive storage synchronization
45
+
46
+ Use `onHistoryChange` when the host should persist every history mutation as the
47
+ turn runs. Calls are serialized, receive the mutation-time snapshot, and are
48
+ awaited before `submit()` resolves, rejects, or advances to the next queued
49
+ turn. If persistence fails, the turn rolls back in-memory history and surfaces a
50
+ `turn-error`.
51
+
52
+ This is the best fit for stateful serverless hosts such as Cloudflare Durable
53
+ Objects, where a long-lived session mirrors history into Durable Object Storage,
54
+ SQLite, or another caller-owned store.
55
+
56
+ ```ts
57
+ import { Agent, type AgentMessage, type AgentSession } from "@minpeter/pss-runtime";
58
+
59
+ export class AgentDurableObject {
60
+ private agent: Agent;
61
+ private session: AgentSession | null = null;
62
+ private storage: DurableObjectStorage;
63
+
64
+ constructor(state: DurableObjectState) {
65
+ this.storage = state.storage;
66
+ this.agent = new Agent({
67
+ instructions: "You are a helpful assistant.",
68
+ model: yourLanguageModel,
69
+ });
70
+ }
71
+
72
+ async fetch(request: Request) {
73
+ if (!this.session) {
74
+ const history =
75
+ (await this.storage.get<AgentMessage[]>("history")) ?? [];
76
+
77
+ this.session = this.agent.createSession({
78
+ history,
79
+ onHistoryChange: async (nextHistory) => {
80
+ await this.storage.put("history", nextHistory);
81
+ },
82
+ });
83
+ }
84
+
85
+ // Process the incoming request (e.g. submit user text and stream back events).
86
+ // ...
87
+ }
88
+ }
89
+ ```
90
+
91
+ ### Safe event subscriptions
92
+
93
+ When subscribing to session events, unsubscribe in a `finally` block to prevent
94
+ listener leaks in persistent environments or multi-turn execution loops.
95
+
96
+ ```ts
97
+ const session = agent.createSession();
98
+
99
+ // Subscribe to events and get the unsubscribe function
100
+ const unsubscribe = session.subscribe((event) => {
101
+ switch (event.type) {
102
+ case "assistant-text":
103
+ process.stdout.write(event.text);
104
+ break;
105
+ case "tool-call":
106
+ console.log(`\nCalling tool: ${event.name}`);
107
+ break;
108
+ }
109
+ });
110
+
111
+ try {
112
+ await session.submit({ type: "user-text", text: "What's the weather today?" });
113
+ } finally {
114
+ // Always clean up to prevent memory/listener leaks!
115
+ unsubscribe();
116
+ }
117
+ ```
package/dist/agent.d.ts CHANGED
@@ -1,6 +1,6 @@
1
1
  import type { LanguageModel } from "ai";
2
2
  import { type AgentTools, type Llm } from "./llm";
3
- import { AgentSession } from "./session/session";
3
+ import { AgentSession, type SessionOptions } from "./session/session";
4
4
  interface AgentModelOptions {
5
5
  instructions?: string;
6
6
  llm?: never;
@@ -17,7 +17,7 @@ export type AgentOptions = AgentModelOptions | AgentLlmOptions;
17
17
  export declare class Agent {
18
18
  #private;
19
19
  constructor(options: AgentOptions);
20
- createSession(): AgentSession;
20
+ createSession(options?: SessionOptions): AgentSession;
21
21
  }
22
22
  export {};
23
23
  //# 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,aAAa,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,EAAE,KAAK,UAAU,EAAa,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,UAAU,iBAAiB;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB;AAED,UAAU,eAAe;IACvB,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,GAAG,EAAE,GAAG,CAAC;IACT,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,MAAM,MAAM,YAAY,GAAG,iBAAiB,GAAG,eAAe,CAAC;AAE/D,qBAAa,KAAK;;gBAGJ,OAAO,EAAE,YAAY;IAYjC,aAAa,IAAI,YAAY;CAG9B"}
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,IAAI,CAAC;AACxC,OAAO,EAAE,KAAK,UAAU,EAAa,KAAK,GAAG,EAAE,MAAM,OAAO,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,KAAK,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAEtE,UAAU,iBAAiB;IACzB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,GAAG,CAAC,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB;AAED,UAAU,eAAe;IACvB,YAAY,CAAC,EAAE,KAAK,CAAC;IACrB,GAAG,EAAE,GAAG,CAAC;IACT,KAAK,CAAC,EAAE,KAAK,CAAC;IACd,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,MAAM,MAAM,YAAY,GAAG,iBAAiB,GAAG,eAAe,CAAC;AAE/D,qBAAa,KAAK;;gBAGJ,OAAO,EAAE,YAAY;IAYjC,aAAa,CAAC,OAAO,CAAC,EAAE,cAAc,GAAG,YAAY;CAGtD"}
package/dist/agent.js CHANGED
@@ -12,8 +12,8 @@ export class Agent {
12
12
  tools: options.tools,
13
13
  });
14
14
  }
15
- createSession() {
16
- return new AgentSession(this.#llm);
15
+ createSession(options) {
16
+ return new AgentSession(this.#llm, options);
17
17
  }
18
18
  }
19
19
  function assertAgentOptions(options) {
package/dist/agent.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,SAAS,EAAY,MAAM,OAAO,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAkBjD,MAAM,OAAO,KAAK;IACP,IAAI,CAAM;IAEnB,YAAY,OAAqB;QAC/B,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAE5B,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC;YAC/B,CAAC,CAAC,OAAO,CAAC,GAAG;YACb,CAAC,CAAC,SAAS,CAAC;gBACR,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,KAAK,EAAE,OAAO,CAAC,KAAK;aACrB,CAAC,CAAC;IACT,CAAC;IAED,aAAa;QACX,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrC,CAAC;CACF;AAED,SAAS,kBAAkB,CAAC,OAAgB;IAC1C,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QACpD,MAAM,IAAI,SAAS,CACjB,kEAAkE,CACnE,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,QAAQ,GACZ,OAAO,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC;IAE9E,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;QACvB,MAAM,IAAI,SAAS,CACjB,2EAA2E,CAC5E,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7D,MAAM,IAAI,SAAS,CAAC,yCAAyC,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,SAAS,CAAC,2CAA2C,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,OAAe;IACnC,OAAO,KAAK,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,UAAU,CAAC;AAC/D,CAAC"}
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../src/agent.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,SAAS,EAAY,MAAM,OAAO,CAAC;AAC7D,OAAO,EAAE,YAAY,EAAuB,MAAM,mBAAmB,CAAC;AAkBtE,MAAM,OAAO,KAAK;IACP,IAAI,CAAM;IAEnB,YAAY,OAAqB;QAC/B,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAE5B,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC,OAAO,CAAC;YAC/B,CAAC,CAAC,OAAO,CAAC,GAAG;YACb,CAAC,CAAC,SAAS,CAAC;gBACR,YAAY,EAAE,OAAO,CAAC,YAAY;gBAClC,KAAK,EAAE,OAAO,CAAC,KAAK;gBACpB,KAAK,EAAE,OAAO,CAAC,KAAK;aACrB,CAAC,CAAC;IACT,CAAC;IAED,aAAa,CAAC,OAAwB;QACpC,OAAO,IAAI,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC9C,CAAC;CACF;AAED,SAAS,kBAAkB,CAAC,OAAgB;IAC1C,IAAI,OAAO,KAAK,IAAI,IAAI,OAAO,OAAO,KAAK,QAAQ,EAAE,CAAC;QACpD,MAAM,IAAI,SAAS,CACjB,kEAAkE,CACnE,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,YAAY,CAAC,OAAO,CAAC,CAAC;IACrC,MAAM,QAAQ,GACZ,OAAO,IAAI,OAAO,IAAI,OAAO,CAAC,KAAK,KAAK,SAAS,IAAI,OAAO,CAAC,KAAK,KAAK,IAAI,CAAC;IAE9E,IAAI,MAAM,IAAI,QAAQ,EAAE,CAAC;QACvB,MAAM,IAAI,SAAS,CACjB,2EAA2E,CAC5E,CAAC;IACJ,CAAC;IAED,IAAI,KAAK,IAAI,OAAO,IAAI,OAAO,CAAC,GAAG,KAAK,SAAS,IAAI,CAAC,MAAM,EAAE,CAAC;QAC7D,MAAM,IAAI,SAAS,CAAC,yCAAyC,CAAC,CAAC;IACjE,CAAC;IAED,IAAI,CAAC,CAAC,MAAM,IAAI,QAAQ,CAAC,EAAE,CAAC;QAC1B,MAAM,IAAI,SAAS,CAAC,2CAA2C,CAAC,CAAC;IACnE,CAAC;AACH,CAAC;AAED,SAAS,YAAY,CAAC,OAAe;IACnC,OAAO,KAAK,IAAI,OAAO,IAAI,OAAO,OAAO,CAAC,GAAG,KAAK,UAAU,CAAC;AAC/D,CAAC"}
package/dist/index.d.ts CHANGED
@@ -1,7 +1,7 @@
1
1
  export { Agent, type AgentOptions } from "./agent";
2
2
  export { type AgentLoopResult, runAgentLoop } from "./agent-loop";
3
- export type { AgentModel, AgentTool, AgentToolExecute, AgentToolExecutionOptions, AgentTools, LlmOutputPart, RuntimeCreateLlmOptions, RuntimeLlm, RuntimeLlmContext, RuntimeLlmOutput, } from "./llm";
3
+ export type { AgentMessage, AgentModel, AgentTool, AgentToolExecute, AgentToolExecutionOptions, AgentTools, LlmOutputPart, RuntimeCreateLlmOptions, RuntimeLlm, RuntimeLlmContext, RuntimeLlmOutput, } from "./llm";
4
4
  export { createLlm } from "./llm";
5
5
  export type { AgentEvent, AgentEventListener, AssistantReasoning, AssistantText, ToolCall, ToolResult, UserText, } from "./session/events";
6
- export { AgentSession, type SessionInput } from "./session/session";
6
+ export { AgentSession, type SessionInput, type SessionOptions, } from "./session/session";
7
7
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,KAAK,eAAe,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAClE,YAAY,EACV,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,yBAAyB,EACzB,UAAU,EACV,aAAa,EACb,uBAAuB,EACvB,UAAU,EACV,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,YAAY,EACV,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,QAAQ,EACR,UAAU,EACV,QAAQ,GACT,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,KAAK,YAAY,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AACnD,OAAO,EAAE,KAAK,eAAe,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAClE,YAAY,EACV,YAAY,EACZ,UAAU,EACV,SAAS,EACT,gBAAgB,EAChB,yBAAyB,EACzB,UAAU,EACV,aAAa,EACb,uBAAuB,EACvB,UAAU,EACV,iBAAiB,EACjB,gBAAgB,GACjB,MAAM,OAAO,CAAC;AACf,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAClC,YAAY,EACV,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,aAAa,EACb,QAAQ,EACR,UAAU,EACV,QAAQ,GACT,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EACL,YAAY,EACZ,KAAK,YAAY,EACjB,KAAK,cAAc,GACpB,MAAM,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,5 @@
1
1
  export { Agent } from "./agent.js";
2
2
  export { runAgentLoop } from "./agent-loop.js";
3
3
  export { createLlm } from "./llm.js";
4
- export { AgentSession } from "./session/session.js";
4
+ export { AgentSession, } from "./session/session.js";
5
5
  //# 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,OAAO,EAAE,KAAK,EAAqB,MAAM,SAAS,CAAC;AACnD,OAAO,EAAwB,YAAY,EAAE,MAAM,cAAc,CAAC;AAalE,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAUlC,OAAO,EAAE,YAAY,EAAqB,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAqB,MAAM,SAAS,CAAC;AACnD,OAAO,EAAwB,YAAY,EAAE,MAAM,cAAc,CAAC;AAclE,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAUlC,OAAO,EACL,YAAY,GAGb,MAAM,mBAAmB,CAAC"}
package/dist/llm.d.ts CHANGED
@@ -13,6 +13,7 @@ export interface AgentTool {
13
13
  }
14
14
  export type AgentTools = Record<string, AgentTool>;
15
15
  export type AgentModel = LanguageModel;
16
+ export type AgentMessage = ModelMessage;
16
17
  export type LlmOutput = Awaited<ReturnType<typeof generateText>>["responseMessages"];
17
18
  export type LlmOutputPart = LlmOutput[number];
18
19
  export interface LlmContext {
package/dist/llm.d.ts.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["../src/llm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AACtD,OAAO,EAAE,YAAY,EAAgB,MAAM,IAAI,CAAC;AAEhD,MAAM,WAAW,yBAAyB;IACxC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC;AAEvC,MAAM,WAAW,SAAS;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AACnD,MAAM,MAAM,UAAU,GAAG,aAAa,CAAC;AACvC,MAAM,MAAM,SAAS,GAAG,OAAO,CAC7B,UAAU,CAAC,OAAO,YAAY,CAAC,CAChC,CAAC,kBAAkB,CAAC,CAAC;AACtB,MAAM,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AAE9C,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IACjC,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,UAAU,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;AAE9D,MAAM,WAAW,gBAAgB;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,MAAM,uBAAuB,GAAG,gBAAgB,CAAC;AACvD,MAAM,MAAM,UAAU,GAAG,GAAG,CAAC;AAC7B,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC;AAC3C,MAAM,MAAM,gBAAgB,GAAG,SAAS,CAAC;AAEzC,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,YAAY,EACZ,KAAK,GACN,EAAE,gBAAgB,GAAG,GAAG,CAcxB"}
1
+ {"version":3,"file":"llm.d.ts","sourceRoot":"","sources":["../src/llm.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AACtD,OAAO,EAAE,YAAY,EAAgB,MAAM,IAAI,CAAC;AAEhD,MAAM,WAAW,yBAAyB;IACxC,WAAW,CAAC,EAAE,WAAW,CAAC;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,gBAAgB,GAAG,OAAO,CAAC;AAEvC,MAAM,WAAW,SAAS;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,WAAW,EAAE,OAAO,CAAC;IACrB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AACnD,MAAM,MAAM,UAAU,GAAG,aAAa,CAAC;AACvC,MAAM,MAAM,YAAY,GAAG,YAAY,CAAC;AACxC,MAAM,MAAM,SAAS,GAAG,OAAO,CAC7B,UAAU,CAAC,OAAO,YAAY,CAAC,CAChC,CAAC,kBAAkB,CAAC,CAAC;AACtB,MAAM,MAAM,aAAa,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC;AAE9C,MAAM,WAAW,UAAU;IACzB,OAAO,EAAE,SAAS,YAAY,EAAE,CAAC;IACjC,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,MAAM,GAAG,GAAG,CAAC,OAAO,EAAE,UAAU,KAAK,OAAO,CAAC,SAAS,CAAC,CAAC;AAE9D,MAAM,WAAW,gBAAgB;IAC/B,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,aAAa,CAAC;IACrB,KAAK,CAAC,EAAE,UAAU,CAAC;CACpB;AAED,MAAM,MAAM,uBAAuB,GAAG,gBAAgB,CAAC;AACvD,MAAM,MAAM,UAAU,GAAG,GAAG,CAAC;AAC7B,MAAM,MAAM,iBAAiB,GAAG,UAAU,CAAC;AAC3C,MAAM,MAAM,gBAAgB,GAAG,SAAS,CAAC;AAEzC,wBAAgB,SAAS,CAAC,EACxB,KAAK,EACL,YAAY,EACZ,KAAK,GACN,EAAE,gBAAgB,GAAG,GAAG,CAcxB"}
package/dist/llm.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"llm.js","sourceRoot":"","sources":["../src/llm.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAgB,MAAM,IAAI,CAAC;AAyChD,MAAM,UAAU,SAAS,CAAC,EACxB,KAAK,EACL,YAAY,EACZ,KAAK,GACY;IACjB,MAAM,YAAY,GAAG,KAA4B,CAAC;IAElD,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;QACnC,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,YAAY,CAAC;YAC9C,WAAW,EAAE,MAAM;YACnB,YAAY;YACZ,QAAQ,EAAE,CAAC,GAAG,OAAO,CAAC;YACtB,KAAK;YACL,KAAK,EAAE,YAAY;SACpB,CAAC,CAAC;QAEH,OAAO,gBAAgB,CAAC;IAC1B,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"llm.js","sourceRoot":"","sources":["../src/llm.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAgB,MAAM,IAAI,CAAC;AA0ChD,MAAM,UAAU,SAAS,CAAC,EACxB,KAAK,EACL,YAAY,EACZ,KAAK,GACY;IACjB,MAAM,YAAY,GAAG,KAA4B,CAAC;IAElD,OAAO,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,EAAE,EAAE;QACnC,MAAM,EAAE,gBAAgB,EAAE,GAAG,MAAM,YAAY,CAAC;YAC9C,WAAW,EAAE,MAAM;YACnB,YAAY;YACZ,QAAQ,EAAE,CAAC,GAAG,OAAO,CAAC;YACtB,KAAK;YACL,KAAK,EAAE,YAAY;SACpB,CAAC,CAAC;QAEH,OAAO,gBAAgB,CAAC;IAC1B,CAAC,CAAC;AACJ,CAAC"}
@@ -2,8 +2,10 @@ import type { ModelMessage } from "ai";
2
2
  import type { UserText } from "./events";
3
3
  export declare class AgentModelHistory {
4
4
  #private;
5
+ constructor(history?: ModelMessage[], onChange?: (snapshot: ModelMessage[]) => void);
5
6
  modelSnapshot(): ModelMessage[];
6
7
  appendUserInput(input: UserText): void;
7
8
  appendModelMessage(message: ModelMessage): void;
9
+ rollback(snapshot: ModelMessage[]): void;
8
10
  }
9
11
  //# sourceMappingURL=history.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/session/history.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AACvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGzC,qBAAa,iBAAiB;;IAG5B,aAAa,IAAI,YAAY,EAAE;IAI/B,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAItC,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;CAGhD"}
1
+ {"version":3,"file":"history.d.ts","sourceRoot":"","sources":["../../src/session/history.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AACvC,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGzC,qBAAa,iBAAiB;;gBAK1B,OAAO,CAAC,EAAE,YAAY,EAAE,EACxB,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,YAAY,EAAE,KAAK,IAAI;IAQ/C,aAAa,IAAI,YAAY,EAAE;IAI/B,eAAe,CAAC,KAAK,EAAE,QAAQ,GAAG,IAAI;IAKtC,kBAAkB,CAAC,OAAO,EAAE,YAAY,GAAG,IAAI;IAK/C,QAAQ,CAAC,QAAQ,EAAE,YAAY,EAAE,GAAG,IAAI;CASzC"}
@@ -1,14 +1,31 @@
1
1
  import { userTextToModelMessage } from "./mapping.js";
2
2
  export class AgentModelHistory {
3
3
  #modelHistory = [];
4
+ #onChange;
5
+ constructor(history, onChange) {
6
+ if (history) {
7
+ this.#modelHistory = structuredClone(history);
8
+ }
9
+ this.#onChange = onChange;
10
+ }
4
11
  modelSnapshot() {
5
12
  return structuredClone(this.#modelHistory);
6
13
  }
7
14
  appendUserInput(input) {
8
15
  this.#modelHistory.push(userTextToModelMessage(input));
16
+ this.#triggerChange();
9
17
  }
10
18
  appendModelMessage(message) {
11
19
  this.#modelHistory.push(structuredClone(message));
20
+ this.#triggerChange();
21
+ }
22
+ rollback(snapshot) {
23
+ this.#modelHistory.length = 0;
24
+ this.#modelHistory.push(...structuredClone(snapshot));
25
+ this.#triggerChange();
26
+ }
27
+ #triggerChange() {
28
+ this.#onChange?.(this.modelSnapshot());
12
29
  }
13
30
  }
14
31
  //# sourceMappingURL=history.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/session/history.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAEnD,MAAM,OAAO,iBAAiB;IACnB,aAAa,GAAmB,EAAE,CAAC;IAE5C,aAAa;QACX,OAAO,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC7C,CAAC;IAED,eAAe,CAAC,KAAe;QAC7B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;IACzD,CAAC;IAED,kBAAkB,CAAC,OAAqB;QACtC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;IACpD,CAAC;CACF"}
1
+ {"version":3,"file":"history.js","sourceRoot":"","sources":["../../src/session/history.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,sBAAsB,EAAE,MAAM,WAAW,CAAC;AAEnD,MAAM,OAAO,iBAAiB;IACnB,aAAa,GAAmB,EAAE,CAAC;IACnC,SAAS,CAAsC;IAExD,YACE,OAAwB,EACxB,QAA6C;QAE7C,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,aAAa,GAAG,eAAe,CAAC,OAAO,CAAC,CAAC;QAChD,CAAC;QACD,IAAI,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC5B,CAAC;IAED,aAAa;QACX,OAAO,eAAe,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IAC7C,CAAC;IAED,eAAe,CAAC,KAAe;QAC7B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,sBAAsB,CAAC,KAAK,CAAC,CAAC,CAAC;QACvD,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED,kBAAkB,CAAC,OAAqB;QACtC,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC,CAAC;QAClD,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED,QAAQ,CAAC,QAAwB;QAC/B,IAAI,CAAC,aAAa,CAAC,MAAM,GAAG,CAAC,CAAC;QAC9B,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,GAAG,eAAe,CAAC,QAAQ,CAAC,CAAC,CAAC;QACtD,IAAI,CAAC,cAAc,EAAE,CAAC;IACxB,CAAC;IAED,cAAc;QACZ,IAAI,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,aAAa,EAAE,CAAC,CAAC;IACzC,CAAC;CACF"}
@@ -1,9 +1,14 @@
1
- import type { Llm } from "../llm";
1
+ import type { AgentMessage, Llm } from "../llm";
2
2
  import type { AgentEventListener, UserText } from "./events";
3
3
  export type SessionInput = UserText;
4
+ export interface SessionOptions {
5
+ history?: AgentMessage[];
6
+ onHistoryChange?: (history: AgentMessage[]) => void | Promise<void>;
7
+ }
4
8
  export declare class AgentSession {
5
9
  #private;
6
- constructor(llm: Llm);
10
+ constructor(llm: Llm, options?: SessionOptions);
11
+ getHistory(): AgentMessage[];
7
12
  subscribe(listener: AgentEventListener): () => void;
8
13
  submit(input: SessionInput): Promise<void>;
9
14
  interrupt(): void;
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/session/session.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAClC,OAAO,KAAK,EAAc,kBAAkB,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGzE,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC;AAQpC,qBAAa,YAAY;;gBASX,GAAG,EAAE,GAAG;IAIpB,SAAS,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,IAAI;IAKnD,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B1C,SAAS,IAAI,IAAI;IAIjB,IAAI,IAAI,IAAI;CA6Db"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../../src/session/session.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,GAAG,EAAE,MAAM,QAAQ,CAAC;AAChD,OAAO,KAAK,EAAc,kBAAkB,EAAE,QAAQ,EAAE,MAAM,UAAU,CAAC;AAGzE,MAAM,MAAM,YAAY,GAAG,QAAQ,CAAC;AAEpC,MAAM,WAAW,cAAc;IAC7B,OAAO,CAAC,EAAE,YAAY,EAAE,CAAC;IACzB,eAAe,CAAC,EAAE,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CACrE;AAUD,qBAAa,YAAY;;gBAgBX,GAAG,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,cAAc;IAY9C,UAAU,IAAI,YAAY,EAAE;IAI5B,SAAS,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,IAAI;IAKnD,MAAM,CAAC,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B1C,SAAS,IAAI,IAAI;IASjB,IAAI,IAAI,IAAI;CAiQb"}
@@ -3,13 +3,28 @@ import { AgentModelHistory } from "./history.js";
3
3
  export class AgentSession {
4
4
  #listeners = new Set();
5
5
  #llm;
6
- #history = new AgentModelHistory();
6
+ #history;
7
+ #onHistoryChange;
7
8
  #inputQueue = [];
8
9
  #running = false;
9
10
  #activeAbort;
11
+ #killAbort = new AbortController();
12
+ #interruptAbort = new AbortController();
10
13
  #killed = false;
11
- constructor(llm) {
14
+ #historyPromiseChain = Promise.resolve();
15
+ #pendingWrites = new Set();
16
+ #settledWriteErrors = new Set();
17
+ #turnErrorEmitted = false;
18
+ constructor(llm, options) {
12
19
  this.#llm = llm;
20
+ const { history, onHistoryChange } = options ?? {};
21
+ this.#onHistoryChange = onHistoryChange;
22
+ this.#history = new AgentModelHistory(history, onHistoryChange
23
+ ? (snapshot) => this.#enqueueHistoryChange(snapshot, onHistoryChange)
24
+ : undefined);
25
+ }
26
+ getHistory() {
27
+ return this.#history.modelSnapshot();
13
28
  }
14
29
  subscribe(listener) {
15
30
  this.#listeners.add(listener);
@@ -32,18 +47,23 @@ export class AgentSession {
32
47
  });
33
48
  });
34
49
  this.#drainInputQueue().catch((error) => {
35
- this.#emit({ type: "turn-error", message: errorMessage(error) });
50
+ this.#emitTurnError(error);
36
51
  });
37
52
  return queued;
38
53
  }
39
54
  interrupt() {
40
- this.#activeAbort?.abort();
55
+ if (!this.#activeAbort) {
56
+ return;
57
+ }
58
+ this.#activeAbort.abort();
59
+ this.#interruptAbort.abort();
41
60
  }
42
61
  kill() {
43
62
  if (this.#killed) {
44
63
  return;
45
64
  }
46
65
  this.#killed = true;
66
+ this.#killAbort.abort();
47
67
  this.#activeAbort?.abort();
48
68
  while (this.#inputQueue.length > 0) {
49
69
  this.#inputQueue.shift()?.reject(sessionKilledError());
@@ -57,43 +77,198 @@ export class AgentSession {
57
77
  try {
58
78
  while (!this.#killed && this.#inputQueue.length > 0) {
59
79
  const item = this.#inputQueue.shift();
60
- if (!item) {
61
- continue;
62
- }
63
- this.#activeAbort = new AbortController();
64
- try {
65
- this.#emit({ type: "turn-start" });
66
- this.#history.appendUserInput(item.input);
67
- const result = await runAgentLoop({
68
- emit: (event) => this.#emit(event),
69
- history: this.#history,
70
- llm: this.#llm,
71
- signal: this.#activeAbort.signal,
72
- });
73
- this.#emit({
74
- type: result === "aborted" ? "turn-abort" : "turn-end",
75
- });
76
- item.resolve();
77
- }
78
- catch (error) {
79
- this.#emit({ type: "turn-error", message: errorMessage(error) });
80
- item.reject(error);
81
- }
82
- finally {
83
- this.#activeAbort = undefined;
80
+ if (item) {
81
+ await this.#processQueuedInput(item);
84
82
  }
85
83
  }
86
84
  }
87
85
  finally {
88
86
  this.#running = false;
87
+ this.#interruptAbort = new AbortController();
89
88
  }
90
89
  }
90
+ async #processQueuedInput(item) {
91
+ this.#activeAbort = new AbortController();
92
+ const historySnapshot = this.#history.modelSnapshot();
93
+ this.#pendingWrites.clear();
94
+ this.#settledWriteErrors.clear();
95
+ try {
96
+ this.#turnErrorEmitted = false;
97
+ this.#emit({ type: "turn-start" });
98
+ this.#history.appendUserInput(item.input);
99
+ const userHistoryWrite = this.#pendingHistoryWrites({
100
+ unblockOnKill: true,
101
+ unblockOnInterrupt: true,
102
+ });
103
+ if (userHistoryWrite) {
104
+ await userHistoryWrite;
105
+ }
106
+ const result = await runAgentLoop({
107
+ emit: (event) => this.#emit(event),
108
+ history: this.#history,
109
+ llm: this.#llm,
110
+ signal: this.#activeAbort.signal,
111
+ });
112
+ const turnHistoryWrites = this.#pendingHistoryWrites({
113
+ unblockOnKill: true,
114
+ unblockOnInterrupt: true,
115
+ });
116
+ if (turnHistoryWrites) {
117
+ await turnHistoryWrites;
118
+ }
119
+ const interrupted = result === "aborted";
120
+ this.#emit({ type: interrupted ? "turn-abort" : "turn-end" });
121
+ if (interrupted) {
122
+ this.#interruptAbort = new AbortController();
123
+ }
124
+ item.resolve();
125
+ }
126
+ catch (error) {
127
+ if (this.#killed && isSessionKilledError(error)) {
128
+ this.#history.rollback(historySnapshot);
129
+ this.#emit({ type: "turn-abort" });
130
+ item.resolve();
131
+ return;
132
+ }
133
+ if (isSessionInterruptedError(error)) {
134
+ this.#repairHistoryPersistenceAfterInterruptedWait();
135
+ this.#pendingWrites.clear();
136
+ this.#interruptAbort = new AbortController();
137
+ this.#emit({ type: "turn-abort" });
138
+ item.resolve();
139
+ return;
140
+ }
141
+ await this.#rollbackAndRejectInput(item, historySnapshot, error);
142
+ }
143
+ finally {
144
+ this.#pendingWrites.clear();
145
+ this.#activeAbort = undefined;
146
+ }
147
+ }
148
+ async #rollbackAndRejectInput(item, historySnapshot, error) {
149
+ this.#history.rollback(historySnapshot);
150
+ let rejectionError = error;
151
+ try {
152
+ const rollbackHistoryWrite = this.#pendingHistoryWrites({
153
+ unblockOnKill: true,
154
+ });
155
+ if (rollbackHistoryWrite) {
156
+ await rollbackHistoryWrite;
157
+ }
158
+ }
159
+ catch (rollbackOrWriteError) {
160
+ rejectionError = mergeTurnAndPersistenceErrors(error, rollbackOrWriteError);
161
+ }
162
+ this.#emitTurnError(rejectionError);
163
+ item.reject(rejectionError);
164
+ }
165
+ #enqueueHistoryChange(snapshot, onHistoryChange) {
166
+ const writePromise = this.#historyPromiseChain.then(async () => {
167
+ try {
168
+ await onHistoryChange(structuredClone(snapshot));
169
+ }
170
+ catch (error) {
171
+ throw createPersistenceError(error);
172
+ }
173
+ });
174
+ this.#historyPromiseChain = writePromise.catch(() => {
175
+ // Keep later history writes sequenced even if this write fails.
176
+ });
177
+ this.#pendingWrites.add(writePromise);
178
+ writePromise.then(() => this.#pendingWrites.delete(writePromise), (error) => {
179
+ this.#settledWriteErrors.add(error);
180
+ this.#pendingWrites.delete(writePromise);
181
+ });
182
+ }
183
+ #repairHistoryPersistenceAfterInterruptedWait() {
184
+ const onHistoryChange = this.#onHistoryChange;
185
+ if (!onHistoryChange) {
186
+ return;
187
+ }
188
+ const abandonedChain = this.#historyPromiseChain;
189
+ this.#historyPromiseChain = Promise.resolve();
190
+ abandonedChain.then(() => {
191
+ if (this.#killed) {
192
+ return;
193
+ }
194
+ this.#enqueueHistoryChange(this.#history.modelSnapshot(), onHistoryChange);
195
+ });
196
+ }
197
+ async #awaitPendingHistoryWrites(options) {
198
+ const errors = [];
199
+ while (this.#pendingWrites.size > 0) {
200
+ const writes = [...this.#pendingWrites];
201
+ const settledWrites = Promise.allSettled(writes);
202
+ const results = await this.#settleHistoryWrites(settledWrites, options);
203
+ for (const result of results) {
204
+ if (result.status === "rejected") {
205
+ errors.push(result.reason);
206
+ }
207
+ }
208
+ this.#settledWriteErrors.clear();
209
+ }
210
+ if (errors.length > 0) {
211
+ throw combinePersistenceErrors(errors);
212
+ }
213
+ }
214
+ #pendingHistoryWrites(options) {
215
+ if (this.#pendingWrites.size === 0) {
216
+ return;
217
+ }
218
+ return this.#awaitPendingHistoryWrites(options);
219
+ }
220
+ async #settleHistoryWrites(writes, options) {
221
+ if (!(options?.unblockOnKill || options?.unblockOnInterrupt)) {
222
+ return writes;
223
+ }
224
+ let interruptibleWrites = writes;
225
+ if (options.unblockOnKill) {
226
+ interruptibleWrites = rejectOnKill(interruptibleWrites, this.#killAbort.signal);
227
+ }
228
+ if (options.unblockOnInterrupt) {
229
+ interruptibleWrites = rejectOnInterrupt(interruptibleWrites, this.#interruptAbort.signal);
230
+ }
231
+ try {
232
+ return await interruptibleWrites;
233
+ }
234
+ catch (error) {
235
+ if (isSessionKilledError(error) || isSessionInterruptedError(error)) {
236
+ await waitForAbortRaceSettlements();
237
+ if (this.#settledWriteErrors.size > 0) {
238
+ const settledErrors = [...this.#settledWriteErrors];
239
+ this.#settledWriteErrors.clear();
240
+ throw combinePersistenceErrors(settledErrors);
241
+ }
242
+ }
243
+ throw error;
244
+ }
245
+ }
246
+ #emitTurnError(error) {
247
+ if (this.#turnErrorEmitted) {
248
+ return;
249
+ }
250
+ this.#turnErrorEmitted = true;
251
+ this.#emit({ type: "turn-error", message: errorMessage(error) });
252
+ }
91
253
  #emit(event) {
92
254
  for (const listener of this.#listeners) {
93
255
  listener(event);
94
256
  }
95
257
  }
96
258
  }
259
+ function createPersistenceError(error) {
260
+ return new Error(`onHistoryChange failed: ${errorMessage(error)}`);
261
+ }
262
+ function combinePersistenceErrors(errors) {
263
+ if (errors.length === 1) {
264
+ return errors[0];
265
+ }
266
+ const messages = [...new Set(errors.map((error) => errorMessage(error)))];
267
+ return new Error(`Multiple onHistoryChange failures: ${messages.join("; ")}`);
268
+ }
269
+ function mergeTurnAndPersistenceErrors(turnError, persistenceError) {
270
+ return new Error(`${errorMessage(turnError)}; history rollback persistence failed: ${errorMessage(persistenceError)}`);
271
+ }
97
272
  function errorMessage(error) {
98
273
  if (error instanceof Error) {
99
274
  return error.message;
@@ -103,4 +278,55 @@ function errorMessage(error) {
103
278
  function sessionKilledError() {
104
279
  return new Error("Session killed");
105
280
  }
281
+ function isSessionKilledError(error) {
282
+ return error instanceof Error && error.message === "Session killed";
283
+ }
284
+ function sessionInterruptedError() {
285
+ return new Error("Session interrupted");
286
+ }
287
+ function isSessionInterruptedError(error) {
288
+ return error instanceof Error && error.message === "Session interrupted";
289
+ }
290
+ async function waitForAbortRaceSettlements() {
291
+ await new Promise((resolve) => {
292
+ setTimeout(resolve, 0);
293
+ });
294
+ }
295
+ function rejectOnKill(promise, signal) {
296
+ return rejectOnSignal(promise, signal, sessionKilledError);
297
+ }
298
+ function rejectOnInterrupt(promise, signal) {
299
+ return rejectOnSignal(promise, signal, sessionInterruptedError);
300
+ }
301
+ function rejectOnSignal(promise, signal, createError) {
302
+ if (signal.aborted) {
303
+ return new Promise((_, reject) => {
304
+ setTimeout(() => reject(createError()), 0);
305
+ });
306
+ }
307
+ return new Promise((resolve, reject) => {
308
+ let abortTimeout;
309
+ const cleanup = () => {
310
+ signal.removeEventListener("abort", onAbort);
311
+ if (abortTimeout) {
312
+ clearTimeout(abortTimeout);
313
+ }
314
+ };
315
+ const onAbort = () => {
316
+ signal.removeEventListener("abort", onAbort);
317
+ abortTimeout = setTimeout(() => {
318
+ abortTimeout = undefined;
319
+ reject(createError());
320
+ }, 0);
321
+ };
322
+ signal.addEventListener("abort", onAbort, { once: true });
323
+ promise.then((value) => {
324
+ cleanup();
325
+ resolve(value);
326
+ }, (error) => {
327
+ cleanup();
328
+ reject(error);
329
+ });
330
+ });
331
+ }
106
332
  //# sourceMappingURL=session.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/session/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.js","sourceRoot":"","sources":["../../src/session/session.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@minpeter/pss-runtime",
3
- "version": "0.0.1",
3
+ "version": "0.0.2",
4
4
  "description": "Generic agent runtime for sessions, model loops, and event streams.",
5
5
  "type": "module",
6
6
  "main": "./dist/index.js",