blob: 5cba8f25fec65a6c839c725b5c950bb64a4b8bcb [file] [view]
<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements. See the NOTICE file
distributed with this work for additional information
regarding copyright ownership. The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License. You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the License for the
specific language governing permissions and limitations
under the License.
-->
# maka-workspace-api
[English](README.md)
定义工作区文件、进程、终端、协议进程和 Jev 的共用契约。原生提供方与开发工具使用相同声明。请求路径和工作区标识用于描述选择;提供方仍需检查实际绑定目录和调用权限。
`Files.readText` 在调用方原始 invocation 权限内读取工作区文本、Session 附件及归档工具结果,接受返回的完整 `next` 对象续读;地址不授予跨 Session 访问权限。Agent 工具描述使用选定工具的实际名称说明这项能力。`readImage` 不读取工具结果归档。
Terminal 契约提供 `readOutput` 和 `watchOutput`,完整保留原 live resource 的有序 PTY 字节(Base64)及原生尺寸变化。相邻 Data 在 64 KiB 编码后订阅 Item 预算内合并(扣除封装及 Base64 开销后约 48 KiB 原始字节),资源持有期间保留全部事件。Data 的序号是最后一个已消费原始记录的游标,因此可跳号;每个 Resize 仍单独交付。`after` 必须与原始目标一起保留;已交付批次内部的原始游标也仍指向准确的后续字节。新 parser 直接订阅 `watchOutput(after: 0)`,按首个保留事件的 `initialSize` 初始化一次,再依序处理全部 Data/Resize;状态完整的 parser 可从已知序号继续。已取得的 reader 可在 worker 退休后排完数据,但退休或 Host 重启后的新接入返回 `Unavailable`;先前的 `readOutput` 不为后续请求保活。真实 replay I/O 错误使调用失败。保留的显示画面和纯文本屏幕都不是 parser checkpoint。`Closed` 只表示字节源关闭,不代表进程清理已确认。输出观察需要显式方法权限,不需要控制器。
对于已结束的 PTY,`readDisplay` 是传输单个持久化 revision 的有限订阅:`begin` 提供尺寸、光标、调色板和输入模式元数据,按序的 `rows` 提供带样式的物理单元格,`end` 表示画面传输完成。`begin` 和 `rows` 作为流条目发送,唯一的 `end` 作为订阅的最终成功结果返回。接收方应暂存分片,仅在 `end` 后整体替换画面;未完成或已取消的传输直接丢弃。Desktop 在 `watchOutput` 返回 `Unavailable` 后使用它,保留退休及 Host 重启后的颜色和彩色空格,且不会从这些单元格继续原始 parser。`read`/`watch` 仍提供有界的纯文本模型预览,与显示保留量独立。
原生历史按 800,000 个单元格保留(80 列时为 10,000 行),在缩放重排前调整额度。尺寸允许 2–1,024 列、1–1,024 行,可见单元格总数不超过 65,536。编码后的显示数据优先保留当前和上次备用屏幕,再在 64 MiB 内保留最新的完整历史行;省略历史时标记 truncated。这替代了旧的 500 行及整条记录 4 MiB 限制。已有纯文本终端记录执行一次性迁移,保留已知文字并使用默认样式;过去已丢失的颜色无法恢复。资源策略见[显示类型](../../agent/facts/src/terminal/display.rs)和[原生尺寸](../../agent/facts/src/terminal.rs)。
[源码](src/lib.rs) · [Cargo 配置](Cargo.toml)