@ arxo/ law
问被钉被子被闭. 得到答案,证据和三 谁都能重播. 警棍是法律,标准或规则书 编译为软件包; 引擎在WebAssembly在本地运行, 离线于 安装,每台机器都有字节相同的答案.
快速启动 • 妇女 如何运作 • 妇女 问 题 • 妇女 事实 • 妇女 答复 • 妇女 到处跑 • 妇女 软件包 • 妇女 加农斯 • 妇女 API 密码
快速启动
npm i @arxo/[email protected] @arxo/[email protected]
14天时间从2026年3月7日星期六开始活动. 什么时候 (《德国民法典》第187、188、193条)
import { open } from '@arxo/law';
const bgb = await open('[email protected]', { offline: true });
const end = await bgb.collect('frist_ende', ['frist', '?end'], {
legalTime: '2026-09-17', timezone: 'Europe/Berlin',
decisionTime: '2026-09-17T09:00:00Z', knowledgeTime: '2026-09-17T09:00:00Z',
deadlinePolicy: 'urn:de:corpus:clir:bgb-fristen#BGB_FRISTEN_TAG',
answers: [{ predicate: 'frist_ereignis', args: ['frist', '2026-03-07'] },
{ predicate: 'frist_dauer_tage', args: ['frist', '14 calendar_day'] },
],
});
产出——通过这个确切的电话制作,并检查每个建筑物。 十四岁 从3月7日登陆到3月21日星期六,所以第193节将结束移至 下一个工作日:
end.evaluationStatus // 'COMPUTED'
end.value[0].value // '2026-03-23' (Mon, 23 Mar 2026)
end.proof.nodes.length // 4: two facts → rule TagesfristEnde → the question
end.hashes.result // 'sha256:b2faa3a5…' (with program and semantic)
end.document // 4423 canonical bytes — replay them anywhere
想要一个准备的 TypeScript 项目吗 ?
npm create arxo@latest my-app。 。 。 .
回来的是什么
每个答案都带有引擎制造的证明图, 它所依赖的规范 上面写着他们的封口文字,还有警语评价文件。 这个 软件包本身是运输、案件组装和实地投影:没有 第二评价者,拒绝是一种价值,而不是例外.
如何运作
同一机械师运行任何一峡谷——法规,技术标准,a 规则书或常数表。 模型可以将文本正规化;引擎 执行并证明每个答案.
五个问题
一个 ask 下;取出问题形状.
| 方法 | 问 | 示例 |
|---|---|---|
truth(p, args, case) | 实值 p(…) 确定吗? | 期限是否于3月23日结束? |
collect(p, args, case) | 哪个价值? 以 '?name' | 期限何时结束? |
deadline({ date, days, unit }, case) | 案件期限政策下的任期 | 收到通知后14个工作日 |
calc(term, case) | a 计算值 | 保险费 |
positions(case) | 职责、禁令、案件权力 | 谁欠什么,何时 |
有两个人读到结果,而不是问一个新问题:
whyNot(p, args, case) 返回 a 的块形图形 NEITHER,以及
unfold(p, { depth }) 打印生成规则 p 和他们的房屋,
锁定在被钉住的文字上,完全没有案例.
事实
事实是 { predicate, args, state }。值为空
声明类型 :
| 已宣布类型 | 过 |
|---|---|
Date | '2026-03-06' |
Integer, (中文(简体) ), Natural | 14 或者说 '14' |
Decimal | '0.5' ——字符串,永远不要 JavaScript 数字 |
Money | '730000 KZT' |
Quantity | '14 calendar_day' |
Boolean | true |
| 一个音符 | 变种名,例如:. 'Abschlagszahlung' |
| 实体 | 简称 id ('frist')或一个完整的URN |
三个州,不是两个州: 'yes' (默认一个列举的事实), 'no' (单位:千美元)
明确否定的主张)和 'unknown'。您不列出的事实是
未知; 无默认值 .
未知关系、 错误的存在性、 错误的类型或未知的 enum 变体
掷出 FactError 路径和最近的名称 在此之前 发动机
运行——使包成为LLM代理后的安全检查层:
模型提出事实,Arxo评估和证明.
合格名称、依赖性和拼写完整的参数
关系以其短名(世界的根包)命名,由
package::name 如来源('phys.relativity_core::predicted_ratio'),或通过
完全稳定。 链接中不列出的过渡性依赖性
imports 世界上没有软件包名称:用 StableId 命名其符号.
一种依赖是 'de.bgb.fristen::Hoechstfristkategorie::Erbfall', (中文(简体) ),
依赖关系的常数 'phys.relativity_core::ComposedSpeedRatio'。 。 。 .
完全拼写起来的论据{ kind: 'value', type: { name }, value }(a) 通过
通过不变.
答对
| 外地 | 含义 |
|---|---|
evaluationStatus | 歧视者: COMPUTED, (中文(简体) ), MISSING_INPUT, (中文(简体) ), REQUIRES_JUDGMENT, (中文(简体) ), INTERPRETATION_REQUIRED,, , , , , , , , |
truthStatus | 单独的轴 : TRUE_ONLY, (中文(简体) ), FALSE_ONLY, (中文(简体) ), NEITHER, (中文(简体) ), BOTH |
value | a 的值 collect 或者说 calc |
missingInputs | 怎么会这样 MISSING_INPUT 缺少答案 |
whyNot | 每一个候选人的规则,它的触发点 和每个连接点: SATISFIED, (中文(简体) ), NOT_SATISFIED, (中文(简体) ), UNDETERMINED, (中文(简体) ), CONFLICTED |
proof | 证明图表 |
sources | 答案背后的规范,及其被钉住的文字 |
hashes | { program, semantic, result } |
issues | 引擎消息逐字记录——匹配代码,而不是文本 |
document | 评估文件的条形字节 |
via | 'local' 或者说 'mcp'他们之间没有沉默的退缩 |
""不在模型"和"法律是沉默"是不同的答案:
pkg.passport() 重复软件包的正式化措施(EXECUTABLE, (中文(简体) ),
SOURCE_ONLY,(......)和 pkg.inModel(predicate) 说明是否在
都说吧. pkg.explain(answer) 返回同一证据中的主机文本.
只有表面的失败才有例外: FactError, (中文(简体) ),
PackageNotFoundError, (中文(简体) ), IntegrityError, (中文(简体) ), TransportError, (中文(简体) ), RpcError。 。 。 .
到处跑
每个路线上的方法和答案都是一样的.
节点 ——本地引擎,安装后下线(默认)
import { open } from '@arxo/law';
const fristen = await open('[email protected]', { offline: true });
open('name@version') 找那条安装了的拐杖 cacheDir (当
并核对每一条棍子与它的
contentHash。 。 。 .
需要该版本:没有被绑定版本的答案不是
可再生产.
浏览器 没有 node: 进口
import { open } from '@arxo/law/browser'; // or the `browser` export condition
import ir from '@arxo/canon-bgb-fristen/package.lawir.json';
const fristen = await open('[email protected]', {
wasm: fetch('/law_wasm_core.wasm'),
canons: { '[email protected]': { ir, calendar } },
});
来源是捆绑所携带的罐子、来源的缓存存储器(按键)
以 contentHash公共登记处.
远程主机 - Arxo MCP主机,无相机
const picc = await open('[email protected]', { remote: true });
主机应答 law_ask;答案是它的预测(evaluationStatus, (中文(简体) ),
truthStatus, (中文(简体) ), whyNot, (中文(简体) ), proof、出处散热器、活有效载荷 host, (中文(简体) ),
财务报告和审定财务报表 document 实值 null。 。 。 . questions() 财务报告和审定财务报表 passport() 需要当地CLIR.
hostPackage 命名远程打开的目录密钥.
路由器 - 一个简单的问题
import { route } from '@arxo/law/router';
const r = await route('Wann endet eine 14-Tage-Frist ab 6. März 2026?', { legalTime: '2026-09-17', answers });
搜索 规则 问主机。 结果是主机的答案或
{ missing } ——你没有给出的选定规范需要的事实
被选中的规范以及被否决的候选人.
磁盘上的大小写包 ——保存问题,编辑通过 law 国 际
import { openCasePackage } from '@arxo/law/case-package';
const pkg = await openCasePackage('/path/to/case-package');
const accident = pkg.case('Collision');
accident.questions(); // saved queries and question cards
const answer = await accident.ask('positions');
await accident.proposeFacts('facts.json', { by: 'urn:example:operator', at: '2026-09-17T12:00:00+05:00' });
await accident.acceptFact('p-0001', { by: 'urn:example:operator', at: '2026-09-17T12:00:00+05:00' });
读取使用相同的相机 ask 作为 CLI; 编辑运行 law 二进制( 二进制)
law 选项, ARXO_LAW_BINARY,可选对等点 @arxo/cli,则 PATH, (中文(简体) ),
所以SDK和CLI是不能分开的 拒绝的编辑掷出 CaseEditError 与
联合国 LPK-E… 代码.
law serve ——您主机长期运行的服务器
const law = await open('[email protected]', {
serve: { endpoint: 'http://127.0.0.1:8480', token: process.env.LAW_SERVE_TOKEN },
});
const answer = await law.ask('Prosrochka', { kind: 'positions', queryId: 'positions' });
answer.documentBytes; // the exact embedded evaluation document
law.refreshWorld() 明确拾取新的服务器代号 。 没有
没有本地CLIR在这个路线.
.arxo 集装箱 ——一个软件包或在一个文件中保存的答案,由 URL 打开
import { openContainer } from '@arxo/law/arxo';
const box = await openContainer('https://example.org/ogpo-batch.arxo', { wasm: fetch('/law_wasm.wasm') });
await box.inspect(); // descriptor, containerHash, signature — a few KB of the file
await box.replay('001'); // re-evaluates a saved answer: replay.same, replay.document
引擎只读取它所需要的字节范围( HTTP) Range),检查CRC,
每一档案的sha256,以及 trustedKeys,签名。 需要全部时间
模块 law_wasm.wasm。 。 。 .
软件包
加农斯
| 安装 | 打开 | 答复 |
|---|---|---|
@arxo/canon-bgb-fristen | [email protected] | 186-213 BGB (德国) |
@arxo/canon-ogpo-vts | [email protected] | 强制性机动责任保险(哈萨克斯坦):保险费、限额、付款条件 |
@arxo/canon-unidroit-picc | [email protected] | 2016年统法协会原则:适用、诚信、解释 |
每个 @arxo/canon-* 软件包将其关系名称添加到 CanonRegistry
类型,所以一个拼错的上游是一个编辑器错误. Answer, (中文(简体) ), Fact, (中文(简体) ),
CaseInput 和地位工会来自 @arxo/law-types。 。 。 .
API 密码
open(spec, options?)
spec 实值 'name@version'。返回带有上述方法的软件包.
| 选项 | 类型 | 默认 | |
|---|---|---|---|
offline | boolean | false | 绝不接触网络; explain 拒绝 |
remote | boolean | false | 询问 Arxo 主机而不是本地引擎 |
serve | { endpoint, token?, fetch? } | —— 说 | 问你 law serve |
cacheDir | string | —— 说 | 继续在磁盘上下载罐头,按键由 contentHash |
registryUrl | string | 公共登记 | 从哪里取出罐子 |
mcpEndpoint | string | 阿尔克索主机 | 主机为 remote, (中文(简体) ), explain, (中文(简体) ), route |
hostPackage | string | 从峡谷 | 远程打开的主机目录密钥 |
contentHash | string | —— 说 | 完全取自这些字节 cacheDir |
wasmPath | string | URL | 捆绑 | 一个特定的引擎模块 |
fetch | typeof fetch | 全球 | 您的运输工具 |
案例输入
| 外地 | |
|---|---|
legalTime | 法律的阅读日期——要求,从未违约 |
timezone | 案件所涉的IANA区 |
deadlinePolicy | 日数如何计算;没有一个术语答案是: MISSING_POLICY |
answers | 事实 |
decisionTime, (中文(简体) ), knowledgeTime | 当决定做出时,什么是已知的 |
错误
| 类 | 掷出时 |
|---|---|
FactError | 事实不符合一揽子: path, (中文(简体) ), nearest |
PackageNotFoundError | 没有来源 name@version |
IntegrityError | canon 字节不匹配 contentHash |
TransportError, (中文(简体) ), RpcError | 网络或主机失败 |
CaseEditError | 页:1 law CLI 拒绝编辑 : LPK-E… 代码 |
实例
recipes/ 持有四
20行例,每行在 CI 中运行:一个任期结束(BGB),一个计算值(Kazakh)
机动车保险),一个条件(UNIDROIT)和LLM后面的检查层
探员.
业绩
暖冷开始77分,1分 truth 问题40毫秒, law_wasm_core.wasm
4.7 甲基溴(node bench/measure.mjs, 2026-09-21, darwin 24.6, 开发商笔记本电脑.
链接
阿尔克索.io • 妇女 更改日志 • 妇女
@arxo/law-engine 引擎没有外表
@arxo/law-types - 类型
阿帕奇 - 2.0