apcore-js 0.6.0 → 0.7.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/errors.js CHANGED
@@ -2,12 +2,17 @@
2
2
  * Error hierarchy for the apcore framework.
3
3
  */
4
4
  export class ModuleError extends Error {
5
+ static DEFAULT_RETRYABLE = null;
5
6
  code;
6
7
  details;
7
8
  cause;
8
9
  traceId;
9
10
  timestamp;
10
- constructor(code, message, details, cause, traceId) {
11
+ retryable;
12
+ aiGuidance;
13
+ userFixable;
14
+ suggestion;
15
+ constructor(code, message, details, cause, traceId, retryable, aiGuidance, userFixable, suggestion) {
11
16
  super(message, cause ? { cause } : undefined);
12
17
  this.name = 'ModuleError';
13
18
  this.code = code;
@@ -15,32 +20,69 @@ export class ModuleError extends Error {
15
20
  this.cause = cause;
16
21
  this.traceId = traceId;
17
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;
18
27
  }
19
28
  toString() {
20
29
  return `[${this.code}] ${this.message}`;
21
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
+ }
22
60
  }
23
61
  export class ConfigNotFoundError extends ModuleError {
62
+ static DEFAULT_RETRYABLE = false;
24
63
  constructor(configPath, options) {
25
- super('CONFIG_NOT_FOUND', `Configuration file not found: ${configPath}`, { configPath }, options?.cause, options?.traceId);
64
+ super('CONFIG_NOT_FOUND', `Configuration file not found: ${configPath}`, { configPath }, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
26
65
  this.name = 'ConfigNotFoundError';
27
66
  }
28
67
  }
29
68
  export class ConfigError extends ModuleError {
69
+ static DEFAULT_RETRYABLE = false;
30
70
  constructor(message, options) {
31
- super('CONFIG_INVALID', message, {}, options?.cause, options?.traceId);
71
+ super('CONFIG_INVALID', message, {}, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
32
72
  this.name = 'ConfigError';
33
73
  }
34
74
  }
35
75
  export class ACLRuleError extends ModuleError {
76
+ static DEFAULT_RETRYABLE = false;
36
77
  constructor(message, options) {
37
- super('ACL_RULE_ERROR', message, {}, options?.cause, options?.traceId);
78
+ super('ACL_RULE_ERROR', message, {}, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
38
79
  this.name = 'ACLRuleError';
39
80
  }
40
81
  }
41
82
  export class ACLDeniedError extends ModuleError {
83
+ static DEFAULT_RETRYABLE = false;
42
84
  constructor(callerId, targetId, options) {
43
- super('ACL_DENIED', `Access denied: ${callerId} -> ${targetId}`, { callerId, targetId }, options?.cause, options?.traceId);
85
+ super('ACL_DENIED', `Access denied: ${callerId} -> ${targetId}`, { callerId, targetId }, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
44
86
  this.name = 'ACLDeniedError';
45
87
  }
46
88
  get callerId() {
@@ -51,14 +93,16 @@ export class ACLDeniedError extends ModuleError {
51
93
  }
52
94
  }
53
95
  export class ModuleNotFoundError extends ModuleError {
96
+ static DEFAULT_RETRYABLE = false;
54
97
  constructor(moduleId, options) {
55
- super('MODULE_NOT_FOUND', `Module not found: ${moduleId}`, { moduleId }, options?.cause, options?.traceId);
98
+ super('MODULE_NOT_FOUND', `Module not found: ${moduleId}`, { moduleId }, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
56
99
  this.name = 'ModuleNotFoundError';
57
100
  }
58
101
  }
59
102
  export class ModuleTimeoutError extends ModuleError {
103
+ static DEFAULT_RETRYABLE = true;
60
104
  constructor(moduleId, timeoutMs, options) {
61
- super('MODULE_TIMEOUT', `Module ${moduleId} timed out after ${timeoutMs}ms`, { moduleId, timeoutMs }, options?.cause, options?.traceId);
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);
62
106
  this.name = 'ModuleTimeoutError';
63
107
  }
64
108
  get moduleId() {
@@ -69,32 +113,37 @@ export class ModuleTimeoutError extends ModuleError {
69
113
  }
70
114
  }
71
115
  export class SchemaValidationError extends ModuleError {
116
+ static DEFAULT_RETRYABLE = false;
72
117
  constructor(message = 'Schema validation failed', errors, options) {
73
- super('SCHEMA_VALIDATION_ERROR', message, { errors: errors ?? [] }, options?.cause, options?.traceId);
118
+ super('SCHEMA_VALIDATION_ERROR', message, { errors: errors ?? [] }, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
74
119
  this.name = 'SchemaValidationError';
75
120
  }
76
121
  }
77
122
  export class SchemaNotFoundError extends ModuleError {
123
+ static DEFAULT_RETRYABLE = false;
78
124
  constructor(schemaId, options) {
79
- super('SCHEMA_NOT_FOUND', `Schema not found: ${schemaId}`, { schemaId }, options?.cause, options?.traceId);
125
+ super('SCHEMA_NOT_FOUND', `Schema not found: ${schemaId}`, { schemaId }, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
80
126
  this.name = 'SchemaNotFoundError';
81
127
  }
82
128
  }
83
129
  export class SchemaParseError extends ModuleError {
130
+ static DEFAULT_RETRYABLE = false;
84
131
  constructor(message, options) {
85
- super('SCHEMA_PARSE_ERROR', message, {}, options?.cause, options?.traceId);
132
+ super('SCHEMA_PARSE_ERROR', message, {}, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
86
133
  this.name = 'SchemaParseError';
87
134
  }
88
135
  }
89
136
  export class SchemaCircularRefError extends ModuleError {
137
+ static DEFAULT_RETRYABLE = false;
90
138
  constructor(refPath, options) {
91
- super('SCHEMA_CIRCULAR_REF', `Circular reference detected: ${refPath}`, { refPath }, options?.cause, options?.traceId);
139
+ super('SCHEMA_CIRCULAR_REF', `Circular reference detected: ${refPath}`, { refPath }, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
92
140
  this.name = 'SchemaCircularRefError';
93
141
  }
94
142
  }
95
143
  export class CallDepthExceededError extends ModuleError {
144
+ static DEFAULT_RETRYABLE = false;
96
145
  constructor(depth, maxDepth, callChain, options) {
97
- super('CALL_DEPTH_EXCEEDED', `Call depth ${depth} exceeds maximum ${maxDepth}`, { depth, maxDepth, callChain }, options?.cause, options?.traceId);
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);
98
147
  this.name = 'CallDepthExceededError';
99
148
  }
100
149
  get currentDepth() {
@@ -105,8 +154,9 @@ export class CallDepthExceededError extends ModuleError {
105
154
  }
106
155
  }
107
156
  export class CircularCallError extends ModuleError {
157
+ static DEFAULT_RETRYABLE = false;
108
158
  constructor(moduleId, callChain, options) {
109
- super('CIRCULAR_CALL', `Circular call detected for module ${moduleId}`, { moduleId, callChain }, options?.cause, options?.traceId);
159
+ super('CIRCULAR_CALL', `Circular call detected for module ${moduleId}`, { moduleId, callChain }, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
110
160
  this.name = 'CircularCallError';
111
161
  }
112
162
  get moduleId() {
@@ -114,8 +164,9 @@ export class CircularCallError extends ModuleError {
114
164
  }
115
165
  }
116
166
  export class CallFrequencyExceededError extends ModuleError {
167
+ static DEFAULT_RETRYABLE = false;
117
168
  constructor(moduleId, count, maxRepeat, callChain, options) {
118
- super('CALL_FREQUENCY_EXCEEDED', `Module ${moduleId} called ${count} times, max is ${maxRepeat}`, { moduleId, count, maxRepeat, callChain }, options?.cause, options?.traceId);
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);
119
170
  this.name = 'CallFrequencyExceededError';
120
171
  }
121
172
  get moduleId() {
@@ -129,83 +180,147 @@ export class CallFrequencyExceededError extends ModuleError {
129
180
  }
130
181
  }
131
182
  export class InvalidInputError extends ModuleError {
183
+ static DEFAULT_RETRYABLE = false;
132
184
  constructor(message = 'Invalid input', options) {
133
- super('GENERAL_INVALID_INPUT', message, {}, options?.cause, options?.traceId);
185
+ super('GENERAL_INVALID_INPUT', message, {}, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
134
186
  this.name = 'InvalidInputError';
135
187
  }
136
188
  }
137
189
  export class FuncMissingTypeHintError extends ModuleError {
190
+ static DEFAULT_RETRYABLE = false;
138
191
  constructor(functionName, parameterName, options) {
139
- 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);
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);
140
193
  this.name = 'FuncMissingTypeHintError';
141
194
  }
142
195
  }
143
196
  export class FuncMissingReturnTypeError extends ModuleError {
197
+ static DEFAULT_RETRYABLE = false;
144
198
  constructor(functionName, options) {
145
- 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);
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);
146
200
  this.name = 'FuncMissingReturnTypeError';
147
201
  }
148
202
  }
149
203
  export class BindingInvalidTargetError extends ModuleError {
204
+ static DEFAULT_RETRYABLE = false;
150
205
  constructor(target, options) {
151
- super('BINDING_INVALID_TARGET', `Invalid binding target '${target}'. Expected format: 'module.path:callable_name'.`, { target }, options?.cause, options?.traceId);
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);
152
207
  this.name = 'BindingInvalidTargetError';
153
208
  }
154
209
  }
155
210
  export class BindingModuleNotFoundError extends ModuleError {
211
+ static DEFAULT_RETRYABLE = false;
156
212
  constructor(modulePath, options) {
157
- super('BINDING_MODULE_NOT_FOUND', `Cannot import module '${modulePath}'.`, { modulePath }, options?.cause, options?.traceId);
213
+ super('BINDING_MODULE_NOT_FOUND', `Cannot import module '${modulePath}'.`, { modulePath }, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
158
214
  this.name = 'BindingModuleNotFoundError';
159
215
  }
160
216
  }
161
217
  export class BindingCallableNotFoundError extends ModuleError {
218
+ static DEFAULT_RETRYABLE = false;
162
219
  constructor(callableName, modulePath, options) {
163
- super('BINDING_CALLABLE_NOT_FOUND', `Cannot find callable '${callableName}' in module '${modulePath}'.`, { callableName, modulePath }, options?.cause, options?.traceId);
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);
164
221
  this.name = 'BindingCallableNotFoundError';
165
222
  }
166
223
  }
167
224
  export class BindingNotCallableError extends ModuleError {
225
+ static DEFAULT_RETRYABLE = false;
168
226
  constructor(target, options) {
169
- super('BINDING_NOT_CALLABLE', `Resolved target '${target}' is not callable.`, { target }, options?.cause, options?.traceId);
227
+ super('BINDING_NOT_CALLABLE', `Resolved target '${target}' is not callable.`, { target }, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
170
228
  this.name = 'BindingNotCallableError';
171
229
  }
172
230
  }
173
231
  export class BindingSchemaMissingError extends ModuleError {
232
+ static DEFAULT_RETRYABLE = false;
174
233
  constructor(target, options) {
175
- super('BINDING_SCHEMA_MISSING', `No schema available for target '${target}'. Add type hints or provide an explicit schema.`, { target }, options?.cause, options?.traceId);
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);
176
235
  this.name = 'BindingSchemaMissingError';
177
236
  }
178
237
  }
179
238
  export class BindingFileInvalidError extends ModuleError {
239
+ static DEFAULT_RETRYABLE = false;
180
240
  constructor(filePath, reason, options) {
181
- super('BINDING_FILE_INVALID', `Invalid binding file '${filePath}': ${reason}`, { filePath, reason }, options?.cause, options?.traceId);
241
+ super('BINDING_FILE_INVALID', `Invalid binding file '${filePath}': ${reason}`, { filePath, reason }, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
182
242
  this.name = 'BindingFileInvalidError';
183
243
  }
184
244
  }
185
245
  export class CircularDependencyError extends ModuleError {
246
+ static DEFAULT_RETRYABLE = false;
186
247
  constructor(cyclePath, options) {
187
- super('CIRCULAR_DEPENDENCY', `Circular dependency detected: ${cyclePath.join(' -> ')}`, { cyclePath }, options?.cause, options?.traceId);
248
+ super('CIRCULAR_DEPENDENCY', `Circular dependency detected: ${cyclePath.join(' -> ')}`, { cyclePath }, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
188
249
  this.name = 'CircularDependencyError';
189
250
  }
190
251
  }
191
252
  export class ModuleLoadError extends ModuleError {
253
+ static DEFAULT_RETRYABLE = false;
192
254
  constructor(moduleId, reason, options) {
193
- super('MODULE_LOAD_ERROR', `Failed to load module '${moduleId}': ${reason}`, { moduleId, reason }, options?.cause, options?.traceId);
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);
194
256
  this.name = 'ModuleLoadError';
195
257
  }
196
258
  }
197
259
  export class ModuleExecuteError extends ModuleError {
260
+ static DEFAULT_RETRYABLE = null;
198
261
  constructor(moduleId, reason, options) {
199
- super('MODULE_EXECUTE_ERROR', `Failed to execute module '${moduleId}': ${reason}`, { moduleId, reason }, options?.cause, options?.traceId);
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);
200
263
  this.name = 'ModuleExecuteError';
201
264
  }
202
265
  }
203
266
  export class InternalError extends ModuleError {
267
+ static DEFAULT_RETRYABLE = true;
204
268
  constructor(message = 'Internal error', options) {
205
- super('GENERAL_INTERNAL_ERROR', message, {}, options?.cause, options?.traceId);
269
+ super('GENERAL_INTERNAL_ERROR', message, {}, options?.cause, options?.traceId, options?.retryable, options?.aiGuidance, options?.userFixable, options?.suggestion);
206
270
  this.name = 'InternalError';
207
271
  }
208
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
+ }
209
324
  /**
210
325
  * All framework error codes as constants.
211
326
  * Use these instead of hardcoding error code strings.
@@ -238,6 +353,9 @@ export const ErrorCodes = Object.freeze({
238
353
  BINDING_FILE_INVALID: "BINDING_FILE_INVALID",
239
354
  CIRCULAR_DEPENDENCY: "CIRCULAR_DEPENDENCY",
240
355
  MIDDLEWARE_CHAIN_ERROR: "MIDDLEWARE_CHAIN_ERROR",
356
+ APPROVAL_DENIED: "APPROVAL_DENIED",
357
+ APPROVAL_TIMEOUT: "APPROVAL_TIMEOUT",
358
+ APPROVAL_PENDING: "APPROVAL_PENDING",
241
359
  // Forward declarations for Level 2 Phase 2 features.
242
360
  // Exception classes will be added when the corresponding features are implemented.
243
361
  GENERAL_NOT_IMPLEMENTED: "GENERAL_NOT_IMPLEMENTED",
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../src/errors.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@
5
5
  * Timeout uses Promise.race instead of threading.
6
6
  */
7
7
  import type { ACL } from './acl.js';
8
+ import type { ApprovalHandler } from './approval.js';
8
9
  import type { Config } from './config.js';
9
10
  import { Context } from './context.js';
10
11
  import { Middleware } from './middleware/index.js';
@@ -17,6 +18,7 @@ export declare class Executor {
17
18
  private _middlewareManager;
18
19
  private _acl;
19
20
  private _config;
21
+ private _approvalHandler;
20
22
  private _defaultTimeout;
21
23
  private _maxCallDepth;
22
24
  private _maxModuleRepeat;
@@ -25,11 +27,14 @@ export declare class Executor {
25
27
  middlewares?: Middleware[] | null;
26
28
  acl?: ACL | null;
27
29
  config?: Config | null;
30
+ approvalHandler?: ApprovalHandler | null;
28
31
  });
29
32
  get registry(): Registry;
30
33
  get middlewares(): Middleware[];
31
34
  /** Set the access control provider. */
32
35
  setAcl(acl: ACL): void;
36
+ /** Set the approval handler for Step 4.5 gate. */
37
+ setApprovalHandler(handler: ApprovalHandler): void;
33
38
  use(middleware: Middleware): Executor;
34
39
  useBefore(callback: (moduleId: string, inputs: Record<string, unknown>, context: Context) => Record<string, unknown> | null): Executor;
35
40
  useAfter(callback: (moduleId: string, inputs: Record<string, unknown>, output: Record<string, unknown>, context: Context) => Record<string, unknown> | null): Executor;
@@ -62,6 +67,16 @@ export declare class Executor {
62
67
  private _validateOutput;
63
68
  validate(moduleId: string, inputs: Record<string, unknown>): ValidationResult;
64
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;
65
80
  private _executeWithTimeout;
66
81
  }
67
82
  //# sourceMappingURL=executor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"executor.d.ts","sourceRoot":"","sources":["../src/executor.ts"],"names":[],"mappings":"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"}
package/dist/executor.js CHANGED
@@ -5,11 +5,13 @@
5
5
  * Timeout uses Promise.race instead of threading.
6
6
  */
7
7
  import { Value } from '@sinclair/typebox/value';
8
+ import { createApprovalRequest } from './approval.js';
8
9
  import { Context } from './context.js';
9
10
  import { ExecutionCancelledError } from './cancel.js';
10
- import { ACLDeniedError, CallDepthExceededError, CallFrequencyExceededError, CircularCallError, InvalidInputError, ModuleNotFoundError, ModuleTimeoutError, SchemaValidationError, } from './errors.js';
11
+ import { ACLDeniedError, ApprovalDeniedError, ApprovalPendingError, ApprovalTimeoutError, CallDepthExceededError, CallFrequencyExceededError, CircularCallError, InvalidInputError, ModuleNotFoundError, ModuleTimeoutError, SchemaValidationError, } from './errors.js';
11
12
  import { AfterMiddleware, BeforeMiddleware } from './middleware/index.js';
12
13
  import { MiddlewareChainError, MiddlewareManager } from './middleware/manager.js';
14
+ import { DEFAULT_ANNOTATIONS } from './module.js';
13
15
  export const REDACTED_VALUE = '***REDACTED***';
14
16
  export function redactSensitive(data, schemaDict) {
15
17
  const redacted = JSON.parse(JSON.stringify(data));
@@ -65,11 +67,27 @@ function redactSecretPrefix(data) {
65
67
  }
66
68
  }
67
69
  }
70
+ /**
71
+ * Normalize a dict-form annotations object into a ModuleAnnotations interface.
72
+ * Handles both camelCase and snake_case keys (parallel to Python's
73
+ * ``ModuleAnnotations(**{k: v for k, v in annotations.items() if k in valid_fields})``).
74
+ */
75
+ function dictToAnnotations(dict) {
76
+ return {
77
+ readonly: Boolean(dict['readonly'] ?? false),
78
+ destructive: Boolean(dict['destructive'] ?? false),
79
+ idempotent: Boolean(dict['idempotent'] ?? false),
80
+ requiresApproval: Boolean(dict['requiresApproval'] ?? dict['requires_approval'] ?? false),
81
+ openWorld: Boolean(dict['openWorld'] ?? dict['open_world'] ?? true),
82
+ streaming: Boolean(dict['streaming'] ?? false),
83
+ };
84
+ }
68
85
  export class Executor {
69
86
  _registry;
70
87
  _middlewareManager;
71
88
  _acl;
72
89
  _config;
90
+ _approvalHandler;
73
91
  _defaultTimeout;
74
92
  _maxCallDepth;
75
93
  _maxModuleRepeat;
@@ -78,6 +96,7 @@ export class Executor {
78
96
  this._middlewareManager = new MiddlewareManager();
79
97
  this._acl = options.acl ?? null;
80
98
  this._config = options.config ?? null;
99
+ this._approvalHandler = options.approvalHandler ?? null;
81
100
  if (options.middlewares) {
82
101
  for (const mw of options.middlewares) {
83
102
  this._middlewareManager.add(mw);
@@ -104,6 +123,10 @@ export class Executor {
104
123
  setAcl(acl) {
105
124
  this._acl = acl;
106
125
  }
126
+ /** Set the approval handler for Step 4.5 gate. */
127
+ setApprovalHandler(handler) {
128
+ this._approvalHandler = handler;
129
+ }
107
130
  use(middleware) {
108
131
  this._middlewareManager.add(middleware);
109
132
  return this;
@@ -125,6 +148,8 @@ export class Executor {
125
148
  this._checkSafety(moduleId, ctx);
126
149
  const mod = this._lookupModule(moduleId);
127
150
  this._checkAcl(moduleId, ctx);
151
+ // Step 4.5 -- Approval Gate
152
+ await this._checkApproval(mod, moduleId, effectiveInputs, ctx);
128
153
  effectiveInputs = this._validateInputs(mod, effectiveInputs, ctx);
129
154
  return this._executeWithMiddleware(mod, moduleId, effectiveInputs, ctx);
130
155
  }
@@ -152,6 +177,8 @@ export class Executor {
152
177
  this._checkSafety(moduleId, ctx);
153
178
  const mod = this._lookupModule(moduleId);
154
179
  this._checkAcl(moduleId, ctx);
180
+ // Step 4.5 -- Approval Gate
181
+ await this._checkApproval(mod, moduleId, effectiveInputs, ctx);
155
182
  effectiveInputs = this._validateInputs(mod, effectiveInputs, ctx);
156
183
  yield* this._streamWithMiddleware(mod, moduleId, effectiveInputs, ctx);
157
184
  }
@@ -343,6 +370,96 @@ export class Executor {
343
370
  throw new CallFrequencyExceededError(moduleId, count, this._maxModuleRepeat, [...callChain]);
344
371
  }
345
372
  }
373
+ /** Check if a module requires approval, handling both interface and dict annotations. */
374
+ _needsApproval(mod) {
375
+ const annotations = mod['annotations'];
376
+ if (annotations == null)
377
+ return false;
378
+ if (typeof annotations !== 'object')
379
+ return false;
380
+ // ModuleAnnotations interface (camelCase)
381
+ if ('requiresApproval' in annotations) {
382
+ return Boolean(annotations.requiresApproval);
383
+ }
384
+ // Dict-form annotations (snake_case)
385
+ if ('requires_approval' in annotations) {
386
+ return Boolean(annotations['requires_approval']);
387
+ }
388
+ return false;
389
+ }
390
+ /** Build an ApprovalRequest from module metadata. */
391
+ _buildApprovalRequest(mod, moduleId, inputs, ctx) {
392
+ const annotations = mod['annotations'];
393
+ let ann;
394
+ if (annotations != null && typeof annotations === 'object' && 'requiresApproval' in annotations) {
395
+ ann = annotations;
396
+ }
397
+ else if (annotations != null && typeof annotations === 'object') {
398
+ ann = dictToAnnotations(annotations);
399
+ }
400
+ else {
401
+ ann = DEFAULT_ANNOTATIONS;
402
+ }
403
+ return createApprovalRequest({
404
+ moduleId,
405
+ arguments: inputs,
406
+ context: ctx,
407
+ annotations: ann,
408
+ description: mod['description'] ?? null,
409
+ tags: mod['tags'] ?? [],
410
+ });
411
+ }
412
+ /** Map an ApprovalResult status to the appropriate action or error. */
413
+ _handleApprovalResult(result, moduleId) {
414
+ if (result.status === 'approved')
415
+ return;
416
+ if (result.status === 'rejected') {
417
+ throw new ApprovalDeniedError(result, moduleId);
418
+ }
419
+ if (result.status === 'timeout') {
420
+ throw new ApprovalTimeoutError(result, moduleId);
421
+ }
422
+ if (result.status === 'pending') {
423
+ throw new ApprovalPendingError(result, moduleId);
424
+ }
425
+ // Unknown status treated as denied
426
+ console.warn(`[apcore:executor] Unknown approval status '${result.status}' for module ${moduleId}, treating as denied`);
427
+ throw new ApprovalDeniedError(result, moduleId);
428
+ }
429
+ /** Emit an audit event for the approval decision (logging + span event). */
430
+ _emitApprovalEvent(result, moduleId, ctx) {
431
+ console.info(`[apcore:executor] Approval decision: module=${moduleId} status=${result.status} approved_by=${result.approvedBy} reason=${result.reason}`);
432
+ const spansStack = ctx.data['_tracing_spans'];
433
+ if (spansStack && spansStack.length > 0) {
434
+ spansStack[spansStack.length - 1].events.push({
435
+ name: 'approval_decision',
436
+ module_id: moduleId,
437
+ status: result.status,
438
+ approved_by: result.approvedBy ?? '',
439
+ reason: result.reason ?? '',
440
+ approval_id: result.approvalId ?? '',
441
+ });
442
+ }
443
+ }
444
+ /** Step 4.5: Approval gate. */
445
+ async _checkApproval(mod, moduleId, inputs, ctx) {
446
+ if (this._approvalHandler === null)
447
+ return;
448
+ if (!this._needsApproval(mod))
449
+ return;
450
+ let result;
451
+ if ('_approval_token' in inputs) {
452
+ const token = inputs['_approval_token'];
453
+ delete inputs['_approval_token'];
454
+ result = await this._approvalHandler.checkApproval(token);
455
+ }
456
+ else {
457
+ const request = this._buildApprovalRequest(mod, moduleId, inputs, ctx);
458
+ result = await this._approvalHandler.requestApproval(request);
459
+ }
460
+ this._emitApprovalEvent(result, moduleId, ctx);
461
+ this._handleApprovalResult(result, moduleId);
462
+ }
346
463
  async _executeWithTimeout(mod, moduleId, inputs, ctx) {
347
464
  const timeoutMs = this._defaultTimeout;
348
465
  if (timeoutMs < 0) {