apcore-js 0.5.0 → 0.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/acl.d.ts +27 -0
- package/dist/acl.d.ts.map +1 -0
- package/dist/acl.js +175 -0
- package/dist/acl.js.map +1 -0
- package/dist/approval.d.ts +85 -0
- package/dist/approval.d.ts.map +1 -0
- package/dist/approval.js +73 -0
- package/dist/approval.js.map +1 -0
- package/dist/async-task.d.ts +90 -0
- package/dist/async-task.d.ts.map +1 -0
- package/dist/async-task.js +215 -0
- package/dist/async-task.js.map +1 -0
- package/dist/bindings.d.ts +12 -0
- package/dist/bindings.d.ts.map +1 -0
- package/dist/bindings.js +185 -0
- package/dist/bindings.js.map +1 -0
- package/dist/cancel.d.ts +14 -0
- package/dist/cancel.d.ts.map +1 -0
- package/dist/cancel.js +27 -0
- package/dist/cancel.js.map +1 -0
- package/dist/config.d.ts +9 -0
- package/dist/config.d.ts.map +1 -0
- package/dist/config.js +23 -0
- package/dist/config.js.map +1 -0
- package/dist/context.d.ts +50 -0
- package/dist/context.d.ts.map +1 -0
- package/dist/context.js +87 -0
- package/dist/context.js.map +1 -0
- package/dist/decorator.d.ts +57 -0
- package/dist/decorator.d.ts.map +1 -0
- package/dist/decorator.js +74 -0
- package/dist/decorator.js.map +1 -0
- package/dist/errors.d.ts +204 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +364 -0
- package/dist/errors.js.map +1 -0
- package/dist/executor.d.ts +82 -0
- package/dist/executor.d.ts.map +1 -0
- package/dist/executor.js +489 -0
- package/dist/executor.js.map +1 -0
- package/dist/extensions.d.ts +58 -0
- package/dist/extensions.d.ts.map +1 -0
- package/dist/extensions.js +239 -0
- package/dist/extensions.js.map +1 -0
- package/{src/index.ts → dist/index.d.ts} +6 -63
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +45 -0
- package/dist/index.js.map +1 -0
- package/dist/middleware/adapters.d.ts +18 -0
- package/dist/middleware/adapters.d.ts.map +1 -0
- package/dist/middleware/adapters.js +25 -0
- package/dist/middleware/adapters.js.map +1 -0
- package/dist/middleware/base.d.ts +10 -0
- package/dist/middleware/base.d.ts.map +1 -0
- package/dist/middleware/base.js +15 -0
- package/dist/middleware/base.js.map +1 -0
- package/{src/middleware/index.ts → dist/middleware/index.d.ts} +1 -0
- package/dist/middleware/index.d.ts.map +1 -0
- package/dist/middleware/index.js +5 -0
- package/dist/middleware/index.js.map +1 -0
- package/dist/middleware/logging.d.ts +25 -0
- package/dist/middleware/logging.d.ts.map +1 -0
- package/dist/middleware/logging.js +64 -0
- package/dist/middleware/logging.js.map +1 -0
- package/dist/middleware/manager.d.ts +21 -0
- package/dist/middleware/manager.d.ts.map +1 -0
- package/dist/middleware/manager.js +77 -0
- package/dist/middleware/manager.js.map +1 -0
- package/dist/module.d.ts +31 -0
- package/dist/module.d.ts.map +1 -0
- package/dist/module.js +12 -0
- package/dist/module.js.map +1 -0
- package/dist/observability/context-logger.d.ts +54 -0
- package/dist/observability/context-logger.d.ts.map +1 -0
- package/dist/observability/context-logger.js +151 -0
- package/dist/observability/context-logger.js.map +1 -0
- package/{src/observability/index.ts → dist/observability/index.d.ts} +1 -0
- package/dist/observability/index.d.ts.map +1 -0
- package/dist/observability/index.js +4 -0
- package/dist/observability/index.js.map +1 -0
- package/dist/observability/metrics.d.ts +30 -0
- package/dist/observability/metrics.d.ts.map +1 -0
- package/dist/observability/metrics.js +177 -0
- package/dist/observability/metrics.js.map +1 -0
- package/dist/observability/tracing.d.ts +62 -0
- package/dist/observability/tracing.d.ts.map +1 -0
- package/dist/observability/tracing.js +184 -0
- package/dist/observability/tracing.js.map +1 -0
- package/dist/registry/dependencies.d.ts +6 -0
- package/dist/registry/dependencies.d.ts.map +1 -0
- package/dist/registry/dependencies.js +83 -0
- package/dist/registry/dependencies.js.map +1 -0
- package/dist/registry/entry-point.d.ts +6 -0
- package/dist/registry/entry-point.d.ts.map +1 -0
- package/dist/registry/entry-point.js +55 -0
- package/dist/registry/entry-point.js.map +1 -0
- package/{src/registry/index.ts → dist/registry/index.d.ts} +1 -0
- package/dist/registry/index.d.ts.map +1 -0
- package/dist/registry/index.js +8 -0
- package/dist/registry/index.js.map +1 -0
- package/dist/registry/metadata.d.ts +9 -0
- package/dist/registry/metadata.d.ts.map +1 -0
- package/dist/registry/metadata.js +105 -0
- package/dist/registry/metadata.js.map +1 -0
- package/dist/registry/registry.d.ts +102 -0
- package/dist/registry/registry.d.ts.map +1 -0
- package/dist/registry/registry.js +534 -0
- package/dist/registry/registry.js.map +1 -0
- package/dist/registry/scanner.d.ts +7 -0
- package/dist/registry/scanner.d.ts.map +1 -0
- package/dist/registry/scanner.js +164 -0
- package/dist/registry/scanner.js.map +1 -0
- package/dist/registry/schema-export.d.ts +9 -0
- package/dist/registry/schema-export.d.ts.map +1 -0
- package/dist/registry/schema-export.js +132 -0
- package/dist/registry/schema-export.js.map +1 -0
- package/dist/registry/types.d.ts +29 -0
- package/dist/registry/types.d.ts.map +1 -0
- package/dist/registry/types.js +5 -0
- package/dist/registry/types.js.map +1 -0
- package/dist/registry/validation.d.ts +9 -0
- package/dist/registry/validation.d.ts.map +1 -0
- package/dist/registry/validation.js +33 -0
- package/dist/registry/validation.js.map +1 -0
- package/dist/schema/annotations.d.ts +8 -0
- package/dist/schema/annotations.d.ts.map +1 -0
- package/dist/schema/annotations.js +52 -0
- package/dist/schema/annotations.js.map +1 -0
- package/dist/schema/exporter.d.ts +13 -0
- package/dist/schema/exporter.d.ts.map +1 -0
- package/dist/schema/exporter.js +71 -0
- package/dist/schema/exporter.js.map +1 -0
- package/dist/schema/index.d.ts +9 -0
- package/dist/schema/index.d.ts.map +1 -0
- package/{src/schema/index.ts → dist/schema/index.js} +1 -7
- package/dist/schema/index.js.map +1 -0
- package/dist/schema/loader.d.ts +30 -0
- package/dist/schema/loader.d.ts.map +1 -0
- package/dist/schema/loader.js +260 -0
- package/dist/schema/loader.js.map +1 -0
- package/dist/schema/ref-resolver.d.ts +19 -0
- package/dist/schema/ref-resolver.d.ts.map +1 -0
- package/dist/schema/ref-resolver.js +212 -0
- package/dist/schema/ref-resolver.js.map +1 -0
- package/dist/schema/strict.d.ts +7 -0
- package/dist/schema/strict.d.ts.map +1 -0
- package/dist/schema/strict.js +127 -0
- package/dist/schema/strict.js.map +1 -0
- package/dist/schema/types.d.ts +53 -0
- package/dist/schema/types.d.ts.map +1 -0
- package/dist/schema/types.js +31 -0
- package/dist/schema/types.js.map +1 -0
- package/dist/schema/validator.d.ts +16 -0
- package/dist/schema/validator.d.ts.map +1 -0
- package/dist/schema/validator.js +71 -0
- package/dist/schema/validator.js.map +1 -0
- package/dist/trace-context.d.ts +35 -0
- package/dist/trace-context.d.ts.map +1 -0
- package/dist/trace-context.js +86 -0
- package/dist/trace-context.js.map +1 -0
- package/dist/utils/index.d.ts +11 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +32 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/pattern.d.ts +5 -0
- package/dist/utils/pattern.d.ts.map +1 -0
- package/dist/utils/pattern.js +31 -0
- package/dist/utils/pattern.js.map +1 -0
- package/package.json +24 -3
- package/.claude/settings.local.json +0 -12
- package/.github/workflows/ci.yml +0 -39
- package/.gitmessage +0 -60
- package/.pre-commit-config.yaml +0 -28
- package/CHANGELOG.md +0 -214
- package/CLAUDE.md +0 -68
- package/apcore-logo.svg +0 -79
- package/planning/acl-system/overview.md +0 -54
- package/planning/acl-system/plan.md +0 -92
- package/planning/acl-system/state.json +0 -76
- package/planning/acl-system/tasks/acl-core.md +0 -226
- package/planning/acl-system/tasks/acl-rule.md +0 -92
- package/planning/acl-system/tasks/conditional-rules.md +0 -259
- package/planning/acl-system/tasks/pattern-matching.md +0 -152
- package/planning/acl-system/tasks/yaml-loading.md +0 -271
- package/planning/core-executor/overview.md +0 -53
- package/planning/core-executor/plan.md +0 -88
- package/planning/core-executor/state.json +0 -76
- package/planning/core-executor/tasks/async-support.md +0 -106
- package/planning/core-executor/tasks/execution-pipeline.md +0 -113
- package/planning/core-executor/tasks/redaction.md +0 -85
- package/planning/core-executor/tasks/safety-checks.md +0 -65
- package/planning/core-executor/tasks/setup.md +0 -75
- package/planning/decorator-bindings/overview.md +0 -62
- package/planning/decorator-bindings/plan.md +0 -104
- package/planning/decorator-bindings/state.json +0 -87
- package/planning/decorator-bindings/tasks/binding-directory.md +0 -79
- package/planning/decorator-bindings/tasks/binding-loader.md +0 -148
- package/planning/decorator-bindings/tasks/explicit-schemas.md +0 -85
- package/planning/decorator-bindings/tasks/function-module.md +0 -127
- package/planning/decorator-bindings/tasks/module-factory.md +0 -89
- package/planning/decorator-bindings/tasks/schema-modes.md +0 -142
- package/planning/middleware-system/overview.md +0 -48
- package/planning/middleware-system/plan.md +0 -102
- package/planning/middleware-system/state.json +0 -65
- package/planning/middleware-system/tasks/adapters.md +0 -170
- package/planning/middleware-system/tasks/base.md +0 -115
- package/planning/middleware-system/tasks/logging-middleware.md +0 -304
- package/planning/middleware-system/tasks/manager.md +0 -313
- package/planning/observability/overview.md +0 -53
- package/planning/observability/plan.md +0 -119
- package/planning/observability/state.json +0 -98
- package/planning/observability/tasks/context-logger.md +0 -201
- package/planning/observability/tasks/exporters.md +0 -121
- package/planning/observability/tasks/metrics-collector.md +0 -162
- package/planning/observability/tasks/metrics-middleware.md +0 -141
- package/planning/observability/tasks/obs-logging-middleware.md +0 -179
- package/planning/observability/tasks/span-model.md +0 -120
- package/planning/observability/tasks/tracing-middleware.md +0 -179
- package/planning/overview.md +0 -81
- package/planning/registry-system/overview.md +0 -57
- package/planning/registry-system/plan.md +0 -114
- package/planning/registry-system/state.json +0 -109
- package/planning/registry-system/tasks/dependencies.md +0 -157
- package/planning/registry-system/tasks/entry-point.md +0 -148
- package/planning/registry-system/tasks/metadata.md +0 -198
- package/planning/registry-system/tasks/registry-core.md +0 -323
- package/planning/registry-system/tasks/scanner.md +0 -172
- package/planning/registry-system/tasks/schema-export.md +0 -261
- package/planning/registry-system/tasks/types.md +0 -124
- package/planning/registry-system/tasks/validation.md +0 -177
- package/planning/schema-system/overview.md +0 -56
- package/planning/schema-system/plan.md +0 -121
- package/planning/schema-system/state.json +0 -98
- package/planning/schema-system/tasks/exporter.md +0 -153
- package/planning/schema-system/tasks/loader.md +0 -106
- package/planning/schema-system/tasks/ref-resolver.md +0 -133
- package/planning/schema-system/tasks/strict-mode.md +0 -140
- package/planning/schema-system/tasks/typebox-generation.md +0 -133
- package/planning/schema-system/tasks/types-and-annotations.md +0 -160
- package/planning/schema-system/tasks/validator.md +0 -149
- package/src/acl.ts +0 -200
- package/src/async-task.ts +0 -267
- package/src/bindings.ts +0 -207
- package/src/cancel.ts +0 -32
- package/src/config.ts +0 -24
- package/src/context.ts +0 -160
- package/src/decorator.ts +0 -110
- package/src/errors.ts +0 -429
- package/src/executor.ts +0 -493
- package/src/extensions.ts +0 -265
- package/src/middleware/adapters.ts +0 -54
- package/src/middleware/base.ts +0 -33
- package/src/middleware/logging.ts +0 -103
- package/src/middleware/manager.ts +0 -105
- package/src/module.ts +0 -43
- package/src/observability/context-logger.ts +0 -203
- package/src/observability/metrics.ts +0 -214
- package/src/observability/tracing.ts +0 -252
- package/src/registry/dependencies.ts +0 -99
- package/src/registry/entry-point.ts +0 -64
- package/src/registry/metadata.ts +0 -111
- package/src/registry/registry.ts +0 -580
- package/src/registry/scanner.ts +0 -168
- package/src/registry/schema-export.ts +0 -181
- package/src/registry/types.ts +0 -32
- package/src/registry/validation.ts +0 -38
- package/src/schema/annotations.ts +0 -68
- package/src/schema/exporter.ts +0 -90
- package/src/schema/loader.ts +0 -273
- package/src/schema/ref-resolver.ts +0 -244
- package/src/schema/strict.ts +0 -136
- package/src/schema/types.ts +0 -73
- package/src/schema/validator.ts +0 -82
- package/src/trace-context.ts +0 -102
- package/src/utils/index.ts +0 -5
- package/src/utils/pattern.ts +0 -30
- package/tests/async-task.test.ts +0 -335
- package/tests/helpers.ts +0 -30
- package/tests/integration/test-acl-safety.test.ts +0 -269
- package/tests/integration/test-binding-executor.test.ts +0 -194
- package/tests/integration/test-e2e-flow.test.ts +0 -117
- package/tests/integration/test-error-propagation.test.ts +0 -259
- package/tests/integration/test-middleware-chain.test.ts +0 -120
- package/tests/integration/test-observability-integration.test.ts +0 -438
- package/tests/observability/test-context-logger.test.ts +0 -123
- package/tests/observability/test-metrics.test.ts +0 -186
- package/tests/observability/test-tracing.test.ts +0 -303
- package/tests/registry/test-dependencies.test.ts +0 -70
- package/tests/registry/test-entry-point.test.ts +0 -133
- package/tests/registry/test-metadata.test.ts +0 -265
- package/tests/registry/test-registry.test.ts +0 -1397
- package/tests/registry/test-scanner.test.ts +0 -257
- package/tests/registry/test-schema-export.test.ts +0 -355
- package/tests/registry/test-validation.test.ts +0 -75
- package/tests/schema/test-annotations.test.ts +0 -137
- package/tests/schema/test-exporter.test.ts +0 -172
- package/tests/schema/test-loader.test.ts +0 -461
- package/tests/schema/test-ref-resolver.test.ts +0 -530
- package/tests/schema/test-strict.test.ts +0 -348
- package/tests/schema/test-validator.test.ts +0 -64
- package/tests/test-acl.test.ts +0 -423
- package/tests/test-bindings.test.ts +0 -227
- package/tests/test-cancel.test.ts +0 -71
- package/tests/test-config.test.ts +0 -76
- package/tests/test-context.test.ts +0 -266
- package/tests/test-decorator.test.ts +0 -173
- package/tests/test-errors.test.ts +0 -647
- package/tests/test-executor-stream.test.ts +0 -208
- package/tests/test-executor.test.ts +0 -252
- package/tests/test-extensions.test.ts +0 -310
- package/tests/test-logging-middleware.test.ts +0 -150
- package/tests/test-middleware-manager.test.ts +0 -185
- package/tests/test-middleware.test.ts +0 -86
- package/tests/test-trace-context.test.ts +0 -251
- package/tests/utils/test-pattern.test.ts +0 -109
- package/tsconfig.build.json +0 -8
- package/tsconfig.json +0 -20
- package/vitest.config.ts +0 -18
package/dist/errors.js
ADDED
|
@@ -0,0 +1,364 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Error hierarchy for the apcore framework.
|
|
3
|
+
*/
|
|
4
|
+
export class ModuleError extends Error {
|
|
5
|
+
static DEFAULT_RETRYABLE = null;
|
|
6
|
+
code;
|
|
7
|
+
details;
|
|
8
|
+
cause;
|
|
9
|
+
traceId;
|
|
10
|
+
timestamp;
|
|
11
|
+
retryable;
|
|
12
|
+
aiGuidance;
|
|
13
|
+
userFixable;
|
|
14
|
+
suggestion;
|
|
15
|
+
constructor(code, message, details, cause, traceId, retryable, aiGuidance, userFixable, suggestion) {
|
|
16
|
+
super(message, cause ? { cause } : undefined);
|
|
17
|
+
this.name = 'ModuleError';
|
|
18
|
+
this.code = code;
|
|
19
|
+
this.details = details ?? {};
|
|
20
|
+
this.cause = cause;
|
|
21
|
+
this.traceId = traceId;
|
|
22
|
+
this.timestamp = new Date().toISOString();
|
|
23
|
+
this.retryable = retryable !== undefined ? retryable : this.constructor.DEFAULT_RETRYABLE;
|
|
24
|
+
this.aiGuidance = aiGuidance ?? null;
|
|
25
|
+
this.userFixable = userFixable ?? null;
|
|
26
|
+
this.suggestion = suggestion ?? null;
|
|
27
|
+
}
|
|
28
|
+
toString() {
|
|
29
|
+
return `[${this.code}] ${this.message}`;
|
|
30
|
+
}
|
|
31
|
+
toJSON() {
|
|
32
|
+
const obj = {
|
|
33
|
+
code: this.code,
|
|
34
|
+
message: this.message,
|
|
35
|
+
};
|
|
36
|
+
if (Object.keys(this.details).length > 0) {
|
|
37
|
+
obj.details = this.details;
|
|
38
|
+
}
|
|
39
|
+
if (this.cause !== undefined) {
|
|
40
|
+
obj.cause = String(this.cause);
|
|
41
|
+
}
|
|
42
|
+
if (this.traceId !== undefined) {
|
|
43
|
+
obj.trace_id = this.traceId;
|
|
44
|
+
}
|
|
45
|
+
obj.timestamp = this.timestamp;
|
|
46
|
+
if (this.retryable !== null) {
|
|
47
|
+
obj.retryable = this.retryable;
|
|
48
|
+
}
|
|
49
|
+
if (this.aiGuidance !== null) {
|
|
50
|
+
obj.ai_guidance = this.aiGuidance;
|
|
51
|
+
}
|
|
52
|
+
if (this.userFixable !== null) {
|
|
53
|
+
obj.user_fixable = this.userFixable;
|
|
54
|
+
}
|
|
55
|
+
if (this.suggestion !== null) {
|
|
56
|
+
obj.suggestion = this.suggestion;
|
|
57
|
+
}
|
|
58
|
+
return obj;
|
|
59
|
+
}
|
|
60
|
+
}
|
|
61
|
+
export class ConfigNotFoundError extends ModuleError {
|
|
62
|
+
static DEFAULT_RETRYABLE = false;
|
|
63
|
+
constructor(configPath, options) {
|
|
64
|
+
super('CONFIG_NOT_FOUND', `Configuration file not found: ${configPath}`, { configPath }, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
|
|
65
|
+
this.name = 'ConfigNotFoundError';
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
export class ConfigError extends ModuleError {
|
|
69
|
+
static DEFAULT_RETRYABLE = false;
|
|
70
|
+
constructor(message, options) {
|
|
71
|
+
super('CONFIG_INVALID', message, {}, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
|
|
72
|
+
this.name = 'ConfigError';
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
export class ACLRuleError extends ModuleError {
|
|
76
|
+
static DEFAULT_RETRYABLE = false;
|
|
77
|
+
constructor(message, options) {
|
|
78
|
+
super('ACL_RULE_ERROR', message, {}, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
|
|
79
|
+
this.name = 'ACLRuleError';
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
export class ACLDeniedError extends ModuleError {
|
|
83
|
+
static DEFAULT_RETRYABLE = false;
|
|
84
|
+
constructor(callerId, targetId, options) {
|
|
85
|
+
super('ACL_DENIED', `Access denied: ${callerId} -> ${targetId}`, { callerId, targetId }, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
|
|
86
|
+
this.name = 'ACLDeniedError';
|
|
87
|
+
}
|
|
88
|
+
get callerId() {
|
|
89
|
+
return this.details['callerId'];
|
|
90
|
+
}
|
|
91
|
+
get targetId() {
|
|
92
|
+
return this.details['targetId'];
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
export class ModuleNotFoundError extends ModuleError {
|
|
96
|
+
static DEFAULT_RETRYABLE = false;
|
|
97
|
+
constructor(moduleId, options) {
|
|
98
|
+
super('MODULE_NOT_FOUND', `Module not found: ${moduleId}`, { moduleId }, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
|
|
99
|
+
this.name = 'ModuleNotFoundError';
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
export class ModuleTimeoutError extends ModuleError {
|
|
103
|
+
static DEFAULT_RETRYABLE = true;
|
|
104
|
+
constructor(moduleId, timeoutMs, options) {
|
|
105
|
+
super('MODULE_TIMEOUT', `Module ${moduleId} timed out after ${timeoutMs}ms`, { moduleId, timeoutMs }, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
|
|
106
|
+
this.name = 'ModuleTimeoutError';
|
|
107
|
+
}
|
|
108
|
+
get moduleId() {
|
|
109
|
+
return this.details['moduleId'];
|
|
110
|
+
}
|
|
111
|
+
get timeoutMs() {
|
|
112
|
+
return this.details['timeoutMs'];
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
export class SchemaValidationError extends ModuleError {
|
|
116
|
+
static DEFAULT_RETRYABLE = false;
|
|
117
|
+
constructor(message = 'Schema validation failed', errors, options) {
|
|
118
|
+
super('SCHEMA_VALIDATION_ERROR', message, { errors: errors ?? [] }, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
|
|
119
|
+
this.name = 'SchemaValidationError';
|
|
120
|
+
}
|
|
121
|
+
}
|
|
122
|
+
export class SchemaNotFoundError extends ModuleError {
|
|
123
|
+
static DEFAULT_RETRYABLE = false;
|
|
124
|
+
constructor(schemaId, options) {
|
|
125
|
+
super('SCHEMA_NOT_FOUND', `Schema not found: ${schemaId}`, { schemaId }, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
|
|
126
|
+
this.name = 'SchemaNotFoundError';
|
|
127
|
+
}
|
|
128
|
+
}
|
|
129
|
+
export class SchemaParseError extends ModuleError {
|
|
130
|
+
static DEFAULT_RETRYABLE = false;
|
|
131
|
+
constructor(message, options) {
|
|
132
|
+
super('SCHEMA_PARSE_ERROR', message, {}, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
|
|
133
|
+
this.name = 'SchemaParseError';
|
|
134
|
+
}
|
|
135
|
+
}
|
|
136
|
+
export class SchemaCircularRefError extends ModuleError {
|
|
137
|
+
static DEFAULT_RETRYABLE = false;
|
|
138
|
+
constructor(refPath, options) {
|
|
139
|
+
super('SCHEMA_CIRCULAR_REF', `Circular reference detected: ${refPath}`, { refPath }, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
|
|
140
|
+
this.name = 'SchemaCircularRefError';
|
|
141
|
+
}
|
|
142
|
+
}
|
|
143
|
+
export class CallDepthExceededError extends ModuleError {
|
|
144
|
+
static DEFAULT_RETRYABLE = false;
|
|
145
|
+
constructor(depth, maxDepth, callChain, options) {
|
|
146
|
+
super('CALL_DEPTH_EXCEEDED', `Call depth ${depth} exceeds maximum ${maxDepth}`, { depth, maxDepth, callChain }, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
|
|
147
|
+
this.name = 'CallDepthExceededError';
|
|
148
|
+
}
|
|
149
|
+
get currentDepth() {
|
|
150
|
+
return this.details['depth'];
|
|
151
|
+
}
|
|
152
|
+
get maxDepth() {
|
|
153
|
+
return this.details['maxDepth'];
|
|
154
|
+
}
|
|
155
|
+
}
|
|
156
|
+
export class CircularCallError extends ModuleError {
|
|
157
|
+
static DEFAULT_RETRYABLE = false;
|
|
158
|
+
constructor(moduleId, callChain, options) {
|
|
159
|
+
super('CIRCULAR_CALL', `Circular call detected for module ${moduleId}`, { moduleId, callChain }, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
|
|
160
|
+
this.name = 'CircularCallError';
|
|
161
|
+
}
|
|
162
|
+
get moduleId() {
|
|
163
|
+
return this.details['moduleId'];
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
export class CallFrequencyExceededError extends ModuleError {
|
|
167
|
+
static DEFAULT_RETRYABLE = false;
|
|
168
|
+
constructor(moduleId, count, maxRepeat, callChain, options) {
|
|
169
|
+
super('CALL_FREQUENCY_EXCEEDED', `Module ${moduleId} called ${count} times, max is ${maxRepeat}`, { moduleId, count, maxRepeat, callChain }, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
|
|
170
|
+
this.name = 'CallFrequencyExceededError';
|
|
171
|
+
}
|
|
172
|
+
get moduleId() {
|
|
173
|
+
return this.details['moduleId'];
|
|
174
|
+
}
|
|
175
|
+
get count() {
|
|
176
|
+
return this.details['count'];
|
|
177
|
+
}
|
|
178
|
+
get maxRepeat() {
|
|
179
|
+
return this.details['maxRepeat'];
|
|
180
|
+
}
|
|
181
|
+
}
|
|
182
|
+
export class InvalidInputError extends ModuleError {
|
|
183
|
+
static DEFAULT_RETRYABLE = false;
|
|
184
|
+
constructor(message = 'Invalid input', options) {
|
|
185
|
+
super('GENERAL_INVALID_INPUT', message, {}, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
|
|
186
|
+
this.name = 'InvalidInputError';
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
export class FuncMissingTypeHintError extends ModuleError {
|
|
190
|
+
static DEFAULT_RETRYABLE = false;
|
|
191
|
+
constructor(functionName, parameterName, options) {
|
|
192
|
+
super('FUNC_MISSING_TYPE_HINT', `Parameter '${parameterName}' in function '${functionName}' has no type annotation. Add a type annotation like '${parameterName}: string'.`, { functionName, parameterName }, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
|
|
193
|
+
this.name = 'FuncMissingTypeHintError';
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
export class FuncMissingReturnTypeError extends ModuleError {
|
|
197
|
+
static DEFAULT_RETRYABLE = false;
|
|
198
|
+
constructor(functionName, options) {
|
|
199
|
+
super('FUNC_MISSING_RETURN_TYPE', `Function '${functionName}' has no return type annotation. Add a return type like ': Record<string, unknown>'.`, { functionName }, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
|
|
200
|
+
this.name = 'FuncMissingReturnTypeError';
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
export class BindingInvalidTargetError extends ModuleError {
|
|
204
|
+
static DEFAULT_RETRYABLE = false;
|
|
205
|
+
constructor(target, options) {
|
|
206
|
+
super('BINDING_INVALID_TARGET', `Invalid binding target '${target}'. Expected format: 'module.path:callable_name'.`, { target }, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
|
|
207
|
+
this.name = 'BindingInvalidTargetError';
|
|
208
|
+
}
|
|
209
|
+
}
|
|
210
|
+
export class BindingModuleNotFoundError extends ModuleError {
|
|
211
|
+
static DEFAULT_RETRYABLE = false;
|
|
212
|
+
constructor(modulePath, options) {
|
|
213
|
+
super('BINDING_MODULE_NOT_FOUND', `Cannot import module '${modulePath}'.`, { modulePath }, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
|
|
214
|
+
this.name = 'BindingModuleNotFoundError';
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
export class BindingCallableNotFoundError extends ModuleError {
|
|
218
|
+
static DEFAULT_RETRYABLE = false;
|
|
219
|
+
constructor(callableName, modulePath, options) {
|
|
220
|
+
super('BINDING_CALLABLE_NOT_FOUND', `Cannot find callable '${callableName}' in module '${modulePath}'.`, { callableName, modulePath }, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
|
|
221
|
+
this.name = 'BindingCallableNotFoundError';
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
export class BindingNotCallableError extends ModuleError {
|
|
225
|
+
static DEFAULT_RETRYABLE = false;
|
|
226
|
+
constructor(target, options) {
|
|
227
|
+
super('BINDING_NOT_CALLABLE', `Resolved target '${target}' is not callable.`, { target }, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
|
|
228
|
+
this.name = 'BindingNotCallableError';
|
|
229
|
+
}
|
|
230
|
+
}
|
|
231
|
+
export class BindingSchemaMissingError extends ModuleError {
|
|
232
|
+
static DEFAULT_RETRYABLE = false;
|
|
233
|
+
constructor(target, options) {
|
|
234
|
+
super('BINDING_SCHEMA_MISSING', `No schema available for target '${target}'. Add type hints or provide an explicit schema.`, { target }, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
|
|
235
|
+
this.name = 'BindingSchemaMissingError';
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
export class BindingFileInvalidError extends ModuleError {
|
|
239
|
+
static DEFAULT_RETRYABLE = false;
|
|
240
|
+
constructor(filePath, reason, options) {
|
|
241
|
+
super('BINDING_FILE_INVALID', `Invalid binding file '${filePath}': ${reason}`, { filePath, reason }, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
|
|
242
|
+
this.name = 'BindingFileInvalidError';
|
|
243
|
+
}
|
|
244
|
+
}
|
|
245
|
+
export class CircularDependencyError extends ModuleError {
|
|
246
|
+
static DEFAULT_RETRYABLE = false;
|
|
247
|
+
constructor(cyclePath, options) {
|
|
248
|
+
super('CIRCULAR_DEPENDENCY', `Circular dependency detected: ${cyclePath.join(' -> ')}`, { cyclePath }, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
|
|
249
|
+
this.name = 'CircularDependencyError';
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
export class ModuleLoadError extends ModuleError {
|
|
253
|
+
static DEFAULT_RETRYABLE = false;
|
|
254
|
+
constructor(moduleId, reason, options) {
|
|
255
|
+
super('MODULE_LOAD_ERROR', `Failed to load module '${moduleId}': ${reason}`, { moduleId, reason }, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
|
|
256
|
+
this.name = 'ModuleLoadError';
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
export class ModuleExecuteError extends ModuleError {
|
|
260
|
+
static DEFAULT_RETRYABLE = null;
|
|
261
|
+
constructor(moduleId, reason, options) {
|
|
262
|
+
super('MODULE_EXECUTE_ERROR', `Failed to execute module '${moduleId}': ${reason}`, { moduleId, reason }, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
|
|
263
|
+
this.name = 'ModuleExecuteError';
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
export class InternalError extends ModuleError {
|
|
267
|
+
static DEFAULT_RETRYABLE = true;
|
|
268
|
+
constructor(message = 'Internal error', options) {
|
|
269
|
+
super('GENERAL_INTERNAL_ERROR', message, {}, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
|
|
270
|
+
this.name = 'InternalError';
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
/**
|
|
274
|
+
* Base error for all approval-related errors.
|
|
275
|
+
* Carries the full ApprovalResult for inspection by callers.
|
|
276
|
+
*/
|
|
277
|
+
export class ApprovalError extends ModuleError {
|
|
278
|
+
static DEFAULT_RETRYABLE = false;
|
|
279
|
+
result;
|
|
280
|
+
constructor(code, message, result, moduleId, options) {
|
|
281
|
+
super(code, message, { moduleId: moduleId ?? null }, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
|
|
282
|
+
this.name = 'ApprovalError';
|
|
283
|
+
this.result = result;
|
|
284
|
+
}
|
|
285
|
+
get moduleId() {
|
|
286
|
+
return this.details['moduleId'];
|
|
287
|
+
}
|
|
288
|
+
get reason() {
|
|
289
|
+
const r = this.result;
|
|
290
|
+
return r?.['reason'] ?? null;
|
|
291
|
+
}
|
|
292
|
+
}
|
|
293
|
+
export class ApprovalDeniedError extends ApprovalError {
|
|
294
|
+
static DEFAULT_RETRYABLE = false;
|
|
295
|
+
constructor(result, moduleId = '', options) {
|
|
296
|
+
const reason = result?.['reason'];
|
|
297
|
+
let msg = `Approval denied for module '${moduleId}'`;
|
|
298
|
+
if (reason) {
|
|
299
|
+
msg += `: ${reason}`;
|
|
300
|
+
}
|
|
301
|
+
super('APPROVAL_DENIED', msg, result, moduleId, options);
|
|
302
|
+
this.name = 'ApprovalDeniedError';
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
export class ApprovalTimeoutError extends ApprovalError {
|
|
306
|
+
static DEFAULT_RETRYABLE = true;
|
|
307
|
+
constructor(result, moduleId = '', options) {
|
|
308
|
+
super('APPROVAL_TIMEOUT', `Approval timed out for module '${moduleId}'`, result, moduleId, options);
|
|
309
|
+
this.name = 'ApprovalTimeoutError';
|
|
310
|
+
}
|
|
311
|
+
}
|
|
312
|
+
export class ApprovalPendingError extends ApprovalError {
|
|
313
|
+
static DEFAULT_RETRYABLE = false;
|
|
314
|
+
constructor(result, moduleId = '', options) {
|
|
315
|
+
const approvalId = result?.['approvalId'];
|
|
316
|
+
super('APPROVAL_PENDING', `Approval pending for module '${moduleId}'`, result, moduleId, options);
|
|
317
|
+
this.name = 'ApprovalPendingError';
|
|
318
|
+
this.details['approvalId'] = approvalId ?? null;
|
|
319
|
+
}
|
|
320
|
+
get approvalId() {
|
|
321
|
+
return this.details['approvalId'];
|
|
322
|
+
}
|
|
323
|
+
}
|
|
324
|
+
/**
|
|
325
|
+
* All framework error codes as constants.
|
|
326
|
+
* Use these instead of hardcoding error code strings.
|
|
327
|
+
*/
|
|
328
|
+
export const ErrorCodes = Object.freeze({
|
|
329
|
+
CONFIG_NOT_FOUND: "CONFIG_NOT_FOUND",
|
|
330
|
+
CONFIG_INVALID: "CONFIG_INVALID",
|
|
331
|
+
ACL_RULE_ERROR: "ACL_RULE_ERROR",
|
|
332
|
+
ACL_DENIED: "ACL_DENIED",
|
|
333
|
+
MODULE_NOT_FOUND: "MODULE_NOT_FOUND",
|
|
334
|
+
MODULE_TIMEOUT: "MODULE_TIMEOUT",
|
|
335
|
+
MODULE_LOAD_ERROR: "MODULE_LOAD_ERROR",
|
|
336
|
+
MODULE_EXECUTE_ERROR: "MODULE_EXECUTE_ERROR",
|
|
337
|
+
SCHEMA_VALIDATION_ERROR: "SCHEMA_VALIDATION_ERROR",
|
|
338
|
+
SCHEMA_NOT_FOUND: "SCHEMA_NOT_FOUND",
|
|
339
|
+
SCHEMA_PARSE_ERROR: "SCHEMA_PARSE_ERROR",
|
|
340
|
+
SCHEMA_CIRCULAR_REF: "SCHEMA_CIRCULAR_REF",
|
|
341
|
+
CALL_DEPTH_EXCEEDED: "CALL_DEPTH_EXCEEDED",
|
|
342
|
+
CIRCULAR_CALL: "CIRCULAR_CALL",
|
|
343
|
+
CALL_FREQUENCY_EXCEEDED: "CALL_FREQUENCY_EXCEEDED",
|
|
344
|
+
GENERAL_INVALID_INPUT: "GENERAL_INVALID_INPUT",
|
|
345
|
+
GENERAL_INTERNAL_ERROR: "GENERAL_INTERNAL_ERROR",
|
|
346
|
+
FUNC_MISSING_TYPE_HINT: "FUNC_MISSING_TYPE_HINT",
|
|
347
|
+
FUNC_MISSING_RETURN_TYPE: "FUNC_MISSING_RETURN_TYPE",
|
|
348
|
+
BINDING_INVALID_TARGET: "BINDING_INVALID_TARGET",
|
|
349
|
+
BINDING_MODULE_NOT_FOUND: "BINDING_MODULE_NOT_FOUND",
|
|
350
|
+
BINDING_CALLABLE_NOT_FOUND: "BINDING_CALLABLE_NOT_FOUND",
|
|
351
|
+
BINDING_NOT_CALLABLE: "BINDING_NOT_CALLABLE",
|
|
352
|
+
BINDING_SCHEMA_MISSING: "BINDING_SCHEMA_MISSING",
|
|
353
|
+
BINDING_FILE_INVALID: "BINDING_FILE_INVALID",
|
|
354
|
+
CIRCULAR_DEPENDENCY: "CIRCULAR_DEPENDENCY",
|
|
355
|
+
MIDDLEWARE_CHAIN_ERROR: "MIDDLEWARE_CHAIN_ERROR",
|
|
356
|
+
APPROVAL_DENIED: "APPROVAL_DENIED",
|
|
357
|
+
APPROVAL_TIMEOUT: "APPROVAL_TIMEOUT",
|
|
358
|
+
APPROVAL_PENDING: "APPROVAL_PENDING",
|
|
359
|
+
// Forward declarations for Level 2 Phase 2 features.
|
|
360
|
+
// Exception classes will be added when the corresponding features are implemented.
|
|
361
|
+
GENERAL_NOT_IMPLEMENTED: "GENERAL_NOT_IMPLEMENTED",
|
|
362
|
+
DEPENDENCY_NOT_FOUND: "DEPENDENCY_NOT_FOUND",
|
|
363
|
+
});
|
|
364
|
+
//# sourceMappingURL=errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"AAAA;;GAEG;AAWH,MAAM,OAAO,WAAY,SAAQ,KAAK;IACpC,MAAM,CAAU,iBAAiB,GAAmB,IAAI,CAAC;IAEhD,IAAI,CAAS;IACb,OAAO,CAA0B;IACxB,KAAK,CAAS;IACvB,OAAO,CAAU;IACjB,SAAS,CAAS;IAClB,SAAS,CAAiB;IAC1B,UAAU,CAAgB;IAC1B,WAAW,CAAiB;IAC5B,UAAU,CAAgB;IAEnC,YACE,IAAY,EACZ,OAAe,EACf,OAAiC,EACjC,KAAa,EACb,OAAgB,EAChB,SAA0B,EAC1B,UAA0B,EAC1B,WAA4B,EAC5B,UAA0B;QAE1B,KAAK,CAAC,OAAO,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,OAAO,GAAG,OAAO,IAAI,EAAE,CAAC;QAC7B,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QACnB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;QACvB,IAAI,CAAC,SAAS,GAAG,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE,CAAC;QAC1C,IAAI,CAAC,SAAS,GAAG,SAAS,KAAK,SAAS,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAE,IAAI,CAAC,WAAkC,CAAC,iBAAiB,CAAC;QAClH,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,IAAI,CAAC;QACrC,IAAI,CAAC,WAAW,GAAG,WAAW,IAAI,IAAI,CAAC;QACvC,IAAI,CAAC,UAAU,GAAG,UAAU,IAAI,IAAI,CAAC;IACvC,CAAC;IAEQ,QAAQ;QACf,OAAO,IAAI,IAAI,CAAC,IAAI,KAAK,IAAI,CAAC,OAAO,EAAE,CAAC;IAC1C,CAAC;IAED,MAAM;QACJ,MAAM,GAAG,GAA4B;YACnC,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;SACtB,CAAC;QACF,IAAI,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACzC,GAAG,CAAC,OAAO,GAAG,IAAI,CAAC,OAAO,CAAC;QAC7B,CAAC;QACD,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE,CAAC;YAC7B,GAAG,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACjC,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,KAAK,SAAS,EAAE,CAAC;YAC/B,GAAG,CAAC,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC;QAC9B,CAAC;QACD,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC/B,IAAI,IAAI,CAAC,SAAS,KAAK,IAAI,EAAE,CAAC;YAC5B,GAAG,CAAC,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QACjC,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC7B,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;QACpC,CAAC;QACD,IAAI,IAAI,CAAC,WAAW,KAAK,IAAI,EAAE,CAAC;YAC9B,GAAG,CAAC,YAAY,GAAG,IAAI,CAAC,WAAW,CAAC;QACtC,CAAC;QACD,IAAI,IAAI,CAAC,UAAU,KAAK,IAAI,EAAE,CAAC;YAC7B,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;;AAGH,MAAM,OAAO,mBAAoB,SAAQ,WAAW;IAClD,MAAM,CAAmB,iBAAiB,GAAmB,KAAK,CAAC;IAEnE,YAAY,UAAkB,EAAE,OAAsB;QACpD,KAAK,CACH,kBAAkB,EAClB,iCAAiC,UAAU,EAAE,EAC7C,EAAE,UAAU,EAAE,EACd,OAAO,EAAE,KAAK,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,UAAU,CACpB,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;;AAGH,MAAM,OAAO,WAAY,SAAQ,WAAW;IAC1C,MAAM,CAAmB,iBAAiB,GAAmB,KAAK,CAAC;IAEnE,YAAY,OAAe,EAAE,OAAsB;QACjD,KAAK,CAAC,gBAAgB,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QAC3J,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;;AAGH,MAAM,OAAO,YAAa,SAAQ,WAAW;IAC3C,MAAM,CAAmB,iBAAiB,GAAmB,KAAK,CAAC;IAEnE,YAAY,OAAe,EAAE,OAAsB;QACjD,KAAK,CAAC,gBAAgB,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QAC3J,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;IAC7B,CAAC;;AAGH,MAAM,OAAO,cAAe,SAAQ,WAAW;IAC7C,MAAM,CAAmB,iBAAiB,GAAmB,KAAK,CAAC;IAEnE,YAAY,QAAuB,EAAE,QAAgB,EAAE,OAAsB;QAC3E,KAAK,CACH,YAAY,EACZ,kBAAkB,QAAQ,OAAO,QAAQ,EAAE,EAC3C,EAAE,QAAQ,EAAE,QAAQ,EAAE,EACtB,OAAO,EAAE,KAAK,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,UAAU,CACpB,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;IAC/B,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAkB,CAAC;IACnD,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAW,CAAC;IAC5C,CAAC;;AAGH,MAAM,OAAO,mBAAoB,SAAQ,WAAW;IAClD,MAAM,CAAmB,iBAAiB,GAAmB,KAAK,CAAC;IAEnE,YAAY,QAAgB,EAAE,OAAsB;QAClD,KAAK,CACH,kBAAkB,EAClB,qBAAqB,QAAQ,EAAE,EAC/B,EAAE,QAAQ,EAAE,EACZ,OAAO,EAAE,KAAK,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,UAAU,CACpB,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;;AAGH,MAAM,OAAO,kBAAmB,SAAQ,WAAW;IACjD,MAAM,CAAmB,iBAAiB,GAAmB,IAAI,CAAC;IAElE,YAAY,QAAgB,EAAE,SAAiB,EAAE,OAAsB;QACrE,KAAK,CACH,gBAAgB,EAChB,UAAU,QAAQ,oBAAoB,SAAS,IAAI,EACnD,EAAE,QAAQ,EAAE,SAAS,EAAE,EACvB,OAAO,EAAE,KAAK,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,UAAU,CACpB,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAW,CAAC;IAC5C,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAW,CAAC;IAC7C,CAAC;;AAGH,MAAM,OAAO,qBAAsB,SAAQ,WAAW;IACpD,MAAM,CAAmB,iBAAiB,GAAmB,KAAK,CAAC;IAEnE,YACE,UAAkB,0BAA0B,EAC5C,MAAuC,EACvC,OAAsB;QAEtB,KAAK,CACH,yBAAyB,EACzB,OAAO,EACP,EAAE,MAAM,EAAE,MAAM,IAAI,EAAE,EAAE,EACxB,OAAO,EAAE,KAAK,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,UAAU,CACpB,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,uBAAuB,CAAC;IACtC,CAAC;;AAGH,MAAM,OAAO,mBAAoB,SAAQ,WAAW;IAClD,MAAM,CAAmB,iBAAiB,GAAmB,KAAK,CAAC;IAEnE,YAAY,QAAgB,EAAE,OAAsB;QAClD,KAAK,CACH,kBAAkB,EAClB,qBAAqB,QAAQ,EAAE,EAC/B,EAAE,QAAQ,EAAE,EACZ,OAAO,EAAE,KAAK,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,UAAU,CACpB,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;;AAGH,MAAM,OAAO,gBAAiB,SAAQ,WAAW;IAC/C,MAAM,CAAmB,iBAAiB,GAAmB,KAAK,CAAC;IAEnE,YAAY,OAAe,EAAE,OAAsB;QACjD,KAAK,CAAC,oBAAoB,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QAC/J,IAAI,CAAC,IAAI,GAAG,kBAAkB,CAAC;IACjC,CAAC;;AAGH,MAAM,OAAO,sBAAuB,SAAQ,WAAW;IACrD,MAAM,CAAmB,iBAAiB,GAAmB,KAAK,CAAC;IAEnE,YAAY,OAAe,EAAE,OAAsB;QACjD,KAAK,CACH,qBAAqB,EACrB,gCAAgC,OAAO,EAAE,EACzC,EAAE,OAAO,EAAE,EACX,OAAO,EAAE,KAAK,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,UAAU,CACpB,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;;AAGH,MAAM,OAAO,sBAAuB,SAAQ,WAAW;IACrD,MAAM,CAAmB,iBAAiB,GAAmB,KAAK,CAAC;IAEnE,YAAY,KAAa,EAAE,QAAgB,EAAE,SAAmB,EAAE,OAAsB;QACtF,KAAK,CACH,qBAAqB,EACrB,cAAc,KAAK,oBAAoB,QAAQ,EAAE,EACjD,EAAE,KAAK,EAAE,QAAQ,EAAE,SAAS,EAAE,EAC9B,OAAO,EAAE,KAAK,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,UAAU,CACpB,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,wBAAwB,CAAC;IACvC,CAAC;IAED,IAAI,YAAY;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAW,CAAC;IACzC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAW,CAAC;IAC5C,CAAC;;AAGH,MAAM,OAAO,iBAAkB,SAAQ,WAAW;IAChD,MAAM,CAAmB,iBAAiB,GAAmB,KAAK,CAAC;IAEnE,YAAY,QAAgB,EAAE,SAAmB,EAAE,OAAsB;QACvE,KAAK,CACH,eAAe,EACf,qCAAqC,QAAQ,EAAE,EAC/C,EAAE,QAAQ,EAAE,SAAS,EAAE,EACvB,OAAO,EAAE,KAAK,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,UAAU,CACpB,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAW,CAAC;IAC5C,CAAC;;AAGH,MAAM,OAAO,0BAA2B,SAAQ,WAAW;IACzD,MAAM,CAAmB,iBAAiB,GAAmB,KAAK,CAAC;IAEnE,YACE,QAAgB,EAChB,KAAa,EACb,SAAiB,EACjB,SAAmB,EACnB,OAAsB;QAEtB,KAAK,CACH,yBAAyB,EACzB,UAAU,QAAQ,WAAW,KAAK,kBAAkB,SAAS,EAAE,EAC/D,EAAE,QAAQ,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,EACzC,OAAO,EAAE,KAAK,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,UAAU,CACpB,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAW,CAAC;IAC5C,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,OAAO,CAAC,OAAO,CAAW,CAAC;IACzC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,CAAW,CAAC;IAC7C,CAAC;;AAGH,MAAM,OAAO,iBAAkB,SAAQ,WAAW;IAChD,MAAM,CAAmB,iBAAiB,GAAmB,KAAK,CAAC;IAEnE,YAAY,UAAkB,eAAe,EAAE,OAAsB;QACnE,KAAK,CAAC,uBAAuB,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QAClK,IAAI,CAAC,IAAI,GAAG,mBAAmB,CAAC;IAClC,CAAC;;AAGH,MAAM,OAAO,wBAAyB,SAAQ,WAAW;IACvD,MAAM,CAAmB,iBAAiB,GAAmB,KAAK,CAAC;IAEnE,YAAY,YAAoB,EAAE,aAAqB,EAAE,OAAsB;QAC7E,KAAK,CACH,wBAAwB,EACxB,cAAc,aAAa,kBAAkB,YAAY,yDAAyD,aAAa,YAAY,EAC3I,EAAE,YAAY,EAAE,aAAa,EAAE,EAC/B,OAAO,EAAE,KAAK,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,UAAU,CACpB,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC;IACzC,CAAC;;AAGH,MAAM,OAAO,0BAA2B,SAAQ,WAAW;IACzD,MAAM,CAAmB,iBAAiB,GAAmB,KAAK,CAAC;IAEnE,YAAY,YAAoB,EAAE,OAAsB;QACtD,KAAK,CACH,0BAA0B,EAC1B,aAAa,YAAY,sFAAsF,EAC/G,EAAE,YAAY,EAAE,EAChB,OAAO,EAAE,KAAK,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,UAAU,CACpB,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;;AAGH,MAAM,OAAO,yBAA0B,SAAQ,WAAW;IACxD,MAAM,CAAmB,iBAAiB,GAAmB,KAAK,CAAC;IAEnE,YAAY,MAAc,EAAE,OAAsB;QAChD,KAAK,CACH,wBAAwB,EACxB,2BAA2B,MAAM,kDAAkD,EACnF,EAAE,MAAM,EAAE,EACV,OAAO,EAAE,KAAK,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,UAAU,CACpB,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;;AAGH,MAAM,OAAO,0BAA2B,SAAQ,WAAW;IACzD,MAAM,CAAmB,iBAAiB,GAAmB,KAAK,CAAC;IAEnE,YAAY,UAAkB,EAAE,OAAsB;QACpD,KAAK,CACH,0BAA0B,EAC1B,yBAAyB,UAAU,IAAI,EACvC,EAAE,UAAU,EAAE,EACd,OAAO,EAAE,KAAK,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,UAAU,CACpB,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,4BAA4B,CAAC;IAC3C,CAAC;;AAGH,MAAM,OAAO,4BAA6B,SAAQ,WAAW;IAC3D,MAAM,CAAmB,iBAAiB,GAAmB,KAAK,CAAC;IAEnE,YAAY,YAAoB,EAAE,UAAkB,EAAE,OAAsB;QAC1E,KAAK,CACH,4BAA4B,EAC5B,yBAAyB,YAAY,gBAAgB,UAAU,IAAI,EACnE,EAAE,YAAY,EAAE,UAAU,EAAE,EAC5B,OAAO,EAAE,KAAK,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,UAAU,CACpB,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,8BAA8B,CAAC;IAC7C,CAAC;;AAGH,MAAM,OAAO,uBAAwB,SAAQ,WAAW;IACtD,MAAM,CAAmB,iBAAiB,GAAmB,KAAK,CAAC;IAEnE,YAAY,MAAc,EAAE,OAAsB;QAChD,KAAK,CACH,sBAAsB,EACtB,oBAAoB,MAAM,oBAAoB,EAC9C,EAAE,MAAM,EAAE,EACV,OAAO,EAAE,KAAK,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,UAAU,CACpB,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;;AAGH,MAAM,OAAO,yBAA0B,SAAQ,WAAW;IACxD,MAAM,CAAmB,iBAAiB,GAAmB,KAAK,CAAC;IAEnE,YAAY,MAAc,EAAE,OAAsB;QAChD,KAAK,CACH,wBAAwB,EACxB,mCAAmC,MAAM,kDAAkD,EAC3F,EAAE,MAAM,EAAE,EACV,OAAO,EAAE,KAAK,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,UAAU,CACpB,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,2BAA2B,CAAC;IAC1C,CAAC;;AAGH,MAAM,OAAO,uBAAwB,SAAQ,WAAW;IACtD,MAAM,CAAmB,iBAAiB,GAAmB,KAAK,CAAC;IAEnE,YAAY,QAAgB,EAAE,MAAc,EAAE,OAAsB;QAClE,KAAK,CACH,sBAAsB,EACtB,yBAAyB,QAAQ,MAAM,MAAM,EAAE,EAC/C,EAAE,QAAQ,EAAE,MAAM,EAAE,EACpB,OAAO,EAAE,KAAK,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,UAAU,CACpB,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;;AAGH,MAAM,OAAO,uBAAwB,SAAQ,WAAW;IACtD,MAAM,CAAmB,iBAAiB,GAAmB,KAAK,CAAC;IAEnE,YAAY,SAAmB,EAAE,OAAsB;QACrD,KAAK,CACH,qBAAqB,EACrB,iCAAiC,SAAS,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,EACzD,EAAE,SAAS,EAAE,EACb,OAAO,EAAE,KAAK,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,UAAU,CACpB,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,yBAAyB,CAAC;IACxC,CAAC;;AAGH,MAAM,OAAO,eAAgB,SAAQ,WAAW;IAC9C,MAAM,CAAmB,iBAAiB,GAAmB,KAAK,CAAC;IAEnE,YAAY,QAAgB,EAAE,MAAc,EAAE,OAAsB;QAClE,KAAK,CACH,mBAAmB,EACnB,0BAA0B,QAAQ,MAAM,MAAM,EAAE,EAChD,EAAE,QAAQ,EAAE,MAAM,EAAE,EACpB,OAAO,EAAE,KAAK,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,UAAU,CACpB,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;;AAGH,MAAM,OAAO,kBAAmB,SAAQ,WAAW;IACjD,MAAM,CAAmB,iBAAiB,GAAmB,IAAI,CAAC;IAElE,YAAY,QAAgB,EAAE,MAAc,EAAE,OAAsB;QAClE,KAAK,CACH,sBAAsB,EACtB,6BAA6B,QAAQ,MAAM,MAAM,EAAE,EACnD,EAAE,QAAQ,EAAE,MAAM,EAAE,EACpB,OAAO,EAAE,KAAK,EACd,OAAO,EAAE,OAAO,EAChB,OAAO,EAAE,SAAS,EAClB,OAAO,EAAE,UAAU,EACnB,OAAO,EAAE,WAAW,EACpB,OAAO,EAAE,UAAU,CACpB,CAAC;QACF,IAAI,CAAC,IAAI,GAAG,oBAAoB,CAAC;IACnC,CAAC;;AAGH,MAAM,OAAO,aAAc,SAAQ,WAAW;IAC5C,MAAM,CAAmB,iBAAiB,GAAmB,IAAI,CAAC;IAElE,YAAY,UAAkB,gBAAgB,EAAE,OAAsB;QACpE,KAAK,CAAC,wBAAwB,EAAE,OAAO,EAAE,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QACnK,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;;AAGH;;;GAGG;AACH,MAAM,OAAO,aAAc,SAAQ,WAAW;IAC5C,MAAM,CAAmB,iBAAiB,GAAmB,KAAK,CAAC;IAE1D,MAAM,CAAU;IAEzB,YACE,IAAY,EACZ,OAAe,EACf,MAAe,EACf,QAAiB,EACjB,OAAsB;QAEtB,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,EAAE,QAAQ,EAAE,QAAQ,IAAI,IAAI,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,UAAU,EAAE,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,UAAU,CAAC,CAAC;QAC3K,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;QAC5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;IACvB,CAAC;IAED,IAAI,QAAQ;QACV,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAkB,CAAC;IACnD,CAAC;IAED,IAAI,MAAM;QACR,MAAM,CAAC,GAAG,IAAI,CAAC,MAAwC,CAAC;QACxD,OAAQ,CAAC,EAAE,CAAC,QAAQ,CAAY,IAAI,IAAI,CAAC;IAC3C,CAAC;;AAGH,MAAM,OAAO,mBAAoB,SAAQ,aAAa;IACpD,MAAM,CAAmB,iBAAiB,GAAmB,KAAK,CAAC;IAEnE,YAAY,MAAe,EAAE,WAAmB,EAAE,EAAE,OAAsB;QACxE,MAAM,MAAM,GAAI,MAAkC,EAAE,CAAC,QAAQ,CAAuB,CAAC;QACrF,IAAI,GAAG,GAAG,+BAA+B,QAAQ,GAAG,CAAC;QACrD,IAAI,MAAM,EAAE,CAAC;YACX,GAAG,IAAI,KAAK,MAAM,EAAE,CAAC;QACvB,CAAC;QACD,KAAK,CAAC,iBAAiB,EAAE,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACzD,IAAI,CAAC,IAAI,GAAG,qBAAqB,CAAC;IACpC,CAAC;;AAGH,MAAM,OAAO,oBAAqB,SAAQ,aAAa;IACrD,MAAM,CAAmB,iBAAiB,GAAmB,IAAI,CAAC;IAElE,YAAY,MAAe,EAAE,WAAmB,EAAE,EAAE,OAAsB;QACxE,KAAK,CAAC,kBAAkB,EAAE,kCAAkC,QAAQ,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QACpG,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;IACrC,CAAC;;AAGH,MAAM,OAAO,oBAAqB,SAAQ,aAAa;IACrD,MAAM,CAAmB,iBAAiB,GAAmB,KAAK,CAAC;IAEnE,YAAY,MAAe,EAAE,WAAmB,EAAE,EAAE,OAAsB;QACxE,MAAM,UAAU,GAAI,MAAkC,EAAE,CAAC,YAAY,CAAuB,CAAC;QAC7F,KAAK,CAAC,kBAAkB,EAAE,gCAAgC,QAAQ,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC;QAClG,IAAI,CAAC,IAAI,GAAG,sBAAsB,CAAC;QACnC,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC,GAAG,UAAU,IAAI,IAAI,CAAC;IAClD,CAAC;IAED,IAAI,UAAU;QACZ,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAkB,CAAC;IACrD,CAAC;;AAGH;;;GAGG;AACH,MAAM,CAAC,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,CAAC;IACtC,gBAAgB,EAAE,kBAAkB;IACpC,cAAc,EAAE,gBAAgB;IAChC,cAAc,EAAE,gBAAgB;IAChC,UAAU,EAAE,YAAY;IACxB,gBAAgB,EAAE,kBAAkB;IACpC,cAAc,EAAE,gBAAgB;IAChC,iBAAiB,EAAE,mBAAmB;IACtC,oBAAoB,EAAE,sBAAsB;IAC5C,uBAAuB,EAAE,yBAAyB;IAClD,gBAAgB,EAAE,kBAAkB;IACpC,kBAAkB,EAAE,oBAAoB;IACxC,mBAAmB,EAAE,qBAAqB;IAC1C,mBAAmB,EAAE,qBAAqB;IAC1C,aAAa,EAAE,eAAe;IAC9B,uBAAuB,EAAE,yBAAyB;IAClD,qBAAqB,EAAE,uBAAuB;IAC9C,sBAAsB,EAAE,wBAAwB;IAChD,sBAAsB,EAAE,wBAAwB;IAChD,wBAAwB,EAAE,0BAA0B;IACpD,sBAAsB,EAAE,wBAAwB;IAChD,wBAAwB,EAAE,0BAA0B;IACpD,0BAA0B,EAAE,4BAA4B;IACxD,oBAAoB,EAAE,sBAAsB;IAC5C,sBAAsB,EAAE,wBAAwB;IAChD,oBAAoB,EAAE,sBAAsB;IAC5C,mBAAmB,EAAE,qBAAqB;IAC1C,sBAAsB,EAAE,wBAAwB;IAChD,eAAe,EAAE,iBAAiB;IAClC,gBAAgB,EAAE,kBAAkB;IACpC,gBAAgB,EAAE,kBAAkB;IACpC,qDAAqD;IACrD,mFAAmF;IACnF,uBAAuB,EAAE,yBAAyB;IAClD,oBAAoB,EAAE,sBAAsB;CACpC,CAAC,CAAC"}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Executor and related utilities for apcore.
|
|
3
|
+
*
|
|
4
|
+
* Async-only execution pipeline. Python's call() + call_async() merge into one async call().
|
|
5
|
+
* Timeout uses Promise.race instead of threading.
|
|
6
|
+
*/
|
|
7
|
+
import type { ACL } from './acl.js';
|
|
8
|
+
import type { ApprovalHandler } from './approval.js';
|
|
9
|
+
import type { Config } from './config.js';
|
|
10
|
+
import { Context } from './context.js';
|
|
11
|
+
import { Middleware } from './middleware/index.js';
|
|
12
|
+
import type { ValidationResult } from './module.js';
|
|
13
|
+
import type { Registry } from './registry/registry.js';
|
|
14
|
+
export declare const REDACTED_VALUE: string;
|
|
15
|
+
export declare function redactSensitive(data: Record<string, unknown>, schemaDict: Record<string, unknown>): Record<string, unknown>;
|
|
16
|
+
export declare class Executor {
|
|
17
|
+
private _registry;
|
|
18
|
+
private _middlewareManager;
|
|
19
|
+
private _acl;
|
|
20
|
+
private _config;
|
|
21
|
+
private _approvalHandler;
|
|
22
|
+
private _defaultTimeout;
|
|
23
|
+
private _maxCallDepth;
|
|
24
|
+
private _maxModuleRepeat;
|
|
25
|
+
constructor(options: {
|
|
26
|
+
registry: Registry;
|
|
27
|
+
middlewares?: Middleware[] | null;
|
|
28
|
+
acl?: ACL | null;
|
|
29
|
+
config?: Config | null;
|
|
30
|
+
approvalHandler?: ApprovalHandler | null;
|
|
31
|
+
});
|
|
32
|
+
get registry(): Registry;
|
|
33
|
+
get middlewares(): Middleware[];
|
|
34
|
+
/** Set the access control provider. */
|
|
35
|
+
setAcl(acl: ACL): void;
|
|
36
|
+
/** Set the approval handler for Step 4.5 gate. */
|
|
37
|
+
setApprovalHandler(handler: ApprovalHandler): void;
|
|
38
|
+
use(middleware: Middleware): Executor;
|
|
39
|
+
useBefore(callback: (moduleId: string, inputs: Record<string, unknown>, context: Context) => Record<string, unknown> | null): Executor;
|
|
40
|
+
useAfter(callback: (moduleId: string, inputs: Record<string, unknown>, output: Record<string, unknown>, context: Context) => Record<string, unknown> | null): Executor;
|
|
41
|
+
remove(middleware: Middleware): boolean;
|
|
42
|
+
call(moduleId: string, inputs?: Record<string, unknown> | null, context?: Context | null): Promise<Record<string, unknown>>;
|
|
43
|
+
/**
|
|
44
|
+
* Alias for call(). Provided for compatibility with MCP bridge packages
|
|
45
|
+
* that may call callAsync() by convention.
|
|
46
|
+
*/
|
|
47
|
+
callAsync(moduleId: string, inputs?: Record<string, unknown> | null, context?: Context | null): Promise<Record<string, unknown>>;
|
|
48
|
+
/**
|
|
49
|
+
* Streaming execution pipeline. If the module exposes a stream() async generator,
|
|
50
|
+
* yields each chunk. Otherwise falls back to call() and yields a single chunk.
|
|
51
|
+
*
|
|
52
|
+
* Pipeline: context -> safety -> lookup -> ACL -> validate inputs -> before-middleware
|
|
53
|
+
* -> stream (or fallback to execute) -> validate accumulated output -> after-middleware
|
|
54
|
+
*
|
|
55
|
+
* Note: In the streaming path, after-middleware runs on the accumulated output for
|
|
56
|
+
* validation/side-effects but its return value is not yielded since chunks were already
|
|
57
|
+
* emitted. In the non-streaming fallback, after-middleware can transform the output.
|
|
58
|
+
*/
|
|
59
|
+
stream(moduleId: string, inputs?: Record<string, unknown> | null, context?: Context | null): AsyncGenerator<Record<string, unknown>>;
|
|
60
|
+
private _streamWithMiddleware;
|
|
61
|
+
private _createContext;
|
|
62
|
+
private _lookupModule;
|
|
63
|
+
private _checkAcl;
|
|
64
|
+
private _validateInputs;
|
|
65
|
+
private _validateSchema;
|
|
66
|
+
private _executeWithMiddleware;
|
|
67
|
+
private _validateOutput;
|
|
68
|
+
validate(moduleId: string, inputs: Record<string, unknown>): ValidationResult;
|
|
69
|
+
private _checkSafety;
|
|
70
|
+
/** Check if a module requires approval, handling both interface and dict annotations. */
|
|
71
|
+
private _needsApproval;
|
|
72
|
+
/** Build an ApprovalRequest from module metadata. */
|
|
73
|
+
private _buildApprovalRequest;
|
|
74
|
+
/** Map an ApprovalResult status to the appropriate action or error. */
|
|
75
|
+
private _handleApprovalResult;
|
|
76
|
+
/** Emit an audit event for the approval decision (logging + span event). */
|
|
77
|
+
private _emitApprovalEvent;
|
|
78
|
+
/** Step 4.5: Approval gate. */
|
|
79
|
+
private _checkApproval;
|
|
80
|
+
private _executeWithTimeout;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=executor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"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"}
|