@aalis/plugin-session-manager 0.10.1 → 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,CAoP3C,CAAC;AA4kBF,wBAAsB,KAAK,CAAC,GAAG,EAAE,OAAO,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAgGxF"}
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,268 +98,24 @@ 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
- /** 更新平台 profile */
298
- async updatePlatformProfile(ctx, args) {
299
- const sm = ctx.getService('session-manager');
300
- if (!sm)
301
- throw new Error('session-manager 服务不可用');
302
- const platform = args.platform;
303
- if (!platform)
304
- throw new Error('缺少 platform');
305
- const profile = args.profile;
306
- if (!profile)
307
- throw new Error('缺少 profile');
308
- sm.setPlatformProfile(platform, profile);
309
- return { success: true };
310
- },
311
- /** 获取会话详情(含完整消息历史,包括已归档消息) */
312
- async getSessionDetail(ctx, args) {
313
- const sm = ctx.getService('session-manager');
314
- const memory = ctx.getService('memory');
315
- if (!sm || !memory)
316
- throw new Error('服务不可用');
317
- const id = args.id;
318
- if (!id)
319
- throw new Error('缺少会话 ID');
320
- const session = sm.getSession(id);
321
- if (!session)
322
- throw new Error(`会话不存在: ${id}`);
323
- const limit = args.limit || 200;
324
- // 优先使用 getFullHistory(含已归档消息),确保 UI 能看到完整对话
325
- const messages = memory.getFullHistory
326
- ? await memory.getFullHistory(id, limit)
327
- : await memory.getHistory(id, limit);
328
- return { session, messages };
329
- },
330
- /** 手动重命名会话标题 */
331
- async renameSession(ctx, args) {
332
- const sm = ctx.getService('session-manager');
333
- if (!sm)
334
- throw new Error('session-manager 服务不可用');
335
- const id = args.id;
336
- const title = args.title;
337
- if (!id || !title)
338
- throw new Error('缺少 id 或 title');
339
- await sm.updateSessionTitle(id, title);
340
- return { success: true };
341
- },
342
- /** 归档子会话(父已不再需要) */
343
- async archiveSession(ctx, args) {
344
- const sm = ctx.getService('session-manager');
345
- if (!sm)
346
- throw new Error('session-manager 服务不可用');
347
- const id = args.id;
348
- if (!id)
349
- throw new Error('缺少会话 ID');
350
- // 递归归档:先归档所有子会话
351
- const session = sm.getSession(id);
352
- if (session) {
353
- for (const childId of session.children) {
354
- const child = sm.getSession(childId);
355
- if (child && child.status !== 'archived') {
356
- await this.archiveSession(ctx, { id: childId });
357
- }
101
+ // ===== 辅助函数 =====
102
+ /**
103
+ * 递归归档:先归档所有子会话再归档自己。
104
+ *
105
+ * 写成自由函数而非方法:页面动作是被单独取出调用的(没有 receiver),递归不能依赖 this。
106
+ */
107
+ async function archiveRecursively(sm, id) {
108
+ const session = sm.getSession(id);
109
+ if (session) {
110
+ for (const childId of session.children) {
111
+ const child = sm.getSession(childId);
112
+ if (child && child.status !== 'archived') {
113
+ await archiveRecursively(sm, childId);
358
114
  }
359
115
  }
360
- await sm.updateSession(id, { status: 'archived' });
361
- return { success: true };
362
- },
363
- };
364
- // ===== 辅助函数 =====
116
+ }
117
+ await sm.updateSession(id, { status: 'archived' });
118
+ }
365
119
  function formatConfigSummary(config) {
366
120
  const parts = [];
367
121
  if (config.llm?.model)
@@ -372,26 +126,31 @@ function formatConfigSummary(config) {
372
126
  parts.push(`persona:${config.persona}`);
373
127
  return parts.join(', ') || '(默认)';
374
128
  }
375
- // ===== SessionManager 实现 =====
376
129
  class SessionManager {
377
130
  sessions = new Map();
378
- ctx;
131
+ caps;
379
132
  persistTimer = null;
380
133
  dirty = false;
134
+ /**
135
+ * 本进程显式删除、尚未落盘的会话(墓碑)。persist 只删这些键,不按「后端有、内存无」清扫:
136
+ * 冷启动时若先从空的后备 memory 加载,之后首选后端成为胜者,按差集清扫会把首选后端里原有的会话
137
+ * 当孤儿删掉。每条墓碑带令牌,提交成功后只清掉提交时那一版,提交期间再删的保留到下一次。
138
+ */
139
+ deleted = new Map();
381
140
  /** 平台 → 默认 SessionConfig 模板 */
382
141
  platformProfiles = new Map();
383
142
  /** 全局默认配置(platform profile 之下的最低层 fallback) */
384
143
  defaults = {};
385
- constructor(ctx) {
386
- this.ctx = ctx;
144
+ constructor(caps) {
145
+ this.caps = caps;
387
146
  }
388
147
  /**
389
- * memory provider 每次惰性查询:ServiceRegistry.get 返回的是裸 entry.instance,
390
- * 缓存到 field 在 provider 重载后会失效。每次调用走 getService 让 provider 切换
148
+ * memory provider 每次惰性查询:ServiceRef.current 返回的是提供者本身,
149
+ * 缓存到 field 在 provider 重载后会失效。每次调用重新解析让 provider 切换
391
150
  * 后自然跟随,无需级联 bounce 本插件。
392
151
  */
393
152
  get memory() {
394
- const m = this.ctx.getService('memory');
153
+ const m = this.caps.memory.current;
395
154
  if (!m)
396
155
  throw new Error('session-manager 需要 memory 服务');
397
156
  return m;
@@ -406,10 +165,10 @@ class SessionManager {
406
165
  this.sessions.set(key, info);
407
166
  }
408
167
  }
409
- this.ctx.logger.info(`已加载 ${this.sessions.size} 个会话`);
168
+ this.caps.logger.info(`已加载 ${this.sessions.size} 个会话`);
410
169
  }
411
170
  catch (err) {
412
- this.ctx.logger.warn('加载会话数据失败:', err);
171
+ this.caps.logger.warn('加载会话数据失败:', err);
413
172
  }
414
173
  }
415
174
  /** 标记需要持久化并延迟刷盘 */
@@ -418,20 +177,20 @@ class SessionManager {
418
177
  if (!this.persistTimer) {
419
178
  this.persistTimer = setTimeout(() => {
420
179
  this.persistTimer = null;
421
- this.persist().catch(err => this.ctx.logger.warn('持久化会话失败:', err));
180
+ this.persist().catch(err => this.caps.logger.warn('持久化会话失败:', err));
422
181
  }, 1000);
423
182
  }
424
183
  }
425
184
  /**
426
185
  * 持久化到 memory metadata —— **一次批量提交**。
427
186
  *
428
- * 旧写法是「逐条 saveMetadata + 全表扫逐个 deleteMetadata」,而 `dirty` 在开头就被置 false:
187
+ * 逐条 saveMetadata + 全表扫逐个 deleteMetadata 的写法配上开头就置 false 的 `dirty`:
429
188
  * 任何一条抛错就停在半新半旧,且下一次 debounce 不会重试。
430
189
  *
431
- * 改成整批提交后,**原子性按后端分档**(见 api-memory 契约):sqlite/inmemory 真事务,
190
+ * 整批提交的**原子性按后端分档**(见 api-memory 契约):sqlite/inmemory 真事务,
432
191
  * mongodb 只保证按序执行遇错即停,仍可能停在半新半旧。本场景对此免疫,靠的不是原子性
433
- * 而是**幂等 + 可重试**:每次写的是全量快照(不是增量),失败时 dirty 复位,下一次
434
- * markDirty 会把完整状态重写一遍并重扫孤儿,前一次的半成品被整体覆盖。
192
+ * 而是**幂等 + 可重试**:每次写的是全量快照(不是增量),删除只针对墓碑;失败时 dirty 复位、
193
+ * 墓碑保留,下一次 markDirty 会把完整状态重写一遍,前一次的半成品被整体覆盖。
435
194
  */
436
195
  async persist() {
437
196
  if (!this.dirty)
@@ -443,16 +202,18 @@ class SessionManager {
443
202
  key: id,
444
203
  data: info,
445
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
+ }
446
210
  try {
447
- // 清理孤儿:元数据里有、内存里没有的记录,与上面的写入同批提交。
448
- // **这一句必须在 try 内**:它同样会抛(provider bounce 窗口里 `this.memory` getter 就会),
449
- // 而 dirty 已在上面置 false —— 落在外面就等于「这批变更丢了且永不重试」,正是本方法
450
- // 要消灭的那个病。
451
- for (const { key } of await this.memory.listMetadata(METADATA_NAMESPACE)) {
452
- if (!this.sessions.has(key))
453
- ops.push({ op: 'del', namespace: METADATA_NAMESPACE, key });
454
- }
211
+ // **取 memory 必须在 try 内**:provider 换人的窗口里 `this.memory` getter 会抛,而 dirty 已在
212
+ // 上面置 false —— 落在外面就等于「这批变更丢了且永不重试」,正是本方法要消灭的那个病。
455
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);
456
217
  }
457
218
  catch (err) {
458
219
  this.dirty = true; // 失败要能重试,否则这批变更永远落不了盘
@@ -488,8 +249,8 @@ class SessionManager {
488
249
  };
489
250
  this.sessions.set(id, session);
490
251
  this.markDirty();
491
- await this.ctx.emit('session:created', session);
492
- 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})`);
493
254
  return session;
494
255
  }
495
256
  // ---- CRUD ----
@@ -523,8 +284,8 @@ class SessionManager {
523
284
  }
524
285
  }
525
286
  this.markDirty();
526
- await this.ctx.emit('session:created', session);
527
- this.ctx.logger.info(`会话创建: ${session.name} (${id})`);
287
+ await this.caps.events.emit('session:created', session);
288
+ this.caps.logger.info(`会话创建: ${session.name} (${id})`);
528
289
  return session;
529
290
  }
530
291
  getSession(id) {
@@ -563,7 +324,7 @@ class SessionManager {
563
324
  }
564
325
  session.updatedAt = Date.now();
565
326
  this.markDirty();
566
- await this.ctx.emit('session:updated', session);
327
+ await this.caps.events.emit('session:updated', session);
567
328
  return session;
568
329
  }
569
330
  async deleteSession(id) {
@@ -583,10 +344,11 @@ class SessionManager {
583
344
  }
584
345
  }
585
346
  this.sessions.delete(id);
347
+ this.deleted.set(id, Symbol(id));
586
348
  await this.clearDeletedSessionData(id);
587
349
  this.markDirty();
588
- await this.ctx.emit('session:deleted', id);
589
- this.ctx.logger.info(`会话删除: ${session.name} (${id})`);
350
+ await this.caps.events.emit('session:deleted', id);
351
+ this.caps.logger.info(`会话删除: ${session.name} (${id})`);
590
352
  }
591
353
  async clearDeletedSessionData(id) {
592
354
  const clearData = {
@@ -594,7 +356,7 @@ class SessionManager {
594
356
  sessionId: id,
595
357
  results: [],
596
358
  };
597
- await this.ctx.runHook('memory:clear', clearData, async () => {
359
+ await this.caps.hooks.run('memory:clear', clearData, async () => {
598
360
  try {
599
361
  await this.memory.clearSession(id);
600
362
  clearData.results.push({ source: 'memory', success: true, message: '会话消息历史已清空' });
@@ -606,14 +368,15 @@ class SessionManager {
606
368
  });
607
369
  const failed = clearData.results.filter(r => !r.success);
608
370
  if (failed.length > 0) {
609
- 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('; ')}`);
610
372
  }
611
373
  }
612
374
  // ---- 树形操作 ----
613
375
  async createChildSession(parentId, opts) {
614
- const parent = this.sessions.get(parentId);
615
- if (!parent)
616
- throw new Error(`父会话不存在: ${parentId}`);
376
+ // 平台派生会话(cli-default、OneBot 会话 id)从不经 createSession 预建,父档缺失是常态;
377
+ // 先兜底建档再挂子会话,否则 create_subtask 在这些平台必败。
378
+ if (!this.sessions.has(parentId))
379
+ await this.ensureSession(parentId);
617
380
  return this.createSession({
618
381
  ...opts,
619
382
  parentId,
@@ -650,8 +413,8 @@ class SessionManager {
650
413
  session.updatedAt = Date.now();
651
414
  this.markDirty();
652
415
  // 发事件通知(wait_subtasks 通过事件驱动感知完成)
653
- await this.ctx.emit('session:completed', session);
654
- 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)}` : ''}`);
655
418
  }
656
419
  // ---- 标题管理 ----
657
420
  async generateTitle(sessionId, userMessage) {
@@ -661,13 +424,13 @@ class SessionManager {
661
424
  // 已有标题则跳过
662
425
  if (session.title)
663
426
  return session.title;
664
- const entry = resolveLLMModel(this.ctx, undefined, ['chat']);
427
+ const entry = resolveLLMModel(this.caps.llm, undefined, ['chat']);
665
428
  if (!entry) {
666
- this.ctx.logger.warn(`无可用 LLM,无法生成标题: ${sessionId}`);
429
+ this.caps.logger.warn(`无可用 LLM,无法生成标题: ${sessionId}`);
667
430
  return undefined;
668
431
  }
669
- this.ctx.logger.debug(`标题生成使用 LLM: ${entry.contextId}`);
670
- const llm = entry.instance;
432
+ this.caps.logger.debug(`标题生成使用 LLM: ${entry.contextId}`);
433
+ const model = entry.instance;
671
434
  // 优先使用直接传入的用户消息;否则从历史获取
672
435
  let contextStr;
673
436
  if (userMessage?.trim()) {
@@ -687,7 +450,7 @@ class SessionManager {
687
450
  return undefined;
688
451
  let title;
689
452
  try {
690
- const resp = await llm.chat({
453
+ const resp = await model.chat({
691
454
  messages: [
692
455
  {
693
456
  role: 'system',
@@ -702,23 +465,23 @@ class SessionManager {
702
465
  });
703
466
  title = (resp.content || '').trim().slice(0, 50);
704
467
  if (!title) {
705
- 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}字)`);
706
469
  }
707
470
  }
708
471
  catch (err) {
709
- this.ctx.logger.warn(`自动生成标题失败 [${sessionId}]:`, err);
472
+ this.caps.logger.warn(`自动生成标题失败 [${sessionId}]:`, err);
710
473
  }
711
474
  // 兜底:LLM 失败或返回空时,用用户消息首段作为临时标题,避免会话永远没有标题
712
475
  if (!title && userMessage?.trim()) {
713
476
  title = userMessage.trim().replace(/\s+/g, ' ').slice(0, 20);
714
- this.ctx.logger.info(`使用用户消息兜底生成标题: ${sessionId} -> ${title}`);
477
+ this.caps.logger.info(`使用用户消息兜底生成标题: ${sessionId} -> ${title}`);
715
478
  }
716
479
  if (title) {
717
480
  session.title = title;
718
481
  session.updatedAt = Date.now();
719
482
  this.markDirty();
720
- await this.ctx.emit('session:updated', session);
721
- this.ctx.logger.info(`会话标题已生成: [${sessionId}] ${title}`);
483
+ await this.caps.events.emit('session:updated', session);
484
+ this.caps.logger.info(`会话标题已生成: [${sessionId}] ${title}`);
722
485
  return title;
723
486
  }
724
487
  return undefined;
@@ -730,7 +493,7 @@ class SessionManager {
730
493
  session.title = title;
731
494
  session.updatedAt = Date.now();
732
495
  this.markDirty();
733
- await this.ctx.emit('session:updated', session);
496
+ await this.caps.events.emit('session:updated', session);
734
497
  }
735
498
  // ---- 配置解析 ----
736
499
  /**
@@ -807,7 +570,7 @@ class SessionManager {
807
570
  next.persona = r.persona;
808
571
  this.defaults = next;
809
572
  if (Object.keys(next).length > 0) {
810
- this.ctx.logger.info(`已加载全局 defaults: ${Object.keys(next).join(', ')}`);
573
+ this.caps.logger.info(`已加载全局 defaults: ${Object.keys(next).join(', ')}`);
811
574
  }
812
575
  }
813
576
  getPlatformProfiles() {
@@ -817,12 +580,7 @@ class SessionManager {
817
580
  }
818
581
  return result;
819
582
  }
820
- setPlatformProfile(platform, profile) {
821
- this.platformProfiles.set(platform, profile);
822
- this.markDirty();
823
- this.ctx.logger.info(`平台 profile 已更新: ${platform}`);
824
- }
825
- /** 从配置加载平台 profiles */
583
+ /** 从配置加载平台 profiles(唯一入口:平台档属插件配置,无运行时写接口——写了也不落盘) */
826
584
  loadPlatformProfiles(raw) {
827
585
  if (!Array.isArray(raw))
828
586
  return;
@@ -850,8 +608,36 @@ class SessionManager {
850
608
  this.platformProfiles.set(entry.platform, profile);
851
609
  }
852
610
  if (this.platformProfiles.size > 0) {
853
- 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++;
854
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();
855
641
  }
856
642
  /** 强制持久化并清理定时器 */
857
643
  async shutdown() {
@@ -886,30 +672,234 @@ function stripUndefined(obj) {
886
672
  }
887
673
  /** stripDefaults 与 stripUndefined 功能相同 —— 只保留有值的字段 */
888
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
+ }
889
847
  // ===== 插件入口 =====
890
- 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;
891
883
  // 注册 WebUI 页面
892
- const webui = useWebuiService(ctx);
893
884
  for (const page of webuiPages)
894
885
  webui.registerPage(page);
895
- if (ctx.getService('memory') === undefined) {
896
- ctx.logger.error('memory 服务不可用,会话管理无法启动');
886
+ if (memory.current === undefined) {
887
+ logger.error('memory 服务不可用,会话管理无法启动');
897
888
  return;
898
889
  }
899
- const manager = new SessionManager(ctx);
890
+ const manager = new SessionManager(caps);
900
891
  // 从持久化存储加载
901
892
  await manager.load();
902
893
  // 加载平台 profiles
903
- manager.loadPlatformProfiles(config.platformProfiles);
894
+ manager.loadPlatformProfiles(caps.config.platformProfiles);
904
895
  // 加载全局 defaults
905
- manager.loadDefaults(config.defaults);
896
+ manager.loadDefaults(caps.config.defaults);
906
897
  // 注册服务
907
- ctx.provide('session-manager', manager, {
908
- label: '会话管理',
909
- });
898
+ provide(sessionManager, manager, { label: '会话管理' });
899
+ registerSessionActions(caps, manager);
910
900
  // ===== 会话状态自治管理 =====
911
901
  // 监听消息事件,自动维护会话状态(从 Agent 职责中迁出)
912
- ctx.on('inbound:message', (msg) => {
902
+ events.on('inbound:message', (msg) => {
913
903
  if (!msg.sessionId)
914
904
  return;
915
905
  const session = manager.getSession(msg.sessionId);
@@ -917,7 +907,7 @@ export async function apply(ctx, config) {
917
907
  manager.updateSession(msg.sessionId, { status: 'active' }).catch(() => { });
918
908
  }
919
909
  });
920
- ctx.on('outbound:message', (msg) => {
910
+ events.on('outbound:message', (msg) => {
921
911
  if (!msg.sessionId)
922
912
  return;
923
913
  const session = manager.getSession(msg.sessionId);
@@ -930,7 +920,7 @@ export async function apply(ctx, config) {
930
920
  // 上面的 outbound:message 只覆盖"产生了回复"的情形——用户中途停止生成(aborted)或
931
921
  // 空回复(silent)时不发 outbound:message,会话会永远停在 'active'(即"进行中")。
932
922
  // 这里订阅生命周期钩子作幂等互补,确保任何回合结束都把根会话收口为 'completed'。
933
- ctx.middleware('agent:turn:after', async (data, next) => {
923
+ hooks.middleware('agent:turn:after', async (data, next) => {
934
924
  await next();
935
925
  if (!data.sessionId)
936
926
  return;
@@ -945,38 +935,41 @@ export async function apply(ctx, config) {
945
935
  // 仅对 webui / cli 等用户交互平台生效,onebot 等外部平台不生成标题
946
936
  const TITLE_PLATFORMS = new Set(['webui', 'cli']);
947
937
  const titleGenerating = new Set();
948
- ctx.on('inbound:message', (msg) => {
938
+ events.on('inbound:message', (msg) => {
949
939
  const { sessionId, platform } = msg;
950
940
  if (!sessionId) {
951
- ctx.logger.debug('标题生成跳过: 缺少 sessionId');
941
+ logger.debug('标题生成跳过: 缺少 sessionId');
952
942
  return;
953
943
  }
954
944
  if (titleGenerating.has(sessionId))
955
945
  return;
956
946
  // 仅对指定平台生成标题;非 webui/cli 平台(如 onebot)静默跳过,避免日志污染。
957
- if (platform && !TITLE_PLATFORMS.has(platform))
947
+ // platform 缺省同样跳过:白名单是正向门,来路不明的消息不该顺带建档 + 烧一次 LLM 生成标题。
948
+ if (!platform || !TITLE_PLATFORMS.has(platform))
958
949
  return;
959
950
  const session = manager.getSession(sessionId);
960
- if (!session) {
961
- ctx.logger.warn(`标题生成跳过: 会话不存在 ${sessionId}`);
962
- return;
963
- }
964
951
  // 已有标题或子任务会话跳过(静默)
965
- if (session.title || session.parentId)
952
+ if (session && (session.title || session.parentId))
966
953
  return;
967
954
  titleGenerating.add(sessionId);
968
- ctx.logger.info(`开始生成会话标题: ${sessionId} (platform=${platform ?? 'unknown'})`);
955
+ logger.info(`开始生成会话标题: ${sessionId} (platform=${platform})`);
956
+ // 平台派生会话(cli-default 等)从不经 createSession 预建,缺档是常态:先兜底建档再生成
957
+ // 标题(与 createChildSession 同路),否则这些平台永远没有标题、且每条消息告警一次。
969
958
  // 异步生成,不阻塞消息处理;直接传入用户消息避免依赖历史
970
- manager
971
- .generateTitle(sessionId, msg.content)
972
- .catch(err => ctx.logger.warn('标题生成失败:', err))
959
+ (session ? Promise.resolve() : manager.ensureSession(sessionId).then(() => undefined))
960
+ .then(() => manager.generateTitle(sessionId, msg.content))
961
+ .catch(err => logger.warn('标题生成失败:', err))
973
962
  .finally(() => titleGenerating.delete(sessionId));
974
963
  });
975
- // 持久化走 onDispose:覆盖停机与 bounce / unload / updatePluginConfig 等全部
976
- // 拆卸路径(旧 app:stopping 只在全局停机触发,热重载即丢会话元数据)。
977
- // 异步收尾由编排层的 disposeAsync 等待完成;拓扑逆序保证此时 memory 提供者
978
- // 尚未关闭。shutdown() 幂等:清 timer + 置 dirty + 落盘。
979
- ctx.onDispose(() => manager.shutdown());
980
- 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('会话管理服务已启用');
981
974
  }
982
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.10.1",
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.7.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/core": "0.12.0",
36
- "@aalis/api-agent": "0.7.0",
37
- "@aalis/api-persona": "0.6.0",
38
- "@aalis/api-memory": "0.5.1",
39
- "@aalis/api-tools": "0.8.0",
40
- "@aalis/schema-message": "0.8.0"
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"