apcore-js 0.4.0 → 0.6.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/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/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 +215 -0
- package/dist/errors.d.ts.map +1 -0
- package/dist/errors.js +246 -0
- package/dist/errors.js.map +1 -0
- package/dist/executor.d.ts +67 -0
- package/dist/executor.d.ts.map +1 -0
- package/dist/executor.js +372 -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 +220 -0
- package/dist/extensions.js.map +1 -0
- package/{src/index.ts → dist/index.d.ts} +14 -59
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +43 -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} +2 -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 +8 -2
- 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 -183
- 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/bindings.ts +0 -207
- package/src/config.ts +0 -24
- package/src/context.ts +0 -78
- package/src/decorator.ts +0 -110
- package/src/errors.ts +0 -425
- package/src/executor.ts +0 -475
- 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 -188
- 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 -360
- 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/utils/index.ts +0 -5
- package/src/utils/pattern.ts +0 -30
- 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 -131
- 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 -1008
- 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-config.test.ts +0 -76
- package/tests/test-context.test.ts +0 -151
- 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-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/utils/test-pattern.test.ts +0 -109
- package/tsconfig.build.json +0 -8
- package/tsconfig.json +0 -20
- package/vitest.config.ts +0 -18
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tracing.js","sourceRoot":"","sources":["../../src/observability/tracing.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dependency resolution via Kahn's topological sort.
|
|
3
|
+
*/
|
|
4
|
+
import type { DependencyInfo } from './types.js';
|
|
5
|
+
export declare function resolveDependencies(modules: Array<[string, DependencyInfo[]]>, knownIds?: Set<string> | null): string[];
|
|
6
|
+
//# sourceMappingURL=dependencies.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependencies.d.ts","sourceRoot":"","sources":["../../src/registry/dependencies.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAEjD,wBAAgB,mBAAmB,CACjC,OAAO,EAAE,KAAK,CAAC,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAAC,EAC1C,QAAQ,CAAC,EAAE,GAAG,CAAC,MAAM,CAAC,GAAG,IAAI,GAC5B,MAAM,EAAE,CAwDV"}
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Dependency resolution via Kahn's topological sort.
|
|
3
|
+
*/
|
|
4
|
+
import { CircularDependencyError, ModuleLoadError } from '../errors.js';
|
|
5
|
+
export function resolveDependencies(modules, knownIds) {
|
|
6
|
+
if (modules.length === 0)
|
|
7
|
+
return [];
|
|
8
|
+
const ids = knownIds ?? new Set(modules.map(([id]) => id));
|
|
9
|
+
// Build graph and in-degree
|
|
10
|
+
const graph = new Map();
|
|
11
|
+
const inDegree = new Map();
|
|
12
|
+
for (const [modId] of modules) {
|
|
13
|
+
inDegree.set(modId, 0);
|
|
14
|
+
}
|
|
15
|
+
for (const [moduleId, deps] of modules) {
|
|
16
|
+
for (const dep of deps) {
|
|
17
|
+
if (!ids.has(dep.moduleId)) {
|
|
18
|
+
if (dep.optional)
|
|
19
|
+
continue;
|
|
20
|
+
throw new ModuleLoadError(moduleId, `Required dependency '${dep.moduleId}' not found`);
|
|
21
|
+
}
|
|
22
|
+
if (!graph.has(dep.moduleId))
|
|
23
|
+
graph.set(dep.moduleId, new Set());
|
|
24
|
+
graph.get(dep.moduleId).add(moduleId);
|
|
25
|
+
inDegree.set(moduleId, (inDegree.get(moduleId) ?? 0) + 1);
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
// Initialize queue with zero-in-degree nodes (sorted for determinism)
|
|
29
|
+
const queue = [...inDegree.entries()]
|
|
30
|
+
.filter(([, deg]) => deg === 0)
|
|
31
|
+
.map(([id]) => id)
|
|
32
|
+
.sort();
|
|
33
|
+
const loadOrder = [];
|
|
34
|
+
while (queue.length > 0) {
|
|
35
|
+
const modId = queue.shift();
|
|
36
|
+
loadOrder.push(modId);
|
|
37
|
+
const dependents = graph.get(modId);
|
|
38
|
+
if (dependents) {
|
|
39
|
+
for (const dependent of [...dependents].sort()) {
|
|
40
|
+
const newDeg = (inDegree.get(dependent) ?? 1) - 1;
|
|
41
|
+
inDegree.set(dependent, newDeg);
|
|
42
|
+
if (newDeg === 0) {
|
|
43
|
+
queue.push(dependent);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
// Check for cycles
|
|
49
|
+
if (loadOrder.length < modules.length) {
|
|
50
|
+
const ordered = new Set(loadOrder);
|
|
51
|
+
const remaining = new Set(modules.filter(([id]) => !ordered.has(id)).map(([id]) => id));
|
|
52
|
+
const cyclePath = extractCycle(modules, remaining);
|
|
53
|
+
throw new CircularDependencyError(cyclePath);
|
|
54
|
+
}
|
|
55
|
+
return loadOrder;
|
|
56
|
+
}
|
|
57
|
+
function extractCycle(modules, remaining) {
|
|
58
|
+
const depMap = new Map();
|
|
59
|
+
for (const [modId, deps] of modules) {
|
|
60
|
+
if (remaining.has(modId)) {
|
|
61
|
+
depMap.set(modId, deps.filter((d) => remaining.has(d.moduleId)).map((d) => d.moduleId));
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
const start = remaining.values().next().value;
|
|
65
|
+
const visited = [start];
|
|
66
|
+
const visitedSet = new Set([start]);
|
|
67
|
+
let current = start;
|
|
68
|
+
while (true) {
|
|
69
|
+
const nexts = depMap.get(current) ?? [];
|
|
70
|
+
if (nexts.length === 0)
|
|
71
|
+
break;
|
|
72
|
+
const nxt = nexts[0];
|
|
73
|
+
if (visitedSet.has(nxt)) {
|
|
74
|
+
const idx = visited.indexOf(nxt);
|
|
75
|
+
return [...visited.slice(idx), nxt];
|
|
76
|
+
}
|
|
77
|
+
visited.push(nxt);
|
|
78
|
+
visitedSet.add(nxt);
|
|
79
|
+
current = nxt;
|
|
80
|
+
}
|
|
81
|
+
return [...remaining, remaining.values().next().value];
|
|
82
|
+
}
|
|
83
|
+
//# sourceMappingURL=dependencies.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"dependencies.js","sourceRoot":"","sources":["../../src/registry/dependencies.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entry point resolution for discovered module files.
|
|
3
|
+
*/
|
|
4
|
+
export declare function snakeToPascal(name: string): string;
|
|
5
|
+
export declare function resolveEntryPoint(filePath: string, meta?: Record<string, unknown> | null): Promise<unknown>;
|
|
6
|
+
//# sourceMappingURL=entry-point.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entry-point.d.ts","sourceRoot":"","sources":["../../src/registry/entry-point.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGlD;AAeD,wBAAsB,iBAAiB,CACrC,QAAQ,EAAE,MAAM,EAChB,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GACpC,OAAO,CAAC,OAAO,CAAC,CAmClB"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Entry point resolution for discovered module files.
|
|
3
|
+
*/
|
|
4
|
+
import { ModuleLoadError } from '../errors.js';
|
|
5
|
+
export function snakeToPascal(name) {
|
|
6
|
+
if (!name)
|
|
7
|
+
return '';
|
|
8
|
+
return name.split('_').map((part) => part.charAt(0).toUpperCase() + part.slice(1)).join('');
|
|
9
|
+
}
|
|
10
|
+
function isModuleClass(obj) {
|
|
11
|
+
if (typeof obj !== 'object' || obj === null)
|
|
12
|
+
return false;
|
|
13
|
+
const record = obj;
|
|
14
|
+
return (record['inputSchema'] != null &&
|
|
15
|
+
typeof record['inputSchema'] === 'object' &&
|
|
16
|
+
record['outputSchema'] != null &&
|
|
17
|
+
typeof record['outputSchema'] === 'object' &&
|
|
18
|
+
typeof record['description'] === 'string' &&
|
|
19
|
+
typeof record['execute'] === 'function');
|
|
20
|
+
}
|
|
21
|
+
export async function resolveEntryPoint(filePath, meta) {
|
|
22
|
+
let loaded;
|
|
23
|
+
try {
|
|
24
|
+
loaded = await import(filePath);
|
|
25
|
+
}
|
|
26
|
+
catch (e) {
|
|
27
|
+
throw new ModuleLoadError(filePath, `Failed to import module: ${e}`);
|
|
28
|
+
}
|
|
29
|
+
// Meta override mode
|
|
30
|
+
if (meta && 'entry_point' in meta) {
|
|
31
|
+
const className = meta['entry_point'].split(':').pop();
|
|
32
|
+
const cls = loaded[className];
|
|
33
|
+
if (cls == null) {
|
|
34
|
+
throw new ModuleLoadError(filePath, `Entry point class '${className}' not found`);
|
|
35
|
+
}
|
|
36
|
+
return cls;
|
|
37
|
+
}
|
|
38
|
+
// Auto-infer: look for default export first, then named exports
|
|
39
|
+
if (loaded['default'] && isModuleClass(loaded['default'])) {
|
|
40
|
+
return loaded['default'];
|
|
41
|
+
}
|
|
42
|
+
const candidates = [];
|
|
43
|
+
for (const [, value] of Object.entries(loaded)) {
|
|
44
|
+
if (isModuleClass(value)) {
|
|
45
|
+
candidates.push(value);
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
if (candidates.length === 1)
|
|
49
|
+
return candidates[0];
|
|
50
|
+
if (candidates.length === 0) {
|
|
51
|
+
throw new ModuleLoadError(filePath, 'No Module subclass found in file');
|
|
52
|
+
}
|
|
53
|
+
throw new ModuleLoadError(filePath, 'Ambiguous entry point: multiple Module subclasses found');
|
|
54
|
+
}
|
|
55
|
+
//# sourceMappingURL=entry-point.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"entry-point.js","sourceRoot":"","sources":["../../src/registry/entry-point.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAG/C,MAAM,UAAU,aAAa,CAAC,IAAY;IACxC,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,OAAO,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,WAAW,EAAE,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;AAC9F,CAAC;AAED,SAAS,aAAa,CAAC,GAAY;IACjC,IAAI,OAAO,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI;QAAE,OAAO,KAAK,CAAC;IAC1D,MAAM,MAAM,GAAG,GAA8B,CAAC;IAC9C,OAAO,CACL,MAAM,CAAC,aAAa,CAAC,IAAI,IAAI;QAC7B,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,QAAQ;QACzC,MAAM,CAAC,cAAc,CAAC,IAAI,IAAI;QAC9B,OAAO,MAAM,CAAC,cAAc,CAAC,KAAK,QAAQ;QAC1C,OAAO,MAAM,CAAC,aAAa,CAAC,KAAK,QAAQ;QACzC,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,UAAU,CACxC,CAAC;AACJ,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,iBAAiB,CACrC,QAAgB,EAChB,IAAqC;IAErC,IAAI,MAA+B,CAAC;IACpC,IAAI,CAAC;QACH,MAAM,GAAG,MAAM,MAAM,CAAC,QAAQ,CAAC,CAAC;IAClC,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,eAAe,CAAC,QAAQ,EAAE,4BAA4B,CAAC,EAAE,CAAC,CAAC;IACvE,CAAC;IAED,qBAAqB;IACrB,IAAI,IAAI,IAAI,aAAa,IAAI,IAAI,EAAE,CAAC;QAClC,MAAM,SAAS,GAAI,IAAI,CAAC,aAAa,CAAY,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAG,CAAC;QACpE,MAAM,GAAG,GAAG,MAAM,CAAC,SAAS,CAAC,CAAC;QAC9B,IAAI,GAAG,IAAI,IAAI,EAAE,CAAC;YAChB,MAAM,IAAI,eAAe,CAAC,QAAQ,EAAE,sBAAsB,SAAS,aAAa,CAAC,CAAC;QACpF,CAAC;QACD,OAAO,GAAG,CAAC;IACb,CAAC;IAED,gEAAgE;IAChE,IAAI,MAAM,CAAC,SAAS,CAAC,IAAI,aAAa,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC,EAAE,CAAC;QAC1D,OAAO,MAAM,CAAC,SAAS,CAAC,CAAC;IAC3B,CAAC;IAED,MAAM,UAAU,GAAc,EAAE,CAAC;IACjC,KAAK,MAAM,CAAC,EAAE,KAAK,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QAC/C,IAAI,aAAa,CAAC,KAAK,CAAC,EAAE,CAAC;YACzB,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC;IAClD,IAAI,UAAU,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAC5B,MAAM,IAAI,eAAe,CAAC,QAAQ,EAAE,kCAAkC,CAAC,CAAC;IAC1E,CAAC;IACD,MAAM,IAAI,eAAe,CAAC,QAAQ,EAAE,yDAAyD,CAAC,CAAC;AACjG,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
export { Registry } from './registry.js';
|
|
2
|
+
export type { Discoverer, ModuleValidator } from './registry.js';
|
|
2
3
|
export type { ModuleDescriptor, DiscoveredModule, DependencyInfo } from './types.js';
|
|
3
4
|
export { validateModule } from './validation.js';
|
|
4
5
|
export { resolveDependencies } from './dependencies.js';
|
|
@@ -6,3 +7,4 @@ export { scanExtensions, scanMultiRoot } from './scanner.js';
|
|
|
6
7
|
export { resolveEntryPoint, snakeToPascal } from './entry-point.js';
|
|
7
8
|
export { loadMetadata, parseDependencies, mergeModuleMetadata, loadIdMap } from './metadata.js';
|
|
8
9
|
export { getSchema, exportSchema, getAllSchemas, exportAllSchemas } from './schema-export.js';
|
|
10
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/registry/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,YAAY,EAAE,UAAU,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AACjE,YAAY,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AACrF,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAChG,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
export { Registry } from './registry.js';
|
|
2
|
+
export { validateModule } from './validation.js';
|
|
3
|
+
export { resolveDependencies } from './dependencies.js';
|
|
4
|
+
export { scanExtensions, scanMultiRoot } from './scanner.js';
|
|
5
|
+
export { resolveEntryPoint, snakeToPascal } from './entry-point.js';
|
|
6
|
+
export { loadMetadata, parseDependencies, mergeModuleMetadata, loadIdMap } from './metadata.js';
|
|
7
|
+
export { getSchema, exportSchema, getAllSchemas, exportAllSchemas } from './schema-export.js';
|
|
8
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/registry/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGzC,OAAO,EAAE,cAAc,EAAE,MAAM,iBAAiB,CAAC;AACjD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AACxD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACpE,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAChG,OAAO,EAAE,SAAS,EAAE,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Metadata and ID map loading for the registry system.
|
|
3
|
+
*/
|
|
4
|
+
import type { DependencyInfo } from './types.js';
|
|
5
|
+
export declare function loadMetadata(metaPath: string): Record<string, unknown>;
|
|
6
|
+
export declare function parseDependencies(depsRaw: Array<Record<string, unknown>>): DependencyInfo[];
|
|
7
|
+
export declare function mergeModuleMetadata(moduleObj: Record<string, unknown>, meta: Record<string, unknown>): Record<string, unknown>;
|
|
8
|
+
export declare function loadIdMap(idMapPath: string): Record<string, Record<string, unknown>>;
|
|
9
|
+
//# sourceMappingURL=metadata.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.d.ts","sourceRoot":"","sources":["../../src/registry/metadata.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,YAAY,CAAC;AAMjD,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkBtE;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,cAAc,EAAE,CAiB3F;AAED,wBAAgB,mBAAmB,CACjC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAClC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC5B,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAuBzB;AAED,wBAAgB,SAAS,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAoCpF"}
|
|
@@ -0,0 +1,105 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Metadata and ID map loading for the registry system.
|
|
3
|
+
*/
|
|
4
|
+
import yaml from 'js-yaml';
|
|
5
|
+
import { ConfigError, ConfigNotFoundError } from '../errors.js';
|
|
6
|
+
// Lazy-load Node.js built-in modules for browser compatibility
|
|
7
|
+
let _nodeFs = null;
|
|
8
|
+
try {
|
|
9
|
+
_nodeFs = await import('node:fs');
|
|
10
|
+
}
|
|
11
|
+
catch { /* browser environment */ }
|
|
12
|
+
export function loadMetadata(metaPath) {
|
|
13
|
+
const { existsSync, readFileSync } = _nodeFs;
|
|
14
|
+
if (!existsSync(metaPath))
|
|
15
|
+
return {};
|
|
16
|
+
const content = readFileSync(metaPath, 'utf-8');
|
|
17
|
+
let parsed;
|
|
18
|
+
try {
|
|
19
|
+
parsed = yaml.load(content);
|
|
20
|
+
}
|
|
21
|
+
catch (e) {
|
|
22
|
+
throw new ConfigError(`Invalid YAML in metadata file: ${metaPath}`);
|
|
23
|
+
}
|
|
24
|
+
if (parsed === null || parsed === undefined)
|
|
25
|
+
return {};
|
|
26
|
+
if (typeof parsed !== 'object' || Array.isArray(parsed)) {
|
|
27
|
+
throw new ConfigError(`Metadata file must be a YAML mapping: ${metaPath}`);
|
|
28
|
+
}
|
|
29
|
+
return parsed;
|
|
30
|
+
}
|
|
31
|
+
export function parseDependencies(depsRaw) {
|
|
32
|
+
if (!depsRaw || depsRaw.length === 0)
|
|
33
|
+
return [];
|
|
34
|
+
const result = [];
|
|
35
|
+
for (const dep of depsRaw) {
|
|
36
|
+
const moduleId = dep['module_id'];
|
|
37
|
+
if (!moduleId) {
|
|
38
|
+
console.warn(`[apcore:metadata] Dependency entry missing 'module_id', skipping`);
|
|
39
|
+
continue;
|
|
40
|
+
}
|
|
41
|
+
result.push({
|
|
42
|
+
moduleId,
|
|
43
|
+
version: dep['version'] ?? null,
|
|
44
|
+
optional: dep['optional'] ?? false,
|
|
45
|
+
});
|
|
46
|
+
}
|
|
47
|
+
return result;
|
|
48
|
+
}
|
|
49
|
+
export function mergeModuleMetadata(moduleObj, meta) {
|
|
50
|
+
const codeDesc = moduleObj['description'] ?? '';
|
|
51
|
+
const codeName = moduleObj['name'] ?? null;
|
|
52
|
+
const codeTags = moduleObj['tags'] ?? [];
|
|
53
|
+
const codeVersion = moduleObj['version'] ?? '1.0.0';
|
|
54
|
+
const codeAnnotations = moduleObj['annotations'] ?? null;
|
|
55
|
+
const codeExamples = moduleObj['examples'] ?? [];
|
|
56
|
+
const codeMetadata = moduleObj['metadata'] ?? {};
|
|
57
|
+
const codeDocs = moduleObj['documentation'] ?? null;
|
|
58
|
+
const yamlMetadata = meta['metadata'] ?? {};
|
|
59
|
+
const mergedMetadata = { ...codeMetadata, ...yamlMetadata };
|
|
60
|
+
return {
|
|
61
|
+
description: meta['description'] || codeDesc,
|
|
62
|
+
name: meta['name'] || codeName,
|
|
63
|
+
tags: meta['tags'] != null ? meta['tags'] : codeTags || [],
|
|
64
|
+
version: meta['version'] || codeVersion,
|
|
65
|
+
annotations: meta['annotations'] != null ? meta['annotations'] : codeAnnotations,
|
|
66
|
+
examples: meta['examples'] != null ? meta['examples'] : codeExamples || [],
|
|
67
|
+
metadata: mergedMetadata,
|
|
68
|
+
documentation: meta['documentation'] || codeDocs,
|
|
69
|
+
};
|
|
70
|
+
}
|
|
71
|
+
export function loadIdMap(idMapPath) {
|
|
72
|
+
const { existsSync, readFileSync } = _nodeFs;
|
|
73
|
+
if (!existsSync(idMapPath)) {
|
|
74
|
+
throw new ConfigNotFoundError(idMapPath);
|
|
75
|
+
}
|
|
76
|
+
const content = readFileSync(idMapPath, 'utf-8');
|
|
77
|
+
let parsed;
|
|
78
|
+
try {
|
|
79
|
+
parsed = yaml.load(content);
|
|
80
|
+
}
|
|
81
|
+
catch (e) {
|
|
82
|
+
throw new ConfigError(`Invalid YAML in ID map file: ${idMapPath}`);
|
|
83
|
+
}
|
|
84
|
+
if (typeof parsed !== 'object' || parsed === null || !('mappings' in parsed)) {
|
|
85
|
+
throw new ConfigError("ID map must contain a 'mappings' list");
|
|
86
|
+
}
|
|
87
|
+
const mappings = parsed['mappings'];
|
|
88
|
+
if (!Array.isArray(mappings)) {
|
|
89
|
+
throw new ConfigError("ID map must contain a 'mappings' list");
|
|
90
|
+
}
|
|
91
|
+
const result = {};
|
|
92
|
+
for (const entry of mappings) {
|
|
93
|
+
const filePath = entry['file'];
|
|
94
|
+
if (!filePath) {
|
|
95
|
+
console.warn(`[apcore:metadata] ID map entry missing 'file' field, skipping`);
|
|
96
|
+
continue;
|
|
97
|
+
}
|
|
98
|
+
result[filePath] = {
|
|
99
|
+
id: entry['id'] ?? filePath,
|
|
100
|
+
class: entry['class'] ?? null,
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
return result;
|
|
104
|
+
}
|
|
105
|
+
//# sourceMappingURL=metadata.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"metadata.js","sourceRoot":"","sources":["../../src/registry/metadata.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAGhE,+DAA+D;AAC/D,IAAI,OAAO,GAAoC,IAAI,CAAC;AACpD,IAAI,CAAC;IAAC,OAAO,GAAG,MAAM,MAAM,CAAC,SAAS,CAAC,CAAC;AAAC,CAAC;AAAC,MAAM,CAAC,CAAC,yBAAyB,CAAC,CAAC;AAE9E,MAAM,UAAU,YAAY,CAAC,QAAgB;IAC3C,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,OAAQ,CAAC;IAC9C,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC;QAAE,OAAO,EAAE,CAAC;IAErC,MAAM,OAAO,GAAG,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IAChD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,WAAW,CAAC,kCAAkC,QAAQ,EAAE,CAAC,CAAC;IACtE,CAAC;IAED,IAAI,MAAM,KAAK,IAAI,IAAI,MAAM,KAAK,SAAS;QAAE,OAAO,EAAE,CAAC;IACvD,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACxD,MAAM,IAAI,WAAW,CAAC,yCAAyC,QAAQ,EAAE,CAAC,CAAC;IAC7E,CAAC;IAED,OAAO,MAAiC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAAuC;IACvE,IAAI,CAAC,OAAO,IAAI,OAAO,CAAC,MAAM,KAAK,CAAC;QAAE,OAAO,EAAE,CAAC;IAEhD,MAAM,MAAM,GAAqB,EAAE,CAAC;IACpC,KAAK,MAAM,GAAG,IAAI,OAAO,EAAE,CAAC;QAC1B,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,CAAuB,CAAC;QACxD,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,IAAI,CAAC,kEAAkE,CAAC,CAAC;YACjF,SAAS;QACX,CAAC;QACD,MAAM,CAAC,IAAI,CAAC;YACV,QAAQ;YACR,OAAO,EAAG,GAAG,CAAC,SAAS,CAAY,IAAI,IAAI;YAC3C,QAAQ,EAAG,GAAG,CAAC,UAAU,CAAa,IAAI,KAAK;SAChD,CAAC,CAAC;IACL,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,SAAkC,EAClC,IAA6B;IAE7B,MAAM,QAAQ,GAAI,SAAS,CAAC,aAAa,CAAY,IAAI,EAAE,CAAC;IAC5D,MAAM,QAAQ,GAAI,SAAS,CAAC,MAAM,CAAY,IAAI,IAAI,CAAC;IACvD,MAAM,QAAQ,GAAI,SAAS,CAAC,MAAM,CAAc,IAAI,EAAE,CAAC;IACvD,MAAM,WAAW,GAAI,SAAS,CAAC,SAAS,CAAY,IAAI,OAAO,CAAC;IAChE,MAAM,eAAe,GAAG,SAAS,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC;IACzD,MAAM,YAAY,GAAI,SAAS,CAAC,UAAU,CAAe,IAAI,EAAE,CAAC;IAChE,MAAM,YAAY,GAAI,SAAS,CAAC,UAAU,CAA6B,IAAI,EAAE,CAAC;IAC9E,MAAM,QAAQ,GAAI,SAAS,CAAC,eAAe,CAAY,IAAI,IAAI,CAAC;IAEhE,MAAM,YAAY,GAAI,IAAI,CAAC,UAAU,CAA6B,IAAI,EAAE,CAAC;IACzE,MAAM,cAAc,GAAG,EAAE,GAAG,YAAY,EAAE,GAAG,YAAY,EAAE,CAAC;IAE5D,OAAO;QACL,WAAW,EAAG,IAAI,CAAC,aAAa,CAAY,IAAI,QAAQ;QACxD,IAAI,EAAG,IAAI,CAAC,MAAM,CAAY,IAAI,QAAQ;QAC1C,IAAI,EAAE,IAAI,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,QAAQ,IAAI,EAAE;QAC1D,OAAO,EAAG,IAAI,CAAC,SAAS,CAAY,IAAI,WAAW;QACnD,WAAW,EAAE,IAAI,CAAC,aAAa,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,eAAe;QAChF,QAAQ,EAAE,IAAI,CAAC,UAAU,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,EAAE;QAC1E,QAAQ,EAAE,cAAc;QACxB,aAAa,EAAG,IAAI,CAAC,eAAe,CAAY,IAAI,QAAQ;KAC7D,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,SAAS,CAAC,SAAiB;IACzC,MAAM,EAAE,UAAU,EAAE,YAAY,EAAE,GAAG,OAAQ,CAAC;IAC9C,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC3B,MAAM,IAAI,mBAAmB,CAAC,SAAS,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,OAAO,GAAG,YAAY,CAAC,SAAS,EAAE,OAAO,CAAC,CAAC;IACjD,IAAI,MAAe,CAAC;IACpB,IAAI,CAAC;QACH,MAAM,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAAC,OAAO,CAAC,EAAE,CAAC;QACX,MAAM,IAAI,WAAW,CAAC,gCAAgC,SAAS,EAAE,CAAC,CAAC;IACrE,CAAC;IAED,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,CAAC,CAAC,UAAU,IAAK,MAAkC,CAAC,EAAE,CAAC;QAC1G,MAAM,IAAI,WAAW,CAAC,uCAAuC,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,QAAQ,GAAI,MAAkC,CAAC,UAAU,CAAC,CAAC;IACjE,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC7B,MAAM,IAAI,WAAW,CAAC,uCAAuC,CAAC,CAAC;IACjE,CAAC;IAED,MAAM,MAAM,GAA4C,EAAE,CAAC;IAC3D,KAAK,MAAM,KAAK,IAAI,QAAQ,EAAE,CAAC;QAC7B,MAAM,QAAQ,GAAI,KAAiC,CAAC,MAAM,CAAW,CAAC;QACtE,IAAI,CAAC,QAAQ,EAAE,CAAC;YACd,OAAO,CAAC,IAAI,CAAC,+DAA+D,CAAC,CAAC;YAC9E,SAAS;QACX,CAAC;QACD,MAAM,CAAC,QAAQ,CAAC,GAAG;YACjB,EAAE,EAAI,KAAiC,CAAC,IAAI,CAAY,IAAI,QAAQ;YACpE,KAAK,EAAG,KAAiC,CAAC,OAAO,CAAC,IAAI,IAAI;SAC3D,CAAC;IACJ,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Central module registry for discovering, registering, and querying modules.
|
|
3
|
+
*/
|
|
4
|
+
import type { Config } from '../config.js';
|
|
5
|
+
import type { ModuleDescriptor } from './types.js';
|
|
6
|
+
/**
|
|
7
|
+
* Standard registry event names.
|
|
8
|
+
*/
|
|
9
|
+
export declare const REGISTRY_EVENTS: Readonly<{
|
|
10
|
+
readonly REGISTER: "register";
|
|
11
|
+
readonly UNREGISTER: "unregister";
|
|
12
|
+
}>;
|
|
13
|
+
/**
|
|
14
|
+
* Valid module ID pattern. Only lowercase letters, digits, underscores, and dots.
|
|
15
|
+
* Hyphens are prohibited to ensure bijective MCP/OpenAI tool name normalization.
|
|
16
|
+
*/
|
|
17
|
+
export declare const MODULE_ID_PATTERN: RegExp;
|
|
18
|
+
/**
|
|
19
|
+
* Maximum allowed length for a module ID.
|
|
20
|
+
*/
|
|
21
|
+
export declare const MAX_MODULE_ID_LENGTH = 128;
|
|
22
|
+
/**
|
|
23
|
+
* Reserved words that cannot appear as any segment of a module ID.
|
|
24
|
+
*/
|
|
25
|
+
export declare const RESERVED_WORDS: Set<string>;
|
|
26
|
+
/**
|
|
27
|
+
* Interface for custom module discovery.
|
|
28
|
+
*/
|
|
29
|
+
export interface Discoverer {
|
|
30
|
+
discover(roots: string[]): Array<{
|
|
31
|
+
moduleId: string;
|
|
32
|
+
module: unknown;
|
|
33
|
+
}> | Promise<Array<{
|
|
34
|
+
moduleId: string;
|
|
35
|
+
module: unknown;
|
|
36
|
+
}>>;
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Interface for custom module validation.
|
|
40
|
+
*/
|
|
41
|
+
export interface ModuleValidator {
|
|
42
|
+
validate(module: unknown): string[] | Promise<string[]>;
|
|
43
|
+
}
|
|
44
|
+
type EventCallback = (moduleId: string, module: unknown) => void;
|
|
45
|
+
export declare class Registry {
|
|
46
|
+
private _extensionRoots;
|
|
47
|
+
private _modules;
|
|
48
|
+
private _moduleMeta;
|
|
49
|
+
private _callbacks;
|
|
50
|
+
private _idMap;
|
|
51
|
+
private _schemaCache;
|
|
52
|
+
private _config;
|
|
53
|
+
private _watchers?;
|
|
54
|
+
private _debounceTimers?;
|
|
55
|
+
private _customDiscoverer;
|
|
56
|
+
private _customValidator;
|
|
57
|
+
private _idMapPath;
|
|
58
|
+
private _idMapLoaded;
|
|
59
|
+
constructor(options?: {
|
|
60
|
+
config?: Config | null;
|
|
61
|
+
extensionsDir?: string | null;
|
|
62
|
+
extensionsDirs?: Array<string | Record<string, unknown>> | null;
|
|
63
|
+
idMapPath?: string | null;
|
|
64
|
+
});
|
|
65
|
+
/** Lazily load the ID map from disk on first discover(). */
|
|
66
|
+
private _ensureIdMap;
|
|
67
|
+
setDiscoverer(discoverer: Discoverer): void;
|
|
68
|
+
setValidator(validator: ModuleValidator): void;
|
|
69
|
+
discover(): Promise<number>;
|
|
70
|
+
private _discoverCustom;
|
|
71
|
+
private _discoverDefault;
|
|
72
|
+
private _scanRoots;
|
|
73
|
+
private _applyIdMapOverrides;
|
|
74
|
+
private _loadAllMetadata;
|
|
75
|
+
private _resolveAllEntryPoints;
|
|
76
|
+
private _validateAll;
|
|
77
|
+
private _resolveLoadOrder;
|
|
78
|
+
private _registerInOrder;
|
|
79
|
+
register(moduleId: string, module: unknown): void;
|
|
80
|
+
unregister(moduleId: string): boolean;
|
|
81
|
+
get(moduleId: string): unknown | null;
|
|
82
|
+
has(moduleId: string): boolean;
|
|
83
|
+
list(options?: {
|
|
84
|
+
tags?: string[];
|
|
85
|
+
prefix?: string;
|
|
86
|
+
}): string[];
|
|
87
|
+
iter(): IterableIterator<[string, unknown]>;
|
|
88
|
+
get count(): number;
|
|
89
|
+
get moduleIds(): string[];
|
|
90
|
+
getDefinition(moduleId: string): ModuleDescriptor | null;
|
|
91
|
+
describe(moduleId: string): string;
|
|
92
|
+
on(event: string, callback: EventCallback): void;
|
|
93
|
+
private _triggerEvent;
|
|
94
|
+
watch(): Promise<void>;
|
|
95
|
+
unwatch(): void;
|
|
96
|
+
private _handleFileChange;
|
|
97
|
+
private _handleFileDeletion;
|
|
98
|
+
private _pathToModuleId;
|
|
99
|
+
clearCache(): void;
|
|
100
|
+
}
|
|
101
|
+
export {};
|
|
102
|
+
//# sourceMappingURL=registry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../src/registry/registry.ts"],"names":[],"mappings":"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"}
|