@beingmartinbmc/ojas 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +308 -0
- package/dist/aahar/index.d.ts +179 -0
- package/dist/aahar/index.d.ts.map +1 -0
- package/dist/aahar/index.js +657 -0
- package/dist/aahar/index.js.map +1 -0
- package/dist/aahar/scoring.d.ts +85 -0
- package/dist/aahar/scoring.d.ts.map +1 -0
- package/dist/aahar/scoring.js +268 -0
- package/dist/aahar/scoring.js.map +1 -0
- package/dist/agni/index.d.ts +113 -0
- package/dist/agni/index.d.ts.map +1 -0
- package/dist/agni/index.js +328 -0
- package/dist/agni/index.js.map +1 -0
- package/dist/agni/model-router.d.ts +77 -0
- package/dist/agni/model-router.d.ts.map +1 -0
- package/dist/agni/model-router.js +163 -0
- package/dist/agni/model-router.js.map +1 -0
- package/dist/agni/response-distiller.d.ts +37 -0
- package/dist/agni/response-distiller.d.ts.map +1 -0
- package/dist/agni/response-distiller.js +193 -0
- package/dist/agni/response-distiller.js.map +1 -0
- package/dist/agni/tiktoken-adapter.d.ts +55 -0
- package/dist/agni/tiktoken-adapter.d.ts.map +1 -0
- package/dist/agni/tiktoken-adapter.js +113 -0
- package/dist/agni/tiktoken-adapter.js.map +1 -0
- package/dist/chikitsa/index.d.ts +130 -0
- package/dist/chikitsa/index.d.ts.map +1 -0
- package/dist/chikitsa/index.js +565 -0
- package/dist/chikitsa/index.js.map +1 -0
- package/dist/demo.d.ts +15 -0
- package/dist/demo.d.ts.map +1 -0
- package/dist/demo.js +278 -0
- package/dist/demo.js.map +1 -0
- package/dist/index.d.ts +201 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +588 -0
- package/dist/index.js.map +1 -0
- package/dist/mcp/audit.d.ts +39 -0
- package/dist/mcp/audit.d.ts.map +1 -0
- package/dist/mcp/audit.js +73 -0
- package/dist/mcp/audit.js.map +1 -0
- package/dist/mcp/contracts.d.ts +76 -0
- package/dist/mcp/contracts.d.ts.map +1 -0
- package/dist/mcp/contracts.js +44 -0
- package/dist/mcp/contracts.js.map +1 -0
- package/dist/mcp/envelope.d.ts +107 -0
- package/dist/mcp/envelope.d.ts.map +1 -0
- package/dist/mcp/envelope.js +162 -0
- package/dist/mcp/envelope.js.map +1 -0
- package/dist/mcp/registry.d.ts +110 -0
- package/dist/mcp/registry.d.ts.map +1 -0
- package/dist/mcp/registry.js +258 -0
- package/dist/mcp/registry.js.map +1 -0
- package/dist/mcp/server.d.ts +26 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +107 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools/agent.d.ts +4 -0
- package/dist/mcp/tools/agent.d.ts.map +1 -0
- package/dist/mcp/tools/agent.js +300 -0
- package/dist/mcp/tools/agent.js.map +1 -0
- package/dist/mcp/tools/context.d.ts +4 -0
- package/dist/mcp/tools/context.d.ts.map +1 -0
- package/dist/mcp/tools/context.js +261 -0
- package/dist/mcp/tools/context.js.map +1 -0
- package/dist/mcp/tools/index.d.ts +5 -0
- package/dist/mcp/tools/index.d.ts.map +1 -0
- package/dist/mcp/tools/index.js +20 -0
- package/dist/mcp/tools/index.js.map +1 -0
- package/dist/mcp/tools/memory.d.ts +4 -0
- package/dist/mcp/tools/memory.d.ts.map +1 -0
- package/dist/mcp/tools/memory.js +220 -0
- package/dist/mcp/tools/memory.js.map +1 -0
- package/dist/mcp/tools/output.d.ts +4 -0
- package/dist/mcp/tools/output.d.ts.map +1 -0
- package/dist/mcp/tools/output.js +206 -0
- package/dist/mcp/tools/output.js.map +1 -0
- package/dist/mcp/tools/recovery.d.ts +4 -0
- package/dist/mcp/tools/recovery.d.ts.map +1 -0
- package/dist/mcp/tools/recovery.js +165 -0
- package/dist/mcp/tools/recovery.js.map +1 -0
- package/dist/mcp/tools/registrar.d.ts +4 -0
- package/dist/mcp/tools/registrar.d.ts.map +1 -0
- package/dist/mcp/tools/registrar.js +17 -0
- package/dist/mcp/tools/registrar.js.map +1 -0
- package/dist/mcp/tools/report.d.ts +4 -0
- package/dist/mcp/tools/report.d.ts.map +1 -0
- package/dist/mcp/tools/report.js +68 -0
- package/dist/mcp/tools/report.js.map +1 -0
- package/dist/mcp/tools/shared.d.ts +37 -0
- package/dist/mcp/tools/shared.d.ts.map +1 -0
- package/dist/mcp/tools/shared.js +214 -0
- package/dist/mcp/tools/shared.js.map +1 -0
- package/dist/mcp/trace.d.ts +47 -0
- package/dist/mcp/trace.d.ts.map +1 -0
- package/dist/mcp/trace.js +216 -0
- package/dist/mcp/trace.js.map +1 -0
- package/dist/nidra/index.d.ts +275 -0
- package/dist/nidra/index.d.ts.map +1 -0
- package/dist/nidra/index.js +889 -0
- package/dist/nidra/index.js.map +1 -0
- package/dist/persistence/migrations.d.ts +10 -0
- package/dist/persistence/migrations.d.ts.map +1 -0
- package/dist/persistence/migrations.js +77 -0
- package/dist/persistence/migrations.js.map +1 -0
- package/dist/persistence/sqlite.d.ts +30 -0
- package/dist/persistence/sqlite.d.ts.map +1 -0
- package/dist/persistence/sqlite.js +209 -0
- package/dist/persistence/sqlite.js.map +1 -0
- package/dist/persistence/types.d.ts +104 -0
- package/dist/persistence/types.d.ts.map +1 -0
- package/dist/persistence/types.js +5 -0
- package/dist/persistence/types.js.map +1 -0
- package/dist/pulse/index.d.ts +144 -0
- package/dist/pulse/index.d.ts.map +1 -0
- package/dist/pulse/index.js +453 -0
- package/dist/pulse/index.js.map +1 -0
- package/dist/raksha/classifiers/http-classifier.d.ts +26 -0
- package/dist/raksha/classifiers/http-classifier.d.ts.map +1 -0
- package/dist/raksha/classifiers/http-classifier.js +62 -0
- package/dist/raksha/classifiers/http-classifier.js.map +1 -0
- package/dist/raksha/classifiers/index.d.ts +5 -0
- package/dist/raksha/classifiers/index.d.ts.map +1 -0
- package/dist/raksha/classifiers/index.js +8 -0
- package/dist/raksha/classifiers/index.js.map +1 -0
- package/dist/raksha/classifiers/onnx-classifier.d.ts +41 -0
- package/dist/raksha/classifiers/onnx-classifier.d.ts.map +1 -0
- package/dist/raksha/classifiers/onnx-classifier.js +99 -0
- package/dist/raksha/classifiers/onnx-classifier.js.map +1 -0
- package/dist/raksha/hallucination-detectors.d.ts +106 -0
- package/dist/raksha/hallucination-detectors.d.ts.map +1 -0
- package/dist/raksha/hallucination-detectors.js +327 -0
- package/dist/raksha/hallucination-detectors.js.map +1 -0
- package/dist/raksha/index.d.ts +168 -0
- package/dist/raksha/index.d.ts.map +1 -0
- package/dist/raksha/index.js +597 -0
- package/dist/raksha/index.js.map +1 -0
- package/dist/raksha/prompt-injection-detectors.d.ts +30 -0
- package/dist/raksha/prompt-injection-detectors.d.ts.map +1 -0
- package/dist/raksha/prompt-injection-detectors.js +153 -0
- package/dist/raksha/prompt-injection-detectors.js.map +1 -0
- package/dist/types.d.ts +1115 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +71 -0
- package/dist/types.js.map +1 -0
- package/dist/util/calibration.d.ts +32 -0
- package/dist/util/calibration.d.ts.map +1 -0
- package/dist/util/calibration.js +108 -0
- package/dist/util/calibration.js.map +1 -0
- package/dist/util/id.d.ts +2 -0
- package/dist/util/id.d.ts.map +1 -0
- package/dist/util/id.js +9 -0
- package/dist/util/id.js.map +1 -0
- package/dist/vyayam/index.d.ts +76 -0
- package/dist/vyayam/index.d.ts.map +1 -0
- package/dist/vyayam/index.js +528 -0
- package/dist/vyayam/index.js.map +1 -0
- package/dist/vyayam/tool-fault-proxy.d.ts +95 -0
- package/dist/vyayam/tool-fault-proxy.d.ts.map +1 -0
- package/dist/vyayam/tool-fault-proxy.js +170 -0
- package/dist/vyayam/tool-fault-proxy.js.map +1 -0
- package/docs/ARCHITECTURE.md +162 -0
- package/docs/BACKLOG.md +342 -0
- package/docs/CONFIGURATION.md +305 -0
- package/docs/EVIDENCE.md +232 -0
- package/docs/EVIDENCE_MATRIX.md +293 -0
- package/docs/KNOWN_FAILURES.md +367 -0
- package/docs/MCP.md +614 -0
- package/docs/MODULES.md +368 -0
- package/docs/SECURITY.md +251 -0
- package/docs/TRUST.md +88 -0
- package/docs/assets/ojas-hero.png +0 -0
- package/package.json +101 -0
package/dist/index.js
ADDED
|
@@ -0,0 +1,588 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Ojas — AI Health Infrastructure for Autonomous Agents
|
|
4
|
+
*
|
|
5
|
+
* Unified runtime that orchestrates:
|
|
6
|
+
* - Aahar (ओजस आहार) — Cognitive Nutrition
|
|
7
|
+
* - Nidra (ओजस निद्रा) — Recovery & Consolidation
|
|
8
|
+
* - Vyayam (ओजस व्यायाम) — Resilience & Stress Engineering
|
|
9
|
+
*
|
|
10
|
+
* Together they maintain Ojas — the vitality, cognitive stability,
|
|
11
|
+
* and operational health of autonomous AI systems.
|
|
12
|
+
*/
|
|
13
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
14
|
+
if (k2 === undefined) k2 = k;
|
|
15
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
16
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
17
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
18
|
+
}
|
|
19
|
+
Object.defineProperty(o, k2, desc);
|
|
20
|
+
}) : (function(o, m, k, k2) {
|
|
21
|
+
if (k2 === undefined) k2 = k;
|
|
22
|
+
o[k2] = m[k];
|
|
23
|
+
}));
|
|
24
|
+
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
25
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
26
|
+
};
|
|
27
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
28
|
+
exports.deserializeCalibrationModel = exports.serializeCalibrationModel = exports.applyCalibration = exports.fitIsotonicCalibration = exports.brierScore = exports.Chikitsa = exports.CONTEXT_BUDGET_MILESTONES = exports.Pulse = exports.createTiktokenEstimator = exports.defaultResponseDistiller = exports.createResponseDistiller = exports.wilsonInterval = exports.ConfidenceRoutingTable = exports.charBasedTokenEstimator = exports.Agni = exports.HttpPromptInjectionClassifier = exports.OnnxPromptInjectionClassifier = exports.SemanticIntentPromptInjectionDetector = exports.RuleBasedPromptInjectionDetector = exports.EnsemblePromptInjectionDetector = exports.EnsembleHallucinationDetector = exports.ClaimLevelDetector = exports.BestOfNInconsistencyDetector = exports.AbstentionDetector = exports.defaultPromptInjectionDetector = exports.defaultHallucinationDetector = exports.Raksha = exports.faultPolicyForScenarioType = exports.ToolFaultProxy = exports.Vyayam = exports.Nidra = exports.Aahar = exports.Ojas = exports.DEFAULT_OJAS_CONFIG = void 0;
|
|
29
|
+
const aahar_1 = require("./aahar");
|
|
30
|
+
const nidra_1 = require("./nidra");
|
|
31
|
+
const vyayam_1 = require("./vyayam");
|
|
32
|
+
const raksha_1 = require("./raksha");
|
|
33
|
+
const agni_1 = require("./agni");
|
|
34
|
+
const pulse_1 = require("./pulse");
|
|
35
|
+
const chikitsa_1 = require("./chikitsa");
|
|
36
|
+
const types_1 = require("./types");
|
|
37
|
+
const id_1 = require("./util/id");
|
|
38
|
+
// ─── Helpers ─────────────────────────────────────────────────────────────────
|
|
39
|
+
function now() {
|
|
40
|
+
return new Date().toISOString();
|
|
41
|
+
}
|
|
42
|
+
function clamp(v, min = 0, max = 1) {
|
|
43
|
+
return Math.max(min, Math.min(max, v));
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Convert a 0-1 health value to a 0-100 module score, rounded to the nearest integer.
|
|
47
|
+
*/
|
|
48
|
+
function score100(value) {
|
|
49
|
+
return Math.round(clamp(value) * 100);
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Map the raw weighted organ average onto a wider diagnostic range.
|
|
53
|
+
*
|
|
54
|
+
* Calibration suite measurements are synthetic. This stretch improves
|
|
55
|
+
* operator readability, but the result is still an advisory diagnostic
|
|
56
|
+
* score, not a production failure probability.
|
|
57
|
+
*/
|
|
58
|
+
function calibrateOverall(raw) {
|
|
59
|
+
return clamp((raw - 0.35) / 0.35);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Compute a single 0-1 health value per module from its multi-dimensional
|
|
63
|
+
* health assessment. Weights are tuned so each module's score reflects its
|
|
64
|
+
* most operationally important dimensions first.
|
|
65
|
+
*/
|
|
66
|
+
function computeModuleScores(nutrition, recovery, resilience, defense, metabolism, telemetry, rehabilitation) {
|
|
67
|
+
const aahar = nutrition.contextQuality.value * 0.4 +
|
|
68
|
+
nutrition.cognitiveLoad.value * 0.3 +
|
|
69
|
+
nutrition.attentionFocus.value * 0.15 +
|
|
70
|
+
nutrition.tokenEfficiency * 0.15;
|
|
71
|
+
const nidra = recovery.cognitiveStability.value * 0.5 +
|
|
72
|
+
recovery.memoryConsolidation.value * 0.25 +
|
|
73
|
+
recovery.learningRate.value * 0.15 +
|
|
74
|
+
(1 - clamp(recovery.driftScore)) * 0.1;
|
|
75
|
+
const vyayam = resilience.overallResilience.value * 0.4 +
|
|
76
|
+
resilience.hallucinationResistance.value * 0.25 +
|
|
77
|
+
resilience.recoveryAbility.value * 0.2 +
|
|
78
|
+
resilience.planningStability.value * 0.15;
|
|
79
|
+
const raksha = defense.threatResistance.value * 0.5 +
|
|
80
|
+
defense.instructionIntegrity.value * 0.3 +
|
|
81
|
+
defense.quarantineEffectiveness.value * 0.2;
|
|
82
|
+
const agni = metabolism.tokenEfficiency.value * 0.35 +
|
|
83
|
+
metabolism.latencyEfficiency.value * 0.25 +
|
|
84
|
+
metabolism.toolEconomy.value * 0.2 +
|
|
85
|
+
metabolism.reasoningEfficiency.value * 0.2;
|
|
86
|
+
const pulse = telemetry.vitalSigns.value * 0.5 +
|
|
87
|
+
telemetry.degradationRisk.value * 0.3 +
|
|
88
|
+
telemetry.observabilityCoverage.value * 0.2;
|
|
89
|
+
const chikitsa = rehabilitation.repairReadiness.value * 0.4 +
|
|
90
|
+
rehabilitation.rollbackSafety.value * 0.3 +
|
|
91
|
+
rehabilitation.recoveryPlaybooks.value * 0.3;
|
|
92
|
+
return {
|
|
93
|
+
aahar: score100(aahar),
|
|
94
|
+
nidra: score100(nidra),
|
|
95
|
+
vyayam: score100(vyayam),
|
|
96
|
+
raksha: score100(raksha),
|
|
97
|
+
agni: score100(agni),
|
|
98
|
+
pulse: score100(pulse),
|
|
99
|
+
chikitsa: score100(chikitsa),
|
|
100
|
+
};
|
|
101
|
+
}
|
|
102
|
+
// ─── Default Config ──────────────────────────────────────────────────────────
|
|
103
|
+
exports.DEFAULT_OJAS_CONFIG = {
|
|
104
|
+
agentId: 'default-agent',
|
|
105
|
+
nutrition: types_1.DEFAULT_NUTRITION_POLICY,
|
|
106
|
+
recovery: types_1.DEFAULT_RECOVERY_POLICY,
|
|
107
|
+
resilience: types_1.DEFAULT_RESILIENCE_POLICY,
|
|
108
|
+
defense: types_1.DEFAULT_DEFENSE_POLICY,
|
|
109
|
+
metabolism: types_1.DEFAULT_METABOLISM_POLICY,
|
|
110
|
+
telemetry: types_1.DEFAULT_TELEMETRY_POLICY,
|
|
111
|
+
rehabilitation: types_1.DEFAULT_REHABILITATION_POLICY,
|
|
112
|
+
continuousMonitoring: false,
|
|
113
|
+
healthCheckIntervalSec: 60,
|
|
114
|
+
maxHealthHistory: 1_000,
|
|
115
|
+
};
|
|
116
|
+
class Ojas {
|
|
117
|
+
aahar;
|
|
118
|
+
nidra;
|
|
119
|
+
vyayam;
|
|
120
|
+
raksha;
|
|
121
|
+
agni;
|
|
122
|
+
pulse;
|
|
123
|
+
chikitsa;
|
|
124
|
+
config;
|
|
125
|
+
agent = null;
|
|
126
|
+
monitoringInterval = null;
|
|
127
|
+
healthHistory = [];
|
|
128
|
+
/**
|
|
129
|
+
* Single-flight lock for recover(). The two-phase analyse → inject →
|
|
130
|
+
* commit pipeline is not idempotent under concurrency: two parallel
|
|
131
|
+
* calls would analyse the same unprocessed traces and inject the same
|
|
132
|
+
* memories twice. We serialise instead.
|
|
133
|
+
*/
|
|
134
|
+
recoveryInFlight = null;
|
|
135
|
+
constructor(config = {}, options = {}) {
|
|
136
|
+
this.config = { ...exports.DEFAULT_OJAS_CONFIG, ...config };
|
|
137
|
+
if (!Number.isInteger(this.config.maxHealthHistory) || this.config.maxHealthHistory < 0) {
|
|
138
|
+
throw new Error('Ojas: maxHealthHistory must be a non-negative integer');
|
|
139
|
+
}
|
|
140
|
+
this.aahar = new aahar_1.Aahar(this.config.nutrition);
|
|
141
|
+
this.nidra = new nidra_1.Nidra(this.config.recovery);
|
|
142
|
+
this.vyayam = new vyayam_1.Vyayam(this.config.resilience, options.vyayam);
|
|
143
|
+
this.raksha = new raksha_1.Raksha(this.config.defense, options.raksha);
|
|
144
|
+
this.agni = new agni_1.Agni(this.config.metabolism, options.agni);
|
|
145
|
+
this.pulse = new pulse_1.Pulse(this.config.telemetry);
|
|
146
|
+
this.chikitsa = new chikitsa_1.Chikitsa(this.config.rehabilitation);
|
|
147
|
+
}
|
|
148
|
+
// ── Agent Binding ────────────────────────────────────────────────────────
|
|
149
|
+
/**
|
|
150
|
+
* Bind an agent to this Ojas health system.
|
|
151
|
+
*/
|
|
152
|
+
bind(agent) {
|
|
153
|
+
this.agent = agent;
|
|
154
|
+
this.config.agentId = agent.id;
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Get the bound agent.
|
|
158
|
+
*/
|
|
159
|
+
getAgent() {
|
|
160
|
+
return this.agent;
|
|
161
|
+
}
|
|
162
|
+
// ── Cognitive Nutrition (Aahar) ──────────────────────────────────────────
|
|
163
|
+
/**
|
|
164
|
+
* Feed context to the agent through Aahar's nutrition filter.
|
|
165
|
+
* Returns only the healthy, relevant context items.
|
|
166
|
+
*
|
|
167
|
+
* `options.query` is threaded into `Aahar.filter` so query-aware fusion
|
|
168
|
+
* (BM25 + entity overlap + RRF) can re-rank items against the active
|
|
169
|
+
* task. Omitting it preserves the previous single-argument behaviour
|
|
170
|
+
* exactly.
|
|
171
|
+
*/
|
|
172
|
+
feed(items, options) {
|
|
173
|
+
// defendContext returns ONLY the events emitted during this call so we
|
|
174
|
+
// do not re-emit historical Raksha alerts when nothing was quarantined.
|
|
175
|
+
// Pass the bound agentId explicitly so events are correctly attributed.
|
|
176
|
+
const defended = this.raksha.defendContext(items, { agentId: this.config.agentId });
|
|
177
|
+
if (defended.events.length > 0) {
|
|
178
|
+
this.pulse.emitMany(defended.events);
|
|
179
|
+
}
|
|
180
|
+
const filtered = this.aahar.filter(defended.safe, options);
|
|
181
|
+
if (filtered.rejected.length > 0) {
|
|
182
|
+
this.pulse.emit({
|
|
183
|
+
id: (0, id_1.newId)('aahar'),
|
|
184
|
+
eventType: 'context_items_rejected',
|
|
185
|
+
agentId: this.config.agentId,
|
|
186
|
+
timestamp: now(),
|
|
187
|
+
severity: filtered.rejected.length > filtered.accepted.length ? 'warning' : 'info',
|
|
188
|
+
detectedBy: 'aahar',
|
|
189
|
+
details: {
|
|
190
|
+
rejectedCount: filtered.rejected.length,
|
|
191
|
+
acceptedCount: filtered.accepted.length,
|
|
192
|
+
totalTokens: filtered.totalTokens,
|
|
193
|
+
qualityScore: filtered.qualityScore,
|
|
194
|
+
},
|
|
195
|
+
recommendedAction: 'Review rejected context for stale, low-relevance, or excessive inputs.',
|
|
196
|
+
});
|
|
197
|
+
}
|
|
198
|
+
return filtered.accepted;
|
|
199
|
+
}
|
|
200
|
+
/**
|
|
201
|
+
* Feed and process: filter context, then send to agent.
|
|
202
|
+
*/
|
|
203
|
+
async feedAndProcess(input, rawContext, signal) {
|
|
204
|
+
if (!this.agent) {
|
|
205
|
+
throw new Error('No agent bound. Call ojas.bind(agent) first.');
|
|
206
|
+
}
|
|
207
|
+
const healthyContext = this.feed(rawContext);
|
|
208
|
+
const startedAt = Date.now();
|
|
209
|
+
try {
|
|
210
|
+
const response = await this.agent.process(input, healthyContext, signal);
|
|
211
|
+
// We measure wall-clock duration ourselves rather than trusting the
|
|
212
|
+
// agent's self-reported value. If the agent did report a duration,
|
|
213
|
+
// both are kept available via the trace + response.
|
|
214
|
+
const measuredDurationMs = Date.now() - startedAt;
|
|
215
|
+
const trace = {
|
|
216
|
+
id: (0, id_1.newId)('trace'),
|
|
217
|
+
agentId: this.config.agentId,
|
|
218
|
+
timestamp: now(),
|
|
219
|
+
action: 'process',
|
|
220
|
+
input: { userInput: input, contextItems: healthyContext.length },
|
|
221
|
+
output: response.output.slice(0, 200),
|
|
222
|
+
success: response.confidence > 0.3,
|
|
223
|
+
durationMs: measuredDurationMs,
|
|
224
|
+
reasoning: response.reasoning,
|
|
225
|
+
tokensUsed: response.tokensUsed,
|
|
226
|
+
};
|
|
227
|
+
this.nidra.recordTrace(trace);
|
|
228
|
+
this.agni.recordTrace(trace);
|
|
229
|
+
return { output: response.output, nutritionApplied: true };
|
|
230
|
+
}
|
|
231
|
+
catch (err) {
|
|
232
|
+
// Record a failure trace and emit a critical Pulse event so crashes
|
|
233
|
+
// in agent.process() are visible to monitoring. Re-throws after
|
|
234
|
+
// recording so the caller still sees the original error. The failure
|
|
235
|
+
// is classified as `unknown` (not `tool_error`) because we cannot tell
|
|
236
|
+
// from the exception whether the agent's tool actually failed or the
|
|
237
|
+
// agent itself threw — Chikitsa can refine the classification later.
|
|
238
|
+
const message = err instanceof Error ? err.message : String(err);
|
|
239
|
+
const failureTrace = {
|
|
240
|
+
id: (0, id_1.newId)('trace'),
|
|
241
|
+
agentId: this.config.agentId,
|
|
242
|
+
timestamp: now(),
|
|
243
|
+
action: 'process',
|
|
244
|
+
input: { userInput: input, contextItems: healthyContext.length },
|
|
245
|
+
output: null,
|
|
246
|
+
success: false,
|
|
247
|
+
durationMs: Date.now() - startedAt,
|
|
248
|
+
error: message,
|
|
249
|
+
failures: [{ type: 'unknown', message, severity: 'high' }],
|
|
250
|
+
};
|
|
251
|
+
this.nidra.recordTrace(failureTrace);
|
|
252
|
+
this.agni.recordTrace(failureTrace);
|
|
253
|
+
this.pulse.emit({
|
|
254
|
+
id: (0, id_1.newId)('pulse'),
|
|
255
|
+
eventType: 'agent_process_threw',
|
|
256
|
+
agentId: this.config.agentId,
|
|
257
|
+
timestamp: now(),
|
|
258
|
+
severity: 'critical',
|
|
259
|
+
detectedBy: 'pulse',
|
|
260
|
+
details: { error: message },
|
|
261
|
+
recommendedAction: 'diagnose_failure',
|
|
262
|
+
});
|
|
263
|
+
throw err;
|
|
264
|
+
}
|
|
265
|
+
}
|
|
266
|
+
// ── Recovery (Nidra) ─────────────────────────────────────────────────────
|
|
267
|
+
/**
|
|
268
|
+
* Record an execution trace for future consolidation.
|
|
269
|
+
*/
|
|
270
|
+
recordTrace(trace) {
|
|
271
|
+
this.nidra.recordTrace(trace);
|
|
272
|
+
this.agni.recordTrace(trace);
|
|
273
|
+
}
|
|
274
|
+
/**
|
|
275
|
+
* Check if recovery is needed and optionally run it.
|
|
276
|
+
*
|
|
277
|
+
* **Transactionality:** when an agent is bound, recovery is two-phase.
|
|
278
|
+
* `Nidra.analyseUnprocessed()` produces the candidate memories WITHOUT
|
|
279
|
+
* committing, then each is injected into the agent. Only after every
|
|
280
|
+
* injection succeeds do we call `Nidra.commitAnalysis()` to mark the
|
|
281
|
+
* traces processed and persist the memories. If any injection throws,
|
|
282
|
+
* Nidra state is left untouched and the failure surfaces to the caller
|
|
283
|
+
* via a pulse event — so the agent's view and Ojas's view cannot diverge.
|
|
284
|
+
*/
|
|
285
|
+
async recover(force = false) {
|
|
286
|
+
// Concurrency guard: a second caller hitting recover() while the first
|
|
287
|
+
// is still mid-flight must NOT analyse and inject the same traces twice.
|
|
288
|
+
// We surface that explicitly via `status: 'already_running'` so the
|
|
289
|
+
// second caller can distinguish "nothing happened" from "another call
|
|
290
|
+
// is in progress" and back off appropriately.
|
|
291
|
+
if (this.recoveryInFlight) {
|
|
292
|
+
return { status: 'already_running', recovered: false, memoriesCreated: 0, concurrent: true };
|
|
293
|
+
}
|
|
294
|
+
if (!force && !this.nidra.needsRecovery()) {
|
|
295
|
+
return { status: 'no_action_needed', recovered: false, memoriesCreated: 0 };
|
|
296
|
+
}
|
|
297
|
+
const run = this.doRecover();
|
|
298
|
+
this.recoveryInFlight = run;
|
|
299
|
+
try {
|
|
300
|
+
return await run;
|
|
301
|
+
}
|
|
302
|
+
finally {
|
|
303
|
+
this.recoveryInFlight = null;
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
/** Inner body of recover(), called only under the recoveryInFlight lock. */
|
|
307
|
+
async doRecover() {
|
|
308
|
+
// Phase 1: pure analysis. No state mutated yet.
|
|
309
|
+
const analysis = this.nidra.analyseUnprocessed();
|
|
310
|
+
// Phase 2: inject into the agent. A throw here aborts the cycle BEFORE
|
|
311
|
+
// any commit, so the same traces remain unprocessed and will be picked
|
|
312
|
+
// up by the next recovery attempt.
|
|
313
|
+
if (this.agent && analysis.memories.length > 0) {
|
|
314
|
+
for (const memory of analysis.memories) {
|
|
315
|
+
try {
|
|
316
|
+
await this.agent.injectMemory(memory);
|
|
317
|
+
}
|
|
318
|
+
catch (err) {
|
|
319
|
+
this.pulse.emit({
|
|
320
|
+
id: (0, id_1.newId)('nidra'),
|
|
321
|
+
eventType: 'recovery_injection_failed',
|
|
322
|
+
agentId: this.config.agentId,
|
|
323
|
+
timestamp: now(),
|
|
324
|
+
severity: 'critical',
|
|
325
|
+
detectedBy: 'nidra',
|
|
326
|
+
details: {
|
|
327
|
+
memoryId: memory.id,
|
|
328
|
+
error: err.message,
|
|
329
|
+
tracesLeftUnprocessed: analysis.coveredTraceIds.length,
|
|
330
|
+
},
|
|
331
|
+
recommendedAction: 'investigate_agent_injection_path',
|
|
332
|
+
});
|
|
333
|
+
return { status: 'injection_failed', recovered: false, memoriesCreated: 0, injectionFailed: true };
|
|
334
|
+
}
|
|
335
|
+
}
|
|
336
|
+
}
|
|
337
|
+
// Phase 3: now safe to commit. All side effects succeeded.
|
|
338
|
+
const result = this.nidra.commitAnalysis(analysis);
|
|
339
|
+
return {
|
|
340
|
+
status: 'committed',
|
|
341
|
+
recovered: true,
|
|
342
|
+
memoriesCreated: result.memoriesConsolidated.length,
|
|
343
|
+
};
|
|
344
|
+
}
|
|
345
|
+
// ── Resilience (Vyayam) ──────────────────────────────────────────────────
|
|
346
|
+
/**
|
|
347
|
+
* Run a stress test cycle against the bound agent.
|
|
348
|
+
*/
|
|
349
|
+
async stressTest() {
|
|
350
|
+
if (!this.agent) {
|
|
351
|
+
throw new Error('No agent bound. Call ojas.bind(agent) first.');
|
|
352
|
+
}
|
|
353
|
+
const results = await this.vyayam.runStressCycle(this.agent);
|
|
354
|
+
const passed = results.filter((r) => r.passed).length;
|
|
355
|
+
const hallucinations = results.filter((r) => r.hallucinationDetected).length;
|
|
356
|
+
return {
|
|
357
|
+
passed,
|
|
358
|
+
failed: results.length - passed,
|
|
359
|
+
hallucinationsDetected: hallucinations,
|
|
360
|
+
};
|
|
361
|
+
}
|
|
362
|
+
// ── Unified Health Assessment ────────────────────────────────────────────
|
|
363
|
+
/**
|
|
364
|
+
* Generate a comprehensive health report for the agent.
|
|
365
|
+
*/
|
|
366
|
+
healthCheck(activeContext = []) {
|
|
367
|
+
const nutrition = this.aahar.assess(activeContext);
|
|
368
|
+
const recovery = this.nidra.assess();
|
|
369
|
+
const resilience = this.vyayam.assess();
|
|
370
|
+
const defense = this.raksha.assess();
|
|
371
|
+
const metabolism = this.agni.assess();
|
|
372
|
+
// Block 5 wiring — context-budget milestones + cold-memory events.
|
|
373
|
+
// Driven from data we already collected; idempotent latches on Pulse
|
|
374
|
+
// ensure we don't spam events for the same crossing.
|
|
375
|
+
if (activeContext.length > 0) {
|
|
376
|
+
const used = activeContext.reduce((s, i) => s + (Number.isFinite(i.tokenCount) ? i.tokenCount : 0), 0);
|
|
377
|
+
const max = this.config.nutrition.maxContextTokens;
|
|
378
|
+
this.pulse.recordContextBudgetUtilisation(this.config.agentId, used, max);
|
|
379
|
+
}
|
|
380
|
+
const cold = this.nidra.detectColdMemories();
|
|
381
|
+
if (cold.length > 0) {
|
|
382
|
+
this.pulse.recordColdMemories(this.config.agentId, cold);
|
|
383
|
+
}
|
|
384
|
+
// Build the list of failure signals the current state implies, then ask
|
|
385
|
+
// Chikitsa for a PREVIEW diagnosis (no internal state mutation). The
|
|
386
|
+
// resulting protocols are returned in the report so consumers can see
|
|
387
|
+
// what would be done, and corresponding recommendations are surfaced.
|
|
388
|
+
const previewFailures = [];
|
|
389
|
+
if (recovery.driftScore > this.config.recovery.maxDriftThreshold) {
|
|
390
|
+
previewFailures.push({
|
|
391
|
+
type: 'loop',
|
|
392
|
+
message: 'Cognitive drift exceeded recovery threshold.',
|
|
393
|
+
severity: 'critical',
|
|
394
|
+
});
|
|
395
|
+
}
|
|
396
|
+
if (defense.quarantinedItems > 0) {
|
|
397
|
+
previewFailures.push({
|
|
398
|
+
type: 'prompt_injection',
|
|
399
|
+
message: 'Suspicious cognitive input was quarantined.',
|
|
400
|
+
severity: 'critical',
|
|
401
|
+
});
|
|
402
|
+
}
|
|
403
|
+
const previewRepairProtocols = previewFailures.length > 0
|
|
404
|
+
? this.chikitsa.previewDiagnose(previewFailures)
|
|
405
|
+
: [];
|
|
406
|
+
const rehabilitation = this.chikitsa.assess();
|
|
407
|
+
const telemetry = this.pulse.assess();
|
|
408
|
+
// Compute overall health as weighted average across all health organs.
|
|
409
|
+
const overallValue = (nutrition.contextQuality.value * 0.14) +
|
|
410
|
+
(nutrition.cognitiveLoad.value * 0.10) +
|
|
411
|
+
(recovery.cognitiveStability.value * 0.16) +
|
|
412
|
+
(recovery.memoryConsolidation.value * 0.08) +
|
|
413
|
+
(resilience.overallResilience.value * 0.14) +
|
|
414
|
+
(resilience.hallucinationResistance.value * 0.08) +
|
|
415
|
+
(defense.threatResistance.value * 0.12) +
|
|
416
|
+
(metabolism.tokenEfficiency.value * 0.06) +
|
|
417
|
+
(metabolism.latencyEfficiency.value * 0.04) +
|
|
418
|
+
(telemetry.vitalSigns.value * 0.04) +
|
|
419
|
+
(rehabilitation.repairReadiness.value * 0.04);
|
|
420
|
+
const hasEmpiricalModel = !!this.config.calibrationModel;
|
|
421
|
+
const calibratedValue = hasEmpiricalModel
|
|
422
|
+
? this.config.calibrationModel.predictSuccessRate(overallValue)
|
|
423
|
+
: calibrateOverall(overallValue);
|
|
424
|
+
const overall = {
|
|
425
|
+
value: calibratedValue,
|
|
426
|
+
timestamp: now(),
|
|
427
|
+
source: 'ojas.overall',
|
|
428
|
+
basis: hasEmpiricalModel ? 'empirical_calibrated' : 'synthetic_calibrated',
|
|
429
|
+
interpretation: hasEmpiricalModel
|
|
430
|
+
? 'Empirically calibrated score fitted on real-LLM benchmark data; higher correlation with actual agent success rates.'
|
|
431
|
+
: 'Advisory diagnostic score calibrated on synthetic benchmark telemetry; use for triage and trend deltas, not as a production failure probability.',
|
|
432
|
+
};
|
|
433
|
+
// Collect recommendations from all modules
|
|
434
|
+
const recommendations = [
|
|
435
|
+
...this.aahar.recommend(activeContext),
|
|
436
|
+
...this.nidra.recommend(),
|
|
437
|
+
...this.vyayam.recommend(),
|
|
438
|
+
...this.raksha.recommend(),
|
|
439
|
+
...this.agni.recommend(),
|
|
440
|
+
...this.pulse.recommend(),
|
|
441
|
+
...this.chikitsa.recommend(),
|
|
442
|
+
];
|
|
443
|
+
// Surface preview repair protocols as recommendations so consumers see
|
|
444
|
+
// them without needing to read the report's previewRepairProtocols field.
|
|
445
|
+
for (const protocol of previewRepairProtocols) {
|
|
446
|
+
recommendations.push({
|
|
447
|
+
module: 'chikitsa',
|
|
448
|
+
severity: protocol.severity,
|
|
449
|
+
message: `Preview repair: ${protocol.diagnosis}`,
|
|
450
|
+
action: protocol.actions.join(' → '),
|
|
451
|
+
});
|
|
452
|
+
}
|
|
453
|
+
// Sort by severity
|
|
454
|
+
const severityOrder = { critical: 0, warning: 1, info: 2 };
|
|
455
|
+
recommendations.sort((a, b) => severityOrder[a.severity] - severityOrder[b.severity]);
|
|
456
|
+
const moduleScores = computeModuleScores(nutrition, recovery, resilience, defense, metabolism, telemetry, rehabilitation);
|
|
457
|
+
const report = {
|
|
458
|
+
agentId: this.config.agentId,
|
|
459
|
+
timestamp: now(),
|
|
460
|
+
overall,
|
|
461
|
+
moduleScores,
|
|
462
|
+
nutrition,
|
|
463
|
+
recovery,
|
|
464
|
+
resilience,
|
|
465
|
+
defense,
|
|
466
|
+
metabolism,
|
|
467
|
+
telemetry,
|
|
468
|
+
rehabilitation,
|
|
469
|
+
recommendations,
|
|
470
|
+
events: this.pulse.getEvents(),
|
|
471
|
+
previewRepairProtocols,
|
|
472
|
+
};
|
|
473
|
+
this.healthHistory.push(report);
|
|
474
|
+
if (this.config.maxHealthHistory > 0 && this.healthHistory.length > this.config.maxHealthHistory) {
|
|
475
|
+
this.healthHistory.splice(0, this.healthHistory.length - this.config.maxHealthHistory);
|
|
476
|
+
}
|
|
477
|
+
return report;
|
|
478
|
+
}
|
|
479
|
+
// ── Continuous Monitoring ────────────────────────────────────────────────
|
|
480
|
+
/**
|
|
481
|
+
* Start continuous health monitoring.
|
|
482
|
+
*/
|
|
483
|
+
startMonitoring(onReport) {
|
|
484
|
+
if (this.monitoringInterval)
|
|
485
|
+
return;
|
|
486
|
+
this.monitoringInterval = setInterval(() => {
|
|
487
|
+
const report = this.healthCheck();
|
|
488
|
+
onReport?.(report);
|
|
489
|
+
// Auto-recover if drift is high
|
|
490
|
+
if (report.recovery.driftScore > this.config.recovery.maxDriftThreshold) {
|
|
491
|
+
this.recover().catch(() => { });
|
|
492
|
+
}
|
|
493
|
+
}, this.config.healthCheckIntervalSec * 1000);
|
|
494
|
+
}
|
|
495
|
+
/**
|
|
496
|
+
* Stop continuous health monitoring.
|
|
497
|
+
*/
|
|
498
|
+
stopMonitoring() {
|
|
499
|
+
if (this.monitoringInterval) {
|
|
500
|
+
clearInterval(this.monitoringInterval);
|
|
501
|
+
this.monitoringInterval = null;
|
|
502
|
+
}
|
|
503
|
+
}
|
|
504
|
+
// ── Accessors ────────────────────────────────────────────────────────────
|
|
505
|
+
getConfig() {
|
|
506
|
+
return { ...this.config };
|
|
507
|
+
}
|
|
508
|
+
getHealthHistory() {
|
|
509
|
+
return structuredClone(this.healthHistory);
|
|
510
|
+
}
|
|
511
|
+
isMonitoring() {
|
|
512
|
+
return this.monitoringInterval !== null;
|
|
513
|
+
}
|
|
514
|
+
exportState() {
|
|
515
|
+
return {
|
|
516
|
+
aahar: { retrievalPressure: [], itemSources: [] },
|
|
517
|
+
nidra: this.nidra.exportState(),
|
|
518
|
+
pulse: this.pulse.exportState(),
|
|
519
|
+
raksha: this.raksha.exportState(),
|
|
520
|
+
agni: this.agni.exportState(),
|
|
521
|
+
chikitsa: this.chikitsa.exportState(),
|
|
522
|
+
vyayam: this.vyayam.exportState(),
|
|
523
|
+
healthHistory: [...this.getHealthHistory()],
|
|
524
|
+
};
|
|
525
|
+
}
|
|
526
|
+
importState(snapshot) {
|
|
527
|
+
if (!snapshot)
|
|
528
|
+
return;
|
|
529
|
+
this.nidra.importState(snapshot.nidra);
|
|
530
|
+
this.pulse.importState(snapshot.pulse);
|
|
531
|
+
this.raksha.importState(snapshot.raksha);
|
|
532
|
+
this.agni.importState(snapshot.agni);
|
|
533
|
+
this.chikitsa.importState(snapshot.chikitsa);
|
|
534
|
+
this.vyayam.importState(snapshot.vyayam);
|
|
535
|
+
this.healthHistory = structuredClone(snapshot.healthHistory ?? []);
|
|
536
|
+
}
|
|
537
|
+
}
|
|
538
|
+
exports.Ojas = Ojas;
|
|
539
|
+
// ─── Public API ──────────────────────────────────────────────────────────────
|
|
540
|
+
var aahar_2 = require("./aahar");
|
|
541
|
+
Object.defineProperty(exports, "Aahar", { enumerable: true, get: function () { return aahar_2.Aahar; } });
|
|
542
|
+
var nidra_2 = require("./nidra");
|
|
543
|
+
Object.defineProperty(exports, "Nidra", { enumerable: true, get: function () { return nidra_2.Nidra; } });
|
|
544
|
+
var vyayam_2 = require("./vyayam");
|
|
545
|
+
Object.defineProperty(exports, "Vyayam", { enumerable: true, get: function () { return vyayam_2.Vyayam; } });
|
|
546
|
+
var tool_fault_proxy_1 = require("./vyayam/tool-fault-proxy");
|
|
547
|
+
Object.defineProperty(exports, "ToolFaultProxy", { enumerable: true, get: function () { return tool_fault_proxy_1.ToolFaultProxy; } });
|
|
548
|
+
Object.defineProperty(exports, "faultPolicyForScenarioType", { enumerable: true, get: function () { return tool_fault_proxy_1.faultPolicyForScenarioType; } });
|
|
549
|
+
var raksha_2 = require("./raksha");
|
|
550
|
+
Object.defineProperty(exports, "Raksha", { enumerable: true, get: function () { return raksha_2.Raksha; } });
|
|
551
|
+
Object.defineProperty(exports, "defaultHallucinationDetector", { enumerable: true, get: function () { return raksha_2.defaultHallucinationDetector; } });
|
|
552
|
+
Object.defineProperty(exports, "defaultPromptInjectionDetector", { enumerable: true, get: function () { return raksha_2.defaultPromptInjectionDetector; } });
|
|
553
|
+
var hallucination_detectors_1 = require("./raksha/hallucination-detectors");
|
|
554
|
+
Object.defineProperty(exports, "AbstentionDetector", { enumerable: true, get: function () { return hallucination_detectors_1.AbstentionDetector; } });
|
|
555
|
+
Object.defineProperty(exports, "BestOfNInconsistencyDetector", { enumerable: true, get: function () { return hallucination_detectors_1.BestOfNInconsistencyDetector; } });
|
|
556
|
+
Object.defineProperty(exports, "ClaimLevelDetector", { enumerable: true, get: function () { return hallucination_detectors_1.ClaimLevelDetector; } });
|
|
557
|
+
Object.defineProperty(exports, "EnsembleHallucinationDetector", { enumerable: true, get: function () { return hallucination_detectors_1.EnsembleHallucinationDetector; } });
|
|
558
|
+
var prompt_injection_detectors_1 = require("./raksha/prompt-injection-detectors");
|
|
559
|
+
Object.defineProperty(exports, "EnsemblePromptInjectionDetector", { enumerable: true, get: function () { return prompt_injection_detectors_1.EnsemblePromptInjectionDetector; } });
|
|
560
|
+
Object.defineProperty(exports, "RuleBasedPromptInjectionDetector", { enumerable: true, get: function () { return prompt_injection_detectors_1.RuleBasedPromptInjectionDetector; } });
|
|
561
|
+
Object.defineProperty(exports, "SemanticIntentPromptInjectionDetector", { enumerable: true, get: function () { return prompt_injection_detectors_1.SemanticIntentPromptInjectionDetector; } });
|
|
562
|
+
var classifiers_1 = require("./raksha/classifiers");
|
|
563
|
+
Object.defineProperty(exports, "OnnxPromptInjectionClassifier", { enumerable: true, get: function () { return classifiers_1.OnnxPromptInjectionClassifier; } });
|
|
564
|
+
Object.defineProperty(exports, "HttpPromptInjectionClassifier", { enumerable: true, get: function () { return classifiers_1.HttpPromptInjectionClassifier; } });
|
|
565
|
+
var agni_2 = require("./agni");
|
|
566
|
+
Object.defineProperty(exports, "Agni", { enumerable: true, get: function () { return agni_2.Agni; } });
|
|
567
|
+
Object.defineProperty(exports, "charBasedTokenEstimator", { enumerable: true, get: function () { return agni_2.charBasedTokenEstimator; } });
|
|
568
|
+
var model_router_1 = require("./agni/model-router");
|
|
569
|
+
Object.defineProperty(exports, "ConfidenceRoutingTable", { enumerable: true, get: function () { return model_router_1.ConfidenceRoutingTable; } });
|
|
570
|
+
Object.defineProperty(exports, "wilsonInterval", { enumerable: true, get: function () { return model_router_1.wilsonInterval; } });
|
|
571
|
+
var response_distiller_1 = require("./agni/response-distiller");
|
|
572
|
+
Object.defineProperty(exports, "createResponseDistiller", { enumerable: true, get: function () { return response_distiller_1.createResponseDistiller; } });
|
|
573
|
+
Object.defineProperty(exports, "defaultResponseDistiller", { enumerable: true, get: function () { return response_distiller_1.defaultResponseDistiller; } });
|
|
574
|
+
var tiktoken_adapter_1 = require("./agni/tiktoken-adapter");
|
|
575
|
+
Object.defineProperty(exports, "createTiktokenEstimator", { enumerable: true, get: function () { return tiktoken_adapter_1.createTiktokenEstimator; } });
|
|
576
|
+
var pulse_2 = require("./pulse");
|
|
577
|
+
Object.defineProperty(exports, "Pulse", { enumerable: true, get: function () { return pulse_2.Pulse; } });
|
|
578
|
+
Object.defineProperty(exports, "CONTEXT_BUDGET_MILESTONES", { enumerable: true, get: function () { return pulse_2.CONTEXT_BUDGET_MILESTONES; } });
|
|
579
|
+
var chikitsa_2 = require("./chikitsa");
|
|
580
|
+
Object.defineProperty(exports, "Chikitsa", { enumerable: true, get: function () { return chikitsa_2.Chikitsa; } });
|
|
581
|
+
var calibration_1 = require("./util/calibration");
|
|
582
|
+
Object.defineProperty(exports, "brierScore", { enumerable: true, get: function () { return calibration_1.brierScore; } });
|
|
583
|
+
Object.defineProperty(exports, "fitIsotonicCalibration", { enumerable: true, get: function () { return calibration_1.fitIsotonicCalibration; } });
|
|
584
|
+
Object.defineProperty(exports, "applyCalibration", { enumerable: true, get: function () { return calibration_1.applyCalibration; } });
|
|
585
|
+
Object.defineProperty(exports, "serializeCalibrationModel", { enumerable: true, get: function () { return calibration_1.serializeCalibrationModel; } });
|
|
586
|
+
Object.defineProperty(exports, "deserializeCalibrationModel", { enumerable: true, get: function () { return calibration_1.deserializeCalibrationModel; } });
|
|
587
|
+
__exportStar(require("./types"), exports);
|
|
588
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Structured JSONL audit logger for critical MCP operations.
|
|
3
|
+
*
|
|
4
|
+
* Emits one JSON line per audited event to a configurable writable stream
|
|
5
|
+
* (default: disabled). Each entry captures operation type, agent/session
|
|
6
|
+
* context, a summary of arguments and results, and wall-clock duration.
|
|
7
|
+
*
|
|
8
|
+
* Design constraints:
|
|
9
|
+
* - Zero overhead when disabled (no-op fast path).
|
|
10
|
+
* - Does not throw on write failures — audit is best-effort.
|
|
11
|
+
* - Does not buffer — each event is flushed immediately.
|
|
12
|
+
*/
|
|
13
|
+
import type { Writable } from 'stream';
|
|
14
|
+
export type AuditOperation = 'agent_register' | 'agent_deregister' | 'health_check' | 'safe_mode_toggle' | 'policy_update' | 'raksha_quarantine' | 'feed_context' | 'scan_injection' | 'recovery';
|
|
15
|
+
export interface AuditEntry {
|
|
16
|
+
timestamp: string;
|
|
17
|
+
operation: AuditOperation;
|
|
18
|
+
agentId?: string;
|
|
19
|
+
sessionId?: string;
|
|
20
|
+
args_summary?: Record<string, unknown>;
|
|
21
|
+
result_summary?: Record<string, unknown>;
|
|
22
|
+
durationMs?: number;
|
|
23
|
+
}
|
|
24
|
+
export declare class AuditLogger {
|
|
25
|
+
private readonly stream;
|
|
26
|
+
constructor(stream?: Writable | null);
|
|
27
|
+
get enabled(): boolean;
|
|
28
|
+
log(entry: AuditEntry): void;
|
|
29
|
+
/**
|
|
30
|
+
* Convenience: wraps an async handler, emitting an audit entry with
|
|
31
|
+
* timing around the call. Returns the handler's result transparently.
|
|
32
|
+
*/
|
|
33
|
+
wrap<T>(operation: AuditOperation, opts: {
|
|
34
|
+
agentId?: string;
|
|
35
|
+
sessionId?: string;
|
|
36
|
+
args?: Record<string, unknown>;
|
|
37
|
+
}, fn: () => Promise<T>): Promise<T>;
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=audit.d.ts.map
|