monora-ai 2.0.0 → 2.1.3
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 +441 -150
- package/dist/aims_governance.d.ts +238 -0
- package/dist/aims_governance.d.ts.map +1 -0
- package/dist/aims_governance.js +922 -0
- package/dist/alerts.d.ts +16 -0
- package/dist/alerts.d.ts.map +1 -1
- package/dist/alerts.js +16 -0
- package/dist/api.d.ts +6 -0
- package/dist/api.d.ts.map +1 -1
- package/dist/api.js +6 -0
- package/dist/assessment.d.ts +269 -0
- package/dist/assessment.d.ts.map +1 -0
- package/dist/assessment.js +1232 -0
- package/dist/attestation.js +23 -1
- package/dist/attribution.d.ts +349 -0
- package/dist/attribution.d.ts.map +1 -0
- package/dist/attribution.js +987 -0
- package/dist/autodetect.d.ts +69 -1
- package/dist/autodetect.d.ts.map +1 -1
- package/dist/autodetect.js +644 -1
- package/dist/bias.d.ts +130 -0
- package/dist/bias.d.ts.map +1 -0
- package/dist/bias.js +223 -0
- package/dist/circuit_breaker.js +3 -3
- package/dist/cli/diagnostics.d.ts +5 -1
- package/dist/cli/diagnostics.d.ts.map +1 -1
- package/dist/cli/diagnostics.js +31 -8
- package/dist/cli/doctor.d.ts +25 -0
- package/dist/cli/doctor.d.ts.map +1 -0
- package/dist/cli/doctor.js +381 -0
- package/dist/cli/fix.d.ts +16 -0
- package/dist/cli/fix.d.ts.map +1 -0
- package/dist/cli/fix.js +284 -0
- package/dist/cli/init.d.ts +57 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +205 -0
- package/dist/cli.js +1611 -126
- package/dist/complianceTargets.d.ts +111 -0
- package/dist/complianceTargets.d.ts.map +1 -0
- package/dist/complianceTargets.js +521 -0
- package/dist/config.d.ts +301 -17
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +428 -36
- package/dist/config_migrations.d.ts +41 -0
- package/dist/config_migrations.d.ts.map +1 -1
- package/dist/config_migrations.js +205 -0
- package/dist/config_schema.d.ts +2900 -731
- package/dist/config_schema.d.ts.map +1 -1
- package/dist/config_schema.js +257 -55
- package/dist/context.d.ts +34 -0
- package/dist/context.d.ts.map +1 -1
- package/dist/context.js +118 -7
- package/dist/control_backbone.d.ts +122 -0
- package/dist/control_backbone.d.ts.map +1 -0
- package/dist/control_backbone.js +698 -0
- package/dist/data-governance.d.ts +187 -0
- package/dist/data-governance.d.ts.map +1 -0
- package/dist/data-governance.js +424 -0
- package/dist/dataResidency.d.ts +44 -0
- package/dist/dataResidency.d.ts.map +1 -0
- package/dist/dataResidency.js +203 -0
- package/dist/dispatcher.d.ts +32 -0
- package/dist/dispatcher.d.ts.map +1 -1
- package/dist/dispatcher.js +91 -4
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +38 -0
- package/dist/evidence_store.d.ts +103 -0
- package/dist/evidence_store.d.ts.map +1 -0
- package/dist/evidence_store.js +459 -0
- package/dist/executiveSummary.d.ts +65 -8
- package/dist/executiveSummary.d.ts.map +1 -1
- package/dist/executiveSummary.js +289 -26
- package/dist/identity.d.ts +143 -0
- package/dist/identity.d.ts.map +1 -0
- package/dist/identity.js +231 -0
- package/dist/impact-assessment.d.ts +350 -0
- package/dist/impact-assessment.d.ts.map +1 -0
- package/dist/impact-assessment.js +580 -0
- package/dist/index.d.ts +25 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +300 -4
- package/dist/instrumentation.d.ts +1 -1
- package/dist/instrumentation.d.ts.map +1 -1
- package/dist/instrumentation.js +243 -27
- package/dist/integrations/anthropic.d.ts +3 -0
- package/dist/integrations/anthropic.d.ts.map +1 -1
- package/dist/integrations/anthropic.js +284 -79
- package/dist/integrations/governance.d.ts +33 -0
- package/dist/integrations/governance.d.ts.map +1 -0
- package/dist/integrations/governance.js +208 -0
- package/dist/integrations/langchain.d.ts +7 -0
- package/dist/integrations/langchain.d.ts.map +1 -1
- package/dist/integrations/langchain.js +387 -143
- package/dist/integrations/openai.d.ts +9 -0
- package/dist/integrations/openai.d.ts.map +1 -1
- package/dist/integrations/openai.js +673 -73
- package/dist/iso42001_consolidation.d.ts +16 -0
- package/dist/iso42001_consolidation.d.ts.map +1 -0
- package/dist/iso42001_consolidation.js +413 -0
- package/dist/iso42001_workflows.d.ts +263 -0
- package/dist/iso42001_workflows.d.ts.map +1 -0
- package/dist/iso42001_workflows.js +781 -0
- package/dist/lifecycle.d.ts +299 -0
- package/dist/lifecycle.d.ts.map +1 -0
- package/dist/lifecycle.js +624 -0
- package/dist/lineage.d.ts +2 -2
- package/dist/lineage.d.ts.map +1 -1
- package/dist/lineage.js +12 -17
- package/dist/middleware/express.d.ts.map +1 -1
- package/dist/middleware/express.js +33 -3
- package/dist/middleware/nextjs.d.ts.map +1 -1
- package/dist/middleware/nextjs.js +42 -68
- package/dist/model.d.ts +143 -0
- package/dist/model.d.ts.map +1 -0
- package/dist/model.js +371 -0
- package/dist/onboarding.d.ts +42 -0
- package/dist/onboarding.d.ts.map +1 -0
- package/dist/onboarding.js +1022 -0
- package/dist/oversight.d.ts +264 -0
- package/dist/oversight.d.ts.map +1 -0
- package/dist/oversight.js +497 -0
- package/dist/pdf_report.d.ts.map +1 -1
- package/dist/pdf_report.js +42 -21
- package/dist/presets.d.ts +88 -0
- package/dist/presets.d.ts.map +1 -0
- package/dist/presets.js +520 -0
- package/dist/propagation.d.ts.map +1 -1
- package/dist/propagation.js +34 -2
- package/dist/quotas.d.ts +171 -0
- package/dist/quotas.d.ts.map +1 -0
- package/dist/quotas.js +259 -0
- package/dist/register.d.ts +13 -0
- package/dist/register.d.ts.map +1 -0
- package/dist/register.js +99 -0
- package/dist/registry.d.ts +1 -0
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +7 -0
- package/dist/registryData.json +43 -6
- package/dist/report.d.ts +2 -1
- package/dist/report.d.ts.map +1 -1
- package/dist/report.js +189 -2
- package/dist/reporting.d.ts +125 -0
- package/dist/reporting.d.ts.map +1 -1
- package/dist/reporting.js +196 -5
- package/dist/resources.d.ts +285 -0
- package/dist/resources.d.ts.map +1 -0
- package/dist/resources.js +643 -0
- package/dist/risk.d.ts +120 -0
- package/dist/risk.d.ts.map +1 -0
- package/dist/risk.js +220 -0
- package/dist/runtime.d.ts +74 -1
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +598 -22
- package/dist/schemaInference.d.ts +92 -0
- package/dist/schemaInference.d.ts.map +1 -0
- package/dist/schemaInference.js +466 -0
- package/dist/schema_validation.js +2 -2
- package/dist/schemas/config.schema.json +169 -6
- package/dist/schemas/event.schema.json +4 -0
- package/dist/security_report.js +4 -4
- package/dist/signing.d.ts +1 -1
- package/dist/signing.d.ts.map +1 -1
- package/dist/signing.js +4 -0
- package/dist/sinks/file.d.ts +19 -1
- package/dist/sinks/file.d.ts.map +1 -1
- package/dist/sinks/file.js +82 -13
- package/dist/sinks/https.d.ts +10 -0
- package/dist/sinks/https.d.ts.map +1 -1
- package/dist/sinks/https.js +76 -16
- package/dist/sinks/stdout.d.ts +1 -0
- package/dist/sinks/stdout.d.ts.map +1 -1
- package/dist/sinks/stdout.js +12 -1
- package/dist/spec.d.ts +159 -0
- package/dist/spec.d.ts.map +1 -0
- package/dist/spec.js +391 -0
- package/dist/stakeholders.d.ts +199 -0
- package/dist/stakeholders.d.ts.map +1 -0
- package/dist/stakeholders.js +398 -0
- package/dist/standards.d.ts.map +1 -1
- package/dist/standards.js +160 -2
- package/dist/standards_ingest.d.ts +2 -2
- package/dist/standards_ingest.d.ts.map +1 -1
- package/dist/standards_ingest.js +105 -23
- package/dist/streaming.d.ts.map +1 -1
- package/dist/streaming.js +7 -2
- package/dist/telemetry.d.ts +16 -2
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +79 -14
- package/dist/templates/controls/iso42001_control_catalog.json +1443 -0
- package/dist/traced_emitter.d.ts +3 -0
- package/dist/traced_emitter.d.ts.map +1 -1
- package/dist/traced_emitter.js +142 -25
- package/dist/trust_package.d.ts +21 -1
- package/dist/trust_package.d.ts.map +1 -1
- package/dist/trust_package.js +101 -4
- package/dist/verify.d.ts.map +1 -1
- package/dist/verify.js +9 -2
- package/dist/wal.d.ts.map +1 -1
- package/dist/wal.js +2 -1
- package/package.json +14 -1
- package/scripts/postinstall.js +119 -97
- package/templates/controls/iso42001_control_catalog.json +1443 -0
|
@@ -2,6 +2,9 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.LATEST_CONFIG_VERSION = void 0;
|
|
4
4
|
exports.applyConfigMigrations = applyConfigMigrations;
|
|
5
|
+
exports.validateProductionReadiness = validateProductionReadiness;
|
|
6
|
+
exports.checkPresetEnvironmentMismatch = checkPresetEnvironmentMismatch;
|
|
7
|
+
exports.logProductionWarnings = logProductionWarnings;
|
|
5
8
|
const logger_1 = require("./logger");
|
|
6
9
|
exports.LATEST_CONFIG_VERSION = '1.0.0';
|
|
7
10
|
function applyConfigMigrations(config) {
|
|
@@ -15,12 +18,14 @@ function applyConfigMigrations(config) {
|
|
|
15
18
|
if (!config.config_version) {
|
|
16
19
|
config.config_version = exports.LATEST_CONFIG_VERSION;
|
|
17
20
|
}
|
|
21
|
+
normalizeOnboarding(config);
|
|
18
22
|
return config;
|
|
19
23
|
}
|
|
20
24
|
if (compareVersions(version, '1.0.0') < 0) {
|
|
21
25
|
migrate000To100(config);
|
|
22
26
|
config.config_version = exports.LATEST_CONFIG_VERSION;
|
|
23
27
|
}
|
|
28
|
+
normalizeOnboarding(config);
|
|
24
29
|
return config;
|
|
25
30
|
}
|
|
26
31
|
function compareVersions(left, right) {
|
|
@@ -159,3 +164,203 @@ function normalizeErrorHandling(config) {
|
|
|
159
164
|
}
|
|
160
165
|
}
|
|
161
166
|
}
|
|
167
|
+
function normalizeOnboarding(config) {
|
|
168
|
+
const cfg = config;
|
|
169
|
+
if (!cfg.onboarding && cfg.onboard && typeof cfg.onboard === 'object') {
|
|
170
|
+
cfg.onboarding = cfg.onboard;
|
|
171
|
+
delete cfg.onboard;
|
|
172
|
+
}
|
|
173
|
+
if (cfg.onboarding && typeof cfg.onboarding === 'object') {
|
|
174
|
+
const onboarding = cfg.onboarding;
|
|
175
|
+
if (onboarding.require_in_production !== undefined && onboarding.required_in_production === undefined) {
|
|
176
|
+
onboarding.required_in_production = onboarding.require_in_production;
|
|
177
|
+
}
|
|
178
|
+
if (typeof onboarding.status === 'string') {
|
|
179
|
+
const status = onboarding.status.toLowerCase();
|
|
180
|
+
if (['draft', 'validated', 'completed'].includes(status)) {
|
|
181
|
+
onboarding.status = status;
|
|
182
|
+
}
|
|
183
|
+
else {
|
|
184
|
+
onboarding.status = 'draft';
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
const artifacts = onboarding.artifacts;
|
|
188
|
+
if (artifacts && typeof artifacts === 'object') {
|
|
189
|
+
if (artifacts.input_path && !artifacts.production_logs_path) {
|
|
190
|
+
artifacts.production_logs_path = artifacts.input_path;
|
|
191
|
+
}
|
|
192
|
+
if (artifacts.schema_path && !artifacts.schema_contract_path) {
|
|
193
|
+
artifacts.schema_contract_path = artifacts.schema_path;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
if (!cfg.enrichments && cfg.enrichment && typeof cfg.enrichment === 'object') {
|
|
198
|
+
cfg.enrichments = cfg.enrichment;
|
|
199
|
+
delete cfg.enrichment;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Validate configuration against production best practices.
|
|
204
|
+
*
|
|
205
|
+
* Returns a list of warnings for settings that may not be appropriate
|
|
206
|
+
* for production use.
|
|
207
|
+
*
|
|
208
|
+
* @param config - The Monora configuration object.
|
|
209
|
+
* @returns List of ProductionReadinessWarning objects.
|
|
210
|
+
*
|
|
211
|
+
* @example
|
|
212
|
+
* ```typescript
|
|
213
|
+
* const warnings = validateProductionReadiness(config);
|
|
214
|
+
* for (const w of warnings) {
|
|
215
|
+
* console.log(`[${w.category}] ${w.message}`);
|
|
216
|
+
* console.log(` Recommendation: ${w.recommendation}`);
|
|
217
|
+
* }
|
|
218
|
+
* ```
|
|
219
|
+
*/
|
|
220
|
+
function validateProductionReadiness(config) {
|
|
221
|
+
const warnings = [];
|
|
222
|
+
// Check environment
|
|
223
|
+
const defaults = config.defaults || {};
|
|
224
|
+
const environment = defaults.environment || 'development';
|
|
225
|
+
// Only run these checks in production
|
|
226
|
+
if (environment !== 'production') {
|
|
227
|
+
return warnings;
|
|
228
|
+
}
|
|
229
|
+
// Check immutability settings
|
|
230
|
+
const immutability = config.immutability || {};
|
|
231
|
+
if (immutability.enabled === false) {
|
|
232
|
+
warnings.push({
|
|
233
|
+
category: 'security',
|
|
234
|
+
message: 'Immutability (hash chaining) is disabled',
|
|
235
|
+
recommendation: 'Enable immutability.enabled=true for tamper-evident audit trails',
|
|
236
|
+
});
|
|
237
|
+
}
|
|
238
|
+
if (!immutability.verify_on_emit) {
|
|
239
|
+
warnings.push({
|
|
240
|
+
category: 'security',
|
|
241
|
+
message: 'Hash verification on emit is disabled',
|
|
242
|
+
recommendation: 'Enable immutability.verify_on_emit=true to detect chain tampering',
|
|
243
|
+
});
|
|
244
|
+
}
|
|
245
|
+
// Check signing settings
|
|
246
|
+
const signing = config.signing || {};
|
|
247
|
+
if (!signing.enabled) {
|
|
248
|
+
warnings.push({
|
|
249
|
+
category: 'security',
|
|
250
|
+
message: 'Event signing is disabled',
|
|
251
|
+
recommendation: 'Enable signing.enabled=true with Ed25519 or HMAC-SHA256 for cryptographic integrity',
|
|
252
|
+
});
|
|
253
|
+
}
|
|
254
|
+
// Check sinks configuration
|
|
255
|
+
const sinks = config.sinks || [];
|
|
256
|
+
const hasPersistentSink = sinks.some((sink) => sink.type === 'file' || sink.type === 'https');
|
|
257
|
+
if (!hasPersistentSink) {
|
|
258
|
+
warnings.push({
|
|
259
|
+
category: 'durability',
|
|
260
|
+
message: 'No persistent sink configured (only stdout)',
|
|
261
|
+
recommendation: 'Add a file or https sink to ensure events are persisted',
|
|
262
|
+
});
|
|
263
|
+
}
|
|
264
|
+
// Check WAL settings
|
|
265
|
+
const wal = config.wal || {};
|
|
266
|
+
if (!wal.enabled) {
|
|
267
|
+
warnings.push({
|
|
268
|
+
category: 'durability',
|
|
269
|
+
message: 'Write-ahead log (WAL) is disabled',
|
|
270
|
+
recommendation: 'Enable wal.enabled=true for crash recovery',
|
|
271
|
+
});
|
|
272
|
+
}
|
|
273
|
+
else if (wal.sync_mode === 'none') {
|
|
274
|
+
warnings.push({
|
|
275
|
+
category: 'durability',
|
|
276
|
+
message: "WAL sync mode is 'none' (data may be lost on crash)",
|
|
277
|
+
recommendation: "Set wal.sync_mode='fsync' (avoid 'none') for durability",
|
|
278
|
+
});
|
|
279
|
+
}
|
|
280
|
+
// Check error handling
|
|
281
|
+
const errorHandling = config.error_handling || {};
|
|
282
|
+
if (errorHandling.sink_failure_mode === 'silent') {
|
|
283
|
+
warnings.push({
|
|
284
|
+
category: 'observability',
|
|
285
|
+
message: 'Sink failures are silently ignored',
|
|
286
|
+
recommendation: "Set error_handling.sink_failure_mode='warn' or 'raise'",
|
|
287
|
+
});
|
|
288
|
+
}
|
|
289
|
+
// Check reporting
|
|
290
|
+
const reporting = config.reporting || {};
|
|
291
|
+
if (reporting.enabled === false) {
|
|
292
|
+
warnings.push({
|
|
293
|
+
category: 'compliance',
|
|
294
|
+
message: 'Trust summary reporting is disabled',
|
|
295
|
+
recommendation: 'Enable reporting.enabled=true for compliance documentation',
|
|
296
|
+
});
|
|
297
|
+
}
|
|
298
|
+
// Check data handling for sensitive data
|
|
299
|
+
const dataHandling = config.data_handling || {};
|
|
300
|
+
if (!dataHandling.enabled) {
|
|
301
|
+
warnings.push({
|
|
302
|
+
category: 'privacy',
|
|
303
|
+
message: 'Data handling/redaction is disabled',
|
|
304
|
+
recommendation: 'Enable data_handling.enabled=true to prevent PII leakage',
|
|
305
|
+
});
|
|
306
|
+
}
|
|
307
|
+
// Check policies
|
|
308
|
+
const policies = config.policies || {};
|
|
309
|
+
if (!policies.enforce) {
|
|
310
|
+
warnings.push({
|
|
311
|
+
category: 'governance',
|
|
312
|
+
message: 'Model policy enforcement is disabled',
|
|
313
|
+
recommendation: 'Enable policies.enforce=true with model_allowlist for governance',
|
|
314
|
+
});
|
|
315
|
+
}
|
|
316
|
+
return warnings;
|
|
317
|
+
}
|
|
318
|
+
/**
|
|
319
|
+
* Check if a preset is appropriate for the given environment.
|
|
320
|
+
*
|
|
321
|
+
* @param presetName - Name of the preset being used.
|
|
322
|
+
* @param environment - Target environment.
|
|
323
|
+
* @returns Warning if there's a mismatch, null otherwise.
|
|
324
|
+
*/
|
|
325
|
+
function checkPresetEnvironmentMismatch(presetName, environment) {
|
|
326
|
+
if (!presetName) {
|
|
327
|
+
return null;
|
|
328
|
+
}
|
|
329
|
+
const presetLower = presetName.toLowerCase();
|
|
330
|
+
const envLower = environment.toLowerCase();
|
|
331
|
+
// Development/POC presets in production
|
|
332
|
+
if (envLower === 'production' && ['development', 'dev', 'poc', 'experimental'].includes(presetLower)) {
|
|
333
|
+
return {
|
|
334
|
+
category: 'configuration',
|
|
335
|
+
message: `Using '${presetName}' preset in production environment`,
|
|
336
|
+
recommendation: "Switch to 'production' or 'strict_enterprise' preset for production use",
|
|
337
|
+
};
|
|
338
|
+
}
|
|
339
|
+
// Strict enterprise in development (overkill warning)
|
|
340
|
+
if (['development', 'dev'].includes(envLower) && presetLower === 'strict_enterprise') {
|
|
341
|
+
return {
|
|
342
|
+
category: 'configuration',
|
|
343
|
+
message: `Using '${presetName}' preset in development - may slow iteration`,
|
|
344
|
+
recommendation: "Consider 'development' or 'poc' preset for faster local development",
|
|
345
|
+
};
|
|
346
|
+
}
|
|
347
|
+
return null;
|
|
348
|
+
}
|
|
349
|
+
/**
|
|
350
|
+
* Log production readiness warnings.
|
|
351
|
+
*
|
|
352
|
+
* @param warnings - List of warnings to log.
|
|
353
|
+
*/
|
|
354
|
+
function logProductionWarnings(warnings) {
|
|
355
|
+
if (warnings.length === 0) {
|
|
356
|
+
return;
|
|
357
|
+
}
|
|
358
|
+
logger_1.logger.warning('='.repeat(60));
|
|
359
|
+
logger_1.logger.warning('PRODUCTION READINESS WARNINGS (%d issues)', warnings.length);
|
|
360
|
+
logger_1.logger.warning('='.repeat(60));
|
|
361
|
+
for (const w of warnings) {
|
|
362
|
+
logger_1.logger.warning('[%s] %s', w.category.toUpperCase(), w.message);
|
|
363
|
+
logger_1.logger.warning(' → %s', w.recommendation);
|
|
364
|
+
}
|
|
365
|
+
logger_1.logger.warning('='.repeat(60));
|
|
366
|
+
}
|