@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 +14 -5
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +328 -109
- package/dist/index.js.map +1 -1
- package/package.json +20 -10
- package/dist/log-file.d.ts +0 -4
- package/dist/log-file.d.ts.map +0 -1
- package/dist/log-file.js +0 -17
- package/dist/log-file.js.map +0 -1
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,
|
|
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/
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
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
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
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 {
|
|
7
|
-
import {
|
|
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
|
-
|
|
14
|
-
|
|
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: '
|
|
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
|
-
|
|
114
|
+
// 终端界面在跑才有连接;后台运行(非 TTY)与界面起来之前没有连接,不是离线
|
|
92
115
|
getConnections() {
|
|
93
|
-
return [{ id: sessionId, platform: 'cli', status:
|
|
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
|
-
|
|
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
|
-
|
|
116
|
-
|
|
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
|
-
|
|
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
|
-
//
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
const
|
|
129
|
-
|
|
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
|
-
|
|
139
|
-
|
|
140
|
-
logger.info('stdin/stdout 非 TTY,CLI 界面未启动');
|
|
208
|
+
stopLogs();
|
|
209
|
+
logger.use.info('stdin/stdout 非 TTY,CLI 界面未启动');
|
|
141
210
|
return;
|
|
142
211
|
}
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
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
|
-
|
|
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
|
-
//
|
|
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
|
-
|
|
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
|
-
|
|
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.
|
|
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.
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
//
|
|
507
|
-
|
|
508
|
-
|
|
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
|
-
|
|
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
|
|
577
|
-
|
|
578
|
-
|
|
579
|
-
|
|
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(...
|
|
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.
|
|
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(全量) 重建。完整日志始终在
|
|
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.
|
|
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('•
|
|
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.
|
|
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/
|
|
28
|
-
"@aalis/
|
|
29
|
-
"@aalis/api-
|
|
30
|
-
"@aalis/api-
|
|
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/
|
|
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.
|
|
41
|
-
"@aalis/schema-message": "0.9.1"
|
|
46
|
+
"@aalis/core": "0.20.0"
|
|
42
47
|
},
|
|
43
48
|
"peerDependencies": {
|
|
44
|
-
"@aalis/core": ">=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",
|
package/dist/log-file.d.ts
DELETED
package/dist/log-file.d.ts.map
DELETED
|
@@ -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
|
package/dist/log-file.js.map
DELETED
|
@@ -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"}
|