@qlingzzy/qling 1.1.0 → 1.2.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.
Files changed (44) hide show
  1. package/CHANGELOG.md +20 -2
  2. package/README.en.md +7 -7
  3. package/README.md +6 -4
  4. package/dist/channels/types.d.ts +2 -12
  5. package/dist/channels/types.d.ts.map +1 -1
  6. package/dist/commands/runtime.d.ts +1 -62
  7. package/dist/commands/runtime.d.ts.map +1 -1
  8. package/dist/commands/runtime.js +2 -22
  9. package/dist/context-report.d.ts +1 -1
  10. package/dist/context-report.d.ts.map +1 -1
  11. package/dist/doctor.d.ts +1 -1
  12. package/dist/doctor.d.ts.map +1 -1
  13. package/dist/eval/tasks.d.ts.map +1 -1
  14. package/dist/eval/tasks.js +8 -4
  15. package/dist/guard/approval.d.ts +1 -1
  16. package/dist/guard/approval.d.ts.map +1 -1
  17. package/dist/local-storage-report.d.ts +1 -1
  18. package/dist/local-storage-report.d.ts.map +1 -1
  19. package/dist/pipeline/sections.d.ts +1 -1
  20. package/dist/pipeline/sections.d.ts.map +1 -1
  21. package/dist/privacy-report.d.ts +1 -1
  22. package/dist/privacy-report.d.ts.map +1 -1
  23. package/dist/recap.d.ts +1 -1
  24. package/dist/recap.d.ts.map +1 -1
  25. package/dist/session-export-index.d.ts +1 -1
  26. package/dist/session-export-index.d.ts.map +1 -1
  27. package/dist/session-export.d.ts +1 -1
  28. package/dist/session-export.d.ts.map +1 -1
  29. package/dist/skills/types.d.ts +1 -8
  30. package/dist/skills/types.d.ts.map +1 -1
  31. package/dist/skills/types.js +1 -1
  32. package/dist/slash-context.d.ts +63 -0
  33. package/dist/slash-context.d.ts.map +1 -0
  34. package/dist/slash-context.js +26 -0
  35. package/dist/statusline.d.ts +1 -1
  36. package/dist/statusline.d.ts.map +1 -1
  37. package/dist/types.d.ts +20 -0
  38. package/dist/types.d.ts.map +1 -1
  39. package/docs/install.md +39 -29
  40. package/package.json +6 -2
  41. package/scripts/build-portable-win.mjs +137 -0
  42. package/scripts/dep-layers.mjs +49 -0
  43. package/scripts/sync-scoop-bucket.mjs +12 -0
  44. package/scripts/validate-packaging.mjs +6 -0
package/CHANGELOG.md CHANGED
@@ -2,15 +2,33 @@
2
2
 
3
3
  ## Unreleased
4
4
 
5
- ### Phase 7.0 — Sprint 4 分发与生态
5
+ ## v1.2.0 (2026-07-14)
6
+
7
+ ### Phase 8.0 — Sprint 5 分层治理 + 分发资产
8
+
9
+ - **dep:layers baseline 门禁**:`docs/dependency-layers.baseline.json`;`npm run dep:layers:baseline` 进 `ci:check`(仅拦新增反向边)。
10
+ - **分层债下降**:19 → 5 条已知反向边。
11
+ - `SlashCommandContext` 抽到 `src/slash-context.ts`
12
+ - `SkillMeta` / `ApprovalRequest|Response` 下沉 foundation `types.ts`
13
+ - `execution/*` → agent-runtime,`dashboard/*` → adapters
14
+ - eval 不再 import presentation
15
+ - **Scoop 自建 bucket**:`packaging/scoop-bucket/` + `npm run sync:scoop-bucket`
16
+ - **Windows 便携包**:`npm run build:portable-win` → `qling-win-x64.zip`(可挂 GitHub Release / winget)
17
+ - **文档**:`docs/architecture-layers.md`、`docs/install.md`、`packaging/README.md` 同步
18
+
19
+ ## v1.1.1 (2026-07-14)
20
+
21
+ ### Phase 7.0 — Sprint 4 分发与生态(收口发布)
6
22
 
7
23
  - **`eval:tasks`**:10 个本地 repo fixture(修测试 / 改文案 / 加函数 / 重命名 / 修 import / package scripts / JSON / 文档节 / 多文件一致 / 中文路径),不依赖 LLM。
8
24
  - **`validate:packaging`**:校验 Scoop / winget 草案版本与 `package.json` 对齐。
9
- - **Scoop / winget 文档**:`docs/install.md` 与 `packaging/README.md` 补充本地校验步骤;清单版本钉到 1.1.0。
25
+ - **Scoop / winget 文档**:`docs/install.md` 与 `packaging/README.md` 补充本地校验与发布后 hash 流程。
10
26
  - **Skills 示例包**:`fix-failing-test` / `add-function` / `pr-summary` + `skills/examples/README.md`。
11
27
  - **英文 README**:补齐 1.1 能力、eval、分发与 skills 说明。
12
28
  - **Demo 说明**:`docs/demo.md`(文字演示路径;GIF 另录不入库)。
13
29
  - **`ci:check`**:纳入 `eval:tasks` 与 `validate:packaging`。
30
+ - **npm**:`@qlingzzy/qling@1.1.1`(镜像默认下安装/发布请带 `--registry https://registry.npmjs.org/`)。
31
+ - **Scoop**:清单钉到 1.1.1 并附 tarball SHA256(仍为未进官方 bucket 的草案)。
14
32
 
15
33
  ## v1.1.0 (2026-07-14)
16
34
 
package/README.en.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![Node](https://img.shields.io/badge/Node-%E2%89%A518-339933?logo=node.js&logoColor=white)](#requirements)
4
4
  [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
5
- [![Version](https://img.shields.io/badge/version-1.1.0-orange.svg)](CHANGELOG.md)
5
+ [![Version](https://img.shields.io/badge/version-1.2.0-orange.svg)](CHANGELOG.md)
6
6
  [![Release](https://img.shields.io/github/v/release/Zzy-min/qling?display_name=tag&sort=semver)](https://github.com/Zzy-min/qling/releases)
7
7
 
8
8
  **Qling** is a **local-first** AI Agent CLI workbench. It keeps sessions, tools, skills, permissions, diagnostics, long-running missions, and recovery controls in one auditable terminal console.
@@ -49,12 +49,12 @@ npm link
49
49
  qling --version
50
50
  ```
51
51
 
52
- ### From npm
52
+ ### From npm (published)
53
53
 
54
54
  Package name is scoped: **`@qlingzzy/qling`** (CLI binary remains `qling`):
55
55
 
56
56
  ```bash
57
- npm install -g @qlingzzy/qling
57
+ npm install -g @qlingzzy/qling --registry https://registry.npmjs.org/
58
58
  qling bootstrap
59
59
  qling setup
60
60
  ```
@@ -178,14 +178,14 @@ QLING_EVAL_LLM=1 npm run eval:llm
178
178
  | Channel | Status |
179
179
  |---------|--------|
180
180
  | Source + bootstrap | Ready |
181
- | npm `@qlingzzy/qling` | Ready when published (`npm login` required on publisher machine) |
182
- | Scoop | Draft manifest only |
183
- | winget | Draft YAML only |
181
+ | npm `@qlingzzy/qling` | **Published** `1.2.0` install with `--registry https://registry.npmjs.org/` if your default is a mirror |
182
+ | Scoop | Draft + real tarball SHA256; not in official buckets |
183
+ | winget | Draft YAML only (needs portable zip + SHA256) |
184
184
  | Portable zip / single binary | Not yet |
185
185
 
186
186
  ## Version
187
187
 
188
- - Package: `1.1.0` (see latest tag on GitHub for hotfixes)
188
+ - Package: `1.2.0` (see latest tag on GitHub for hotfixes)
189
189
  - Changelog: [CHANGELOG.md](CHANGELOG.md)
190
190
  - Specs / plans: `docs/superpowers/`
191
191
 
package/README.md CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  [![Node](https://img.shields.io/badge/Node-%E2%89%A518-339933?logo=node.js&logoColor=white)](#环境要求)
4
4
  [![License: MIT](https://img.shields.io/badge/license-MIT-blue.svg)](LICENSE)
5
- [![Version](https://img.shields.io/badge/version-1.1.0-orange.svg)](CHANGELOG.md)
5
+ [![Version](https://img.shields.io/badge/version-1.2.0-orange.svg)](CHANGELOG.md)
6
6
 
7
7
  [English](README.en.md) · [安装指南](docs/install.md) · [CHANGELOG](CHANGELOG.md)
8
8
 
@@ -63,8 +63,9 @@ qling
63
63
  # 或从 GitHub 直接全局安装
64
64
  npm install -g github:Zzy-min/qling
65
65
 
66
- # npm 官方包(作用域名,CLI 仍是 qling)
67
- npm install -g @qlingzzy/qling
66
+ # npm 官方包(已发布 1.2.0;作用域名,CLI 仍是 qling)
67
+ # 若默认 registry 是国内镜像,请显式指定官方源
68
+ npm install -g @qlingzzy/qling --registry https://registry.npmjs.org/
68
69
  ```
69
70
 
70
71
  已安装 CLI 后,可运行本机初始化检查:
@@ -401,7 +402,8 @@ npm audit --registry=https://registry.npmjs.org --audit-level=high
401
402
 
402
403
  ## 版本与变更
403
404
 
404
- - 当前版本:`1.1.0`(Sprint 4 分发/生态见 CHANGELOG Unreleased)
405
+ - 当前版本:`1.2.0`
406
+
405
407
  - 完整变更历史:见 [CHANGELOG.md](CHANGELOG.md)
406
408
  - 安装与分发:见 [docs/install.md](docs/install.md)、[packaging/](packaging/)
407
409
  - Skills:见 [docs/skills.md](docs/skills.md)
@@ -1,3 +1,5 @@
1
+ export type { ApprovalRequest, ApprovalResponse } from "../types.js";
2
+ import type { ApprovalRequest, ApprovalResponse } from "../types.js";
1
3
  export interface ChannelMessage {
2
4
  id: string;
3
5
  role: "user" | "assistant" | "system";
@@ -5,18 +7,6 @@ export interface ChannelMessage {
5
7
  timestamp: number;
6
8
  metadata?: Record<string, unknown>;
7
9
  }
8
- export interface ApprovalRequest {
9
- id: string;
10
- toolName: string;
11
- arguments: Record<string, unknown>;
12
- reason: string;
13
- timestamp: number;
14
- }
15
- export interface ApprovalResponse {
16
- requestId: string;
17
- decision: "allow" | "deny";
18
- timestamp: number;
19
- }
20
10
  export interface Channel {
21
11
  name: string;
22
12
  start(): Promise<void>;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/channels/types.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,OAAO,GAAG,MAAM,CAAC;IAC3B,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9E,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClF,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,aAAa,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC7D,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACtE"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/channels/types.ts"],"names":[],"mappings":"AAIA,YAAY,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AACrE,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAErE,MAAM,WAAW,cAAc;IAC7B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,GAAG,WAAW,GAAG,QAAQ,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACvB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAAC;IACtB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACtC,aAAa,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9E,cAAc,CAAC,QAAQ,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAClF,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACvC,aAAa,CAAC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IAC7D,eAAe,CAAC,OAAO,EAAE,eAAe,GAAG,OAAO,CAAC,gBAAgB,CAAC,CAAC;CACtE"}
@@ -1,63 +1,2 @@
1
- import { AgentLoop } from "../agent-loop.js";
2
- import { SessionScheduler } from "../session/session-scheduler.js";
3
- import { SessionGoalController } from "../session/goal-controller.js";
4
- import type { SavedSessionSummary } from "../session/session-registry.js";
5
- import type { SessionTask } from "../session/session-scheduler.js";
6
- import type { SessionGoalState } from "../session/session-goal-manager.js";
7
- export interface DaemonSessionApi {
8
- createLoopTask: (sessionId: string, payload: {
9
- prompt: string;
10
- intervalMs: number;
11
- mode: "fixed" | "default";
12
- runner: "daemon";
13
- }) => Promise<SessionTask>;
14
- setGoal: (sessionId: string, condition: string, stats?: {
15
- turnCount: number;
16
- tokens: number;
17
- }) => Promise<SessionGoalState>;
18
- getGoal?: (sessionId: string) => Promise<SessionGoalState | null>;
19
- clearGoal?: (sessionId: string) => Promise<SessionGoalState>;
20
- listLoopTasks?: (sessionId: string) => Promise<SessionTask[]>;
21
- cancelLoopTask?: (sessionId: string, taskId: string) => Promise<SessionTask>;
22
- clearLoopTasks?: (sessionId: string) => Promise<number>;
23
- }
24
- export interface SlashCommandContext {
25
- agentLoop: AgentLoop | Record<string, any>;
26
- scheduler?: SessionScheduler | Record<string, any>;
27
- goalController?: SessionGoalController | Record<string, any>;
28
- inputQueue?: {
29
- pendingCount: number;
30
- maxPending?: number;
31
- isProcessing?: boolean;
32
- };
33
- workspaceDir?: string;
34
- homeDir?: string;
35
- listSavedSessions?: () => Promise<SavedSessionSummary[]>;
36
- switchSession?: (target?: string) => Promise<(SavedSessionSummary & {
37
- activeTaskCount?: number;
38
- activeGoalStatus?: string | null;
39
- }) | null>;
40
- daemonSessionApi?: DaemonSessionApi;
41
- statusLine?: {
42
- enabled: boolean;
43
- setEnabled: (enabled: boolean) => void;
44
- getLine: () => Promise<string>;
45
- };
46
- /** 长工具输出折叠:与 Ctrl+O 同源 */
47
- toolOutput?: {
48
- expanded: boolean;
49
- setExpanded: (expanded: boolean) => void;
50
- toggle: () => boolean;
51
- };
52
- setImmediatePrompt?: (prompt: string) => void;
53
- setInputDraft?: (draft: string) => void;
54
- onRecoveryStateChanged?: (state: unknown | null) => void;
55
- onModelChanged?: (model: string) => void | Promise<void>;
56
- writeClipboard?: (text: string) => Promise<void>;
57
- writeLine: (line?: string) => void;
58
- writeError: (line?: string) => void;
59
- }
60
- export declare function withDefaultWriters(context: Partial<SlashCommandContext> & {
61
- agentLoop: AgentLoop | Record<string, any>;
62
- }): SlashCommandContext;
1
+ export { type DaemonSessionApi, type SlashCommandContext, withDefaultWriters, } from "../slash-context.js";
63
2
  //# sourceMappingURL=runtime.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/commands/runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runtime.d.ts","sourceRoot":"","sources":["../../src/commands/runtime.ts"],"names":[],"mappings":"AACA,OAAO,EACL,KAAK,gBAAgB,EACrB,KAAK,mBAAmB,EACxB,kBAAkB,GACnB,MAAM,qBAAqB,CAAC"}
@@ -1,22 +1,2 @@
1
- export function withDefaultWriters(context) {
2
- return {
3
- scheduler: context.scheduler,
4
- goalController: context.goalController,
5
- inputQueue: context.inputQueue,
6
- workspaceDir: context.workspaceDir,
7
- homeDir: context.homeDir,
8
- listSavedSessions: context.listSavedSessions,
9
- switchSession: context.switchSession,
10
- daemonSessionApi: context.daemonSessionApi,
11
- statusLine: context.statusLine,
12
- toolOutput: context.toolOutput,
13
- setImmediatePrompt: context.setImmediatePrompt,
14
- setInputDraft: context.setInputDraft,
15
- onRecoveryStateChanged: context.onRecoveryStateChanged,
16
- onModelChanged: context.onModelChanged,
17
- writeClipboard: context.writeClipboard,
18
- writeLine: context.writeLine ?? ((line = "") => console.log(line)),
19
- writeError: context.writeError ?? ((line = "") => console.error(line)),
20
- agentLoop: context.agentLoop,
21
- };
22
- }
1
+ // Re-export slash context from adapters layer (keeps existing import paths).
2
+ export { withDefaultWriters, } from "../slash-context.js";
@@ -1,4 +1,4 @@
1
- import type { SlashCommandContext } from "./commands/runtime.js";
1
+ import type { SlashCommandContext } from "./slash-context.js";
2
2
  import { type TokenUsageSource } from "./token-usage.js";
3
3
  import { type ContextLayerEstimate } from "./context-tool-hygiene.js";
4
4
  export interface ContextReport {
@@ -1 +1 @@
1
- {"version":3,"file":"context-report.d.ts","sourceRoot":"","sources":["../src/context-report.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAGjE,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,2BAA2B,CAAC;AAEnC,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC9D;AAED,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAYD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B,GAAG,MAAM,CAOT;AAyBD,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,mBAAmB,EAC5B,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,aAAa,CAAC,CAiDxB;AAED,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,aAAa,CAAC,CAwBxG;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,EAAE,CA2DnE"}
1
+ {"version":3,"file":"context-report.d.ts","sourceRoot":"","sources":["../src/context-report.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAG9D,OAAO,EAEL,KAAK,gBAAgB,EACtB,MAAM,kBAAkB,CAAC;AAC1B,OAAO,EAEL,KAAK,oBAAoB,EAC1B,MAAM,2BAA2B,CAAC;AAEnC,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,gBAAgB,CAAC;IAC9B,sBAAsB,EAAE,MAAM,CAAC;IAC/B,cAAc,EAAE,MAAM,CAAC;IACvB,WAAW,EAAE,MAAM,CAAC;IACpB,gCAAgC;IAChC,MAAM,EAAE,oBAAoB,GAAG,IAAI,CAAC;IACpC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,oBAAoB,EAAE,MAAM,GAAG,IAAI,CAAC;CACrC;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC9D;AAED,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAYD,wBAAgB,gBAAgB,CAAC,OAAO,EAAE;IACxC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,MAAM,CAAC,EAAE,gBAAgB,CAAC;CAC3B,GAAG,MAAM,CAOT;AAyBD,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,mBAAmB,EAC5B,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,aAAa,CAAC,CAiDxB;AAED,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,aAAa,CAAC,CAwBxG;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,EAAE,CA2DnE"}
package/dist/doctor.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { SlashCommandContext } from "./commands/runtime.js";
1
+ import type { SlashCommandContext } from "./slash-context.js";
2
2
  export type DoctorStatus = "pass" | "warn" | "fail";
3
3
  export interface DoctorCheck {
4
4
  id: string;
@@ -1 +1 @@
1
- {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAUjE,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEpD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACtC,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAC7D,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACnC,SAAS,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7D,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC9D;AAgDD,oCAAoC;AACpC,wBAAgB,wBAAwB,CAAC,GAAG,GAAE,aAAa,CAAC,KAAK,CAAe,GAAG,WAAW,EAAE,CA0C/F;AAED,uCAAuC;AACvC,wBAAgB,wBAAwB,CACtC,GAAG,GAAE,aAAa,CAAC,KAAK,CAAe,EACvC,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yBAAyB,CAAC,EAAE,MAAM,CAAC;CAC/B,GACL,WAAW,EAAE,CAyCf;AAqOD,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,mBAAmB,EAC5B,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,CA4FvB;AAQD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,EAAE,CAqBjE"}
1
+ {"version":3,"file":"doctor.d.ts","sourceRoot":"","sources":["../src/doctor.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAU9D,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAEpD,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,YAAY,CAAC;IACrB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,YAAY;IAC3B,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,OAAO,EAAE,MAAM,CAAC,YAAY,EAAE,MAAM,CAAC,CAAC;IACtC,eAAe,EAAE,MAAM,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,aAAa;IAC5B,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAC7D,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACnC,SAAS,CAAC,EAAE,CAAC,YAAY,CAAC,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IACrD,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IAC7D,uCAAuC;IACvC,WAAW,CAAC,EAAE,MAAM,OAAO,CAAC;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,MAAM,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;CAC9D;AAgDD,oCAAoC;AACpC,wBAAgB,wBAAwB,CAAC,GAAG,GAAE,aAAa,CAAC,KAAK,CAAe,GAAG,WAAW,EAAE,CA0C/F;AAED,uCAAuC;AACvC,wBAAgB,wBAAwB,CACtC,GAAG,GAAE,aAAa,CAAC,KAAK,CAAe,EACvC,OAAO,GAAE;IACP,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,OAAO,CAAC;IACnC,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,yBAAyB,CAAC,EAAE,MAAM,CAAC;CAC/B,GACL,WAAW,EAAE,CAyCf;AAqOD,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,mBAAmB,EAC5B,OAAO,GAAE,aAAkB,GAC1B,OAAO,CAAC,YAAY,CAAC,CA4FvB;AAQD,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,EAAE,CAqBjE"}
@@ -1 +1 @@
1
- {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/eval/tasks.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AA0D3C,wBAAgB,mBAAmB,IAAI,QAAQ,EAAE,CA2VhD"}
1
+ {"version":3,"file":"tasks.d.ts","sourceRoot":"","sources":["../../src/eval/tasks.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAyD3C,wBAAgB,mBAAmB,IAAI,QAAQ,EAAE,CAgWhD"}
@@ -9,7 +9,6 @@ import { getProviderPreset, listProviderPresets } from "../providers/presets.js"
9
9
  import { buildOnboardingSteps } from "../onboarding/tutorial.js";
10
10
  import { listMcpPresets, getMcpPreset } from "../mcp/presets.js";
11
11
  import { PLAN_MODE_DENY_TOOLS, HookManager } from "../pipeline/hooks.js";
12
- import { formatToolOutputCard } from "../tui/shell.js";
13
12
  import { prepareToolResultContent, summarizeToolOutputForContext, } from "../context-tool-hygiene.js";
14
13
  import { filterToolsForRole, formatSubAgentReturnContract, normalizeSubAgentRole, } from "../agents/roles.js";
15
14
  import { scanSkillContent } from "../skills/security-scan.js";
@@ -165,11 +164,16 @@ export function buildEvalSmokeTasks() {
165
164
  id: "tool-output-card-collapse",
166
165
  title: "工具输出折叠卡片",
167
166
  run: async () => {
167
+ // Keep eval free of presentation-layer imports: fold logic mirrored here.
168
168
  const long = Array.from({ length: 20 }, (_, i) => `L${i}`).join("\n");
169
- const card = formatToolOutputCard(long, { expand: false });
169
+ const lines = long.split("\n");
170
+ const maxTop = 8;
171
+ const maxBottom = 2;
172
+ const hidden = Math.max(0, lines.length - maxTop - maxBottom);
173
+ const collapsed = hidden > 0;
170
174
  return {
171
- ok: card.collapsed && card.hidden > 0,
172
- detail: `hidden=${card.hidden} lines=${card.totalLines}`,
175
+ ok: collapsed && hidden > 0,
176
+ detail: `hidden=${hidden} lines=${lines.length}`,
173
177
  };
174
178
  },
175
179
  },
@@ -1,4 +1,4 @@
1
- import type { ApprovalRequest, ApprovalResponse } from "../channels/types.js";
1
+ import type { ApprovalRequest, ApprovalResponse } from "../types.js";
2
2
  export declare class ApprovalGate {
3
3
  private pending;
4
4
  requestApproval(request: ApprovalRequest, channel: {
@@ -1 +1 @@
1
- {"version":3,"file":"approval.d.ts","sourceRoot":"","sources":["../../src/guard/approval.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,sBAAsB,CAAC;AAE9E,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAMX;IAEE,eAAe,CACnB,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE;QAAE,eAAe,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAA;KAAE,EACjF,SAAS,GAAE,MAAgB,GAC1B,OAAO,CAAC,gBAAgB,CAAC;IAsC5B,eAAe,IAAI,MAAM;IAIzB,SAAS,IAAI,IAAI;CAWlB;AAED,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;gBAEN,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;CAOpE"}
1
+ {"version":3,"file":"approval.d.ts","sourceRoot":"","sources":["../../src/guard/approval.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAErE,qBAAa,YAAY;IACvB,OAAO,CAAC,OAAO,CAMX;IAEE,eAAe,CACnB,OAAO,EAAE,eAAe,EACxB,OAAO,EAAE;QAAE,eAAe,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,OAAO,CAAC,gBAAgB,CAAC,CAAA;KAAE,EACjF,SAAS,GAAE,MAAgB,GAC1B,OAAO,CAAC,gBAAgB,CAAC;IAsC5B,eAAe,IAAI,MAAM;IAIzB,SAAS,IAAI,IAAI;CAWlB;AAED,qBAAa,qBAAsB,SAAQ,KAAK;IAC9C,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,EAAE,CAAC;gBAEN,UAAU,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE;CAOpE"}
@@ -1,4 +1,4 @@
1
- import type { SlashCommandContext } from "./commands/runtime.js";
1
+ import type { SlashCommandContext } from "./slash-context.js";
2
2
  export type LocalStorageBucketId = "state" | "sessions" | "exports" | "cache";
3
3
  export interface LocalStorageBucket {
4
4
  id: LocalStorageBucketId;
@@ -1 +1 @@
1
- {"version":3,"file":"local-storage-report.d.ts","sourceRoot":"","sources":["../src/local-storage-report.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAKjE,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;AAE9E,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,oBAAoB,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,yBAAyB;IACxC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA8BD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAWjD;AA8ED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,mBAAmB,EAC5B,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,kBAAkB,CAAC,CA+B7B;AASD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,EAAE,CAyB7E"}
1
+ {"version":3,"file":"local-storage-report.d.ts","sourceRoot":"","sources":["../src/local-storage-report.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAK9D,MAAM,MAAM,oBAAoB,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,CAAC;AAE9E,MAAM,WAAW,kBAAkB;IACjC,EAAE,EAAE,oBAAoB,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,OAAO,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;IACnB,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,kBAAkB,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,yBAAyB;IACxC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;IAC7D,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AA8BD,wBAAgB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAWjD;AA8ED,wBAAsB,uBAAuB,CAC3C,OAAO,EAAE,mBAAmB,EAC5B,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,kBAAkB,CAAC,CA+B7B;AASD,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,kBAAkB,GAAG,MAAM,EAAE,CAyB7E"}
@@ -1,5 +1,5 @@
1
1
  import { PromptSection, PromptSectionRegistry, AgentConfig } from "../types.js";
2
- import type { SkillMeta } from "../skills/types.js";
2
+ import type { SkillMeta } from "../types.js";
3
3
  export declare const SECTION_IDS: {
4
4
  readonly INTRO: "intro";
5
5
  readonly TOOLS: "tools";
@@ -1 +1 @@
1
- {"version":3,"file":"sections.d.ts","sourceRoot":"","sources":["../../src/pipeline/sections.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,oBAAoB,CAAC;AAKpD,eAAO,MAAM,WAAW;;;;;;;;;;;;;CAad,CAAC;AAEX,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,MAAM,CAgBzE;AAID,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa,CAS9E;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,aAAa,CAwB5E;AAED,wBAAgB,oBAAoB,IAAI,aAAa,CAiBpD;AAED,wBAAgB,wBAAwB,IAAI,aAAa,CAsCxD;AAED,wBAAgB,gBAAgB,IAAI,aAAa,CAahD;AAED,wBAAgB,mBAAmB,IAAI,aAAa,CAYnD;AAED,wBAAgB,kBAAkB,IAAI,aAAa,CAUlD;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,aAAa,CA+BrE;AAED,wBAAgB,eAAe,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,aAAa,CAWlE;AAED,oEAAoE;AACpE,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAC/C,eAAO,MAAM,yBAAyB,OAAQ,CAAC;AAE/C,wBAAgB,mBAAmB,CACjC,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAAE,EACxF,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GACvD,aAAa,CAuDf;AAID,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,qBAAqB,CAavF;AAID,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,qBAAqB,EAC/B,eAAe,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GACtD,MAAM,CAgBR"}
1
+ {"version":3,"file":"sections.d.ts","sourceRoot":"","sources":["../../src/pipeline/sections.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,aAAa,EAAE,qBAAqB,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAChF,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAK7C,eAAO,MAAM,WAAW;;;;;;;;;;;;;CAad,CAAC;AAEX,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,GAAG,MAAM,CAgBzE;AAID,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,aAAa,CAS9E;AAED,wBAAgB,iBAAiB,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,aAAa,CAwB5E;AAED,wBAAgB,oBAAoB,IAAI,aAAa,CAiBpD;AAED,wBAAgB,wBAAwB,IAAI,aAAa,CAsCxD;AAED,wBAAgB,gBAAgB,IAAI,aAAa,CAahD;AAED,wBAAgB,mBAAmB,IAAI,aAAa,CAYnD;AAED,wBAAgB,kBAAkB,IAAI,aAAa,CAUlD;AAED,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,aAAa,CA+BrE;AAED,wBAAgB,eAAe,CAAC,UAAU,CAAC,EAAE,MAAM,GAAG,aAAa,CAWlE;AAED,oEAAoE;AACpE,eAAO,MAAM,2BAA2B,MAAM,CAAC;AAC/C,eAAO,MAAM,yBAAyB,OAAQ,CAAC;AAE/C,wBAAgB,mBAAmB,CACjC,OAAO,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,IAAI,EAAE,MAAM,CAAC;IAAC,SAAS,EAAE,MAAM,CAAA;CAAE,EAAE,EACxF,OAAO,GAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,QAAQ,CAAC,EAAE,MAAM,CAAA;CAAO,GACvD,aAAa,CAuDf;AAID,wBAAgB,oBAAoB,CAAC,KAAK,EAAE,WAAW,CAAC,OAAO,CAAC,GAAG,qBAAqB,CAavF;AAID,wBAAgB,iBAAiB,CAC/B,QAAQ,EAAE,qBAAqB,EAC/B,eAAe,CAAC,EAAE;IAAE,MAAM,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GACtD,MAAM,CAgBR"}
@@ -1,4 +1,4 @@
1
- import type { SlashCommandContext } from "./commands/runtime.js";
1
+ import type { SlashCommandContext } from "./slash-context.js";
2
2
  import { type EnvSecretHit } from "./config.js";
3
3
  export interface PrivacyReport {
4
4
  workspaceDir: string;
@@ -1 +1 @@
1
- {"version":3,"file":"privacy-report.d.ts","sourceRoot":"","sources":["../src/privacy-report.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,OAAO,EAA4B,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAG1E,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,EAAE,YAAY,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC9D;AAED,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAYD,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,mBAAmB,EAC5B,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,aAAa,CAAC,CAgBxB;AAED,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,aAAa,CAAC,CAcxG;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,EAAE,CAkCnE"}
1
+ {"version":3,"file":"privacy-report.d.ts","sourceRoot":"","sources":["../src/privacy-report.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,OAAO,EAA4B,KAAK,YAAY,EAAE,MAAM,aAAa,CAAC;AAG1E,MAAM,WAAW,aAAa;IAC5B,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,iBAAiB,EAAE,MAAM,CAAC;IAC1B,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB,EAAE,YAAY,EAAE,CAAC;CACrC;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC9D;AAED,MAAM,WAAW,yBAAyB;IACxC,YAAY,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAYD,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,mBAAmB,EAC5B,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,aAAa,CAAC,CAgBxB;AAED,wBAAsB,uBAAuB,CAAC,OAAO,EAAE,yBAAyB,GAAG,OAAO,CAAC,aAAa,CAAC,CAcxG;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,aAAa,GAAG,MAAM,EAAE,CAkCnE"}
package/dist/recap.d.ts CHANGED
@@ -1,4 +1,4 @@
1
- import type { SlashCommandContext } from "./commands/runtime.js";
1
+ import type { SlashCommandContext } from "./slash-context.js";
2
2
  interface RecapMessage {
3
3
  role?: string;
4
4
  content?: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"recap.d.ts","sourceRoot":"","sources":["../src/recap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAGjE,UAAU,YAAY;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,UAAU;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,eAAe;IACvB,KAAK,EAAE,UAAU,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC5D,WAAW,EAAE,KAAK,CAAC;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtE,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAoBD,wBAAgB,iBAAiB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAIxD;AAQD,wBAAgB,0BAA0B,CAAC,IAAI,GAAE,MAAM,EAAO,GAAG,wBAAwB,CAYxF;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,SAAM,GAAG,MAAM,CAIjF;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CA6B/D;AAsCD,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,MAAM,CAAC,CAYjB;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,mBAAmB,EAAE,KAAK,SAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAkC9F"}
1
+ {"version":3,"file":"recap.d.ts","sourceRoot":"","sources":["../src/recap.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAG9D,UAAU,YAAY;IACpB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,UAAU,UAAU;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,UAAU,eAAe;IACvB,KAAK,EAAE,UAAU,CAAC;IAClB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,UAAU,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,SAAS,CAAC,EAAE,MAAM,CAAA;KAAE,GAAG,IAAI,CAAC;IAC5D,WAAW,EAAE,KAAK,CAAC;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACtE,QAAQ,EAAE,YAAY,EAAE,CAAC;IACzB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,MAAM,CAAC;CACf;AAoBD,wBAAgB,iBAAiB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAIxD;AAQD,wBAAgB,0BAA0B,CAAC,IAAI,GAAE,MAAM,EAAO,GAAG,wBAAwB,CAYxF;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,YAAY,EAAE,SAAS,SAAM,GAAG,MAAM,CAIjF;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,eAAe,GAAG,MAAM,CA6B/D;AAsCD,wBAAsB,sBAAsB,CAC1C,QAAQ,EAAE,MAAM,EAChB,OAAO,EAAE,wBAAwB,GAChC,OAAO,CAAC,MAAM,CAAC,CAYjB;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,mBAAmB,EAAE,KAAK,SAAI,GAAG,OAAO,CAAC,MAAM,CAAC,CAkC9F"}
@@ -1,4 +1,4 @@
1
- import type { SlashCommandContext } from "./commands/runtime.js";
1
+ import type { SlashCommandContext } from "./slash-context.js";
2
2
  export interface SessionExportIndexEntry {
3
3
  name: string;
4
4
  path: string;
@@ -1 +1 @@
1
- {"version":3,"file":"session-export-index.d.ts","sourceRoot":"","sources":["../src/session-export-index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAMjE,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,uBAAuB,EAAE,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC9D;AAED,wBAAgB,uBAAuB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAKvE;AAkBD,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,mBAAmB,EAC5B,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,wBAAwB,CAAC,CAsCnC;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,wBAAwB,GAAG,MAAM,EAAE,CAiCnF"}
1
+ {"version":3,"file":"session-export-index.d.ts","sourceRoot":"","sources":["../src/session-export-index.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAM9D,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,wBAAwB;IACvC,UAAU,EAAE,MAAM,CAAC;IACnB,OAAO,EAAE,uBAAuB,EAAE,CAAC;IACnC,KAAK,EAAE,MAAM,CAAC;IACd,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,yBAAyB;IACxC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC9D;AAED,wBAAgB,uBAAuB,CAAC,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,CAKvE;AAkBD,wBAAsB,sBAAsB,CAC1C,OAAO,EAAE,mBAAmB,EAC5B,OAAO,GAAE,yBAA8B,GACtC,OAAO,CAAC,wBAAwB,CAAC,CAsCnC;AAED,wBAAgB,wBAAwB,CAAC,MAAM,EAAE,wBAAwB,GAAG,MAAM,EAAE,CAiCnF"}
@@ -1,4 +1,4 @@
1
- import type { SlashCommandContext } from "./commands/runtime.js";
1
+ import type { SlashCommandContext } from "./slash-context.js";
2
2
  interface ExportMessage {
3
3
  role?: string;
4
4
  content?: unknown;
@@ -1 +1 @@
1
- {"version":3,"file":"session-export.d.ts","sourceRoot":"","sources":["../src/session-export.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAEjE,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC9D;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;CACtB;AA6BD,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,mBAAmB,EAC5B,GAAG,GAAE,oBAAoB,CAAC,KAAK,CAAe,GAC7C,MAAM,CAER;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,qBAAqB,GAAG,MAAM,CAkCnF;AAED,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,mBAAmB,EAC5B,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,qBAAqB,CAAC,CAwBhC;AAED,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,mBAAmB,EAC5B,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,mBAAmB,CAAC,CAa9B"}
1
+ {"version":3,"file":"session-export.d.ts","sourceRoot":"","sources":["../src/session-export.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAE9D,UAAU,aAAa;IACrB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,qBAAqB;IACpC,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,CAAC;IACf,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,aAAa,EAAE,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,GAAG,CAAC,EAAE,MAAM,IAAI,CAAC;IACjB,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;CAC9D;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,YAAY,EAAE,MAAM,CAAC;CACtB;AA6BD,wBAAgB,wBAAwB,CACtC,OAAO,EAAE,mBAAmB,EAC5B,GAAG,GAAE,oBAAoB,CAAC,KAAK,CAAe,GAC7C,MAAM,CAER;AAED,wBAAgB,2BAA2B,CAAC,QAAQ,EAAE,qBAAqB,GAAG,MAAM,CAkCnF;AAED,wBAAsB,0BAA0B,CAC9C,OAAO,EAAE,mBAAmB,EAC5B,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,qBAAqB,CAAC,CAwBhC;AAED,wBAAsB,kBAAkB,CACtC,OAAO,EAAE,mBAAmB,EAC5B,OAAO,GAAE,oBAAyB,GACjC,OAAO,CAAC,mBAAmB,CAAC,CAa9B"}
@@ -1,9 +1,2 @@
1
- export interface SkillMeta {
2
- name: string;
3
- description: string;
4
- tags: string[];
5
- /** 触发关键词/场景,仅进入索引,不进正文 */
6
- triggers: string[];
7
- path: string;
8
- }
1
+ export type { SkillMeta } from "../types.js";
9
2
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/skills/types.ts"],"names":[],"mappings":"AAIA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,0BAA0B;IAC1B,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,IAAI,EAAE,MAAM,CAAC;CACd"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/skills/types.ts"],"names":[],"mappings":"AAIA,YAAY,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC"}
@@ -1,4 +1,4 @@
1
1
  // ============================================================
2
- // 轻灵 - 技能元数据类型
2
+ // 轻灵 - 技能元数据类型(re-export from foundation types)
3
3
  // ============================================================
4
4
  export {};
@@ -0,0 +1,63 @@
1
+ import type { AgentLoop } from "./agent-loop.js";
2
+ import type { SessionScheduler } from "./session/session-scheduler.js";
3
+ import type { SessionGoalController } from "./session/goal-controller.js";
4
+ import type { SavedSessionSummary } from "./session/session-registry.js";
5
+ import type { SessionTask } from "./session/session-scheduler.js";
6
+ import type { SessionGoalState } from "./session/session-goal-manager.js";
7
+ export interface DaemonSessionApi {
8
+ createLoopTask: (sessionId: string, payload: {
9
+ prompt: string;
10
+ intervalMs: number;
11
+ mode: "fixed" | "default";
12
+ runner: "daemon";
13
+ }) => Promise<SessionTask>;
14
+ setGoal: (sessionId: string, condition: string, stats?: {
15
+ turnCount: number;
16
+ tokens: number;
17
+ }) => Promise<SessionGoalState>;
18
+ getGoal?: (sessionId: string) => Promise<SessionGoalState | null>;
19
+ clearGoal?: (sessionId: string) => Promise<SessionGoalState>;
20
+ listLoopTasks?: (sessionId: string) => Promise<SessionTask[]>;
21
+ cancelLoopTask?: (sessionId: string, taskId: string) => Promise<SessionTask>;
22
+ clearLoopTasks?: (sessionId: string) => Promise<number>;
23
+ }
24
+ export interface SlashCommandContext {
25
+ agentLoop: AgentLoop | Record<string, any>;
26
+ scheduler?: SessionScheduler | Record<string, any>;
27
+ goalController?: SessionGoalController | Record<string, any>;
28
+ inputQueue?: {
29
+ pendingCount: number;
30
+ maxPending?: number;
31
+ isProcessing?: boolean;
32
+ };
33
+ workspaceDir?: string;
34
+ homeDir?: string;
35
+ listSavedSessions?: () => Promise<SavedSessionSummary[]>;
36
+ switchSession?: (target?: string) => Promise<(SavedSessionSummary & {
37
+ activeTaskCount?: number;
38
+ activeGoalStatus?: string | null;
39
+ }) | null>;
40
+ daemonSessionApi?: DaemonSessionApi;
41
+ statusLine?: {
42
+ enabled: boolean;
43
+ setEnabled: (enabled: boolean) => void;
44
+ getLine: () => Promise<string>;
45
+ };
46
+ /** 长工具输出折叠:与 Ctrl+O 同源 */
47
+ toolOutput?: {
48
+ expanded: boolean;
49
+ setExpanded: (expanded: boolean) => void;
50
+ toggle: () => boolean;
51
+ };
52
+ setImmediatePrompt?: (prompt: string) => void;
53
+ setInputDraft?: (draft: string) => void;
54
+ onRecoveryStateChanged?: (state: unknown | null) => void;
55
+ onModelChanged?: (model: string) => void | Promise<void>;
56
+ writeClipboard?: (text: string) => Promise<void>;
57
+ writeLine: (line?: string) => void;
58
+ writeError: (line?: string) => void;
59
+ }
60
+ export declare function withDefaultWriters(context: Partial<SlashCommandContext> & {
61
+ agentLoop: AgentLoop | Record<string, any>;
62
+ }): SlashCommandContext;
63
+ //# sourceMappingURL=slash-context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"slash-context.d.ts","sourceRoot":"","sources":["../src/slash-context.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,26 @@
1
+ // ============================================================
2
+ // Slash / adapter shared context (adapters layer)
3
+ // Kept out of cli/ so reports & TUI can import without reverse deps.
4
+ // ============================================================
5
+ export function withDefaultWriters(context) {
6
+ return {
7
+ scheduler: context.scheduler,
8
+ goalController: context.goalController,
9
+ inputQueue: context.inputQueue,
10
+ workspaceDir: context.workspaceDir,
11
+ homeDir: context.homeDir,
12
+ listSavedSessions: context.listSavedSessions,
13
+ switchSession: context.switchSession,
14
+ daemonSessionApi: context.daemonSessionApi,
15
+ statusLine: context.statusLine,
16
+ toolOutput: context.toolOutput,
17
+ setImmediatePrompt: context.setImmediatePrompt,
18
+ setInputDraft: context.setInputDraft,
19
+ onRecoveryStateChanged: context.onRecoveryStateChanged,
20
+ onModelChanged: context.onModelChanged,
21
+ writeClipboard: context.writeClipboard,
22
+ writeLine: context.writeLine ?? ((line = "") => console.log(line)),
23
+ writeError: context.writeError ?? ((line = "") => console.error(line)),
24
+ agentLoop: context.agentLoop,
25
+ };
26
+ }
@@ -1,4 +1,4 @@
1
- import type { SlashCommandContext } from "./commands/runtime.js";
1
+ import type { SlashCommandContext } from "./slash-context.js";
2
2
  export interface StatusLineSnapshot {
3
3
  model: string;
4
4
  sessionId: string;
@@ -1 +1 @@
1
- {"version":3,"file":"statusline.d.ts","sourceRoot":"","sources":["../src/statusline.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAGjE,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IACrC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,UAAU,CAAC,EAAE,4BAA4B,CAAC;CAC3C;AAED,MAAM,WAAW,4BAA4B;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,8BAA8B;IAC7C,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AA4BD,wBAAgB,gBAAgB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWrE;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAG/D;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAa5E;AAiBD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAEpE;AAqBD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,CA4BrE;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,8BAA8B,GAAG,kBAAkB,CAe1G;AAED,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAmDzG;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAEnF"}
1
+ {"version":3,"file":"statusline.d.ts","sourceRoot":"","sources":["../src/statusline.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAG9D,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,mBAAmB;IACnB,WAAW,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,WAAW,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,MAAM,CAAC;IAC1B,WAAW,CAAC,EAAE,UAAU,GAAG,SAAS,CAAC;IACrC,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAChC,UAAU,CAAC,EAAE,4BAA4B,CAAC;CAC3C;AAED,MAAM,WAAW,4BAA4B;IAC3C,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,YAAY,CAAC,EAAE,OAAO,CAAC;CACxB;AAED,MAAM,WAAW,8BAA8B;IAC7C,YAAY,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC7B,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,cAAc,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,eAAe,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACjC;AA4BD,wBAAgB,gBAAgB,CAAC,YAAY,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAWrE;AAED,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM,CAG/D;AAED,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,MAAM,CAa5E;AAiBD,wBAAgB,wBAAwB,CAAC,GAAG,EAAE,OAAO,GAAG,MAAM,GAAG,IAAI,CAEpE;AAqBD,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,kBAAkB,GAAG,MAAM,CA4BrE;AAED,wBAAgB,8BAA8B,CAAC,OAAO,EAAE,8BAA8B,GAAG,kBAAkB,CAe1G;AAED,wBAAsB,yBAAyB,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,kBAAkB,CAAC,CAmDzG;AAED,wBAAsB,eAAe,CAAC,OAAO,EAAE,mBAAmB,GAAG,OAAO,CAAC,MAAM,CAAC,CAEnF"}
package/dist/types.d.ts CHANGED
@@ -186,6 +186,26 @@ export interface LLMDreamConfig {
186
186
  apiKey: string;
187
187
  endpoint: string;
188
188
  }
189
+ export interface SkillMeta {
190
+ name: string;
191
+ description: string;
192
+ tags: string[];
193
+ /** 触发关键词/场景,仅进入索引,不进正文 */
194
+ triggers: string[];
195
+ path: string;
196
+ }
197
+ export interface ApprovalRequest {
198
+ id: string;
199
+ toolName: string;
200
+ arguments: Record<string, unknown>;
201
+ reason: string;
202
+ timestamp: number;
203
+ }
204
+ export interface ApprovalResponse {
205
+ requestId: string;
206
+ decision: "allow" | "deny";
207
+ timestamp: number;
208
+ }
189
209
  export interface MCPServerConfig {
190
210
  name: string;
191
211
  command: string;
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
package/docs/install.md CHANGED
@@ -34,18 +34,20 @@ qling --help
34
34
 
35
35
  `bootstrap` 会:检查 Node/npm → 安装依赖 → 构建 → 创建 `~/.qling/` → 给出 `doctor`/`setup` 下一步。默认**不**安装浏览器、**不**自动开 dashboard。
36
36
 
37
- ## 方式 B:npm 全局安装
37
+ ## 方式 B:npm 全局安装(已发布 1.2.0)
38
38
 
39
- 包名因 npm 相似度策略使用作用域 **`@qlingzzy/qling`**(安装后命令仍是 `qling`):
39
+ 包名因 npm 相似度策略使用作用域 **`@qlingzzy/qling`**(安装后命令仍是 `qling`)。
40
+ 包页:https://www.npmjs.com/package/@qlingzzy/qling
40
41
 
41
42
  ```bash
42
- npm install -g @qlingzzy/qling
43
+ # 若本机默认 registry 是国内镜像,发布/校验请显式指定官方源
44
+ npm install -g @qlingzzy/qling --registry https://registry.npmjs.org/
43
45
  qling --version
44
46
  qling bootstrap
45
47
  qling setup
46
48
  ```
47
49
 
48
- 从 GitHub 直接装:
50
+ 从 GitHub 直接装(不经过 npm registry):
49
51
 
50
52
  ```bash
51
53
  npm install -g github:Zzy-min/qling
@@ -53,6 +55,15 @@ npm install -g github:Zzy-min/qling
53
55
 
54
56
  > 注意:`better-sqlite3` 为原生模块,需本机可编译环境;Windows 建议安装 [Visual Studio Build Tools](https://visualstudio.microsoft.com/visual-cpp-build-tools/) 或使用已预编译的 Node 版本。
55
57
 
58
+ ### 发布者备忘(维护者)
59
+
60
+ 本机默认若为 `registry.npmmirror.com`,`npm whoami` / `npm login` 会对镜像失败;身份与 publish 必须带官方源:
61
+
62
+ ```bash
63
+ npm whoami --registry https://registry.npmjs.org/
64
+ npm publish --access public --registry https://registry.npmjs.org/
65
+ ```
66
+
56
67
  ## 方式 C:Windows PowerShell 快速路径
57
68
 
58
69
  ```powershell
@@ -73,51 +84,50 @@ qling doctor
73
84
  qling
74
85
  ```
75
86
 
76
- ## 方式 D:Scoop 草案(未上架)
77
-
78
- 清单草稿:`packaging/scoop/qling.json`(版本与 `package.json` 对齐,当前 **1.1.0**)。
87
+ ## 方式 D:Scoop(自建 bucket)
79
88
 
80
- 本地校验(不安装到官方 bucket):
89
+ ### D1. 本仓库自建 bucket(推荐试用)
81
90
 
82
91
  ```powershell
83
- npm run validate:packaging
84
- # 检查 version / url 是否钉死到当前版本
85
- Get-Content packaging/scoop/qling.json | ConvertFrom-Json | Select-Object version, url, hash
92
+ cd path\to\qling
93
+ scoop bucket add qling "$PWD\packaging\scoop-bucket"
94
+ scoop install qling/qling
95
+ qling --version
86
96
  ```
87
97
 
88
- 本地试用(需自建 bucket,并先把 `hash` 换成真实 tarball SHA256):
98
+ 说明见 `packaging/scoop-bucket/README.md`。清单含真实 npm tarball SHA256;若原生模块 shim 不理想,manifest 会提示改用 npm 全局安装。
99
+
100
+ ### D2. 校验与同步
89
101
 
90
102
  ```powershell
91
- # 示例:私有 bucket 放好 manifest 后
92
- scoop install qling
103
+ npm run validate:packaging
104
+ npm run sync:scoop-bucket # packaging/scoop → scoop-bucket
93
105
  ```
94
106
 
95
- 当前草案 URL 指向 npm tarball;`hash` 仍为占位。正式上架前请:
107
+ **仍未**提交到官方 Scoop 目录;社区 PR 需另开。
96
108
 
97
- 1. `npm pack` 或发布后下载 tarball
98
- 2. 计算 SHA256 写入 `hash`
99
- 3. 提交到自建/社区 Scoop bucket
109
+ **推荐**用户路径仍是:`npm install -g @qlingzzy/qling --registry https://registry.npmjs.org/` 或源码 bootstrap。
100
110
 
101
- hash 未填前,**推荐**继续用 `npm install -g @qlingzzy/qling` 或源码 bootstrap。
111
+ ## 方式 E:winget / 便携 zip
102
112
 
103
- ## 方式 E:winget 草案(未上架)
113
+ ### 构建 Windows 便携包
104
114
 
105
- 清单草稿:`packaging/winget/Zzy-min.qling.yaml`(`PackageVersion` 与当前版本对齐)。
115
+ ```powershell
116
+ npm run build:portable-win
117
+ # → dist-portable/qling-win-x64.zip + portable-meta.json (sha256)
118
+ ```
106
119
 
107
- 本地校验:
120
+ Release 资产示例:`https://github.com/Zzy-min/qling/releases/download/v1.2.0/qling-win-x64.zip`
121
+ 清单:`packaging/winget/Zzy-min.qling.yaml`(含 InstallerSha256)。
122
+
123
+ ### 本地校验
108
124
 
109
125
  ```powershell
110
126
  npm run validate:packaging
111
127
  Select-String -Path packaging/winget/Zzy-min.qling.yaml -Pattern 'PackageVersion|InstallerUrl|InstallerSha256'
112
128
  ```
113
129
 
114
- 正式提交需:
115
-
116
- 1. 稳定版本的安装包 URL(msi/zip 或 portable;当前示例为 GitHub Release zip)
117
- 2. 真实 `InstallerSha256`(草案里为全零占位)
118
- 3. 通过 [winget-pkgs](https://github.com/microsoft/winget-pkgs) 审核
119
-
120
- 当前文件仅为**结构样例**,不可直接 `winget install`。发布 zip 前可先用 npm 全局安装路径。
130
+ 正式提交 [winget-pkgs](https://github.com/microsoft/winget-pkgs) 仍需 PR;在此之前可用 zip 解压 + `qling.cmd`(需本机 Node ≥ 18)。
121
131
 
122
132
  ## 配置与安全
123
133
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@qlingzzy/qling",
3
- "version": "1.1.0",
3
+ "version": "1.2.0",
4
4
  "description": "轻灵 Qling - 本地优先的中文 AI Agent CLI 工作台 / Local-first Chinese AI Agent CLI workbench",
5
5
  "type": "module",
6
6
  "main": "./dist/sdk.js",
@@ -88,7 +88,11 @@
88
88
  "validate:packaging": "node scripts/validate-packaging.mjs",
89
89
  "dep:layers": "node scripts/dep-layers.mjs",
90
90
  "dep:layers:json": "node scripts/dep-layers.mjs --json",
91
- "ci:check": "npm run build && node --experimental-test-module-mocks --test \"tests/unit/**/*.test.mjs\" && node --test \"tests/smoke/**/*.test.mjs\" && node scripts/eval-smoke.mjs && node scripts/eval-tasks.mjs && node scripts/validate-packaging.mjs"
91
+ "dep:layers:baseline": "node scripts/dep-layers.mjs --baseline",
92
+ "dep:layers:write-baseline": "node scripts/dep-layers.mjs --write-baseline",
93
+ "sync:scoop-bucket": "node scripts/sync-scoop-bucket.mjs",
94
+ "build:portable-win": "node scripts/build-portable-win.mjs",
95
+ "ci:check": "npm run build && node --experimental-test-module-mocks --test \"tests/unit/**/*.test.mjs\" && node --test \"tests/smoke/**/*.test.mjs\" && node scripts/eval-smoke.mjs && node scripts/eval-tasks.mjs && node scripts/validate-packaging.mjs && node scripts/dep-layers.mjs --baseline"
92
96
  },
93
97
  "dependencies": {
94
98
  "axios": "^1.7.0",
@@ -0,0 +1,137 @@
1
+ #!/usr/bin/env node
2
+ /**
3
+ * Build a Windows portable zip for winget / manual install.
4
+ * Usage: node scripts/build-portable-win.mjs
5
+ *
6
+ * Output: dist-portable/qling-win-x64.zip
7
+ * Layout:
8
+ * qling-win-x64/
9
+ * package/ # npm pack contents
10
+ * qling.cmd # launcher → node package/dist/index.js
11
+ * README.txt
12
+ */
13
+ import { spawnSync } from "node:child_process";
14
+ import { createHash } from "node:crypto";
15
+ import {
16
+ mkdir,
17
+ rm,
18
+ readFile,
19
+ writeFile,
20
+ copyFile,
21
+ readdir,
22
+ stat,
23
+ } from "node:fs/promises";
24
+ import { createWriteStream, existsSync, createReadStream } from "node:fs";
25
+ import { join, dirname, resolve } from "node:path";
26
+ import { fileURLToPath } from "node:url";
27
+ import { pipeline } from "node:stream/promises";
28
+ import { createGzip } from "node:zlib";
29
+ import { execFileSync } from "node:child_process";
30
+
31
+ const __dirname = dirname(fileURLToPath(import.meta.url));
32
+ const ROOT = resolve(__dirname, "..");
33
+ const OUT_DIR = join(ROOT, "dist-portable");
34
+ const STAGE = join(OUT_DIR, "qling-win-x64");
35
+ const ZIP_PATH = join(OUT_DIR, "qling-win-x64.zip");
36
+
37
+ const pkg = JSON.parse(await readFile(join(ROOT, "package.json"), "utf8"));
38
+ const version = pkg.version;
39
+
40
+ console.log(`[portable] building qling ${version} for win-x64…`);
41
+
42
+ await rm(OUT_DIR, { recursive: true, force: true });
43
+ await mkdir(STAGE, { recursive: true });
44
+
45
+ // Prefer npm pack of current tree (matches publish)
46
+ const pack = spawnSync(
47
+ process.platform === "win32" ? "npm.cmd" : "npm",
48
+ ["pack", "--pack-destination", OUT_DIR],
49
+ { cwd: ROOT, encoding: "utf8", shell: true }
50
+ );
51
+ if (pack.status !== 0) {
52
+ console.error(pack.stdout, pack.stderr);
53
+ process.exit(1);
54
+ }
55
+ const tgzName = (pack.stdout || "")
56
+ .trim()
57
+ .split(/\r?\n/)
58
+ .filter(Boolean)
59
+ .pop();
60
+ if (!tgzName) {
61
+ console.error("npm pack produced no tarball name");
62
+ process.exit(1);
63
+ }
64
+ const tgzPath = join(OUT_DIR, tgzName);
65
+ console.log(`[portable] packed ${tgzName}`);
66
+
67
+ // Extract with tar (Node 22+ / Windows 10+ tar)
68
+ const pkgDir = join(STAGE, "package");
69
+ await mkdir(pkgDir, { recursive: true });
70
+ try {
71
+ execFileSync("tar", ["-xzf", tgzPath, "-C", STAGE], { stdio: "inherit" });
72
+ // npm pack extracts to package/
73
+ } catch (err) {
74
+ console.error("tar extract failed:", err instanceof Error ? err.message : err);
75
+ process.exit(1);
76
+ }
77
+
78
+ const launcher = `@echo off
79
+ setlocal
80
+ set "ROOT=%~dp0"
81
+ set "NODE="
82
+ where node >nul 2>nul && set "NODE=node"
83
+ if not defined NODE (
84
+ echo [qling] Node.js ^>= 18 is required on PATH.
85
+ exit /b 1
86
+ )
87
+ "%NODE%" "%ROOT%package\\dist\\index.js" %*
88
+ `;
89
+ await writeFile(join(STAGE, "qling.cmd"), launcher, "utf8");
90
+
91
+ const readme = `Qling ${version} — Windows portable layout
92
+ ========================================
93
+
94
+ Requirements:
95
+ - Node.js >= 18 on PATH
96
+ - Visual Studio Build Tools may be needed for better-sqlite3 rebuilds
97
+
98
+ Run:
99
+ .\\qling.cmd --version
100
+ .\\qling.cmd doctor
101
+ .\\qling.cmd setup
102
+
103
+ Preferred install for most users:
104
+ npm install -g @qlingzzy/qling@${version} --registry https://registry.npmjs.org/
105
+
106
+ Source: https://github.com/Zzy-min/qling
107
+ `;
108
+ await writeFile(join(STAGE, "README.txt"), readme, "utf8");
109
+
110
+ // Zip via tar (bsdtar on Windows supports zip)
111
+ await rm(ZIP_PATH, { force: true });
112
+ try {
113
+ execFileSync(
114
+ "tar",
115
+ ["-a", "-cf", ZIP_PATH, "-C", OUT_DIR, "qling-win-x64"],
116
+ { stdio: "inherit" }
117
+ );
118
+ } catch (err) {
119
+ console.error("zip failed:", err instanceof Error ? err.message : err);
120
+ process.exit(1);
121
+ }
122
+
123
+ const buf = await readFile(ZIP_PATH);
124
+ const sha256 = createHash("sha256").update(buf).digest("hex");
125
+ const meta = {
126
+ version,
127
+ zip: "qling-win-x64.zip",
128
+ path: ZIP_PATH,
129
+ size: buf.length,
130
+ sha256,
131
+ createdAt: new Date().toISOString(),
132
+ };
133
+ await writeFile(join(OUT_DIR, "portable-meta.json"), JSON.stringify(meta, null, 2) + "\n");
134
+
135
+ console.log(`[portable] wrote ${ZIP_PATH}`);
136
+ console.log(`[portable] size=${buf.length} sha256=${sha256}`);
137
+ console.log(`[portable] meta: dist-portable/portable-meta.json`);
@@ -68,6 +68,8 @@ export function layerOf(rel) {
68
68
  p === "agent-loop.ts" ||
69
69
  p.startsWith("agent/") ||
70
70
  p.startsWith("tools/") ||
71
+ p.startsWith("execution/") ||
72
+ p === "slash-context.ts" ||
71
73
  p === "repl.ts"
72
74
  ) {
73
75
  return "agent-runtime";
@@ -76,6 +78,7 @@ export function layerOf(rel) {
76
78
  p === "sdk.ts" ||
77
79
  p === "daemon.ts" ||
78
80
  p === "dashboard-server.ts" ||
81
+ p.startsWith("dashboard/") ||
79
82
  p.endsWith("-report.ts") ||
80
83
  p === "doctor.ts" ||
81
84
  p === "statusline.ts" ||
@@ -228,7 +231,14 @@ function formatMermaid(layerCounts, edges) {
228
231
 
229
232
  const asJson = process.argv.includes("--json");
230
233
  const strict = process.argv.includes("--strict");
234
+ const baselineMode = process.argv.includes("--baseline");
235
+ const writeBaseline = process.argv.includes("--write-baseline");
231
236
  const writeDoc = process.argv.includes("--write-doc");
237
+ const BASELINE_PATH = join(ROOT, "docs", "dependency-layers.baseline.json");
238
+
239
+ function edgeKey(f) {
240
+ return `${f.fromLayer}->${f.toLayer}::${f.from}::${f.to}`;
241
+ }
232
242
 
233
243
  const result = await scanLayers();
234
244
 
@@ -270,6 +280,45 @@ if (writeDoc) {
270
280
  console.error(`[dep-layers] wrote ${snap}`);
271
281
  }
272
282
 
283
+ if (writeBaseline) {
284
+ await mkdir(dirname(BASELINE_PATH), { recursive: true });
285
+ const keys = result.forbidden.map(edgeKey).sort();
286
+ await writeFile(
287
+ BASELINE_PATH,
288
+ JSON.stringify(
289
+ {
290
+ generatedAt: new Date().toISOString(),
291
+ note: "Known reverse-layer edges. --baseline fails only on NEW keys not listed here.",
292
+ forbiddenCount: keys.length,
293
+ forbidden: keys,
294
+ },
295
+ null,
296
+ 2
297
+ ) + "\n",
298
+ "utf8"
299
+ );
300
+ console.error(`[dep-layers] wrote baseline ${BASELINE_PATH} (${keys.length} edges)`);
301
+ }
302
+
303
+ if (baselineMode) {
304
+ let known = new Set();
305
+ if (existsSync(BASELINE_PATH)) {
306
+ const raw = JSON.parse(await readFile(BASELINE_PATH, "utf8"));
307
+ known = new Set(raw.forbidden || []);
308
+ }
309
+ const novel = result.forbidden.filter((f) => !known.has(edgeKey(f)));
310
+ console.log(
311
+ `baseline gate: known=${known.size} current=${result.forbiddenCount} novel=${novel.length}`
312
+ );
313
+ if (novel.length > 0) {
314
+ console.error("NEW forbidden edges (not in baseline):");
315
+ for (const f of novel) {
316
+ console.error(` ${f.fromLayer} -> ${f.toLayer}: ${f.from} imports ${f.to}`);
317
+ }
318
+ process.exit(1);
319
+ }
320
+ }
321
+
273
322
  if (strict && result.forbiddenCount > 0) {
274
323
  process.exit(1);
275
324
  }
@@ -0,0 +1,12 @@
1
+ #!/usr/bin/env node
2
+ /** Copy packaging/scoop/qling.json → packaging/scoop-bucket/qling.json */
3
+ import { copyFile, readFile } from "node:fs/promises";
4
+ import { join, dirname } from "node:path";
5
+ import { fileURLToPath } from "node:url";
6
+
7
+ const root = join(dirname(fileURLToPath(import.meta.url)), "..");
8
+ const src = join(root, "packaging", "scoop", "qling.json");
9
+ const dest = join(root, "packaging", "scoop-bucket", "qling.json");
10
+ await copyFile(src, dest);
11
+ const j = JSON.parse(await readFile(dest, "utf8"));
12
+ console.log(`sync-scoop-bucket OK → v${j.version} hash=${j.hash?.slice(0, 20)}…`);
@@ -24,6 +24,12 @@ if (!String(scoop.url || "").includes(version)) {
24
24
  if (!Array.isArray(scoop.notes) || !scoop.notes.some((n) => /DRAFT|draft/i.test(n))) {
25
25
  errors.push("scoop notes should mark DRAFT status");
26
26
  }
27
+ const hash = String(scoop.hash || "");
28
+ if (!hash || /TODO|REPLACE/i.test(hash)) {
29
+ errors.push("scoop hash still placeholder — fill real SHA256 after npm publish");
30
+ } else if (!/^(sha256:)?[a-f0-9]{64}$/i.test(hash)) {
31
+ errors.push(`scoop hash looks invalid: ${hash}`);
32
+ }
27
33
 
28
34
  const winget = await readFile(
29
35
  join(root, "packaging", "winget", "Zzy-min.qling.yaml"),