@neuroverseos/governance 0.4.3 → 0.5.1
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 +189 -0
- package/dist/adapters/autoresearch.js +2 -2
- package/dist/adapters/deep-agents.js +2 -2
- package/dist/adapters/express.js +2 -2
- package/dist/adapters/github.js +2 -2
- package/dist/adapters/index.js +23 -21
- package/dist/adapters/langchain.js +2 -2
- package/dist/adapters/mentraos.js +8 -6
- package/dist/adapters/openai.js +2 -2
- package/dist/adapters/openclaw.js +2 -2
- package/dist/{add-XSANI3FK.js → add-JP7TC2K3.js} +1 -1
- package/dist/admin/index.cjs +2214 -0
- package/dist/admin/index.d.cts +362 -0
- package/dist/admin/index.d.ts +362 -0
- package/dist/admin/index.js +703 -0
- package/dist/{build-EGBGZFIJ.js → build-THUEYMVT.js} +5 -5
- package/dist/{chunk-YJ34R5NB.js → chunk-5RAQ5DZW.js} +3 -3
- package/dist/{chunk-RDA7ISWC.js → chunk-6UPEUMJ2.js} +3 -3
- package/dist/chunk-7UU7V3AD.js +447 -0
- package/dist/{chunk-ZEIT2QLM.js → chunk-EK77AJAH.js} +22 -4
- package/dist/{chunk-3S5AD4AB.js → chunk-FGOSKQDE.js} +3 -3
- package/dist/{chunk-GTPV2XGO.js → chunk-GJ6LM4JZ.js} +1 -441
- package/dist/chunk-H3REGQRI.js +107 -0
- package/dist/{chunk-J2IZBHXJ.js → chunk-LAKUB76X.js} +3 -3
- package/dist/{chunk-FVOGUCB6.js → chunk-R23T5SZG.js} +3 -3
- package/dist/{chunk-A7SHG75T.js → chunk-RF2L5SYG.js} +3 -3
- package/dist/{chunk-QMVQ6KPL.js → chunk-TL4DLMMW.js} +3 -3
- package/dist/{chunk-AV7XJJWK.js → chunk-TZBERHFM.js} +3 -3
- package/dist/{chunk-3AYKQHYI.js → chunk-UZBW44KD.js} +3 -3
- package/dist/{chunk-FS2UUJJO.js → chunk-XPMZB46F.js} +3 -3
- package/dist/cli/neuroverse.cjs +962 -284
- package/dist/cli/neuroverse.js +46 -22
- package/dist/cli/plan.js +1 -1
- package/dist/cli/run.cjs +242 -139
- package/dist/cli/run.js +23 -3
- package/dist/{demo-6OQYWRR6.js → demo-N5K4VXJW.js} +3 -3
- package/dist/{derive-7Y7YWVLU.js → derive-5LOMN7GO.js} +4 -4
- package/dist/{equity-penalties-NVBAB5WL.js → equity-penalties-PYCJ3Q4U.js} +6 -6
- package/dist/{explain-HDFN4ION.js → explain-42TVC3QD.js} +1 -1
- package/dist/{guard-6KSCWT2W.js → guard-TPYDFG6V.js} +16 -4
- package/dist/{improve-2PWGGO5B.js → improve-HLZGJ54Z.js} +3 -3
- package/dist/index.cjs +19 -1
- package/dist/index.d.cts +2 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.js +27 -27
- package/dist/keygen-BSZH3NM2.js +77 -0
- package/dist/{lens-MHMUDCMQ.js → lens-NFGZHD76.js} +1 -1
- package/dist/{mcp-server-TNIWZ7B5.js → mcp-server-5XXNG6VC.js} +2 -2
- package/dist/migrate-NH5PVMX4.js +221 -0
- package/dist/{playground-3FLDGBET.js → playground-2EU5CFIH.js} +4 -4
- package/dist/{redteam-HV6LMKEH.js → redteam-VK6OVHAE.js} +3 -3
- package/dist/{session-XZP2754M.js → session-NGA4DUPL.js} +2 -2
- package/dist/sign-RRELHKWM.js +11 -0
- package/dist/{simulate-VT437EEL.js → simulate-4YNOBMES.js} +1 -1
- package/dist/{test-4WTX6RKQ.js → test-HDBPMQTG.js} +3 -3
- package/dist/{validate-M52DX22Y.js → validate-6MFQZ2EG.js} +1 -1
- package/dist/verify-6AVTWX75.js +151 -0
- package/dist/{world-O4HTQPDP.js → world-H5WVURKU.js} +1 -1
- package/dist/{world-loader-YTYFOP7D.js → world-loader-J47PCPDZ.js} +1 -1
- package/package.json +22 -10
- package/dist/{behavioral-SLW7ALEK.js → behavioral-SPWPGYXL.js} +3 -3
- package/dist/{bootstrap-2OW5ZLBL.js → bootstrap-IP5QMC3Q.js} +3 -3
- package/dist/{chunk-I4RTIMLX.js → chunk-EQUAWNXW.js} +0 -0
- package/dist/{chunk-DA5MHFRR.js → chunk-NTHXZAW4.js} +3 -3
- package/dist/{chunk-FHXXD2TI.js → chunk-QZ666FCV.js} +6 -6
- package/dist/{configure-ai-LL3VAPQW.js → configure-ai-5MP5DWTT.js} +3 -3
- package/dist/{decision-flow-3K4D72G4.js → decision-flow-IJPNMVQK.js} +3 -3
- /package/dist/{doctor-EC5OYTI3.js → doctor-Q5APJOTS.js} +0 -0
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
import {
|
|
2
2
|
validateWorld
|
|
3
3
|
} from "./chunk-7P3S7MAY.js";
|
|
4
|
-
import {
|
|
5
|
-
evaluateGuard
|
|
6
|
-
} from "./chunk-ZAF6JH23.js";
|
|
7
4
|
import {
|
|
8
5
|
DEFAULT_BUNDLED_WORLD,
|
|
9
6
|
loadBundledWorld,
|
|
10
7
|
loadWorld
|
|
11
|
-
} from "./chunk-
|
|
8
|
+
} from "./chunk-EQUAWNXW.js";
|
|
9
|
+
import {
|
|
10
|
+
evaluateGuard
|
|
11
|
+
} from "./chunk-ZAF6JH23.js";
|
|
12
12
|
import "./chunk-QLPTHTVB.js";
|
|
13
13
|
import "./chunk-QWGCMQQD.js";
|
|
14
14
|
|
|
@@ -2,10 +2,10 @@ import {
|
|
|
2
2
|
SessionManager,
|
|
3
3
|
runInteractiveMode,
|
|
4
4
|
runPipeMode
|
|
5
|
-
} from "./chunk-
|
|
5
|
+
} from "./chunk-EK77AJAH.js";
|
|
6
6
|
import "./chunk-D2UCV5AK.js";
|
|
7
|
+
import "./chunk-EQUAWNXW.js";
|
|
7
8
|
import "./chunk-ZAF6JH23.js";
|
|
8
|
-
import "./chunk-I4RTIMLX.js";
|
|
9
9
|
import "./chunk-QLPTHTVB.js";
|
|
10
10
|
import "./chunk-QWGCMQQD.js";
|
|
11
11
|
export {
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
import {
|
|
2
|
+
buildManifest,
|
|
3
|
+
canonicalManifest
|
|
4
|
+
} from "./chunk-H3REGQRI.js";
|
|
5
|
+
import "./chunk-QWGCMQQD.js";
|
|
6
|
+
|
|
7
|
+
// src/cli/verify.ts
|
|
8
|
+
import { createHash, verify } from "crypto";
|
|
9
|
+
import { readFileSync, existsSync } from "fs";
|
|
10
|
+
import { join } from "path";
|
|
11
|
+
import { homedir } from "os";
|
|
12
|
+
var USAGE = `
|
|
13
|
+
neuroverse verify \u2014 Verify a signed world artifact
|
|
14
|
+
|
|
15
|
+
Usage:
|
|
16
|
+
neuroverse verify --world <dir> [--key <path>]
|
|
17
|
+
|
|
18
|
+
Options:
|
|
19
|
+
--world <dir> World directory to verify (required)
|
|
20
|
+
--key <path> Public key path (default: ~/.neuroverse/keys/neuroverse.pub)
|
|
21
|
+
--json Output result as JSON
|
|
22
|
+
|
|
23
|
+
Exit codes:
|
|
24
|
+
0 Valid \u2014 world matches signature
|
|
25
|
+
1 Invalid \u2014 signature mismatch, tampered files, or missing signature
|
|
26
|
+
|
|
27
|
+
Examples:
|
|
28
|
+
neuroverse verify --world ./world/
|
|
29
|
+
neuroverse verify --world ./world/ --key ./keys/production.pub
|
|
30
|
+
`.trim();
|
|
31
|
+
function parseArgs(argv) {
|
|
32
|
+
let worldPath = "";
|
|
33
|
+
let keyPath = join(homedir(), ".neuroverse", "keys", "neuroverse.pub");
|
|
34
|
+
let json = false;
|
|
35
|
+
let help = false;
|
|
36
|
+
for (let i = 0; i < argv.length; i++) {
|
|
37
|
+
const arg = argv[i];
|
|
38
|
+
if (arg === "--world" && argv[i + 1]) {
|
|
39
|
+
worldPath = argv[++i];
|
|
40
|
+
} else if (arg === "--key" && argv[i + 1]) {
|
|
41
|
+
keyPath = argv[++i];
|
|
42
|
+
} else if (arg === "--json") {
|
|
43
|
+
json = true;
|
|
44
|
+
} else if (arg === "--help" || arg === "-h") {
|
|
45
|
+
help = true;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return { worldPath, keyPath, json, help };
|
|
49
|
+
}
|
|
50
|
+
async function main(argv = process.argv.slice(2)) {
|
|
51
|
+
const args = parseArgs(argv);
|
|
52
|
+
if (args.help) {
|
|
53
|
+
process.stdout.write(USAGE + "\n");
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
if (!args.worldPath) {
|
|
57
|
+
process.stderr.write("Error: --world <dir> is required.\n");
|
|
58
|
+
process.exit(1);
|
|
59
|
+
}
|
|
60
|
+
const result = {
|
|
61
|
+
valid: false,
|
|
62
|
+
worldPath: args.worldPath,
|
|
63
|
+
fileCount: 0,
|
|
64
|
+
errors: []
|
|
65
|
+
};
|
|
66
|
+
const sigPath = join(args.worldPath, ".nv-signature.json");
|
|
67
|
+
if (!existsSync(sigPath)) {
|
|
68
|
+
result.errors.push("No .nv-signature.json found \u2014 world is unsigned.");
|
|
69
|
+
outputResult(result, args.json);
|
|
70
|
+
process.exit(1);
|
|
71
|
+
}
|
|
72
|
+
let artifact;
|
|
73
|
+
try {
|
|
74
|
+
artifact = JSON.parse(readFileSync(sigPath, "utf-8"));
|
|
75
|
+
} catch {
|
|
76
|
+
result.errors.push("Cannot parse .nv-signature.json \u2014 file is corrupt.");
|
|
77
|
+
outputResult(result, args.json);
|
|
78
|
+
process.exit(1);
|
|
79
|
+
return;
|
|
80
|
+
}
|
|
81
|
+
result.signedAt = artifact.signedAt;
|
|
82
|
+
result.fileCount = Object.keys(artifact.files).length;
|
|
83
|
+
let publicKey;
|
|
84
|
+
try {
|
|
85
|
+
publicKey = readFileSync(args.keyPath, "utf-8");
|
|
86
|
+
} catch {
|
|
87
|
+
result.errors.push(`Cannot read public key at ${args.keyPath}`);
|
|
88
|
+
outputResult(result, args.json);
|
|
89
|
+
process.exit(1);
|
|
90
|
+
return;
|
|
91
|
+
}
|
|
92
|
+
const currentFiles = buildManifest(args.worldPath);
|
|
93
|
+
for (const file of Object.keys(currentFiles)) {
|
|
94
|
+
if (!(file in artifact.files)) {
|
|
95
|
+
result.errors.push(`Added: ${file} (not in signature)`);
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
for (const [file, hash] of Object.entries(artifact.files)) {
|
|
99
|
+
if (!(file in currentFiles)) {
|
|
100
|
+
result.errors.push(`Missing: ${file} (was in signature)`);
|
|
101
|
+
} else if (currentFiles[file] !== hash) {
|
|
102
|
+
result.errors.push(`Changed: ${file} (hash mismatch)`);
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
if (result.errors.length > 0) {
|
|
106
|
+
outputResult(result, args.json);
|
|
107
|
+
process.exit(1);
|
|
108
|
+
return;
|
|
109
|
+
}
|
|
110
|
+
const canonical = canonicalManifest(artifact.files);
|
|
111
|
+
const manifestHash = createHash("sha256").update(canonical).digest("hex");
|
|
112
|
+
if (manifestHash !== artifact.manifestHash) {
|
|
113
|
+
result.errors.push("Manifest hash mismatch \u2014 signature metadata is corrupt.");
|
|
114
|
+
outputResult(result, args.json);
|
|
115
|
+
process.exit(1);
|
|
116
|
+
return;
|
|
117
|
+
}
|
|
118
|
+
const isValid = verify(null, Buffer.from(manifestHash), publicKey, Buffer.from(artifact.signature, "base64"));
|
|
119
|
+
if (!isValid) {
|
|
120
|
+
result.errors.push("Signature verification failed \u2014 wrong key or tampered manifest.");
|
|
121
|
+
outputResult(result, args.json);
|
|
122
|
+
process.exit(1);
|
|
123
|
+
return;
|
|
124
|
+
}
|
|
125
|
+
result.valid = true;
|
|
126
|
+
outputResult(result, args.json);
|
|
127
|
+
}
|
|
128
|
+
function outputResult(result, json) {
|
|
129
|
+
if (json) {
|
|
130
|
+
process.stdout.write(JSON.stringify(result, null, 2) + "\n");
|
|
131
|
+
return;
|
|
132
|
+
}
|
|
133
|
+
if (result.valid) {
|
|
134
|
+
process.stdout.write(`VALID \u2014 ${result.fileCount} files verified
|
|
135
|
+
`);
|
|
136
|
+
process.stdout.write(` Signed at: ${result.signedAt}
|
|
137
|
+
`);
|
|
138
|
+
process.stdout.write(` World: ${result.worldPath}
|
|
139
|
+
`);
|
|
140
|
+
} else {
|
|
141
|
+
process.stdout.write(`INVALID \u2014 signature verification failed
|
|
142
|
+
`);
|
|
143
|
+
for (const error of result.errors) {
|
|
144
|
+
process.stdout.write(` ${error}
|
|
145
|
+
`);
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
export {
|
|
150
|
+
main
|
|
151
|
+
};
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@neuroverseos/governance",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.5.1",
|
|
4
4
|
"description": "Deterministic governance engine for AI agents — enforce worlds (permanent rules) and plans (mission constraints) with full audit trace",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"type": "module",
|
|
@@ -60,31 +60,43 @@
|
|
|
60
60
|
},
|
|
61
61
|
"./adapters/mentraos": {
|
|
62
62
|
"types": "./dist/adapters/mentraos.d.ts",
|
|
63
|
-
"import": "./dist/adapters/mentraos.js"
|
|
63
|
+
"import": "./dist/adapters/mentraos.js",
|
|
64
|
+
"require": "./dist/adapters/mentraos.cjs"
|
|
64
65
|
},
|
|
65
66
|
"./adapters/github": {
|
|
66
67
|
"types": "./dist/adapters/github.d.ts",
|
|
67
|
-
"import": "./dist/adapters/github.js"
|
|
68
|
+
"import": "./dist/adapters/github.js",
|
|
69
|
+
"require": "./dist/adapters/github.cjs"
|
|
68
70
|
},
|
|
69
71
|
"./engine/guard-engine": {
|
|
70
72
|
"types": "./dist/engine/guard-engine.d.ts",
|
|
71
|
-
"import": "./dist/engine/guard-engine.js"
|
|
73
|
+
"import": "./dist/engine/guard-engine.js",
|
|
74
|
+
"require": "./dist/engine/guard-engine.cjs"
|
|
72
75
|
},
|
|
73
76
|
"./engine/simulate-engine": {
|
|
74
77
|
"types": "./dist/engine/simulate-engine.d.ts",
|
|
75
|
-
"import": "./dist/engine/simulate-engine.js"
|
|
78
|
+
"import": "./dist/engine/simulate-engine.js",
|
|
79
|
+
"require": "./dist/engine/simulate-engine.cjs"
|
|
76
80
|
},
|
|
77
81
|
"./engine/bootstrap-parser": {
|
|
78
82
|
"types": "./dist/engine/bootstrap-parser.d.ts",
|
|
79
|
-
"import": "./dist/engine/bootstrap-parser.js"
|
|
83
|
+
"import": "./dist/engine/bootstrap-parser.js",
|
|
84
|
+
"require": "./dist/engine/bootstrap-parser.cjs"
|
|
80
85
|
},
|
|
81
86
|
"./engine/bootstrap-emitter": {
|
|
82
87
|
"types": "./dist/engine/bootstrap-emitter.d.ts",
|
|
83
|
-
"import": "./dist/engine/bootstrap-emitter.js"
|
|
88
|
+
"import": "./dist/engine/bootstrap-emitter.js",
|
|
89
|
+
"require": "./dist/engine/bootstrap-emitter.cjs"
|
|
84
90
|
},
|
|
85
91
|
"./types": {
|
|
86
92
|
"types": "./dist/types.d.ts",
|
|
87
|
-
"import": "./dist/types.js"
|
|
93
|
+
"import": "./dist/types.js",
|
|
94
|
+
"require": "./dist/types.cjs"
|
|
95
|
+
},
|
|
96
|
+
"./admin": {
|
|
97
|
+
"types": "./dist/admin/index.d.ts",
|
|
98
|
+
"import": "./dist/admin/index.js",
|
|
99
|
+
"require": "./dist/admin/index.cjs"
|
|
88
100
|
}
|
|
89
101
|
},
|
|
90
102
|
"bin": {
|
|
@@ -107,14 +119,14 @@
|
|
|
107
119
|
],
|
|
108
120
|
"scripts": {
|
|
109
121
|
"prepare": "npm run build",
|
|
110
|
-
"build": "tsup src/index.ts src/types.ts src/cli/neuroverse.ts src/cli/plan.ts src/cli/run.ts src/adapters/index.ts src/adapters/langchain.ts src/adapters/openai.ts src/adapters/openclaw.ts src/adapters/express.ts src/adapters/autoresearch.ts src/adapters/deep-agents.ts src/adapters/mentraos.ts src/adapters/github.ts src/engine/guard-engine.ts src/engine/simulate-engine.ts src/engine/bootstrap-parser.ts src/engine/bootstrap-emitter.ts src/spatial/index.ts --format esm,cjs --dts --clean && npm run build:browser && cp src/worlds/*.nv-world.md dist/worlds/ && cp src/spatial/zones/*.nv-world.md dist/worlds/ && npm run build:viz",
|
|
122
|
+
"build": "tsup src/index.ts src/types.ts src/cli/neuroverse.ts src/cli/plan.ts src/cli/run.ts src/adapters/index.ts src/adapters/langchain.ts src/adapters/openai.ts src/adapters/openclaw.ts src/adapters/express.ts src/adapters/autoresearch.ts src/adapters/deep-agents.ts src/adapters/mentraos.ts src/adapters/github.ts src/engine/guard-engine.ts src/engine/simulate-engine.ts src/engine/bootstrap-parser.ts src/engine/bootstrap-emitter.ts src/spatial/index.ts src/admin/index.ts --format esm,cjs --dts --clean && npm run build:browser && cp src/worlds/*.nv-world.md dist/worlds/ && cp src/spatial/zones/*.nv-world.md dist/worlds/ && npm run build:viz",
|
|
111
123
|
"build:browser": "tsup src/browser.ts --format iife --global-name NeuroVerse --outDir dist --no-dts",
|
|
112
124
|
"build:viz": "vite build",
|
|
113
125
|
"dev:viz": "vite dev",
|
|
114
126
|
"prebuild": "mkdir -p dist/worlds",
|
|
115
127
|
"dev": "tsup src/index.ts src/cli/neuroverse.ts --format esm,cjs --dts --watch",
|
|
116
128
|
"prepublishOnly": "npm run build",
|
|
117
|
-
"test": "vitest
|
|
129
|
+
"test": "node scripts-vitest-runner.mjs",
|
|
118
130
|
"test:watch": "vitest"
|
|
119
131
|
},
|
|
120
132
|
"devDependencies": {
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
2
|
-
readAuditLog
|
|
3
|
-
} from "./chunk-2VAWP6FI.js";
|
|
4
1
|
import {
|
|
5
2
|
adaptationFromVerdict,
|
|
6
3
|
detectBehavioralPatterns,
|
|
7
4
|
generateAdaptationNarrative
|
|
8
5
|
} from "./chunk-CNSO6XW5.js";
|
|
6
|
+
import {
|
|
7
|
+
readAuditLog
|
|
8
|
+
} from "./chunk-2VAWP6FI.js";
|
|
9
9
|
import "./chunk-ZAF6JH23.js";
|
|
10
10
|
import "./chunk-QLPTHTVB.js";
|
|
11
11
|
import "./chunk-QWGCMQQD.js";
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import {
|
|
2
2
|
BOOTSTRAP_EXIT_CODES
|
|
3
3
|
} from "./chunk-4NGDRRQH.js";
|
|
4
|
-
import {
|
|
5
|
-
emitWorldDefinition
|
|
6
|
-
} from "./chunk-YPCVY4GS.js";
|
|
7
4
|
import {
|
|
8
5
|
parseWorldMarkdown
|
|
9
6
|
} from "./chunk-3NZMMSOW.js";
|
|
7
|
+
import {
|
|
8
|
+
emitWorldDefinition
|
|
9
|
+
} from "./chunk-YPCVY4GS.js";
|
|
10
10
|
import "./chunk-QWGCMQQD.js";
|
|
11
11
|
|
|
12
12
|
// src/cli/bootstrap.ts
|
|
File without changes
|
|
@@ -1,18 +1,18 @@
|
|
|
1
|
-
import {
|
|
2
|
-
createProvider
|
|
3
|
-
} from "./chunk-INWQHLPS.js";
|
|
4
1
|
import {
|
|
5
2
|
loadConfig
|
|
6
3
|
} from "./chunk-OT6PXH54.js";
|
|
4
|
+
import {
|
|
5
|
+
createProvider
|
|
6
|
+
} from "./chunk-INWQHLPS.js";
|
|
7
7
|
import {
|
|
8
8
|
validateWorld
|
|
9
9
|
} from "./chunk-7P3S7MAY.js";
|
|
10
|
-
import {
|
|
11
|
-
emitWorldDefinition
|
|
12
|
-
} from "./chunk-YPCVY4GS.js";
|
|
13
10
|
import {
|
|
14
11
|
parseWorldMarkdown
|
|
15
12
|
} from "./chunk-3NZMMSOW.js";
|
|
13
|
+
import {
|
|
14
|
+
emitWorldDefinition
|
|
15
|
+
} from "./chunk-YPCVY4GS.js";
|
|
16
16
|
|
|
17
17
|
// src/engine/derive-normalizer.ts
|
|
18
18
|
function findSections(lines) {
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
import {
|
|
2
2
|
CONFIGURE_AI_EXIT_CODES
|
|
3
3
|
} from "./chunk-FMSTRBBS.js";
|
|
4
|
-
import {
|
|
5
|
-
createProvider
|
|
6
|
-
} from "./chunk-INWQHLPS.js";
|
|
7
4
|
import {
|
|
8
5
|
getConfigPath,
|
|
9
6
|
loadConfig,
|
|
10
7
|
redactConfig,
|
|
11
8
|
saveConfig
|
|
12
9
|
} from "./chunk-OT6PXH54.js";
|
|
10
|
+
import {
|
|
11
|
+
createProvider
|
|
12
|
+
} from "./chunk-INWQHLPS.js";
|
|
13
13
|
import "./chunk-QWGCMQQD.js";
|
|
14
14
|
|
|
15
15
|
// src/cli/configure-ai.ts
|
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import {
|
|
2
|
-
readAuditLog
|
|
3
|
-
} from "./chunk-2VAWP6FI.js";
|
|
4
1
|
import {
|
|
5
2
|
generateDecisionFlow,
|
|
6
3
|
renderDecisionFlow
|
|
7
4
|
} from "./chunk-D2UCV5AK.js";
|
|
5
|
+
import {
|
|
6
|
+
readAuditLog
|
|
7
|
+
} from "./chunk-2VAWP6FI.js";
|
|
8
8
|
import "./chunk-ZAF6JH23.js";
|
|
9
9
|
import "./chunk-QLPTHTVB.js";
|
|
10
10
|
import "./chunk-QWGCMQQD.js";
|
|
File without changes
|