@lemoncat7/dsh-partner 1.1.6 → 1.3.9

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 (72) hide show
  1. package/README.md +14 -5
  2. package/lib/agent-runtime.d.ts +42 -3
  3. package/lib/agent-runtime.d.ts.map +1 -1
  4. package/lib/agent-runtime.js +523 -40
  5. package/lib/agent-runtime.js.map +1 -1
  6. package/lib/api.d.ts +2 -0
  7. package/lib/api.d.ts.map +1 -1
  8. package/lib/api.js +29 -2
  9. package/lib/api.js.map +1 -1
  10. package/lib/autonomy.d.ts +2 -7
  11. package/lib/autonomy.d.ts.map +1 -1
  12. package/lib/autonomy.js +40 -28
  13. package/lib/autonomy.js.map +1 -1
  14. package/lib/channels/manager.d.ts +1 -0
  15. package/lib/channels/manager.d.ts.map +1 -1
  16. package/lib/channels/manager.js +11 -3
  17. package/lib/channels/manager.js.map +1 -1
  18. package/lib/client-api.d.ts +43 -0
  19. package/lib/client-api.d.ts.map +1 -1
  20. package/lib/client-api.js.map +1 -1
  21. package/lib/client.d.ts.map +1 -1
  22. package/lib/client.js +461 -20
  23. package/lib/client.js.map +3 -3
  24. package/lib/concern-domain.d.ts +121 -0
  25. package/lib/concern-domain.d.ts.map +1 -0
  26. package/lib/concern-domain.js +182 -0
  27. package/lib/concern-domain.js.map +1 -0
  28. package/lib/concern-notification.d.ts +6 -0
  29. package/lib/concern-notification.d.ts.map +1 -0
  30. package/lib/concern-notification.js +27 -0
  31. package/lib/concern-notification.js.map +1 -0
  32. package/lib/concern-sources.d.ts +10 -0
  33. package/lib/concern-sources.d.ts.map +1 -0
  34. package/lib/concern-sources.js +81 -0
  35. package/lib/concern-sources.js.map +1 -0
  36. package/lib/concern-store.d.ts +41 -0
  37. package/lib/concern-store.d.ts.map +1 -0
  38. package/lib/concern-store.js +527 -0
  39. package/lib/concern-store.js.map +1 -0
  40. package/lib/daily-review.d.ts +3 -1
  41. package/lib/daily-review.d.ts.map +1 -1
  42. package/lib/daily-review.js +8 -2
  43. package/lib/daily-review.js.map +1 -1
  44. package/lib/domain.d.ts +4 -1
  45. package/lib/domain.d.ts.map +1 -1
  46. package/lib/domain.js +23 -0
  47. package/lib/domain.js.map +1 -1
  48. package/lib/heartbeat.d.ts +10 -2
  49. package/lib/heartbeat.d.ts.map +1 -1
  50. package/lib/heartbeat.js +81 -17
  51. package/lib/heartbeat.js.map +1 -1
  52. package/lib/index.d.ts.map +1 -1
  53. package/lib/index.js +33 -5
  54. package/lib/index.js.map +1 -1
  55. package/lib/memory-domain.d.ts +3 -0
  56. package/lib/memory-domain.d.ts.map +1 -1
  57. package/lib/memory-reflection.d.ts +8 -3
  58. package/lib/memory-reflection.d.ts.map +1 -1
  59. package/lib/memory-reflection.js +66 -13
  60. package/lib/memory-reflection.js.map +1 -1
  61. package/lib/memory-store.d.ts +8 -0
  62. package/lib/memory-store.d.ts.map +1 -1
  63. package/lib/memory-store.js +27 -0
  64. package/lib/memory-store.js.map +1 -1
  65. package/lib/store.d.ts.map +1 -1
  66. package/lib/store.js +39 -3
  67. package/lib/store.js.map +1 -1
  68. package/lib/time-format.d.ts +2 -0
  69. package/lib/time-format.d.ts.map +1 -0
  70. package/lib/time-format.js +20 -0
  71. package/lib/time-format.js.map +1 -0
  72. package/package.json +3 -1
package/README.md CHANGED
@@ -21,9 +21,17 @@
21
21
  - 微信在伙伴忙碌时遵循 DSH 全局 `ui-conversation.busyEnter`:`steer` 插入当前轮,`queue` 排入下一轮
22
22
  - 按伙伴和微信联系人双重隔离的完整对话归档、每日回顾与结构化长期记忆
23
23
  - 对话前按话题召回画像、偏好、任务、事件、关系与短期情绪信号
24
- - 心跳上下文只注入当前 Agent 作用域的真实工具目录,不注入近期回顾、长期任务、偏好、情绪或其他记忆
25
- - 心跳会在有限预算内从关注变化、学习新知和整理现状中发现并核实最多三条线索;只有产生可靠且有实际价值的信息才通过渠道通知
26
- - 可配置静默时段、检查间隔、每日通知上限、失败退避和手动检查
24
+ - 对话提炼与每日终审会识别尚未闭环、反复不满意、采用临时方案或正在等待外部结果的「伙伴挂念」;长期记忆只提供理解背景,不直接生成巡检任务
25
+ - 用户也可以自然地交代一件需要留意的事,并通过「继续留意、提高关注、已经解决、别管这个」控制它的生命周期;明确说出目标的“停止关注”会确定性更新状态,不依赖模型事后猜测
26
+ - 伙伴从记忆提炼或每日终审中自动新建关注后,会在当前伙伴会话中发出一次创建通知,并同步到对应的微信渠道,方便及时检查或移除
27
+ - 心跳只查询到期挂念,使用独立内存推理作用域观察上次检查后的变化;无到期事项时不会调用模型
28
+ - 心跳根据挂念选择当前可用的安全来源,并在来源内部逐层缩小范围:知识库按“找库→库内搜索→读取条目”,本地按“确定范围→定位文件/内容→读取证据”;发现阶段有独立软截止、单工具超时和整轮安全上限
29
+ - 挂念明确关联 `@文件` 时,伙伴可先读取再以最小修改持续维护该文件;写权限精确限定到已关联的现存文件,不能创建其他文件或触碰伙伴私有存储
30
+ - 发现结果先保存为 Observation,经过去重、相关性、新鲜度、可行动性和近期打扰历史的确定性评分,再决定静默记下、下次顺手一提、进入伙伴动态或主动通知
31
+ - 心跳硬性排除伙伴记忆、挂念数据库、会话归档及其备份,不向无关主题扩散
32
+ - 未送达的重要提醒会保留并安全补发;普通对话开始时只召回与当前消息相关的延迟提及
33
+ - 每次实际巡察结束后在原伙伴会话写入一条可折叠的活动说明,便于核验工具、结果摘要、最终判断和通知状态,不生成伙伴回复气泡
34
+ - 可配置静默时段、检查间隔、每日通知上限、失败退避和手动检查;失败后不会早于正常检查间隔重试
27
35
  - 修改伙伴身份或能力时清理该伙伴的渠道 Session,防止新旧人格串联
28
36
  - Windows、macOS、Linux 兼容的原子状态写入
29
37
 
@@ -38,7 +46,7 @@ dsh plugin --profile web add @lemoncat7/dsh-partner
38
46
  本地压缩包:
39
47
 
40
48
  ```bash
41
- dsh plugin --profile web add ./lemoncat7-dsh-partner-1.0.0.tgz
49
+ dsh plugin --profile web add ./lemoncat7-dsh-partner-<version>.tgz
42
50
  ```
43
51
 
44
52
  重启对应 DSH profile 后,左侧「空间」上方会出现「伙伴」。打开伙伴面板,创建或选择伙伴,再进入「微信」扫码。
@@ -74,7 +82,8 @@ dsh plugin --profile web add ./lemoncat7-dsh-partner-1.0.0.tgz
74
82
  ## 数据与安全
75
83
 
76
84
  - 普通状态:`statePath` 指向的 JSON 文件。
77
- - 伙伴记忆:`<defaultCwd>/partners/<伙伴 ID>/memory/`,按联系人隔离保存每日完整对话归档、每日回顾和结构化长期记忆;相关记忆会在对话与心跳前按需召回,默认永久保留。
85
+ - 伙伴记忆:`<defaultCwd>/partners/<伙伴 ID>/memory/`,按联系人隔离保存每日完整对话归档、每日回顾和结构化长期记忆;相关记忆只在正常对话中按需召回,默认永久保留。
86
+ - 伙伴挂念:`<defaultCwd>/partners/<伙伴 ID>/concerns/concerns.sqlite`,保存挂念生命周期、变化观察、去重指纹和打扰决策;SQLite 使用 WAL、索引和串行事务写入。
78
87
  - 敏感凭据:DSH Credential Store,scope 为 `dsh-partner-weixin`。
79
88
  - 管理 API:默认 `/partner-local/v1`,仅接受同源请求;写操作还要求 `X-DSH-Partner-Request: 1`。
80
89
  - 微信机器人只能绑定一个伙伴;联系人上下文不会跨机器人、伙伴或其他联系人共享。
@@ -9,7 +9,10 @@ import type { Companion, ChannelSession } from './domain.js';
9
9
  import { PartnerStore } from './store.js';
10
10
  import type { PartnerMemoryStore } from './memory-store.js';
11
11
  import type { MemoryReflectionService } from './memory-reflection.js';
12
+ import { type ConcernObservation, type ConcernObservationCandidate, type PartnerConcern } from './concern-domain.js';
13
+ import type { PartnerConcernStore } from './concern-store.js';
12
14
  import type { PartnerInboundMessage, PartnerOutboundAttachment, PartnerReply } from './channel-message.js';
15
+ import { type ConcernSource } from './concern-sources.js';
13
16
  type RuntimeContext = Context & {
14
17
  agents: Context['agents'];
15
18
  agentDefaultModel: AgentDefaultModelConfig;
@@ -17,28 +20,53 @@ type RuntimeContext = Context & {
17
20
  workspaceRegistry: WorkspaceRegistry;
18
21
  tools: ToolRuntime;
19
22
  };
23
+ export interface HeartbeatToolTrace {
24
+ name: string;
25
+ input: string;
26
+ output: string;
27
+ startedAt: number;
28
+ completedAt: number;
29
+ status: 'completed' | 'failed';
30
+ }
31
+ export interface HeartbeatExecution {
32
+ concerns: PartnerConcern[];
33
+ candidates: ConcernObservationCandidate[];
34
+ observations?: ConcernObservation[];
35
+ startedAt: number;
36
+ completedAt: number;
37
+ output?: string;
38
+ error?: string;
39
+ tools: HeartbeatToolTrace[];
40
+ }
41
+ export type HeartbeatOutcome = 'notified' | 'quiet' | 'failed';
20
42
  export declare class PartnerAgentRuntime {
21
43
  private readonly ctx;
22
44
  private readonly store;
23
45
  private readonly defaultCwd;
24
46
  private readonly memory?;
25
47
  private readonly reflection?;
48
+ private readonly concerns?;
26
49
  private readonly handles;
27
50
  private readonly queues;
28
51
  private readonly heartbeatQueues;
29
52
  private readonly steeringQueues;
30
53
  private readonly workspaces;
31
- constructor(ctx: RuntimeContext, store: PartnerStore, defaultCwd: string, memory?: PartnerMemoryStore | undefined, reflection?: MemoryReflectionService | undefined);
54
+ constructor(ctx: RuntimeContext, store: PartnerStore, defaultCwd: string, memory?: PartnerMemoryStore | undefined, reflection?: MemoryReflectionService | undefined, concerns?: PartnerConcernStore | undefined);
32
55
  reply(companion: Companion, channelId: string, userId: string, message: PartnerInboundMessage): Promise<PartnerReply>;
33
56
  steer(companion: Companion, channelId: string, userId: string, message: PartnerInboundMessage): Promise<boolean>;
34
57
  private deliverSteering;
35
58
  prepareSession(routeId: string): Promise<ChannelSession>;
36
59
  isArchived(route: ChannelSession): boolean;
37
60
  renewSession(routeId: string): Promise<ChannelSession>;
38
- heartbeat(companion: Companion, route: ChannelSession): Promise<string | undefined>;
61
+ heartbeat(companion: Companion, route: ChannelSession, concerns: PartnerConcern[]): Promise<HeartbeatExecution>;
62
+ persistKnowledgeObservations(companion: Companion, route: ChannelSession, concerns: PartnerConcern[], observations: ConcernObservation[]): Promise<void>;
63
+ concernSources(companion: Companion, query?: string): Promise<ConcernSource[]>;
39
64
  private runHeartbeatWhenIdle;
40
65
  observeSessionEvent(session: Session, event: SessionEvent): Promise<void>;
41
- private driveHeartbeat;
66
+ recordConcernCreatedNotice(companion: Companion, scopeId: string, concerns: PartnerConcern[]): Promise<boolean>;
67
+ private driveScopedHeartbeat;
68
+ private driveEphemeralHeartbeat;
69
+ recordHeartbeatActivity(companion: Companion, route: ChannelSession, execution: HeartbeatExecution, outcome: HeartbeatOutcome, deliveryError?: string): Promise<void>;
42
70
  resetCompanion(companionId: string): Promise<void>;
43
71
  reloadCompanion(companionId: string): Promise<void>;
44
72
  private releaseCompanion;
@@ -63,6 +91,17 @@ export declare function resolveAgentOptions(defaultModel: AgentDefaultModelConfi
63
91
  export declare function canReuseSession(route: ChannelSession, companionId: string, archivedSessionIds: readonly SessionId[]): boolean;
64
92
  export declare function renewedSession(previous: ChannelSession, now?: number): ChannelSession;
65
93
  export declare function partnerCwd(root: string, companionId: string): string;
94
+ interface HeartbeatToolPolicy {
95
+ allowed: Set<string>;
96
+ }
97
+ export declare function heartbeatToolPolicy(concerns: PartnerConcern[], available: Iterable<string>): HeartbeatToolPolicy;
98
+ export declare function parseConcernObservations(raw: string, allowedIds: Set<string>): ConcernObservationCandidate[];
99
+ interface HeartbeatFileAccess {
100
+ root: string;
101
+ writable: Set<string>;
102
+ }
103
+ export declare function heartbeatToolDenial(name: string, argumentsValue: unknown, access?: HeartbeatFileAccess): string | undefined;
104
+ export declare function renderHeartbeatActivity(execution: HeartbeatExecution, outcome: HeartbeatOutcome, deliveryError?: string): string;
66
105
  export declare function renderToolProtocol(): string;
67
106
  export {};
68
107
  //# sourceMappingURL=agent-runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"agent-runtime.d.ts","sourceRoot":"","sources":["../src/agent-runtime.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,sCAAsC,CAAA;AACnF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,gCAAgC,CAAA;AAIlE,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACzD,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AACrE,OAAO,KAAK,EAAa,iBAAiB,EAAE,MAAM,4BAA4B,CAAA;AAC9E,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAA;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,aAAa,CAAA;AAC5D,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAA;AACzC,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,mBAAmB,CAAA;AAC3D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAA;AAErE,OAAO,KAAK,EAAE,qBAAqB,EAAE,yBAAyB,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAA;AAG1G,KAAK,cAAc,GAAG,OAAO,GAAG;IAC9B,MAAM,EAAE,OAAO,CAAC,QAAQ,CAAC,CAAA;IACzB,iBAAiB,EAAE,uBAAuB,CAAA;IAC1C,YAAY,EAAE,YAAY,CAAA;IAC1B,iBAAiB,EAAE,iBAAiB,CAAA;IACpC,KAAK,EAAE,WAAW,CAAA;CACnB,CAAA;AAID,qBAAa,mBAAmB;IAQ5B,OAAO,CAAC,QAAQ,CAAC,GAAG;IACpB,OAAO,CAAC,QAAQ,CAAC,KAAK;IACtB,OAAO,CAAC,QAAQ,CAAC,UAAU;IAC3B,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAC;IACxB,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAC;IAX9B,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAiC;IACzD,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAmC;IAC1D,OAAO,CAAC,QAAQ,CAAC,eAAe,CAAiD;IACjF,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAmC;IAClE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAAwC;gBAGhD,GAAG,EAAE,cAAc,EACnB,KAAK,EAAE,YAAY,EACnB,UAAU,EAAE,MAAM,EAClB,MAAM,CAAC,EAAE,kBAAkB,YAAA,EAC3B,UAAU,CAAC,EAAE,uBAAuB,YAAA;IAGjD,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,YAAY,CAAC;IASrH,KAAK,CAAC,SAAS,EAAE,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,OAAO,CAAC;YASxG,eAAe;IAevB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAS9D,UAAU,CAAC,KAAK,EAAE,cAAc,GAAG,OAAO;IAIpC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,cAAc,CAAC;IAWtD,SAAS,CAAC,SAAS,EAAE,SAAS,EAAE,KAAK,EAAE,cAAc,GAAG,OAAO,CAAC,MAAM,GAAG,SAAS,CAAC;YAS3E,oBAAoB;IAY5B,mBAAmB,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;YAsBjE,cAAc;IAuBtB,cAAc,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAKlD,eAAe,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;YAI3C,gBAAgB;IASxB,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAU9C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;YAOd,KAAK;YAyBL,cAAc;YAwBd,aAAa;YAoBb,WAAW;YA0DX,aAAa;CAS5B;AAMD,wBAAsB,0BAA0B,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,yBAAyB,EAAE,CAAC,CAiChH;AAYD,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,SAAS,YAAY,EAAE,EAAE,GAAG,EAAE,OAAO,CAAC,YAAY,EAAE;IAAE,IAAI,EAAE,UAAU,CAAA;CAAE,CAAC,GAAG,SAAS,YAAY,EAAE,CAY9I;AAED,wBAAgB,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAAoC;AAS1G,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,uBAAuB,EAAE,SAAS,EAAE,SAAS;;;;EAM9F;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,cAAc,EAAE,WAAW,EAAE,MAAM,EAAE,kBAAkB,EAAE,SAAS,SAAS,EAAE,GAAG,OAAO,CAE7H;AAED,wBAAgB,cAAc,CAAC,QAAQ,EAAE,cAAc,EAAE,GAAG,SAAa,GAAG,cAAc,CAOzF;AAED,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAEpE;AAcD,wBAAgB,kBAAkB,IAAI,MAAM,CAS3C"}
1
+ {"version":3,"file":"agent-runtime.d.ts","sourceRoot":"","sources":["../src/agent-runtime.ts"],"names":[],"mappings":"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"}