@dexto/core 1.6.26 → 1.7.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.
Files changed (160) hide show
  1. package/dist/agent/DextoAgent.cjs +75 -90
  2. package/dist/agent/DextoAgent.d.ts +7 -7
  3. package/dist/agent/DextoAgent.d.ts.map +1 -1
  4. package/dist/agent/DextoAgent.js +76 -91
  5. package/dist/agent/error-codes.cjs +1 -0
  6. package/dist/agent/error-codes.d.ts +1 -0
  7. package/dist/agent/error-codes.d.ts.map +1 -1
  8. package/dist/agent/error-codes.js +1 -0
  9. package/dist/agent/errors.cjs +13 -0
  10. package/dist/agent/errors.d.ts +6 -0
  11. package/dist/agent/errors.d.ts.map +1 -1
  12. package/dist/agent/errors.js +13 -0
  13. package/dist/agent/index.d.ts +1 -0
  14. package/dist/agent/index.d.ts.map +1 -1
  15. package/dist/agent/schemas.cjs +5 -5
  16. package/dist/agent/schemas.d.ts +69 -980
  17. package/dist/agent/schemas.d.ts.map +1 -1
  18. package/dist/agent/schemas.js +5 -5
  19. package/dist/agent/types.d.ts +11 -0
  20. package/dist/agent/types.d.ts.map +1 -1
  21. package/dist/approval/factory.cjs +1 -0
  22. package/dist/approval/factory.d.ts.map +1 -1
  23. package/dist/approval/factory.js +1 -0
  24. package/dist/approval/manager.cjs +19 -6
  25. package/dist/approval/manager.d.ts +6 -0
  26. package/dist/approval/manager.d.ts.map +1 -1
  27. package/dist/approval/manager.js +19 -6
  28. package/dist/approval/schemas.cjs +16 -6
  29. package/dist/approval/schemas.d.ts +373 -1044
  30. package/dist/approval/schemas.d.ts.map +1 -1
  31. package/dist/approval/schemas.js +16 -6
  32. package/dist/approval/session-approval-store.cjs +1 -1
  33. package/dist/approval/session-approval-store.d.ts +12 -30
  34. package/dist/approval/session-approval-store.d.ts.map +1 -1
  35. package/dist/approval/session-approval-store.js +1 -1
  36. package/dist/events/index.cjs +210 -75
  37. package/dist/events/index.d.ts +44 -181
  38. package/dist/events/index.d.ts.map +1 -1
  39. package/dist/events/index.js +206 -74
  40. package/dist/hooks/manager.cjs +5 -2
  41. package/dist/hooks/manager.d.ts +2 -0
  42. package/dist/hooks/manager.d.ts.map +1 -1
  43. package/dist/hooks/manager.js +5 -2
  44. package/dist/hooks/types.d.ts +3 -0
  45. package/dist/hooks/types.d.ts.map +1 -1
  46. package/dist/index.browser.d.ts +1 -0
  47. package/dist/index.browser.d.ts.map +1 -1
  48. package/dist/index.cjs +3 -1
  49. package/dist/index.d.ts +1 -0
  50. package/dist/index.d.ts.map +1 -1
  51. package/dist/index.js +1 -0
  52. package/dist/llm/executor/turn-executor.cjs +8 -4
  53. package/dist/llm/executor/turn-executor.d.ts +3 -1
  54. package/dist/llm/executor/turn-executor.d.ts.map +1 -1
  55. package/dist/llm/executor/turn-executor.js +8 -4
  56. package/dist/llm/providers/local/schemas.d.ts +102 -262
  57. package/dist/llm/providers/local/schemas.d.ts.map +1 -1
  58. package/dist/llm/registry/index.d.ts +5 -3
  59. package/dist/llm/registry/index.d.ts.map +1 -1
  60. package/dist/llm/resolver.cjs +0 -1
  61. package/dist/llm/resolver.d.ts.map +1 -1
  62. package/dist/llm/resolver.js +0 -1
  63. package/dist/llm/schemas.d.ts +95 -199
  64. package/dist/llm/schemas.d.ts.map +1 -1
  65. package/dist/llm/services/vercel.cjs +29 -6
  66. package/dist/llm/services/vercel.d.ts +3 -0
  67. package/dist/llm/services/vercel.d.ts.map +1 -1
  68. package/dist/llm/services/vercel.js +27 -5
  69. package/dist/logger/default-logger-factory.d.ts +28 -256
  70. package/dist/logger/default-logger-factory.d.ts.map +1 -1
  71. package/dist/logger/v2/schemas.d.ts +18 -120
  72. package/dist/logger/v2/schemas.d.ts.map +1 -1
  73. package/dist/mcp/manager.cjs +7 -2
  74. package/dist/mcp/manager.d.ts +3 -1
  75. package/dist/mcp/manager.d.ts.map +1 -1
  76. package/dist/mcp/manager.js +7 -2
  77. package/dist/mcp/mcp-client.cjs +71 -62
  78. package/dist/mcp/mcp-client.d.ts +3 -2
  79. package/dist/mcp/mcp-client.d.ts.map +1 -1
  80. package/dist/mcp/mcp-client.js +71 -62
  81. package/dist/mcp/schemas.cjs +4 -4
  82. package/dist/mcp/schemas.d.ts +77 -270
  83. package/dist/mcp/schemas.d.ts.map +1 -1
  84. package/dist/mcp/schemas.js +4 -4
  85. package/dist/memory/schemas.d.ts +37 -117
  86. package/dist/memory/schemas.d.ts.map +1 -1
  87. package/dist/prompts/schemas.d.ts +46 -190
  88. package/dist/prompts/schemas.d.ts.map +1 -1
  89. package/dist/resources/handlers/filesystem-handler.cjs +22 -3
  90. package/dist/resources/handlers/filesystem-handler.d.ts.map +1 -1
  91. package/dist/resources/handlers/filesystem-handler.js +22 -3
  92. package/dist/resources/schemas.d.ts +14 -68
  93. package/dist/resources/schemas.d.ts.map +1 -1
  94. package/dist/runtime/host-runtime.cjs +163 -0
  95. package/dist/runtime/host-runtime.d.ts +19 -0
  96. package/dist/runtime/host-runtime.d.ts.map +1 -0
  97. package/dist/runtime/host-runtime.js +133 -0
  98. package/dist/runtime/index.cjs +42 -0
  99. package/dist/runtime/index.d.ts +2 -0
  100. package/dist/runtime/index.d.ts.map +1 -0
  101. package/dist/runtime/index.js +21 -0
  102. package/dist/runtime/run-context.cjs +53 -0
  103. package/dist/runtime/run-context.d.ts +13 -0
  104. package/dist/runtime/run-context.d.ts.map +1 -0
  105. package/dist/runtime/run-context.js +34 -0
  106. package/dist/session/chat-session.cjs +30 -32
  107. package/dist/session/chat-session.d.ts +5 -15
  108. package/dist/session/chat-session.d.ts.map +1 -1
  109. package/dist/session/chat-session.js +31 -33
  110. package/dist/session/error-codes.cjs +1 -0
  111. package/dist/session/error-codes.d.ts +2 -1
  112. package/dist/session/error-codes.d.ts.map +1 -1
  113. package/dist/session/error-codes.js +1 -0
  114. package/dist/session/errors.cjs +13 -0
  115. package/dist/session/errors.d.ts +6 -0
  116. package/dist/session/errors.d.ts.map +1 -1
  117. package/dist/session/errors.js +13 -0
  118. package/dist/session/schemas.d.ts +1 -7
  119. package/dist/session/schemas.d.ts.map +1 -1
  120. package/dist/systemPrompt/schemas.cjs +2 -10
  121. package/dist/systemPrompt/schemas.d.ts +53 -343
  122. package/dist/systemPrompt/schemas.d.ts.map +1 -1
  123. package/dist/systemPrompt/schemas.js +2 -10
  124. package/dist/telemetry/decorators.cjs +75 -57
  125. package/dist/telemetry/decorators.d.ts +2 -0
  126. package/dist/telemetry/decorators.d.ts.map +1 -1
  127. package/dist/telemetry/decorators.js +75 -57
  128. package/dist/telemetry/schemas.cjs +1 -1
  129. package/dist/telemetry/schemas.d.ts +9 -44
  130. package/dist/telemetry/schemas.d.ts.map +1 -1
  131. package/dist/telemetry/schemas.js +1 -1
  132. package/dist/telemetry/utils.cjs +9 -6
  133. package/dist/telemetry/utils.d.ts +3 -0
  134. package/dist/telemetry/utils.d.ts.map +1 -1
  135. package/dist/telemetry/utils.js +9 -6
  136. package/dist/tools/schemas.cjs +1 -1
  137. package/dist/tools/schemas.d.ts +19 -62
  138. package/dist/tools/schemas.d.ts.map +1 -1
  139. package/dist/tools/schemas.js +1 -1
  140. package/dist/tools/session-tool-preferences-store.d.ts +3 -9
  141. package/dist/tools/session-tool-preferences-store.d.ts.map +1 -1
  142. package/dist/tools/tool-manager.cjs +92 -36
  143. package/dist/tools/tool-manager.d.ts +12 -3
  144. package/dist/tools/tool-manager.d.ts.map +1 -1
  145. package/dist/tools/tool-manager.js +92 -36
  146. package/dist/tools/types.d.ts +7 -1
  147. package/dist/tools/types.d.ts.map +1 -1
  148. package/dist/utils/result.cjs +11 -8
  149. package/dist/utils/result.d.ts +6 -6
  150. package/dist/utils/result.d.ts.map +1 -1
  151. package/dist/utils/result.js +12 -9
  152. package/dist/utils/schema.cjs +6 -2
  153. package/dist/utils/schema.d.ts +2 -7
  154. package/dist/utils/schema.d.ts.map +1 -1
  155. package/dist/utils/schema.js +6 -2
  156. package/dist/utils/zod-schema-converter.cjs +66 -66
  157. package/dist/utils/zod-schema-converter.d.ts +3 -2
  158. package/dist/utils/zod-schema-converter.d.ts.map +1 -1
  159. package/dist/utils/zod-schema-converter.js +66 -66
  160. package/package.json +4 -5
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/approval/schemas.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/approval/schemas.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,8 @@ import "../chunk-PTJYTZNU.js";
2
2
  import { z } from "zod";
3
3
  import { APPROVAL_TYPES, APPROVAL_STATUSES, DENIAL_REASONS, ApprovalType } from "./types.js";
4
4
  import { isValidDisplayData } from "../tools/display-types.js";
5
- const JsonSchema7Schema = z.record(z.unknown());
5
+ import { HostRuntimeContextSchema } from "../runtime/index.js";
6
+ const JsonSchema7Schema = z.record(z.string(), z.unknown());
6
7
  const ApprovalTypeSchema = z.enum(APPROVAL_TYPES);
7
8
  const ApprovalStatusSchema = z.enum(APPROVAL_STATUSES);
8
9
  const DenialReasonSchema = z.enum(DENIAL_REASONS);
@@ -27,7 +28,7 @@ const ToolApprovalMetadataSchema = z.object({
27
28
  "Optional UI-agnostic presentation snapshot for the tool call. Clients MUST ignore unknown fields."
28
29
  ),
29
30
  toolCallId: z.string().describe("Unique tool call ID for tracking parallel tool calls"),
30
- args: z.record(z.unknown()).describe("Arguments for the tool"),
31
+ args: z.record(z.string(), z.unknown()).describe("Arguments for the tool"),
31
32
  description: z.string().optional().describe("Description of the tool"),
32
33
  displayPreview: ToolDisplayDataSchema.optional().describe(
33
34
  "Preview display data for approval UI (e.g., diff preview)"
@@ -48,13 +49,16 @@ const ElicitationMetadataSchema = z.object({
48
49
  schema: JsonSchema7Schema.describe("JSON Schema for the form"),
49
50
  prompt: z.string().describe("High-level prompt/context for the form (clients may show it)"),
50
51
  serverName: z.string().describe("MCP server requesting input"),
51
- context: z.record(z.unknown()).optional().describe("Additional context")
52
+ context: z.record(z.string(), z.unknown()).optional().describe("Additional context")
52
53
  }).strict().describe("Elicitation metadata");
53
- const CustomApprovalMetadataSchema = z.record(z.unknown()).describe("Custom metadata");
54
+ const CustomApprovalMetadataSchema = z.record(z.string(), z.unknown()).describe("Custom metadata");
54
55
  const BaseApprovalRequestSchema = z.object({
55
56
  approvalId: z.string().uuid().describe("Unique approval identifier"),
56
57
  type: ApprovalTypeSchema.describe("Type of approval"),
57
58
  sessionId: z.string().optional().describe("Session identifier"),
59
+ hostRuntime: HostRuntimeContextSchema.optional().describe(
60
+ "Optional host-owned runtime IDs for correlating the approval flow to a single execution."
61
+ ),
58
62
  timeout: z.number().int().positive().optional().describe("Timeout in milliseconds (optional - no timeout if not specified)"),
59
63
  timestamp: z.date().describe("When the request was created")
60
64
  }).describe("Base approval request");
@@ -99,9 +103,9 @@ const CommandConfirmationResponseDataSchema = z.object({
99
103
  // Could add command pattern remembering in future (e.g., "remember git push *")
100
104
  }).strict().describe("Command confirmation response data");
101
105
  const ElicitationResponseDataSchema = z.object({
102
- formData: z.record(z.unknown()).describe("Form data matching schema")
106
+ formData: z.record(z.string(), z.unknown()).describe("Form data matching schema")
103
107
  }).strict().describe("Elicitation response data");
104
- const CustomApprovalResponseDataSchema = z.record(z.unknown()).describe("Custom response data");
108
+ const CustomApprovalResponseDataSchema = z.record(z.string(), z.unknown()).describe("Custom response data");
105
109
  const DirectoryAccessResponseDataSchema = z.object({
106
110
  rememberDirectory: z.boolean().optional().describe("Remember this directory for the session (allows all file access within it)")
107
111
  }).strict().describe("Directory access response data");
@@ -109,6 +113,9 @@ const BaseApprovalResponseSchema = z.object({
109
113
  approvalId: z.string().uuid().describe("Must match request approvalId"),
110
114
  status: ApprovalStatusSchema.describe("Approval status"),
111
115
  sessionId: z.string().optional().describe("Session identifier"),
116
+ hostRuntime: HostRuntimeContextSchema.optional().describe(
117
+ "Optional host-owned runtime IDs for correlating the approval flow to a single execution."
118
+ ),
112
119
  reason: DenialReasonSchema.optional().describe(
113
120
  "Reason for denial/cancellation (only present when status is denied or cancelled)"
114
121
  ),
@@ -140,6 +147,9 @@ const ApprovalResponseSchema = z.union([
140
147
  const ApprovalRequestDetailsSchema = z.object({
141
148
  type: ApprovalTypeSchema,
142
149
  sessionId: z.string().optional(),
150
+ hostRuntime: HostRuntimeContextSchema.optional().describe(
151
+ "Optional host-owned runtime IDs for correlating the approval flow to a single execution."
152
+ ),
143
153
  timeout: z.number().int().positive().optional().describe("Timeout in milliseconds (optional - no timeout if not specified)"),
144
154
  metadata: z.union([
145
155
  ToolApprovalMetadataSchema,
@@ -28,7 +28,7 @@ const PersistedApprovedDirectorySchema = import_zod.z.object({
28
28
  type: ApprovedDirectoryTypeSchema
29
29
  }).strict();
30
30
  const SessionApprovalStateSchema = import_zod.z.object({
31
- toolPatterns: import_zod.z.record(import_zod.z.array(import_zod.z.string())).default({}),
31
+ toolPatterns: import_zod.z.record(import_zod.z.string(), import_zod.z.array(import_zod.z.string())).default({}),
32
32
  approvedDirectories: import_zod.z.array(PersistedApprovedDirectorySchema).default([])
33
33
  }).strict();
34
34
  const DEFAULT_APPROVAL_STATE = {
@@ -3,39 +3,21 @@ import type { StorageManager } from '../storage/index.js';
3
3
  import type { Logger } from '../logger/v2/types.js';
4
4
  declare const PersistedApprovedDirectorySchema: z.ZodObject<{
5
5
  path: z.ZodString;
6
- type: z.ZodEnum<["session", "once"]>;
7
- }, "strict", z.ZodTypeAny, {
8
- path: string;
9
- type: "session" | "once";
10
- }, {
11
- path: string;
12
- type: "session" | "once";
13
- }>;
6
+ type: z.ZodEnum<{
7
+ session: "session";
8
+ once: "once";
9
+ }>;
10
+ }, z.core.$strict>;
14
11
  declare const SessionApprovalStateSchema: z.ZodObject<{
15
- toolPatterns: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString, "many">>>;
12
+ toolPatterns: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodString>>>;
16
13
  approvedDirectories: z.ZodDefault<z.ZodArray<z.ZodObject<{
17
14
  path: z.ZodString;
18
- type: z.ZodEnum<["session", "once"]>;
19
- }, "strict", z.ZodTypeAny, {
20
- path: string;
21
- type: "session" | "once";
22
- }, {
23
- path: string;
24
- type: "session" | "once";
25
- }>, "many">>;
26
- }, "strict", z.ZodTypeAny, {
27
- toolPatterns: Record<string, string[]>;
28
- approvedDirectories: {
29
- path: string;
30
- type: "session" | "once";
31
- }[];
32
- }, {
33
- toolPatterns?: Record<string, string[]> | undefined;
34
- approvedDirectories?: {
35
- path: string;
36
- type: "session" | "once";
37
- }[] | undefined;
38
- }>;
15
+ type: z.ZodEnum<{
16
+ session: "session";
17
+ once: "once";
18
+ }>;
19
+ }, z.core.$strict>>>;
20
+ }, z.core.$strict>;
39
21
  export type PersistedApprovedDirectory = z.output<typeof PersistedApprovedDirectorySchema>;
40
22
  export type SessionApprovalState = z.output<typeof SessionApprovalStateSchema>;
41
23
  export declare class SessionApprovalStore {
@@ -1 +1 @@
1
- {"version":3,"file":"session-approval-store.d.ts","sourceRoot":"","sources":["../../src/approval/session-approval-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAIpD,QAAA,MAAM,gCAAgC;;;;;;;;;EAKzB,CAAC;AAEd,QAAA,MAAM,0BAA0B;;;;;;;;;;;;;;;;;;;;;;;;EAKnB,CAAC;AAEd,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAC3F,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAO/E,qBAAa,oBAAoB;IAIzB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJ3B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;gBAGpB,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,MAAM,EAC/B,OAAO,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO;IAMzC,OAAO,CAAC,QAAQ;IAIV,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAiBvD,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/E,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ/C,OAAO,CAAC,UAAU;CAYrB"}
1
+ {"version":3,"file":"session-approval-store.d.ts","sourceRoot":"","sources":["../../src/approval/session-approval-store.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AAC1D,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAIpD,QAAA,MAAM,gCAAgC;;;;;;kBAKzB,CAAC;AAEd,QAAA,MAAM,0BAA0B;;;;;;;;;kBAKnB,CAAC;AAEd,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,gCAAgC,CAAC,CAAC;AAC3F,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,0BAA0B,CAAC,CAAC;AAO/E,qBAAa,oBAAoB;IAIzB,OAAO,CAAC,QAAQ,CAAC,cAAc;IAC/B,OAAO,CAAC,QAAQ,CAAC,MAAM;IAJ3B,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAS;gBAGpB,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,MAAM,EAC/B,OAAO,GAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAA;KAAO;IAMzC,OAAO,CAAC,QAAQ;IAIV,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAiBvD,IAAI,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,EAAE,KAAK,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAO/E,MAAM,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ/C,OAAO,CAAC,UAAU;CAYrB"}
@@ -6,7 +6,7 @@ const PersistedApprovedDirectorySchema = z.object({
6
6
  type: ApprovedDirectoryTypeSchema
7
7
  }).strict();
8
8
  const SessionApprovalStateSchema = z.object({
9
- toolPatterns: z.record(z.array(z.string())).default({}),
9
+ toolPatterns: z.record(z.string(), z.array(z.string())).default({}),
10
10
  approvedDirectories: z.array(PersistedApprovedDirectorySchema).default([])
11
11
  }).strict();
12
12
  const DEFAULT_APPROVAL_STATE = {
@@ -24,16 +24,18 @@ __export(events_exports, {
24
24
  BaseTypedEventEmitter: () => BaseTypedEventEmitter,
25
25
  EVENT_NAMES: () => EVENT_NAMES,
26
26
  EventNames: () => EventNames,
27
+ FORWARDED_SESSION_EVENT_NAMES: () => FORWARDED_SESSION_EVENT_NAMES,
27
28
  INTEGRATION_EVENTS: () => INTEGRATION_EVENTS,
28
29
  SESSION_EVENT_NAMES: () => SESSION_EVENT_NAMES,
30
+ SESSION_ONLY_EVENT_NAMES: () => SESSION_ONLY_EVENT_NAMES,
29
31
  STREAMING_EVENTS: () => STREAMING_EVENTS,
30
32
  SessionEventBus: () => SessionEventBus,
31
33
  SessionEventNames: () => SessionEventNames,
32
34
  TypedEventEmitter: () => TypedEventEmitter,
33
- eventBus: () => eventBus
35
+ eventBus: () => eventBus,
36
+ forwardSessionEventsToAgentBus: () => forwardSessionEventsToAgentBus
34
37
  });
35
38
  module.exports = __toCommonJS(events_exports);
36
- var import_events = require("events");
37
39
  const AGENT_EVENT_NAMES = [
38
40
  "session:reset",
39
41
  "session:created",
@@ -62,7 +64,7 @@ const AGENT_EVENT_NAMES = [
62
64
  "tool:background",
63
65
  "tool:background-completed"
64
66
  ];
65
- const SESSION_EVENT_NAMES = [
67
+ const FORWARDED_SESSION_EVENT_NAMES = [
66
68
  "llm:thinking",
67
69
  "llm:chunk",
68
70
  "llm:response",
@@ -71,7 +73,6 @@ const SESSION_EVENT_NAMES = [
71
73
  "llm:tool-call-partial",
72
74
  "llm:tool-result",
73
75
  "llm:error",
74
- "llm:switched",
75
76
  "llm:unsupported-input",
76
77
  "tool:running",
77
78
  "context:compacting",
@@ -82,6 +83,11 @@ const SESSION_EVENT_NAMES = [
82
83
  "message:removed",
83
84
  "run:complete"
84
85
  ];
86
+ const SESSION_ONLY_EVENT_NAMES = ["llm:switched"];
87
+ const SESSION_EVENT_NAMES = [
88
+ ...FORWARDED_SESSION_EVENT_NAMES,
89
+ ...SESSION_ONLY_EVENT_NAMES
90
+ ];
85
91
  const EVENT_NAMES = [...AGENT_EVENT_NAMES, ...SESSION_EVENT_NAMES];
86
92
  const STREAMING_EVENTS = [
87
93
  // LLM events (session-scoped, forwarded to agent bus with sessionId)
@@ -141,16 +147,48 @@ const SessionEventNames = Object.freeze([
141
147
  ]);
142
148
  const EventNames = Object.freeze([...EVENT_NAMES]);
143
149
  class BaseTypedEventEmitter {
144
- // Wrapped EventEmitter instance
145
- _emitter = new import_events.EventEmitter();
146
- // Store listeners with their abort controllers for cleanup
147
- // Maps AbortSignal -> Event Name -> Set of listener functions
150
+ _listeners = {};
148
151
  _abortListeners = /* @__PURE__ */ new WeakMap();
152
+ getOrCreateListeners(event) {
153
+ let listeners = this._listeners[event];
154
+ if (listeners === void 0) {
155
+ listeners = /* @__PURE__ */ new Set();
156
+ this._listeners[event] = listeners;
157
+ }
158
+ return listeners;
159
+ }
160
+ registerAbortCleanup(signal, cleanup) {
161
+ let cleanups = this._abortListeners.get(signal);
162
+ if (cleanups === void 0) {
163
+ cleanups = /* @__PURE__ */ new Set();
164
+ this._abortListeners.set(signal, cleanups);
165
+ }
166
+ cleanups.add(cleanup);
167
+ signal.addEventListener("abort", cleanup, { once: true });
168
+ }
169
+ unregisterAbortCleanup(signal, cleanup) {
170
+ const cleanups = this._abortListeners.get(signal);
171
+ if (cleanups === void 0) {
172
+ return;
173
+ }
174
+ cleanups.delete(cleanup);
175
+ signal.removeEventListener("abort", cleanup);
176
+ if (cleanups.size === 0) {
177
+ this._abortListeners.delete(signal);
178
+ }
179
+ }
149
180
  /**
150
181
  * Emit an event with type-safe payload
151
182
  */
152
183
  emit(event, ...args) {
153
- return this._emitter.emit(event, ...args);
184
+ const listeners = this._listeners[event];
185
+ if (listeners === void 0 || listeners.size === 0) {
186
+ return false;
187
+ }
188
+ for (const listener of [...listeners]) {
189
+ listener(...args);
190
+ }
191
+ return true;
154
192
  }
155
193
  /**
156
194
  * Subscribe to an event with type-safe listener
@@ -159,34 +197,15 @@ class BaseTypedEventEmitter {
159
197
  if (options?.signal?.aborted) {
160
198
  return this;
161
199
  }
162
- this._emitter.on(event, listener);
200
+ const listeners = this.getOrCreateListeners(event);
201
+ listeners.add(listener);
163
202
  if (options?.signal) {
164
203
  const signal = options.signal;
165
- if (!this._abortListeners.has(signal)) {
166
- this._abortListeners.set(signal, /* @__PURE__ */ new Map());
167
- }
168
- const eventMap = this._abortListeners.get(signal);
169
- if (!eventMap.has(event)) {
170
- eventMap.set(event, /* @__PURE__ */ new Set());
171
- }
172
- eventMap.get(event).add(listener);
173
- const abortHandler = () => {
204
+ const cleanup = () => {
174
205
  this.off(event, listener);
175
- const eventMap2 = this._abortListeners.get(signal);
176
- if (eventMap2) {
177
- const listenerSet = eventMap2.get(event);
178
- if (listenerSet) {
179
- listenerSet.delete(listener);
180
- if (listenerSet.size === 0) {
181
- eventMap2.delete(event);
182
- }
183
- }
184
- if (eventMap2.size === 0) {
185
- this._abortListeners.delete(signal);
186
- }
187
- }
206
+ this.unregisterAbortCleanup(signal, cleanup);
188
207
  };
189
- signal.addEventListener("abort", abortHandler, { once: true });
208
+ this.registerAbortCleanup(signal, cleanup);
190
209
  }
191
210
  return this;
192
211
  }
@@ -197,52 +216,24 @@ class BaseTypedEventEmitter {
197
216
  if (options?.signal?.aborted) {
198
217
  return this;
199
218
  }
219
+ let cleanupAbortListener;
200
220
  const onceWrapper = (...args) => {
201
- if (options?.signal) {
202
- const eventMap = this._abortListeners.get(options.signal);
203
- if (eventMap) {
204
- const listenerSet = eventMap.get(event);
205
- if (listenerSet) {
206
- listenerSet.delete(onceWrapper);
207
- if (listenerSet.size === 0) {
208
- eventMap.delete(event);
209
- }
210
- }
211
- if (eventMap.size === 0) {
212
- this._abortListeners.delete(options.signal);
213
- }
214
- }
221
+ this.off(event, onceWrapper);
222
+ if (cleanupAbortListener !== void 0 && options?.signal) {
223
+ this.unregisterAbortCleanup(options.signal, cleanupAbortListener);
224
+ cleanupAbortListener = void 0;
215
225
  }
216
226
  listener(...args);
217
227
  };
218
- this._emitter.once(event, onceWrapper);
228
+ this.getOrCreateListeners(event).add(onceWrapper);
219
229
  if (options?.signal) {
220
230
  const signal = options.signal;
221
- if (!this._abortListeners.has(signal)) {
222
- this._abortListeners.set(signal, /* @__PURE__ */ new Map());
223
- }
224
- const eventMap = this._abortListeners.get(signal);
225
- if (!eventMap.has(event)) {
226
- eventMap.set(event, /* @__PURE__ */ new Set());
227
- }
228
- eventMap.get(event).add(onceWrapper);
229
- const abortHandler = () => {
231
+ const abortCleanup = () => {
230
232
  this.off(event, onceWrapper);
231
- const eventMap2 = this._abortListeners.get(signal);
232
- if (eventMap2) {
233
- const listenerSet = eventMap2.get(event);
234
- if (listenerSet) {
235
- listenerSet.delete(onceWrapper);
236
- if (listenerSet.size === 0) {
237
- eventMap2.delete(event);
238
- }
239
- }
240
- if (eventMap2.size === 0) {
241
- this._abortListeners.delete(signal);
242
- }
243
- }
233
+ this.unregisterAbortCleanup(signal, abortCleanup);
244
234
  };
245
- signal.addEventListener("abort", abortHandler, { once: true });
235
+ cleanupAbortListener = abortCleanup;
236
+ this.registerAbortCleanup(signal, abortCleanup);
246
237
  }
247
238
  return this;
248
239
  }
@@ -250,14 +241,21 @@ class BaseTypedEventEmitter {
250
241
  * Unsubscribe from an event
251
242
  */
252
243
  off(event, listener) {
253
- this._emitter.off(event, listener);
244
+ const listeners = this._listeners[event];
245
+ if (listeners === void 0) {
246
+ return this;
247
+ }
248
+ listeners.delete(listener);
249
+ if (listeners.size === 0) {
250
+ delete this._listeners[event];
251
+ }
254
252
  return this;
255
253
  }
256
254
  /**
257
255
  * Configure max listeners for this event bus to avoid noisy warnings when many subscribers exist.
258
256
  */
259
257
  setMaxListeners(count) {
260
- this._emitter.setMaxListeners(count);
258
+ void count;
261
259
  return this;
262
260
  }
263
261
  }
@@ -265,9 +263,143 @@ class AgentEventBus extends BaseTypedEventEmitter {
265
263
  }
266
264
  class SessionEventBus extends BaseTypedEventEmitter {
267
265
  }
268
- class TypedEventEmitter extends BaseTypedEventEmitter {
266
+ class TypedEventEmitter extends AgentEventBus {
269
267
  }
270
268
  const eventBus = new TypedEventEmitter().setMaxListeners(200);
269
+ function withForwardedSessionContext(payload, sessionId, hostRuntime) {
270
+ if (payload.hostRuntime !== void 0 || hostRuntime === void 0) {
271
+ return {
272
+ ...payload,
273
+ sessionId
274
+ };
275
+ }
276
+ return {
277
+ ...payload,
278
+ sessionId,
279
+ hostRuntime
280
+ };
281
+ }
282
+ function forwardSessionEventsToAgentBus({
283
+ sessionEventBus,
284
+ agentEventBus,
285
+ sessionId,
286
+ hostRuntime
287
+ }) {
288
+ const cleanups = [];
289
+ const on = (event, listener) => {
290
+ sessionEventBus.on(event, listener);
291
+ cleanups.push(() => {
292
+ sessionEventBus.off(event, listener);
293
+ });
294
+ };
295
+ on("llm:thinking", (payload) => {
296
+ agentEventBus.emit(
297
+ "llm:thinking",
298
+ withForwardedSessionContext(payload, sessionId, hostRuntime)
299
+ );
300
+ });
301
+ on("llm:chunk", (payload) => {
302
+ agentEventBus.emit(
303
+ "llm:chunk",
304
+ withForwardedSessionContext(payload, sessionId, hostRuntime)
305
+ );
306
+ });
307
+ on("llm:response", (payload) => {
308
+ agentEventBus.emit(
309
+ "llm:response",
310
+ withForwardedSessionContext(payload, sessionId, hostRuntime)
311
+ );
312
+ });
313
+ on("llm:rate-limit-status", (payload) => {
314
+ agentEventBus.emit(
315
+ "llm:rate-limit-status",
316
+ withForwardedSessionContext(payload, sessionId, hostRuntime)
317
+ );
318
+ });
319
+ on("llm:tool-call", (payload) => {
320
+ agentEventBus.emit(
321
+ "llm:tool-call",
322
+ withForwardedSessionContext(payload, sessionId, hostRuntime)
323
+ );
324
+ });
325
+ on("llm:tool-call-partial", (payload) => {
326
+ agentEventBus.emit(
327
+ "llm:tool-call-partial",
328
+ withForwardedSessionContext(payload, sessionId, hostRuntime)
329
+ );
330
+ });
331
+ on("llm:tool-result", (payload) => {
332
+ agentEventBus.emit(
333
+ "llm:tool-result",
334
+ withForwardedSessionContext(payload, sessionId, hostRuntime)
335
+ );
336
+ });
337
+ on("llm:error", (payload) => {
338
+ agentEventBus.emit(
339
+ "llm:error",
340
+ withForwardedSessionContext(payload, sessionId, hostRuntime)
341
+ );
342
+ });
343
+ on("llm:unsupported-input", (payload) => {
344
+ agentEventBus.emit(
345
+ "llm:unsupported-input",
346
+ withForwardedSessionContext(payload, sessionId, hostRuntime)
347
+ );
348
+ });
349
+ on("tool:running", (payload) => {
350
+ agentEventBus.emit(
351
+ "tool:running",
352
+ withForwardedSessionContext(payload, sessionId, hostRuntime)
353
+ );
354
+ });
355
+ on("context:compacting", (payload) => {
356
+ agentEventBus.emit(
357
+ "context:compacting",
358
+ withForwardedSessionContext(payload, sessionId, hostRuntime)
359
+ );
360
+ });
361
+ on("context:compacted", (payload) => {
362
+ agentEventBus.emit(
363
+ "context:compacted",
364
+ withForwardedSessionContext(payload, sessionId, hostRuntime)
365
+ );
366
+ });
367
+ on("context:pruned", (payload) => {
368
+ agentEventBus.emit(
369
+ "context:pruned",
370
+ withForwardedSessionContext(payload, sessionId, hostRuntime)
371
+ );
372
+ });
373
+ on("message:queued", (payload) => {
374
+ agentEventBus.emit(
375
+ "message:queued",
376
+ withForwardedSessionContext(payload, sessionId, hostRuntime)
377
+ );
378
+ });
379
+ on("message:dequeued", (payload) => {
380
+ agentEventBus.emit(
381
+ "message:dequeued",
382
+ withForwardedSessionContext(payload, sessionId, hostRuntime)
383
+ );
384
+ });
385
+ on("message:removed", (payload) => {
386
+ agentEventBus.emit(
387
+ "message:removed",
388
+ withForwardedSessionContext(payload, sessionId, hostRuntime)
389
+ );
390
+ });
391
+ on("run:complete", (payload) => {
392
+ agentEventBus.emit(
393
+ "run:complete",
394
+ withForwardedSessionContext(payload, sessionId, hostRuntime)
395
+ );
396
+ });
397
+ return () => {
398
+ for (const cleanup of cleanups) {
399
+ cleanup();
400
+ }
401
+ };
402
+ }
271
403
  // Annotate the CommonJS export names for ESM import in node:
272
404
  0 && (module.exports = {
273
405
  AGENT_EVENT_NAMES,
@@ -276,11 +408,14 @@ const eventBus = new TypedEventEmitter().setMaxListeners(200);
276
408
  BaseTypedEventEmitter,
277
409
  EVENT_NAMES,
278
410
  EventNames,
411
+ FORWARDED_SESSION_EVENT_NAMES,
279
412
  INTEGRATION_EVENTS,
280
413
  SESSION_EVENT_NAMES,
414
+ SESSION_ONLY_EVENT_NAMES,
281
415
  STREAMING_EVENTS,
282
416
  SessionEventBus,
283
417
  SessionEventNames,
284
418
  TypedEventEmitter,
285
- eventBus
419
+ eventBus,
420
+ forwardSessionEventsToAgentBus
286
421
  });