@lemoncat7/dsh-partner 1.13.0 → 1.14.1

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.
Files changed (103) hide show
  1. package/README.md +10 -2
  2. package/docs/architecture.md +3 -0
  3. package/docs/releases/1.14.0.md +24 -0
  4. package/docs/releases/1.14.1.md +11 -0
  5. package/lib/agent-runtime.d.ts +23 -2
  6. package/lib/agent-runtime.d.ts.map +1 -1
  7. package/lib/agent-runtime.js +45 -282
  8. package/lib/agent-runtime.js.map +1 -1
  9. package/lib/api.js +34 -2
  10. package/lib/api.js.map +1 -1
  11. package/lib/autonomy.d.ts.map +1 -1
  12. package/lib/autonomy.js +13 -5
  13. package/lib/autonomy.js.map +1 -1
  14. package/lib/client-api.d.ts +8 -1
  15. package/lib/client-api.d.ts.map +1 -1
  16. package/lib/client-api.js.map +1 -1
  17. package/lib/client.js +1790 -1402
  18. package/lib/client.js.map +4 -4
  19. package/lib/companions/session-recovery.d.ts +7 -0
  20. package/lib/companions/session-recovery.d.ts.map +1 -0
  21. package/lib/companions/session-recovery.js +22 -0
  22. package/lib/companions/session-recovery.js.map +1 -0
  23. package/lib/concern-domain.d.ts +9 -0
  24. package/lib/concern-domain.d.ts.map +1 -1
  25. package/lib/concern-domain.js.map +1 -1
  26. package/lib/concern-recording.d.ts +20 -0
  27. package/lib/concern-recording.d.ts.map +1 -0
  28. package/lib/concern-recording.js +37 -0
  29. package/lib/concern-recording.js.map +1 -0
  30. package/lib/concern-store.d.ts +20 -1
  31. package/lib/concern-store.d.ts.map +1 -1
  32. package/lib/concern-store.js +170 -1
  33. package/lib/concern-store.js.map +1 -1
  34. package/lib/heartbeat.d.ts +16 -0
  35. package/lib/heartbeat.d.ts.map +1 -1
  36. package/lib/heartbeat.js +97 -9
  37. package/lib/heartbeat.js.map +1 -1
  38. package/lib/memory-errors.d.ts +6 -0
  39. package/lib/memory-errors.d.ts.map +1 -0
  40. package/lib/memory-errors.js +12 -0
  41. package/lib/memory-errors.js.map +1 -0
  42. package/lib/memory-journal.js +4 -4
  43. package/lib/memory-journal.js.map +1 -1
  44. package/lib/memory-reflection.d.ts.map +1 -1
  45. package/lib/memory-reflection.js +11 -3
  46. package/lib/memory-reflection.js.map +1 -1
  47. package/lib/memory-store.d.ts +4 -0
  48. package/lib/memory-store.d.ts.map +1 -1
  49. package/lib/memory-store.js +11 -3
  50. package/lib/memory-store.js.map +1 -1
  51. package/lib/observation-budget.d.ts +9 -0
  52. package/lib/observation-budget.d.ts.map +1 -0
  53. package/lib/observation-budget.js +9 -0
  54. package/lib/observation-budget.js.map +1 -0
  55. package/lib/observation-errors.d.ts +21 -0
  56. package/lib/observation-errors.d.ts.map +1 -0
  57. package/lib/observation-errors.js +36 -0
  58. package/lib/observation-errors.js.map +1 -0
  59. package/lib/observation-executor.d.ts +7 -0
  60. package/lib/observation-executor.d.ts.map +1 -0
  61. package/lib/observation-executor.js +23 -0
  62. package/lib/observation-executor.js.map +1 -0
  63. package/lib/observation-loop.d.ts +17 -0
  64. package/lib/observation-loop.d.ts.map +1 -0
  65. package/lib/observation-loop.js +180 -0
  66. package/lib/observation-loop.js.map +1 -0
  67. package/lib/recording-snapshot.d.ts +11 -0
  68. package/lib/recording-snapshot.d.ts.map +1 -0
  69. package/lib/recording-snapshot.js +19 -0
  70. package/lib/recording-snapshot.js.map +1 -0
  71. package/lib/ui/memory/concern-board.d.ts +4 -2
  72. package/lib/ui/memory/concern-board.d.ts.map +1 -1
  73. package/lib/ui/memory/concern-board.js +17 -6
  74. package/lib/ui/memory/concern-board.js.map +1 -1
  75. package/lib/ui/memory/concern-deletion.d.ts +12 -0
  76. package/lib/ui/memory/concern-deletion.d.ts.map +1 -0
  77. package/lib/ui/memory/concern-deletion.js +43 -0
  78. package/lib/ui/memory/concern-deletion.js.map +1 -0
  79. package/lib/ui/memory/concern-editor.d.ts +8 -0
  80. package/lib/ui/memory/concern-editor.d.ts.map +1 -0
  81. package/lib/ui/memory/concern-editor.js +37 -0
  82. package/lib/ui/memory/concern-editor.js.map +1 -0
  83. package/lib/ui/memory/concern-panel.d.ts.map +1 -1
  84. package/lib/ui/memory/concern-panel.js +51 -12
  85. package/lib/ui/memory/concern-panel.js.map +1 -1
  86. package/lib/ui/memory/concern-record-fields.d.ts +10 -0
  87. package/lib/ui/memory/concern-record-fields.d.ts.map +1 -0
  88. package/lib/ui/memory/concern-record-fields.js +7 -0
  89. package/lib/ui/memory/concern-record-fields.js.map +1 -0
  90. package/lib/ui/memory/job-feedback.d.ts +5 -0
  91. package/lib/ui/memory/job-feedback.d.ts.map +1 -0
  92. package/lib/ui/memory/job-feedback.js +7 -0
  93. package/lib/ui/memory/job-feedback.js.map +1 -0
  94. package/lib/ui/memory/memory-panel.d.ts.map +1 -1
  95. package/lib/ui/memory/memory-panel.js +4 -2
  96. package/lib/ui/memory/memory-panel.js.map +1 -1
  97. package/lib/ui/memory/record-target-picker.d.ts +7 -0
  98. package/lib/ui/memory/record-target-picker.d.ts.map +1 -0
  99. package/lib/ui/memory/record-target-picker.js +33 -0
  100. package/lib/ui/memory/record-target-picker.js.map +1 -0
  101. package/lib/ui/memory/types.d.ts +4 -0
  102. package/lib/ui/memory/types.d.ts.map +1 -1
  103. package/package.json +3 -1
@@ -0,0 +1,7 @@
1
+ /** Only the persistence service's explicit missing-identity error permits creation. */
2
+ export declare function isMissingSession(error: unknown, id: string): boolean;
3
+ export declare class SessionRecoveryJobs<T> {
4
+ private readonly jobs;
5
+ run(id: string, action: () => Promise<T>): Promise<T>;
6
+ }
7
+ //# sourceMappingURL=session-recovery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-recovery.d.ts","sourceRoot":"","sources":["../../src/companions/session-recovery.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAIpE;AAED,qBAAa,mBAAmB,CAAC,CAAC;IAChC,OAAO,CAAC,QAAQ,CAAC,IAAI,CAAgC;IACrD,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC;CAStD"}
@@ -0,0 +1,22 @@
1
+ /** Only the persistence service's explicit missing-identity error permits creation. */
2
+ export function isMissingSession(error, id) {
3
+ if (!error || typeof error !== 'object')
4
+ return false;
5
+ const value = error;
6
+ return value.name === 'SessionPersistenceNotFoundError' && value.sessionId === id;
7
+ }
8
+ export class SessionRecoveryJobs {
9
+ jobs = new Map();
10
+ run(id, action) {
11
+ const existing = this.jobs.get(id);
12
+ if (existing)
13
+ return existing;
14
+ const job = Promise.resolve().then(action).finally(() => {
15
+ if (this.jobs.get(id) === job)
16
+ this.jobs.delete(id);
17
+ });
18
+ this.jobs.set(id, job);
19
+ return job;
20
+ }
21
+ }
22
+ //# sourceMappingURL=session-recovery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"session-recovery.js","sourceRoot":"","sources":["../../src/companions/session-recovery.ts"],"names":[],"mappings":"AAAA,uFAAuF;AACvF,MAAM,UAAU,gBAAgB,CAAC,KAAc,EAAE,EAAU;IACzD,IAAI,CAAC,KAAK,IAAI,OAAO,KAAK,KAAK,QAAQ;QAAE,OAAO,KAAK,CAAA;IACrD,MAAM,KAAK,GAAG,KAA8C,CAAA;IAC5D,OAAO,KAAK,CAAC,IAAI,KAAK,iCAAiC,IAAI,KAAK,CAAC,SAAS,KAAK,EAAE,CAAA;AACnF,CAAC;AAED,MAAM,OAAO,mBAAmB;IACb,IAAI,GAAG,IAAI,GAAG,EAAsB,CAAA;IACrD,GAAG,CAAC,EAAU,EAAE,MAAwB;QACtC,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,CAAA;QAClC,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAA;QAC7B,MAAM,GAAG,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,GAAG,EAAE;YACtD,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,GAAG;gBAAE,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;QACrD,CAAC,CAAC,CAAA;QACF,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;QACtB,OAAO,GAAG,CAAA;IACZ,CAAC;CACF"}
@@ -10,6 +10,9 @@ export interface ConcernResource {
10
10
  label: string;
11
11
  }
12
12
  export interface PartnerConcern {
13
+ recordingSnapshot?: import('./recording-snapshot.js').RecordingSnapshot;
14
+ recordingPending?: boolean;
15
+ recordTarget?: ConcernRecordTarget;
13
16
  id: string;
14
17
  companionId: string;
15
18
  scopeId: string;
@@ -32,6 +35,7 @@ export interface PartnerConcern {
32
35
  resolvedAt?: number;
33
36
  }
34
37
  export interface ConcernCandidate {
38
+ recordTarget?: ConcernRecordTarget;
35
39
  subject: string;
36
40
  reason: string;
37
41
  operation: 'upsert' | 'resolve' | 'dismiss';
@@ -41,6 +45,11 @@ export interface ConcernCandidate {
41
45
  watchQuery: string;
42
46
  resources?: ConcernResource[];
43
47
  }
48
+ export interface ConcernRecordTarget {
49
+ kind: 'file' | 'note';
50
+ locator: string;
51
+ label: string;
52
+ }
44
53
  export declare const IMPLICIT_CONCERN_MIN_PRIORITY = 0.55;
45
54
  export declare const IMPLICIT_CONCERN_MIN_CONFIDENCE = 0.72;
46
55
  export declare const IMPLICIT_CONCERN_MIN_SCORE = 0.64;
@@ -1 +1 @@
1
- {"version":3,"file":"concern-domain.d.ts","sourceRoot":"","sources":["../src/concern-domain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"concern-domain.d.ts","sourceRoot":"","sources":["../src/concern-domain.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"concern-domain.js","sourceRoot":"","sources":["../src/concern-domain.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"concern-domain.js","sourceRoot":"","sources":["../src/concern-domain.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ import type { ToolDefinition } from '@deepseek-ai/dsh-tools';
2
+ import type { PartnerConcern } from './concern-domain.js';
3
+ export interface NoteRecordingBridge {
4
+ version: number;
5
+ list(query: string, signal?: AbortSignal): Promise<Array<{
6
+ id: string;
7
+ name: string;
8
+ }>>;
9
+ read(id: string, signal?: AbortSignal): Promise<{
10
+ id: string;
11
+ name: string;
12
+ content: string;
13
+ revision: string;
14
+ }>;
15
+ update(id: string, content: string, revision: string, signal?: AbortSignal): Promise<unknown>;
16
+ }
17
+ export declare const HEARTBEAT_RECORD_NOTE = "heartbeat_record_note";
18
+ /** No model-supplied note IDs: targets come only from persisted user selection. */
19
+ export declare function recordingNoteTool(concerns: PartnerConcern[], bridge: () => NoteRecordingBridge | undefined, onWritten?: (concernId: string) => void): ToolDefinition;
20
+ //# sourceMappingURL=concern-recording.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"concern-recording.d.ts","sourceRoot":"","sources":["../src/concern-recording.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAA;AAEzD,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAA;IACf,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC,CAAA;IACvF,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IAChH,MAAM,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,WAAW,GAAG,OAAO,CAAC,OAAO,CAAC,CAAA;CAC9F;AACD,eAAO,MAAM,qBAAqB,0BAA0B,CAAA;AAE5D,mFAAmF;AACnF,wBAAgB,iBAAiB,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,MAAM,EAAE,MAAM,mBAAmB,GAAG,SAAS,EAAE,SAAS,CAAC,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,GAAG,cAAc,CA4BpK"}
@@ -0,0 +1,37 @@
1
+ export const HEARTBEAT_RECORD_NOTE = 'heartbeat_record_note';
2
+ /** No model-supplied note IDs: targets come only from persisted user selection. */
3
+ export function recordingNoteTool(concerns, bridge, onWritten) {
4
+ return {
5
+ name: HEARTBEAT_RECORD_NOTE,
6
+ description: 'Read or update the explicitly selected recording note for a concern. Never writes the source/instruction document. Read paginated content first; append for a new progress entry, replace only after reading the complete body. Pass the exact revision from read; if changed, reread instead of overwriting. No target means no writes.',
7
+ parameters: { type: 'object', additionalProperties: false, properties: {
8
+ concernId: { type: 'string' }, operation: { type: 'string', enum: ['read', 'append', 'replace'] },
9
+ offset: { type: 'integer', minimum: 0 }, content: { type: 'string' }, revision: { type: 'string' },
10
+ }, required: ['concernId', 'operation'] },
11
+ output: { schema: { type: 'string' }, render: (_args, value) => [{ type: 'text', text: String(value) }] },
12
+ async execute(raw, exec) {
13
+ const args = raw;
14
+ const concern = concerns.find(item => item.id === args.concernId);
15
+ if (concern?.recordTarget?.kind !== 'note')
16
+ throw new Error('当前关注没有明确选择记录笔记');
17
+ const service = bridge();
18
+ if (service?.version !== 1)
19
+ throw new Error('知识库笔记记录接口不可用,请更新知识库插件');
20
+ const current = await service.read(concern.recordTarget.locator, exec.signal);
21
+ if (args.operation === 'read') {
22
+ const offset = args.offset === undefined ? 0 : Number(args.offset);
23
+ if (!Number.isSafeInteger(offset) || offset < 0)
24
+ throw new Error('offset 无效');
25
+ return JSON.stringify({ ...current, content: current.content.slice(offset, offset + 6000), nextOffset: offset + 6000 < current.content.length ? offset + 6000 : null, totalChars: current.content.length });
26
+ }
27
+ if (!['append', 'replace'].includes(String(args.operation)) || typeof args.content !== 'string' || args.content.length > 100000)
28
+ throw new Error('记录操作或内容无效');
29
+ if (args.revision !== current.revision)
30
+ throw new Error('记录已变化,请重新读取后再更新');
31
+ const result = await service.update(current.id, args.operation === 'append' ? current.content + args.content : args.content, current.revision, exec.signal);
32
+ onWritten?.(concern.id);
33
+ return JSON.stringify(result);
34
+ },
35
+ };
36
+ }
37
+ //# sourceMappingURL=concern-recording.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"concern-recording.js","sourceRoot":"","sources":["../src/concern-recording.ts"],"names":[],"mappings":"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"}
@@ -42,7 +42,14 @@ export declare class PartnerConcernStore {
42
42
  migrateLegacy(companionId: string, seeds: LegacyConcernSeed[]): Promise<boolean>;
43
43
  applyCandidates(companionId: string, scopeId: string, candidates: ConcernCandidate[], origin: ConcernOrigin, at?: number, options?: ConcernApplyOptions): Promise<PartnerConcern[]>;
44
44
  ingestCandidates(companionId: string, scopeId: string, candidates: ConcernCandidate[], origin: ConcernOrigin, at?: number, options?: ConcernApplyOptions): Promise<ConcernApplyResult>;
45
- createExplicit(companionId: string, scopeId: string, subject: string, reason?: string): Promise<PartnerConcern>;
45
+ createExplicit(companionId: string, scopeId: string, subject: string, reason?: string, recordTarget?: PartnerConcern['recordTarget']): Promise<PartnerConcern>;
46
+ editExplicit(companionId: string, id: string, input: {
47
+ subject: string;
48
+ reason: string;
49
+ sources: string;
50
+ expectedUpdatedAt: number;
51
+ recordTarget?: PartnerConcern['recordTarget'];
52
+ }): Promise<PartnerConcern>;
46
53
  applyUserDirective(companionId: string, scopeId: string, value: string, now?: number): Promise<AppliedConcernLifecycleDirective | undefined>;
47
54
  list(companionId: string, scopeId?: string, includeArchived?: boolean, limit?: number): Promise<PartnerConcern[]>;
48
55
  due(companionId: string, scopeId: string, options?: ConcernDueOptions): Promise<PartnerConcern[]>;
@@ -51,6 +58,11 @@ export declare class PartnerConcernStore {
51
58
  notifications: ConcernObservation[];
52
59
  }>;
53
60
  activity(companionId: string, limit?: number): Promise<ConcernActivity>;
61
+ archived(companionId: string, offset?: number): Promise<{
62
+ items: PartnerConcern[];
63
+ hasMore: boolean;
64
+ }>;
65
+ remove(companionId: string, id: string, expectedUpdatedAt: number): Promise<void>;
54
66
  pendingToolCreationNotices(companionId: string, scopeId: string, sessionId: string, limit?: number): Promise<PendingConcernNotice>;
55
67
  markCreationAuditsNotified(companionId: string, auditIds: string[], at?: number): Promise<void>;
56
68
  deferred(companionId: string, scopeId: string, query: string, limit?: number): Promise<ConcernObservation[]>;
@@ -61,6 +73,13 @@ export declare class PartnerConcernStore {
61
73
  private upsert;
62
74
  private existing;
63
75
  private audit;
76
+ checkpointRecording(item: PartnerConcern, snapshot: import('./recording-snapshot.js').RecordingSnapshot): Promise<void>;
77
+ pendingRecording(companionId: string, now?: number): Promise<PartnerConcern | undefined>;
78
+ settleRecording(item: PartnerConcern, synced: boolean): Promise<void>;
79
+ recordSyncState(concerns: PartnerConcern[], states: Array<{
80
+ concernId: string;
81
+ state: 'synced' | 'pending';
82
+ }>): Promise<void>;
64
83
  private open;
65
84
  private path;
66
85
  private serial;
@@ -1 +1 @@
1
- {"version":3,"file":"concern-store.d.ts","sourceRoot":"","sources":["../src/concern-store.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"concern-store.d.ts","sourceRoot":"","sources":["../src/concern-store.ts"],"names":[],"mappings":"AAIA,OAAO,EAIL,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,KAAK,kBAAkB,EAAE,KAAK,2BAA2B,EACtG,KAAK,gCAAgC,EAAE,KAAK,aAAa,EAA+C,KAAK,cAAc,EAC5H,MAAM,qBAAqB,CAAA;AAG5B,MAAM,WAAW,iBAAiB;IAAG,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,aAAa,CAAA;CAAE;AAClI,MAAM,WAAW,iBAAiB;IAAG,GAAG,CAAC,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAC;IAAC,aAAa,CAAC,EAAE,OAAO,CAAC;IAAC,SAAS,CAAC,EAAE,MAAM,CAAA;CAAE;AAChH,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG,cAAc,GAAG,MAAM,GAAG,IAAI,CAAA;AAClF,MAAM,MAAM,oBAAoB,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,GAAG,WAAW,GAAG,UAAU,GAAG,SAAS,CAAA;AAC5G,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,MAAM,CAAC,EAAE,sBAAsB,CAAA;IAC/B,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,kBAAkB,CAAC,EAAE,MAAM,CAAA;CAC5B;AACD,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,MAAM,CAAA;IACf,QAAQ,EAAE,oBAAoB,CAAA;IAC9B,MAAM,EAAE,MAAM,CAAA;IACd,OAAO,CAAC,EAAE,cAAc,CAAA;CACzB;AACD,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,cAAc,EAAE,CAAA;IACzB,OAAO,EAAE,iBAAiB,EAAE,CAAA;CAC7B;AACD,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,EAAE,CAAA;IAClB,QAAQ,EAAE,cAAc,EAAE,CAAA;CAC3B;AAED,qBAAa,mBAAmB;IAGlB,OAAO,CAAC,QAAQ,CAAC,IAAI;IAFjC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmC;gBAE7B,IAAI,EAAE,MAAM;IAEnC,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,iBAAiB,EAAE,GAAG,OAAO,CAAC,OAAO,CAAC;IAkBhF,eAAe,CACnB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,gBAAgB,EAAE,EAC9B,MAAM,EAAE,aAAa,EACrB,EAAE,SAAa,EACf,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,cAAc,EAAE,CAAC;IAItB,gBAAgB,CACpB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,UAAU,EAAE,gBAAgB,EAAE,EAC9B,MAAM,EAAE,aAAa,EACrB,EAAE,SAAa,EACf,OAAO,GAAE,mBAAwB,GAChC,OAAO,CAAC,kBAAkB,CAAC;IAkExB,cAAc,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,SAAK,EAAE,YAAY,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAY1J,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,iBAAiB,EAAE,MAAM,CAAC;QAAC,YAAY,CAAC,EAAE,cAAc,CAAC,cAAc,CAAC,CAAA;KAAC,GAAG,OAAO,CAAC,cAAc,CAAC;IAiC3M,kBAAkB,CACtB,WAAW,EAAE,MAAM,EACnB,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,MAAM,EACb,GAAG,SAAa,GACf,OAAO,CAAC,gCAAgC,GAAG,SAAS,CAAC;IAiBlD,IAAI,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,eAAe,UAAQ,EAAE,KAAK,SAAM,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAW5G,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE,iBAAsB,GAAG,OAAO,CAAC,cAAc,EAAE,CAAC;IAgCrG,kBAAkB,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,UAAU,EAAE,2BAA2B,EAAE,EAAE,GAAG,SAAa,EAAE,kBAAkB,UAAQ,GAAG,OAAO,CAAC;QAAE,YAAY,EAAE,kBAAkB,EAAE,CAAC;QAAC,aAAa,EAAE,kBAAkB,EAAE,CAAA;KAAE,CAAC;IAgF7N,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,SAAK,GAAG,OAAO,CAAC,eAAe,CAAC;IASnE,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,SAAI,GAAG,OAAO,CAAC;QAAC,KAAK,EAAE,cAAc,EAAE,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAC,CAAC;IAQ/F,MAAM,CAAC,WAAW,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuBjF,0BAA0B,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAa7H,0BAA0B,CAAC,WAAW,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,EAAE,EAAE,SAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAanG,QAAQ,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAWvG,oBAAoB,CAAC,WAAW,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,KAAK,SAAI,GAAG,OAAO,CAAC,kBAAkB,EAAE,CAAC;IAQpG,aAAa,CAAC,WAAW,EAAE,MAAM,EAAE,cAAc,EAAE,MAAM,EAAE,EAAE,GAAG,SAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAc7F,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,GAAG,QAAQ,GAAG,YAAY,GAAG,SAAS,EAAE,GAAG,SAAa,GAAG,OAAO,CAAC,IAAI,CAAC;IAenI,KAAK,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAI/C,OAAO,CAAC,MAAM;IA6Cd,OAAO,CAAC,QAAQ;IAMhB,OAAO,CAAC,KAAK;IAqBP,mBAAmB,CAAC,IAAI,EAAE,cAAc,EAAE,QAAQ,EAAE,OAAO,yBAAyB,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC;IAUvH,gBAAgB,CAAC,WAAW,EAAE,MAAM,EAAE,GAAG,SAAW,GAAG,OAAO,CAAC,cAAc,GAAG,SAAS,CAAC;IAQ1F,eAAe,CAAC,IAAI,EAAE,cAAc,EAAE,MAAM,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAQrE,eAAe,CAAC,QAAQ,EAAE,cAAc,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,QAAQ,GAAG,SAAS,CAAA;KAAC,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;YAmBnH,IAAI;IAgDlB,OAAO,CAAC,IAAI;YACE,MAAM;YACN,WAAW;CAO1B"}
@@ -73,6 +73,13 @@ export class PartnerConcernStore {
73
73
  continue;
74
74
  }
75
75
  const concern = this.upsert(database, companionId, scopeId, candidate, origin, at);
76
+ if (source === 'ui' && candidate.recordTarget !== undefined) {
77
+ const target = concern ?? existing;
78
+ if (target) {
79
+ database.prepare('UPDATE concerns SET record_target_json = ? WHERE id = ?').run(JSON.stringify(candidate.recordTarget), target.id);
80
+ target.recordTarget = candidate.recordTarget;
81
+ }
82
+ }
76
83
  if (concern !== undefined)
77
84
  created.push(concern);
78
85
  const current = concern ?? existing;
@@ -106,17 +113,65 @@ export class PartnerConcernStore {
106
113
  return { created, entries };
107
114
  });
108
115
  }
109
- async createExplicit(companionId, scopeId, subject, reason = '') {
116
+ async createExplicit(companionId, scopeId, subject, reason = '', recordTarget) {
110
117
  const descriptor = explicitConcernDescriptor(subject);
111
118
  await this.applyCandidates(companionId, scopeId, [{
112
119
  subject: descriptor.subject, reason: reason || '用户明确要求伙伴留意', operation: 'upsert', priority: .9,
113
120
  confidence: 1, watchKind: descriptor.watchKind, watchQuery: descriptor.watchQuery, resources: descriptor.resources,
121
+ ...(recordTarget ? { recordTarget } : {}),
114
122
  }], 'explicit', Date.now(), { source: 'ui' });
115
123
  const concern = (await this.list(companionId, scopeId)).find(item => normalizeConcernSubject(item.subject) === normalizeConcernSubject(descriptor.subject));
116
124
  if (!concern)
117
125
  throw new Error('concern could not be created');
118
126
  return concern;
119
127
  }
128
+ async editExplicit(companionId, id, input) {
129
+ let edited;
130
+ await this.serial(this.path(companionId), async () => {
131
+ const database = await this.open(companionId);
132
+ try {
133
+ database.exec('BEGIN IMMEDIATE');
134
+ const row = database.prepare('SELECT * FROM concerns WHERE companion_id = ? AND id = ?').get(companionId, id);
135
+ if (!row)
136
+ throw new Error('关注不存在');
137
+ const old = concernFromRow(row);
138
+ if (old.updatedAt !== input.expectedUpdatedAt)
139
+ throw new Error('关注已发生变化,请刷新后重新编辑;本次未覆盖');
140
+ const subject = input.subject.trim();
141
+ if (!subject || subject.length > 300 || input.reason.length > 800 || input.sources.length > 4000)
142
+ throw new Error('关注内容长度无效');
143
+ const normalized = normalizeConcernSubject(subject);
144
+ if (!normalized)
145
+ throw new Error('请填写有效的关注名称');
146
+ const duplicate = database.prepare('SELECT id, state FROM concerns WHERE companion_id = ? AND scope_id = ? AND normalized_subject = ? AND id != ?').get(companionId, old.scopeId, normalized, id);
147
+ if (duplicate && duplicate.state !== 'archived')
148
+ throw new Error('另有一条未归档的同名关注,请换一个名称;本次未新建或覆盖任何关注');
149
+ // Retain archived identity, title and history; release only its deduplication key.
150
+ if (duplicate)
151
+ database.prepare('UPDATE concerns SET normalized_subject = ? WHERE id = ?').run(`archived:${String(duplicate.id)}:${normalized}`, String(duplicate.id));
152
+ const descriptor = explicitConcernDescriptor(input.sources);
153
+ if (input.sources.trim() && descriptor.resources.length === 0)
154
+ throw new Error('未识别到检查依据,请使用 @知识库[库名/文档名] 或 @"文件路径"');
155
+ const updated = Math.max(Date.now(), old.updatedAt + 1);
156
+ if (JSON.stringify(old.recordTarget) !== JSON.stringify(input.recordTarget))
157
+ database.prepare('UPDATE concerns SET recording_pending = ?, recording_snapshot_json=NULL, recording_retry_at=0 WHERE id = ?').run(input.recordTarget ? 1 : 0, id);
158
+ database.prepare('UPDATE concerns SET subject = ?, normalized_subject = ?, reason = ?, resources_json = ?, watch_kind = ?, watch_query = ?, record_target_json = ?, updated_at = ? WHERE id = ? AND companion_id = ?').run(subject, normalized, input.reason.trim(), resourcesJson(descriptor.resources), descriptor.watchKind, subject, input.recordTarget ? JSON.stringify(input.recordTarget) : null, updated, id, companionId);
159
+ const result = concernFromRow(database.prepare('SELECT * FROM concerns WHERE id = ?').get(id));
160
+ database.exec('COMMIT');
161
+ edited = result;
162
+ }
163
+ catch (error) {
164
+ rollback(database);
165
+ throw error;
166
+ }
167
+ finally {
168
+ database.close();
169
+ }
170
+ });
171
+ if (!edited)
172
+ throw new Error('关注保存失败');
173
+ return edited;
174
+ }
120
175
  async applyUserDirective(companionId, scopeId, value, now = Date.now()) {
121
176
  const request = concernLifecycleRequest(value);
122
177
  if (request === undefined)
@@ -162,6 +217,7 @@ export class PartnerConcernStore {
162
217
  database.exec('BEGIN IMMEDIATE');
163
218
  const rows = database.prepare(`SELECT * FROM concerns WHERE companion_id = ? AND scope_id IN (?, '*')
164
219
  AND state IN ('active', 'watching') AND (? = 1 OR next_check_at <= ?)
220
+ AND recording_snapshot_json IS NULL
165
221
  AND (? IS NULL OR id = ?)
166
222
  ORDER BY priority DESC, next_check_at ASC LIMIT ?`).all(companionId, scopeId, options.includeFuture ? 1 : 0, now, options.concernId ?? null, options.concernId ?? null, Math.max(limit, 24));
167
223
  const due = [];
@@ -201,6 +257,8 @@ export class PartnerConcernStore {
201
257
  database.exec('BEGIN IMMEDIATE');
202
258
  const byConcern = new Map(candidates.map(item => [item.concernId, item]));
203
259
  for (const concern of concerns) {
260
+ if (!database.prepare('SELECT id FROM concerns WHERE id = ? AND companion_id = ?').get(concern.id, companionId))
261
+ continue;
204
262
  const candidate = byConcern.get(concern.id);
205
263
  const chosenMinutes = boundedConcernCheckMinutes(candidate?.nextCheckInMinutes);
206
264
  const nextCheckAt = now + (chosenMinutes === undefined ? concernInterval(concern.priority, concern.origin) : chosenMinutes * 60_000);
@@ -285,6 +343,48 @@ export class PartnerConcernStore {
285
343
  database.close();
286
344
  }
287
345
  }
346
+ async archived(companionId, offset = 0) {
347
+ const database = await this.open(companionId);
348
+ try {
349
+ const rows = database.prepare("SELECT * FROM concerns WHERE companion_id = ? AND state = 'archived' ORDER BY updated_at DESC, id LIMIT 51 OFFSET ?").all(companionId, offset);
350
+ return { items: rows.slice(0, 50).map(concernFromRow), hasMore: rows.length > 50 };
351
+ }
352
+ finally {
353
+ database.close();
354
+ }
355
+ }
356
+ async remove(companionId, id, expectedUpdatedAt) {
357
+ await this.serial(this.path(companionId), async () => {
358
+ const database = await this.open(companionId);
359
+ try {
360
+ database.exec('BEGIN IMMEDIATE');
361
+ const row = database.prepare('SELECT updated_at FROM concerns WHERE companion_id = ? AND id = ?').get(companionId, id);
362
+ if (!row) {
363
+ database.exec('COMMIT');
364
+ return;
365
+ }
366
+ if (number(row.updated_at) !== expectedUpdatedAt)
367
+ throw new Error('关注已变化,请刷新后重新确认删除');
368
+ database.prepare('DELETE FROM concern_audit WHERE companion_id = ? AND concern_id = ?').run(companionId, id);
369
+ // Keep batch replay markers, but scrub deleted concern snapshots from cached results.
370
+ for (const batch of database.prepare('SELECT scope_id, id, result_json FROM concern_batches WHERE instr(result_json, ?) > 0').all(id)) {
371
+ const result = JSON.parse(String(batch.result_json));
372
+ result.created = result.created.filter(item => item.id !== id);
373
+ result.entries = result.entries.filter(item => item.concern?.id !== id);
374
+ database.prepare('UPDATE concern_batches SET result_json = ? WHERE scope_id = ? AND id = ?').run(JSON.stringify(result), String(batch.scope_id), String(batch.id));
375
+ }
376
+ database.prepare('DELETE FROM concerns WHERE companion_id = ? AND id = ?').run(companionId, id);
377
+ database.exec('COMMIT');
378
+ }
379
+ catch (error) {
380
+ rollback(database);
381
+ throw error;
382
+ }
383
+ finally {
384
+ database.close();
385
+ }
386
+ });
387
+ }
288
388
  async pendingToolCreationNotices(companionId, scopeId, sessionId, limit = 4) {
289
389
  const database = await this.open(companionId);
290
390
  try {
@@ -445,6 +545,68 @@ export class PartnerConcernStore {
445
545
  decision, decision_reason, created_at, notified_at)
446
546
  VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, NULL)`).run(`concern-audit-${randomUUID()}`, entry.concern?.id ?? null, companionId, scopeId, options.sessionId ?? null, options.source ?? (origin === 'explicit' ? 'ui' : 'reflection'), origin, candidate.operation, compact(candidate.subject, 300), compact(candidate.reason, 800), compact(options.evidence ?? '', 1_200), entry.decision, compact(entry.reason, 400), at);
447
547
  }
548
+ async checkpointRecording(item, snapshot) {
549
+ await this.serialValue(this.path(item.companionId), async () => {
550
+ const db = await this.open(item.companionId);
551
+ try {
552
+ const updated = db.prepare('UPDATE concerns SET recording_snapshot_json=?, recording_pending=1, recording_retry_at=0, recording_attempts=0 WHERE id=? AND companion_id=? AND record_target_json=? AND updated_at=?').run(JSON.stringify(snapshot), item.id, item.companionId, JSON.stringify(item.recordTarget), item.updatedAt);
553
+ if (!updated.changes)
554
+ throw new Error('关注配置已改变,未保存旧目标的同步任务');
555
+ }
556
+ finally {
557
+ db.close();
558
+ }
559
+ });
560
+ }
561
+ async pendingRecording(companionId, now = Date.now()) {
562
+ return this.serialValue(this.path(companionId), async () => {
563
+ const db = await this.open(companionId);
564
+ try {
565
+ const row = db.prepare("SELECT * FROM concerns WHERE companion_id=? AND recording_pending=1 AND recording_snapshot_json IS NOT NULL AND recording_retry_at<=? AND state!='archived' ORDER BY recording_retry_at LIMIT 1").get(companionId, now);
566
+ return row ? { ...concernFromRow(row), recordingSnapshot: JSON.parse(String(row.recording_snapshot_json)) } : undefined;
567
+ }
568
+ finally {
569
+ db.close();
570
+ }
571
+ });
572
+ }
573
+ async settleRecording(item, synced) {
574
+ await this.serialValue(this.path(item.companionId), async () => {
575
+ const db = await this.open(item.companionId);
576
+ try {
577
+ db.prepare('UPDATE concerns SET recording_pending=?, recording_snapshot_json=CASE WHEN ? THEN NULL ELSE recording_snapshot_json END, recording_retry_at=?, recording_attempts=recording_attempts+1 WHERE id=? AND companion_id=? AND record_target_json=? AND recording_snapshot_json=?').run(synced ? 0 : 1, synced ? 1 : 0, Date.now() + 15 * 60000, item.id, item.companionId, JSON.stringify(item.recordTarget), JSON.stringify(item.recordingSnapshot));
578
+ }
579
+ finally {
580
+ db.close();
581
+ }
582
+ });
583
+ }
584
+ async recordSyncState(concerns, states) {
585
+ if (!concerns.length || !states.length)
586
+ return;
587
+ const companionId = concerns[0].companionId;
588
+ await this.serialValue(this.path(companionId), async () => {
589
+ const database = await this.open(companionId);
590
+ try {
591
+ database.exec('BEGIN IMMEDIATE');
592
+ for (const state of states) {
593
+ const original = concerns.find(item => item.id === state.concernId && item.companionId === companionId);
594
+ if (!original?.recordTarget)
595
+ continue;
596
+ // An in-flight execution must not mark a newly selected destination as synced.
597
+ database.prepare('UPDATE concerns SET recording_pending = ? WHERE id = ? AND companion_id = ? AND record_target_json = ?').run(state.state === 'pending' ? 1 : 0, original.id, companionId, JSON.stringify(original.recordTarget));
598
+ }
599
+ database.exec('COMMIT');
600
+ }
601
+ catch (error) {
602
+ database.exec('ROLLBACK');
603
+ throw error;
604
+ }
605
+ finally {
606
+ database.close();
607
+ }
608
+ });
609
+ }
448
610
  async open(companionId) {
449
611
  const directory = join(this.root, 'partners', companionId, 'concerns');
450
612
  await mkdir(directory, { recursive: true, mode: 0o700 });
@@ -481,6 +643,11 @@ export class PartnerConcernStore {
481
643
  CREATE INDEX IF NOT EXISTS concern_audit_session ON concern_audit(companion_id, scope_id, session_id, source, decision, notified_at, created_at);
482
644
  PRAGMA user_version = 4;`);
483
645
  ensureColumn(database, 'concerns', 'resources_json', "TEXT NOT NULL DEFAULT '[]'");
646
+ ensureColumn(database, 'concerns', 'record_target_json', 'TEXT');
647
+ ensureColumn(database, 'concerns', 'recording_pending', 'INTEGER NOT NULL DEFAULT 0');
648
+ ensureColumn(database, 'concerns', 'recording_snapshot_json', 'TEXT');
649
+ ensureColumn(database, 'concerns', 'recording_retry_at', 'INTEGER NOT NULL DEFAULT 0');
650
+ ensureColumn(database, 'concerns', 'recording_attempts', 'INTEGER NOT NULL DEFAULT 0');
484
651
  ensureColumn(database, 'concern_observations', 'rule_effect', "TEXT NOT NULL DEFAULT 'auto'");
485
652
  ensureColumn(database, 'concern_observations', 'rule_reason', "TEXT NOT NULL DEFAULT ''");
486
653
  ensureColumn(database, 'concern_observations', 'decision_reason', "TEXT NOT NULL DEFAULT ''");
@@ -506,6 +673,8 @@ export class PartnerConcernStore {
506
673
  }
507
674
  function concernFromRow(row) {
508
675
  return {
676
+ ...(row.record_target_json && number(row.recording_pending) === 1 ? { recordingPending: true } : {}),
677
+ ...(typeof row.record_target_json === 'string' ? { recordTarget: JSON.parse(row.record_target_json) } : {}),
509
678
  id: string(row.id), companionId: string(row.companion_id), scopeId: string(row.scope_id), subject: string(row.subject), reason: string(row.reason),
510
679
  origin: string(row.origin), state: string(row.state),
511
680
  priority: number(row.priority), confidence: number(row.confidence), score: number(row.score),