agentdb 3.0.0-alpha.19 → 3.0.0-alpha.20
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/dist/src/cli/agentdb-cli.js +1 -1
- package/dist/src/cli/commands/doctor.js +5 -5
- package/dist/src/cli/commands/doctor.js.map +1 -1
- package/dist/src/cli/commands/install-embeddings.d.ts +1 -1
- package/dist/src/cli/commands/install-embeddings.js +7 -7
- package/dist/src/cli/commands/install-embeddings.js.map +1 -1
- package/dist/src/controllers/CausalMemoryGraph.js +4 -4
- package/dist/src/controllers/CausalMemoryGraph.js.map +1 -1
- package/dist/src/controllers/CausalRecall.js +2 -2
- package/dist/src/controllers/CausalRecall.js.map +1 -1
- package/dist/src/controllers/EmbeddingService.d.ts +29 -0
- package/dist/src/controllers/EmbeddingService.d.ts.map +1 -1
- package/dist/src/controllers/EmbeddingService.js +121 -21
- package/dist/src/controllers/EmbeddingService.js.map +1 -1
- package/dist/src/controllers/EnhancedEmbeddingService.js +4 -4
- package/dist/src/controllers/EnhancedEmbeddingService.js.map +1 -1
- package/dist/src/controllers/LearningSystem.js +6 -6
- package/dist/src/controllers/LearningSystem.js.map +1 -1
- package/dist/src/controllers/MemoryController.d.ts +13 -0
- package/dist/src/controllers/MemoryController.d.ts.map +1 -1
- package/dist/src/controllers/MemoryController.js +17 -0
- package/dist/src/controllers/MemoryController.js.map +1 -1
- package/dist/src/controllers/NightlyLearner.js +1 -1
- package/dist/src/controllers/NightlyLearner.js.map +1 -1
- package/dist/src/controllers/ReasoningBank.js +4 -4
- package/dist/src/controllers/ReasoningBank.js.map +1 -1
- package/dist/src/controllers/ReflexionMemory.js +5 -5
- package/dist/src/controllers/ReflexionMemory.js.map +1 -1
- package/dist/src/controllers/SkillLibrary.js +4 -4
- package/dist/src/controllers/SkillLibrary.js.map +1 -1
- package/dist/src/controllers/index.d.ts +1 -1
- package/dist/src/controllers/index.d.ts.map +1 -1
- package/dist/src/controllers/index.js +1 -1
- package/dist/src/controllers/index.js.map +1 -1
- package/dist/src/embedding/EmbeddingSpaceIdentity.d.ts +58 -0
- package/dist/src/embedding/EmbeddingSpaceIdentity.d.ts.map +1 -0
- package/dist/src/embedding/EmbeddingSpaceIdentity.js +137 -0
- package/dist/src/embedding/EmbeddingSpaceIdentity.js.map +1 -0
- package/dist/src/embedding/index.d.ts +3 -0
- package/dist/src/embedding/index.d.ts.map +1 -0
- package/dist/src/embedding/index.js +2 -0
- package/dist/src/embedding/index.js.map +1 -0
- package/dist/src/governance/MetaHarnessGateway.d.ts +55 -0
- package/dist/src/governance/MetaHarnessGateway.d.ts.map +1 -0
- package/dist/src/governance/MetaHarnessGateway.js +65 -0
- package/dist/src/governance/MetaHarnessGateway.js.map +1 -0
- package/dist/src/governance/RvfExperimentBranch.d.ts +65 -0
- package/dist/src/governance/RvfExperimentBranch.d.ts.map +1 -0
- package/dist/src/governance/RvfExperimentBranch.js +115 -0
- package/dist/src/governance/RvfExperimentBranch.js.map +1 -0
- package/dist/src/index.d.ts +5 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +5 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/mcp/agentdb-mcp-server.js +6 -1
- package/dist/src/mcp/agentdb-mcp-server.js.map +1 -1
- package/dist/src/model/ModelCacheLoader.d.ts +1 -1
- package/dist/src/model/ModelCacheLoader.d.ts.map +1 -1
- package/dist/src/model/ModelCacheLoader.js +3 -1
- package/dist/src/model/ModelCacheLoader.js.map +1 -1
- package/dist/src/security/mcp-policy.d.ts +13 -0
- package/dist/src/security/mcp-policy.d.ts.map +1 -0
- package/dist/src/security/mcp-policy.js +66 -0
- package/dist/src/security/mcp-policy.js.map +1 -0
- package/dist/src/services/enhanced-embeddings.d.ts +2 -2
- package/dist/src/services/enhanced-embeddings.js +3 -3
- package/dist/src/services/enhanced-embeddings.js.map +1 -1
- package/dist/src/wrappers/embedding-service.js +1 -1
- package/dist/src/wrappers/embedding-service.js.map +1 -1
- package/package.json +6 -7
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/embedding/index.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,2BAA2B,EAC3B,iBAAiB,EACjB,8BAA8B,EAC9B,4BAA4B,EAC5B,oBAAoB,EACrB,MAAM,6BAA6B,CAAC"}
|
|
@@ -0,0 +1,55 @@
|
|
|
1
|
+
export interface PromotionEvidence {
|
|
2
|
+
baseline: {
|
|
3
|
+
primary: number;
|
|
4
|
+
noopRate: number;
|
|
5
|
+
costPerWin: number;
|
|
6
|
+
regressed?: boolean;
|
|
7
|
+
};
|
|
8
|
+
candidate: {
|
|
9
|
+
primary: number;
|
|
10
|
+
noopRate: number;
|
|
11
|
+
costPerWin: number;
|
|
12
|
+
regressed?: boolean;
|
|
13
|
+
};
|
|
14
|
+
anchor?: {
|
|
15
|
+
baseline: number;
|
|
16
|
+
candidate: number;
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export interface PromotionDecision {
|
|
20
|
+
promote: boolean;
|
|
21
|
+
reasons: string[];
|
|
22
|
+
}
|
|
23
|
+
type RuvectorMetaHarness = {
|
|
24
|
+
getMetaHarnessCapabilities(): Promise<unknown[]>;
|
|
25
|
+
evaluateMetaHarnessPromotion(evidence: PromotionEvidence): Promise<PromotionDecision>;
|
|
26
|
+
verifyMetaHarnessReplay(bundle: unknown, options?: {
|
|
27
|
+
pinnedGateFingerprint?: string;
|
|
28
|
+
}): Promise<Record<string, unknown>>;
|
|
29
|
+
scanMetaHarnessRewardHacks(trajectory: Record<string, unknown>): Promise<{
|
|
30
|
+
clean: boolean;
|
|
31
|
+
findings: unknown[];
|
|
32
|
+
}>;
|
|
33
|
+
assertMetaHarnessSafePayload(payload: unknown): Promise<void>;
|
|
34
|
+
};
|
|
35
|
+
type ModuleLoader = () => Promise<RuvectorMetaHarness>;
|
|
36
|
+
/**
|
|
37
|
+
* Lazy governance boundary around ruvector's pinned MetaHarness integration.
|
|
38
|
+
* Candidate/Darwin execution is intentionally absent: AgentDB stores evidence
|
|
39
|
+
* and verifies promotion, but never executes research candidates over MCP.
|
|
40
|
+
*/
|
|
41
|
+
export declare class MetaHarnessGateway {
|
|
42
|
+
private readonly loader;
|
|
43
|
+
private pending;
|
|
44
|
+
constructor(loader?: ModuleLoader);
|
|
45
|
+
private load;
|
|
46
|
+
capabilities(): Promise<unknown[]>;
|
|
47
|
+
evaluatePromotion(evidence: PromotionEvidence): Promise<PromotionDecision>;
|
|
48
|
+
verifyReplay(bundle: unknown, pinnedGateFingerprint?: string): Promise<Record<string, unknown>>;
|
|
49
|
+
scanRewardHacks(trajectory: Record<string, unknown>): Promise<{
|
|
50
|
+
clean: boolean;
|
|
51
|
+
findings: unknown[];
|
|
52
|
+
}>;
|
|
53
|
+
}
|
|
54
|
+
export {};
|
|
55
|
+
//# sourceMappingURL=MetaHarnessGateway.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MetaHarnessGateway.d.ts","sourceRoot":"","sources":["../../../src/governance/MetaHarnessGateway.ts"],"names":[],"mappings":"AAAA,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE;QACR,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,SAAS,EAAE;QACT,OAAO,EAAE,MAAM,CAAC;QAChB,QAAQ,EAAE,MAAM,CAAC;QACjB,UAAU,EAAE,MAAM,CAAC;QACnB,SAAS,CAAC,EAAE,OAAO,CAAC;KACrB,CAAC;IACF,MAAM,CAAC,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE,CAAC;CAClD;AAED,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,KAAK,mBAAmB,GAAG;IACzB,0BAA0B,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;IACjD,4BAA4B,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACtF,uBAAuB,CACrB,MAAM,EAAE,OAAO,EACf,OAAO,CAAC,EAAE;QAAE,qBAAqB,CAAC,EAAE,MAAM,CAAA;KAAE,GAC3C,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IACpC,0BAA0B,CACxB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC,CAAC;IACpD,4BAA4B,CAAC,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC/D,CAAC;AAEF,KAAK,YAAY,GAAG,MAAM,OAAO,CAAC,mBAAmB,CAAC,CAAC;AAqBvD;;;;GAIG;AACH,qBAAa,kBAAkB;IAGjB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAFnC,OAAO,CAAC,OAAO,CAA6C;gBAE/B,MAAM,GAAE,YAA4B;IAEjE,OAAO,CAAC,IAAI;IAKN,YAAY,IAAI,OAAO,CAAC,OAAO,EAAE,CAAC;IAIlC,iBAAiB,CAAC,QAAQ,EAAE,iBAAiB,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAO1E,YAAY,CAChB,MAAM,EAAE,OAAO,EACf,qBAAqB,CAAC,EAAE,MAAM,GAC7B,OAAO,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAS7B,eAAe,CACnB,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAClC,OAAO,CAAC;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,QAAQ,EAAE,OAAO,EAAE,CAAA;KAAE,CAAC;CAIpD"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
const defaultLoader = async () => {
|
|
2
|
+
const loaded = await import('ruvector');
|
|
3
|
+
const required = [
|
|
4
|
+
'getMetaHarnessCapabilities',
|
|
5
|
+
'evaluateMetaHarnessPromotion',
|
|
6
|
+
'verifyMetaHarnessReplay',
|
|
7
|
+
'scanMetaHarnessRewardHacks',
|
|
8
|
+
'assertMetaHarnessSafePayload',
|
|
9
|
+
];
|
|
10
|
+
for (const name of required) {
|
|
11
|
+
if (typeof loaded[name] !== 'function') {
|
|
12
|
+
throw new Error(`Installed ruvector does not expose ${name}; install ruvector >= 0.2.40`);
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
return loaded;
|
|
16
|
+
};
|
|
17
|
+
/**
|
|
18
|
+
* Lazy governance boundary around ruvector's pinned MetaHarness integration.
|
|
19
|
+
* Candidate/Darwin execution is intentionally absent: AgentDB stores evidence
|
|
20
|
+
* and verifies promotion, but never executes research candidates over MCP.
|
|
21
|
+
*/
|
|
22
|
+
export class MetaHarnessGateway {
|
|
23
|
+
loader;
|
|
24
|
+
pending = null;
|
|
25
|
+
constructor(loader = defaultLoader) {
|
|
26
|
+
this.loader = loader;
|
|
27
|
+
}
|
|
28
|
+
load() {
|
|
29
|
+
this.pending ??= this.loader();
|
|
30
|
+
return this.pending;
|
|
31
|
+
}
|
|
32
|
+
async capabilities() {
|
|
33
|
+
return (await this.load()).getMetaHarnessCapabilities();
|
|
34
|
+
}
|
|
35
|
+
async evaluatePromotion(evidence) {
|
|
36
|
+
validatePromotionEvidence(evidence);
|
|
37
|
+
const api = await this.load();
|
|
38
|
+
await api.assertMetaHarnessSafePayload(evidence);
|
|
39
|
+
return api.evaluateMetaHarnessPromotion(evidence);
|
|
40
|
+
}
|
|
41
|
+
async verifyReplay(bundle, pinnedGateFingerprint) {
|
|
42
|
+
const api = await this.load();
|
|
43
|
+
await api.assertMetaHarnessSafePayload(bundle);
|
|
44
|
+
return api.verifyMetaHarnessReplay(bundle, pinnedGateFingerprint ? { pinnedGateFingerprint } : {});
|
|
45
|
+
}
|
|
46
|
+
async scanRewardHacks(trajectory) {
|
|
47
|
+
const api = await this.load();
|
|
48
|
+
return api.scanMetaHarnessRewardHacks(trajectory);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
function validatePromotionEvidence(evidence) {
|
|
52
|
+
for (const side of ['baseline', 'candidate']) {
|
|
53
|
+
for (const field of ['primary', 'noopRate', 'costPerWin']) {
|
|
54
|
+
if (!Number.isFinite(evidence[side][field])) {
|
|
55
|
+
throw new TypeError(`${side}.${field} must be finite`);
|
|
56
|
+
}
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
if (evidence.anchor) {
|
|
60
|
+
if (!Number.isFinite(evidence.anchor.baseline) || !Number.isFinite(evidence.anchor.candidate)) {
|
|
61
|
+
throw new TypeError('anchor values must be finite');
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
//# sourceMappingURL=MetaHarnessGateway.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MetaHarnessGateway.js","sourceRoot":"","sources":["../../../src/governance/MetaHarnessGateway.ts"],"names":[],"mappings":"AAoCA,MAAM,aAAa,GAAiB,KAAK,IAAI,EAAE;IAC7C,MAAM,MAAM,GAAG,MAAM,MAAM,CAAC,UAAU,CAAmC,CAAC;IAC1E,MAAM,QAAQ,GAAG;QACf,4BAA4B;QAC5B,8BAA8B;QAC9B,yBAAyB;QACzB,4BAA4B;QAC5B,8BAA8B;KACtB,CAAC;IACX,KAAK,MAAM,IAAI,IAAI,QAAQ,EAAE,CAAC;QAC5B,IAAI,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,UAAU,EAAE,CAAC;YACvC,MAAM,IAAI,KAAK,CACb,sCAAsC,IAAI,8BAA8B,CACzE,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC,CAAC;AAEF;;;;GAIG;AACH,MAAM,OAAO,kBAAkB;IAGA;IAFrB,OAAO,GAAwC,IAAI,CAAC;IAE5D,YAA6B,SAAuB,aAAa;QAApC,WAAM,GAAN,MAAM,CAA8B;IAAG,CAAC;IAE7D,IAAI;QACV,IAAI,CAAC,OAAO,KAAK,IAAI,CAAC,MAAM,EAAE,CAAC;QAC/B,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAED,KAAK,CAAC,YAAY;QAChB,OAAO,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,0BAA0B,EAAE,CAAC;IAC1D,CAAC;IAED,KAAK,CAAC,iBAAiB,CAAC,QAA2B;QACjD,yBAAyB,CAAC,QAAQ,CAAC,CAAC;QACpC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,GAAG,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAC;QACjD,OAAO,GAAG,CAAC,4BAA4B,CAAC,QAAQ,CAAC,CAAC;IACpD,CAAC;IAED,KAAK,CAAC,YAAY,CAChB,MAAe,EACf,qBAA8B;QAE9B,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAC9B,MAAM,GAAG,CAAC,4BAA4B,CAAC,MAAM,CAAC,CAAC;QAC/C,OAAO,GAAG,CAAC,uBAAuB,CAChC,MAAM,EACN,qBAAqB,CAAC,CAAC,CAAC,EAAE,qBAAqB,EAAE,CAAC,CAAC,CAAC,EAAE,CACvD,CAAC;IACJ,CAAC;IAED,KAAK,CAAC,eAAe,CACnB,UAAmC;QAEnC,MAAM,GAAG,GAAG,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC;QAC9B,OAAO,GAAG,CAAC,0BAA0B,CAAC,UAAU,CAAC,CAAC;IACpD,CAAC;CACF;AAED,SAAS,yBAAyB,CAAC,QAA2B;IAC5D,KAAK,MAAM,IAAI,IAAI,CAAC,UAAU,EAAE,WAAW,CAAU,EAAE,CAAC;QACtD,KAAK,MAAM,KAAK,IAAI,CAAC,SAAS,EAAE,UAAU,EAAE,YAAY,CAAU,EAAE,CAAC;YACnE,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC;gBAC5C,MAAM,IAAI,SAAS,CAAC,GAAG,IAAI,IAAI,KAAK,iBAAiB,CAAC,CAAC;YACzD,CAAC;QACH,CAAC;IACH,CAAC;IACD,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;QACpB,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,QAAQ,CAAC,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC;YAC9F,MAAM,IAAI,SAAS,CAAC,8BAA8B,CAAC,CAAC;QACtD,CAAC;IACH,CAAC;AACH,CAAC"}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
import type { PromotionDecision, PromotionEvidence } from './MetaHarnessGateway.js';
|
|
2
|
+
import { MetaHarnessGateway } from './MetaHarnessGateway.js';
|
|
3
|
+
interface GovernedRvfStore {
|
|
4
|
+
fileId(): Promise<string>;
|
|
5
|
+
parentId(): Promise<string>;
|
|
6
|
+
lineageDepth(): Promise<number>;
|
|
7
|
+
status(): Promise<{
|
|
8
|
+
totalVectors: number;
|
|
9
|
+
totalSegments: number;
|
|
10
|
+
}>;
|
|
11
|
+
segments(): Promise<Array<{
|
|
12
|
+
id: number;
|
|
13
|
+
segType: string;
|
|
14
|
+
payloadLength: number;
|
|
15
|
+
}>>;
|
|
16
|
+
verifyWitness(): {
|
|
17
|
+
valid: boolean;
|
|
18
|
+
entries: number;
|
|
19
|
+
error?: string;
|
|
20
|
+
};
|
|
21
|
+
derive(childPath: string): Promise<GovernedRvfStore>;
|
|
22
|
+
getStoragePath(): string;
|
|
23
|
+
}
|
|
24
|
+
export interface ExperimentAnchor {
|
|
25
|
+
repository: string;
|
|
26
|
+
commitSha: string;
|
|
27
|
+
benchmarkHash: string;
|
|
28
|
+
embeddingSpaceHash: string;
|
|
29
|
+
experimentalRevision: string;
|
|
30
|
+
}
|
|
31
|
+
export interface ExperimentReceipt {
|
|
32
|
+
schemaVersion: 1;
|
|
33
|
+
parentPath: string;
|
|
34
|
+
childPath: string;
|
|
35
|
+
parentFingerprint: string;
|
|
36
|
+
childFingerprint: string;
|
|
37
|
+
anchor: ExperimentAnchor;
|
|
38
|
+
decision: PromotionDecision;
|
|
39
|
+
receiptHash: string;
|
|
40
|
+
}
|
|
41
|
+
export declare class StaleExperimentBaselineError extends Error {
|
|
42
|
+
readonly code = "AGENTDB_STALE_EXPERIMENT_BASELINE";
|
|
43
|
+
constructor();
|
|
44
|
+
}
|
|
45
|
+
export declare class StaleExperimentRevisionError extends Error {
|
|
46
|
+
readonly code = "AGENTDB_STALE_EXPERIMENT_REVISION";
|
|
47
|
+
constructor();
|
|
48
|
+
}
|
|
49
|
+
export declare function assertExperimentRevisionCompatible(previous: ExperimentAnchor, next: ExperimentAnchor): void;
|
|
50
|
+
/**
|
|
51
|
+
* Creates an isolated RVF COW candidate and authorizes it without mutating the
|
|
52
|
+
* authoritative parent. Actual path/alias promotion remains a trusted external
|
|
53
|
+
* transaction so candidate code never receives release authority.
|
|
54
|
+
*/
|
|
55
|
+
export declare class RvfExperimentBranch {
|
|
56
|
+
private readonly parent;
|
|
57
|
+
readonly candidate: GovernedRvfStore;
|
|
58
|
+
readonly anchor: ExperimentAnchor;
|
|
59
|
+
private readonly parentFingerprint;
|
|
60
|
+
private constructor();
|
|
61
|
+
static create(parent: GovernedRvfStore, childPath: string, anchor: ExperimentAnchor): Promise<RvfExperimentBranch>;
|
|
62
|
+
authorizePromotion(gateway: MetaHarnessGateway, evidence: PromotionEvidence): Promise<ExperimentReceipt>;
|
|
63
|
+
}
|
|
64
|
+
export {};
|
|
65
|
+
//# sourceMappingURL=RvfExperimentBranch.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RvfExperimentBranch.d.ts","sourceRoot":"","sources":["../../../src/governance/RvfExperimentBranch.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,MAAM,yBAAyB,CAAC;AACpF,OAAO,EAAE,kBAAkB,EAAE,MAAM,yBAAyB,CAAC;AAE7D,UAAU,gBAAgB;IACxB,MAAM,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC1B,QAAQ,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAC5B,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC,CAAC;IAChC,MAAM,IAAI,OAAO,CAAC;QAAE,YAAY,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACnE,QAAQ,IAAI,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,aAAa,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAC;IACnF,aAAa,IAAI;QAAE,KAAK,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACrE,MAAM,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACrD,cAAc,IAAI,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,gBAAgB;IAC/B,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,aAAa,EAAE,MAAM,CAAC;IACtB,kBAAkB,EAAE,MAAM,CAAC;IAC3B,oBAAoB,EAAE,MAAM,CAAC;CAC9B;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,CAAC,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,gBAAgB,EAAE,MAAM,CAAC;IACzB,MAAM,EAAE,gBAAgB,CAAC;IACzB,QAAQ,EAAE,iBAAiB,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,qBAAa,4BAA6B,SAAQ,KAAK;IACrD,QAAQ,CAAC,IAAI,uCAAuC;;CAMrD;AAED,qBAAa,4BAA6B,SAAQ,KAAK;IACrD,QAAQ,CAAC,IAAI,uCAAuC;;CAMrD;AAED,wBAAgB,kCAAkC,CAChD,QAAQ,EAAE,gBAAgB,EAC1B,IAAI,EAAE,gBAAgB,GACrB,IAAI,CASN;AAED;;;;GAIG;AACH,qBAAa,mBAAmB;IAE5B,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,QAAQ,CAAC,SAAS,EAAE,gBAAgB;IACpC,QAAQ,CAAC,MAAM,EAAE,gBAAgB;IACjC,OAAO,CAAC,QAAQ,CAAC,iBAAiB;IAJpC,OAAO;WAOM,MAAM,CACjB,MAAM,EAAE,gBAAgB,EACxB,SAAS,EAAE,MAAM,EACjB,MAAM,EAAE,gBAAgB,GACvB,OAAO,CAAC,mBAAmB,CAAC;IAczB,kBAAkB,CACtB,OAAO,EAAE,kBAAkB,EAC3B,QAAQ,EAAE,iBAAiB,GAC1B,OAAO,CAAC,iBAAiB,CAAC;CAyB9B"}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
import { createHash } from 'node:crypto';
|
|
2
|
+
export class StaleExperimentBaselineError extends Error {
|
|
3
|
+
code = 'AGENTDB_STALE_EXPERIMENT_BASELINE';
|
|
4
|
+
constructor() {
|
|
5
|
+
super('The parent RVF generation changed after the experiment branch was created');
|
|
6
|
+
this.name = 'StaleExperimentBaselineError';
|
|
7
|
+
}
|
|
8
|
+
}
|
|
9
|
+
export class StaleExperimentRevisionError extends Error {
|
|
10
|
+
code = 'AGENTDB_STALE_EXPERIMENT_REVISION';
|
|
11
|
+
constructor() {
|
|
12
|
+
super('Embedding-space changes require a new experimental revision');
|
|
13
|
+
this.name = 'StaleExperimentRevisionError';
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
export function assertExperimentRevisionCompatible(previous, next) {
|
|
17
|
+
validateAnchor(previous);
|
|
18
|
+
validateAnchor(next);
|
|
19
|
+
if (previous.embeddingSpaceHash !== next.embeddingSpaceHash
|
|
20
|
+
&& previous.experimentalRevision === next.experimentalRevision) {
|
|
21
|
+
throw new StaleExperimentRevisionError();
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Creates an isolated RVF COW candidate and authorizes it without mutating the
|
|
26
|
+
* authoritative parent. Actual path/alias promotion remains a trusted external
|
|
27
|
+
* transaction so candidate code never receives release authority.
|
|
28
|
+
*/
|
|
29
|
+
export class RvfExperimentBranch {
|
|
30
|
+
parent;
|
|
31
|
+
candidate;
|
|
32
|
+
anchor;
|
|
33
|
+
parentFingerprint;
|
|
34
|
+
constructor(parent, candidate, anchor, parentFingerprint) {
|
|
35
|
+
this.parent = parent;
|
|
36
|
+
this.candidate = candidate;
|
|
37
|
+
this.anchor = anchor;
|
|
38
|
+
this.parentFingerprint = parentFingerprint;
|
|
39
|
+
}
|
|
40
|
+
static async create(parent, childPath, anchor) {
|
|
41
|
+
validateAnchor(anchor);
|
|
42
|
+
const parentFingerprint = await fingerprintStore(parent);
|
|
43
|
+
const parentId = await parent.fileId();
|
|
44
|
+
const candidate = await parent.derive(childPath);
|
|
45
|
+
if (await candidate.parentId() !== parentId) {
|
|
46
|
+
throw new Error('Derived RVF candidate does not identify the expected parent');
|
|
47
|
+
}
|
|
48
|
+
if (await candidate.lineageDepth() < 1) {
|
|
49
|
+
throw new Error('Derived RVF candidate has invalid lineage depth');
|
|
50
|
+
}
|
|
51
|
+
return new RvfExperimentBranch(parent, candidate, anchor, parentFingerprint);
|
|
52
|
+
}
|
|
53
|
+
async authorizePromotion(gateway, evidence) {
|
|
54
|
+
if (await fingerprintStore(this.parent) !== this.parentFingerprint) {
|
|
55
|
+
throw new StaleExperimentBaselineError();
|
|
56
|
+
}
|
|
57
|
+
const witness = this.candidate.verifyWitness();
|
|
58
|
+
if (!witness.valid) {
|
|
59
|
+
throw new Error(`Candidate RVF witness verification failed: ${witness.error ?? 'unknown error'}`);
|
|
60
|
+
}
|
|
61
|
+
const decision = await gateway.evaluatePromotion(evidence);
|
|
62
|
+
const childFingerprint = await fingerprintStore(this.candidate);
|
|
63
|
+
const unsigned = {
|
|
64
|
+
schemaVersion: 1,
|
|
65
|
+
parentPath: this.parent.getStoragePath(),
|
|
66
|
+
childPath: this.candidate.getStoragePath(),
|
|
67
|
+
parentFingerprint: this.parentFingerprint,
|
|
68
|
+
childFingerprint,
|
|
69
|
+
anchor: this.anchor,
|
|
70
|
+
decision,
|
|
71
|
+
};
|
|
72
|
+
return {
|
|
73
|
+
...unsigned,
|
|
74
|
+
receiptHash: hashCanonical(unsigned),
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
async function fingerprintStore(store) {
|
|
79
|
+
const [fileId, parentId, lineageDepth, status, segments] = await Promise.all([
|
|
80
|
+
store.fileId(),
|
|
81
|
+
store.parentId(),
|
|
82
|
+
store.lineageDepth(),
|
|
83
|
+
store.status(),
|
|
84
|
+
store.segments(),
|
|
85
|
+
]);
|
|
86
|
+
return hashCanonical({
|
|
87
|
+
fileId,
|
|
88
|
+
parentId,
|
|
89
|
+
lineageDepth,
|
|
90
|
+
status,
|
|
91
|
+
segments: [...segments].sort((a, b) => a.id - b.id),
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
function hashCanonical(value) {
|
|
95
|
+
return createHash('sha256').update(canonicalJson(value)).digest('hex');
|
|
96
|
+
}
|
|
97
|
+
function canonicalJson(value) {
|
|
98
|
+
if (Array.isArray(value))
|
|
99
|
+
return `[${value.map(canonicalJson).join(',')}]`;
|
|
100
|
+
if (value && typeof value === 'object') {
|
|
101
|
+
return `{${Object.entries(value)
|
|
102
|
+
.sort(([left], [right]) => left < right ? -1 : left > right ? 1 : 0)
|
|
103
|
+
.map(([key, item]) => `${JSON.stringify(key)}:${canonicalJson(item)}`)
|
|
104
|
+
.join(',')}}`;
|
|
105
|
+
}
|
|
106
|
+
return JSON.stringify(value);
|
|
107
|
+
}
|
|
108
|
+
function validateAnchor(anchor) {
|
|
109
|
+
for (const [name, value] of Object.entries(anchor)) {
|
|
110
|
+
if (typeof value !== 'string' || value.trim().length === 0) {
|
|
111
|
+
throw new TypeError(`anchor.${name} must be a non-empty string`);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=RvfExperimentBranch.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"RvfExperimentBranch.js","sourceRoot":"","sources":["../../../src/governance/RvfExperimentBranch.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.d.ts
CHANGED
|
@@ -19,8 +19,9 @@ export { ReflexionMemory } from './controllers/ReflexionMemory.js';
|
|
|
19
19
|
export { SkillLibrary } from './controllers/SkillLibrary.js';
|
|
20
20
|
export { LearningSystem } from './controllers/LearningSystem.js';
|
|
21
21
|
export { ReasoningBank } from './controllers/ReasoningBank.js';
|
|
22
|
-
export { EmbeddingService } from './controllers/EmbeddingService.js';
|
|
22
|
+
export { EmbeddingService, registerEmbeddingModelRolePolicy } from './controllers/EmbeddingService.js';
|
|
23
23
|
export { EnhancedEmbeddingService } from './controllers/EnhancedEmbeddingService.js';
|
|
24
|
+
export { EmbeddingSpaceMismatchError, applyRoleTemplate, assertEmbeddingSpaceCompatible, createEmbeddingSpaceIdentity, embeddingSpacesEqual, type EmbeddingCompatibilityOperation, type EmbeddingProvenanceType, type EmbeddingRole, type EmbeddingRolePolicy, type EmbeddingSpaceIdentity, type EmbeddingSpaceIdentityInput, type MemoryProvenance } from './embedding/index.js';
|
|
24
25
|
export { ModelCacheLoader } from './model/ModelCacheLoader.js';
|
|
25
26
|
export { WASMVectorSearch } from './controllers/WASMVectorSearch.js';
|
|
26
27
|
export { HNSWIndex, isHnswlibAvailable } from './controllers/HNSWIndex.js';
|
|
@@ -35,6 +36,9 @@ export { QueryOptimizer } from './optimizations/QueryOptimizer.js';
|
|
|
35
36
|
export { QueryCache } from './core/QueryCache.js';
|
|
36
37
|
export type { QueryCacheConfig, CacheEntry, CacheStatistics } from './core/QueryCache.js';
|
|
37
38
|
export { validateTableName, validateColumnName, validatePragmaCommand, buildSafeWhereClause, buildSafeSetClause, ValidationError, } from './security/input-validation.js';
|
|
39
|
+
export { buildMcpToolPolicy, filterMcpTools, isMcpToolAllowed, type AgentDbMcpProfile, type McpToolPolicy, } from './security/mcp-policy.js';
|
|
40
|
+
export { MetaHarnessGateway, type PromotionDecision, type PromotionEvidence, } from './governance/MetaHarnessGateway.js';
|
|
41
|
+
export { RvfExperimentBranch, StaleExperimentBaselineError, StaleExperimentRevisionError, assertExperimentRevisionCompatible, type ExperimentAnchor, type ExperimentReceipt, } from './governance/RvfExperimentBranch.js';
|
|
38
42
|
export { type QuantizationStats, type QuantizedVector, type ProductQuantizerConfig, type PQEncodedVector, type QuantizedVectorStoreConfig, type QuantizedSearchResult, quantize8bit, quantize4bit, dequantize8bit, dequantize4bit, calculateQuantizationError, getQuantizationStats, ProductQuantizer, QuantizedVectorStore, createScalar8BitStore, createScalar4BitStore, createProductQuantizedStore, } from './quantization/index.js';
|
|
39
43
|
export { KeywordIndex, HybridSearch, createKeywordIndex, createHybridSearch, type HybridSearchOptions, type HybridSearchResult, type HybridQuery, type BM25Config, } from './search/index.js';
|
|
40
44
|
export { BenchmarkSuite, Benchmark, VectorInsertBenchmark, VectorSearchBenchmark, MemoryUsageBenchmark, ConcurrencyBenchmark, QuantizationBenchmark, runBenchmarks, runSelectedBenchmarks, formatReportAsMarkdown, formatComparisonAsMarkdown, type LatencyStats, type BenchmarkResult, type BenchmarkReport, type ComparisonReport, type BenchmarkConfig, } from './benchmark/index.js';
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC5D,eAAe,YAAY,CAAC;AAG5B,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAG/D,OAAO,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
package/dist/src/index.js
CHANGED
|
@@ -22,8 +22,9 @@ export { SkillLibrary } from './controllers/SkillLibrary.js';
|
|
|
22
22
|
export { LearningSystem } from './controllers/LearningSystem.js';
|
|
23
23
|
export { ReasoningBank } from './controllers/ReasoningBank.js';
|
|
24
24
|
// Embedding services
|
|
25
|
-
export { EmbeddingService } from './controllers/EmbeddingService.js';
|
|
25
|
+
export { EmbeddingService, registerEmbeddingModelRolePolicy } from './controllers/EmbeddingService.js';
|
|
26
26
|
export { EnhancedEmbeddingService } from './controllers/EnhancedEmbeddingService.js';
|
|
27
|
+
export { EmbeddingSpaceMismatchError, applyRoleTemplate, assertEmbeddingSpaceCompatible, createEmbeddingSpaceIdentity, embeddingSpacesEqual } from './embedding/index.js';
|
|
27
28
|
// Model cache (offline .rvf model loading)
|
|
28
29
|
export { ModelCacheLoader } from './model/ModelCacheLoader.js';
|
|
29
30
|
// WASM acceleration and HNSW indexing
|
|
@@ -45,6 +46,9 @@ export { QueryOptimizer } from './optimizations/QueryOptimizer.js';
|
|
|
45
46
|
export { QueryCache } from './core/QueryCache.js';
|
|
46
47
|
// Security
|
|
47
48
|
export { validateTableName, validateColumnName, validatePragmaCommand, buildSafeWhereClause, buildSafeSetClause, ValidationError, } from './security/input-validation.js';
|
|
49
|
+
export { buildMcpToolPolicy, filterMcpTools, isMcpToolAllowed, } from './security/mcp-policy.js';
|
|
50
|
+
export { MetaHarnessGateway, } from './governance/MetaHarnessGateway.js';
|
|
51
|
+
export { RvfExperimentBranch, StaleExperimentBaselineError, StaleExperimentRevisionError, assertExperimentRevisionCompatible, } from './governance/RvfExperimentBranch.js';
|
|
48
52
|
// Vector Quantization
|
|
49
53
|
export {
|
|
50
54
|
// Scalar Quantization
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAEH,qBAAqB;AACrB,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5C,OAAO,EAAE,OAAO,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC5D,eAAe,YAAY,CAAC;AAE5B,mBAAmB;AACnB,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,oCAAoC,CAAC;AACvE,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,eAAe,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,gCAAgC,CAAC;AAE/D,qBAAqB;AACrB,OAAO,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -23,9 +23,11 @@ import * as path from 'path';
|
|
|
23
23
|
import * as fs from 'fs';
|
|
24
24
|
import { fileURLToPath } from 'url';
|
|
25
25
|
import { dirname } from 'path';
|
|
26
|
+
import { buildMcpToolPolicy, filterMcpTools, isMcpToolAllowed, } from '../security/mcp-policy.js';
|
|
26
27
|
// ES module equivalent of __dirname
|
|
27
28
|
const __filename = fileURLToPath(import.meta.url);
|
|
28
29
|
const __dirname = dirname(__filename);
|
|
30
|
+
const toolPolicy = buildMcpToolPolicy();
|
|
29
31
|
// stdout belongs exclusively to JSON-RPC when running over stdio. Route every
|
|
30
32
|
// transitive diagnostic (including legacy controller console.log calls) to
|
|
31
33
|
// stderr before database and embedding initialization begins.
|
|
@@ -876,11 +878,14 @@ const tools = [
|
|
|
876
878
|
// Tool Handlers
|
|
877
879
|
// ============================================================================
|
|
878
880
|
server.setRequestHandler(ListToolsRequestSchema, async () => {
|
|
879
|
-
return { tools };
|
|
881
|
+
return { tools: filterMcpTools(tools, toolPolicy) };
|
|
880
882
|
});
|
|
881
883
|
server.setRequestHandler(CallToolRequestSchema, async (request) => {
|
|
882
884
|
const { name, arguments: args } = request.params;
|
|
883
885
|
try {
|
|
886
|
+
if (!isMcpToolAllowed(name, toolPolicy)) {
|
|
887
|
+
throw new Error(`MCP tool "${name}" is not permitted by the active AgentDB capability policy`);
|
|
888
|
+
}
|
|
884
889
|
switch (name) {
|
|
885
890
|
// ======================================================================
|
|
886
891
|
// CORE VECTOR DB OPERATIONS
|