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
package/scripts/postinstall.js
CHANGED
|
@@ -1,14 +1,29 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
2
|
/**
|
|
3
3
|
* Postinstall script for Monora SDK
|
|
4
|
-
*
|
|
4
|
+
*
|
|
5
|
+
* Shows a non-blocking welcome message with setup instructions.
|
|
6
|
+
* Opt-in only - no interactive prompts or data collection during install.
|
|
7
|
+
*
|
|
8
|
+
* Users can register later via: npx monora-ai init
|
|
5
9
|
*/
|
|
6
10
|
|
|
7
|
-
const { execSync, spawn } = require('child_process');
|
|
8
11
|
const fs = require('fs');
|
|
9
12
|
const path = require('path');
|
|
10
|
-
|
|
11
|
-
|
|
13
|
+
const crypto = require('crypto');
|
|
14
|
+
|
|
15
|
+
// ANSI color codes for terminal output
|
|
16
|
+
const colors = {
|
|
17
|
+
reset: '\x1b[0m',
|
|
18
|
+
bold: '\x1b[1m',
|
|
19
|
+
dim: '\x1b[2m',
|
|
20
|
+
cyan: '\x1b[36m',
|
|
21
|
+
green: '\x1b[32m',
|
|
22
|
+
yellow: '\x1b[33m',
|
|
23
|
+
blue: '\x1b[34m',
|
|
24
|
+
};
|
|
25
|
+
|
|
26
|
+
// Check if we're in a CI environment
|
|
12
27
|
function isCI() {
|
|
13
28
|
return !!(
|
|
14
29
|
process.env.CI ||
|
|
@@ -19,40 +34,71 @@ function isCI() {
|
|
|
19
34
|
process.env.CIRCLECI ||
|
|
20
35
|
process.env.TRAVIS ||
|
|
21
36
|
process.env.JENKINS_URL ||
|
|
37
|
+
process.env.BUILDKITE ||
|
|
38
|
+
process.env.TF_BUILD ||
|
|
22
39
|
process.env.MONORA_SKIP_POSTINSTALL
|
|
23
40
|
);
|
|
24
41
|
}
|
|
25
42
|
|
|
26
|
-
|
|
27
|
-
|
|
43
|
+
// Check if terminal supports colors
|
|
44
|
+
function supportsColor() {
|
|
45
|
+
if (process.env.NO_COLOR || process.env.TERM === 'dumb') {
|
|
46
|
+
return false;
|
|
47
|
+
}
|
|
48
|
+
return process.stdout.isTTY;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
// Colorize text if supported
|
|
52
|
+
function colorize(text, color) {
|
|
53
|
+
if (!supportsColor()) {
|
|
54
|
+
return text;
|
|
55
|
+
}
|
|
56
|
+
return `${color}${text}${colors.reset}`;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
// Get the Monora data directory
|
|
60
|
+
function getMonoraDataDir() {
|
|
61
|
+
const home = process.env.HOME || process.env.USERPROFILE;
|
|
62
|
+
if (!home) {
|
|
63
|
+
return null;
|
|
64
|
+
}
|
|
65
|
+
return path.join(home, '.monora');
|
|
28
66
|
}
|
|
29
67
|
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
// Skip if this is the monora-ai package itself
|
|
41
|
-
if (pkg.name !== 'monora-ai') {
|
|
42
|
-
return dir;
|
|
43
|
-
}
|
|
44
|
-
} catch (e) {
|
|
45
|
-
// Continue searching
|
|
46
|
-
}
|
|
68
|
+
// Record install timestamp for analytics (local only)
|
|
69
|
+
function recordInstallTimestamp() {
|
|
70
|
+
const dataDir = getMonoraDataDir();
|
|
71
|
+
if (!dataDir) {
|
|
72
|
+
return;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
try {
|
|
76
|
+
if (!fs.existsSync(dataDir)) {
|
|
77
|
+
fs.mkdirSync(dataDir, { recursive: true });
|
|
47
78
|
}
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
79
|
+
|
|
80
|
+
const installPath = path.join(dataDir, 'install_info.json');
|
|
81
|
+
const existingData = fs.existsSync(installPath)
|
|
82
|
+
? JSON.parse(fs.readFileSync(installPath, 'utf8'))
|
|
83
|
+
: {};
|
|
84
|
+
|
|
85
|
+
const installInfo = {
|
|
86
|
+
...existingData,
|
|
87
|
+
install_id: existingData.install_id || crypto.randomUUID().replace(/-/g, '').slice(0, 32),
|
|
88
|
+
sdk: 'node',
|
|
89
|
+
first_installed_at: existingData.first_installed_at || new Date().toISOString(),
|
|
90
|
+
last_installed_at: new Date().toISOString(),
|
|
91
|
+
install_count: (existingData.install_count || 0) + 1,
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
fs.writeFileSync(installPath, JSON.stringify(installInfo, null, 2));
|
|
95
|
+
} catch {
|
|
96
|
+
// Silent fail - never break install
|
|
51
97
|
}
|
|
52
|
-
return process.cwd();
|
|
53
98
|
}
|
|
54
99
|
|
|
55
|
-
|
|
100
|
+
// Check if config already exists in project
|
|
101
|
+
function configExists() {
|
|
56
102
|
const configFiles = [
|
|
57
103
|
'monora.yml',
|
|
58
104
|
'monora.yaml',
|
|
@@ -62,85 +108,61 @@ function configExists(projectRoot) {
|
|
|
62
108
|
'.monora.json',
|
|
63
109
|
];
|
|
64
110
|
|
|
65
|
-
return configFiles.some(file =>
|
|
66
|
-
fs.existsSync(path.join(projectRoot, file))
|
|
67
|
-
);
|
|
111
|
+
return configFiles.some(file => fs.existsSync(path.join(process.cwd(), file)));
|
|
68
112
|
}
|
|
69
113
|
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
console.log('\nš¦ Monora SDK installed successfully.');
|
|
74
|
-
console.log(' Run "npx monora init" to configure.\n');
|
|
75
|
-
return;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
const projectRoot = findProjectRoot();
|
|
114
|
+
// Display welcome message
|
|
115
|
+
function showWelcomeMessage() {
|
|
116
|
+
const hasConfig = configExists();
|
|
79
117
|
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
return;
|
|
84
|
-
}
|
|
118
|
+
console.log('');
|
|
119
|
+
console.log(colorize(' Monora AI Governance SDK', colors.bold + colors.cyan));
|
|
120
|
+
console.log('');
|
|
85
121
|
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
console.log('\nš¦ Monora SDK installed successfully!');
|
|
122
|
+
if (hasConfig) {
|
|
123
|
+
console.log(colorize(' ā Existing configuration detected', colors.green));
|
|
89
124
|
console.log('');
|
|
90
|
-
|
|
91
|
-
console.log('
|
|
92
|
-
console.log('
|
|
93
|
-
console.log('
|
|
94
|
-
console.log('
|
|
125
|
+
} else {
|
|
126
|
+
console.log(colorize(' Quick Start:', colors.bold));
|
|
127
|
+
console.log('');
|
|
128
|
+
console.log(' ' + colorize('Option 1:', colors.yellow) + ' Zero-config (recommended)');
|
|
129
|
+
console.log(colorize(' import { init } from "monora-ai";', colors.dim));
|
|
130
|
+
console.log(colorize(' init();', colors.dim));
|
|
131
|
+
console.log('');
|
|
132
|
+
console.log(' ' + colorize('Option 2:', colors.yellow) + ' Run setup wizard');
|
|
133
|
+
console.log(colorize(' npx monora-ai init', colors.dim));
|
|
95
134
|
console.log('');
|
|
96
|
-
return;
|
|
97
135
|
}
|
|
98
136
|
|
|
99
|
-
|
|
100
|
-
console.log('
|
|
137
|
+
console.log(colorize(' Documentation:', colors.bold) + ' https://docs.monora.ai');
|
|
138
|
+
console.log(colorize(' GitHub:', colors.bold) + ' https://github.com/monora-ai/monora');
|
|
139
|
+
console.log('');
|
|
140
|
+
}
|
|
101
141
|
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
child.on('close', (code) => {
|
|
121
|
-
if (code !== 0) {
|
|
122
|
-
console.log('\n Run "npx monora init" to configure manually.\n');
|
|
123
|
-
}
|
|
124
|
-
});
|
|
125
|
-
} else {
|
|
126
|
-
// CLI not built yet (fresh install), show manual instructions
|
|
127
|
-
console.log('š¦ Monora SDK installed successfully!');
|
|
128
|
-
console.log('');
|
|
129
|
-
console.log('Quick Start:');
|
|
130
|
-
console.log(' Option 1: Run "npx monora init" to configure');
|
|
131
|
-
console.log(' Option 2: Use zero-config in your code:');
|
|
132
|
-
console.log(' import { init } from "monora-ai";');
|
|
133
|
-
console.log(' init();');
|
|
134
|
-
console.log('');
|
|
135
|
-
}
|
|
136
|
-
} catch (err) {
|
|
137
|
-
// Silent fail - don't break npm install
|
|
138
|
-
console.log('\nš¦ Monora SDK installed.');
|
|
139
|
-
console.log(' Run "npx monora init" to configure.\n');
|
|
142
|
+
// Display minimal CI message
|
|
143
|
+
function showCIMessage() {
|
|
144
|
+
console.log('');
|
|
145
|
+
console.log('Monora SDK installed. Use init() for zero-config or run "npx monora-ai init".');
|
|
146
|
+
console.log('');
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
// Main function
|
|
150
|
+
function main() {
|
|
151
|
+
// Record install timestamp (local only, non-blocking)
|
|
152
|
+
recordInstallTimestamp();
|
|
153
|
+
|
|
154
|
+
// Show appropriate message based on environment
|
|
155
|
+
if (isCI()) {
|
|
156
|
+
showCIMessage();
|
|
157
|
+
} else {
|
|
158
|
+
showWelcomeMessage();
|
|
140
159
|
}
|
|
141
160
|
}
|
|
142
161
|
|
|
143
|
-
|
|
162
|
+
// Execute
|
|
163
|
+
try {
|
|
164
|
+
main();
|
|
165
|
+
} catch {
|
|
144
166
|
// Never fail the install
|
|
145
|
-
console.log('\
|
|
146
|
-
}
|
|
167
|
+
console.log('\nMonora SDK installed.\n');
|
|
168
|
+
}
|