@downcity/plugins 1.0.60 → 1.0.61

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 (91) hide show
  1. package/bin/BuiltinPlugins.d.ts +15 -0
  2. package/bin/BuiltinPlugins.d.ts.map +1 -1
  3. package/bin/BuiltinPlugins.js +7 -1
  4. package/bin/BuiltinPlugins.js.map +1 -1
  5. package/bin/index.d.ts +6 -0
  6. package/bin/index.d.ts.map +1 -1
  7. package/bin/index.js +3 -0
  8. package/bin/index.js.map +1 -1
  9. package/bin/memory/Action.d.ts +15 -10
  10. package/bin/memory/Action.d.ts.map +1 -1
  11. package/bin/memory/Action.js +233 -16
  12. package/bin/memory/Action.js.map +1 -1
  13. package/bin/memory/MemoryPlugin.d.ts +10 -4
  14. package/bin/memory/MemoryPlugin.d.ts.map +1 -1
  15. package/bin/memory/MemoryPlugin.js +79 -37
  16. package/bin/memory/MemoryPlugin.js.map +1 -1
  17. package/bin/memory/runtime/Search.d.ts +1 -1
  18. package/bin/memory/runtime/Search.d.ts.map +1 -1
  19. package/bin/memory/runtime/Search.js +11 -7
  20. package/bin/memory/runtime/Search.js.map +1 -1
  21. package/bin/memory/runtime/Store.d.ts +8 -23
  22. package/bin/memory/runtime/Store.d.ts.map +1 -1
  23. package/bin/memory/runtime/Store.js +28 -43
  24. package/bin/memory/runtime/Store.js.map +1 -1
  25. package/bin/memory/runtime/SystemProvider.d.ts +4 -8
  26. package/bin/memory/runtime/SystemProvider.d.ts.map +1 -1
  27. package/bin/memory/runtime/SystemProvider.js +55 -62
  28. package/bin/memory/runtime/SystemProvider.js.map +1 -1
  29. package/bin/memory/runtime/Writer.d.ts +48 -10
  30. package/bin/memory/runtime/Writer.d.ts.map +1 -1
  31. package/bin/memory/runtime/Writer.js +197 -60
  32. package/bin/memory/runtime/Writer.js.map +1 -1
  33. package/bin/memory/types/Memory.d.ts +222 -33
  34. package/bin/memory/types/Memory.d.ts.map +1 -1
  35. package/bin/memory/types/Memory.js +4 -3
  36. package/bin/memory/types/Memory.js.map +1 -1
  37. package/bin/shell/ShellPlugin.d.ts +2 -1
  38. package/bin/shell/ShellPlugin.d.ts.map +1 -1
  39. package/bin/shell/ShellPlugin.js +3 -3
  40. package/bin/shell/ShellPlugin.js.map +1 -1
  41. package/bin/shell/ShellRuntimeTypes.d.ts +7 -2
  42. package/bin/shell/ShellRuntimeTypes.d.ts.map +1 -1
  43. package/bin/shell/runtime/ShellActionRuntime.d.ts.map +1 -1
  44. package/bin/shell/runtime/ShellActionRuntime.js +6 -6
  45. package/bin/shell/runtime/ShellActionRuntime.js.map +1 -1
  46. package/bin/shell/runtime/ShellActionRuntimeSupport.d.ts +14 -5
  47. package/bin/shell/runtime/ShellActionRuntimeSupport.d.ts.map +1 -1
  48. package/bin/shell/runtime/ShellActionRuntimeSupport.js +58 -22
  49. package/bin/shell/runtime/ShellActionRuntimeSupport.js.map +1 -1
  50. package/bin/shell/runtime/ShellProcessEvents.js +3 -3
  51. package/bin/shell/runtime/ShellProcessEvents.js.map +1 -1
  52. package/bin/shell/types/ShellPluginOptions.d.ts +95 -0
  53. package/bin/shell/types/ShellPluginOptions.d.ts.map +1 -0
  54. package/bin/shell/types/ShellPluginOptions.js +10 -0
  55. package/bin/shell/types/ShellPluginOptions.js.map +1 -0
  56. package/bin/task/Scheduler.d.ts +8 -0
  57. package/bin/task/Scheduler.d.ts.map +1 -1
  58. package/bin/task/Scheduler.js +7 -9
  59. package/bin/task/Scheduler.js.map +1 -1
  60. package/bin/task/TaskPlugin.d.ts +18 -1
  61. package/bin/task/TaskPlugin.d.ts.map +1 -1
  62. package/bin/task/TaskPlugin.js +23 -1
  63. package/bin/task/TaskPlugin.js.map +1 -1
  64. package/bin/task/types/TaskPluginOptions.d.ts +22 -0
  65. package/bin/task/types/TaskPluginOptions.d.ts.map +1 -0
  66. package/bin/task/types/TaskPluginOptions.js +9 -0
  67. package/bin/task/types/TaskPluginOptions.js.map +1 -0
  68. package/package.json +2 -2
  69. package/src/BuiltinPlugins.ts +27 -1
  70. package/src/index.ts +35 -0
  71. package/src/memory/Action.ts +292 -25
  72. package/src/memory/MemoryPlugin.ts +82 -40
  73. package/src/memory/runtime/Search.ts +16 -9
  74. package/src/memory/runtime/Store.ts +52 -49
  75. package/src/memory/runtime/SystemProvider.ts +55 -69
  76. package/src/memory/runtime/Writer.ts +262 -81
  77. package/src/memory/types/Memory.ts +296 -35
  78. package/src/shell/ShellPlugin.ts +4 -3
  79. package/src/shell/ShellRuntimeTypes.ts +7 -2
  80. package/src/shell/runtime/ShellActionRuntime.ts +18 -9
  81. package/src/shell/runtime/ShellActionRuntimeSupport.ts +106 -21
  82. package/src/shell/runtime/ShellProcessEvents.ts +3 -3
  83. package/src/shell/types/ShellPluginOptions.ts +112 -0
  84. package/src/task/Scheduler.ts +15 -9
  85. package/src/task/TaskPlugin.ts +27 -1
  86. package/src/task/types/TaskPluginOptions.ts +22 -0
  87. package/bin/memory/runtime/Flush.d.ts +0 -15
  88. package/bin/memory/runtime/Flush.d.ts.map +0 -1
  89. package/bin/memory/runtime/Flush.js +0 -63
  90. package/bin/memory/runtime/Flush.js.map +0 -1
  91. package/src/memory/runtime/Flush.ts +0 -83
@@ -10,6 +10,9 @@ import type { BasePlugin } from "@downcity/agent/internal/plugin/core/BasePlugin
10
10
  import type { ImagePluginOptions } from "./image/types/ImagePlugin.js";
11
11
  import type { AsrPluginOptions } from "./asr/types/AsrPlugin.js";
12
12
  import type { TtsPluginOptions } from "./tts/types/TtsPlugin.js";
13
+ import type { TaskPluginOptions } from "./task/types/TaskPluginOptions.js";
14
+ import type { MemoryPluginOptions } from "./memory/types/Memory.js";
15
+ import type { ShellPluginOptions } from "./shell/types/ShellPluginOptions.js";
13
16
  /**
14
17
  * 内建 plugin class 构造器。
15
18
  */
@@ -36,6 +39,18 @@ export interface BuiltinPluginOptions {
36
39
  * 文本转语音 plugin 的 City AI 能力注入。
37
40
  */
38
41
  tts?: TtsPluginOptions;
42
+ /**
43
+ * task plugin 的定时任务运行参数。
44
+ */
45
+ task?: TaskPluginOptions;
46
+ /**
47
+ * memory plugin 的 LLM Wiki 能力注入。
48
+ */
49
+ memory?: MemoryPluginOptions;
50
+ /**
51
+ * shell plugin 的可选 runtime 参数。
52
+ */
53
+ shell?: ShellPluginOptions;
39
54
  }
40
55
  /**
41
56
  * 创建完整内建 plugin 实例集合。
@@ -1 +1 @@
1
- {"version":3,"file":"BuiltinPlugins.d.ts","sourceRoot":"","sources":["../src/BuiltinPlugins.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oDAAoD,CAAC;AAYrF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEjE;;GAEG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,IAAI,UAAU,CAAC,CAAC;AAEhF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,kBAAkB,EAStD,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAE3B;;OAEG;IACH,GAAG,CAAC,EAAE,gBAAgB,CAAC;IAEvB;;OAEG;IACH,GAAG,CAAC,EAAE,gBAAgB,CAAC;CACxB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,oBAAyB,GAAG,UAAU,EAAE,CAYrF"}
1
+ {"version":3,"file":"BuiltinPlugins.d.ts","sourceRoot":"","sources":["../src/BuiltinPlugins.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,oDAAoD,CAAC;AAYrF,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AACvE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AACjE,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,mCAAmC,CAAC;AAC3E,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,0BAA0B,CAAC;AACpE,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,qCAAqC,CAAC;AAE9E;;GAEG;AACH,MAAM,MAAM,kBAAkB,CAAC,CAAC,SAAS,UAAU,GAAG,UAAU,IAAI,UAAU,CAAC,CAAC;AAEhF;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,EAAE,kBAAkB,EAStD,CAAC;AAEF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC;;OAEG;IACH,KAAK,CAAC,EAAE,kBAAkB,CAAC;IAE3B;;OAEG;IACH,GAAG,CAAC,EAAE,gBAAgB,CAAC;IAEvB;;OAEG;IACH,GAAG,CAAC,EAAE,gBAAgB,CAAC;IAEvB;;OAEG;IACH,IAAI,CAAC,EAAE,iBAAiB,CAAC;IAEzB;;OAEG;IACH,MAAM,CAAC,EAAE,mBAAmB,CAAC;IAE7B;;OAEG;IACH,KAAK,CAAC,EAAE,kBAAkB,CAAC;CAC5B;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,oBAAyB,GAAG,UAAU,EAAE,CAoBrF"}
@@ -36,7 +36,13 @@ export const BUILTIN_PLUGIN_CLASSES = [
36
36
  * 创建完整内建 plugin 实例集合。
37
37
  */
38
38
  export function createBuiltinPlugins(options = {}) {
39
- const plugins = BUILTIN_PLUGIN_CLASSES.map((PluginClass) => new PluginClass());
39
+ const plugins = BUILTIN_PLUGIN_CLASSES.map((PluginClass) => PluginClass === TaskPlugin
40
+ ? new TaskPlugin(options.task)
41
+ : PluginClass === MemoryPlugin
42
+ ? new MemoryPlugin(options.memory)
43
+ : PluginClass === ShellPlugin
44
+ ? new ShellPlugin(options.shell)
45
+ : new PluginClass());
40
46
  if (options.image?.image_create && options.image?.image_result) {
41
47
  plugins.push(new ImagePlugin(options.image));
42
48
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BuiltinPlugins.js","sourceRoot":"","sources":["../src/BuiltinPlugins.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAU5C;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAyB;IAC1D,WAAW;IACX,SAAS;IACT,eAAe;IACf,UAAU;IACV,aAAa;IACb,UAAU;IACV,YAAY;IACZ,WAAW;CACZ,CAAC;AAsBF;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAgC,EAAE;IACrE,MAAM,OAAO,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,IAAI,WAAW,EAAE,CAAC,CAAC;IAC/E,IAAI,OAAO,CAAC,KAAK,EAAE,YAAY,IAAI,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"BuiltinPlugins.js","sourceRoot":"","sources":["../src/BuiltinPlugins.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAGH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAa5C;;;;GAIG;AACH,MAAM,CAAC,MAAM,sBAAsB,GAAyB;IAC1D,WAAW;IACX,SAAS;IACT,eAAe;IACf,UAAU;IACV,aAAa;IACb,UAAU;IACV,YAAY;IACZ,WAAW;CACZ,CAAC;AAqCF;;GAEG;AACH,MAAM,UAAU,oBAAoB,CAAC,UAAgC,EAAE;IACrE,MAAM,OAAO,GAAG,sBAAsB,CAAC,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CACzD,WAAW,KAAK,UAAU;QACxB,CAAC,CAAC,IAAI,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC;QAC9B,CAAC,CAAC,WAAW,KAAK,YAAY;YAC5B,CAAC,CAAC,IAAI,YAAY,CAAC,OAAO,CAAC,MAAM,CAAC;YAClC,CAAC,CAAC,WAAW,KAAK,WAAW;gBAC3B,CAAC,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC;gBACpC,CAAC,CAAC,IAAI,WAAW,EAAE,CACtB,CAAC;IACF,IAAI,OAAO,CAAC,KAAK,EAAE,YAAY,IAAI,OAAO,CAAC,KAAK,EAAE,YAAY,EAAE,CAAC;QAC/D,OAAO,CAAC,IAAI,CAAC,IAAI,WAAW,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC;IAC/C,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,IAAI,OAAO,CAAC,GAAG,EAAE,GAAG,EAAE,CAAC;QACrB,OAAO,CAAC,IAAI,CAAC,IAAI,SAAS,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC,CAAC;IAC3C,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
package/bin/index.d.ts CHANGED
@@ -18,6 +18,9 @@ export { WebPlugin } from "./web/Plugin.js";
18
18
  export { AsrPlugin } from "./asr/Plugin.js";
19
19
  export { TtsPlugin } from "./tts/Plugin.js";
20
20
  export { WorkboardPlugin } from "./workboard/Plugin.js";
21
+ export { TaskPlugin } from "./task/TaskPlugin.js";
22
+ export { MemoryPlugin } from "./memory/MemoryPlugin.js";
23
+ export { ShellPlugin } from "./shell/ShellPlugin.js";
21
24
  export { listChatAuthorizationRoles, readChatAuthorizationConfigSync, setChatAuthorizationUserRole, } from "./auth/runtime/AuthorizationConfig.js";
22
25
  export { resolveAuthorizedUserRole } from "./auth/runtime/AuthorizationPolicy.js";
23
26
  export { CHAT_AUTHORIZATION_ACTIONS, CHAT_AUTHORIZATION_CHANNELS, CHAT_AUTHORIZATION_POINTS, createDefaultChatAuthorizationRoles, isChatAuthorizationChannel, } from "./auth/types/AuthPlugin.js";
@@ -25,6 +28,9 @@ export type { ChatChannelAccountListItem, } from "./chat/types/ChannelAccount.js
25
28
  export type { BaseChatChannelOptions, ChatChannelEnv, FeishuChannelOptions, QqChannelOptions, TelegramChannelOptions, } from "./chat/channels/RuntimeChannel.js";
26
29
  export type { ChatChannel, ChatChannelRuntimePatch, ChatPluginOptions, } from "./chat/types/ChatPluginOptions.js";
27
30
  export type { ContactPluginOptions } from "./contact/types/ContactPluginOptions.js";
31
+ export type { TaskPluginOptions } from "./task/types/TaskPluginOptions.js";
32
+ export type { ResolvedShellPluginOptions, ShellPluginOptions, } from "./shell/types/ShellPluginOptions.js";
33
+ export type { MemoryActionPayload, MemoryDefaults, MemoryDigestHandler, MemoryDigestHandlerInput, MemoryDigestHandlerOutput, MemoryDigestPayload, MemoryDigestResponse, MemoryPluginOptions, MemoryReadPayload, MemoryReadResponse, MemoryRememberPayload, MemoryRememberResponse, MemoryReviseHandler, MemoryReviseHandlerInput, MemoryReviseHandlerOutput, MemoryRevisePayload, MemoryReviseResponse, MemorySearchMode, MemorySearchPayload, MemorySearchResponse, MemorySearchResultItem, MemorySourceStat, MemorySourceType, MemoryStatusResponse, MemoryWikiPageDraft, } from "./memory/types/Memory.js";
28
34
  export type { AsrPluginInput, AsrPluginOptions, AsrPluginResult, } from "./asr/types/AsrPlugin.js";
29
35
  export type { TtsPluginInput, TtsPluginOptions, TtsPluginResult, TtsPluginSimpleAudioResult, TtsPluginUiMessageResult, } from "./tts/types/TtsPlugin.js";
30
36
  export type { ImagePluginContent, ImagePluginFileContent, ImagePluginInput, ImagePluginJobCreateResult, ImagePluginJobResult, ImagePluginJobStatus, ImagePluginMessage, ImagePluginOptions, ImagePluginResult, ImagePluginTextContent, } from "./image/types/ImagePlugin.js";
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,YAAY,EACV,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EACL,aAAa,EACb,SAAS,EACT,eAAe,GAChB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,0BAA0B,EAC1B,+BAA+B,EAC/B,4BAA4B,GAC7B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,EAC3B,yBAAyB,EACzB,mCAAmC,EACnC,0BAA0B,GAC3B,MAAM,4BAA4B,CAAC;AAEpC,YAAY,EACV,0BAA0B,GAC3B,MAAM,gCAAgC,CAAC;AACxC,YAAY,EACV,sBAAsB,EACtB,cAAc,EACd,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,GACvB,MAAM,mCAAmC,CAAC;AAC3C,YAAY,EACV,WAAW,EACX,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,mCAAmC,CAAC;AAC3C,YAAY,EAAE,oBAAoB,EAAE,MAAM,yCAAyC,CAAC;AACpF,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,eAAe,GAChB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,cAAc,EACd,gBAAgB,EAChB,eAAe,EACf,0BAA0B,EAC1B,wBAAwB,GACzB,MAAM,0BAA0B,CAAC;AAClC,YAAY,EACV,kBAAkB,EAClB,sBAAsB,EACtB,gBAAgB,EAChB,0BAA0B,EAC1B,oBAAoB,EACpB,oBAAoB,EACpB,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,GACvB,MAAM,8BAA8B,CAAC;AACtC,YAAY,EACV,wBAAwB,EACxB,wBAAwB,EACxB,uBAAuB,EACvB,yBAAyB,EACzB,8BAA8B,EAC9B,+BAA+B,EAC/B,wCAAwC,EACxC,6BAA6B,EAC7B,6BAA6B,EAC7B,2BAA2B,EAC3B,+BAA+B,EAC/B,uCAAuC,EACvC,qBAAqB,EACrB,mCAAmC,EACnC,yBAAyB,EACzB,0BAA0B,EAC1B,mCAAmC,EACnC,8BAA8B,GAC/B,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/bin/index.js CHANGED
@@ -17,6 +17,9 @@ export { WebPlugin } from "./web/Plugin.js";
17
17
  export { AsrPlugin } from "./asr/Plugin.js";
18
18
  export { TtsPlugin } from "./tts/Plugin.js";
19
19
  export { WorkboardPlugin } from "./workboard/Plugin.js";
20
+ export { TaskPlugin } from "./task/TaskPlugin.js";
21
+ export { MemoryPlugin } from "./memory/MemoryPlugin.js";
22
+ export { ShellPlugin } from "./shell/ShellPlugin.js";
20
23
  export { listChatAuthorizationRoles, readChatAuthorizationConfigSync, setChatAuthorizationUserRole, } from "./auth/runtime/AuthorizationConfig.js";
21
24
  export { resolveAuthorizedUserRole } from "./auth/runtime/AuthorizationPolicy.js";
22
25
  export { CHAT_AUTHORIZATION_ACTIONS, CHAT_AUTHORIZATION_CHANNELS, CHAT_AUTHORIZATION_POINTS, createDefaultChatAuthorizationRoles, isChatAuthorizationChannel, } from "./auth/types/AuthPlugin.js";
package/bin/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EACL,aAAa,EACb,SAAS,EACT,eAAe,GAChB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EACL,0BAA0B,EAC1B,+BAA+B,EAC/B,4BAA4B,GAC7B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,EAC3B,yBAAyB,EACzB,mCAAmC,EACnC,0BAA0B,GAC3B,MAAM,4BAA4B,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,OAAO,EACL,sBAAsB,EACtB,oBAAoB,GACrB,MAAM,qBAAqB,CAAC;AAK7B,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EACL,aAAa,EACb,SAAS,EACT,eAAe,GAChB,MAAM,mCAAmC,CAAC;AAC3C,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EAAE,yBAAyB,EAAE,MAAM,0CAA0C,CAAC;AACrF,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AAClD,OAAO,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,MAAM,wBAAwB,CAAC;AACrD,OAAO,EACL,0BAA0B,EAC1B,+BAA+B,EAC/B,4BAA4B,GAC7B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,yBAAyB,EAAE,MAAM,uCAAuC,CAAC;AAClF,OAAO,EACL,0BAA0B,EAC1B,2BAA2B,EAC3B,yBAAyB,EACzB,mCAAmC,EACnC,0BAA0B,GAC3B,MAAM,4BAA4B,CAAC"}
@@ -1,14 +1,15 @@
1
1
  /**
2
- * Memory Service Action 逻辑。
2
+ * Memory Plugin action 逻辑。
3
3
  *
4
4
  * 关键点(中文)
5
- * - 只处理业务动作,不包含 CLI/API 参数映射细节。
6
- * - 所有动作统一返回结构化结果,失败不抛给上层。
5
+ * - action 面向 agent 的记忆语义:search/read/remember/digest/revise。
6
+ * - 原始证据先进入 sources,长期知识进入 wiki。
7
+ * - LLM digest/revise 能力由 MemoryPlugin constructor 注入。
7
8
  */
8
9
  import type { PluginActionResult } from "@downcity/agent/internal/plugin/types/Plugin.js";
9
10
  import type { AgentContext } from "@downcity/agent/internal/types/runtime/agent/AgentContext.js";
10
11
  import type { JsonValue } from "@downcity/agent/internal/types/common/Json.js";
11
- import type { MemoryFlushPayload, MemoryGetPayload, MemorySearchPayload, MemoryStorePayload } from "../memory/types/Memory.js";
12
+ import type { MemoryDigestPayload, MemoryPluginOptions, MemoryReadPayload, MemoryRememberPayload, MemoryRevisePayload, MemorySearchPayload } from "../memory/types/Memory.js";
12
13
  import { type MemoryRuntimeState } from "./runtime/Store.js";
13
14
  /**
14
15
  * status action。
@@ -19,17 +20,21 @@ export declare function statusMemoryAction(context: AgentContext, state: MemoryR
19
20
  */
20
21
  export declare function searchMemoryAction(context: AgentContext, state: MemoryRuntimeState, payload: MemorySearchPayload): Promise<PluginActionResult<JsonValue>>;
21
22
  /**
22
- * get action。
23
+ * read action。
23
24
  */
24
- export declare function getMemoryAction(context: AgentContext, payload: MemoryGetPayload): Promise<PluginActionResult<JsonValue>>;
25
+ export declare function readMemoryAction(context: AgentContext, payload: MemoryReadPayload): Promise<PluginActionResult<JsonValue>>;
25
26
  /**
26
- * store action。
27
+ * remember action。
27
28
  */
28
- export declare function storeMemoryAction(context: AgentContext, state: MemoryRuntimeState, payload: MemoryStorePayload): Promise<PluginActionResult<JsonValue>>;
29
+ export declare function rememberMemoryAction(context: AgentContext, options: MemoryPluginOptions, payload: MemoryRememberPayload): Promise<PluginActionResult<JsonValue>>;
29
30
  /**
30
- * flush action。
31
+ * digest action。
31
32
  */
32
- export declare function flushMemoryAction(context: AgentContext, state: MemoryRuntimeState, payload: MemoryFlushPayload): Promise<PluginActionResult>;
33
+ export declare function digestMemoryAction(context: AgentContext, options: MemoryPluginOptions, payload: MemoryDigestPayload): Promise<PluginActionResult<JsonValue>>;
34
+ /**
35
+ * revise action。
36
+ */
37
+ export declare function reviseMemoryAction(context: AgentContext, options: MemoryPluginOptions, payload: MemoryRevisePayload): Promise<PluginActionResult<JsonValue>>;
33
38
  /**
34
39
  * 把任意 payload 归一化为 search payload。
35
40
  */
@@ -1 +1 @@
1
- {"version":3,"file":"Action.d.ts","sourceRoot":"","sources":["../../src/memory/Action.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AAC1F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAC;AACjG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAC/E,OAAO,KAAK,EACV,kBAAkB,EAClB,gBAAgB,EAChB,mBAAmB,EACnB,kBAAkB,EACnB,MAAM,0BAA0B,CAAC;AAMlC,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,oBAAoB,CAAC;AAG5B;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAaxC;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAaxC;AAED;;GAEG;AACH,wBAAsB,eAAe,CACnC,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAUxC;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAUxC;AAED;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE,kBAAkB,GAC1B,OAAO,CAAC,kBAAkB,CAAC,CAU7B;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,mBAAmB,CAgBnF"}
1
+ {"version":3,"file":"Action.d.ts","sourceRoot":"","sources":["../../src/memory/Action.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,iDAAiD,CAAC;AAC1F,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAC;AACjG,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,+CAA+C,CAAC;AAC/E,OAAO,KAAK,EACV,mBAAmB,EAEnB,mBAAmB,EACnB,iBAAiB,EACjB,qBAAqB,EAErB,mBAAmB,EAEnB,mBAAmB,EACpB,MAAM,0BAA0B,CAAC;AAKlC,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,oBAAoB,CAAC;AAyF5B;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAaxC;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,YAAY,EACrB,KAAK,EAAE,kBAAkB,EACzB,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAaxC;AAED;;GAEG;AACH,wBAAsB,gBAAgB,CACpC,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,iBAAiB,GACzB,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAUxC;AAED;;GAEG;AACH,wBAAsB,oBAAoB,CACxC,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,qBAAqB,GAC7B,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CA2DxC;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAwExC;AAED;;GAEG;AACH,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,YAAY,EACrB,OAAO,EAAE,mBAAmB,EAC5B,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,kBAAkB,CAAC,SAAS,CAAC,CAAC,CAgDxC;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,mBAAmB,CAsBnF"}
@@ -1,14 +1,77 @@
1
1
  /**
2
- * Memory Service Action 逻辑。
2
+ * Memory Plugin action 逻辑。
3
3
  *
4
4
  * 关键点(中文)
5
- * - 只处理业务动作,不包含 CLI/API 参数映射细节。
6
- * - 所有动作统一返回结构化结果,失败不抛给上层。
5
+ * - action 面向 agent 的记忆语义:search/read/remember/digest/revise。
6
+ * - 原始证据先进入 sources,长期知识进入 wiki。
7
+ * - LLM digest/revise 能力由 MemoryPlugin constructor 注入。
7
8
  */
8
- import { flushMemory } from "./runtime/Flush.js";
9
+ import { isTextUIPart } from "ai";
9
10
  import { collectMemoryStatus, searchMemory, } from "./runtime/Search.js";
10
11
  import { MEMORY_DEFAULTS, } from "./runtime/Store.js";
11
- import { getMemory, storeMemory } from "./runtime/Writer.js";
12
+ import { appendManualSource, appendMemoryRevision, appendWikiPage, readMemory, readWikiIndex, writeSessionSource, writeWikiPage, } from "./runtime/Writer.js";
13
+ function toUiParts(message) {
14
+ return Array.isArray(message?.parts) ? message.parts : [];
15
+ }
16
+ function extractReadableLine(message) {
17
+ const role = String(message.role || "").toLowerCase() === "user" ? "User" : "Assistant";
18
+ const text = toUiParts(message)
19
+ .filter(isTextUIPart)
20
+ .map((part) => String(part.text || "").trim())
21
+ .filter(Boolean)
22
+ .join("\n")
23
+ .trim();
24
+ if (!text) {
25
+ return "";
26
+ }
27
+ return `${role}: ${text}`;
28
+ }
29
+ function readDigestPages(result) {
30
+ if (typeof result === "string") {
31
+ return {
32
+ pages: [{ title: "Memory Digest", content: result, tags: ["memory", "digest"] }],
33
+ };
34
+ }
35
+ return {
36
+ pages: result.pages,
37
+ summary: result.summary,
38
+ };
39
+ }
40
+ function readReviseResult(result, fallbackPath) {
41
+ if (typeof result === "string") {
42
+ return {
43
+ path: fallbackPath,
44
+ content: result,
45
+ };
46
+ }
47
+ return {
48
+ path: result.path || fallbackPath,
49
+ content: result.content,
50
+ summary: result.summary,
51
+ };
52
+ }
53
+ function slugify(value) {
54
+ const text = String(value || "")
55
+ .trim()
56
+ .toLowerCase()
57
+ .replace(/[^\p{L}\p{N}]+/gu, "-")
58
+ .replace(/^-+|-+$/g, "")
59
+ .slice(0, 80);
60
+ return text || "inbox";
61
+ }
62
+ function toWikiMemoryPath(value) {
63
+ const clean = String(value || "").replace(/\\/g, "/").replace(/^\/+/, "").trim();
64
+ if (!clean)
65
+ return ".downcity/memory/wiki/inbox.md";
66
+ if (clean.startsWith(".downcity/memory/wiki/")) {
67
+ return clean.toLowerCase().endsWith(".md") ? clean : `${clean}.md`;
68
+ }
69
+ const withoutPrefix = clean.replace(/^wiki\//, "");
70
+ const withExt = withoutPrefix.toLowerCase().endsWith(".md")
71
+ ? withoutPrefix
72
+ : `${withoutPrefix}.md`;
73
+ return `.downcity/memory/wiki/${withExt}`;
74
+ }
12
75
  /**
13
76
  * status action。
14
77
  */
@@ -46,11 +109,11 @@ export async function searchMemoryAction(context, state, payload) {
46
109
  }
47
110
  }
48
111
  /**
49
- * get action。
112
+ * read action。
50
113
  */
51
- export async function getMemoryAction(context, payload) {
114
+ export async function readMemoryAction(context, payload) {
52
115
  try {
53
- const data = await getMemory(context, payload);
116
+ const data = await readMemory(context, payload);
54
117
  return { success: true, data: data };
55
118
  }
56
119
  catch (error) {
@@ -61,12 +124,56 @@ export async function getMemoryAction(context, payload) {
61
124
  }
62
125
  }
63
126
  /**
64
- * store action。
127
+ * remember action。
65
128
  */
66
- export async function storeMemoryAction(context, state, payload) {
129
+ export async function rememberMemoryAction(context, options, payload) {
67
130
  try {
68
- const data = await storeMemory(context, state, payload);
69
- return { success: true, data: data };
131
+ const content = String(payload.content || "").trim();
132
+ if (!content) {
133
+ throw new Error("content is required");
134
+ }
135
+ const source = await appendManualSource(context, content, payload.source);
136
+ const targetPath = toWikiMemoryPath(payload.path || slugify(payload.topic || "inbox"));
137
+ if (options.revise) {
138
+ const current = await readMemory(context, { path: targetPath }).catch(() => ({
139
+ path: targetPath,
140
+ text: "",
141
+ }));
142
+ const revised = readReviseResult(await options.revise({
143
+ rootPath: context.rootPath,
144
+ path: targetPath,
145
+ currentContent: current.text,
146
+ instruction: "Integrate this new memory into the wiki page. Deduplicate and keep it concise.",
147
+ evidence: `${content}\n\nSource: ${source.path}`,
148
+ }), targetPath);
149
+ const written = await writeWikiPage(context, {
150
+ path: revised.path,
151
+ title: payload.topic,
152
+ content: revised.content,
153
+ tags: ["memory"],
154
+ });
155
+ const response = {
156
+ sourcePath: source.path,
157
+ wikiPath: written.path,
158
+ mode: "revised",
159
+ writtenChars: written.writtenChars,
160
+ summary: revised.summary,
161
+ };
162
+ return { success: true, data: response };
163
+ }
164
+ const written = await appendWikiPage(context, {
165
+ path: targetPath,
166
+ title: payload.topic || "Memory Inbox",
167
+ content,
168
+ sourcePath: source.path,
169
+ });
170
+ const response = {
171
+ sourcePath: source.path,
172
+ wikiPath: written.path,
173
+ mode: "appended",
174
+ writtenChars: written.writtenChars,
175
+ };
176
+ return { success: true, data: response };
70
177
  }
71
178
  catch (error) {
72
179
  return {
@@ -76,12 +183,117 @@ export async function storeMemoryAction(context, state, payload) {
76
183
  }
77
184
  }
78
185
  /**
79
- * flush action。
186
+ * digest action。
80
187
  */
81
- export async function flushMemoryAction(context, state, payload) {
188
+ export async function digestMemoryAction(context, options, payload) {
82
189
  try {
83
- const data = await flushMemory(context, state, payload);
84
- return { success: true, data: data };
190
+ const sessionId = String(payload.sessionId || "").trim();
191
+ if (!sessionId) {
192
+ throw new Error("sessionId is required");
193
+ }
194
+ const maxMessages = Number.isFinite(payload.maxMessages)
195
+ ? Math.max(1, Math.floor(payload.maxMessages))
196
+ : 30;
197
+ const historyStore = context.session.get(sessionId).getHistoryStore();
198
+ const total = await historyStore.size();
199
+ const start = Math.max(0, total - maxMessages);
200
+ const messages = await historyStore.slice(start, total);
201
+ const lines = messages
202
+ .map((msg) => extractReadableLine(msg))
203
+ .filter((line) => line.length > 0);
204
+ const transcript = lines.length > 0
205
+ ? lines.join("\n\n")
206
+ : "本次 digest 未找到可写入的用户/助手文本内容。";
207
+ const sourceText = [
208
+ `Window: ${start}-${Math.max(start, total - 1)}`,
209
+ "",
210
+ transcript,
211
+ ].join("\n");
212
+ const source = await writeSessionSource(context, sessionId, sourceText);
213
+ if (options.digest) {
214
+ const wikiIndex = await readWikiIndex(context);
215
+ const digested = readDigestPages(await options.digest({
216
+ rootPath: context.rootPath,
217
+ sourceText,
218
+ sourcePath: source.path,
219
+ sessionId,
220
+ wikiIndex,
221
+ }));
222
+ const wikiPaths = [];
223
+ for (const page of digested.pages) {
224
+ const written = await writeWikiPage(context, page);
225
+ wikiPaths.push(written.path);
226
+ }
227
+ const response = {
228
+ sourcePath: source.path,
229
+ wikiPaths,
230
+ messageCount: lines.length,
231
+ mode: "digested",
232
+ summary: digested.summary,
233
+ };
234
+ return { success: true, data: response };
235
+ }
236
+ const written = await appendWikiPage(context, {
237
+ path: "session-digests",
238
+ title: "Session Digests",
239
+ content: sourceText,
240
+ sourcePath: source.path,
241
+ });
242
+ const response = {
243
+ sourcePath: source.path,
244
+ wikiPaths: [written.path],
245
+ messageCount: lines.length,
246
+ mode: "archived",
247
+ };
248
+ return { success: true, data: response };
249
+ }
250
+ catch (error) {
251
+ return {
252
+ success: false,
253
+ error: String(error),
254
+ };
255
+ }
256
+ }
257
+ /**
258
+ * revise action。
259
+ */
260
+ export async function reviseMemoryAction(context, options, payload) {
261
+ try {
262
+ const targetPath = toWikiMemoryPath(String(payload.path || "").trim());
263
+ if (!targetPath) {
264
+ throw new Error("path is required");
265
+ }
266
+ const instruction = String(payload.instruction || "").trim();
267
+ if (!instruction) {
268
+ throw new Error("instruction is required");
269
+ }
270
+ if (options.revise) {
271
+ const current = await readMemory(context, { path: targetPath }).catch(() => ({
272
+ path: targetPath,
273
+ text: "",
274
+ }));
275
+ const revised = readReviseResult(await options.revise({
276
+ rootPath: context.rootPath,
277
+ path: targetPath,
278
+ currentContent: current.text,
279
+ instruction,
280
+ evidence: String(payload.evidence || ""),
281
+ }), targetPath);
282
+ const written = await writeWikiPage(context, {
283
+ path: revised.path,
284
+ content: revised.content,
285
+ tags: ["memory"],
286
+ });
287
+ const response = {
288
+ path: written.path,
289
+ mode: "revised",
290
+ writtenChars: written.writtenChars,
291
+ summary: revised.summary,
292
+ };
293
+ return { success: true, data: response };
294
+ }
295
+ const response = await appendMemoryRevision(context, payload);
296
+ return { success: true, data: response };
85
297
  }
86
298
  catch (error) {
87
299
  return {
@@ -106,6 +318,11 @@ export function toSearchPayload(input) {
106
318
  : typeof input.minScore === "string"
107
319
  ? Number(input.minScore)
108
320
  : MEMORY_DEFAULTS.minScore,
321
+ includeSources: typeof input.includeSources === "boolean"
322
+ ? input.includeSources
323
+ : typeof input.includeSources === "string"
324
+ ? input.includeSources === "true"
325
+ : undefined,
109
326
  };
110
327
  }
111
328
  //# sourceMappingURL=Action.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"Action.js","sourceRoot":"","sources":["../../src/memory/Action.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Action.js","sourceRoot":"","sources":["../../src/memory/Action.ts"],"names":[],"mappings":"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"}
@@ -1,19 +1,21 @@
1
1
  /**
2
- * MemoryPlugin:memory plugin 的类实现。
2
+ * MemoryPlugin:agent 的长期记忆 plugin
3
3
  *
4
4
  * 关键点(中文)
5
- * - memory plugin state 现在归属于 plugin 实例。
6
- * - agent 持有 MemoryPlugin 实例,从而天然形成 per-agent 状态边界。
7
- * - 运行态只在实例内部缓存,不再放到模块级 Map。
5
+ * - 对外仍然是 MemoryPlugin,内部使用 LLM Wiki 方式组织知识。
6
+ * - constructor 注入 digest/revise 能力,plugin 不绑定具体 LLM 服务。
7
+ * - action 面向 agent 语义,而不是暴露底层文件写入细节。
8
8
  */
9
9
  import type { AgentContext } from "@downcity/agent/internal/types/runtime/agent/AgentContext.js";
10
10
  import type { PluginActions } from "@downcity/agent/internal/plugin/types/Plugin.js";
11
11
  import { BasePlugin } from "@downcity/agent/internal/plugin/core/BasePlugin.js";
12
12
  import { type MemoryRuntimeState } from "./runtime/Store.js";
13
+ import type { MemoryPluginOptions } from "./types/Memory.js";
13
14
  /**
14
15
  * Memory plugin 类实现。
15
16
  */
16
17
  export declare class MemoryPlugin extends BasePlugin {
18
+ private readonly options;
17
19
  /**
18
20
  * plugin 名称。
19
21
  */
@@ -22,6 +24,10 @@ export declare class MemoryPlugin extends BasePlugin {
22
24
  * 当前实例持有的 memory plugin state。
23
25
  */
24
26
  runtimeState: MemoryRuntimeState | null;
27
+ /**
28
+ * 创建 MemoryPlugin。
29
+ */
30
+ constructor(options?: MemoryPluginOptions);
25
31
  /**
26
32
  * 当前 plugin 的 system 文本提供器。
27
33
  */
@@ -1 +1 @@
1
- {"version":3,"file":"MemoryPlugin.d.ts","sourceRoot":"","sources":["../../src/memory/MemoryPlugin.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAC;AACjG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,oDAAoD,CAAC;AAQhF,OAAO,EAIL,KAAK,kBAAkB,EACxB,MAAM,oBAAoB,CAAC;AAkD5B;;GAEG;AACH,qBAAa,YAAa,SAAQ,UAAU;IAC1C;;OAEG;IACH,QAAQ,CAAC,IAAI,YAAY;IAEzB;;OAEG;IACI,YAAY,EAAE,kBAAkB,GAAG,IAAI,CAAQ;IAEtD;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAIpD;;OAEG;IACH,QAAQ,CAAC,SAAS;yBACO,YAAY,KAAG,OAAO,CAAC,IAAI,CAAC;oBAKnC,OAAO,CAAC,IAAI,CAAC;MAK7B;IAEF;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,aAAa,CA2I7B;IAEF;;OAEG;IACH,OAAO,CAAC,uBAAuB;CAMhC"}
1
+ {"version":3,"file":"MemoryPlugin.d.ts","sourceRoot":"","sources":["../../src/memory/MemoryPlugin.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,8DAA8D,CAAC;AACjG,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,iDAAiD,CAAC;AACrF,OAAO,EAAE,UAAU,EAAE,MAAM,oDAAoD,CAAC;AAShF,OAAO,EAEL,KAAK,kBAAkB,EACxB,MAAM,oBAAoB,CAAC;AAG5B,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC;AAqD7D;;GAEG;AACH,qBAAa,YAAa,SAAQ,UAAU;IAc9B,OAAO,CAAC,QAAQ,CAAC,OAAO;IAbpC;;OAEG;IACH,QAAQ,CAAC,IAAI,YAAY;IAEzB;;OAEG;IACI,YAAY,EAAE,kBAAkB,GAAG,IAAI,CAAQ;IAEtD;;OAEG;gBAC0B,OAAO,GAAE,mBAAwB;IAI9D;;OAEG;IACG,MAAM,CAAC,OAAO,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC;IAIpD;;OAEG;IACH,QAAQ,CAAC,SAAS;yBACO,YAAY,KAAG,OAAO,CAAC,IAAI,CAAC;oBAInC,OAAO,CAAC,IAAI,CAAC;MAG7B;IAEF;;OAEG;IACH,QAAQ,CAAC,OAAO,EAAE,aAAa,CA4K7B;IAEF;;OAEG;IACH,OAAO,CAAC,uBAAuB;CAMhC"}