@lemoncat7/dsh-partner 1.1.6 → 1.4.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +21 -6
- package/lib/agent-runtime.d.ts +46 -3
- package/lib/agent-runtime.d.ts.map +1 -1
- package/lib/agent-runtime.js +599 -50
- package/lib/agent-runtime.js.map +1 -1
- package/lib/api.d.ts +2 -0
- package/lib/api.d.ts.map +1 -1
- package/lib/api.js +44 -4
- package/lib/api.js.map +1 -1
- package/lib/autonomy.d.ts +2 -7
- package/lib/autonomy.d.ts.map +1 -1
- package/lib/autonomy.js +40 -28
- package/lib/autonomy.js.map +1 -1
- package/lib/channels/manager.d.ts +1 -0
- package/lib/channels/manager.d.ts.map +1 -1
- package/lib/channels/manager.js +11 -3
- package/lib/channels/manager.js.map +1 -1
- package/lib/client-api.d.ts +60 -0
- package/lib/client-api.d.ts.map +1 -1
- package/lib/client-api.js.map +1 -1
- package/lib/client.d.ts.map +1 -1
- package/lib/client.js +1880 -620
- package/lib/client.js.map +4 -4
- package/lib/concern-domain.d.ts +132 -0
- package/lib/concern-domain.d.ts.map +1 -0
- package/lib/concern-domain.js +212 -0
- package/lib/concern-domain.js.map +1 -0
- package/lib/concern-notification.d.ts +6 -0
- package/lib/concern-notification.d.ts.map +1 -0
- package/lib/concern-notification.js +27 -0
- package/lib/concern-notification.js.map +1 -0
- package/lib/concern-sources.d.ts +10 -0
- package/lib/concern-sources.d.ts.map +1 -0
- package/lib/concern-sources.js +81 -0
- package/lib/concern-sources.js.map +1 -0
- package/lib/concern-store.d.ts +68 -0
- package/lib/concern-store.d.ts.map +1 -0
- package/lib/concern-store.js +611 -0
- package/lib/concern-store.js.map +1 -0
- package/lib/concern-tool.d.ts +25 -0
- package/lib/concern-tool.d.ts.map +1 -0
- package/lib/concern-tool.js +145 -0
- package/lib/concern-tool.js.map +1 -0
- package/lib/daily-review.d.ts +3 -1
- package/lib/daily-review.d.ts.map +1 -1
- package/lib/daily-review.js +8 -2
- package/lib/daily-review.js.map +1 -1
- package/lib/domain.d.ts +4 -1
- package/lib/domain.d.ts.map +1 -1
- package/lib/domain.js +23 -0
- package/lib/domain.js.map +1 -1
- package/lib/glass-surface.d.ts +20 -0
- package/lib/glass-surface.d.ts.map +1 -0
- package/lib/glass-surface.js +119 -0
- package/lib/glass-surface.js.map +1 -0
- package/lib/heartbeat.d.ts +10 -2
- package/lib/heartbeat.d.ts.map +1 -1
- package/lib/heartbeat.js +81 -17
- package/lib/heartbeat.js.map +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +36 -5
- package/lib/index.js.map +1 -1
- package/lib/memory-domain.d.ts +39 -7
- package/lib/memory-domain.d.ts.map +1 -1
- package/lib/memory-prompt-context.d.ts +20 -0
- package/lib/memory-prompt-context.d.ts.map +1 -0
- package/lib/memory-prompt-context.js +138 -0
- package/lib/memory-prompt-context.js.map +1 -0
- package/lib/memory-reflection.d.ts +8 -3
- package/lib/memory-reflection.d.ts.map +1 -1
- package/lib/memory-reflection.js +80 -19
- package/lib/memory-reflection.js.map +1 -1
- package/lib/memory-store.d.ts +13 -1
- package/lib/memory-store.d.ts.map +1 -1
- package/lib/memory-store.js +182 -8
- package/lib/memory-store.js.map +1 -1
- package/lib/profile-domain.d.ts +7 -0
- package/lib/profile-domain.d.ts.map +1 -0
- package/lib/profile-domain.js +56 -0
- package/lib/profile-domain.js.map +1 -0
- package/lib/store.d.ts.map +1 -1
- package/lib/store.js +39 -3
- package/lib/store.js.map +1 -1
- package/lib/time-format.d.ts +2 -0
- package/lib/time-format.d.ts.map +1 -0
- package/lib/time-format.js +20 -0
- package/lib/time-format.js.map +1 -0
- package/package.json +3 -1
package/README.md
CHANGED
|
@@ -20,10 +20,24 @@
|
|
|
20
20
|
- DSH 运行中发起选择题或自由提问时同步到微信;联系人回复序号、选项文字或自定义答案后,原 Agent 继续执行
|
|
21
21
|
- 微信在伙伴忙碌时遵循 DSH 全局 `ui-conversation.busyEnter`:`steer` 插入当前轮,`queue` 排入下一轮
|
|
22
22
|
- 按伙伴和微信联系人双重隔离的完整对话归档、每日回顾与结构化长期记忆
|
|
23
|
-
-
|
|
24
|
-
-
|
|
25
|
-
-
|
|
26
|
-
-
|
|
23
|
+
- 逐轮记忆提炼使用有界的专用上下文,只发送当前轮、相关记忆的精简视图与最近证据;每日终审保留当天每轮的双向代表片段,未进入提示的旧数据仍由存储层完整保留
|
|
24
|
+
- 从明确对话中形成可审计的联系人画像;可靠画像作为会话理解基线,偏好、任务、事件、关系与短期情绪信号继续按当前话题召回
|
|
25
|
+
- 人物画像按联系人隔离,使用固定长期槽位和证据阈值;用户可查看来源、手动修正或删除,已确认内容不会再被自动提炼覆盖
|
|
26
|
+
- 每日终审只保存有证据的记忆关系;强关系可把一跳关联记忆补入当前话题召回,并在关系审计中解释召回依据
|
|
27
|
+
- 冲突关系不会被合并成用户事实;仅在当前话题相关时提示伙伴指出差异并请求确认,所有关系仍严格按联系人隔离
|
|
28
|
+
- 对话提炼与每日终审会识别尚未闭环、反复不满意、采用临时方案或正在等待外部结果的「伙伴挂念」;长期记忆只提供理解背景,不直接生成巡检任务
|
|
29
|
+
- 伙伴会话额外提供一个紧凑的 `partner_concern_suggest` 候选工具;它只在伙伴自己的会话且长期记忆开启时可见,不会增加普通 DSH 会话的工具提示开销
|
|
30
|
+
- 工具候选和轮后提炼共用确定性准入策略:必须引用当前用户原话,满足优先级、置信度和综合分数门槛;每批最多新增两条,同主题只更新不重复创建
|
|
31
|
+
- 用户也可以自然地交代一件需要留意的事,并通过「继续留意、提高关注、已经解决、别管这个」控制它的生命周期;明确说出目标的“停止关注”会确定性更新状态,不依赖模型事后猜测
|
|
32
|
+
- 伙伴从记忆提炼或每日终审中自动新建关注后,会在当前伙伴会话中发出一次创建通知,并同步到对应的微信渠道,方便及时检查或移除
|
|
33
|
+
- 心跳只查询到期挂念,使用独立内存推理作用域观察上次检查后的变化;无到期事项时不会调用模型
|
|
34
|
+
- 心跳根据挂念选择当前可用的安全来源,并在来源内部逐层缩小范围:知识库按“找库→库内搜索→读取条目”,本地按“确定范围→定位文件/内容→读取证据”;发现阶段有独立软截止、单工具超时和整轮安全上限
|
|
35
|
+
- 挂念明确关联 `@文件` 时,伙伴可先读取再以最小修改持续维护该文件;写权限精确限定到已关联的现存文件,不能创建其他文件或触碰伙伴私有存储
|
|
36
|
+
- 发现结果先保存为 Observation,经过去重、相关性、新鲜度、可行动性和近期打扰历史的确定性评分,再决定静默记下、下次顺手一提、进入伙伴动态或主动通知
|
|
37
|
+
- 心跳硬性排除伙伴记忆、挂念数据库、会话归档及其备份,不向无关主题扩散
|
|
38
|
+
- 未送达的重要提醒会保留并安全补发;普通对话开始时只召回与当前消息相关的延迟提及
|
|
39
|
+
- 每次实际巡察结束后在原伙伴会话写入一条可折叠的活动说明,便于核验工具、结果摘要、最终判断和通知状态,不生成伙伴回复气泡
|
|
40
|
+
- 可配置静默时段、检查间隔、每日通知上限、失败退避和手动检查;失败后不会早于正常检查间隔重试
|
|
27
41
|
- 修改伙伴身份或能力时清理该伙伴的渠道 Session,防止新旧人格串联
|
|
28
42
|
- Windows、macOS、Linux 兼容的原子状态写入
|
|
29
43
|
|
|
@@ -38,7 +52,7 @@ dsh plugin --profile web add @lemoncat7/dsh-partner
|
|
|
38
52
|
本地压缩包:
|
|
39
53
|
|
|
40
54
|
```bash
|
|
41
|
-
dsh plugin --profile web add ./lemoncat7-dsh-partner
|
|
55
|
+
dsh plugin --profile web add ./lemoncat7-dsh-partner-<version>.tgz
|
|
42
56
|
```
|
|
43
57
|
|
|
44
58
|
重启对应 DSH profile 后,左侧「空间」上方会出现「伙伴」。打开伙伴面板,创建或选择伙伴,再进入「微信」扫码。
|
|
@@ -74,7 +88,8 @@ dsh plugin --profile web add ./lemoncat7-dsh-partner-1.0.0.tgz
|
|
|
74
88
|
## 数据与安全
|
|
75
89
|
|
|
76
90
|
- 普通状态:`statePath` 指向的 JSON 文件。
|
|
77
|
-
- 伙伴记忆:`<defaultCwd>/partners/<伙伴 ID>/memory
|
|
91
|
+
- 伙伴记忆:`<defaultCwd>/partners/<伙伴 ID>/memory/`,按联系人隔离保存每日完整对话归档、人物画像、每日回顾、结构化长期记忆和有证据的记忆关系;画像按版本进入联系人会话,其他记忆按当前话题与一跳强关系召回,默认永久保留。
|
|
92
|
+
- 伙伴挂念:`<defaultCwd>/partners/<伙伴 ID>/concerns/concerns.sqlite`,保存挂念生命周期、变化观察、去重指纹、候选审计和打扰决策;候选审计保留 90 天,SQLite 使用 WAL、索引和串行事务写入。
|
|
78
93
|
- 敏感凭据:DSH Credential Store,scope 为 `dsh-partner-weixin`。
|
|
79
94
|
- 管理 API:默认 `/partner-local/v1`,仅接受同源请求;写操作还要求 `X-DSH-Partner-Request: 1`。
|
|
80
95
|
- 微信机器人只能绑定一个伙伴;联系人上下文不会跨机器人、伙伴或其他联系人共享。
|
package/lib/agent-runtime.d.ts
CHANGED
|
@@ -8,8 +8,12 @@ import type { ToolRuntime } from '@deepseek-ai/dsh-tools';
|
|
|
8
8
|
import type { Companion, ChannelSession } from './domain.js';
|
|
9
9
|
import { PartnerStore } from './store.js';
|
|
10
10
|
import type { PartnerMemoryStore } from './memory-store.js';
|
|
11
|
+
import type { MemoryContextConnection } from './memory-domain.js';
|
|
11
12
|
import type { MemoryReflectionService } from './memory-reflection.js';
|
|
13
|
+
import { type ConcernObservation, type ConcernObservationCandidate, type PartnerConcern } from './concern-domain.js';
|
|
14
|
+
import type { PartnerConcernStore } from './concern-store.js';
|
|
12
15
|
import type { PartnerInboundMessage, PartnerOutboundAttachment, PartnerReply } from './channel-message.js';
|
|
16
|
+
import { type ConcernSource } from './concern-sources.js';
|
|
13
17
|
type RuntimeContext = Context & {
|
|
14
18
|
agents: Context['agents'];
|
|
15
19
|
agentDefaultModel: AgentDefaultModelConfig;
|
|
@@ -17,28 +21,54 @@ type RuntimeContext = Context & {
|
|
|
17
21
|
workspaceRegistry: WorkspaceRegistry;
|
|
18
22
|
tools: ToolRuntime;
|
|
19
23
|
};
|
|
24
|
+
export interface HeartbeatToolTrace {
|
|
25
|
+
name: string;
|
|
26
|
+
input: string;
|
|
27
|
+
output: string;
|
|
28
|
+
startedAt: number;
|
|
29
|
+
completedAt: number;
|
|
30
|
+
status: 'completed' | 'failed';
|
|
31
|
+
}
|
|
32
|
+
export interface HeartbeatExecution {
|
|
33
|
+
concerns: PartnerConcern[];
|
|
34
|
+
candidates: ConcernObservationCandidate[];
|
|
35
|
+
observations?: ConcernObservation[];
|
|
36
|
+
startedAt: number;
|
|
37
|
+
completedAt: number;
|
|
38
|
+
output?: string;
|
|
39
|
+
error?: string;
|
|
40
|
+
tools: HeartbeatToolTrace[];
|
|
41
|
+
}
|
|
42
|
+
export type HeartbeatOutcome = 'notified' | 'quiet' | 'failed';
|
|
20
43
|
export declare class PartnerAgentRuntime {
|
|
21
44
|
private readonly ctx;
|
|
22
45
|
private readonly store;
|
|
23
46
|
private readonly defaultCwd;
|
|
24
47
|
private readonly memory?;
|
|
25
48
|
private readonly reflection?;
|
|
49
|
+
private readonly concerns?;
|
|
26
50
|
private readonly handles;
|
|
27
51
|
private readonly queues;
|
|
28
52
|
private readonly heartbeatQueues;
|
|
29
53
|
private readonly steeringQueues;
|
|
30
54
|
private readonly workspaces;
|
|
31
|
-
|
|
55
|
+
private readonly profileVersions;
|
|
56
|
+
constructor(ctx: RuntimeContext, store: PartnerStore, defaultCwd: string, memory?: PartnerMemoryStore | undefined, reflection?: MemoryReflectionService | undefined, concerns?: PartnerConcernStore | undefined);
|
|
32
57
|
reply(companion: Companion, channelId: string, userId: string, message: PartnerInboundMessage): Promise<PartnerReply>;
|
|
33
58
|
steer(companion: Companion, channelId: string, userId: string, message: PartnerInboundMessage): Promise<boolean>;
|
|
34
59
|
private deliverSteering;
|
|
35
60
|
prepareSession(routeId: string): Promise<ChannelSession>;
|
|
36
61
|
isArchived(route: ChannelSession): boolean;
|
|
37
62
|
renewSession(routeId: string): Promise<ChannelSession>;
|
|
38
|
-
heartbeat(companion: Companion, route: ChannelSession): Promise<
|
|
63
|
+
heartbeat(companion: Companion, route: ChannelSession, concerns: PartnerConcern[]): Promise<HeartbeatExecution>;
|
|
64
|
+
persistKnowledgeObservations(companion: Companion, route: ChannelSession, concerns: PartnerConcern[], observations: ConcernObservation[]): Promise<void>;
|
|
65
|
+
concernSources(companion: Companion, query?: string): Promise<ConcernSource[]>;
|
|
39
66
|
private runHeartbeatWhenIdle;
|
|
40
67
|
observeSessionEvent(session: Session, event: SessionEvent): Promise<void>;
|
|
41
|
-
|
|
68
|
+
recordConcernCreatedNotice(companion: Companion, scopeId: string, concerns: PartnerConcern[]): Promise<boolean>;
|
|
69
|
+
private driveScopedHeartbeat;
|
|
70
|
+
private driveEphemeralHeartbeat;
|
|
71
|
+
recordHeartbeatActivity(companion: Companion, route: ChannelSession, execution: HeartbeatExecution, outcome: HeartbeatOutcome, deliveryError?: string): Promise<void>;
|
|
42
72
|
resetCompanion(companionId: string): Promise<void>;
|
|
43
73
|
reloadCompanion(companionId: string): Promise<void>;
|
|
44
74
|
private releaseCompanion;
|
|
@@ -48,6 +78,7 @@ export declare class PartnerAgentRuntime {
|
|
|
48
78
|
private persistInbound;
|
|
49
79
|
private ensureSession;
|
|
50
80
|
private ensureAgent;
|
|
81
|
+
private injectProfileUpdate;
|
|
51
82
|
private attachSession;
|
|
52
83
|
}
|
|
53
84
|
export declare function extractOutboundAttachments(text: string, cwd: string): Promise<PartnerOutboundAttachment[]>;
|
|
@@ -55,6 +86,7 @@ export declare function completedTurnEvents(events: readonly SessionEvent[], end
|
|
|
55
86
|
type: 'turn/end';
|
|
56
87
|
}>): readonly SessionEvent[];
|
|
57
88
|
export declare function memoryScope(channelId: string, userId: string): string;
|
|
89
|
+
export declare function renderMemory(entries: NonNullable<Awaited<ReturnType<PartnerMemoryStore['recall']>>>, connections?: MemoryContextConnection[]): string;
|
|
58
90
|
export declare function resolveAgentOptions(defaultModel: AgentDefaultModelConfig, companion: Companion): {
|
|
59
91
|
model: string;
|
|
60
92
|
provider: string;
|
|
@@ -63,6 +95,17 @@ export declare function resolveAgentOptions(defaultModel: AgentDefaultModelConfi
|
|
|
63
95
|
export declare function canReuseSession(route: ChannelSession, companionId: string, archivedSessionIds: readonly SessionId[]): boolean;
|
|
64
96
|
export declare function renewedSession(previous: ChannelSession, now?: number): ChannelSession;
|
|
65
97
|
export declare function partnerCwd(root: string, companionId: string): string;
|
|
98
|
+
interface HeartbeatToolPolicy {
|
|
99
|
+
allowed: Set<string>;
|
|
100
|
+
}
|
|
101
|
+
export declare function heartbeatToolPolicy(concerns: PartnerConcern[], available: Iterable<string>): HeartbeatToolPolicy;
|
|
102
|
+
export declare function parseConcernObservations(raw: string, allowedIds: Set<string>): ConcernObservationCandidate[];
|
|
103
|
+
interface HeartbeatFileAccess {
|
|
104
|
+
root: string;
|
|
105
|
+
writable: Set<string>;
|
|
106
|
+
}
|
|
107
|
+
export declare function heartbeatToolDenial(name: string, argumentsValue: unknown, access?: HeartbeatFileAccess): string | undefined;
|
|
108
|
+
export declare function renderHeartbeatActivity(execution: HeartbeatExecution, outcome: HeartbeatOutcome, deliveryError?: string): string;
|
|
66
109
|
export declare function renderToolProtocol(): string;
|
|
67
110
|
export {};
|
|
68
111
|
//# 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;
|
|
1
|
+
{"version":3,"file":"agent-runtime.d.ts","sourceRoot":"","sources":["../src/agent-runtime.ts"],"names":[],"mappings":"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"}
|