@ aurigax-ai/ 有线
用于进程外长期活动的状态图表解释器: 编码代理, 人类的问题,命令和等待。 图形是节点、边缘和打入的 YAML 文件 状态。 每一步都写到一个日记上,所以运行在重启后存活:等待的节点 被再次取出 一个被切断的节点 重新开始或等待人类的选择.
这是Graphs特性背后的引擎 奥斯提亚,以及
它作为命令或图书馆独立运行。 最高为0.1.1,公布日期为
@aurigax-ai/graph。 。 。 .
安装
pnpm add @aurigax-ai/wire
节点22或后.
命令
wire validate review.yaml
wire explain review.yaml
wire dry-run review.yaml --input task="fix the total" --mock review='{"verdict":"pass"}'
wire run review.yaml --input task="fix the total"
wire show <run> --data .wire/runs
schema 打印图表文件的 JSON Schema 并 nodes 列出无头主机的节点类型
运行. run 保持它的运行 .wire/runs 在当前文件夹中 (--data <dir> - 改变它),和 show 读他们与 --data。 。 。 .
无头主机运行 command, (中文(简体) ), router, (中文(简体) ), wait 财务报告和审定财务报表 notify 节点; 需要代理或
人类是拥有他们的宿主的.
图表运行时间
wire runtime 每个用户有一个长期运行的过程,显示为 wire-runtime,客户到达
超过 Unix 套接字( JSON- RPC 2. 0 与 Content-Length 框架;方法、权利和错误
内 合同d) (中文(简体) ). 它的数据在 $XDG_STATE_HOME/wire (主要内容)
~/Library/Application Support/wire及其插座在 $XDG_RUNTIME_DIR/wire; 每个数据运行一次
文件夹.
wire runtime start # runs while a client is open, then exits 60 s after the last one leaves
wire runtime start --daemon # keeps running with no client until it is stopped
wire runtime status # whether it runs, its pid, version and mode
wire runtime stop # lets started steps reach their next journal line, then exits
wire runtime tokens revoke <client>
在一个文件夹里, wire list 显示运行时间的图表, wire start <name> 启动一个
手动触发的已启用图 agents: true, (中文(简体) ), wire runs 列出文件夹的运行和
wire show <run> 以节点打印一个节点; 当没有运行时, 每个节点开始运行时间。 一个文件夹是
运行时间范围( e)dir:<real path>),以注册客户为准. CLI从来不允许
图表:该权利属于一个提供自身标志并询问其人的宿主,a
更改为外部的图表 ui 再次禁用它 .
Ostia 这样的主机会自己写一个符号文件 provisionToken 在开始或连接之前
至运行时间(套接字上无一对,因此持有 CLI 标志的代理无法提升)
(d) 作为需要的节点种类的工人:代理人、批准、,
通知、连接器和命令. serveKinds 从
@aurigax-ai/wire 回答运行时间 worker.task 带有普通节点类型的请求。 一个步骤
他们的同类,没有工作者 pending 没有超时运行, 并开始
当一个工人登记的时候,一个工人离开的台阶,将在下一个台阶上重新排列.
运行时点火每个启用的图的触发器本身: 调度表,文件在文件夹中更改, 以及命令和代理活动,一旦每个客户端都连接了,它的主机就推了起来.
要保持它横跨登录, 在放出自己的两个文件后安装一个文件
在其中,它运行的节点(节点)command -v node)和包裹的 dist/cli/bin.js
(单位:千美元)node -p "require.resolve('@aurigax-ai/wire/package.json').replace('package.json', 'dist/cli/bin.js')"
一个版本管理器的shim还不够,因为一个服务没有外壳:
文件/系统/线上运行时间 输入
~/.config/systemd/user/ (单位:千美元)systemctl --user enable --now wire-runtime),或
docs/launchd/com.aurigax.wire-runtime.plist 页面存档备份,存于互联网档案馆 输入
~/Library/LaunchAgents/ (单位:千美元)launchctl load) (中文(简体) ). 两个都跑 wire runtime start --daemon --foreground
并在失败时重新启动。 运行时间所信任的 以及它不能抵御的
警卫。 。 。 .
图表
version: 1
description: Run the tests, and ask before opening the pull request.
on: [{ manual: {} }]
start: test
state:
exit: { type: integer, default: -1 }
nodes:
- { id: test, kind: command, timeout: 10m, with: { run: [pnpm, test] }, out: { exit: exit } }
- { id: ask, kind: approval, with: { question: "Tests passed. Open the pull request?" } }
- { id: open, kind: command, with: { run: [gh, pr, create, --fill] } }
edges:
- from: test
when: [{ if: "state.exit == 0", to: ask }]
else: end
- { from: ask, to: open }
条件为CEL(state.exit == 0, (中文(简体) ), 'bug' in state.labels, (中文(简体) ),
run.visits.fix >= 3),对照宣布的国家进行解析和检查;它们从未被评价为
代码。 模板( E){{state.task}})从所出所出所出所出所出所出所出所出所出所出所出所出所出所出. fixtures/ 持有三
完整实例.
触发器
从下面的触发器开始一个图 on数字 : manual, (中文(简体) ), schedule (单位:千美元)every: 15m 或五地间
cron,与 catchUp 当主机关闭时,运行一次, files (胶片)
相对于工作空间文件夹),, command (结束的命令,由 exit和 agent (代理人)
那个 stopped 或为 waiting) (中文(简体) ). 引擎读到: TriggerScheduler 将时间表保存在
主持人的时钟, firedBy 说明哪个事件引发起火,用什么有效载荷起火(trigger.* 内
(图),以及 PathBatch 将文件在秒内修改成一个事件。 东道主
监视文件、命令和代理; concurrency: skip 或者说 queue 决定当
a 运行仍在活动。 无头命令运行 manual 只有这个.
连接器
A 类 connector 节点叫外面的东西: use: mcp:<server>/<tool> 调用 MCP 工具
服务器主机已经设置,以及 use: <connector>.<operation> 呼叫本地连接器。 内容
产出为 ok 财务报告和审定财务报表 data (关于MCP, text 当工具返回时, structured; 失败
筹集 ConnectorFailed图表名称 a connection 只有名称: 主机保持连接
字段和秘密,并把它们交给连接器进行一个呼叫,所以文件永远没有秘密.
一个本土连接器是 http。它的连接持有基址(没有用户名或
密码 ) 和 认证 (bearer, (中文(简体) ), header 或者说 basic; 节点给出 method, (中文(简体) ), path, (中文(简体) ), query
和一个JSON body。路径保留在基址下: a .. 分段,原始或百分比编码,a
被编码的斜线或后斜线被拒绝,转回到另一个源头或基地外也被拒绝
路径。 超过 1 MiB 的响应失败了节点,30 s 后呼叫停止. 田间或秘密
在发送任何信息之前拒绝控制字符, 并用固定键报告失败
消息 (http: timeout after 30 s, (中文(简体) ), http: connection refused, (中文(简体) ), http: request failed,... ),从来没有
网络库本身的文本,所以一个秘密无法通过错误到达运行的日志. GET
是一个读取和所有其他写作方法
(单位:千美元)connectorUses 告诉一个主办方. connectorProblems 检查图表
与主机的连接器和连接 connectorCatalog 列出它们时没有 URL 或
暗号.
作为图书馆
一个主机会给发动机它的节点类型,一个时钟和一个通知方式;发动机会保持运行.
import { Engine, FileJournalStore, commandNode, readGraphFile, realClock } from '@aurigax-ai/wire'
const engine = new Engine({
host: { name: 'my-host', contract: 1, kinds: [commandNode(runner)], triggers: ['manual'],
clock: realClock, notify: (notice) => console.log(notice.title) },
store: new FileJournalStore('runs', () => Date.now()),
changed: () => {},
})
节点类型返回 done 输出或 waiting 以它所等待的(偶像)盟誓,
财务报告和审定财务报表 resume 当事件到达时完成它, 也是在重启之后. @aurigax-ai/wire/testing
有假钟,假代理和批准种类 contractFailures,套房的宿主种类
一定要通过.
运行由 a 保存 JournalStore他们的每一个方法都带来承诺: FileJournalStore (一个)
每行文件夹,每行在运行前写出并同步)和 MemoryJournalStore
(测试). 跑跑的一行是在商店里 之前它记录的步骤开始。 又一张店牌
journalStoreFailures 从 @aurigax-ai/wire/testing 当它不返回失败时; 给它 tear
财务报告和审定财务报表 break 当商店可能失去一行的尾巴或拒绝写作,所以这些也会被检查.
engine.start 一旦运行在商店中(journal-failed 当它不能被创造的时候;
engine.recover 财务报告和审定财务报表 engine.summaries 还原承诺.
许可证
FSL-1.1-MIT 导弹(原始内容存档于2018-03-21) (英语). :Source offers now, MIT 在每次发布两年后.