@dsh-enhanced/personal-memory 0.1.6 → 0.1.12

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -46,12 +46,13 @@ dsh --profile web --dump-config
46
46
  ## 行为与工具
47
47
 
48
48
  - `memory_search`:显式检索当前 agent 可见的四个域;ASCII 与中文 unigram/bigram 均可召回,排序和 tie-break 确定,读取不更新任何计数。
49
+ - `memory_search_confirmed`:面向后台复盘的窄查询;服务端固定只返回非敏感、`user-confirmed` 的 `instruction` / `preference`,调用方不能通过参数放宽 trust、kind 或 sensitivity。
49
50
  - `memory_manage`:只创建 add/replace/remove 提案,返回完整 diff、proposal id、TTL 和版本;它没有直接提交路径,也不接受模型提供 principal 或 TTL。principal、workspace 和飞书投递 binding 必须来自当前 Agent 的 authenticated Delivery owner route,TTL 来自可信配置;没有活动绑定时 fail closed。
50
51
  - `ctx.personalMemory.decideProposal(...)`:供绑定 owner 的可信通道/UI 决定提案。principal、版本、决定内容和理由均受幂等/CAS 约束。
51
52
  - `ctx.personalMemory.exportJson(agent)`:导出版本化 JSON,不包含哈希、状态、时间戳、token 表或审计表。
52
53
  - `ctx.personalMemory.proposeImport(...)`:先验证整个有界文档,再为每条记录创建审批提案;Agent 路径同样由 Delivery 派生审批 authority,未批准前不会写入 memory record。仅在未组合 Delivery 的可信本地/headless 集成中,程序化调用方可以显式传入 principal;一旦 Delivery 可用就不能用该字段覆盖绑定 owner。
53
54
 
54
- 每次 `agent/session-start` 最多注入一次冻结快照。快照合并 user-global、当前 workspace、当前 agent-global 和当前 agent-workspace,受 top-K、字节和粗略 token 三重预算约束;`sensitive` 记录不会进入环境快照。内容被包在 `<memory_source>` 中并明确标为“不可信数据而非指令”,所有 XML 元字符在预算计算前转义,记录无法闭合数据边界。`memory_search` 与 `memory_manage` 的模型可见结果也分别使用有界、转义的 `<memory_search_results>` / `<memory_proposal_results>` framing。缺少绝对 cwd 或 agent preset 时不搜索、不提案、不注入,也不会退化到共享域。
55
+ 每次 `agent/session-start` 最多注入一次冻结快照。快照合并 user-global、当前 workspace、当前 agent-global 和当前 agent-workspace,受 top-K、字节和粗略 token 三重预算约束;`sensitive` 记录不会进入环境快照。内容被包在 `<memory_source>` 中并明确标为“不可信数据而非指令”,所有 XML 元字符在预算计算前转义,记录无法闭合数据边界。`memory_search`、`memory_search_confirmed` 与 `memory_manage` 的模型可见结果也使用有界、转义的独立 framing。缺少绝对 cwd 或 agent preset 时不搜索、不提案、不注入,也不会退化到共享域。
55
56
 
56
57
  ## 数据与一致性
57
58
 
@@ -0,0 +1,24 @@
1
+ import { type PreferenceMemoryPromotionCancellationReceipt, type PreferenceMemoryPromotionCancellationRequest, type PreferenceMemoryPromotionProducer, type PreferenceMemoryPromotionRegistration, type PreferenceMemoryPromotionRequest, type PreferenceMemoryPromotionResult, type PreferenceMemoryPromotionResultAck, type PreferenceMemoryPromotionSubmissionReceipt, type PreferencePromotionSourceRegistrationOwner } from '@dsh-enhanced/assistant-growth-contract';
2
+ import type { MemoryMutation, MemoryOwnerNamespace } from './types.js';
3
+ export interface PreferencePromotionBridgeHandlers {
4
+ submit(request: Readonly<PreferenceMemoryPromotionRequest>): Readonly<PreferenceMemoryPromotionSubmissionReceipt>;
5
+ cancel(request: Readonly<PreferenceMemoryPromotionCancellationRequest>): Readonly<PreferenceMemoryPromotionCancellationReceipt>;
6
+ list(limit: number): readonly Readonly<PreferenceMemoryPromotionResult>[];
7
+ acknowledge(ack: Readonly<PreferenceMemoryPromotionResultAck>): void;
8
+ }
9
+ /** Fixed, content-free request projection. Callers cannot provide Memory prose or trust. */
10
+ export declare function preferencePromotionMutation(requestInput: Readonly<PreferenceMemoryPromotionRequest>): Readonly<MemoryMutation>;
11
+ export declare function preferencePromotionNamespace(requestInput: Readonly<PreferenceMemoryPromotionRequest>, principalDigest: string): Readonly<MemoryOwnerNamespace>;
12
+ /**
13
+ * One private, process-local registration per exact Preference producer
14
+ * generation. Every callback rechecks both object identity and generation.
15
+ */
16
+ export declare class PreferenceMemoryPromotionBridge implements PreferencePromotionSourceRegistrationOwner {
17
+ #private;
18
+ private readonly handlers;
19
+ constructor(handlers: PreferencePromotionBridgeHandlers, resolveProducer?: (value: unknown) => PreferenceMemoryPromotionProducer | undefined);
20
+ ownsPreferencePromotionSourceRegistration(registration: Readonly<PreferenceMemoryPromotionRegistration>): boolean;
21
+ bind(value: unknown): (() => void) | undefined;
22
+ dispose(): void;
23
+ }
24
+ //# sourceMappingURL=promotion.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promotion.d.ts","sourceRoot":"","sources":["../src/promotion.ts"],"names":[],"mappings":"AACA,OAAO,EAQL,KAAK,4CAA4C,EACjD,KAAK,4CAA4C,EACjD,KAAK,iCAAiC,EACtC,KAAK,qCAAqC,EAC1C,KAAK,gCAAgC,EACrC,KAAK,+BAA+B,EACpC,KAAK,kCAAkC,EACvC,KAAK,0CAA0C,EAC/C,KAAK,0CAA0C,EAChD,MAAM,yCAAyC,CAAA;AAChD,OAAO,KAAK,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAA;AAEtE,MAAM,WAAW,iCAAiC;IAChD,MAAM,CAAC,OAAO,EAAE,QAAQ,CAAC,gCAAgC,CAAC,GAAG,QAAQ,CAAC,0CAA0C,CAAC,CAAA;IACjH,MAAM,CACJ,OAAO,EAAE,QAAQ,CAAC,4CAA4C,CAAC,GAC9D,QAAQ,CAAC,4CAA4C,CAAC,CAAA;IACzD,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,SAAS,QAAQ,CAAC,+BAA+B,CAAC,EAAE,CAAA;IACzE,WAAW,CAAC,GAAG,EAAE,QAAQ,CAAC,kCAAkC,CAAC,GAAG,IAAI,CAAA;CACrE;AAiBD,4FAA4F;AAC5F,wBAAgB,2BAA2B,CACzC,YAAY,EAAE,QAAQ,CAAC,gCAAgC,CAAC,GACvD,QAAQ,CAAC,cAAc,CAAC,CAyB1B;AAED,wBAAgB,4BAA4B,CAC1C,YAAY,EAAE,QAAQ,CAAC,gCAAgC,CAAC,EACxD,eAAe,EAAE,MAAM,GACtB,QAAQ,CAAC,oBAAoB,CAAC,CAQhC;AAED;;;GAGG;AACH,qBAAa,+BAAgC,YAAW,0CAA0C;;IAO9F,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,iCAAiC,EAC5D,eAAe,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,iCAAiC,GAAG,SAAS;IAOrF,yCAAyC,CACvC,YAAY,EAAE,QAAQ,CAAC,qCAAqC,CAAC,GAC5D,OAAO;IAIV,IAAI,CAAC,KAAK,EAAE,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS;IAwE9C,OAAO,IAAI,IAAI;CAMhB"}
@@ -0,0 +1,147 @@
1
+ import { randomUUID } from 'node:crypto';
2
+ import { PREFERENCE_MEMORY_PROMOTION_CONTENT, PREFERENCE_MEMORY_PROMOTION_PROTOCOL, PREFERENCE_MEMORY_PROMOTION_RENDERER_ID, resolveTrustedPreferenceMemoryPromotionProducer, validatePreferenceMemoryPromotionCancellationRequest, validatePreferenceMemoryPromotionRequest, validatePreferenceMemoryPromotionResultAck, } from '@dsh-enhanced/assistant-growth-contract';
3
+ function generation(value) {
4
+ if (typeof value !== 'string' || value.normalize('NFC').trim() !== value || value === ''
5
+ || Buffer.byteLength(value, 'utf8') > 200) {
6
+ throw new Error('personal-memory: Preference promotion producer generation is invalid');
7
+ }
8
+ return value;
9
+ }
10
+ /** Fixed, content-free request projection. Callers cannot provide Memory prose or trust. */
11
+ export function preferencePromotionMutation(requestInput) {
12
+ const request = validatePreferenceMemoryPromotionRequest(requestInput);
13
+ if (request.rendererId !== PREFERENCE_MEMORY_PROMOTION_RENDERER_ID) {
14
+ throw new Error('personal-memory: Preference promotion renderer is invalid');
15
+ }
16
+ return Object.freeze({
17
+ op: 'add',
18
+ identity: Object.freeze({
19
+ owner: 'user',
20
+ scope: 'workspace',
21
+ workspace: request.scope.workspace,
22
+ }),
23
+ entry: Object.freeze({
24
+ kind: 'preference',
25
+ content: PREFERENCE_MEMORY_PROMOTION_CONTENT,
26
+ sensitivity: 'private',
27
+ trust: 'user-confirmed',
28
+ confidence: request.hypothesis.confidenceBps / 10_000,
29
+ provenance: Object.freeze({
30
+ source: `preference-learning:${PREFERENCE_MEMORY_PROMOTION_RENDERER_ID}`,
31
+ observedAt: request.observedAt,
32
+ uri: `preference://${request.hypothesis.id}/v${request.hypothesis.version}`,
33
+ }),
34
+ }),
35
+ });
36
+ }
37
+ export function preferencePromotionNamespace(requestInput, principalDigest) {
38
+ const request = validatePreferenceMemoryPromotionRequest(requestInput);
39
+ return Object.freeze({
40
+ mode: 'delivery',
41
+ principalDigest,
42
+ principalRecordId: request.principalLineage.principalRecordId,
43
+ principalVersion: request.principalLineage.principalVersion,
44
+ });
45
+ }
46
+ /**
47
+ * One private, process-local registration per exact Preference producer
48
+ * generation. Every callback rechecks both object identity and generation.
49
+ */
50
+ export class PreferenceMemoryPromotionBridge {
51
+ handlers;
52
+ #sinkGeneration = `personal-memory-promotion:${randomUUID()}`;
53
+ #activeRegistrations = new WeakSet();
54
+ #binding;
55
+ #active = true;
56
+ constructor(handlers, resolveProducer) {
57
+ this.handlers = handlers;
58
+ this.#resolveProducer = resolveProducer ?? resolveTrustedPreferenceMemoryPromotionProducer;
59
+ }
60
+ #resolveProducer;
61
+ ownsPreferencePromotionSourceRegistration(registration) {
62
+ return this.#active && this.#activeRegistrations.has(registration);
63
+ }
64
+ bind(value) {
65
+ const producer = this.#resolveProducer(value);
66
+ if (producer === undefined)
67
+ return undefined;
68
+ const sourceGeneration = generation(producer.trustedMemoryPromotionProducerGeneration());
69
+ const current = this.#binding;
70
+ if (current !== undefined && current.producer === producer
71
+ && current.sourceGeneration === sourceGeneration) {
72
+ return current.dispose;
73
+ }
74
+ let live = true;
75
+ let unregister;
76
+ let binding;
77
+ let registration;
78
+ const assertCurrent = () => {
79
+ if (!live || !this.#active || this.#binding !== binding
80
+ || !this.#activeRegistrations.has(registration)
81
+ || this.#resolveProducer(producer) !== producer
82
+ || generation(producer.trustedMemoryPromotionProducerGeneration()) !== sourceGeneration) {
83
+ throw new Error('personal-memory: stale Preference promotion capability');
84
+ }
85
+ };
86
+ registration = Object.freeze({
87
+ protocol: PREFERENCE_MEMORY_PROMOTION_PROTOCOL,
88
+ producer: 'personal-memory',
89
+ sourceGeneration,
90
+ sinkGeneration: this.#sinkGeneration,
91
+ owner: this,
92
+ propose: (input) => {
93
+ assertCurrent();
94
+ return this.handlers.submit(validatePreferenceMemoryPromotionRequest(input));
95
+ },
96
+ cancelPromotion: (input) => {
97
+ assertCurrent();
98
+ return this.handlers.cancel(validatePreferenceMemoryPromotionCancellationRequest(input));
99
+ },
100
+ listTerminalResults: (limit) => {
101
+ assertCurrent();
102
+ return this.handlers.list(limit);
103
+ },
104
+ acknowledgeTerminalResult: (input) => {
105
+ assertCurrent();
106
+ this.handlers.acknowledge(validatePreferenceMemoryPromotionResultAck(input));
107
+ },
108
+ });
109
+ this.#activeRegistrations.add(registration);
110
+ const dispose = () => {
111
+ if (!live)
112
+ return;
113
+ live = false;
114
+ this.#activeRegistrations.delete(registration);
115
+ if (this.#binding === binding)
116
+ this.#binding = undefined;
117
+ unregister?.();
118
+ };
119
+ binding = Object.freeze({ producer, sourceGeneration, registration, dispose });
120
+ const previous = this.#binding;
121
+ this.#binding = binding;
122
+ try {
123
+ unregister = producer.registerTrustedMemoryPromotionResultSink(registration);
124
+ if (typeof unregister !== 'function'
125
+ || generation(producer.trustedMemoryPromotionProducerGeneration()) !== sourceGeneration) {
126
+ throw new Error('personal-memory: Preference promotion registration failed');
127
+ }
128
+ }
129
+ catch (error) {
130
+ live = false;
131
+ this.#activeRegistrations.delete(registration);
132
+ if (this.#binding === binding)
133
+ this.#binding = previous;
134
+ throw error;
135
+ }
136
+ previous?.dispose();
137
+ return dispose;
138
+ }
139
+ dispose() {
140
+ if (!this.#active)
141
+ return;
142
+ this.#active = false;
143
+ this.#binding?.dispose();
144
+ this.#binding = undefined;
145
+ }
146
+ }
147
+ //# sourceMappingURL=promotion.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"promotion.js","sourceRoot":"","sources":["../src/promotion.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,11 @@
1
1
  import { type ApprovalDecisionInput, type ApprovalProposalLookupInput, type ApprovalProposalInput, type ApprovalProposalRecoveryInput, type ApprovalProposalRecoveryResult, type ApprovalProposalResult, type ApprovalProposalSnapshot } from '@dsh-enhanced/assistant-policy';
2
2
  import { MemoryStore } from './store.js';
3
- import type { MemoryProposalDecisionInput, MemoryProposalInput, MemoryProposalResult } from './types.js';
3
+ import type { MemoryProposalDecisionInput, MemoryProposalInput, MemoryProposalResult, StoredMemoryProposal } from './types.js';
4
+ import type { PreferenceMemoryPromotionCancellationReceipt } from '@dsh-enhanced/assistant-growth-contract';
5
+ export declare class MemoryPromotionCancelledError extends Error {
6
+ readonly receipt: Readonly<PreferenceMemoryPromotionCancellationReceipt>;
7
+ constructor(receipt: Readonly<PreferenceMemoryPromotionCancellationReceipt>);
8
+ }
4
9
  export interface MemoryApprovalPolicy {
5
10
  propose(input: ApprovalProposalInput): ApprovalProposalResult;
6
11
  recoverOrCreateProposal(input: ApprovalProposalRecoveryInput): ApprovalProposalRecoveryResult;
@@ -12,8 +17,16 @@ export declare class MemoryProposalManager {
12
17
  #private;
13
18
  private readonly store;
14
19
  private readonly policy;
15
- constructor(store: MemoryStore, policy: MemoryApprovalPolicy);
20
+ private readonly validatePromotionOwner?;
21
+ constructor(store: MemoryStore, policy: MemoryApprovalPolicy, validatePromotionOwner?: ((proposal: StoredMemoryProposal) => "current" | "stale-owner") | undefined);
16
22
  propose(input: MemoryProposalInput): MemoryProposalResult;
23
+ /**
24
+ * Materialize a terminal upstream fence/deadline result without creating a
25
+ * headless Policy proposal. The exact request still becomes durable first.
26
+ */
27
+ rejectPromotionBeforePolicy(input: MemoryProposalInput & {
28
+ promotion: NonNullable<MemoryProposalInput['promotion']>;
29
+ }, status: 'expired' | 'stale-owner'): MemoryProposalResult;
17
30
  decide(input: MemoryProposalDecisionInput): MemoryProposalResult;
18
31
  getProposal(proposalId: string): MemoryProposalResult | undefined;
19
32
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"proposals.d.ts","sourceRoot":"","sources":["../src/proposals.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EAChC,KAAK,qBAAqB,EAC1B,KAAK,6BAA6B,EAClC,KAAK,8BAA8B,EACnC,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAC9B,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAGL,WAAW,EAGZ,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAEV,2BAA2B,EAC3B,mBAAmB,EACnB,oBAAoB,EAIrB,MAAM,YAAY,CAAA;AAEnB,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,KAAK,EAAE,qBAAqB,GAAG,sBAAsB,CAAA;IAC7D,uBAAuB,CAAC,KAAK,EAAE,6BAA6B,GAAG,8BAA8B,CAAA;IAC7F,cAAc,CAAC,KAAK,EAAE,qBAAqB,GAAG,sBAAsB,CAAA;IACpE,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,wBAAwB,GAAG,SAAS,CAAA;IACrE,2BAA2B,CAAC,CAAC,KAAK,EAAE,2BAA2B,GAAG,wBAAwB,GAAG,SAAS,CAAA;CACvG;AAiED,qBAAa,qBAAqB;;IAE9B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;gBADN,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,oBAAoB;IAG/C,OAAO,CAAC,KAAK,EAAE,mBAAmB,GAAG,oBAAoB;IAwJzD,MAAM,CAAC,KAAK,EAAE,2BAA2B,GAAG,oBAAoB;IA+BhE,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS;IAKjE;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,oBAAoB,EAAE;CA+EjD"}
1
+ {"version":3,"file":"proposals.d.ts","sourceRoot":"","sources":["../src/proposals.ts"],"names":[],"mappings":"AACA,OAAO,EAGL,KAAK,qBAAqB,EAC1B,KAAK,2BAA2B,EAChC,KAAK,qBAAqB,EAC1B,KAAK,6BAA6B,EAClC,KAAK,8BAA8B,EACnC,KAAK,sBAAsB,EAC3B,KAAK,wBAAwB,EAE9B,MAAM,gCAAgC,CAAA;AACvC,OAAO,EAIL,WAAW,EAGZ,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAEV,2BAA2B,EAC3B,mBAAmB,EACnB,oBAAoB,EAEpB,oBAAoB,EAErB,MAAM,YAAY,CAAA;AACnB,OAAO,KAAK,EAAE,4CAA4C,EAAE,MAAM,yCAAyC,CAAA;AAE3G,qBAAa,6BAA8B,SAAQ,KAAK;IAC1C,QAAQ,CAAC,OAAO,EAAE,QAAQ,CAAC,4CAA4C,CAAC;gBAA/D,OAAO,EAAE,QAAQ,CAAC,4CAA4C,CAAC;CAIrF;AAED,MAAM,WAAW,oBAAoB;IACnC,OAAO,CAAC,KAAK,EAAE,qBAAqB,GAAG,sBAAsB,CAAA;IAC7D,uBAAuB,CAAC,KAAK,EAAE,6BAA6B,GAAG,8BAA8B,CAAA;IAC7F,cAAc,CAAC,KAAK,EAAE,qBAAqB,GAAG,sBAAsB,CAAA;IACpE,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,wBAAwB,GAAG,SAAS,CAAA;IACrE,2BAA2B,CAAC,CAAC,KAAK,EAAE,2BAA2B,GAAG,wBAAwB,GAAG,SAAS,CAAA;CACvG;AA2DD,qBAAa,qBAAqB;;IAE9B,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,MAAM;IACvB,OAAO,CAAC,QAAQ,CAAC,sBAAsB,CAAC;gBAFvB,KAAK,EAAE,WAAW,EAClB,MAAM,EAAE,oBAAoB,EAC5B,sBAAsB,CAAC,GAAE,CAAC,QAAQ,EAAE,oBAAoB,KAAK,SAAS,GAAG,aAAa,aAAA;IAGzG,OAAO,CAAC,KAAK,EAAE,mBAAmB,GAAG,oBAAoB;IAsCzD;;;OAGG;IACH,2BAA2B,CACzB,KAAK,EAAE,mBAAmB,GAAG;QAAE,SAAS,EAAE,WAAW,CAAC,mBAAmB,CAAC,WAAW,CAAC,CAAC,CAAA;KAAE,EACzF,MAAM,EAAE,SAAS,GAAG,aAAa,GAChC,oBAAoB;IAkKvB,MAAM,CAAC,KAAK,EAAE,2BAA2B,GAAG,oBAAoB;IA+BhE,WAAW,CAAC,UAAU,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS;IAKjE;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,EAAE,MAAM,GAAG,oBAAoB,EAAE;CA6FjD"}
package/lib/proposals.js CHANGED
@@ -1,8 +1,18 @@
1
1
  import { createHash } from 'node:crypto';
2
2
  import { ApprovalSettlementConflict, validateApprovalSettlement, } from '@dsh-enhanced/assistant-policy';
3
- import { hashMemoryMutation, isMissingPolicyProposalId, MemoryStore, MemoryStoreError, missingPolicyProposalId, } from './store.js';
4
- function deterministicProposalId(idempotencyKey) {
5
- return `memory-${createHash('sha256').update(idempotencyKey).digest('hex').slice(0, 32)}`;
3
+ import { hashMemoryProposalIntent, isMissingPolicyProposalId, memoryOwnerNamespaceKey, MemoryStore, MemoryStoreError, missingPolicyProposalId, } from './store.js';
4
+ export class MemoryPromotionCancelledError extends Error {
5
+ receipt;
6
+ constructor(receipt) {
7
+ super('Preference promotion was durably cancelled');
8
+ this.receipt = receipt;
9
+ this.name = 'MemoryPromotionCancelledError';
10
+ }
11
+ }
12
+ function deterministicProposalId(namespaceKey, idempotencyKey) {
13
+ return `memory-${createHash('sha256')
14
+ .update(`personal-memory-proposal/v2\0${namespaceKey}\0${idempotencyKey}`)
15
+ .digest('hex').slice(0, 32)}`;
6
16
  }
7
17
  function proposalDiff(mutation) {
8
18
  return JSON.stringify(mutation, null, 2);
@@ -11,20 +21,13 @@ function proposalSummary(mutation) {
11
21
  const target = mutation.op === 'add' ? mutation.entry.kind : mutation.id;
12
22
  return `${mutation.op} ${mutation.identity.owner} ${mutation.identity.scope} memory ${target}`;
13
23
  }
14
- function hashMemoryProposalIntent(input) {
15
- const dispatch = input.dispatch === undefined
16
- ? null
17
- : {
18
- sourceId: input.dispatch.sourceId,
19
- bindingId: input.dispatch.bindingId,
20
- workspace: input.dispatch.workspace,
21
- principal: input.dispatch.principal,
22
- };
23
- return createHash('sha256').update(JSON.stringify({
24
- mutation: input.mutation,
25
- ttlMs: input.ttlMs,
26
- dispatch,
27
- })).digest('hex');
24
+ function policyDispatch(input) {
25
+ if (input === undefined)
26
+ return undefined;
27
+ if (input.routeVersion !== 2) {
28
+ throw new MemoryStoreError('invalid-entry', 'new memory approval dispatch must use route version 2');
29
+ }
30
+ return input;
28
31
  }
29
32
  function proposalCreationVersion(proposal) {
30
33
  const expectedCurrentVersion = proposal.status === 'pending' ? 1 : 2;
@@ -57,18 +60,25 @@ function result(proposal, replayed, record) {
57
60
  export class MemoryProposalManager {
58
61
  store;
59
62
  policy;
60
- constructor(store, policy) {
63
+ validatePromotionOwner;
64
+ constructor(store, policy, validatePromotionOwner) {
61
65
  this.store = store;
62
66
  this.policy = policy;
67
+ this.validatePromotionOwner = validatePromotionOwner;
63
68
  }
64
69
  propose(input) {
65
70
  if (input.idempotencyKey.trim() === '') {
66
71
  throw new MemoryStoreError('invalid-entry', 'proposal idempotencyKey must not be empty');
67
72
  }
68
- const proposalId = deterministicProposalId(input.idempotencyKey);
69
- const mutation = this.store.normalizeMutation(input.mutation, { preflight: false });
73
+ const notAfter = this.store.resolveProposalNotAfter(input.namespace, input.idempotencyKey, input.ttlMs, input.notAfter);
74
+ const proposalId = deterministicProposalId(memoryOwnerNamespaceKey(input.namespace), input.idempotencyKey);
75
+ const mutation = this.store.normalizeMutation(input.mutation, {
76
+ namespace: input.namespace,
77
+ preflight: false,
78
+ });
70
79
  const normalized = {
71
80
  ...input,
81
+ notAfter,
72
82
  mutation,
73
83
  };
74
84
  const mutationHash = hashMemoryProposalIntent(normalized);
@@ -83,8 +93,54 @@ export class MemoryProposalManager {
83
93
  if (prepared.kind === 'proposal') {
84
94
  return this.#replayStoredProposal(prepared.proposal, normalized);
85
95
  }
96
+ if (prepared.kind === 'cancelled') {
97
+ throw new MemoryPromotionCancelledError(prepared.receipt);
98
+ }
86
99
  return this.#submitProposal(prepared.intent, prepared.replayed);
87
100
  }
101
+ /**
102
+ * Materialize a terminal upstream fence/deadline result without creating a
103
+ * headless Policy proposal. The exact request still becomes durable first.
104
+ */
105
+ rejectPromotionBeforePolicy(input, status) {
106
+ if (input.dispatch !== undefined) {
107
+ throw new MemoryStoreError('invalid-entry', 'pre-Policy promotion settlement cannot carry a dispatch');
108
+ }
109
+ const proposalId = deterministicProposalId(memoryOwnerNamespaceKey(input.namespace), input.idempotencyKey);
110
+ const notAfter = this.store.resolveProposalNotAfter(input.namespace, input.idempotencyKey, input.ttlMs, input.notAfter);
111
+ const mutation = this.store.normalizeMutation(input.mutation, {
112
+ namespace: input.namespace,
113
+ preflight: false,
114
+ });
115
+ const normalized = { ...input, notAfter, mutation };
116
+ const mutationHash = hashMemoryProposalIntent(normalized);
117
+ const prepared = this.store.prepareProposalIntent({ ...normalized, proposalId, mutationHash });
118
+ if (prepared.kind === 'conflict') {
119
+ throw new MemoryStoreError('idempotency-conflict', 'proposal key was used for another mutation');
120
+ }
121
+ if (prepared.kind === 'proposal') {
122
+ const settled = prepared.proposal.status === 'pending'
123
+ ? this.store.settleProposal({
124
+ proposalId,
125
+ policyStatus: 'conflicted',
126
+ promotion: { ...input.promotion, statusOverride: status },
127
+ })
128
+ : this.store.settleProposal({
129
+ proposalId,
130
+ policyStatus: 'conflicted',
131
+ promotion: { ...input.promotion, statusOverride: status },
132
+ });
133
+ return result(settled.proposal, true, settled.record);
134
+ }
135
+ if (prepared.kind === 'cancelled') {
136
+ throw new MemoryPromotionCancelledError(prepared.receipt);
137
+ }
138
+ const settled = this.store.conflictProposalIntent(proposalId, {
139
+ ...input.promotion,
140
+ statusOverride: status,
141
+ });
142
+ return result(settled.proposal, prepared.replayed || settled.replayed);
143
+ }
88
144
  #replayStoredProposal(existing, authority) {
89
145
  if (isMissingPolicyProposalId(existing.policyProposalId)) {
90
146
  if (existing.policyProposalId !== missingPolicyProposalId(existing.proposalId, authority.ttlMs, authority.dispatch)) {
@@ -97,14 +153,13 @@ export class MemoryProposalManager {
97
153
  return this.#recoverAttachedProposal(existing);
98
154
  }
99
155
  #submitProposal(input, intentReplayed) {
100
- const proposalId = deterministicProposalId(input.idempotencyKey);
156
+ const proposalId = deterministicProposalId(memoryOwnerNamespaceKey(input.namespace), input.idempotencyKey);
101
157
  const diff = proposalDiff(input.mutation);
102
158
  const mutationHash = hashMemoryProposalIntent(input);
103
- const legacyMutationHash = hashMemoryMutation(input.mutation);
104
- if (input.proposalId !== proposalId
105
- || (input.mutationHash !== mutationHash && input.mutationHash !== legacyMutationHash)) {
159
+ if (input.proposalId !== proposalId || input.mutationHash !== mutationHash) {
106
160
  throw new MemoryStoreError('idempotency-conflict', 'durable proposal intent does not match its canonical payload');
107
161
  }
162
+ const dispatch = policyDispatch(input.dispatch);
108
163
  const policyContent = {
109
164
  idempotencyKey: `personal-memory:${input.idempotencyKey}`,
110
165
  requester: input.requester,
@@ -113,45 +168,29 @@ export class MemoryProposalManager {
113
168
  resource: { kind: 'memory', id: proposalId },
114
169
  diff,
115
170
  summary: proposalSummary(input.mutation),
116
- ...(input.dispatch === undefined ? {} : { dispatch: input.dispatch }),
171
+ ...(dispatch === undefined ? {} : { dispatch }),
117
172
  };
118
173
  let policyProposal;
119
174
  try {
120
- const notAfter = input.createdAt + input.ttlMs;
175
+ const notAfter = input.notAfter;
121
176
  if (!Number.isSafeInteger(notAfter)) {
122
177
  throw new MemoryStoreError('invalid-entry', 'proposal intent deadline exceeds the safe timestamp range');
123
178
  }
124
- const legacyReplay = input.mutationHash === legacyMutationHash
125
- && input.mutationHash !== mutationHash;
126
- const legacyExisting = legacyReplay
127
- ? this.policy.getProposalByIdempotencyKey?.({
128
- idempotencyKey: policyContent.idempotencyKey,
129
- requester: policyContent.requester,
130
- principal: policyContent.principal,
131
- action: policyContent.action,
132
- resource: policyContent.resource,
133
- })
134
- : undefined;
135
- if (legacyExisting !== undefined) {
136
- // The read is deliberately scoped and non-creating. Policy proposal rows
137
- // are immutable/non-deletable, so ordinary propose now performs an exact
138
- // legacy TTL/dispatch replay without opening a missing-row create path.
139
- policyProposal = this.policy.propose({ ...policyContent, ttlMs: input.ttlMs });
140
- }
141
- else {
142
- const recovered = this.policy.recoverOrCreateProposal({ ...policyContent, notAfter });
143
- if (recovered.kind === 'abandoned') {
144
- const conflicted = this.store.conflictProposalIntent(proposalId);
145
- return result(conflicted.proposal, intentReplayed || recovered.replayed || conflicted.replayed);
146
- }
147
- policyProposal = recovered.proposal;
179
+ const recovered = this.policy.recoverOrCreateProposal({ ...policyContent, notAfter });
180
+ if (recovered.kind === 'abandoned') {
181
+ const promotion = input.promotion === undefined
182
+ ? undefined
183
+ : { ...input.promotion, statusOverride: 'expired' };
184
+ const conflicted = this.store.conflictProposalIntent(proposalId, promotion);
185
+ return result(conflicted.proposal, intentReplayed || recovered.replayed || conflicted.replayed);
148
186
  }
187
+ policyProposal = recovered.proposal;
149
188
  }
150
189
  catch (error) {
151
190
  if (!permanentPolicyRecoveryFailure(error)
152
191
  && !(error instanceof MemoryStoreError && error.code === 'invalid-entry'))
153
192
  throw error;
154
- const conflicted = this.store.conflictProposalIntent(proposalId);
193
+ const conflicted = this.store.conflictProposalIntent(proposalId, input.promotion);
155
194
  return result(conflicted.proposal, intentReplayed || conflicted.replayed);
156
195
  }
157
196
  let expectedVersion;
@@ -159,7 +198,7 @@ export class MemoryProposalManager {
159
198
  expectedVersion = proposalCreationVersion(policyProposal);
160
199
  }
161
200
  catch {
162
- const conflicted = this.store.conflictProposalIntent(proposalId);
201
+ const conflicted = this.store.conflictProposalIntent(proposalId, input.promotion);
163
202
  return result(conflicted.proposal, intentReplayed || conflicted.replayed);
164
203
  }
165
204
  const attached = this.store.getProposal(proposalId);
@@ -172,10 +211,13 @@ export class MemoryProposalManager {
172
211
  idempotencyKey: input.idempotencyKey,
173
212
  requester: input.requester,
174
213
  principal: input.principal,
214
+ namespace: input.namespace,
175
215
  mutation: input.mutation,
176
216
  mutationHash,
217
+ notAfter: input.notAfter,
177
218
  expiresAt: policyProposal.expiresAt,
178
219
  version: expectedVersion,
220
+ ...(input.promotion === undefined ? {} : { promotion: input.promotion }),
179
221
  });
180
222
  const replayed = intentReplayed || policyProposal.replayed || saved.replayed;
181
223
  if (saved.proposal.status !== 'pending' || policyProposal.status === 'pending') {
@@ -266,6 +308,8 @@ export class MemoryProposalManager {
266
308
  this.store.deferProposalIntent(intent.proposalId);
267
309
  continue;
268
310
  }
311
+ if (prepared.kind === 'cancelled')
312
+ continue;
269
313
  const recovered = prepared.kind === 'proposal'
270
314
  ? this.#replayStoredProposal(prepared.proposal, intent)
271
315
  : this.#submitProposal(prepared.intent, true);
@@ -305,6 +349,19 @@ export class MemoryProposalManager {
305
349
  expiresAt: proposal.expiresAt,
306
350
  expectedVersion,
307
351
  });
352
+ if (terminal.status === 'approved' && proposal.promotion !== undefined) {
353
+ if (this.validatePromotionOwner === undefined) {
354
+ throw new MemoryStoreError('invalid-entry', 'promotion owner fence is unavailable');
355
+ }
356
+ if (this.validatePromotionOwner(proposal) === 'stale-owner') {
357
+ const stale = this.store.settleProposal({
358
+ proposalId: proposal.proposalId,
359
+ policyStatus: 'conflicted',
360
+ promotion: { ...proposal.promotion, statusOverride: 'stale-owner' },
361
+ });
362
+ return result(stale.proposal, policyReplayed || stale.replayed, stale.record);
363
+ }
364
+ }
308
365
  const applied = this.store.settleProposal({
309
366
  proposalId: proposal.proposalId,
310
367
  policyStatus: terminal.status,
@@ -1 +1 @@
1
- {"version":3,"file":"proposals.js","sourceRoot":"","sources":["../src/proposals.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"proposals.js","sourceRoot":"","sources":["../src/proposals.ts"],"names":[],"mappings":"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"}
package/lib/service.d.ts CHANGED
@@ -58,11 +58,18 @@ export declare class PersonalMemoryService extends Service {
58
58
  private readonly proposals;
59
59
  private readonly policy;
60
60
  private delivery;
61
+ private readonly promotionBridge;
62
+ private readonly headlessNamespaces;
61
63
  private readonly config;
62
64
  private readonly sessionSnapshots;
63
65
  private active;
64
66
  constructor(ctx: Context, input: Config);
65
67
  search(agent: Agent | undefined, request: ServiceSearchRequest): MemorySearchHit[];
68
+ /**
69
+ * Narrow background-review seam. Its trust/kind/sensitivity filters are
70
+ * service-owned so a maintenance Agent cannot widen them through tool args.
71
+ */
72
+ searchConfirmedGuidance(agent: Agent | undefined, request: ServiceSearchRequest): MemorySearchHit[];
66
73
  read(agent: Agent | undefined, request: {
67
74
  ids: readonly string[];
68
75
  }): MemoryRecord[];
@@ -78,10 +85,20 @@ export declare class PersonalMemoryService extends Service {
78
85
  proposeImport(agent: Agent | undefined, input: ServiceImportInput): MemoryImportBatchResult;
79
86
  getProposal(proposalId: string, principal: string): MemoryProposalResult | undefined;
80
87
  health(): ReturnType<MemoryStore['health']>;
88
+ /** Trusted producer registration hook; intentionally not exposed as a model tool. */
89
+ bindPreferencePromotionProducer(producer: unknown): (() => void) | undefined;
90
+ private submitPreferencePromotion;
91
+ private cancelPreferencePromotion;
92
+ private listPromotionResults;
93
+ private acknowledgePromotionResult;
94
+ private validatePromotionOwner;
81
95
  private injectSessionSnapshot;
82
96
  private assertMutationIdentity;
83
97
  private resolveApprovalRoute;
84
98
  private agentContext;
99
+ private agentScope;
100
+ private routeMatchesPromotion;
101
+ private routeMatchesProposal;
85
102
  private assertActive;
86
103
  }
87
104
  //# sourceMappingURL=service.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"service.d.ts","sourceRoot":"","sources":["../src/service.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AACtD,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,wBAAwB,CAAA;AAEnD,OAAO,MAAM,MAAM,0BAA0B,CAAA;AAU7C,OAAO,EAEL,WAAW,EACZ,MAAM,YAAY,CAAA;AAOnB,OAAO,KAAK,EAIV,uBAAuB,EACvB,cAAc,EAEd,2BAA2B,EAC3B,oBAAoB,EACpB,YAAY,EACZ,eAAe,EAGhB,MAAM,YAAY,CAAA;AAWnB,MAAM,WAAW,MAAM;IACrB,YAAY,EAAE,MAAM,CAAA;IACpB,YAAY,CAAC,EAAE,sBAAsB,GAAG,mBAAmB,CAAA;IAC3D,eAAe,CAAC,EAAE,MAAM,CAAA;IACxB,qBAAqB,CAAC,EAAE,MAAM,CAAA;IAC9B,WAAW,CAAC,EAAE,MAAM,CAAA;IACpB,aAAa,CAAC,EAAE,MAAM,CAAA;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB,iBAAiB,CAAC,EAAE,MAAM,CAAA;IAC1B,oBAAoB,CAAC,EAAE,MAAM,CAAA;IAC7B,gBAAgB,CAAC,EAAE,MAAM,CAAA;IACzB;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAA;IAC5B,sEAAsE;IACtE,cAAc,CAAC,EAAE,MAAM,CAAA;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,KAAK,EAAE,MAAM,CAAA;IACb,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,2BAA2B,CAAC,EAAE,MAAM,CAAA;CACrC;AAED,MAAM,WAAW,oBAAoB;IACnC,cAAc,EAAE,MAAM,CAAA;IACtB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,QAAQ,EAAE,cAAc,CAAA;CACzB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAA;IACZ,cAAc,EAAE,MAAM,CAAA;IACtB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,KAAK,CAAC,EAAE,MAAM,CAAA;CACf;AAED,MAAM,MAAM,uBAAuB,GAC/B,UAAU,GACV,mBAAmB,GACnB,gBAAgB,GAChB,kBAAkB,GAClB,wBAAwB,GACxB,WAAW,GACX,eAAe,GACf,wBAAwB,CAAA;AAE5B,qBAAa,mBAAoB,SAAQ,KAAK;IAChC,QAAQ,CAAC,IAAI,EAAE,uBAAuB;gBAA7B,IAAI,EAAE,uBAAuB,EAAE,OAAO,EAAE,MAAM;CAIpE;AAsBD,OAAO,QAAQ,qBAAqB,CAAC;IACnC,UAAU,OAAO;QACf,cAAc,EAAE,qBAAqB,CAAA;KACtC;CACF;AAQD,qBAAa,qBAAsB,SAAQ,OAAO;IAChD,MAAM,CAAC,MAAM,iBAAe;IAE5B,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAa;IACzC,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAuB;IACjD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAwB;IAC/C,OAAO,CAAC,QAAQ,CAC2F;IAC3G,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiC;IACjE,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAA6C;IAChF,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAkB;IACzC,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAuC;IACxE,OAAO,CAAC,MAAM,CAAO;gBAET,GAAG,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM;IAwEvC,MAAM,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,EAAE,OAAO,EAAE,oBAAoB,GAAG,eAAe,EAAE;IAqBlF;;;OAGG;IACH,uBAAuB,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,EAAE,OAAO,EAAE,oBAAoB,GAAG,eAAe,EAAE;IAuBnG,IAAI,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,EAAE,OAAO,EAAE;QAAE,GAAG,EAAE,SAAS,MAAM,EAAE,CAAA;KAAE,GAAG,YAAY,EAAE;IAiBnF,OAAO,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,EAAE,KAAK,EAAE,oBAAoB,GAAG,oBAAoB;IAsBpF,cAAc,CAAC,KAAK,EAAE,2BAA2B,GAAG,oBAAoB;IAKxE;;;;OAIG;IACH,kBAAkB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,oBAAoB,EAAE;IAK1D,UAAU,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,GAAG,MAAM;IAU5C,aAAa,CAAC,KAAK,EAAE,KAAK,GAAG,SAAS,EAAE,KAAK,EAAE,kBAAkB,GAAG,uBAAuB;IAgD3F,WAAW,CAAC,UAAU,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,oBAAoB,GAAG,SAAS;IAWpF,MAAM,IAAI,UAAU,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;IAK3C,qFAAqF;IACrF,+BAA+B,CAAC,QAAQ,EAAE,OAAO,GAAG,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS;IAK5E,OAAO,CAAC,yBAAyB;IA+EjC,OAAO,CAAC,yBAAyB;IAOjC,OAAO,CAAC,oBAAoB;IA0C5B,OAAO,CAAC,0BAA0B;IAalC,OAAO,CAAC,sBAAsB;IAmB9B,OAAO,CAAC,qBAAqB;IA2B7B,OAAO,CAAC,sBAAsB;IAU9B,OAAO,CAAC,oBAAoB;IA4D5B,OAAO,CAAC,YAAY;IA0CpB,OAAO,CAAC,UAAU;IAUlB,OAAO,CAAC,qBAAqB;IAa7B,OAAO,CAAC,oBAAoB;IAc5B,OAAO,CAAC,YAAY;CAGrB"}