@aalis/plugin-cli 0.12.2 → 0.14.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/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@aalis/plugin-cli",
3
- "version": "0.12.2",
3
+ "version": "0.14.0",
4
4
  "license": "MIT",
5
5
  "repository": {
6
6
  "type": "git",
@@ -24,24 +24,33 @@
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.2.0 <1.0.0",
28
+ "@aalis/schema-config": ">=0.16.0 <1.0.0",
29
+ "@aalis/api-persona": ">=0.10.0 <1.0.0",
30
+ "@aalis/api-platform": ">=0.11.0 <1.0.0",
31
+ "@aalis/api-storage": ">=0.9.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.11.0 <1.0.0",
37
+ "@aalis/api-host-config": ">=0.3.0 <1.0.0",
38
+ "@aalis/api-host-logs": ">=0.1.0 <1.0.0",
39
+ "@aalis/api-commands": ">=0.9.0 <1.0.0",
40
+ "@aalis/api-doctor": ">=0.9.0 <1.0.0",
41
+ "@aalis/api-session-manager": ">=0.12.0 <1.0.0",
42
+ "@aalis/api-session-protocol": ">=0.2.0 <1.0.0",
43
+ "@aalis/api-i18n": ">=0.1.0 <1.0.0",
44
+ "@aalis/schema-i18n": ">=0.1.0 <1.0.0"
36
45
  },
37
46
  "devDependencies": {
38
47
  "@types/node": "^22.0.0",
39
48
  "typescript": "^5.7.0",
40
- "@aalis/core": "0.19.1",
41
- "@aalis/schema-message": "0.9.1"
49
+ "@aalis/core": "0.21.0",
50
+ "@aalis/api-session-settings": "0.1.0"
42
51
  },
43
52
  "peerDependencies": {
44
- "@aalis/core": ">=0.18.0 <1.0.0"
53
+ "@aalis/core": ">=0.21.0 <1.0.0"
45
54
  },
46
55
  "aalis": {
47
56
  "service": {
@@ -49,7 +58,14 @@
49
58
  "platform",
50
59
  "persona",
51
60
  "storage",
52
- "host-config"
61
+ "host-config",
62
+ "host-logs",
63
+ "approvals",
64
+ "plugins",
65
+ "commands",
66
+ "session-manager",
67
+ "i18n",
68
+ "session-protocol"
53
69
  ],
54
70
  "provides": [
55
71
  "cli",
@@ -1,24 +0,0 @@
1
- /**
2
- * 聊天区行缓冲:扁平行数组 + 流式块起点下标。
3
- *
4
- * 不变量:流式进行中时,流式块永远是 lines 的最后一段。
5
- * 流式回复靠绝对下标记位置、每个 delta 整块重建,因此任何会移动下标的操作
6
- * (裁头、流式期间插入历史行)都必须同步维护下标,否则重建会把下标错位处的
7
- * 旧行当成流式块重画(叠出阶梯副本),或把追加在块后的行抹掉。
8
- */
9
- export declare class ChatBuffer {
10
- private readonly max;
11
- readonly lines: string[];
12
- private streamingStart;
13
- constructor(max?: number);
14
- get streaming(): boolean;
15
- /** 追加历史行(欢迎语 / 整段 assistant 回复 / 用户输入回显);流式进行中时插到流式块之前 */
16
- append(incoming: string[]): void;
17
- /** 用重建后的整块内容覆写流式块;首次调用即开块(块占据 lines 末尾) */
18
- replaceStreamingBlock(block: string[]): void;
19
- /** 结束本轮流式;此后追加重新落到末尾 */
20
- endStreaming(): void;
21
- /** 只裁头。流式块下标随裁掉的行数左移;裁进块内则归 0——此时剩余整段都属于该块,下个 delta 会整体重建 */
22
- private trim;
23
- }
24
- //# sourceMappingURL=chat-buffer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chat-buffer.d.ts","sourceRoot":"","sources":["../src/chat-buffer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,qBAAa,UAAU;IAIT,OAAO,CAAC,QAAQ,CAAC,GAAG;IAHhC,QAAQ,CAAC,KAAK,EAAE,MAAM,EAAE,CAAM;IAC9B,OAAO,CAAC,cAAc,CAAuB;gBAEhB,GAAG,SAAM;IAEtC,IAAI,SAAS,IAAI,OAAO,CAEvB;IAED,0DAA0D;IAC1D,MAAM,CAAC,QAAQ,EAAE,MAAM,EAAE,GAAG,IAAI;IAUhC,2CAA2C;IAC3C,qBAAqB,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,IAAI;IAM5C,wBAAwB;IACxB,YAAY,IAAI,IAAI;IAIpB,6DAA6D;IAC7D,OAAO,CAAC,IAAI;CAOb"}
@@ -1,52 +0,0 @@
1
- /**
2
- * 聊天区行缓冲:扁平行数组 + 流式块起点下标。
3
- *
4
- * 不变量:流式进行中时,流式块永远是 lines 的最后一段。
5
- * 流式回复靠绝对下标记位置、每个 delta 整块重建,因此任何会移动下标的操作
6
- * (裁头、流式期间插入历史行)都必须同步维护下标,否则重建会把下标错位处的
7
- * 旧行当成流式块重画(叠出阶梯副本),或把追加在块后的行抹掉。
8
- */
9
- export class ChatBuffer {
10
- max;
11
- lines = [];
12
- streamingStart = null;
13
- constructor(max = 300) {
14
- this.max = max;
15
- }
16
- get streaming() {
17
- return this.streamingStart !== null;
18
- }
19
- /** 追加历史行(欢迎语 / 整段 assistant 回复 / 用户输入回显);流式进行中时插到流式块之前 */
20
- append(incoming) {
21
- if (this.streamingStart === null) {
22
- this.lines.push(...incoming);
23
- }
24
- else {
25
- this.lines.splice(this.streamingStart, 0, ...incoming);
26
- this.streamingStart += incoming.length;
27
- }
28
- this.trim();
29
- }
30
- /** 用重建后的整块内容覆写流式块;首次调用即开块(块占据 lines 末尾) */
31
- replaceStreamingBlock(block) {
32
- if (this.streamingStart === null)
33
- this.streamingStart = this.lines.length;
34
- this.lines.splice(this.streamingStart, this.lines.length - this.streamingStart, ...block);
35
- this.trim();
36
- }
37
- /** 结束本轮流式;此后追加重新落到末尾 */
38
- endStreaming() {
39
- this.streamingStart = null;
40
- }
41
- /** 只裁头。流式块下标随裁掉的行数左移;裁进块内则归 0——此时剩余整段都属于该块,下个 delta 会整体重建 */
42
- trim() {
43
- if (this.lines.length <= this.max)
44
- return;
45
- const removed = this.lines.length - this.max;
46
- this.lines.splice(0, removed);
47
- // 流式块自身超过上限时起点归零:此后流式期间的追加会被同一次裁剪吃掉(扁平模型的固有代价)
48
- if (this.streamingStart !== null)
49
- this.streamingStart = Math.max(0, this.streamingStart - removed);
50
- }
51
- }
52
- //# sourceMappingURL=chat-buffer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"chat-buffer.js","sourceRoot":"","sources":["../src/chat-buffer.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,MAAM,OAAO,UAAU;IAIQ;IAHpB,KAAK,GAAa,EAAE,CAAC;IACtB,cAAc,GAAkB,IAAI,CAAC;IAE7C,YAA6B,MAAM,GAAG;QAAT,QAAG,GAAH,GAAG,CAAM;IAAG,CAAC;IAE1C,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,cAAc,KAAK,IAAI,CAAC;IACtC,CAAC;IAED,0DAA0D;IAC1D,MAAM,CAAC,QAAkB;QACvB,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI,EAAE,CAAC;YACjC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,QAAQ,CAAC,CAAC;QAC/B,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,CAAC,EAAE,GAAG,QAAQ,CAAC,CAAC;YACvD,IAAI,CAAC,cAAc,IAAI,QAAQ,CAAC,MAAM,CAAC;QACzC,CAAC;QACD,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,2CAA2C;IAC3C,qBAAqB,CAAC,KAAe;QACnC,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI;YAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC;QAC1E,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,cAAc,EAAE,GAAG,KAAK,CAAC,CAAC;QAC1F,IAAI,CAAC,IAAI,EAAE,CAAC;IACd,CAAC;IAED,wBAAwB;IACxB,YAAY;QACV,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC;IAC7B,CAAC;IAED,6DAA6D;IACrD,IAAI;QACV,IAAI,IAAI,CAAC,KAAK,CAAC,MAAM,IAAI,IAAI,CAAC,GAAG;YAAE,OAAO;QAC1C,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,CAAC;QAC7C,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,EAAE,OAAO,CAAC,CAAC;QAC9B,+CAA+C;QAC/C,IAAI,IAAI,CAAC,cAAc,KAAK,IAAI;YAAE,IAAI,CAAC,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,cAAc,GAAG,OAAO,CAAC,CAAC;IACrG,CAAC;CACF"}
@@ -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"}