@aletheia-labs/core 0.1.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 +176 -0
- package/README.md +163 -0
- package/dist/index.d.ts +18 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +21 -0
- package/dist/index.js.map +1 -0
- package/dist/runtime/action-authorizer.d.ts +48 -0
- package/dist/runtime/action-authorizer.d.ts.map +1 -0
- package/dist/runtime/action-authorizer.js +231 -0
- package/dist/runtime/action-authorizer.js.map +1 -0
- package/dist/runtime/authority-engine.d.ts +68 -0
- package/dist/runtime/authority-engine.d.ts.map +1 -0
- package/dist/runtime/authority-engine.js +99 -0
- package/dist/runtime/authority-engine.js.map +1 -0
- package/dist/runtime/decision-helpers.d.ts +17 -0
- package/dist/runtime/decision-helpers.d.ts.map +1 -0
- package/dist/runtime/decision-helpers.js +23 -0
- package/dist/runtime/decision-helpers.js.map +1 -0
- package/dist/runtime/index.d.ts +9 -0
- package/dist/runtime/index.d.ts.map +1 -0
- package/dist/runtime/index.js +9 -0
- package/dist/runtime/index.js.map +1 -0
- package/dist/runtime/proposal-safety.d.ts +18 -0
- package/dist/runtime/proposal-safety.d.ts.map +1 -0
- package/dist/runtime/proposal-safety.js +76 -0
- package/dist/runtime/proposal-safety.js.map +1 -0
- package/dist/runtime/retrieval-router.d.ts +60 -0
- package/dist/runtime/retrieval-router.d.ts.map +1 -0
- package/dist/runtime/retrieval-router.js +223 -0
- package/dist/runtime/retrieval-router.js.map +1 -0
- package/dist/runtime/scope-helpers.d.ts +22 -0
- package/dist/runtime/scope-helpers.d.ts.map +1 -0
- package/dist/runtime/scope-helpers.js +29 -0
- package/dist/runtime/scope-helpers.js.map +1 -0
- package/dist/runtime/visibility-policy.d.ts +29 -0
- package/dist/runtime/visibility-policy.d.ts.map +1 -0
- package/dist/runtime/visibility-policy.js +23 -0
- package/dist/runtime/visibility-policy.js.map +1 -0
- package/dist/runtime/write-gate.d.ts +66 -0
- package/dist/runtime/write-gate.d.ts.map +1 -0
- package/dist/runtime/write-gate.js +293 -0
- package/dist/runtime/write-gate.js.map +1 -0
- package/dist/storage/conflict-registry.d.ts +61 -0
- package/dist/storage/conflict-registry.d.ts.map +1 -0
- package/dist/storage/conflict-registry.js +15 -0
- package/dist/storage/conflict-registry.js.map +1 -0
- package/dist/storage/event-ledger.d.ts +61 -0
- package/dist/storage/event-ledger.d.ts.map +1 -0
- package/dist/storage/event-ledger.js +14 -0
- package/dist/storage/event-ledger.js.map +1 -0
- package/dist/storage/index.d.ts +8 -0
- package/dist/storage/index.d.ts.map +1 -0
- package/dist/storage/index.js +8 -0
- package/dist/storage/index.js.map +1 -0
- package/dist/storage/memory-store.d.ts +94 -0
- package/dist/storage/memory-store.d.ts.map +1 -0
- package/dist/storage/memory-store.js +14 -0
- package/dist/storage/memory-store.js.map +1 -0
- package/dist/types/action.d.ts +211 -0
- package/dist/types/action.d.ts.map +1 -0
- package/dist/types/action.js +50 -0
- package/dist/types/action.js.map +1 -0
- package/dist/types/compressed-receipt.d.ts +117 -0
- package/dist/types/compressed-receipt.d.ts.map +1 -0
- package/dist/types/compressed-receipt.js +100 -0
- package/dist/types/compressed-receipt.js.map +1 -0
- package/dist/types/conflict.d.ts +159 -0
- package/dist/types/conflict.d.ts.map +1 -0
- package/dist/types/conflict.js +47 -0
- package/dist/types/conflict.js.map +1 -0
- package/dist/types/coverage.d.ts +52 -0
- package/dist/types/coverage.d.ts.map +1 -0
- package/dist/types/coverage.js +30 -0
- package/dist/types/coverage.js.map +1 -0
- package/dist/types/decision.d.ts +345 -0
- package/dist/types/decision.d.ts.map +1 -0
- package/dist/types/decision.js +88 -0
- package/dist/types/decision.js.map +1 -0
- package/dist/types/enums.d.ts +135 -0
- package/dist/types/enums.d.ts.map +1 -0
- package/dist/types/enums.js +146 -0
- package/dist/types/enums.js.map +1 -0
- package/dist/types/event.d.ts +187 -0
- package/dist/types/event.d.ts.map +1 -0
- package/dist/types/event.js +44 -0
- package/dist/types/event.js.map +1 -0
- package/dist/types/human-receipt.d.ts +108 -0
- package/dist/types/human-receipt.d.ts.map +1 -0
- package/dist/types/human-receipt.js +41 -0
- package/dist/types/human-receipt.js.map +1 -0
- package/dist/types/index.d.ts +25 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +25 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/keys.d.ts +31 -0
- package/dist/types/keys.d.ts.map +1 -0
- package/dist/types/keys.js +53 -0
- package/dist/types/keys.js.map +1 -0
- package/dist/types/memory-atom.d.ts +291 -0
- package/dist/types/memory-atom.d.ts.map +1 -0
- package/dist/types/memory-atom.js +62 -0
- package/dist/types/memory-atom.js.map +1 -0
- package/dist/types/memory-proposal.d.ts +207 -0
- package/dist/types/memory-proposal.d.ts.map +1 -0
- package/dist/types/memory-proposal.js +34 -0
- package/dist/types/memory-proposal.js.map +1 -0
- package/dist/types/packet.d.ts +564 -0
- package/dist/types/packet.d.ts.map +1 -0
- package/dist/types/packet.js +43 -0
- package/dist/types/packet.js.map +1 -0
- package/dist/types/primitives.d.ts +39 -0
- package/dist/types/primitives.d.ts.map +1 -0
- package/dist/types/primitives.js +42 -0
- package/dist/types/primitives.js.map +1 -0
- package/dist/types/status-transitions.d.ts +23 -0
- package/dist/types/status-transitions.d.ts.map +1 -0
- package/dist/types/status-transitions.js +48 -0
- package/dist/types/status-transitions.js.map +1 -0
- package/package.json +57 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"action-authorizer.js","sourceRoot":"","sources":["../../src/runtime/action-authorizer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Small facade over the Phase 1.5 runtime components.
|
|
3
|
+
*
|
|
4
|
+
* Hosts can wire the components individually, or use this class when they want
|
|
5
|
+
* the roadmap-shaped API: propose(), recall(), tryAct().
|
|
6
|
+
*/
|
|
7
|
+
import type { ActionContext, MemoryProposal, ProposedAction, RecallQuery } from '../types/index.js';
|
|
8
|
+
import { type ActionAuthorizationResult, ActionAuthorizer } from './action-authorizer.js';
|
|
9
|
+
import type { Clock } from './decision-helpers.js';
|
|
10
|
+
import { type RetrievalResult, RetrievalRouter, type RetrievalRouterOptions } from './retrieval-router.js';
|
|
11
|
+
import type { VisibilityPolicy } from './visibility-policy.js';
|
|
12
|
+
import { WriteGate, type WriteGateOptions, type WriteGateResult, type WriteGateStores } from './write-gate.js';
|
|
13
|
+
export interface AletheiaAuthorityOptions extends WriteGateStores {
|
|
14
|
+
readonly visibilityPolicy?: VisibilityPolicy;
|
|
15
|
+
readonly clock?: Clock;
|
|
16
|
+
readonly memoryIdForProposal?: WriteGateOptions['memoryIdForProposal'];
|
|
17
|
+
readonly topicMatcher?: RetrievalRouterOptions['topicMatcher'];
|
|
18
|
+
readonly authorityScorer?: RetrievalRouterOptions['authorityScorer'];
|
|
19
|
+
}
|
|
20
|
+
export declare class AletheiaAuthority {
|
|
21
|
+
/** Lower-level proposal gate, exposed for hosts that need detailed write control. */
|
|
22
|
+
readonly writeGate: WriteGate;
|
|
23
|
+
/** Lower-level recall router, exposed for hosts that compose retrieval manually. */
|
|
24
|
+
readonly retrievalRouter: RetrievalRouter;
|
|
25
|
+
/** Lower-level action guard, exposed for hosts that build their own facade. */
|
|
26
|
+
readonly actionAuthorizer: ActionAuthorizer;
|
|
27
|
+
/**
|
|
28
|
+
* Create the high-level authority facade from host-provided stores and policy.
|
|
29
|
+
*
|
|
30
|
+
* @remarks
|
|
31
|
+
* This is the composition root for most consumers. The facade does not own
|
|
32
|
+
* storage, authentication, provider clients, or background work; it wires the
|
|
33
|
+
* three runtime use cases over the supplied ports.
|
|
34
|
+
*/
|
|
35
|
+
constructor(options: AletheiaAuthorityOptions);
|
|
36
|
+
/**
|
|
37
|
+
* Submit a memory proposal to the WriteGate.
|
|
38
|
+
*
|
|
39
|
+
* @remarks
|
|
40
|
+
* Use this after a host or adapter has already recorded the source event(s).
|
|
41
|
+
* The method validates proposal shape, source existence, visibility, scope,
|
|
42
|
+
* and conflict boundaries before inserting an atom. It never promotes beyond
|
|
43
|
+
* candidate authority by itself.
|
|
44
|
+
*
|
|
45
|
+
* @returns A structured write decision plus the inserted atom when one was
|
|
46
|
+
* recorded.
|
|
47
|
+
*/
|
|
48
|
+
propose(proposal: MemoryProposal): Promise<WriteGateResult>;
|
|
49
|
+
/**
|
|
50
|
+
* Recall governed memory for a caller, scope, and optional filters.
|
|
51
|
+
*
|
|
52
|
+
* @remarks
|
|
53
|
+
* Use this before giving memory text to a model. Visibility and scope are
|
|
54
|
+
* checked before status/type/topic filtering, and unresolved conflicts block
|
|
55
|
+
* local use.
|
|
56
|
+
*/
|
|
57
|
+
recall(query: RecallQuery): Promise<RetrievalResult>;
|
|
58
|
+
/**
|
|
59
|
+
* Authorize a proposed action against the memories the agent cites.
|
|
60
|
+
*
|
|
61
|
+
* @remarks
|
|
62
|
+
* Use this immediately before acting on recalled memory. The receiver-side
|
|
63
|
+
* action classification is re-checked here; sensitive actions always ask a
|
|
64
|
+
* human even when every cited memory is valid.
|
|
65
|
+
*/
|
|
66
|
+
tryAct(action: ProposedAction, context: ActionContext): Promise<ActionAuthorizationResult>;
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=authority-engine.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authority-engine.d.ts","sourceRoot":"","sources":["../../src/runtime/authority-engine.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,cAAc,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AACpG,OAAO,EACL,KAAK,yBAAyB,EAC9B,gBAAgB,EAEjB,MAAM,wBAAwB,CAAC;AAChC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AACnD,OAAO,EACL,KAAK,eAAe,EACpB,eAAe,EACf,KAAK,sBAAsB,EAC5B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAC/D,OAAO,EACL,SAAS,EACT,KAAK,gBAAgB,EACrB,KAAK,eAAe,EACpB,KAAK,eAAe,EACrB,MAAM,iBAAiB,CAAC;AAEzB,MAAM,WAAW,wBAAyB,SAAQ,eAAe;IAC/D,QAAQ,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAC7C,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;IACvB,QAAQ,CAAC,mBAAmB,CAAC,EAAE,gBAAgB,CAAC,qBAAqB,CAAC,CAAC;IACvE,QAAQ,CAAC,YAAY,CAAC,EAAE,sBAAsB,CAAC,cAAc,CAAC,CAAC;IAC/D,QAAQ,CAAC,eAAe,CAAC,EAAE,sBAAsB,CAAC,iBAAiB,CAAC,CAAC;CACtE;AAED,qBAAa,iBAAiB;IAC5B,qFAAqF;IACrF,QAAQ,CAAC,SAAS,EAAE,SAAS,CAAC;IAC9B,oFAAoF;IACpF,QAAQ,CAAC,eAAe,EAAE,eAAe,CAAC;IAC1C,+EAA+E;IAC/E,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAE5C;;;;;;;OAOG;gBACS,OAAO,EAAE,wBAAwB;IAuC7C;;;;;;;;;;;OAWG;IACH,OAAO,CAAC,QAAQ,EAAE,cAAc,GAAG,OAAO,CAAC,eAAe,CAAC;IAI3D;;;;;;;OAOG;IACH,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC;IAIpD;;;;;;;OAOG;IACH,MAAM,CAAC,MAAM,EAAE,cAAc,EAAE,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,yBAAyB,CAAC;CAG3F"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Small facade over the Phase 1.5 runtime components.
|
|
3
|
+
*
|
|
4
|
+
* Hosts can wire the components individually, or use this class when they want
|
|
5
|
+
* the roadmap-shaped API: propose(), recall(), tryAct().
|
|
6
|
+
*/
|
|
7
|
+
import { ActionAuthorizer, } from './action-authorizer.js';
|
|
8
|
+
import { RetrievalRouter, } from './retrieval-router.js';
|
|
9
|
+
import { WriteGate, } from './write-gate.js';
|
|
10
|
+
export class AletheiaAuthority {
|
|
11
|
+
/** Lower-level proposal gate, exposed for hosts that need detailed write control. */
|
|
12
|
+
writeGate;
|
|
13
|
+
/** Lower-level recall router, exposed for hosts that compose retrieval manually. */
|
|
14
|
+
retrievalRouter;
|
|
15
|
+
/** Lower-level action guard, exposed for hosts that build their own facade. */
|
|
16
|
+
actionAuthorizer;
|
|
17
|
+
/**
|
|
18
|
+
* Create the high-level authority facade from host-provided stores and policy.
|
|
19
|
+
*
|
|
20
|
+
* @remarks
|
|
21
|
+
* This is the composition root for most consumers. The facade does not own
|
|
22
|
+
* storage, authentication, provider clients, or background work; it wires the
|
|
23
|
+
* three runtime use cases over the supplied ports.
|
|
24
|
+
*/
|
|
25
|
+
constructor(options) {
|
|
26
|
+
this.writeGate = new WriteGate({
|
|
27
|
+
eventLedger: options.eventLedger,
|
|
28
|
+
memoryStore: options.memoryStore,
|
|
29
|
+
conflictRegistry: options.conflictRegistry,
|
|
30
|
+
...(options.visibilityPolicy !== undefined
|
|
31
|
+
? { visibilityPolicy: options.visibilityPolicy }
|
|
32
|
+
: {}),
|
|
33
|
+
...(options.clock !== undefined ? { clock: options.clock } : {}),
|
|
34
|
+
...(options.memoryIdForProposal !== undefined
|
|
35
|
+
? { memoryIdForProposal: options.memoryIdForProposal }
|
|
36
|
+
: {}),
|
|
37
|
+
});
|
|
38
|
+
const sharedRouterOptions = {
|
|
39
|
+
memoryStore: options.memoryStore,
|
|
40
|
+
conflictRegistry: options.conflictRegistry,
|
|
41
|
+
...(options.visibilityPolicy !== undefined
|
|
42
|
+
? { visibilityPolicy: options.visibilityPolicy }
|
|
43
|
+
: {}),
|
|
44
|
+
...(options.clock !== undefined ? { clock: options.clock } : {}),
|
|
45
|
+
...(options.topicMatcher !== undefined ? { topicMatcher: options.topicMatcher } : {}),
|
|
46
|
+
...(options.authorityScorer !== undefined
|
|
47
|
+
? { authorityScorer: options.authorityScorer }
|
|
48
|
+
: {}),
|
|
49
|
+
};
|
|
50
|
+
this.retrievalRouter = new RetrievalRouter(sharedRouterOptions);
|
|
51
|
+
const actionOptions = {
|
|
52
|
+
memoryStore: options.memoryStore,
|
|
53
|
+
conflictRegistry: options.conflictRegistry,
|
|
54
|
+
...(options.visibilityPolicy !== undefined
|
|
55
|
+
? { visibilityPolicy: options.visibilityPolicy }
|
|
56
|
+
: {}),
|
|
57
|
+
...(options.clock !== undefined ? { clock: options.clock } : {}),
|
|
58
|
+
};
|
|
59
|
+
this.actionAuthorizer = new ActionAuthorizer(actionOptions);
|
|
60
|
+
}
|
|
61
|
+
/**
|
|
62
|
+
* Submit a memory proposal to the WriteGate.
|
|
63
|
+
*
|
|
64
|
+
* @remarks
|
|
65
|
+
* Use this after a host or adapter has already recorded the source event(s).
|
|
66
|
+
* The method validates proposal shape, source existence, visibility, scope,
|
|
67
|
+
* and conflict boundaries before inserting an atom. It never promotes beyond
|
|
68
|
+
* candidate authority by itself.
|
|
69
|
+
*
|
|
70
|
+
* @returns A structured write decision plus the inserted atom when one was
|
|
71
|
+
* recorded.
|
|
72
|
+
*/
|
|
73
|
+
propose(proposal) {
|
|
74
|
+
return this.writeGate.propose(proposal);
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Recall governed memory for a caller, scope, and optional filters.
|
|
78
|
+
*
|
|
79
|
+
* @remarks
|
|
80
|
+
* Use this before giving memory text to a model. Visibility and scope are
|
|
81
|
+
* checked before status/type/topic filtering, and unresolved conflicts block
|
|
82
|
+
* local use.
|
|
83
|
+
*/
|
|
84
|
+
recall(query) {
|
|
85
|
+
return this.retrievalRouter.recall(query);
|
|
86
|
+
}
|
|
87
|
+
/**
|
|
88
|
+
* Authorize a proposed action against the memories the agent cites.
|
|
89
|
+
*
|
|
90
|
+
* @remarks
|
|
91
|
+
* Use this immediately before acting on recalled memory. The receiver-side
|
|
92
|
+
* action classification is re-checked here; sensitive actions always ask a
|
|
93
|
+
* human even when every cited memory is valid.
|
|
94
|
+
*/
|
|
95
|
+
tryAct(action, context) {
|
|
96
|
+
return this.actionAuthorizer.tryAct(action, context);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=authority-engine.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"authority-engine.js","sourceRoot":"","sources":["../../src/runtime/authority-engine.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { type ConflictId, type Decision, type DecisionOutcome, type DecisionReason, type IsoTimestamp, type MemoryId } from '../types/index.js';
|
|
2
|
+
export interface Clock {
|
|
3
|
+
/** Return the logical timestamp used for emitted decisions and transitions. */
|
|
4
|
+
now(): IsoTimestamp;
|
|
5
|
+
}
|
|
6
|
+
export declare const SYSTEM_CLOCK: Clock;
|
|
7
|
+
/**
|
|
8
|
+
* Construct and validate a decision envelope.
|
|
9
|
+
*
|
|
10
|
+
* @remarks
|
|
11
|
+
* Runtime components use this instead of hand-building decision objects so
|
|
12
|
+
* every allow/deny/abstain path conforms to the exported zod schema. Callers
|
|
13
|
+
* should treat the returned value as the auditable result of the authority
|
|
14
|
+
* check.
|
|
15
|
+
*/
|
|
16
|
+
export declare function decision(outcome: DecisionOutcome, reasons: readonly DecisionReason[], relatedMemoryIds: readonly MemoryId[], relatedConflictIds: readonly ConflictId[], emittedAt: IsoTimestamp): Decision;
|
|
17
|
+
//# sourceMappingURL=decision-helpers.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decision-helpers.d.ts","sourceRoot":"","sources":["../../src/runtime/decision-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,KAAK,UAAU,EACf,KAAK,QAAQ,EACb,KAAK,eAAe,EACpB,KAAK,cAAc,EAEnB,KAAK,YAAY,EACjB,KAAK,QAAQ,EACd,MAAM,mBAAmB,CAAC;AAE3B,MAAM,WAAW,KAAK;IACpB,+EAA+E;IAC/E,GAAG,IAAI,YAAY,CAAC;CACrB;AAED,eAAO,MAAM,YAAY,EAAE,KAE1B,CAAC;AAEF;;;;;;;;GAQG;AACH,wBAAgB,QAAQ,CACtB,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE,SAAS,cAAc,EAAE,EAClC,gBAAgB,EAAE,SAAS,QAAQ,EAAE,EACrC,kBAAkB,EAAE,SAAS,UAAU,EAAE,EACzC,SAAS,EAAE,YAAY,GACtB,QAAQ,CAQV"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { DecisionSchema, } from '../types/index.js';
|
|
2
|
+
export const SYSTEM_CLOCK = {
|
|
3
|
+
now: () => new Date().toISOString(),
|
|
4
|
+
};
|
|
5
|
+
/**
|
|
6
|
+
* Construct and validate a decision envelope.
|
|
7
|
+
*
|
|
8
|
+
* @remarks
|
|
9
|
+
* Runtime components use this instead of hand-building decision objects so
|
|
10
|
+
* every allow/deny/abstain path conforms to the exported zod schema. Callers
|
|
11
|
+
* should treat the returned value as the auditable result of the authority
|
|
12
|
+
* check.
|
|
13
|
+
*/
|
|
14
|
+
export function decision(outcome, reasons, relatedMemoryIds, relatedConflictIds, emittedAt) {
|
|
15
|
+
return DecisionSchema.parse({
|
|
16
|
+
outcome,
|
|
17
|
+
reasons,
|
|
18
|
+
relatedMemoryIds,
|
|
19
|
+
relatedConflictIds,
|
|
20
|
+
emittedAt,
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=decision-helpers.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"decision-helpers.js","sourceRoot":"","sources":["../../src/runtime/decision-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,cAAc,GAGf,MAAM,mBAAmB,CAAC;AAO3B,MAAM,CAAC,MAAM,YAAY,GAAU;IACjC,GAAG,EAAE,GAAG,EAAE,CAAC,IAAI,IAAI,EAAE,CAAC,WAAW,EAAkB;CACpD,CAAC;AAEF;;;;;;;;GAQG;AACH,MAAM,UAAU,QAAQ,CACtB,OAAwB,EACxB,OAAkC,EAClC,gBAAqC,EACrC,kBAAyC,EACzC,SAAuB;IAEvB,OAAO,cAAc,CAAC,KAAK,CAAC;QAC1B,OAAO;QACP,OAAO;QACP,gBAAgB;QAChB,kBAAkB;QAClB,SAAS;KACV,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './action-authorizer.js';
|
|
2
|
+
export * from './authority-engine.js';
|
|
3
|
+
export * from './decision-helpers.js';
|
|
4
|
+
export * from './proposal-safety.js';
|
|
5
|
+
export * from './retrieval-router.js';
|
|
6
|
+
export * from './scope-helpers.js';
|
|
7
|
+
export * from './visibility-policy.js';
|
|
8
|
+
export * from './write-gate.js';
|
|
9
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
export * from './action-authorizer.js';
|
|
2
|
+
export * from './authority-engine.js';
|
|
3
|
+
export * from './decision-helpers.js';
|
|
4
|
+
export * from './proposal-safety.js';
|
|
5
|
+
export * from './retrieval-router.js';
|
|
6
|
+
export * from './scope-helpers.js';
|
|
7
|
+
export * from './visibility-policy.js';
|
|
8
|
+
export * from './write-gate.js';
|
|
9
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,cAAc,wBAAwB,CAAC;AACvC,cAAc,uBAAuB,CAAC;AACtC,cAAc,uBAAuB,CAAC;AACtC,cAAc,sBAAsB,CAAC;AACrC,cAAc,uBAAuB,CAAC;AACtC,cAAc,oBAAoB,CAAC;AACnC,cAAc,wBAAwB,CAAC;AACvC,cAAc,iBAAiB,CAAC"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import type { DecisionReason, MemoryProposal } from '../types/index.js';
|
|
2
|
+
export type ProposalSafetyOutcome = 'deny' | 'ask_human';
|
|
3
|
+
export interface ProposalSafetyFinding {
|
|
4
|
+
readonly outcome: ProposalSafetyOutcome;
|
|
5
|
+
readonly reason: DecisionReason;
|
|
6
|
+
}
|
|
7
|
+
/**
|
|
8
|
+
* Deterministic proposal safety policy for claims that should not become
|
|
9
|
+
* actionable memory even if a model proposes them.
|
|
10
|
+
*
|
|
11
|
+
* @remarks
|
|
12
|
+
* This is deliberately small and receipt-adjacent: it catches credential-like
|
|
13
|
+
* material, durable permission-bypass policies, and destructive runtime
|
|
14
|
+
* instructions before a MemoryAtom can become actionable. It does not rank,
|
|
15
|
+
* embed, or infer relevance.
|
|
16
|
+
*/
|
|
17
|
+
export declare function evaluateProposalSafety(proposal: MemoryProposal): ProposalSafetyFinding | null;
|
|
18
|
+
//# sourceMappingURL=proposal-safety.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proposal-safety.d.ts","sourceRoot":"","sources":["../../src/runtime/proposal-safety.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAExE,MAAM,MAAM,qBAAqB,GAAG,MAAM,GAAG,WAAW,CAAC;AAEzD,MAAM,WAAW,qBAAqB;IACpC,QAAQ,CAAC,OAAO,EAAE,qBAAqB,CAAC;IACxC,QAAQ,CAAC,MAAM,EAAE,cAAc,CAAC;CACjC;AA6BD;;;;;;;;;GASG;AACH,wBAAgB,sBAAsB,CAAC,QAAQ,EAAE,cAAc,GAAG,qBAAqB,GAAG,IAAI,CAmC7F"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
const SECRET_PATTERNS = [
|
|
2
|
+
/\bsk-[A-Za-z0-9_-]{16,}\b/,
|
|
3
|
+
/\bAKIA[0-9A-Z]{16}\b/,
|
|
4
|
+
/\bgh[pousr]_[A-Za-z0-9_]{20,}\b/,
|
|
5
|
+
/\beyJ[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\.[A-Za-z0-9_-]{10,}\b/,
|
|
6
|
+
/-----BEGIN [A-Z ]*PRIVATE KEY-----/,
|
|
7
|
+
/\b(?:api[_-]?key|secret|token|password)\s*[:=]\s*["']?[^"'\s]{8,}/i,
|
|
8
|
+
];
|
|
9
|
+
const PERMISSION_BYPASS_PATTERNS = [
|
|
10
|
+
/\bact(?:uar)?\s+sin\s+pedir\s+permiso\b/,
|
|
11
|
+
/\bsin\s+(?:pedir|requerir)\s+permiso\b/,
|
|
12
|
+
/\bwithout\s+(?:asking|requiring)\s+permission\b/,
|
|
13
|
+
/\bbypass\s+(?:approval|permission|human)\b/,
|
|
14
|
+
/\bignore\s+(?:approval|permission|human)\b/,
|
|
15
|
+
/\bdo\s+not\s+ask\s+(?:for\s+)?permission\b/,
|
|
16
|
+
];
|
|
17
|
+
const DESTRUCTIVE_EFFECT_PATTERNS = [
|
|
18
|
+
/\brm\s+-rf\b/,
|
|
19
|
+
/\bdelete\s+(?:the\s+)?(?:repo|repository|database|production)\b/,
|
|
20
|
+
/\bdrop\s+database\b/,
|
|
21
|
+
/\bformat\s+(?:the\s+)?disk\b/,
|
|
22
|
+
/\bborra\s+(?:todo\s+)?(?:el\s+)?repo\b/,
|
|
23
|
+
/\belimina\s+(?:todo\s+)?(?:el\s+)?repo\b/,
|
|
24
|
+
];
|
|
25
|
+
/**
|
|
26
|
+
* Deterministic proposal safety policy for claims that should not become
|
|
27
|
+
* actionable memory even if a model proposes them.
|
|
28
|
+
*
|
|
29
|
+
* @remarks
|
|
30
|
+
* This is deliberately small and receipt-adjacent: it catches credential-like
|
|
31
|
+
* material, durable permission-bypass policies, and destructive runtime
|
|
32
|
+
* instructions before a MemoryAtom can become actionable. It does not rank,
|
|
33
|
+
* embed, or infer relevance.
|
|
34
|
+
*/
|
|
35
|
+
export function evaluateProposalSafety(proposal) {
|
|
36
|
+
const claim = proposal.claim;
|
|
37
|
+
const normalizedClaim = normalizeClaim(claim);
|
|
38
|
+
if (matchesAny(claim, SECRET_PATTERNS) || matchesAny(normalizedClaim, SECRET_PATTERNS)) {
|
|
39
|
+
return {
|
|
40
|
+
outcome: 'deny',
|
|
41
|
+
reason: {
|
|
42
|
+
kind: 'promotion_boundary_blocked',
|
|
43
|
+
detail: 'proposal claim contains credential-like material and was not stored',
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
if (matchesAny(normalizedClaim, DESTRUCTIVE_EFFECT_PATTERNS)) {
|
|
48
|
+
return {
|
|
49
|
+
outcome: 'deny',
|
|
50
|
+
reason: {
|
|
51
|
+
kind: 'forbidden_effect_present',
|
|
52
|
+
effect: 'destructive_runtime_instruction',
|
|
53
|
+
},
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
if (matchesAny(normalizedClaim, PERMISSION_BYPASS_PATTERNS)) {
|
|
57
|
+
return {
|
|
58
|
+
outcome: 'ask_human',
|
|
59
|
+
reason: {
|
|
60
|
+
kind: 'promotion_boundary_blocked',
|
|
61
|
+
detail: 'proposal attempts to weaken receiver-side permission checks',
|
|
62
|
+
},
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
return null;
|
|
66
|
+
}
|
|
67
|
+
function normalizeClaim(value) {
|
|
68
|
+
return value
|
|
69
|
+
.normalize('NFD')
|
|
70
|
+
.replace(/\p{Diacritic}/gu, '')
|
|
71
|
+
.toLowerCase();
|
|
72
|
+
}
|
|
73
|
+
function matchesAny(value, patterns) {
|
|
74
|
+
return patterns.some((pattern) => pattern.test(value));
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=proposal-safety.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"proposal-safety.js","sourceRoot":"","sources":["../../src/runtime/proposal-safety.ts"],"names":[],"mappings":"AASA,MAAM,eAAe,GAAsB;IACzC,2BAA2B;IAC3B,sBAAsB;IACtB,iCAAiC;IACjC,mEAAmE;IACnE,oCAAoC;IACpC,oEAAoE;CACrE,CAAC;AAEF,MAAM,0BAA0B,GAAsB;IACpD,yCAAyC;IACzC,wCAAwC;IACxC,iDAAiD;IACjD,4CAA4C;IAC5C,4CAA4C;IAC5C,4CAA4C;CAC7C,CAAC;AAEF,MAAM,2BAA2B,GAAsB;IACrD,cAAc;IACd,iEAAiE;IACjE,qBAAqB;IACrB,8BAA8B;IAC9B,wCAAwC;IACxC,0CAA0C;CAC3C,CAAC;AAEF;;;;;;;;;GASG;AACH,MAAM,UAAU,sBAAsB,CAAC,QAAwB;IAC7D,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;IAC7B,MAAM,eAAe,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAE9C,IAAI,UAAU,CAAC,KAAK,EAAE,eAAe,CAAC,IAAI,UAAU,CAAC,eAAe,EAAE,eAAe,CAAC,EAAE,CAAC;QACvF,OAAO;YACL,OAAO,EAAE,MAAM;YACf,MAAM,EAAE;gBACN,IAAI,EAAE,4BAA4B;gBAClC,MAAM,EAAE,qEAAqE;aAC9E;SACF,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,eAAe,EAAE,2BAA2B,CAAC,EAAE,CAAC;QAC7D,OAAO;YACL,OAAO,EAAE,MAAM;YACf,MAAM,EAAE;gBACN,IAAI,EAAE,0BAA0B;gBAChC,MAAM,EAAE,iCAAiC;aAC1C;SACF,CAAC;IACJ,CAAC;IAED,IAAI,UAAU,CAAC,eAAe,EAAE,0BAA0B,CAAC,EAAE,CAAC;QAC5D,OAAO;YACL,OAAO,EAAE,WAAW;YACpB,MAAM,EAAE;gBACN,IAAI,EAAE,4BAA4B;gBAClC,MAAM,EAAE,6DAA6D;aACtE;SACF,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAS,cAAc,CAAC,KAAa;IACnC,OAAO,KAAK;SACT,SAAS,CAAC,KAAK,CAAC;SAChB,OAAO,CAAC,iBAAiB,EAAE,EAAE,CAAC;SAC9B,WAAW,EAAE,CAAC;AACnB,CAAC;AAED,SAAS,UAAU,CAAC,KAAa,EAAE,QAA2B;IAC5D,OAAO,QAAQ,CAAC,IAAI,CAAC,CAAC,OAAO,EAAE,EAAE,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;AACzD,CAAC"}
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* RetrievalRouter — authority-first recall.
|
|
3
|
+
*
|
|
4
|
+
* This is deliberately not semantic search. Routing order is permission,
|
|
5
|
+
* status/scope/type, conflict state, then optional host-provided exact topic
|
|
6
|
+
* matching. Without a topic matcher, topic queries fail closed.
|
|
7
|
+
*/
|
|
8
|
+
import type { ConflictRegistry, MemoryStore } from '../storage/index.js';
|
|
9
|
+
import type { ConflictRecord, IsoTimestamp, MemoryAtom, RecallQuery, RetrievalDecision } from '../types/index.js';
|
|
10
|
+
import type { Clock } from './decision-helpers.js';
|
|
11
|
+
import { type VisibilityPolicy } from './visibility-policy.js';
|
|
12
|
+
export type RetrievalAuthorityScorer = (atom: MemoryAtom, now: IsoTimestamp) => number;
|
|
13
|
+
export interface RetrievalRouterOptions {
|
|
14
|
+
readonly memoryStore: MemoryStore;
|
|
15
|
+
readonly conflictRegistry: ConflictRegistry;
|
|
16
|
+
readonly visibilityPolicy?: VisibilityPolicy;
|
|
17
|
+
readonly topicMatcher?: (atom: MemoryAtom, topic: string) => boolean;
|
|
18
|
+
/**
|
|
19
|
+
* Optional authority ranking hook applied only after visibility, scope,
|
|
20
|
+
* status, freshness, type, and topic filters.
|
|
21
|
+
*
|
|
22
|
+
* @remarks
|
|
23
|
+
* This hook is for receipt-derived ranking within already-authorized
|
|
24
|
+
* candidates. It must not grant permission, perform semantic retrieval, or
|
|
25
|
+
* treat confidence/consensus/prose as authority.
|
|
26
|
+
*/
|
|
27
|
+
readonly authorityScorer?: RetrievalAuthorityScorer;
|
|
28
|
+
readonly clock?: Clock;
|
|
29
|
+
}
|
|
30
|
+
export interface RetrievalResult {
|
|
31
|
+
readonly decision: RetrievalDecision;
|
|
32
|
+
readonly atoms: readonly MemoryAtom[];
|
|
33
|
+
readonly conflicts: readonly ConflictRecord[];
|
|
34
|
+
}
|
|
35
|
+
export declare class RetrievalRouter {
|
|
36
|
+
private readonly options;
|
|
37
|
+
private readonly visibilityPolicy;
|
|
38
|
+
private readonly clock;
|
|
39
|
+
/**
|
|
40
|
+
* Create an authority-first recall router.
|
|
41
|
+
*
|
|
42
|
+
* @remarks
|
|
43
|
+
* The optional topic matcher is an exact host-provided predicate, not an
|
|
44
|
+
* embedding or semantic ranking hook. If a topic query is supplied without a
|
|
45
|
+
* matcher, recall fails closed.
|
|
46
|
+
*/
|
|
47
|
+
constructor(options: RetrievalRouterOptions);
|
|
48
|
+
/**
|
|
49
|
+
* Recall atoms that are visible, in scope, currently valid, and actionable.
|
|
50
|
+
*
|
|
51
|
+
* @remarks
|
|
52
|
+
* Implementation order is permission before semantics: caller visibility is
|
|
53
|
+
* resolved first, then the store query applies scope/status/freshness, then
|
|
54
|
+
* optional type/topic filtering, then conflict checks. The returned decision
|
|
55
|
+
* must be inspected before passing atoms to a model.
|
|
56
|
+
*/
|
|
57
|
+
recall(query: RecallQuery): Promise<RetrievalResult>;
|
|
58
|
+
private loadAtoms;
|
|
59
|
+
}
|
|
60
|
+
//# sourceMappingURL=retrieval-router.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retrieval-router.d.ts","sourceRoot":"","sources":["../../src/runtime/retrieval-router.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,gBAAgB,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,KAAK,EACV,cAAc,EAEd,YAAY,EACZ,UAAU,EAEV,WAAW,EACX,iBAAiB,EAElB,MAAM,mBAAmB,CAAC;AAE3B,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,uBAAuB,CAAC;AAEnD,OAAO,EAA8B,KAAK,gBAAgB,EAAE,MAAM,wBAAwB,CAAC;AAE3F,MAAM,MAAM,wBAAwB,GAAG,CAAC,IAAI,EAAE,UAAU,EAAE,GAAG,EAAE,YAAY,KAAK,MAAM,CAAC;AAEvF,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAClC,QAAQ,CAAC,gBAAgB,EAAE,gBAAgB,CAAC;IAC5C,QAAQ,CAAC,gBAAgB,CAAC,EAAE,gBAAgB,CAAC;IAC7C,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,UAAU,EAAE,KAAK,EAAE,MAAM,KAAK,OAAO,CAAC;IACrE;;;;;;;;OAQG;IACH,QAAQ,CAAC,eAAe,CAAC,EAAE,wBAAwB,CAAC;IACpD,QAAQ,CAAC,KAAK,CAAC,EAAE,KAAK,CAAC;CACxB;AAED,MAAM,WAAW,eAAe;IAC9B,QAAQ,CAAC,QAAQ,EAAE,iBAAiB,CAAC;IACrC,QAAQ,CAAC,KAAK,EAAE,SAAS,UAAU,EAAE,CAAC;IACtC,QAAQ,CAAC,SAAS,EAAE,SAAS,cAAc,EAAE,CAAC;CAC/C;AAQD,qBAAa,eAAe;IAYd,OAAO,CAAC,QAAQ,CAAC,OAAO;IAXpC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAmB;IACpD,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAQ;IAE9B;;;;;;;OAOG;gBAC0B,OAAO,EAAE,sBAAsB;IAK5D;;;;;;;;OAQG;IACG,MAAM,CAAC,KAAK,EAAE,WAAW,GAAG,OAAO,CAAC,eAAe,CAAC;YAuI5C,SAAS;CA2CxB"}
|