计算机@fungi.computer/computer(中文(简体) )
一个真菌电脑是代理的持久工作空间:在SQLite内的文件 持久对象, 后面有 Linux 容器或工人内壳以运行 命令、进程和端口。 牡蛎的独立主机运行一个;真菌枢纽 由团队授权,能力和计费组成.
安装
把它安装在牡蛎旁边,它的榜样 wrangler.jsonc 构建计算机
此包件的容器 Dockerfile数字 :
npm install @fungi.computer/oyster @fungi.computer/computer
这个 牡蛎读取器 都部署好了 这个 运行时间本身并不拥有团队角色或计费.
文件与操作结果
计算机DO 组成维护的 Cloudflare 工作空间和 SQLite供应商. 文件属于那个工作空间,而不是运行中的 shell 进程. 一个读取的文件可以在没有可用的执行后端的情况下工作.
业务合同在他们自己的包裹, 声明发现, 边框文件读取/写入, 目录, 命令执行, 工艺和港口接触。 这个 文件适配器 执行 同一读取和比较/替换代理工具合同。 封锁失败, 内容相冲突,保留端口仍然是明显的错误.
执行请求带有重放密钥 。 这个 操作记录 接受不可改变的输入 保留其结果。 重复键读取相同的操作而不是 默然以不同内容再起. 接受、运行、解决 和不确定的结果是不同的。 一个不确定的结果是不成功的 命令或证明没有发生副作用.
"工作空间"具有权威性. 文件保存推到主机运行时间 已运行,并首先读取文件。 当一个终端 电脑推后每三秒拉一拉 打开终端 档案之间保持相近,双方不相等. A 类 停止运行时间永远不会被唤醒以同步; 它通过自己的推/拉追赶 其下一个命令或终端附件的括号。 同步失败待处理 图书馆自己的光标,对下次同步感到不满,所以它永远不会失败 触发它的文件操作 。 没有合并: 每个路径都取上一条 应用了版本。 在两个同步解析之间编辑到两边相同的路径 到工作空间的版本, 因为循环在拉出前推出。 A 类 比较和替换先保存拉出,所以更新的终端编辑表面为 诚实冲突而不是沉默地覆盖,而盲文仍然 覆盖容器的副本.
选择执行后端
后端路由 拥有这些选择 :
| 运行 | 路线 |
|---|---|
exec 没有后端ID | 内建工壳. |
bash,或执行后端命名 | 被命名的后端,或者在平台容器前的盒上VMs之前在线本地文件夹. 附加顺序断开链接 . |
| 终端、流程和端口 | 仅主机后端. 本地文件夹无法为这些操作服务 . |
一个清晰的不可用后端从不默默地倒下. 无法使用
后端, 执行返回 no_backend 或者说 backend_unavailable; 工作空间
文件仍分开。 后端列表被限定,ID是独一无二的.
本地后端 通过成员的设备键连接 收听和拨号插座。 文件与所附文件夹同步 。 命令运行 与成员OS访问. 在线 VM 支持 调整一个 工作空间后端接口的注册主机。 平台容器使用 维护Cloudflare集装箱后端。 既不是后端标签也不是绿色 容器固定装置证明安装的VM主机或生产路线.
本地拨号验证将 Seam 的重新播放端口连接到现有的 计算机持久对象的 SQLite 数据库. 那个数据库是接收器 名称空间跨越重建, 由其附带的设备共享; 非ce身份 里面是无头的。 一次本地交易只严格过期 记录,拒绝复制或私人4 096个记录上限,并承付 在录取成功前没有。 共有包容性保留期限; 复制品永远不更新 能力永远不驱逐活的历史。 储存 失败在没有进程-当地倒退的情况下拒绝承认。 附录, 设备钥匙、签名、观众和撤销权限保持不变.
createLocalBackendReplayStore(owner) 导出为另一个本地本地拨号
使用自己的SQLite所有者,包括Team机器链接的接收器
接收器。 呼叫者拥有针头,观众,会员和吊销;这家店
拥有的只有原子,有界非子保留. 它既不创建计算机,也不创建
共享不同数据库的非记录历史.
test:unit 包括 machine-link-reopen-replay 证明: 两个物理节点
进程对相同的 SQLite 文件调用实际的本地数字验证符。 这个
证明重建进程重放拒绝, 而非完整的 HTTP/ WebSocket
路线、部署的主机或容器健康接收.
工艺、端口和寿命
启动需要主机拥有的不透明 requestId 财务报告和审定财务报表 requestScope外加一个
命令、可选工作目录和可选声明的端口。 在这个范围内
计算机,相同的范围/键和不可变的输入返回所保留的流程;
更改输入冲突。 重放保护持续到进程记录
保留(最多64个记录,16个在运行) 每个主机范围) (中文(简体) ). 另一个范围
无法消耗这些插槽或取消其再播放保护 。 一旦这个瞄准镜是自己的
历史驱出一个已退出的记录,其密钥可以启动一个新的进程;必须呼叫者
不将已退休的命令重试为新工作 。 清单列报列出最新
整个计算机的64个记录;保留下来的记录可以超过读取窗口. A 类
保留重放从不启动另一个命令, 也不再为后端出靴子 。 运行
接收重放为 uncertain;活性读取验证执行. 发送失败
保留退出的收据.
App 主机从安装、 方法和成员/ 角色获得范围, 单独
从未变的不透明引用密钥。 帮手用的是清晰的JSON
拖动并给呼叫者贴上标签 member:<id>, (中文(简体) ), agent:<id> 或者说 team-key:<id>一个
方法引用允许宣布一个开始:相同的输入是重试,
不同的输入冲突。 信任的 App HTTP 路由只取被封存的主机
方法标签和来源 安装和成员从其认可的本金;
任意请求Scope无效。 原生模型能力输入只有
command/cwd/port; 公共调用薄荷薄荷,即它自己的本地工具范围/钥匙。 范围字符串
是重放身份,不是赠款.
在一个 SQLite 中记录进程和新建的端口曝光
交易。 流程行携带 port (单位:千美元)null 那时没有人被宣布。 一个
观察到的退出或拒绝的发件只去除该过程的曝光;手动
暴露依然存在,包括明确的人工再暴露。 请求/框架
在主机发送后取消不取消计算机拥有的工作.
流程清单 保留所有者签发的身份 并报告运行、退出或不确定状态。 工人重建和 后端终止是不同的事件. 可到达的后端可以保留 整个工人重建过程;睡眠后端或停止后端不 保持这个过程.
普通命令执行限为10分钟. 长期工作用途
处理操作 : start_process 解析没有运行时间限制的命令
(它住在电脑的醒窗内), process_logs 读取其保留
输出尾端, wait_process 等待一个约束 离开,和 kill_process
别闹了 港口接触是明确和有界限的。 8080和7681号港口属于
计算机控制/ 终端守护进程, 并且不能成为应用程序预览 。 灵枢
拥有预览录入和 URL; 此运行时间不会暴露任意的计算机
控制浏览器的端点.
集装箱政策 配置闲置睡眠与尊重
HOSTED_COMPUTERS。无效的暂停设置失败。 网络访问如下
(b) 内装容器和
上框主机适配器是单独的配置路径.
车队合同
节点工具和浏览器消费者可以导入赠款/事实计划和类型
从 @fungi.computer/computer/fleet/wire,以及来自
@fungi.computer/computer/backing。这些条目不装入工人运行时间
声明。 这个 ./fleet 生命周期和主计算机条目需要主机
跑步时间的"云花岗工人"类型.
装满的陌生人检查 练习这些节点安全条目 和Egress 运行时间关闭后冷安装后帮助者 。 叉子的同伴检查 解析计算机图像使用 Acorn 的已发布 shell-moule 组 并检查他们的申报。 既不检查启动计算机,也不执行 工人外壳,或在节点类型中限定工人/工作空间/Git SDK 环境.
@fungi.computer/computer/fleet 拥有主机中性赠款检查, 备份
记录和事实合同。 某主机验证其呼叫器和供应a
ComputerGrant: 一台计算机,明确动作,过期,可选主机所有
入侵数据,加上不透明的演员/召集人来源. checkComputerGrant
返回时 admitted 或者说 Refused赠款没有规定有偿使用预算。 打电话的
每个命令超时仍然是操作执行的命令参数
执行者。 中心信贷执行仍由现有供资/未供资
入学和 creditChanged ——信用-发布重申/停止路径.
createFleetBacking 接受维护的 SQLite 拥有者。 创建记录 a
一次简单的支持决定 明确的机队违约和计算机覆盖
; 本地附件继续重放身份、 角色所有权和
拆分取消 。 变异返回完成后端预测而不是
调用主机或发送消息。 组合主机可以包括呼叫
和在SQLite交易中进行耐用发包箱。 它的部署选择
提供了支援类型;舰队从不重读部署配置.
ComputerFact 描述进程退出、文件写入、 egress、 生命周期和
运行时间间隔观测带出处。 CPU 时间在
无量相. 主持人阅读了这些记录并拥有和解和交付.
特定主机的Egress数据由主机解码;机队合同携带
JSON数据不导入主机政策.
机队还拥有库存/重播收据,跑道存储,跑道时间
和本土生命周期活动/回收。 入库时间:
主机:在为新创建提供资金之前检查已有的创建收据.
槽容量是明确的基础设施投入;赠款没有使用上限.
FleetLifecycle.run 在本地执行前, 检查由主机发放的启动补助金 .
宿主消耗返回的保留/诊断事实和
ComputerRuntimeUsage.pendingFacts 间隔事实;它拥有信用变化,
(原始内容存档于2019-03-21) (英语). uses delivement, Looking, and Team Git. 承认保留现有
运行时的检查站身份,只有在交货后才会出现。 运输活动,
闲眠,而VM再生测序保留了现有的跑时行为. 这个
中心记录的创建支持其公开的计算机
初始化; 舰队从不产生缺失的记录 读取.
中心将每项现有资源决定作为申请的赠款 文件或执行权限. 它带有存储的决定的过期和 演员/随从身份。 本地接收仍然在重新检查当前枢纽 (b) 赠款从不通过该支票进行缓存。 这个 枢纽项目将事实计入其现有用途 改变计费或信用停止行为.
存储器架构测试拒绝从此运行时间向上导入 Apps, Billing, Broker 或 Team/Plan 模块,包括类型和动态导入.
图像和构建投入
这个 粘贴文件 以被钉住的节点构建Linux环境, pnpm, Git, FUSE 支持和被捆绑的计算机. 内容 集装箱清单 拥有 PTY 和运行时间 依赖性. 电脑动画 计算机监督 和终端服务器。 初始化在放弃权限前挂载 图像删除 setuid/ setgid 帮助器。 终端外壳资产位于 集装箱/终端资产。 。 。 .
这个 饲料依赖固定剂 描述一个 离线依赖层及其确切来源显示。 这是可复制的 构建固定器,而不是另一个运行时软件包或生成输出的证据 被保存在一个主机计算机。 不将其临时输出复制到源代码 .
证明和参考
软件包.json 宣布私人入境点 . 财务报告和审定财务报表 ./files, (中文(简体) ),
./backing, (中文(简体) ), ./host-config。行动计划来自
@fungi.computer/computer-contract。 。 。 . 运行时间证明
检查本地的工作空间操作和重建.
进程证明 对照
真正的集装箱. 终端证明, (中文(简体) ),
资源证明 财务报告和审定财务报表
后端测试 掩护他们
边框。 夜行证与常相分出
软件包测试。 单凭本地证据,无法对生产或电池/盒装进行定性
部署.
命令后工作空间运输
计算机的远程后端适配器观测到后端的闭合
信号和分类失败的 RPC 调用和流为传输失败
理解为 @cloudflare/computer它不检查例外文本。 这个
库保留其现有的单重连接绑定并完成后命令
同一时间拉倒 适配器添加不重试回环, 绝不重放
命令不确定, 并留待同步失败 。 公共消费者
使用未标注的依赖. node --test test/workspace-sync.test.mjs
安装工作空间运行时间和 SQLite 文件系统的练习,包括
持久文件字节、持续失败、域失败、运行时间替换
和不确定的派遣.
端口预览
@fungi.computer/computer/preview 拥有绑定、签名的预览票和
服务 - 相对路线。 主机提供其选择的解码器,主机名
政策和现场录用回调。 开放端口上市的录用程序
并提交验收点;罚单绝不是赠款。 枢纽保留其
本地 App 投影和已签名的 ticket 主机名配置 .
贡献
使用配置的寄存器检出,并使用被绑定的节点和pnpm工具. 运行 从寄存器根 :
pnpm turbo:run run build [email protected]/computer
pnpm --filter @fungi.computer/computer typecheck
pnpm --filter @fungi.computer/computer lint
pnpm turbo:run run test [email protected]/computer
该建筑释放运行时间并复制其守护进程/ 构建资产 。 测试图
在本地工人开始前组装和构建本地容器图像
检查。 Docker 拥有其地层缓存; 图像构建有单独的边框
验证寿命,所以冷编译不会消耗工人的响应
截止日期。 在直接引用本地测试文件前, 运行
pnpm turbo:run run build:container [email protected]/computer。 。 。 .
测试套间使用一次性工人和证明容器,所以容器证明 需要工作的地方多克/工人环境。 这些命令不部署 a Hub,发布一个App或替换一个生产计算机图像.
麻省理工学院. 见 LICENSE。 。 。 .