@epoch-agent/protocol 0.1.0 → 0.3.1
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 +38 -34
- package/dist/index.d.ts +3610 -152
- package/dist/index.js +551 -105
- package/package.json +4 -2
package/README.md
CHANGED
|
@@ -14,40 +14,44 @@
|
|
|
14
14
|
|
|
15
15
|
## 文件
|
|
16
16
|
|
|
17
|
-
| 文件
|
|
18
|
-
|
|
|
19
|
-
| `tool.ts`
|
|
20
|
-
| `plugin.ts`
|
|
21
|
-
| `events.ts`
|
|
22
|
-
| `usage.ts`
|
|
23
|
-
| `message.ts`
|
|
24
|
-
| `permission.ts`
|
|
25
|
-
| `plan.ts`
|
|
26
|
-
| `question.ts`
|
|
27
|
-
| `hook.ts`
|
|
28
|
-
| `config.ts`
|
|
29
|
-
| `
|
|
30
|
-
| `
|
|
31
|
-
| `
|
|
32
|
-
| `
|
|
33
|
-
| `
|
|
34
|
-
| `
|
|
35
|
-
| `
|
|
36
|
-
| `
|
|
37
|
-
| `
|
|
38
|
-
| `
|
|
39
|
-
| `
|
|
40
|
-
| `
|
|
41
|
-
| `
|
|
42
|
-
| `
|
|
43
|
-
| `
|
|
44
|
-
| `
|
|
45
|
-
| `
|
|
46
|
-
| `
|
|
47
|
-
| `wire
|
|
48
|
-
| `wire-
|
|
49
|
-
| `wire-
|
|
50
|
-
| `
|
|
17
|
+
| 文件 | 内容 |
|
|
18
|
+
| ----------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
|
|
19
|
+
| `tool.ts` | `EpochTool` / `ToolContext` / `ToolResult` / `ToolExposure` |
|
|
20
|
+
| `plugin.ts` | `EpochPlugin` —— 第三方加工具的唯一入口 |
|
|
21
|
+
| `events.ts` | `AgentEvent` 判别联合 —— 引擎与所有宿主之间的事件契约、`TokenUsage` |
|
|
22
|
+
| `usage.ts` | `TokenUsage` 的口径算术 + **压缩那条线**(`compressionThresholdTokens`) |
|
|
23
|
+
| `message.ts` | `EpochMessage` 及其内容块(文本 / 图片 / `@` 提到的文件 / `@:` 引用的会话)。加第五种部件时 `assertNeverPart` 会让漏掉的分支在编译期红 |
|
|
24
|
+
| `permission.ts` | 5 级权限、操作类型、审批请求 / 应答、`PermissionManager` 接口 |
|
|
25
|
+
| `plan.ts` | plan **模式**(临时只读区间,出口要人批一次)—— 与 `plan` 那个权限级别的口径 |
|
|
26
|
+
| `question.ts` | 结构化提问的请求 / 答复(**不过权限层** —— 提问不是审批) |
|
|
27
|
+
| `hook.ts` | Hook 类型与 trigger |
|
|
28
|
+
| `config.ts` | 配置形状 |
|
|
29
|
+
| `sidebar-menu.ts` | 宿主自定义的那几行侧栏菜单:一项长什么样,以及点下去那条 `postMessage` 的 `type`。**只有 Web UI 读它**,但契约得住这儿(`EpochConfig` 和 `WireConfigResponse` 都引它) |
|
|
30
|
+
| `context.ts` | 上下文预算的构成(`/context` 那张账目:每一段花了多少) |
|
|
31
|
+
| `task.ts` | 后台任务的形状(宿主要展示它们:状态栏计数、`/tasks`、Web 那一栏) |
|
|
32
|
+
| `keybindings.ts` | 键位的**值域**(动作全集 + `KeyChord` + 与 `"ctrl+l"` 写法互转)。默认表在 tui |
|
|
33
|
+
| `i18n.ts` | 界面语言的值域(`Lang` / `LANGS` / `DEFAULT_LANG`)—— **封闭的两个值**;外加 API URL 上那个 `WIRE_LANG_PARAM`(方案 58)。**2026-08-22 起还有纯查表**(`makeTranslate` / `flattenCatalog` / `placeholdersOf`,方案 40 PR-2)—— 消费方是 tui 和 web,它们俩连 infra 都不许依赖。分界是「有没有 I/O 和状态」:读盘和进程语言仍在 infra |
|
|
34
|
+
| `model-ref.ts` | `<provider>/<model>` 的解析 |
|
|
35
|
+
| `agent-role.ts` | 子 agent 角色(`delegate_task` 的 role 取值) |
|
|
36
|
+
| `commands.ts` | 自定义斜杠命令的定义 / 展开结果 / 内置命令保留名单 |
|
|
37
|
+
| `mentions.ts` | `@` 提及的抽取规则:`@路径`(文件)和 `@:xxx`(会话,方案 53)**走同一条正则**。TUI 和引擎共用一份,两边写岔了会静默错位 |
|
|
38
|
+
| `system-note.ts` | 「这条 `user` 消息其实是系统在说话」那个前缀 + 拼 / 剥两个函数。**四处共用,且必须逐字节相同**,理由在它的文件头 |
|
|
39
|
+
| `secret.ts` | 凭据存储后端的接口 |
|
|
40
|
+
| `trust.ts` | 工作区信任的判定结果 |
|
|
41
|
+
| `schedule.ts` | 定时任务:三档触发器(判别联合)、一条任务 / 一次运行的形状、欠条、宿主注入点 |
|
|
42
|
+
| `schedule-templates.ts` | 内置模板六张(方案 45 §7.3)。**纯数据、零判定、一个中文字都没有** —— 措辞在 web 那份 catalog 里。为什么住在 protocol 而不是「core 一份 + 这儿抄一份」,判据在它的文件头 |
|
|
43
|
+
| `schedule-pending.ts` | 「还欠着的那几张欠条」那份投影 + `unfixedRules()`。**那个集合运算落地前在仓库里有三份**(server / cli / 假服务端),而它是提权路径上的判定 |
|
|
44
|
+
| `diagnostics.ts` | 启动诊断(`DiagnosticSink`,`epoch doctor` 打的就是这些)。`detail` 收 `string \| LocalizedDetail` —— 后者能按语言重放,`toList(lang)` 是那条路 |
|
|
45
|
+
| `telemetry.ts` | `Telemetry` / `SpanLike` / GenAI 语义约定常量 / `NOOP_TELEMETRY` |
|
|
46
|
+
| `artifact.ts` | 大块工具输出的落盘引用 |
|
|
47
|
+
| `wire.ts` | 线上的信封(`WireEnvelope` / `WireHubEvent` / `WireAuthGuard`) |
|
|
48
|
+
| `wire-rest.ts` | Web UI 的 REST 载荷(`Wire*Response`)与鉴权常量 |
|
|
49
|
+
| `wire-capability.ts` | 能力页那一个端点的载荷。**单开一个文件**是因为 `wire-rest.ts` 已经 788 行 |
|
|
50
|
+
| `wire-security.ts` | 安全中心那五块。**全是读** —— 一个写字段都没有,判据在它的文件头 |
|
|
51
|
+
| `wire-permission.ts` | 改**这个会话此刻**的权限档那一对(决定 20 ③)。和上一行不是一回事,见下 |
|
|
52
|
+
| `wire-settings.ts` | 设置页:每一项赢在哪一层 + 能写进哪几层。见下面「设置那一份」 |
|
|
53
|
+
| `wire-goal.ts` | 目标那一格(方案 52 PR-4):四态 + `blocked` 两字段 + 界面要而库里没有的那四把尺子。⚠️ `WireGoalPhase` / `WireGoalRefusal` 是 **core 那两个联合的镜像**(web 够不着 core),逐项相等由 `core/__tests__/goal-wire.test.ts` 钉着;写那条路上**表达不出 `blocked`**,判据在它的文件头 |
|
|
54
|
+
| `headless-wire.ts` | 程序驱动 `epoch` 时 stdin / stdout 的形状(`init` / `result` + 五个入站事件) |
|
|
51
55
|
|
|
52
56
|
> **第三方要接这套 wire 自己做前端**:这几个文件就是契约,直接 `import type`,
|
|
53
57
|
> 别照着文档抄(文档会过期,类型不会)。接法见
|