@epoch-agent/core 3.1.1 → 3.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.
package/README.md CHANGED
@@ -30,6 +30,7 @@ Agent 引擎。ReAct 循环、Provider 路由、权限、记忆、技能、Hook
30
30
  | `context/` | 上下文压缩(工具结果裁剪是**摘要之前的独立一步**,头中尾保留,裁完够了就不调模型;2026-08-16 起认 `compression.*` 两个配置项,见下)、项目发现、指令文件与它的 `@import` 展开 + 项目外放行闸门、artifact 闸门与清理、图片 token 估算、`@` 提及的候选清单与解析(**文件和 `@:` 会话共享同一本 200KB 的账**,方案 53) |
31
31
  | `sandbox/` | `CodeSandbox`(`code_exec` 的执行器)+ 隔离能力的**对外说法**:`describeIsolation()` 那句中文、以及「哪些工具走沙箱」两份清单。**机制那一半 2026-08-16 搬去了 [infra](../infra) 的 `sandbox/`**(消费者不止 core 一个了,`plugin-terminal` 够不着 core);既有 import 路径靠再导出保住 |
32
32
  | `delegate/` | 子 agent 任务委托(`delegate_task` 的后端;`background: true` 时登记成一格 `agent` 作业,见 [infra/jobs.ts](../infra/src/jobs.ts))。⚠️ 2026-10-27 起两件事变了:**子任务跑完把整轮按步落进会话库**(带 `parent_id`,`source` 是 `delegate`,所以它不出现在「接着哪一段聊」的列表里 —— 判据在 `DELEGATE_SESSION_SOURCE` 上),以及**超时来自 `delegate.taskTimeoutSec`**(缺省 15 分钟,`0` = 不限时;在此之前是写死的 5 分钟) |
33
+ | `goal/` | **目标**(方案 52):一段会话的完成判据 + 那几把尺子。`engine` / `provider` / `service` / `store` / `types` / `wording` 六份;`goal` 工具与 `report_goal` 那一路都接在这儿。2026-11-03 补进这张表(上一版漏了) |
33
34
  | `team/` | 团队通信里**住在进程内**的那一半:`registry.ts`(名册 + 共享任务 DAG,写入带 `expectedRevision` compare-and-set,过期就拒)、`inbox.ts`(成员收件箱,实现 `SteerSource` —— 引擎在步骤边界 `take()`,所以插话当轮生效而不是等下一轮)、`board.ts`(讨论板:频道 / 线程 / 帖子 / 订阅)。⚠️ **名册和板子的持久性故意不同**:名册只在内存(进程退出即散,成员本来就活在进程里),板子挂 `sessions.db` 的 `board` namespace(**多个 `epoch` 进程共用同一份库就共享同一块板**,2026-10-30 用两个真进程验收过)。别把两者混成一层 —— 判据在这两个文件头。**2026-11-02 起主会话在名册里有身份**:`registerSession` 登记每一段活会话(建会话 / 复活 / 每轮 `run()`),`send_message` 因此能寻址**另一段主会话**,成员回给 `lead` 的消息按 `parentSessionId` 投回派它出来的那一段 —— 在这之前所有主会话共用一个 `lead` 收件箱,谁先发请求谁把别人的回话吃掉 |
34
35
  | `agent-role/` | agent 角色定义、注册与工具作用域收窄(子 agent 和**顶层会话**两条来路走同一个 `roleScopedProvider`);`createRoleScope` 把它包成**可变槽** —— 身份行和工具表从同一个变量读,好让「这一条消息换个专家」有地方落。⚠️ 2026-08-18 起这里多了一条**写**的路(`create.ts`,全仓第一条建角色的路):它和读口共用同一份 frontmatter schema、同一个解析器,写完**先读回来验一遍**再落盘。⚠️ 2026-09-16 又多了它的反面(`remove.ts`,「能加就得能删」):**落点靠读口解析出来的 `name` 找,不是拿名字拼路径** —— frontmatter 的 `name` 优先于文件名,拼路径要么删不到一份界面上明明列着的身份,要么删掉另一个,而两种错法都不报错;同名两份时**一个字节都不删**。那道「什么样的客户端才准写」的闸门**两条都不在这儿**,在 `@epoch-agent/server`(判据见那两个文件头第三节) |
35
36
  | `agent-plugin/` | **插件面板那个可变槽**(2026-10-20):`createPluginScope` —— 「这一条消息是点着哪个插件面板发的」,`<self>` 段从它读。⚠️ **和 `agent-role/` 有同一个形状、少两样东西**:没有 `provider`(插件名不换工具表)、没有身份 —— 它只影响 system prompt 里一句话,判据在那份文件头那张对照表上。别照着 `createRoleScope` 全抄一遍 |
@@ -45,9 +46,14 @@ Agent 引擎。ReAct 循环、Provider 路由、权限、记忆、技能、Hook
45
46
  | `trust/` | 工作区信任判定与闸门 |
46
47
  | `telemetry/` | span 属性脱敏 |
47
48
 
48
- 另外 10 个工具在四个 plugin 里,不在这里:见
49
+ 另外 **21 个工具在五个 plugin 里**,不在这里:见
49
50
  [plugin-file](../plugins/plugin-file) / [plugin-terminal](../plugins/plugin-terminal) /
50
- [plugin-web](../plugins/plugin-web) / [plugin-mcp](../plugins/plugin-mcp)。
51
+ [plugin-web](../plugins/plugin-web) / [plugin-lsp](../plugins/plugin-lsp) /
52
+ [plugin-mcp](../plugins/plugin-mcp)。
53
+
54
+ > **2026-11-03 核出来的数**:file 8 + terminal 10 + web 2 + lsp 1 = **21**。
55
+ > 上一版这里写的是「10 个工具在四个 plugin 里」(lsp 的 `lsp_diagnostics`
56
+ > 和那 8 个都没算)。plugin-mcp 的工具是运行时从 MCP server 拉来的,数不出来也不该数。
51
57
 
52
58
  ## 几个刻意的取舍
53
59
 
package/dist/index.d.ts CHANGED
@@ -2706,6 +2706,65 @@ type DeliveryResult = {
2706
2706
  to: string;
2707
2707
  reason: string;
2708
2708
  };
2709
+ /**
2710
+ * 宿主交给成员表的两样能力(2026-11-02)。
2711
+ *
2712
+ * 成员表住在 core 里,而「这段主会话在本进程 / 库里存在吗」「把它叫起来跑一轮」
2713
+ * 只有宿主知道 —— core 不许 import runtime / server。所以照
2714
+ * `SubAgentRunner` 的形状:core 定义接口,宿主实现之后注入。
2715
+ *
2716
+ * 没注入(CLI 单会话 / 嵌入宿主)= 这两件事都答不出,所有判据落回
2717
+ * 「没在跑就当它不在」那一档:**宁可报错,也不报一个假的成功**。
2718
+ */
2719
+ interface SessionBridge {
2720
+ /** 这段主会话在本进程里活着、或者会话库里还有吗 */
2721
+ exists(sessionId: string): boolean;
2722
+ /**
2723
+ * 把它叫起来跑一轮。**不等它跑完** —— 喂进去就返回,和 codex 的
2724
+ * `TriggerTurn` 一样是异步的。
2725
+ *
2726
+ * `ok: false` 时 `reason` 要能原样给模型看(目录没了 / 接不回来 / 队列满了)。
2727
+ */
2728
+ wake(sessionId: string, text: string): Promise<{
2729
+ ok: boolean;
2730
+ reason?: string;
2731
+ }>;
2732
+ /**
2733
+ * 这段会话的**标题**(2026-11-03)。答不出就 `undefined`。
2734
+ *
2735
+ * 只用来拼「这条消息是谁发的」那一句(`sessionSenderLabel`)—— 被叫醒
2736
+ * 的一方看到裸 UUID 没法一眼认出是谁,得再 `session_list` 去对一次。
2737
+ * 可选:不提供就回落成裸 id,和加这一格之前逐字节相同。
2738
+ */
2739
+ title?(sessionId: string): string | undefined;
2740
+ }
2741
+ /**
2742
+ * 一次能并行到多少(2026-11-03)。
2743
+ *
2744
+ * 两档数的都是**同时在跑**,不是「一共叫过几次」:
2745
+ * - `maxRunningMembers`:一个主会话同时能有多少个子 agent 在干活;
2746
+ * - `maxWokenSessions`:智能体同时能叫醒多少段别的主会话。
2747
+ *
2748
+ * 为什么要有:这两个动作都是模型自己就能发的(`delegate_task` /
2749
+ * `spawn_teammate` / `followup_task`),而每一次都是一份完整的模型调用。
2750
+ * 没有上限时,一句话让模型「并行调研五个模块」可以轻易变成二十个同时在跑的
2751
+ * 子 agent —— codex 那边对应的护栏是 `max_concurrent_threads_per_session`
2752
+ * 与 `AgentLimitReached`(超了直接报错,不排队)。
2753
+ */
2754
+ interface TeamLimits {
2755
+ maxRunningMembers: number;
2756
+ maxWokenSessions: number;
2757
+ }
2758
+ /**
2759
+ * 一个会话同时能跑几个成员。
2760
+ *
2761
+ * **3** 而不是更大:和 `DelegateManager` 的 `max_concurrent_children` 缺省值
2762
+ * 对齐(同一个数在两处不一致时,用户会看到「一批 3 个能跑、再派一个就被拒」),
2763
+ * 也和 codex 的 4 线程 / 给 root 留 1 个同一个量级。
2764
+ */
2765
+ declare const DEFAULT_MAX_RUNNING_MEMBERS = 3;
2766
+ /** 智能体同时能叫起来几段会话。判据同 {@link DEFAULT_MAX_RUNNING_MEMBERS} */
2767
+ declare const DEFAULT_MAX_WOKEN_SESSIONS = 3;
2709
2768
  declare class TeamRegistry {
2710
2769
  private readonly inboxCapacity;
2711
2770
  private readonly members;
@@ -2720,6 +2779,30 @@ declare class TeamRegistry {
2720
2779
  private readonly mainInboxes;
2721
2780
  /** 登记过的主会话 id(判据在 `registerSession` 上) */
2722
2781
  private readonly sessions;
2782
+ /**
2783
+ * 此刻真有一轮在跑的主会话(2026-11-02)。
2784
+ *
2785
+ * 和 `sessions` 是两个集合,别合并:`sessions` 的意思是「这个 id 是本进程
2786
+ * 认识的主会话」(跑过至少一轮,只增不删),而 `send_message` 要判的是
2787
+ * 「它现在真在跑吗」—— 拿前者当后者,消息会投进一个休眠会话的内存收件箱,
2788
+ * 而没有任何一轮会来读它。
2789
+ *
2790
+ * 引用计数而不是布尔:同一会话重入(`runTurns` 嵌套 / 排队紧接着开下一轮)
2791
+ * 时,早退的那一层不该把计数清零。
2792
+ */
2793
+ private readonly activeTurns;
2794
+ /**
2795
+ * 被智能体叫起来、还没跑完的那几段主会话 → 叫起来的时刻(2026-11-03)。
2796
+ *
2797
+ * 用途只有两个:数「同时在跑几段被叫醒的会话」(`maxWokenSessions`),
2798
+ * 以及挡住 {@link WAKE_RAMP_MS} 那段缝里的重复唤醒。**跑完就删** ——
2799
+ * 删除点在 `endSessionTurn`(目标会话那一轮的最外层 `finally`)。
2800
+ */
2801
+ private readonly wokenSessions;
2802
+ /** 并发上限。判据和缺省值都在 {@link TeamLimits} 上 */
2803
+ private readonly limits;
2804
+ /** 宿主注入的那两样能力(判据在 {@link SessionBridge} 上) */
2805
+ private bridge;
2723
2806
  /**
2724
2807
  * 打断用的回调(`interrupt_agent` 拉的就是它们)。
2725
2808
  *
@@ -2732,7 +2815,7 @@ declare class TeamRegistry {
2732
2815
  private readonly listeners;
2733
2816
  /** 共享任务板(阶段 2)。它也变动时也会叫醒 `wait_agent` */
2734
2817
  readonly tasks: TeamTaskBoard;
2735
- constructor(inboxCapacity?: number);
2818
+ constructor(inboxCapacity?: number, limits?: Partial<TeamLimits>);
2736
2819
  /** 订阅「团队变了」。返回取消订阅 */
2737
2820
  onChange(cb: () => void): () => void;
2738
2821
  /**
@@ -2804,6 +2887,71 @@ declare class TeamRegistry {
2804
2887
  registerSession(sessionId: string): void;
2805
2888
  /** 这个 id 是不是一段登记过的主会话(诊断和 `list_agents --all` 用) */
2806
2889
  hasSession(sessionId: string): boolean;
2890
+ /**
2891
+ * 这一轮开跑了。
2892
+ *
2893
+ * 调用点只有 `AgentLoop.runTurns()`:它开跑时登记、最外层 `finally` 里注销。
2894
+ * 子 agent 的 `AgentLoop` 没有 `team`(判据在 `session-factory` 的 `subRunner`
2895
+ * 那一格),所以这里不会出现 `delegate-xxxx`。
2896
+ */
2897
+ beginSessionTurn(sessionId: string): void;
2898
+ /**
2899
+ * 这一轮结束了。多调用一次是空操作。
2900
+ *
2901
+ * **不 `notify()`**:一轮结束不是 `wait_agent` 等的那种变化(判据在
2902
+ * `notify()` 上),叫醒它只会在每个回合边界白返回一次。
2903
+ */
2904
+ endSessionTurn(sessionId: string): void;
2905
+ /** 这段主会话此刻真有一轮在跑吗 */
2906
+ isSessionActive(sessionId: string): boolean;
2907
+ /** 宿主注入「这段会话在不在」「把它叫起来」两件事。传 `undefined` = 撤掉 */
2908
+ setSessionBridge(bridge: SessionBridge | undefined): void;
2909
+ /**
2910
+ * 唤醒一段没在跑的主会话。
2911
+ *
2912
+ * 没注入 bridge 时**明说「这个宿主不支持」**,不假装成功:CLI 单会话模式
2913
+ * 里确实没有可唤醒的对象,而调用方(模型)会照着回执决定要不要等回音。
2914
+ */
2915
+ wakeSession(sessionId: string, text: string): Promise<{
2916
+ ok: boolean;
2917
+ reason?: string;
2918
+ }>;
2919
+ /**
2920
+ * 清掉「叫过但始终没跑起来」的旧条目。
2921
+ *
2922
+ * 真跑起来的会在 `endSessionTurn` 里被删;这里管的是另一种:`wake` 报了
2923
+ * 成功、但那一轮根本没开(引擎起不来 / 排队排到一半被丢掉)。不清理的话
2924
+ * 一条这种记录会永久占掉一个名额,或者把那一段会话永久钉在「别重复叫」上。
2925
+ * 只清「不在跑且过了宽限」的 —— 真在跑的一直算在内。
2926
+ */
2927
+ private reapWokenSessions;
2928
+ /** 同时能跑几个成员(给派活那一侧的报错文案用) */
2929
+ get memberLimit(): number;
2930
+ /**
2931
+ * 这个会话此刻还能再起几个成员。
2932
+ *
2933
+ * 判据是**同一个 `parentSessionId` 名下 `status === 'running'` 的成员数**,
2934
+ * 不是「一共派过几个」:收工的不占名额(`markFinished` 把状态翻掉),
2935
+ * 于是长时间使用的会话不会被历史成员卡死。
2936
+ *
2937
+ * `0` = 一个都起不了,调用方要把它当成一次失败告诉模型(codex 那边叫
2938
+ * `AgentLimitReached`,超了也是报错而不是排队)。
2939
+ */
2940
+ availableMemberSlots(parentSessionId: string): number;
2941
+ /**
2942
+ * 这个 id 指向一段**真实存在**的主会话吗。
2943
+ *
2944
+ * 有 bridge 时问宿主(它能看到会话库),没有时回落成「登记过」——
2945
+ * 和加这个判据之前逐字节相同。
2946
+ */
2947
+ sessionExists(sessionId: string): boolean;
2948
+ /**
2949
+ * 这段主会话的标题,答不出就 `undefined`。
2950
+ *
2951
+ * 没注入 bridge / 宿主不提供标题 = 永远答不出,调用方回落成裸 id ——
2952
+ * 和加这一格之前逐字节相同。
2953
+ */
2954
+ sessionTitle(sessionId: string): string | undefined;
2807
2955
  /** 登记过的全部主会话 id,按登记先后 */
2808
2956
  sessionIds(): string[];
2809
2957
  /**
@@ -2859,6 +3007,8 @@ declare class TeamRegistry {
2859
3007
  from: string;
2860
3008
  to: string;
2861
3009
  text: string;
3010
+ /** `from` 的可读写法(主会话之间才需要,判据在 `AgentMessage.fromLabel`) */
3011
+ fromLabel?: string;
2862
3012
  }): AgentMessage;
2863
3013
  }
2864
3014
 
@@ -4664,7 +4814,7 @@ declare function createGoalTool(deps: GoalToolDeps): EpochTool;
4664
4814
  *
4665
4815
  * ---
4666
4816
  *
4667
- * # ⚠️ 改这个文件里的 `description` / `parameters` = 34 段 eval 录像作废
4817
+ * # ⚠️ 改这个文件里的 `description` / `parameters` = 23 份 eval 录像作废
4668
4818
  *
4669
4819
  * 工具定义(名字 / 描述 / 参数)进 eval 的新鲜度指纹
4670
4820
  * (`evals/harness/fingerprint.ts`,那个文件头说得很清楚为什么必须进)。
@@ -4682,6 +4832,29 @@ declare function createGoalTool(deps: GoalToolDeps): EpochTool;
4682
4832
  * 数 `memory` 在 `toolCalls` 里出现几次,必须是 0。
4683
4833
  *
4684
4834
  * ⚠️ 下次再想在这儿加一句话之前先问:**非说在工具描述里不可吗**。
4835
+ *
4836
+ * ---
4837
+ *
4838
+ * # 2026-11-03:写入纪律进描述(明知代价改的第二轮)
4839
+ *
4840
+ * 加的是「写之前先分清三件事」那五行:范围 / 归属 / 证据。来路是 codex 的
4841
+ * `memories/write/templates/memories/stage_one_system_v2.md`(那份原文是它们的
4842
+ * 每会话摘要管道,**只有纪律可搬、管道不可搬** —— 它那句「Write task history,
4843
+ * not a user profile」在这里是要反过来读的,本工具的 `target=user` 本来就是
4844
+ * 用户画像)。
4845
+ *
4846
+ * 为什么落在描述里而不是技能正文:纪律要在**模型准备写记忆那一刻**被看到,
4847
+ * 而那一刻它手上没有任何技能(技能正文要先 `skill_view` 才进上下文)。描述是
4848
+ * 唯一常驻在决策点上的位置 —— 这也是 09-10 那一轮同样的判断。
4849
+ *
4850
+ * 措辞刻意压成三件事、不写成禁令清单:`evals/README.md:261` 记着
4851
+ * `ask_user_question` 描述写长两句之后命中率 8/9 → 5/9 的先例。写成「别记这个
4852
+ * 别记那个」的话,最可能的副作用是该记的也少记了 —— 而这条纪律要治的是
4853
+ * **记偏**(一次性的要求被升格成长期偏好,会一直留在后面每一轮里),不是记多。
4854
+ *
4855
+ * 收账同 09-10:`evals/README.md` 第三行那个窄例外,两条举证
4856
+ * (witness 逐对 diff + 真 key 活体数 `memory` 被选中几次)。改动前的基线是
4857
+ * **0 次**(`grep -c "name: 'memory'" evals/*.eval.ts` 零命中)。
4685
4858
  */
4686
4859
 
4687
4860
  declare function createMemoryTool(memory: MemoryManager$1): EpochTool;
@@ -6108,13 +6281,19 @@ declare function createScheduleDraftTool(deps: ScheduleDraftDeps): EpochTool;
6108
6281
  *
6109
6282
  * - **发给一个 running 成员**:进它的收件箱,引擎在**下一个步骤边界**取走
6110
6283
  * (`loop.ts:723` 的 `steer.take()`)。它当轮就会看到,不用等这一轮跑完
6111
- * - **发给 `lead`**:进主会话的收件箱,下一轮 `TaskNoticeTracker` 在请求前
6112
- * 拼成一条 note(`loop.ts:1367`)。**父会话没在跑时它待在那儿不动**
6284
+ * - **发给 `lead`**:进主会话的收件箱。父会话在跑时,`TaskNoticeTracker` 在它
6285
+ * **下一次请求之前**把它拼成一条 note(`loop.ts:1405`);父会话没在跑时这条
6286
+ * 只是**排在那里**,要等它下次跑起来才读得到 —— 回执照这两种情形分开写
6287
+ * - **发给另一段主会话**:只有它**此刻真有一轮在跑**时才送得到(2026-11-02)。
6288
+ * 休眠的那一段会收到一句明说的失败,而不是一条扔进没人读的箱子的消息
6113
6289
  * - **发给已经收工的成员**:直接失败。收进一个永远不会有下一轮读它的箱子
6114
6290
  * 等于给调用方一个假成功 —— 父 agent 会照着它继续等回音
6115
6291
  *
6116
- * 第三条是 codex `api.rs:35-36` 那条规矩的本地版:通知**不唤醒**已终结的 agent。
6117
- * 阶段 2 有了 `followup_task`,唤醒才会变成一条显式的路。
6292
+ * 后三条是同一个判据:**消息只在对方真会读到它的前提下才算「送到了」**。
6293
+ * 差别落在收件人休眠时的那一档:主会话能自己把对方叫醒(`followup_task`),
6294
+ * 所以直接失败并指路;**成员叫不醒**(那个工具在 `BLOCKED_TOOLS` 里),所以
6295
+ * 排队 + 说清「要等它下次跑起来」。两者都是 codex `api.rs:35-36` 那条规矩
6296
+ * (通知不唤醒已终结的 agent)的本地版 —— 叫醒走的是另一条显式路。
6118
6297
  */
6119
6298
 
6120
6299
  /** 工具名。`BLOCKED_TOOLS` 那边按这个名字放行,别各写各的 */
@@ -6681,12 +6860,21 @@ interface SearchMessagesOutput {
6681
6860
  interface ReadMessagesInput extends Omit<SessionVisibilityInput, 'db'> {
6682
6861
  /** 读哪段会话 */
6683
6862
  sessionId: string;
6684
- /** 锚点消息(`messages.id`,来自两个检索工具的命中) */
6685
- messageId: number;
6863
+ /**
6864
+ * 锚点消息(`messages.id`,来自两个检索工具的命中)。
6865
+ *
6866
+ * **省略 = 「这段会话最近在说什么」**。这一档是 2026-11-03 加的,理由是现场:
6867
+ * 模型要找一段没有独特可搜词的会话,拿不到任何 id,于是照着错误里的「it has 9」
6868
+ * 去猜 #9、再猜 #1,三次调用换回三次 8010 —— 而 `messages.id` 是**全库自增**的,
6869
+ * 本来就不可能猜得中。省略时改看 {@link tail}。
6870
+ */
6871
+ messageId?: number | undefined;
6686
6872
  /** 锚点之前取几条。调用方负责夹紧 */
6687
6873
  before: number;
6688
6874
  /** 锚点之后取几条。调用方负责夹紧 */
6689
6875
  after: number;
6876
+ /** 省略 `messageId` 时读最近几条(时间正序由这一层翻好)。调用方负责夹紧 */
6877
+ tail?: number | undefined;
6690
6878
  }
6691
6879
  /**
6692
6880
  * 一条消息的**原文**(不是片段)。
@@ -6718,6 +6906,14 @@ interface ReadMessagesOutput {
6718
6906
  before: MessageRecord[];
6719
6907
  /** 锚点之后那几条,同样正序 */
6720
6908
  after: MessageRecord[];
6909
+ /**
6910
+ * 省略 `messageId` 时给「最近几条」,**时间正序**。
6911
+ *
6912
+ * 这一档存在时 `anchor` 必然缺席 —— 两条路要的不一样:一个是「围绕这一条看」,
6913
+ * 一个是「尾部长什么样」。合进 `after` 会让渲染那一侧分不清「锚点之后」和
6914
+ * 「整段会话的最后几条」。
6915
+ */
6916
+ tail?: MessageRecord[] | undefined;
6721
6917
  /** 这段会话一共多少条。让模型知道自己这个窗口在整段里占多少 */
6722
6918
  total: number;
6723
6919
  }
@@ -6821,6 +7017,8 @@ declare class SessionQueries {
6821
7017
  * 就能探出别的工作区有哪些会话,所以连「它存不存在」都不能泄露)
6822
7018
  * - 在范围里、但这段会话没有这个 messageId → `authorized: true` + `anchor`
6823
7019
  * 缺席。这是模型自己传错了 id,该告诉它,而不是含混成「不可读」
7020
+ * - **根本没传 messageId** → `authorized: true` + `tail` 那几条。这不是错误,
7021
+ * 是「不知道从哪条读起」时唯一还能用的读法(判据在 `ReadMessagesInput.messageId`)
6824
7022
  */
6825
7023
  readMessages(input: ReadMessagesInput): ReadMessagesOutput;
6826
7024
  /**
@@ -6888,6 +7086,14 @@ declare class SessionQueries {
6888
7086
  * (`before: 0` 是合法用法:只要后面那几条)。
6889
7087
  */
6890
7088
  private neighbourRows;
7089
+ /**
7090
+ * 会话最后 n 条(**倒序取,调用方翻**)。
7091
+ *
7092
+ * 不塞进 {@link neighbourRows}:那一份的 WHERE 以锚点为界,而这一条压根没有锚点
7093
+ * —— 合成一份就得给 `anchorId` 编一个哨兵值(0 或 -1),那正是「读着像同一件事、
7094
+ * 其实不是」的开头,而它会在某个 id 真的小于哨兵时静默出错。
7095
+ */
7096
+ private tailRows;
6891
7097
  /**
6892
7098
  * 会话内的逐条命中。授权已经在 `searchMessages` 里判过,这里只按 sessionId 收窄
6893
7099
  * —— 不重复拼 `visClause`:同一个判定在一次调用里做两遍,将来改一处漏一处。
@@ -12353,6 +12559,15 @@ declare class AgentLoop {
12353
12559
  /** 见 {@link CompressResult.carriedHead} —— 落库那一步要用(方案 64 PR-1) */
12354
12560
  carriedHead?: number;
12355
12561
  carriedTail?: number;
12562
+ /**
12563
+ * 这一次**一发摘要请求都没打**(中段为空 / 裁完就够)—— 见
12564
+ * {@link CompressResult.summarySkipped}。
12565
+ *
12566
+ * 手动 `/compact` 那一侧靠它把「没压动」分两档说:
12567
+ * `after === before` 现在有两种来路,**一种花了钱、一种一分没花**,
12568
+ * 而界面上原来只有一种说法(「那笔钱花掉了」),在短会话上就是假话。
12569
+ */
12570
+ summarySkipped?: boolean;
12356
12571
  }>;
12357
12572
  /**
12358
12573
  * 真正压一次。调用方负责决定「该不该压」。
@@ -14787,6 +15002,22 @@ declare const EpochConfigSchema: z.ZodObject<{
14787
15002
  label: z.ZodString;
14788
15003
  icon: z.ZodOptional<z.ZodString>;
14789
15004
  }, z.core.$strip>>>;
15005
+ trayMenuLeft: z.ZodOptional<z.ZodArray<z.ZodObject<{
15006
+ id: z.ZodString;
15007
+ label: z.ZodString;
15008
+ icon: z.ZodOptional<z.ZodString>;
15009
+ activeLabel: z.ZodOptional<z.ZodString>;
15010
+ activeIcon: z.ZodOptional<z.ZodString>;
15011
+ closable: z.ZodOptional<z.ZodBoolean>;
15012
+ }, z.core.$strip>>>;
15013
+ trayMenuRight: z.ZodOptional<z.ZodArray<z.ZodObject<{
15014
+ id: z.ZodString;
15015
+ label: z.ZodString;
15016
+ icon: z.ZodOptional<z.ZodString>;
15017
+ activeLabel: z.ZodOptional<z.ZodString>;
15018
+ activeIcon: z.ZodOptional<z.ZodString>;
15019
+ closable: z.ZodOptional<z.ZodBoolean>;
15020
+ }, z.core.$strip>>>;
14790
15021
  blankCards: z.ZodOptional<z.ZodArray<z.ZodObject<{
14791
15022
  id: z.ZodString;
14792
15023
  title: z.ZodString;
@@ -15427,10 +15658,15 @@ declare function buildSchemaExports(): SchemaExport[];
15427
15658
  *
15428
15659
  * | 档 | 判据 | 今天几个 |
15429
15660
  * | --- | --- | --- |
15430
- * | `scalar` | 顶层标量,或**一层** `段.字段`,且不是 {@link BLOCKED} 里那三个 | 37 |
15431
- * | `manual` | 两层以上的路径,或数组 / 对象 | 40 |
15661
+ * | `scalar` | 顶层标量,或**一层** `段.字段`,且不是 {@link BLOCKED} 里那三个 | 57 |
15662
+ * | `manual` | 两层以上的路径,或数组 / 对象 | 23 |
15432
15663
  * | `blocked` | 「位置 / 身份」类的三个键 | 3 |
15433
15664
  *
15665
+ * (合计 **83** 个叶子。这三个数 2026-11-03 对 `configKeyTable()` 当场重数过 ——
15666
+ * 本注释上一版写的是 `37 / 40 / 3`,合计 80,而实际表里是 83;
15667
+ * `docs/CLI.md` 与 `docs/CONFIGURATION.md` 那两份文档当时**是对的**,错的是这里。
15668
+ * 改 schema 的叶子数时三处要一起改,`config-key-table.test.ts` 只守「表 ↔ schema 一致」。)
15669
+ *
15434
15670
  * ### 为什么两层以上的路径不开放
15435
15671
  *
15436
15672
  * `setSectionField` 的就地改写只做一层(`infra/src/config-yaml.ts` 文件头那句
@@ -16629,6 +16865,18 @@ interface SessionMeta {
16629
16865
  workspaceRoot?: string;
16630
16866
  gitBranch?: string;
16631
16867
  gitRepoRoot?: string;
16868
+ /**
16869
+ * **建行那一刻生效的模型**(`AgentProvider.modelId`,如 `deepseek-flash`)。
16870
+ *
16871
+ * 口径是「开始时用的」,不是「最后用的」 —— 和 {@link source}「一段会话是被谁
16872
+ * 开出来的,是它开始那一刻的事实」同一条规矩。`/model` 中途换过**不回写**:
16873
+ * 「最后用的是什么」在每条 assistant 行的 `turnFacts.model` 上,那一份逐轮记。
16874
+ *
16875
+ * 空串 = **没记过**,不是「没有模型」。2026-11-03 之前本机新建的会话全是这一档
16876
+ * (`ensure()` 那时根本没传这一格,只有 `importSession` 搬进来的那些有值)。
16877
+ * 读侧要「不知道」就按真值判,导出那条路已经退回占位符
16878
+ * (`session_manage.export_model_unknown`)。
16879
+ */
16632
16880
  model: string;
16633
16881
  tags: string[];
16634
16882
  preview: string;
@@ -16839,6 +17087,15 @@ interface Message {
16839
17087
  * **只给 `getContext()` 截断上下文用**,不再汇总进 `SessionMeta` 的 token 列
16840
17088
  * (方案 42 PR-0:那五列改由 `recordUsage()` 记 provider 的真实用量,
16841
17089
  * 两个写入方往同一列累加就是双份记账)。
17090
+ *
17091
+ * ⚠️ **生产路径没有任何写入点,库里恒为 NULL**(2026-11-03 核实:本机 1676 行
17092
+ * 全是 NULL)。`insertMessage` 照写 `msg.tokenCount ?? null`,而
17093
+ * `SessionStore.record()` / `appendSteps()` 从来不传这一格 —— 只有用例塞过数。
17094
+ * 所以 `getContext()` 事实上永远走它自己那条 `content.length / 3` 的兜底。
17095
+ *
17096
+ * 为什么不去接线:provider 只报**整轮**用量(`TokenUsage`),摊不到单条;
17097
+ * 拿字符数估一个值写进名叫 `token_count` 的列,等于把估算冒充真值 ——
17098
+ * 正是 v9 那次「0 = 免费」的反面教材。
16842
17099
  */
16843
17100
  tokenCount?: number;
16844
17101
  finishReason?: string;
@@ -19696,6 +19953,14 @@ interface RunningSchedule {
19696
19953
  startedAt: number;
19697
19954
  pid: number;
19698
19955
  host: string;
19956
+ /**
19957
+ * 有人请求终止这一次运行(2026-11-04)。`undefined` = 没请求过。
19958
+ *
19959
+ * ⚠️ **这是一个「请求」而不是「已停」** —— 执行器要等下一次事件循环才看得到。
19960
+ * 界面拿它把「停止」那颗按钮换成「正在停止…」,而**不能**因此就把转子撤掉:
19961
+ * 那一次真的还在跑。
19962
+ */
19963
+ cancelRequestedAt?: number;
19699
19964
  }
19700
19965
  /**
19701
19966
  * 抢一把锁。抢不到时把当前持有者一起回去 —— 记 `skipped-overlap` 那条运行记录
@@ -19721,6 +19986,35 @@ declare function acquireScheduleLock(db: SqliteDatabase, scheduleId: string, clo
19721
19986
  * @param clock 可注入的时钟,同 {@link acquireScheduleLock}
19722
19987
  */
19723
19988
  declare function listRunningSchedules(db: SqliteDatabase, clock?: () => number): RunningSchedule[];
19989
+ /**
19990
+ * 「请这一次运行停下来」—— 往锁行上写一个时间戳(2026-11-04)。
19991
+ *
19992
+ * ## 返回 false 是什么意思
19993
+ *
19994
+ * **此刻没有活着的锁**:那一次已经跑完了,或者压根没在跑。调用方(控制面 /
19995
+ * 端点)据此回 `no-active-run`,**不许假装成功** —— 界面上那颗按钮是按着
19996
+ * 「我刚看到它在跑」按下去的,而它看到的是一枚过期的转子。
19997
+ *
19998
+ * ## 为什么先判活再写
19999
+ *
20000
+ * 锁行可能是上一次被 `kill -9` 留下的残骸(心跳早就停了)。那时写标记等于
20001
+ * 给一条不存在的运行排队:下一次抢锁会把它盖掉(`acquireScheduleLock` 的
20002
+ * `ON CONFLICT … cancel_requested_at = NULL`),但「写了却永远不会被处理」
20003
+ * 本身仍然是一句假话。
20004
+ *
20005
+ * @param clock 可注入的时钟,用法同 {@link acquireScheduleLock}
20006
+ */
20007
+ declare function requestScheduleCancel(db: SqliteDatabase, scheduleId: string, clock?: () => number): boolean;
20008
+ /**
20009
+ * 执行器那一侧:有人请求取消吗。看到了就 `abort()`。
20010
+ *
20011
+ * 收尾时锁行被 `release()` 删掉,标记跟着一起消失,所以这里**没有对应的
20012
+ * 「清除」函数** —— 写一处、删一处,中间没有第三种状态要维护。
20013
+ *
20014
+ * ⚠️ **调用方必须节流**(执行器那边是 1 秒一次):事件流是逐 token 的,
20015
+ * 每个 delta 都查一次库会让一小时的运行多出十几万次查询。
20016
+ */
20017
+ declare function readCancelRequest(db: SqliteDatabase, scheduleId: string): number | undefined;
19724
20018
 
19725
20019
  /**
19726
20020
  * 触发器的校验、下一次触发时刻、以及生效区间(方案 45 §2.1)。
@@ -23354,4 +23648,4 @@ declare function resolveCodeModeWorker(baseDir: string, exists?: typeof existsSy
23354
23648
  */
23355
23649
  declare function codeModeWorkerPath(): string | undefined;
23356
23650
 
23357
- export { ABOUT_DESC_MAX_CHARS, ABOUT_README_MAX_CHARS, AGENT_ROLE_DIAG_MODULE, ARTIFACT_MAX_TOTAL_BYTES, ARTIFACT_RETENTION_DEFAULTS, ATTACHMENT_MAX_TOTAL_BYTES, ATTACHMENT_RETENTION_DEFAULTS, type AcquireResult, type ActivePlugin, type AgentConfig, AgentInbox, AgentLoop, type AgentProvider, type AgentSite, type AgentSiteRef, AppearanceStore, type AppendMessageInput, ApprovalCache, type ApprovalDecision, type ArtifactOpenRefusal, type ArtifactRetention, type AskQuestionDeps, type AttachmentRetention, BLOCKED_TOOLS, BOARD_TOOL_NAMES, type BackendOptions, type BackendOutcome, type BackgroundTaskSource, type BaseOrigin, type BaseSlot, type BeginTurnInput, type BoardPending, BoardStore, type BoardTarget, type BreakdownInput, BudgetGuard, type BudgetGuardOptions, type BudgetInfo, type BudgetLevel, type BudgetOptions, type BudgetStatus, BudgetStore, type BudgetStoreOptions, type BuildFireArgvInput, type BuildIndexOptions, CHECKPOINT_MAX_TOTAL_BYTES, CLAUDE_EVENT_NAMES, CLAUDE_TOOL_NAMES, CODE_MODE_LIMITS, CODE_MODE_SDK_TAG, CONFIG_KEYS, CURRENT_CONFIG_VERSION, type CachedApproval, type CachedDecision, type CheckpointCapture, type CheckpointFile, CheckpointManager, type CheckpointManagerOptions, type CheckpointManifest, CheckpointStore, type CheckpointStoreOptions, type CheckpointSummary, type ClaudeHooksParseOptions, type CodeModeLimits, type CodeRequest, type CodeResult, CodeSandbox, type CommandHookConfig, type CommandHookResult, type CommandLoadOutcome, type CommandLoadSummary, type CommandResult, type CommandRunner, type CompactionResult, type CompiledRules, type ComplianceDirSpec, type ComplianceDirsSummary, ComplianceEngine, type ComplianceEngineInput, type ComplianceGate, type ComplianceHit, type ComplianceRule, type ComplianceRuleSource, type ComplianceSettings, type ComplianceVerdict, type CompressConfig, type CompressResult, type ConfigKeyEntry, type ConfigKeyKind, type ConfigKeyReason, type ConfigKeyWrite, type ConfigMigration, type ConfigOrigins, type ConfigValueCheck, type ConfigValueProblem, ContextCompressor, type ContextEngine, type CreateScheduleInput, type CreateSessionInput, DEFAULT_COMPLIANCE_ACTIONS, DEFAULT_COMPLIANCE_SETTINGS, DEFAULT_COMPRESSION_THRESHOLD, DEFAULT_GOAL_MAX_ROUNDS, DEFAULT_INBOX_CAPACITY, DEFAULT_MAX_HOLD_CHARS, DELEGATE_SESSION_SOURCE, type DelegateArgs, type DelegateConfig, DelegateManager, type DelegateTaskResult, type DeliveryResult, type DiagnoseOptions, type DiscoverOutcome, type DiscoveredFile, type DoctorReport, type DraftParse, EMPTY_RULES, EPOCH_DISK_LEDGER, type EntryProbeCode, type EntryProbeResult, EpochConfigSchema, type ExpandOptions, type ExtractOutcome, FTS_TABLES, FTS_TRIGGERS, type FallbackEvent, type FileSlots, type FileSourceKind, type ForkInput, type FrontmatterParse, type FrontmatterSplit, type FtsHealth, type FtsReclaim, type FtsSpace, type FtsTableHealth, GOAL_BLOCK_CODES, type GateAxis, type GateVerdict, type GenerateInput, type GenerateOutput, type Goal, type GoalBlockReason, type GoalClear, type GoalPhase, type GoalPromptView, type GoalRefusal, type GoalRoundResult, GoalService, GoalStore, type GoalToolDeps, type GoalWrite, HEADLESS_AUDIT_CODES, type HeadlessPolicy, type HookConfigEntry, HookManager, type HookManagerOptions, type HookMatcher, type HookSourceKind, type HookSourceStatus, type HookSourcesOptions, type HookSourcesSummary, type HooksParseOutcome, type MemoryManager$1 as IMemoryManager, INSTRUCTION_BUDGET_CHARS, INSTRUCTION_FILES, type SessionManager$1 as ISessionManager, type SkillSystem$1 as ISkillSystem, ImageLoadError, type ImageSize, type ImportDecision, type ImportGate, type ImportGoal, type ImportMessage, type ImportNode, type ImportPartsResult, type ImportSessionInput, type ImportSessionMeta, type ImportSessionResult, type ImportSkipReason, type ImportTodo, ImportTrustStore, type InstallDependency, type InstallOptions, type InstallOutcome, type InstallPreview, type InstallStep, type InstructionScan, type InstructionSource, type IsolationReason, type IsolationReport, type JsonSchemaDocument, LAUNCHD_LABEL_PREFIX, LOCK_HEARTBEAT_MS, LOCK_STALE_MS, type LastOpenSession, LastOpenSessions, type LayerOutcome, type LayerScalars, type LayerStatus, type LearningContext, type LearningResult, type LearningSkipReason, type LexiconLoadOutcome, type LifecycleOutcome, type ListCandidatesInput, type ListSessionsInput, type ListSessionsOutput, type LoadCommandsOptions, type LoadConfigOptions, type LoadKeybindingsOptions, type LoadKeybindingsResult, type LoadRolesOptions, type LoadedPlugin, type LockHolder, MARKETPLACE_DISPLAY_FIELDS, MARKETPLACE_FILE, MAX_AUDIT_ENTRIES, MAX_COMMAND_DEPTH, MAX_GOAL_MAX_ROUNDS, MAX_IMPORT_DEPTH, MAX_LAST_OPEN_SESSIONS, MAX_OBJECTIVE_CHARS, MAX_POST_CHARS, MAX_REASON_CHARS, MAX_RECENT_WORKSPACES, MODEL_ENTRIES_FILE, MODEL_GIVE_UP_THRESHOLD, MULTIMODAL_DEFAULTS, type ManagedPolicy, ManagedPolicyError, type ManagedSettings, ManagedSettingsSchema, type MarketplaceCatalog, type MarketplaceCategory, type MarketplaceDisplay, type MarketplaceDisplayField, type MarketplaceEntry, type MarketplaceOutcome, type MarketplaceRecord, type MarketplaceStatus, type MemoryConfig, type MemoryEntry, type MemoryImportRecord, type MemoryImportResult, MemoryManager, type MemoryManagerOptions, type MemoryNotice, type MemoryRemoval, type MemorySearchResult, type MemoryTarget, type MemoryWriteResult, type MentionPart, type MentionResolution, type Message, type MessageHit, type MessageRecord, type MessageSurface, type ModelCapability, ModelFailureTracker, type ModelMetaEntry, type ModelPricing, type MultimodalPolicy, NOMINAL_TOTAL_BYTES, NO_REVEALED_TOOLS, type NonInteractiveProbe, type OsTaskSnapshot, type OutputGuard, PACK_EXCLUDES, PERMISSION_AUDIT_CODES, PLUGIN_ICON_MAX_BYTES, PLUGIN_LAYOUT, PLUGIN_MANIFEST_FILE, PLUGIN_MANIFEST_KEYS, PLUGIN_NAME_PATTERN, PLUGIN_ROOT_ENV, PLUGIN_ROOT_TOKEN, PLUGIN_VISIBILITY, POLICY_DECISIONS, PROBE_VERSION, PROJECT_AGENTS_SUBDIR, PROVIDER_NO_CREDENTIAL, type PackFile, type PackLimits, type PackOutcome, type PackPlan, type PackPlanOutcome, type PermissionAuditCode, type PermissionAuditEntry, type PermissionAuditOutcome, type PermissionAuditScope, type PermissionAuditSnapshot, PermissionManager, type PersistFailureKind, type PersistedBudget, type PersistedPart, type PlanApprovalFn, type PlanEnterResult, type PlanModeDeps, PlanModeState, type PlanSettlement, type PluginAbout, type PluginArtifacts, type PluginAuthor, PluginAuthorSchema, type PluginCommandDir, type PluginCounts, type PluginDoc, type PluginHookFile, type PluginInventory, type PluginLoadOptions, type PluginManifest, type PluginPathRef, type PluginRecord, type PluginScope, type PluginSettingsFile, type PluginSourceType, type PluginStateReadOutcome, PluginStore, type PluginVisibility, type PolicyDirSpec, type PolicyDirsSummary, type PolicyLoadOutcome, type PolicyRule, PolicyRuleSchema, type PricingAt, type PricingOverride, type ProjectContext, type ProjectExtensionInventory, ProviderError, ProviderRouter, type ProviderStreamChunk, type ProviderToolCall$1 as ProviderToolCall, type ProviderWarning, type PruneResult, type QuestionAskFn, RECORDING_KEEP_RUNS, RECORDING_MAX_BYTES, ROLE_FRONTMATTER_SCHEMA, RUN_CODE_TOOL, type ReadMessagesInput, type ReadMessagesOutput, type RecentWorkspace, RecentWorkspaces, type RecordRunInput, type RecorderOptions, type RecoveryAction, type RegisterInput, type RegisterOutcome, type RegistrarOptions, type RegistrationPatch, type RepairOutcome, type ResolveMentionsOptions, type ResolveReferenceInput, type ResolveSettingsOptions, type ResolvedCompression, type ResolvedReference, type ResolvedSource, type ResponseFormat, type RestorePartsOptions, type RewindAction, type RewindDrift, type RewindFilePlan, type RewindOptions, type RewindOutcome, type RewindPreview, type RoleCreateFailure, type RoleCreateInput, type RoleCreateOptions, type RoleCreateOutcome, type RoleLoadOutcome, type RoleLoadSummary, type RoleMergeNotice, type RoleMergeResult, type RoleRemoveFailure, type RoleRemoveOptions, type RoleRemoveOutcome, type RoleScope, type RuleMatch, type RuleSuggestion, type RuleVerdict, type RunCodeFailure, type RunCodeInput, type RunCodeOutcome, type RunCodeToolDeps, type RunEstimateInput, type RunInput, type RunResult, type RunningSchedule, SANDBOX_COVERS, SANDBOX_EXCLUDES, SCALAR_KEYS, SCHEDULE_DEFAULTS, SCHEDULE_DEFAULT_ALLOWLIST, SCHEDULE_ISSUE_CODES, SCHTASKS_FOLDER, SEND_MESSAGE_TOOL, SESSION_MESSAGES_READ_TOOL, SESSION_MESSAGES_SEARCH_TOOL, SESSION_QUERY_TOOLS, SESSION_SEARCH_TOOL, SESSION_TRACE_TOOL, SETTINGS_LAYER_ORDER, SETTING_WRITE_KEYS, SETTING_WRITE_LAYERS, SKILL_ASSET_DIRS, SKILL_CREATE_TOOL, SKILL_EDIT_TOOL, SKILL_FILE, SKILL_PATCH_TOOL, SKILL_VIEW_TOOL, SKILL_WRITE_FILE_TOOL, SLASH_COMMANDS_DIAG_MODULE, type ScalarKey, type ScanInstructionsOptions, type ScheduleArgvRefusal, type ScheduleArgvResult, type ScheduleArgvWarning, type ScheduleBackend, type ScheduleCliEntry, type ScheduleDraftDeps, type ScheduleDrift, type ScheduleDriftKind, type ScheduleImportInput, type ScheduleInstallForm, type ScheduleIssue, type ScheduleIssueCode, type ScheduleLock, ScheduleRecorder, ScheduleRegistrar, ScheduleStore, type ScheduleValidation, type SchemaExport, type SearchHit, type SearchInput, type SearchMessagesInput, type SearchMessagesOutput, type SearchOutput, type SearchSessionsInput, type SelectionDeps, type SelfConnector, type SelfIndexInput, type SelfSettings, type Session, type SessionCandidate, type SessionHit, SessionManager, type SessionMentionDeps, type SessionMeta, SessionQueries, SessionReferences, type SessionSearchDeps, type SessionStats, type SessionSurface, type SessionTrace, type SessionVisibility, type SessionVisibilityInput, type SettingApply, type SettingApplyFacts, type SettingChain, type SettingFutile, type SettingLayer, type SettingStep, type SettingValue, type SettingValueKind, type SettingWriteFailure, type SettingWriteKey, type SettingWriteLayer, type SettingWriteOutcome, type SettingWriteRequest, type SettingWriteTarget, type SettingWriteTargetsOptions, type SettingsFile, SettingsFileError, SettingsFileSchema, type SettingsLayer, type SettingsResolution, type ShadowFinding, type ShadowKind, type Skill, type SkillDirSource, type SkillDirSpec, type SkillDirsSummary, type SkillImportConflict, type SkillImportDone, type SkillImportEntry, type SkillImportFailure, type SkillImportForm, type SkillImportOptions, type SkillImportPreview, type SkillImportResult, type SkillIndexEntry, type SkillIndexOptions, type SkillIndexResidency, type SkillIndexStats, SkillLearner, type SkillLearningProvider, type SkillMeta, type SkillStats, SkillSystem, type SkillSystemOptions, type SkillViewDeps, type SkillWriteDeps, type SteerSource, type StoredAppearance, type SubAgentRunner, type SubTask, type SubToolCaller, type SummarizeOutput, type SurfaceMessage, type SystemPromptParams, type SystemPromptSegments, TEAM_TOOL_NAMES, TOOL_SEARCH_TOOL, TaskNoticeTracker, TeamRegistry, type TodoItem, type ToggleOutcome, type ToolCall, type ToolConflict, type ToolGate, type ToolNameFidelity, type ToolNameLookup, ToolRegistry, type ToolRevealState, type ToolScope, type ToolSearchDeps, type ToolTableCost, type TraceInput, type TraceNode, TrackerDB, type TrustDecision, type TrustGate, type TrustGateOptions, TrustManager, type TurnRecord, type TurnTiming, UNSETTABLE_USER_KEYS, type UpdateScheduleInput, type UtilityModelInfo, type ValidateScheduleInput, type VersionCheck, Workspace, type WorkspaceFiles, type WorkspaceIssue, type WorkspaceIssueKind, acquireScheduleLock, addMarketplace, addUsage, admitArtifact, admitArtifacts, affectedPaths, approvalEntryFor, approvalRootFor, artifactLaunchArgv, artifactOpenRefusal, assertLevelAllowed, blockedRoleTools, buildContextBreakdown, buildFireArgv, buildFtsMatchQuery, buildSchemaExports, buildSystemPrompt, buildTrigramMatchQuery, builtinRoles, capabilityOfRef, checkConfigValue, checkEpochVersion, checkFtsHealth, checkShadowing, classifyPersistFailure, classifyProviderError, clearModelCache, coalesceRecording, codeModeWorkerPath, commandNameFromRelPath, compileRuleLists, compressionOptions, computeCost, computeCostMicros, computeExecHash, configKeyByPath, configKeyTable, countRules, createAllowAllGate, createAllowAllImportGate, createAskQuestionTool, createBoardTools, createCodeExecTool, createDelegateTool, createDenyAllGate, createDenyAllImportGate, createGoalTool, createImportGate, createMemoryTool, createPlanModeTools, createPluginScope, createRoleFile, createRoleScope, createRunCodeTool, createScheduleDraftTool, createSendMessageTool, createSessionMessagesReadTool, createSessionMessagesSearchTool, createSessionSearchTool, createSessionSearchTools, createSessionTraceTool, createSkillViewTool, createSkillWriteTools, createTeamTools, createTodoTool, createToolRevealState, createToolScope, createToolSearchTool, createTrustGate, currentEpochVersion, decideImport, decideTrust, defaultConfig, describeArtifactRefusal, describeBackgroundTask, describeHeadlessPolicy, describeIsolation, describeJsonError, diagnoseSchedules, discoverMarkdown, discoverModels, discoverProject, discoverySpec, displayAllows, displayCurrency, draftCommandLine, draftWidening, escapeRuleContent, estimateImageTokens, estimateRunTokens, estimateTokens, evaluateSelection, expandCommand, expandImports, explainSetting, extractArchive, findInstructionFiles, findProjectInstructions, findRole, formatBytes, formatSkillIndex, formatUsd, gateForTool, getCapability, getConfigIssues, getConfigOrigins, getImportGate, getTrustGate, grantedPathsFor, hasDedicatedExecContent, hasExecTierContent, hasPromptCaching, hasProviderCredentials, hasReadTierContent, hasUsableModel, imageFromBase64, imageFromPath, imagePartTokens, importParts, importSkills, installPlugin, instructionDirs, instructionNotices, intervalSlots, inventoryProjectExtensions, inventoryTotal, isBlockCode, isCodeModeDeferred, isEmptyRules, isGoalPhase, isNonInteractive, isReadOnlySubCall, isSettingWriteLayer, isTransientPersistFailure, isValidInterval, isValidPluginName, isWithinWindow, isWritableSettingKey, labelSlug, layerRank, listEntryModels, listRunningSchedules, listSessionCandidates, listWorkspaceFiles, loadCommandDefinitions, loadCommandFile, loadCommands, loadConfig, loadHookSources, loadKeybindings, loadLexiconDir, loadLexiconFiles, loadModelEntries, loadPlugins, loadPolicyFiles, loadPolicyRules, loadRoleDefinitions, loadRoleDir, loadedImports, localDateString, managedSwitchNotes, mapClaudeToolName, mapEpochToolName, mapOperationType, matchPreauthorization, matchRuleLists, matchesHook, mentionsPluginRoot, mergeHeadlessPolicy, mergeRoles, mergeSchedulePatch, microsToUsd, modelEntriesPath, modelListCandidates, needsAllowlist, nextRunAt, noConfigOrigins, noManagedPolicy, noPlugins, normalizeModelEntry, normalizeTrigger, offloadOldestImages, openArtifact, originOf, packFileName, packPlugin, parseClaudeSettingsHooks, parseClock, parseDate, parseFrontmatter, parseHooksConfig, parseHooksConfigVerbose, parseImportLine, parseModelEntry, parseModelList, parseRoleDefinition, parseScheduleDraft, parseSkillFrontmatter, parseTrigger, pendingImageTokens, persistFailureCode, persistParts, persistToolResults, persistedUsage, planPack, previewSkillImport, pricingFor, projectEntryForDisplay, pruneArtifacts, pruneAttachments, pruneRecordings, pruneSchedules, readEntryKey, readImageSize, readMarketplaces, readPluginAbout, readPluginIcon, readPluginManifest, readPluginRecords, readRecording, readSessionSurface, reclaimFtsSpace, redactLine, refreshOpenRouterMetadata, removeMarketplace, removeRecordings, removeRoleFile, removeSessionArtifacts, removeSessionAttachments, renderImportTree, renderProjectContext, renderSdkDeclaration, renderSelfIndex, repairSchedules, requestImageBytes, resolveArtifactRetention, resolveCodeModeWorker, resolveComplianceDirs, resolveEntrySource, resolveInWorkspace, resolveMarketplaceRef, resolveMentions, resolveMultimodalPolicy, resolvePolicyDirs, resolvePricingAt, resolveProjectRoot, resolveScheduleBackend, resolveSessionReference, resolveSessionVisibility, resolveSettings, resolveSkillDirs, resolveSource, resolveTar, resolveWorkspace, restoreParts, revealScopedProvider, roleScopedProvider, roleSourceLabel, ruleCovers, ruleFromString, ruleToString, runCode, runCommand, sanitizeArgNames, sanitizeCommand, sanitizeFtsQuery, sanitizePath, sanitizeToolOutput, saveModelEntries, scanInstructions, scanPluginDir, scanSkillDirs, searchMarketplaces, setDisplayCurrency, setImportGate, setPluginEnabled, setTrustGate, settingValueChoices, settingValueKind, settingWriteApply, settingWriteLayers, settingWriteTargets, skillIndexDescription, skillIndexResidency, skillIndexStats, sniffMediaType, splitFrontmatter, staticToolProvider, stripArtifactData, substitutePluginRoot, suggestRuleFromApproval, systemOpenArgv, systemPromptSegments, testModelEntry, toPosix, toolDefinitionTokens, toolMatches, toolTableTokens, totalTokens, traceSession, triggerPeriodMs, unescapeRuleContent, uninstallPlugin, unknownRoleSkills, unknownRoleTools, unloadedInstructionFiles, unsetUserSetting, updateMarketplace, updatePlugin, usdToMicros, validateSchedule, validateTrigger, validateWindow, withGoalCompression, withGoalPrompt, workspaceDisplayPath, writableConfigKeys, writeSettingValue };
23651
+ export { ABOUT_DESC_MAX_CHARS, ABOUT_README_MAX_CHARS, AGENT_ROLE_DIAG_MODULE, ARTIFACT_MAX_TOTAL_BYTES, ARTIFACT_RETENTION_DEFAULTS, ATTACHMENT_MAX_TOTAL_BYTES, ATTACHMENT_RETENTION_DEFAULTS, type AcquireResult, type ActivePlugin, type AgentConfig, AgentInbox, AgentLoop, type AgentProvider, type AgentSite, type AgentSiteRef, AppearanceStore, type AppendMessageInput, ApprovalCache, type ApprovalDecision, type ArtifactOpenRefusal, type ArtifactRetention, type AskQuestionDeps, type AttachmentRetention, BLOCKED_TOOLS, BOARD_TOOL_NAMES, type BackendOptions, type BackendOutcome, type BackgroundTaskSource, type BaseOrigin, type BaseSlot, type BeginTurnInput, type BoardPending, BoardStore, type BoardTarget, type BreakdownInput, BudgetGuard, type BudgetGuardOptions, type BudgetInfo, type BudgetLevel, type BudgetOptions, type BudgetStatus, BudgetStore, type BudgetStoreOptions, type BuildFireArgvInput, type BuildIndexOptions, CHECKPOINT_MAX_TOTAL_BYTES, CLAUDE_EVENT_NAMES, CLAUDE_TOOL_NAMES, CODE_MODE_LIMITS, CODE_MODE_SDK_TAG, CONFIG_KEYS, CURRENT_CONFIG_VERSION, type CachedApproval, type CachedDecision, type CheckpointCapture, type CheckpointFile, CheckpointManager, type CheckpointManagerOptions, type CheckpointManifest, CheckpointStore, type CheckpointStoreOptions, type CheckpointSummary, type ClaudeHooksParseOptions, type CodeModeLimits, type CodeRequest, type CodeResult, CodeSandbox, type CommandHookConfig, type CommandHookResult, type CommandLoadOutcome, type CommandLoadSummary, type CommandResult, type CommandRunner, type CompactionResult, type CompiledRules, type ComplianceDirSpec, type ComplianceDirsSummary, ComplianceEngine, type ComplianceEngineInput, type ComplianceGate, type ComplianceHit, type ComplianceRule, type ComplianceRuleSource, type ComplianceSettings, type ComplianceVerdict, type CompressConfig, type CompressResult, type ConfigKeyEntry, type ConfigKeyKind, type ConfigKeyReason, type ConfigKeyWrite, type ConfigMigration, type ConfigOrigins, type ConfigValueCheck, type ConfigValueProblem, ContextCompressor, type ContextEngine, type CreateScheduleInput, type CreateSessionInput, DEFAULT_COMPLIANCE_ACTIONS, DEFAULT_COMPLIANCE_SETTINGS, DEFAULT_COMPRESSION_THRESHOLD, DEFAULT_GOAL_MAX_ROUNDS, DEFAULT_INBOX_CAPACITY, DEFAULT_MAX_HOLD_CHARS, DEFAULT_MAX_RUNNING_MEMBERS, DEFAULT_MAX_WOKEN_SESSIONS, DELEGATE_SESSION_SOURCE, type DelegateArgs, type DelegateConfig, DelegateManager, type DelegateTaskResult, type DeliveryResult, type DiagnoseOptions, type DiscoverOutcome, type DiscoveredFile, type DoctorReport, type DraftParse, EMPTY_RULES, EPOCH_DISK_LEDGER, type EntryProbeCode, type EntryProbeResult, EpochConfigSchema, type ExpandOptions, type ExtractOutcome, FTS_TABLES, FTS_TRIGGERS, type FallbackEvent, type FileSlots, type FileSourceKind, type ForkInput, type FrontmatterParse, type FrontmatterSplit, type FtsHealth, type FtsReclaim, type FtsSpace, type FtsTableHealth, GOAL_BLOCK_CODES, type GateAxis, type GateVerdict, type GenerateInput, type GenerateOutput, type Goal, type GoalBlockReason, type GoalClear, type GoalPhase, type GoalPromptView, type GoalRefusal, type GoalRoundResult, GoalService, GoalStore, type GoalToolDeps, type GoalWrite, HEADLESS_AUDIT_CODES, type HeadlessPolicy, type HookConfigEntry, HookManager, type HookManagerOptions, type HookMatcher, type HookSourceKind, type HookSourceStatus, type HookSourcesOptions, type HookSourcesSummary, type HooksParseOutcome, type MemoryManager$1 as IMemoryManager, INSTRUCTION_BUDGET_CHARS, INSTRUCTION_FILES, type SessionManager$1 as ISessionManager, type SkillSystem$1 as ISkillSystem, ImageLoadError, type ImageSize, type ImportDecision, type ImportGate, type ImportGoal, type ImportMessage, type ImportNode, type ImportPartsResult, type ImportSessionInput, type ImportSessionMeta, type ImportSessionResult, type ImportSkipReason, type ImportTodo, ImportTrustStore, type InstallDependency, type InstallOptions, type InstallOutcome, type InstallPreview, type InstallStep, type InstructionScan, type InstructionSource, type IsolationReason, type IsolationReport, type JsonSchemaDocument, LAUNCHD_LABEL_PREFIX, LOCK_HEARTBEAT_MS, LOCK_STALE_MS, type LastOpenSession, LastOpenSessions, type LayerOutcome, type LayerScalars, type LayerStatus, type LearningContext, type LearningResult, type LearningSkipReason, type LexiconLoadOutcome, type LifecycleOutcome, type ListCandidatesInput, type ListSessionsInput, type ListSessionsOutput, type LoadCommandsOptions, type LoadConfigOptions, type LoadKeybindingsOptions, type LoadKeybindingsResult, type LoadRolesOptions, type LoadedPlugin, type LockHolder, MARKETPLACE_DISPLAY_FIELDS, MARKETPLACE_FILE, MAX_AUDIT_ENTRIES, MAX_COMMAND_DEPTH, MAX_GOAL_MAX_ROUNDS, MAX_IMPORT_DEPTH, MAX_LAST_OPEN_SESSIONS, MAX_OBJECTIVE_CHARS, MAX_POST_CHARS, MAX_REASON_CHARS, MAX_RECENT_WORKSPACES, MODEL_ENTRIES_FILE, MODEL_GIVE_UP_THRESHOLD, MULTIMODAL_DEFAULTS, type ManagedPolicy, ManagedPolicyError, type ManagedSettings, ManagedSettingsSchema, type MarketplaceCatalog, type MarketplaceCategory, type MarketplaceDisplay, type MarketplaceDisplayField, type MarketplaceEntry, type MarketplaceOutcome, type MarketplaceRecord, type MarketplaceStatus, type MemoryConfig, type MemoryEntry, type MemoryImportRecord, type MemoryImportResult, MemoryManager, type MemoryManagerOptions, type MemoryNotice, type MemoryRemoval, type MemorySearchResult, type MemoryTarget, type MemoryWriteResult, type MentionPart, type MentionResolution, type Message, type MessageHit, type MessageRecord, type MessageSurface, type ModelCapability, ModelFailureTracker, type ModelMetaEntry, type ModelPricing, type MultimodalPolicy, NOMINAL_TOTAL_BYTES, NO_REVEALED_TOOLS, type NonInteractiveProbe, type OsTaskSnapshot, type OutputGuard, PACK_EXCLUDES, PERMISSION_AUDIT_CODES, PLUGIN_ICON_MAX_BYTES, PLUGIN_LAYOUT, PLUGIN_MANIFEST_FILE, PLUGIN_MANIFEST_KEYS, PLUGIN_NAME_PATTERN, PLUGIN_ROOT_ENV, PLUGIN_ROOT_TOKEN, PLUGIN_VISIBILITY, POLICY_DECISIONS, PROBE_VERSION, PROJECT_AGENTS_SUBDIR, PROVIDER_NO_CREDENTIAL, type PackFile, type PackLimits, type PackOutcome, type PackPlan, type PackPlanOutcome, type PermissionAuditCode, type PermissionAuditEntry, type PermissionAuditOutcome, type PermissionAuditScope, type PermissionAuditSnapshot, PermissionManager, type PersistFailureKind, type PersistedBudget, type PersistedPart, type PlanApprovalFn, type PlanEnterResult, type PlanModeDeps, PlanModeState, type PlanSettlement, type PluginAbout, type PluginArtifacts, type PluginAuthor, PluginAuthorSchema, type PluginCommandDir, type PluginCounts, type PluginDoc, type PluginHookFile, type PluginInventory, type PluginLoadOptions, type PluginManifest, type PluginPathRef, type PluginRecord, type PluginScope, type PluginSettingsFile, type PluginSourceType, type PluginStateReadOutcome, PluginStore, type PluginVisibility, type PolicyDirSpec, type PolicyDirsSummary, type PolicyLoadOutcome, type PolicyRule, PolicyRuleSchema, type PricingAt, type PricingOverride, type ProjectContext, type ProjectExtensionInventory, ProviderError, ProviderRouter, type ProviderStreamChunk, type ProviderToolCall$1 as ProviderToolCall, type ProviderWarning, type PruneResult, type QuestionAskFn, RECORDING_KEEP_RUNS, RECORDING_MAX_BYTES, ROLE_FRONTMATTER_SCHEMA, RUN_CODE_TOOL, type ReadMessagesInput, type ReadMessagesOutput, type RecentWorkspace, RecentWorkspaces, type RecordRunInput, type RecorderOptions, type RecoveryAction, type RegisterInput, type RegisterOutcome, type RegistrarOptions, type RegistrationPatch, type RepairOutcome, type ResolveMentionsOptions, type ResolveReferenceInput, type ResolveSettingsOptions, type ResolvedCompression, type ResolvedReference, type ResolvedSource, type ResponseFormat, type RestorePartsOptions, type RewindAction, type RewindDrift, type RewindFilePlan, type RewindOptions, type RewindOutcome, type RewindPreview, type RoleCreateFailure, type RoleCreateInput, type RoleCreateOptions, type RoleCreateOutcome, type RoleLoadOutcome, type RoleLoadSummary, type RoleMergeNotice, type RoleMergeResult, type RoleRemoveFailure, type RoleRemoveOptions, type RoleRemoveOutcome, type RoleScope, type RuleMatch, type RuleSuggestion, type RuleVerdict, type RunCodeFailure, type RunCodeInput, type RunCodeOutcome, type RunCodeToolDeps, type RunEstimateInput, type RunInput, type RunResult, type RunningSchedule, SANDBOX_COVERS, SANDBOX_EXCLUDES, SCALAR_KEYS, SCHEDULE_DEFAULTS, SCHEDULE_DEFAULT_ALLOWLIST, SCHEDULE_ISSUE_CODES, SCHTASKS_FOLDER, SEND_MESSAGE_TOOL, SESSION_MESSAGES_READ_TOOL, SESSION_MESSAGES_SEARCH_TOOL, SESSION_QUERY_TOOLS, SESSION_SEARCH_TOOL, SESSION_TRACE_TOOL, SETTINGS_LAYER_ORDER, SETTING_WRITE_KEYS, SETTING_WRITE_LAYERS, SKILL_ASSET_DIRS, SKILL_CREATE_TOOL, SKILL_EDIT_TOOL, SKILL_FILE, SKILL_PATCH_TOOL, SKILL_VIEW_TOOL, SKILL_WRITE_FILE_TOOL, SLASH_COMMANDS_DIAG_MODULE, type ScalarKey, type ScanInstructionsOptions, type ScheduleArgvRefusal, type ScheduleArgvResult, type ScheduleArgvWarning, type ScheduleBackend, type ScheduleCliEntry, type ScheduleDraftDeps, type ScheduleDrift, type ScheduleDriftKind, type ScheduleImportInput, type ScheduleInstallForm, type ScheduleIssue, type ScheduleIssueCode, type ScheduleLock, ScheduleRecorder, ScheduleRegistrar, ScheduleStore, type ScheduleValidation, type SchemaExport, type SearchHit, type SearchInput, type SearchMessagesInput, type SearchMessagesOutput, type SearchOutput, type SearchSessionsInput, type SelectionDeps, type SelfConnector, type SelfIndexInput, type SelfSettings, type Session, type SessionBridge, type SessionCandidate, type SessionHit, SessionManager, type SessionMentionDeps, type SessionMeta, SessionQueries, SessionReferences, type SessionSearchDeps, type SessionStats, type SessionSurface, type SessionTrace, type SessionVisibility, type SessionVisibilityInput, type SettingApply, type SettingApplyFacts, type SettingChain, type SettingFutile, type SettingLayer, type SettingStep, type SettingValue, type SettingValueKind, type SettingWriteFailure, type SettingWriteKey, type SettingWriteLayer, type SettingWriteOutcome, type SettingWriteRequest, type SettingWriteTarget, type SettingWriteTargetsOptions, type SettingsFile, SettingsFileError, SettingsFileSchema, type SettingsLayer, type SettingsResolution, type ShadowFinding, type ShadowKind, type Skill, type SkillDirSource, type SkillDirSpec, type SkillDirsSummary, type SkillImportConflict, type SkillImportDone, type SkillImportEntry, type SkillImportFailure, type SkillImportForm, type SkillImportOptions, type SkillImportPreview, type SkillImportResult, type SkillIndexEntry, type SkillIndexOptions, type SkillIndexResidency, type SkillIndexStats, SkillLearner, type SkillLearningProvider, type SkillMeta, type SkillStats, SkillSystem, type SkillSystemOptions, type SkillViewDeps, type SkillWriteDeps, type SteerSource, type StoredAppearance, type SubAgentRunner, type SubTask, type SubToolCaller, type SummarizeOutput, type SurfaceMessage, type SystemPromptParams, type SystemPromptSegments, TEAM_TOOL_NAMES, TOOL_SEARCH_TOOL, TaskNoticeTracker, type TeamLimits, TeamRegistry, type TodoItem, type ToggleOutcome, type ToolCall, type ToolConflict, type ToolGate, type ToolNameFidelity, type ToolNameLookup, ToolRegistry, type ToolRevealState, type ToolScope, type ToolSearchDeps, type ToolTableCost, type TraceInput, type TraceNode, TrackerDB, type TrustDecision, type TrustGate, type TrustGateOptions, TrustManager, type TurnRecord, type TurnTiming, UNSETTABLE_USER_KEYS, type UpdateScheduleInput, type UtilityModelInfo, type ValidateScheduleInput, type VersionCheck, Workspace, type WorkspaceFiles, type WorkspaceIssue, type WorkspaceIssueKind, acquireScheduleLock, addMarketplace, addUsage, admitArtifact, admitArtifacts, affectedPaths, approvalEntryFor, approvalRootFor, artifactLaunchArgv, artifactOpenRefusal, assertLevelAllowed, blockedRoleTools, buildContextBreakdown, buildFireArgv, buildFtsMatchQuery, buildSchemaExports, buildSystemPrompt, buildTrigramMatchQuery, builtinRoles, capabilityOfRef, checkConfigValue, checkEpochVersion, checkFtsHealth, checkShadowing, classifyPersistFailure, classifyProviderError, clearModelCache, coalesceRecording, codeModeWorkerPath, commandNameFromRelPath, compileRuleLists, compressionOptions, computeCost, computeCostMicros, computeExecHash, configKeyByPath, configKeyTable, countRules, createAllowAllGate, createAllowAllImportGate, createAskQuestionTool, createBoardTools, createCodeExecTool, createDelegateTool, createDenyAllGate, createDenyAllImportGate, createGoalTool, createImportGate, createMemoryTool, createPlanModeTools, createPluginScope, createRoleFile, createRoleScope, createRunCodeTool, createScheduleDraftTool, createSendMessageTool, createSessionMessagesReadTool, createSessionMessagesSearchTool, createSessionSearchTool, createSessionSearchTools, createSessionTraceTool, createSkillViewTool, createSkillWriteTools, createTeamTools, createTodoTool, createToolRevealState, createToolScope, createToolSearchTool, createTrustGate, currentEpochVersion, decideImport, decideTrust, defaultConfig, describeArtifactRefusal, describeBackgroundTask, describeHeadlessPolicy, describeIsolation, describeJsonError, diagnoseSchedules, discoverMarkdown, discoverModels, discoverProject, discoverySpec, displayAllows, displayCurrency, draftCommandLine, draftWidening, escapeRuleContent, estimateImageTokens, estimateRunTokens, estimateTokens, evaluateSelection, expandCommand, expandImports, explainSetting, extractArchive, findInstructionFiles, findProjectInstructions, findRole, formatBytes, formatSkillIndex, formatUsd, gateForTool, getCapability, getConfigIssues, getConfigOrigins, getImportGate, getTrustGate, grantedPathsFor, hasDedicatedExecContent, hasExecTierContent, hasPromptCaching, hasProviderCredentials, hasReadTierContent, hasUsableModel, imageFromBase64, imageFromPath, imagePartTokens, importParts, importSkills, installPlugin, instructionDirs, instructionNotices, intervalSlots, inventoryProjectExtensions, inventoryTotal, isBlockCode, isCodeModeDeferred, isEmptyRules, isGoalPhase, isNonInteractive, isReadOnlySubCall, isSettingWriteLayer, isTransientPersistFailure, isValidInterval, isValidPluginName, isWithinWindow, isWritableSettingKey, labelSlug, layerRank, listEntryModels, listRunningSchedules, listSessionCandidates, listWorkspaceFiles, loadCommandDefinitions, loadCommandFile, loadCommands, loadConfig, loadHookSources, loadKeybindings, loadLexiconDir, loadLexiconFiles, loadModelEntries, loadPlugins, loadPolicyFiles, loadPolicyRules, loadRoleDefinitions, loadRoleDir, loadedImports, localDateString, managedSwitchNotes, mapClaudeToolName, mapEpochToolName, mapOperationType, matchPreauthorization, matchRuleLists, matchesHook, mentionsPluginRoot, mergeHeadlessPolicy, mergeRoles, mergeSchedulePatch, microsToUsd, modelEntriesPath, modelListCandidates, needsAllowlist, nextRunAt, noConfigOrigins, noManagedPolicy, noPlugins, normalizeModelEntry, normalizeTrigger, offloadOldestImages, openArtifact, originOf, packFileName, packPlugin, parseClaudeSettingsHooks, parseClock, parseDate, parseFrontmatter, parseHooksConfig, parseHooksConfigVerbose, parseImportLine, parseModelEntry, parseModelList, parseRoleDefinition, parseScheduleDraft, parseSkillFrontmatter, parseTrigger, pendingImageTokens, persistFailureCode, persistParts, persistToolResults, persistedUsage, planPack, previewSkillImport, pricingFor, projectEntryForDisplay, pruneArtifacts, pruneAttachments, pruneRecordings, pruneSchedules, readCancelRequest, readEntryKey, readImageSize, readMarketplaces, readPluginAbout, readPluginIcon, readPluginManifest, readPluginRecords, readRecording, readSessionSurface, reclaimFtsSpace, redactLine, refreshOpenRouterMetadata, removeMarketplace, removeRecordings, removeRoleFile, removeSessionArtifacts, removeSessionAttachments, renderImportTree, renderProjectContext, renderSdkDeclaration, renderSelfIndex, repairSchedules, requestImageBytes, requestScheduleCancel, resolveArtifactRetention, resolveCodeModeWorker, resolveComplianceDirs, resolveEntrySource, resolveInWorkspace, resolveMarketplaceRef, resolveMentions, resolveMultimodalPolicy, resolvePolicyDirs, resolvePricingAt, resolveProjectRoot, resolveScheduleBackend, resolveSessionReference, resolveSessionVisibility, resolveSettings, resolveSkillDirs, resolveSource, resolveTar, resolveWorkspace, restoreParts, revealScopedProvider, roleScopedProvider, roleSourceLabel, ruleCovers, ruleFromString, ruleToString, runCode, runCommand, sanitizeArgNames, sanitizeCommand, sanitizeFtsQuery, sanitizePath, sanitizeToolOutput, saveModelEntries, scanInstructions, scanPluginDir, scanSkillDirs, searchMarketplaces, setDisplayCurrency, setImportGate, setPluginEnabled, setTrustGate, settingValueChoices, settingValueKind, settingWriteApply, settingWriteLayers, settingWriteTargets, skillIndexDescription, skillIndexResidency, skillIndexStats, sniffMediaType, splitFrontmatter, staticToolProvider, stripArtifactData, substitutePluginRoot, suggestRuleFromApproval, systemOpenArgv, systemPromptSegments, testModelEntry, toPosix, toolDefinitionTokens, toolMatches, toolTableTokens, totalTokens, traceSession, triggerPeriodMs, unescapeRuleContent, uninstallPlugin, unknownRoleSkills, unknownRoleTools, unloadedInstructionFiles, unsetUserSetting, updateMarketplace, updatePlugin, usdToMicros, validateSchedule, validateTrigger, validateWindow, withGoalCompression, withGoalPrompt, workspaceDisplayPath, writableConfigKeys, writeSettingValue };