Pre-alpha 文档
编译 Core 公共合约。
无需 Provider SDK、Tokio、数据库、HTTP Server 或协议 SDK,在 MSRV 上运行四个真实 stateknot-core 合约。
运行全部四个合约
示例调用有界构造器与 Fail-closed 校验路径,不是伪代码。CI 会使用锁定的 MSRV 显式编译它们。
cargo check -p stateknot-core --examples --locked
cargo run -p stateknot-core --example first_agent --locked
cargo run -p stateknot-core --example typed_tool --locked
cargo run -p stateknot-core --example model_stream --locked
cargo run -p stateknot-core --example protocol_adapter --locked
cargo test -p stateknot-core --test dependency_boundary --locked
cargo test -p stateknot-core --test fixture_catalog --locked
cargo test -p stateknot-core --test public_type_inventory --locked
cargo test -p stateknot-core --test canonical_execution_wires --locked
cargo test -p stateknot-core --test canonical_time --locked
PROPTEST_RNG_SEED=20261008 cargo test -p stateknot-core --test canonical_values --test value_properties --test nested_json_properties --test budget_composite_properties --test graph_state_properties --locked 明确四个可编译边界
- first_agent
- 构造不可变 Agent/Model Descriptor、Schema-bound 有界输入、限制性 Request Limit 和完整有限的 Resolved Budget。不接纳 Run,也不访问 Provider。
- typed_tool
-
生成、Canonicalize 并固定类型化 Schema Digest,由离线 Registry 校验,
最后交给
ToolAdapter。不执行 Tool Attempt 或外部副作用。 - model_stream
-
有限 Streaming Request 与 Attempt Context 通过 Capability
校验;五个连续 Semantic Event 经
ModelEventAccumulator形成一个有界 Response。 对象安全的Model::stream入口无需虚构 Provider 即可编译。 - protocol_adapter
- 封闭的外部 Request 在本地获得可信 Schema Identity,保留有限调用方上限, 并拒绝注入的 Tenant Authority。它明确不是 HTTP、MCP 或 A2A Transport。
锁定 Runtime-neutral 依赖边界
依赖测试读取锁定的 Cargo Metadata,把全部直接普通依赖与开发依赖和已审查 白名单比较。新增、重命名或 Target-specific 依赖都会使 CI 失败,直到边界 审查被显式更新。
该门禁阻止 Provider SDK、Async Executor、数据库、HTTP Server、协议 SDK 与
Telemetry Exporter 进入 stateknot-core。请阅读完整的源码指南和 Draft RFC-0001,核对仍未关闭的验收条件。
封闭兼容性证据语料库
版本化目录对当前提交的全部 44 份 Core Fixture 文档建立封闭清单。每个条目以 SHA-256 固定文件的精确字节,从而保留刻意非 Canonical 的非法输入反例;带 Domain Separation 的 RFC 8785 根摘要绑定有序的路径、Schema 与 Digest 元数据。
完整的 Tool 授权 Receipt,以及 Skill Approval、Open Request、Acting Window 与 Revocation 记录,现已连同各自的保留摘要和 Canonical Wire 摘要一起固定。 可执行向量会验证 Payload Redaction、严格的 Source / Duration 解码、Schema 封闭性与篡改拒绝。
CI 会拒绝缺失、未登记、变化、重复、不安全、过大或没有测试引用的 Fixture。每个条目都必须继续被可执行的 Rust 兼容性测试消费。这是 RFC-0001 第 2 项验证门禁的可审计基础。当前根导出类型已有显式 fixture pointer 和编译器证据;可选/嵌套组合、其他复合属性与历史验收继续执行独立门禁。 第 2 项仍保持开放,继续完成剩余审查。
封闭审计现已分类全部 555 个公开根类型:307 个逐型 reader、两个仅输出 生产者及 246 个 Rust-only 代表实例,并分别固定 308 个输入/default 和 308 个序列化 schema 摘要。 原有 38 个值类型和 67 个执行类型的正向与负向证据继续保留。完整的 Graph、Checkpoint、invocation、Outbox 和 wait wire 保留原有构造器摘要。 无字段的带标签变体拒绝额外字段和数组形式,有效 wire 字节及七个生成的 schema pin 保持一致。44 个有界属性模型也以固定 CI 种子运行。嵌套 JSON 具有六维独立资源与 UTF-16 规范树模型;Opaque/schema-bound 扩展收紧限制时会重新验证原先较宽的值。七个复合预算模型使用独立宽整数会计, 核对全部 20 个用量字段、部分限制与币种交集、direct + child 预留和精确剩余容量。 逐字段溢出、deadline 等值、未知费用及未列明的零费用币种均拒绝; 每个容量样例也执行成功路径。
两个 Graph 与 checkpoint 模型独立核对状态、route 并集、规范字节及三类摘要 preimage。节点插入及结果输入顺序比较相同已提交事实和 journal anchor; Unicode 状态链核对一至十三代父 head,并拒绝 data 篡改。这些纯根 barrier 检查保留数据库事务及同 Run 嵌套执行的独立门禁,RFC-0002 仍为 Draft。
时间戳 reader 在全部 20 个数字位置拒绝所有 ASCII 非数字,保持长度的 Unicode 和保留的非法嵌套 Run transition 也有回归。所有构建 profile 均先校验数字再执行十进制算术;有效时间戳字节、范围和 schema pin 保持一致。
全部 181 个封闭对象 reader 要求 map,包括 Tool、Agent、Journal、Checkpoint 和子 Run 记录中的嵌套 schema reference。文本及 Value 检查拒绝完整、空、截短和扩展的 positional 数组。调用方须使用固定 schema 的对象形状,不支持以 sequence 表示对象的二进制格式解码。有效 wire 字节、原 43 份 fixture 和两组各 308 个 pin 保持一致;实际 Tool 注册表在应用派发前拒绝非法嵌套输入。 该修正仅在源码中采用,不改变已发布的 alpha.1 包。
独立封闭矩阵覆盖全部 71 个可序列化公开枚举的每个替代分支:298 个规范 wire 和摘要,包括 28 个原来缺少向量的构造分支。73 项检查核对类型清单与 生成 schema 的分支,拒绝数组、未知字段及原始重复键,并保留原 43 份文档。两个 fuzz schema oracle 和固定种子重放均执行每个分支。 这些是当前源码向量;可选/嵌套组合及真实历史版本仍有独立工作,产品字节、 pin 与依赖保持一致。
运行有界 fuzz 门禁
独立开发 workspace 对有界 JSON/JCS、全部 307 个 reader 和实际离线 schema 注册表运行 ASan/libFuzzer。逐一重放固定语料后,每个目标最多执行 10,000 次或 60 秒变异,输入上限 128 KiB、单输入 10 秒、RSS 2,048 MiB;失败输入和覆盖语料随 CI 证据保留。最终不可变源码必须通过 Core bounded fuzz 门禁。实际反序列化接受的输入再由离线输入 schema 验证;生产者输出保留独立 schema oracle。
python3 fuzz/qualify.py
复现所需固定工具及完整步骤见fuzz 指南。输出 schema 使用实际 serializer wire,原输入 pin 保持一致;旧输出 pin 在启动阶段拒绝且不调用应用。变更须采用新 schema/Tool 版本并保留已准入工作的旧注册表。有限 fuzz 不代表穷尽变体、历史迁移、生产容量或独立安全验收。
显式跨越生产边界
真实宿主仍须认证并授权调用方,解析不可变的 Tenant-owned Descriptor 与 Schema, 提交持久化准入记录,通过 Ledger 执行外部 Attempt,在 Lease/Fence 下驱动 Checkpoint,并重新校验 Terminal Evidence。 下一步阅读强类型 Agent 指南;Core 示例不会隐藏这些责任。