apcore-js 0.19.0 → 0.21.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 +110 -9
- package/dist/acl.d.ts +18 -0
- package/dist/acl.d.ts.map +1 -1
- package/dist/acl.js +54 -17
- package/dist/acl.js.map +1 -1
- package/dist/async-task.d.ts +70 -16
- package/dist/async-task.d.ts.map +1 -1
- package/dist/async-task.js +212 -72
- package/dist/async-task.js.map +1 -1
- package/dist/builtin-steps.d.ts +16 -5
- package/dist/builtin-steps.d.ts.map +1 -1
- package/dist/builtin-steps.js +45 -28
- package/dist/builtin-steps.js.map +1 -1
- package/dist/config.d.ts +38 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +163 -33
- package/dist/config.js.map +1 -1
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +12 -1
- package/dist/context.js.map +1 -1
- package/dist/errors.d.ts +32 -10
- package/dist/errors.d.ts.map +1 -1
- package/dist/errors.js +55 -16
- package/dist/errors.js.map +1 -1
- package/dist/events/circuit-breaker.d.ts +45 -0
- package/dist/events/circuit-breaker.d.ts.map +1 -0
- package/dist/events/circuit-breaker.js +115 -0
- package/dist/events/circuit-breaker.js.map +1 -0
- package/dist/events/emitter.d.ts +22 -1
- package/dist/events/emitter.d.ts.map +1 -1
- package/dist/events/emitter.js +66 -2
- package/dist/events/emitter.js.map +1 -1
- package/dist/events/index.d.ts +4 -2
- package/dist/events/index.d.ts.map +1 -1
- package/dist/events/index.js +3 -2
- package/dist/events/index.js.map +1 -1
- package/dist/events/subscribers.d.ts +33 -1
- package/dist/events/subscribers.d.ts.map +1 -1
- package/dist/events/subscribers.js +124 -1
- package/dist/events/subscribers.js.map +1 -1
- package/dist/executor.d.ts +10 -2
- package/dist/executor.d.ts.map +1 -1
- package/dist/executor.js +173 -52
- package/dist/executor.js.map +1 -1
- package/dist/generated/version.d.ts +1 -1
- package/dist/generated/version.js +1 -1
- package/dist/index.d.ts +35 -25
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +23 -17
- package/dist/index.js.map +1 -1
- package/dist/middleware/base.d.ts +25 -3
- package/dist/middleware/base.d.ts.map +1 -1
- package/dist/middleware/base.js +24 -0
- package/dist/middleware/base.js.map +1 -1
- package/dist/middleware/circuit-breaker.d.ts +54 -0
- package/dist/middleware/circuit-breaker.d.ts.map +1 -0
- package/dist/middleware/circuit-breaker.js +168 -0
- package/dist/middleware/circuit-breaker.js.map +1 -0
- package/dist/middleware/context-namespace.d.ts +30 -0
- package/dist/middleware/context-namespace.d.ts.map +1 -0
- package/dist/middleware/context-namespace.js +38 -0
- package/dist/middleware/context-namespace.js.map +1 -0
- package/dist/middleware/index.d.ts +7 -1
- package/dist/middleware/index.d.ts.map +1 -1
- package/dist/middleware/index.js +4 -1
- package/dist/middleware/index.js.map +1 -1
- package/dist/middleware/manager.d.ts +11 -4
- package/dist/middleware/manager.d.ts.map +1 -1
- package/dist/middleware/manager.js +25 -9
- package/dist/middleware/manager.js.map +1 -1
- package/dist/middleware/platform-notify.d.ts +8 -4
- package/dist/middleware/platform-notify.d.ts.map +1 -1
- package/dist/middleware/platform-notify.js +11 -7
- package/dist/middleware/platform-notify.js.map +1 -1
- package/dist/middleware/tracing.d.ts +50 -0
- package/dist/middleware/tracing.d.ts.map +1 -0
- package/dist/middleware/tracing.js +89 -0
- package/dist/middleware/tracing.js.map +1 -0
- package/dist/module.d.ts +94 -2
- package/dist/module.d.ts.map +1 -1
- package/dist/module.js +99 -2
- package/dist/module.js.map +1 -1
- package/dist/observability/batch-span-processor.d.ts +48 -0
- package/dist/observability/batch-span-processor.d.ts.map +1 -0
- package/dist/observability/batch-span-processor.js +89 -0
- package/dist/observability/batch-span-processor.js.map +1 -0
- package/dist/observability/context-logger.d.ts +54 -1
- package/dist/observability/context-logger.d.ts.map +1 -1
- package/dist/observability/context-logger.js +270 -6
- package/dist/observability/context-logger.js.map +1 -1
- package/dist/observability/error-history.d.ts +36 -7
- package/dist/observability/error-history.d.ts.map +1 -1
- package/dist/observability/error-history.js +169 -50
- package/dist/observability/error-history.js.map +1 -1
- package/dist/observability/index.d.ts +16 -5
- package/dist/observability/index.d.ts.map +1 -1
- package/dist/observability/index.js +8 -3
- package/dist/observability/index.js.map +1 -1
- package/dist/observability/metrics.d.ts +14 -1
- package/dist/observability/metrics.d.ts.map +1 -1
- package/dist/observability/metrics.js +23 -2
- package/dist/observability/metrics.js.map +1 -1
- package/dist/observability/prometheus-exporter.d.ts +37 -0
- package/dist/observability/prometheus-exporter.d.ts.map +1 -0
- package/dist/observability/prometheus-exporter.js +135 -0
- package/dist/observability/prometheus-exporter.js.map +1 -0
- package/dist/observability/storage.d.ts +43 -0
- package/dist/observability/storage.d.ts.map +1 -0
- package/dist/observability/storage.js +58 -0
- package/dist/observability/storage.js.map +1 -0
- package/dist/observability/store.d.ts +29 -0
- package/dist/observability/store.d.ts.map +1 -0
- package/dist/observability/store.js +36 -0
- package/dist/observability/store.js.map +1 -0
- package/dist/observability/usage-exporter.d.ts +58 -0
- package/dist/observability/usage-exporter.d.ts.map +1 -0
- package/dist/observability/usage-exporter.js +86 -0
- package/dist/observability/usage-exporter.js.map +1 -0
- package/dist/observability/usage.d.ts +18 -1
- package/dist/observability/usage.d.ts.map +1 -1
- package/dist/observability/usage.js +25 -3
- package/dist/observability/usage.js.map +1 -1
- package/dist/pipeline-config.d.ts +11 -0
- package/dist/pipeline-config.d.ts.map +1 -1
- package/dist/pipeline-config.js +36 -10
- package/dist/pipeline-config.js.map +1 -1
- package/dist/pipeline.d.ts +123 -2
- package/dist/pipeline.d.ts.map +1 -1
- package/dist/pipeline.js +249 -50
- package/dist/pipeline.js.map +1 -1
- package/dist/registry/index.d.ts +2 -0
- package/dist/registry/index.d.ts.map +1 -1
- package/dist/registry/index.js +1 -0
- package/dist/registry/index.js.map +1 -1
- package/dist/registry/multi-class.d.ts +71 -0
- package/dist/registry/multi-class.d.ts.map +1 -0
- package/dist/registry/multi-class.js +120 -0
- package/dist/registry/multi-class.js.map +1 -0
- package/dist/registry/registry.d.ts +246 -5
- package/dist/registry/registry.d.ts.map +1 -1
- package/dist/registry/registry.js +485 -16
- package/dist/registry/registry.js.map +1 -1
- package/dist/schema/annotations.d.ts.map +1 -1
- package/dist/schema/annotations.js +1 -0
- package/dist/schema/annotations.js.map +1 -1
- package/dist/schema/constants.d.ts +9 -0
- package/dist/schema/constants.d.ts.map +1 -0
- package/dist/schema/constants.js +9 -0
- package/dist/schema/constants.js.map +1 -0
- package/dist/schema/index.d.ts +1 -1
- package/dist/schema/index.d.ts.map +1 -1
- package/dist/schema/index.js +1 -1
- package/dist/schema/index.js.map +1 -1
- package/dist/schema/loader.d.ts +27 -3
- package/dist/schema/loader.d.ts.map +1 -1
- package/dist/schema/loader.js +137 -32
- package/dist/schema/loader.js.map +1 -1
- package/dist/schema/types.d.ts +4 -0
- package/dist/schema/types.d.ts.map +1 -1
- package/dist/schema/types.js.map +1 -1
- package/dist/schema/validator.d.ts +9 -0
- package/dist/schema/validator.d.ts.map +1 -1
- package/dist/schema/validator.js +153 -4
- package/dist/schema/validator.js.map +1 -1
- package/dist/sys-modules/audit.d.ts +50 -0
- package/dist/sys-modules/audit.d.ts.map +1 -0
- package/dist/sys-modules/audit.js +89 -0
- package/dist/sys-modules/audit.js.map +1 -0
- package/dist/sys-modules/control.d.ts +32 -4
- package/dist/sys-modules/control.d.ts.map +1 -1
- package/dist/sys-modules/control.js +196 -25
- package/dist/sys-modules/control.js.map +1 -1
- package/dist/sys-modules/index.d.ts +7 -2
- package/dist/sys-modules/index.d.ts.map +1 -1
- package/dist/sys-modules/index.js +3 -1
- package/dist/sys-modules/index.js.map +1 -1
- package/dist/sys-modules/overrides.d.ts +58 -0
- package/dist/sys-modules/overrides.d.ts.map +1 -0
- package/dist/sys-modules/overrides.js +106 -0
- package/dist/sys-modules/overrides.js.map +1 -0
- package/dist/sys-modules/registration.d.ts +17 -12
- package/dist/sys-modules/registration.d.ts.map +1 -1
- package/dist/sys-modules/registration.js +134 -23
- package/dist/sys-modules/registration.js.map +1 -1
- package/dist/sys-modules/toggle.d.ts +7 -2
- package/dist/sys-modules/toggle.d.ts.map +1 -1
- package/dist/sys-modules/toggle.js +61 -5
- package/dist/sys-modules/toggle.js.map +1 -1
- package/dist/trace-context.d.ts +47 -9
- package/dist/trace-context.d.ts.map +1 -1
- package/dist/trace-context.js +139 -16
- package/dist/trace-context.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Multi-class module discovery: opt-in scanner, snake_case ID derivation, conflict detection.
|
|
3
|
+
*
|
|
4
|
+
* Implements PROTOCOL_SPEC §2.1.1 (Multi-Module Discovery).
|
|
5
|
+
*/
|
|
6
|
+
import { IdTooLongError, InvalidSegmentError, ModuleIdConflictError } from '../errors.js';
|
|
7
|
+
const SEGMENT_RE = /^[a-z][a-z0-9_]*$/;
|
|
8
|
+
const CANONICAL_ID_RE = /^[a-z][a-z0-9_]*(\.[a-z][a-z0-9_]*)*$/;
|
|
9
|
+
const MAX_MODULE_ID_LEN = 192;
|
|
10
|
+
/**
|
|
11
|
+
* Convert a class name to a snake_case segment per PROTOCOL_SPEC §2.1.1.
|
|
12
|
+
*
|
|
13
|
+
* Algorithm:
|
|
14
|
+
* 1. Insert boundary at ALLCAPS→CamelCase transitions (HTTPSender → HTTP_Sender).
|
|
15
|
+
* 2. Insert boundary at lowercase/digit→uppercase transitions (MathOps → Math_Ops).
|
|
16
|
+
* 3. Replace every non-alphanumeric character with `_`.
|
|
17
|
+
* 4. Lowercase.
|
|
18
|
+
* 5. Collapse consecutive `_` to a single `_`.
|
|
19
|
+
* 6. Strip leading and trailing `_`.
|
|
20
|
+
*/
|
|
21
|
+
export function classNameToSegment(className) {
|
|
22
|
+
let s = className.replace(/([A-Z]+)([A-Z][a-z])/g, '$1_$2');
|
|
23
|
+
s = s.replace(/([a-z\d])([A-Z])/g, '$1_$2');
|
|
24
|
+
s = s.replace(/[^a-zA-Z0-9]/g, '_');
|
|
25
|
+
s = s.toLowerCase();
|
|
26
|
+
s = s.replace(/_+/g, '_');
|
|
27
|
+
return s.replace(/^_+|_+$/g, '');
|
|
28
|
+
}
|
|
29
|
+
function computeBaseId(filePath, extensionsRoot) {
|
|
30
|
+
const normalized = filePath.replace(/\\/g, '/');
|
|
31
|
+
const parts = normalized.split('/');
|
|
32
|
+
const rootIdx = parts.findIndex(p => p === extensionsRoot);
|
|
33
|
+
const relParts = rootIdx === -1 ? [parts[parts.length - 1]] : parts.slice(rootIdx + 1);
|
|
34
|
+
// Strip file extension from the last segment
|
|
35
|
+
relParts[relParts.length - 1] = relParts[relParts.length - 1].replace(/\.[^.]+$/, '');
|
|
36
|
+
return relParts.join('.');
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Discover module IDs for classes in a single file under multi-class mode.
|
|
40
|
+
*
|
|
41
|
+
* Implements the Registry.discover_multi_class contract from PROTOCOL_SPEC §2.1.1.
|
|
42
|
+
*
|
|
43
|
+
* When multiClassEnabled is false (the default — multi-class mode is opt-in),
|
|
44
|
+
* only the first qualifying class is used and the bare base_id is returned.
|
|
45
|
+
*
|
|
46
|
+
* When multiClassEnabled is true and exactly one class qualifies:
|
|
47
|
+
* - If the class segment matches the file's last path segment (class named after
|
|
48
|
+
* the file), the bare base_id is returned to preserve existing module IDs.
|
|
49
|
+
* - Otherwise the class segment is appended: base_id.class_segment.
|
|
50
|
+
*
|
|
51
|
+
* @internal Prefer `Registry.discoverMultiClass` (D-15) for the canonical
|
|
52
|
+
* cross-language API surface; this free function is retained for backwards
|
|
53
|
+
* compatibility and direct use by the scanner.
|
|
54
|
+
*
|
|
55
|
+
* @throws ModuleIdConflictError — two classes produce the same class_segment
|
|
56
|
+
* @throws InvalidSegmentError — a segment does not match ^[a-z][a-z0-9_]*$
|
|
57
|
+
* @throws IdTooLongError — a derived module_id exceeds 192 characters
|
|
58
|
+
*/
|
|
59
|
+
export function discoverMultiClass(filePath, classes, extensionsRoot = 'extensions', multiClassEnabled = false) {
|
|
60
|
+
const qualifying = classes.filter(c => c.implementsModule);
|
|
61
|
+
if (qualifying.length === 0)
|
|
62
|
+
return [];
|
|
63
|
+
const baseId = computeBaseId(filePath, extensionsRoot);
|
|
64
|
+
if (!multiClassEnabled) {
|
|
65
|
+
return [{ moduleId: baseId, className: qualifying[0].name }];
|
|
66
|
+
}
|
|
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 }];
|
|
85
|
+
}
|
|
86
|
+
// Multi-class path: derive IDs, detect conflicts, validate
|
|
87
|
+
const seenSegments = new Map(); // segment → className
|
|
88
|
+
const results = [];
|
|
89
|
+
for (const cls of qualifying) {
|
|
90
|
+
const segment = classNameToSegment(cls.name);
|
|
91
|
+
if (!SEGMENT_RE.test(segment)) {
|
|
92
|
+
throw new InvalidSegmentError(filePath, cls.name, segment);
|
|
93
|
+
}
|
|
94
|
+
if (seenSegments.has(segment)) {
|
|
95
|
+
console.warn(`[apcore:multi-class] MODULE_ID_CONFLICT in '${filePath}': ` +
|
|
96
|
+
`classes '${seenSegments.get(segment)}' and '${cls.name}' both produce segment '${segment}'`);
|
|
97
|
+
throw new ModuleIdConflictError(filePath, [seenSegments.get(segment), cls.name], segment);
|
|
98
|
+
}
|
|
99
|
+
seenSegments.set(segment, cls.name);
|
|
100
|
+
const moduleId = `${baseId}.${segment}`;
|
|
101
|
+
if (!CANONICAL_ID_RE.test(moduleId)) {
|
|
102
|
+
throw new InvalidSegmentError(filePath, cls.name, segment);
|
|
103
|
+
}
|
|
104
|
+
if (moduleId.length > MAX_MODULE_ID_LEN) {
|
|
105
|
+
throw new IdTooLongError(filePath, moduleId);
|
|
106
|
+
}
|
|
107
|
+
results.push({ moduleId, className: cls.name });
|
|
108
|
+
}
|
|
109
|
+
return results;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Internal alias of {@link discoverMultiClass}. Use {@link Registry.discoverMultiClass}
|
|
113
|
+
* instead — this name is preserved so the scanner and other internal callers
|
|
114
|
+
* have a stable reference that signals the surface is not part of the public
|
|
115
|
+
* API.
|
|
116
|
+
*
|
|
117
|
+
* @internal
|
|
118
|
+
*/
|
|
119
|
+
export const _discoverMultiClass = discoverMultiClass;
|
|
120
|
+
//# sourceMappingURL=multi-class.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"multi-class.js","sourceRoot":"","sources":["../../src/registry/multi-class.ts"],"names":[],"mappings":"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"}
|
|
@@ -2,7 +2,17 @@
|
|
|
2
2
|
* Central module registry for discovering, registering, and querying modules.
|
|
3
3
|
*/
|
|
4
4
|
import type { Config } from '../config.js';
|
|
5
|
+
import type { Context } from '../context.js';
|
|
6
|
+
import type { EventEmitter } from '../events/emitter.js';
|
|
5
7
|
import type { ModuleDescriptor } from './types.js';
|
|
8
|
+
/**
|
|
9
|
+
* Reset the one-shot deprecation flag for the legacy 4-arg
|
|
10
|
+
* `Registry.discoverMultiClass` overload. Test-only — production callers
|
|
11
|
+
* never need this.
|
|
12
|
+
*
|
|
13
|
+
* @internal
|
|
14
|
+
*/
|
|
15
|
+
export declare function _resetMultiClassEnabledDeprecationWarned(): void;
|
|
6
16
|
/**
|
|
7
17
|
* Standard registry event names.
|
|
8
18
|
*/
|
|
@@ -28,6 +38,23 @@ export declare const MAX_MODULE_ID_LENGTH = 192;
|
|
|
28
38
|
* Reserved words that cannot appear as the first segment of a module ID.
|
|
29
39
|
*/
|
|
30
40
|
export declare const RESERVED_WORDS: Set<string>;
|
|
41
|
+
/**
|
|
42
|
+
* Namespace prefix reserved for programmatically-registered modules
|
|
43
|
+
* synthesized at runtime (PROTOCOL_SPEC §2.5; RFC
|
|
44
|
+
* `apcore/docs/spec/rfc-ephemeral-modules.md`). IDs in this namespace MUST
|
|
45
|
+
* be registered through {@link Registry.register} only — the filesystem
|
|
46
|
+
* discoverer rejects matching IDs because the namespace has no
|
|
47
|
+
* directory-rooted source of truth, and {@link Registry.registerInternal}
|
|
48
|
+
* rejects them too so the audit-trail provenance distinction between
|
|
49
|
+
* framework-emitted (`system.*`) and caller-emitted (`ephemeral.*`)
|
|
50
|
+
* modules stays clean.
|
|
51
|
+
*
|
|
52
|
+
* The trailing dot is required so module IDs whose first segment merely
|
|
53
|
+
* *starts with* `ephemeral` (e.g. `ephemerals`) are not falsely classified.
|
|
54
|
+
*/
|
|
55
|
+
export declare const EPHEMERAL_NAMESPACE_PREFIX = "ephemeral.";
|
|
56
|
+
/** Return true when `moduleId` belongs to the reserved `ephemeral.*` namespace. */
|
|
57
|
+
export declare function isEphemeralModuleId(moduleId: string): boolean;
|
|
31
58
|
/**
|
|
32
59
|
* Interface for custom module discovery.
|
|
33
60
|
*/
|
|
@@ -65,6 +92,16 @@ export declare class Registry {
|
|
|
65
92
|
private _refCounts;
|
|
66
93
|
private _draining;
|
|
67
94
|
private _drainResolvers;
|
|
95
|
+
/**
|
|
96
|
+
* Optional EventEmitter for the ephemeral.* registry-side audit emits
|
|
97
|
+
* (RFC `apcore/docs/spec/rfc-ephemeral-modules.md` "Audit-event single-emit
|
|
98
|
+
* rule"). Set via {@link setEventEmitter}; when null, ephemeral audit
|
|
99
|
+
* events are warn-logged so they never silently disappear.
|
|
100
|
+
*
|
|
101
|
+
* Mirrors apcore-python `Registry._event_emitter` /
|
|
102
|
+
* `Registry.set_event_emitter`.
|
|
103
|
+
*/
|
|
104
|
+
private _eventEmitter;
|
|
68
105
|
constructor(options?: {
|
|
69
106
|
config?: Config | null;
|
|
70
107
|
extensionsDir?: string | null;
|
|
@@ -77,12 +114,63 @@ export declare class Registry {
|
|
|
77
114
|
setValidator(validator: ModuleValidator): void;
|
|
78
115
|
discover(): Promise<number>;
|
|
79
116
|
private _discoverCustom;
|
|
117
|
+
/**
|
|
118
|
+
* Default discovery pipeline (D-32 — 8 canonical stages, mirroring
|
|
119
|
+
* apcore-rust `default_discoverer.rs`):
|
|
120
|
+
*
|
|
121
|
+
* 1. _ensureIdMap — lazy-load the optional id_map.json
|
|
122
|
+
* 2. _scanRoots — walk extension roots
|
|
123
|
+
* 3. _applyIdMapOverrides — rewrite canonical IDs from the map
|
|
124
|
+
* 4. _loadAllMetadata — load each module's `module.yaml`
|
|
125
|
+
* 5. _resolveAllEntryPoints — import the JS/TS entry point
|
|
126
|
+
* 6. _validateAll — run module/custom validators
|
|
127
|
+
* 7. _filterIdConflicts — batch-drop conflicting / invalid IDs
|
|
128
|
+
* 8. _resolveLoadOrder + _registerInOrder
|
|
129
|
+
* — topological sort then register.
|
|
130
|
+
*/
|
|
80
131
|
private _discoverDefault;
|
|
81
132
|
private _scanRoots;
|
|
133
|
+
/**
|
|
134
|
+
* Reject filesystem-derived IDs that fall in the reserved `ephemeral.*`
|
|
135
|
+
* namespace.
|
|
136
|
+
*
|
|
137
|
+
* Per the apcore ephemeral-modules RFC pilot (`apcore/docs/spec/
|
|
138
|
+
* rfc-ephemeral-modules.md`), `ephemeral.*` is reserved for
|
|
139
|
+
* programmatically-registered modules synthesized at runtime. Any
|
|
140
|
+
* filesystem layout that produces such an ID is a configuration error —
|
|
141
|
+
* either the directory is misnamed or the namespace prefix is being
|
|
142
|
+
* misused. We surface this as an `InvalidInputError` so callers cannot
|
|
143
|
+
* accidentally pollute the registry with filesystem-rooted ephemerals.
|
|
144
|
+
*
|
|
145
|
+
* Mirrors apcore-python `Registry._reject_ephemeral_discoveries`.
|
|
146
|
+
*/
|
|
147
|
+
private _rejectEphemeralDiscoveries;
|
|
82
148
|
private _applyIdMapOverrides;
|
|
83
149
|
private _loadAllMetadata;
|
|
84
150
|
private _resolveAllEntryPoints;
|
|
85
151
|
private _validateAll;
|
|
152
|
+
/**
|
|
153
|
+
* Stage 7 (D-32) — batch-drop modules with invalid or conflicting IDs.
|
|
154
|
+
*
|
|
155
|
+
* Mirrors apcore-python `_filter_id_conflicts` and apcore-rust
|
|
156
|
+
* `default_discoverer::filter_id_conflicts`. Two failure modes drop a
|
|
157
|
+
* module here (warn + skip) rather than aborting the whole batch:
|
|
158
|
+
* - PROTOCOL_SPEC §2.7 ID validation (empty / pattern / length /
|
|
159
|
+
* reserved-word first segment), and
|
|
160
|
+
* - Algorithm A03 conflict detection (duplicate against an existing
|
|
161
|
+
* registration, lowercase collision, reserved-word collision).
|
|
162
|
+
*
|
|
163
|
+
* Soft-severity conflicts (e.g. case-insensitive match against an
|
|
164
|
+
* already-registered ID at `warn` level) are NOT dropped here — the
|
|
165
|
+
* warning is logged and the module flows through to registration so
|
|
166
|
+
* existing behaviour is preserved. Only `error`-severity conflicts and
|
|
167
|
+
* invalid IDs are filtered out.
|
|
168
|
+
*
|
|
169
|
+
* `rawMetadata` is accepted for cross-language signature parity with
|
|
170
|
+
* the Rust/Python helpers (which may inspect metadata for additional
|
|
171
|
+
* checks); the TS implementation reads only the module ID.
|
|
172
|
+
*/
|
|
173
|
+
private _filterIdConflicts;
|
|
86
174
|
private _resolveLoadOrder;
|
|
87
175
|
private _registerInOrder;
|
|
88
176
|
/**
|
|
@@ -91,26 +179,110 @@ export declare class Registry {
|
|
|
91
179
|
* Validation order (PROTOCOL_SPEC §2.7, aligned with apcore-python and
|
|
92
180
|
* apcore-rust): empty → pattern → length → reserved (per-segment) →
|
|
93
181
|
* duplicate.
|
|
182
|
+
*
|
|
183
|
+
* The optional `version` and `metadata` parameters mirror apcore-python's
|
|
184
|
+
* `Registry.register(module_id, module, version=None, metadata=None)` for
|
|
185
|
+
* cross-language signature parity (sync finding A-001). Multi-version
|
|
186
|
+
* coexistence is not yet implemented in this SDK — when supplied, both
|
|
187
|
+
* fields are merged into the module's metadata so callers can read them
|
|
188
|
+
* back via `getDefinition()` and `list({tags})`. See PROTOCOL_SPEC §5.4.
|
|
94
189
|
*/
|
|
95
|
-
register(moduleId: string, module: unknown
|
|
190
|
+
register(moduleId: string, module: unknown, version?: string | null, metadata?: Record<string, unknown> | null, options?: {
|
|
191
|
+
context?: Context | null;
|
|
192
|
+
}): void;
|
|
96
193
|
/** Inner registration — no validator, no ID validation. Used by discover() paths that run their own checks. */
|
|
97
194
|
private _registerImpl;
|
|
98
|
-
unregister(moduleId: string
|
|
99
|
-
|
|
195
|
+
unregister(moduleId: string, options?: {
|
|
196
|
+
context?: Context | null;
|
|
197
|
+
}): boolean;
|
|
198
|
+
/**
|
|
199
|
+
* Look up a registered module by ID.
|
|
200
|
+
*
|
|
201
|
+
* @param moduleId - Module identifier (must be non-empty).
|
|
202
|
+
* @param _versionHint - Optional semver range for multi-version coexistence
|
|
203
|
+
* (PROTOCOL_SPEC §5.4). This SDK currently exposes a single-version
|
|
204
|
+
* registry, so the hint is accepted for cross-language API parity with
|
|
205
|
+
* apcore-python (sync finding A-002) but does NOT participate in
|
|
206
|
+
* resolution: the latest registered module for `moduleId` is returned
|
|
207
|
+
* regardless of the hint. When multi-version registration lands, this
|
|
208
|
+
* parameter will gate semver-range matching.
|
|
209
|
+
*/
|
|
210
|
+
get(moduleId: string, _versionHint?: string | null): unknown | null;
|
|
100
211
|
has(moduleId: string): boolean;
|
|
212
|
+
/**
|
|
213
|
+
* Return sorted list of registered module IDs, optionally filtered by
|
|
214
|
+
* `prefix` / `tags`.
|
|
215
|
+
*
|
|
216
|
+
* Modules whose `ModuleAnnotations.discoverable === false` are excluded
|
|
217
|
+
* by default per PROTOCOL_SPEC §4.4 (RFC
|
|
218
|
+
* `apcore/docs/spec/rfc-ephemeral-modules.md`). Pass
|
|
219
|
+
* `includeHidden: true` to enumerate every registered module — useful
|
|
220
|
+
* for introspection tools, debug consoles, and tests.
|
|
221
|
+
*/
|
|
101
222
|
list(options?: {
|
|
102
223
|
tags?: string[];
|
|
103
224
|
prefix?: string;
|
|
225
|
+
includeHidden?: boolean;
|
|
104
226
|
}): string[];
|
|
105
|
-
|
|
227
|
+
/**
|
|
228
|
+
* Iterate `[moduleId, module]` pairs. Hides modules annotated
|
|
229
|
+
* `discoverable: false` by default; pass `includeHidden: true` to walk
|
|
230
|
+
* every registered module.
|
|
231
|
+
*/
|
|
232
|
+
iter(options?: {
|
|
233
|
+
includeHidden?: boolean;
|
|
234
|
+
}): IterableIterator<[string, unknown]>;
|
|
235
|
+
/** Total number of registered modules (includes `discoverable: false`). */
|
|
106
236
|
get count(): number;
|
|
237
|
+
/**
|
|
238
|
+
* Sorted list of registered module IDs (excludes
|
|
239
|
+
* `ModuleAnnotations.discoverable === false` modules). Use
|
|
240
|
+
* {@link list} with `includeHidden: true` when the full set is required.
|
|
241
|
+
*/
|
|
107
242
|
get moduleIds(): string[];
|
|
108
|
-
|
|
243
|
+
/**
|
|
244
|
+
* Return false when the module's annotations declare
|
|
245
|
+
* `discoverable: false`. Anything else (including missing annotations)
|
|
246
|
+
* keeps the module visible — the default `true` preserves backward
|
|
247
|
+
* compatibility.
|
|
248
|
+
*
|
|
249
|
+
* Resolution order matches `mergeModuleMetadata`:
|
|
250
|
+
* 1. The merged `annotations` slot in `_moduleMeta` (which already
|
|
251
|
+
* accounts for YAML > code precedence).
|
|
252
|
+
* 2. The module instance's `annotations` attribute (covers paths that
|
|
253
|
+
* bypassed the merge, e.g. `registerInternal`).
|
|
254
|
+
*/
|
|
255
|
+
private _isDiscoverable;
|
|
256
|
+
private _readDiscoverable;
|
|
257
|
+
getDefinition(moduleId: string, _versionHint?: string | null): ModuleDescriptor | null;
|
|
109
258
|
describe(moduleId: string): string;
|
|
110
259
|
on(event: string, callback: EventCallback): void;
|
|
111
260
|
off(event: string, callback: EventCallback): boolean;
|
|
112
261
|
reload(): Promise<number>;
|
|
113
262
|
private _triggerEvent;
|
|
263
|
+
/**
|
|
264
|
+
* Watch the configured extension roots for filesystem changes and
|
|
265
|
+
* unregister any module whose source file is modified or deleted.
|
|
266
|
+
*
|
|
267
|
+
* **Cross-language divergence (sync finding A-D-104):** unlike apcore-python
|
|
268
|
+
* (which re-imports the file via `importlib.reload`) and apcore-rust (which
|
|
269
|
+
* triggers full rediscovery), the TypeScript SDK is **event-only**. On a
|
|
270
|
+
* file change the registry:
|
|
271
|
+
* 1. unregisters the previously-loaded module (calling its `onUnload`),
|
|
272
|
+
* 2. emits a `'file_changed'` event with `{ filePath }` payload.
|
|
273
|
+
*
|
|
274
|
+
* Consumers are expected to subscribe and re-register the module
|
|
275
|
+
* themselves (e.g. by calling `registry.discover()` or registering a fresh
|
|
276
|
+
* import). ES module specifiers are immutable in Node — there is no
|
|
277
|
+
* portable "reload from disk" primitive — so a transparent dynamic
|
|
278
|
+
* `import()` would silently return the cached old module on every
|
|
279
|
+
* invocation. A workaround using a cache-busting query (`?v=Date.now()`)
|
|
280
|
+
* leaks the old module each reload and breaks browser bundlers, so it is
|
|
281
|
+
* intentionally **not** offered here.
|
|
282
|
+
*
|
|
283
|
+
* If your application needs Python-style hot-reload semantics, listen for
|
|
284
|
+
* `'file_changed'` and re-discover or re-import explicitly.
|
|
285
|
+
*/
|
|
114
286
|
watch(): Promise<void>;
|
|
115
287
|
unwatch(): void;
|
|
116
288
|
private _handleFileChange;
|
|
@@ -137,6 +309,35 @@ export declare class Registry {
|
|
|
137
309
|
*/
|
|
138
310
|
exportSchema(moduleId: string, strict?: boolean): Record<string, unknown> | null;
|
|
139
311
|
clearCache(): void;
|
|
312
|
+
/**
|
|
313
|
+
* Discover module IDs for the classes in a single file under multi-class
|
|
314
|
+
* mode (PROTOCOL_SPEC §2.1.1).
|
|
315
|
+
*
|
|
316
|
+
* D-15: cross-language alignment with Python `Registry.discover_multi_class`
|
|
317
|
+
* and the Rust trait method. Internally delegates to the free function
|
|
318
|
+
* {@link discoverMultiClass} (re-exported as `_discoverMultiClass` for
|
|
319
|
+
* scanner internals), so behaviour is identical.
|
|
320
|
+
*
|
|
321
|
+
* **apcore decision-log D-06**: the per-class `ClassDescriptor.multiClass`
|
|
322
|
+
* flag is the sole opt-in mechanism for multi-class discovery. When any
|
|
323
|
+
* qualifying class sets `multiClass: true`, the discovery routine derives
|
|
324
|
+
* a distinct module ID per class; otherwise whole-file mode is used.
|
|
325
|
+
*
|
|
326
|
+
* @param filePath - Source file path (relative to project root).
|
|
327
|
+
* @param classes - Class descriptors; each may carry `multiClass: true`
|
|
328
|
+
* to opt into per-class module ID derivation.
|
|
329
|
+
* @param extensionsRoot - Extensions root directory (defaults to
|
|
330
|
+
* `'extensions'`).
|
|
331
|
+
*
|
|
332
|
+
* **Deprecated 4-arg overload**: passing a `multiClassEnabled` boolean as
|
|
333
|
+
* the fourth argument is retained for backward compatibility through one
|
|
334
|
+
* minor release and will be removed in v0.22.0. The argument is now
|
|
335
|
+
* functionally inert — the per-class `multiClass` field is the source of
|
|
336
|
+
* truth. A one-shot deprecation notice is emitted on first use.
|
|
337
|
+
*/
|
|
338
|
+
discoverMultiClass(filePath: string, classes: readonly import('./multi-class.js').ClassDescriptor[], extensionsRoot?: string): import('./multi-class.js').MultiClassEntry[];
|
|
339
|
+
/** @deprecated Pass `multiClass: true` on each `ClassDescriptor` instead. The `multiClassEnabled` argument will be removed in v0.22.0. */
|
|
340
|
+
discoverMultiClass(filePath: string, classes: readonly import('./multi-class.js').ClassDescriptor[], extensionsRoot: string, multiClassEnabled: boolean): import('./multi-class.js').MultiClassEntry[];
|
|
140
341
|
/**
|
|
141
342
|
* Number of in-flight executions per module.
|
|
142
343
|
*/
|
|
@@ -186,6 +387,46 @@ export declare class Registry {
|
|
|
186
387
|
*
|
|
187
388
|
* Returns true if drained cleanly, false if force-unloaded after timeout.
|
|
188
389
|
*/
|
|
390
|
+
/**
|
|
391
|
+
* Wire an EventEmitter for registry-side audit emits.
|
|
392
|
+
*
|
|
393
|
+
* Per the apcore RFC `apcore/docs/spec/rfc-ephemeral-modules.md`
|
|
394
|
+
* "Audit-event single-emit rule", `ephemeral.*` registrations and
|
|
395
|
+
* unregistrations emit a single `apcore.registry.module_registered` /
|
|
396
|
+
* `apcore.registry.module_unregistered` event with the D-35 contextual
|
|
397
|
+
* payload. When no emitter is wired, the event is logged at INFO so it
|
|
398
|
+
* never silently disappears — useful for the v1 pilot where most
|
|
399
|
+
* callers will not have an emitter attached.
|
|
400
|
+
*
|
|
401
|
+
* Pilot scope: only `ephemeral.*` registrations trigger registry-side
|
|
402
|
+
* emits. The pre-existing bridge in
|
|
403
|
+
* `sys-modules/registration.ts` continues to emit empty-payload events
|
|
404
|
+
* for non-ephemeral modules and short-circuits for ephemerals so the
|
|
405
|
+
* single-emit rule holds.
|
|
406
|
+
*/
|
|
407
|
+
setEventEmitter(emitter: EventEmitter | null): void;
|
|
408
|
+
/**
|
|
409
|
+
* Soft-warn when an `ephemeral.*` module is registered without
|
|
410
|
+
* `requiresApproval: true`. Per the ephemeral-modules RFC pilot,
|
|
411
|
+
* agent-synthesized modules SHOULD declare `requiresApproval` so a
|
|
412
|
+
* human gates execution. The registry only warns; it does not refuse
|
|
413
|
+
* the registration.
|
|
414
|
+
*/
|
|
415
|
+
private _warnIfMissingApproval;
|
|
416
|
+
/**
|
|
417
|
+
* Build the D-35 audit payload (`caller_id` plus optional `identity`
|
|
418
|
+
* snapshot) for an ephemeral.* register/unregister. Mirrors the shape
|
|
419
|
+
* `extractAuditIdentity` produces for `system.control.*` events so
|
|
420
|
+
* subscribers can apply identical redaction rules.
|
|
421
|
+
*/
|
|
422
|
+
private _buildEphemeralAuditPayload;
|
|
423
|
+
/**
|
|
424
|
+
* Emit the canonical ephemeral.* audit event to the wired EventEmitter
|
|
425
|
+
* (or warn-log if none is wired). The bridge in
|
|
426
|
+
* `sys-modules/registration.ts` short-circuits on ephemeral.* IDs so
|
|
427
|
+
* exactly one event lands per registration / unregistration.
|
|
428
|
+
*/
|
|
429
|
+
private _emitEphemeralAudit;
|
|
189
430
|
safeUnregister(moduleId: string, timeoutMs?: number): Promise<boolean>;
|
|
190
431
|
}
|
|
191
432
|
export {};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/registry/registry.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/registry/registry.ts"],"names":[],"mappings":"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"}
|