@aalis/plugin-session-manager 0.11.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.d.ts CHANGED
@@ -1,21 +1,34 @@
1
- import type { SessionConfig } from '@aalis/api-session-manager';
2
- import type { Context, PluginModule } from '@aalis/core';
3
- import type { ConfigSchema } from '@aalis/schema-config';
1
+ import { type MemoryService } from '@aalis/api-memory';
2
+ import { type SessionConfig } from '@aalis/api-session-manager';
4
3
  export type { PlatformProfile, SessionConfig, SessionInfo, SessionManagerService, SessionTreeNode, } from '@aalis/api-session-manager';
5
- export declare const name = "@aalis/plugin-session-manager";
6
- export declare const displayName = "\u4F1A\u8BDD\u7BA1\u7406";
7
- export declare const subsystem = "session";
8
- export declare const inject: {
9
- required: readonly ["memory"];
10
- optional: readonly ["agent", "platform", "persona", "llm"];
11
- };
12
- export declare const provides: string[];
13
- export declare const configSchema: ConfigSchema;
14
4
  /**
15
5
  * WebUI 传来的会话配置补丁:JSON 带不了 undefined,前端用 null 表示「删除该键、恢复继承」。
16
6
  * updateSession 是合并语义,键置为 undefined 即从生效配置里消失(resolveConfig 会 strip)。
17
7
  */
18
8
  export declare function normalizeSessionConfigPatch(patch: unknown): Partial<SessionConfig>;
19
- export declare const actions: PluginModule['actions'];
20
- export declare function apply(ctx: Context, config: Record<string, unknown>): Promise<void>;
9
+ declare const _default: import("@aalis/core").PluginDefinition<{
10
+ /** 会话档案与消息历史的唯一落点:没有 memory 就没有会话管理 */
11
+ memory: import("@aalis/core").ServiceDescriptor<MemoryService, import("@aalis/core").ServiceRef<MemoryService>>;
12
+ /**
13
+ * 本插件不调用 agent 的方法;声明它是为了 agent:* 钩子的键类型。
14
+ * 第一方栈由 core 关停编排(optional 环成员先全部 drain)与 `agent:turn:after` 收口;
15
+ * 此处 onDrain 兜的是未装 agent 或钩子未挂上的路径。
16
+ */
17
+ agent: import("@aalis/core/dist/composition/descriptors").OptionalUse<import("@aalis/api-agent").AgentService, import("@aalis/api-agent").BoundAgent>;
18
+ /** 自动标题的模型来源;没有 LLM 时退回用户消息首段 */
19
+ llm: import("@aalis/core/dist/composition/descriptors").OptionalUse<import("@aalis/api-llm").LLMModel, import("@aalis/core").ServiceRef<import("@aalis/api-llm").LLMModel>>;
20
+ /** 下列三项只供 WebUI 下拉框枚举选项,缺席即空列表 */
21
+ persona: import("@aalis/core/dist/composition/descriptors").OptionalUse<import("@aalis/api-persona").PersonaService, import("@aalis/core").ServiceRef<import("@aalis/api-persona").PersonaService>>;
22
+ platform: import("@aalis/core/dist/composition/descriptors").OptionalUse<import("@aalis/api-platform").PlatformAdapter, import("@aalis/core").ServiceRef<import("@aalis/api-platform").PlatformAdapter>>;
23
+ tools: import("@aalis/core/dist/composition/descriptors").OptionalUse<import("@aalis/api-tools").ToolService, import("@aalis/api-tools").BoundTools>;
24
+ /** 页面与页面动作的登记口;无 WebUI 时会话管理照常在后台运行 */
25
+ webui: import("@aalis/core/dist/composition/descriptors").OptionalUse<import("@aalis/api-webui").WebUIService, import("@aalis/api-webui").BoundWebui>;
26
+ events: import("@aalis/core").ServiceDescriptor<(identity: symbol) => import("@aalis/core").Events, import("@aalis/core").Events>;
27
+ hooks: import("@aalis/core").ServiceDescriptor<(identity: symbol) => import("@aalis/core").Hooks, import("@aalis/core").Hooks>;
28
+ lifecycle: import("@aalis/core").ServiceDescriptor<(identity: symbol) => import("@aalis/core").LifecycleCap, import("@aalis/core").LifecycleCap>;
29
+ logger: import("@aalis/core").ServiceDescriptor<(identity: symbol) => import("@aalis/core").Logger, import("@aalis/core").Logger>;
30
+ config: import("@aalis/core").ServiceDescriptor<(identity: symbol) => Readonly<Record<string, unknown>>, Readonly<Record<string, unknown>>>;
31
+ provide: import("@aalis/core").ServiceDescriptor<(identity: symbol) => import("@aalis/core").Provide, import("@aalis/core").Provide>;
32
+ }>;
33
+ export default _default;
21
34
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAEV,aAAa,EAId,MAAM,4BAA4B,CAAC;AAIpC,OAAO,KAAK,EAAE,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGzD,YAAY,EACV,eAAe,EACf,aAAa,EACb,WAAW,EACX,qBAAqB,EACrB,eAAe,GAChB,MAAM,4BAA4B,CAAC;AAIpC,eAAO,MAAM,IAAI,kCAAkC,CAAC;AACpD,eAAO,MAAM,WAAW,6BAAS,CAAC;AAClC,eAAO,MAAM,SAAS,YAAY,CAAC;AACnC,eAAO,MAAM,MAAM;;;CAGlB,CAAC;AACF,eAAO,MAAM,QAAQ,UAAsB,CAAC;AAE5C,eAAO,MAAM,YAAY,EAAE,YAsE1B,CAAC;AAeF;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,CAKlF;AAcD,eAAO,MAAM,OAAO,EAAE,YAAY,CAAC,SAAS,CA8N3C,CAAC;AA0lBF,wBAAsB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CA+FxF"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,aAAa,EAA2B,MAAM,mBAAmB,CAAC;AAGhF,OAAO,EAEL,KAAK,aAAa,EAKnB,MAAM,4BAA4B,CAAC;AAOpC,YAAY,EACV,eAAe,EACf,aAAa,EACb,WAAW,EACX,qBAAqB,EACrB,eAAe,GAChB,MAAM,4BAA4B,CAAC;AAuFpC;;;GAGG;AACH,wBAAgB,2BAA2B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAAC,aAAa,CAAC,CAKlF;;IA8zBC,uCAAuC;;IAEvC;;;;OAIG;;IAEH,iCAAiC;;IAEjC,kCAAkC;;;;IAIlC,uCAAuC;;;;;;;;;AAWzC,wBAQG"}
package/dist/index.js CHANGED
@@ -1,15 +1,13 @@
1
- import { listLLMModels, resolveLLMModel } from '@aalis/api-llm';
2
- import { useWebuiService } from '@aalis/api-webui';
3
- // ===== 插件元数据 =====
4
- export const name = '@aalis/plugin-session-manager';
5
- export const displayName = '会话管理';
6
- export const subsystem = 'session';
7
- export const inject = {
8
- required: ['memory'],
9
- optional: ['agent', 'platform', 'persona', 'llm'],
10
- };
11
- export const provides = ['session-manager'];
12
- export const configSchema = {
1
+ import { agent } from '@aalis/api-agent';
2
+ import { listLLMModels, llm, resolveLLMModel } from '@aalis/api-llm';
3
+ import { memory } from '@aalis/api-memory';
4
+ import { persona } from '@aalis/api-persona';
5
+ import { platform } from '@aalis/api-platform';
6
+ import { sessionManager, } from '@aalis/api-session-manager';
7
+ import { tools } from '@aalis/api-tools';
8
+ import { webuiServer } from '@aalis/api-webui';
9
+ import { config, definePlugin, events, hooks, lifecycle, logger, optional, provide } from '@aalis/core';
10
+ const configSchema = {
13
11
  defaults: {
14
12
  label: '全局默认配置',
15
13
  description: '所有平台共享的最低层默认配置(platform profile 之下的 fallback)。LLM 默认模型由各 agent 插件通过 ServicePreference 锁定,不再在此配置;本节仅保留 persona 等通用默认。',
@@ -100,249 +98,11 @@ const webuiPages = [
100
98
  renderer: 'sessions',
101
99
  },
102
100
  ];
103
- // ===== Actions =====
104
- export const actions = {
105
- async listSessions(ctx) {
106
- const sm = ctx.getService('session-manager');
107
- if (!sm)
108
- return [];
109
- const sessions = sm.listSessions();
110
- return sessions.map(s => ({
111
- ...s,
112
- displayTitle: s.title || s.name,
113
- configSummary: formatConfigSummary(s.config),
114
- childCount: s.children.length,
115
- }));
116
- },
117
- async createSession(ctx, args) {
118
- const sm = ctx.getService('session-manager');
119
- if (!sm)
120
- throw new Error('session-manager 服务不可用');
121
- const parentId = args.parentId || undefined;
122
- // 新建会话时复制当前生效配置,而非留空继承
123
- let config = args.config || {};
124
- if (Object.keys(config).length === 0) {
125
- if (parentId) {
126
- // 子会话:复制父会话的 resolved config
127
- config = { ...sm.resolveConfig(parentId, 'webui') };
128
- }
129
- else {
130
- // 根会话:复制 webui 平台 profile 作为初始配置
131
- const profiles = sm.getPlatformProfiles();
132
- if (profiles.webui)
133
- config = { ...profiles.webui };
134
- }
135
- }
136
- const session = await sm.createSession({
137
- name: args.name ||
138
- `会话 ${new Date().toLocaleString('zh-CN', { month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit' })}`,
139
- parentId,
140
- config,
141
- createdBy: 'user',
142
- // 新建的空会话尚未发生任何对话,初始为 'waiting'(等待中)而非 'active'(进行中)。
143
- // 否则侧栏新建的会话会一直显示"进行中"——直到首条消息触发 inbound→active→turn:after→completed。
144
- status: 'waiting',
145
- });
146
- return session;
147
- },
148
- async deleteSession(ctx, args) {
149
- const sm = ctx.getService('session-manager');
150
- if (!sm)
151
- throw new Error('session-manager 服务不可用');
152
- const id = args.id;
153
- if (!id)
154
- throw new Error('缺少会话 ID');
155
- await sm.deleteSession(id);
156
- return { success: true };
157
- },
158
- async updateSessionConfig(ctx, args) {
159
- const sm = ctx.getService('session-manager');
160
- if (!sm)
161
- throw new Error('session-manager 服务不可用');
162
- const id = args.id;
163
- if (!id)
164
- throw new Error('缺少会话 ID');
165
- const session = await sm.updateSession(id, { config: normalizeSessionConfigPatch(args.config) });
166
- return session;
167
- },
168
- async getSessionHistory(ctx, args) {
169
- const memory = ctx.getService('memory');
170
- if (!memory)
171
- throw new Error('memory 服务不可用');
172
- const sessionId = args.sessionId;
173
- if (!sessionId)
174
- throw new Error('缺少 sessionId');
175
- const limit = args.limit || 100;
176
- const history = await memory.getHistory(sessionId, limit);
177
- return { sessionId, messages: history };
178
- },
179
- /** 批量归档会话 */
180
- async batchArchive(ctx, args) {
181
- const sm = ctx.getService('session-manager');
182
- if (!sm)
183
- throw new Error('session-manager 服务不可用');
184
- const ids = args.ids;
185
- if (!Array.isArray(ids) || ids.length === 0)
186
- throw new Error('缺少会话 ID 列表');
187
- let count = 0;
188
- for (const id of ids) {
189
- try {
190
- await sm.updateSession(id, { status: 'archived' });
191
- count++;
192
- }
193
- catch {
194
- /* skip */
195
- }
196
- }
197
- return { success: true, count };
198
- },
199
- /** 批量删除会话 */
200
- async batchDelete(ctx, args) {
201
- const sm = ctx.getService('session-manager');
202
- if (!sm)
203
- throw new Error('session-manager 服务不可用');
204
- const ids = args.ids;
205
- if (!Array.isArray(ids) || ids.length === 0)
206
- throw new Error('缺少会话 ID 列表');
207
- let count = 0;
208
- for (const id of ids) {
209
- try {
210
- await sm.deleteSession(id);
211
- count++;
212
- }
213
- catch {
214
- /* skip */
215
- }
216
- }
217
- return { success: true, count };
218
- },
219
- async getSessionTree(ctx) {
220
- const sm = ctx.getService('session-manager');
221
- if (!sm)
222
- return [];
223
- return sm.getTree();
224
- },
225
- /** 获取可选项列表(供前端下拉框使用) */
226
- async getConfigOptions(ctx) {
227
- // 可用人设列表
228
- const persona = ctx.getService('persona');
229
- const personas = persona?.listModels ? await persona.listModels() : [];
230
- // 可用 LLM 模型列表(枚举所有 chat-capable entry)
231
- let models = [];
232
- try {
233
- const entries = listLLMModels(ctx, { caps: ['chat'] });
234
- models = entries.map(e => ({
235
- id: e.instance.id,
236
- capabilities: [...e.instance.capabilities],
237
- provider: e.instance.providerId,
238
- contextId: e.contextId,
239
- }));
240
- }
241
- catch {
242
- /* llm 服务不可用 */
243
- }
244
- // 工具分组列表
245
- let toolGroups = [];
246
- try {
247
- const tools = ctx.getService('tools');
248
- if (tools)
249
- toolGroups = tools.getGroups().map(g => ({ name: g.name, label: g.label }));
250
- }
251
- catch {
252
- /* tools 服务不可用 */
253
- }
254
- // 已注册平台列表
255
- const platforms = [];
256
- try {
257
- const allPlatforms = ctx.getAllServices('platform');
258
- for (const p of allPlatforms) {
259
- if (p.instance.platform && !platforms.includes(p.instance.platform)) {
260
- platforms.push(p.instance.platform);
261
- }
262
- }
263
- }
264
- catch {
265
- /* platform 服务不可用 */
266
- }
267
- // 平台 profiles
268
- const sm = ctx.getService('session-manager');
269
- const profiles = sm?.getPlatformProfiles() ?? {};
270
- return { personas, models, toolGroups, platforms, profiles };
271
- },
272
- /** 获取指定会话的最终生效配置(合并所有层级后的结果) */
273
- async getResolvedConfig(ctx, args) {
274
- const sm = ctx.getService('session-manager');
275
- if (!sm)
276
- throw new Error('session-manager 服务不可用');
277
- const sessionId = args.sessionId;
278
- if (!sessionId)
279
- throw new Error('缺少 sessionId');
280
- const platform = args.platform;
281
- return sm.resolveConfig(sessionId, platform);
282
- },
283
- /**
284
- * 获取「继承默认」——不含 session 自身 config,只算 platform profile + 父 sessionDefaults。
285
- * WebUI 「继承 (xxx)」提示用这个,避免显示用户自己的覆盖值。
286
- */
287
- async getInheritedDefaults(ctx, args) {
288
- const sm = ctx.getService('session-manager');
289
- if (!sm)
290
- throw new Error('session-manager 服务不可用');
291
- const sessionId = args.sessionId;
292
- if (!sessionId)
293
- throw new Error('缺少 sessionId');
294
- const platform = args.platform;
295
- return sm.resolveInheritedDefaults(sessionId, platform);
296
- },
297
- /** 获取会话详情(含完整消息历史,包括已归档消息) */
298
- async getSessionDetail(ctx, args) {
299
- const sm = ctx.getService('session-manager');
300
- const memory = ctx.getService('memory');
301
- if (!sm || !memory)
302
- throw new Error('服务不可用');
303
- const id = args.id;
304
- if (!id)
305
- throw new Error('缺少会话 ID');
306
- const session = sm.getSession(id);
307
- if (!session)
308
- throw new Error(`会话不存在: ${id}`);
309
- const limit = args.limit || 200;
310
- // 优先使用 getFullHistory(含已归档消息),确保 UI 能看到完整对话
311
- const messages = memory.getFullHistory
312
- ? await memory.getFullHistory(id, limit)
313
- : await memory.getHistory(id, limit);
314
- return { session, messages };
315
- },
316
- /** 手动重命名会话标题 */
317
- async renameSession(ctx, args) {
318
- const sm = ctx.getService('session-manager');
319
- if (!sm)
320
- throw new Error('session-manager 服务不可用');
321
- const id = args.id;
322
- const title = args.title;
323
- if (!id || !title)
324
- throw new Error('缺少 id 或 title');
325
- await sm.updateSessionTitle(id, title);
326
- return { success: true };
327
- },
328
- /** 归档子会话(父已不再需要) */
329
- async archiveSession(ctx, args) {
330
- const sm = ctx.getService('session-manager');
331
- if (!sm)
332
- throw new Error('session-manager 服务不可用');
333
- const id = args.id;
334
- if (!id)
335
- throw new Error('缺少会话 ID');
336
- await archiveRecursively(sm, id);
337
- return { success: true };
338
- },
339
- };
340
101
  // ===== 辅助函数 =====
341
102
  /**
342
103
  * 递归归档:先归档所有子会话再归档自己。
343
104
  *
344
- * 不能写成 action 里的 `this.archiveSession(...)` —— webui-server 是把函数从 actions 对象里
345
- * 取出来单独调用的(this === undefined),一旦有子会话就抛 TypeError 且父会话也没归档。
105
+ * 写成自由函数而非方法:页面动作是被单独取出调用的(没有 receiver),递归不能依赖 this。
346
106
  */
347
107
  async function archiveRecursively(sm, id) {
348
108
  const session = sm.getSession(id);
@@ -366,26 +126,31 @@ function formatConfigSummary(config) {
366
126
  parts.push(`persona:${config.persona}`);
367
127
  return parts.join(', ') || '(默认)';
368
128
  }
369
- // ===== SessionManager 实现 =====
370
129
  class SessionManager {
371
130
  sessions = new Map();
372
- ctx;
131
+ caps;
373
132
  persistTimer = null;
374
133
  dirty = false;
134
+ /**
135
+ * 本进程显式删除、尚未落盘的会话(墓碑)。persist 只删这些键,不按「后端有、内存无」清扫:
136
+ * 冷启动时若先从空的后备 memory 加载,之后首选后端成为胜者,按差集清扫会把首选后端里原有的会话
137
+ * 当孤儿删掉。每条墓碑带令牌,提交成功后只清掉提交时那一版,提交期间再删的保留到下一次。
138
+ */
139
+ deleted = new Map();
375
140
  /** 平台 → 默认 SessionConfig 模板 */
376
141
  platformProfiles = new Map();
377
142
  /** 全局默认配置(platform profile 之下的最低层 fallback) */
378
143
  defaults = {};
379
- constructor(ctx) {
380
- this.ctx = ctx;
144
+ constructor(caps) {
145
+ this.caps = caps;
381
146
  }
382
147
  /**
383
- * memory provider 每次惰性查询:ServiceRegistry.get 返回的是裸 entry.instance,
384
- * 缓存到 field 在 provider 重载后会失效。每次调用走 getService 让 provider 切换
148
+ * memory provider 每次惰性查询:ServiceRef.current 返回的是提供者本身,
149
+ * 缓存到 field 在 provider 重载后会失效。每次调用重新解析让 provider 切换
385
150
  * 后自然跟随,无需级联 bounce 本插件。
386
151
  */
387
152
  get memory() {
388
- const m = this.ctx.getService('memory');
153
+ const m = this.caps.memory.current;
389
154
  if (!m)
390
155
  throw new Error('session-manager 需要 memory 服务');
391
156
  return m;
@@ -400,10 +165,10 @@ class SessionManager {
400
165
  this.sessions.set(key, info);
401
166
  }
402
167
  }
403
- this.ctx.logger.info(`已加载 ${this.sessions.size} 个会话`);
168
+ this.caps.logger.info(`已加载 ${this.sessions.size} 个会话`);
404
169
  }
405
170
  catch (err) {
406
- this.ctx.logger.warn('加载会话数据失败:', err);
171
+ this.caps.logger.warn('加载会话数据失败:', err);
407
172
  }
408
173
  }
409
174
  /** 标记需要持久化并延迟刷盘 */
@@ -412,20 +177,20 @@ class SessionManager {
412
177
  if (!this.persistTimer) {
413
178
  this.persistTimer = setTimeout(() => {
414
179
  this.persistTimer = null;
415
- this.persist().catch(err => this.ctx.logger.warn('持久化会话失败:', err));
180
+ this.persist().catch(err => this.caps.logger.warn('持久化会话失败:', err));
416
181
  }, 1000);
417
182
  }
418
183
  }
419
184
  /**
420
185
  * 持久化到 memory metadata —— **一次批量提交**。
421
186
  *
422
- * 旧写法是「逐条 saveMetadata + 全表扫逐个 deleteMetadata」,而 `dirty` 在开头就被置 false:
187
+ * 逐条 saveMetadata + 全表扫逐个 deleteMetadata 的写法配上开头就置 false 的 `dirty`:
423
188
  * 任何一条抛错就停在半新半旧,且下一次 debounce 不会重试。
424
189
  *
425
- * 改成整批提交后,**原子性按后端分档**(见 api-memory 契约):sqlite/inmemory 真事务,
190
+ * 整批提交的**原子性按后端分档**(见 api-memory 契约):sqlite/inmemory 真事务,
426
191
  * mongodb 只保证按序执行遇错即停,仍可能停在半新半旧。本场景对此免疫,靠的不是原子性
427
- * 而是**幂等 + 可重试**:每次写的是全量快照(不是增量),失败时 dirty 复位,下一次
428
- * markDirty 会把完整状态重写一遍并重扫孤儿,前一次的半成品被整体覆盖。
192
+ * 而是**幂等 + 可重试**:每次写的是全量快照(不是增量),删除只针对墓碑;失败时 dirty 复位、
193
+ * 墓碑保留,下一次 markDirty 会把完整状态重写一遍,前一次的半成品被整体覆盖。
429
194
  */
430
195
  async persist() {
431
196
  if (!this.dirty)
@@ -437,16 +202,18 @@ class SessionManager {
437
202
  key: id,
438
203
  data: info,
439
204
  }));
205
+ const tombstones = [...this.deleted];
206
+ for (const [key] of tombstones) {
207
+ if (!this.sessions.has(key))
208
+ ops.push({ op: 'del', namespace: METADATA_NAMESPACE, key });
209
+ }
440
210
  try {
441
- // 清理孤儿:元数据里有、内存里没有的记录,与上面的写入同批提交。
442
- // **这一句必须在 try 内**:它同样会抛(provider bounce 窗口里 `this.memory` getter 就会),
443
- // 而 dirty 已在上面置 false —— 落在外面就等于「这批变更丢了且永不重试」,正是本方法
444
- // 要消灭的那个病。
445
- for (const { key } of await this.memory.listMetadata(METADATA_NAMESPACE)) {
446
- if (!this.sessions.has(key))
447
- ops.push({ op: 'del', namespace: METADATA_NAMESPACE, key });
448
- }
211
+ // **取 memory 必须在 try 内**:provider 换人的窗口里 `this.memory` getter 会抛,而 dirty 已在
212
+ // 上面置 false —— 落在外面就等于「这批变更丢了且永不重试」,正是本方法要消灭的那个病。
449
213
  await this.memory.commitMetadata(ops);
214
+ for (const [key, token] of tombstones)
215
+ if (this.deleted.get(key) === token)
216
+ this.deleted.delete(key);
450
217
  }
451
218
  catch (err) {
452
219
  this.dirty = true; // 失败要能重试,否则这批变更永远落不了盘
@@ -482,8 +249,8 @@ class SessionManager {
482
249
  };
483
250
  this.sessions.set(id, session);
484
251
  this.markDirty();
485
- await this.ctx.emit('session:created', session);
486
- this.ctx.logger.info(`会话建档(ensure): ${session.name} (${id})`);
252
+ await this.caps.events.emit('session:created', session);
253
+ this.caps.logger.info(`会话建档(ensure): ${session.name} (${id})`);
487
254
  return session;
488
255
  }
489
256
  // ---- CRUD ----
@@ -517,8 +284,8 @@ class SessionManager {
517
284
  }
518
285
  }
519
286
  this.markDirty();
520
- await this.ctx.emit('session:created', session);
521
- this.ctx.logger.info(`会话创建: ${session.name} (${id})`);
287
+ await this.caps.events.emit('session:created', session);
288
+ this.caps.logger.info(`会话创建: ${session.name} (${id})`);
522
289
  return session;
523
290
  }
524
291
  getSession(id) {
@@ -557,7 +324,7 @@ class SessionManager {
557
324
  }
558
325
  session.updatedAt = Date.now();
559
326
  this.markDirty();
560
- await this.ctx.emit('session:updated', session);
327
+ await this.caps.events.emit('session:updated', session);
561
328
  return session;
562
329
  }
563
330
  async deleteSession(id) {
@@ -577,10 +344,11 @@ class SessionManager {
577
344
  }
578
345
  }
579
346
  this.sessions.delete(id);
347
+ this.deleted.set(id, Symbol(id));
580
348
  await this.clearDeletedSessionData(id);
581
349
  this.markDirty();
582
- await this.ctx.emit('session:deleted', id);
583
- this.ctx.logger.info(`会话删除: ${session.name} (${id})`);
350
+ await this.caps.events.emit('session:deleted', id);
351
+ this.caps.logger.info(`会话删除: ${session.name} (${id})`);
584
352
  }
585
353
  async clearDeletedSessionData(id) {
586
354
  const clearData = {
@@ -588,7 +356,7 @@ class SessionManager {
588
356
  sessionId: id,
589
357
  results: [],
590
358
  };
591
- await this.ctx.runHook('memory:clear', clearData, async () => {
359
+ await this.caps.hooks.run('memory:clear', clearData, async () => {
592
360
  try {
593
361
  await this.memory.clearSession(id);
594
362
  clearData.results.push({ source: 'memory', success: true, message: '会话消息历史已清空' });
@@ -600,7 +368,7 @@ class SessionManager {
600
368
  });
601
369
  const failed = clearData.results.filter(r => !r.success);
602
370
  if (failed.length > 0) {
603
- this.ctx.logger.warn(`会话数据清理存在失败项 [${id}]: ${failed.map(r => `${r.source}: ${r.message}`).join('; ')}`);
371
+ this.caps.logger.warn(`会话数据清理存在失败项 [${id}]: ${failed.map(r => `${r.source}: ${r.message}`).join('; ')}`);
604
372
  }
605
373
  }
606
374
  // ---- 树形操作 ----
@@ -645,8 +413,8 @@ class SessionManager {
645
413
  session.updatedAt = Date.now();
646
414
  this.markDirty();
647
415
  // 发事件通知(wait_subtasks 通过事件驱动感知完成)
648
- await this.ctx.emit('session:completed', session);
649
- this.ctx.logger.info(`会话完成: ${session.name} (${id})${result ? ` - ${result.slice(0, 100)}` : ''}`);
416
+ await this.caps.events.emit('session:completed', session);
417
+ this.caps.logger.info(`会话完成: ${session.name} (${id})${result ? ` - ${result.slice(0, 100)}` : ''}`);
650
418
  }
651
419
  // ---- 标题管理 ----
652
420
  async generateTitle(sessionId, userMessage) {
@@ -656,13 +424,13 @@ class SessionManager {
656
424
  // 已有标题则跳过
657
425
  if (session.title)
658
426
  return session.title;
659
- const entry = resolveLLMModel(this.ctx, undefined, ['chat']);
427
+ const entry = resolveLLMModel(this.caps.llm, undefined, ['chat']);
660
428
  if (!entry) {
661
- this.ctx.logger.warn(`无可用 LLM,无法生成标题: ${sessionId}`);
429
+ this.caps.logger.warn(`无可用 LLM,无法生成标题: ${sessionId}`);
662
430
  return undefined;
663
431
  }
664
- this.ctx.logger.debug(`标题生成使用 LLM: ${entry.contextId}`);
665
- const llm = entry.instance;
432
+ this.caps.logger.debug(`标题生成使用 LLM: ${entry.contextId}`);
433
+ const model = entry.instance;
666
434
  // 优先使用直接传入的用户消息;否则从历史获取
667
435
  let contextStr;
668
436
  if (userMessage?.trim()) {
@@ -682,7 +450,7 @@ class SessionManager {
682
450
  return undefined;
683
451
  let title;
684
452
  try {
685
- const resp = await llm.chat({
453
+ const resp = await model.chat({
686
454
  messages: [
687
455
  {
688
456
  role: 'system',
@@ -697,23 +465,23 @@ class SessionManager {
697
465
  });
698
466
  title = (resp.content || '').trim().slice(0, 50);
699
467
  if (!title) {
700
- this.ctx.logger.warn(`会话标题 LLM 返回空内容: ${sessionId} (resp.content=${JSON.stringify(resp.content)}, reasoning=${(resp.reasoningContent ?? '').length}字)`);
468
+ this.caps.logger.warn(`会话标题 LLM 返回空内容: ${sessionId} (resp.content=${JSON.stringify(resp.content)}, reasoning=${(resp.reasoningContent ?? '').length}字)`);
701
469
  }
702
470
  }
703
471
  catch (err) {
704
- this.ctx.logger.warn(`自动生成标题失败 [${sessionId}]:`, err);
472
+ this.caps.logger.warn(`自动生成标题失败 [${sessionId}]:`, err);
705
473
  }
706
474
  // 兜底:LLM 失败或返回空时,用用户消息首段作为临时标题,避免会话永远没有标题
707
475
  if (!title && userMessage?.trim()) {
708
476
  title = userMessage.trim().replace(/\s+/g, ' ').slice(0, 20);
709
- this.ctx.logger.info(`使用用户消息兜底生成标题: ${sessionId} -> ${title}`);
477
+ this.caps.logger.info(`使用用户消息兜底生成标题: ${sessionId} -> ${title}`);
710
478
  }
711
479
  if (title) {
712
480
  session.title = title;
713
481
  session.updatedAt = Date.now();
714
482
  this.markDirty();
715
- await this.ctx.emit('session:updated', session);
716
- this.ctx.logger.info(`会话标题已生成: [${sessionId}] ${title}`);
483
+ await this.caps.events.emit('session:updated', session);
484
+ this.caps.logger.info(`会话标题已生成: [${sessionId}] ${title}`);
717
485
  return title;
718
486
  }
719
487
  return undefined;
@@ -725,7 +493,7 @@ class SessionManager {
725
493
  session.title = title;
726
494
  session.updatedAt = Date.now();
727
495
  this.markDirty();
728
- await this.ctx.emit('session:updated', session);
496
+ await this.caps.events.emit('session:updated', session);
729
497
  }
730
498
  // ---- 配置解析 ----
731
499
  /**
@@ -802,7 +570,7 @@ class SessionManager {
802
570
  next.persona = r.persona;
803
571
  this.defaults = next;
804
572
  if (Object.keys(next).length > 0) {
805
- this.ctx.logger.info(`已加载全局 defaults: ${Object.keys(next).join(', ')}`);
573
+ this.caps.logger.info(`已加载全局 defaults: ${Object.keys(next).join(', ')}`);
806
574
  }
807
575
  }
808
576
  getPlatformProfiles() {
@@ -840,8 +608,36 @@ class SessionManager {
840
608
  this.platformProfiles.set(entry.platform, profile);
841
609
  }
842
610
  if (this.platformProfiles.size > 0) {
843
- this.ctx.logger.info(`已加载 ${this.platformProfiles.size} 个平台配置模板: ${[...this.platformProfiles.keys()].join(', ')}`);
611
+ this.caps.logger.info(`已加载 ${this.platformProfiles.size} 个平台配置模板: ${[...this.platformProfiles.keys()].join(', ')}`);
612
+ }
613
+ }
614
+ /**
615
+ * 关停收尾:仍 `active` 的会话立即收口并落盘。
616
+ *
617
+ * 枚举没有 interrupted:回合结束(含用户停止 / abort)既有收口就是 `completed`,
618
+ * 关停打断在飞回合与那条路径同义,沿用同一状态,不新造值。
619
+ * waiting / completed / error / archived 不是在飞,原样保留。
620
+ *
621
+ * 第一方栈由 core 关停编排(optional 环成员先全部 drain)与 `agent:turn:after` 收口;
622
+ * 此处兜的是未装 agent 或钩子未挂上的路径。
623
+ * persist 也在这里立刻刷,不走 1s debounce——onDispose 的 shutdown 仍会再刷一次。
624
+ */
625
+ async settleActiveOnDrain() {
626
+ let closed = 0;
627
+ for (const session of this.sessions.values()) {
628
+ if (session.status !== 'active')
629
+ continue;
630
+ session.status = 'completed';
631
+ session.updatedAt = Date.now();
632
+ closed++;
844
633
  }
634
+ if (closed > 0)
635
+ this.dirty = true;
636
+ if (this.persistTimer) {
637
+ clearTimeout(this.persistTimer);
638
+ this.persistTimer = null;
639
+ }
640
+ await this.persist();
845
641
  }
846
642
  /** 强制持久化并清理定时器 */
847
643
  async shutdown() {
@@ -876,30 +672,234 @@ function stripUndefined(obj) {
876
672
  }
877
673
  /** stripDefaults 与 stripUndefined 功能相同 —— 只保留有值的字段 */
878
674
  const stripDefaults = stripUndefined;
675
+ /**
676
+ * 页面动作全是 apply 里的闭包:直接用这次激活的 manager 与能力,
677
+ * 登记随激活存亡(插件不在,WebUI 就调不到这些方法)。
678
+ */
679
+ function registerSessionActions(caps, manager) {
680
+ const { webui, memory, persona, llm, tools, platform } = caps;
681
+ webui.registerAction('listSessions', async () => manager.listSessions().map(s => ({
682
+ ...s,
683
+ displayTitle: s.title || s.name,
684
+ configSummary: formatConfigSummary(s.config),
685
+ childCount: s.children.length,
686
+ })));
687
+ webui.registerAction('createSession', async (args) => {
688
+ const parentId = args.parentId || undefined;
689
+ // 新建会话时复制当前生效配置,而非留空继承
690
+ let config = args.config || {};
691
+ if (Object.keys(config).length === 0) {
692
+ if (parentId) {
693
+ // 子会话:复制父会话的 resolved config
694
+ config = { ...manager.resolveConfig(parentId, 'webui') };
695
+ }
696
+ else {
697
+ // 根会话:复制 webui 平台 profile 作为初始配置
698
+ const profiles = manager.getPlatformProfiles();
699
+ if (profiles.webui)
700
+ config = { ...profiles.webui };
701
+ }
702
+ }
703
+ return manager.createSession({
704
+ name: args.name ||
705
+ `会话 ${new Date().toLocaleString('zh-CN', { month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit' })}`,
706
+ parentId,
707
+ config,
708
+ createdBy: 'user',
709
+ // 新建的空会话尚未发生任何对话,初始为 'waiting'(等待中)而非 'active'(进行中)。
710
+ // 否则侧栏新建的会话会一直显示"进行中"——直到首条消息触发 inbound→active→turn:after→completed。
711
+ status: 'waiting',
712
+ });
713
+ });
714
+ webui.registerAction('deleteSession', async (args) => {
715
+ const id = args.id;
716
+ if (!id)
717
+ throw new Error('缺少会话 ID');
718
+ await manager.deleteSession(id);
719
+ return { success: true };
720
+ });
721
+ webui.registerAction('updateSessionConfig', async (args) => {
722
+ const id = args.id;
723
+ if (!id)
724
+ throw new Error('缺少会话 ID');
725
+ return manager.updateSession(id, { config: normalizeSessionConfigPatch(args.config) });
726
+ });
727
+ webui.registerAction('getSessionHistory', async (args) => {
728
+ const store = memory.current;
729
+ if (!store)
730
+ throw new Error('memory 服务不可用');
731
+ const sessionId = args.sessionId;
732
+ if (!sessionId)
733
+ throw new Error('缺少 sessionId');
734
+ const limit = args.limit || 100;
735
+ const history = await store.getHistory(sessionId, limit);
736
+ return { sessionId, messages: history };
737
+ });
738
+ /** 批量归档会话 */
739
+ webui.registerAction('batchArchive', async (args) => {
740
+ const ids = args.ids;
741
+ if (!Array.isArray(ids) || ids.length === 0)
742
+ throw new Error('缺少会话 ID 列表');
743
+ let count = 0;
744
+ for (const id of ids) {
745
+ try {
746
+ await manager.updateSession(id, { status: 'archived' });
747
+ count++;
748
+ }
749
+ catch {
750
+ /* skip */
751
+ }
752
+ }
753
+ return { success: true, count };
754
+ });
755
+ /** 批量删除会话 */
756
+ webui.registerAction('batchDelete', async (args) => {
757
+ const ids = args.ids;
758
+ if (!Array.isArray(ids) || ids.length === 0)
759
+ throw new Error('缺少会话 ID 列表');
760
+ let count = 0;
761
+ for (const id of ids) {
762
+ try {
763
+ await manager.deleteSession(id);
764
+ count++;
765
+ }
766
+ catch {
767
+ /* skip */
768
+ }
769
+ }
770
+ return { success: true, count };
771
+ });
772
+ webui.registerAction('getSessionTree', async () => manager.getTree());
773
+ /** 获取可选项列表(供前端下拉框使用) */
774
+ webui.registerAction('getConfigOptions', async () => {
775
+ // 可用人设列表
776
+ const personaService = persona.current;
777
+ const personas = personaService?.listModels ? await personaService.listModels() : [];
778
+ // 可用 LLM 模型列表(枚举所有 chat-capable entry)
779
+ const models = listLLMModels(llm, { caps: ['chat'] }).map(e => ({
780
+ id: e.instance.id,
781
+ capabilities: [...e.instance.capabilities],
782
+ provider: e.instance.providerId,
783
+ contextId: e.contextId,
784
+ }));
785
+ // 工具分组列表
786
+ const toolGroups = tools.current?.getGroups().map(g => ({ name: g.name, label: g.label })) ?? [];
787
+ // 已注册平台列表
788
+ const platforms = [];
789
+ for (const entry of platform.all()) {
790
+ const platformName = entry.instance.platform;
791
+ if (platformName && !platforms.includes(platformName))
792
+ platforms.push(platformName);
793
+ }
794
+ return { personas, models, toolGroups, platforms, profiles: manager.getPlatformProfiles() };
795
+ });
796
+ /** 获取指定会话的最终生效配置(合并所有层级后的结果) */
797
+ webui.registerAction('getResolvedConfig', async (args) => {
798
+ const sessionId = args.sessionId;
799
+ if (!sessionId)
800
+ throw new Error('缺少 sessionId');
801
+ return manager.resolveConfig(sessionId, args.platform);
802
+ });
803
+ /**
804
+ * 获取「继承默认」——不含 session 自身 config,只算 platform profile + 父 sessionDefaults。
805
+ * WebUI 「继承 (xxx)」提示用这个,避免显示用户自己的覆盖值。
806
+ */
807
+ webui.registerAction('getInheritedDefaults', async (args) => {
808
+ const sessionId = args.sessionId;
809
+ if (!sessionId)
810
+ throw new Error('缺少 sessionId');
811
+ return manager.resolveInheritedDefaults(sessionId, args.platform);
812
+ });
813
+ /** 获取会话详情(含完整消息历史,包括已归档消息) */
814
+ webui.registerAction('getSessionDetail', async (args) => {
815
+ const store = memory.current;
816
+ if (!store)
817
+ throw new Error('memory 服务不可用');
818
+ const id = args.id;
819
+ if (!id)
820
+ throw new Error('缺少会话 ID');
821
+ const session = manager.getSession(id);
822
+ if (!session)
823
+ throw new Error(`会话不存在: ${id}`);
824
+ const limit = args.limit || 200;
825
+ // 优先使用 getFullHistory(含已归档消息),确保 UI 能看到完整对话
826
+ const messages = store.getFullHistory ? await store.getFullHistory(id, limit) : await store.getHistory(id, limit);
827
+ return { session, messages };
828
+ });
829
+ /** 手动重命名会话标题 */
830
+ webui.registerAction('renameSession', async (args) => {
831
+ const id = args.id;
832
+ const title = args.title;
833
+ if (!id || !title)
834
+ throw new Error('缺少 id 或 title');
835
+ await manager.updateSessionTitle(id, title);
836
+ return { success: true };
837
+ });
838
+ /** 归档子会话(父已不再需要) */
839
+ webui.registerAction('archiveSession', async (args) => {
840
+ const id = args.id;
841
+ if (!id)
842
+ throw new Error('缺少会话 ID');
843
+ await archiveRecursively(manager, id);
844
+ return { success: true };
845
+ });
846
+ }
879
847
  // ===== 插件入口 =====
880
- export async function apply(ctx, config) {
848
+ const uses = {
849
+ /** 会话档案与消息历史的唯一落点:没有 memory 就没有会话管理 */
850
+ memory,
851
+ /**
852
+ * 本插件不调用 agent 的方法;声明它是为了 agent:* 钩子的键类型。
853
+ * 第一方栈由 core 关停编排(optional 环成员先全部 drain)与 `agent:turn:after` 收口;
854
+ * 此处 onDrain 兜的是未装 agent 或钩子未挂上的路径。
855
+ */
856
+ agent: optional(agent),
857
+ /** 自动标题的模型来源;没有 LLM 时退回用户消息首段 */
858
+ llm: optional(llm),
859
+ /** 下列三项只供 WebUI 下拉框枚举选项,缺席即空列表 */
860
+ persona: optional(persona),
861
+ platform: optional(platform),
862
+ tools: optional(tools),
863
+ /** 页面与页面动作的登记口;无 WebUI 时会话管理照常在后台运行 */
864
+ webui: optional(webuiServer),
865
+ events,
866
+ hooks,
867
+ lifecycle,
868
+ logger,
869
+ config,
870
+ provide,
871
+ };
872
+ export default definePlugin({
873
+ name: '@aalis/plugin-session-manager',
874
+ displayName: '会话管理',
875
+ subsystem: 'session',
876
+ configSchema,
877
+ provides: [sessionManager],
878
+ uses,
879
+ apply: run,
880
+ });
881
+ async function run(caps) {
882
+ const { memory, webui, events, hooks, lifecycle, logger, provide } = caps;
881
883
  // 注册 WebUI 页面
882
- const webui = useWebuiService(ctx);
883
884
  for (const page of webuiPages)
884
885
  webui.registerPage(page);
885
- if (ctx.getService('memory') === undefined) {
886
- ctx.logger.error('memory 服务不可用,会话管理无法启动');
886
+ if (memory.current === undefined) {
887
+ logger.error('memory 服务不可用,会话管理无法启动');
887
888
  return;
888
889
  }
889
- const manager = new SessionManager(ctx);
890
+ const manager = new SessionManager(caps);
890
891
  // 从持久化存储加载
891
892
  await manager.load();
892
893
  // 加载平台 profiles
893
- manager.loadPlatformProfiles(config.platformProfiles);
894
+ manager.loadPlatformProfiles(caps.config.platformProfiles);
894
895
  // 加载全局 defaults
895
- manager.loadDefaults(config.defaults);
896
+ manager.loadDefaults(caps.config.defaults);
896
897
  // 注册服务
897
- ctx.provide('session-manager', manager, {
898
- label: '会话管理',
899
- });
898
+ provide(sessionManager, manager, { label: '会话管理' });
899
+ registerSessionActions(caps, manager);
900
900
  // ===== 会话状态自治管理 =====
901
901
  // 监听消息事件,自动维护会话状态(从 Agent 职责中迁出)
902
- ctx.on('inbound:message', (msg) => {
902
+ events.on('inbound:message', (msg) => {
903
903
  if (!msg.sessionId)
904
904
  return;
905
905
  const session = manager.getSession(msg.sessionId);
@@ -907,7 +907,7 @@ export async function apply(ctx, config) {
907
907
  manager.updateSession(msg.sessionId, { status: 'active' }).catch(() => { });
908
908
  }
909
909
  });
910
- ctx.on('outbound:message', (msg) => {
910
+ events.on('outbound:message', (msg) => {
911
911
  if (!msg.sessionId)
912
912
  return;
913
913
  const session = manager.getSession(msg.sessionId);
@@ -920,7 +920,7 @@ export async function apply(ctx, config) {
920
920
  // 上面的 outbound:message 只覆盖"产生了回复"的情形——用户中途停止生成(aborted)或
921
921
  // 空回复(silent)时不发 outbound:message,会话会永远停在 'active'(即"进行中")。
922
922
  // 这里订阅生命周期钩子作幂等互补,确保任何回合结束都把根会话收口为 'completed'。
923
- ctx.middleware('agent:turn:after', async (data, next) => {
923
+ hooks.middleware('agent:turn:after', async (data, next) => {
924
924
  await next();
925
925
  if (!data.sessionId)
926
926
  return;
@@ -935,10 +935,10 @@ export async function apply(ctx, config) {
935
935
  // 仅对 webui / cli 等用户交互平台生效,onebot 等外部平台不生成标题
936
936
  const TITLE_PLATFORMS = new Set(['webui', 'cli']);
937
937
  const titleGenerating = new Set();
938
- ctx.on('inbound:message', (msg) => {
938
+ events.on('inbound:message', (msg) => {
939
939
  const { sessionId, platform } = msg;
940
940
  if (!sessionId) {
941
- ctx.logger.debug('标题生成跳过: 缺少 sessionId');
941
+ logger.debug('标题生成跳过: 缺少 sessionId');
942
942
  return;
943
943
  }
944
944
  if (titleGenerating.has(sessionId))
@@ -952,20 +952,24 @@ export async function apply(ctx, config) {
952
952
  if (session && (session.title || session.parentId))
953
953
  return;
954
954
  titleGenerating.add(sessionId);
955
- ctx.logger.info(`开始生成会话标题: ${sessionId} (platform=${platform})`);
955
+ logger.info(`开始生成会话标题: ${sessionId} (platform=${platform})`);
956
956
  // 平台派生会话(cli-default 等)从不经 createSession 预建,缺档是常态:先兜底建档再生成
957
957
  // 标题(与 createChildSession 同路),否则这些平台永远没有标题、且每条消息告警一次。
958
958
  // 异步生成,不阻塞消息处理;直接传入用户消息避免依赖历史
959
959
  (session ? Promise.resolve() : manager.ensureSession(sessionId).then(() => undefined))
960
960
  .then(() => manager.generateTitle(sessionId, msg.content))
961
- .catch(err => ctx.logger.warn('标题生成失败:', err))
961
+ .catch(err => logger.warn('标题生成失败:', err))
962
962
  .finally(() => titleGenerating.delete(sessionId));
963
963
  });
964
- // 持久化走 onDispose:覆盖停机与 bounce / unload / updatePluginConfig 等全部
965
- // 拆卸路径(旧 app:stopping 只在全局停机触发,热重载即丢会话元数据)。
966
- // 异步收尾由编排层的 disposeAsync 等待完成;拓扑逆序保证此时 memory 提供者
967
- // 尚未关闭。shutdown() 幂等:清 timer + 置 dirty + 落盘。
968
- ctx.onDispose(() => manager.shutdown());
969
- ctx.logger.info('会话管理服务已启用');
964
+ // 关停收尾:仍 active 的会话在 onDrain 收口并落盘。
965
+ // 第一方栈由 core 关停编排(optional 环成员先全部 drain)与 agent:turn:after 收口;
966
+ // 此处兜的是未装 agent 或钩子未挂上的路径。
967
+ // 持久化仍走 onDispose:覆盖 bounce / unload / updateConfig 等全部拆卸路径
968
+ // (只在全局停机触发的话,热重载即丢会话元数据)。
969
+ // 异步收尾由编排层的 disposeAsync 等待完成;app.stop() 的拓扑逆序保证此时 memory 提供者
970
+ // 尚未关闭,单独热重载/禁用 memory 提供者时无此保证。shutdown() 幂等:清 timer + 置 dirty + 落盘。
971
+ lifecycle.onDrain(() => manager.settleActiveOnDrain(), '收口在飞会话');
972
+ lifecycle.onDispose(() => manager.shutdown());
973
+ logger.info('会话管理服务已启用');
970
974
  }
971
975
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aalis/plugin-session-manager",
3
- "version": "0.11.0",
3
+ "version": "0.12.0",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -24,34 +24,43 @@
24
24
  "dist"
25
25
  ],
26
26
  "dependencies": {
27
- "@aalis/schema-config": ">=0.9.0 <1.0.0",
28
- "@aalis/api-llm": ">=0.9.0 <1.0.0",
29
- "@aalis/api-session-manager": ">=0.8.0 <1.0.0",
30
- "@aalis/api-webui": ">=0.9.0 <1.0.0"
27
+ "@aalis/schema-config": ">=0.12.0 <1.0.0",
28
+ "@aalis/api-agent": ">=0.8.0 <1.0.0",
29
+ "@aalis/api-llm": ">=0.11.0 <1.0.0",
30
+ "@aalis/api-memory": ">=0.6.0 <1.0.0",
31
+ "@aalis/api-persona": ">=0.7.0 <1.0.0",
32
+ "@aalis/api-platform": ">=0.7.0 <1.0.0",
33
+ "@aalis/api-session-manager": ">=0.9.0 <1.0.0",
34
+ "@aalis/api-tools": ">=0.9.0 <1.0.0",
35
+ "@aalis/api-webui": ">=0.10.0 <1.0.0"
31
36
  },
32
37
  "devDependencies": {
33
38
  "@types/node": "^22.0.0",
34
39
  "typescript": "^5.7.0",
35
- "@aalis/api-agent": "0.7.1",
36
- "@aalis/core": "0.12.1",
37
- "@aalis/api-memory": "0.5.1",
38
- "@aalis/schema-message": "0.8.1",
39
- "@aalis/api-persona": "0.6.0",
40
- "@aalis/api-tools": "0.8.1"
40
+ "@aalis/core": "0.17.0",
41
+ "@aalis/schema-message": "0.8.1"
41
42
  },
42
43
  "peerDependencies": {
43
- "@aalis/core": ">=0.11.0 <1.0.0"
44
+ "@aalis/core": ">=0.17.0 <1.0.0"
44
45
  },
45
46
  "aalis": {
46
47
  "service": {
47
48
  "required": [
48
- "memory"
49
+ "config",
50
+ "events",
51
+ "hooks",
52
+ "lifecycle",
53
+ "logger",
54
+ "memory",
55
+ "provide"
49
56
  ],
50
57
  "optional": [
51
58
  "agent",
52
- "platform",
59
+ "llm",
53
60
  "persona",
54
- "llm"
61
+ "platform",
62
+ "tools",
63
+ "webui-server"
55
64
  ],
56
65
  "provides": [
57
66
  "session-manager"