apcore-js 0.19.0 → 0.20.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 (186) hide show
  1. package/README.md +110 -9
  2. package/dist/acl.d.ts +18 -0
  3. package/dist/acl.d.ts.map +1 -1
  4. package/dist/acl.js +54 -17
  5. package/dist/acl.js.map +1 -1
  6. package/dist/async-task.d.ts +70 -16
  7. package/dist/async-task.d.ts.map +1 -1
  8. package/dist/async-task.js +212 -72
  9. package/dist/async-task.js.map +1 -1
  10. package/dist/builtin-steps.d.ts +16 -5
  11. package/dist/builtin-steps.d.ts.map +1 -1
  12. package/dist/builtin-steps.js +45 -28
  13. package/dist/builtin-steps.js.map +1 -1
  14. package/dist/config.d.ts +38 -0
  15. package/dist/config.d.ts.map +1 -1
  16. package/dist/config.js +163 -33
  17. package/dist/config.js.map +1 -1
  18. package/dist/context.d.ts.map +1 -1
  19. package/dist/context.js +12 -1
  20. package/dist/context.js.map +1 -1
  21. package/dist/errors.d.ts +32 -10
  22. package/dist/errors.d.ts.map +1 -1
  23. package/dist/errors.js +55 -16
  24. package/dist/errors.js.map +1 -1
  25. package/dist/events/circuit-breaker.d.ts +45 -0
  26. package/dist/events/circuit-breaker.d.ts.map +1 -0
  27. package/dist/events/circuit-breaker.js +115 -0
  28. package/dist/events/circuit-breaker.js.map +1 -0
  29. package/dist/events/emitter.d.ts +22 -1
  30. package/dist/events/emitter.d.ts.map +1 -1
  31. package/dist/events/emitter.js +66 -2
  32. package/dist/events/emitter.js.map +1 -1
  33. package/dist/events/index.d.ts +4 -2
  34. package/dist/events/index.d.ts.map +1 -1
  35. package/dist/events/index.js +3 -2
  36. package/dist/events/index.js.map +1 -1
  37. package/dist/events/subscribers.d.ts +33 -1
  38. package/dist/events/subscribers.d.ts.map +1 -1
  39. package/dist/events/subscribers.js +124 -1
  40. package/dist/events/subscribers.js.map +1 -1
  41. package/dist/executor.d.ts +10 -2
  42. package/dist/executor.d.ts.map +1 -1
  43. package/dist/executor.js +134 -51
  44. package/dist/executor.js.map +1 -1
  45. package/dist/generated/version.d.ts +1 -1
  46. package/dist/generated/version.js +1 -1
  47. package/dist/index.d.ts +35 -25
  48. package/dist/index.d.ts.map +1 -1
  49. package/dist/index.js +23 -17
  50. package/dist/index.js.map +1 -1
  51. package/dist/middleware/base.d.ts +25 -3
  52. package/dist/middleware/base.d.ts.map +1 -1
  53. package/dist/middleware/base.js +24 -0
  54. package/dist/middleware/base.js.map +1 -1
  55. package/dist/middleware/circuit-breaker.d.ts +54 -0
  56. package/dist/middleware/circuit-breaker.d.ts.map +1 -0
  57. package/dist/middleware/circuit-breaker.js +168 -0
  58. package/dist/middleware/circuit-breaker.js.map +1 -0
  59. package/dist/middleware/context-namespace.d.ts +30 -0
  60. package/dist/middleware/context-namespace.d.ts.map +1 -0
  61. package/dist/middleware/context-namespace.js +38 -0
  62. package/dist/middleware/context-namespace.js.map +1 -0
  63. package/dist/middleware/index.d.ts +7 -1
  64. package/dist/middleware/index.d.ts.map +1 -1
  65. package/dist/middleware/index.js +4 -1
  66. package/dist/middleware/index.js.map +1 -1
  67. package/dist/middleware/manager.d.ts +11 -4
  68. package/dist/middleware/manager.d.ts.map +1 -1
  69. package/dist/middleware/manager.js +25 -9
  70. package/dist/middleware/manager.js.map +1 -1
  71. package/dist/middleware/platform-notify.d.ts +8 -4
  72. package/dist/middleware/platform-notify.d.ts.map +1 -1
  73. package/dist/middleware/platform-notify.js +11 -7
  74. package/dist/middleware/platform-notify.js.map +1 -1
  75. package/dist/middleware/tracing.d.ts +50 -0
  76. package/dist/middleware/tracing.d.ts.map +1 -0
  77. package/dist/middleware/tracing.js +89 -0
  78. package/dist/middleware/tracing.js.map +1 -0
  79. package/dist/observability/batch-span-processor.d.ts +48 -0
  80. package/dist/observability/batch-span-processor.d.ts.map +1 -0
  81. package/dist/observability/batch-span-processor.js +89 -0
  82. package/dist/observability/batch-span-processor.js.map +1 -0
  83. package/dist/observability/context-logger.d.ts +54 -1
  84. package/dist/observability/context-logger.d.ts.map +1 -1
  85. package/dist/observability/context-logger.js +270 -6
  86. package/dist/observability/context-logger.js.map +1 -1
  87. package/dist/observability/error-history.d.ts +36 -7
  88. package/dist/observability/error-history.d.ts.map +1 -1
  89. package/dist/observability/error-history.js +169 -50
  90. package/dist/observability/error-history.js.map +1 -1
  91. package/dist/observability/index.d.ts +16 -5
  92. package/dist/observability/index.d.ts.map +1 -1
  93. package/dist/observability/index.js +8 -3
  94. package/dist/observability/index.js.map +1 -1
  95. package/dist/observability/metrics.d.ts +14 -1
  96. package/dist/observability/metrics.d.ts.map +1 -1
  97. package/dist/observability/metrics.js +23 -2
  98. package/dist/observability/metrics.js.map +1 -1
  99. package/dist/observability/prometheus-exporter.d.ts +37 -0
  100. package/dist/observability/prometheus-exporter.d.ts.map +1 -0
  101. package/dist/observability/prometheus-exporter.js +135 -0
  102. package/dist/observability/prometheus-exporter.js.map +1 -0
  103. package/dist/observability/storage.d.ts +43 -0
  104. package/dist/observability/storage.d.ts.map +1 -0
  105. package/dist/observability/storage.js +58 -0
  106. package/dist/observability/storage.js.map +1 -0
  107. package/dist/observability/store.d.ts +29 -0
  108. package/dist/observability/store.d.ts.map +1 -0
  109. package/dist/observability/store.js +36 -0
  110. package/dist/observability/store.js.map +1 -0
  111. package/dist/observability/usage-exporter.d.ts +58 -0
  112. package/dist/observability/usage-exporter.d.ts.map +1 -0
  113. package/dist/observability/usage-exporter.js +86 -0
  114. package/dist/observability/usage-exporter.js.map +1 -0
  115. package/dist/observability/usage.d.ts +18 -1
  116. package/dist/observability/usage.d.ts.map +1 -1
  117. package/dist/observability/usage.js +25 -3
  118. package/dist/observability/usage.js.map +1 -1
  119. package/dist/pipeline-config.d.ts +11 -0
  120. package/dist/pipeline-config.d.ts.map +1 -1
  121. package/dist/pipeline-config.js +36 -10
  122. package/dist/pipeline-config.js.map +1 -1
  123. package/dist/pipeline.d.ts +123 -2
  124. package/dist/pipeline.d.ts.map +1 -1
  125. package/dist/pipeline.js +249 -50
  126. package/dist/pipeline.js.map +1 -1
  127. package/dist/registry/index.d.ts +2 -0
  128. package/dist/registry/index.d.ts.map +1 -1
  129. package/dist/registry/index.js +1 -0
  130. package/dist/registry/index.js.map +1 -1
  131. package/dist/registry/multi-class.d.ts +57 -0
  132. package/dist/registry/multi-class.d.ts.map +1 -0
  133. package/dist/registry/multi-class.js +120 -0
  134. package/dist/registry/multi-class.js.map +1 -0
  135. package/dist/registry/registry.d.ts +91 -3
  136. package/dist/registry/registry.d.ts.map +1 -1
  137. package/dist/registry/registry.js +181 -11
  138. package/dist/registry/registry.js.map +1 -1
  139. package/dist/schema/constants.d.ts +9 -0
  140. package/dist/schema/constants.d.ts.map +1 -0
  141. package/dist/schema/constants.js +9 -0
  142. package/dist/schema/constants.js.map +1 -0
  143. package/dist/schema/index.d.ts +1 -1
  144. package/dist/schema/index.d.ts.map +1 -1
  145. package/dist/schema/index.js +1 -1
  146. package/dist/schema/index.js.map +1 -1
  147. package/dist/schema/loader.d.ts +27 -3
  148. package/dist/schema/loader.d.ts.map +1 -1
  149. package/dist/schema/loader.js +137 -32
  150. package/dist/schema/loader.js.map +1 -1
  151. package/dist/schema/types.d.ts +4 -0
  152. package/dist/schema/types.d.ts.map +1 -1
  153. package/dist/schema/types.js.map +1 -1
  154. package/dist/schema/validator.d.ts +9 -0
  155. package/dist/schema/validator.d.ts.map +1 -1
  156. package/dist/schema/validator.js +153 -4
  157. package/dist/schema/validator.js.map +1 -1
  158. package/dist/sys-modules/audit.d.ts +50 -0
  159. package/dist/sys-modules/audit.d.ts.map +1 -0
  160. package/dist/sys-modules/audit.js +89 -0
  161. package/dist/sys-modules/audit.js.map +1 -0
  162. package/dist/sys-modules/control.d.ts +32 -4
  163. package/dist/sys-modules/control.d.ts.map +1 -1
  164. package/dist/sys-modules/control.js +196 -25
  165. package/dist/sys-modules/control.js.map +1 -1
  166. package/dist/sys-modules/index.d.ts +7 -2
  167. package/dist/sys-modules/index.d.ts.map +1 -1
  168. package/dist/sys-modules/index.js +3 -1
  169. package/dist/sys-modules/index.js.map +1 -1
  170. package/dist/sys-modules/overrides.d.ts +58 -0
  171. package/dist/sys-modules/overrides.d.ts.map +1 -0
  172. package/dist/sys-modules/overrides.js +106 -0
  173. package/dist/sys-modules/overrides.js.map +1 -0
  174. package/dist/sys-modules/registration.d.ts +17 -12
  175. package/dist/sys-modules/registration.d.ts.map +1 -1
  176. package/dist/sys-modules/registration.js +115 -23
  177. package/dist/sys-modules/registration.js.map +1 -1
  178. package/dist/sys-modules/toggle.d.ts +7 -2
  179. package/dist/sys-modules/toggle.d.ts.map +1 -1
  180. package/dist/sys-modules/toggle.js +61 -5
  181. package/dist/sys-modules/toggle.js.map +1 -1
  182. package/dist/trace-context.d.ts +47 -9
  183. package/dist/trace-context.d.ts.map +1 -1
  184. package/dist/trace-context.js +139 -16
  185. package/dist/trace-context.js.map +1 -1
  186. package/package.json +1 -1
@@ -1,8 +1,12 @@
1
1
  /**
2
2
  * System control modules -- runtime config update and hot-reload.
3
3
  */
4
- import { ConfigError, InvalidInputError, ModuleNotFoundError, ReloadFailedError } from '../errors.js';
4
+ import * as fs from 'node:fs';
5
+ import * as yaml from 'js-yaml';
6
+ import { ConfigError, InvalidInputError, ModuleNotFoundError, ReloadFailedError, ModuleReloadConflictError } from '../errors.js';
5
7
  import { createEvent } from '../events/emitter.js';
8
+ import { buildAuditEntry, extractAuditIdentity } from './audit.js';
9
+ import { matchPattern } from '../utils/pattern.js';
6
10
  const RESTRICTED_KEYS = new Set(['sys_modules.enabled']);
7
11
  const SENSITIVE_SEGMENTS = ['token', 'secret', 'key', 'password', 'auth', 'credential'];
8
12
  /** Match exact segments or underscore-compound segments (api_key, auth_token). */
@@ -33,12 +37,19 @@ export class UpdateConfigModule {
33
37
  };
34
38
  _config;
35
39
  _emitter;
36
- constructor(config, eventEmitter) {
40
+ _auditStore;
41
+ _overridesPath;
42
+ _overridesStore;
43
+ constructor(config, eventEmitter, options) {
37
44
  this._config = config;
38
45
  this._emitter = eventEmitter;
46
+ this._auditStore = options?.auditStore ?? null;
47
+ this._overridesPath = options?.overridesPath ?? null;
48
+ this._overridesStore = options?.overridesStore ?? null;
39
49
  }
40
- execute(inputs, _context) {
50
+ execute(inputs, context) {
41
51
  const { key, value, reason } = this._validateInputs(inputs);
52
+ const ctx = context;
42
53
  if (RESTRICTED_KEYS.has(key)) {
43
54
  throw new ConfigError(`Configuration key '${key}' cannot be changed at runtime`);
44
55
  }
@@ -47,12 +58,84 @@ export class UpdateConfigModule {
47
58
  const isSensitive = isSensitiveKey(key);
48
59
  const safeOld = isSensitive ? '***' : oldValue;
49
60
  const safeNew = isSensitive ? '***' : value;
50
- this._emitter.emit(createEvent('apcore.config.updated', 'system.control.update_config', 'info', {
51
- key, old_value: safeOld, new_value: safeNew,
52
- }));
61
+ if (this._overridesPath !== null) {
62
+ this._persistOverride(key, value);
63
+ }
64
+ if (this._overridesStore !== null) {
65
+ this._persistOverrideToStore(key, value);
66
+ }
67
+ const entry = buildAuditEntry('update_config', 'system.control.update_config', ctx, { before: safeOld, after: safeNew });
68
+ if (this._auditStore !== null) {
69
+ this._auditStore.append(entry);
70
+ }
71
+ else {
72
+ console.warn(`[apcore:audit] update_config key=${key} actor=${entry.actorId} reason=${reason}`);
73
+ }
74
+ // Issue #45.2: Audit events carry requester identity so subscribers can
75
+ // attribute the change. caller_id defaults to "@external" when absent.
76
+ // When identity is null the field is OMITTED from the payload (not
77
+ // emitted as null).
78
+ const { caller_id, identity } = extractAuditIdentity(ctx);
79
+ const updatedPayload = {
80
+ key, old_value: safeOld, new_value: safeNew, caller_id,
81
+ };
82
+ if (identity !== null)
83
+ updatedPayload['identity'] = identity;
84
+ this._emitter.emit(createEvent('apcore.config.updated', 'system.control.update_config', 'info', updatedPayload));
53
85
  console.warn(`[apcore:control] Config updated: key=${key} old_value=${safeOld} new_value=${safeNew} reason=${reason}`);
54
86
  return { success: true, key, old_value: safeOld, new_value: safeNew };
55
87
  }
88
+ _persistOverrideToStore(key, value) {
89
+ try {
90
+ const store = this._overridesStore;
91
+ const loaded = store.load();
92
+ if (loaded !== null && typeof loaded.then === 'function') {
93
+ // Async store — fire-and-forget the read-modify-write so execute() stays sync.
94
+ loaded
95
+ .then((existing) => {
96
+ existing[key] = value;
97
+ return store.save(existing);
98
+ })
99
+ .catch((err) => {
100
+ console.warn(`[apcore:control] Failed to persist override for key '${key}' via OverridesStore:`, err);
101
+ });
102
+ return;
103
+ }
104
+ const existing = loaded;
105
+ existing[key] = value;
106
+ const saveResult = store.save(existing);
107
+ if (saveResult !== undefined && typeof saveResult.then === 'function') {
108
+ saveResult.catch((err) => {
109
+ console.warn(`[apcore:control] Failed to persist override for key '${key}' via OverridesStore:`, err);
110
+ });
111
+ }
112
+ }
113
+ catch (err) {
114
+ console.warn(`[apcore:control] Failed to persist override for key '${key}' via OverridesStore:`, err);
115
+ }
116
+ }
117
+ _persistOverride(key, value) {
118
+ let overrides = {};
119
+ if (fs.existsSync(this._overridesPath)) {
120
+ try {
121
+ const content = fs.readFileSync(this._overridesPath, 'utf-8');
122
+ const parsed = yaml.load(content);
123
+ if (typeof parsed === 'object' && parsed !== null) {
124
+ overrides = parsed;
125
+ }
126
+ }
127
+ catch {
128
+ // Start fresh if parse fails
129
+ }
130
+ }
131
+ overrides[key] = value;
132
+ try {
133
+ fs.writeFileSync(this._overridesPath, yaml.dump(overrides), 'utf-8');
134
+ }
135
+ catch (err) {
136
+ console.warn(`[apcore:control] Failed to persist override for key '${key}':`, err);
137
+ }
138
+ }
56
139
  _validateInputs(inputs) {
57
140
  const key = inputs['key'];
58
141
  if (typeof key !== 'string' || !key) {
@@ -73,37 +156,48 @@ export class ReloadModule {
73
156
  inputSchema = {
74
157
  type: 'object',
75
158
  properties: {
76
- module_id: { type: 'string', description: 'ID of the module to reload' },
159
+ module_id: { type: 'string', description: 'ID of the module to reload (mutually exclusive with path_filter)' },
160
+ path_filter: { type: 'string', description: 'Glob pattern to bulk-reload matching modules (mutually exclusive with module_id)' },
161
+ reload_dependents: { type: 'boolean', description: 'When true, also reload modules that depend on matched modules' },
77
162
  reason: { type: 'string', description: 'Audit reason for the reload' },
78
163
  },
79
- required: ['module_id', 'reason'],
164
+ required: ['reason'],
80
165
  };
81
166
  outputSchema = {
82
167
  type: 'object',
83
168
  properties: {
84
169
  success: { type: 'boolean', description: 'Whether the reload succeeded' },
85
- module_id: { type: 'string', description: 'ID of the reloaded module' },
170
+ module_id: { type: 'string', description: 'ID of the reloaded module (single-module mode)' },
171
+ reloaded_modules: { type: 'array', description: 'IDs of reloaded modules (path_filter mode)' },
86
172
  previous_version: { type: 'string', description: 'Version before reload' },
87
173
  new_version: { type: 'string', description: 'Version after reload' },
88
174
  reload_duration_ms: { type: 'number', description: 'Reload duration in milliseconds' },
89
175
  },
90
- required: ['success', 'module_id', 'previous_version', 'new_version', 'reload_duration_ms'],
176
+ required: ['success'],
91
177
  };
92
178
  _registry;
93
179
  _emitter;
94
- constructor(registry, eventEmitter) {
180
+ _auditStore;
181
+ constructor(registry, eventEmitter, auditStore) {
95
182
  this._registry = registry;
96
183
  this._emitter = eventEmitter;
184
+ this._auditStore = auditStore ?? null;
97
185
  }
98
- async execute(inputs, _context) {
99
- const { moduleId, reason } = this._validateInputs(inputs);
186
+ async execute(inputs, context) {
187
+ const { moduleId, pathFilter, reason } = this._validateInputs(inputs);
188
+ const ctx = context;
189
+ if (pathFilter !== undefined) {
190
+ return this._reloadWithPathFilter(pathFilter, reason, ctx);
191
+ }
192
+ return this._reloadSingleModule(moduleId, reason, ctx);
193
+ }
194
+ async _reloadSingleModule(moduleId, reason, ctx) {
100
195
  const existing = this._registry.get(moduleId);
101
196
  if (existing === null) {
102
197
  throw new ModuleNotFoundError(moduleId);
103
198
  }
104
199
  const existingObj = existing;
105
200
  const previousVersion = String(existingObj['version'] ?? '1.0.0');
106
- // Capture suspend state from old module (if onSuspend is defined)
107
201
  let suspendedState = null;
108
202
  if (typeof existingObj['onSuspend'] === 'function') {
109
203
  try {
@@ -114,25 +208,19 @@ export class ReloadModule {
114
208
  }
115
209
  }
116
210
  const start = performance.now();
117
- // Use safeUnregister so in-flight executions finish (or time out) before
118
- // the module disappears. Bare unregister() lets a caller land between
119
- // unregister and re-discovery and see ModuleNotFoundError.
120
211
  await this._registry.safeUnregister(moduleId);
121
212
  try {
122
213
  await this._registry.discover();
123
214
  }
124
215
  catch (err) {
125
- // Restore original module on discover failure
126
216
  this._registry.registerInternal(moduleId, existing);
127
217
  throw new ReloadFailedError(moduleId, String(err));
128
218
  }
129
219
  const reloaded = this._registry.get(moduleId);
130
220
  if (reloaded === null) {
131
- // Restore original module if not found after re-discovery
132
221
  this._registry.registerInternal(moduleId, existing);
133
222
  throw new ReloadFailedError(moduleId, `Module '${moduleId}' was not found after re-discovery`);
134
223
  }
135
- // Resume state on new module (if state was captured and onResume is defined)
136
224
  const reloadedObj = reloaded;
137
225
  if (suspendedState !== null && typeof reloadedObj['onResume'] === 'function') {
138
226
  try {
@@ -144,10 +232,24 @@ export class ReloadModule {
144
232
  }
145
233
  const elapsedMs = performance.now() - start;
146
234
  const newVersion = String(reloadedObj['version'] ?? '1.0.0');
147
- this._emitter.emit(createEvent('apcore.module.reloaded', moduleId, 'info', {
235
+ const entry = buildAuditEntry('reload_module', moduleId, ctx, { before: previousVersion, after: newVersion });
236
+ if (this._auditStore !== null) {
237
+ this._auditStore.append(entry);
238
+ }
239
+ else {
240
+ console.warn(`[apcore:audit] reload_module ${moduleId} actor=${entry.actorId} reason=${reason}`);
241
+ }
242
+ // Issue #45.2: include requester identity in reload audit event payload.
243
+ const { caller_id, identity } = extractAuditIdentity(ctx);
244
+ const reloadedPayload = {
245
+ module_id: moduleId,
148
246
  previous_version: previousVersion,
149
247
  new_version: newVersion,
150
- }));
248
+ caller_id,
249
+ };
250
+ if (identity !== null)
251
+ reloadedPayload['identity'] = identity;
252
+ this._emitter.emit(createEvent('apcore.module.reloaded', moduleId, 'info', reloadedPayload));
151
253
  console.warn(`[apcore:control] Module reloaded: module_id=${moduleId} previous_version=${previousVersion} new_version=${newVersion} reason=${reason}`);
152
254
  return {
153
255
  success: true,
@@ -157,16 +259,85 @@ export class ReloadModule {
157
259
  reload_duration_ms: elapsedMs,
158
260
  };
159
261
  }
262
+ async _reloadWithPathFilter(pathFilter, reason, ctx) {
263
+ const allIds = this._registry.list();
264
+ const matchingIds = allIds.filter((id) => matchPattern(pathFilter, id)).sort();
265
+ // Capture existing modules and versions before unregistering
266
+ const existingModules = new Map();
267
+ const previousVersions = new Map();
268
+ for (const id of matchingIds) {
269
+ const mod = this._registry.get(id);
270
+ if (mod !== null) {
271
+ existingModules.set(id, mod);
272
+ previousVersions.set(id, String(mod['version'] ?? '1.0.0'));
273
+ }
274
+ }
275
+ // Unregister all matching modules
276
+ for (const id of matchingIds) {
277
+ await this._registry.safeUnregister(id);
278
+ }
279
+ // Re-discover
280
+ try {
281
+ await this._registry.discover();
282
+ }
283
+ catch (err) {
284
+ for (const [id, mod] of existingModules) {
285
+ this._registry.registerInternal(id, mod);
286
+ }
287
+ throw new ReloadFailedError(pathFilter, String(err));
288
+ }
289
+ // Collect successfully reloaded modules
290
+ const reloadedModules = [];
291
+ for (const id of matchingIds) {
292
+ const reloaded = this._registry.get(id);
293
+ if (reloaded === null) {
294
+ const orig = existingModules.get(id);
295
+ if (orig !== undefined) {
296
+ this._registry.registerInternal(id, orig);
297
+ }
298
+ }
299
+ else {
300
+ reloadedModules.push(id);
301
+ const entry = buildAuditEntry('reload_module', id, ctx, {
302
+ before: previousVersions.get(id) ?? '1.0.0',
303
+ after: String(reloaded['version'] ?? '1.0.0'),
304
+ });
305
+ if (this._auditStore !== null) {
306
+ this._auditStore.append(entry);
307
+ }
308
+ }
309
+ }
310
+ console.warn(`[apcore:control] Bulk reload: path_filter=${pathFilter} reloaded=${reloadedModules.length} reason=${reason}`);
311
+ return { success: true, reloaded_modules: reloadedModules };
312
+ }
160
313
  _validateInputs(inputs) {
161
314
  const moduleId = inputs['module_id'];
162
- if (typeof moduleId !== 'string' || !moduleId) {
163
- throw new InvalidInputError("'module_id' is required and must be a non-empty string");
315
+ const pathFilter = inputs['path_filter'];
316
+ if (moduleId !== undefined && pathFilter !== undefined) {
317
+ throw new ModuleReloadConflictError();
318
+ }
319
+ if (moduleId === undefined && pathFilter === undefined) {
320
+ throw new InvalidInputError("either 'module_id' or 'path_filter' is required");
321
+ }
322
+ if (moduleId !== undefined) {
323
+ if (typeof moduleId !== 'string' || !moduleId) {
324
+ throw new InvalidInputError("'module_id' is required and must be a non-empty string");
325
+ }
326
+ }
327
+ if (pathFilter !== undefined) {
328
+ if (typeof pathFilter !== 'string' || !pathFilter) {
329
+ throw new InvalidInputError("'path_filter' must be a non-empty string");
330
+ }
164
331
  }
165
332
  const reason = inputs['reason'];
166
333
  if (typeof reason !== 'string' || !reason) {
167
334
  throw new InvalidInputError("'reason' is required and must be a non-empty string");
168
335
  }
169
- return { moduleId, reason };
336
+ return {
337
+ moduleId: moduleId,
338
+ pathFilter: pathFilter,
339
+ reason,
340
+ };
170
341
  }
171
342
  }
172
343
  //# sourceMappingURL=control.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"control.js","sourceRoot":"","sources":["../../src/sys-modules/control.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"control.js","sourceRoot":"","sources":["../../src/sys-modules/control.ts"],"names":[],"mappings":"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"}
@@ -2,7 +2,12 @@ export { ToggleState, ToggleFeatureModule, DEFAULT_TOGGLE_STATE, isModuleDisable
2
2
  export { HealthSummaryModule, HealthModule, classifyHealthStatus } from './health.js';
3
3
  export { ManifestModule, ManifestFullModule } from './manifest.js';
4
4
  export { UpdateConfigModule, ReloadModule } from './control.js';
5
+ export type { UpdateConfigOptions } from './control.js';
5
6
  export { UsageSummaryModule, UsageModule } from './usage.js';
6
- export { registerSysModules, registerSubscriberType, unregisterSubscriberType, resetSubscriberRegistry } from './registration.js';
7
- export type { SysModulesContext } from './registration.js';
7
+ export { registerSysModules, registerSubscriberType, unregisterSubscriberType, resetSubscriberRegistry, createSubscriberFromConfig } from './registration.js';
8
+ export type { SysModulesContext, RegisterSysModulesOptions } from './registration.js';
9
+ export { InMemoryAuditStore, buildAuditEntry, extractAuditIdentity } from './audit.js';
10
+ export type { AuditEntry, AuditStore, AuditFilter, AuditAction } from './audit.js';
11
+ export { FileOverridesStore, InMemoryOverridesStore } from './overrides.js';
12
+ export type { OverridesStore } from './overrides.js';
8
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sys-modules/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC5H,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC;AAClI,YAAY,EAAE,iBAAiB,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/sys-modules/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC5H,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAChE,YAAY,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AACxD,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAC9J,YAAY,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACtF,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AACvF,YAAY,EAAE,UAAU,EAAE,UAAU,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACnF,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AAC5E,YAAY,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC"}
@@ -3,5 +3,7 @@ export { HealthSummaryModule, HealthModule, classifyHealthStatus } from './healt
3
3
  export { ManifestModule, ManifestFullModule } from './manifest.js';
4
4
  export { UpdateConfigModule, ReloadModule } from './control.js';
5
5
  export { UsageSummaryModule, UsageModule } from './usage.js';
6
- export { registerSysModules, registerSubscriberType, unregisterSubscriberType, resetSubscriberRegistry } from './registration.js';
6
+ export { registerSysModules, registerSubscriberType, unregisterSubscriberType, resetSubscriberRegistry, createSubscriberFromConfig } from './registration.js';
7
+ export { InMemoryAuditStore, buildAuditEntry, extractAuditIdentity } from './audit.js';
8
+ export { FileOverridesStore, InMemoryOverridesStore } from './overrides.js';
7
9
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sys-modules/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC5H,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAChE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/sys-modules/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,mBAAmB,EAAE,MAAM,aAAa,CAAC;AAC5H,OAAO,EAAE,mBAAmB,EAAE,YAAY,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AACtF,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAEhE,OAAO,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,wBAAwB,EAAE,uBAAuB,EAAE,0BAA0B,EAAE,MAAM,mBAAmB,CAAC;AAE9J,OAAO,EAAE,kBAAkB,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAEvF,OAAO,EAAE,kBAAkB,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC"}
@@ -0,0 +1,58 @@
1
+ /**
2
+ * Persistent runtime override store (Issue #45.1).
3
+ *
4
+ * Mirrors the Python `_load_overrides` / `_write_overrides` flow and the
5
+ * Rust `load_overrides` / `write_override` helpers, but exposed as a
6
+ * pluggable interface so embeddings (tests, multi-tenant deployments,
7
+ * remote config services) can swap the storage layer without forking
8
+ * `registerSysModules` or `UpdateConfigModule`.
9
+ *
10
+ * Each override is a flat `key → value` mapping where `key` is the
11
+ * dot-path config key (e.g. `"app.timeout"` or `"toggle.module.id"`).
12
+ */
13
+ /**
14
+ * Pluggable persistence for runtime config & toggle overrides.
15
+ *
16
+ * Implementations must be safe to call from multiple call sites in sequence;
17
+ * the `FileOverridesStore` reference implementation uses an atomic
18
+ * tempfile + rename to prevent partial-write corruption.
19
+ */
20
+ export interface OverridesStore {
21
+ /**
22
+ * Load all overrides from the backing store. Returns `{}` if empty/missing.
23
+ *
24
+ * Implementations may return synchronously or asynchronously — async stores
25
+ * (e.g. remote config services) cannot be applied at startup by the
26
+ * synchronous `registerSysModules`, so prefer sync stores there or
27
+ * pre-load and pass results into `Config` directly.
28
+ */
29
+ load(): Promise<Record<string, unknown>> | Record<string, unknown>;
30
+ /** Replace the entire override set with the given mapping. */
31
+ save(overrides: Record<string, unknown>): Promise<void> | void;
32
+ }
33
+ /**
34
+ * In-memory store, intended primarily for tests and embeddings that do not
35
+ * require disk persistence.
36
+ */
37
+ export declare class InMemoryOverridesStore implements OverridesStore {
38
+ private _data;
39
+ constructor(initial?: Record<string, unknown>);
40
+ load(): Record<string, unknown>;
41
+ save(overrides: Record<string, unknown>): void;
42
+ }
43
+ /**
44
+ * YAML-file-backed override store with atomic write semantics.
45
+ *
46
+ * Each `save()` writes to a sibling tempfile and `fs.renameSync`-es it into
47
+ * place so an interrupted process cannot leave a half-written overrides file
48
+ * behind (matches Python's `os.replace` and Rust's `std::fs::rename` flow).
49
+ */
50
+ export declare class FileOverridesStore implements OverridesStore {
51
+ private readonly _path;
52
+ constructor(filePath: string);
53
+ /** Path of the underlying YAML file. */
54
+ get path(): string;
55
+ load(): Record<string, unknown>;
56
+ save(overrides: Record<string, unknown>): void;
57
+ }
58
+ //# sourceMappingURL=overrides.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overrides.d.ts","sourceRoot":"","sources":["../../src/sys-modules/overrides.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAMH;;;;;;GAMG;AACH,MAAM,WAAW,cAAc;IAC7B;;;;;;;OAOG;IACH,IAAI,IAAI,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAEnE,8DAA8D;IAC9D,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;CAChE;AAED;;;GAGG;AACH,qBAAa,sBAAuB,YAAW,cAAc;IAC3D,OAAO,CAAC,KAAK,CAA0B;gBAE3B,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAI7C,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAI/B,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CAG/C;AAED;;;;;;GAMG;AACH,qBAAa,kBAAmB,YAAW,cAAc;IACvD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAS;gBAEnB,QAAQ,EAAE,MAAM;IAI5B,wCAAwC;IACxC,IAAI,IAAI,IAAI,MAAM,CAEjB;IAED,IAAI,IAAI,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC;IAuB/B,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI;CA8B/C"}
@@ -0,0 +1,106 @@
1
+ /**
2
+ * Persistent runtime override store (Issue #45.1).
3
+ *
4
+ * Mirrors the Python `_load_overrides` / `_write_overrides` flow and the
5
+ * Rust `load_overrides` / `write_override` helpers, but exposed as a
6
+ * pluggable interface so embeddings (tests, multi-tenant deployments,
7
+ * remote config services) can swap the storage layer without forking
8
+ * `registerSysModules` or `UpdateConfigModule`.
9
+ *
10
+ * Each override is a flat `key → value` mapping where `key` is the
11
+ * dot-path config key (e.g. `"app.timeout"` or `"toggle.module.id"`).
12
+ */
13
+ import * as fs from 'node:fs';
14
+ import * as path from 'node:path';
15
+ import * as yaml from 'js-yaml';
16
+ /**
17
+ * In-memory store, intended primarily for tests and embeddings that do not
18
+ * require disk persistence.
19
+ */
20
+ export class InMemoryOverridesStore {
21
+ _data;
22
+ constructor(initial) {
23
+ this._data = initial !== undefined ? { ...initial } : {};
24
+ }
25
+ load() {
26
+ return { ...this._data };
27
+ }
28
+ save(overrides) {
29
+ this._data = { ...overrides };
30
+ }
31
+ }
32
+ /**
33
+ * YAML-file-backed override store with atomic write semantics.
34
+ *
35
+ * Each `save()` writes to a sibling tempfile and `fs.renameSync`-es it into
36
+ * place so an interrupted process cannot leave a half-written overrides file
37
+ * behind (matches Python's `os.replace` and Rust's `std::fs::rename` flow).
38
+ */
39
+ export class FileOverridesStore {
40
+ _path;
41
+ constructor(filePath) {
42
+ this._path = filePath;
43
+ }
44
+ /** Path of the underlying YAML file. */
45
+ get path() {
46
+ return this._path;
47
+ }
48
+ load() {
49
+ if (!fs.existsSync(this._path))
50
+ return {};
51
+ let raw;
52
+ try {
53
+ raw = fs.readFileSync(this._path, 'utf-8');
54
+ }
55
+ catch (err) {
56
+ console.warn(`[apcore:overrides] Failed to read overrides file '${this._path}':`, err);
57
+ return {};
58
+ }
59
+ if (raw.length === 0)
60
+ return {};
61
+ try {
62
+ const parsed = yaml.load(raw);
63
+ if (typeof parsed === 'object' && parsed !== null && !Array.isArray(parsed)) {
64
+ return { ...parsed };
65
+ }
66
+ console.warn(`[apcore:overrides] Overrides file '${this._path}' root is not a mapping; skipping`);
67
+ return {};
68
+ }
69
+ catch (err) {
70
+ console.warn(`[apcore:overrides] Overrides file '${this._path}' is not valid YAML; skipping`, err);
71
+ return {};
72
+ }
73
+ }
74
+ save(overrides) {
75
+ const dir = path.dirname(this._path) || '.';
76
+ try {
77
+ fs.mkdirSync(dir, { recursive: true });
78
+ }
79
+ catch (err) {
80
+ console.error(`[apcore:overrides] Failed to create parent directory '${dir}':`, err);
81
+ return;
82
+ }
83
+ // Sort keys for stable on-disk layout.
84
+ const ordered = {};
85
+ for (const key of Object.keys(overrides).sort()) {
86
+ ordered[key] = overrides[key];
87
+ }
88
+ const yamlText = yaml.dump(ordered, { sortKeys: true });
89
+ const base = path.basename(this._path);
90
+ const tmp = path.join(dir, `.${base}.${process.pid}.${Date.now()}.tmp`);
91
+ try {
92
+ fs.writeFileSync(tmp, yamlText, 'utf-8');
93
+ fs.renameSync(tmp, this._path);
94
+ }
95
+ catch (err) {
96
+ console.error(`[apcore:overrides] Failed to write overrides file '${this._path}':`, err);
97
+ try {
98
+ fs.unlinkSync(tmp);
99
+ }
100
+ catch {
101
+ /* ignore */
102
+ }
103
+ }
104
+ }
105
+ }
106
+ //# sourceMappingURL=overrides.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"overrides.js","sourceRoot":"","sources":["../../src/sys-modules/overrides.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,8 @@ import type { Registry } from '../registry/registry.js';
5
5
  import type { Executor } from '../executor.js';
6
6
  import type { Config } from '../config.js';
7
7
  import type { MetricsCollector } from '../observability/metrics.js';
8
+ import type { AuditStore } from './audit.js';
9
+ import type { OverridesStore } from './overrides.js';
8
10
  import { ErrorHistory } from '../observability/error-history.js';
9
11
  import { ErrorHistoryMiddleware } from '../middleware/error-history.js';
10
12
  import { UsageCollector, UsageMiddleware } from '../observability/usage.js';
@@ -12,21 +14,17 @@ import type { EventSubscriber } from '../events/emitter.js';
12
14
  import { EventEmitter } from '../events/emitter.js';
13
15
  import { PlatformNotifyMiddleware } from '../middleware/platform-notify.js';
14
16
  type SubscriberFactory = (config: Record<string, unknown>) => EventSubscriber;
15
- /**
16
- * @deprecated Internal use only. This function is not part of the public API
17
- * and will be removed in a future release. Use the built-in webhook and a2a
18
- * subscriber types, or contact the maintainers to add a new built-in type.
19
- */
17
+ /** Register a custom subscriber type for config-driven instantiation. */
20
18
  export declare function registerSubscriberType(typeName: string, factory: SubscriberFactory): void;
21
- /**
22
- * @deprecated Internal use only. See {@link registerSubscriberType}.
23
- */
19
+ /** Remove a previously registered subscriber type. */
24
20
  export declare function unregisterSubscriberType(typeName: string): void;
21
+ /** Reset the registry to built-in types only. Intended for test teardown. */
22
+ export declare function resetSubscriberRegistry(): void;
25
23
  /**
26
- * @deprecated Internal use only. Intended for test teardown only.
27
- * See {@link registerSubscriberType}.
24
+ * Instantiate a single subscriber from a config object.
25
+ * The `type` field selects the factory; all other fields are passed as config.
28
26
  */
29
- export declare function resetSubscriberRegistry(): void;
27
+ export declare function createSubscriberFromConfig(config: Record<string, unknown>): EventSubscriber;
30
28
  /**
31
29
  * Instantiate subscribers from config and subscribe them to the emitter.
32
30
  */
@@ -39,9 +37,16 @@ export interface SysModulesContext {
39
37
  eventEmitter?: EventEmitter;
40
38
  platformNotifyMiddleware?: PlatformNotifyMiddleware;
41
39
  }
40
+ export interface RegisterSysModulesOptions {
41
+ failOnError?: boolean;
42
+ overridesPath?: string;
43
+ /** Pluggable persistent override store (Issue #45.1). */
44
+ overridesStore?: OverridesStore;
45
+ auditStore?: AuditStore;
46
+ }
42
47
  /**
43
48
  * Auto-register all sys.* modules and middleware based on config.
44
49
  */
45
- export declare function registerSysModules(registry: Registry, executor: Executor, config: Config, metricsCollector?: MetricsCollector | null): SysModulesContext;
50
+ export declare function registerSysModules(registry: Registry, executor: Executor, config: Config, metricsCollector?: MetricsCollector | null, options?: RegisterSysModulesOptions): SysModulesContext;
46
51
  export {};
47
52
  //# sourceMappingURL=registration.d.ts.map