@aalis/plugin-cli 0.12.2 → 0.13.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
@@ -7,7 +7,7 @@ declare module '@aalis/core' {
7
7
  'terminal:released': [owner: string];
8
8
  }
9
9
  }
10
- export declare const cli: import("@aalis/core").ServiceDescriptor<CLIService, import("@aalis/core").ServiceRef<CLIService>>;
10
+ export declare const cli: import("@aalis/core").ServiceDescriptor<CLIService, CLIService>;
11
11
  declare const _default: import("@aalis/core").PluginDefinition<{
12
12
  events: import("@aalis/core").ServiceDescriptor<(identity: symbol) => import("@aalis/core").Events, import("@aalis/core").Events>;
13
13
  logger: import("@aalis/core").ServiceDescriptor<(identity: symbol) => import("@aalis/core").Logger, import("@aalis/core").Logger>;
@@ -15,10 +15,19 @@ declare const _default: import("@aalis/core").PluginDefinition<{
15
15
  config: import("@aalis/core").ServiceDescriptor<(identity: symbol) => Readonly<Record<string, unknown>>, Readonly<Record<string, unknown>>>;
16
16
  provide: import("@aalis/core").ServiceDescriptor<(identity: symbol) => import("@aalis/core").Provide, import("@aalis/core").Provide>;
17
17
  services: import("@aalis/core").ServiceDescriptor<(identity: symbol) => import("@aalis/core").Services, import("@aalis/core").Services>;
18
- hostConfig: import("@aalis/core").OptionalUse<import("@aalis/api-host-config").HostConfig, import("@aalis/core").ServiceRef<import("@aalis/api-host-config").HostConfig>>;
19
- platform: import("@aalis/core").OptionalUse<PlatformAdapter, import("@aalis/core").ServiceRef<PlatformAdapter>>;
20
- storage: import("@aalis/core").OptionalUse<import("@aalis/api-storage").StorageService, import("@aalis/core").ServiceRef<import("@aalis/api-storage").StorageService>>;
21
- persona: import("@aalis/core").OptionalUse<import("@aalis/api-persona").PersonaService, import("@aalis/core").ServiceRef<import("@aalis/api-persona").PersonaService>>;
18
+ hostConfig: import("@aalis/core").OptionalUse<import("@aalis/api-host-config").HostConfig, import("@aalis/api-host-config").HostConfig>;
19
+ /** 日志页:订阅时补发最近的历史(启动期的也在里面),之后接实时 */
20
+ logs: import("@aalis/core").OptionalUse<import("@aalis/api-host-logs").HostLogs, import("@aalis/api-host-logs").HostLogs>;
21
+ platform: import("@aalis/core").OptionalUse<PlatformAdapter, PlatformAdapter>;
22
+ storage: import("@aalis/core").OptionalUse<import("@aalis/api-storage").StorageService, import("@aalis/api-storage").BoundStorage>;
23
+ persona: import("@aalis/core").OptionalUse<import("@aalis/api-persona").PersonaService, import("@aalis/api-persona").PersonaService>;
24
+ /** 登记 cli 审批面:终端界面在场时审批推到这里,应答记在这个登记身份名下 */
25
+ approvals: import("@aalis/core").OptionalUse<import("@aalis/api-approval").ApprovalService, import("@aalis/api-approval").BoundApprovals>;
26
+ /** 欢迎行下面的指路:有没有插件没起来,与 /doctor 在不在 */
27
+ plugins: import("@aalis/core").OptionalUse<import("@aalis/core").PluginManagerService, import("@aalis/core").PluginManagerService>;
28
+ commands: import("@aalis/core").OptionalUse<import("@aalis/api-commands").CommandService, import("@aalis/api-commands").BoundCommands>;
29
+ /** 发出入站之前给配置的会话建档,创建来源写 cli 审批面的登记名 */
30
+ sessionManager: import("@aalis/core").OptionalUse<import("@aalis/api-session-manager").SessionManagerService, import("@aalis/api-session-manager").BoundSessionManager>;
22
31
  }>;
23
32
  export default _default;
24
33
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAuB,KAAK,eAAe,EAAqC,MAAM,qBAAqB,CAAC;AAuBnH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAE7C,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAK7C,OAAO,QAAQ,aAAa,CAAC;IAC3B,UAAU,WAAW;QACnB,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACpC,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;KACtC;CACF;AAGD,eAAO,MAAM,GAAG,mGAAmC,CAAC;;;;;;;;;;;;;AAkEpD,wBAQG"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAgBA,OAAO,EAEL,KAAK,eAAe,EAIrB,MAAM,qBAAqB,CAAC;AA4B7B,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAS7C,YAAY,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAK7C,OAAO,QAAQ,aAAa,CAAC;IAC3B,UAAU,WAAW;QACnB,kBAAkB,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACpC,mBAAmB,EAAE,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;KACtC;CACF;AAGD,eAAO,MAAM,GAAG,iEAAmC,CAAC;;;;;;;;;IAyDlD,qCAAqC;;;;;IAKrC,4CAA4C;;IAE5C,sCAAsC;;;IAGtC,uCAAuC;;;AAoBzC,wBAQG"}
package/dist/index.js CHANGED
@@ -1,17 +1,30 @@
1
1
  import { stdin as input, stdout as output } from 'node:process';
2
2
  import * as readline from 'node:readline';
3
+ import { approvals, sanitizeForCard, } from '@aalis/api-approval';
4
+ import { commands } from '@aalis/api-commands';
5
+ import { unmetDependencies } from '@aalis/api-doctor';
3
6
  import { hostConfig } from '@aalis/api-host-config';
7
+ import { hostLogs } from '@aalis/api-host-logs';
4
8
  import { persona } from '@aalis/api-persona';
5
- import { getPlatformAdapters, platform } from '@aalis/api-platform';
6
- import { createStorageGateway, storage } from '@aalis/api-storage';
7
- import { config, definePlugin, defineService, events, LogHub, lifecycle, logger, optional, provide, services, } from '@aalis/core';
9
+ import { getPlatformAdapters, platform, resolvePlatformBySession, } from '@aalis/api-platform';
10
+ import { sessionManager } from '@aalis/api-session-manager';
11
+ import { storage } from '@aalis/api-storage';
12
+ import { config, definePlugin, defineService, events, lifecycle, logger, optional, pluginsService, provide, services, } from '@aalis/core';
8
13
  import { defineConfig, parseConfig } from '@aalis/schema-config';
14
+ import { AttachmentRefKind, } from '@aalis/schema-message';
9
15
  import chalk from 'chalk';
10
16
  import cliTruncate from 'cli-truncate';
11
17
  import stringWidth from 'string-width';
12
18
  import { ChatBuffer } from './chat-buffer.js';
13
- import { readLogFileTail } from './log-file.js';
14
- // ----- 服务描述符(按激活绑定;调用型:绑定接口是 ServiceRef)-----
19
+ /** 附件说明里的大小 */
20
+ function formatBytes(n) {
21
+ if (n < 1024)
22
+ return `${n} B`;
23
+ if (n < 1024 * 1024)
24
+ return `${(n / 1024).toFixed(1)} KB`;
25
+ return `${(n / 1024 / 1024).toFixed(1)} MB`;
26
+ }
27
+ // ----- 服务描述符(调用型:业务层就是提供者的形状)-----
15
28
  export const cli = defineService('cli');
16
29
  // ===== 插件元数据 =====
17
30
  const name = '@aalis/plugin-cli';
@@ -34,7 +47,7 @@ const configSchema = defineConfig({
34
47
  type: 'number',
35
48
  label: '日志内存缓冲上限(条)',
36
49
  default: 50000,
37
- description: '日志页内存驻留的最大条数,超出后从最旧成块丢弃;完整日志始终在 data/latest.log',
50
+ description: '日志页内存驻留的最大条数,超出后从最旧成块丢弃;完整日志始终在家目录的 logs/latest.log',
38
51
  },
39
52
  startupView: {
40
53
  type: 'select',
@@ -60,9 +73,18 @@ const uses = {
60
73
  provide,
61
74
  services,
62
75
  hostConfig: optional(hostConfig),
76
+ /** 日志页:订阅时补发最近的历史(启动期的也在里面),之后接实时 */
77
+ logs: optional(hostLogs),
63
78
  platform: optional(platform),
64
79
  storage: optional(storage),
65
80
  persona: optional(persona),
81
+ /** 登记 cli 审批面:终端界面在场时审批推到这里,应答记在这个登记身份名下 */
82
+ approvals: optional(approvals),
83
+ /** 欢迎行下面的指路:有没有插件没起来,与 /doctor 在不在 */
84
+ plugins: optional(pluginsService),
85
+ commands: optional(commands),
86
+ /** 发出入站之前给配置的会话建档,创建来源写 cli 审批面的登记名 */
87
+ sessionManager: optional(sessionManager),
66
88
  };
67
89
  export default definePlugin({
68
90
  name,
@@ -75,7 +97,7 @@ export default definePlugin({
75
97
  });
76
98
  function startCli(caps) {
77
99
  const { config, events, logger } = caps;
78
- const cfg = parseConfig(configSchema, config, logger);
100
+ const cfg = parseConfig(configSchema, config.use, logger.use);
79
101
  const cliConfig = {
80
102
  prompt: cfg.prompt,
81
103
  sessionId: cfg.sessionId,
@@ -84,13 +106,14 @@ function startCli(caps) {
84
106
  maxLogEntries: Math.max(1000, cfg.maxLogEntries || configSchema.maxLogEntries.default),
85
107
  };
86
108
  const sessionId = cliConfig.sessionId;
109
+ const approvalSurface = caps.approvals.use.registerSurface('cli');
87
110
  let tui = null;
88
111
  const adapter = {
89
112
  adapterName: 'CLI',
90
113
  platform: 'cli',
91
- sessionTypes: [], // CLI 单会话,不区分 sessionType
114
+ // 终端界面在跑才有连接;后台运行(非 TTY)与界面起来之前没有连接,不是离线
92
115
  getConnections() {
93
- return [{ id: sessionId, platform: 'cli', status: tui?.isRunning() ? 'online' : 'offline' }];
116
+ return tui?.isRunning() ? [{ id: sessionId, platform: 'cli', status: 'online' }] : [];
94
117
  },
95
118
  // sessionId 由配置直接给出(不带 platform 前缀),需显式声明只接管自己的 sessionId
96
119
  canHandle(sid) {
@@ -100,72 +123,95 @@ function startCli(caps) {
100
123
  if (tui)
101
124
  tui.pushAssistant(content);
102
125
  else
103
- logger.info(`[cli] ${content}`);
126
+ logger.use.info(`[cli] ${content}`);
104
127
  },
105
128
  };
106
- caps.provide(platform, adapter);
129
+ caps.provide.use(platform, adapter);
107
130
  const cliService = {
108
131
  getSessionId: () => sessionId,
109
132
  isRunning: () => tui?.isRunning() ?? false,
110
133
  };
111
- caps.provide(cli, cliService);
112
- events.on('outbound:message', msg => {
134
+ caps.provide.use(cli, cliService);
135
+ // 附件:终端就是这个会话的平台,显示不了图片本身,写一行说明(类型、名称、大小、本机路径),写出即算送达并照常归档。
136
+ // 路径在支持超链接的终端里可以点开
137
+ const attachmentStorage = caps.storage.use;
138
+ const KIND_LABELS = {
139
+ image: AttachmentRefKind.Image,
140
+ audio: AttachmentRefKind.Audio,
141
+ video: AttachmentRefKind.Video,
142
+ file: AttachmentRefKind.File,
143
+ };
144
+ async function attachmentLine(att) {
145
+ const label = `[${KIND_LABELS[att.kind] ?? '附件'}]`;
146
+ if (/^https?:\/\//i.test(att.data))
147
+ return `${label} ${att.name ?? ''} ${att.data}`.replace(/\s+/g, ' ').trim();
148
+ if (att.data.startsWith('data:') && att.data.includes(';base64,')) {
149
+ const bytes = Math.floor(((att.data.length - att.data.indexOf(',') - 1) * 3) / 4);
150
+ return `${label} ${att.name ?? '内联数据'} · ${formatBytes(bytes)}`;
151
+ }
152
+ let path = att.data;
153
+ let size = '';
154
+ try {
155
+ path = await attachmentStorage.resolveLocalPath(att.data, 'read');
156
+ size = formatBytes((await attachmentStorage.stat(att.data)).size);
157
+ }
158
+ catch {
159
+ // 取不到本机路径时照写存储地址
160
+ }
161
+ return [`${label} ${att.name ?? path.split('/').pop() ?? ''}`, size, path].filter(Boolean).join(' · ');
162
+ }
163
+ function sendAttachments(msg) {
164
+ const attachments = (msg.attachments ?? []).map(att => ({ ...att }));
165
+ // 同步认领:发起方 await emit 之后就要能等到它
166
+ msg.delivery = (async () => {
167
+ try {
168
+ for (const att of attachments)
169
+ adapter.sendMessage(msg.sessionId, await attachmentLine(att));
170
+ void events.use.emit('outbound:delivered', { ...msg, attachments, delivery: undefined });
171
+ return { ok: true };
172
+ }
173
+ catch (err) {
174
+ return { ok: false, error: err instanceof Error ? err.message : String(err) };
175
+ }
176
+ })();
177
+ }
178
+ events.use.on('outbound:message', msg => {
113
179
  if (msg.sessionId !== sessionId)
114
180
  return;
115
- // 同一轮已流式输出时,agent 的整条回复是重复;系统/指令消息不是流式正文,照常显示
116
- if (msg.source === 'agent' && tui?.consumeStreamedSend())
181
+ if (msg.attachments?.length) {
182
+ sendAttachments(msg);
183
+ // 附件消息里的文字照常显示;它不是流式正文的整条重复,不消耗流式标记
184
+ if (msg.content.trim())
185
+ adapter.sendMessage(msg.sessionId, msg.content);
117
186
  return;
118
- adapter.sendMessage(msg.sessionId, msg.content);
187
+ }
188
+ // 纯文本同样写出即算送达,同步认领回执(作品通知等要等它)。同一轮已流式输出时,agent 的整条回复是重复、
189
+ // 正文早已写出;系统/指令消息不是流式正文,照常显示
190
+ const written = msg.source === 'agent' && tui?.consumeStreamedSend()
191
+ ? Promise.resolve()
192
+ : adapter.sendMessage(msg.sessionId, msg.content);
193
+ msg.delivery = written.then(() => ({ ok: true }), err => ({ ok: false, error: err instanceof Error ? err.message : String(err) }));
119
194
  });
120
- events.on('outbound:stream', chunk => {
195
+ events.use.on('outbound:stream', chunk => {
121
196
  if (chunk.sessionId !== sessionId)
122
197
  return;
123
198
  tui?.applyStreamChunk(chunk);
124
199
  });
125
- // 临时缓冲:插件装配早于 app:started,但晚于 bootstrap-buffer.dispose();
126
- // 我们订阅一个 onEntry 把这段窗口的实时 entry 留住,并在 app:started 时合并
127
- // data/latest.log 尾部(覆盖装配之前的早期 boot 日志)。
128
- const liveBuffer = [];
129
- let liveBufferActive = true;
130
- const stopLiveBuffer = LogHub.default.onEntry(entry => {
131
- if (liveBufferActive)
132
- liveBuffer.push(entry);
133
- });
134
- events.on('app:started', async () => {
200
+ // 日志从激活起订阅:先补发最近 2000 条,之后实时接着送,seq 连续。界面起来之前攒着,起来之后交给它
201
+ const earlyLogs = [];
202
+ let onLog = entry => earlyLogs.push(entry);
203
+ const stopLogs = caps.logs.use.subscribe(entry => onLog(entry), { history: 2000 });
204
+ events.use.on('app:started', () => {
135
205
  // 非交互终端(日志重定向 / 容器 / systemd):不接管终端、不画界面,控制台日志照常走 stdout;
136
206
  // 服务仍在线(平台枚举、子命令分发不受影响),出站消息退化为日志(见 sendMessage)。
137
207
  if (!output.isTTY || !input.isTTY) {
138
- liveBufferActive = false;
139
- stopLiveBuffer();
140
- logger.info('stdin/stdout 非 TTY,CLI 界面未启动');
208
+ stopLogs();
209
+ logger.use.info('stdin/stdout 非 TTY,CLI 界面未启动');
141
210
  return;
142
211
  }
143
- let initial = [];
144
- try {
145
- initial = await readLogFileTail(createStorageGateway(caps.storage), 2000);
146
- }
147
- catch {
148
- // 文件未就绪可忽略——只是无早期历史
149
- }
150
- // 合并:file tail 与 live buffer 都可能含同一 seq,按 seq 去重排序
151
- const seen = new Set();
152
- const merged = [];
153
- for (const e of initial) {
154
- if (seen.has(e.seq))
155
- continue;
156
- seen.add(e.seq);
157
- merged.push(e);
158
- }
159
- for (const e of liveBuffer) {
160
- if (seen.has(e.seq))
161
- continue;
162
- seen.add(e.seq);
163
- merged.push(e);
164
- }
165
- merged.sort((a, b) => a.seq - b.seq);
166
- liveBufferActive = false;
167
- stopLiveBuffer();
168
- tui = new CliTui(caps, cliConfig, sessionId, merged);
212
+ const started = new CliTui(caps, cliConfig, sessionId, approvalSurface, earlyLogs);
213
+ onLog = entry => started.appendLog(entry);
214
+ tui = started;
169
215
  tui.start();
170
216
  });
171
217
  }
@@ -176,6 +222,7 @@ class CliTui {
176
222
  caps;
177
223
  config;
178
224
  sessionId;
225
+ approvalSurface;
179
226
  view;
180
227
  previousView = 'chat';
181
228
  /** 非 chat 视图期间进入聊天区的条数(确认提示、回复);header 的 CHAT 页签带计数,切回即清 */
@@ -185,27 +232,43 @@ class CliTui {
185
232
  cursor = 0;
186
233
  history = [];
187
234
  historyIndex = null;
235
+ /** 提交的行依次投递:会话缺档时要先等建档,后一行不能越过前一行先发出 */
236
+ delivering = Promise.resolve();
237
+ /** 已告警过配置的会话 id 由别的平台适配器认领 */
238
+ warnedForeign = false;
188
239
  chat = new ChatBuffer();
189
240
  logLines;
190
241
  logScroll = 0;
191
242
  logWrap = false;
192
243
  statusScroll = 0;
193
244
  helpScroll = 0;
194
- removeLogListener = null;
195
245
  // 流式状态:正在生成的 assistant 回复,其行由 ChatBuffer 维护为末尾一段
196
246
  streamingContent = '';
197
247
  streamedRecently = false;
198
248
  renderQueued = false;
199
249
  closing = false;
200
250
  restoreOnExit = () => restoreTerminalState();
201
- constructor(caps, config, sessionId, initialEntries = []) {
251
+ /** 推到终端、还没结的审批,按推到的先后;卡上显示第一张 */
252
+ cards = [];
253
+ /** 卡上选中的应答。推出时不选:正在打字时按下的回车不会落到卡上 */
254
+ choice;
255
+ attendance;
256
+ constructor(caps, config, sessionId, approvalSurface, initialEntries = []) {
202
257
  this.caps = caps;
203
258
  this.config = config;
204
259
  this.sessionId = sessionId;
260
+ this.approvalSurface = approvalSurface;
205
261
  this.view = config.startupView === 'last' ? config.lastView : config.startupView;
206
- // 启动期日志由插件入口通过尾读 data/latest.log + 实时 buffer 合并后注入,
207
- // 之后通过 LogHub.onEntry 实时累积;按 seq 单调,下方 onEntry 用 lastSeq 去重避免与 initial 重复。
262
+ // 日志由插件入口的订阅送来:界面起来之前的这一批,之后经 appendLog 一条条接着
208
263
  this.logLines = initialEntries.slice();
264
+ // 以本地终端身份接入审批面(与输入消息的 userId 相同)。有按键才上报在场
265
+ this.attendance = this.approvalSurface.attend({ platform: 'cli', userId: 'console' }, {
266
+ requested: approval => {
267
+ this.cards.push(approval);
268
+ this.queueRender();
269
+ },
270
+ settled: (approvalId, { state }) => this.closeCard(approvalId, SETTLED_LINES[state]),
271
+ });
209
272
  }
210
273
  isRunning() {
211
274
  return this.running;
@@ -216,7 +279,7 @@ class CliTui {
216
279
  this.running = true;
217
280
  // 宣告"我接管终端"——任何写 stdout 的订阅者(runtime/console-sink 等)
218
281
  // 自行响应该事件停止写入,CLI 不直接干预日志系统。
219
- this.caps.events.emit('terminal:claimed', 'cli').catch(() => { });
282
+ this.caps.events.use.emit('terminal:claimed', 'cli').catch(() => { });
220
283
  // 1049h: 进入备用屏 / 25l: 隐藏光标 / 1007h: alternate scroll——支持它的终端会把
221
284
  // 滚轮翻译成方向键,落到我们的键盘滚动路径上。不开启 SGR 鼠标上报(1000h/1006h):
222
285
  // 终端保持原生的文本选择/复制,程序不接管任何鼠标事件。
@@ -227,48 +290,59 @@ class CliTui {
227
290
  input.setRawMode(true);
228
291
  input.resume();
229
292
  process.once('exit', this.restoreOnExit);
230
- // 已注入 initialEntries 中最大的 seq;onEntry 收到 seq <= 此值的视为重复跳过
231
- let lastSeq = this.logLines.length > 0 ? this.logLines[this.logLines.length - 1].seq : -1;
232
- this.removeLogListener = LogHub.default.onEntry(entry => {
233
- if (entry.seq <= lastSeq)
234
- return;
235
- lastSeq = entry.seq;
236
- // 不限长——启动期起累积,渲染仅访问可见窗口,内存价格可接受
237
- this.logLines.push(entry);
238
- if (this.logLines.length > this.config.maxLogEntries)
239
- this.trimLogHead();
240
- // 用户已主动向上滚(logScroll > 0)时,新日志到来应保持视图锚定在原历史位置,
241
- // 而非随 raw.length 增长把旧内容挤出可见区。logScroll === 0 表示跟随底部。
242
- if (this.view === 'logs' && this.logScroll > 0)
243
- this.logScroll += 1;
244
- if (this.view === 'logs')
245
- this.queueRender();
246
- });
247
- const assistantName = this.caps.persona.current?.getPersonaName() ?? 'Aalis';
293
+ const assistantName = this.personaName() ?? 'Aalis';
248
294
  this.chat.append([
249
295
  chalk.gray(this.formatCont()) + chalk.gray(`欢迎使用 ${assistantName}。按 ${chalk.cyan('Ctrl+G')} 查看快捷键。`),
250
296
  ]);
251
- // 意图确认不自建通道:走 session-confirm 的公共协调器(authority 的 '*' 回调)——提示以消息
252
- // 进聊天区(带参数摘要),在输入框回复 y / ys 即可;回复在 inbound:confirm 相位被拦截,不触达 agent。
253
- // 与 WebUI / OneBot 同一份排队、超时、会话授予语义,CLI 不再维护第二套。
297
+ void this.pointToUnready();
254
298
  input.on('keypress', this.handleKeypress);
255
299
  output.on('resize', this.queueRender);
256
- this.caps.lifecycle.onDispose(() => this.stop());
300
+ this.caps.lifecycle.use.onDispose(() => this.stop());
257
301
  this.render();
258
302
  }
303
+ /**
304
+ * 插件状态静置之后,有插件没起来时在欢迎行下面指路:数目是失败与缺服务之和(缺服务按 api-doctor 的共享判据,只在等
305
+ * 别的插件启动的不算),与 /doctor 的「失败」「未就绪」两项一致;有 doctor 指令时指向它,没有时指向日志页
306
+ */
307
+ async pointToUnready() {
308
+ if (!this.caps.plugins.present)
309
+ return;
310
+ const plugins = this.caps.plugins.use;
311
+ await plugins.idle();
312
+ const status = plugins.getStatus();
313
+ const lacking = [...unmetDependencies(status, this.caps.services.use.names()).values()].filter(u => u.lacking.length > 0);
314
+ const count = status.filter(p => p.state === 'error').length + lacking.length;
315
+ if (count === 0)
316
+ return;
317
+ const how = (this.caps.commands.present ? this.caps.commands.use.has('doctor') : undefined)
318
+ ? `输入 ${chalk.cyan('/doctor')} 查看原因与修法`
319
+ : `按 ${chalk.cyan('Ctrl+L')} 看日志`;
320
+ this.chat.append([chalk.gray(this.formatCont()) + chalk.yellow(`有 ${count} 个插件没起来,${how}`)]);
321
+ this.queueRender();
322
+ }
259
323
  stop() {
260
324
  if (this.closing)
261
325
  return;
262
326
  this.closing = true;
263
327
  this.running = false;
264
- this.removeLogListener?.();
265
- this.removeLogListener = null;
266
328
  input.off('keypress', this.handleKeypress);
267
329
  output.off('resize', this.queueRender);
268
330
  process.off('exit', this.restoreOnExit);
269
331
  restoreTerminalState();
270
332
  // 归还终端——sink 等订阅者可自行恢复
271
- this.caps.events.emit('terminal:released', 'cli').catch(() => { });
333
+ this.caps.events.use.emit('terminal:released', 'cli').catch(() => { });
334
+ }
335
+ appendLog(entry) {
336
+ // 启动期起累积,渲染只访问可见窗口
337
+ this.logLines.push(entry);
338
+ if (this.logLines.length > this.config.maxLogEntries)
339
+ this.trimLogHead();
340
+ // 用户已主动向上滚(logScroll > 0)时,新日志到来应保持视图锚定在原历史位置,
341
+ // 而非随 raw.length 增长把旧内容挤出可见区。logScroll === 0 表示跟随底部。
342
+ if (this.view === 'logs' && this.logScroll > 0)
343
+ this.logScroll += 1;
344
+ if (this.view === 'logs')
345
+ this.queueRender();
272
346
  }
273
347
  pushAssistant(content) {
274
348
  if (!content.trim())
@@ -317,9 +391,16 @@ class CliTui {
317
391
  if (this.view === 'chat')
318
392
  this.queueRender();
319
393
  }
394
+ /** 终端会话生效的人设的名字:按会话设置的「人设」取卡,与回合同一口径;没有人设服务时为 undefined */
395
+ personaName() {
396
+ const config = this.caps.sessionManager.present
397
+ ? this.caps.sessionManager.use.resolveConfig(this.sessionId, 'cli')
398
+ : undefined;
399
+ return this.caps.persona.present ? this.caps.persona.use.getPersonaName({ persona: config?.persona }) : undefined;
400
+ }
320
401
  /** 所有标签对齐到同一列宽,确保 │ 竖线垂直对齐 */
321
402
  labelCol() {
322
- const persona = this.caps.persona.current?.getPersonaName() ?? 'Aalis';
403
+ const persona = this.personaName() ?? 'Aalis';
323
404
  return Math.max(visibleLen(`✦ ${persona}`), // assistant
324
405
  visibleLen(`❯ ${this.config.prompt}`), // user
325
406
  visibleLen('◆ System'), // system
@@ -336,14 +417,18 @@ class CliTui {
336
417
  return `${' '.repeat(col)} ${chalk.gray('│')} `;
337
418
  }
338
419
  formatAssistantBlock(content) {
339
- const persona = this.caps.persona.current?.getPersonaName() ?? 'Aalis';
420
+ const persona = this.personaName() ?? 'Aalis';
340
421
  const firstHead = this.formatHead(chalk.green(`✦ ${persona}`));
341
422
  const contHead = this.formatCont();
342
423
  return content.split('\n').map((line, i) => (i === 0 ? firstHead : contHead) + line);
343
424
  }
344
- handleKeypress = async (chunk, key) => {
425
+ handleKeypress = (chunk, key) => {
345
426
  if (!this.running)
346
427
  return;
428
+ // 卡片只接它推出之后的按键:这次按键让终端变为在场而补推来的卡,owner 还没看到,这次按键照常处理
429
+ const carded = this.cards.length > 0;
430
+ // 终端有输入即在场:最近一次按键在审批服务的时限内,审批就推到这里
431
+ this.attendance.presence(true);
347
432
  if (key.ctrl && key.name === 'c') {
348
433
  this.stop();
349
434
  process.kill(process.pid, 'SIGINT');
@@ -369,6 +454,11 @@ class CliTui {
369
454
  this.switchView(this.previousView);
370
455
  return;
371
456
  }
457
+ // 审批卡是模态的:卡在时除了上面的切换视图与退出,按键只用来应答;打字与回车不算应答,也不进输入框
458
+ if (carded) {
459
+ this.handleCardKey(key);
460
+ return;
461
+ }
372
462
  if (this.view === 'logs') {
373
463
  this.handleLogsKey(key);
374
464
  return;
@@ -395,7 +485,7 @@ class CliTui {
395
485
  return;
396
486
  }
397
487
  if (key.name === 'return') {
398
- await this.submitLine();
488
+ this.submitLine();
399
489
  return;
400
490
  }
401
491
  if (key.name === 'backspace') {
@@ -447,6 +537,40 @@ class CliTui {
447
537
  this.queueRender();
448
538
  }
449
539
  };
540
+ /** ← 选批准、→ 选拒绝,回车确定选中的一项;Ctrl+Y 直接批准、Ctrl+N 直接拒绝 */
541
+ handleCardKey(key) {
542
+ if (key.ctrl && (key.name === 'y' || key.name === 'n')) {
543
+ this.answer(key.name === 'y' ? 'approve' : 'deny');
544
+ return;
545
+ }
546
+ if (key.name === 'left' || key.name === 'right') {
547
+ this.choice = key.name === 'left' ? 'approve' : 'deny';
548
+ this.queueRender();
549
+ return;
550
+ }
551
+ if (key.name === 'return' && this.choice)
552
+ this.answer(this.choice);
553
+ }
554
+ /** 应答卡上的第一张。成功时结算同步推回、卡片随之关掉;被拒的应答(已结算、审批服务不在等)同样关卡并写明原因 */
555
+ answer(decision) {
556
+ const card = this.cards[0];
557
+ const reply = this.attendance.respond({ approvalId: card.id, decision, contentHash: card.contentHash });
558
+ if (!reply.ok)
559
+ this.closeCard(card.id, `应答没有生效:${reply.message}`);
560
+ }
561
+ /** 审批结算了:卡片关掉,聊天区留一行 */
562
+ closeCard(approvalId, line) {
563
+ const index = this.cards.findIndex(card => card.id === approvalId);
564
+ if (index < 0)
565
+ return;
566
+ const [card] = this.cards.splice(index, 1);
567
+ if (index === 0)
568
+ this.choice = undefined;
569
+ this.chat.append([`${this.formatHead(chalk.yellow('◆ System'))}审批 ${sanitizeForCard(card.tool)}:${line}`]);
570
+ if (this.view !== 'chat')
571
+ this.unreadChat++;
572
+ this.queueRender();
573
+ }
450
574
  handleLogsKey(key) {
451
575
  if (key.ctrl && key.name === 'w') {
452
576
  this.logWrap = !this.logWrap;
@@ -485,7 +609,7 @@ class CliTui {
485
609
  this[field] = Number.MAX_SAFE_INTEGER;
486
610
  this.queueRender();
487
611
  }
488
- async submitLine() {
612
+ submitLine() {
489
613
  const text = this.inputLine.trim();
490
614
  this.inputLine = '';
491
615
  this.cursor = 0;
@@ -503,15 +627,44 @@ class CliTui {
503
627
  // 适配器不再内联解析:未注册命令被放行为普通消息进入 agent,命中命令
504
628
  // 由该相位执行并经 outbound:message 回送渲染到 TUI,与 onebot/webui 一致。
505
629
  // shutdown/restart 的 TUI 清理由 lifecycle.onDispose(() => this.stop()) 兜底。
506
- // userId 'console':本地终端身份(物理访问 = 运维者本人),命中 authority 的
507
- // cli:console owner 快速通道;缺省 userId 会被当成匿名回退 defaultAuthority。
508
- await this.caps.events.emit('inbound:message', {
630
+ // 一行没发出去只记 warn,不挡后面的行
631
+ this.delivering = this.delivering
632
+ .then(() => this.deliver(text))
633
+ .catch(err => this.caps.logger.use.warn('终端消息没有发出:', err));
634
+ }
635
+ /**
636
+ * 发出一行。会话在入站之前建档、写创建来源:入站时会话表里已有它,房间收录不会把它当成 IM 房间;会话被删后下一条消息
637
+ * 照样补建。已有的记录只有按 id 兜底建档留下的空记录(没有创建来源、出生平台与绑定,如会话被删后定时任务在它里面派了
638
+ * 子任务)补写创建来源,其余不动。配置的 id 由别的平台适配器认领(配错了)时不建档、不写创建来源:配错的 id 不能把
639
+ * 别人的窗口变成 owner 自己的会话。userId 'console':本地终端身份(物理访问 = 运维者本人),命中 authority 的
640
+ * cli:console owner 快速通道;缺省 userId 会被当成匿名回退 defaultAuthority
641
+ */
642
+ async deliver(text) {
643
+ const sm = this.caps.sessionManager.present ? this.caps.sessionManager.use : undefined;
644
+ const session = sm?.getSession(this.sessionId);
645
+ const unfiled = !session || (!session.createdFrom && !session.originPlatform && !session.work);
646
+ if (sm && unfiled && !(await this.claimedElsewhere())) {
647
+ await sm.ensureSession(this.sessionId, {}, { createdFrom: this.approvalSurface.name });
648
+ }
649
+ await this.caps.events.use.emit('inbound:message', {
509
650
  content: text,
510
651
  sessionId: this.sessionId,
511
652
  platform: 'cli',
512
653
  userId: 'console',
513
654
  });
514
655
  }
656
+ /** 配置的会话 id 由终端以外的平台适配器认领;第一次发现时告警 */
657
+ async claimedElsewhere() {
658
+ const { platform, logger } = this.caps;
659
+ const others = { list: () => platform.list().filter(({ use }) => use.platform !== 'cli') };
660
+ const owner = await resolvePlatformBySession(others, this.sessionId, logger.use);
661
+ if (owner && !this.warnedForeign) {
662
+ this.warnedForeign = true;
663
+ logger.use.warn(`终端配置的会话 ${this.sessionId} 由平台「${owner.use.platform}」(${owner.id})认领:终端不给它建档、` +
664
+ '不写创建来源。改配置里的 sessionId');
665
+ }
666
+ return owner !== undefined;
667
+ }
515
668
  recallHistory(delta) {
516
669
  if (this.history.length === 0)
517
670
  return;
@@ -550,13 +703,13 @@ class CliTui {
550
703
  if (view === 'help')
551
704
  return;
552
705
  // 宿主没提供配置文档时不记:下次启动回到默认视图
553
- const host = this.caps.hostConfig.current;
554
- if (!host)
706
+ if (!this.caps.hostConfig.present)
555
707
  return;
708
+ const host = this.caps.hostConfig.use;
556
709
  const pluginConfig = host.getPluginConfig(name);
557
710
  host.setPluginConfig(name, { ...pluginConfig, lastView: view });
558
711
  // 尽力而为:最后视图丢了只是下次回到默认视图,不值得让渲染路径变 async
559
- host.save().catch(err => this.caps.logger.warn('记录最后视图失败:', err));
712
+ host.save().catch(err => this.caps.logger.use.warn('记录最后视图失败:', err));
560
713
  }
561
714
  queueRender = () => {
562
715
  if (this.renderQueued)
@@ -572,20 +725,21 @@ class CliTui {
572
725
  return;
573
726
  const width = Math.max(40, output.columns || 100);
574
727
  const height = Math.max(14, output.rows || 30);
575
- // 输入框可变高度(多行输入):内容行数 + 上下边框,最多 8 行内容
576
- const inputContentLines = this.computeInputDisplayLines(width);
577
- const inputBoxHeight = inputContentLines.length + 2;
578
- // 布局:header(1) + sep(1) + body + inputBox(inputBoxHeight) + footer(1)
579
- const bodyHeight = Math.max(3, height - 3 - inputBoxHeight);
728
+ // 输入框可变高度(多行输入):内容行数 + 上下边框,最多 8 行内容。有审批卡时卡片占这个位置
729
+ const box = this.cards.length > 0
730
+ ? this.renderCard(width, height)
731
+ : this.renderInputBox(width, this.computeInputDisplayLines(width));
732
+ // 布局:header(1) + sep(1) + body + box + footer(1)
733
+ const bodyHeight = Math.max(3, height - 3 - box.length);
580
734
  const out = [];
581
735
  out.push(this.renderHeader(width));
582
736
  out.push(chalk.gray(LINE_H.repeat(width)));
583
737
  out.push(...this.renderBody(width, bodyHeight));
584
- out.push(...this.renderInputBox(width, inputContentLines));
738
+ out.push(...box);
585
739
  out.push(this.renderFooter(width));
586
740
  output.write('\x1b[?25l\x1b[H');
587
741
  output.write(out.map(line => clearLine(line, width)).join('\n'));
588
- if (this.view === 'chat') {
742
+ if (this.view === 'chat' && this.cards.length === 0) {
589
743
  // 计算光标在多行输入中的 (row, col)
590
744
  const { row: cRow, col: cCol } = this.cursorPosInInput();
591
745
  // 行号布局(1-based):1=header, 2=sep, 3..2+bodyHeight=body, 之后是 inputBox(顶/中.../底), 最后是 footer
@@ -597,7 +751,7 @@ class CliTui {
597
751
  }
598
752
  }
599
753
  renderHeader(width) {
600
- const persona = this.caps.persona.current?.getPersonaName() ?? 'default';
754
+ const persona = this.personaName() ?? 'default';
601
755
  const left = ` ${chalk.bold.magenta('●')} ${chalk.bold('Aalis')} ${chalk.gray('·')} ${chalk.cyan(persona)} `;
602
756
  const tabs = ['chat', 'logs', 'status', 'help']
603
757
  .map(v => {
@@ -684,7 +838,7 @@ class CliTui {
684
838
  return c.lines;
685
839
  }
686
840
  /** 内存环形上限:超限时从最旧丢弃约 10% 一块(摊销 O(1)),格式化缓存按 lineCounts
687
- * 对齐裁剪而非整体失效——避免每次裁剪都 O(全量) 重建。完整日志始终在 data/latest.log。 */
841
+ * 对齐裁剪而非整体失效——避免每次裁剪都 O(全量) 重建。完整日志始终在 logs/latest.log。 */
688
842
  trimLogHead() {
689
843
  const drop = Math.max(1, Math.ceil(this.config.maxLogEntries / 10));
690
844
  this.logLines.splice(0, drop);
@@ -735,10 +889,10 @@ class CliTui {
735
889
  }
736
890
  }
737
891
  getStatusViewLines() {
738
- const serviceNames = this.caps.services.names();
892
+ const serviceNames = this.caps.services.use.names();
739
893
  const adapter = getPlatformAdapters(this.caps.platform).find(a => a.platform === 'cli');
740
894
  const connections = adapter?.getConnections?.() ?? [];
741
- const persona = this.caps.persona.current?.getPersonaName() ?? '-';
895
+ const persona = this.personaName() ?? '-';
742
896
  const sec = (t) => chalk.bold.cyan(`▎ ${t}`);
743
897
  const kv = (k, v) => ` ${chalk.gray(k.padEnd(14))} ${v}`;
744
898
  const out = [];
@@ -786,8 +940,13 @@ class CliTui {
786
940
  out.push(row('Shift+Ent', '插入换行(如终端支持)'));
787
941
  out.push(row('↑ / ↓', '历史记录回溯(chat 视图)'));
788
942
  out.push('');
943
+ out.push(sec('审批卡(卡在时打字与回车不算应答,也不进输入框)'));
944
+ out.push(row('← / →', '选批准 / 拒绝,Enter 确定'));
945
+ out.push(row('Ctrl+Y', '批准'));
946
+ out.push(row('Ctrl+N', '拒绝'));
947
+ out.push('');
789
948
  out.push(sec('提示'));
790
- out.push(` ${chalk.gray('• 完整日志写入 data/latest.log,每次启动时上一轮改名为 latest.1.log,保留 5 份;跨重启持续跟随用 tail -F。')}`);
949
+ out.push(` ${chalk.gray('• 完整日志写入家目录的 logs/latest.log,每次启动时上一轮改名为 latest.1.log,保留 5 份;跨重启持续跟随用 tail -F。')}`);
791
950
  out.push(` ${chalk.gray('• 退出时自动恢复原终端内容(alternate screen)。')}`);
792
951
  out.push(` ${chalk.gray('• 输入以 / 开头会按命令解析,否则发给 agent。')}`);
793
952
  out.push(` ${chalk.gray('• ↑/↓、PgUp/PgDn、Home/End 滚动 Logs / Status / Help;选择 / 复制文本直接用终端原生操作。')}`);
@@ -836,6 +995,34 @@ class CliTui {
836
995
  const bot = chalk.gray(`${BOX_BL}${LINE_H.repeat(inner)}${BOX_BR}`);
837
996
  return [top, ...mid, bot];
838
997
  }
998
+ /**
999
+ * 审批卡:标题行、事实、应答项,上下边框。卡片最多高到正文只剩 3 行:事实放不下时保留首尾几行,写明省略了多少行。
1000
+ * 事实显示前经 sanitizeForCard 清洗,太长的保留首尾、写明省略了多少字
1001
+ */
1002
+ renderCard(width, height) {
1003
+ const card = this.cards[0];
1004
+ const inner = width - 2;
1005
+ const waiting = this.cards.length > 1 ? ` · 还有 ${this.cards.length - 1} 张` : '';
1006
+ const title = `${chalk.bold.yellow('需要批准')} ${sanitizeForCard(card.tool)} · 会话 ${sanitizeForCard(card.sessionId)}${waiting}`;
1007
+ const facts = cardFacts(card.facts).flatMap(([label, text]) => factLines(label, text, inner - 2));
1008
+ // 高度:header、sep、footer 各一行,正文至少 3 行,卡片的上下边框、标题行与应答行
1009
+ const room = height - 10;
1010
+ const shown = facts.length <= room
1011
+ ? facts
1012
+ : [
1013
+ ...facts.slice(0, Math.ceil((room - 1) / 2)),
1014
+ chalk.gray(`…(省略 ${facts.length - room + 1} 行)…`),
1015
+ ...facts.slice(facts.length - Math.floor((room - 1) / 2)),
1016
+ ];
1017
+ const option = (decision, label) => this.choice === decision ? chalk.inverse(`❯ ${label}`) : ` ${label}`;
1018
+ const options = `${option('approve', '批准')} ${option('deny', '拒绝')} ${chalk.gray('←/→ 选择 · Enter 确定 · Ctrl+Y 批准 · Ctrl+N 拒绝')}`;
1019
+ const edge = chalk.yellow(BOX_V);
1020
+ return [
1021
+ chalk.yellow(`${BOX_TL}${LINE_H.repeat(inner)}${BOX_TR}`),
1022
+ ...[title, ...shown, options].map(line => `${edge}${padAnsi(` ${line}`, inner)}${edge}`),
1023
+ chalk.yellow(`${BOX_BL}${LINE_H.repeat(inner)}${BOX_BR}`),
1024
+ ];
1025
+ }
839
1026
  makePrompt() {
840
1027
  return `${chalk.cyan('❯')} ${chalk.bold(this.config.prompt)} `;
841
1028
  }
@@ -859,6 +1046,38 @@ class CliTui {
859
1046
  return padAnsi(chalk.gray.dim(left), width);
860
1047
  }
861
1048
  }
1049
+ /** 卡片结算后在聊天区留的话 */
1050
+ const SETTLED_LINES = {
1051
+ approved: '已批准',
1052
+ denied: '已拒绝',
1053
+ expired: '没有人应答,按拒绝处理',
1054
+ cancelled: '已撤销',
1055
+ };
1056
+ /** 每项事实显示的字数上限,超出的保留首尾 */
1057
+ const CARD_FACT_LIMIT = 1000;
1058
+ /** 卡上的事实:标签与原文 */
1059
+ function cardFacts(facts) {
1060
+ const rows = [];
1061
+ if (facts.command !== undefined)
1062
+ rows.push(['命令', facts.command]);
1063
+ if (facts.cwd !== undefined)
1064
+ rows.push(['目录', facts.cwd]);
1065
+ if (facts.diff)
1066
+ rows.push(['文件', facts.diff.path], ['改动', facts.diff.patch ?? '疑似含密钥,不显示内容']);
1067
+ if (Object.keys(facts.params).length > 0)
1068
+ rows.push(['参数', JSON.stringify(facts.params)]);
1069
+ return rows;
1070
+ }
1071
+ /** 一项事实:清洗后按换行拆开、按宽度折行,标签只在第一行 */
1072
+ function factLines(label, text, width) {
1073
+ const head = `${chalk.gray(label)} `;
1074
+ const indent = ' '.repeat(visibleLen(head));
1075
+ return sanitizeForCard(text, CARD_FACT_LIMIT)
1076
+ .replace(/\t/g, ' ')
1077
+ .split('\n')
1078
+ .flatMap(line => wrapByVisibleWidth(line, width - indent.length))
1079
+ .map((segment, i) => (i === 0 ? head : indent) + segment);
1080
+ }
862
1081
  // ===== 视觉常量 / 工具 =====
863
1082
  const LINE_H = '─';
864
1083
  const BOX_TL = '╭';
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-cli",
3
- "version": "0.12.2",
3
+ "version": "0.13.0",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -24,24 +24,29 @@
24
24
  "dist"
25
25
  ],
26
26
  "dependencies": {
27
- "@aalis/schema-config": ">=0.14.0 <1.0.0",
28
- "@aalis/api-persona": ">=0.8.0 <1.0.0",
29
- "@aalis/api-platform": ">=0.8.0 <1.0.0",
30
- "@aalis/api-storage": ">=0.7.0 <1.0.0",
27
+ "@aalis/api-approval": ">=0.1.0 <1.0.0",
28
+ "@aalis/schema-config": ">=0.15.0 <1.0.0",
29
+ "@aalis/api-persona": ">=0.9.0 <1.0.0",
30
+ "@aalis/api-platform": ">=0.10.0 <1.0.0",
31
+ "@aalis/api-storage": ">=0.8.0 <1.0.0",
31
32
  "chalk": "^5.4.0",
32
33
  "cli-truncate": "^6.0.0",
33
34
  "string-width": "^8.2.0",
34
35
  "@aalis/schema-log": ">=0.2.0 <1.0.0",
35
- "@aalis/api-host-config": ">=0.1.0 <1.0.0"
36
+ "@aalis/schema-message": ">=0.10.0 <1.0.0",
37
+ "@aalis/api-host-config": ">=0.2.0 <1.0.0",
38
+ "@aalis/api-host-logs": ">=0.1.0 <1.0.0",
39
+ "@aalis/api-commands": ">=0.8.0 <1.0.0",
40
+ "@aalis/api-doctor": ">=0.8.0 <1.0.0",
41
+ "@aalis/api-session-manager": ">=0.11.0 <1.0.0"
36
42
  },
37
43
  "devDependencies": {
38
44
  "@types/node": "^22.0.0",
39
45
  "typescript": "^5.7.0",
40
- "@aalis/core": "0.19.1",
41
- "@aalis/schema-message": "0.9.1"
46
+ "@aalis/core": "0.20.0"
42
47
  },
43
48
  "peerDependencies": {
44
- "@aalis/core": ">=0.18.0 <1.0.0"
49
+ "@aalis/core": ">=0.20.0 <1.0.0"
45
50
  },
46
51
  "aalis": {
47
52
  "service": {
@@ -49,7 +54,12 @@
49
54
  "platform",
50
55
  "persona",
51
56
  "storage",
52
- "host-config"
57
+ "host-config",
58
+ "host-logs",
59
+ "approvals",
60
+ "plugins",
61
+ "commands",
62
+ "session-manager"
53
63
  ],
54
64
  "provides": [
55
65
  "cli",
@@ -1,4 +0,0 @@
1
- import { type StorageService } from '@aalis/api-storage';
2
- import { type LogEntry } from '@aalis/schema-log';
3
- export declare function readLogFileTail(storage: StorageService, limit: number): Promise<LogEntry[]>;
4
- //# sourceMappingURL=log-file.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"log-file.d.ts","sourceRoot":"","sources":["../src/log-file.ts"],"names":[],"mappings":"AAQA,OAAO,EAAiB,KAAK,cAAc,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAE,KAAK,QAAQ,EAAgB,MAAM,mBAAmB,CAAC;AAKhE,wBAAsB,eAAe,CAAC,OAAO,EAAE,cAAc,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,EAAE,CAAC,CAIjG"}
package/dist/log-file.js DELETED
@@ -1,17 +0,0 @@
1
- // latest.log 是 runtime 约定的"持久化日志单一数据源"(只装当前这一轮,上一轮在启动时改名保留);
2
- // CLI 启动时尾读它来恢复 boot 期早期日志(plugin apply 时 LogHub 已 emit 过若干
3
- // 早期 entry 但 CLI 还未订阅)。与 webui-server 走相同契约,避免插件直连 runtime。
4
- //
5
- // 路径(宿主目录布局)是「环境知识」,归 storage 的 logs 根所有;本插件只用
6
- // storage URI 寻址、对 cwd/落盘位置无知。写入方(runtime/file-logger)跑在
7
- // storage 起来之前,是 bootstrap 期的合法 raw-fs 例外,不在此处管辖。
8
- import { readTailLines } from '@aalis/api-storage';
9
- import { parseLogLine } from '@aalis/schema-log';
10
- /** 日志单一数据源的 storage URI(logs 根默认落在 data/ 下,与写入方 data/latest.log 对偶)。 */
11
- const LOG_FILE_URI = 'logs:/latest.log';
12
- export async function readLogFileTail(storage, limit) {
13
- // 倒序分块尾读——latest.log 随运行增长,启动恢复只要末尾 limit 条,不整文件载入
14
- const lines = await readTailLines(storage, LOG_FILE_URI, limit);
15
- return lines.map(parseLogLine).filter((e) => e !== null);
16
- }
17
- //# sourceMappingURL=log-file.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"log-file.js","sourceRoot":"","sources":["../src/log-file.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,4DAA4D;AAC5D,4DAA4D;AAC5D,EAAE;AACF,+CAA+C;AAC/C,yDAAyD;AACzD,kDAAkD;AAElD,OAAO,EAAE,aAAa,EAAuB,MAAM,oBAAoB,CAAC;AACxE,OAAO,EAAiB,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEhE,wEAAwE;AACxE,MAAM,YAAY,GAAG,kBAAkB,CAAC;AAExC,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,OAAuB,EAAE,KAAa;IAC1E,mDAAmD;IACnD,MAAM,KAAK,GAAG,MAAM,aAAa,CAAC,OAAO,EAAE,YAAY,EAAE,KAAK,CAAC,CAAC;IAChE,OAAO,KAAK,CAAC,GAAG,CAAC,YAAY,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAiB,EAAE,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC;AAC1E,CAAC"}