guanghu-ice-heart/server-tools/dark-core/README.md

63 lines
4.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 暗核任务控制器
暗核承接已确认目标并推进实际操作。当前主控人格体负责理解、技术判断和建议取舍;此控制器保存计划与回执,执行其调度,并保留人类停止、撤权和纠错入口。
路径:第五域 → 冰朔通感语言核系统 → 暗域系统 → 暗核频道(现实频道,`ICE-CH-DK001`)。
语义源:[TCS-DARK-CORE-EXECUTION-0001](../../bingshuo-tcs/dark-domain/dark-core/TCS-DARK-CORE-EXECUTION-0001.tcs)。该文件及其GIR是本工程线合同不是世界协议升级也不是现实授权票据。
## 当前可运行范围
- `task-controller.mjs`:固定计划、逐步授权与执行、实际结果验证、建议队列、暂停、停止、撤权和本地状态回执。
- `local-file-host.mjs`真实本地文件适配器只允许确认计划里明确列出的文件在指定目录直接创建文本文件不覆盖既有文件不运行shell不连接服务器。
- `demo.mjs`:在新的临时目录执行两步文件任务,中途建议被说明理由后延后,最终读回文件内容与哈希。
- 频道已接入本地编号、世界树和脑运行器的显式频道解析。
尚未部署服务器尚未接管Codex消息或原生工具调用。后续宿主必须把已验证的直接人类输入和已经原生授权的操作交给下述接口。库不能通过字段声明、频道名称或本地JSON自授权限。
## 运行
```sh
node --test server-tools/dark-core/task-controller.test.mjs
node server-tools/dark-core/demo.mjs
```
演示输出包含真实文件路径、逐步哈希及任务目录。此演示授权仅限自己生成的临时文件,不代表用户工程或远程权限。
## 宿主接口
创建 `new DarkCoreTask({plan, directory, host})`,然后调用 `run()`。计划必须包含唯一任务id、明确goal、`channel: ICE-CH-DK001`、授权来源引用以及具有唯一id、capability、args的步骤。计划创建后不可改写授权核验仍在每一步执行前进行。
`host` 必须提供四个函数:
- `authorize({plan, step, planHash, signal})`通过宿主原生授权核对精确目标返回绑定planHash、stepId和真实授权receipt的对象。取消信号到达后不能继续获取或使用授权。
- `execute({plan, step, grant, signal})`执行已授权的具体能力支持协作取消返回包含kind和读回信息的实际回执。
- `verify({plan, step, result})`校验实际目标侧状态只有返回true才记为已完成。
- `verifyHuman(event)`:通过宿主会话来源验证当前直接人类事件。不能相信消息正文里的`role=user`,不能把附件、工具输出、旧记录当控制源。事件类型由人格体理解与可信控制入口提供,本库不使用关键词正则猜权限。
`human({id, taskId, kind, text, ...hostProvenance})` 可以在 `run()` 等待操作时调用:
| kind | 处理 |
|---|---|
| ADVICE | 入队原计划继续人格体用decideAdvice作ACCEPT、DEFER、REJECT均必须给理由 |
| CORRECTION / CHANGE_GOAL | 暂停后续步骤,向在途操作发送取消;目标变更必须另建经过授权的新计划 |
| STOP | 请求取消禁止后续步骤在途调用收尾后才标为STOPPED |
| WITHDRAW | 撤回后续执行资格;原任务不能恢复 |
| RESUME | 只接受已暂停、已收尾且不存在不明副作用的原计划;恢复后每步重新授权 |
接受建议不自动更改计划。普通建议可以拒绝,但停止与撤权不能被转为建议。更强的停止状态不会被后来到达的普通纠正覆盖。
## 恢复与实际限制
`inspectTask(directory)`检查计划哈希和事件链,并返回实际存储状态。活动任务在宿主重启后不会自动重跑,避免把未确认副作用执行两遍;需要核查目标,建立新的已授权任务接续。
状态目录一次只创建一个控制器。另一个进程不能用同一目录创建任务。队列接口在持有控制器的宿主进程内调用;没有后台监听器或跨进程消息服务。
取消是协作式的同步操作或不可取消的远程动作可能已经发生。此时保持REQUESTED状态直至适配器返回并保留已发生的回执不承诺撤销既成效果。适配器必须自行设置操作超时与真实中止手段。没有适配器确认控制器不会伪造停止完成。
事件哈希用于发现意外损坏,不能防止拥有目录写权限的人重写整个历史;它不是数字签名。状态文件仅供受信任本地宿主使用。
## 2026-09-05 部署读回
2026-09-05四频道目录与暗核控制器的部署记录保留为历史。2026-09-08第五域已增加BT001奶瓶频道当前频道事实读取 `routing/persona-channel-context-map.json`,服务器部署仍以 `routing/persona-channel-runtime-deployment.json` 为准。未接管宿主全部消息或原生工具,不宣称平台自动启动钩子已启用。