@openharness/core 0.3.3 → 0.4.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.
Files changed (99) hide show
  1. package/dist/__tests__/agent-registry.test.d.ts +2 -0
  2. package/dist/__tests__/agent-registry.test.d.ts.map +1 -0
  3. package/dist/__tests__/agent-registry.test.js +429 -0
  4. package/dist/__tests__/agent-registry.test.js.map +1 -0
  5. package/dist/__tests__/conversation.test.d.ts +2 -0
  6. package/dist/__tests__/conversation.test.d.ts.map +1 -0
  7. package/dist/__tests__/conversation.test.js +127 -0
  8. package/dist/__tests__/conversation.test.js.map +1 -0
  9. package/dist/__tests__/messages.test.js +15 -2
  10. package/dist/__tests__/messages.test.js.map +1 -1
  11. package/dist/__tests__/middleware/compaction.test.d.ts +2 -0
  12. package/dist/__tests__/middleware/compaction.test.d.ts.map +1 -0
  13. package/dist/__tests__/middleware/compaction.test.js +163 -0
  14. package/dist/__tests__/middleware/compaction.test.js.map +1 -0
  15. package/dist/__tests__/middleware/hooks.test.d.ts +2 -0
  16. package/dist/__tests__/middleware/hooks.test.d.ts.map +1 -0
  17. package/dist/__tests__/middleware/hooks.test.js +97 -0
  18. package/dist/__tests__/middleware/hooks.test.js.map +1 -0
  19. package/dist/__tests__/middleware/persistence.test.d.ts +2 -0
  20. package/dist/__tests__/middleware/persistence.test.d.ts.map +1 -0
  21. package/dist/__tests__/middleware/persistence.test.js +70 -0
  22. package/dist/__tests__/middleware/persistence.test.js.map +1 -0
  23. package/dist/__tests__/middleware/retry.test.d.ts +2 -0
  24. package/dist/__tests__/middleware/retry.test.d.ts.map +1 -0
  25. package/dist/__tests__/middleware/retry.test.js +151 -0
  26. package/dist/__tests__/middleware/retry.test.js.map +1 -0
  27. package/dist/__tests__/middleware/turn-tracking.test.d.ts +2 -0
  28. package/dist/__tests__/middleware/turn-tracking.test.d.ts.map +1 -0
  29. package/dist/__tests__/middleware/turn-tracking.test.js +70 -0
  30. package/dist/__tests__/middleware/turn-tracking.test.js.map +1 -0
  31. package/dist/__tests__/runner.test.d.ts +2 -0
  32. package/dist/__tests__/runner.test.d.ts.map +1 -0
  33. package/dist/__tests__/runner.test.js +111 -0
  34. package/dist/__tests__/runner.test.js.map +1 -0
  35. package/dist/__tests__/stream.test.d.ts +2 -0
  36. package/dist/__tests__/stream.test.d.ts.map +1 -0
  37. package/dist/__tests__/stream.test.js +100 -0
  38. package/dist/__tests__/stream.test.js.map +1 -0
  39. package/dist/__tests__/ui-stream.test.js +105 -0
  40. package/dist/__tests__/ui-stream.test.js.map +1 -1
  41. package/dist/agent-registry.d.ts +90 -0
  42. package/dist/agent-registry.d.ts.map +1 -0
  43. package/dist/agent-registry.js +217 -0
  44. package/dist/agent-registry.js.map +1 -0
  45. package/dist/agent.d.ts +13 -0
  46. package/dist/agent.d.ts.map +1 -1
  47. package/dist/agent.js +186 -41
  48. package/dist/agent.js.map +1 -1
  49. package/dist/conversation.d.ts +46 -0
  50. package/dist/conversation.d.ts.map +1 -0
  51. package/dist/conversation.js +66 -0
  52. package/dist/conversation.js.map +1 -0
  53. package/dist/index.d.ts +9 -0
  54. package/dist/index.d.ts.map +1 -1
  55. package/dist/index.js +14 -0
  56. package/dist/index.js.map +1 -1
  57. package/dist/middleware/compaction.d.ts +20 -0
  58. package/dist/middleware/compaction.d.ts.map +1 -0
  59. package/dist/middleware/compaction.js +73 -0
  60. package/dist/middleware/compaction.js.map +1 -0
  61. package/dist/middleware/hooks.d.ts +10 -0
  62. package/dist/middleware/hooks.d.ts.map +1 -0
  63. package/dist/middleware/hooks.js +36 -0
  64. package/dist/middleware/hooks.js.map +1 -0
  65. package/dist/middleware/index.d.ts +6 -0
  66. package/dist/middleware/index.d.ts.map +1 -0
  67. package/dist/middleware/index.js +6 -0
  68. package/dist/middleware/index.js.map +1 -0
  69. package/dist/middleware/persistence.d.ts +12 -0
  70. package/dist/middleware/persistence.d.ts.map +1 -0
  71. package/dist/middleware/persistence.js +15 -0
  72. package/dist/middleware/persistence.js.map +1 -0
  73. package/dist/middleware/retry.d.ts +8 -0
  74. package/dist/middleware/retry.d.ts.map +1 -0
  75. package/dist/middleware/retry.js +70 -0
  76. package/dist/middleware/retry.js.map +1 -0
  77. package/dist/middleware/turn-tracking.d.ts +7 -0
  78. package/dist/middleware/turn-tracking.d.ts.map +1 -0
  79. package/dist/middleware/turn-tracking.js +25 -0
  80. package/dist/middleware/turn-tracking.js.map +1 -0
  81. package/dist/runner.d.ts +23 -0
  82. package/dist/runner.d.ts.map +1 -0
  83. package/dist/runner.js +18 -0
  84. package/dist/runner.js.map +1 -0
  85. package/dist/session.d.ts.map +1 -1
  86. package/dist/session.js +7 -40
  87. package/dist/session.js.map +1 -1
  88. package/dist/stream.d.ts +12 -0
  89. package/dist/stream.d.ts.map +1 -0
  90. package/dist/stream.js +38 -0
  91. package/dist/stream.js.map +1 -0
  92. package/dist/ui-stream.d.ts.map +1 -1
  93. package/dist/ui-stream.js +13 -1
  94. package/dist/ui-stream.js.map +1 -1
  95. package/dist/utils.d.ts +8 -0
  96. package/dist/utils.d.ts.map +1 -0
  97. package/dist/utils.js +40 -0
  98. package/dist/utils.js.map +1 -0
  99. package/package.json +1 -1
@@ -0,0 +1,46 @@
1
+ import { type ModelMessage } from "ai";
2
+ import type { Runner } from "./runner.js";
3
+ import type { SessionEvent, SessionStore } from "./session.js";
4
+ export interface ConversationOptions {
5
+ runner: Runner;
6
+ sessionId?: string;
7
+ store?: SessionStore;
8
+ }
9
+ /**
10
+ * Thin stateful wrapper over a composed Runner.
11
+ * Manages `messages` — updates from `done` events.
12
+ * No compaction/retry/hooks/turn logic — those are middleware concerns.
13
+ */
14
+ export declare class Conversation {
15
+ messages: ModelMessage[];
16
+ readonly sessionId: string;
17
+ private runner;
18
+ private store?;
19
+ constructor(options: ConversationOptions);
20
+ /**
21
+ * Send a message through the composed runner pipeline.
22
+ * Updates `this.messages` from `done` events automatically.
23
+ */
24
+ send(input: string | ModelMessage[], options?: {
25
+ signal?: AbortSignal;
26
+ }): AsyncGenerator<SessionEvent>;
27
+ /** Load messages from store. */
28
+ load(): Promise<boolean>;
29
+ /** Save messages to store. */
30
+ save(): Promise<void>;
31
+ /**
32
+ * Convert a send call into an AI SDK 5 UIMessage stream.
33
+ * Reuses the existing sessionEventsToUIStream function.
34
+ */
35
+ toUIMessageStream(input: string | ModelMessage[], options?: {
36
+ signal?: AbortSignal;
37
+ }): ReadableStream;
38
+ /**
39
+ * Convert a send call into an HTTP Response with SSE encoding.
40
+ * Ready to return from any HTTP handler (Next.js, Express, etc.).
41
+ */
42
+ toResponse(input: string | ModelMessage[], init?: ResponseInit & {
43
+ signal?: AbortSignal;
44
+ }): Response;
45
+ }
46
+ //# sourceMappingURL=conversation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation.d.ts","sourceRoot":"","sources":["../src/conversation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiC,KAAK,YAAY,EAAE,MAAM,IAAI,CAAC;AACtE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,KAAK,EAAE,YAAY,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAG/D,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,YAAY,CAAC;CACtB;AAED;;;;GAIG;AACH,qBAAa,YAAY;IACvB,QAAQ,EAAE,YAAY,EAAE,CAAM;IAC9B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;IAE3B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,KAAK,CAAC,CAAe;gBAEjB,OAAO,EAAE,mBAAmB;IAMxC;;;OAGG;IACI,IAAI,CACT,KAAK,EAAE,MAAM,GAAG,YAAY,EAAE,EAC9B,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACjC,cAAc,CAAC,YAAY,CAAC;IAS/B,gCAAgC;IAC1B,IAAI,IAAI,OAAO,CAAC,OAAO,CAAC;IAU9B,8BAA8B;IACxB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAK3B;;;OAGG;IACH,iBAAiB,CACf,KAAK,EAAE,MAAM,GAAG,YAAY,EAAE,EAC9B,OAAO,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GACjC,cAAc;IAIjB;;;OAGG;IACH,UAAU,CACR,KAAK,EAAE,MAAM,GAAG,YAAY,EAAE,EAC9B,IAAI,CAAC,EAAE,YAAY,GAAG;QAAE,MAAM,CAAC,EAAE,WAAW,CAAA;KAAE,GAC7C,QAAQ;CAOZ"}
@@ -0,0 +1,66 @@
1
+ import { createUIMessageStreamResponse } from "ai";
2
+ import { sessionEventsToUIStream } from "./ui-stream.js";
3
+ /**
4
+ * Thin stateful wrapper over a composed Runner.
5
+ * Manages `messages` — updates from `done` events.
6
+ * No compaction/retry/hooks/turn logic — those are middleware concerns.
7
+ */
8
+ export class Conversation {
9
+ messages = [];
10
+ sessionId;
11
+ runner;
12
+ store;
13
+ constructor(options) {
14
+ this.runner = options.runner;
15
+ this.sessionId = options.sessionId ?? crypto.randomUUID();
16
+ this.store = options.store;
17
+ }
18
+ /**
19
+ * Send a message through the composed runner pipeline.
20
+ * Updates `this.messages` from `done` events automatically.
21
+ */
22
+ async *send(input, options) {
23
+ for await (const event of this.runner(this.messages, input, options)) {
24
+ if (event.type === "done") {
25
+ this.messages = event.messages;
26
+ }
27
+ yield event;
28
+ }
29
+ }
30
+ /** Load messages from store. */
31
+ async load() {
32
+ if (!this.store)
33
+ return false;
34
+ const loaded = await this.store.load(this.sessionId);
35
+ if (loaded) {
36
+ this.messages = loaded;
37
+ return true;
38
+ }
39
+ return false;
40
+ }
41
+ /** Save messages to store. */
42
+ async save() {
43
+ if (!this.store)
44
+ return;
45
+ await this.store.save(this.sessionId, this.messages);
46
+ }
47
+ /**
48
+ * Convert a send call into an AI SDK 5 UIMessage stream.
49
+ * Reuses the existing sessionEventsToUIStream function.
50
+ */
51
+ toUIMessageStream(input, options) {
52
+ return sessionEventsToUIStream(this.send(input, options), options);
53
+ }
54
+ /**
55
+ * Convert a send call into an HTTP Response with SSE encoding.
56
+ * Ready to return from any HTTP handler (Next.js, Express, etc.).
57
+ */
58
+ toResponse(input, init) {
59
+ const { signal, ...responseInit } = init ?? {};
60
+ return createUIMessageStreamResponse({
61
+ stream: this.toUIMessageStream(input, { signal }),
62
+ ...responseInit,
63
+ });
64
+ }
65
+ }
66
+ //# sourceMappingURL=conversation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"conversation.js","sourceRoot":"","sources":["../src/conversation.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAqB,MAAM,IAAI,CAAC;AAGtE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAQzD;;;;GAIG;AACH,MAAM,OAAO,YAAY;IACvB,QAAQ,GAAmB,EAAE,CAAC;IACrB,SAAS,CAAS;IAEnB,MAAM,CAAS;IACf,KAAK,CAAgB;IAE7B,YAAY,OAA4B;QACtC,IAAI,CAAC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;QAC7B,IAAI,CAAC,SAAS,GAAG,OAAO,CAAC,SAAS,IAAI,MAAM,CAAC,UAAU,EAAE,CAAC;QAC1D,IAAI,CAAC,KAAK,GAAG,OAAO,CAAC,KAAK,CAAC;IAC7B,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,CAAC,IAAI,CACT,KAA8B,EAC9B,OAAkC;QAElC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAiC,EAAE,CAAC;YACrG,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC1B,IAAI,CAAC,QAAQ,GAAG,KAAK,CAAC,QAAQ,CAAC;YACjC,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED,gCAAgC;IAChC,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QAC9B,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC;QACrD,IAAI,MAAM,EAAE,CAAC;YACX,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC;YACvB,OAAO,IAAI,CAAC;QACd,CAAC;QACD,OAAO,KAAK,CAAC;IACf,CAAC;IAED,8BAA8B;IAC9B,KAAK,CAAC,IAAI;QACR,IAAI,CAAC,IAAI,CAAC,KAAK;YAAE,OAAO;QACxB,MAAM,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACvD,CAAC;IAED;;;OAGG;IACH,iBAAiB,CACf,KAA8B,EAC9B,OAAkC;QAElC,OAAO,uBAAuB,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,CAAC;IACrE,CAAC;IAED;;;OAGG;IACH,UAAU,CACR,KAA8B,EAC9B,IAA8C;QAE9C,MAAM,EAAE,MAAM,EAAE,GAAG,YAAY,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;QAC/C,OAAO,6BAA6B,CAAC;YACnC,MAAM,EAAE,IAAI,CAAC,iBAAiB,CAAC,KAAK,EAAE,EAAE,MAAM,EAAE,CAAC;YACjD,GAAG,YAAY;SAChB,CAAC,CAAC;IACL,CAAC;CACF"}
package/dist/index.d.ts CHANGED
@@ -1,4 +1,5 @@
1
1
  export { Agent, ToolDeniedError, type AgentEvent, type TokenUsage, type ToolCallInfo, type ApproveFn, type SubagentEventFn, } from "./agent.js";
2
+ export { AgentRegistry, type SubagentBackground, type AwaitMode, type AgentStatus, type SettledResult, type BackgroundAgentConfig, } from "./agent-registry.js";
2
3
  export { connectMCPServers, closeMCPClients, type MCPServerConfig, type MCPConnection, type StdioMCPServer, type HttpMCPServer, type SseMCPServer, } from "./mcp.js";
3
4
  export { Session, DefaultCompactionStrategy, type SessionEvent, type SessionLifecycleEvent, type SessionOptions, type CompactionStrategy, type CompactionContext, type CompactionResult, type RetryConfig, type SessionHooks, type TurnInfo, type SessionStore, type CompactionCheckInfo, } from "./session.js";
4
5
  export { discoverSkills, scanSkillFiles, type SkillInfo, type SkillsConfig, } from "./skills.js";
@@ -8,4 +9,12 @@ export { type OHDataTypes, type OHMetadata, type OHUIMessage, } from "./types/ui
8
9
  export { type OHDataPart, type OHSubagentPart, type OHCompactionPart, type OHRetryPart, type OHSessionLifecyclePart, isOHDataPart, isSubagentEvent, isCompactionEvent, isRetryEvent, isSessionLifecycleEvent, formatSSE, formatTextDelta, formatReasoningDelta, formatDataPart, formatToolStart, formatToolResult, formatToolError, formatStepStart, formatStepFinish, formatFinishMessage, formatDone, } from "./types/stream-parts.js";
9
10
  export { extractUserInput } from "./messages.js";
10
11
  export { sessionEventsToUIStream } from "./ui-stream.js";
12
+ export { type Runner, type Middleware, pipe, apply, toRunner } from "./runner.js";
13
+ export { tap, filter, map, takeUntil } from "./stream.js";
14
+ export { withRetry } from "./middleware/retry.js";
15
+ export { withCompaction, type CompactionConfig } from "./middleware/compaction.js";
16
+ export { withTurnTracking } from "./middleware/turn-tracking.js";
17
+ export { withPersistence, type PersistenceConfig } from "./middleware/persistence.js";
18
+ export { withHooks } from "./middleware/hooks.js";
19
+ export { Conversation, type ConversationOptions } from "./conversation.js";
11
20
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,EACL,eAAe,EACf,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,eAAe,GACrB,MAAM,YAAY,CAAC;AAIpB,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,UAAU,CAAC;AAIlB,OAAO,EACL,OAAO,EACP,yBAAyB,EACzB,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,mBAAmB,GACzB,MAAM,cAAc,CAAC;AAItB,OAAO,EACL,cAAc,EACd,cAAc,EACd,KAAK,SAAS,EACd,KAAK,YAAY,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAInD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAIvE,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,WAAW,GACjB,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,sBAAsB,EAG3B,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,uBAAuB,EAGvB,SAAS,EACT,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,UAAU,GACX,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAIjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,KAAK,EACL,eAAe,EACf,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,YAAY,EACjB,KAAK,SAAS,EACd,KAAK,eAAe,GACrB,MAAM,YAAY,CAAC;AAIpB,OAAO,EACL,aAAa,EACb,KAAK,kBAAkB,EACvB,KAAK,SAAS,EACd,KAAK,WAAW,EAChB,KAAK,aAAa,EAClB,KAAK,qBAAqB,GAC3B,MAAM,qBAAqB,CAAC;AAI7B,OAAO,EACL,iBAAiB,EACjB,eAAe,EACf,KAAK,eAAe,EACpB,KAAK,aAAa,EAClB,KAAK,cAAc,EACnB,KAAK,aAAa,EAClB,KAAK,YAAY,GAClB,MAAM,UAAU,CAAC;AAIlB,OAAO,EACL,OAAO,EACP,yBAAyB,EACzB,KAAK,YAAY,EACjB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,kBAAkB,EACvB,KAAK,iBAAiB,EACtB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,YAAY,EACjB,KAAK,QAAQ,EACb,KAAK,YAAY,EACjB,KAAK,mBAAmB,GACzB,MAAM,cAAc,CAAC;AAItB,OAAO,EACL,cAAc,EACd,cAAc,EACd,KAAK,SAAS,EACd,KAAK,YAAY,GAClB,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAInD,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAIvE,OAAO,EACL,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,WAAW,GACjB,MAAM,uBAAuB,CAAC;AAI/B,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,gBAAgB,EACrB,KAAK,WAAW,EAChB,KAAK,sBAAsB,EAG3B,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,uBAAuB,EAGvB,SAAS,EACT,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,UAAU,GACX,MAAM,yBAAyB,CAAC;AAIjC,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAIjD,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAIzD,OAAO,EAAE,KAAK,MAAM,EAAE,KAAK,UAAU,EAAE,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAIlF,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAI1D,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,4BAA4B,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,KAAK,iBAAiB,EAAE,MAAM,6BAA6B,CAAC;AACtF,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAIlD,OAAO,EAAE,YAAY,EAAE,KAAK,mBAAmB,EAAE,MAAM,mBAAmB,CAAC"}
package/dist/index.js CHANGED
@@ -1,5 +1,7 @@
1
1
  // ── Agent ────────────────────────────────────────────────────────────
2
2
  export { Agent, ToolDeniedError, } from "./agent.js";
3
+ // ── Agent Registry (background subagents) ───────────────────────────
4
+ export { AgentRegistry, } from "./agent-registry.js";
3
5
  // ── MCP ─────────────────────────────────────────────────────────────
4
6
  export { connectMCPServers, closeMCPClients, } from "./mcp.js";
5
7
  // ── Session ─────────────────────────────────────────────────────────
@@ -19,4 +21,16 @@ formatSSE, formatTextDelta, formatReasoningDelta, formatDataPart, formatToolStar
19
21
  export { extractUserInput } from "./messages.js";
20
22
  // ── UI Stream ───────────────────────────────────────────────────────
21
23
  export { sessionEventsToUIStream } from "./ui-stream.js";
24
+ // ── Runner & Middleware ─────────────────────────────────────────────
25
+ export { pipe, apply, toRunner } from "./runner.js";
26
+ // ── Stream Combinators ──────────────────────────────────────────────
27
+ export { tap, filter, map, takeUntil } from "./stream.js";
28
+ // ── Middleware ──────────────────────────────────────────────────────
29
+ export { withRetry } from "./middleware/retry.js";
30
+ export { withCompaction } from "./middleware/compaction.js";
31
+ export { withTurnTracking } from "./middleware/turn-tracking.js";
32
+ export { withPersistence } from "./middleware/persistence.js";
33
+ export { withHooks } from "./middleware/hooks.js";
34
+ // ── Conversation ───────────────────────────────────────────────────
35
+ export { Conversation } from "./conversation.js";
22
36
  //# 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,wEAAwE;AAExE,OAAO,EACL,KAAK,EACL,eAAe,GAMhB,MAAM,YAAY,CAAC;AAEpB,uEAAuE;AAEvE,OAAO,EACL,iBAAiB,EACjB,eAAe,GAMhB,MAAM,UAAU,CAAC;AAElB,uEAAuE;AAEvE,OAAO,EACL,OAAO,EACP,yBAAyB,GAY1B,MAAM,cAAc,CAAC;AAEtB,uEAAuE;AAEvE,OAAO,EACL,cAAc,EACd,cAAc,GAGf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,uEAAuE;AAEvE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAUvE,uEAAuE;AAEvE,OAAO;AAQL,cAAc;AACd,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,uBAAuB;AAEvB,iBAAiB;AACjB,SAAS,EACT,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,UAAU,GACX,MAAM,yBAAyB,CAAC;AAEjC,wEAAwE;AAExE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,uEAAuE;AAEvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,wEAAwE;AAExE,OAAO,EACL,KAAK,EACL,eAAe,GAMhB,MAAM,YAAY,CAAC;AAEpB,uEAAuE;AAEvE,OAAO,EACL,aAAa,GAMd,MAAM,qBAAqB,CAAC;AAE7B,uEAAuE;AAEvE,OAAO,EACL,iBAAiB,EACjB,eAAe,GAMhB,MAAM,UAAU,CAAC;AAElB,uEAAuE;AAEvE,OAAO,EACL,OAAO,EACP,yBAAyB,GAY1B,MAAM,cAAc,CAAC;AAEtB,uEAAuE;AAEvE,OAAO,EACL,cAAc,EACd,cAAc,GAGf,MAAM,aAAa,CAAC;AACrB,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAEnD,uEAAuE;AAEvE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAUvE,uEAAuE;AAEvE,OAAO;AAQL,cAAc;AACd,YAAY,EACZ,eAAe,EACf,iBAAiB,EACjB,YAAY,EACZ,uBAAuB;AAEvB,iBAAiB;AACjB,SAAS,EACT,eAAe,EACf,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,gBAAgB,EAChB,mBAAmB,EACnB,UAAU,GACX,MAAM,yBAAyB,CAAC;AAEjC,wEAAwE;AAExE,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,uEAAuE;AAEvE,OAAO,EAAE,uBAAuB,EAAE,MAAM,gBAAgB,CAAC;AAEzD,uEAAuE;AAEvE,OAAO,EAAgC,IAAI,EAAE,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAElF,uEAAuE;AAEvE,OAAO,EAAE,GAAG,EAAE,MAAM,EAAE,GAAG,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE1D,uEAAuE;AAEvE,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAClD,OAAO,EAAE,cAAc,EAAyB,MAAM,4BAA4B,CAAC;AACnF,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,eAAe,EAA0B,MAAM,6BAA6B,CAAC;AACtF,OAAO,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAElD,sEAAsE;AAEtE,OAAO,EAAE,YAAY,EAA4B,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import type { LanguageModel } from "ai";
2
+ import type { Middleware } from "../runner.js";
3
+ import type { CompactionStrategy, CompactionCheckInfo } from "../session.js";
4
+ export interface CompactionConfig {
5
+ contextWindow: number;
6
+ model: LanguageModel;
7
+ systemPrompt?: string;
8
+ reservedTokens?: number;
9
+ shouldCompact?: (info: CompactionCheckInfo) => boolean;
10
+ strategy?: CompactionStrategy;
11
+ }
12
+ /**
13
+ * Auto-compacts message history when the context window is approaching its limit.
14
+ * Tracks `lastInputTokens` from `step.done` events across calls.
15
+ * Before calling the inner runner: checks if compaction is needed, runs the
16
+ * strategy, yields compaction lifecycle events, and passes the compacted
17
+ * history to the inner runner.
18
+ */
19
+ export declare function withCompaction(config: CompactionConfig): Middleware;
20
+ //# sourceMappingURL=compaction.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compaction.d.ts","sourceRoot":"","sources":["../../src/middleware/compaction.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAgB,MAAM,IAAI,CAAC;AAEtD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EACV,kBAAkB,EAElB,mBAAmB,EACpB,MAAM,eAAe,CAAC;AAIvB,MAAM,WAAW,gBAAgB;IAC/B,aAAa,EAAE,MAAM,CAAC;IACtB,KAAK,EAAE,aAAa,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE,mBAAmB,KAAK,OAAO,CAAC;IACvD,QAAQ,CAAC,EAAE,kBAAkB,CAAC;CAC/B;AAED;;;;;;GAMG;AACH,wBAAgB,cAAc,CAAC,MAAM,EAAE,gBAAgB,GAAG,UAAU,CA6EnE"}
@@ -0,0 +1,73 @@
1
+ import { DefaultCompactionStrategy } from "../session.js";
2
+ import { defaultEstimateTokens } from "../utils.js";
3
+ /**
4
+ * Auto-compacts message history when the context window is approaching its limit.
5
+ * Tracks `lastInputTokens` from `step.done` events across calls.
6
+ * Before calling the inner runner: checks if compaction is needed, runs the
7
+ * strategy, yields compaction lifecycle events, and passes the compacted
8
+ * history to the inner runner.
9
+ */
10
+ export function withCompaction(config) {
11
+ const reservedTokens = config.reservedTokens ?? 20_000;
12
+ const strategy = config.strategy ?? new DefaultCompactionStrategy();
13
+ let lastInputTokens = 0;
14
+ return (runner) => async function* (history, input, options) {
15
+ let effectiveHistory = history;
16
+ // Check if compaction is needed
17
+ const info = {
18
+ lastInputTokens,
19
+ contextWindow: config.contextWindow,
20
+ reservedTokens,
21
+ messages: history,
22
+ turnNumber: 0,
23
+ };
24
+ const needsCompaction = config.shouldCompact
25
+ ? config.shouldCompact(info)
26
+ : lastInputTokens >= config.contextWindow - reservedTokens;
27
+ if (needsCompaction && history.length > 0) {
28
+ const tokensBefore = defaultEstimateTokens(history);
29
+ yield {
30
+ type: "compaction.start",
31
+ reason: "overflow",
32
+ tokensBefore,
33
+ };
34
+ const context = {
35
+ messages: history,
36
+ model: config.model,
37
+ systemPrompt: config.systemPrompt,
38
+ totalTokens: tokensBefore,
39
+ targetTokens: config.contextWindow - reservedTokens,
40
+ signal: options?.signal,
41
+ };
42
+ const result = await strategy.compact(context);
43
+ if (result.tokensPruned > 0) {
44
+ yield {
45
+ type: "compaction.pruned",
46
+ tokensRemoved: result.tokensPruned,
47
+ messagesRemoved: result.messagesRemoved,
48
+ };
49
+ }
50
+ if (result.summary) {
51
+ yield {
52
+ type: "compaction.summary",
53
+ summary: result.summary,
54
+ };
55
+ }
56
+ effectiveHistory = result.messages;
57
+ const tokensAfter = defaultEstimateTokens(effectiveHistory);
58
+ yield {
59
+ type: "compaction.done",
60
+ tokensBefore,
61
+ tokensAfter,
62
+ };
63
+ }
64
+ // Run inner runner with (possibly compacted) history
65
+ for await (const event of runner(effectiveHistory, input, options)) {
66
+ if (event.type === "step.done") {
67
+ lastInputTokens = event.usage.inputTokens ?? 0;
68
+ }
69
+ yield event;
70
+ }
71
+ };
72
+ }
73
+ //# sourceMappingURL=compaction.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compaction.js","sourceRoot":"","sources":["../../src/middleware/compaction.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAC1D,OAAO,EAAE,qBAAqB,EAAE,MAAM,aAAa,CAAC;AAWpD;;;;;;GAMG;AACH,MAAM,UAAU,cAAc,CAAC,MAAwB;IACrD,MAAM,cAAc,GAAG,MAAM,CAAC,cAAc,IAAI,MAAM,CAAC;IACvD,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,IAAI,IAAI,yBAAyB,EAAE,CAAC;IACpE,IAAI,eAAe,GAAG,CAAC,CAAC;IAExB,OAAO,CAAC,MAAM,EAAE,EAAE,CAChB,KAAK,SAAS,CAAC,EACb,OAAuB,EACvB,KAA8B,EAC9B,OAAkC;QAElC,IAAI,gBAAgB,GAAG,OAAO,CAAC;QAE/B,gCAAgC;QAChC,MAAM,IAAI,GAAwB;YAChC,eAAe;YACf,aAAa,EAAE,MAAM,CAAC,aAAa;YACnC,cAAc;YACd,QAAQ,EAAE,OAAO;YACjB,UAAU,EAAE,CAAC;SACd,CAAC;QAEF,MAAM,eAAe,GAAG,MAAM,CAAC,aAAa;YAC1C,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,IAAI,CAAC;YAC5B,CAAC,CAAC,eAAe,IAAI,MAAM,CAAC,aAAa,GAAG,cAAc,CAAC;QAE7D,IAAI,eAAe,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YAC1C,MAAM,YAAY,GAAG,qBAAqB,CAAC,OAAO,CAAC,CAAC;YACpD,MAAM;gBACJ,IAAI,EAAE,kBAAkB;gBACxB,MAAM,EAAE,UAAU;gBAClB,YAAY;aACN,CAAC;YAET,MAAM,OAAO,GAAsB;gBACjC,QAAQ,EAAE,OAAO;gBACjB,KAAK,EAAE,MAAM,CAAC,KAAK;gBACnB,YAAY,EAAE,MAAM,CAAC,YAAY;gBACjC,WAAW,EAAE,YAAY;gBACzB,YAAY,EAAE,MAAM,CAAC,aAAa,GAAG,cAAc;gBACnD,MAAM,EAAE,OAAO,EAAE,MAAM;aACxB,CAAC;YAEF,MAAM,MAAM,GAAG,MAAM,QAAQ,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;YAE/C,IAAI,MAAM,CAAC,YAAY,GAAG,CAAC,EAAE,CAAC;gBAC5B,MAAM;oBACJ,IAAI,EAAE,mBAAmB;oBACzB,aAAa,EAAE,MAAM,CAAC,YAAY;oBAClC,eAAe,EAAE,MAAM,CAAC,eAAe;iBACjC,CAAC;YACX,CAAC;YAED,IAAI,MAAM,CAAC,OAAO,EAAE,CAAC;gBACnB,MAAM;oBACJ,IAAI,EAAE,oBAAoB;oBAC1B,OAAO,EAAE,MAAM,CAAC,OAAO;iBACjB,CAAC;YACX,CAAC;YAED,gBAAgB,GAAG,MAAM,CAAC,QAAQ,CAAC;YACnC,MAAM,WAAW,GAAG,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;YAC5D,MAAM;gBACJ,IAAI,EAAE,iBAAiB;gBACvB,YAAY;gBACZ,WAAW;aACL,CAAC;QACX,CAAC;QAED,qDAAqD;QACrD,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,CAAC,gBAAgB,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;YACnE,IAAI,KAAK,CAAC,IAAI,KAAK,WAAW,EAAE,CAAC;gBAC/B,eAAe,GAAG,KAAK,CAAC,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC;YACjD,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC,CAAC;AACN,CAAC"}
@@ -0,0 +1,10 @@
1
+ import type { SessionHooks } from "../session.js";
2
+ import type { Middleware } from "../runner.js";
3
+ /**
4
+ * Applies SessionHooks around the inner runner.
5
+ * - `onBeforeSend`: modifies history before passing to inner runner
6
+ * - `onAfterResponse`: called after the stream completes with a done event
7
+ * - `onError`: can suppress error events (return `true` to swallow)
8
+ */
9
+ export declare function withHooks(hooks: SessionHooks): Middleware;
10
+ //# sourceMappingURL=hooks.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.d.ts","sourceRoot":"","sources":["../../src/middleware/hooks.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAClD,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C;;;;;GAKG;AACH,wBAAgB,SAAS,CAAC,KAAK,EAAE,YAAY,GAAG,UAAU,CAiCzD"}
@@ -0,0 +1,36 @@
1
+ /**
2
+ * Applies SessionHooks around the inner runner.
3
+ * - `onBeforeSend`: modifies history before passing to inner runner
4
+ * - `onAfterResponse`: called after the stream completes with a done event
5
+ * - `onError`: can suppress error events (return `true` to swallow)
6
+ */
7
+ export function withHooks(hooks) {
8
+ return (runner) => async function* (history, input, options) {
9
+ let effectiveHistory = history;
10
+ if (hooks.onBeforeSend) {
11
+ effectiveHistory = await hooks.onBeforeSend([...history]);
12
+ }
13
+ let doneMessages;
14
+ let doneUsage;
15
+ for await (const event of runner(effectiveHistory, input, options)) {
16
+ if (event.type === "error" && hooks.onError) {
17
+ const suppressed = await hooks.onError(event.error, 0);
18
+ if (suppressed === true)
19
+ continue;
20
+ }
21
+ if (event.type === "done") {
22
+ doneMessages = event.messages;
23
+ doneUsage = event.totalUsage;
24
+ }
25
+ yield event;
26
+ }
27
+ if (hooks.onAfterResponse && doneMessages) {
28
+ await hooks.onAfterResponse({
29
+ turnNumber: 0,
30
+ messages: doneMessages,
31
+ usage: doneUsage,
32
+ });
33
+ }
34
+ };
35
+ }
36
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"hooks.js","sourceRoot":"","sources":["../../src/middleware/hooks.ts"],"names":[],"mappings":"AAGA;;;;;GAKG;AACH,MAAM,UAAU,SAAS,CAAC,KAAmB;IAC3C,OAAO,CAAC,MAAM,EAAE,EAAE,CAChB,KAAK,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO;QACtC,IAAI,gBAAgB,GAAG,OAAO,CAAC;QAC/B,IAAI,KAAK,CAAC,YAAY,EAAE,CAAC;YACvB,gBAAgB,GAAG,MAAM,KAAK,CAAC,YAAY,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;QAC5D,CAAC;QAED,IAAI,YAA+B,CAAC;QACpC,IAAI,SAA0B,CAAC;QAE/B,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,CAAC,gBAAgB,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;YACnE,IAAI,KAAK,CAAC,IAAI,KAAK,OAAO,IAAI,KAAK,CAAC,OAAO,EAAE,CAAC;gBAC5C,MAAM,UAAU,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC,CAAC,CAAC;gBACvD,IAAI,UAAU,KAAK,IAAI;oBAAE,SAAS;YACpC,CAAC;YAED,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC1B,YAAY,GAAG,KAAK,CAAC,QAAQ,CAAC;gBAC9B,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC;YAC/B,CAAC;YAED,MAAM,KAAK,CAAC;QACd,CAAC;QAED,IAAI,KAAK,CAAC,eAAe,IAAI,YAAY,EAAE,CAAC;YAC1C,MAAM,KAAK,CAAC,eAAe,CAAC;gBAC1B,UAAU,EAAE,CAAC;gBACb,QAAQ,EAAE,YAAY;gBACtB,KAAK,EAAE,SAAS;aACjB,CAAC,CAAC;QACL,CAAC;IACH,CAAC,CAAC;AACN,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { withTurnTracking } from "./turn-tracking.js";
2
+ export { withPersistence, type PersistenceConfig } from "./persistence.js";
3
+ export { withHooks } from "./hooks.js";
4
+ export { withRetry } from "./retry.js";
5
+ export { withCompaction, type CompactionConfig } from "./compaction.js";
6
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAAE,KAAK,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,cAAc,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,6 @@
1
+ export { withTurnTracking } from "./turn-tracking.js";
2
+ export { withPersistence } from "./persistence.js";
3
+ export { withHooks } from "./hooks.js";
4
+ export { withRetry } from "./retry.js";
5
+ export { withCompaction } from "./compaction.js";
6
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/middleware/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,eAAe,EAA0B,MAAM,kBAAkB,CAAC;AAC3E,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,SAAS,EAAE,MAAM,YAAY,CAAC;AACvC,OAAO,EAAE,cAAc,EAAyB,MAAM,iBAAiB,CAAC"}
@@ -0,0 +1,12 @@
1
+ import type { Middleware } from "../runner.js";
2
+ import type { SessionStore } from "../session.js";
3
+ export interface PersistenceConfig {
4
+ store: SessionStore;
5
+ sessionId: string;
6
+ }
7
+ /**
8
+ * Auto-saves messages on `done` events.
9
+ * Passes all events through unchanged.
10
+ */
11
+ export declare function withPersistence(config: PersistenceConfig): Middleware;
12
+ //# sourceMappingURL=persistence.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistence.d.ts","sourceRoot":"","sources":["../../src/middleware/persistence.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,eAAe,CAAC;AAElD,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,YAAY,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;GAGG;AACH,wBAAgB,eAAe,CAAC,MAAM,EAAE,iBAAiB,GAAG,UAAU,CAUrE"}
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Auto-saves messages on `done` events.
3
+ * Passes all events through unchanged.
4
+ */
5
+ export function withPersistence(config) {
6
+ return (runner) => async function* (history, input, options) {
7
+ for await (const event of runner(history, input, options)) {
8
+ yield event;
9
+ if (event.type === "done") {
10
+ await config.store.save(config.sessionId, event.messages);
11
+ }
12
+ }
13
+ };
14
+ }
15
+ //# sourceMappingURL=persistence.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persistence.js","sourceRoot":"","sources":["../../src/middleware/persistence.ts"],"names":[],"mappings":"AAQA;;;GAGG;AACH,MAAM,UAAU,eAAe,CAAC,MAAyB;IACvD,OAAO,CAAC,MAAM,EAAE,EAAE,CAChB,KAAK,SAAS,CAAC,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO;QACtC,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;YAC1D,MAAM,KAAK,CAAC;YACZ,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC1B,MAAM,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,SAAS,EAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;YAC5D,CAAC;QACH,CAAC;IACH,CAAC,CAAC;AACN,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { Middleware } from "../runner.js";
2
+ import type { RetryConfig } from "../session.js";
3
+ /**
4
+ * Retries the inner runner on transient errors if no content has been yielded yet.
5
+ * Yields `retry` lifecycle events on each retry attempt.
6
+ */
7
+ export declare function withRetry(config?: Partial<RetryConfig>): Middleware;
8
+ //# sourceMappingURL=retry.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../src/middleware/retry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAUjD;;;GAGG;AACH,wBAAgB,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,UAAU,CAqEnE"}
@@ -0,0 +1,70 @@
1
+ import { isRetryableError, getRetryDelay, sleep } from "../utils.js";
2
+ const DEFAULT_RETRY = {
3
+ maxRetries: 3,
4
+ initialDelayMs: 1000,
5
+ maxDelayMs: 30_000,
6
+ backoffMultiplier: 2,
7
+ };
8
+ /**
9
+ * Retries the inner runner on transient errors if no content has been yielded yet.
10
+ * Yields `retry` lifecycle events on each retry attempt.
11
+ */
12
+ export function withRetry(config) {
13
+ const retryConfig = { ...DEFAULT_RETRY, ...config };
14
+ return (runner) => async function* (history, input, options) {
15
+ const { maxRetries } = retryConfig;
16
+ const isRetryable = retryConfig.isRetryable ?? isRetryableError;
17
+ for (let attempt = 0; attempt <= maxRetries; attempt++) {
18
+ let hasYieldedContent = false;
19
+ let shouldRetry = false;
20
+ try {
21
+ for await (const event of runner(history, input, options)) {
22
+ if (event.type === "text.delta" || event.type === "tool.start") {
23
+ hasYieldedContent = true;
24
+ }
25
+ if (event.type === "error" &&
26
+ !hasYieldedContent &&
27
+ isRetryable(event.error) &&
28
+ attempt < maxRetries) {
29
+ const delayMs = getRetryDelay(attempt, retryConfig, event.error);
30
+ yield {
31
+ type: "retry",
32
+ attempt,
33
+ maxRetries,
34
+ delayMs,
35
+ error: event.error,
36
+ };
37
+ await sleep(delayMs, options?.signal);
38
+ shouldRetry = true;
39
+ break;
40
+ }
41
+ if (event.type === "done") {
42
+ yield event;
43
+ break;
44
+ }
45
+ yield event;
46
+ }
47
+ }
48
+ catch (thrown) {
49
+ const error = thrown instanceof Error ? thrown : new Error(String(thrown));
50
+ if (!hasYieldedContent && isRetryable(error) && attempt < maxRetries) {
51
+ const delayMs = getRetryDelay(attempt, retryConfig, error);
52
+ yield {
53
+ type: "retry",
54
+ attempt,
55
+ maxRetries,
56
+ delayMs,
57
+ error,
58
+ };
59
+ await sleep(delayMs, options?.signal);
60
+ continue;
61
+ }
62
+ throw thrown;
63
+ }
64
+ if (shouldRetry)
65
+ continue;
66
+ break;
67
+ }
68
+ };
69
+ }
70
+ //# sourceMappingURL=retry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/middleware/retry.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,gBAAgB,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,aAAa,CAAC;AAErE,MAAM,aAAa,GAAgB;IACjC,UAAU,EAAE,CAAC;IACb,cAAc,EAAE,IAAI;IACpB,UAAU,EAAE,MAAM;IAClB,iBAAiB,EAAE,CAAC;CACrB,CAAC;AAEF;;;GAGG;AACH,MAAM,UAAU,SAAS,CAAC,MAA6B;IACrD,MAAM,WAAW,GAAgB,EAAE,GAAG,aAAa,EAAE,GAAG,MAAM,EAAE,CAAC;IAEjE,OAAO,CAAC,MAAM,EAAE,EAAE,CAChB,KAAK,SAAS,CAAC,EACb,OAAuB,EACvB,KAA8B,EAC9B,OAAkC;QAElC,MAAM,EAAE,UAAU,EAAE,GAAG,WAAW,CAAC;QACnC,MAAM,WAAW,GAAG,WAAW,CAAC,WAAW,IAAI,gBAAgB,CAAC;QAEhE,KAAK,IAAI,OAAO,GAAG,CAAC,EAAE,OAAO,IAAI,UAAU,EAAE,OAAO,EAAE,EAAE,CAAC;YACvD,IAAI,iBAAiB,GAAG,KAAK,CAAC;YAC9B,IAAI,WAAW,GAAG,KAAK,CAAC;YAExB,IAAI,CAAC;gBACH,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;oBAC1D,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,IAAI,KAAK,CAAC,IAAI,KAAK,YAAY,EAAE,CAAC;wBAC/D,iBAAiB,GAAG,IAAI,CAAC;oBAC3B,CAAC;oBAED,IACE,KAAK,CAAC,IAAI,KAAK,OAAO;wBACtB,CAAC,iBAAiB;wBAClB,WAAW,CAAC,KAAK,CAAC,KAAK,CAAC;wBACxB,OAAO,GAAG,UAAU,EACpB,CAAC;wBACD,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,KAAK,CAAC,CAAC;wBACjE,MAAM;4BACJ,IAAI,EAAE,OAAO;4BACb,OAAO;4BACP,UAAU;4BACV,OAAO;4BACP,KAAK,EAAE,KAAK,CAAC,KAAK;yBACZ,CAAC;wBACT,MAAM,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;wBACtC,WAAW,GAAG,IAAI,CAAC;wBACnB,MAAM;oBACR,CAAC;oBAED,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;wBAC1B,MAAM,KAAK,CAAC;wBACZ,MAAM;oBACR,CAAC;oBAED,MAAM,KAAK,CAAC;gBACd,CAAC;YACH,CAAC;YAAC,OAAO,MAAM,EAAE,CAAC;gBAChB,MAAM,KAAK,GAAG,MAAM,YAAY,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,KAAK,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC;gBAC3E,IAAI,CAAC,iBAAiB,IAAI,WAAW,CAAC,KAAK,CAAC,IAAI,OAAO,GAAG,UAAU,EAAE,CAAC;oBACrE,MAAM,OAAO,GAAG,aAAa,CAAC,OAAO,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;oBAC3D,MAAM;wBACJ,IAAI,EAAE,OAAO;wBACb,OAAO;wBACP,UAAU;wBACV,OAAO;wBACP,KAAK;qBACC,CAAC;oBACT,MAAM,KAAK,CAAC,OAAO,EAAE,OAAO,EAAE,MAAM,CAAC,CAAC;oBACtC,SAAS;gBACX,CAAC;gBACD,MAAM,MAAM,CAAC;YACf,CAAC;YAED,IAAI,WAAW;gBAAE,SAAS;YAC1B,MAAM;QACR,CAAC;IACH,CAAC,CAAC;AACN,CAAC"}
@@ -0,0 +1,7 @@
1
+ import type { Middleware } from "../runner.js";
2
+ /**
3
+ * Maintains a turn counter (persists across calls).
4
+ * Yields `turn.start` before inner events, `turn.done` after.
5
+ */
6
+ export declare function withTurnTracking(): Middleware;
7
+ //# sourceMappingURL=turn-tracking.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turn-tracking.d.ts","sourceRoot":"","sources":["../../src/middleware/turn-tracking.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C;;;GAGG;AACH,wBAAgB,gBAAgB,IAAI,UAAU,CA6B7C"}
@@ -0,0 +1,25 @@
1
+ /**
2
+ * Maintains a turn counter (persists across calls).
3
+ * Yields `turn.start` before inner events, `turn.done` after.
4
+ */
5
+ export function withTurnTracking() {
6
+ let turnCount = 0;
7
+ return (runner) => async function* (history, input, options) {
8
+ turnCount++;
9
+ const turnNumber = turnCount;
10
+ yield { type: "turn.start", turnNumber };
11
+ let turnUsage = {
12
+ inputTokens: undefined,
13
+ outputTokens: undefined,
14
+ totalTokens: undefined,
15
+ };
16
+ for await (const event of runner(history, input, options)) {
17
+ if (event.type === "done") {
18
+ turnUsage = event.totalUsage;
19
+ }
20
+ yield event;
21
+ }
22
+ yield { type: "turn.done", turnNumber, usage: turnUsage };
23
+ };
24
+ }
25
+ //# sourceMappingURL=turn-tracking.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"turn-tracking.js","sourceRoot":"","sources":["../../src/middleware/turn-tracking.ts"],"names":[],"mappings":"AAIA;;;GAGG;AACH,MAAM,UAAU,gBAAgB;IAC9B,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,OAAO,CAAC,MAAM,EAAE,EAAE,CAChB,KAAK,SAAS,CAAC,EACb,OAAuB,EACvB,KAA8B,EAC9B,OAAkC;QAElC,SAAS,EAAE,CAAC;QACZ,MAAM,UAAU,GAAG,SAAS,CAAC;QAE7B,MAAM,EAAE,IAAI,EAAE,YAAY,EAAE,UAAU,EAAS,CAAC;QAEhD,IAAI,SAAS,GAAe;YAC1B,WAAW,EAAE,SAAS;YACtB,YAAY,EAAE,SAAS;YACvB,WAAW,EAAE,SAAS;SACvB,CAAC;QAEF,IAAI,KAAK,EAAE,MAAM,KAAK,IAAI,MAAM,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,CAAC;YAC1D,IAAI,KAAK,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;gBAC1B,SAAS,GAAG,KAAK,CAAC,UAAU,CAAC;YAC/B,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QAED,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE,UAAU,EAAE,KAAK,EAAE,SAAS,EAAS,CAAC;IACnE,CAAC,CAAC;AACN,CAAC"}
@@ -0,0 +1,23 @@
1
+ import type { ModelMessage } from "ai";
2
+ import type { Agent, AgentEvent } from "./agent.js";
3
+ /**
4
+ * A Runner has the same shape as Agent.run() but as a standalone function.
5
+ * Middleware wraps Runners to add cross-cutting concerns.
6
+ */
7
+ export type Runner = (history: ModelMessage[], input: string | ModelMessage[], options?: {
8
+ signal?: AbortSignal;
9
+ }) => AsyncGenerator<AgentEvent>;
10
+ /** Middleware transforms one Runner into another. */
11
+ export type Middleware = (runner: Runner) => Runner;
12
+ /** Convert an Agent into a Runner. */
13
+ export declare function toRunner(agent: Agent): Runner;
14
+ /**
15
+ * Compose middleware (outermost listed first).
16
+ * `pipe(a, b, c)(runner)` === `a(b(c(runner)))`.
17
+ */
18
+ export declare function pipe(...middleware: Middleware[]): Middleware;
19
+ /**
20
+ * Apply middleware to a runner (shorthand for `pipe(...mw)(runner)`).
21
+ */
22
+ export declare function apply(runner: Runner, ...middleware: Middleware[]): Runner;
23
+ //# sourceMappingURL=runner.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AACvC,OAAO,KAAK,EAAE,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAEpD;;;GAGG;AACH,MAAM,MAAM,MAAM,GAAG,CACnB,OAAO,EAAE,YAAY,EAAE,EACvB,KAAK,EAAE,MAAM,GAAG,YAAY,EAAE,EAC9B,OAAO,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,WAAW,CAAA;CAAE,KAC/B,cAAc,CAAC,UAAU,CAAC,CAAC;AAEhC,qDAAqD;AACrD,MAAM,MAAM,UAAU,GAAG,CAAC,MAAM,EAAE,MAAM,KAAK,MAAM,CAAC;AAEpD,sCAAsC;AACtC,wBAAgB,QAAQ,CAAC,KAAK,EAAE,KAAK,GAAG,MAAM,CAE7C;AAED;;;GAGG;AACH,wBAAgB,IAAI,CAAC,GAAG,UAAU,EAAE,UAAU,EAAE,GAAG,UAAU,CAK5D;AAED;;GAEG;AACH,wBAAgB,KAAK,CAAC,MAAM,EAAE,MAAM,EAAE,GAAG,UAAU,EAAE,UAAU,EAAE,GAAG,MAAM,CAEzE"}
package/dist/runner.js ADDED
@@ -0,0 +1,18 @@
1
+ /** Convert an Agent into a Runner. */
2
+ export function toRunner(agent) {
3
+ return (history, input, options) => agent.run(history, input, options);
4
+ }
5
+ /**
6
+ * Compose middleware (outermost listed first).
7
+ * `pipe(a, b, c)(runner)` === `a(b(c(runner)))`.
8
+ */
9
+ export function pipe(...middleware) {
10
+ return middleware.reduceRight((inner, outer) => (runner) => outer(inner(runner)), (runner) => runner);
11
+ }
12
+ /**
13
+ * Apply middleware to a runner (shorthand for `pipe(...mw)(runner)`).
14
+ */
15
+ export function apply(runner, ...middleware) {
16
+ return pipe(...middleware)(runner);
17
+ }
18
+ //# sourceMappingURL=runner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAgBA,sCAAsC;AACtC,MAAM,UAAU,QAAQ,CAAC,KAAY;IACnC,OAAO,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,OAAO,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;AACzE,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,IAAI,CAAC,GAAG,UAAwB;IAC9C,OAAO,UAAU,CAAC,WAAW,CAC3B,CAAC,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAClD,CAAC,MAAc,EAAE,EAAE,CAAC,MAAM,CAC3B,CAAC;AACJ,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,KAAK,CAAC,MAAc,EAAE,GAAG,UAAwB;IAC/D,OAAO,IAAI,CAAC,GAAG,UAAU,CAAC,CAAC,MAAM,CAAC,CAAC;AACrC,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"session.d.ts","sourceRoot":"","sources":["../src/session.ts"],"names":[],"mappings":"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"}