Token导航 LogoToken导航TokenDH.com
研究检索需要联网github未标认证来源可访问许可证需确认审计通过

hile-httphttp 协议

Agent Skill

hile-http 用于查找、检索和筛选相关信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要根据关键词、任务场景或来源线索快速定位候选结果时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

499

周安装

21

GitHub Stars

1

下载量

175
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:hile-http(http 协议)
来源仓库:https://github.com/cevio/hile
仓库路径:skills/hile-http
安装命令:
npx skills add https://github.com/cevio/hile --skill hile-http
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/cevio/hile --skill hile-http

简介

用于查找、检索和筛选相关信息。hile-http 属于研究检索类 Skill,可作为该场景下的辅助能力补充。

  • 适合根据关键词或任务场景快速定位候选结果。
  • 可结合来源仓库和原始 README 核验具体用法。
  • 安装前建议确认权限范围和维护状态。适用宿主包括 Codex、Claude、Cursor、Gemini CLI,接入前应确认版本、权限和运行环境要求。
  • 注意是否会触发联网、命令执行或文件读写。

SKILL.md

@hile/http SKILL

本文档用于规范 AI 与开发者在 @hile/http 中的实现方式,确保控制器形式、路由加载与服务生命周期管理一致。

1. 架构概览

@hile/http 由四部分组成:

  • Http:封装 Koa 与路由器,负责中间件、路由注册与服务启停
  • defineController:将方法、可选中间件与处理函数封装为标准控制器
  • defineResponsePlugin:注册控制器结果的后处理插件链
  • Loader:支持手动编译路由与按文件系统自动加载,并提供冲突策略与冲突回调

典型流程:定义控制器 → 加载路由 → 启动服务。

2. 关键类型

import type { Context, Middleware } from 'koa'
import type { HTTPMethod } from 'find-my-way'

type HttpProps = {
  port: number
  keys?: string[]
  ignoreDuplicateSlashes?: boolean
  ignoreTrailingSlash?: boolean
  maxParamLength?: number
  allowUnsafeRegex?: boolean
  caseSensitive?: boolean
}

type ControllerFunction = (ctx: Context) => unknown | Promise<unknown>

type ResponsePluginFunction = (
  ctx: Context,
  result: any,
  next: (r: any) => Promise<void>
) => Promise<any>

interface ControllerRegisterProps {
  id: number
  method: HTTPMethod
  middlewares: Middleware[]
  data: Record<string, any>
}

type LoaderConflictStrategy = 'error' | 'warn' | 'override'
type LoaderConflictResolution = 'error' | 'keep' | 'override'

type LoaderConflictContext = {
  routeKey: string
  method: string
  url: string
  strategy: LoaderConflictStrategy
  resolution: LoaderConflictResolution
}

interface LoaderCompileOptions {
  defaultSuffix?: string
  prefix?: string
  conflict?: LoaderConflictStrategy
  onConflict?: (ctx: LoaderConflictContext) => void
}

type LoaderFromOptions = {
  suffix?: string
} & LoaderCompileOptions

3. 标准模板

3.1 创建 Http 实例

import { Http } from '@hile/http'

const http = new Http({ port: 3000 })

3.2 注册全局中间件

http.use(async (ctx, next) => {
  const start = Date.now()
  await next()
  ctx.set('X-Response-Time', `${Date.now() - start}ms`)
})

规则:必须在 listen() 前调用。

3.3 手动注册路由

const off = http.get('/api/users', async (ctx) => {
  ctx.body = { users: [] }
})

off()

规则:所有路由注册方法都返回注销函数。

3.4 定义控制器

无中间件:

import { defineController } from '@hile/http'

export default defineController('GET', async (ctx) => {
  return { ok: true }
})

带中间件:

import { defineController } from '@hile/http'

const auth = async (ctx, next) => {
  if (!ctx.headers.authorization) ctx.throw(401)
  await next()
}

export default defineController('POST', [auth], async (ctx) => {
  return { created: true }
})

规则:

  • 控制器文件必须 export default
  • 控制器函数签名为 (ctx),不是 (ctx, next)
  • 控制器返回值会先经过响应插件链
  • 插件链最终结果非 undefined 时自动写入 ctx.body

3.5 响应插件

import { defineResponsePlugin } from '@hile/http'

defineResponsePlugin(async (ctx, result, next) => {
  if (ctx.path.endsWith('.json')) {
    return await next({ data: result })
  }
  return await next(result)
})

规则:

  • 插件按注册顺序串行执行
  • 插件必须调用 next(transformedResult) 以传递结果
  • 若最终传给 next 的结果为 undefined,不会设置 ctx.body

3.6 文件系统自动路由

await http.load('./src/controllers', {
  suffix: 'controller',
  defaultSuffix: '/index',
  prefix: '/api',
  conflict: 'warn',
  onConflict: (ctx) => {
    console.warn('route conflict', ctx)
  },
})

文件路径映射示例:

文件路径路由路径
index.controller.ts/api
users/index.controller.ts/api/users
users/[id].controller.ts/api/users/:id

冲突策略说明:

  • error:同一 method + path 冲突时抛错(默认)
  • warn:保留旧路由并发出警告
  • override:新路由覆盖旧路由

onConflict 会在发生冲突时回调,提供 routeKey/method/url/strategy/resolution

from() 会校验控制器默认导出类型。若导出不合法,错误信息包含文件路径和导出摘要,便于定位。

4. 强制规则

  1. 全局中间件必须在 listen() 前注册。
  2. 控制器必须 default 导出。
  3. 控制器文件命名使用 *.controller.ts/js(或与 suffix 一致)。
  4. 需要多个 HTTP 方法时,default 导出数组。
  5. 控制器里不要调用 next(),需要 next 的逻辑放中间件。
  6. load() 为异步,必须 await
  7. 大型项目建议显式设置 conflict 策略,避免隐式覆盖。

5. 常见反模式

控制器中调用 next

// ✗
export default defineController('GET', async (ctx, next) => {
  await next()
  return { ok: true }
})

// ✓
export default defineController('GET', async (ctx) => {
  return { ok: true }
})

重复设置响应

// ✗
export default defineController('GET', async (ctx) => {
  ctx.body = { a: 1 }
  return { b: 2 }
})

// ✓
export default defineController('GET', async () => {
  return { b: 2 }
})

不配置冲突策略导致行为不清晰

// ✗ 不清晰:项目多人协作时难以统一预期
await http.load('./src/controllers')

// ✓ 显式策略:可读且可审计
await http.load('./src/controllers', { conflict: 'error' })

6. 与 @hile/core 集成

import { defineService } from '@hile/core'
import { Http } from '@hile/http'

export const httpService = defineService(async (shutdown) => {
  const http = new Http({ port: 3000 })
  await http.load('./src/controllers', { suffix: 'controller', prefix: '/api' })

  const close = await http.listen()
  shutdown(close)

  return http
})

7. API 速查

导出说明
HttpHTTP 服务实例类
defineController控制器定义函数
Loader路由加载器
compileRoutePath路径编译纯函数
toRouterPath参数路径转换纯函数

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

34.35%
按下载量换算60

Claude

27.96%
按下载量换算49

Cursor

18.02%
按下载量换算32

Gemini CLI

9.78%
按下载量换算17

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

需要联网

该 Skill 可能需要联网访问来源站点、仓库或外部 API;具体网络访问范围需要结合源码和 README 复核。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills