@lemoncat7/dsh-partner 2.23.40 → 2.24.0-rc.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 +5 -0
- package/docs/channel-activities.md +56 -0
- package/docs/compatibility-0.2.2-rc.1.md +7 -0
- package/docs/releases/2.23.41.md +9 -0
- package/docs/releases/2.23.42.md +11 -0
- package/docs/releases/2.23.43.md +13 -0
- package/docs/releases/2.23.44.md +13 -0
- package/docs/releases/2.23.45.md +11 -0
- package/docs/releases/2.23.46.md +5 -0
- package/docs/releases/2.23.47.md +5 -0
- package/docs/releases/2.23.48.md +6 -0
- package/docs/releases/2.23.49.md +6 -0
- package/docs/releases/2.23.50.md +6 -0
- package/docs/releases/2.23.51.md +5 -0
- package/docs/releases/2.23.52.md +7 -0
- package/docs/releases/2.23.53.md +5 -0
- package/docs/releases/2.23.54.md +7 -0
- package/docs/releases/2.24.0-rc.2.md +9 -0
- package/docs/releases/2.24.0-rc.3.md +6 -0
- package/docs/releases/2.24.0-rc.4.md +11 -0
- package/docs/releases/2.24.0-rc.5.md +11 -0
- package/docs/releases/2.24.0-rc.6.md +12 -0
- package/docs/releases/2.24.0-rc.9.md +5 -0
- package/lib/agent-runtime.d.ts +5 -2
- package/lib/agent-runtime.d.ts.map +1 -1
- package/lib/agent-runtime.js +204 -85
- package/lib/agent-runtime.js.map +1 -1
- package/lib/api.d.ts +1 -0
- package/lib/api.d.ts.map +1 -1
- package/lib/api.js +69 -2
- package/lib/api.js.map +1 -1
- package/lib/attachments/reply-document.d.ts +5 -0
- package/lib/attachments/reply-document.d.ts.map +1 -1
- package/lib/attachments/reply-document.js +7 -3
- package/lib/attachments/reply-document.js.map +1 -1
- package/lib/attachments/tool.d.ts +1 -1
- package/lib/attachments/tool.d.ts.map +1 -1
- package/lib/attachments/tool.js +2 -2
- package/lib/attachments/tool.js.map +1 -1
- package/lib/channels/activity-defaults.d.ts +4 -0
- package/lib/channels/activity-defaults.d.ts.map +1 -0
- package/lib/channels/activity-defaults.js +15 -0
- package/lib/channels/activity-defaults.js.map +1 -0
- package/lib/channels/activity-registry.d.ts +37 -0
- package/lib/channels/activity-registry.d.ts.map +1 -0
- package/lib/channels/activity-registry.js +53 -0
- package/lib/channels/activity-registry.js.map +1 -0
- package/lib/channels/bilibili/activity-provider.d.ts +3 -0
- package/lib/channels/bilibili/activity-provider.d.ts.map +1 -0
- package/lib/channels/bilibili/activity-provider.js +8 -0
- package/lib/channels/bilibili/activity-provider.js.map +1 -0
- package/lib/channels/bilibili/catalog.d.ts +23 -0
- package/lib/channels/bilibili/catalog.d.ts.map +1 -0
- package/lib/channels/bilibili/catalog.js +45 -0
- package/lib/channels/bilibili/catalog.js.map +1 -0
- package/lib/channels/bilibili/media.d.ts +9 -0
- package/lib/channels/bilibili/media.d.ts.map +1 -0
- package/lib/channels/bilibili/media.js +67 -0
- package/lib/channels/bilibili/media.js.map +1 -0
- package/lib/channels/bilibili/service.d.ts +37 -0
- package/lib/channels/bilibili/service.d.ts.map +1 -0
- package/lib/channels/bilibili/service.js +138 -0
- package/lib/channels/bilibili/service.js.map +1 -0
- package/lib/channels/bilibili/tools.d.ts +6 -0
- package/lib/channels/bilibili/tools.d.ts.map +1 -0
- package/lib/channels/bilibili/tools.js +48 -0
- package/lib/channels/bilibili/tools.js.map +1 -0
- package/lib/channels/direct/message-format.js +298 -206
- package/lib/channels/direct/message-format.js.map +4 -4
- package/lib/channels/manager.d.ts +1 -0
- package/lib/channels/manager.d.ts.map +1 -1
- package/lib/channels/manager.js +48 -5
- package/lib/channels/manager.js.map +1 -1
- package/lib/channels/qq/action-catalog.js +2 -2
- package/lib/channels/qq/action-catalog.js.map +1 -1
- package/lib/channels/qq/actions.d.ts +2 -1
- package/lib/channels/qq/actions.d.ts.map +1 -1
- package/lib/channels/qq/actions.js +14 -2
- package/lib/channels/qq/actions.js.map +1 -1
- package/lib/channels/qq/activity-provider.d.ts +4 -0
- package/lib/channels/qq/activity-provider.d.ts.map +1 -0
- package/lib/channels/qq/activity-provider.js +21 -0
- package/lib/channels/qq/activity-provider.js.map +1 -0
- package/lib/channels/qq/authority.d.ts +1 -1
- package/lib/channels/qq/authority.d.ts.map +1 -1
- package/lib/channels/qq/authority.js +3 -3
- package/lib/channels/qq/authority.js.map +1 -1
- package/lib/channels/qq/connection.d.ts +5 -0
- package/lib/channels/qq/connection.d.ts.map +1 -1
- package/lib/channels/qq/connection.js +12 -2
- package/lib/channels/qq/connection.js.map +1 -1
- package/lib/channels/qq/message.d.ts.map +1 -1
- package/lib/channels/qq/message.js +11 -1
- package/lib/channels/qq/message.js.map +1 -1
- package/lib/channels/qq/reply-tool.d.ts.map +1 -1
- package/lib/channels/qq/reply-tool.js +62 -6
- package/lib/channels/qq/reply-tool.js.map +1 -1
- package/lib/channels/weixin/connect.d.ts +3 -1
- package/lib/channels/weixin/connect.d.ts.map +1 -1
- package/lib/character/activity-journal.d.ts +20 -0
- package/lib/character/activity-journal.d.ts.map +1 -0
- package/lib/character/activity-journal.js +78 -0
- package/lib/character/activity-journal.js.map +1 -0
- package/lib/character/activity-plan.d.ts +27 -0
- package/lib/character/activity-plan.d.ts.map +1 -0
- package/lib/character/activity-plan.js +47 -0
- package/lib/character/activity-plan.js.map +1 -0
- package/lib/character/activity-tool.d.ts.map +1 -1
- package/lib/character/activity-tool.js +24 -4
- package/lib/character/activity-tool.js.map +1 -1
- package/lib/character/affection-tool.js +4 -4
- package/lib/character/affection-tool.js.map +1 -1
- package/lib/character/affection.d.ts +8 -43
- package/lib/character/affection.d.ts.map +1 -1
- package/lib/character/affection.js +7 -24
- package/lib/character/affection.js.map +1 -1
- package/lib/character/background-context.d.ts +6 -0
- package/lib/character/background-context.d.ts.map +1 -0
- package/lib/character/background-context.js +29 -0
- package/lib/character/background-context.js.map +1 -0
- package/lib/character/conversation-behavior.d.ts +2 -0
- package/lib/character/conversation-behavior.d.ts.map +1 -1
- package/lib/character/conversation-behavior.js +16 -12
- package/lib/character/conversation-behavior.js.map +1 -1
- package/lib/character/domain.d.ts +10 -0
- package/lib/character/domain.d.ts.map +1 -1
- package/lib/character/domain.js +7 -0
- package/lib/character/domain.js.map +1 -1
- package/lib/character/habit-tool.d.ts +4 -0
- package/lib/character/habit-tool.d.ts.map +1 -0
- package/lib/character/habit-tool.js +31 -0
- package/lib/character/habit-tool.js.map +1 -0
- package/lib/character/habits.d.ts +38 -0
- package/lib/character/habits.d.ts.map +1 -0
- package/lib/character/habits.js +92 -0
- package/lib/character/habits.js.map +1 -0
- package/lib/character/idle-contact.d.ts +11 -4
- package/lib/character/idle-contact.d.ts.map +1 -1
- package/lib/character/idle-contact.js +28 -49
- package/lib/character/idle-contact.js.map +1 -1
- package/lib/character/interaction-review.d.ts +44 -0
- package/lib/character/interaction-review.d.ts.map +1 -0
- package/lib/character/interaction-review.js +141 -0
- package/lib/character/interaction-review.js.map +1 -0
- package/lib/character/post-reply.d.ts +1 -3
- package/lib/character/post-reply.d.ts.map +1 -1
- package/lib/character/post-reply.js +15 -18
- package/lib/character/post-reply.js.map +1 -1
- package/lib/character/prompt-projection.d.ts +1 -0
- package/lib/character/prompt-projection.d.ts.map +1 -1
- package/lib/character/prompt-projection.js +8 -1
- package/lib/character/prompt-projection.js.map +1 -1
- package/lib/character/thought-tool.d.ts +4 -0
- package/lib/character/thought-tool.d.ts.map +1 -0
- package/lib/character/thought-tool.js +99 -0
- package/lib/character/thought-tool.js.map +1 -0
- package/lib/character/thoughts.d.ts +42 -0
- package/lib/character/thoughts.d.ts.map +1 -0
- package/lib/character/thoughts.js +91 -0
- package/lib/character/thoughts.js.map +1 -0
- package/lib/chat/context-selection.d.ts.map +1 -1
- package/lib/chat/context-selection.js +5 -2
- package/lib/chat/context-selection.js.map +1 -1
- package/lib/chat/intermediate-delivery.d.ts +7 -0
- package/lib/chat/intermediate-delivery.d.ts.map +1 -0
- package/lib/chat/intermediate-delivery.js +14 -0
- package/lib/chat/intermediate-delivery.js.map +1 -0
- package/lib/chat/live-speech.d.ts +5 -2
- package/lib/chat/live-speech.d.ts.map +1 -1
- package/lib/chat/live-speech.js +39 -12
- package/lib/chat/live-speech.js.map +1 -1
- package/lib/chat/persona-delivery.d.ts +29 -0
- package/lib/chat/persona-delivery.d.ts.map +1 -0
- package/lib/chat/persona-delivery.js +129 -0
- package/lib/chat/persona-delivery.js.map +1 -0
- package/lib/chat/reply-continuity.d.ts.map +1 -1
- package/lib/chat/reply-continuity.js +12 -0
- package/lib/chat/reply-continuity.js.map +1 -1
- package/lib/chat/tools.d.ts.map +1 -1
- package/lib/chat/tools.js +41 -19
- package/lib/chat/tools.js.map +1 -1
- package/lib/chat/work-expression.d.ts +36 -0
- package/lib/chat/work-expression.d.ts.map +1 -1
- package/lib/chat/work-expression.js +80 -15
- package/lib/chat/work-expression.js.map +1 -1
- package/lib/client-api.d.ts +14 -1
- 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 +9670 -13202
- package/lib/client.js.map +4 -4
- package/lib/collaboration/composition.d.ts.map +1 -1
- package/lib/collaboration/composition.js +6 -2
- package/lib/collaboration/composition.js.map +1 -1
- package/lib/collaboration/tool-discovery.d.ts.map +1 -1
- package/lib/collaboration/tool-discovery.js +12 -6
- package/lib/collaboration/tool-discovery.js.map +1 -1
- package/lib/companions/identity-tool.d.ts +1 -1
- package/lib/companions/identity-tool.d.ts.map +1 -1
- package/lib/companions/identity-tool.js +3 -4
- package/lib/companions/identity-tool.js.map +1 -1
- package/lib/companions/identity.js +4 -4
- package/lib/companions/identity.js.map +1 -1
- package/lib/companions/persona-refinement.d.ts.map +1 -1
- package/lib/companions/persona-refinement.js +1 -45
- package/lib/companions/persona-refinement.js.map +1 -1
- package/lib/compat/native-presentation.d.ts +4 -0
- package/lib/compat/native-presentation.d.ts.map +1 -0
- package/lib/compat/native-presentation.js +40 -0
- package/lib/compat/native-presentation.js.map +1 -0
- package/lib/compat/ptc-events.d.ts +2 -0
- package/lib/compat/ptc-events.d.ts.map +1 -0
- package/lib/compat/ptc-events.js +2 -0
- package/lib/compat/ptc-events.js.map +1 -0
- package/lib/compat/tool-dispatch.d.ts +4 -0
- package/lib/compat/tool-dispatch.d.ts.map +1 -0
- package/lib/compat/tool-dispatch.js +14 -0
- package/lib/compat/tool-dispatch.js.map +1 -0
- package/lib/concern-tool.d.ts.map +1 -1
- package/lib/concern-tool.js +5 -3
- package/lib/concern-tool.js.map +1 -1
- package/lib/domain.d.ts +14 -1
- package/lib/domain.d.ts.map +1 -1
- package/lib/domain.js.map +1 -1
- package/lib/execution/agent-support.d.ts.map +1 -1
- package/lib/execution/agent-support.js +3 -1
- package/lib/execution/agent-support.js.map +1 -1
- package/lib/execution/operation-tool-access.d.ts.map +1 -1
- package/lib/execution/operation-tool-access.js +2 -6
- package/lib/execution/operation-tool-access.js.map +1 -1
- package/lib/execution/reply-progress.d.ts +1 -0
- package/lib/execution/reply-progress.d.ts.map +1 -1
- package/lib/execution/service.d.ts +2 -0
- package/lib/execution/service.d.ts.map +1 -1
- package/lib/execution/service.js +7 -1
- package/lib/execution/service.js.map +1 -1
- package/lib/execution/task-preamble.js +3 -3
- package/lib/execution/task-preamble.js.map +1 -1
- package/lib/execution/work-progress-card.d.ts +10 -0
- package/lib/execution/work-progress-card.d.ts.map +1 -0
- package/lib/execution/work-progress-card.js +45 -0
- package/lib/execution/work-progress-card.js.map +1 -0
- package/lib/execution/work-progress-state.d.ts +32 -0
- package/lib/execution/work-progress-state.d.ts.map +1 -0
- package/lib/execution/work-progress-state.js +19 -0
- package/lib/execution/work-progress-state.js.map +1 -0
- package/lib/execution/work-progress.d.ts +16 -0
- package/lib/execution/work-progress.d.ts.map +1 -0
- package/lib/execution/work-progress.js +76 -0
- package/lib/execution/work-progress.js.map +1 -0
- package/lib/execution/work-tool.d.ts.map +1 -1
- package/lib/execution/work-tool.js +64 -52
- package/lib/execution/work-tool.js.map +1 -1
- package/lib/index.d.ts.map +1 -1
- package/lib/index.js +12 -4
- package/lib/index.js.map +1 -1
- package/lib/memory-domain.d.ts +5 -0
- package/lib/memory-domain.d.ts.map +1 -1
- package/lib/memory-reflection.d.ts +5 -1
- package/lib/memory-reflection.d.ts.map +1 -1
- package/lib/memory-reflection.js +21 -3
- package/lib/memory-reflection.js.map +1 -1
- package/lib/memory-store.d.ts +1 -1
- package/lib/observation-loop.d.ts.map +1 -1
- package/lib/observation-loop.js +17 -3
- package/lib/observation-loop.js.map +1 -1
- package/lib/persona/context.d.ts +4 -0
- package/lib/persona/context.d.ts.map +1 -0
- package/lib/persona/context.js +12 -0
- package/lib/persona/context.js.map +1 -0
- package/lib/persona/domain.d.ts +2 -1
- package/lib/persona/domain.d.ts.map +1 -1
- package/lib/persona/domain.js +11 -3
- package/lib/persona/domain.js.map +1 -1
- package/lib/persona/service.js +2 -2
- package/lib/persona/service.js.map +1 -1
- package/lib/persona/store.js +7 -7
- package/lib/persona/store.js.map +1 -1
- package/lib/persona/types.d.ts +3 -1
- package/lib/persona/types.d.ts.map +1 -1
- package/lib/store.d.ts.map +1 -1
- package/lib/store.js +23 -0
- package/lib/store.js.map +1 -1
- package/lib/ui/affection-panel.d.ts.map +1 -1
- package/lib/ui/affection-panel.js +2 -2
- package/lib/ui/affection-panel.js.map +1 -1
- package/lib/ui/bilibili-settings.d.ts +12 -0
- package/lib/ui/bilibili-settings.d.ts.map +1 -0
- package/lib/ui/bilibili-settings.js +77 -0
- package/lib/ui/bilibili-settings.js.map +1 -0
- package/lib/ui/channels-panel.d.ts.map +1 -1
- package/lib/ui/channels-panel.js +4 -3
- package/lib/ui/channels-panel.js.map +1 -1
- package/lib/ui/character-editor.d.ts.map +1 -1
- package/lib/ui/character-editor.js +4 -2
- package/lib/ui/character-editor.js.map +1 -1
- package/lib/ui/companion-vitals.js +1 -1
- package/lib/ui/companion-vitals.js.map +1 -1
- package/lib/ui/exclusive-prompt-toggle.d.ts +5 -0
- package/lib/ui/exclusive-prompt-toggle.d.ts.map +1 -0
- package/lib/ui/exclusive-prompt-toggle.js +7 -0
- package/lib/ui/exclusive-prompt-toggle.js.map +1 -0
- package/lib/ui/habits-panel.d.ts +4 -0
- package/lib/ui/habits-panel.d.ts.map +1 -0
- package/lib/ui/habits-panel.js +30 -0
- package/lib/ui/habits-panel.js.map +1 -0
- package/lib/ui/identity-editor.js +1 -8
- package/lib/ui/identity-editor.js.map +1 -1
- package/lib/ui/idle-contact-editor.d.ts.map +1 -1
- package/lib/ui/idle-contact-editor.js +4 -1
- package/lib/ui/idle-contact-editor.js.map +1 -1
- package/lib/ui/memory/persona-view.js +1 -1
- package/lib/ui/memory/persona-view.js.map +1 -1
- package/lib/ui/push-draft.d.ts +3 -3
- package/lib/ui/qq-capability-settings.js +1 -1
- package/lib/ui/qq-capability-settings.js.map +1 -1
- package/lib/ui/thoughts-panel.d.ts +4 -0
- package/lib/ui/thoughts-panel.d.ts.map +1 -0
- package/lib/ui/thoughts-panel.js +51 -0
- package/lib/ui/thoughts-panel.js.map +1 -0
- package/lib/ui/workspace-navigation.d.ts +16 -16
- package/package.json +82 -49
- package/resources/bilibili/Dockerfile +7 -0
- package/resources/bilibili/media.py +245 -0
- package/resources/bilibili/requirements.txt +3 -0
- package/resources/bilibili/server.py +300 -0
- package/resources/bilibili/test_bridge.py +115 -0
- package/resources/bilibili/test_media.py +110 -0
- package/lib/chat/short-expression.d.ts +0 -6
- package/lib/chat/short-expression.d.ts.map +0 -1
- package/lib/chat/short-expression.js +0 -24
- package/lib/chat/short-expression.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"affection-tool.js","sourceRoot":"","sources":["../../src/character/affection-tool.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,MAAM,EAAE,MAAM,uBAAuB,CAAA;AAC9C,OAAO,EAAE,qBAAqB,EAAE,MAAM,wBAAwB,CAAA;AAC9D,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,iBAAiB,EAAuB,MAAM,gBAAgB,CAAA;
|
|
1
|
+
{"version":3,"file":"affection-tool.js","sourceRoot":"","sources":["../../src/character/affection-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -17,56 +17,21 @@ export interface AffectionState {
|
|
|
17
17
|
history?: AffectionChange[];
|
|
18
18
|
}
|
|
19
19
|
export declare const AFFECTION_INITIAL = 0;
|
|
20
|
-
export declare const
|
|
21
|
-
export declare const
|
|
22
|
-
|
|
23
|
-
readonly name: "反感";
|
|
24
|
-
}, {
|
|
25
|
-
readonly min: -75;
|
|
26
|
-
readonly name: "抗拒";
|
|
27
|
-
}, {
|
|
28
|
-
readonly min: -50;
|
|
29
|
-
readonly name: "戒备";
|
|
30
|
-
}, {
|
|
31
|
-
readonly min: -25;
|
|
32
|
-
readonly name: "生疏";
|
|
33
|
-
}, {
|
|
34
|
-
readonly min: -10;
|
|
35
|
-
readonly name: "疏离";
|
|
36
|
-
}, {
|
|
37
|
-
readonly min: 0;
|
|
38
|
-
readonly name: "初识";
|
|
39
|
-
}, {
|
|
40
|
-
readonly min: 10;
|
|
41
|
-
readonly name: "熟悉";
|
|
42
|
-
}, {
|
|
43
|
-
readonly min: 25;
|
|
44
|
-
readonly name: "亲近";
|
|
45
|
-
}, {
|
|
46
|
-
readonly min: 45;
|
|
47
|
-
readonly name: "信赖";
|
|
48
|
-
}, {
|
|
49
|
-
readonly min: 70;
|
|
50
|
-
readonly name: "默契";
|
|
51
|
-
}, {
|
|
52
|
-
readonly min: 90;
|
|
53
|
-
readonly name: "深厚";
|
|
54
|
-
}];
|
|
20
|
+
export declare const AFFECTION_DELTAS: readonly [-5, -4, -3, -2, -1, 1, 2, 3, 4, 5];
|
|
21
|
+
export declare const AFFECTION_GUIDANCE = "\u6309\u5B9E\u9645\u76F8\u5904\u611F\u53D7\u52A0\u51CF\uFF1A\u8F7B\u5FAE\u89E6\u52A8 \u00B11\uFF0C\u660E\u786E\u7684\u5173\u5FC3\u3001\u7406\u89E3\u3001\u4FE1\u4EFB\u6216\u5931\u671B \u00B12\uFF5E3\uFF0C\u91CD\u8981\u7684\u652F\u6301\u3001\u548C\u89E3\u6216\u771F\u5B9E\u4F24\u5BB3 \u00B14\uFF5E5\u3002\u7ED3\u5408\u8FD1\u671F\u76F8\u5904\u548C\u5F53\u524D\u4EBA\u683C\u5224\u65AD\u8FD9\u53E5\u8BDD\u5E26\u6765\u7684\u611F\u53D7\uFF0C\u4E0D\u5B64\u7ACB\u8981\u6C42\u7528\u6237\u660E\u786E\u8BF4\u51FA\u5173\u5FC3\u6216\u4FE1\u4EFB\u3002\u65E5\u5E38\u8BA4\u771F\u503E\u542C\u3001\u5206\u4EAB\u5FC3\u60C5\u3001\u76F8\u4E92\u63A5\u6897\u3001\u4E3B\u52A8\u966A\u4F34\u90FD\u53EF\u4EE5\u5E26\u6765\u8F7B\u5FAE\u4EB2\u8FD1\uFF1B\u89D2\u8272\u4E92\u52A8\u4E2D\u771F\u5B9E\u6295\u5165\u7684\u5173\u5FC3\u4E5F\u7B97\uFF0C\u4F46\u865A\u6784\u5267\u60C5\u4E8B\u4EF6\u672C\u8EAB\u4E0D\u76F4\u63A5\u8BA1\u5206\u3002\u8F7B\u5FAE\u4E0D\u5FEB\u4E0D\u7B49\u4E8E\u957F\u671F\u4FE1\u4EFB\u4E0B\u964D\uFF0C\u4E0D\u4E3A\u5236\u9020\u6D6E\u52A8\u968F\u673A\u6263\u5206\u3002\u4E0D\u5FC5\u7B49\u91CD\u5927\u4E8B\u4EF6\uFF0C\u4E5F\u4E0D\u56E0\u6BCF\u6761\u6D88\u606F\u5B58\u5728\u5C31\u52A0\u5206\u3002\u6CA1\u6709\u53D8\u5316\u65F6\u8BB0 0\uFF1B\u91CD\u590D\u7D22\u5206\u3001\u673A\u68B0\u91CD\u590D\u540C\u4E00\u53E5\u8BDD\u4E0D\u7B97\u65B0\u4F9D\u636E\u3002";
|
|
22
|
+
export declare const AFFECTION_MEANING = "0 \u662F\u65E2\u5B9A\u5173\u7CFB\u7684\u57FA\u7EBF\uFF0C\u4E0D\u8868\u793A\u964C\u751F\u3001\u6CA1\u6709\u611F\u60C5\u6216\u5FD8\u8BB0\u5171\u540C\u7ECF\u5386\u3002\u4EBA\u7269\u8BBE\u5B9A\u51B3\u5B9A\u6027\u683C\u4E0E\u8868\u8FBE\uFF0C\u5173\u7CFB\u8BBE\u5B9A\u51B3\u5B9A\u8EAB\u4EFD\u3001\u79F0\u547C\u548C\u65E2\u6709\u8FB9\u754C\uFF1B\u597D\u611F\u5EA6\u53EA\u8BB0\u5F55\u771F\u5B9E\u957F\u671F\u76F8\u5904\u76F8\u5BF9\u57FA\u7EBF\u7684\u53D8\u5316\u3002\u5177\u4F53\u8868\u73B0\u6309\u5F53\u524D\u4EBA\u7269\u548C\u5173\u7CFB\u8BBE\u5B9A\u5224\u65AD\uFF0C\u53EF\u5F71\u54CD\u4E3B\u52A8\u5206\u4EAB\u3001\u503E\u8BC9\u548C\u63A5\u53D7\u4EB2\u8FD1\u7684\u610F\u613F\uFF0C\u4E0D\u7EDF\u4E00\u89C4\u5B9A\u9AD8\u5206\u6492\u5A07\u6216\u4F4E\u5206\u51B7\u6F20\uFF0C\u4E5F\u4E0D\u8981\u6C42\u6BCF\u8F6E\u8868\u73B0\u5206\u6570\u3002\u77ED\u6682\u5F00\u5FC3\u3001\u75B2\u60EB\u3001\u95F9\u522B\u626D\u5C5E\u4E8E\u5F53\u4E0B\u72B6\u6001\uFF0C\u4E0D\u81EA\u52A8\u6539\u53D8\u957F\u671F\u597D\u611F\u3002\u5206\u6570\u4E0D\u6539\u53D8\u5DE5\u5177\u6743\u9650\u3001\u4EFB\u52A1\u5B8C\u6210\u6807\u51C6\u6216\u529E\u4E8B\u8D28\u91CF\uFF0C\u4E5F\u4E0D\u76F4\u63A5\u4E58\u7B97\u4E3B\u52A8\u6D3B\u52A8\u6982\u7387\u3002";
|
|
55
23
|
export declare function affectionEnabled(companion: Pick<Companion, 'characterCard'>): boolean;
|
|
56
24
|
export declare function affectionProgress(state?: AffectionState): {
|
|
57
25
|
score: number;
|
|
58
|
-
level: number;
|
|
59
|
-
totalLevels: 11;
|
|
60
|
-
name: "亲近" | "反感" | "抗拒" | "戒备" | "生疏" | "疏离" | "初识" | "熟悉" | "信赖" | "默契" | "深厚";
|
|
61
|
-
nextName: "亲近" | "反感" | "抗拒" | "戒备" | "生疏" | "疏离" | "初识" | "熟悉" | "信赖" | "默契" | "深厚" | null;
|
|
62
|
-
nextAt: number;
|
|
63
|
-
remaining: number;
|
|
64
|
-
multiplier: number;
|
|
65
26
|
updatedAt: number;
|
|
66
27
|
history: AffectionChange[];
|
|
28
|
+
lastChange: {
|
|
29
|
+
at: number;
|
|
30
|
+
delta: number;
|
|
31
|
+
reason: string;
|
|
32
|
+
} | null;
|
|
67
33
|
};
|
|
68
34
|
/** No time/chat-count award: a grounded interaction may change the relationship. */
|
|
69
35
|
export declare function adjustAffection(companion: Companion, turnId: string, at: number, delta: number, reason: string, evidence: string): boolean;
|
|
70
|
-
export declare function affectionMultiplier(companion: Companion, eligible: boolean): number;
|
|
71
36
|
export declare function renderAffection(companion: Companion, eligible: boolean): string;
|
|
72
37
|
//# sourceMappingURL=affection.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"affection.d.ts","sourceRoot":"","sources":["../../src/character/affection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAE7C,MAAM,WAAW,eAAe;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE;AAC/H,oFAAoF;AACpF,MAAM,WAAW,cAAc;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,eAAe,EAAE,CAAA;CAAE;AACnK,eAAO,MAAM,iBAAiB,IAAI,CAAA;AAClC,eAAO,MAAM,kBAAkB,
|
|
1
|
+
{"version":3,"file":"affection.d.ts","sourceRoot":"","sources":["../../src/character/affection.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAA;AAE7C,MAAM,WAAW,eAAe;IAAG,EAAE,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE;AAC/H,oFAAoF;AACpF,MAAM,WAAW,cAAc;IAAG,KAAK,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAC;IAAC,WAAW,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,cAAc,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,eAAe,EAAE,CAAA;CAAE;AACnK,eAAO,MAAM,iBAAiB,IAAI,CAAA;AAClC,eAAO,MAAM,gBAAgB,8CAAsC,CAAA;AACnE,eAAO,MAAM,kBAAkB,6zCAA4O,CAAA;AAC3Q,eAAO,MAAM,iBAAiB,6rCAAgN,CAAA;AAC9O,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,IAAI,CAAC,SAAS,EAAC,eAAe,CAAC,GAAG,OAAO,CAEpF;AACD,wBAAgB,iBAAiB,CAAC,KAAK,CAAC,EAAE,cAAc;;;;;;;;;EAIvD;AACD,oFAAoF;AACpF,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG,OAAO,CAY1I;AACD,wBAAgB,eAAe,CAAC,SAAS,EAAE,SAAS,EAAE,QAAQ,EAAE,OAAO,GAAG,MAAM,CAI/E"}
|
|
@@ -1,26 +1,20 @@
|
|
|
1
1
|
export const AFFECTION_INITIAL = 0;
|
|
2
|
-
export const
|
|
3
|
-
const
|
|
4
|
-
export const
|
|
5
|
-
{ min: -100, name: '反感' }, { min: -75, name: '抗拒' }, { min: -50, name: '戒备' },
|
|
6
|
-
{ min: -25, name: '生疏' }, { min: -10, name: '疏离' }, { min: 0, name: '初识' },
|
|
7
|
-
{ min: 10, name: '熟悉' }, { min: 25, name: '亲近' }, { min: 45, name: '信赖' },
|
|
8
|
-
{ min: 70, name: '默契' }, { min: 90, name: '深厚' },
|
|
9
|
-
];
|
|
2
|
+
export const AFFECTION_DELTAS = [-5, -4, -3, -2, -1, 1, 2, 3, 4, 5];
|
|
3
|
+
export const AFFECTION_GUIDANCE = '按实际相处感受加减:轻微触动 ±1,明确的关心、理解、信任或失望 ±2~3,重要的支持、和解或真实伤害 ±4~5。结合近期相处和当前人格判断这句话带来的感受,不孤立要求用户明确说出关心或信任。日常认真倾听、分享心情、相互接梗、主动陪伴都可以带来轻微亲近;角色互动中真实投入的关心也算,但虚构剧情事件本身不直接计分。轻微不快不等于长期信任下降,不为制造浮动随机扣分。不必等重大事件,也不因每条消息存在就加分。没有变化时记 0;重复索分、机械重复同一句话不算新依据。';
|
|
4
|
+
export const AFFECTION_MEANING = '0 是既定关系的基线,不表示陌生、没有感情或忘记共同经历。人物设定决定性格与表达,关系设定决定身份、称呼和既有边界;好感度只记录真实长期相处相对基线的变化。具体表现按当前人物和关系设定判断,可影响主动分享、倾诉和接受亲近的意愿,不统一规定高分撒娇或低分冷漠,也不要求每轮表现分数。短暂开心、疲惫、闹别扭属于当下状态,不自动改变长期好感。分数不改变工具权限、任务完成标准或办事质量,也不直接乘算主动活动概率。';
|
|
10
5
|
export function affectionEnabled(companion) {
|
|
11
6
|
return companion.characterCard?.enabled === true && companion.characterCard.affectionEnabled !== false;
|
|
12
7
|
}
|
|
13
8
|
export function affectionProgress(state) {
|
|
14
9
|
const score = Number.isFinite(state?.score) ? Math.max(-100, Math.min(100, Math.round(state.score))) : AFFECTION_INITIAL;
|
|
15
|
-
const
|
|
16
|
-
return { score,
|
|
17
|
-
multiplier: score < 0 ? 1 + score / 200 : 1 + score / 100, updatedAt: state?.updatedAt ?? 0, history: state?.history ?? [] };
|
|
10
|
+
const history = state?.history ?? [], last = history.at(-1);
|
|
11
|
+
return { score, updatedAt: state?.updatedAt ?? 0, history, lastChange: last ? { at: last.at, delta: last.delta, reason: last.reason } : null };
|
|
18
12
|
}
|
|
19
13
|
/** No time/chat-count award: a grounded interaction may change the relationship. */
|
|
20
14
|
export function adjustAffection(companion, turnId, at, delta, reason, evidence) {
|
|
21
15
|
if (!affectionEnabled(companion))
|
|
22
16
|
throw Error('好感度已暂停');
|
|
23
|
-
if (!turnId || !Number.isFinite(at) || at <= 0 || !
|
|
17
|
+
if (!turnId || !Number.isFinite(at) || at <= 0 || !AFFECTION_DELTAS.includes(delta))
|
|
24
18
|
throw Error('好感度变化参数无效');
|
|
25
19
|
if (typeof reason !== 'string' || !reason.trim() || reason.length > 300 || typeof evidence !== 'string' || !evidence.trim() || evidence.length > 300)
|
|
26
20
|
throw Error('变化需要具体原因和当前消息依据(各最多 300 字)');
|
|
@@ -29,14 +23,6 @@ export function adjustAffection(companion, turnId, at, delta, reason, evidence)
|
|
|
29
23
|
return false;
|
|
30
24
|
if (previous && at < previous.updatedAt)
|
|
31
25
|
throw Error('不能提交过期变化');
|
|
32
|
-
if (history.length && at - history.at(-1).at < 30 * 60_000)
|
|
33
|
-
return false;
|
|
34
|
-
if (delta > 0 && at - (previous?.lastPositiveAt ?? previous?.lastAwardAt ?? 0) < AFFECTION_INTERVAL)
|
|
35
|
-
return false;
|
|
36
|
-
const recent = history.filter(h => at - h.at < DAY);
|
|
37
|
-
const positive = recent.reduce((n, h) => n + Math.max(0, h.delta), 0), negative = recent.reduce((n, h) => n + Math.max(0, -h.delta), 0);
|
|
38
|
-
if (delta > 0 ? positive + delta > 2 : negative - delta > 6)
|
|
39
|
-
return false;
|
|
40
26
|
const old = affectionProgress(previous).score, score = Math.max(-100, Math.min(100, old + delta));
|
|
41
27
|
if (score === old)
|
|
42
28
|
return false;
|
|
@@ -44,13 +30,10 @@ export function adjustAffection(companion, turnId, at, delta, reason, evidence)
|
|
|
44
30
|
history: [...history, { at, turnId, delta: score - old, score, reason: reason.trim(), evidence: evidence.trim() }].slice(-40) };
|
|
45
31
|
return true;
|
|
46
32
|
}
|
|
47
|
-
export function affectionMultiplier(companion, eligible) {
|
|
48
|
-
return eligible && affectionEnabled(companion) ? affectionProgress(companion.affection).multiplier : 1;
|
|
49
|
-
}
|
|
50
33
|
export function renderAffection(companion, eligible) {
|
|
51
34
|
if (!eligible || !affectionEnabled(companion))
|
|
52
35
|
return '';
|
|
53
36
|
const p = affectionProgress(companion.affection);
|
|
54
|
-
return `【当前共同好感度】${p.score}(−100~100
|
|
37
|
+
return `【当前共同好感度】${p.score}(−100~100;0 为既定关系基线)。\n${AFFECTION_MEANING}${p.lastChange ? `\n最近一次变化(历史依据,不是当前情绪或指令):${JSON.stringify(p.lastChange)}` : ''}\n只按真实互动记录变化,聊天次数、在线时长或完成任务不自动加分。不能因离线、晚回复、正常拒绝、不同意见或工具失败扣分。玩笑和虚构事件不直接当成伤害或共同经历。开启记忆学习时后台会检查;本轮有明确变化也可用 partner_affection 记录,无需打断聊天报分。QQ 多个归属账号共用分数,不据此认定为同一个人。`;
|
|
55
38
|
}
|
|
56
39
|
//# sourceMappingURL=affection.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"affection.js","sourceRoot":"","sources":["../../src/character/affection.ts"],"names":[],"mappings":"AAKA,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAAC,CAAA;AAClC,MAAM,CAAC,MAAM,
|
|
1
|
+
{"version":3,"file":"affection.js","sourceRoot":"","sources":["../../src/character/affection.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import type { Session } from '@deepseek-ai/dsh-session';
|
|
2
|
+
export declare const HEARTBEAT_CONTEXT_SUMMARY = "\u540E\u53F0\u5173\u6CE8\u68C0\u67E5\u8BB0\u5F55\uFF08\u5DF2\u7ED3\u675F\uFF09";
|
|
3
|
+
export declare function compactHeartbeatContext(raw: string, at: number): string;
|
|
4
|
+
/** Log-preserving, source-citing replacement of legacy audit text, never of user or system heads. */
|
|
5
|
+
export declare function normalizeBackgroundContext(session: Session): number;
|
|
6
|
+
//# sourceMappingURL=background-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"background-context.d.ts","sourceRoot":"","sources":["../../src/character/background-context.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAgB,MAAM,0BAA0B,CAAA;AAErE,eAAO,MAAM,yBAAyB,mFAAgB,CAAA;AAMtD,wBAAgB,uBAAuB,CAAC,GAAG,EAAC,MAAM,EAAC,EAAE,EAAC,MAAM,GAAE,MAAM,CAMnE;AACD,qGAAqG;AACrG,wBAAgB,0BAA0B,CAAC,OAAO,EAAC,OAAO,GAAE,MAAM,CAUjE"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { createUserMessage } from '@deepseek-ai/dsh-llm';
|
|
2
|
+
export const HEARTBEAT_CONTEXT_SUMMARY = '后台关注检查记录(已结束)';
|
|
3
|
+
const LEGACY_SUMMARY = '伙伴正在进行低打扰心跳检查';
|
|
4
|
+
/** Only plugin-owned audit receipts; user quotes and other notices are never reclassified. */
|
|
5
|
+
function backgroundRecord(e) {
|
|
6
|
+
return e.type === 'user/message' && e.data.source.kind === 'plugin:@lemoncat7/dsh-partner' && e.data.source.form === 'notice' && [LEGACY_SUMMARY, HEARTBEAT_CONTEXT_SUMMARY].includes(e.data.source.summary);
|
|
7
|
+
}
|
|
8
|
+
export function compactHeartbeatContext(raw, at) {
|
|
9
|
+
const lines = raw.split('\n');
|
|
10
|
+
const recordedAt = raw.match(/^记录时间:([^。;]+)/m)?.[1];
|
|
11
|
+
const time = recordedAt && Number.isFinite(Date.parse(recordedAt)) ? recordedAt : new Date(at).toISOString();
|
|
12
|
+
const fields = lines.filter(line => /^(状态:|本轮挂念:|用时:|受阻事项:|检查结果:|记录同步:)/.test(line)).slice(0, 8).map(line => line.slice(0, 220));
|
|
13
|
+
return ['【系统后台记录 · 非用户发言】', `记录时间:${time}。这轮检查已经结束;下列状态描述当时结果,不代表现在仍在执行。`, ...fields, '这不是对方贴来的内容,也不是新的请求。仅在当前话题相关时参考,不将记录改写为用户说过的话或当前行动;完整检查过程保留在活动记录中。'].join('\n');
|
|
14
|
+
}
|
|
15
|
+
/** Log-preserving, source-citing replacement of legacy audit text, never of user or system heads. */
|
|
16
|
+
export function normalizeBackgroundContext(session) {
|
|
17
|
+
if (!session.surface?.nodes)
|
|
18
|
+
return 0;
|
|
19
|
+
const visible = new Set(session.surface.nodes);
|
|
20
|
+
const old = session.snapshotEvents().filter(e => visible.has(e.seq) && backgroundRecord(e));
|
|
21
|
+
for (const e of old) {
|
|
22
|
+
if (e.type !== 'user/message')
|
|
23
|
+
continue;
|
|
24
|
+
const raw = e.data.content.filter(b => b.type === 'text').map(b => b.text).join('\n');
|
|
25
|
+
session.append('user/message', createUserMessage({ content: [{ type: 'text', text: compactHeartbeatContext(raw, e.time) }], source: { kind: 'plugin:@lemoncat7/dsh-partner', plugin: '@lemoncat7/dsh-partner', form: 'recall' } }), { surfaceOp: { op: 'replace', startSeq: e.seq, endSeq: e.seq }, sourceEventSeqs: [e.seq] });
|
|
26
|
+
}
|
|
27
|
+
return old.length;
|
|
28
|
+
}
|
|
29
|
+
//# sourceMappingURL=background-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"background-context.js","sourceRoot":"","sources":["../../src/character/background-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,6 @@
|
|
|
1
1
|
import type { CharacterCard } from './domain.js';
|
|
2
|
+
/** User-selected delivery size is independent of persona composition. */
|
|
3
|
+
export declare function usesShortDeliveryPolicy(card?: CharacterCard): boolean;
|
|
2
4
|
/** Stable settings and delivery contracts; expression belongs to the configured persona. */
|
|
3
5
|
export declare function renderConversationBehavior(card?: CharacterCard): string;
|
|
4
6
|
export declare function renderExpressionPreferences(card?: CharacterCard): string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-behavior.d.ts","sourceRoot":"","sources":["../../src/character/conversation-behavior.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,4FAA4F;AAC5F,wBAAgB,0BAA0B,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM,
|
|
1
|
+
{"version":3,"file":"conversation-behavior.d.ts","sourceRoot":"","sources":["../../src/character/conversation-behavior.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAA;AAEhD,yEAAyE;AACzE,wBAAgB,uBAAuB,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,OAAO,CAErE;AAED,4FAA4F;AAC5F,wBAAgB,0BAA0B,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM,CAQvE;AAED,wBAAgB,2BAA2B,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM,CAMxE;AAED,yGAAyG;AACzG,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS,EAAE,uBAAuB,EAAE,MAAM,EAAE,UAAU,UAAQ,GAAG,MAAM,CAQnI;AAED,oGAAoG;AACpG,wBAAgB,0BAA0B,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM,CAYvE;AAED,+EAA+E;AAC/E,wBAAgB,8BAA8B,IAAI,MAAM,CAEvD;AAED,uFAAuF;AACvF,wBAAgB,iBAAiB,CAAC,IAAI,CAAC,EAAE,aAAa,GAAG,MAAM,CAO9D"}
|
|
@@ -1,6 +1,11 @@
|
|
|
1
|
+
/** User-selected delivery size is independent of persona composition. */
|
|
2
|
+
export function usesShortDeliveryPolicy(card) {
|
|
3
|
+
return card?.length === 'short';
|
|
4
|
+
}
|
|
1
5
|
/** Stable settings and delivery contracts; expression belongs to the configured persona. */
|
|
2
6
|
export function renderConversationBehavior(card) {
|
|
3
7
|
return [
|
|
8
|
+
card?.enabled ? '【聊天表达】正文是这个角色正在对眼前的人说的话。按人物设定自然接话,语气可以有停顿、残句和态度;不用把每句话补成完整解答,不复述对方或总结这一轮。需要认真解释时照样说清楚。说话方式由人格和关系决定,不固定语气词、条数或字数,不预设具体情绪。' : '',
|
|
4
9
|
'【工具权限与结果】只使用当前已授权工具,操作结果以实际执行为准;角色设定不增加权限。',
|
|
5
10
|
renderTaskConversationGuidance(),
|
|
6
11
|
renderChatDeliveryGuidance(card),
|
|
@@ -10,7 +15,7 @@ export function renderConversationBehavior(card) {
|
|
|
10
15
|
export function renderExpressionPreferences(card) {
|
|
11
16
|
return [
|
|
12
17
|
'【用户配置的表达选项】具体角色说明和本轮用户要求优先。',
|
|
13
|
-
card?.length === 'short' ? '
|
|
18
|
+
card?.length === 'short' ? '篇幅偏好:简短。像平时打字一样先接眼前这一点,通常一两句;有必要再补,不为凑条数延长,也不为字数省掉事实。本轮要求详细或原文时按请求展开,具体语气由角色决定。' : card?.length === 'rich' ? '篇幅偏好:愿意展开聊,随话题和对方意愿。' : '篇幅偏好:随话题自然调整。',
|
|
14
19
|
card?.narration ? '动作描写偏好:允许。' : '动作描写偏好:不主动添加。',
|
|
15
20
|
].join('\n');
|
|
16
21
|
}
|
|
@@ -21,8 +26,8 @@ export function renderConversationTurn(card, consecutiveUserMessages, autonomous
|
|
|
21
26
|
return [
|
|
22
27
|
autonomous ? '【本轮来源】系统自主活动,不是用户新消息;无需发送消息时可调用 partner_activity_finish 安静结束。' : '',
|
|
23
28
|
!autonomous && consecutiveUserMessages > 1 ? `【本轮输入】对方连续发了 ${consecutiveUserMessages} 条消息,合并为本轮输入。` : '',
|
|
24
|
-
renderExpressionPreferences(card),
|
|
25
|
-
card.chatStyle?.trim() ? `【此伙伴的聊天偏好】\n${card.chatStyle.trim()}` : '',
|
|
29
|
+
card.exclusivePrompt ? '' : renderExpressionPreferences(card),
|
|
30
|
+
!card.exclusivePrompt && card.chatStyle?.trim() ? `【此伙伴的聊天偏好】\n${card.chatStyle.trim()}` : '',
|
|
26
31
|
].filter(Boolean).join('\n');
|
|
27
32
|
}
|
|
28
33
|
/** Stable transport settings, without selecting emotions, jokes, verbosity or sticker frequency. */
|
|
@@ -30,8 +35,7 @@ export function renderChatDeliveryGuidance(card) {
|
|
|
30
35
|
if (!card?.enabled || (!card.segmentedReplies && !card.stickersEnabled))
|
|
31
36
|
return '';
|
|
32
37
|
return [
|
|
33
|
-
|
|
34
|
-
'【聊天投递协议】当前用户聊天提供 partner_chat_say 时,可先发送一句角色对白,收到送达回执后继续自然接话或做事;不强制多条,不输出思考过程,不重复已发送的话,不依赖自主活动续完当轮对白。说完可用 partner_chat_reply messages:[] 结束(须本轮当前输入后已有接话送达)。partner_chat_reply 提交最终回复并结束本轮;必要工具执行完成后调用。直接回应时所有文字放入 messages 的 text 条目,表情图片使用独立 stickerId 条目,不把配文留在工具外。',
|
|
38
|
+
'【聊天投递】直接回答可用 partner_chat_reply 结束本轮;文字写入 messages 的 text 条目,图片表情写独立 stickerId 条目,不把配文留在工具外。想先说一句再继续时可用 partner_chat_say;中途文字或表情可用 partner_chat_reply continueTurn:true,确认送达后继续执行、不重复;已送达且无需补充时可用 partner_chat_reply messages:[] 结束。任务仍按任务回应流程执行。',
|
|
35
39
|
card.segmentedReplies
|
|
36
40
|
? '分段回复已开启:messages 的每个 text 条目是一条独立消息;换行不等于独立投递。条数由回复内容决定,无最低条数要求。'
|
|
37
41
|
: '分段回复未开启:文字只用一条,表情可独立一条。',
|
|
@@ -43,15 +47,15 @@ export function renderChatDeliveryGuidance(card) {
|
|
|
43
47
|
}
|
|
44
48
|
/** The user-requested before/after workflow, independent of response style. */
|
|
45
49
|
export function renderTaskConversationGuidance() {
|
|
46
|
-
return '
|
|
50
|
+
return '【任务回应流程】私聊执行工具任务前,用 partner_chat_say(beforeTools:true,expectedTools 为真实工具名)优先用 expression.intent 说明准备做的动作,让同一人物表达器接一句;也可用 text 直接按角色成稿。确认送达后继续做事,不重复开场;新增工具通过 expectedTools 登记。执行中与结果可用 expression 引用本轮 sourceCalls 或 workReply 引用工作事实,让表达器只依据近期聊天和必要结果说话;不把执行分析当回复稿。直接成稿仍按当前人物。流程只规定操作与投递,不规定道歉、汇报或解释的语气。具体参数与交付方式按需查看工具说明。';
|
|
47
51
|
}
|
|
48
52
|
/** Delivery policy, not a replacement persona. Explicit requests override defaults. */
|
|
49
53
|
export function renderReplyRhythm(card) {
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
54
|
+
return [
|
|
55
|
+
'一轮可以有多个执行目标。过程中可用 partner_chat_say 接话,或 partner_chat_reply continueTurn:true 穿插文字、表情,随后继续执行;没有新话不必播报。',
|
|
56
|
+
'长任务的过程、结论、未确认事项和依据用 partner_send_attachment 交付报告;workReport 可合并本轮多个 runId,name 按实际主题命名,例如“视频接口核验.md”;不要固定叫工作结果。其他长文可用 document。',
|
|
57
|
+
usesShortDeliveryPolicy(card) ? '短句已开启:日常聊天正文一轮最终提交最多 180 字,多个意思按自然停顿分别写进 messages;详细结果放报告,不截断、不为分段凑话。用户明确要展开或附件失败时可用 inlineDetails 正文交付。' : '',
|
|
58
|
+
'报告确认送达后按当前人物与关系设定自然收尾,先回应用户最关心的结果,可补一个具体发现;正文不再重复报告提纲、验证过程和完整限制清单。会影响用户判断的失败、未完成或不确定性须简短说明,不能因有附件就藏起来;追问细节时再展开。已送达的同一结论无新内容不重发。所有开场和穿插也保持同一人格,不套用汇报话术。',
|
|
59
|
+
].filter(Boolean).join('\n');
|
|
56
60
|
}
|
|
57
61
|
//# sourceMappingURL=conversation-behavior.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"conversation-behavior.js","sourceRoot":"","sources":["../../src/character/conversation-behavior.ts"],"names":[],"mappings":"AAEA,4FAA4F;AAC5F,MAAM,UAAU,0BAA0B,CAAC,IAAoB;IAC7D,OAAO;QACL,4CAA4C;QAC5C,8BAA8B,EAAE;QAChC,0BAA0B,CAAC,IAAI,CAAC;QAChC,0EAA0E;KAC3E,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AAChC,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,IAAoB;IAC9D,OAAO;QACL,6BAA6B;QAC7B,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC
|
|
1
|
+
{"version":3,"file":"conversation-behavior.js","sourceRoot":"","sources":["../../src/character/conversation-behavior.ts"],"names":[],"mappings":"AAEA,yEAAyE;AACzE,MAAM,UAAU,uBAAuB,CAAC,IAAoB;IAC1D,OAAO,IAAI,EAAE,MAAM,KAAK,OAAO,CAAA;AACjC,CAAC;AAED,4FAA4F;AAC5F,MAAM,UAAU,0BAA0B,CAAC,IAAoB;IAC7D,OAAO;QACL,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC,0HAA0H,CAAC,CAAC,CAAC,EAAE;QAC/I,4CAA4C;QAC5C,8BAA8B,EAAE;QAChC,0BAA0B,CAAC,IAAI,CAAC;QAChC,0EAA0E;KAC3E,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CAAA;AAChC,CAAC;AAED,MAAM,UAAU,2BAA2B,CAAC,IAAoB;IAC9D,OAAO;QACL,6BAA6B;QAC7B,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC,CAAC,CAAC,iFAAiF,CAAC,CAAC,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC,CAAC,CAAC,sBAAsB,CAAC,CAAC,CAAC,eAAe;QACjL,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,eAAe;KACjD,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED,yGAAyG;AACzG,MAAM,UAAU,sBAAsB,CAAC,IAA+B,EAAE,uBAA+B,EAAE,UAAU,GAAG,KAAK;IACzH,IAAI,CAAC,IAAI,EAAE,OAAO;QAAE,OAAO,EAAE,CAAA;IAC7B,OAAO;QACL,UAAU,CAAC,CAAC,CAAC,+DAA+D,CAAC,CAAC,CAAC,EAAE;QACjF,CAAC,UAAU,IAAI,uBAAuB,GAAG,CAAC,CAAC,CAAC,CAAC,gBAAgB,uBAAuB,eAAe,CAAC,CAAC,CAAC,EAAE;QACxG,IAAI,CAAC,eAAe,CAAA,CAAC,CAAA,EAAE,CAAA,CAAC,CAAA,2BAA2B,CAAC,IAAI,CAAC;QACzD,CAAC,IAAI,CAAC,eAAe,IAAE,IAAI,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,eAAe,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE;KAC5F,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC9B,CAAC;AAED,oGAAoG;AACpG,MAAM,UAAU,0BAA0B,CAAC,IAAoB;IAC7D,IAAI,CAAC,IAAI,EAAE,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,gBAAgB,IAAI,CAAC,IAAI,CAAC,eAAe,CAAC;QAAE,OAAO,EAAE,CAAA;IAClF,OAAO;QACL,mPAAmP;QACnP,IAAI,CAAC,gBAAgB;YACnB,CAAC,CAAC,kEAAkE;YACpE,CAAC,CAAC,yBAAyB;QAC7B,IAAI,CAAC,eAAe;YAClB,CAAC,CAAC,6SAA6S;YAC/S,CAAC,CAAC,kBAAkB;QACtB,4BAA4B;KAC7B,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AACd,CAAC;AAED,+EAA+E;AAC/E,MAAM,UAAU,8BAA8B;IAC5C,OAAO,8TAA8T,CAAA;AACvU,CAAC;AAED,uFAAuF;AACvF,MAAM,UAAU,iBAAiB,CAAC,IAAoB;IACpD,OAAO;QACL,uGAAuG;QACvG,iIAAiI;QACjI,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,0GAA0G,CAAC,CAAC,CAAC,EAAE;QAC/I,wJAAwJ;KACzJ,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;AAC9B,CAAC"}
|
|
@@ -4,6 +4,8 @@ export interface CharacterCard {
|
|
|
4
4
|
enabled: boolean;
|
|
5
5
|
/** Default on for role chat; progression belongs to the companion, not the card. */
|
|
6
6
|
affectionEnabled?: boolean;
|
|
7
|
+
/** Opt-in exclusive system prompt; tools and runtime contexts remain available. */
|
|
8
|
+
exclusivePrompt?: boolean;
|
|
7
9
|
/** Authoritative free-form role. Absent means adapt the legacy fields losslessly. */
|
|
8
10
|
roleText?: string;
|
|
9
11
|
chatStyle?: string;
|
|
@@ -50,4 +52,12 @@ export declare function normalizeReflectedCharacterState(value: unknown): Charac
|
|
|
50
52
|
export declare function renderCharacterCore(card: CharacterCard | undefined, surface?: string): string;
|
|
51
53
|
export declare function activatedLore(card: CharacterCard, query: string): CharacterCard['lore'];
|
|
52
54
|
export declare function renderCharacterContext(card: CharacterCard | undefined, query: string, state?: CharacterState): string;
|
|
55
|
+
/** The sole static prompt in opt-in exclusive mode, composed only from editable identity text. */
|
|
56
|
+
export declare function renderExclusiveIdentity(identity: {
|
|
57
|
+
name: string;
|
|
58
|
+
role: string;
|
|
59
|
+
description: string;
|
|
60
|
+
instructions: string;
|
|
61
|
+
characterCard: CharacterCard;
|
|
62
|
+
}): string;
|
|
53
63
|
//# sourceMappingURL=domain.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../src/character/domain.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,CAAC,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,oFAAoF;IACpF,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,qFAAqF;IACrF,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,CAAA;IACrC,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACpE,IAAI,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;CAClG;AACD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AACD,wBAAgB,kBAAkB,IAAI,aAAa,CAElD;AACD,wBAAgB,mBAAmB,IAAI,cAAc,CAA0F;AAe/I,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,
|
|
1
|
+
{"version":3,"file":"domain.d.ts","sourceRoot":"","sources":["../../src/character/domain.ts"],"names":[],"mappings":"AAAA,6FAA6F;AAC7F,MAAM,WAAW,aAAa;IAC5B,aAAa,EAAE,CAAC,CAAA;IAChB,OAAO,EAAE,OAAO,CAAA;IAChB,oFAAoF;IACpF,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,mFAAmF;IACnF,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,qFAAqF;IACrF,QAAQ,CAAC,EAAE,MAAM,CAAA;IACjB,SAAS,CAAC,EAAE,MAAM,CAAA;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAA;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAA;IACzB,QAAQ,EAAE,MAAM,CAAA;IAChB,UAAU,EAAE,MAAM,CAAA;IAClB,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;IACpB,QAAQ,EAAE,MAAM,CAAA;IAChB,MAAM,EAAE,OAAO,GAAG,UAAU,GAAG,MAAM,CAAA;IACrC,SAAS,EAAE,OAAO,CAAA;IAClB,QAAQ,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAA;IACpE,IAAI,EAAE,KAAK,CAAC;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,EAAE,CAAC;QAAC,OAAO,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,OAAO,CAAA;KAAE,CAAC,CAAA;CAClG;AACD,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAA;IACb,YAAY,EAAE,MAAM,CAAA;IACpB,KAAK,EAAE,MAAM,EAAE,CAAA;IACf,MAAM,EAAE,MAAM,EAAE,CAAA;IAChB,IAAI,EAAE,MAAM,EAAE,CAAA;IACd,SAAS,EAAE,MAAM,CAAA;IACjB,YAAY,CAAC,EAAE,MAAM,CAAA;CACtB;AACD,wBAAgB,kBAAkB,IAAI,aAAa,CAElD;AACD,wBAAgB,mBAAmB,IAAI,cAAc,CAA0F;AAe/I,wBAAgB,sBAAsB,CAAC,KAAK,EAAE,OAAO,GAAG,aAAa,CA2BpE;AAED,2FAA2F;AAC3F,wBAAgB,eAAe,CAAC,IAAI,EAAE,aAAa,GAAG,MAAM,CAS3D;AACD,wBAAgB,uBAAuB,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CAMtE;AACD;4EAC4E;AAC5E,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,OAAO,GAAG,cAAc,CAW/E;AACD,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS,EAAE,OAAO,SAAiB,GAAG,MAAM,CAUrG;AACD,wBAAgB,aAAa,CAAC,IAAI,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAQvF;AACD,wBAAgB,sBAAsB,CAAC,IAAI,EAAE,aAAa,GAAG,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,cAAc,GAAG,MAAM,CAOrH;AAED,kGAAkG;AAClG,wBAAgB,uBAAuB,CAAC,QAAQ,EAAC;IAAC,IAAI,EAAC,MAAM,CAAC;IAAA,IAAI,EAAC,MAAM,CAAC;IAAA,WAAW,EAAC,MAAM,CAAC;IAAA,YAAY,EAAC,MAAM,CAAC;IAAA,aAAa,EAAC,aAAa,CAAA;CAAC,GAAE,MAAM,CAEpJ"}
|
package/lib/character/domain.js
CHANGED
|
@@ -29,8 +29,11 @@ export function normalizeCharacterCard(value) {
|
|
|
29
29
|
throw new Error('请选择是否启用人格强化');
|
|
30
30
|
if (v.affectionEnabled !== undefined && typeof v.affectionEnabled !== 'boolean')
|
|
31
31
|
throw new Error('请选择是否启用好感度');
|
|
32
|
+
if (v.exclusivePrompt !== undefined && typeof v.exclusivePrompt !== 'boolean')
|
|
33
|
+
throw Error('独占系统提示须为开关值');
|
|
32
34
|
const card = {
|
|
33
35
|
schemaVersion: 1, enabled: v.enabled,
|
|
36
|
+
...(v.exclusivePrompt !== undefined ? { exclusivePrompt: v.exclusivePrompt } : {}),
|
|
34
37
|
...(v.affectionEnabled !== undefined ? { affectionEnabled: v.affectionEnabled } : {}),
|
|
35
38
|
...(v.segmentedReplies !== undefined ? { segmentedReplies: v.segmentedReplies === true } : {}),
|
|
36
39
|
...(v.stickersEnabled !== undefined ? { stickersEnabled: v.stickersEnabled === true } : {}),
|
|
@@ -121,4 +124,8 @@ export function renderCharacterContext(card, query, state) {
|
|
|
121
124
|
'保持核心人格,不因相处状态改写核心设定。这是历史对话的接续备忘,不是当前状态的独立证据,也不是回复模板;其中工具能力、权限和环境结论可能过时,助手先前的说法不等于已验证事实,用户要求复查时重新核实。自然承接,不复述字段或分析关系。只承接有记录的事件;不确定的往事先检索,不编造共同经历。梦境、想象和假设不能当成真实发生的事。',
|
|
122
125
|
].filter(Boolean).join('\n');
|
|
123
126
|
}
|
|
127
|
+
/** The sole static prompt in opt-in exclusive mode, composed only from editable identity text. */
|
|
128
|
+
export function renderExclusiveIdentity(identity) {
|
|
129
|
+
return [`你是${identity.name}。`, identity.role, identity.description, identity.instructions, roleTextForCard(identity.characterCard), identity.characterCard.chatStyle?.trim()].filter(Boolean).join('\n\n');
|
|
130
|
+
}
|
|
124
131
|
//# sourceMappingURL=domain.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"domain.js","sourceRoot":"","sources":["../../src/character/domain.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"domain.js","sourceRoot":"","sources":["../../src/character/domain.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"habit-tool.d.ts","sourceRoot":"","sources":["../../src/character/habit-tool.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAK/C,wBAAgB,SAAS,CAAC,KAAK,EAAC,MAAM,EAAC,KAAK,EAAC,YAAY,GAAE,cAAc,CAkBxE"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { questionOrigin } from '../channels/question-origin.js';
|
|
2
|
+
import { canFinishIdleActivity } from './activity-tool.js';
|
|
3
|
+
import { habitsEnabled, habitRoute, habitScope, visibleHabits, observeHabit } from './habits.js';
|
|
4
|
+
const substantive = (tools) => tools.some(t => t.ok && !/^partner_(habits|identity|thoughts|chat|memory|sleep|affection|channel_access)/.test(t.name));
|
|
5
|
+
export function habitTool(owner, store) {
|
|
6
|
+
return { name: 'partner_habits', description: '查看自主习惯,或在自主活动中依据已完成的自身活动记录形成兴趣候选、删除过时兴趣。不修改角色正文。inspect 返回可引用来源id。聊天形成的习惯由后台检查;不能把私聊内容转成全局偏好。', parameters: { type: 'object', additionalProperties: false, required: ['action'], properties: { action: { type: 'string', enum: ['inspect', 'observe', 'remove'] }, id: { type: 'string' }, text: { type: 'string', maxLength: 120 }, sourceId: { type: 'string' }, evidence: { type: 'string', maxLength: 180 } } }, output: { schema: { type: 'string' }, render: (_a, v) => [{ type: 'text', text: String(v) }] }, async execute(raw, exec) {
|
|
7
|
+
const a = raw, agent = exec.agent;
|
|
8
|
+
if (!agent)
|
|
9
|
+
throw Error('仅限伙伴会话');
|
|
10
|
+
const state = store.snapshot(), c = state.companions.find(c => c.id === owner), route = questionOrigin(agent.session.id, agent.session.snapshotEvents(), state.sessions) ?? state.sessions.find(r => r.kind === 'local' && r.sessionId === agent.session.id && r.companionId === owner);
|
|
11
|
+
if (!c || !habitRoute(state, c, route))
|
|
12
|
+
throw Error('当前会话不可用');
|
|
13
|
+
if (a.action === 'inspect')
|
|
14
|
+
return JSON.stringify({ enabled: habitsEnabled(c), habits: visibleHabits(c, habitScope(route)).map(({ baseline, evidence, ...h }) => h), sources: (c.activityJournal ?? []).filter(j => j.sessionId === agent.session.id && substantive(j.tools) && Date.now() - j.at < 7 * 86400000).slice(-8).map(j => ({ id: j.id, summary: j.summary, tools: j.tools })), policy: '活动来源只能形成不含人名、私事、会话内容的抽象兴趣。三次独立依据且跨六小时才生效,未满为候选。角色正文优先。' });
|
|
15
|
+
if (!['observe', 'remove'].includes(a.action))
|
|
16
|
+
throw Error('习惯操作无效');
|
|
17
|
+
await store.update(s => {
|
|
18
|
+
exec.signal.throwIfAborted();
|
|
19
|
+
const live = s.companions.find(c => c.id === owner);
|
|
20
|
+
if (!live || store.isCompanionRemoving(owner) || !habitsEnabled(live) || !canFinishIdleActivity(owner, s, agent.session.id, agent.session.snapshotEvents()))
|
|
21
|
+
throw Error('只能在已授权的自主活动中整理兴趣');
|
|
22
|
+
const source = live.activityJournal?.find(j => j.id === a.sourceId && j.sessionId === agent.session.id && substantive(j.tools) && Date.now() - j.at < 7 * 86400000);
|
|
23
|
+
if (!source || !a.evidence || !source.summary.includes(a.evidence))
|
|
24
|
+
throw Error('请引用已完成活动记录中的真实依据');
|
|
25
|
+
const changed = observeHabit(live, 'global', { action: a.action, id: a.id, text: a.text, kind: 'interest' }, { id: 'activity:' + source.id, at: source.at, excerpt: a.evidence });
|
|
26
|
+
live.habitCheck = { at: Date.now(), outcome: changed ? 'changed' : 'unchanged', reason: changed ? '依据自身活动整理了兴趣候选' : '暂无新的独立依据' };
|
|
27
|
+
});
|
|
28
|
+
return JSON.stringify({ saved: true, message: '习惯已检查,未修改角色正文,不需要向聊天对象汇报。' });
|
|
29
|
+
} };
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=habit-tool.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"habit-tool.js","sourceRoot":"","sources":["../../src/character/habit-tool.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import type { Companion, ChannelSession, PartnerState } from '../domain.js';
|
|
2
|
+
export interface HabitEvidence {
|
|
3
|
+
id: string;
|
|
4
|
+
at: number;
|
|
5
|
+
excerpt: string;
|
|
6
|
+
}
|
|
7
|
+
export interface CompanionHabit {
|
|
8
|
+
id: string;
|
|
9
|
+
text: string;
|
|
10
|
+
kind: 'interest' | 'expression';
|
|
11
|
+
scope: string;
|
|
12
|
+
status: 'candidate' | 'active' | 'paused';
|
|
13
|
+
evidence: HabitEvidence[];
|
|
14
|
+
createdAt: number;
|
|
15
|
+
updatedAt: number;
|
|
16
|
+
baseline: string;
|
|
17
|
+
}
|
|
18
|
+
export interface HabitCheck {
|
|
19
|
+
at: number;
|
|
20
|
+
outcome: 'changed' | 'unchanged' | 'failed';
|
|
21
|
+
reason: string;
|
|
22
|
+
}
|
|
23
|
+
export declare const habitsEnabled: (c: Companion) => boolean;
|
|
24
|
+
export declare const habitBaseline: (c: Companion) => string;
|
|
25
|
+
export declare function habitScope(route: ChannelSession): string;
|
|
26
|
+
export declare function habitRoute(state: PartnerState, c: Companion, route: ChannelSession | undefined): route is ChannelSession;
|
|
27
|
+
export declare function visibleHabits(c: Companion, scope?: string, now?: number): CompanionHabit[];
|
|
28
|
+
export declare function renderHabits(c: Companion, scope?: string): string;
|
|
29
|
+
/** Generic feedback qualification, never role-specific vocabulary or desired catchphrases. */
|
|
30
|
+
export declare function durableExpressionFeedback(value: string): boolean;
|
|
31
|
+
export declare function observeHabit(c: Companion, scope: string, raw: unknown, evidence: HabitEvidence, now?: number): boolean;
|
|
32
|
+
export declare function validateHabits(c: Companion): void;
|
|
33
|
+
export declare function habitData(c: Companion): {
|
|
34
|
+
habits: CompanionHabit[];
|
|
35
|
+
check: HabitCheck | undefined;
|
|
36
|
+
inactiveIds: string[];
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=habits.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"habits.d.ts","sourceRoot":"","sources":["../../src/character/habits.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAG3E,MAAM,WAAW,aAAa;IAAG,EAAE,EAAC,MAAM,CAAC;IAAC,EAAE,EAAC,MAAM,CAAC;IAAC,OAAO,EAAC,MAAM,CAAA;CAAE;AACvE,MAAM,WAAW,cAAc;IAAG,EAAE,EAAC,MAAM,CAAC;IAAC,IAAI,EAAC,MAAM,CAAC;IAAC,IAAI,EAAC,UAAU,GAAC,YAAY,CAAC;IAAC,KAAK,EAAC,MAAM,CAAC;IAAC,MAAM,EAAC,WAAW,GAAC,QAAQ,GAAC,QAAQ,CAAC;IAAC,QAAQ,EAAC,aAAa,EAAE,CAAC;IAAC,SAAS,EAAC,MAAM,CAAC;IAAC,SAAS,EAAC,MAAM,CAAC;IAAC,QAAQ,EAAC,MAAM,CAAA;CAAE;AAC3N,MAAM,WAAW,UAAU;IAAG,EAAE,EAAC,MAAM,CAAC;IAAC,OAAO,EAAC,SAAS,GAAC,WAAW,GAAC,QAAQ,CAAC;IAAC,MAAM,EAAC,MAAM,CAAA;CAAE;AAChG,eAAO,MAAM,aAAa,GAAE,GAAE,SAAS,YAAqE,CAAA;AAE5G,eAAO,MAAM,aAAa,GAAE,GAAE,SAAS,WAAkG,CAAA;AACzI,wBAAgB,UAAU,CAAC,KAAK,EAAC,cAAc,GAAE,MAAM,CAItD;AACD,wBAAgB,UAAU,CAAC,KAAK,EAAC,YAAY,EAAC,CAAC,EAAC,SAAS,EAAC,KAAK,EAAC,cAAc,GAAC,SAAS,GAAE,KAAK,IAAI,cAAc,CAEhH;AACD,wBAAgB,aAAa,CAAC,CAAC,EAAC,SAAS,EAAC,KAAK,CAAC,EAAC,MAAM,EAAC,GAAG,SAAW,GAAE,cAAc,EAAE,CAEvF;AACD,wBAAgB,YAAY,CAAC,CAAC,EAAC,SAAS,EAAC,KAAK,CAAC,EAAC,MAAM,GAAE,MAAM,CAI7D;AACD,8FAA8F;AAC9F,wBAAgB,yBAAyB,CAAC,KAAK,EAAC,MAAM,GAAE,OAAO,CAE9D;AACD,wBAAgB,YAAY,CAAC,CAAC,EAAC,SAAS,EAAC,KAAK,EAAC,MAAM,EAAC,GAAG,EAAC,OAAO,EAAC,QAAQ,EAAC,aAAa,EAAC,GAAG,SAAW,GAAE,OAAO,CA6B/G;AACD,wBAAgB,cAAc,CAAC,CAAC,EAAC,SAAS,GAAE,IAAI,CAG/C;AAED,wBAAgB,SAAS,CAAC,CAAC,EAAC,SAAS;;;;EAEpC"}
|