@lumenflow/kernel 3.0.0 → 3.1.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.
@@ -10,7 +10,7 @@ import { KERNEL_EVENT_KINDS, TOOL_TRACE_KINDS, isRunLifecycleEventKind, } from '
10
10
  import { EXECUTION_METADATA_KEYS, KERNEL_POLICY_IDS, KERNEL_RUNTIME_EVENTS_DIR_NAME, KERNEL_RUNTIME_EVENTS_FILE_NAME, KERNEL_RUNTIME_EVENTS_LOCK_FILE_NAME, KERNEL_RUNTIME_EVIDENCE_DIR_NAME, KERNEL_RUNTIME_ROOT_DIR_NAME, KERNEL_RUNTIME_TASKS_DIR_NAME, LUMENFLOW_DIR_NAME, LUMENFLOW_SCOPE_NAME, PACKAGES_DIR_NAME, PACKS_DIR_NAME, UTF8_ENCODING, WORKSPACE_CONFIG_HASH_CONTEXT_KEYS, WORKSPACE_FILE_NAME, } from '../shared-constants.js';
11
11
  import { EventStore, projectTaskState, } from '../event-store/index.js';
12
12
  import { EvidenceStore } from '../evidence/evidence-store.js';
13
- import { ExecutionContextSchema, RUN_STATUSES, RunSchema, TOOL_HANDLER_KINDS, TaskSpecSchema, WorkspaceSpecSchema, } from '../kernel.schemas.js';
13
+ import { ExecutionContextSchema, RUN_STATUSES, RunSchema, TOOL_ERROR_CODES, TOOL_HANDLER_KINDS, TaskSpecSchema, WorkspaceSpecSchema, } from '../kernel.schemas.js';
14
14
  import { PackLoader, resolvePackToolEntryPath } from '../pack/index.js';
15
15
  import { POLICY_TRIGGERS, PolicyEngine, } from '../policy/index.js';
16
16
  import { SandboxSubprocessDispatcher, } from '../sandbox/index.js';
@@ -25,6 +25,7 @@ const DEFAULT_PACKS_ROOT_CANDIDATES = [
25
25
  ];
26
26
  const DEFAULT_PACK_TOOL_INPUT_SCHEMA = z.record(z.string(), z.unknown());
27
27
  const DEFAULT_PACK_TOOL_OUTPUT_SCHEMA = z.record(z.string(), z.unknown());
28
+ const JSON_SCHEMA_MAX_DEPTH = 12;
28
29
  const RUNTIME_LOAD_STAGE_ERROR_PREFIX = 'Runtime load stage failed for pack';
29
30
  const RUNTIME_REGISTRATION_STAGE_ERROR_PREFIX = 'Runtime registration stage failed for tool';
30
31
  const WORKSPACE_UPDATED_INIT_SUMMARY = 'Workspace config hash initialized during runtime startup.';
@@ -116,6 +117,19 @@ function toPolicyHookDecisions(evaluation) {
116
117
  },
117
118
  ];
118
119
  }
120
+ if (evaluation.decision === 'approval_required') {
121
+ const hasApprovalRequired = evaluation.decisions.some((decision) => decision.decision === 'approval_required');
122
+ if (!hasApprovalRequired) {
123
+ return [
124
+ ...evaluation.decisions,
125
+ {
126
+ policy_id: KERNEL_POLICY_IDS.APPROVAL_REQUIRED,
127
+ decision: 'approval_required',
128
+ reason: 'Effective policy decision is approval_required.',
129
+ },
130
+ ];
131
+ }
132
+ }
119
133
  if (evaluation.decision === 'deny') {
120
134
  const hasHardDeny = evaluation.decisions.some((decision) => decision.decision === 'deny');
121
135
  if (!hasHardDeny) {
@@ -153,14 +167,185 @@ function formatRuntimeRegistrationStageError(toolName, packId) {
153
167
  function buildPackToolDescription(toolName, packId) {
154
168
  return `Pack tool ${toolName} declared by ${packId}`;
155
169
  }
170
+ function ensureJsonSchemaObject(value, context) {
171
+ if (!value || typeof value !== 'object' || Array.isArray(value)) {
172
+ throw new Error(`${context} must be a JSON Schema object`);
173
+ }
174
+ return value;
175
+ }
176
+ function parseJsonSchemaType(schema, context) {
177
+ const schemaType = schema.type;
178
+ if (typeof schemaType !== 'string') {
179
+ throw new Error(`${context}.type must be a string`);
180
+ }
181
+ return schemaType;
182
+ }
183
+ function isJsonLiteral(value) {
184
+ return (value === null ||
185
+ typeof value === 'string' ||
186
+ typeof value === 'number' ||
187
+ typeof value === 'boolean');
188
+ }
189
+ function buildEnumSchema(enumValues, context) {
190
+ if (enumValues.length === 0) {
191
+ throw new Error(`${context}.enum must not be empty`);
192
+ }
193
+ if (enumValues.every((value) => typeof value === 'string')) {
194
+ const [firstValue, ...restValues] = enumValues;
195
+ if (typeof firstValue !== 'string') {
196
+ throw new Error(`${context}.enum must include at least one string value`);
197
+ }
198
+ return z.enum([firstValue, ...restValues]);
199
+ }
200
+ if (enumValues.length === 1) {
201
+ const singleValue = enumValues[0];
202
+ if (!isJsonLiteral(singleValue)) {
203
+ throw new Error(`${context}.enum values must be JSON literal values`);
204
+ }
205
+ return z.literal(singleValue);
206
+ }
207
+ if (!enumValues.every((value) => isJsonLiteral(value))) {
208
+ throw new Error(`${context}.enum values must be JSON literal values`);
209
+ }
210
+ const literals = enumValues.map((value) => z.literal(value));
211
+ const [firstLiteral, ...restLiterals] = literals;
212
+ if (!firstLiteral) {
213
+ throw new Error(`${context}.enum must include at least one value`);
214
+ }
215
+ return z.union([firstLiteral, ...restLiterals]);
216
+ }
217
+ function buildStringSchema(schema, context) {
218
+ let resolved = z.string();
219
+ if (typeof schema.minLength === 'number') {
220
+ resolved = resolved.min(schema.minLength);
221
+ }
222
+ if (typeof schema.maxLength === 'number') {
223
+ resolved = resolved.max(schema.maxLength);
224
+ }
225
+ if (typeof schema.pattern === 'string') {
226
+ try {
227
+ resolved = resolved.regex(new RegExp(schema.pattern));
228
+ }
229
+ catch {
230
+ throw new Error(`${context}.pattern must be a valid regular expression`);
231
+ }
232
+ }
233
+ return resolved;
234
+ }
235
+ function buildNumberSchema(schema, _context, integerOnly) {
236
+ let resolved = integerOnly ? z.number().int() : z.number();
237
+ if (typeof schema.minimum === 'number') {
238
+ resolved = resolved.gte(schema.minimum);
239
+ }
240
+ if (typeof schema.maximum === 'number') {
241
+ resolved = resolved.lte(schema.maximum);
242
+ }
243
+ if (typeof schema.exclusiveMinimum === 'number') {
244
+ resolved = resolved.gt(schema.exclusiveMinimum);
245
+ }
246
+ if (typeof schema.exclusiveMaximum === 'number') {
247
+ resolved = resolved.lt(schema.exclusiveMaximum);
248
+ }
249
+ return resolved;
250
+ }
251
+ function buildObjectSchema(schema, context, depth) {
252
+ const propertiesValue = schema.properties ?? {};
253
+ if (!propertiesValue || typeof propertiesValue !== 'object' || Array.isArray(propertiesValue)) {
254
+ throw new Error(`${context}.properties must be an object when provided`);
255
+ }
256
+ const properties = propertiesValue;
257
+ const requiredValue = schema.required ?? [];
258
+ if (!Array.isArray(requiredValue)) {
259
+ throw new Error(`${context}.required must be an array when provided`);
260
+ }
261
+ const requiredKeys = new Set(requiredValue.filter((entry) => typeof entry === 'string'));
262
+ const shape = {};
263
+ for (const [key, childSchemaValue] of Object.entries(properties)) {
264
+ const childContext = `${context}.properties.${key}`;
265
+ const childSchema = buildZodSchemaFromJsonSchema(childSchemaValue, childContext, depth + 1);
266
+ shape[key] = requiredKeys.has(key) ? childSchema : childSchema.optional();
267
+ }
268
+ const additionalProperties = schema.additionalProperties;
269
+ if (additionalProperties === true) {
270
+ return z.object(shape).passthrough();
271
+ }
272
+ return z.object(shape).strict();
273
+ }
274
+ function buildArraySchema(schema, context, depth) {
275
+ if (!('items' in schema)) {
276
+ throw new Error(`${context}.items is required for array schemas`);
277
+ }
278
+ const itemSchema = buildZodSchemaFromJsonSchema(schema.items, `${context}.items`, depth + 1);
279
+ let resolved = z.array(itemSchema);
280
+ if (typeof schema.minItems === 'number') {
281
+ resolved = resolved.min(schema.minItems);
282
+ }
283
+ if (typeof schema.maxItems === 'number') {
284
+ resolved = resolved.max(schema.maxItems);
285
+ }
286
+ return resolved;
287
+ }
288
+ function buildZodSchemaFromJsonSchema(schemaValue, context, depth) {
289
+ if (depth > JSON_SCHEMA_MAX_DEPTH) {
290
+ throw new Error(`${context} exceeded maximum schema depth (${JSON_SCHEMA_MAX_DEPTH})`);
291
+ }
292
+ const schema = ensureJsonSchemaObject(schemaValue, context);
293
+ if ('const' in schema) {
294
+ if (!isJsonLiteral(schema.const)) {
295
+ throw new Error(`${context}.const must be a JSON literal value`);
296
+ }
297
+ return z.literal(schema.const);
298
+ }
299
+ if (Array.isArray(schema.enum)) {
300
+ return buildEnumSchema(schema.enum, context);
301
+ }
302
+ const schemaType = parseJsonSchemaType(schema, context);
303
+ if (schemaType === 'object') {
304
+ return buildObjectSchema(schema, context, depth);
305
+ }
306
+ if (schemaType === 'array') {
307
+ return buildArraySchema(schema, context, depth);
308
+ }
309
+ if (schemaType === 'string') {
310
+ return buildStringSchema(schema, context);
311
+ }
312
+ if (schemaType === 'number') {
313
+ return buildNumberSchema(schema, context, false);
314
+ }
315
+ if (schemaType === 'integer') {
316
+ return buildNumberSchema(schema, context, true);
317
+ }
318
+ if (schemaType === 'boolean') {
319
+ return z.boolean();
320
+ }
321
+ throw new Error(`${context}.type "${schemaType}" is not supported`);
322
+ }
323
+ function parsePackToolJsonSchema(schemaValue, toolName, schemaField) {
324
+ const context = `${schemaField} for tool "${toolName}"`;
325
+ try {
326
+ return buildZodSchemaFromJsonSchema(schemaValue, context, 0);
327
+ }
328
+ catch (error) {
329
+ const message = error instanceof Error ? error.message : 'unknown schema parsing error';
330
+ throw new Error(`Invalid ${context}: ${message}`, {
331
+ cause: error,
332
+ });
333
+ }
334
+ }
156
335
  export async function defaultRuntimeToolCapabilityResolver(input) {
157
336
  const resolvedEntry = resolvePackToolEntryPath(input.loadedPack.packRoot, input.tool.entry);
337
+ const resolvedInputSchema = input.tool.input_schema
338
+ ? parsePackToolJsonSchema(input.tool.input_schema, input.tool.name, 'input_schema')
339
+ : DEFAULT_PACK_TOOL_INPUT_SCHEMA;
340
+ const resolvedOutputSchema = input.tool.output_schema
341
+ ? parsePackToolJsonSchema(input.tool.output_schema, input.tool.name, 'output_schema')
342
+ : DEFAULT_PACK_TOOL_OUTPUT_SCHEMA;
158
343
  return {
159
344
  name: input.tool.name,
160
345
  domain: input.loadedPack.manifest.id,
161
346
  version: input.loadedPack.manifest.version,
162
- input_schema: DEFAULT_PACK_TOOL_INPUT_SCHEMA,
163
- output_schema: DEFAULT_PACK_TOOL_OUTPUT_SCHEMA,
347
+ input_schema: resolvedInputSchema,
348
+ output_schema: resolvedOutputSchema,
164
349
  permission: input.tool.permission,
165
350
  required_scopes: input.tool.required_scopes,
166
351
  handler: {
@@ -317,6 +502,7 @@ export class DefaultKernelRuntime {
317
502
  stateAliases;
318
503
  now;
319
504
  runIdFactory;
505
+ pendingApprovals = new Map();
320
506
  constructor(options) {
321
507
  this.workspaceSpec = options.workspace_spec;
322
508
  this.workspaceFilePath = options.workspace_file_path;
@@ -391,7 +577,29 @@ export class DefaultKernelRuntime {
391
577
  [EXECUTION_METADATA_KEYS.WORKSPACE_CONFIG_HASH]: actualHash,
392
578
  },
393
579
  });
394
- return this.toolHost.execute(name, input, runtimeContext);
580
+ const output = await this.toolHost.execute(name, input, runtimeContext);
581
+ if (output.error?.code === TOOL_ERROR_CODES.APPROVAL_REQUIRED) {
582
+ const details = output.error.details;
583
+ const requestId = typeof details?.request_id === 'string' ? details.request_id : undefined;
584
+ if (requestId) {
585
+ this.pendingApprovals.set(requestId, {
586
+ task_id: context.task_id,
587
+ run_id: context.run_id,
588
+ tool_name: name,
589
+ requested_at: normalizeTimestamp(this.now),
590
+ });
591
+ const waitingEvent = {
592
+ schema_version: 1,
593
+ kind: KERNEL_EVENT_KINDS.TASK_WAITING,
594
+ task_id: context.task_id,
595
+ timestamp: normalizeTimestamp(this.now),
596
+ reason: `Approval required for tool "${name}"`,
597
+ wait_for: requestId,
598
+ };
599
+ await this.eventStore.append(waitingEvent);
600
+ }
601
+ }
602
+ return output;
395
603
  }
396
604
  async createTask(taskSpec) {
397
605
  const parsedTask = TaskSpecSchema.parse(taskSpec);
@@ -591,6 +799,26 @@ export class DefaultKernelRuntime {
591
799
  events,
592
800
  };
593
801
  }
802
+ async resolveApproval(input) {
803
+ const pending = this.pendingApprovals.get(input.request_id);
804
+ if (!pending) {
805
+ throw new Error(`No pending approval found for request_id "${input.request_id}"`);
806
+ }
807
+ this.pendingApprovals.delete(input.request_id);
808
+ const resumedEvent = {
809
+ schema_version: 1,
810
+ kind: KERNEL_EVENT_KINDS.TASK_RESUMED,
811
+ task_id: pending.task_id,
812
+ timestamp: normalizeTimestamp(this.now),
813
+ };
814
+ await this.eventStore.append(resumedEvent);
815
+ return {
816
+ request_id: input.request_id,
817
+ approved: input.approved,
818
+ task_id: pending.task_id,
819
+ run_id: pending.run_id,
820
+ };
821
+ }
594
822
  async requireTaskSpec(taskId) {
595
823
  const loaded = await readTaskSpecFromDisk(this.taskSpecRoot, taskId);
596
824
  if (!loaded) {
@@ -1 +1 @@
1
- {"version":3,"file":"kernel-runtime.js","sourceRoot":"","sources":["../../src/runtime/kernel-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"kernel-runtime.js","sourceRoot":"","sources":["../../src/runtime/kernel-runtime.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,sCAAsC;AAEtC,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,kBAAkB,CAAC;AACrE,OAAO,IAAI,MAAM,WAAW,CAAC;AAC7B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AACtD,OAAO,EACL,kBAAkB,EAClB,gBAAgB,EAChB,uBAAuB,GAExB,MAAM,mBAAmB,CAAC;AAC3B,OAAO,EACL,uBAAuB,EACvB,iBAAiB,EACjB,8BAA8B,EAC9B,+BAA+B,EAC/B,oCAAoC,EACpC,gCAAgC,EAChC,4BAA4B,EAC5B,6BAA6B,EAC7B,kBAAkB,EAClB,oBAAoB,EACpB,iBAAiB,EACjB,cAAc,EACd,aAAa,EACb,kCAAkC,EAClC,mBAAmB,GACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EACL,UAAU,EACV,gBAAgB,GAGjB,MAAM,yBAAyB,CAAC;AACjC,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EACL,sBAAsB,EACtB,YAAY,EACZ,SAAS,EACT,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,mBAAmB,GAWpB,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,wBAAwB,EAAyB,MAAM,kBAAkB,CAAC;AAC/F,OAAO,EACL,eAAe,EACf,YAAY,GAIb,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EACL,2BAA2B,GAE5B,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,gBAAgB,EAAyB,MAAM,2BAA2B,CAAC;AACpF,OAAO,EACL,uBAAuB,EACvB,+BAA+B,GAChC,MAAM,gCAAgC,CAAC;AACxC,OAAO,EAAE,QAAQ,EAAmB,MAAM,2BAA2B,CAAC;AAEtE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAE7D,MAAM,oBAAoB,GAAG,IAAI,CAAC,IAAI,CAAC,kBAAkB,EAAE,4BAA4B,CAAC,CAAC;AACzF,MAAM,6BAA6B,GAAG;IACpC,cAAc;IACd,IAAI,CAAC,IAAI,CAAC,iBAAiB,EAAE,oBAAoB,EAAE,cAAc,CAAC;CACnE,CAAC;AACF,MAAM,8BAA8B,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AACzE,MAAM,+BAA+B,GAAG,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC;AAC1E,MAAM,qBAAqB,GAAG,EAAE,CAAC;AACjC,MAAM,+BAA+B,GAAG,oCAAoC,CAAC;AAC7E,MAAM,uCAAuC,GAAG,4CAA4C,CAAC;AAC7F,MAAM,8BAA8B,GAAG,2DAA2D,CAAC;AACnG,MAAM,wBAAwB,GAAG,eAAe,CAAC;AACjD,MAAM,+BAA+B,GACnC,oEAAoE,CAAC;AACvE,MAAM,uCAAuC,GAC3C,6DAA6D,CAAC;AAmKhE,SAAS,kBAAkB,CAAC,GAAe,EAAE,cAAuB;IAClE,OAAO,cAAc,IAAI,GAAG,EAAE,CAAC,WAAW,EAAE,CAAC;AAC/C,CAAC;AAED,MAAM,UAAU,mBAAmB,CAAC,MAAc,EAAE,aAAqB;IACvE,MAAM,MAAM,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC9C,OAAO,OAAO,MAAM,IAAI,aAAa,IAAI,MAAM,EAAE,CAAC;AACpD,CAAC;AAED,SAAS,mBAAmB,CAAC,KAAkB;IAC7C,OAAO,uBAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;AAC7C,CAAC;AAED,SAAS,eAAe,CAAC,MAAqB;IAC5C,MAAM,YAAY,GAAG,CAAC,GAAG,MAAM,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QACpD,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,IAAI,GAAG,EAAe,CAAC;IACrC,KAAK,MAAM,KAAK,IAAI,YAAY,EAAE,CAAC;QACjC,IAAI,CAAC,mBAAmB,CAAC,KAAK,CAAC,EAAE,CAAC;YAChC,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GAAG,KAAK,CAAC,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC;QACzC,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,CAAC,WAAW,EAAE,CAAC;YAClD,KAAK,CAAC,GAAG,CACP,KAAK,CAAC,MAAM,EACZ,SAAS,CAAC,KAAK,CAAC;gBACd,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,MAAM,EAAE,YAAY,CAAC,SAAS;gBAC9B,UAAU,EAAE,KAAK,CAAC,SAAS;gBAC3B,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,UAAU,EAAE,KAAK,CAAC,UAAU;aAC7B,CAAC,CACH,CAAC;YACF,SAAS;QACX,CAAC;QAED,MAAM,QAAQ,GACZ,QAAQ;YACR,SAAS,CAAC,KAAK,CAAC;gBACd,MAAM,EAAE,KAAK,CAAC,MAAM;gBACpB,OAAO,EAAE,KAAK,CAAC,OAAO;gBACtB,MAAM,EAAE,YAAY,CAAC,OAAO;gBAC5B,UAAU,EAAE,KAAK,CAAC,SAAS;gBAC3B,EAAE,EAAE,SAAS;gBACb,UAAU,EAAE,SAAS;aACtB,CAAC,CAAC;QAEL,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,CAAC,UAAU,EAAE,CAAC;YACjD,KAAK,CAAC,GAAG,CACP,KAAK,CAAC,MAAM,EACZ,SAAS,CAAC,KAAK,CAAC;gBACd,GAAG,QAAQ;gBACX,MAAM,EAAE,YAAY,CAAC,MAAM;aAC5B,CAAC,CACH,CAAC;YACF,SAAS;QACX,CAAC;QAED,IAAI,KAAK,CAAC,IAAI,KAAK,kBAAkB,CAAC,UAAU,EAAE,CAAC;YACjD,KAAK,CAAC,GAAG,CACP,KAAK,CAAC,MAAM,EACZ,SAAS,CAAC,KAAK,CAAC;gBACd,GAAG,QAAQ;gBACX,MAAM,EAAE,YAAY,CAAC,MAAM;gBAC3B,YAAY,EAAE,KAAK,CAAC,SAAS;aAC9B,CAAC,CACH,CAAC;YACF,SAAS;QACX,CAAC;QAED,KAAK,CAAC,GAAG,CACP,KAAK,CAAC,MAAM,EACZ,SAAS,CAAC,KAAK,CAAC;YACd,GAAG,QAAQ;YACX,MAAM,EAAE,YAAY,CAAC,SAAS;YAC9B,YAAY,EAAE,KAAK,CAAC,SAAS;SAC9B,CAAC,CACH,CAAC;IACJ,CAAC;IAED,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC9C,OAAO,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACpE,CAAC,CAAC,CAAC;AACL,CAAC;AAED,SAAS,qBAAqB,CAAC,SAA2B;IACxD,MAAM,KAAK,GAAG,IAAI,GAAG,EAA0B,CAAC;IAChD,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,GAAG,GAAG,GAAG,QAAQ,CAAC,SAAS,IAAI,QAAQ,CAAC,QAAQ,IAAI,QAAQ,CAAC,MAAM,IAAI,EAAE,EAAE,CAAC;QAClF,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;YACpB,KAAK,CAAC,GAAG,CAAC,GAAG,EAAE,QAAQ,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC;IACD,OAAO,CAAC,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC;AAC7B,CAAC;AAED,SAAS,qBAAqB,CAAC,UAAkC;IAC/D,IAAI,UAAU,CAAC,SAAS,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QACtC,OAAO;YACL;gBACE,SAAS,EAAE,iBAAiB,CAAC,gBAAgB;gBAC7C,QAAQ,EAAE,UAAU,CAAC,QAAQ;gBAC7B,MAAM,EAAE,4DAA4D;aACrE;SACF,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,QAAQ,KAAK,mBAAmB,EAAE,CAAC;QAChD,MAAM,mBAAmB,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CACnD,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,KAAK,mBAAmB,CACxD,CAAC;QACF,IAAI,CAAC,mBAAmB,EAAE,CAAC;YACzB,OAAO;gBACL,GAAG,UAAU,CAAC,SAAS;gBACvB;oBACE,SAAS,EAAE,iBAAiB,CAAC,iBAAiB;oBAC9C,QAAQ,EAAE,mBAAmB;oBAC7B,MAAM,EAAE,iDAAiD;iBAC1D;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,IAAI,UAAU,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;QACnC,MAAM,WAAW,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,KAAK,MAAM,CAAC,CAAC;QAC1F,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,OAAO;gBACL,GAAG,UAAU,CAAC,SAAS;gBACvB;oBACE,SAAS,EAAE,iBAAiB,CAAC,gBAAgB;oBAC7C,QAAQ,EAAE,MAAM;oBAChB,MAAM,EAAE,oCAAoC;iBAC7C;aACF,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,UAAU,CAAC,SAAS,CAAC;AAC9B,CAAC;AAED,SAAS,iBAAiB,CAAC,WAA+B;IACxD,MAAM,OAAO,GAAqB,EAAE,CAAC;IACrC,MAAM,WAAW,GAAG,IAAI,GAAG,CAAC,CAAC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,CAAC,CAAC,CAAC;IAE/E,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,KAAK,MAAM,CAAC,KAAK,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,aAAa,CAAC,EAAE,CAAC;YAC/E,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBAC5B,SAAS;YACX,CAAC;YACD,OAAO,CAAC,KAA+B,CAAC,GAAG,KAAK,CAAC;QACnD,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAED,SAAS,2BAA2B,CAAC,MAAc;IACjD,OAAO,GAAG,+BAA+B,KAAK,MAAM,GAAG,CAAC;AAC1D,CAAC;AAED,SAAS,mCAAmC,CAAC,QAAgB,EAAE,MAAc;IAC3E,OAAO,GAAG,uCAAuC,KAAK,QAAQ,cAAc,MAAM,GAAG,CAAC;AACxF,CAAC;AAED,SAAS,wBAAwB,CAAC,QAAgB,EAAE,MAAc;IAChE,OAAO,aAAa,QAAQ,gBAAgB,MAAM,EAAE,CAAC;AACvD,CAAC;AAED,SAAS,sBAAsB,CAAC,KAAc,EAAE,OAAe;IAC7D,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChE,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,+BAA+B,CAAC,CAAC;IAC7D,CAAC;IACD,OAAO,KAAgC,CAAC;AAC1C,CAAC;AAED,SAAS,mBAAmB,CAAC,MAA+B,EAAE,OAAe;IAC3E,MAAM,UAAU,GAAG,MAAM,CAAC,IAAI,CAAC;IAC/B,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;QACnC,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,wBAAwB,CAAC,CAAC;IACtD,CAAC;IACD,OAAO,UAAU,CAAC;AACpB,CAAC;AAED,SAAS,aAAa,CAAC,KAAc;IACnC,OAAO,CACL,KAAK,KAAK,IAAI;QACd,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,KAAK,QAAQ;QACzB,OAAO,KAAK,KAAK,SAAS,CAC3B,CAAC;AACJ,CAAC;AAED,SAAS,eAAe,CAAC,UAAqB,EAAE,OAAe;IAC7D,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,yBAAyB,CAAC,CAAC;IACvD,CAAC;IACD,IAAI,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,EAAE,CAAC;QAC3D,MAAM,CAAC,UAAU,EAAE,GAAG,UAAU,CAAC,GAAG,UAAsB,CAAC;QAC3D,IAAI,OAAO,UAAU,KAAK,QAAQ,EAAE,CAAC;YACnC,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,8CAA8C,CAAC,CAAC;QAC5E,CAAC;QACD,OAAO,CAAC,CAAC,IAAI,CAAC,CAAC,UAAU,EAAE,GAAG,UAAU,CAAC,CAAC,CAAC;IAC7C,CAAC;IACD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,WAAW,GAAG,UAAU,CAAC,CAAC,CAAC,CAAC;QAClC,IAAI,CAAC,aAAa,CAAC,WAAW,CAAC,EAAE,CAAC;YAChC,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,0CAA0C,CAAC,CAAC;QACxE,CAAC;QACD,OAAO,CAAC,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;IAChC,CAAC;IACD,IAAI,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;QACvD,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,0CAA0C,CAAC,CAAC;IACxE,CAAC;IACD,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7D,MAAM,CAAC,YAAY,EAAE,GAAG,YAAY,CAAC,GAAG,QAAQ,CAAC;IACjD,IAAI,CAAC,YAAY,EAAE,CAAC;QAClB,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,uCAAuC,CAAC,CAAC;IACrE,CAAC;IACD,OAAO,CAAC,CAAC,KAAK,CAAC,CAAC,YAAY,EAAE,GAAG,YAAY,CAAC,CAAC,CAAC;AAClD,CAAC;AAED,SAAS,iBAAiB,CAAC,MAA+B,EAAE,OAAe;IACzE,IAAI,QAAQ,GAAG,CAAC,CAAC,MAAM,EAAE,CAAC;IAC1B,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QACzC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,SAAS,KAAK,QAAQ,EAAE,CAAC;QACzC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACvC,IAAI,CAAC;YACH,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,CAAC;QACxD,CAAC;QAAC,MAAM,CAAC;YACP,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,6CAA6C,CAAC,CAAC;QAC3E,CAAC;IACH,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,iBAAiB,CACxB,MAA+B,EAC/B,QAAgB,EAChB,WAAoB;IAEpB,IAAI,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC;IAC3D,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACvC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QACvC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC;IAC1C,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,gBAAgB,KAAK,QAAQ,EAAE,CAAC;QAChD,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,gBAAgB,KAAK,QAAQ,EAAE,CAAC;QAChD,QAAQ,GAAG,QAAQ,CAAC,EAAE,CAAC,MAAM,CAAC,gBAAgB,CAAC,CAAC;IAClD,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,iBAAiB,CACxB,MAA+B,EAC/B,OAAe,EACf,KAAa;IAEb,MAAM,eAAe,GAAG,MAAM,CAAC,UAAU,IAAI,EAAE,CAAC;IAChD,IAAI,CAAC,eAAe,IAAI,OAAO,eAAe,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,eAAe,CAAC,EAAE,CAAC;QAC9F,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,6CAA6C,CAAC,CAAC;IAC3E,CAAC;IACD,MAAM,UAAU,GAAG,eAA0C,CAAC;IAE9D,MAAM,aAAa,GAAG,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC;IAC5C,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,aAAa,CAAC,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,0CAA0C,CAAC,CAAC;IACxE,CAAC;IACD,MAAM,YAAY,GAAG,IAAI,GAAG,CAC1B,aAAa,CAAC,MAAM,CAAC,CAAC,KAAK,EAAmB,EAAE,CAAC,OAAO,KAAK,KAAK,QAAQ,CAAC,CAC5E,CAAC;IAEF,MAAM,KAAK,GAAiC,EAAE,CAAC;IAC/C,KAAK,MAAM,CAAC,GAAG,EAAE,gBAAgB,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,CAAC;QACjE,MAAM,YAAY,GAAG,GAAG,OAAO,eAAe,GAAG,EAAE,CAAC;QACpD,MAAM,WAAW,GAAG,4BAA4B,CAAC,gBAAgB,EAAE,YAAY,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;QAC5F,KAAK,CAAC,GAAG,CAAC,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,CAAC,WAAW,CAAC,QAAQ,EAAE,CAAC;IAC5E,CAAC;IAED,MAAM,oBAAoB,GAAG,MAAM,CAAC,oBAAoB,CAAC;IACzD,IAAI,oBAAoB,KAAK,IAAI,EAAE,CAAC;QAClC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,WAAW,EAAE,CAAC;IACvC,CAAC;IACD,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,MAAM,EAAE,CAAC;AAClC,CAAC;AAED,SAAS,gBAAgB,CACvB,MAA+B,EAC/B,OAAe,EACf,KAAa;IAEb,IAAI,CAAC,CAAC,OAAO,IAAI,MAAM,CAAC,EAAE,CAAC;QACzB,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,sCAAsC,CAAC,CAAC;IACpE,CAAC;IACD,MAAM,UAAU,GAAG,4BAA4B,CAAC,MAAM,CAAC,KAAK,EAAE,GAAG,OAAO,QAAQ,EAAE,KAAK,GAAG,CAAC,CAAC,CAAC;IAC7F,IAAI,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;IACnC,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACxC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,OAAO,MAAM,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QACxC,QAAQ,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,SAAS,4BAA4B,CACnC,WAAoB,EACpB,OAAe,EACf,KAAa;IAEb,IAAI,KAAK,GAAG,qBAAqB,EAAE,CAAC;QAClC,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,mCAAmC,qBAAqB,GAAG,CAAC,CAAC;IACzF,CAAC;IAED,MAAM,MAAM,GAAG,sBAAsB,CAAC,WAAW,EAAE,OAAO,CAAC,CAAC;IAE5D,IAAI,OAAO,IAAI,MAAM,EAAE,CAAC;QACtB,IAAI,CAAC,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC;YACjC,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,qCAAqC,CAAC,CAAC;QACnE,CAAC;QACD,OAAO,CAAC,CAAC,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IACjC,CAAC;IACD,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,OAAO,eAAe,CAAC,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC/C,CAAC;IAED,MAAM,UAAU,GAAG,mBAAmB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACxD,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,UAAU,KAAK,OAAO,EAAE,CAAC;QAC3B,OAAO,gBAAgB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,CAAC;IACD,IAAI,UAAU,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IACnD,CAAC;IACD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,iBAAiB,CAAC,MAAM,EAAE,OAAO,EAAE,IAAI,CAAC,CAAC;IAClD,CAAC;IACD,IAAI,UAAU,KAAK,SAAS,EAAE,CAAC;QAC7B,OAAO,CAAC,CAAC,OAAO,EAAE,CAAC;IACrB,CAAC;IAED,MAAM,IAAI,KAAK,CAAC,GAAG,OAAO,UAAU,UAAU,oBAAoB,CAAC,CAAC;AACtE,CAAC;AAED,SAAS,uBAAuB,CAC9B,WAAoB,EACpB,QAAgB,EAChB,WAA6C;IAE7C,MAAM,OAAO,GAAG,GAAG,WAAW,cAAc,QAAQ,GAAG,CAAC;IACxD,IAAI,CAAC;QACH,OAAO,4BAA4B,CAAC,WAAW,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC;IAC/D,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,OAAO,GAAG,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,8BAA8B,CAAC;QACxF,MAAM,IAAI,KAAK,CAAC,WAAW,OAAO,KAAK,OAAO,EAAE,EAAE;YAChD,KAAK,EAAE,KAAK;SACb,CAAC,CAAC;IACL,CAAC;AACH,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oCAAoC,CACxD,KAAyC;IAEzC,MAAM,aAAa,GAAG,wBAAwB,CAAC,KAAK,CAAC,UAAU,CAAC,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5F,MAAM,mBAAmB,GAAG,KAAK,CAAC,IAAI,CAAC,YAAY;QACjD,CAAC,CAAC,uBAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,YAAY,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,cAAc,CAAC;QACnF,CAAC,CAAC,8BAA8B,CAAC;IACnC,MAAM,oBAAoB,GAAG,KAAK,CAAC,IAAI,CAAC,aAAa;QACnD,CAAC,CAAC,uBAAuB,CAAC,KAAK,CAAC,IAAI,CAAC,aAAa,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,eAAe,CAAC;QACrF,CAAC,CAAC,+BAA+B,CAAC;IAEpC,OAAO;QACL,IAAI,EAAE,KAAK,CAAC,IAAI,CAAC,IAAI;QACrB,MAAM,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE;QACpC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO;QAC1C,YAAY,EAAE,mBAAmB;QACjC,aAAa,EAAE,oBAAoB;QACnC,UAAU,EAAE,KAAK,CAAC,IAAI,CAAC,UAAU;QACjC,eAAe,EAAE,KAAK,CAAC,IAAI,CAAC,eAAe;QAC3C,OAAO,EAAE;YACP,IAAI,EAAE,kBAAkB,CAAC,UAAU;YACnC,KAAK,EAAE,aAAa;SACrB;QACD,WAAW,EAAE,wBAAwB,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpF,IAAI,EAAE,KAAK,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE;KAC9B,CAAC;AACJ,CAAC;AAED,KAAK,UAAU,UAAU,CAAC,UAAkB;IAC1C,IAAI,CAAC;QACH,MAAM,MAAM,CAAC,UAAU,CAAC,CAAC;QACzB,OAAO,IAAI,CAAC;IACd,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,SAAS,GAAG,KAA8B,CAAC;QACjD,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO,KAAK,CAAC;QACf,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,gBAAgB,CAAC,OAAuC;IACrE,IAAI,OAAO,CAAC,SAAS,EAAE,CAAC;QACtB,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC;IACzC,CAAC;IAED,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1D,KAAK,MAAM,SAAS,IAAI,6BAA6B,EAAE,CAAC;QACtD,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,SAAS,CAAC,CAAC;QACjE,IAAI,MAAM,UAAU,CAAC,iBAAiB,CAAC,EAAE,CAAC;YACxC,OAAO,iBAAiB,CAAC;QAC3B,CAAC;IACH,CAAC;IAED,MAAM,iBAAiB,GAAG,6BAA6B,CAAC,CAAC,CAAC,CAAC;IAC3D,IAAI,CAAC,iBAAiB,EAAE,CAAC;QACvB,MAAM,IAAI,KAAK,CAAC,kDAAkD,CAAC,CAAC;IACtE,CAAC;IACD,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC;AACxD,CAAC;AAED,SAAS,mBAAmB,CAAC,YAAoB,EAAE,MAAc;IAC/D,OAAO,IAAI,CAAC,IAAI,CAAC,YAAY,EAAE,GAAG,MAAM,OAAO,CAAC,CAAC;AACnD,CAAC;AAED,KAAK,UAAU,oBAAoB,CACjC,YAAoB,EACpB,MAAc;IAEd,MAAM,YAAY,GAAG,mBAAmB,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IAE/D,IAAI,CAAC;QACH,MAAM,QAAQ,GAAG,MAAM,QAAQ,CAAC,YAAY,EAAE,aAAa,CAAC,CAAC;QAC7D,OAAO,cAAc,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC,CAAC;IACpD,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,MAAM,SAAS,GAAG,KAA8B,CAAC;QACjD,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;YAChC,OAAO,IAAI,CAAC;QACd,CAAC;QACD,MAAM,KAAK,CAAC;IACd,CAAC;AACH,CAAC;AAED,KAAK,UAAU,sBAAsB,CAAC,YAAoB,EAAE,IAAc;IACxE,MAAM,KAAK,CAAC,YAAY,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAE/C,MAAM,YAAY,GAAG,mBAAmB,CAAC,YAAY,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;IAChE,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAC;IAClD,IAAI,CAAC;QACH,MAAM,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,aAAa,CAAC,CAAC;IAClE,CAAC;IAAC,OAAO,UAAU,EAAE,CAAC;QACpB,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;QACzB,MAAM,EAAE,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;QACxC,MAAM,UAAU,CAAC;IACnB,CAAC;IACD,MAAM,UAAU,CAAC,KAAK,EAAE,CAAC;IAEzB,OAAO,YAAY,CAAC;AACtB,CAAC;AAQD,KAAK,UAAU,oBAAoB,CACjC,OAAuC;IAEvC,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1D,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CACpC,OAAO,CAAC,iBAAiB;QACvB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,OAAO,CAAC,iBAAiB,IAAI,mBAAmB,CAAC,CAC7E,CAAC;IAEF,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;IAC7D,MAAM,aAAa,GAAG,mBAAmB,CAAC,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;IAEjE,OAAO;QACL,mBAAmB,EAAE,iBAAiB;QACtC,cAAc,EAAE,aAAa;QAC7B,qBAAqB,EAAE,cAAc,CAAC,GAAG,CAAC;KAC3C,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,WAA+B;IAC/D,MAAM,SAAS,GAAG,WAAW,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,EAAE;QACnD,OAAO,UAAU,CAAC,QAAQ,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;YACnD,EAAE,EAAE,MAAM,CAAC,EAAE;YACb,OAAO,EAAE,MAAM,CAAC,OAAO;YACvB,QAAQ,EAAE,MAAM,CAAC,QAAQ;YACzB,MAAM,EAAE,MAAM,CAAC,MAAM;SACtB,CAAC,CAAC,CAAC;IACN,CAAC,CAAC,CAAC;IAEH,OAAO;QACL;YACE,KAAK,EAAE,WAAW;YAClB,gBAAgB,EAAE,OAAO;YACzB,eAAe,EAAE,IAAI;YACrB,KAAK,EAAE,EAAE;SACV;QACD;YACE,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,EAAE;SACV;QACD;YACE,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,SAAS;SACjB;QACD;YACE,KAAK,EAAE,MAAM;YACb,KAAK,EAAE,EAAE;SACV;KACF,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,YAA0B;IACzD,MAAM,iBAAiB,GAAG,uBAAuB,EAAE,CAAC;IAEpD,OAAO,KAAK,EAAE,KAAK,EAAE,EAAE;QACrB,MAAM,gBAAgB,GAAG,MAAM,iBAAiB,CAAC,KAAK,CAAC,CAAC;QACxD,IAAI,gBAAgB,CAAC,IAAI,CAAC,CAAC,QAAQ,EAAE,EAAE,CAAC,QAAQ,CAAC,QAAQ,KAAK,MAAM,CAAC,EAAE,CAAC;YACtE,OAAO,gBAAgB,CAAC;QAC1B,CAAC;QAED,MAAM,OAAO,GAA4B;YACvC,OAAO,EAAE,eAAe,CAAC,eAAe;YACxC,MAAM,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM;YAC5B,OAAO,EAAE,KAAK,CAAC,OAAO,CAAC,OAAO;YAC9B,SAAS,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI;YAChC,OAAO,EAAE,KAAK,CAAC,UAAU,CAAC,IAAI;SAC/B,CAAC;QAEF,MAAM,UAAU,GAAG,MAAM,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACxD,OAAO,CAAC,GAAG,gBAAgB,EAAE,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,uBAAuB,CAAC,MAAc;IAC7C,OAAO;QACL,MAAM;KACP,CAAC;AACJ,CAAC;AAED,SAAS,wBAAwB,CAAC,OAAyB;IACzD,IAAI,CAAC,OAAO,CAAC,QAAQ,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,QAAQ,EAAE,CAAC;QAC9D,OAAO,EAAE,CAAC;IACZ,CAAC;IACD,OAAO,OAAO,CAAC,QAAQ,CAAC;AAC1B,CAAC;AAED,MAAM,OAAO,oBAAoB;IACd,aAAa,CAAgB;IAC7B,iBAAiB,CAAS;IAC1B,mBAAmB,CAAS;IAC5B,WAAW,CAAqB;IAChC,YAAY,CAAS;IACrB,UAAU,CAAa;IACvB,aAAa,CAAgB;IAC7B,QAAQ,CAAW;IACnB,YAAY,CAAe;IAC3B,YAAY,CAAmB;IAC/B,GAAG,CAAa;IAChB,YAAY,CAAoD;IAChE,gBAAgB,GAAG,IAAI,GAAG,EAA2B,CAAC;IAEvE,YAAY,OAA6B;QACvC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;QAC5C,IAAI,CAAC,iBAAiB,GAAG,OAAO,CAAC,mBAAmB,CAAC;QACrD,IAAI,CAAC,mBAAmB,GAAG,OAAO,CAAC,qBAAqB,CAAC;QACzD,IAAI,CAAC,WAAW,GAAG,OAAO,CAAC,YAAY,CAAC;QACxC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,cAAc,CAAC;QAC3C,IAAI,CAAC,UAAU,GAAG,OAAO,CAAC,WAAW,CAAC;QACtC,IAAI,CAAC,aAAa,GAAG,OAAO,CAAC,cAAc,CAAC;QAC5C,IAAI,CAAC,QAAQ,GAAG,OAAO,CAAC,SAAS,CAAC;QAClC,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,aAAa,CAAC;QAC1C,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,aAAa,IAAI,EAAE,CAAC;QAChD,IAAI,CAAC,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;QAC7C,IAAI,CAAC,YAAY,GAAG,OAAO,CAAC,cAAc,IAAI,mBAAmB,CAAC;IACpE,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAED,eAAe;QACb,OAAO,IAAI,CAAC,YAAY,CAAC;IAC3B,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,IAAY,EAAE,KAAc,EAAE,GAAqB;QACnE,MAAM,OAAO,GAAG,sBAAsB,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,wBAAwB,CAAC,OAAO,CAAC,CAAC;QACnD,MAAM,YAAY,GAAG,IAAI,CAAC,mBAAmB,CAAC;QAE9C,IAAI,UAAkB,CAAC;QACvB,IAAI,oBAAoB,GAAG,KAAK,CAAC;QACjC,IAAI,CAAC;YACH,UAAU,GAAG,MAAM,IAAI,CAAC,0BAA0B,EAAE,CAAC;QACvD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,KAA8B,CAAC;YACjD,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAChC,MAAM,KAAK,CAAC;YACd,CAAC;YACD,oBAAoB,GAAG,IAAI,CAAC;YAC5B,UAAU,GAAG,cAAc,CAAC;gBAC1B,CAAC,kCAAkC,CAAC,sBAAsB,CAAC,EAAE,IAAI,CAAC,iBAAiB;aACpF,CAAC,CAAC;QACL,CAAC;QAED,IAAI,UAAU,KAAK,YAAY,EAAE,CAAC;YAChC,MAAM,aAAa,GAAsB;gBACvC,cAAc,EAAE,CAAC;gBACjB,IAAI,EAAE,kBAAkB,CAAC,aAAa;gBACtC,IAAI,EAAE,WAAW;gBACjB,EAAE,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE;gBACzB,aAAa,EAAE,YAAY;gBAC3B,WAAW,EAAE,UAAU;gBACvB,SAAS,EAAE,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC;aACxC,CAAC;YACF,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC;YAE5C,OAAO;gBACL,OAAO,EAAE,KAAK;gBACd,KAAK,EAAE;oBACL,IAAI,EAAE,wBAAwB;oBAC9B,OAAO,EAAE,oBAAoB;wBAC3B,CAAC,CAAC,uCAAuC;wBACzC,CAAC,CAAC,+BAA+B;oBACnC,OAAO,EAAE;wBACP,YAAY,EAAE,IAAI,CAAC,aAAa,CAAC,EAAE;wBACnC,mBAAmB,EAAE,IAAI,CAAC,iBAAiB;wBAC3C,CAAC,kCAAkC,CAAC,sBAAsB,CAAC,EAAE,oBAAoB;wBACjF,aAAa,EAAE,YAAY;wBAC3B,WAAW,EAAE,UAAU;qBACxB;iBACF;aACF,CAAC;QACJ,CAAC;QAED,MAAM,cAAc,GAAG,sBAAsB,CAAC,KAAK,CAAC;YAClD,GAAG,OAAO;YACV,QAAQ,EAAE;gBACR,GAAG,QAAQ;gBACX,CAAC,uBAAuB,CAAC,qBAAqB,CAAC,EAAE,UAAU;aAC5D;SACF,CAAC,CAAC;QAEH,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,EAAE,KAAK,EAAE,cAAc,CAAC,CAAC;QAExE,IAAI,MAAM,CAAC,KAAK,EAAE,IAAI,KAAK,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;YAC9D,MAAM,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,OAA8C,CAAC;YAC5E,MAAM,SAAS,GAAG,OAAO,OAAO,EAAE,UAAU,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,SAAS,CAAC;YAC3F,IAAI,SAAS,EAAE,CAAC;gBACd,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,SAAS,EAAE;oBACnC,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,MAAM,EAAE,OAAO,CAAC,MAAM;oBACtB,SAAS,EAAE,IAAI;oBACf,YAAY,EAAE,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC;iBAC3C,CAAC,CAAC;gBAEH,MAAM,YAAY,GAAqB;oBACrC,cAAc,EAAE,CAAC;oBACjB,IAAI,EAAE,kBAAkB,CAAC,YAAY;oBACrC,OAAO,EAAE,OAAO,CAAC,OAAO;oBACxB,SAAS,EAAE,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC;oBACvC,MAAM,EAAE,+BAA+B,IAAI,GAAG;oBAC9C,QAAQ,EAAE,SAAS;iBACpB,CAAC;gBACF,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;YAC7C,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,QAAkB;QACjC,MAAM,UAAU,GAAG,cAAc,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAElD,IAAI,UAAU,CAAC,YAAY,KAAK,IAAI,CAAC,aAAa,CAAC,EAAE,EAAE,CAAC;YACtD,MAAM,IAAI,KAAK,CACb,qCAAqC,IAAI,CAAC,aAAa,CAAC,EAAE,SAAS,UAAU,CAAC,YAAY,EAAE,CAC7F,CAAC;QACJ,CAAC;QAED,MAAM,UAAU,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,EAAE,KAAK,UAAU,CAAC,OAAO,CAAC,CAAC;QAC3F,IAAI,CAAC,UAAU,EAAE,CAAC;YAChB,MAAM,IAAI,KAAK,CAAC,cAAc,UAAU,CAAC,OAAO,uCAAuC,CAAC,CAAC;QAC3F,CAAC;QAED,IAAI,YAAoB,CAAC;QACzB,IAAI,CAAC;YACH,YAAY,GAAG,MAAM,sBAAsB,CAAC,IAAI,CAAC,YAAY,EAAE,UAAU,CAAC,CAAC;QAC7E,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,SAAS,GAAG,KAA8B,CAAC;YACjD,IAAI,SAAS,CAAC,IAAI,KAAK,QAAQ,EAAE,CAAC;gBAChC,MAAM,IAAI,KAAK,CAAC,gCAAgC,UAAU,CAAC,EAAE,oBAAoB,EAAE;oBACjF,KAAK,EAAE,KAAK;iBACb,CAAC,CAAC;YACL,CAAC;YACD,MAAM,KAAK,CAAC;QACd,CAAC;QAED,MAAM,YAAY,GAAqB;YACrC,cAAc,EAAE,CAAC;YACjB,IAAI,EAAE,kBAAkB,CAAC,YAAY;YACrC,OAAO,EAAE,UAAU,CAAC,EAAE;YACtB,SAAS,EAAE,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC;YACvC,SAAS,EAAE,cAAc,CAAC,UAAU,CAAC;SACtC,CAAC;QAEF,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC7C,CAAC;QAAC,OAAO,UAAU,EAAE,CAAC;YACpB,mEAAmE;YACnE,wEAAwE;YACxE,0EAA0E;YAC1E,MAAM,EAAE,CAAC,YAAY,EAAE,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;YACxC,MAAM,UAAU,CAAC;QACnB,CAAC;QAED,OAAO;YACL,IAAI,EAAE,UAAU;YAChB,cAAc,EAAE,YAAY;YAC5B,KAAK,EAAE,YAAY;SACpB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAqB;QACnC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEvD,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAEzE,MAAM,KAAK,GAAG,IAAI,CAAC,YAAY,CAAC,IAAI,CAAC,EAAE,EAAE,SAAS,CAAC,SAAS,GAAG,CAAC,CAAC,CAAC;QAClE,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;YAC9C,OAAO,EAAE,eAAe,CAAC,QAAQ;YACjC,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,IAAI,CAAC,EAAE;YAChB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,MAAM;SACrB,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,2BAA2B,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QACzD,CAAC;QAED,MAAM,gBAAgB,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QACvE,MAAM,YAAY,GAAqB;YACrC,cAAc,EAAE,CAAC;YACjB,IAAI,EAAE,kBAAkB,CAAC,YAAY;YACrC,OAAO,EAAE,IAAI,CAAC,EAAE;YAChB,SAAS,EAAE,gBAAgB;YAC3B,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,WAAW,EAAE,KAAK,CAAC,WAAW;SAC/B,CAAC;QAEF,MAAM,eAAe,GAAoB;YACvC,cAAc,EAAE,CAAC;YACjB,IAAI,EAAE,kBAAkB,CAAC,WAAW;YACpC,OAAO,EAAE,IAAI,CAAC,EAAE;YAChB,MAAM,EAAE,KAAK;YACb,SAAS,EAAE,gBAAgB;YAC3B,EAAE,EAAE,KAAK,CAAC,EAAE;YACZ,UAAU,EAAE,KAAK,CAAC,UAAU;SAC7B,CAAC;QAEF,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,YAAY,EAAE,eAAe,CAAC,CAAC,CAAC;QAEjE,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,EAAE;YAChB,GAAG,EAAE,SAAS,CAAC,KAAK,CAAC;gBACnB,MAAM,EAAE,KAAK;gBACb,OAAO,EAAE,IAAI,CAAC,EAAE;gBAChB,MAAM,EAAE,YAAY,CAAC,SAAS;gBAC9B,UAAU,EAAE,eAAe,CAAC,SAAS;gBACrC,EAAE,EAAE,KAAK,CAAC,EAAE;gBACZ,UAAU,EAAE,KAAK,CAAC,UAAU;aAC7B,CAAC;YACF,MAAM,EAAE,CAAC,YAAY,EAAE,eAAe,CAAC;YACvC,MAAM;SACP,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,SAAS,CAAC,KAAqB;QACnC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEvD,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,SAAS,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAE1E,MAAM,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QACnC,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,MAAM,IAAI,KAAK,CAAC,gBAAgB,IAAI,CAAC,EAAE,uBAAuB,CAAC,CAAC;QAClE,CAAC;QAED,MAAM,YAAY,GAAqB;YACrC,cAAc,EAAE,CAAC;YACjB,IAAI,EAAE,kBAAkB,CAAC,YAAY;YACrC,OAAO,EAAE,IAAI,CAAC,EAAE;YAChB,SAAS,EAAE,kBAAkB,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC;YACxD,MAAM;SACP,CAAC;QAEF,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAC3C,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,EAAE;YAChB,KAAK,EAAE,YAAY;SACpB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,KAAuB;QACvC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEvD,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,QAAQ,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAEzE,MAAM,cAAc,GAAuB;YACzC,cAAc,EAAE,CAAC;YACjB,IAAI,EAAE,kBAAkB,CAAC,cAAc;YACvC,OAAO,EAAE,IAAI,CAAC,EAAE;YAChB,SAAS,EAAE,kBAAkB,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC;SACzD,CAAC;QAEF,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC;QAC7C,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,EAAE;YAChB,KAAK,EAAE,cAAc;SACtB,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,YAAY,CAAC,KAAwB;QACzC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QACvD,MAAM,SAAS,GAAG,MAAM,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAEvD,gBAAgB,CAAC,SAAS,CAAC,MAAM,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;QAEvE,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,IAAI,SAAS,CAAC,WAAW,EAAE,MAAM,CAAC;QAC5D,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,MAAM,IAAI,KAAK,CAAC,mBAAmB,IAAI,CAAC,EAAE,wBAAwB,CAAC,CAAC;QACtE,CAAC;QAED,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;YAC9C,OAAO,EAAE,eAAe,CAAC,aAAa;YACtC,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,IAAI,CAAC,EAAE;YAChB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,MAAM;SACrB,CAAC,CAAC;QAEH,IAAI,MAAM,CAAC,QAAQ,KAAK,MAAM,EAAE,CAAC;YAC/B,MAAM,IAAI,KAAK,CAAC,gCAAgC,IAAI,CAAC,EAAE,GAAG,CAAC,CAAC;QAC9D,CAAC;QAED,MAAM,kBAAkB,GAAG,kBAAkB,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,SAAS,CAAC,CAAC;QAEzE,MAAM,iBAAiB,GAAsB;YAC3C,cAAc,EAAE,CAAC;YACjB,IAAI,EAAE,kBAAkB,CAAC,aAAa;YACtC,OAAO,EAAE,IAAI,CAAC,EAAE;YAChB,MAAM,EAAE,KAAK;YACb,SAAS,EAAE,kBAAkB;YAC7B,aAAa,EAAE,KAAK,CAAC,aAAa;SACnC,CAAC;QAEF,MAAM,kBAAkB,GAAuB;YAC7C,cAAc,EAAE,CAAC;YACjB,IAAI,EAAE,kBAAkB,CAAC,cAAc;YACvC,OAAO,EAAE,IAAI,CAAC,EAAE;YAChB,SAAS,EAAE,kBAAkB;YAC7B,aAAa,EAAE,KAAK,CAAC,aAAa;SACnC,CAAC;QAEF,MAAM,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,CAAC,iBAAiB,EAAE,kBAAkB,CAAC,CAAC,CAAC;QACzE,MAAM,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;QAE5C,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,EAAE;YAChB,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,CAAC,iBAAiB,EAAE,kBAAkB,CAAC;YAC/C,MAAM;SACP,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,WAAW,CAAC,MAAc;QAC9B,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC;QACnF,MAAM,MAAM,GAAG,YAAY,CAAC,MAAM,CAAC;QACnC,MAAM,KAAK,GAAG,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC7C,MAAM,UAAU,GAAG,eAAe,CAAC,MAAM,CAAC,CAAC;QAC3C,MAAM,QAAQ,GAAG,MAAM,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QAExD,MAAM,gBAAgB,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YACpD,IAAI,OAAO,CAAC,IAAI,KAAK,gBAAgB,CAAC,kBAAkB,EAAE,CAAC;gBACzD,OAAO,OAAO,CAAC,gBAAgB,CAAC;YAClC,CAAC;YACD,OAAO,EAAE,CAAC;QACZ,CAAC,CAAC,CAAC;QAEH,MAAM,mBAAmB,GACvB,KAAK,CAAC,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,IAAI,CAAC,wBAAwB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;QAElF,OAAO;YACL,OAAO,EAAE,MAAM;YACf,IAAI;YACJ,KAAK;YACL,WAAW,EAAE,UAAU;YACvB,QAAQ;YACR,gBAAgB,EAAE,qBAAqB,CAAC,CAAC,GAAG,gBAAgB,EAAE,GAAG,mBAAmB,CAAC,CAAC;YACtF,MAAM;SACP,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CAAC,KAA2B;QAC/C,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC5D,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,MAAM,IAAI,KAAK,CAAC,6CAA6C,KAAK,CAAC,UAAU,GAAG,CAAC,CAAC;QACpF,CAAC;QAED,IAAI,CAAC,gBAAgB,CAAC,MAAM,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAE/C,MAAM,YAAY,GAAqB;YACrC,cAAc,EAAE,CAAC;YACjB,IAAI,EAAE,kBAAkB,CAAC,YAAY;YACrC,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,SAAS,EAAE,kBAAkB,CAAC,IAAI,CAAC,GAAG,CAAC;SACxC,CAAC;QACF,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,YAAY,CAAC,CAAC;QAE3C,OAAO;YACL,UAAU,EAAE,KAAK,CAAC,UAAU;YAC5B,QAAQ,EAAE,KAAK,CAAC,QAAQ;YACxB,OAAO,EAAE,OAAO,CAAC,OAAO;YACxB,MAAM,EAAE,OAAO,CAAC,MAAM;SACvB,CAAC;IACJ,CAAC;IAEO,KAAK,CAAC,eAAe,CAAC,MAAc;QAC1C,MAAM,MAAM,GAAG,MAAM,oBAAoB,CAAC,IAAI,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;QACrE,IAAI,CAAC,MAAM,EAAE,CAAC;YACZ,MAAM,IAAI,KAAK,CAAC,2BAA2B,MAAM,EAAE,CAAC,CAAC;QACvD,CAAC;QACD,OAAO,MAAM,CAAC;IAChB,CAAC;IAEO,KAAK,CAAC,gBAAgB,CAAC,MAAc;QAC3C,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;QAChD,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,MAAM,CAAC,uBAAuB,CAAC,MAAM,CAAC,CAAC,CAAC;QACjF,OAAO,gBAAgB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACxC,CAAC;IAEO,KAAK,CAAC,wBAAwB,CACpC,IAAc,EACd,KAAgB;QAEhB,MAAM,KAAK,GAAG,KAAK,CAAC,WAAW,EAAE,MAAM,CAAC;QACxC,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,MAAM,UAAU,GAAG,MAAM,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC;YAClD,OAAO,EAAE,eAAe,CAAC,aAAa;YACtC,MAAM,EAAE,KAAK;YACb,OAAO,EAAE,IAAI,CAAC,EAAE;YAChB,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,OAAO,EAAE,IAAI,CAAC,MAAM;SACrB,CAAC,CAAC;QAEH,OAAO,UAAU,CAAC,SAAS,CAAC;IAC9B,CAAC;IAEO,KAAK,CAAC,0BAA0B;QACtC,MAAM,GAAG,GAAG,MAAM,QAAQ,CAAC,IAAI,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;QAClE,OAAO,cAAc,CAAC,GAAG,CAAC,CAAC;IAC7B,CAAC;IAEO,KAAK,CAAC,mBAAmB,CAAC,MAAc;QAC9C,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACpE,IAAI,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACvB,OAAO,OAAO,CAAC;QACjB,CAAC;QAED,uEAAuE;QACvE,wEAAwE;QACxE,6DAA6D;QAC7D,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC;QACrD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAU,CAAC;QAErC,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;YAC3B,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;gBACtD,SAAS;YACX,CAAC;YACD,IAAI,KAAK,CAAC,OAAO,KAAK,MAAM,EAAE,CAAC;gBAC7B,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;YACnC,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC,KAAK,EAAE,EAAE;YAC7B,IAAI,KAAK,CAAC,IAAI,KAAK,gBAAgB,CAAC,iBAAiB,EAAE,CAAC;gBACtD,OAAO,KAAK,CAAC,OAAO,KAAK,MAAM,CAAC;YAClC,CAAC;YACD,OAAO,UAAU,CAAC,GAAG,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC1C,CAAC,CAAC,CAAC;IACL,CAAC;CACF;AAED,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,OAAuC;IAEvC,MAAM,aAAa,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,CAAC,aAAa,CAAC,CAAC;IAC1D,MAAM,iBAAiB,GAAG,MAAM,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC9D,MAAM,aAAa,GAAG,iBAAiB,CAAC,cAAc,CAAC;IACvD,MAAM,SAAS,GAAG,MAAM,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAE9C,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAC/B,OAAO,CAAC,YAAY;QAClB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,oBAAoB,EAAE,6BAA6B,CAAC,CAChF,CAAC;IACF,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,CACjC,OAAO,CAAC,cAAc;QACpB,IAAI,CAAC,IAAI,CACP,aAAa,EACb,oBAAoB,EACpB,8BAA8B,EAC9B,+BAA+B,CAChC,CACJ,CAAC;IACF,MAAM,iBAAiB,GAAG,IAAI,CAAC,OAAO,CACpC,OAAO,CAAC,iBAAiB;QACvB,IAAI,CAAC,IAAI,CACP,aAAa,EACb,oBAAoB,EACpB,8BAA8B,EAC9B,oCAAoC,CACrC,CACJ,CAAC;IACF,MAAM,YAAY,GAAG,IAAI,CAAC,OAAO,CAC/B,OAAO,CAAC,YAAY;QAClB,IAAI,CAAC,IAAI,CAAC,aAAa,EAAE,oBAAoB,EAAE,gCAAgC,CAAC,CACnF,CAAC;IAEF,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,EAAE,SAAS,EAAE,CAAC,CAAC;IACjD,MAAM,WAAW,GAAuB,EAAE,CAAC;IAE3C,KAAK,MAAM,GAAG,IAAI,aAAa,CAAC,KAAK,EAAE,CAAC;QACtC,IAAI,UAA4B,CAAC;QACjC,IAAI,CAAC;YACH,UAAU,GAAG,MAAM,UAAU,CAAC,IAAI,CAAC;gBACjC,aAAa;gBACb,MAAM,EAAE,GAAG,CAAC,EAAE;aACf,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,EAAE,CAAC,CAAC;QACzE,CAAC;QACD,WAAW,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;IAC/B,CAAC;IAED,MAAM,QAAQ,GAAG,IAAI,YAAY,EAAE,CAAC;IACpC,IAAI,OAAO,CAAC,mBAAmB,KAAK,KAAK,EAAE,CAAC;QAC1C,+BAA+B,CAAC,QAAQ,EAAE;YACxC,cAAc,EAAE,aAAa,CAAC,QAAQ,CAAC,cAAc;SACtD,CAAC,CAAC;IACL,CAAC;IAED,MAAM,sBAAsB,GAC1B,OAAO,CAAC,sBAAsB,IAAI,oCAAoC,CAAC;IACzE,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,KAAK,MAAM,IAAI,IAAI,UAAU,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;YAC7C,IAAI,UAAiC,CAAC;YACtC,IAAI,CAAC;gBACH,UAAU,GAAG,MAAM,sBAAsB,CAAC;oBACxC,aAAa;oBACb,UAAU;oBACV,IAAI;iBACL,CAAC,CAAC;YACL,CAAC;YAAC,OAAO,KAAK,EAAE,CAAC;gBACf,MAAM,IAAI,KAAK,CAAC,mCAAmC,CAAC,IAAI,CAAC,IAAI,EAAE,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC,EAAE;oBACjF,KAAK,EAAE,KAAK;iBACb,CAAC,CAAC;YACL,CAAC;YAED,IAAI,UAAU,EAAE,CAAC;gBACf,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAChC,CAAC;QACH,CAAC;IACH,CAAC;IAED,MAAM,YAAY,GAAG,IAAI,YAAY,CAAC;QACpC,MAAM,EAAE,OAAO,CAAC,YAAY,IAAI,wBAAwB,CAAC,WAAW,CAAC;KACtE,CAAC,CAAC;IACH,MAAM,aAAa,GAAG,IAAI,aAAa,CAAC,EAAE,YAAY,EAAE,CAAC,CAAC;IAE1D,MAAM,iBAAiB,GAAsB;QAC3C,cAAc;QACd,YAAY,EAAE,iBAAiB;QAC/B,cAAc,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,oBAAoB,CAAC,YAAY,EAAE,MAAM,CAAC;KAC7E,CAAC;IACF,MAAM,UAAU,GAAG,IAAI,UAAU,CAAC,iBAAiB,CAAC,CAAC;IACrD,MAAM,qBAAqB,GAA0B;QACnD,cAAc,EAAE,CAAC;QACjB,IAAI,EAAE,kBAAkB,CAAC,iBAAiB;QAC1C,SAAS,EAAE,kBAAkB,CAAC,GAAG,CAAC;QAClC,WAAW,EAAE,iBAAiB,CAAC,qBAAqB;QACpD,eAAe,EAAE,8BAA8B;KAChD,CAAC;IACF,MAAM,UAAU,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAE/C,MAAM,QAAQ,GAAG,IAAI,QAAQ,CAAC;QAC5B,QAAQ;QACR,aAAa;QACb,oBAAoB,EAClB,OAAO,CAAC,oBAAoB;YAC5B,IAAI,2BAA2B,CAAC;gBAC9B,aAAa;gBACb,GAAG,OAAO,CAAC,kCAAkC;aAC9C,CAAC;QACJ,UAAU,EAAE,uBAAuB,CAAC,YAAY,CAAC;QACjD,cAAc,EAAE,OAAO,CAAC,cAAc;KACvC,CAAC,CAAC;IACH,MAAM,QAAQ,CAAC,SAAS,EAAE,CAAC;IAE3B,OAAO,IAAI,oBAAoB,CAAC;QAC9B,cAAc,EAAE,aAAa;QAC7B,mBAAmB,EAAE,iBAAiB,CAAC,mBAAmB;QAC1D,qBAAqB,EAAE,iBAAiB,CAAC,qBAAqB;QAC9D,YAAY,EAAE,WAAW;QACzB,cAAc,EAAE,YAAY;QAC5B,WAAW,EAAE,UAAU;QACvB,cAAc,EAAE,aAAa;QAC7B,SAAS,EAAE,QAAQ;QACnB,aAAa,EAAE,YAAY;QAC3B,aAAa,EAAE,iBAAiB,CAAC,WAAW,CAAC;QAC7C,GAAG;QACH,cAAc,EAAE,OAAO,CAAC,YAAY;KACrC,CAAC,CAAC;AACL,CAAC"}
@@ -43,6 +43,7 @@ export declare const KERNEL_POLICY_IDS: {
43
43
  readonly SCOPE_RESERVED_PATH: "kernel.scope.reserved-path";
44
44
  readonly SCOPE_BOUNDARY: "kernel.scope.boundary";
45
45
  readonly RECONCILIATION: "kernel.reconciliation";
46
+ readonly APPROVAL_REQUIRED: "kernel.policy.approval-required";
46
47
  };
47
48
  export type KernelPolicyId = (typeof KERNEL_POLICY_IDS)[keyof typeof KERNEL_POLICY_IDS];
48
49
  //# sourceMappingURL=shared-constants.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared-constants.d.ts","sourceRoot":"","sources":["../src/shared-constants.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa,EAAG,MAAe,CAAC;AAC7C,eAAO,MAAM,eAAe,EAAG,QAAiB,CAAC;AACjD,eAAO,MAAM,gBAAgB,EAAG,QAAiB,CAAC;AAClD,eAAO,MAAM,iBAAiB,EAAG,EAAW,CAAC;AAC7C,eAAO,MAAM,gBAAgB,QAAmB,CAAC;AACjD,eAAO,MAAM,uBAAuB,EAAG,SAAkB,CAAC;AAC1D,eAAO,MAAM,sBAAsB,QAA0B,CAAC;AAC9D,eAAO,MAAM,mBAAmB,EAAG,gBAAyB,CAAC;AAC7D,eAAO,MAAM,cAAc,EAAG,OAAgB,CAAC;AAC/C,eAAO,MAAM,uBAAuB,EAAG,eAAwB,CAAC;AAChE,eAAO,MAAM,iBAAiB,EAAG,UAAmB,CAAC;AACrD,eAAO,MAAM,oBAAoB,EAAG,YAAqB,CAAC;AAE1D,eAAO,MAAM,kBAAkB,EAAG,YAAqB,CAAC;AACxD,eAAO,MAAM,4BAA4B,EAAG,QAAiB,CAAC;AAC9D,eAAO,MAAM,6BAA6B,EAAG,OAAgB,CAAC;AAC9D,eAAO,MAAM,8BAA8B,EAAG,QAAiB,CAAC;AAChE,eAAO,MAAM,gCAAgC,EAAG,UAAmB,CAAC;AACpE,eAAO,MAAM,+BAA+B,EAAG,cAAuB,CAAC;AACvE,eAAO,MAAM,oCAAoC,EAAG,aAAsB,CAAC;AAE3E,eAAO,MAAM,6BAA6B,cAAqB,CAAC;AAChE,eAAO,MAAM,+BAA+B,eAAoC,CAAC;AACjF,eAAO,MAAM,6BAA6B,iBAAsC,CAAC;AAEjF,eAAO,MAAM,6BAA6B,QAAgC,CAAC;AAC3E,eAAO,MAAM,8BAA8B,EAAG,YAAqB,CAAC;AAEpE,eAAO,MAAM,kCAAkC;;CAErC,CAAC;AAEX,eAAO,MAAM,uBAAuB;;;;;;;;;CAS1B,CAAC;AAEX,eAAO,MAAM,iBAAiB;;;;;;;;CAQpB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC"}
1
+ {"version":3,"file":"shared-constants.d.ts","sourceRoot":"","sources":["../src/shared-constants.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,aAAa,EAAG,MAAe,CAAC;AAC7C,eAAO,MAAM,eAAe,EAAG,QAAiB,CAAC;AACjD,eAAO,MAAM,gBAAgB,EAAG,QAAiB,CAAC;AAClD,eAAO,MAAM,iBAAiB,EAAG,EAAW,CAAC;AAC7C,eAAO,MAAM,gBAAgB,QAAmB,CAAC;AACjD,eAAO,MAAM,uBAAuB,EAAG,SAAkB,CAAC;AAC1D,eAAO,MAAM,sBAAsB,QAA0B,CAAC;AAC9D,eAAO,MAAM,mBAAmB,EAAG,gBAAyB,CAAC;AAC7D,eAAO,MAAM,cAAc,EAAG,OAAgB,CAAC;AAC/C,eAAO,MAAM,uBAAuB,EAAG,eAAwB,CAAC;AAChE,eAAO,MAAM,iBAAiB,EAAG,UAAmB,CAAC;AACrD,eAAO,MAAM,oBAAoB,EAAG,YAAqB,CAAC;AAE1D,eAAO,MAAM,kBAAkB,EAAG,YAAqB,CAAC;AACxD,eAAO,MAAM,4BAA4B,EAAG,QAAiB,CAAC;AAC9D,eAAO,MAAM,6BAA6B,EAAG,OAAgB,CAAC;AAC9D,eAAO,MAAM,8BAA8B,EAAG,QAAiB,CAAC;AAChE,eAAO,MAAM,gCAAgC,EAAG,UAAmB,CAAC;AACpE,eAAO,MAAM,+BAA+B,EAAG,cAAuB,CAAC;AACvE,eAAO,MAAM,oCAAoC,EAAG,aAAsB,CAAC;AAE3E,eAAO,MAAM,6BAA6B,cAAqB,CAAC;AAChE,eAAO,MAAM,+BAA+B,eAAoC,CAAC;AACjF,eAAO,MAAM,6BAA6B,iBAAsC,CAAC;AAEjF,eAAO,MAAM,6BAA6B,QAAgC,CAAC;AAC3E,eAAO,MAAM,8BAA8B,EAAG,YAAqB,CAAC;AAEpE,eAAO,MAAM,kCAAkC;;CAErC,CAAC;AAEX,eAAO,MAAM,uBAAuB;;;;;;;;;CAS1B,CAAC;AAEX,eAAO,MAAM,iBAAiB;;;;;;;;;CASpB,CAAC;AAEX,MAAM,MAAM,cAAc,GAAG,CAAC,OAAO,iBAAiB,CAAC,CAAC,MAAM,OAAO,iBAAiB,CAAC,CAAC"}
@@ -45,5 +45,6 @@ export const KERNEL_POLICY_IDS = {
45
45
  SCOPE_RESERVED_PATH: 'kernel.scope.reserved-path',
46
46
  SCOPE_BOUNDARY: 'kernel.scope.boundary',
47
47
  RECONCILIATION: 'kernel.reconciliation',
48
+ APPROVAL_REQUIRED: 'kernel.policy.approval-required',
48
49
  };
49
50
  //# sourceMappingURL=shared-constants.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"shared-constants.js","sourceRoot":"","sources":["../src/shared-constants.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,sCAAsC;AAEtC,MAAM,CAAC,MAAM,aAAa,GAAG,MAAe,CAAC;AAC7C,MAAM,CAAC,MAAM,eAAe,GAAG,QAAiB,CAAC;AACjD,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAiB,CAAC;AAClD,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAW,CAAC;AAC7C,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AACjD,MAAM,CAAC,MAAM,uBAAuB,GAAG,SAAkB,CAAC;AAC1D,MAAM,CAAC,MAAM,sBAAsB,GAAG,uBAAuB,CAAC;AAC9D,MAAM,CAAC,MAAM,mBAAmB,GAAG,gBAAyB,CAAC;AAC7D,MAAM,CAAC,MAAM,cAAc,GAAG,OAAgB,CAAC;AAC/C,MAAM,CAAC,MAAM,uBAAuB,GAAG,eAAwB,CAAC;AAChE,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAmB,CAAC;AACrD,MAAM,CAAC,MAAM,oBAAoB,GAAG,YAAqB,CAAC;AAE1D,MAAM,CAAC,MAAM,kBAAkB,GAAG,YAAqB,CAAC;AACxD,MAAM,CAAC,MAAM,4BAA4B,GAAG,QAAiB,CAAC;AAC9D,MAAM,CAAC,MAAM,6BAA6B,GAAG,OAAgB,CAAC;AAC9D,MAAM,CAAC,MAAM,8BAA8B,GAAG,QAAiB,CAAC;AAChE,MAAM,CAAC,MAAM,gCAAgC,GAAG,UAAmB,CAAC;AACpE,MAAM,CAAC,MAAM,+BAA+B,GAAG,cAAuB,CAAC;AACvE,MAAM,CAAC,MAAM,oCAAoC,GAAG,aAAsB,CAAC;AAE3E,MAAM,CAAC,MAAM,6BAA6B,GAAG,kBAAkB,CAAC;AAChE,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAG,kBAAkB,GAAY,CAAC;AACjF,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAAG,kBAAkB,KAAc,CAAC;AAEjF,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAC3E,MAAM,CAAC,MAAM,8BAA8B,GAAG,YAAqB,CAAC;AAEpE,MAAM,CAAC,MAAM,kCAAkC,GAAG;IAChD,sBAAsB,EAAE,wBAAwB;CACxC,CAAC;AAEX,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,wBAAwB,EAAE,0BAA0B;IACpD,mBAAmB,EAAE,qBAAqB;IAC1C,oBAAoB,EAAE,sBAAsB;IAC5C,qBAAqB,EAAE,uBAAuB;IAC9C,eAAe,EAAE,iBAAiB;IAClC,OAAO,EAAE,SAAS;IAClB,YAAY,EAAE,cAAc;IAC5B,cAAc,EAAE,gBAAgB;CACxB,CAAC;AAEX,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,SAAS,EAAE,yBAAyB;IACpC,gBAAgB,EAAE,gCAAgC;IAClD,eAAe,EAAE,+BAA+B;IAChD,sBAAsB,EAAE,sCAAsC;IAC9D,mBAAmB,EAAE,4BAA4B;IACjD,cAAc,EAAE,uBAAuB;IACvC,cAAc,EAAE,uBAAuB;CAC/B,CAAC"}
1
+ {"version":3,"file":"shared-constants.js","sourceRoot":"","sources":["../src/shared-constants.ts"],"names":[],"mappings":"AAAA,iCAAiC;AACjC,sCAAsC;AAEtC,MAAM,CAAC,MAAM,aAAa,GAAG,MAAe,CAAC;AAC7C,MAAM,CAAC,MAAM,eAAe,GAAG,QAAiB,CAAC;AACjD,MAAM,CAAC,MAAM,gBAAgB,GAAG,QAAiB,CAAC;AAClD,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAW,CAAC;AAC7C,MAAM,CAAC,MAAM,gBAAgB,GAAG,gBAAgB,CAAC;AACjD,MAAM,CAAC,MAAM,uBAAuB,GAAG,SAAkB,CAAC;AAC1D,MAAM,CAAC,MAAM,sBAAsB,GAAG,uBAAuB,CAAC;AAC9D,MAAM,CAAC,MAAM,mBAAmB,GAAG,gBAAyB,CAAC;AAC7D,MAAM,CAAC,MAAM,cAAc,GAAG,OAAgB,CAAC;AAC/C,MAAM,CAAC,MAAM,uBAAuB,GAAG,eAAwB,CAAC;AAChE,MAAM,CAAC,MAAM,iBAAiB,GAAG,UAAmB,CAAC;AACrD,MAAM,CAAC,MAAM,oBAAoB,GAAG,YAAqB,CAAC;AAE1D,MAAM,CAAC,MAAM,kBAAkB,GAAG,YAAqB,CAAC;AACxD,MAAM,CAAC,MAAM,4BAA4B,GAAG,QAAiB,CAAC;AAC9D,MAAM,CAAC,MAAM,6BAA6B,GAAG,OAAgB,CAAC;AAC9D,MAAM,CAAC,MAAM,8BAA8B,GAAG,QAAiB,CAAC;AAChE,MAAM,CAAC,MAAM,gCAAgC,GAAG,UAAmB,CAAC;AACpE,MAAM,CAAC,MAAM,+BAA+B,GAAG,cAAuB,CAAC;AACvE,MAAM,CAAC,MAAM,oCAAoC,GAAG,aAAsB,CAAC;AAE3E,MAAM,CAAC,MAAM,6BAA6B,GAAG,kBAAkB,CAAC;AAChE,MAAM,CAAC,MAAM,+BAA+B,GAAG,GAAG,kBAAkB,GAAY,CAAC;AACjF,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAAG,kBAAkB,KAAc,CAAC;AAEjF,MAAM,CAAC,MAAM,6BAA6B,GAAG,GAAG,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;AAC3E,MAAM,CAAC,MAAM,8BAA8B,GAAG,YAAqB,CAAC;AAEpE,MAAM,CAAC,MAAM,kCAAkC,GAAG;IAChD,sBAAsB,EAAE,wBAAwB;CACxC,CAAC;AAEX,MAAM,CAAC,MAAM,uBAAuB,GAAG;IACrC,wBAAwB,EAAE,0BAA0B;IACpD,mBAAmB,EAAE,qBAAqB;IAC1C,oBAAoB,EAAE,sBAAsB;IAC5C,qBAAqB,EAAE,uBAAuB;IAC9C,eAAe,EAAE,iBAAiB;IAClC,OAAO,EAAE,SAAS;IAClB,YAAY,EAAE,cAAc;IAC5B,cAAc,EAAE,gBAAgB;CACxB,CAAC;AAEX,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,SAAS,EAAE,yBAAyB;IACpC,gBAAgB,EAAE,gCAAgC;IAClD,eAAe,EAAE,+BAA+B;IAChD,sBAAsB,EAAE,sCAAsC;IAC9D,mBAAmB,EAAE,4BAA4B;IACjD,cAAc,EAAE,uBAAuB;IACvC,cAAc,EAAE,uBAAuB;IACvC,iBAAiB,EAAE,iCAAiC;CAC5C,CAAC"}
@@ -18,6 +18,8 @@ export interface ToolHostOptions {
18
18
  now?: () => Date;
19
19
  /** Optional callback invoked when trace recording fails. Provides observability into silent catch blocks. */
20
20
  onTraceError?: (error: Error) => void;
21
+ /** Optional callback invoked after a trace entry is successfully appended to the EvidenceStore. Used by the SSE transport to bridge traces into the event stream. */
22
+ onTraceAppended?: (entry: import('../kernel.schemas.js').ToolTraceEntry) => void;
21
23
  }
22
24
  export declare function allowAllPolicyHook(): Promise<PolicyDecision[]>;
23
25
  export declare class ToolHost {
@@ -28,6 +30,7 @@ export declare class ToolHost {
28
30
  private readonly runtimeVersion;
29
31
  private readonly now;
30
32
  private readonly onTraceError?;
33
+ private readonly onTraceAppended?;
31
34
  constructor(options: ToolHostOptions);
32
35
  onStartup(): Promise<number>;
33
36
  onShutdown(): Promise<number>;
@@ -1 +1 @@
1
- {"version":3,"file":"tool-host.d.ts","sourceRoot":"","sources":["../../src/tool-host/tool-host.ts"],"names":[],"mappings":"AAMA,OAAO,EAML,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,SAAS,EACf,MAAM,sBAAsB,CAAC;AAW9B,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAA+B,KAAK,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAEpG,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,cAAc,CAAC;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,gBAAgB,CAAC;IAC1B,aAAa,EAAE,SAAS,EAAE,CAAC;CAC5B;AAED,MAAM,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;AAE/E,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,YAAY,CAAC;IACvB,aAAa,EAAE,aAAa,CAAC;IAC7B,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,6GAA6G;IAC7G,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;CACvC;AAyDD,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAQpE;AAED,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAuB;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAyB;gBAE3C,OAAO,EAAE,eAAe;IAgB9B,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAI5B,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAI7B,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;IA4HvF,OAAO,CAAC,YAAY;YA+BN,SAAS;YAyHT,QAAQ;IA2BtB,OAAO,CAAC,eAAe;YA8BT,iBAAiB;YAqBjB,WAAW;CAwC1B"}
1
+ {"version":3,"file":"tool-host.d.ts","sourceRoot":"","sources":["../../src/tool-host/tool-host.ts"],"names":[],"mappings":"AAMA,OAAO,EAML,KAAK,gBAAgB,EACrB,KAAK,cAAc,EACnB,KAAK,cAAc,EACnB,KAAK,UAAU,EACf,KAAK,SAAS,EACf,MAAM,sBAAsB,CAAC;AAW9B,OAAO,EAAE,aAAa,EAAE,MAAM,+BAA+B,CAAC;AAC9D,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,OAAO,EAA+B,KAAK,oBAAoB,EAAE,MAAM,4BAA4B,CAAC;AAEpG,MAAM,WAAW,eAAe;IAC9B,UAAU,EAAE,cAAc,CAAC;IAC3B,KAAK,EAAE,OAAO,CAAC;IACf,OAAO,EAAE,gBAAgB,CAAC;IAC1B,aAAa,EAAE,SAAS,EAAE,CAAC;CAC5B;AAED,MAAM,MAAM,UAAU,GAAG,CAAC,KAAK,EAAE,eAAe,KAAK,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;AAE/E,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,YAAY,CAAC;IACvB,aAAa,EAAE,aAAa,CAAC;IAC7B,oBAAoB,CAAC,EAAE,oBAAoB,CAAC;IAC5C,UAAU,EAAE,UAAU,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,6GAA6G;IAC7G,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,KAAK,IAAI,CAAC;IACtC,qKAAqK;IACrK,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,sBAAsB,EAAE,cAAc,KAAK,IAAI,CAAC;CAClF;AAyDD,wBAAsB,kBAAkB,IAAI,OAAO,CAAC,cAAc,EAAE,CAAC,CAQpE;AAED,qBAAa,QAAQ;IACnB,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAe;IACxC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAgB;IAC9C,OAAO,CAAC,QAAQ,CAAC,oBAAoB,CAAuB;IAC5D,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAa;IACxC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAS;IACxC,OAAO,CAAC,QAAQ,CAAC,GAAG,CAAa;IACjC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAyB;IACvD,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAC,CAAiE;gBAEtF,OAAO,EAAE,eAAe;IAiB9B,SAAS,IAAI,OAAO,CAAC,MAAM,CAAC;IAI5B,UAAU,IAAI,OAAO,CAAC,MAAM,CAAC;IAI7B,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,EAAE,gBAAgB,GAAG,OAAO,CAAC,UAAU,CAAC;IA8HvF,OAAO,CAAC,YAAY;YA+BN,SAAS;YA4JT,QAAQ;IA2BtB,OAAO,CAAC,eAAe;YA8BT,iBAAiB;YAuBjB,WAAW;CA0C1B"}
@@ -58,6 +58,7 @@ export class ToolHost {
58
58
  runtimeVersion;
59
59
  now;
60
60
  onTraceError;
61
+ onTraceAppended;
61
62
  constructor(options) {
62
63
  if (!options.policyHook) {
63
64
  throw new Error('ToolHost requires an explicit policyHook. ' +
@@ -70,6 +71,7 @@ export class ToolHost {
70
71
  this.runtimeVersion = options.runtimeVersion ?? DEFAULT_KERNEL_RUNTIME_VERSION;
71
72
  this.now = options.now ?? (() => new Date());
72
73
  this.onTraceError = options.onTraceError;
74
+ this.onTraceAppended = options.onTraceAppended;
73
75
  }
74
76
  async onStartup() {
75
77
  return this.evidenceStore.reconcileOrphanedStarts();
@@ -103,29 +105,31 @@ export class ToolHost {
103
105
  const packVersion = parseOptionalString(metadata[EXECUTION_METADATA_KEYS.PACK_VERSION]);
104
106
  const packIntegrity = parseOptionalString(metadata[EXECUTION_METADATA_KEYS.PACK_INTEGRITY]);
105
107
  const packId = capability.pack ?? parseOptionalString(metadata[EXECUTION_METADATA_KEYS.PACK_ID]);
108
+ const startedEntry = {
109
+ schema_version: 1,
110
+ kind: TOOL_TRACE_KINDS.TOOL_CALL_STARTED,
111
+ receipt_id: receiptId,
112
+ run_id: context.run_id,
113
+ task_id: context.task_id,
114
+ session_id: context.session_id,
115
+ timestamp,
116
+ tool_name: capability.name,
117
+ execution_mode: capability.handler.kind,
118
+ scope_requested: scopeRequested,
119
+ scope_allowed: scopeAllowed,
120
+ scope_enforced: scopeEnforced,
121
+ input_hash: inputHash,
122
+ input_ref: inputRef,
123
+ tool_version: capability.version,
124
+ pack_id: packId,
125
+ pack_version: packVersion,
126
+ pack_integrity: packIntegrity,
127
+ workspace_config_hash: workspaceConfigHash,
128
+ runtime_version: runtimeVersion,
129
+ };
106
130
  try {
107
- await this.evidenceStore.appendTrace({
108
- schema_version: 1,
109
- kind: TOOL_TRACE_KINDS.TOOL_CALL_STARTED,
110
- receipt_id: receiptId,
111
- run_id: context.run_id,
112
- task_id: context.task_id,
113
- session_id: context.session_id,
114
- timestamp,
115
- tool_name: capability.name,
116
- execution_mode: capability.handler.kind,
117
- scope_requested: scopeRequested,
118
- scope_allowed: scopeAllowed,
119
- scope_enforced: scopeEnforced,
120
- input_hash: inputHash,
121
- input_ref: inputRef,
122
- tool_version: capability.version,
123
- pack_id: packId,
124
- pack_version: packVersion,
125
- pack_integrity: packIntegrity,
126
- workspace_config_hash: workspaceConfigHash,
127
- runtime_version: runtimeVersion,
128
- });
131
+ await this.evidenceStore.appendTrace(startedEntry);
132
+ this.onTraceAppended?.(startedEntry);
129
133
  }
130
134
  catch (error) {
131
135
  // Started trace failure must not prevent tool execution.
@@ -297,6 +301,39 @@ export class ToolHost {
297
301
  }
298
302
  return { denied: true, output };
299
303
  }
304
+ if (policyDecisions.some((decision) => decision.decision === 'approval_required')) {
305
+ const approvalRequestId = randomUUID();
306
+ const approvalReasons = policyDecisions
307
+ .filter((decision) => decision.decision === 'approval_required')
308
+ .map((decision) => decision.reason ?? decision.policy_id);
309
+ const output = {
310
+ success: false,
311
+ error: {
312
+ code: TOOL_ERROR_CODES.APPROVAL_REQUIRED,
313
+ message: `Tool execution requires human approval: ${approvalReasons.join('; ')}`,
314
+ details: {
315
+ request_id: approvalRequestId,
316
+ tool_name: capability.name,
317
+ task_id: context.task_id,
318
+ run_id: context.run_id,
319
+ policy_decisions: policyDecisions.filter((decision) => decision.decision === 'approval_required'),
320
+ },
321
+ },
322
+ };
323
+ try {
324
+ await this.recordDeniedTrace({
325
+ receiptId,
326
+ startedAt,
327
+ result: 'denied',
328
+ scopeEnforcementNote: 'Blocked pending human approval.',
329
+ policyDecisions,
330
+ });
331
+ }
332
+ catch (error) {
333
+ this.onTraceError?.(error);
334
+ }
335
+ return { denied: true, output };
336
+ }
300
337
  return { denied: false, policyDecisions };
301
338
  }
302
339
  async dispatch(capability, input, context, scopeEnforced) {
@@ -349,7 +386,7 @@ export class ToolHost {
349
386
  }
350
387
  async recordDeniedTrace(params) {
351
388
  const finishedAt = this.now();
352
- await this.evidenceStore.appendTrace({
389
+ const entry = {
353
390
  schema_version: 1,
354
391
  kind: TOOL_TRACE_KINDS.TOOL_CALL_FINISHED,
355
392
  receipt_id: params.receiptId,
@@ -359,7 +396,9 @@ export class ToolHost {
359
396
  scope_enforcement_note: params.scopeEnforcementNote,
360
397
  policy_decisions: params.policyDecisions,
361
398
  artifacts_written: [],
362
- });
399
+ };
400
+ await this.evidenceStore.appendTrace(entry);
401
+ this.onTraceAppended?.(entry);
363
402
  }
364
403
  async recordTrace(params) {
365
404
  const { receiptId, startedAt, output, policyDecisions } = params;
@@ -372,7 +411,7 @@ export class ToolHost {
372
411
  ? 'denied'
373
412
  : 'failure';
374
413
  const finishedAt = this.now();
375
- await this.evidenceStore.appendTrace({
414
+ const entry = {
376
415
  schema_version: 1,
377
416
  kind: TOOL_TRACE_KINDS.TOOL_CALL_FINISHED,
378
417
  receipt_id: receiptId,
@@ -389,7 +428,9 @@ export class ToolHost {
389
428
  output.metadata?.artifacts_written.every((artifact) => typeof artifact === 'string')
390
429
  ? output.metadata.artifacts_written
391
430
  : [],
392
- });
431
+ };
432
+ await this.evidenceStore.appendTrace(entry);
433
+ this.onTraceAppended?.(entry);
393
434
  }
394
435
  }
395
436
  //# sourceMappingURL=tool-host.js.map