@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":"decorators.d.ts","sourceRoot":"","sources":["../../src/telemetry/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,QAAQ,EAIX,MAAM,oBAAoB,CAAC;AAM5B,wBAAgB,QAAQ,CAAC,OAAO,EAAE;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,GAAG,CAqNN;AAGD,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB,IACoB,CAAC,SAAS;IAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;CAAE,EAAE,QAAQ,CAAC,OA4BrE"}
1
+ {"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../../src/telemetry/decorators.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,QAAQ,EAIX,MAAM,oBAAoB,CAAC;AAO5B,wBAAgB,QAAQ,CAAC,OAAO,EAAE;IAC9B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB,GAAG,GAAG,CAgON;AAGD,wBAAgB,eAAe,CAAC,OAAO,CAAC,EAAE;IACtC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,QAAQ,CAAC;IACpB,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,MAAM,KAAK,OAAO,CAAC;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB,IACoB,CAAC,SAAS;IAAE,KAAK,GAAG,IAAI,EAAE,GAAG,EAAE,GAAG,EAAE,CAAA;CAAE,EAAE,QAAQ,CAAC,OA6BrE"}
@@ -8,6 +8,7 @@ import {
8
8
  } from "@opentelemetry/api";
9
9
  import { hasActiveTelemetry, getBaggageValues } from "./utils.js";
10
10
  import { safeStringify } from "../utils/safe-stringify.js";
11
+ import { getHostRuntimeAttributes, getHostRuntimeBaggageEntries } from "../runtime/index.js";
11
12
  function withSpan(options) {
12
13
  return function(_target, propertyKey, descriptor) {
13
14
  if (!descriptor || typeof descriptor === "number") return;
@@ -36,7 +37,15 @@ function withSpan(options) {
36
37
  args.forEach((arg, index) => {
37
38
  span.setAttribute(`${spanName}.argument.${index}`, safeStringify(arg, 8192));
38
39
  });
39
- const { requestId, componentName, runId, threadId, resourceId, sessionId } = getBaggageValues(ctx);
40
+ const {
41
+ requestId,
42
+ componentName,
43
+ runId,
44
+ threadId,
45
+ resourceId,
46
+ sessionId,
47
+ hostRuntime
48
+ } = getBaggageValues(ctx);
40
49
  if (sessionId) {
41
50
  span.setAttribute("sessionId", sessionId);
42
51
  span.setAttribute("baggage.sessionId", sessionId);
@@ -57,65 +66,73 @@ function withSpan(options) {
57
66
  span.setAttribute("runId", String(runId));
58
67
  span.setAttribute("baggage.runId", String(runId));
59
68
  }
69
+ for (const [key, value] of Object.entries(getHostRuntimeAttributes(hostRuntime))) {
70
+ span.setAttribute(key, value);
71
+ }
72
+ const inferredComponentName = options?.componentName;
73
+ const effectiveHostRuntime = hostRuntime;
74
+ const effectiveRunId = effectiveHostRuntime?.ids?.runId ?? runId;
60
75
  if (componentName) {
61
76
  span.setAttribute("componentName", componentName);
62
77
  span.setAttribute("baggage.componentName", componentName);
63
- } else if (this && typeof this === "object") {
64
- const contextObj = this;
65
- const inferredName = contextObj.name ?? contextObj.constructor?.name;
66
- if (inferredName) {
67
- span.setAttribute("componentName", inferredName);
68
- }
69
- if (contextObj.runId) {
70
- span.setAttribute("runId", contextObj.runId);
71
- span.setAttribute("baggage.runId", contextObj.runId);
72
- }
73
- const existingBaggage = propagation.getBaggage(ctx);
74
- const baggageEntries = {};
75
- if (existingBaggage) {
76
- existingBaggage.getAllEntries().forEach(([key, entry]) => {
77
- baggageEntries[key] = entry;
78
- });
79
- }
80
- if (sessionId !== void 0) {
81
- baggageEntries.sessionId = {
82
- ...baggageEntries.sessionId,
83
- value: String(sessionId)
84
- };
85
- }
86
- if (requestId !== void 0) {
87
- baggageEntries["http.request_id"] = {
88
- ...baggageEntries["http.request_id"],
89
- value: String(requestId)
90
- };
91
- }
92
- if (threadId !== void 0) {
93
- baggageEntries.threadId = {
94
- ...baggageEntries.threadId,
95
- value: String(threadId)
96
- };
97
- }
98
- if (resourceId !== void 0) {
99
- baggageEntries.resourceId = {
100
- ...baggageEntries.resourceId,
101
- value: String(resourceId)
102
- };
103
- }
104
- if (inferredName !== void 0) {
105
- baggageEntries.componentName = {
106
- ...baggageEntries.componentName,
107
- value: String(inferredName)
108
- };
109
- }
110
- if (contextObj.runId !== void 0) {
111
- baggageEntries.runId = {
112
- ...baggageEntries.runId,
113
- value: String(contextObj.runId)
114
- };
115
- }
116
- if (Object.keys(baggageEntries).length > 0) {
117
- ctx = propagation.setBaggage(ctx, propagation.createBaggage(baggageEntries));
118
- }
78
+ } else if (inferredComponentName) {
79
+ span.setAttribute("componentName", inferredComponentName);
80
+ }
81
+ if (effectiveRunId !== void 0) {
82
+ span.setAttribute("runId", String(effectiveRunId));
83
+ span.setAttribute("baggage.runId", String(effectiveRunId));
84
+ }
85
+ for (const [key, value] of Object.entries(
86
+ getHostRuntimeAttributes(effectiveHostRuntime)
87
+ )) {
88
+ span.setAttribute(key, value);
89
+ }
90
+ const existingBaggage = propagation.getBaggage(ctx);
91
+ const baggageEntries = {};
92
+ if (existingBaggage) {
93
+ existingBaggage.getAllEntries().forEach(([key, entry]) => {
94
+ baggageEntries[key] = entry;
95
+ });
96
+ }
97
+ if (sessionId !== void 0) {
98
+ baggageEntries.sessionId = {
99
+ ...baggageEntries.sessionId,
100
+ value: String(sessionId)
101
+ };
102
+ }
103
+ if (requestId !== void 0) {
104
+ baggageEntries["http.request_id"] = {
105
+ ...baggageEntries["http.request_id"],
106
+ value: String(requestId)
107
+ };
108
+ }
109
+ if (threadId !== void 0) {
110
+ baggageEntries.threadId = {
111
+ ...baggageEntries.threadId,
112
+ value: String(threadId)
113
+ };
114
+ }
115
+ if (resourceId !== void 0) {
116
+ baggageEntries.resourceId = {
117
+ ...baggageEntries.resourceId,
118
+ value: String(resourceId)
119
+ };
120
+ }
121
+ if (componentName === void 0 && inferredComponentName !== void 0) {
122
+ baggageEntries.componentName = {
123
+ ...baggageEntries.componentName,
124
+ value: String(inferredComponentName)
125
+ };
126
+ }
127
+ if (effectiveRunId !== void 0) {
128
+ baggageEntries.runId = {
129
+ ...baggageEntries.runId,
130
+ value: String(effectiveRunId)
131
+ };
132
+ }
133
+ Object.assign(baggageEntries, getHostRuntimeBaggageEntries(effectiveHostRuntime));
134
+ if (Object.keys(baggageEntries).length > 0) {
135
+ ctx = propagation.setBaggage(ctx, propagation.createBaggage(baggageEntries));
119
136
  }
120
137
  let result;
121
138
  try {
@@ -180,6 +197,7 @@ function InstrumentClass(options) {
180
197
  spanName: options?.prefix ? `${options.prefix}.${method}` : method,
181
198
  skipIfNoTelemetry: true,
182
199
  spanKind: options?.spanKind || SpanKind.INTERNAL,
200
+ componentName: options?.componentName ?? target.name,
183
201
  ...options?.tracerName !== void 0 && {
184
202
  tracerName: options.tracerName
185
203
  }
@@ -58,7 +58,7 @@ const OtelConfigurationSchema = import_zod.z.object({
58
58
  import_zod.z.string().regex(/^[\w.-]+:\d+$/)
59
59
  // host:port
60
60
  ]).optional(),
61
- headers: import_zod.z.record(import_zod.z.string()).optional()
61
+ headers: import_zod.z.record(import_zod.z.string(), import_zod.z.string()).optional()
62
62
  }),
63
63
  import_zod.z.object({
64
64
  type: import_zod.z.literal("console")
@@ -3,52 +3,17 @@ export declare const OtelConfigurationSchema: z.ZodObject<{
3
3
  serviceName: z.ZodOptional<z.ZodString>;
4
4
  enabled: z.ZodOptional<z.ZodBoolean>;
5
5
  tracerName: z.ZodOptional<z.ZodString>;
6
- export: z.ZodOptional<z.ZodUnion<[z.ZodObject<{
6
+ export: z.ZodOptional<z.ZodUnion<readonly [z.ZodObject<{
7
7
  type: z.ZodLiteral<"otlp">;
8
- protocol: z.ZodOptional<z.ZodEnum<["grpc", "http"]>>;
9
- endpoint: z.ZodOptional<z.ZodUnion<[z.ZodString, z.ZodString]>>;
8
+ protocol: z.ZodOptional<z.ZodEnum<{
9
+ http: "http";
10
+ grpc: "grpc";
11
+ }>>;
12
+ endpoint: z.ZodOptional<z.ZodUnion<readonly [z.ZodString, z.ZodString]>>;
10
13
  headers: z.ZodOptional<z.ZodRecord<z.ZodString, z.ZodString>>;
11
- }, "strip", z.ZodTypeAny, {
12
- type: "otlp";
13
- headers?: Record<string, string> | undefined;
14
- protocol?: "http" | "grpc" | undefined;
15
- endpoint?: string | undefined;
16
- }, {
17
- type: "otlp";
18
- headers?: Record<string, string> | undefined;
19
- protocol?: "http" | "grpc" | undefined;
20
- endpoint?: string | undefined;
21
- }>, z.ZodObject<{
14
+ }, z.core.$strip>, z.ZodObject<{
22
15
  type: z.ZodLiteral<"console">;
23
- }, "strip", z.ZodTypeAny, {
24
- type: "console";
25
- }, {
26
- type: "console";
27
- }>]>>;
28
- }, "strip", z.ZodTypeAny, {
29
- enabled?: boolean | undefined;
30
- serviceName?: string | undefined;
31
- tracerName?: string | undefined;
32
- export?: {
33
- type: "otlp";
34
- headers?: Record<string, string> | undefined;
35
- protocol?: "http" | "grpc" | undefined;
36
- endpoint?: string | undefined;
37
- } | {
38
- type: "console";
39
- } | undefined;
40
- }, {
41
- enabled?: boolean | undefined;
42
- serviceName?: string | undefined;
43
- tracerName?: string | undefined;
44
- export?: {
45
- type: "otlp";
46
- headers?: Record<string, string> | undefined;
47
- protocol?: "http" | "grpc" | undefined;
48
- endpoint?: string | undefined;
49
- } | {
50
- type: "console";
51
- } | undefined;
52
- }>;
16
+ }, z.core.$strip>]>>;
17
+ }, z.core.$strip>;
53
18
  export type OtelConfiguration = z.output<typeof OtelConfigurationSchema>;
54
19
  //# sourceMappingURL=schemas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/telemetry/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA6ClC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/telemetry/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;iBA6ClC,CAAC;AAEH,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAC"}
@@ -36,7 +36,7 @@ const OtelConfigurationSchema = z.object({
36
36
  z.string().regex(/^[\w.-]+:\d+$/)
37
37
  // host:port
38
38
  ]).optional(),
39
- headers: z.record(z.string()).optional()
39
+ headers: z.record(z.string(), z.string()).optional()
40
40
  }),
41
41
  z.object({
42
42
  type: z.literal("console")
@@ -25,6 +25,7 @@ __export(utils_exports, {
25
25
  module.exports = __toCommonJS(utils_exports);
26
26
  var import_api = require("@opentelemetry/api");
27
27
  var import_telemetry = require("./telemetry.js");
28
+ var import_runtime = require("../runtime/index.js");
28
29
  function hasActiveTelemetry(logger) {
29
30
  logger?.silly("hasActiveTelemetry called.");
30
31
  try {
@@ -48,8 +49,9 @@ function getBaggageValues(ctx, logger) {
48
49
  const threadId = currentBaggage?.getEntry("threadId")?.value;
49
50
  const resourceId = currentBaggage?.getEntry("resourceId")?.value;
50
51
  const sessionId = currentBaggage?.getEntry("sessionId")?.value;
52
+ const hostRuntime = (0, import_runtime.getHostRuntimeContextFromBaggage)(ctx);
51
53
  logger?.silly(
52
- `getBaggageValues: Extracted - requestId: ${requestId}, componentName: ${componentName}, runId: ${runId}, threadId: ${threadId}, resourceId: ${resourceId}, sessionId: ${sessionId}`
54
+ `getBaggageValues: Extracted - requestId: ${requestId}, componentName: ${componentName}, runId: ${runId}, threadId: ${threadId}, resourceId: ${resourceId}, sessionId: ${sessionId}, hostRuntimeIds: ${JSON.stringify(hostRuntime?.ids ?? {})}`
53
55
  );
54
56
  return {
55
57
  requestId,
@@ -57,15 +59,13 @@ function getBaggageValues(ctx, logger) {
57
59
  runId,
58
60
  threadId,
59
61
  resourceId,
60
- sessionId
62
+ sessionId,
63
+ hostRuntime
61
64
  };
62
65
  }
63
66
  function addBaggageAttributesToSpan(span, ctx, logger) {
64
67
  logger?.debug("addBaggageAttributesToSpan called.");
65
- const { requestId, componentName, runId, threadId, resourceId, sessionId } = getBaggageValues(
66
- ctx,
67
- logger
68
- );
68
+ const { requestId, componentName, runId, threadId, resourceId, sessionId, hostRuntime } = getBaggageValues(ctx, logger);
69
69
  if (componentName) {
70
70
  span.setAttribute("componentName", componentName);
71
71
  }
@@ -84,6 +84,9 @@ function addBaggageAttributesToSpan(span, ctx, logger) {
84
84
  if (sessionId) {
85
85
  span.setAttribute("sessionId", sessionId);
86
86
  }
87
+ for (const [key, value] of Object.entries((0, import_runtime.getHostRuntimeAttributes)(hostRuntime))) {
88
+ span.setAttribute(key, value);
89
+ }
87
90
  logger?.debug("addBaggageAttributesToSpan: Baggage attributes added to span.");
88
91
  }
89
92
  // Annotate the CommonJS export names for ESM import in node:
@@ -14,6 +14,9 @@ export declare function getBaggageValues(ctx: Context, logger?: Logger): {
14
14
  threadId: string | undefined;
15
15
  resourceId: string | undefined;
16
16
  sessionId: string | undefined;
17
+ hostRuntime: {
18
+ ids?: Record<string, string> | undefined;
19
+ } | undefined;
17
20
  };
18
21
  /**
19
22
  * Attaches baggage values from the given context to the provided span as attributes.
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/telemetry/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAGpD,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAa3D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM;;;;;;;EAoB7D;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CA0B1F"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../src/telemetry/utils.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAExD,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAC;AAIpD,wBAAgB,kBAAkB,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAa3D;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM;;;;;;;;;;EAsB7D;AAED;;;;;GAKG;AACH,wBAAgB,0BAA0B,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CA2B1F"}
@@ -1,6 +1,7 @@
1
1
  import "../chunk-PTJYTZNU.js";
2
2
  import { propagation } from "@opentelemetry/api";
3
3
  import { Telemetry } from "./telemetry.js";
4
+ import { getHostRuntimeAttributes, getHostRuntimeContextFromBaggage } from "../runtime/index.js";
4
5
  function hasActiveTelemetry(logger) {
5
6
  logger?.silly("hasActiveTelemetry called.");
6
7
  try {
@@ -24,8 +25,9 @@ function getBaggageValues(ctx, logger) {
24
25
  const threadId = currentBaggage?.getEntry("threadId")?.value;
25
26
  const resourceId = currentBaggage?.getEntry("resourceId")?.value;
26
27
  const sessionId = currentBaggage?.getEntry("sessionId")?.value;
28
+ const hostRuntime = getHostRuntimeContextFromBaggage(ctx);
27
29
  logger?.silly(
28
- `getBaggageValues: Extracted - requestId: ${requestId}, componentName: ${componentName}, runId: ${runId}, threadId: ${threadId}, resourceId: ${resourceId}, sessionId: ${sessionId}`
30
+ `getBaggageValues: Extracted - requestId: ${requestId}, componentName: ${componentName}, runId: ${runId}, threadId: ${threadId}, resourceId: ${resourceId}, sessionId: ${sessionId}, hostRuntimeIds: ${JSON.stringify(hostRuntime?.ids ?? {})}`
29
31
  );
30
32
  return {
31
33
  requestId,
@@ -33,15 +35,13 @@ function getBaggageValues(ctx, logger) {
33
35
  runId,
34
36
  threadId,
35
37
  resourceId,
36
- sessionId
38
+ sessionId,
39
+ hostRuntime
37
40
  };
38
41
  }
39
42
  function addBaggageAttributesToSpan(span, ctx, logger) {
40
43
  logger?.debug("addBaggageAttributesToSpan called.");
41
- const { requestId, componentName, runId, threadId, resourceId, sessionId } = getBaggageValues(
42
- ctx,
43
- logger
44
- );
44
+ const { requestId, componentName, runId, threadId, resourceId, sessionId, hostRuntime } = getBaggageValues(ctx, logger);
45
45
  if (componentName) {
46
46
  span.setAttribute("componentName", componentName);
47
47
  }
@@ -60,6 +60,9 @@ function addBaggageAttributesToSpan(span, ctx, logger) {
60
60
  if (sessionId) {
61
61
  span.setAttribute("sessionId", sessionId);
62
62
  }
63
+ for (const [key, value] of Object.entries(getHostRuntimeAttributes(hostRuntime))) {
64
+ span.setAttribute(key, value);
65
+ }
63
66
  logger?.debug("addBaggageAttributesToSpan: Baggage attributes added to span.");
64
67
  }
65
68
  export {
@@ -71,7 +71,7 @@ const ToolLimitsSchema = import_zod.z.object({
71
71
  maxLines: import_zod.z.number().optional().describe("Maximum number of lines for tool output"),
72
72
  maxLineLength: import_zod.z.number().optional().describe("Maximum length of a single line")
73
73
  }).strict();
74
- const ToolsConfigSchema = import_zod.z.record(ToolLimitsSchema).describe("Per-tool configuration limits");
74
+ const ToolsConfigSchema = import_zod.z.record(import_zod.z.string(), ToolLimitsSchema).describe("Per-tool configuration limits");
75
75
  // Annotate the CommonJS export names for ESM import in node:
76
76
  0 && (module.exports = {
77
77
  ALLOWED_TOOLS_STORAGE_TYPES,
@@ -6,86 +6,43 @@ export type AllowedToolsStorageType = (typeof ALLOWED_TOOLS_STORAGE_TYPES)[numbe
6
6
  export declare const DEFAULT_PERMISSIONS_MODE: PermissionsMode;
7
7
  export declare const DEFAULT_ALLOWED_TOOLS_STORAGE: AllowedToolsStorageType;
8
8
  export declare const ToolPoliciesSchema: z.ZodDefault<z.ZodObject<{
9
- alwaysAllow: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
10
- alwaysDeny: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
11
- }, "strict", z.ZodTypeAny, {
12
- alwaysAllow: string[];
13
- alwaysDeny: string[];
14
- }, {
15
- alwaysAllow?: string[] | undefined;
16
- alwaysDeny?: string[] | undefined;
17
- }>>;
9
+ alwaysAllow: z.ZodDefault<z.ZodArray<z.ZodString>>;
10
+ alwaysDeny: z.ZodDefault<z.ZodArray<z.ZodString>>;
11
+ }, z.core.$strict>>;
18
12
  export type ToolPolicies = z.output<typeof ToolPoliciesSchema>;
19
13
  export declare const PermissionsConfigSchema: z.ZodObject<{
20
- mode: z.ZodDefault<z.ZodEnum<["manual", "auto-approve", "auto-deny"]>>;
14
+ mode: z.ZodDefault<z.ZodEnum<{
15
+ manual: "manual";
16
+ "auto-approve": "auto-approve";
17
+ "auto-deny": "auto-deny";
18
+ }>>;
21
19
  timeout: z.ZodOptional<z.ZodNumber>;
22
- allowedToolsStorage: z.ZodDefault<z.ZodEnum<["memory", "storage"]>>;
23
- toolPolicies: z.ZodDefault<z.ZodObject<{
24
- alwaysAllow: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
25
- alwaysDeny: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
26
- }, "strict", z.ZodTypeAny, {
27
- alwaysAllow: string[];
28
- alwaysDeny: string[];
29
- }, {
30
- alwaysAllow?: string[] | undefined;
31
- alwaysDeny?: string[] | undefined;
20
+ allowedToolsStorage: z.ZodDefault<z.ZodEnum<{
21
+ storage: "storage";
22
+ memory: "memory";
32
23
  }>>;
33
- }, "strict", z.ZodTypeAny, {
34
- mode: "manual" | "auto-approve" | "auto-deny";
35
- allowedToolsStorage: "storage" | "memory";
36
- toolPolicies: {
37
- alwaysAllow: string[];
38
- alwaysDeny: string[];
39
- };
40
- timeout?: number | undefined;
41
- }, {
42
- timeout?: number | undefined;
43
- mode?: "manual" | "auto-approve" | "auto-deny" | undefined;
44
- allowedToolsStorage?: "storage" | "memory" | undefined;
45
- toolPolicies?: {
46
- alwaysAllow?: string[] | undefined;
47
- alwaysDeny?: string[] | undefined;
48
- } | undefined;
49
- }>;
24
+ toolPolicies: z.ZodDefault<z.ZodObject<{
25
+ alwaysAllow: z.ZodDefault<z.ZodArray<z.ZodString>>;
26
+ alwaysDeny: z.ZodDefault<z.ZodArray<z.ZodString>>;
27
+ }, z.core.$strict>>;
28
+ }, z.core.$strict>;
50
29
  export type PermissionsConfig = z.input<typeof PermissionsConfigSchema>;
51
30
  export type ValidatedPermissionsConfig = z.output<typeof PermissionsConfigSchema>;
52
31
  export declare const ElicitationConfigSchema: z.ZodObject<{
53
32
  enabled: z.ZodDefault<z.ZodBoolean>;
54
33
  timeout: z.ZodOptional<z.ZodNumber>;
55
- }, "strict", z.ZodTypeAny, {
56
- enabled: boolean;
57
- timeout?: number | undefined;
58
- }, {
59
- timeout?: number | undefined;
60
- enabled?: boolean | undefined;
61
- }>;
34
+ }, z.core.$strict>;
62
35
  export type ElicitationConfig = z.input<typeof ElicitationConfigSchema>;
63
36
  export type ValidatedElicitationConfig = z.output<typeof ElicitationConfigSchema>;
64
37
  export declare const ToolLimitsSchema: z.ZodObject<{
65
38
  maxOutputChars: z.ZodOptional<z.ZodNumber>;
66
39
  maxLines: z.ZodOptional<z.ZodNumber>;
67
40
  maxLineLength: z.ZodOptional<z.ZodNumber>;
68
- }, "strict", z.ZodTypeAny, {
69
- maxOutputChars?: number | undefined;
70
- maxLines?: number | undefined;
71
- maxLineLength?: number | undefined;
72
- }, {
73
- maxOutputChars?: number | undefined;
74
- maxLines?: number | undefined;
75
- maxLineLength?: number | undefined;
76
- }>;
41
+ }, z.core.$strict>;
77
42
  export declare const ToolsConfigSchema: z.ZodRecord<z.ZodString, z.ZodObject<{
78
43
  maxOutputChars: z.ZodOptional<z.ZodNumber>;
79
44
  maxLines: z.ZodOptional<z.ZodNumber>;
80
45
  maxLineLength: z.ZodOptional<z.ZodNumber>;
81
- }, "strict", z.ZodTypeAny, {
82
- maxOutputChars?: number | undefined;
83
- maxLines?: number | undefined;
84
- maxLineLength?: number | undefined;
85
- }, {
86
- maxOutputChars?: number | undefined;
87
- maxLines?: number | undefined;
88
- maxLineLength?: number | undefined;
89
- }>>;
46
+ }, z.core.$strict>>;
90
47
  export type ToolsConfig = z.output<typeof ToolsConfigSchema>;
91
48
  //# sourceMappingURL=schemas.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/tools/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,iBAAiB,kDAAmD,CAAC;AAClF,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjE,eAAO,MAAM,2BAA2B,gCAAiC,CAAC;AAC1E,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnF,eAAO,MAAM,wBAAwB,EAAE,eAAgC,CAAC;AACxE,eAAO,MAAM,6BAA6B,EAAE,uBAAmC,CAAC;AAGhF,eAAO,MAAM,kBAAkB;;;;;;;;;GAiB2B,CAAC;AAE3D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE/D,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EA2BwB,CAAC;AAE7D,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAGlF,eAAO,MAAM,uBAAuB;;;;;;;;;EAoB/B,CAAC;AAEN,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAGlF,eAAO,MAAM,gBAAgB;;;;;;;;;;;;EAShB,CAAC;AAEd,eAAO,MAAM,iBAAiB;;;;;;;;;;;;GAEgB,CAAC;AAE/C,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
1
+ {"version":3,"file":"schemas.d.ts","sourceRoot":"","sources":["../../src/tools/schemas.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AAExB,eAAO,MAAM,iBAAiB,kDAAmD,CAAC;AAClF,MAAM,MAAM,eAAe,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,CAAC,CAAC;AAEjE,eAAO,MAAM,2BAA2B,gCAAiC,CAAC;AAC1E,MAAM,MAAM,uBAAuB,GAAG,CAAC,OAAO,2BAA2B,CAAC,CAAC,MAAM,CAAC,CAAC;AAEnF,eAAO,MAAM,wBAAwB,EAAE,eAAgC,CAAC;AACxE,eAAO,MAAM,6BAA6B,EAAE,uBAAmC,CAAC;AAGhF,eAAO,MAAM,kBAAkB;;;mBAiB2B,CAAC;AAE3D,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,kBAAkB,CAAC,CAAC;AAE/D,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;kBA2BwB,CAAC;AAE7D,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAGlF,eAAO,MAAM,uBAAuB;;;kBAoB/B,CAAC;AAEN,MAAM,MAAM,iBAAiB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,uBAAuB,CAAC,CAAC;AACxE,MAAM,MAAM,0BAA0B,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,uBAAuB,CAAC,CAAC;AAGlF,eAAO,MAAM,gBAAgB;;;;kBAShB,CAAC;AAEd,eAAO,MAAM,iBAAiB;;;;mBAEgB,CAAC;AAE/C,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,iBAAiB,CAAC,CAAC"}
@@ -41,7 +41,7 @@ const ToolLimitsSchema = z.object({
41
41
  maxLines: z.number().optional().describe("Maximum number of lines for tool output"),
42
42
  maxLineLength: z.number().optional().describe("Maximum length of a single line")
43
43
  }).strict();
44
- const ToolsConfigSchema = z.record(ToolLimitsSchema).describe("Per-tool configuration limits");
44
+ const ToolsConfigSchema = z.record(z.string(), ToolLimitsSchema).describe("Per-tool configuration limits");
45
45
  export {
46
46
  ALLOWED_TOOLS_STORAGE_TYPES,
47
47
  DEFAULT_ALLOWED_TOOLS_STORAGE,
@@ -2,15 +2,9 @@ import { z } from 'zod';
2
2
  import type { StorageManager } from '../storage/index.js';
3
3
  import type { Logger } from '../logger/v2/types.js';
4
4
  declare const SessionToolPreferencesSchema: z.ZodObject<{
5
- userAutoApproveTools: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
6
- disabledTools: z.ZodDefault<z.ZodArray<z.ZodString, "many">>;
7
- }, "strict", z.ZodTypeAny, {
8
- userAutoApproveTools: string[];
9
- disabledTools: string[];
10
- }, {
11
- userAutoApproveTools?: string[] | undefined;
12
- disabledTools?: string[] | undefined;
13
- }>;
5
+ userAutoApproveTools: z.ZodDefault<z.ZodArray<z.ZodString>>;
6
+ disabledTools: z.ZodDefault<z.ZodArray<z.ZodString>>;
7
+ }, z.core.$strict>;
14
8
  export type SessionToolPreferences = z.output<typeof SessionToolPreferencesSchema>;
15
9
  export declare class SessionToolPreferencesStore {
16
10
  private readonly storageManager;
@@ -1 +1 @@
1
- {"version":3,"file":"session-tool-preferences-store.d.ts","sourceRoot":"","sources":["../../src/tools/session-tool-preferences-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;AAEpD,QAAA,MAAM,4BAA4B;;;;;;;;;EAKrB,CAAC;AAEd,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAOnF,qBAAa,2BAA2B;IAIhC,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,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAiBxD,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAO3E,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ9C,OAAO,CAAC,gBAAgB;CAY3B"}
1
+ {"version":3,"file":"session-tool-preferences-store.d.ts","sourceRoot":"","sources":["../../src/tools/session-tool-preferences-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;AAEpD,QAAA,MAAM,4BAA4B;;;kBAKrB,CAAC;AAEd,MAAM,MAAM,sBAAsB,GAAG,CAAC,CAAC,MAAM,CAAC,OAAO,4BAA4B,CAAC,CAAC;AAOnF,qBAAa,2BAA2B;IAIhC,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,EAAE,MAAM,GAAG,OAAO,CAAC,sBAAsB,CAAC;IAiBxD,IAAI,CAAC,SAAS,EAAE,MAAM,EAAE,WAAW,EAAE,sBAAsB,GAAG,OAAO,CAAC,IAAI,CAAC;IAO3E,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAQ9C,OAAO,CAAC,gBAAgB;CAY3B"}