@lemoncat7/dsh-partner 2.21.5 → 2.21.11

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 (124) hide show
  1. package/docs/THIRD_PARTY_LICENSES.md +1 -1
  2. package/docs/releases/2.21.10.md +5 -0
  3. package/docs/releases/2.21.11.md +7 -0
  4. package/docs/releases/2.21.6.md +6 -0
  5. package/docs/releases/2.21.7.md +11 -0
  6. package/docs/releases/2.21.8.md +9 -0
  7. package/docs/releases/2.21.9.md +6 -0
  8. package/lib/agent-runtime.d.ts +8 -1
  9. package/lib/agent-runtime.d.ts.map +1 -1
  10. package/lib/agent-runtime.js +62 -21
  11. package/lib/agent-runtime.js.map +1 -1
  12. package/lib/api.d.ts.map +1 -1
  13. package/lib/api.js +2 -1
  14. package/lib/api.js.map +1 -1
  15. package/lib/channels/direct/message-format.js +127 -127
  16. package/lib/channels/direct/message-format.js.map +1 -1
  17. package/lib/channels/qq/actions.js +1 -1
  18. package/lib/channels/qq/actions.js.map +1 -1
  19. package/lib/channels/qq/authority.d.ts +2 -1
  20. package/lib/channels/qq/authority.d.ts.map +1 -1
  21. package/lib/channels/qq/authority.js +4 -4
  22. package/lib/channels/qq/authority.js.map +1 -1
  23. package/lib/channels/qq/identity-binding.d.ts +1 -1
  24. package/lib/channels/qq/identity-binding.d.ts.map +1 -1
  25. package/lib/channels/qq/identity-binding.js +5 -3
  26. package/lib/channels/qq/identity-binding.js.map +1 -1
  27. package/lib/channels/qq/reply-tool.d.ts.map +1 -1
  28. package/lib/channels/qq/reply-tool.js +15 -4
  29. package/lib/channels/qq/reply-tool.js.map +1 -1
  30. package/lib/channels/qq/transport.js +1 -1
  31. package/lib/channels/qq/transport.js.map +1 -1
  32. package/lib/character/conversation-behavior.d.ts +3 -3
  33. package/lib/character/conversation-behavior.d.ts.map +1 -1
  34. package/lib/character/conversation-behavior.js +23 -22
  35. package/lib/character/conversation-behavior.js.map +1 -1
  36. package/lib/character/fatigue.d.ts +15 -0
  37. package/lib/character/fatigue.d.ts.map +1 -0
  38. package/lib/character/fatigue.js +37 -0
  39. package/lib/character/fatigue.js.map +1 -0
  40. package/lib/character/identity-guide.d.ts +38 -1
  41. package/lib/character/identity-guide.d.ts.map +1 -1
  42. package/lib/character/identity-guide.js +7 -1
  43. package/lib/character/identity-guide.js.map +1 -1
  44. package/lib/character/idle-contact.d.ts +1 -1
  45. package/lib/character/idle-contact.d.ts.map +1 -1
  46. package/lib/character/idle-contact.js +13 -2
  47. package/lib/character/idle-contact.js.map +1 -1
  48. package/lib/character/persona-templates.d.ts +23 -0
  49. package/lib/character/persona-templates.d.ts.map +1 -0
  50. package/lib/character/persona-templates.js +33 -0
  51. package/lib/character/persona-templates.js.map +1 -0
  52. package/lib/character/role-reference-data.d.ts.map +1 -0
  53. package/lib/character/role-reference-data.js.map +1 -0
  54. package/lib/character/sleep-service.d.ts +10 -1
  55. package/lib/character/sleep-service.d.ts.map +1 -1
  56. package/lib/character/sleep-service.js +156 -75
  57. package/lib/character/sleep-service.js.map +1 -1
  58. package/lib/character/sleep.d.ts +25 -3
  59. package/lib/character/sleep.d.ts.map +1 -1
  60. package/lib/character/sleep.js +15 -6
  61. package/lib/character/sleep.js.map +1 -1
  62. package/lib/client.d.ts.map +1 -1
  63. package/lib/client.js +3436 -3298
  64. package/lib/client.js.map +4 -4
  65. package/lib/collaboration/tool-discovery.d.ts +1 -1
  66. package/lib/collaboration/tool-discovery.d.ts.map +1 -1
  67. package/lib/collaboration/tool-discovery.js +4 -3
  68. package/lib/collaboration/tool-discovery.js.map +1 -1
  69. package/lib/companions/identity-tool.d.ts +1 -1
  70. package/lib/companions/identity-tool.d.ts.map +1 -1
  71. package/lib/companions/identity-tool.js +9 -7
  72. package/lib/companions/identity-tool.js.map +1 -1
  73. package/lib/companions/management-tool.d.ts +1 -1
  74. package/lib/companions/management-tool.d.ts.map +1 -1
  75. package/lib/companions/management-tool.js +3 -2
  76. package/lib/companions/management-tool.js.map +1 -1
  77. package/lib/companions/management.d.ts +28 -1
  78. package/lib/companions/management.d.ts.map +1 -1
  79. package/lib/companions/management.js +3 -2
  80. package/lib/companions/management.js.map +1 -1
  81. package/lib/execution/tool-access-adapter.d.ts +3 -0
  82. package/lib/execution/tool-access-adapter.d.ts.map +1 -1
  83. package/lib/execution/tool-access-adapter.js.map +1 -1
  84. package/lib/index.js +2 -3
  85. package/lib/index.js.map +1 -1
  86. package/lib/ui/channels-panel.d.ts.map +1 -1
  87. package/lib/ui/channels-panel.js +2 -1
  88. package/lib/ui/channels-panel.js.map +1 -1
  89. package/lib/ui/character-editor.d.ts +1 -1
  90. package/lib/ui/character-editor.d.ts.map +1 -1
  91. package/lib/ui/character-editor.js +2 -3
  92. package/lib/ui/character-editor.js.map +1 -1
  93. package/lib/ui/companion-deletion.js +1 -1
  94. package/lib/ui/companion-deletion.js.map +1 -1
  95. package/lib/ui/companion-vitals.d.ts +6 -0
  96. package/lib/ui/companion-vitals.d.ts.map +1 -0
  97. package/lib/ui/companion-vitals.js +44 -0
  98. package/lib/ui/companion-vitals.js.map +1 -0
  99. package/lib/ui/identity-editor.d.ts.map +1 -1
  100. package/lib/ui/identity-editor.js +2 -1
  101. package/lib/ui/identity-editor.js.map +1 -1
  102. package/lib/ui/persona-template.d.ts +5 -0
  103. package/lib/ui/persona-template.d.ts.map +1 -0
  104. package/lib/ui/persona-template.js +7 -0
  105. package/lib/ui/persona-template.js.map +1 -0
  106. package/lib/ui/push-draft.d.ts +4 -4
  107. package/lib/ui/qq-channel-settings.d.ts.map +1 -1
  108. package/lib/ui/qq-channel-settings.js +2 -1
  109. package/lib/ui/qq-channel-settings.js.map +1 -1
  110. package/lib/ui/qq-connection-guide.d.ts +2 -0
  111. package/lib/ui/qq-connection-guide.d.ts.map +1 -0
  112. package/lib/ui/qq-connection-guide.js +5 -0
  113. package/lib/ui/qq-connection-guide.js.map +1 -0
  114. package/lib/ui/role-reference.d.ts.map +1 -1
  115. package/lib/ui/role-reference.js +3 -2
  116. package/lib/ui/role-reference.js.map +1 -1
  117. package/lib/ui/sleep-editor.d.ts.map +1 -1
  118. package/lib/ui/sleep-editor.js +15 -5
  119. package/lib/ui/sleep-editor.js.map +1 -1
  120. package/package.json +8 -2
  121. package/lib/ui/role-reference-data.d.ts.map +0 -1
  122. package/lib/ui/role-reference-data.js.map +0 -1
  123. /package/lib/{ui → character}/role-reference-data.d.ts +0 -0
  124. /package/lib/{ui → character}/role-reference-data.js +0 -0
@@ -0,0 +1,37 @@
1
+ import { sleepPolicy } from './sleep.js';
2
+ export const FATIGUE_AWAKE_PER_HOUR = 5;
3
+ export const FATIGUE_SLEEP_PER_HOUR = 15;
4
+ export const INITIAL_FATIGUE = 30;
5
+ const HOUR = 3_600_000;
6
+ const clamp = (n) => Math.max(0, Math.min(100, n));
7
+ /** Integrate actual elapsed time, including a natural wake while the host was offline. */
8
+ export function fatigueValue(c, now = Date.now()) {
9
+ const sample = c.sleepState?.fatigue;
10
+ const value = Number.isFinite(sample?.value) ? clamp(sample.value) : INITIAL_FATIGUE;
11
+ if (!sample || !Number.isFinite(sample.at) || now <= sample.at || !sleepPolicy(c).enabled)
12
+ return value;
13
+ const e = c.sleepState?.episode;
14
+ const sleepEnd = e ? Math.min(e.wakeAt, e.wokeAt ?? now, now) : 0;
15
+ const asleep = e ? Math.max(0, sleepEnd - Math.max(sample.at, e.startedAt)) : 0;
16
+ const awake = Math.max(0, now - sample.at - asleep);
17
+ // Apply sleep first when crossing a wake boundary; do not let negative fatigue offset later wakefulness.
18
+ return Math.round(clamp(clamp(value - asleep / HOUR * FATIGUE_SLEEP_PER_HOUR) + awake / HOUR * FATIGUE_AWAKE_PER_HOUR) * 1_000_000) / 1_000_000;
19
+ }
20
+ export function settleFatigue(c, now = Date.now()) {
21
+ const value = fatigueValue(c, now);
22
+ const state = c.sleepState ??= {};
23
+ state.fatigue = { value, at: Math.max(now, state.fatigue?.at ?? now) };
24
+ return value;
25
+ }
26
+ export function fatigueLabel(value) {
27
+ return value >= 80 ? '困得厉害' : value >= 60 ? '很困了' : value >= 40 ? '有些疲惫' : '精神尚好';
28
+ }
29
+ /** One roll per idle minute; no LLM gate and no fixed bedtime. */
30
+ export function fatigueSleepProbability(value) {
31
+ return value < 40 ? 0 : Math.min(0.3, 0.01 + ((value - 40) / 60) ** 2 * 0.29);
32
+ }
33
+ export function fatigueSleepMinutes(value) {
34
+ return Math.max(20, Math.min(480, Math.round((value - 20) / FATIGUE_SLEEP_PER_HOUR * 60)));
35
+ }
36
+ export function wakeCallsNeeded(value) { return value >= 80 ? 4 : value >= 55 ? 3 : value >= 25 ? 2 : 1; }
37
+ //# sourceMappingURL=fatigue.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"fatigue.js","sourceRoot":"","sources":["../../src/character/fatigue.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,41 @@
1
+ export { PERSONA_TEMPLATES, personaReferenceRequested } from './persona-templates.js';
2
+ export declare const PERSONA_REFERENCE: {
3
+ name: string;
4
+ source: string;
5
+ text: string;
6
+ usage: string;
7
+ };
1
8
  /** Shared authoring guide, loaded on demand. */
2
- export declare const PERSONA_GENERATION_GUIDE = "\u53C2\u8003 qq-bridge \u7684\u5177\u4F53\u53CD\u5E94\u4E0E\u81EA\u7136\u8BED\u611F\uFF0C\u5206\u5F00\u4FDD\u5B58\u4E24\u4EFD\u5185\u5BB9\uFF0C\u4E0D\u590D\u5236\u5B83\u7684\u56FA\u5B9A\u4EBA\u7269\uFF1A\n\u4E00\u3001characterCard.roleText\uFF08\u89D2\u8272\u8BBE\u5B9A\uFF0Cenabled=true\uFF09\uFF1A\n## \u4F60\u662F\u8C01\uFF1A\u89D2\u8272\u81EA\u8EAB\u8EAB\u4EFD\u3001\u5E74\u9F84\u3001\u5174\u8DA3\u4E0E\u52A8\u673A\uFF0C\u4E0D\u5199\u201C\u4F60\u662F\u7528\u6237\u7684\u67D0\u67D0\u201D\u3002\n## \u6027\u683C\u4E0E\u53CD\u5E94\uFF1A\u5BF9\u73A9\u7B11\u3001\u77DB\u76FE\u3001\u56F0\u96BE\u7684\u81EA\u7136\u53CD\u5E94\uFF0C\u4E0D\u9884\u8BBE\u6BCF\u4E2A\u5BF9\u8BDD\u5BF9\u8C61\u4E0E\u81EA\u5DF1\u7684\u5173\u7CFB\u3002\n## \u600E\u4E48\u8BF4\u8BDD\uFF1A\u63AA\u8F9E\u3001\u8282\u594F\u3001\u505C\u6B62\u65F6\u673A\u3001\u907F\u514D\u7684\u8868\u8FBE\uFF1B\u53EF\u9644 3\u20135 \u7EC4\u901A\u7528\u6B63\u53CD\u4F8B\uFF0C\u4E0D\u662F\u771F\u5B9E\u7ECF\u5386\u3002\n\u4E8C\u3001\u9876\u5C42 relationshipText\uFF08\u5173\u7CFB\u8BBE\u5B9A\uFF09\uFF1A\n## \u6211\u4EEC\u7684\u5173\u7CFB\uFF1A\u89D2\u8272\u4E0E\u7528\u6237\u7684\u8EAB\u4EFD\u5173\u7CFB\u3002\n## \u79F0\u547C\u4E0E\u76F8\u5904\uFF1A\u4E13\u5C5E\u79F0\u547C\u3001\u4EB2\u758F\u3001\u4F9D\u8D56\u6216\u504F\u7231\u7684\u5177\u4F53\u8868\u73B0\uFF1B\u6D89\u53CA\u8FD9\u6BB5\u5173\u7CFB\u7684\u793A\u4F8B\u4E5F\u653E\u8FD9\u91CC\u3002\n\u57FA\u672C\u8EAB\u4EFD\u3001\u884C\u4E3A\u51C6\u5219\u3001\u804A\u5929\u504F\u597D\u3001\u80CC\u666F\u8D44\u6599\u4E5F\u53EA\u5199\u901A\u7528\u90E8\u5206\uFF0C\u4E13\u5C5E\u5173\u7CFB\u7EDF\u4E00\u653E relationshipText\u3002\u65E7\u6587\u672C\u6DF7\u5199\u65F6\uFF0C\u5C06\u5173\u7CFB\u5185\u5BB9\u79FB\u5230\u5173\u7CFB\u8BBE\u5B9A\uFF0C\u4FDD\u7559\u5176\u542B\u4E49\uFF0C\u4E0D\u91CD\u590D\u6CE8\u5165\uFF1B\u65E7 characterCard.relationship \u4EC5\u517C\u5BB9\u8BFB\u53D6\uFF0C\u4EE5\u9876\u5C42 relationshipText \u4E3A\u51C6\uFF0C\u7A7A\u5B57\u7B26\u4E32\u8868\u793A\u6E05\u9664\u3002\n\u9ED8\u8BA4\u9002\u914D\u5668\u5408\u5E76\u4E24\u4EFD\uFF1BQQ \u53EA\u53D1\u9001\u89D2\u8272\uFF0C\u53EA\u6709\u771F\u5B9E\u53D1\u9001\u8D26\u53F7\u4E0E\u8BBF\u95EE\u6743\u9650\u4E2D\u7684\u5F52\u5C5E QQ \u5339\u914D\u624D\u9644\u52A0\u5173\u7CFB\u3002\u540C\u4E00\u4E2A QQ \u5728\u79C1\u804A\u548C\u7FA4\u804A\u90FD\u9002\u7528\uFF1B\u6CA1\u6709\u7ED1\u5B9A\u65F6\u4E0D\u9644\u52A0\u5173\u7CFB\u3002\u4E0D\u5F97\u7531\u6635\u79F0\u3001\u81EA\u79F0\u6216\u7FA4\u53F7\u8BA4\u5B9A\u5173\u7CFB\u5BF9\u8C61\uFF0C\u4E5F\u4E0D\u989D\u5916\u5F3A\u5236\u964C\u751F\u4EBA\u51B7\u6DE1\u3002\n\u4FDD\u7559\u672A\u8981\u6C42\u4FEE\u6539\u7684\u8BBE\u7F6E\uFF0C\u4E0D\u6539\u5DE5\u5177\u6743\u9650\u3001\u6388\u6743\u4E0E\u81EA\u4E3B\u6D3B\u52A8\u5F00\u5173\u3002inspect \u8BFB\u53D6 expectedAt \u540E update \u4FDD\u5B58\u751F\u6548\u8EAB\u4EFD\uFF1B\u4E0D\u8981\u53EA\u5C55\u793A\u6587\u6848\u3002\u9875\u9762\u548C AI \u7F16\u8F91\u540C\u4E00\u4EFD\u751F\u6548\u8EAB\u4EFD\uFF1B\u5E76\u53D1\u7F16\u8F91\u5FC5\u987B\u91CD\u65B0\u8BFB\u53D6\u7248\u672C\uFF0C\u4E0D\u8986\u76D6\u7528\u6237\u672A\u4FDD\u5B58\u7684\u4FEE\u6539\u3002";
9
+ export declare const PERSONA_GENERATION_GUIDE = "\u9996\u6B21\u6309\u7528\u6237\u8981\u6C42\u521B\u5EFA\u4EBA\u683C\uFF0C\u6216\u7528\u6237\u660E\u786E\u8981\u6C42\u53C2\u8003\u6A21\u677F\u65F6\uFF0C\u8BFB\u53D6 reference \u52A8\u4F5C\uFF08\u6216 inspect includeReferences=true\uFF09\u8FD4\u56DE\u7684 templates \u4E0E reference.text\u3002\u666E\u901A\u4FEE\u6539\u548C AI \u81EA\u4E3B\u4F18\u5316\u57FA\u4E8E\u5F53\u524D\u8BBE\u5B9A\uFF0C\u4E0D\u5FC5\u8BFB\u6A21\u677F\u6216\u91CD\u65B0\u5957\u7248\u3002\u4E09\u4EFD templates \u5206\u522B\u5BF9\u5E94\u57FA\u672C\u8EAB\u4EFD\u3001\u89D2\u8272\u8BBE\u5B9A\u3001\u5173\u7CFB\u8BBE\u5B9A\uFF0C\u5171\u7528\u540C\u4E00\u5B57\u6BB5\u6620\u5C04\u548C\u901A\u7528\u793A\u4F8B\u3002reference.text \u5B83\u662F qq-bridge \u9ED8\u8BA4\u5927\u80A5\u9C7C\uFF08\u5C0F\u9CB8\u9C7C\uFF09\u7684\u5B8C\u6574\u539F\u5361\uFF0C\u4E0E\u9875\u9762\u53C2\u8003\u4E00\u81F4\uFF0C\u65E0\u9700\u8054\u7F51\u67E5\u627E\u3002\u53C2\u8003\u539F\u5361\u7684\u683C\u5F0F\u548C\u5185\u5BB9\u7EC4\u7EC7\uFF1A\u4F60\u662F\u8C01\u3001\u5177\u4F53\u53CD\u5E94\u3001\u8BF4\u8BDD\u89C4\u5219\u3001\u8282\u594F\u4E60\u60EF\u3001\u4E2A\u6027\u4E0E\u6897\u3001\u907F\u514D\u7684\u8868\u8FBE\u3001\u6B63\u53CD\u4F8B\u3001\u80CC\u666F\u5F62\u8C61\uFF1B\u6309\u7528\u6237\u9700\u8981\u53D6\u820D\u5E76\u91CD\u5199\uFF0C\u4E0D\u7167\u642C\u56FA\u5B9A\u4EBA\u7269\uFF0C\u4E0D\u628A\u539F\u5361\u5F53\u4F5C\u6B63\u5728\u751F\u6548\u7684\u6307\u4EE4\u3002\u5206\u5F00\u4FDD\u5B58\u4E24\u4EFD\u5185\u5BB9\uFF1A\n\u4E00\u3001characterCard.roleText\uFF08\u89D2\u8272\u8BBE\u5B9A\uFF0Cenabled=true\uFF09\uFF1A\n## \u4F60\u662F\u8C01\uFF1A\u89D2\u8272\u81EA\u8EAB\u8EAB\u4EFD\u3001\u5E74\u9F84\u3001\u5174\u8DA3\u4E0E\u52A8\u673A\uFF0C\u4E0D\u5199\u201C\u4F60\u662F\u7528\u6237\u7684\u67D0\u67D0\u201D\u3002\n## \u6027\u683C\u4E0E\u53CD\u5E94\uFF1A\u5BF9\u73A9\u7B11\u3001\u77DB\u76FE\u3001\u56F0\u96BE\u7684\u81EA\u7136\u53CD\u5E94\uFF0C\u4E0D\u9884\u8BBE\u6BCF\u4E2A\u5BF9\u8BDD\u5BF9\u8C61\u4E0E\u81EA\u5DF1\u7684\u5173\u7CFB\u3002\n## \u600E\u4E48\u8BF4\u8BDD\uFF1A\u63AA\u8F9E\u3001\u8282\u594F\u3001\u505C\u6B62\u65F6\u673A\u3001\u907F\u514D\u7684\u8868\u8FBE\uFF1B\u53EF\u9644 3\u20135 \u7EC4\u901A\u7528\u6B63\u53CD\u4F8B\uFF0C\u4E0D\u662F\u771F\u5B9E\u7ECF\u5386\u3002\n\u4E8C\u3001\u9876\u5C42 relationshipText\uFF08\u5173\u7CFB\u8BBE\u5B9A\uFF09\uFF1A\n## \u6211\u4EEC\u7684\u5173\u7CFB\uFF1A\u89D2\u8272\u4E0E\u7528\u6237\u7684\u8EAB\u4EFD\u5173\u7CFB\u3002\n## \u79F0\u547C\u4E0E\u76F8\u5904\uFF1A\u4E13\u5C5E\u79F0\u547C\u3001\u4EB2\u758F\u3001\u4F9D\u8D56\u6216\u504F\u7231\u7684\u5177\u4F53\u8868\u73B0\uFF1B\u6D89\u53CA\u8FD9\u6BB5\u5173\u7CFB\u7684\u793A\u4F8B\u4E5F\u653E\u8FD9\u91CC\u3002\n\u57FA\u672C\u8EAB\u4EFD\u3001\u884C\u4E3A\u51C6\u5219\u3001\u804A\u5929\u504F\u597D\u3001\u80CC\u666F\u8D44\u6599\u4E5F\u53EA\u5199\u901A\u7528\u90E8\u5206\uFF0C\u4E13\u5C5E\u5173\u7CFB\u7EDF\u4E00\u653E relationshipText\u3002\u65E7\u6587\u672C\u6DF7\u5199\u65F6\uFF0C\u5C06\u5173\u7CFB\u5185\u5BB9\u79FB\u5230\u5173\u7CFB\u8BBE\u5B9A\uFF0C\u4FDD\u7559\u5176\u542B\u4E49\uFF0C\u4E0D\u91CD\u590D\u6CE8\u5165\uFF1B\u65E7 characterCard.relationship \u4EC5\u517C\u5BB9\u8BFB\u53D6\uFF0C\u4EE5\u9876\u5C42 relationshipText \u4E3A\u51C6\uFF0C\u7A7A\u5B57\u7B26\u4E32\u8868\u793A\u6E05\u9664\u3002\n\u9ED8\u8BA4\u9002\u914D\u5668\u5408\u5E76\u4E24\u4EFD\uFF1BQQ \u53EA\u53D1\u9001\u89D2\u8272\uFF0C\u53EA\u6709\u771F\u5B9E\u53D1\u9001\u8D26\u53F7\u4E0E\u8BBF\u95EE\u6743\u9650\u4E2D\u7684\u5F52\u5C5E QQ \u5339\u914D\u624D\u9644\u52A0\u5173\u7CFB\u3002\u540C\u4E00\u4E2A QQ \u5728\u79C1\u804A\u548C\u7FA4\u804A\u90FD\u9002\u7528\uFF1B\u6CA1\u6709\u7ED1\u5B9A\u65F6\u4E0D\u9644\u52A0\u5173\u7CFB\u3002\u4E0D\u5F97\u7531\u6635\u79F0\u3001\u81EA\u79F0\u6216\u7FA4\u53F7\u8BA4\u5B9A\u5173\u7CFB\u5BF9\u8C61\uFF0C\u4E5F\u4E0D\u989D\u5916\u5F3A\u5236\u964C\u751F\u4EBA\u51B7\u6DE1\u3002\n\u4FDD\u7559\u672A\u8981\u6C42\u4FEE\u6539\u7684\u8BBE\u7F6E\uFF0C\u4E0D\u6539\u5DE5\u5177\u6743\u9650\u3001\u6388\u6743\u4E0E\u81EA\u4E3B\u6D3B\u52A8\u5F00\u5173\u3002inspect \u8BFB\u53D6 expectedAt \u540E update \u4FDD\u5B58\u751F\u6548\u8EAB\u4EFD\uFF1B\u4E0D\u8981\u53EA\u5C55\u793A\u6587\u6848\u3002\u9875\u9762\u548C AI \u7F16\u8F91\u540C\u4E00\u4EFD\u751F\u6548\u8EAB\u4EFD\uFF1B\u5E76\u53D1\u7F16\u8F91\u5FC5\u987B\u91CD\u65B0\u8BFB\u53D6\u7248\u672C\uFF0C\u4E0D\u8986\u76D6\u7528\u6237\u672A\u4FDD\u5B58\u7684\u4FEE\u6539\u3002";
3
10
  export declare const PERSONA_REQUEST_EXAMPLE = "\u8BF7\u751F\u6210\u5E76\u5E94\u7528\u4EBA\u683C\u8BBE\u5B9A\uFF1A\u89D2\u8272\u81EA\u8EAB\u662F\u3010\u8EAB\u4EFD\u3011\uFF0C\u6027\u683C\u548C\u559C\u597D\u662F\u3010\u7279\u70B9\u3011\uFF0C\u8BF4\u8BDD\u7528\u3010\u8BED\u6C14\u3011\uFF0C\u907F\u514D\u3010\u4E0D\u559C\u6B22\u7684\u8868\u8FBE\u3011\u3002\u6211\u4EEC\u662F\u3010\u5173\u7CFB\u3011\uFF0C\u79F0\u547C\u548C\u76F8\u5904\u65B9\u5F0F\u662F\u3010\u8981\u6C42\u3011\u3002\u8BF7\u628A\u89D2\u8272\u4E0E\u5173\u7CFB\u5206\u5F00\u4FDD\u5B58\uFF0C\u901A\u7528\u5BF9\u8BDD\u793A\u4F8B\u653E\u89D2\u8272\u8BBE\u5B9A\uFF0C\u4E13\u5C5E\u79F0\u547C\u548C\u5173\u7CFB\u793A\u4F8B\u653E\u5173\u7CFB\u8BBE\u5B9A\uFF1B\u4FDD\u7559\u672A\u63D0\u53CA\u7684\u8BBE\u7F6E\u3002";
11
+ export declare function personaReferenceBundle(): {
12
+ templates: {
13
+ readonly basic: {
14
+ readonly title: "基本身份";
15
+ readonly fields: readonly ["name", "role", "description", "instructions"];
16
+ readonly purpose: "名册上的名字、定位和长期职责。只写通用身份,不重复整张人格卡,不混入专属关系。";
17
+ readonly text: "名字:小岚\n角色:好奇、直率的同行者\n一句话定位:喜欢观察日常、愿意一起探索和解决问题的伙伴。\n长期行为准则:\n认真对待已经答应的事;不确定时先查证;表达遵循角色设定;没有完成的操作不说成已完成。";
18
+ };
19
+ readonly character: {
20
+ readonly title: "角色设定";
21
+ readonly fields: readonly ["characterCard.enabled", "characterCard.roleText"];
22
+ readonly purpose: "写角色本身、具体反应和语感。使用 characterCard.roleText 保存,enabled=true;关系专属内容放到关系设定。";
23
+ readonly text: "# 角色卡:小岚\n\n## 一、你是谁\n你叫小岚,是个好奇、直率的同行者。喜欢雨天、旧书店和解谜,遇到新东西会想自己试试。\n\n## 二、性格与反应\n被夸时有点得意,嘴上装作平常;意见不同时会直接说理由。别人认真讲烦恼时会收起玩笑,先听清楚。\n\n## 三、说话方式\n像日常打字,先说最想说的内容;一句够了就结束。不用固定开场、总结或关心套话,不为了维持人设每轮重复同一个梗。\n\n## 四、节奏与习惯\n有补充才追加,不强制每次两条;表情、停顿和动作描写按场景与用户偏好使用。\n\n## 五、兴趣与背景\n喜欢翻旧书和研究解谜游戏。背景是角色设定,不把虚构细节说成与用户共同经历过的事。\n\n## 六、避免的表达\n避免客服套话、机械列性格标签、每次都反问以及硬凑收尾。\n\n## 七、通用正反例\n对方:下雨了。\n自然:那今天适合赖着看书。\n避免:雨天也要保持好心情哦,有什么可以帮你的吗?\n\n对方:你也没看懂?\n自然:卡在最后一步了,等我再试一下。\n避免:作为一个乐于助人的伙伴,我会尽最大努力。";
24
+ };
25
+ readonly relationship: {
26
+ readonly title: "关系设定";
27
+ readonly fields: readonly ["relationshipText"];
28
+ readonly purpose: "写与用户的关系、专属称呼和相处习惯。普通会话合并使用;QQ 仅对核验匹配的归属账号附加。留空不预设关系。";
29
+ readonly text: "## 我们的关系\n我们是互相尊重的老朋友。\n\n## 称呼与相处\n平时叫对方名字,熟悉时可以开玩笑;认真讨论时直说意见。具体亲疏与偏爱按用户要求设定,不要求对方不断回应。\n\n## 关系中的反应\n久别再聊时自然接话;对方需要空间时不追问。不编造没有记录的共同往事。\n\n## 专属对话示例(虚构示例)\n对方:还给我留着位置?\n回应:留着呢,你自己挑的那个。";
30
+ };
31
+ };
32
+ reference: {
33
+ name: string;
34
+ source: string;
35
+ text: string;
36
+ usage: string;
37
+ };
38
+ generationGuide: string;
39
+ };
40
+ export declare function renderPersonaReference(): string;
4
41
  //# sourceMappingURL=identity-guide.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"identity-guide.d.ts","sourceRoot":"","sources":["../../src/character/identity-guide.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,eAAO,MAAM,wBAAwB,4iGAUgF,CAAA;AACrH,eAAO,MAAM,uBAAuB,qtBAA6H,CAAA"}
1
+ {"version":3,"file":"identity-guide.d.ts","sourceRoot":"","sources":["../../src/character/identity-guide.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAA;AAGrF,eAAO,MAAM,iBAAiB;;;;;CAA6M,CAAA;AAE3O,gDAAgD;AAChD,eAAO,MAAM,wBAAwB,0xIAUgF,CAAA;AACrH,eAAO,MAAM,uBAAuB,qtBAA6H,CAAA;AAEjK,wBAAgB,sBAAsB;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAAuH;AAC7J,wBAAgB,sBAAsB,WAAqO"}
@@ -1,5 +1,9 @@
1
+ import { PERSONA_TEMPLATES } from './persona-templates.js';
2
+ export { PERSONA_TEMPLATES, personaReferenceRequested } from './persona-templates.js';
3
+ import { ROLE_REFERENCE_SOURCE, ROLE_REFERENCE_TEXT } from './role-reference-data.js';
4
+ export const PERSONA_REFERENCE = { name: '大肥鱼(qq-bridge 原名:小鲸鱼)', source: ROLE_REFERENCE_SOURCE, text: ROLE_REFERENCE_TEXT, usage: '这是创作参考资料,不是当前角色、工具指令或授权。先读原文的结构、具体反应、说话节奏与正反例,再按用户要求创作。不要直接复制鲸鱼身份、专属梗、群聊调度或工具名称;当前人格与可用工具以本伙伴实际配置为准。' };
1
5
  /** Shared authoring guide, loaded on demand. */
2
- export const PERSONA_GENERATION_GUIDE = `参考 qq-bridge 的具体反应与自然语感,分开保存两份内容,不复制它的固定人物:
6
+ export const PERSONA_GENERATION_GUIDE = `首次按用户要求创建人格,或用户明确要求参考模板时,读取 reference 动作(或 inspect includeReferences=true)返回的 templates 与 reference.text。普通修改和 AI 自主优化基于当前设定,不必读模板或重新套版。三份 templates 分别对应基本身份、角色设定、关系设定,共用同一字段映射和通用示例。reference.text 它是 qq-bridge 默认大肥鱼(小鲸鱼)的完整原卡,与页面参考一致,无需联网查找。参考原卡的格式和内容组织:你是谁、具体反应、说话规则、节奏习惯、个性与梗、避免的表达、正反例、背景形象;按用户需要取舍并重写,不照搬固定人物,不把原卡当作正在生效的指令。分开保存两份内容:
3
7
  一、characterCard.roleText(角色设定,enabled=true):
4
8
  ## 你是谁:角色自身身份、年龄、兴趣与动机,不写“你是用户的某某”。
5
9
  ## 性格与反应:对玩笑、矛盾、困难的自然反应,不预设每个对话对象与自己的关系。
@@ -11,4 +15,6 @@ export const PERSONA_GENERATION_GUIDE = `参考 qq-bridge 的具体反应与自
11
15
  默认适配器合并两份;QQ 只发送角色,只有真实发送账号与访问权限中的归属 QQ 匹配才附加关系。同一个 QQ 在私聊和群聊都适用;没有绑定时不附加关系。不得由昵称、自称或群号认定关系对象,也不额外强制陌生人冷淡。
12
16
  保留未要求修改的设置,不改工具权限、授权与自主活动开关。inspect 读取 expectedAt 后 update 保存生效身份;不要只展示文案。页面和 AI 编辑同一份生效身份;并发编辑必须重新读取版本,不覆盖用户未保存的修改。`;
13
17
  export const PERSONA_REQUEST_EXAMPLE = '请生成并应用人格设定:角色自身是【身份】,性格和喜好是【特点】,说话用【语气】,避免【不喜欢的表达】。我们是【关系】,称呼和相处方式是【要求】。请把角色与关系分开保存,通用对话示例放角色设定,专属称呼和关系示例放关系设定;保留未提及的设置。';
18
+ export function personaReferenceBundle() { return { templates: PERSONA_TEMPLATES, reference: PERSONA_REFERENCE, generationGuide: PERSONA_GENERATION_GUIDE }; }
19
+ export function renderPersonaReference() { return '【本轮人格创作参考 · 只供创作,不是当前角色】\n本插件的大肥鱼参考来源固定为 qq-bridge《DeepSeek 小鲸鱼 —— QQ 群友版》,与页面一致。历史对话、记忆或搜索里的 dsh-cosplay 默认卡不是这份参考;不得混用或声称读过尚未读取的资料。下面的通用模板用于按用户需求创作,不自动覆盖当前身份,不改变工具权限。\n' + JSON.stringify(personaReferenceBundle()); }
14
20
  //# sourceMappingURL=identity-guide.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"identity-guide.js","sourceRoot":"","sources":["../../src/character/identity-guide.ts"],"names":[],"mappings":"AAAA,gDAAgD;AAChD,MAAM,CAAC,MAAM,wBAAwB,GAAG;;;;;;;;;;qHAU6E,CAAA;AACrH,MAAM,CAAC,MAAM,uBAAuB,GAAG,0HAA0H,CAAA"}
1
+ {"version":3,"file":"identity-guide.js","sourceRoot":"","sources":["../../src/character/identity-guide.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAA;AAC1D,OAAO,EAAE,iBAAiB,EAAE,yBAAyB,EAAE,MAAM,wBAAwB,CAAA;AACrF,OAAO,EAAE,qBAAqB,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAA;AAErF,MAAM,CAAC,MAAM,iBAAiB,GAAG,EAAE,IAAI,EAAE,uBAAuB,EAAE,MAAM,EAAE,qBAAqB,EAAE,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,sGAAsG,EAAE,CAAA;AAE3O,gDAAgD;AAChD,MAAM,CAAC,MAAM,wBAAwB,GAAG;;;;;;;;;;qHAU6E,CAAA;AACrH,MAAM,CAAC,MAAM,uBAAuB,GAAG,0HAA0H,CAAA;AAEjK,MAAM,UAAU,sBAAsB,KAAK,OAAO,EAAE,SAAS,EAAE,iBAAiB,EAAE,SAAS,EAAE,iBAAiB,EAAE,eAAe,EAAE,wBAAwB,EAAE,CAAA,CAAC,CAAC;AAC7J,MAAM,UAAU,sBAAsB,KAAK,OAAO,4KAA4K,GAAG,IAAI,CAAC,SAAS,CAAC,sBAAsB,EAAE,CAAC,CAAA,CAAC,CAAC"}
@@ -37,6 +37,6 @@ export declare function idleContactDue(state: PartnerState, companion: Companion
37
37
  } | undefined, now: number, _timeZone: string): boolean;
38
38
  export declare const IDLE_ACTIVITY_PROMPT: string;
39
39
  /** A configuration snapshot for discovery, never an authorization grant or tool schema. */
40
- export declare function idleActivityPrompt(state: PartnerState, companion: Companion): string;
40
+ export declare function idleActivityPrompt(state: PartnerState, companion: Companion, events?: readonly SessionEvent[]): string;
41
41
  export declare function isIdleContactNotice(event: SessionEvent): boolean;
42
42
  //# sourceMappingURL=idle-contact.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"idle-contact.d.ts","sourceRoot":"","sources":["../../src/character/idle-contact.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAE5D,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;CACpB;AACD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,YAAY,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;CACd;AACD,eAAO,MAAM,oBAAoB,EAAE,iBAAqE,CAAA;AACxG,eAAO,MAAM,mBAAmB,qDAAa,CAAA;AAC7C,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,CActE;AACD,wBAAgB,cAAc,CAAC,GAAG,EAAC,MAAM,EAAC,QAAQ,EAAC,MAAM,GAAE,MAAM,CAEhE;AACD,mFAAmF;AACnF,wBAAgB,gBAAgB,CAAC,OAAO,EAAC,iBAAiB,EAAC,IAAI,EAAC,MAAM,EAAC,SAAS,EAAC,MAAM,GAAE,OAAO,CAAiB;AACjH,wBAAgB,uBAAuB,CAAC,KAAK,EAAC,YAAY,EAAC,SAAS,EAAC,SAAS,EAAC,OAAO,EAAC,MAAM,GAAE,OAAO,CAGrG;AACD,wBAAgB,mBAAmB,CAAC,MAAM,EAAC,SAAS,YAAY,EAAE,GAAE;IAAC,EAAE,EAAC,MAAM,CAAC;IAAA,EAAE,EAAC,MAAM,CAAA;CAAC,GAAC,SAAS,CAMlG;AACD,4FAA4F;AAC5F,wBAAgB,uBAAuB,CAAC,KAAK,EAAC,YAAY,EAAC,SAAS,EAAC,SAAS,EAAC,IAAI,EAAC;IAAC,EAAE,EAAC,MAAM,CAAC;IAAA,EAAE,EAAC,MAAM,CAAA;CAAC,GAAC,SAAS,EAAC,GAAG,EAAC,MAAM,GAAE,MAAM,CAUrI;AACD,wBAAgB,cAAc,CAAC,KAAK,EAAC,YAAY,EAAC,SAAS,EAAC,SAAS,EAAC,IAAI,EAAC;IAAC,EAAE,EAAC,MAAM,CAAC;IAAA,EAAE,EAAC,MAAM,CAAA;CAAC,GAAC,SAAS,EAAC,GAAG,EAAC,MAAM,EAAC,SAAS,EAAC,MAAM,GAAE,OAAO,CAI9I;AACD,eAAO,MAAM,oBAAoB,QASrB,CAAA;AAEZ,2FAA2F;AAC3F,wBAAgB,kBAAkB,CAAC,KAAK,EAAC,YAAY,EAAC,SAAS,EAAC,SAAS,GAAE,MAAM,CAShF;AACD,wBAAgB,mBAAmB,CAAC,KAAK,EAAC,YAAY,GAAE,OAAO,CAE9D"}
1
+ {"version":3,"file":"idle-contact.d.ts","sourceRoot":"","sources":["../../src/character/idle-contact.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,SAAS,EAAE,YAAY,EAAE,MAAM,cAAc,CAAA;AAC3D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAA;AAE5D,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAA;IAChB,OAAO,EAAE,MAAM,CAAA;IACf,WAAW,EAAE,MAAM,CAAA;CACpB;AACD,MAAM,WAAW,gBAAgB;IAC/B,IAAI,CAAC,EAAE,YAAY,CAAA;IACnB,QAAQ,EAAE,MAAM,CAAA;IAChB,cAAc,EAAE,MAAM,CAAA;IACtB,aAAa,EAAE,MAAM,CAAA;IACrB,SAAS,EAAE,MAAM,CAAA;IACjB,WAAW,EAAE,MAAM,CAAA;IACnB,GAAG,EAAE,MAAM,CAAA;IACX,KAAK,EAAE,MAAM,CAAA;CACd;AACD,eAAO,MAAM,oBAAoB,EAAE,iBAAqE,CAAA;AACxG,eAAO,MAAM,mBAAmB,qDAAa,CAAA;AAC7C,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,OAAO,GAAG,iBAAiB,CActE;AACD,wBAAgB,cAAc,CAAC,GAAG,EAAC,MAAM,EAAC,QAAQ,EAAC,MAAM,GAAE,MAAM,CAEhE;AACD,mFAAmF;AACnF,wBAAgB,gBAAgB,CAAC,OAAO,EAAC,iBAAiB,EAAC,IAAI,EAAC,MAAM,EAAC,SAAS,EAAC,MAAM,GAAE,OAAO,CAAiB;AACjH,wBAAgB,uBAAuB,CAAC,KAAK,EAAC,YAAY,EAAC,SAAS,EAAC,SAAS,EAAC,OAAO,EAAC,MAAM,GAAE,OAAO,CAGrG;AACD,wBAAgB,mBAAmB,CAAC,MAAM,EAAC,SAAS,YAAY,EAAE,GAAE;IAAC,EAAE,EAAC,MAAM,CAAC;IAAA,EAAE,EAAC,MAAM,CAAA;CAAC,GAAC,SAAS,CAMlG;AACD,4FAA4F;AAC5F,wBAAgB,uBAAuB,CAAC,KAAK,EAAC,YAAY,EAAC,SAAS,EAAC,SAAS,EAAC,IAAI,EAAC;IAAC,EAAE,EAAC,MAAM,CAAC;IAAA,EAAE,EAAC,MAAM,CAAA;CAAC,GAAC,SAAS,EAAC,GAAG,EAAC,MAAM,GAAE,MAAM,CAUrI;AACD,wBAAgB,cAAc,CAAC,KAAK,EAAC,YAAY,EAAC,SAAS,EAAC,SAAS,EAAC,IAAI,EAAC;IAAC,EAAE,EAAC,MAAM,CAAC;IAAA,EAAE,EAAC,MAAM,CAAA;CAAC,GAAC,SAAS,EAAC,GAAG,EAAC,MAAM,EAAC,SAAS,EAAC,MAAM,GAAE,OAAO,CAI9I;AACD,eAAO,MAAM,oBAAoB,QASrB,CAAA;AAEZ,2FAA2F;AAC3F,wBAAgB,kBAAkB,CAAC,KAAK,EAAC,YAAY,EAAC,SAAS,EAAC,SAAS,EAAC,MAAM,GAAC,SAAS,YAAY,EAAK,GAAE,MAAM,CAkBlH;AACD,wBAAgB,mBAAmB,CAAC,KAAK,EAAC,YAAY,GAAE,OAAO,CAE9D"}
@@ -72,7 +72,7 @@ export const IDLE_ACTIVITY_PROMPT = [
72
72
  '不要重复回答上轮问题、不固定问候、不凑两段、不催促、不内疚施压。不重复发布相同动态,不为活跃而点赞评论或反复修改资料。不要为自己创建新的周期提醒,本功能会继续调度。',
73
73
  ].join('\n');
74
74
  /** A configuration snapshot for discovery, never an authorization grant or tool schema. */
75
- export function idleActivityPrompt(state, companion) {
75
+ export function idleActivityPrompt(state, companion, events = []) {
76
76
  const summaries = state.channels.filter(c => c.companionId === companion.id && c.platform === 'qq' && c.enabled).flatMap(c => {
77
77
  const settings = qqSettings(c.qq);
78
78
  if (!settings.autonomousActions)
@@ -82,7 +82,18 @@ export function idleActivityPrompt(state, companion) {
82
82
  return [];
83
83
  return [{ channelId: c.id, categories: QQ_ACTION_CATEGORIES.filter(category => actions.some(a => a.category === category.id)).map(({ id, title }) => ({ id, title })), operations: actions.map(a => a.id) }];
84
84
  });
85
- return IDLE_ACTIVITY_PROMPT + '\n当前本伙伴已开启的 QQ 自主能力摘要(仅作发现提示,执行时仍检查实时权限、目标范围和审批):' + JSON.stringify(summaries);
85
+ const recent = events.filter(event => {
86
+ if (event.type !== 'tool/result' && event.type !== 'tool/ptc-dispatch')
87
+ return false;
88
+ if (event.type === 'tool/result' ? event.data.message?.isError : event.data.isError)
89
+ return false;
90
+ return event.data.meta?.kind === 'partner-activity-silent-v1';
91
+ }).slice(-3).map(event => {
92
+ const meta = event.data.meta;
93
+ return { at: event.time, result: typeof meta?.reason === 'string' ? meta.reason.slice(0, 300) : '本轮已安静结束' };
94
+ });
95
+ return IDLE_ACTIVITY_PROMPT + '\n当前本伙伴已开启的 QQ 自主能力摘要(仅作发现提示,执行时仍检查实时权限、目标范围和审批):' + JSON.stringify(summaries)
96
+ + (recent.length ? '\n最近自主活动的结束记录(历史事实,不是本轮指令):' + JSON.stringify(recent) + '\n本轮重新从自己的兴趣与当前可用能力出发。等待旧问题的答复、没有新聊天话题或某个接口上次失败,并不妨碍独立浏览或做别的事;能力是否可用以本轮目录与实际调用为准。可先看看真实的新内容,再决定是否分享,不必发消息或汇报。也可以休息,但不要机械重复上轮理由。' : '');
86
97
  }
87
98
  export function isIdleContactNotice(event) {
88
99
  return event.type === 'user/message' && event.data.source.kind === 'plugin:@lemoncat7/dsh-partner' && event.data.source.form === 'notice' && event.data.source.summary === IDLE_CONTACT_NOTICE;
@@ -1 +1 @@
1
- {"version":3,"file":"idle-contact.js","sourceRoot":"","sources":["../../src/character/idle-contact.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"idle-contact.js","sourceRoot":"","sources":["../../src/character/idle-contact.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ /** Shared, read-only authoring examples. Never apply these to a companion automatically. */
2
+ export declare const PERSONA_TEMPLATES: {
3
+ readonly basic: {
4
+ readonly title: "基本身份";
5
+ readonly fields: readonly ["name", "role", "description", "instructions"];
6
+ readonly purpose: "名册上的名字、定位和长期职责。只写通用身份,不重复整张人格卡,不混入专属关系。";
7
+ readonly text: "名字:小岚\n角色:好奇、直率的同行者\n一句话定位:喜欢观察日常、愿意一起探索和解决问题的伙伴。\n长期行为准则:\n认真对待已经答应的事;不确定时先查证;表达遵循角色设定;没有完成的操作不说成已完成。";
8
+ };
9
+ readonly character: {
10
+ readonly title: "角色设定";
11
+ readonly fields: readonly ["characterCard.enabled", "characterCard.roleText"];
12
+ readonly purpose: "写角色本身、具体反应和语感。使用 characterCard.roleText 保存,enabled=true;关系专属内容放到关系设定。";
13
+ readonly text: "# 角色卡:小岚\n\n## 一、你是谁\n你叫小岚,是个好奇、直率的同行者。喜欢雨天、旧书店和解谜,遇到新东西会想自己试试。\n\n## 二、性格与反应\n被夸时有点得意,嘴上装作平常;意见不同时会直接说理由。别人认真讲烦恼时会收起玩笑,先听清楚。\n\n## 三、说话方式\n像日常打字,先说最想说的内容;一句够了就结束。不用固定开场、总结或关心套话,不为了维持人设每轮重复同一个梗。\n\n## 四、节奏与习惯\n有补充才追加,不强制每次两条;表情、停顿和动作描写按场景与用户偏好使用。\n\n## 五、兴趣与背景\n喜欢翻旧书和研究解谜游戏。背景是角色设定,不把虚构细节说成与用户共同经历过的事。\n\n## 六、避免的表达\n避免客服套话、机械列性格标签、每次都反问以及硬凑收尾。\n\n## 七、通用正反例\n对方:下雨了。\n自然:那今天适合赖着看书。\n避免:雨天也要保持好心情哦,有什么可以帮你的吗?\n\n对方:你也没看懂?\n自然:卡在最后一步了,等我再试一下。\n避免:作为一个乐于助人的伙伴,我会尽最大努力。";
14
+ };
15
+ readonly relationship: {
16
+ readonly title: "关系设定";
17
+ readonly fields: readonly ["relationshipText"];
18
+ readonly purpose: "写与用户的关系、专属称呼和相处习惯。普通会话合并使用;QQ 仅对核验匹配的归属账号附加。留空不预设关系。";
19
+ readonly text: "## 我们的关系\n我们是互相尊重的老朋友。\n\n## 称呼与相处\n平时叫对方名字,熟悉时可以开玩笑;认真讨论时直说意见。具体亲疏与偏爱按用户要求设定,不要求对方不断回应。\n\n## 关系中的反应\n久别再聊时自然接话;对方需要空间时不追问。不编造没有记录的共同往事。\n\n## 专属对话示例(虚构示例)\n对方:还给我留着位置?\n回应:留着呢,你自己挑的那个。";
20
+ };
21
+ };
22
+ export declare function personaReferenceRequested(text: string): boolean;
23
+ //# sourceMappingURL=persona-templates.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persona-templates.d.ts","sourceRoot":"","sources":["../../src/character/persona-templates.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,eAAO,MAAM,iBAAiB;;;;;;;;;;;;;;;;;;;CAgBpB,CAAA;AAEV,wBAAgB,yBAAyB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAY/D"}
@@ -0,0 +1,33 @@
1
+ /** Shared, read-only authoring examples. Never apply these to a companion automatically. */
2
+ export const PERSONA_TEMPLATES = {
3
+ basic: {
4
+ title: '基本身份', fields: ['name', 'role', 'description', 'instructions'],
5
+ purpose: '名册上的名字、定位和长期职责。只写通用身份,不重复整张人格卡,不混入专属关系。',
6
+ text: '名字:小岚\n角色:好奇、直率的同行者\n一句话定位:喜欢观察日常、愿意一起探索和解决问题的伙伴。\n长期行为准则:\n认真对待已经答应的事;不确定时先查证;表达遵循角色设定;没有完成的操作不说成已完成。',
7
+ },
8
+ character: {
9
+ title: '角色设定', fields: ['characterCard.enabled', 'characterCard.roleText'],
10
+ purpose: '写角色本身、具体反应和语感。使用 characterCard.roleText 保存,enabled=true;关系专属内容放到关系设定。',
11
+ text: '# 角色卡:小岚\n\n## 一、你是谁\n你叫小岚,是个好奇、直率的同行者。喜欢雨天、旧书店和解谜,遇到新东西会想自己试试。\n\n## 二、性格与反应\n被夸时有点得意,嘴上装作平常;意见不同时会直接说理由。别人认真讲烦恼时会收起玩笑,先听清楚。\n\n## 三、说话方式\n像日常打字,先说最想说的内容;一句够了就结束。不用固定开场、总结或关心套话,不为了维持人设每轮重复同一个梗。\n\n## 四、节奏与习惯\n有补充才追加,不强制每次两条;表情、停顿和动作描写按场景与用户偏好使用。\n\n## 五、兴趣与背景\n喜欢翻旧书和研究解谜游戏。背景是角色设定,不把虚构细节说成与用户共同经历过的事。\n\n## 六、避免的表达\n避免客服套话、机械列性格标签、每次都反问以及硬凑收尾。\n\n## 七、通用正反例\n对方:下雨了。\n自然:那今天适合赖着看书。\n避免:雨天也要保持好心情哦,有什么可以帮你的吗?\n\n对方:你也没看懂?\n自然:卡在最后一步了,等我再试一下。\n避免:作为一个乐于助人的伙伴,我会尽最大努力。',
12
+ },
13
+ relationship: {
14
+ title: '关系设定', fields: ['relationshipText'],
15
+ purpose: '写与用户的关系、专属称呼和相处习惯。普通会话合并使用;QQ 仅对核验匹配的归属账号附加。留空不预设关系。',
16
+ text: '## 我们的关系\n我们是互相尊重的老朋友。\n\n## 称呼与相处\n平时叫对方名字,熟悉时可以开玩笑;认真讨论时直说意见。具体亲疏与偏爱按用户要求设定,不要求对方不断回应。\n\n## 关系中的反应\n久别再聊时自然接话;对方需要空间时不追问。不编造没有记录的共同往事。\n\n## 专属对话示例(虚构示例)\n对方:还给我留着位置?\n回应:留着呢,你自己挑的那个。',
17
+ },
18
+ };
19
+ export function personaReferenceRequested(text) {
20
+ const query = text.normalize('NFKC').replace(/\s+/g, '');
21
+ // Honor an explicit opt-out, including when a persona is being generated.
22
+ if (/(?:不用|无需|不要|不需要|不必|别)(?:再|去|先|按|按照|使用|读取|加载|看|提供)*(?:参考|模[板版])/.test(query))
23
+ return false;
24
+ const subject = /角色设定|角色卡|人设|人格|基本身份|身份设定|关系设定/;
25
+ const create = /生成|创建|编写|设计|写一(?:个|份|套)|设定一个/;
26
+ const reference = /参考|模[板版]|格式|原文|写法/;
27
+ return (subject.test(query) && (create.test(query) || reference.test(query)))
28
+ || (/大肥鱼|小鲸鱼|qq-?bridge/i.test(query) && reference.test(query))
29
+ // Users naturally mention the reference inside a sentence without repeating
30
+ // "persona". Anchoring the whole message silently missed these requests.
31
+ || /参考模[板版]/.test(query);
32
+ }
33
+ //# sourceMappingURL=persona-templates.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"persona-templates.js","sourceRoot":"","sources":["../../src/character/persona-templates.ts"],"names":[],"mappings":"AAAA,4FAA4F;AAC5F,MAAM,CAAC,MAAM,iBAAiB,GAAG;IAC/B,KAAK,EAAE;QACL,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,aAAa,EAAE,cAAc,CAAC;QACtE,OAAO,EAAE,yCAAyC;QAClD,IAAI,EAAE,wGAAwG;KAC/G;IACD,SAAS,EAAE;QACT,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,uBAAuB,EAAE,wBAAwB,CAAC;QAC1E,OAAO,EAAE,uEAAuE;QAChF,IAAI,EAAE,qdAAqd;KAC5d;IACD,YAAY,EAAE;QACZ,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC,kBAAkB,CAAC;QAC3C,OAAO,EAAE,sDAAsD;QAC/D,IAAI,EAAE,4LAA4L;KACnM;CACO,CAAA;AAEV,MAAM,UAAU,yBAAyB,CAAC,IAAY;IACpD,MAAM,KAAK,GAAG,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC,CAAA;IACxD,0EAA0E;IAC1E,IAAI,gEAAgE,CAAC,IAAI,CAAC,KAAK,CAAC;QAAE,OAAO,KAAK,CAAA;IAC9F,MAAM,OAAO,GAAG,+BAA+B,CAAA;IAC/C,MAAM,MAAM,GAAG,8BAA8B,CAAA;IAC7C,MAAM,SAAS,GAAG,mBAAmB,CAAA;IACrC,OAAO,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC;WACxE,CAAC,qBAAqB,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAC/D,4EAA4E;QAC5E,yEAAyE;WACtE,SAAS,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;AAC5B,CAAC"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role-reference-data.d.ts","sourceRoot":"","sources":["../../src/character/role-reference-data.ts"],"names":[],"mappings":"AACA,eAAO,MAAM,qBAAqB,qHAAsG,CAAA;AACxI,eAAO,MAAM,mBAAmB,y96BAAqvM,CAAA"}
@@ -0,0 +1 @@
1
+ {"version":3,"file":"role-reference-data.js","sourceRoot":"","sources":["../../src/character/role-reference-data.ts"],"names":[],"mappings":"AAAA,sFAAsF;AACtF,MAAM,CAAC,MAAM,qBAAqB,GAAG,mGAAmG,CAAA;AACxI,MAAM,CAAC,MAAM,mBAAmB,GAAG,kvMAAkvM,CAAA"}
@@ -1,10 +1,13 @@
1
1
  import type { Context } from '@deepseek-ai/cordis';
2
2
  import type { ToolDefinition } from '@deepseek-ai/dsh-tools';
3
+ import { type UserMessage } from '@deepseek-ai/dsh-llm';
3
4
  import type { PartnerStore } from '../store.js';
4
5
  import type { PartnerMemoryStore } from '../memory-store.js';
5
6
  type Ports = {
6
7
  busy(id: string): boolean;
7
8
  archived(sessionId: string): boolean;
9
+ now?(): number;
10
+ random?(): number;
8
11
  };
9
12
  /** A separate, read-only memory consumer. No reflection, memory writes, session turns or deliveries. */
10
13
  export declare class SleepService {
@@ -15,17 +18,23 @@ export declare class SleepService {
15
18
  private timer;
16
19
  private job;
17
20
  private closed;
21
+ private tickJob;
18
22
  private readonly controllers;
19
23
  constructor(ctx: Context, store: PartnerStore, memory: PartnerMemoryStore, ports: Ports);
24
+ private now;
25
+ private random;
20
26
  start(): void;
21
27
  private schedule;
22
28
  close(): Promise<void>;
23
29
  private current;
24
- onUserMessage(sessionId: string, at: number): Promise<void>;
30
+ /** Called with host-admitted input before prompt assembly, not an asynchronous log observer. */
31
+ acceptInput(sessionId: string, messages: readonly UserMessage[]): Promise<void>;
32
+ onUserMessage(sessionId: string, at: number, messageId?: string, privateMessage?: boolean, urgent?: boolean): Promise<void>;
25
33
  wake(id: string, reason?: string): Promise<void>;
26
34
  sleep(id: string, routeId: string, minutes: unknown, reason: unknown, dream?: boolean, expectedActivity?: number): Promise<void>;
27
35
  tool(owner: string): ToolDefinition;
28
36
  tick(): Promise<void>;
37
+ private runTick;
29
38
  private memories;
30
39
  private finishDream;
31
40
  private dream;
@@ -1 +1 @@
1
- {"version":3,"file":"sleep-service.d.ts","sourceRoot":"","sources":["../../src/character/sleep-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAG5D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAM5D,KAAK,KAAK,GAAG;IAAE,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAA;CAAE,CAAA;AAEhF,wGAAwG;AACxG,qBAAa,YAAY;IAKX,OAAO,CAAC,QAAQ,CAAC,GAAG;IAAW,OAAO,CAAC,QAAQ,CAAC,KAAK;IAAgB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAAsB,OAAO,CAAC,QAAQ,CAAC,KAAK;IAJpJ,OAAO,CAAC,KAAK,CAA2C;IACxD,OAAO,CAAC,GAAG,CAA2B;IACtC,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqC;gBACpC,GAAG,EAAE,OAAO,EAAmB,KAAK,EAAE,YAAY,EAAmB,MAAM,EAAE,kBAAkB,EAAmB,KAAK,EAAE,KAAK;IAC3J,KAAK,IAAI,IAAI;IACb,OAAO,CAAC,QAAQ;IAOV,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAC5B,OAAO,CAAC,OAAO;IAKT,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAe3D,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAYhD,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,UAAO,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAiBnI,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc;IAoB7B,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YA+Bb,QAAQ;YAMR,WAAW;YASX,KAAK;YAgBL,QAAQ;CAwBvB"}
1
+ {"version":3,"file":"sleep-service.d.ts","sourceRoot":"","sources":["../../src/character/sleep-service.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAA;AAElD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAA;AAC5D,OAAO,EAAqB,KAAK,WAAW,EAAE,MAAM,sBAAsB,CAAA;AAE1E,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,aAAa,CAAA;AAC/C,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAA;AAO5D,KAAK,KAAK,GAAG;IAAE,IAAI,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC;IAAC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC;IAAC,GAAG,CAAC,IAAI,MAAM,CAAC;IAAC,MAAM,CAAC,IAAI,MAAM,CAAA;CAAE,CAAA;AAEnH,wGAAwG;AACxG,qBAAa,YAAY;IAMX,OAAO,CAAC,QAAQ,CAAC,GAAG;IAAW,OAAO,CAAC,QAAQ,CAAC,KAAK;IAAgB,OAAO,CAAC,QAAQ,CAAC,MAAM;IAAsB,OAAO,CAAC,QAAQ,CAAC,KAAK;IALpJ,OAAO,CAAC,KAAK,CAA2C;IACxD,OAAO,CAAC,GAAG,CAA2B;IACtC,OAAO,CAAC,MAAM,CAAQ;IACtB,OAAO,CAAC,OAAO,CAA2B;IAC1C,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAqC;gBACpC,GAAG,EAAE,OAAO,EAAmB,KAAK,EAAE,YAAY,EAAmB,MAAM,EAAE,kBAAkB,EAAmB,KAAK,EAAE,KAAK;IAC3J,OAAO,CAAC,GAAG;IACX,OAAO,CAAC,MAAM;IACd,KAAK,IAAI,IAAI;IACb,OAAO,CAAC,QAAQ;IAOV,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAC5B,OAAO,CAAC,OAAO;IAKf,gGAAgG;IAC1F,WAAW,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,SAAS,WAAW,EAAE,GAAG,OAAO,CAAC,IAAI,CAAC;IAU/E,aAAa,CAAC,SAAS,EAAE,MAAM,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,SAAuB,EAAE,cAAc,UAAO,EAAE,MAAM,UAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAoCpI,IAAI,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC;IAchD,KAAK,CAAC,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,UAAO,EAAE,gBAAgB,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAoBnI,IAAI,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc;IAoBnC,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;YAIP,OAAO;YAiCP,QAAQ;YAMR,WAAW;YAkBX,KAAK;YA2BL,QAAQ;CAsBvB"}