monora-ai 1.9.0 → 1.9.2
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 +4 -2
- package/assets/sdk-screenshot.png +0 -0
- package/dist/cli.js +30 -0
- package/dist/config.d.ts.map +1 -1
- package/dist/config.js +36 -5
- package/dist/decorators.d.ts +11 -0
- package/dist/decorators.d.ts.map +1 -0
- package/dist/decorators.js +36 -0
- package/dist/dispatcher.d.ts +0 -1
- package/dist/dispatcher.d.ts.map +1 -1
- package/dist/dispatcher.js +0 -7
- package/dist/events.d.ts.map +1 -1
- package/dist/events.js +53 -5
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +8 -3
- package/dist/patterns.d.ts +3 -0
- package/dist/patterns.d.ts.map +1 -0
- package/dist/patterns.js +58 -0
- package/dist/policy.d.ts.map +1 -1
- package/dist/policy.js +5 -14
- package/dist/registry.d.ts +1 -1
- package/dist/registry.d.ts.map +1 -1
- package/dist/registry.js +2 -27
- package/dist/registryData.json +29 -3
- package/dist/report.d.ts +2 -0
- package/dist/report.d.ts.map +1 -1
- package/dist/report.js +129 -0
- package/dist/reporting.d.ts +11 -1
- package/dist/reporting.d.ts.map +1 -1
- package/dist/reporting.js +8 -2
- package/dist/runtime.d.ts.map +1 -1
- package/dist/runtime.js +81 -3
- package/dist/telemetry.d.ts +4 -0
- package/dist/telemetry.d.ts.map +1 -1
- package/dist/telemetry.js +16 -0
- package/package.json +3 -2
package/README.md
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
|
-
# Monora SDK for Node.js v1.9.
|
|
1
|
+
# Monora SDK for Node.js v1.9.2
|
|
2
2
|
|
|
3
3
|
Lightweight governance and trace SDK for AI systems.
|
|
4
4
|
|
|
5
|
+

|
|
6
|
+
|
|
5
7
|
## Features
|
|
6
8
|
|
|
7
9
|
- **Immutable Event Logs**: SHA-256 hash chains for tamper-evident audit trails
|
|
@@ -481,4 +483,4 @@ MIT
|
|
|
481
483
|
|
|
482
484
|
## Support
|
|
483
485
|
|
|
484
|
-
For issues and questions, please visit: https://github.com/
|
|
486
|
+
For issues and questions, please visit: https://github.com/JamesMcDaniel04/Monora_SDK
|
|
Binary file
|
package/dist/cli.js
CHANGED
|
@@ -55,6 +55,7 @@ function usage() {
|
|
|
55
55
|
console.log(' monora validate [--config monora.yml] [--json]');
|
|
56
56
|
console.log(' monora doctor [--config monora.yml] [--json] [--no-network]');
|
|
57
57
|
console.log(' monora report --input <events.jsonl> --output <report.json> [--format json|markdown] [--config monora.yml]');
|
|
58
|
+
console.log(' monora usage-report --input <events.jsonl> --output <usage.json> [--format json|markdown]');
|
|
58
59
|
console.log(' monora security-review --input <events.jsonl> --output <security.json> [--config monora.yml] [--sign gpg --gpg-key <id> --bundle <bundle.json>]');
|
|
59
60
|
console.log(' monora trust-package --input <events.jsonl> --trace-id <trace_id> --output <trust.json> [--config monora.yml] [--sign gpg --gpg-key <id>]');
|
|
60
61
|
console.log(' monora ai-act-report --input <events.jsonl> --output <report.json> [--format json|markdown] [--config monora.yml]');
|
|
@@ -356,6 +357,16 @@ function parseReportOptions(args) {
|
|
|
356
357
|
config,
|
|
357
358
|
};
|
|
358
359
|
}
|
|
360
|
+
function parseUsageReportOptions(args) {
|
|
361
|
+
const input = getFlagValue(args, '--input');
|
|
362
|
+
const output = getFlagValue(args, '--output');
|
|
363
|
+
const format = getFlagValue(args, '--format') || 'json';
|
|
364
|
+
return {
|
|
365
|
+
input,
|
|
366
|
+
output,
|
|
367
|
+
format: format === 'markdown' ? 'markdown' : 'json',
|
|
368
|
+
};
|
|
369
|
+
}
|
|
359
370
|
function parseSecurityReviewOptions(args) {
|
|
360
371
|
return {
|
|
361
372
|
input: getFlagValue(args, '--input'),
|
|
@@ -406,6 +417,21 @@ async function runReport(options) {
|
|
|
406
417
|
}
|
|
407
418
|
console.log(`Report generated: ${options.output}`);
|
|
408
419
|
}
|
|
420
|
+
async function runUsageReport(options) {
|
|
421
|
+
if (!options.input || !options.output) {
|
|
422
|
+
usage();
|
|
423
|
+
process.exit(1);
|
|
424
|
+
}
|
|
425
|
+
const events = (0, report_1.loadJsonl)(options.input);
|
|
426
|
+
const summary = (0, report_1.buildUsageSummary)(events);
|
|
427
|
+
if (options.format === 'markdown') {
|
|
428
|
+
(0, report_1.writeUsageMarkdown)(options.output, summary);
|
|
429
|
+
}
|
|
430
|
+
else {
|
|
431
|
+
(0, report_1.writeJson)(options.output, summary);
|
|
432
|
+
}
|
|
433
|
+
console.log(`Usage report generated: ${options.output}`);
|
|
434
|
+
}
|
|
409
435
|
async function runAIActReport(options) {
|
|
410
436
|
if (!options.input || !options.output) {
|
|
411
437
|
usage();
|
|
@@ -540,6 +566,10 @@ async function main() {
|
|
|
540
566
|
await runReport(parseReportOptions(parsed.args));
|
|
541
567
|
return;
|
|
542
568
|
}
|
|
569
|
+
if (parsed.command === 'usage-report') {
|
|
570
|
+
await runUsageReport(parseUsageReportOptions(parsed.args));
|
|
571
|
+
return;
|
|
572
|
+
}
|
|
543
573
|
if (parsed.command === 'security-review') {
|
|
544
574
|
await runSecurityReview(parseSecurityReviewOptions(parsed.args));
|
|
545
575
|
return;
|
package/dist/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../src/config.ts"],"names":[],"mappings":"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"}
|
package/dist/config.js
CHANGED
|
@@ -123,14 +123,45 @@ const DEFAULT_CONFIG = {
|
|
|
123
123
|
hash_algorithm: 'sha256',
|
|
124
124
|
},
|
|
125
125
|
registry: {
|
|
126
|
-
version: '1.
|
|
127
|
-
history: [
|
|
126
|
+
version: '1.1.0',
|
|
127
|
+
history: [
|
|
128
|
+
{
|
|
129
|
+
version: '1.0.0',
|
|
130
|
+
date: '2024-05-13',
|
|
131
|
+
changes: [
|
|
132
|
+
'Initial registry with OpenAI and Anthropic providers',
|
|
133
|
+
'Added GPT-4o, GPT-3.5 Turbo, and Claude 3 model entries',
|
|
134
|
+
],
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
version: '1.1.0',
|
|
138
|
+
date: '2024-12-26',
|
|
139
|
+
changes: [
|
|
140
|
+
'Added GPT-4o mini and Claude 3.5 Sonnet model entries',
|
|
141
|
+
'Added DeepSeek provider and deepseek-chat model',
|
|
142
|
+
'Marked DeepSeek provider deprecated (v0.x models)',
|
|
143
|
+
],
|
|
144
|
+
},
|
|
145
|
+
],
|
|
128
146
|
default_provider: 'unknown',
|
|
129
147
|
allow_unknown: true,
|
|
130
148
|
providers: [
|
|
131
|
-
{
|
|
132
|
-
|
|
133
|
-
|
|
149
|
+
{
|
|
150
|
+
name: 'openai',
|
|
151
|
+
model_patterns: ['gpt-*', 'o1-*'],
|
|
152
|
+
deprecated: false,
|
|
153
|
+
},
|
|
154
|
+
{
|
|
155
|
+
name: 'anthropic',
|
|
156
|
+
model_patterns: ['claude-*'],
|
|
157
|
+
deprecated: false,
|
|
158
|
+
},
|
|
159
|
+
{
|
|
160
|
+
name: 'deepseek',
|
|
161
|
+
model_patterns: ['deepseek:*', 'deepseek*'],
|
|
162
|
+
deprecated: true,
|
|
163
|
+
deprecation_message: 'DeepSeek v0.x models are deprecated',
|
|
164
|
+
},
|
|
134
165
|
],
|
|
135
166
|
},
|
|
136
167
|
instrumentation: {
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Method decorator helpers for Monora instrumentation.
|
|
3
|
+
*/
|
|
4
|
+
import { agentStep, llmCall, toolCall } from './runtime';
|
|
5
|
+
export type LlmCallOptions = Parameters<typeof llmCall>[0];
|
|
6
|
+
export type ToolCallOptions = Parameters<typeof toolCall>[0];
|
|
7
|
+
export type AgentStepOptions = Parameters<typeof agentStep>[0];
|
|
8
|
+
export declare function llmCallDecorator(options: LlmCallOptions): (_target: unknown, _propertyKey: string | symbol, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
9
|
+
export declare function toolCallDecorator(options: ToolCallOptions): (_target: unknown, _propertyKey: string | symbol, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
10
|
+
export declare function agentStepDecorator(options: AgentStepOptions): (_target: unknown, _propertyKey: string | symbol, descriptor: PropertyDescriptor) => PropertyDescriptor;
|
|
11
|
+
//# sourceMappingURL=decorators.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decorators.d.ts","sourceRoot":"","sources":["../src/decorators.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,SAAS,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,WAAW,CAAC;AAEzD,MAAM,MAAM,cAAc,GAAG,UAAU,CAAC,OAAO,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC;AAC3D,MAAM,MAAM,eAAe,GAAG,UAAU,CAAC,OAAO,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC;AAC7D,MAAM,MAAM,gBAAgB,GAAG,UAAU,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;AAE/D,wBAAgB,gBAAgB,CAAC,OAAO,EAAE,cAAc,IAEpD,SAAS,OAAO,EAChB,cAAc,MAAM,GAAG,MAAM,EAC7B,YAAY,kBAAkB,KAC7B,kBAAkB,CAOtB;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,eAAe,IAEtD,SAAS,OAAO,EAChB,cAAc,MAAM,GAAG,MAAM,EAC7B,YAAY,kBAAkB,KAC7B,kBAAkB,CAOtB;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,gBAAgB,IAExD,SAAS,OAAO,EAChB,cAAc,MAAM,GAAG,MAAM,EAC7B,YAAY,kBAAkB,KAC7B,kBAAkB,CAOtB"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Method decorator helpers for Monora instrumentation.
|
|
4
|
+
*/
|
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
|
+
exports.llmCallDecorator = llmCallDecorator;
|
|
7
|
+
exports.toolCallDecorator = toolCallDecorator;
|
|
8
|
+
exports.agentStepDecorator = agentStepDecorator;
|
|
9
|
+
const runtime_1 = require("./runtime");
|
|
10
|
+
function llmCallDecorator(options) {
|
|
11
|
+
return (_target, _propertyKey, descriptor) => {
|
|
12
|
+
if (!descriptor || typeof descriptor.value !== 'function') {
|
|
13
|
+
throw new Error('llmCallDecorator can only be applied to methods');
|
|
14
|
+
}
|
|
15
|
+
descriptor.value = (0, runtime_1.llmCall)(options)(descriptor.value);
|
|
16
|
+
return descriptor;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
function toolCallDecorator(options) {
|
|
20
|
+
return (_target, _propertyKey, descriptor) => {
|
|
21
|
+
if (!descriptor || typeof descriptor.value !== 'function') {
|
|
22
|
+
throw new Error('toolCallDecorator can only be applied to methods');
|
|
23
|
+
}
|
|
24
|
+
descriptor.value = (0, runtime_1.toolCall)(options)(descriptor.value);
|
|
25
|
+
return descriptor;
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
function agentStepDecorator(options) {
|
|
29
|
+
return (_target, _propertyKey, descriptor) => {
|
|
30
|
+
if (!descriptor || typeof descriptor.value !== 'function') {
|
|
31
|
+
throw new Error('agentStepDecorator can only be applied to methods');
|
|
32
|
+
}
|
|
33
|
+
descriptor.value = (0, runtime_1.agentStep)(options)(descriptor.value);
|
|
34
|
+
return descriptor;
|
|
35
|
+
};
|
|
36
|
+
}
|
package/dist/dispatcher.d.ts
CHANGED
package/dist/dispatcher.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../src/dispatcher.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,IAAI,EAAa,MAAM,cAAc,CAAC;
|
|
1
|
+
{"version":3,"file":"dispatcher.d.ts","sourceRoot":"","sources":["../src/dispatcher.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,IAAI,EAAa,MAAM,cAAc,CAAC;AAG/C,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAcxC,qBAAa,eAAe;IAC1B,OAAO,CAAC,KAAK,CAAS;IACtB,OAAO,CAAC,KAAK,CAAc;IAC3B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,aAAa,CAAS;IAC9B,OAAO,CAAC,gBAAgB,CAAC,CAAS;IAClC,OAAO,CAAC,eAAe,CAA8B;IACrD,OAAO,CAAC,aAAa,CAA6B;IAClD,OAAO,CAAC,YAAY,CAAC,CAAS;IAC9B,OAAO,CAAC,YAAY,CAAC,CAAW;IAChC,OAAO,CAAC,mBAAmB,CAAC,CAA6B;IACzD,OAAO,CAAC,SAAS,CAAe;IAChC,OAAO,CAAC,MAAM,CAAC,CAAiB;IAChC,OAAO,CAAC,UAAU,CAAC,CAAQ;IAC3B,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,iBAAiB,CAAC,CAAa;IACvC,OAAO,CAAC,gBAAgB,CAAU;IAClC,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,YAAY,CAAS;gBAEjB,KAAK,EAAE,IAAI,EAAE,EAAE,MAAM,EAAE,YAAY;IA0C/C,KAAK,IAAI,IAAI;IAkBb,IAAI,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAoCtC,OAAO,CAAC,iBAAiB;IA4BzB,KAAK,IAAI,IAAI;IAeb,KAAK,IAAI,IAAI;IAyDb,OAAO,CAAC,wBAAwB;IAoBhC,OAAO,CAAC,iBAAiB,CAAa;IAEtC,OAAO,CAAC,YAAY;IA+BpB,OAAO,CAAC,UAAU;IAmBlB,OAAO,CAAC,WAAW;IAcnB,OAAO,CAAC,eAAe;IAiBvB,OAAO,CAAC,eAAe;IAmBvB,OAAO,CAAC,cAAc;CAwBvB"}
|
package/dist/dispatcher.js
CHANGED
|
@@ -7,7 +7,6 @@ exports.EventDispatcher = void 0;
|
|
|
7
7
|
const events_1 = require("events");
|
|
8
8
|
const base_1 = require("./sinks/base");
|
|
9
9
|
const file_1 = require("./sinks/file");
|
|
10
|
-
const data_handling_1 = require("./data_handling");
|
|
11
10
|
const alerts_1 = require("./alerts");
|
|
12
11
|
const logger_1 = require("./logger");
|
|
13
12
|
const telemetry_1 = require("./telemetry");
|
|
@@ -25,8 +24,6 @@ class EventDispatcher {
|
|
|
25
24
|
this.sinkFailureMode = errorHandling.sink_failure_mode || 'warn';
|
|
26
25
|
this.queueFullMode = errorHandling.queue_full_mode || 'warn';
|
|
27
26
|
this.fallbackPath = errorHandling.fallback_path;
|
|
28
|
-
const dataHandlingConfig = config.data_handling || {};
|
|
29
|
-
this.dataHandling = new data_handling_1.DataHandlingEngine(dataHandlingConfig);
|
|
30
27
|
const alerts = config.alerts || {};
|
|
31
28
|
if (alerts.violation_webhook) {
|
|
32
29
|
// ViolationWebhookDispatcher doesn't support 'block' mode, map to 'warn'
|
|
@@ -71,10 +68,6 @@ class EventDispatcher {
|
|
|
71
68
|
if (this.fatalError && this.sinkFailureMode === 'raise') {
|
|
72
69
|
throw new base_1.SinkError('Monora dispatcher is in failed state');
|
|
73
70
|
}
|
|
74
|
-
if (this.dataHandling) {
|
|
75
|
-
const classification = event.data_classification || 'internal';
|
|
76
|
-
event.body = this.dataHandling.applyToEventBody(event.event_type || 'custom', event.body || {}, classification);
|
|
77
|
-
}
|
|
78
71
|
if (this.violationDispatcher && event.body?.status === 'policy_violation') {
|
|
79
72
|
try {
|
|
80
73
|
const payload = (0, alerts_1.buildViolationPayload)(event);
|
package/dist/events.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"events.d.ts","sourceRoot":"","sources":["../src/events.ts"],"names":[],"mappings":"AAAA;;GAEG;AAKH,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAwIxC,qBAAa,YAAY;IACvB,OAAO,CAAC,QAAQ,CAA2B;IAC3C,OAAO,CAAC,SAAS,CAAa;gBAElB,MAAM,EAAE,YAAY;IAWhC,KAAK,CACH,SAAS,EAAE,MAAM,EACjB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EACzB,OAAO,CAAC,EAAE;QACR,kBAAkB,CAAC,EAAE,MAAM,CAAC;QAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,MAAM,CAAC,EAAE,MAAM,CAAC;QAChB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;QACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;KAC1B,GACA,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CA4CvB"}
|
package/dist/events.js
CHANGED
|
@@ -49,7 +49,33 @@ class TimestampEnricher {
|
|
|
49
49
|
class ServiceNameEnricher {
|
|
50
50
|
constructor(config) {
|
|
51
51
|
const defaults = config.defaults || {};
|
|
52
|
-
this.serviceName =
|
|
52
|
+
this.serviceName = this.resolveServiceName(defaults);
|
|
53
|
+
}
|
|
54
|
+
resolveServiceName(defaults) {
|
|
55
|
+
const candidate = defaults?.service_name ||
|
|
56
|
+
process.env.SERVICE_NAME ||
|
|
57
|
+
process.env.MONORA_SERVICE_NAME;
|
|
58
|
+
const sanitized = this.sanitizeServiceName(candidate);
|
|
59
|
+
if (sanitized) {
|
|
60
|
+
return sanitized;
|
|
61
|
+
}
|
|
62
|
+
const processName = this.sanitizeServiceName(this.getProcessName());
|
|
63
|
+
return processName || 'monora';
|
|
64
|
+
}
|
|
65
|
+
sanitizeServiceName(value) {
|
|
66
|
+
if (!value) {
|
|
67
|
+
return null;
|
|
68
|
+
}
|
|
69
|
+
const candidate = String(value).trim();
|
|
70
|
+
if (!candidate) {
|
|
71
|
+
return null;
|
|
72
|
+
}
|
|
73
|
+
const parts = candidate.split(/[/\\]/);
|
|
74
|
+
const name = parts[parts.length - 1] || '';
|
|
75
|
+
if (!name || name === '__main__.py' || name === '__main__' || name === 'unknown') {
|
|
76
|
+
return null;
|
|
77
|
+
}
|
|
78
|
+
return name;
|
|
53
79
|
}
|
|
54
80
|
getProcessName() {
|
|
55
81
|
if (process.argv.length > 0) {
|
|
@@ -59,7 +85,7 @@ class ServiceNameEnricher {
|
|
|
59
85
|
return parts[parts.length - 1] || 'unknown';
|
|
60
86
|
}
|
|
61
87
|
}
|
|
62
|
-
return
|
|
88
|
+
return undefined;
|
|
63
89
|
}
|
|
64
90
|
enrich(event) {
|
|
65
91
|
event.service_name = this.serviceName;
|
|
@@ -77,14 +103,36 @@ class EnvironmentEnricher {
|
|
|
77
103
|
class HostEnricher {
|
|
78
104
|
constructor() {
|
|
79
105
|
try {
|
|
80
|
-
this.host =
|
|
106
|
+
this.host = this.resolveHost();
|
|
81
107
|
}
|
|
82
108
|
catch {
|
|
83
|
-
this.host =
|
|
109
|
+
this.host = null;
|
|
110
|
+
}
|
|
111
|
+
}
|
|
112
|
+
resolveHost() {
|
|
113
|
+
const override = process.env.HOST_IN_PROOF;
|
|
114
|
+
if (override !== undefined) {
|
|
115
|
+
const candidate = String(override).trim();
|
|
116
|
+
if (!candidate) {
|
|
117
|
+
return null;
|
|
118
|
+
}
|
|
119
|
+
const lowered = candidate.toLowerCase();
|
|
120
|
+
if (['omit', 'none', 'redact'].includes(lowered)) {
|
|
121
|
+
return null;
|
|
122
|
+
}
|
|
123
|
+
return candidate.split(/\s+/)[0];
|
|
124
|
+
}
|
|
125
|
+
try {
|
|
126
|
+
return os.hostname();
|
|
127
|
+
}
|
|
128
|
+
catch {
|
|
129
|
+
return null;
|
|
84
130
|
}
|
|
85
131
|
}
|
|
86
132
|
enrich(event) {
|
|
87
|
-
|
|
133
|
+
if (this.host !== null) {
|
|
134
|
+
event.host = this.host;
|
|
135
|
+
}
|
|
88
136
|
}
|
|
89
137
|
}
|
|
90
138
|
class ProcessEnricher {
|
package/dist/index.d.ts
CHANGED
|
@@ -25,6 +25,7 @@ export { buildAttestationBundle, signReportGpg, serializeReport } from './attest
|
|
|
25
25
|
export { subscribe, unsubscribe, publishEvent, clearSubscriptions, EventBus, EventSubscription, EventCallback, getEventBus, } from './streaming';
|
|
26
26
|
export { calculateComplianceScore, generateExecutiveSummary, writeExecutiveSummary, ComplianceScoreResult, } from './executiveSummary';
|
|
27
27
|
export { init, InitOptions, shutdown, logEvent, llmCall, toolCall, agentStep, setViolationHandler, exportTrustPackage, } from './runtime';
|
|
28
|
+
export { llmCallDecorator, toolCallDecorator, agentStepDecorator, LlmCallOptions, ToolCallOptions, AgentStepOptions, } from './decorators';
|
|
28
29
|
export { callLlm, callTool, callAgent } from './api';
|
|
29
30
|
export { autoInstrument, InstrumentationError } from './instrumentation';
|
|
30
31
|
export { addDataSource, addInputEvent, clearLineageContext, getDataSources, getInputEvents, getParentEventId, getPromptId, getTemplateId, runWithLineage, runWithLineageAsync, setCurrentEvent, setPromptId, setTemplateId, withDataSources, withInputs, withPrompt, } from './lineage';
|
|
@@ -37,5 +38,5 @@ export { logger, LogLevel, setLevel as setLogLevel, getLevel as getLogLevel, } f
|
|
|
37
38
|
export { validateConfig, isValidConfig, getValidationErrors, ConfigValidationError, MonoraConfigSchema, ValidatedMonoraConfig, } from './config_schema';
|
|
38
39
|
export { PUPPETEER_AVAILABLE, PDFGenerationError, generateCompliancePdf, generateAIActPdf, computePdfSha256, } from './pdf_report';
|
|
39
40
|
export { CircuitBreaker, CircuitBreakerConfig, CircuitBreakerError, CircuitState, } from './circuit_breaker';
|
|
40
|
-
export { PROMETHEUS_AVAILABLE, STATSD_AVAILABLE, MetricsCollector, MetricsBackend, PrometheusBackend, StatsdBackend, Timer, getMetricsCollector, initMetrics, closeMetrics, recordEvent, recordViolation, recordTokens, recordQueueDepth, recordCircuitBreakerState, recordCircuitBreakerTrip, } from './telemetry';
|
|
41
|
+
export { PROMETHEUS_AVAILABLE, STATSD_AVAILABLE, MetricsCollector, MetricsBackend, PrometheusBackend, StatsdBackend, Timer, getMetricsCollector, initMetrics, closeMetrics, recordEvent, recordApiCall, recordViolation, recordTokens, recordQueueDepth, recordCircuitBreakerState, recordCircuitBreakerTrip, } from './telemetry';
|
|
41
42
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/index.js
CHANGED
|
@@ -5,9 +5,9 @@
|
|
|
5
5
|
*/
|
|
6
6
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7
7
|
exports.StdoutSink = exports.SinkError = exports.EventDispatcher = exports.EventBuilder = exports.generateUlid = exports.ulid = exports.verifyEventSignature = exports.createSignerFromConfig = exports.SignatureVerifier = exports.EventSigner = exports.createWalFromConfig = exports.WriteAheadLog = exports.selectPresetForEnvironment = exports.autoDetectConfig = exports.detectInstalledSdks = exports.detectServiceName = exports.detectEnvironment = exports.buildConfigFromOptions = exports.getPresetConfig = exports.parseSinkConfig = exports.PRESETS = exports.loadConfig = exports.wrapEmitterWithContext = exports.TracedEventEmitter = exports.tracedNextTick = exports.tracedSetImmediate = exports.tracedSetInterval = exports.tracedSetTimeout = exports.bindContext = exports.runInContext = exports.captureContext = exports.nextEventSequence = exports.nextStepNumber = exports.startSpan = exports.traceAsync = exports.trace = exports.popSpan = exports.pushSpan = exports.getCurrentSpan = exports.getCurrentContext = exports.ChainVerificationError = exports.detectSequenceGaps = exports.detectTampering = exports.verifyTraceChain = exports.verifyChain = exports.verifyEventHash = exports.Hasher = exports.ModelRegistry = exports.PolicyViolation = exports.PolicyEngine = void 0;
|
|
8
|
-
exports.
|
|
9
|
-
exports.
|
|
10
|
-
exports.recordCircuitBreakerTrip = exports.recordCircuitBreakerState = exports.recordQueueDepth = exports.recordTokens = exports.recordViolation = exports.recordEvent = exports.closeMetrics = exports.initMetrics = void 0;
|
|
8
|
+
exports.runWithLineage = exports.getTemplateId = exports.getPromptId = exports.getParentEventId = exports.getInputEvents = exports.getDataSources = exports.clearLineageContext = exports.addInputEvent = exports.addDataSource = exports.InstrumentationError = exports.autoInstrument = exports.callAgent = exports.callTool = exports.callLlm = exports.agentStepDecorator = exports.toolCallDecorator = exports.llmCallDecorator = exports.exportTrustPackage = exports.setViolationHandler = exports.agentStep = exports.toolCall = exports.llmCall = exports.logEvent = exports.shutdown = exports.init = exports.writeExecutiveSummary = exports.generateExecutiveSummary = exports.calculateComplianceScore = exports.getEventBus = exports.EventBus = exports.clearSubscriptions = exports.publishEvent = exports.unsubscribe = exports.subscribe = exports.serializeReport = exports.signReportGpg = exports.buildAttestationBundle = exports.generateSecurityReport = exports.writeMarkdown = exports.writeJson = exports.loadJsonl = exports.buildReport = exports.buildViolationPayload = exports.AlertError = exports.ViolationWebhookDispatcher = exports.buildDataViolation = exports.DataHandlingViolation = exports.DataHandlingEngine = exports.HttpSink = exports.FileSink = void 0;
|
|
9
|
+
exports.PrometheusBackend = exports.MetricsBackend = exports.MetricsCollector = exports.STATSD_AVAILABLE = exports.PROMETHEUS_AVAILABLE = exports.CircuitState = exports.CircuitBreakerError = exports.CircuitBreaker = exports.computePdfSha256 = exports.generateAIActPdf = exports.generateCompliancePdf = exports.PDFGenerationError = exports.PUPPETEER_AVAILABLE = exports.MonoraConfigSchema = exports.ConfigValidationError = exports.getValidationErrors = exports.isValidConfig = exports.validateConfig = exports.getLogLevel = exports.setLogLevel = exports.LogLevel = exports.logger = exports.MonoraCallbackHandler = exports.patchAnthropic = exports.patchOpenAI = exports.emitResults = exports.doctorChecks = exports.validateConfigDiagnostics = exports.isNextjsAvailable = exports.withMonoraAction = exports.withMonoraRoute = exports.withMonoraApi = exports.withMonoraMiddleware = exports.monoraErrorHandler = exports.monoraMiddleware = exports.TRACESTATE_HEADER = exports.TRACEPARENT_HEADER = exports.makeTracestate = exports.makeTraceparent = exports.injectHeaders = exports.extractContext = exports.continueTraceAsync = exports.continueTrace = exports.withPrompt = exports.withInputs = exports.withDataSources = exports.setTemplateId = exports.setPromptId = exports.setCurrentEvent = exports.runWithLineageAsync = void 0;
|
|
10
|
+
exports.recordCircuitBreakerTrip = exports.recordCircuitBreakerState = exports.recordQueueDepth = exports.recordTokens = exports.recordViolation = exports.recordApiCall = exports.recordEvent = exports.closeMetrics = exports.initMetrics = exports.getMetricsCollector = exports.Timer = exports.StatsdBackend = void 0;
|
|
11
11
|
var policy_1 = require("./policy");
|
|
12
12
|
Object.defineProperty(exports, "PolicyEngine", { enumerable: true, get: function () { return policy_1.PolicyEngine; } });
|
|
13
13
|
Object.defineProperty(exports, "PolicyViolation", { enumerable: true, get: function () { return policy_1.PolicyViolation; } });
|
|
@@ -114,6 +114,10 @@ Object.defineProperty(exports, "toolCall", { enumerable: true, get: function ()
|
|
|
114
114
|
Object.defineProperty(exports, "agentStep", { enumerable: true, get: function () { return runtime_1.agentStep; } });
|
|
115
115
|
Object.defineProperty(exports, "setViolationHandler", { enumerable: true, get: function () { return runtime_1.setViolationHandler; } });
|
|
116
116
|
Object.defineProperty(exports, "exportTrustPackage", { enumerable: true, get: function () { return runtime_1.exportTrustPackage; } });
|
|
117
|
+
var decorators_1 = require("./decorators");
|
|
118
|
+
Object.defineProperty(exports, "llmCallDecorator", { enumerable: true, get: function () { return decorators_1.llmCallDecorator; } });
|
|
119
|
+
Object.defineProperty(exports, "toolCallDecorator", { enumerable: true, get: function () { return decorators_1.toolCallDecorator; } });
|
|
120
|
+
Object.defineProperty(exports, "agentStepDecorator", { enumerable: true, get: function () { return decorators_1.agentStepDecorator; } });
|
|
117
121
|
var api_1 = require("./api");
|
|
118
122
|
Object.defineProperty(exports, "callLlm", { enumerable: true, get: function () { return api_1.callLlm; } });
|
|
119
123
|
Object.defineProperty(exports, "callTool", { enumerable: true, get: function () { return api_1.callTool; } });
|
|
@@ -203,6 +207,7 @@ Object.defineProperty(exports, "getMetricsCollector", { enumerable: true, get: f
|
|
|
203
207
|
Object.defineProperty(exports, "initMetrics", { enumerable: true, get: function () { return telemetry_1.initMetrics; } });
|
|
204
208
|
Object.defineProperty(exports, "closeMetrics", { enumerable: true, get: function () { return telemetry_1.closeMetrics; } });
|
|
205
209
|
Object.defineProperty(exports, "recordEvent", { enumerable: true, get: function () { return telemetry_1.recordEvent; } });
|
|
210
|
+
Object.defineProperty(exports, "recordApiCall", { enumerable: true, get: function () { return telemetry_1.recordApiCall; } });
|
|
206
211
|
Object.defineProperty(exports, "recordViolation", { enumerable: true, get: function () { return telemetry_1.recordViolation; } });
|
|
207
212
|
Object.defineProperty(exports, "recordTokens", { enumerable: true, get: function () { return telemetry_1.recordTokens; } });
|
|
208
213
|
Object.defineProperty(exports, "recordQueueDepth", { enumerable: true, get: function () { return telemetry_1.recordQueueDepth; } });
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"patterns.d.ts","sourceRoot":"","sources":["../src/patterns.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,WAAW,GAAG,KAAK,CAAC,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC,CAAC;AA2DlD,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,WAAW,CAE/D"}
|
package/dist/patterns.js
ADDED
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.compilePatterns = compilePatterns;
|
|
4
|
+
function escapeRegexChar(char) {
|
|
5
|
+
if (/[\^$\\.*+?()[\]{}|]/.test(char)) {
|
|
6
|
+
return `\\${char}`;
|
|
7
|
+
}
|
|
8
|
+
return char;
|
|
9
|
+
}
|
|
10
|
+
function globToRegExp(pattern) {
|
|
11
|
+
let i = 0;
|
|
12
|
+
const n = pattern.length;
|
|
13
|
+
let result = '';
|
|
14
|
+
while (i < n) {
|
|
15
|
+
const char = pattern[i];
|
|
16
|
+
i += 1;
|
|
17
|
+
if (char === '*') {
|
|
18
|
+
result += '.*';
|
|
19
|
+
continue;
|
|
20
|
+
}
|
|
21
|
+
if (char === '?') {
|
|
22
|
+
result += '.';
|
|
23
|
+
continue;
|
|
24
|
+
}
|
|
25
|
+
if (char === '[') {
|
|
26
|
+
let j = i;
|
|
27
|
+
if (j < n && pattern[j] === '!') {
|
|
28
|
+
j += 1;
|
|
29
|
+
}
|
|
30
|
+
if (j < n && pattern[j] === ']') {
|
|
31
|
+
j += 1;
|
|
32
|
+
}
|
|
33
|
+
while (j < n && pattern[j] !== ']') {
|
|
34
|
+
j += 1;
|
|
35
|
+
}
|
|
36
|
+
if (j >= n) {
|
|
37
|
+
result += '\\[';
|
|
38
|
+
continue;
|
|
39
|
+
}
|
|
40
|
+
let stuff = pattern.slice(i, j);
|
|
41
|
+
stuff = stuff.replace(/\\/g, '\\\\');
|
|
42
|
+
if (stuff.startsWith('!')) {
|
|
43
|
+
stuff = `^${stuff.slice(1)}`;
|
|
44
|
+
}
|
|
45
|
+
else if (stuff.startsWith('^')) {
|
|
46
|
+
stuff = `\\${stuff}`;
|
|
47
|
+
}
|
|
48
|
+
result += `[${stuff}]`;
|
|
49
|
+
i = j + 1;
|
|
50
|
+
continue;
|
|
51
|
+
}
|
|
52
|
+
result += escapeRegexChar(char);
|
|
53
|
+
}
|
|
54
|
+
return new RegExp(`^${result}$`);
|
|
55
|
+
}
|
|
56
|
+
function compilePatterns(patterns) {
|
|
57
|
+
return patterns.map((pattern) => [pattern, globToRegExp(pattern)]);
|
|
58
|
+
}
|
package/dist/policy.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"policy.d.ts","sourceRoot":"","sources":["../src/policy.ts"],"names":[],"mappings":"AAAA;;GAEG;AAIH,qBAAa,eAAgB,SAAQ,KAAK;aAEtB,SAAS,EAAE,MAAM;aACjB,KAAK,EAAE,MAAM;aACb,UAAU,EAAE,MAAM;aAElB,SAAS,EAAE,MAAM;gBAJjB,SAAS,EAAE,MAAM,EACjB,KAAK,EAAE,MAAM,EACb,UAAU,EAAE,MAAM,EAClC,OAAO,EAAE,MAAM,EACC,SAAS,EAAE,MAAM;CAKpC;AASD,MAAM,WAAW,YAAY;IAC3B,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,EAAE,CAAC;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,yBAAyB,CAAC,EAAE;QAC1B,CAAC,cAAc,EAAE,MAAM,GAAG;YACxB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;YACnB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;SACnB,CAAC;KACH,CAAC;CACH;AAED,qBAAa,YAAY;IACvB,OAAO,CAAC,SAAS,CAAc;IAC/B,OAAO,CAAC,QAAQ,CAAc;IAC9B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,mBAAmB,CAAsB;gBAErC,MAAM,EAAE,YAAY;IAShC,OAAO,CAAC,0BAA0B;IAalC,UAAU,CACR,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAChC,kBAAkB,EAAE,MAAM,GACzB,eAAe,GAAG,IAAI;IAYzB,OAAO,CAAC,WAAW;IAoCnB,kBAAkB,IAAI,MAAM,EAAE;IAI9B,iBAAiB,IAAI,MAAM,EAAE;IAI7B,cAAc,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,GAAE,MAAmB,GAAG,OAAO;IAS3E,sBAAsB,IAAI;QACxB,CAAC,cAAc,EAAE,MAAM,GAAG;YAAE,OAAO,EAAE,MAAM,EAAE,CAAC;YAAC,MAAM,EAAE,MAAM,EAAE,CAAA;SAAE,CAAC;KACnE;IAeD,mBAAmB,CAAC,KAAK,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,MAAM,EAAE,CAAC;QAAC,MAAM,EAAE,MAAM,EAAE,CAAA;KAAE;IAgB3E,oBAAoB,IAAI,OAAO;IAI/B,OAAO,CAAC,SAAS;CAQlB"}
|
package/dist/policy.js
CHANGED
|
@@ -4,6 +4,7 @@
|
|
|
4
4
|
*/
|
|
5
5
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
6
6
|
exports.PolicyEngine = exports.PolicyViolation = void 0;
|
|
7
|
+
const patterns_1 = require("./patterns");
|
|
7
8
|
class PolicyViolation extends Error {
|
|
8
9
|
constructor(eventType, model, policyName, message, timestamp) {
|
|
9
10
|
super(message);
|
|
@@ -17,8 +18,8 @@ class PolicyViolation extends Error {
|
|
|
17
18
|
exports.PolicyViolation = PolicyViolation;
|
|
18
19
|
class PolicyEngine {
|
|
19
20
|
constructor(config) {
|
|
20
|
-
this.allowlist = compilePatterns(config.model_allowlist || []);
|
|
21
|
-
this.denylist = compilePatterns(config.model_denylist || []);
|
|
21
|
+
this.allowlist = (0, patterns_1.compilePatterns)(config.model_allowlist || []);
|
|
22
|
+
this.denylist = (0, patterns_1.compilePatterns)(config.model_denylist || []);
|
|
22
23
|
this.enforce = config.enforce !== false;
|
|
23
24
|
this.classificationRules = this.compileClassificationRules(config.classification_max_models || {});
|
|
24
25
|
}
|
|
@@ -26,8 +27,8 @@ class PolicyEngine {
|
|
|
26
27
|
const compiled = {};
|
|
27
28
|
for (const [classification, entry] of Object.entries(rules || {})) {
|
|
28
29
|
compiled[classification] = {
|
|
29
|
-
allowed: compilePatterns(entry.allowed || []),
|
|
30
|
-
denied: compilePatterns(entry.denied || []),
|
|
30
|
+
allowed: (0, patterns_1.compilePatterns)(entry.allowed || []),
|
|
31
|
+
denied: (0, patterns_1.compilePatterns)(entry.denied || []),
|
|
31
32
|
};
|
|
32
33
|
}
|
|
33
34
|
return compiled;
|
|
@@ -106,16 +107,6 @@ class PolicyEngine {
|
|
|
106
107
|
}
|
|
107
108
|
}
|
|
108
109
|
exports.PolicyEngine = PolicyEngine;
|
|
109
|
-
function compilePatterns(patterns) {
|
|
110
|
-
return patterns.map((pattern) => {
|
|
111
|
-
// Convert glob pattern to regex
|
|
112
|
-
const regexPattern = pattern
|
|
113
|
-
.replace(/\./g, '\\.')
|
|
114
|
-
.replace(/\*/g, '.*')
|
|
115
|
-
.replace(/\?/g, '.');
|
|
116
|
-
return [pattern, new RegExp(`^${regexPattern}$`)];
|
|
117
|
-
});
|
|
118
|
-
}
|
|
119
110
|
function matchesAny(patterns, model) {
|
|
120
111
|
for (const [, pattern] of patterns) {
|
|
121
112
|
if (pattern.test(model)) {
|
package/dist/registry.d.ts
CHANGED
package/dist/registry.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../src/registry.ts"],"names":[],"mappings":"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"}
|
package/dist/registry.js
CHANGED
|
@@ -41,32 +41,7 @@ const crypto = __importStar(require("crypto"));
|
|
|
41
41
|
const fs = __importStar(require("fs"));
|
|
42
42
|
const path = __importStar(require("path"));
|
|
43
43
|
const logger_1 = require("./logger");
|
|
44
|
-
const
|
|
45
|
-
'.',
|
|
46
|
-
'*',
|
|
47
|
-
'+',
|
|
48
|
-
'?',
|
|
49
|
-
'^',
|
|
50
|
-
'$',
|
|
51
|
-
'{',
|
|
52
|
-
'}',
|
|
53
|
-
'(',
|
|
54
|
-
')',
|
|
55
|
-
'|',
|
|
56
|
-
'[',
|
|
57
|
-
']',
|
|
58
|
-
'\\',
|
|
59
|
-
]);
|
|
60
|
-
function compilePatterns(patterns) {
|
|
61
|
-
return patterns.map((pattern) => {
|
|
62
|
-
const escaped = pattern
|
|
63
|
-
.split('')
|
|
64
|
-
.map((char) => (REGEX_SPECIAL_CHARS.has(char) ? `\\${char}` : char))
|
|
65
|
-
.join('');
|
|
66
|
-
const regexPattern = escaped.replace(/\\\*/g, '.*').replace(/\\\?/g, '.');
|
|
67
|
-
return [pattern, new RegExp(`^${regexPattern}$`)];
|
|
68
|
-
});
|
|
69
|
-
}
|
|
44
|
+
const patterns_1 = require("./patterns");
|
|
70
45
|
function sortObject(value) {
|
|
71
46
|
if (Array.isArray(value)) {
|
|
72
47
|
return value.map((item) => item && typeof item === 'object' ? sortObject(item) : item);
|
|
@@ -111,7 +86,7 @@ class ModelRegistry {
|
|
|
111
86
|
// Load providers from config
|
|
112
87
|
for (const entry of config.providers || []) {
|
|
113
88
|
const name = entry.name;
|
|
114
|
-
const patterns = compilePatterns(entry.model_patterns || []);
|
|
89
|
+
const patterns = (0, patterns_1.compilePatterns)(entry.model_patterns || []);
|
|
115
90
|
if (!name || patterns.length === 0) {
|
|
116
91
|
continue;
|
|
117
92
|
}
|
package/dist/registryData.json
CHANGED
|
@@ -1,4 +1,24 @@
|
|
|
1
1
|
{
|
|
2
|
+
"version": "1.1.0",
|
|
3
|
+
"history": [
|
|
4
|
+
{
|
|
5
|
+
"version": "1.0.0",
|
|
6
|
+
"date": "2024-05-13",
|
|
7
|
+
"changes": [
|
|
8
|
+
"Initial registry with OpenAI and Anthropic providers",
|
|
9
|
+
"Added GPT-4o, GPT-3.5 Turbo, and Claude 3 model entries"
|
|
10
|
+
]
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
"version": "1.1.0",
|
|
14
|
+
"date": "2024-12-26",
|
|
15
|
+
"changes": [
|
|
16
|
+
"Added GPT-4o mini and Claude 3.5 Sonnet model entries",
|
|
17
|
+
"Added DeepSeek provider and deepseek-chat model",
|
|
18
|
+
"Marked DeepSeek provider deprecated (v0.x models)"
|
|
19
|
+
]
|
|
20
|
+
}
|
|
21
|
+
],
|
|
2
22
|
"models": {
|
|
3
23
|
"gpt-4o": {
|
|
4
24
|
"provider": "openai",
|
|
@@ -65,17 +85,23 @@
|
|
|
65
85
|
"openai": {
|
|
66
86
|
"name": "OpenAI",
|
|
67
87
|
"url": "https://openai.com",
|
|
68
|
-
"default_patterns": ["gpt-*", "o1-*", "text-*", "davinci-*"]
|
|
88
|
+
"default_patterns": ["gpt-*", "o1-*", "text-*", "davinci-*"],
|
|
89
|
+
"deprecated": false,
|
|
90
|
+
"deprecation_message": null
|
|
69
91
|
},
|
|
70
92
|
"anthropic": {
|
|
71
93
|
"name": "Anthropic",
|
|
72
94
|
"url": "https://anthropic.com",
|
|
73
|
-
"default_patterns": ["claude-*"]
|
|
95
|
+
"default_patterns": ["claude-*"],
|
|
96
|
+
"deprecated": false,
|
|
97
|
+
"deprecation_message": null
|
|
74
98
|
},
|
|
75
99
|
"deepseek": {
|
|
76
100
|
"name": "DeepSeek",
|
|
77
101
|
"url": "https://deepseek.com",
|
|
78
|
-
"default_patterns": ["deepseek*", "deepseek:*"]
|
|
102
|
+
"default_patterns": ["deepseek*", "deepseek:*"],
|
|
103
|
+
"deprecated": true,
|
|
104
|
+
"deprecation_message": "DeepSeek v0.x models are deprecated"
|
|
79
105
|
}
|
|
80
106
|
},
|
|
81
107
|
"fallback_patterns": {
|
package/dist/report.d.ts
CHANGED
|
@@ -4,6 +4,8 @@
|
|
|
4
4
|
import { MonoraConfig } from './config';
|
|
5
5
|
export declare function loadJsonl(path: string): Array<Record<string, any>>;
|
|
6
6
|
export declare function buildReport(events: Array<Record<string, any>>, policies?: MonoraConfig['policies']): Record<string, any>;
|
|
7
|
+
export declare function buildUsageSummary(events: Array<Record<string, any>>): Record<string, any>;
|
|
7
8
|
export declare function writeJson(path: string, report: Record<string, any>): void;
|
|
8
9
|
export declare function writeMarkdown(path: string, report: Record<string, any>): void;
|
|
10
|
+
export declare function writeUsageMarkdown(path: string, summary: Record<string, any>): void;
|
|
9
11
|
//# sourceMappingURL=report.d.ts.map
|
package/dist/report.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAKxC,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAelE;AAqJD,wBAAgB,WAAW,CACzB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAClC,QAAQ,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,GAClC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAkMrB;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAEzE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAsD7E"}
|
|
1
|
+
{"version":3,"file":"report.d.ts","sourceRoot":"","sources":["../src/report.ts"],"names":[],"mappings":"AAAA;;GAEG;AAGH,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAKxC,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,CAelE;AAqJD,wBAAgB,WAAW,CACzB,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,EAClC,QAAQ,CAAC,EAAE,YAAY,CAAC,UAAU,CAAC,GAClC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAkMrB;AAED,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CA4EzF;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAEzE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CAsD7E;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI,CA4DnF"}
|
package/dist/report.js
CHANGED
|
@@ -38,8 +38,10 @@ var __importStar = (this && this.__importStar) || (function () {
|
|
|
38
38
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
39
39
|
exports.loadJsonl = loadJsonl;
|
|
40
40
|
exports.buildReport = buildReport;
|
|
41
|
+
exports.buildUsageSummary = buildUsageSummary;
|
|
41
42
|
exports.writeJson = writeJson;
|
|
42
43
|
exports.writeMarkdown = writeMarkdown;
|
|
44
|
+
exports.writeUsageMarkdown = writeUsageMarkdown;
|
|
43
45
|
const fs = __importStar(require("fs"));
|
|
44
46
|
const logger_1 = require("./logger");
|
|
45
47
|
function loadJsonl(path) {
|
|
@@ -372,6 +374,76 @@ function buildReport(events, policies) {
|
|
|
372
374
|
},
|
|
373
375
|
};
|
|
374
376
|
}
|
|
377
|
+
function buildUsageSummary(events) {
|
|
378
|
+
const filteredEvents = events.filter((event) => event.event_type !== 'trust_summary');
|
|
379
|
+
const traceIds = new Set();
|
|
380
|
+
const timestamps = [];
|
|
381
|
+
const dailyCounts = {};
|
|
382
|
+
const apiByType = {};
|
|
383
|
+
const apiStatusCounts = {};
|
|
384
|
+
const modelCounts = {};
|
|
385
|
+
let sdkInits = 0;
|
|
386
|
+
for (const event of filteredEvents) {
|
|
387
|
+
if (event.trace_id) {
|
|
388
|
+
traceIds.add(event.trace_id);
|
|
389
|
+
}
|
|
390
|
+
const parsed = parseTimestamp(event.timestamp);
|
|
391
|
+
if (parsed) {
|
|
392
|
+
timestamps.push(parsed);
|
|
393
|
+
const day = parsed.toISOString().slice(0, 10);
|
|
394
|
+
dailyCounts[day] = (dailyCounts[day] || 0) + 1;
|
|
395
|
+
}
|
|
396
|
+
const eventType = event.event_type;
|
|
397
|
+
if (eventType === 'sdk_init') {
|
|
398
|
+
sdkInits += 1;
|
|
399
|
+
}
|
|
400
|
+
if (eventType === 'llm_call' || eventType === 'tool_call' || eventType === 'agent_step') {
|
|
401
|
+
apiByType[eventType] = (apiByType[eventType] || 0) + 1;
|
|
402
|
+
const body = event && typeof event.body === 'object' && event.body
|
|
403
|
+
? event.body
|
|
404
|
+
: {};
|
|
405
|
+
const status = typeof body.status === 'string' ? body.status : 'unknown';
|
|
406
|
+
apiStatusCounts[status] = (apiStatusCounts[status] || 0) + 1;
|
|
407
|
+
if (eventType === 'llm_call') {
|
|
408
|
+
const model = normalizeModelName(body.model);
|
|
409
|
+
if (model) {
|
|
410
|
+
modelCounts[model] = (modelCounts[model] || 0) + 1;
|
|
411
|
+
}
|
|
412
|
+
}
|
|
413
|
+
}
|
|
414
|
+
}
|
|
415
|
+
const start = timestamps.length
|
|
416
|
+
? new Date(Math.min(...timestamps.map((t) => t.getTime()))).toISOString()
|
|
417
|
+
: null;
|
|
418
|
+
const end = timestamps.length
|
|
419
|
+
? new Date(Math.max(...timestamps.map((t) => t.getTime()))).toISOString()
|
|
420
|
+
: null;
|
|
421
|
+
const totalApiCalls = Object.values(apiByType).reduce((sum, count) => sum + count, 0);
|
|
422
|
+
const errorCount = apiStatusCounts.error || 0;
|
|
423
|
+
const errorRate = totalApiCalls > 0 ? errorCount / totalApiCalls : null;
|
|
424
|
+
const dailyActivity = Object.entries(dailyCounts)
|
|
425
|
+
.sort(([a], [b]) => a.localeCompare(b))
|
|
426
|
+
.map(([date, count]) => ({ date, events: count }));
|
|
427
|
+
const topModels = Object.entries(modelCounts)
|
|
428
|
+
.sort(([, a], [, b]) => b - a)
|
|
429
|
+
.slice(0, 5)
|
|
430
|
+
.map(([model, count]) => ({ model, count }));
|
|
431
|
+
return {
|
|
432
|
+
period: { start, end },
|
|
433
|
+
total_events: filteredEvents.length,
|
|
434
|
+
unique_traces: traceIds.size,
|
|
435
|
+
sdk_inits: sdkInits,
|
|
436
|
+
api_calls: {
|
|
437
|
+
total: totalApiCalls,
|
|
438
|
+
by_type: apiByType,
|
|
439
|
+
status_counts: apiStatusCounts,
|
|
440
|
+
error_rate: errorRate,
|
|
441
|
+
},
|
|
442
|
+
active_days: Object.keys(dailyCounts).length,
|
|
443
|
+
daily_activity: dailyActivity,
|
|
444
|
+
top_models: topModels,
|
|
445
|
+
};
|
|
446
|
+
}
|
|
375
447
|
function writeJson(path, report) {
|
|
376
448
|
fs.writeFileSync(path, JSON.stringify(report, null, 2));
|
|
377
449
|
}
|
|
@@ -423,6 +495,63 @@ function writeMarkdown(path, report) {
|
|
|
423
495
|
lines.push(`- Unused allowlist patterns: ${(compliance.unused_allowlist_patterns || []).join(', ') || 'None'}`);
|
|
424
496
|
fs.writeFileSync(path, lines.join('\n'));
|
|
425
497
|
}
|
|
498
|
+
function writeUsageMarkdown(path, summary) {
|
|
499
|
+
const period = summary.period || {};
|
|
500
|
+
const start = period.start || 'N/A';
|
|
501
|
+
const end = period.end || 'N/A';
|
|
502
|
+
const apiCalls = summary.api_calls || {};
|
|
503
|
+
const statusCounts = apiCalls.status_counts || {};
|
|
504
|
+
const errorRate = typeof apiCalls.error_rate === 'number'
|
|
505
|
+
? `${(apiCalls.error_rate * 100).toFixed(2)}%`
|
|
506
|
+
: 'N/A';
|
|
507
|
+
const lines = [
|
|
508
|
+
'# Monora Usage Summary',
|
|
509
|
+
`**Period:** ${start} to ${end}`,
|
|
510
|
+
`**Total Events:** ${summary.total_events || 0}`,
|
|
511
|
+
`**Unique Traces:** ${summary.unique_traces || 0}`,
|
|
512
|
+
`**SDK Inits:** ${summary.sdk_inits || 0}`,
|
|
513
|
+
'',
|
|
514
|
+
'## API Calls',
|
|
515
|
+
`- Total: ${apiCalls.total || 0}`,
|
|
516
|
+
`- Error rate: ${errorRate}`,
|
|
517
|
+
];
|
|
518
|
+
const byType = apiCalls.by_type || {};
|
|
519
|
+
if (Object.keys(byType).length > 0) {
|
|
520
|
+
lines.push('- By type:');
|
|
521
|
+
for (const [eventType, count] of Object.entries(byType)) {
|
|
522
|
+
lines.push(` - ${eventType}: ${count}`);
|
|
523
|
+
}
|
|
524
|
+
}
|
|
525
|
+
if (Object.keys(statusCounts).length > 0) {
|
|
526
|
+
lines.push('- Status counts:');
|
|
527
|
+
for (const [status, count] of Object.entries(statusCounts)) {
|
|
528
|
+
lines.push(` - ${status}: ${count}`);
|
|
529
|
+
}
|
|
530
|
+
}
|
|
531
|
+
lines.push('');
|
|
532
|
+
lines.push('## Daily Activity');
|
|
533
|
+
const dailyActivity = summary.daily_activity || [];
|
|
534
|
+
if (dailyActivity.length > 0) {
|
|
535
|
+
for (const entry of dailyActivity) {
|
|
536
|
+
lines.push(`- ${entry.date}: ${entry.events} events`);
|
|
537
|
+
}
|
|
538
|
+
}
|
|
539
|
+
else {
|
|
540
|
+
lines.push('- None');
|
|
541
|
+
}
|
|
542
|
+
lines.push('');
|
|
543
|
+
lines.push('## Top Models');
|
|
544
|
+
const topModels = summary.top_models || [];
|
|
545
|
+
if (topModels.length > 0) {
|
|
546
|
+
for (const entry of topModels) {
|
|
547
|
+
lines.push(`- ${entry.model}: ${entry.count} calls`);
|
|
548
|
+
}
|
|
549
|
+
}
|
|
550
|
+
else {
|
|
551
|
+
lines.push('- None');
|
|
552
|
+
}
|
|
553
|
+
fs.writeFileSync(path, lines.join('\n'));
|
|
554
|
+
}
|
|
426
555
|
function escapeTableValue(value) {
|
|
427
556
|
return String(value ?? 'N/A').replace(/\|/g, '\\|');
|
|
428
557
|
}
|
package/dist/reporting.d.ts
CHANGED
|
@@ -3,6 +3,15 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { MonoraConfig } from './config';
|
|
5
5
|
export declare const TRUST_SUMMARY_EVENT_TYPE = "trust_summary";
|
|
6
|
+
interface RegistryMetadata {
|
|
7
|
+
version?: string;
|
|
8
|
+
hash?: string;
|
|
9
|
+
history?: Array<{
|
|
10
|
+
version: string;
|
|
11
|
+
date?: string;
|
|
12
|
+
changes: string[];
|
|
13
|
+
}>;
|
|
14
|
+
}
|
|
6
15
|
export declare class TraceReportManager {
|
|
7
16
|
private enabled;
|
|
8
17
|
private emitTrustSummary;
|
|
@@ -23,8 +32,9 @@ export declare class TraceReportManager {
|
|
|
23
32
|
* Used by shutdown verification to finalize all pending traces.
|
|
24
33
|
*/
|
|
25
34
|
getPendingTraceIds(): string[];
|
|
26
|
-
finalizeTrace(traceId: string): {
|
|
35
|
+
finalizeTrace(traceId: string, registryMetadata?: RegistryMetadata | null): {
|
|
27
36
|
summary: Record<string, any>;
|
|
28
37
|
} | null;
|
|
29
38
|
}
|
|
39
|
+
export {};
|
|
30
40
|
//# sourceMappingURL=reporting.d.ts.map
|
package/dist/reporting.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"reporting.d.ts","sourceRoot":"","sources":["../src/reporting.ts"],"names":[],"mappings":"AAAA;;GAEG;AAcH,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"reporting.d.ts","sourceRoot":"","sources":["../src/reporting.ts"],"names":[],"mappings":"AAAA;;GAEG;AAcH,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AAWxC,eAAO,MAAM,wBAAwB,kBAAkB,CAAC;AAWxD,UAAU,gBAAgB;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,KAAK,CAAC;QACd,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,OAAO,EAAE,MAAM,EAAE,CAAC;KACnB,CAAC,CAAC;CACJ;AAED,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,OAAO,CAAU;IACzB,OAAO,CAAC,gBAAgB,CAAU;IAClC,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,OAAO,CAAW;IAC1B,OAAO,CAAC,qBAAqB,CAAU;IACvC,OAAO,CAAC,iBAAiB,CAAgB;IACzC,OAAO,CAAC,MAAM,CAAe;IAC7B,OAAO,CAAC,aAAa,CAAsD;IAC3E,OAAO,CAAC,cAAc,CAAkC;gBAE5C,MAAM,EAAE,YAAY;IAWhC,SAAS,IAAI,OAAO;IAIpB,sBAAsB,IAAI,OAAO;IAIjC,WAAW,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,IAAI;IAoB7C,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,KAAK,CAAC,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,IAAI;IAWlE;;;OAGG;IACH,kBAAkB,IAAI,MAAM,EAAE;IAI9B,aAAa,CACX,OAAO,EAAE,MAAM,EACf,gBAAgB,CAAC,EAAE,gBAAgB,GAAG,IAAI,GACzC;QAAE,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;KAAE,GAAG,IAAI;CAwH3C"}
|
package/dist/reporting.js
CHANGED
|
@@ -42,6 +42,7 @@ const fs = __importStar(require("fs"));
|
|
|
42
42
|
const path = __importStar(require("path"));
|
|
43
43
|
const logger_1 = require("./logger");
|
|
44
44
|
const attestation_1 = require("./attestation");
|
|
45
|
+
const executiveSummary_1 = require("./executiveSummary");
|
|
45
46
|
const report_1 = require("./report");
|
|
46
47
|
const security_report_1 = require("./security_report");
|
|
47
48
|
const verify_1 = require("./verify");
|
|
@@ -101,7 +102,7 @@ class TraceReportManager {
|
|
|
101
102
|
getPendingTraceIds() {
|
|
102
103
|
return Array.from(this.eventsByTrace.keys());
|
|
103
104
|
}
|
|
104
|
-
finalizeTrace(traceId) {
|
|
105
|
+
finalizeTrace(traceId, registryMetadata) {
|
|
105
106
|
if (!this.enabled) {
|
|
106
107
|
return null;
|
|
107
108
|
}
|
|
@@ -158,6 +159,7 @@ class TraceReportManager {
|
|
|
158
159
|
}
|
|
159
160
|
// AUTOMATIC CHAIN VERIFICATION with proof
|
|
160
161
|
const [chainStatus, chainError, chainProof] = verifyChainStatusWithProof(events, this.config);
|
|
162
|
+
const complianceScore = (0, executiveSummary_1.calculateComplianceScore)(report, chainStatus, this.config);
|
|
161
163
|
// Build and write trust proof bundle (v2.0.0)
|
|
162
164
|
let trustBundlePath = null;
|
|
163
165
|
const immutability = this.config?.immutability || {};
|
|
@@ -175,7 +177,7 @@ class TraceReportManager {
|
|
|
175
177
|
}
|
|
176
178
|
const compliance = report.model_compliance || {};
|
|
177
179
|
const summary = {
|
|
178
|
-
summary_version: '1.
|
|
180
|
+
summary_version: '1.2.0', // Updated version for compliance score support
|
|
179
181
|
trace_id: traceId,
|
|
180
182
|
generated_at: new Date().toISOString(),
|
|
181
183
|
events: { captured: events.length, dropped },
|
|
@@ -192,10 +194,14 @@ class TraceReportManager {
|
|
|
192
194
|
unknown_models_used: compliance.unknown_models_used || [],
|
|
193
195
|
forbidden_models_blocked: compliance.forbidden_models_blocked || [],
|
|
194
196
|
},
|
|
197
|
+
compliance_score: complianceScore,
|
|
195
198
|
artifacts: artifacts.map((artifact) => ({ ...artifact })),
|
|
196
199
|
report_paths: reportPaths,
|
|
197
200
|
trust_bundle_path: trustBundlePath,
|
|
198
201
|
};
|
|
202
|
+
if (registryMetadata) {
|
|
203
|
+
summary.registry = registryMetadata;
|
|
204
|
+
}
|
|
199
205
|
return { summary };
|
|
200
206
|
}
|
|
201
207
|
}
|
package/dist/runtime.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"AAAA;;GAEG;AAYH,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,aAAa,EAAiB,MAAM,YAAY,CAAC;AAC1D,OAAO,EAAE,YAAY,EAAmB,MAAM,UAAU,CAAC;AACzD,OAAO,EAAE,kBAAkB,EAA6C,MAAM,iBAAiB,CAAC;AAChG,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAC/C,OAAO,EAGL,YAAY,EACZ,UAAU,EACV,UAAU,EACX,MAAM,UAAU,CAAC;AAKlB,OAAO,EAAE,kBAAkB,EAA4B,MAAM,aAAa,CAAC;AAI3E,OAAO,EAAE,aAAa,EAAuB,MAAM,OAAO,CAAC;AAC3D,OAAO,EAAE,WAAW,EAA0B,MAAM,WAAW,CAAC;
|
|
1
|
+
{"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../src/runtime.ts"],"names":[],"mappings":"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"}
|
package/dist/runtime.js
CHANGED
|
@@ -176,6 +176,45 @@ async function initWithConfig(config, failFast) {
|
|
|
176
176
|
}
|
|
177
177
|
}
|
|
178
178
|
dispatcher.start();
|
|
179
|
+
emitSdkInit(state);
|
|
180
|
+
}
|
|
181
|
+
function getSdkVersion() {
|
|
182
|
+
try {
|
|
183
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
184
|
+
const pkg = require('../package.json');
|
|
185
|
+
return pkg?.version || null;
|
|
186
|
+
}
|
|
187
|
+
catch {
|
|
188
|
+
return null;
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
function emitSdkInit(current) {
|
|
192
|
+
const defaults = current.config.defaults || {};
|
|
193
|
+
const instrumentation = current.config.instrumentation || {};
|
|
194
|
+
const telemetry = current.config.telemetry || {};
|
|
195
|
+
const sinkTypes = (current.config.sinks || []).map((sink) => {
|
|
196
|
+
if (sink && typeof sink === 'object') {
|
|
197
|
+
return String(sink.type || 'unknown');
|
|
198
|
+
}
|
|
199
|
+
return String(sink || 'unknown');
|
|
200
|
+
});
|
|
201
|
+
const body = {
|
|
202
|
+
sdk: 'node',
|
|
203
|
+
sdk_version: getSdkVersion(),
|
|
204
|
+
service_name: defaults.service_name,
|
|
205
|
+
environment: defaults.environment,
|
|
206
|
+
instrumentation_enabled: Boolean(instrumentation.enabled),
|
|
207
|
+
instrumentation_targets: instrumentation.targets || [],
|
|
208
|
+
telemetry_enabled: Boolean(telemetry.enabled),
|
|
209
|
+
sink_types: sinkTypes,
|
|
210
|
+
};
|
|
211
|
+
try {
|
|
212
|
+
const event = current.eventBuilder.build('sdk_init', body, { purpose: 'analytics' });
|
|
213
|
+
emitEvent(event);
|
|
214
|
+
}
|
|
215
|
+
catch (error) {
|
|
216
|
+
logger_1.logger.error('Failed to emit sdk_init event: %s', error);
|
|
217
|
+
}
|
|
179
218
|
}
|
|
180
219
|
/**
|
|
181
220
|
* Shutdown Monora with automatic chain verification.
|
|
@@ -253,9 +292,10 @@ function exportTrustPackage(traceId, options) {
|
|
|
253
292
|
function verifyAllPendingChains(current) {
|
|
254
293
|
const reportManager = current.reportManager;
|
|
255
294
|
const pendingTraces = reportManager.getPendingTraceIds();
|
|
295
|
+
const registryMetadata = buildRegistryMetadata(current.registry);
|
|
256
296
|
for (const traceId of pendingTraces) {
|
|
257
297
|
try {
|
|
258
|
-
const result = reportManager.finalizeTrace(traceId);
|
|
298
|
+
const result = reportManager.finalizeTrace(traceId, registryMetadata);
|
|
259
299
|
if (result) {
|
|
260
300
|
const chainStatus = result.summary.chain_integrity?.status;
|
|
261
301
|
if (chainStatus === 'failed') {
|
|
@@ -346,6 +386,17 @@ function isRecoveredEventValid(event, config) {
|
|
|
346
386
|
return false;
|
|
347
387
|
}
|
|
348
388
|
}
|
|
389
|
+
try {
|
|
390
|
+
// Lazy import to avoid circular dependency
|
|
391
|
+
// eslint-disable-next-line @typescript-eslint/no-var-requires
|
|
392
|
+
const { verifyEventHash } = require('./verify');
|
|
393
|
+
if (!verifyEventHash(event)) {
|
|
394
|
+
return false;
|
|
395
|
+
}
|
|
396
|
+
}
|
|
397
|
+
catch {
|
|
398
|
+
return false;
|
|
399
|
+
}
|
|
349
400
|
return true;
|
|
350
401
|
}
|
|
351
402
|
/**
|
|
@@ -355,6 +406,12 @@ function emitEvent(event, options) {
|
|
|
355
406
|
const current = ensureState();
|
|
356
407
|
const recovered = options?.recovered === true;
|
|
357
408
|
if (!recovered) {
|
|
409
|
+
if (current.dataHandling) {
|
|
410
|
+
const classification = event.data_classification ||
|
|
411
|
+
current.config.defaults?.data_classification ||
|
|
412
|
+
'internal';
|
|
413
|
+
event.body = current.dataHandling.applyToEventBody(event.event_type || 'custom', event.body || {}, classification);
|
|
414
|
+
}
|
|
358
415
|
// Sign event before hashing (optional, for authenticity)
|
|
359
416
|
if (current.config.signing?.enabled) {
|
|
360
417
|
const signature = current.signer.sign(event);
|
|
@@ -384,10 +441,16 @@ function emitEvent(event, options) {
|
|
|
384
441
|
logger_1.logger.error('Report recorder error: %s', error);
|
|
385
442
|
}
|
|
386
443
|
}
|
|
444
|
+
const eventType = event.event_type || 'custom';
|
|
445
|
+
if (eventType === 'llm_call' || eventType === 'tool_call' || eventType === 'agent_step') {
|
|
446
|
+
const body = event && typeof event.body === 'object' && event.body ? event.body : {};
|
|
447
|
+
const status = typeof body.status === 'string' ? body.status : 'unknown';
|
|
448
|
+
(0, telemetry_1.recordApiCall)(eventType, status);
|
|
449
|
+
}
|
|
387
450
|
// Publish to subscribers for real-time monitoring
|
|
388
451
|
(0, streaming_1.publishEvent)(event);
|
|
389
452
|
// Record event metric
|
|
390
|
-
(0, telemetry_1.recordEvent)(
|
|
453
|
+
(0, telemetry_1.recordEvent)(eventType, 'success');
|
|
391
454
|
current.dispatcher.emit(event);
|
|
392
455
|
// Commit WAL entry after successful emit
|
|
393
456
|
if (lsn > 0) {
|
|
@@ -450,7 +513,8 @@ function handleTraceCompletion(traceId) {
|
|
|
450
513
|
return;
|
|
451
514
|
}
|
|
452
515
|
try {
|
|
453
|
-
const
|
|
516
|
+
const registryMetadata = buildRegistryMetadata(current.registry);
|
|
517
|
+
const result = current.reportManager.finalizeTrace(traceId, registryMetadata);
|
|
454
518
|
if (!result) {
|
|
455
519
|
return;
|
|
456
520
|
}
|
|
@@ -466,6 +530,20 @@ function handleTraceCompletion(traceId) {
|
|
|
466
530
|
logger_1.logger.error('Trust report generation failed: %s', error);
|
|
467
531
|
}
|
|
468
532
|
}
|
|
533
|
+
function buildRegistryMetadata(registry) {
|
|
534
|
+
if (!registry) {
|
|
535
|
+
return null;
|
|
536
|
+
}
|
|
537
|
+
return {
|
|
538
|
+
version: registry.version,
|
|
539
|
+
hash: registry.registryHash,
|
|
540
|
+
history: (registry.history || []).map((entry) => ({
|
|
541
|
+
version: entry.version,
|
|
542
|
+
date: entry.date,
|
|
543
|
+
changes: Array.isArray(entry.changes) ? [...entry.changes] : [],
|
|
544
|
+
})),
|
|
545
|
+
};
|
|
546
|
+
}
|
|
469
547
|
function wrapCall(fn, config) {
|
|
470
548
|
return function wrapped(...args) {
|
|
471
549
|
const current = ensureState();
|
package/dist/telemetry.d.ts
CHANGED
|
@@ -154,6 +154,10 @@ export declare function closeMetrics(): Promise<void>;
|
|
|
154
154
|
* Record an event metric.
|
|
155
155
|
*/
|
|
156
156
|
export declare function recordEvent(eventType: string, status?: string): void;
|
|
157
|
+
/**
|
|
158
|
+
* Record API call success/error metrics.
|
|
159
|
+
*/
|
|
160
|
+
export declare function recordApiCall(eventType: string, status?: string): void;
|
|
157
161
|
/**
|
|
158
162
|
* Record a policy violation metric.
|
|
159
163
|
*/
|
package/dist/telemetry.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,QAAA,IAAI,oBAAoB,SAAQ,CAAC;AAajC,QAAA,IAAI,gBAAgB,SAAQ,CAAC;AAU7B,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,CAAC;AAElD;;GAEG;AACH,oBAAY,UAAU;IACpB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,SAAS,cAAc;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,
|
|
1
|
+
{"version":3,"file":"telemetry.d.ts","sourceRoot":"","sources":["../src/telemetry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAOH,QAAA,IAAI,oBAAoB,SAAQ,CAAC;AAajC,QAAA,IAAI,gBAAgB,SAAQ,CAAC;AAU7B,OAAO,EAAE,oBAAoB,EAAE,gBAAgB,EAAE,CAAC;AAElD;;GAEG;AACH,oBAAY,UAAU;IACpB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,SAAS,cAAc;CACxB;AAED;;GAEG;AACH,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,UAAU,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,EAAE,CAAC;CACpB;AAED;;GAEG;AACH,eAAO,MAAM,cAAc,EAAE,MAAM,CAAC,MAAM,EAAE,gBAAgB,CAsG3D,CAAC;AAEF;;GAEG;AACH,8BAAsB,cAAc;IAClC,QAAQ,CAAC,SAAS,CAChB,IAAI,EAAE,MAAM,EACZ,KAAK,CAAC,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,IAAI;IACP,QAAQ,CAAC,KAAK,CACZ,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,IAAI;IACP,QAAQ,CAAC,OAAO,CACd,IAAI,EAAE,MAAM,EACZ,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,IAAI;IACP,QAAQ,CAAC,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAChC;AAED;;GAEG;AACH,qBAAa,WAAY,SAAQ,cAAc;IAC7C,SAAS,CACP,KAAK,EAAE,MAAM,EACb,MAAM,CAAC,EAAE,MAAM,EACf,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,IAAI;IAIP,KAAK,CACH,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,IAAI;IAIP,OAAO,CACL,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,MAAM,EACd,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC/B,IAAI;IAID,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B;AAED;;;;GAIG;AACH,qBAAa,iBAAkB,SAAQ,cAAc;IAEnD,OAAO,CAAC,OAAO,CAA+B;IAC9C,OAAO,CAAC,WAAW,CAAC,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAS;IAExB,OAAO,CAAC,MAAM,CAAC,CAAM;gBAET,OAAO,GAAE;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,WAAW,CAAC,EAAE,OAAO,CAAC;QACtB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,OAAO,CAAC,EAAE,MAAM,CAAC;KACb;IA8CN,OAAO,CAAC,eAAe;IA0CvB,SAAS,CACP,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,MAAU,EACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,IAAI;IAWP,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAWzE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAWrE,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAWb,WAAW;IAwBnB,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAS7B;AAED;;;;GAIG;AACH,qBAAa,aAAc,SAAQ,cAAc;IAE/C,OAAO,CAAC,MAAM,CAAM;gBAER,OAAO,GAAE;QACnB,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;KACZ;IA0BN,OAAO,CAAC,UAAU;IASlB,SAAS,CACP,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,MAAU,EACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,IAAI;IAKP,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAKzE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAMrE,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B;AAED;;GAEG;AACH,MAAM,WAAW,eAAe;IAC9B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,OAAO,CAAC,EAAE,YAAY,GAAG,QAAQ,CAAC;IAClC,UAAU,CAAC,EAAE;QACX,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,YAAY,CAAC,EAAE,OAAO,CAAC;QACvB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,MAAM,CAAC,EAAE;QACP,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,OAAO,CAAiB;IAChC,OAAO,CAAC,QAAQ,CAAkB;gBAEtB,MAAM,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,eAAe,CAAA;KAAE;IAKpD,OAAO,CAAC,WAAW;IAiCnB,IAAI,OAAO,IAAI,OAAO,CAErB;IAED,SAAS,CACP,IAAI,EAAE,MAAM,EACZ,KAAK,GAAE,MAAU,EACjB,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAC9B,IAAI;IAIP,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAIzE,OAAO,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI;IAI3E,KAAK,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,KAAK;IAIrD,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B;AAED;;GAEG;AACH,qBAAa,KAAK;IAChB,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,IAAI,CAAS;IACrB,OAAO,CAAC,MAAM,CAAC,CAAyB;IACxC,OAAO,CAAC,SAAS,CAAC,CAAmB;gBAGnC,SAAS,EAAE,gBAAgB,EAC3B,IAAI,EAAE,MAAM,EACZ,MAAM,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC;IAOjC,KAAK,IAAI,KAAK;IAKd,IAAI,IAAI,IAAI;CAMb;AAKD;;GAEG;AACH,wBAAgB,mBAAmB,IAAI,gBAAgB,CAKtD;AAED;;GAEG;AACH,wBAAsB,WAAW,CAAC,MAAM,EAAE;IACxC,SAAS,CAAC,EAAE,eAAe,CAAC;CAC7B,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAM5B;AAED;;GAEG;AACH,wBAAsB,YAAY,IAAI,OAAO,CAAC,IAAI,CAAC,CAMlD;AAID;;GAEG;AACH,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,GAAE,MAAkB,GAAG,IAAI,CAK/E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,GAAE,MAAkB,GAAG,IAAI,CAKjF;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,UAAU,EAAE,MAAM,EAClB,KAAK,GAAE,MAAkB,GACxB,IAAI,CAKN;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI,CAItD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,CAEpD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAC1B,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,MAAM,EACpB,gBAAgB,EAAE,MAAM,GACvB,IAAI,CAcN;AAED;;GAEG;AACH,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAS3E;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAI3D"}
|
package/dist/telemetry.js
CHANGED
|
@@ -11,6 +11,7 @@ exports.getMetricsCollector = getMetricsCollector;
|
|
|
11
11
|
exports.initMetrics = initMetrics;
|
|
12
12
|
exports.closeMetrics = closeMetrics;
|
|
13
13
|
exports.recordEvent = recordEvent;
|
|
14
|
+
exports.recordApiCall = recordApiCall;
|
|
14
15
|
exports.recordViolation = recordViolation;
|
|
15
16
|
exports.recordSinkError = recordSinkError;
|
|
16
17
|
exports.recordQueueDepth = recordQueueDepth;
|
|
@@ -70,6 +71,12 @@ exports.MONORA_METRICS = {
|
|
|
70
71
|
description: 'Total number of events emitted to sinks',
|
|
71
72
|
labels: ['sink_type'],
|
|
72
73
|
},
|
|
74
|
+
monora_api_calls_total: {
|
|
75
|
+
name: 'monora_api_calls_total',
|
|
76
|
+
type: MetricType.COUNTER,
|
|
77
|
+
description: 'Total API call events by type and status',
|
|
78
|
+
labels: ['event_type', 'status'],
|
|
79
|
+
},
|
|
73
80
|
// Queue metrics
|
|
74
81
|
monora_queue_depth: {
|
|
75
82
|
name: 'monora_queue_depth',
|
|
@@ -512,6 +519,15 @@ function recordEvent(eventType, status = 'success') {
|
|
|
512
519
|
status,
|
|
513
520
|
});
|
|
514
521
|
}
|
|
522
|
+
/**
|
|
523
|
+
* Record API call success/error metrics.
|
|
524
|
+
*/
|
|
525
|
+
function recordApiCall(eventType, status = 'unknown') {
|
|
526
|
+
getMetricsCollector().increment('monora_api_calls_total', 1, {
|
|
527
|
+
event_type: eventType,
|
|
528
|
+
status,
|
|
529
|
+
});
|
|
530
|
+
}
|
|
515
531
|
/**
|
|
516
532
|
* Record a policy violation metric.
|
|
517
533
|
*/
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "monora-ai",
|
|
3
|
-
"version": "1.9.
|
|
3
|
+
"version": "1.9.2",
|
|
4
4
|
"description": "Lightweight governance and trace SDK for AI systems",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
},
|
|
17
17
|
"files": [
|
|
18
18
|
"dist",
|
|
19
|
+
"assets",
|
|
19
20
|
"scripts",
|
|
20
21
|
"README.md",
|
|
21
22
|
"LICENSE"
|
|
@@ -37,7 +38,7 @@
|
|
|
37
38
|
},
|
|
38
39
|
"repository": {
|
|
39
40
|
"type": "git",
|
|
40
|
-
"url": "https://github.com/
|
|
41
|
+
"url": "https://github.com/JamesMcDaniel04/Monora_SDK"
|
|
41
42
|
},
|
|
42
43
|
"devDependencies": {
|
|
43
44
|
"@types/jest": "^30.0.0",
|