@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.
- package/README.md +14 -5
- package/lib/agent-runtime.d.ts +42 -3
- package/lib/agent-runtime.d.ts.map +1 -1
- package/lib/agent-runtime.js +523 -40
- 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 +29 -2
- 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 +43 -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 +461 -20
- package/lib/client.js.map +3 -3
- package/lib/concern-domain.d.ts +121 -0
- package/lib/concern-domain.d.ts.map +1 -0
- package/lib/concern-domain.js +182 -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 +41 -0
- package/lib/concern-store.d.ts.map +1 -0
- package/lib/concern-store.js +527 -0
- package/lib/concern-store.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/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 +33 -5
- package/lib/index.js.map +1 -1
- package/lib/memory-domain.d.ts +3 -0
- package/lib/memory-domain.d.ts.map +1 -1
- package/lib/memory-reflection.d.ts +8 -3
- package/lib/memory-reflection.d.ts.map +1 -1
- package/lib/memory-reflection.js +66 -13
- package/lib/memory-reflection.js.map +1 -1
- package/lib/memory-store.d.ts +8 -0
- package/lib/memory-store.d.ts.map +1 -1
- package/lib/memory-store.js +27 -0
- package/lib/memory-store.js.map +1 -1
- 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
|
@@ -21,9 +21,17 @@
|
|
|
21
21
|
- 微信在伙伴忙碌时遵循 DSH 全局 `ui-conversation.busyEnter`:`steer` 插入当前轮,`queue` 排入下一轮
|
|
22
22
|
- 按伙伴和微信联系人双重隔离的完整对话归档、每日回顾与结构化长期记忆
|
|
23
23
|
- 对话前按话题召回画像、偏好、任务、事件、关系与短期情绪信号
|
|
24
|
-
-
|
|
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
|
|
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
|
- 微信机器人只能绑定一个伙伴;联系人上下文不会跨机器人、伙伴或其他联系人共享。
|
package/lib/agent-runtime.d.ts
CHANGED
|
@@ -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<
|
|
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
|
-
|
|
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;
|
|
1
|
+
{"version":3,"file":"agent-runtime.d.ts","sourceRoot":"","sources":["../src/agent-runtime.ts"],"names":[],"mappings":"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"}
|