@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.
- package/dist/agent/DextoAgent.cjs +75 -90
- package/dist/agent/DextoAgent.d.ts +7 -7
- package/dist/agent/DextoAgent.d.ts.map +1 -1
- package/dist/agent/DextoAgent.js +76 -91
- package/dist/agent/error-codes.cjs +1 -0
- package/dist/agent/error-codes.d.ts +1 -0
- package/dist/agent/error-codes.d.ts.map +1 -1
- package/dist/agent/error-codes.js +1 -0
- package/dist/agent/errors.cjs +13 -0
- package/dist/agent/errors.d.ts +6 -0
- package/dist/agent/errors.d.ts.map +1 -1
- package/dist/agent/errors.js +13 -0
- package/dist/agent/index.d.ts +1 -0
- package/dist/agent/index.d.ts.map +1 -1
- package/dist/agent/schemas.cjs +5 -5
- package/dist/agent/schemas.d.ts +69 -980
- package/dist/agent/schemas.d.ts.map +1 -1
- package/dist/agent/schemas.js +5 -5
- package/dist/agent/types.d.ts +11 -0
- package/dist/agent/types.d.ts.map +1 -1
- package/dist/approval/factory.cjs +1 -0
- package/dist/approval/factory.d.ts.map +1 -1
- package/dist/approval/factory.js +1 -0
- package/dist/approval/manager.cjs +19 -6
- package/dist/approval/manager.d.ts +6 -0
- package/dist/approval/manager.d.ts.map +1 -1
- package/dist/approval/manager.js +19 -6
- package/dist/approval/schemas.cjs +16 -6
- package/dist/approval/schemas.d.ts +373 -1044
- package/dist/approval/schemas.d.ts.map +1 -1
- package/dist/approval/schemas.js +16 -6
- package/dist/approval/session-approval-store.cjs +1 -1
- package/dist/approval/session-approval-store.d.ts +12 -30
- package/dist/approval/session-approval-store.d.ts.map +1 -1
- package/dist/approval/session-approval-store.js +1 -1
- package/dist/events/index.cjs +210 -75
- package/dist/events/index.d.ts +44 -181
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +206 -74
- package/dist/hooks/manager.cjs +5 -2
- package/dist/hooks/manager.d.ts +2 -0
- package/dist/hooks/manager.d.ts.map +1 -1
- package/dist/hooks/manager.js +5 -2
- package/dist/hooks/types.d.ts +3 -0
- package/dist/hooks/types.d.ts.map +1 -1
- package/dist/index.browser.d.ts +1 -0
- package/dist/index.browser.d.ts.map +1 -1
- package/dist/index.cjs +3 -1
- package/dist/index.d.ts +1 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/llm/executor/turn-executor.cjs +8 -4
- package/dist/llm/executor/turn-executor.d.ts +3 -1
- package/dist/llm/executor/turn-executor.d.ts.map +1 -1
- package/dist/llm/executor/turn-executor.js +8 -4
- package/dist/llm/providers/local/schemas.d.ts +102 -262
- package/dist/llm/providers/local/schemas.d.ts.map +1 -1
- package/dist/llm/registry/index.d.ts +5 -3
- package/dist/llm/registry/index.d.ts.map +1 -1
- package/dist/llm/resolver.cjs +0 -1
- package/dist/llm/resolver.d.ts.map +1 -1
- package/dist/llm/resolver.js +0 -1
- package/dist/llm/schemas.d.ts +95 -199
- package/dist/llm/schemas.d.ts.map +1 -1
- package/dist/llm/services/vercel.cjs +29 -6
- package/dist/llm/services/vercel.d.ts +3 -0
- package/dist/llm/services/vercel.d.ts.map +1 -1
- package/dist/llm/services/vercel.js +27 -5
- package/dist/logger/default-logger-factory.d.ts +28 -256
- package/dist/logger/default-logger-factory.d.ts.map +1 -1
- package/dist/logger/v2/schemas.d.ts +18 -120
- package/dist/logger/v2/schemas.d.ts.map +1 -1
- package/dist/mcp/manager.cjs +7 -2
- package/dist/mcp/manager.d.ts +3 -1
- package/dist/mcp/manager.d.ts.map +1 -1
- package/dist/mcp/manager.js +7 -2
- package/dist/mcp/mcp-client.cjs +71 -62
- package/dist/mcp/mcp-client.d.ts +3 -2
- package/dist/mcp/mcp-client.d.ts.map +1 -1
- package/dist/mcp/mcp-client.js +71 -62
- package/dist/mcp/schemas.cjs +4 -4
- package/dist/mcp/schemas.d.ts +77 -270
- package/dist/mcp/schemas.d.ts.map +1 -1
- package/dist/mcp/schemas.js +4 -4
- package/dist/memory/schemas.d.ts +37 -117
- package/dist/memory/schemas.d.ts.map +1 -1
- package/dist/prompts/schemas.d.ts +46 -190
- package/dist/prompts/schemas.d.ts.map +1 -1
- package/dist/resources/handlers/filesystem-handler.cjs +22 -3
- package/dist/resources/handlers/filesystem-handler.d.ts.map +1 -1
- package/dist/resources/handlers/filesystem-handler.js +22 -3
- package/dist/resources/schemas.d.ts +14 -68
- package/dist/resources/schemas.d.ts.map +1 -1
- package/dist/runtime/host-runtime.cjs +163 -0
- package/dist/runtime/host-runtime.d.ts +19 -0
- package/dist/runtime/host-runtime.d.ts.map +1 -0
- package/dist/runtime/host-runtime.js +133 -0
- package/dist/runtime/index.cjs +42 -0
- package/dist/runtime/index.d.ts +2 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +21 -0
- package/dist/runtime/run-context.cjs +53 -0
- package/dist/runtime/run-context.d.ts +13 -0
- package/dist/runtime/run-context.d.ts.map +1 -0
- package/dist/runtime/run-context.js +34 -0
- package/dist/session/chat-session.cjs +30 -32
- package/dist/session/chat-session.d.ts +5 -15
- package/dist/session/chat-session.d.ts.map +1 -1
- package/dist/session/chat-session.js +31 -33
- package/dist/session/error-codes.cjs +1 -0
- package/dist/session/error-codes.d.ts +2 -1
- package/dist/session/error-codes.d.ts.map +1 -1
- package/dist/session/error-codes.js +1 -0
- package/dist/session/errors.cjs +13 -0
- package/dist/session/errors.d.ts +6 -0
- package/dist/session/errors.d.ts.map +1 -1
- package/dist/session/errors.js +13 -0
- package/dist/session/schemas.d.ts +1 -7
- package/dist/session/schemas.d.ts.map +1 -1
- package/dist/systemPrompt/schemas.cjs +2 -10
- package/dist/systemPrompt/schemas.d.ts +53 -343
- package/dist/systemPrompt/schemas.d.ts.map +1 -1
- package/dist/systemPrompt/schemas.js +2 -10
- package/dist/telemetry/decorators.cjs +75 -57
- package/dist/telemetry/decorators.d.ts +2 -0
- package/dist/telemetry/decorators.d.ts.map +1 -1
- package/dist/telemetry/decorators.js +75 -57
- package/dist/telemetry/schemas.cjs +1 -1
- package/dist/telemetry/schemas.d.ts +9 -44
- package/dist/telemetry/schemas.d.ts.map +1 -1
- package/dist/telemetry/schemas.js +1 -1
- package/dist/telemetry/utils.cjs +9 -6
- package/dist/telemetry/utils.d.ts +3 -0
- package/dist/telemetry/utils.d.ts.map +1 -1
- package/dist/telemetry/utils.js +9 -6
- package/dist/tools/schemas.cjs +1 -1
- package/dist/tools/schemas.d.ts +19 -62
- package/dist/tools/schemas.d.ts.map +1 -1
- package/dist/tools/schemas.js +1 -1
- package/dist/tools/session-tool-preferences-store.d.ts +3 -9
- package/dist/tools/session-tool-preferences-store.d.ts.map +1 -1
- package/dist/tools/tool-manager.cjs +92 -36
- package/dist/tools/tool-manager.d.ts +12 -3
- package/dist/tools/tool-manager.d.ts.map +1 -1
- package/dist/tools/tool-manager.js +92 -36
- package/dist/tools/types.d.ts +7 -1
- package/dist/tools/types.d.ts.map +1 -1
- package/dist/utils/result.cjs +11 -8
- package/dist/utils/result.d.ts +6 -6
- package/dist/utils/result.d.ts.map +1 -1
- package/dist/utils/result.js +12 -9
- package/dist/utils/schema.cjs +6 -2
- package/dist/utils/schema.d.ts +2 -7
- package/dist/utils/schema.d.ts.map +1 -1
- package/dist/utils/schema.js +6 -2
- package/dist/utils/zod-schema-converter.cjs +66 -66
- package/dist/utils/zod-schema-converter.d.ts +3 -2
- package/dist/utils/zod-schema-converter.d.ts.map +1 -1
- package/dist/utils/zod-schema-converter.js +66 -66
- package/package.json +4 -5
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/approval/schemas.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,2BAA2B,CAAC;AAEjE,OAAO,KAAK,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/approval/schemas.ts"],"names":[],"mappings":"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"}
|
package/dist/approval/schemas.js
CHANGED
|
@@ -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
|
-
|
|
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<
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
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
|
|
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<
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
},
|
|
23
|
-
|
|
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
|
|
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 = {
|
package/dist/events/index.cjs
CHANGED
|
@@ -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
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
200
|
+
const listeners = this.getOrCreateListeners(event);
|
|
201
|
+
listeners.add(listener);
|
|
163
202
|
if (options?.signal) {
|
|
164
203
|
const signal = options.signal;
|
|
165
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
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.
|
|
228
|
+
this.getOrCreateListeners(event).add(onceWrapper);
|
|
219
229
|
if (options?.signal) {
|
|
220
230
|
const signal = options.signal;
|
|
221
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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
|
-
|
|
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
|
|
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
|
});
|