ワンクリックで
xrk-http-api
当你需要开发或排查 HTTP API(core/*/http/*.js)、理解 HttpApi 基类、HttpApiLoader、业务层约定时使用。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
当你需要开发或排查 HTTP API(core/*/http/*.js)、理解 HttpApi 基类、HttpApiLoader、业务层约定时使用。
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
当你需要从“应用视角”看 XRK-AGT(启动流程、Web 控制台、前后端协作、典型技术栈组合)时使用。
编写或审查 core/*/www 静态页、校园 WebView 兼容、HttpResponse 前端解包时使用。浏览器环境 ≠ Node 26。
编写或审查 core/src 代码时的写法与性能规范(全局裸名、状态、I/O、异步、HTTP)。改 Core 前必读。
当你需要快速理解 system-Core 提供哪些 HTTP API/工作流/插件/Tasker/Web 控制台能力,或定位某个模块在哪实现时使用。
当需要从整体理解 XRK-AGT 的架构、目录、运行流程和技术栈时使用。
当你需要理解 XRK-AGT 的运行时核心(AgentRuntime 主类)、事件总线、HTTP/WS 启动流程与全局对象时使用。
| name | xrk-http-api |
| description | 当你需要开发或排查 HTTP API(core/*/http/*.js)、理解 HttpApi 基类、HttpApiLoader、业务层约定时使用。 |
docs/http-api.md、docs/runtime-surface.md、docs/api-loader.mdsrc/infrastructure/http/http.jssrc/infrastructure/http/loader.jscore/*/http/*.js,导出对象或继承 HttpApi。routes 中声明 method/path/handler/middleware。AgentRuntime.checkApiAuthorization(req) 统一使用系统级 API Key,其他 Core 可自定义或选择接入该能力(详见 xrk-auth skill)。req.agentRuntime 或第三参 AgentRuntime,勿 global.AgentRuntime。import { HttpResponse } from '#utils/http-utils.js'。handler 用 return HttpResponse.success/error/asyncHandler/...,勿混用 res.json()。
success 响应形状(底层定义)实现:src/utils/http-utils.js → HttpResponse.success。
第二参 data | 实际 JSON |
|---|---|
| 普通对象(非数组) | { success: true, message, ...data }(拍平,无外层 data) |
| 数组 / 标量 | { success: true, message, data: <值> } |
null / 省略 | { success: true, message } |
// 服务端
HttpResponse.success(res, { assessments, webVersion });
// → { success: true, message: '操作成功', assessments, webVersion }
HttpResponse.success(res, { data: config }); // 刻意要顶层 data 字段
// → { success: true, message: '操作成功', data: config }
HttpResponse.success(res, items); // 数组
// → { success: true, message: '操作成功', data: items }
禁止默认 const data = json.data 再读业务字段(对象拍平后常为 undefined)。
| 场景 | 做法 |
|---|---|
/xrk | import { unwrapSuccess } from './web-compat.js' |
| 其它产品 www | 内联同语义(见 skill xrk-www-compat) |
| 或 | 直接读顶层:json.assessments、json.configs |
function unwrapSuccess(json) {
if (!json?.success) throw new Error(json?.message || '请求失败');
if (json.data !== undefined) return json.data;
const { success, message, ...rest } = json;
return rest;
}
需要「整包在 data 下」时,服务端应写 success(res, { data: payload })(如 kaguya、xiaozhi config)。
详见 docs/http-api.md「响应格式」。
fetch + AbortSignal.timeout(仅服务端;浏览器用 abortTimeout,见 xrk-www-compat)。Error.isError / normalizeError(见 skill xrk-node-runtime)。node-fetch、手写 AbortController 超时。