✨ feat: 灵台引擎五神齐备与 Go/Rust 官方绑定(WP-15)
- C++ 新增四模块(modules.cpp,19 个导出符号全部 hj_*): 小周天 hj_stream:流会话(sequence/delta_index 单调)与 content.block.delta envelope 确定性编码(重放字节一致) 烛照 hj_policy:URL 协议白名单(拒 file/javascript/data)、路径授权根与 .. 段拒绝、幂等键非空≤128、四维决策表(autonomy×risk→allow/ask/deny,非法输入 deny fail-closed) 洛书 hj_plan:预算核算(达限/负数拒绝) 河图 hj_recall:确定性重排(词频×稳定排序,canonical JSON 输出;非法输入 PARSE_FAILED) - doctest 22 用例 20135 断言全绿(含每模块 golden 与确定性双跑) - Go 绑定(cgo 自包含编译引擎源码):Engine RAII/TransformMarkdown/ValidateURL/ValidatePath/Decide/CheckBudget/RecallRerank;go test 3 用例通过(transform/rerank golden 与 C++ 字节一致) - Rust 绑定(bindgen 生成 + 安全包装):Engine RAII(Drop 释放)、Error 枚举映射全部 HjStatus、Send/Sync(HjEngine 线程安全);cargo test 3 用例通过(同 golden) - 三端(C++/Go/Rust)与 Python golden 一致:同一 markdown 输入在四端输出字节相同(跨端一致性首次全语言验证)
This commit is contained in:
1 parent
99a7789432
commit
a39cec5287
15 files changed
+1205
-3
No files matched your search
@@ -76,6 +76,43 @@ HJ_API const char *hj_transform_version(void);
|
||||
HJ_API HjStatus hj_transform_markdown(
|
||||
HjEngine *engine, const char *input, size_t input_len, HjBuffer **out);
|
||||
|
||||
// ===== 小周天(hj_stream):确定性流事件编码 =====
|
||||
|
||||
// 流会话句柄:Run 内 sequence 与 block delta_index 计数(契约第 5 节)。
|
||||
typedef struct HjStream HjStream;
|
||||
|
||||
HJ_API HjStatus hj_stream_new(HjEngine *engine, HjStream **out_stream);
|
||||
HJ_API HjStatus hj_stream_free(HjStream *stream);
|
||||
// 追加文本增量:输出 content.block.delta envelope 的 canonical JSON
|
||||
// (含 sequence 与 delta_index,键序确定);输出经 HjBuffer 返回。
|
||||
HJ_API HjStatus hj_stream_append_delta(
|
||||
HjStream *stream, const char *block_id, const char *text, size_t text_len,
|
||||
HjBuffer **out);
|
||||
HJ_API uint64_t hj_stream_sequence(const HjStream *stream);
|
||||
|
||||
// ===== 烛照(hj_policy):确定性判定原语 =====
|
||||
|
||||
// URL 校验:仅 http/https;拒绝 file/javascript/data 等协议(契约 3.4)。
|
||||
HJ_API HjStatus hj_policy_validate_url(const char *url);
|
||||
// 路径约束:canonicalize 后必须位于 root 内;越界返回 HJ_ERR_POLICY_DENIED。
|
||||
HJ_API HjStatus hj_policy_validate_path(const char *path, const char *root);
|
||||
// 幂等键:非空且不超过 128 字符(契约第 6 节)。
|
||||
HJ_API HjStatus hj_policy_validate_idempotency_key(const char *key);
|
||||
// 决策表:autonomy(0=自省 1=循律 2=请命 3=禁域)× risk(0=只读 1=副作用 2=高影响)
|
||||
// 返回 0=allow 1=ask 2=deny;非法输入返回 2。
|
||||
HJ_API int hj_policy_decide(int autonomy_level, int risk_level);
|
||||
|
||||
// ===== 洛书(hj_plan):预算核算 =====
|
||||
|
||||
// 已用 >= 上限 返回 HJ_ERR_LIMIT_EXCEEDED;负数参数 HJ_ERR_INVALID_ARGUMENT。
|
||||
HJ_API HjStatus hj_plan_check_budget(int64_t used, int64_t maximum);
|
||||
|
||||
// ===== 河图(hj_recall):确定性重排 =====
|
||||
|
||||
// 候选重排:输入 {"query_terms": [".."], "candidates": [{"id","text"}]}
|
||||
// 输出按确定性得分(词频 × 简单位置权重)排序的 canonical JSON。
|
||||
HJ_API HjStatus hj_recall_rerank(const char *candidates_json, HjBuffer **out);
|
||||
|
||||
#ifdef __cplusplus
|
||||
} // extern "C"
|
||||
#endif
|
||||
|
||||
Reference in new issue
Block a user