@backendkit-labs/agent-enterprise 0.3.6 → 0.4.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/dist/flow/ComplianceGate.d.ts +10 -0
- package/dist/flow/ComplianceGate.d.ts.map +1 -1
- package/dist/flow/ComplianceGate.js.map +1 -1
- package/dist/flow/FlowRunner.d.ts +7 -0
- package/dist/flow/FlowRunner.d.ts.map +1 -1
- package/dist/flow/FlowRunner.js +9 -0
- package/dist/flow/FlowRunner.js.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +7 -1
- package/dist/index.js.map +1 -1
- package/dist/rag/OllamaEmbedder.d.ts +6 -0
- package/dist/rag/OllamaEmbedder.d.ts.map +1 -1
- package/dist/rag/OllamaEmbedder.js +75 -16
- package/dist/rag/OllamaEmbedder.js.map +1 -1
- package/dist/rag/VaultWriter.d.ts +3 -0
- package/dist/rag/VaultWriter.d.ts.map +1 -1
- package/dist/rag/VaultWriter.js +63 -17
- package/dist/rag/VaultWriter.js.map +1 -1
- package/dist/reflection/EnterpriseReflection.d.ts +108 -0
- package/dist/reflection/EnterpriseReflection.d.ts.map +1 -0
- package/dist/reflection/EnterpriseReflection.js +296 -0
- package/dist/reflection/EnterpriseReflection.js.map +1 -0
- package/dist/reflection/GateReflectionBridge.d.ts +21 -0
- package/dist/reflection/GateReflectionBridge.d.ts.map +1 -0
- package/dist/reflection/GateReflectionBridge.js +120 -0
- package/dist/reflection/GateReflectionBridge.js.map +1 -0
- package/dist/reflection/domains.d.ts +6 -0
- package/dist/reflection/domains.d.ts.map +1 -0
- package/dist/reflection/domains.js +176 -0
- package/dist/reflection/domains.js.map +1 -0
- package/dist/reflection/index.d.ts +6 -0
- package/dist/reflection/index.d.ts.map +1 -0
- package/dist/reflection/index.js +11 -0
- package/dist/reflection/index.js.map +1 -0
- package/package.json +1 -1
|
@@ -10,6 +10,16 @@
|
|
|
10
10
|
export interface GateCriterion {
|
|
11
11
|
id: string;
|
|
12
12
|
description: string;
|
|
13
|
+
/**
|
|
14
|
+
* Enterprise domain this criterion belongs to (e.g. 'legal', 'rrhh').
|
|
15
|
+
* Used by GateReflectionBridge to file incidents in the correct domain catalog.
|
|
16
|
+
*/
|
|
17
|
+
domain?: string;
|
|
18
|
+
/**
|
|
19
|
+
* Explicit failureType from ENTERPRISE_DOMAINS.
|
|
20
|
+
* When set, incidents are filed deterministically without keyword matching.
|
|
21
|
+
*/
|
|
22
|
+
failureType?: string;
|
|
13
23
|
passed?: boolean;
|
|
14
24
|
evidence?: string;
|
|
15
25
|
evaluatedBy?: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComplianceGate.d.ts","sourceRoot":"","sources":["../../src/flow/ComplianceGate.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,MAAM,WAAW,aAAa;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,YAAY,GAClB,qBAAqB,GACrB,oBAAoB,GACpB,yBAAyB,GACzB,0BAA0B,GAC1B,eAAe,CAAC;AAEtB,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,YAAY,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,OAAO,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IACzC,GAAG,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE,UAAU,GAAG,UAAU,CAAC;CACzC;AAID,qBAAa,mBAAoB,SAAQ,KAAK;gBAC9B,OAAO,EAAE,MAAM;CAI9B;AAID,qBAAa,cAAc;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAa;IACrC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA0B;gBAE3C,IAAI,EAAE,qBAAqB;IAgBvC;;;;;;;;;OASG;IACH,iBAAiB,CACb,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,OAAO,EACf,QAAQ,CAAC,EAAE,MAAM,GAClB,IAAI;IA6CP;;;OAGG;IACH,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAmBlD,+DAA+D;IAC/D,SAAS,IAAI,UAAU;IAQvB,IAAI,OAAO,IAAI,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAE7C;IAED;;;;OAIG;IACG,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAwDjD,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,SAAS;CAGpB"}
|
|
1
|
+
{"version":3,"file":"ComplianceGate.d.ts","sourceRoot":"","sources":["../../src/flow/ComplianceGate.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAOH,MAAM,WAAW,aAAa;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,WAAW,EAAE,MAAM,CAAC;IACpB;;;OAGG;IACH,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB;;;OAGG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,MAAM,YAAY,GAClB,qBAAqB,GACrB,oBAAoB,GACpB,yBAAyB,GACzB,0BAA0B,GAC1B,eAAe,CAAC;AAEtB,MAAM,WAAW,YAAY;IACzB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,YAAY,CAAC;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,aAAa,EAAE,CAAC;IAC1B,OAAO,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAAC;IACzC,GAAG,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,MAAM,WAAW,qBAAqB;IAClC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,mEAAmE;IACnE,QAAQ,EAAE,MAAM,CAAC;IACjB,gEAAgE;IAChE,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,YAAY,EAAE,UAAU,GAAG,UAAU,CAAC;CACzC;AAID,qBAAa,mBAAoB,SAAQ,KAAK;gBAC9B,OAAO,EAAE,MAAM;CAI9B;AAID,qBAAa,cAAc;IACvB,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAa;IACrC,OAAO,CAAC,QAAQ,CAAC,YAAY,CAA0B;gBAE3C,IAAI,EAAE,qBAAqB;IAgBvC;;;;;;;;;OASG;IACH,iBAAiB,CACb,KAAK,EAAE,MAAM,EACb,WAAW,EAAE,MAAM,EACnB,MAAM,EAAE,OAAO,EACf,QAAQ,CAAC,EAAE,MAAM,GAClB,IAAI;IA6CP;;;OAGG;IACH,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI;IAmBlD,+DAA+D;IAC/D,SAAS,IAAI,UAAU;IAQvB,IAAI,OAAO,IAAI,QAAQ,GAAG,QAAQ,GAAG,SAAS,CAE7C;IAED;;;;OAIG;IACG,OAAO,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAwDjD,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,SAAS;CAGpB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ComplianceGate.js","sourceRoot":"","sources":["../../src/flow/ComplianceGate.ts"],"names":[],"mappings":";AAAA;;;;;;;;GAQG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,2CAA6B;AAC7B,oDAAiD;
|
|
1
|
+
{"version":3,"file":"ComplianceGate.js","sourceRoot":"","sources":["../../src/flow/ComplianceGate.ts"],"names":[],"mappings":"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"}
|
|
@@ -13,6 +13,7 @@
|
|
|
13
13
|
import type { Transport } from '@backendkit-labs/agent-core';
|
|
14
14
|
import { FlowDefinition, FlowStep, FlowResult, FlowTransition } from './types';
|
|
15
15
|
import { ComplianceGate } from './ComplianceGate';
|
|
16
|
+
import type { EnterpriseReflection } from '../reflection/index.js';
|
|
16
17
|
export type FlowAgentRunner = (agentId: string, input: string, context?: string, stepId?: string) => Promise<{
|
|
17
18
|
content: string;
|
|
18
19
|
}>;
|
|
@@ -43,6 +44,12 @@ export interface FlowRunOptions {
|
|
|
43
44
|
onGateRequired?: (gate: ComplianceGate, step: FlowStep, stepOutput: string) => Promise<void>;
|
|
44
45
|
/** Observer for the append-only transition log. */
|
|
45
46
|
onTransition?: (transition: FlowTransition) => void;
|
|
47
|
+
/**
|
|
48
|
+
* Cable 1: enterprise reflection adapter.
|
|
49
|
+
* When set, every ComplianceGate outcome (pass AND fail) is recorded in the
|
|
50
|
+
* failure catalog so recurring failures can be promoted to deterministic rules.
|
|
51
|
+
*/
|
|
52
|
+
reflection?: EnterpriseReflection;
|
|
46
53
|
/**
|
|
47
54
|
* Stable identifier for this run. Used in gate records persisted to the vault.
|
|
48
55
|
* Auto-generated when not provided.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlowRunner.d.ts","sourceRoot":"","sources":["../../src/flow/FlowRunner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EACH,cAAc,EACd,QAAQ,EACR,UAAU,EAEV,cAAc,EAEjB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,cAAc,EAAuB,MAAM,kBAAkB,CAAC;
|
|
1
|
+
{"version":3,"file":"FlowRunner.d.ts","sourceRoot":"","sources":["../../src/flow/FlowRunner.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAOH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EACH,cAAc,EACd,QAAQ,EACR,UAAU,EAEV,cAAc,EAEjB,MAAM,SAAS,CAAC;AACjB,OAAO,EAAE,cAAc,EAAuB,MAAM,kBAAkB,CAAC;AACvE,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAEnE,MAAM,MAAM,eAAe,GAAG,CAC1B,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,MAAM,EAChB,MAAM,CAAC,EAAE,MAAM,KACd,OAAO,CAAC;IAAE,OAAO,EAAE,MAAM,CAAA;CAAE,CAAC,CAAC;AAElC,MAAM,WAAW,cAAc;IAC3B,uDAAuD;IACvD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,eAAe,CAAC;IAC1B,SAAS,EAAE,SAAS,CAAC;IACrB;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,CACjB,IAAI,EAAE,QAAQ,EACd,eAAe,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,KACtC,OAAO,CAAC,OAAO,CAAC,CAAC;IACtB;;;;;;;;;;;;OAYG;IACH,cAAc,CAAC,EAAE,CACb,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,QAAQ,EACd,UAAU,EAAE,MAAM,KACjB,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,mDAAmD;IACnD,YAAY,CAAC,EAAE,CAAC,UAAU,EAAE,cAAc,KAAK,IAAI,CAAC;IACpD;;;;OAIG;IACH,UAAU,CAAC,EAAE,oBAAoB,CAAC;IAClC;;;OAGG;IACH,KAAK,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,UAAU;IAIf,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAJzB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAwB;gBAG/B,GAAG,EAAE,cAAc,EACnB,IAAI,EAAE,cAAc;IAGnC,GAAG,IAAI,OAAO,CAAC,UAAU,CAAC;YA4GlB,gBAAgB;IA6B9B,OAAO,CAAC,MAAM;CAKjB;AAID;;;GAGG;AACH,wBAAgB,WAAW,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,MAAM,CAWtE"}
|
package/dist/flow/FlowRunner.js
CHANGED
|
@@ -56,6 +56,15 @@ class FlowRunner {
|
|
|
56
56
|
evidenceMode: gate.evidence ?? 'optional',
|
|
57
57
|
});
|
|
58
58
|
await this.opts.onGateRequired(complianceGate, flowStep, result.content);
|
|
59
|
+
// ── Cable 1: record outcome in enterprise reflection ───
|
|
60
|
+
// Fires for BOTH pass and fail — failures feed the catalog,
|
|
61
|
+
// passes build the "no incidents" signal used by demotion.
|
|
62
|
+
if (this.opts.reflection) {
|
|
63
|
+
this.opts.reflection
|
|
64
|
+
.recordGateOutcome(complianceGate.getRecord())
|
|
65
|
+
.catch(() => { });
|
|
66
|
+
}
|
|
67
|
+
// ──────────────────────────────────────────────────────
|
|
59
68
|
if (complianceGate.verdict !== 'passed') {
|
|
60
69
|
this.record({
|
|
61
70
|
stepId: stepId,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FlowRunner.js","sourceRoot":"","sources":["../../src/flow/FlowRunner.ts"],"names":[],"mappings":";AAAA;;;;;;;;;;;GAWG;;;
|
|
1
|
+
{"version":3,"file":"FlowRunner.js","sourceRoot":"","sources":["../../src/flow/FlowRunner.ts"],"names":[],"mappings":"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"}
|
package/dist/index.d.ts
CHANGED
|
@@ -18,6 +18,8 @@ export { EventPublisher, ReconciliationSweeper } from './events';
|
|
|
18
18
|
export type { QueueLike, EventPublisherOptions, ReconciliationSweeperOptions, EventEnvelope, EventSchema, PublishOptions, OrphanedEvent, ReconciliationReport, } from './events';
|
|
19
19
|
export { createN8nTriggerTool } from './integrations';
|
|
20
20
|
export type { N8nTriggerOptions } from './integrations';
|
|
21
|
+
export { EnterpriseReflection, recordGateOutcome, ENTERPRISE_DOMAINS, SEVERITY_THRESHOLD } from './reflection';
|
|
22
|
+
export type { EnterpriseReflectionOptions, PendingPromotion, GateBridgeResult } from './reflection';
|
|
21
23
|
export { createEnterpriseSetup } from './factory';
|
|
22
24
|
export type { EnterpriseSetupOptions, EnterpriseSetup } from './factory';
|
|
23
25
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAE9E,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAC7G,YAAY,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAE7E,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAItD,OAAO,EACH,eAAe,EACf,eAAe,EACf,UAAU,EACV,aAAa,EACb,eAAe,EACf,WAAW,EACX,uBAAuB,EACvB,gBAAgB,EAChB,aAAa,GAChB,MAAM,YAAY,CAAC;AAIpB,OAAO,EACH,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,sBAAsB,EACtB,oBAAoB,EACpB,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,WAAW,EACX,cAAc,EACd,mBAAmB,GACtB,MAAM,QAAQ,CAAC;AAChB,YAAY,EACR,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,sBAAsB,EACtB,UAAU,EACV,cAAc,EACd,eAAe,EACf,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,qBAAqB,GACxB,MAAM,QAAQ,CAAC;AAIhB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,YAAY,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAItD,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACjE,YAAY,EACR,SAAS,EACT,qBAAqB,EACrB,4BAA4B,EAC5B,aAAa,EACb,WAAW,EACX,cAAc,EACd,aAAa,EACb,oBAAoB,GACvB,MAAM,UAAU,CAAC;AAIlB,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAIxD,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAClD,YAAY,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,mBAAmB,EAAE,MAAM,2BAA2B,CAAC;AAChE,YAAY,EAAE,kBAAkB,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AAE9E,OAAO,EAAE,cAAc,EAAE,yBAAyB,EAAE,0BAA0B,EAAE,MAAM,sBAAsB,CAAC;AAC7G,YAAY,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAElE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEnE,OAAO,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClD,YAAY,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,oBAAoB,CAAC;AAEnE,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,YAAY,EAAE,kBAAkB,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AAE7E,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAItD,OAAO,EACH,eAAe,EACf,eAAe,EACf,UAAU,EACV,aAAa,EACb,eAAe,EACf,WAAW,EACX,uBAAuB,EACvB,gBAAgB,EAChB,aAAa,GAChB,MAAM,YAAY,CAAC;AAIpB,OAAO,EACH,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,sBAAsB,EACtB,oBAAoB,EACpB,SAAS,EACT,QAAQ,EACR,gBAAgB,EAChB,aAAa,EACb,UAAU,EACV,WAAW,EACX,cAAc,EACd,mBAAmB,GACtB,MAAM,QAAQ,CAAC;AAChB,YAAY,EACR,WAAW,EACX,QAAQ,EACR,QAAQ,EACR,gBAAgB,EAChB,cAAc,EACd,cAAc,EACd,mBAAmB,EACnB,cAAc,EACd,sBAAsB,EACtB,UAAU,EACV,cAAc,EACd,eAAe,EACf,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,qBAAqB,GACxB,MAAM,QAAQ,CAAC;AAIhB,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,YAAY,EAAE,mBAAmB,EAAE,MAAM,YAAY,CAAC;AAItD,OAAO,EAAE,cAAc,EAAE,qBAAqB,EAAE,MAAM,UAAU,CAAC;AACjE,YAAY,EACR,SAAS,EACT,qBAAqB,EACrB,4BAA4B,EAC5B,aAAa,EACb,WAAW,EACX,cAAc,EACd,aAAa,EACb,oBAAoB,GACvB,MAAM,UAAU,CAAC;AAIlB,OAAO,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,YAAY,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAIxD,OAAO,EAAE,oBAAoB,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,cAAc,CAAC;AAC/G,YAAY,EAAE,2BAA2B,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAIpG,OAAO,EAAE,qBAAqB,EAAE,MAAM,WAAW,CAAC;AAClD,YAAY,EAAE,sBAAsB,EAAE,eAAe,EAAE,MAAM,WAAW,CAAC"}
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.createEnterpriseSetup = exports.createN8nTriggerTool = exports.ReconciliationSweeper = exports.EventPublisher = exports.PolicySeeder = exports.ComplianceGateError = exports.ComplianceGate = exports.interpolate = exports.FlowRunner = exports.FlowLoadError = exports.loadFlowsFromDir = exports.loadFlow = exports.parseFlow = exports.FlowDefinitionSchema = exports.FlowCompensationSchema = exports.FlowStepSchema = exports.FlowGateSchema = exports.FlowTriggerSchema = exports.VAULT_FOLDERS = exports.ENTERPRISE_TOOLS = exports.ALL_ENTERPRISE_PROFILES = exports.OPS_PROFILE = exports.FINANCE_PROFILE = exports.SALES_PROFILE = exports.HR_PROFILE = exports.SUPPORT_PROFILE = exports.GENERAL_PROFILE = exports.SimpleEmbedder = exports.VaultWriter = exports.VaultIndexer = exports.VectorStore = exports.OLLAMA_EMBED_DEFAULT_MODEL = exports.OLLAMA_EMBED_DEFAULT_HOST = exports.OllamaEmbedder = exports.ObsidianRAGProvider = void 0;
|
|
3
|
+
exports.createEnterpriseSetup = exports.SEVERITY_THRESHOLD = exports.ENTERPRISE_DOMAINS = exports.recordGateOutcome = exports.EnterpriseReflection = exports.createN8nTriggerTool = exports.ReconciliationSweeper = exports.EventPublisher = exports.PolicySeeder = exports.ComplianceGateError = exports.ComplianceGate = exports.interpolate = exports.FlowRunner = exports.FlowLoadError = exports.loadFlowsFromDir = exports.loadFlow = exports.parseFlow = exports.FlowDefinitionSchema = exports.FlowCompensationSchema = exports.FlowStepSchema = exports.FlowGateSchema = exports.FlowTriggerSchema = exports.VAULT_FOLDERS = exports.ENTERPRISE_TOOLS = exports.ALL_ENTERPRISE_PROFILES = exports.OPS_PROFILE = exports.FINANCE_PROFILE = exports.SALES_PROFILE = exports.HR_PROFILE = exports.SUPPORT_PROFILE = exports.GENERAL_PROFILE = exports.SimpleEmbedder = exports.VaultWriter = exports.VaultIndexer = exports.VectorStore = exports.OLLAMA_EMBED_DEFAULT_MODEL = exports.OLLAMA_EMBED_DEFAULT_HOST = exports.OllamaEmbedder = exports.ObsidianRAGProvider = void 0;
|
|
4
4
|
var ObsidianRAGProvider_1 = require("./rag/ObsidianRAGProvider");
|
|
5
5
|
Object.defineProperty(exports, "ObsidianRAGProvider", { enumerable: true, get: function () { return ObsidianRAGProvider_1.ObsidianRAGProvider; } });
|
|
6
6
|
var OllamaEmbedder_1 = require("./rag/OllamaEmbedder");
|
|
@@ -51,6 +51,12 @@ Object.defineProperty(exports, "ReconciliationSweeper", { enumerable: true, get:
|
|
|
51
51
|
// ── Integrations ──────────────────────────────────────────────────────────────
|
|
52
52
|
var integrations_1 = require("./integrations");
|
|
53
53
|
Object.defineProperty(exports, "createN8nTriggerTool", { enumerable: true, get: function () { return integrations_1.createN8nTriggerTool; } });
|
|
54
|
+
// ── Reflection (enterprise adapter) ──────────────────────────────────────────
|
|
55
|
+
var reflection_1 = require("./reflection");
|
|
56
|
+
Object.defineProperty(exports, "EnterpriseReflection", { enumerable: true, get: function () { return reflection_1.EnterpriseReflection; } });
|
|
57
|
+
Object.defineProperty(exports, "recordGateOutcome", { enumerable: true, get: function () { return reflection_1.recordGateOutcome; } });
|
|
58
|
+
Object.defineProperty(exports, "ENTERPRISE_DOMAINS", { enumerable: true, get: function () { return reflection_1.ENTERPRISE_DOMAINS; } });
|
|
59
|
+
Object.defineProperty(exports, "SEVERITY_THRESHOLD", { enumerable: true, get: function () { return reflection_1.SEVERITY_THRESHOLD; } });
|
|
54
60
|
// ── Factory ───────────────────────────────────────────────────────────────────
|
|
55
61
|
var factory_1 = require("./factory");
|
|
56
62
|
Object.defineProperty(exports, "createEnterpriseSetup", { enumerable: true, get: function () { return factory_1.createEnterpriseSetup; } });
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iEAAgE;AAAvD,0HAAA,mBAAmB,OAAA;AAG5B,uDAA6G;AAApG,gHAAA,cAAc,OAAA;AAAE,2HAAA,yBAAyB,OAAA;AAAE,4HAAA,0BAA0B,OAAA;AAG9E,iDAAgD;AAAvC,0GAAA,WAAW,OAAA;AAGpB,mDAAkD;AAAzC,4GAAA,YAAY,OAAA;AAGrB,iDAAgD;AAAvC,0GAAA,WAAW,OAAA;AAGpB,uDAAsD;AAA7C,gHAAA,cAAc,OAAA;AAEvB,iFAAiF;AAEjF,uCAUoB;AAThB,2GAAA,eAAe,OAAA;AACf,2GAAA,eAAe,OAAA;AACf,sGAAA,UAAU,OAAA;AACV,yGAAA,aAAa,OAAA;AACb,2GAAA,eAAe,OAAA;AACf,uGAAA,WAAW,OAAA;AACX,mHAAA,uBAAuB,OAAA;AACvB,4GAAA,gBAAgB,OAAA;AAChB,yGAAA,aAAa,OAAA;AAGjB,iFAAiF;AAEjF,+BAcgB;AAbZ,yGAAA,iBAAiB,OAAA;AACjB,sGAAA,cAAc,OAAA;AACd,sGAAA,cAAc,OAAA;AACd,8GAAA,sBAAsB,OAAA;AACtB,4GAAA,oBAAoB,OAAA;AACpB,iGAAA,SAAS,OAAA;AACT,gGAAA,QAAQ,OAAA;AACR,wGAAA,gBAAgB,OAAA;AAChB,qGAAA,aAAa,OAAA;AACb,kGAAA,UAAU,OAAA;AACV,mGAAA,WAAW,OAAA;AACX,sGAAA,cAAc,OAAA;AACd,2GAAA,mBAAmB,OAAA;AAsBvB,iFAAiF;AAEjF,uCAA0C;AAAjC,wGAAA,YAAY,OAAA;AAGrB,gFAAgF;AAEhF,mCAAiE;AAAxD,wGAAA,cAAc,OAAA;AAAE,+GAAA,qBAAqB,OAAA;AAY9C,iFAAiF;AAEjF,+CAAsD;AAA7C,oHAAA,oBAAoB,OAAA;AAG7B,iFAAiF;AAEjF,qCAAkD;AAAzC,gHAAA,qBAAqB,OAAA"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAAA,iEAAgE;AAAvD,0HAAA,mBAAmB,OAAA;AAG5B,uDAA6G;AAApG,gHAAA,cAAc,OAAA;AAAE,2HAAA,yBAAyB,OAAA;AAAE,4HAAA,0BAA0B,OAAA;AAG9E,iDAAgD;AAAvC,0GAAA,WAAW,OAAA;AAGpB,mDAAkD;AAAzC,4GAAA,YAAY,OAAA;AAGrB,iDAAgD;AAAvC,0GAAA,WAAW,OAAA;AAGpB,uDAAsD;AAA7C,gHAAA,cAAc,OAAA;AAEvB,iFAAiF;AAEjF,uCAUoB;AAThB,2GAAA,eAAe,OAAA;AACf,2GAAA,eAAe,OAAA;AACf,sGAAA,UAAU,OAAA;AACV,yGAAA,aAAa,OAAA;AACb,2GAAA,eAAe,OAAA;AACf,uGAAA,WAAW,OAAA;AACX,mHAAA,uBAAuB,OAAA;AACvB,4GAAA,gBAAgB,OAAA;AAChB,yGAAA,aAAa,OAAA;AAGjB,iFAAiF;AAEjF,+BAcgB;AAbZ,yGAAA,iBAAiB,OAAA;AACjB,sGAAA,cAAc,OAAA;AACd,sGAAA,cAAc,OAAA;AACd,8GAAA,sBAAsB,OAAA;AACtB,4GAAA,oBAAoB,OAAA;AACpB,iGAAA,SAAS,OAAA;AACT,gGAAA,QAAQ,OAAA;AACR,wGAAA,gBAAgB,OAAA;AAChB,qGAAA,aAAa,OAAA;AACb,kGAAA,UAAU,OAAA;AACV,mGAAA,WAAW,OAAA;AACX,sGAAA,cAAc,OAAA;AACd,2GAAA,mBAAmB,OAAA;AAsBvB,iFAAiF;AAEjF,uCAA0C;AAAjC,wGAAA,YAAY,OAAA;AAGrB,gFAAgF;AAEhF,mCAAiE;AAAxD,wGAAA,cAAc,OAAA;AAAE,+GAAA,qBAAqB,OAAA;AAY9C,iFAAiF;AAEjF,+CAAsD;AAA7C,oHAAA,oBAAoB,OAAA;AAG7B,gFAAgF;AAEhF,2CAA+G;AAAtG,kHAAA,oBAAoB,OAAA;AAAE,+GAAA,iBAAiB,OAAA;AAAE,gHAAA,kBAAkB,OAAA;AAAE,gHAAA,kBAAkB,OAAA;AAGxF,iFAAiF;AAEjF,qCAAkD;AAAzC,gHAAA,qBAAqB,OAAA"}
|
|
@@ -3,13 +3,19 @@ export declare const OLLAMA_EMBED_DEFAULT_HOST = "http://localhost:11434";
|
|
|
3
3
|
export interface OllamaEmbedderOptions {
|
|
4
4
|
host?: string;
|
|
5
5
|
model?: string;
|
|
6
|
+
timeoutMs?: number;
|
|
7
|
+
maxRetries?: number;
|
|
6
8
|
}
|
|
7
9
|
export declare class OllamaEmbedder {
|
|
8
10
|
private readonly host;
|
|
11
|
+
private readonly timeoutMs;
|
|
12
|
+
private readonly maxRetries;
|
|
9
13
|
readonly model: string;
|
|
10
14
|
constructor(opts?: OllamaEmbedderOptions);
|
|
11
15
|
embed(texts: string[]): Promise<number[][]>;
|
|
12
16
|
embedOne(text: string): Promise<number[]>;
|
|
13
17
|
checkConnection(): Promise<void>;
|
|
18
|
+
private fetchEmbeddings;
|
|
19
|
+
private withRetry;
|
|
14
20
|
}
|
|
15
21
|
//# sourceMappingURL=OllamaEmbedder.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OllamaEmbedder.d.ts","sourceRoot":"","sources":["../../src/rag/OllamaEmbedder.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0BAA0B,qBAAqB,CAAC;AAC7D,eAAO,MAAM,yBAAyB,
|
|
1
|
+
{"version":3,"file":"OllamaEmbedder.d.ts","sourceRoot":"","sources":["../../src/rag/OllamaEmbedder.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,0BAA0B,qBAAqB,CAAC;AAC7D,eAAO,MAAM,yBAAyB,2BAA4B,CAAC;AAMnE,MAAM,WAAW,qBAAqB;IAClC,IAAI,CAAC,EAAQ,MAAM,CAAC;IACpB,KAAK,CAAC,EAAO,MAAM,CAAC;IACpB,SAAS,CAAC,EAAG,MAAM,CAAC;IACpB,UAAU,CAAC,EAAE,MAAM,CAAC;CACvB;AAMD,qBAAa,cAAc;IACvB,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAe;IACpC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAU;IACpC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAS;IACpC,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;gBAEX,IAAI,GAAE,qBAA0B;IAOtC,KAAK,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;IAK3C,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAKzC,eAAe,IAAI,OAAO,CAAC,IAAI,CAAC;YAmBxB,eAAe;YA2Cf,SAAS;CAkB1B"}
|
|
@@ -3,39 +3,34 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.OllamaEmbedder = exports.OLLAMA_EMBED_DEFAULT_HOST = exports.OLLAMA_EMBED_DEFAULT_MODEL = void 0;
|
|
4
4
|
exports.OLLAMA_EMBED_DEFAULT_MODEL = 'nomic-embed-text';
|
|
5
5
|
exports.OLLAMA_EMBED_DEFAULT_HOST = 'http://localhost:11434';
|
|
6
|
+
const DEFAULT_TIMEOUT_MS = 30_000;
|
|
7
|
+
const MAX_RETRIES = 3;
|
|
8
|
+
const BACKOFF_BASE_MS = 500;
|
|
6
9
|
class OllamaEmbedder {
|
|
7
10
|
host;
|
|
11
|
+
timeoutMs;
|
|
12
|
+
maxRetries;
|
|
8
13
|
model;
|
|
9
14
|
constructor(opts = {}) {
|
|
10
15
|
this.host = (opts.host ?? exports.OLLAMA_EMBED_DEFAULT_HOST).replace(/\/$/, '');
|
|
11
16
|
this.model = opts.model ?? exports.OLLAMA_EMBED_DEFAULT_MODEL;
|
|
17
|
+
this.timeoutMs = opts.timeoutMs ?? DEFAULT_TIMEOUT_MS;
|
|
18
|
+
this.maxRetries = opts.maxRetries ?? MAX_RETRIES;
|
|
12
19
|
}
|
|
13
20
|
async embed(texts) {
|
|
14
21
|
if (texts.length === 0)
|
|
15
22
|
return [];
|
|
16
|
-
|
|
17
|
-
method: 'POST',
|
|
18
|
-
headers: { 'Content-Type': 'application/json' },
|
|
19
|
-
body: JSON.stringify({ model: this.model, input: texts }),
|
|
20
|
-
});
|
|
21
|
-
if (!res.ok) {
|
|
22
|
-
const body = await res.text().catch(() => '');
|
|
23
|
-
if (res.status === 404) {
|
|
24
|
-
throw new Error(`Modelo de embeddings '${this.model}' no encontrado en Ollama. ` +
|
|
25
|
-
`Descárgalo con: ollama pull ${this.model}`);
|
|
26
|
-
}
|
|
27
|
-
throw new Error(`Ollama /api/embed error ${res.status}: ${body}`);
|
|
28
|
-
}
|
|
29
|
-
const data = await res.json();
|
|
30
|
-
return data.embeddings;
|
|
23
|
+
return this.withRetry(() => this.fetchEmbeddings(texts));
|
|
31
24
|
}
|
|
32
25
|
async embedOne(text) {
|
|
33
26
|
const results = await this.embed([text]);
|
|
34
27
|
return results[0] ?? [];
|
|
35
28
|
}
|
|
36
29
|
async checkConnection() {
|
|
30
|
+
const controller = new AbortController();
|
|
31
|
+
const timer = setTimeout(() => controller.abort(), this.timeoutMs);
|
|
37
32
|
try {
|
|
38
|
-
const res = await fetch(`${this.host}/api/tags
|
|
33
|
+
const res = await fetch(`${this.host}/api/tags`, { signal: controller.signal });
|
|
39
34
|
if (!res.ok)
|
|
40
35
|
throw new Error(`Status ${res.status}`);
|
|
41
36
|
}
|
|
@@ -44,7 +39,71 @@ class OllamaEmbedder {
|
|
|
44
39
|
throw new Error(`No se puede conectar a Ollama en ${this.host}: ${msg}\n` +
|
|
45
40
|
`Asegúrate de que Ollama esté corriendo con: ollama serve`);
|
|
46
41
|
}
|
|
42
|
+
finally {
|
|
43
|
+
clearTimeout(timer);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
// ── Private ───────────────────────────────────────────────────────────────
|
|
47
|
+
async fetchEmbeddings(texts) {
|
|
48
|
+
const controller = new AbortController();
|
|
49
|
+
const timer = setTimeout(() => controller.abort(), this.timeoutMs);
|
|
50
|
+
try {
|
|
51
|
+
const res = await fetch(`${this.host}/api/embed`, {
|
|
52
|
+
method: 'POST',
|
|
53
|
+
headers: { 'Content-Type': 'application/json' },
|
|
54
|
+
body: JSON.stringify({ model: this.model, input: texts }),
|
|
55
|
+
signal: controller.signal,
|
|
56
|
+
});
|
|
57
|
+
if (!res.ok) {
|
|
58
|
+
const body = await res.text().catch(() => '');
|
|
59
|
+
if (res.status === 404) {
|
|
60
|
+
throw new Error(`Modelo de embeddings '${this.model}' no encontrado en Ollama. ` +
|
|
61
|
+
`Descárgalo con: ollama pull ${this.model}`);
|
|
62
|
+
}
|
|
63
|
+
// 5xx → retryable; 4xx (except 404) → not retryable
|
|
64
|
+
const err = new Error(`Ollama /api/embed error ${res.status}: ${body}`);
|
|
65
|
+
err.code = res.status >= 500 ? 'RETRYABLE' : 'FATAL';
|
|
66
|
+
throw err;
|
|
67
|
+
}
|
|
68
|
+
const data = await res.json();
|
|
69
|
+
return data.embeddings;
|
|
70
|
+
}
|
|
71
|
+
catch (err) {
|
|
72
|
+
if (err.name === 'AbortError') {
|
|
73
|
+
const timeout = new Error(`Ollama embed timed out after ${this.timeoutMs}ms. ` +
|
|
74
|
+
`El modelo puede estar cargando — reintentando.`);
|
|
75
|
+
timeout.code = 'RETRYABLE';
|
|
76
|
+
throw timeout;
|
|
77
|
+
}
|
|
78
|
+
throw err;
|
|
79
|
+
}
|
|
80
|
+
finally {
|
|
81
|
+
clearTimeout(timer);
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
async withRetry(fn) {
|
|
85
|
+
let lastErr = new Error('unknown');
|
|
86
|
+
for (let attempt = 0; attempt < this.maxRetries; attempt++) {
|
|
87
|
+
try {
|
|
88
|
+
return await fn();
|
|
89
|
+
}
|
|
90
|
+
catch (err) {
|
|
91
|
+
lastErr = err instanceof Error ? err : new Error(String(err));
|
|
92
|
+
const code = lastErr.code;
|
|
93
|
+
// Non-retryable errors (bad model name, 4xx) bubble immediately
|
|
94
|
+
if (code === 'FATAL')
|
|
95
|
+
throw lastErr;
|
|
96
|
+
if (attempt < this.maxRetries - 1) {
|
|
97
|
+
const delay = BACKOFF_BASE_MS * 2 ** attempt;
|
|
98
|
+
await sleep(delay);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
throw lastErr;
|
|
47
103
|
}
|
|
48
104
|
}
|
|
49
105
|
exports.OllamaEmbedder = OllamaEmbedder;
|
|
106
|
+
function sleep(ms) {
|
|
107
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
108
|
+
}
|
|
50
109
|
//# sourceMappingURL=OllamaEmbedder.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"OllamaEmbedder.js","sourceRoot":"","sources":["../../src/rag/OllamaEmbedder.ts"],"names":[],"mappings":";;;AAAa,QAAA,0BAA0B,GAAG,kBAAkB,CAAC;AAChD,QAAA,yBAAyB,
|
|
1
|
+
{"version":3,"file":"OllamaEmbedder.js","sourceRoot":"","sources":["../../src/rag/OllamaEmbedder.ts"],"names":[],"mappings":"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"}
|
|
@@ -19,6 +19,9 @@ export interface WriteNoteParams {
|
|
|
19
19
|
* Notes use standard YAML frontmatter so the VaultIndexer picks them up
|
|
20
20
|
* on the next incremental index() call, making them immediately searchable
|
|
21
21
|
* by any agent or human that queries the vault.
|
|
22
|
+
*
|
|
23
|
+
* Concurrent writes are serialized with a per-file lock (wx atomic open)
|
|
24
|
+
* so multiple agents writing simultaneously cannot corrupt each other's notes.
|
|
22
25
|
*/
|
|
23
26
|
export declare class VaultWriter {
|
|
24
27
|
private readonly vaultPath;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VaultWriter.d.ts","sourceRoot":"","sources":["../../src/rag/VaultWriter.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"VaultWriter.d.ts","sourceRoot":"","sources":["../../src/rag/VaultWriter.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAElE,MAAM,WAAW,kBAAkB;IAC/B,mDAAmD;IACnD,SAAS,EAAE,MAAM,CAAC;IAClB,6DAA6D;IAC7D,WAAW,CAAC,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,EAAE,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED;;;;;;;;;GASG;AACH,qBAAa,WAAW;IACpB,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAW;IACrC,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAS;gBAEzB,IAAI,EAAE,kBAAkB;IAK9B,SAAS,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC;IAwBzD;;;OAGG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,cAAc;CAgC9C"}
|
package/dist/rag/VaultWriter.js
CHANGED
|
@@ -43,6 +43,9 @@ const agent_core_1 = require("@backendkit-labs/agent-core");
|
|
|
43
43
|
* Notes use standard YAML frontmatter so the VaultIndexer picks them up
|
|
44
44
|
* on the next incremental index() call, making them immediately searchable
|
|
45
45
|
* by any agent or human that queries the vault.
|
|
46
|
+
*
|
|
47
|
+
* Concurrent writes are serialized with a per-file lock (wx atomic open)
|
|
48
|
+
* so multiple agents writing simultaneously cannot corrupt each other's notes.
|
|
46
49
|
*/
|
|
47
50
|
class VaultWriter {
|
|
48
51
|
vaultPath;
|
|
@@ -65,24 +68,9 @@ class VaultWriter {
|
|
|
65
68
|
const filename = `${date}-${slug}.md`;
|
|
66
69
|
const dir = path.join(this.vaultPath, this.agentFolder);
|
|
67
70
|
await fs.mkdir(dir, { recursive: true });
|
|
68
|
-
const tagsLine = tags.length
|
|
69
|
-
? `[${tags.map(t => `"${t}"`).join(', ')}]`
|
|
70
|
-
: '[]';
|
|
71
|
-
const lines = [
|
|
72
|
-
'---',
|
|
73
|
-
`title: "${title}"`,
|
|
74
|
-
`author: "agent/${agentId}"`,
|
|
75
|
-
`date: ${date}`,
|
|
76
|
-
`tags: ${tagsLine}`,
|
|
77
|
-
];
|
|
78
|
-
if (description)
|
|
79
|
-
lines.push(`description: "${description}"`);
|
|
80
|
-
if (related_notes.length) {
|
|
81
|
-
lines.push(`related_notes: [${related_notes.map(n => `"${n}"`).join(', ')}]`);
|
|
82
|
-
}
|
|
83
|
-
lines.push('---', '', content);
|
|
84
71
|
const filePath = path.join(dir, filename);
|
|
85
|
-
|
|
72
|
+
const body = buildNote({ title, content, agentId, tags, description, related_notes, date });
|
|
73
|
+
await withFileLock(filePath, () => fs.writeFile(filePath, body, 'utf-8'));
|
|
86
74
|
return filePath;
|
|
87
75
|
}
|
|
88
76
|
/**
|
|
@@ -114,4 +102,62 @@ class VaultWriter {
|
|
|
114
102
|
}
|
|
115
103
|
}
|
|
116
104
|
exports.VaultWriter = VaultWriter;
|
|
105
|
+
// ── Helpers ───────────────────────────────────────────────────────────────────
|
|
106
|
+
function buildNote(p) {
|
|
107
|
+
const tagsLine = p.tags?.length
|
|
108
|
+
? `[${p.tags.map(t => `"${t}"`).join(', ')}]`
|
|
109
|
+
: '[]';
|
|
110
|
+
const lines = [
|
|
111
|
+
'---',
|
|
112
|
+
`title: "${p.title}"`,
|
|
113
|
+
`author: "agent/${p.agentId}"`,
|
|
114
|
+
`date: ${p.date}`,
|
|
115
|
+
`tags: ${tagsLine}`,
|
|
116
|
+
];
|
|
117
|
+
if (p.description)
|
|
118
|
+
lines.push(`description: "${p.description}"`);
|
|
119
|
+
if (p.related_notes?.length) {
|
|
120
|
+
lines.push(`related_notes: [${p.related_notes.map(n => `"${n}"`).join(', ')}]`);
|
|
121
|
+
}
|
|
122
|
+
lines.push('---', '', p.content);
|
|
123
|
+
return lines.join('\n');
|
|
124
|
+
}
|
|
125
|
+
/**
|
|
126
|
+
* Serialize writes to the same file path using an adjacent .lock file.
|
|
127
|
+
* Uses O_EXCL (wx flag) for atomic creation — only one process/coroutine
|
|
128
|
+
* can hold the lock at a time. Retries with exponential backoff.
|
|
129
|
+
*/
|
|
130
|
+
async function withFileLock(filePath, fn) {
|
|
131
|
+
const lockPath = `${filePath}.lock`;
|
|
132
|
+
const maxRetries = 10;
|
|
133
|
+
const baseDelay = 50;
|
|
134
|
+
let fd = null;
|
|
135
|
+
for (let attempt = 0; attempt < maxRetries; attempt++) {
|
|
136
|
+
try {
|
|
137
|
+
// wx = O_WRONLY | O_CREAT | O_EXCL — fails atomically if lock exists
|
|
138
|
+
fd = await fs.open(lockPath, 'wx');
|
|
139
|
+
break;
|
|
140
|
+
}
|
|
141
|
+
catch {
|
|
142
|
+
if (attempt < maxRetries - 1) {
|
|
143
|
+
await sleep(baseDelay * 2 ** attempt + Math.random() * baseDelay);
|
|
144
|
+
}
|
|
145
|
+
else {
|
|
146
|
+
throw new Error(`Could not acquire lock for ${path.basename(filePath)} after ${maxRetries} attempts`);
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}
|
|
150
|
+
try {
|
|
151
|
+
return await fn();
|
|
152
|
+
}
|
|
153
|
+
finally {
|
|
154
|
+
if (fd) {
|
|
155
|
+
await fd.close().catch(() => { });
|
|
156
|
+
await fs.unlink(lockPath).catch(() => { });
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
function sleep(ms) {
|
|
161
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
162
|
+
}
|
|
117
163
|
//# sourceMappingURL=VaultWriter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"VaultWriter.js","sourceRoot":"","sources":["../../src/rag/VaultWriter.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,
|
|
1
|
+
{"version":3,"file":"VaultWriter.js","sourceRoot":"","sources":["../../src/rag/VaultWriter.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,108 @@
|
|
|
1
|
+
import type { FailureRecord, DetectedPattern, ManifestPolicyRule } from '@backendkit-labs/agent-core/dist/reflection/types';
|
|
2
|
+
import type { GateRecord } from '../flow/ComplianceGate.js';
|
|
3
|
+
export interface EnterpriseReflectionOptions {
|
|
4
|
+
/** Absolute path to the Obsidian vault. Generated manifest lives inside it. */
|
|
5
|
+
vaultPath: string;
|
|
6
|
+
/**
|
|
7
|
+
* App name for the catalog scope.
|
|
8
|
+
* MUST differ from 'deepseek-code' to avoid collision with the coding agent.
|
|
9
|
+
* Default: 'bk-enterprise'
|
|
10
|
+
*/
|
|
11
|
+
appName?: string;
|
|
12
|
+
/**
|
|
13
|
+
* Override path for manifest.yaml.
|
|
14
|
+
* Default: {vaultPath}/politicas/_generated/manifest.yaml
|
|
15
|
+
*/
|
|
16
|
+
manifestPath?: string;
|
|
17
|
+
}
|
|
18
|
+
export interface PendingPromotion {
|
|
19
|
+
pattern: DetectedPattern;
|
|
20
|
+
detectedAt: string;
|
|
21
|
+
}
|
|
22
|
+
/**
|
|
23
|
+
* Adapter that wires the ReflectionEngine (from agent-core, built for coding
|
|
24
|
+
* agents) to enterprise business agents — without modifying agent-core.
|
|
25
|
+
*
|
|
26
|
+
* Key differences vs the coding-agent usage:
|
|
27
|
+
* - Isolated catalog: appName='bk-enterprise', useGlobalDir=false
|
|
28
|
+
* - autoPromote=false: every promotion requires human approval
|
|
29
|
+
* - Threshold by severity: critical=1, high=2, medium/low=3
|
|
30
|
+
* - Source of incidents: ComplianceGate (evaluator≠executor guaranteed)
|
|
31
|
+
* - manifest.yaml lives inside the vault (auditable, versionable via git)
|
|
32
|
+
*/
|
|
33
|
+
export declare class EnterpriseReflection {
|
|
34
|
+
private readonly engine;
|
|
35
|
+
private readonly registry;
|
|
36
|
+
private readonly manifestPath;
|
|
37
|
+
private readonly activeDomains;
|
|
38
|
+
private initialized;
|
|
39
|
+
private readonly pendingMap;
|
|
40
|
+
constructor(opts: EnterpriseReflectionOptions);
|
|
41
|
+
/**
|
|
42
|
+
* Must be called once before any other method.
|
|
43
|
+
* Registers enterprise domains in the DomainRegistry and initializes
|
|
44
|
+
* the engine catalog from disk.
|
|
45
|
+
*/
|
|
46
|
+
initialize(): Promise<void>;
|
|
47
|
+
/**
|
|
48
|
+
* Records the outcome of a resolved ComplianceGate.
|
|
49
|
+
* Only failed criteria and process violations generate incidents.
|
|
50
|
+
* Passed gates produce no catalog entries.
|
|
51
|
+
*/
|
|
52
|
+
recordGateOutcome(record: GateRecord): Promise<FailureRecord[]>;
|
|
53
|
+
/**
|
|
54
|
+
* Scans for patterns using per-severity thresholds.
|
|
55
|
+
* Does NOT promote — patterns accumulate in pendingPromotions() for human review.
|
|
56
|
+
*/
|
|
57
|
+
detect(domain?: string): Promise<DetectedPattern[]>;
|
|
58
|
+
/**
|
|
59
|
+
* Returns patterns that crossed the promotion threshold but haven't been
|
|
60
|
+
* promoted yet (autoPromote=false). Show these to the human approver.
|
|
61
|
+
*/
|
|
62
|
+
pendingPromotions(): Promise<PendingPromotion[]>;
|
|
63
|
+
/**
|
|
64
|
+
* Promotes a detected pattern to a deterministic policyRule in manifest.yaml.
|
|
65
|
+
* Requires an explicit approver identity — logged in the manifest metadata.
|
|
66
|
+
*
|
|
67
|
+
* After approval the pattern is removed from pendingPromotions().
|
|
68
|
+
*/
|
|
69
|
+
approvePromotion(pattern: DetectedPattern, approver: string): Promise<ManifestPolicyRule>;
|
|
70
|
+
/**
|
|
71
|
+
* Rejects a promotion — removes from pending without writing to manifest.
|
|
72
|
+
* The reason is stored as a resolved-but-not-promoted audit note.
|
|
73
|
+
*/
|
|
74
|
+
rejectPromotion(pattern: DetectedPattern, approver: string, reason: string): Promise<void>;
|
|
75
|
+
/**
|
|
76
|
+
* Returns active policyRules from manifest.yaml, optionally filtered by domain.
|
|
77
|
+
* Call this BEFORE executing a step to inject deterministic constraints.
|
|
78
|
+
*/
|
|
79
|
+
activeRules(filter?: {
|
|
80
|
+
domain?: string;
|
|
81
|
+
}): Promise<ManifestPolicyRule[]>;
|
|
82
|
+
/**
|
|
83
|
+
* Records whether applying a rule led to a successful or failed outcome.
|
|
84
|
+
* Outcomes feed demotionCandidates() — rules with many failures signal
|
|
85
|
+
* that the rule itself may be wrong.
|
|
86
|
+
*/
|
|
87
|
+
recordRuleOutcome(ruleId: string, outcome: 'success' | 'failure'): Promise<void>;
|
|
88
|
+
/**
|
|
89
|
+
* Returns rules whose failure rate exceeds minFailureRatio (default 0.5)
|
|
90
|
+
* with at least minTotal applications (default 4).
|
|
91
|
+
*
|
|
92
|
+
* These are candidates for human-gated demotion — symmetric with promotion:
|
|
93
|
+
* the rulebook only changes in either direction with human approval.
|
|
94
|
+
*/
|
|
95
|
+
demotionCandidates(opts?: {
|
|
96
|
+
minFailureRatio?: number;
|
|
97
|
+
minTotal?: number;
|
|
98
|
+
}): Promise<ManifestPolicyRule[]>;
|
|
99
|
+
/**
|
|
100
|
+
* Removes a rule from manifest.yaml after human approval of demotion.
|
|
101
|
+
* Symmetric with approvePromotion — requires explicit approver.
|
|
102
|
+
*/
|
|
103
|
+
approveDemotion(ruleId: string, approver: string, reason: string): Promise<boolean>;
|
|
104
|
+
stats(): Promise<import("@backendkit-labs/agent-core").ReflectionStats>;
|
|
105
|
+
private assertInitialized;
|
|
106
|
+
private annotateApproval;
|
|
107
|
+
}
|
|
108
|
+
//# sourceMappingURL=EnterpriseReflection.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EnterpriseReflection.d.ts","sourceRoot":"","sources":["../../src/reflection/EnterpriseReflection.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,mDAAmD,CAAC;AAC5H,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,2BAA2B,CAAC;AAM5D,MAAM,WAAW,2BAA2B;IACxC,+EAA+E;IAC/E,SAAS,EAAE,MAAM,CAAC;IAClB;;;;OAIG;IACH,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB;;;OAGG;IACH,YAAY,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,gBAAgB;IAC7B,OAAO,EAAI,eAAe,CAAC;IAC3B,UAAU,EAAE,MAAM,CAAC;CACtB;AAID;;;;;;;;;;GAUG;AACH,qBAAa,oBAAoB;IAC7B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAA0B;IACjD,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAsB;IAC/C,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAU;IACvC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAW;IACzC,OAAO,CAAU,WAAW,CAAY;IAIxC,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAuC;gBAEtD,IAAI,EAAE,2BAA2B;IA0B7C;;;;OAIG;IACG,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAuBjC;;;;OAIG;IACG,iBAAiB,CAAC,MAAM,EAAE,UAAU,GAAG,OAAO,CAAC,aAAa,EAAE,CAAC;IAQrE;;;OAGG;IACG,MAAM,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,EAAE,CAAC;IA+BzD;;;OAGG;IACG,iBAAiB,IAAI,OAAO,CAAC,gBAAgB,EAAE,CAAC;IAOtD;;;;;OAKG;IACG,gBAAgB,CAAC,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAgB/F;;;OAGG;IACG,eAAe,CACjB,OAAO,EAAG,eAAe,EACzB,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAI,MAAM,GACjB,OAAO,CAAC,IAAI,CAAC;IAoBhB;;;OAGG;IACG,WAAW,CAAC,MAAM,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAQ9E;;;;OAIG;IACG,iBAAiB,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAKtF;;;;;;OAMG;IACG,kBAAkB,CAAC,IAAI,GAAE;QAAE,eAAe,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAO,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAanH;;;OAGG;IACG,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;IAsBnF,KAAK;IAOX,OAAO,CAAC,iBAAiB;YAMX,gBAAgB;CAgBjC"}
|