apcore-js 0.22.0 → 0.24.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (88) hide show
  1. package/README.md +14 -5
  2. package/dist/acl.d.ts.map +1 -1
  3. package/dist/acl.js +6 -1
  4. package/dist/acl.js.map +1 -1
  5. package/dist/bindings.d.ts +12 -0
  6. package/dist/bindings.d.ts.map +1 -1
  7. package/dist/bindings.js +13 -0
  8. package/dist/bindings.js.map +1 -1
  9. package/dist/browser/index.d.ts +1 -1
  10. package/dist/browser/index.d.ts.map +1 -1
  11. package/dist/browser/index.js +1 -1
  12. package/dist/browser/index.js.map +1 -1
  13. package/dist/builtin-steps.d.ts.map +1 -1
  14. package/dist/builtin-steps.js +27 -14
  15. package/dist/builtin-steps.js.map +1 -1
  16. package/dist/client.d.ts +21 -0
  17. package/dist/client.d.ts.map +1 -1
  18. package/dist/client.js +23 -1
  19. package/dist/client.js.map +1 -1
  20. package/dist/config.d.ts +4 -1
  21. package/dist/config.d.ts.map +1 -1
  22. package/dist/config.js +101 -19
  23. package/dist/config.js.map +1 -1
  24. package/dist/context.d.ts.map +1 -1
  25. package/dist/context.js +18 -10
  26. package/dist/context.js.map +1 -1
  27. package/dist/errors.d.ts +10 -1
  28. package/dist/errors.d.ts.map +1 -1
  29. package/dist/errors.js +71 -11
  30. package/dist/errors.js.map +1 -1
  31. package/dist/events/emitter.d.ts +9 -5
  32. package/dist/events/emitter.d.ts.map +1 -1
  33. package/dist/events/emitter.js +36 -37
  34. package/dist/events/emitter.js.map +1 -1
  35. package/dist/events/subscribers.d.ts +7 -5
  36. package/dist/events/subscribers.d.ts.map +1 -1
  37. package/dist/events/subscribers.js +20 -11
  38. package/dist/events/subscribers.js.map +1 -1
  39. package/dist/executor.d.ts.map +1 -1
  40. package/dist/executor.js +32 -7
  41. package/dist/executor.js.map +1 -1
  42. package/dist/generated/version.d.ts +1 -1
  43. package/dist/generated/version.js +1 -1
  44. package/dist/index.d.ts +2 -2
  45. package/dist/index.d.ts.map +1 -1
  46. package/dist/index.js +1 -1
  47. package/dist/index.js.map +1 -1
  48. package/dist/middleware/circuit-breaker.d.ts +8 -2
  49. package/dist/middleware/circuit-breaker.d.ts.map +1 -1
  50. package/dist/middleware/circuit-breaker.js +30 -5
  51. package/dist/middleware/circuit-breaker.js.map +1 -1
  52. package/dist/middleware/index.d.ts +1 -1
  53. package/dist/middleware/index.d.ts.map +1 -1
  54. package/dist/middleware/index.js +1 -1
  55. package/dist/middleware/index.js.map +1 -1
  56. package/dist/middleware/retry.d.ts +33 -15
  57. package/dist/middleware/retry.d.ts.map +1 -1
  58. package/dist/middleware/retry.js +48 -23
  59. package/dist/middleware/retry.js.map +1 -1
  60. package/dist/observability/context-logger.d.ts +15 -11
  61. package/dist/observability/context-logger.d.ts.map +1 -1
  62. package/dist/observability/context-logger.js +40 -14
  63. package/dist/observability/context-logger.js.map +1 -1
  64. package/dist/registry/multi-class.js +6 -17
  65. package/dist/registry/multi-class.js.map +1 -1
  66. package/dist/registry/registry.d.ts.map +1 -1
  67. package/dist/registry/registry.js +14 -6
  68. package/dist/registry/registry.js.map +1 -1
  69. package/dist/registry/version.d.ts.map +1 -1
  70. package/dist/registry/version.js +9 -2
  71. package/dist/registry/version.js.map +1 -1
  72. package/dist/schema/strict.d.ts.map +1 -1
  73. package/dist/schema/strict.js +4 -1
  74. package/dist/schema/strict.js.map +1 -1
  75. package/dist/sys-modules/control.d.ts +7 -0
  76. package/dist/sys-modules/control.d.ts.map +1 -1
  77. package/dist/sys-modules/control.js +32 -7
  78. package/dist/sys-modules/control.js.map +1 -1
  79. package/dist/sys-modules/manifest.js +7 -0
  80. package/dist/sys-modules/manifest.js.map +1 -1
  81. package/dist/sys-modules/registration.d.ts +9 -0
  82. package/dist/sys-modules/registration.d.ts.map +1 -1
  83. package/dist/sys-modules/registration.js +4 -1
  84. package/dist/sys-modules/registration.js.map +1 -1
  85. package/dist/trace-context.d.ts.map +1 -1
  86. package/dist/trace-context.js +14 -3
  87. package/dist/trace-context.js.map +1 -1
  88. package/package.json +3 -2
@@ -1,8 +1,17 @@
1
1
  /**
2
2
  * RetryMiddleware for automatic retry of retryable module errors.
3
3
  */
4
- import { Middleware } from './base.js';
5
- /** Well-known context.data key prefixes for retry state. */
4
+ import { RETRY_COUNT_BASE } from '../context-keys.js';
5
+ import { Middleware, RetrySignal } from './base.js';
6
+ /**
7
+ * Well-known context.data key prefixes for retry state.
8
+ *
9
+ * `CTX_RETRY_COUNT_PREFIX + moduleId` is identical to
10
+ * `RETRY_COUNT_BASE.scoped(moduleId).name` and stores the per-module attempt
11
+ * counter used by {@link RetryMiddleware}. `CTX_RETRY_DELAY_PREFIX` is retained
12
+ * for backward compatibility with outer retry loops that inspected the legacy
13
+ * advisory delay hint; it is no longer written by the built-in middleware.
14
+ */
6
15
  export const CTX_RETRY_COUNT_PREFIX = '_apcore.mw.retry.count.';
7
16
  export const CTX_RETRY_DELAY_PREFIX = '_apcore.mw.retry.delay_ms.';
8
17
  const DEFAULT_RETRY_CONFIG = {
@@ -12,43 +21,56 @@ const DEFAULT_RETRY_CONFIG = {
12
21
  maxDelayMs: 5000,
13
22
  jitter: true,
14
23
  };
24
+ function sleep(ms) {
25
+ return new Promise((resolve) => setTimeout(resolve, ms));
26
+ }
15
27
  /**
16
- * Advisory retry-hint middleware.
28
+ * Middleware that retries failed module executions based on error retryability.
17
29
  *
18
- * This middleware does NOT re-invoke the failed module. It records retry
19
- * state and advisory delay hints in `context.data` for outer retry loops,
20
- * then returns null so the original error always propagates to the caller.
30
+ * When `onError` is called with a retryable error (`error.retryable === true`),
31
+ * this middleware sleeps for a calculated backoff delay and returns a
32
+ * {@link RetrySignal} carrying the original inputs. The executor recognises the
33
+ * signal and re-runs the module; remaining middlewares' `onError` handlers are
34
+ * not invoked for this attempt. After `maxRetries` attempts or for
35
+ * non-retryable errors, it returns `null` so the error propagates.
21
36
  *
22
- * Context keys written on a retryable error:
23
- * - `CTX_RETRY_COUNT_PREFIX + moduleId` number of attempts so far
24
- * - `CTX_RETRY_DELAY_PREFIX + moduleId` suggested delay in ms before retry
37
+ * Retry state is tracked per-module in `context.data` under
38
+ * `_apcore.mw.retry.count.{moduleId}` (via {@link RETRY_COUNT_BASE}). The
39
+ * counter is cleared by `after()` on successful completion so `context.data`
40
+ * does not grow unbounded across long call chains that recover before the
41
+ * limit is hit.
25
42
  *
26
- * If you need real retries, wrap `Executor.call` in an outer retry loop
27
- * that inspects `error.retryable` and the hint values above.
43
+ * Cross-language parity with apcore-python `RetryMiddleware`
44
+ * (returns `RetrySignal`) and apcore-rust `RetryMiddleware`
45
+ * (returns `Ok(Some(inputs))`).
28
46
  */
29
- export class RetryHintMiddleware extends Middleware {
47
+ export class RetryMiddleware extends Middleware {
30
48
  _config;
31
49
  constructor(config) {
32
50
  super();
33
51
  this._config = { ...DEFAULT_RETRY_CONFIG, ...config };
34
52
  }
35
- onError(moduleId, inputs, error, context) {
53
+ async onError(moduleId, inputs, error, context) {
36
54
  const retryable = error.retryable;
37
55
  if (retryable !== true)
38
56
  return null;
39
- const retryKey = `${CTX_RETRY_COUNT_PREFIX}${moduleId}`;
40
- const retryCount = context.data[retryKey] ?? 0;
57
+ const retryKey = RETRY_COUNT_BASE.scoped(moduleId);
58
+ const retryCount = retryKey.get(context, 0) ?? 0;
41
59
  if (retryCount >= this._config.maxRetries) {
42
60
  console.warn(`[apcore:retry] Max retries (${this._config.maxRetries}) exceeded for module '${moduleId}'`);
43
61
  return null;
44
62
  }
45
63
  const delayMs = this._calculateDelay(retryCount);
46
- context.data[retryKey] = retryCount + 1;
47
- context.data[`${CTX_RETRY_DELAY_PREFIX}${moduleId}`] = delayMs;
48
- console.warn(`[apcore:retry] Retryable error in '${moduleId}' (attempt ${retryCount + 1}/${this._config.maxRetries}). ` +
49
- `Hint written to context.data for outer retry loop (delay: ${Math.round(delayMs)}ms).`);
50
- // Return null so the error propagates. Returning inputs here would cause
51
- // the executor to treat them as the recovered output — a silent footgun.
64
+ retryKey.set(context, retryCount + 1);
65
+ console.warn(`[apcore:retry] Retrying module '${moduleId}' (attempt ${retryCount + 1}/${this._config.maxRetries}) ` +
66
+ `after ${Math.round(delayMs)}ms`);
67
+ await sleep(delayMs);
68
+ return new RetrySignal({ ...inputs });
69
+ }
70
+ after(moduleId, _inputs, _output, context) {
71
+ // Clear the per-module retry counter on successful completion so
72
+ // context.data does not accumulate stale `_apcore.mw.retry.count.*` keys.
73
+ RETRY_COUNT_BASE.scoped(moduleId).delete(context);
52
74
  return null;
53
75
  }
54
76
  _calculateDelay(attempt) {
@@ -67,7 +89,10 @@ export class RetryHintMiddleware extends Middleware {
67
89
  }
68
90
  }
69
91
  /**
70
- * @deprecated Use {@link RetryHintMiddleware} instead. Will be removed in 1.0.0.
92
+ * @deprecated Use {@link RetryMiddleware} instead. This alias previously named
93
+ * an advisory no-op variant that only recorded hints in `context.data`; that
94
+ * behavior is gone — `RetryHintMiddleware` now performs real retries. Will be
95
+ * removed in 1.0.0.
71
96
  */
72
- export const RetryMiddleware = RetryHintMiddleware;
97
+ export const RetryHintMiddleware = RetryMiddleware;
73
98
  //# sourceMappingURL=retry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/middleware/retry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,EAAE,UAAU,EAAE,MAAM,WAAW,CAAC;AAEvC,4DAA4D;AAC5D,MAAM,CAAC,MAAM,sBAAsB,GAAG,yBAAyB,CAAC;AAChE,MAAM,CAAC,MAAM,sBAAsB,GAAG,4BAA4B,CAAC;AAUnE,MAAM,oBAAoB,GAAgB;IACxC,UAAU,EAAE,CAAC;IACb,QAAQ,EAAE,aAAa;IACvB,WAAW,EAAE,GAAG;IAChB,UAAU,EAAE,IAAI;IAChB,MAAM,EAAE,IAAI;CACb,CAAC;AAEF;;;;;;;;;;;;;GAaG;AACH,MAAM,OAAO,mBAAoB,SAAQ,UAAU;IACzC,OAAO,CAAc;IAE7B,YAAY,MAA6B;QACvC,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,OAAO,GAAG,EAAE,GAAG,oBAAoB,EAAE,GAAG,MAAM,EAAE,CAAC;IACxD,CAAC;IAEQ,OAAO,CACd,QAAgB,EAChB,MAA+B,EAC/B,KAAY,EACZ,OAAgB;QAEhB,MAAM,SAAS,GAAI,KAAqB,CAAC,SAAS,CAAC;QACnD,IAAI,SAAS,KAAK,IAAI;YAAE,OAAO,IAAI,CAAC;QAEpC,MAAM,QAAQ,GAAG,GAAG,sBAAsB,GAAG,QAAQ,EAAE,CAAC;QACxD,MAAM,UAAU,GAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAY,IAAI,CAAC,CAAC;QAE3D,IAAI,UAAU,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAC1C,OAAO,CAAC,IAAI,CACV,+BAA+B,IAAI,CAAC,OAAO,CAAC,UAAU,0BAA0B,QAAQ,GAAG,CAC5F,CAAC;YACF,OAAO,IAAI,CAAC;QACd,CAAC;QAED,MAAM,OAAO,GAAG,IAAI,CAAC,eAAe,CAAC,UAAU,CAAC,CAAC;QACjD,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,UAAU,GAAG,CAAC,CAAC;QACxC,OAAO,CAAC,IAAI,CAAC,GAAG,sBAAsB,GAAG,QAAQ,EAAE,CAAC,GAAG,OAAO,CAAC;QAE/D,OAAO,CAAC,IAAI,CACV,sCAAsC,QAAQ,cAAc,UAAU,GAAG,CAAC,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,KAAK;YACxG,6DAA6D,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CACzF,CAAC;QAEF,yEAAyE;QACzE,yEAAyE;QACzE,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,eAAe,CAAC,OAAe;QACrC,IAAI,KAAa,CAAC;QAClB,IAAI,IAAI,CAAC,OAAO,CAAC,QAAQ,KAAK,OAAO,EAAE,CAAC;YACtC,KAAK,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QACnC,CAAC;aAAM,CAAC;YACN,6DAA6D;YAC7D,KAAK,GAAG,IAAI,CAAC,GAAG,CACd,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,OAAO,CAAC,EAC/C,IAAI,CAAC,OAAO,CAAC,UAAU,CACxB,CAAC;QACJ,CAAC;QAED,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC;YACxB,KAAK,IAAI,GAAG,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,cAAc;QAC9C,CAAC;QAED,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED;;GAEG;AACH,MAAM,CAAC,MAAM,eAAe,GAAG,mBAAmB,CAAC"}
1
+ {"version":3,"file":"retry.js","sourceRoot":"","sources":["../../src/middleware/retry.ts"],"names":[],"mappings":"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"}
@@ -4,17 +4,6 @@
4
4
  import type { Config } from '../config.js';
5
5
  import type { Context } from '../context.js';
6
6
  import { Middleware } from '../middleware/base.js';
7
- /**
8
- * Default sensitive field patterns (Issue #45 §3 — canonical superset
9
- * promoted from #43 §5). Used when no `redaction.sensitive_keys`
10
- * (canonical) / `redaction.field_patterns` (legacy) is configured.
11
- * Wildcards follow apcore's `matchPattern` semantics (segment-aware globs).
12
- *
13
- * Aligned with apcore-python's authoritative list (Python is the canonical
14
- * superset because broader default redaction is safer than narrower).
15
- * `apiKey` is kept alongside `api_key` / `apikey` for camelCase parity
16
- * because TypeScript's `matchPattern` is case-sensitive.
17
- */
18
7
  export declare const DEFAULT_REDACTION_FIELD_PATTERNS: readonly string[];
19
8
  /**
20
9
  * Runtime-configurable redaction rules for ObsLoggingMiddleware.
@@ -50,8 +39,20 @@ export declare class RedactionConfig {
50
39
  * api_key, token, authorization, password) remain redacted out of the box.
51
40
  */
52
41
  static fromConfig(config: Config): RedactionConfig;
42
+ /**
43
+ * Default redaction config so callers that don't supply one still get the
44
+ * standard sensitive-key redaction (`_secret_*`, password, token, …).
45
+ * Mirrors apcore-python's `RedactionConfig.default()`.
46
+ */
47
+ static default(): RedactionConfig;
53
48
  /** Apply redaction rules to a flat object of field name → value. */
54
49
  apply(obj: Record<string, unknown>): Record<string, unknown>;
50
+ /**
51
+ * Recursively redact a value: any key matching a sensitive-key pattern is
52
+ * replaced; nested objects and arrays are descended (depth-bounded). Mirrors
53
+ * apcore-python's `_redact_secrets_recursive`.
54
+ */
55
+ redact(value: unknown, depth?: number): unknown;
55
56
  private _shouldRedact;
56
57
  }
57
58
  interface WritableOutput {
@@ -63,6 +64,7 @@ export declare class ContextLogger {
63
64
  private _level;
64
65
  private _levelValue;
65
66
  private _redactSensitive;
67
+ private _redaction;
66
68
  private _output;
67
69
  private _traceId;
68
70
  private _moduleId;
@@ -72,12 +74,14 @@ export declare class ContextLogger {
72
74
  format?: string;
73
75
  level?: string;
74
76
  redactSensitive?: boolean;
77
+ redaction?: RedactionConfig;
75
78
  output?: WritableOutput;
76
79
  });
77
80
  static fromContext(context: Context<unknown>, name: string, options?: {
78
81
  format?: string;
79
82
  level?: string;
80
83
  redactSensitive?: boolean;
84
+ redaction?: RedactionConfig;
81
85
  output?: WritableOutput;
82
86
  }): ContextLogger;
83
87
  private _emit;
@@ -1 +1 @@
1
- {"version":3,"file":"context-logger.d.ts","sourceRoot":"","sources":["../../src/observability/context-logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-logger.d.ts","sourceRoot":"","sources":["../../src/observability/context-logger.ts"],"names":[],"mappings":"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"}
@@ -16,6 +16,12 @@ import { Middleware } from '../middleware/base.js';
16
16
  * `apiKey` is kept alongside `api_key` / `apikey` for camelCase parity
17
17
  * because TypeScript's `matchPattern` is case-sensitive.
18
18
  */
19
+ /**
20
+ * Maximum recursion depth for nested redaction. Matches the spec's schema
21
+ * validation depth limit (32) so the redactor can never run away on a
22
+ * deeply-nested or cyclic structure.
23
+ */
24
+ const MAX_REDACTION_DEPTH = 32;
19
25
  export const DEFAULT_REDACTION_FIELD_PATTERNS = [
20
26
  '_secret_*',
21
27
  'password',
@@ -194,6 +200,14 @@ export class RedactionConfig {
194
200
  replacement: typeof replacement === 'string' ? replacement : undefined,
195
201
  });
196
202
  }
203
+ /**
204
+ * Default redaction config so callers that don't supply one still get the
205
+ * standard sensitive-key redaction (`_secret_*`, password, token, …).
206
+ * Mirrors apcore-python's `RedactionConfig.default()`.
207
+ */
208
+ static default() {
209
+ return new RedactionConfig({ fieldPatterns: [...DEFAULT_REDACTION_FIELD_PATTERNS] });
210
+ }
197
211
  /** Apply redaction rules to a flat object of field name → value. */
198
212
  apply(obj) {
199
213
  const result = {};
@@ -207,6 +221,26 @@ export class RedactionConfig {
207
221
  }
208
222
  return result;
209
223
  }
224
+ /**
225
+ * Recursively redact a value: any key matching a sensitive-key pattern is
226
+ * replaced; nested objects and arrays are descended (depth-bounded). Mirrors
227
+ * apcore-python's `_redact_secrets_recursive`.
228
+ */
229
+ redact(value, depth = 0) {
230
+ if (depth > MAX_REDACTION_DEPTH)
231
+ return value;
232
+ if (Array.isArray(value)) {
233
+ return value.map((item) => this.redact(item, depth + 1));
234
+ }
235
+ if (value !== null && typeof value === 'object') {
236
+ const result = {};
237
+ for (const [k, v] of Object.entries(value)) {
238
+ result[k] = this._shouldRedact(k, v) ? this.replacement : this.redact(v, depth + 1);
239
+ }
240
+ return result;
241
+ }
242
+ return value;
243
+ }
210
244
  _shouldRedact(fieldName, value) {
211
245
  if (PROTECTED_LOG_FIELDS.has(fieldName))
212
246
  return false;
@@ -256,25 +290,13 @@ const LEVELS = {
256
290
  error: 40,
257
291
  fatal: 50,
258
292
  };
259
- const REDACTED = '***REDACTED***';
260
- function deepRedact(value) {
261
- if (Array.isArray(value))
262
- return value.map(deepRedact);
263
- if (value !== null && typeof value === 'object') {
264
- const result = {};
265
- for (const [k, v] of Object.entries(value)) {
266
- result[k] = k.startsWith('_secret_') ? REDACTED : deepRedact(v);
267
- }
268
- return result;
269
- }
270
- return value;
271
- }
272
293
  export class ContextLogger {
273
294
  _name;
274
295
  _format;
275
296
  _level;
276
297
  _levelValue;
277
298
  _redactSensitive;
299
+ _redaction;
278
300
  _output;
279
301
  _traceId = null;
280
302
  _moduleId = null;
@@ -285,6 +307,10 @@ export class ContextLogger {
285
307
  this._level = options?.level ?? 'info';
286
308
  this._levelValue = LEVELS[this._level] ?? 20;
287
309
  this._redactSensitive = options?.redactSensitive ?? true;
310
+ // Config-driven redaction. When no explicit config is supplied, fall back
311
+ // to the default sensitive-key set so legacy callers still get `_secret_*`
312
+ // (and the standard keys: password, token, …) redacted out of the box.
313
+ this._redaction = options?.redaction ?? RedactionConfig.default();
288
314
  // Default output uses console.error for universal compatibility (Node.js + browser)
289
315
  this._output = options?.output ?? { write: (s) => console.error(s) };
290
316
  }
@@ -302,7 +328,7 @@ export class ContextLogger {
302
328
  return;
303
329
  let redactedExtra = extra ?? null;
304
330
  if (extra != null && this._redactSensitive) {
305
- redactedExtra = deepRedact(extra);
331
+ redactedExtra = this._redaction.redact(extra);
306
332
  }
307
333
  const now = new Date();
308
334
  const entry = {
@@ -1 +1 @@
1
- {"version":3,"file":"context-logger.js","sourceRoot":"","sources":["../../src/observability/context-logger.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"context-logger.js","sourceRoot":"","sources":["../../src/observability/context-logger.ts"],"names":[],"mappings":"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"}
@@ -65,23 +65,12 @@ export function discoverMultiClass(filePath, classes, extensionsRoot = 'extensio
65
65
  return [{ moduleId: baseId, className: qualifying[0].name }];
66
66
  }
67
67
  if (qualifying.length === 1) {
68
- const segment = classNameToSegment(qualifying[0].name);
69
- const lastBaseSegment = baseId.split('.').pop();
70
- // Identity guarantee: when the class segment matches the file's last segment
71
- // (class named after the file), preserve the bare base_id so existing IDs
72
- // are not broken when multi-class mode is enabled.
73
- if (segment === lastBaseSegment) {
74
- return [{ moduleId: baseId, className: qualifying[0].name }];
75
- }
76
- // Class has a distinct name from the file — append the class segment.
77
- if (!SEGMENT_RE.test(segment))
78
- throw new InvalidSegmentError(filePath, qualifying[0].name, segment);
79
- const moduleId = `${baseId}.${segment}`;
80
- if (!CANONICAL_ID_RE.test(moduleId))
81
- throw new InvalidSegmentError(filePath, qualifying[0].name, segment);
82
- if (moduleId.length > MAX_MODULE_ID_LEN)
83
- throw new IdTooLongError(filePath, moduleId);
84
- return [{ moduleId, className: qualifying[0].name }];
68
+ // Single-class identity guarantee: a file with exactly one qualifying class
69
+ // ALWAYS yields the bare base_id, regardless of whether the class segment
70
+ // matches the file stem. This matches Python multi_class.py:143 and Rust
71
+ // derive_module_ids, and prevents a single class from being given a
72
+ // distinct ".class_segment" suffix.
73
+ return [{ moduleId: baseId, className: qualifying[0].name }];
85
74
  }
86
75
  // Multi-class path: derive IDs, detect conflicts, validate
87
76
  const seenSegments = new Map(); // segment → className
@@ -1 +1 @@
1
- {"version":3,"file":"multi-class.js","sourceRoot":"","sources":["../../src/registry/multi-class.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"multi-class.js","sourceRoot":"","sources":["../../src/registry/multi-class.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/registry/registry.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/registry/registry.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,7 @@
2
2
  * Central module registry for discovering, registering, and querying modules.
3
3
  */
4
4
  import { getDefault } from '../config-defaults.js';
5
- import { DuplicateModuleIdError, InvalidInputError, ModuleNotFoundError, StreamingInterfaceError } from '../errors.js';
5
+ import { DuplicateModuleIdError, ErrorCodes, InvalidInputError, ModuleNotFoundError, StreamingInterfaceError, } from '../errors.js';
6
6
  import { isStreamingModule } from '../streaming.js';
7
7
  import { detectIdConflicts } from './conflicts.js';
8
8
  import { resolveDependencies } from './dependencies.js';
@@ -138,22 +138,22 @@ export function isEphemeralModuleId(moduleId) {
138
138
  function validateModuleId(moduleId, allowReserved) {
139
139
  // 1. empty check (message byte-aligned with apcore-python and apcore-rust)
140
140
  if (!moduleId || typeof moduleId !== 'string') {
141
- throw new InvalidInputError('module_id must be a non-empty string');
141
+ throw new InvalidInputError('module_id must be a non-empty string', undefined, ErrorCodes.INVALID_MODULE_ID);
142
142
  }
143
143
  // 2. EBNF pattern check (message byte-aligned with apcore-python and apcore-rust:
144
144
  // single quotes around the offending ID; bare regex source without /…/ delimiters)
145
145
  if (!MODULE_ID_PATTERN.test(moduleId)) {
146
- throw new InvalidInputError(`Invalid module ID: '${moduleId}'. Must match pattern: ${MODULE_ID_PATTERN.source} (lowercase, digits, underscores, dots only; no hyphens)`);
146
+ throw new InvalidInputError(`Invalid module ID: '${moduleId}'. Must match pattern: ${MODULE_ID_PATTERN.source} (lowercase, digits, underscores, dots only; no hyphens)`, undefined, ErrorCodes.INVALID_MODULE_ID);
147
147
  }
148
148
  // 3. length check
149
149
  if (moduleId.length > MAX_MODULE_ID_LENGTH) {
150
- throw new InvalidInputError(`Module ID exceeds maximum length of ${MAX_MODULE_ID_LENGTH}: ${moduleId.length}`);
150
+ throw new InvalidInputError(`Module ID exceeds maximum length of ${MAX_MODULE_ID_LENGTH}: ${moduleId.length}`, undefined, ErrorCodes.INVALID_MODULE_ID);
151
151
  }
152
152
  // 4. reserved word first-segment check (skipped for registerInternal)
153
153
  if (!allowReserved) {
154
154
  const firstSegment = moduleId.split('.')[0];
155
155
  if (RESERVED_WORDS.has(firstSegment)) {
156
- throw new InvalidInputError(`Module ID contains reserved word: '${firstSegment}'`);
156
+ throw new InvalidInputError(`Module ID contains reserved word: '${firstSegment}'`, undefined, ErrorCodes.INVALID_MODULE_ID);
157
157
  }
158
158
  }
159
159
  }
@@ -357,7 +357,7 @@ export class Registry {
357
357
  `'ephemeral.*' namespace: ${JSON.stringify(ids)}. The ephemeral.* ` +
358
358
  `namespace is reserved for programmatically-registered modules and ` +
359
359
  `may only be used via Registry.register(). Rename the offending ` +
360
- `directory or extension namespace.`);
360
+ `directory or extension namespace.`, undefined, ErrorCodes.INVALID_MODULE_ID);
361
361
  }
362
362
  async _applyIdMapOverrides(discovered) {
363
363
  if (Object.keys(this._idMap).length === 0)
@@ -788,6 +788,14 @@ export class Registry {
788
788
  this._moduleMeta.delete(moduleId);
789
789
  this._schemaCache.delete(moduleId);
790
790
  this._lowercaseMap.delete(moduleId.toLowerCase());
791
+ // Clear hot-reload tracking state to avoid stale entries when unregister()
792
+ // is called directly (not via safeUnregister()). Otherwise a leftover
793
+ // _draining flag would make acquire() throw ModuleNotFoundError on a
794
+ // re-registered module with the same id (mirrors apcore-python
795
+ // registry.py:1217-1219 and apcore-rust registry.rs).
796
+ this._draining.delete(moduleId);
797
+ this._drainResolvers.delete(moduleId);
798
+ this._refCounts.delete(moduleId);
791
799
  // Call onUnload if available
792
800
  const modObj = module;
793
801
  if (typeof modObj['onUnload'] === 'function') {