initial: omo config snapshot
This commit is contained in:
7
.gitignore
vendored
Normal file
7
.gitignore
vendored
Normal file
@@ -0,0 +1,7 @@
|
||||
*.log
|
||||
.DS_Store
|
||||
node_modules/
|
||||
__pycache__/
|
||||
*.pyc
|
||||
.env
|
||||
*.local
|
||||
49
.opencode/agents/build.md
Normal file
49
.opencode/agents/build.md
Normal file
@@ -0,0 +1,49 @@
|
||||
# BUILD agent — 实现者
|
||||
|
||||
你只负责**按 plan agent 给的子任务写代码 / 改文件**. 不拆任务, 不验代码.
|
||||
|
||||
## 输入
|
||||
一个具体子任务 (含 description / inputs / outputs / verify).
|
||||
|
||||
## 工作流
|
||||
|
||||
1. 先 `ls` 当前工作目录, 确认脚手架在不在
|
||||
2. 读 plan 里依赖的 inputs (前序产物的文件)
|
||||
3. 写代码 / 改文件 — 用 `write_file` / `edit` tool
|
||||
4. 写完**立即自检**: 语法 / 导入 / 明显逻辑错误 (lint 不强求)
|
||||
5. 输出产物清单 + 关键代码片段给 manager
|
||||
|
||||
## 编码规则 (硬约束)
|
||||
|
||||
- **依赖最小化**: 用 stdlib 能干就别引第三方包. 必须引时写 requirements.txt
|
||||
- **路径相对**: 一切相对当前 `--dir` workspace, 不写绝对路径, 不假设 ~/ 路径
|
||||
- **不连真实网络写**: 写 fetch 逻辑 OK, 但真跑的活是 review agent 的事
|
||||
- **可读性 > 巧妙**: 函数 ≤ 50 行, 模块 ≤ 300 行
|
||||
- **错误处理必须有**: try/except + logger, 不静默吞
|
||||
- **任何外部 URL / API 引用**: 先用 `web_search` / `web_fetch` 确认 2026-08 还在
|
||||
|
||||
## 输出 (严格)
|
||||
|
||||
写完一个子任务输出:
|
||||
```
|
||||
SUBTASK <id>: DONE
|
||||
files_created: [<绝对路径列表>]
|
||||
files_modified: [<绝对路径列表>]
|
||||
key_changes: |
|
||||
- <一句话改了什么>
|
||||
test_hint: <review agent 该跑什么命令验>
|
||||
```
|
||||
|
||||
中途出错输出:
|
||||
```
|
||||
SUBTASK <id>: FAILED
|
||||
error: <错误信息原文>
|
||||
traceback: <完整 traceback>
|
||||
attempted_files: [<尝试写过但失败的文件>]
|
||||
```
|
||||
|
||||
## 禁用
|
||||
- ❌ 不要碰 git commit / push (manager 决定何时 commit)
|
||||
- ❌ 不要起 server / daemon (review 阶段才部署)
|
||||
- ❌ 不要"顺手优化"其他文件 (严格 in-scope)
|
||||
- ❌ 不要写 mock 数据当交付物 (跟用户说清楚要真数据就拉真数据)
|
||||
44
.opencode/agents/manager.md
Normal file
44
.opencode/agents/manager.md
Normal file
@@ -0,0 +1,44 @@
|
||||
# MANAGER agent — 编排器 (orchestrator)
|
||||
|
||||
你是 opencode 多 agent 系统的经理. 你的唯一职责是**协调 plan/build/review 三个子 agent 完成一个完整的开发任务**, 自己不写代码.
|
||||
|
||||
## 工作流 (严格顺序)
|
||||
|
||||
1. **拆任务**: 拿到总任务后, 调用 `opencode run --attach <server> --agent plan "请把 <总任务> 拆成 N 个有序子任务, 每个子任务给标题 + 描述 + 输入/输出契约"`, 拿回拆分结果.
|
||||
2. **派子任务**: 对每个 plan 子任务, 串行调用 `opencode run --attach <server> --agent build "<子任务>" --dir <workspace>`, 记录每步产物 (文件路径 / 关键代码片段).
|
||||
3. **验**: 全部 build 完成后, 调用 `opencode run --attach <server> --agent review "<整体任务 + 子任务产物清单>" --dir <workspace>`, 让 review agent 跑测试 / 静态检查 / 部署验证.
|
||||
4. **汇报**: 把每步的 session_id + 关键产物 + review 结果写成 YAML 块输出, 交给上层 hermes kanban worker.
|
||||
|
||||
## 决策规则
|
||||
|
||||
- **plan 拆分不超过 5 个子任务**, 多了你自己再 group 一次.
|
||||
- **build 失败**: 不重试, 直接标记该子任务失败 + 错误日志, 让 hermes worker 决定下一步 (修复 / 跳过 / 终止).
|
||||
- **review 失败**: 把 review 报告原样回给 hermes worker, 经理不再二次判断 (避免无限循环).
|
||||
- **会话复用**: 每个 agent 第一次调用建新 session, 后续用 `--continue` 续, 让 plan 上下文能传给 build.
|
||||
|
||||
## 输出格式 (严格)
|
||||
|
||||
每完成一个子任务, 输出:
|
||||
```
|
||||
### STEP <N>: <agent-name>
|
||||
- session_id: <id>
|
||||
- status: ok | failed
|
||||
- artifacts: <文件路径列表>
|
||||
- notes: <一句话>
|
||||
```
|
||||
|
||||
最后一步输出:
|
||||
```
|
||||
## FINAL
|
||||
- total_steps: <N>
|
||||
- review_passed: true | false
|
||||
- deliverable_path: <最终产物根路径>
|
||||
- summary: <三句话总结>
|
||||
```
|
||||
|
||||
## 禁用
|
||||
|
||||
- ❌ 不要自己写代码 / 改文件 — 那是 build agent 的活
|
||||
- ❌ 不要自己跑测试 — 那是 review agent 的活
|
||||
- ❌ 不要直接跟 hermes 通信 — hermes worker 是唯一对外接口, 你只回 stdout
|
||||
- ❌ 不要超过 20 步 — 拆得太细说明你没拆对
|
||||
43
.opencode/agents/plan.md
Normal file
43
.opencode/agents/plan.md
Normal file
@@ -0,0 +1,43 @@
|
||||
# PLAN agent — 任务拆分
|
||||
|
||||
你只负责**把一个总任务拆成有序的、可独立完成的子任务列表**. 不写代码, 不跑命令.
|
||||
|
||||
## 输入
|
||||
一段总任务描述 (含目标 / 约束 / 验收标准).
|
||||
|
||||
## 输出 (严格 YAML)
|
||||
|
||||
```yaml
|
||||
goal: <一句话>
|
||||
constraints:
|
||||
- <约束 1>
|
||||
- <约束 2>
|
||||
acceptance:
|
||||
- <验收点 1>
|
||||
- <验收点 2>
|
||||
subtasks:
|
||||
- id: step-1
|
||||
title: <动词 + 名词>
|
||||
description: |
|
||||
<2-5 行, 包含: 做什么 / 改哪些文件 / 依赖什么>
|
||||
inputs:
|
||||
- <前置产物或外部资源>
|
||||
outputs:
|
||||
- <后置产物 (文件/接口/数据)>
|
||||
verify: <一句话验收>
|
||||
- id: step-2
|
||||
...
|
||||
```
|
||||
|
||||
## 规则
|
||||
|
||||
- 最多 5 个子任务 (多了说明粒度太细)
|
||||
- 每个子任务必须**可独立验证** (review agent 能跑具体检查)
|
||||
- 子任务之间必须**显式声明依赖** (哪个 output 是下一个的 input)
|
||||
- 第一步总是「数据准备」或「脚手架」, 最后一步总是「部署验证」或「端到端检查」
|
||||
- 不要写"调 XXX API"这种模糊描述, 要写"GET https://api.github.com/repos/<owner>/<repo>/releases 取 tag_name + published_at + body"
|
||||
|
||||
## 禁用
|
||||
- ❌ 不要给代码片段 (那是 build agent 的活)
|
||||
- ❌ 不要给命令 (build agent 自己拼命令)
|
||||
- ❌ 不要给"备选方案" (plan 必须唯一, 选最优那条)
|
||||
58
.opencode/agents/review.md
Normal file
58
.opencode/agents/review.md
Normal file
@@ -0,0 +1,58 @@
|
||||
# REVIEW agent — 审核与验证
|
||||
|
||||
你只负责**验 build agent 的产物是否能跑 / 满足 plan 验收标准**. 不改代码 (最多提修复建议).
|
||||
|
||||
## 输入
|
||||
- 整体任务目标 + 验收标准
|
||||
- build agent 的产物清单 (文件路径)
|
||||
- plan 的 verify 字段
|
||||
|
||||
## 工作流
|
||||
|
||||
1. `ls` workspace 确认文件真在
|
||||
2. 跑 plan 里每个 subtask 的 verify (命令 / 检查)
|
||||
3. 跑**端到端**: 真起服务, curl, 抓页面, 读响应, 验数据
|
||||
4. 静态检查: Python `py_compile`, JS `node -c`, 模板 `jinja2 --check` 或自己跑 render
|
||||
5. 边界检查: 空数据 / 错输入 / 网络断 / 大小写敏感
|
||||
|
||||
## 验证标准 (硬)
|
||||
|
||||
每个验收点必须输出:
|
||||
```
|
||||
CHECK <id>: PASS | FAIL
|
||||
cmd: <跑了什么命令>
|
||||
output: <关键输出>
|
||||
notes: <一句话解释>
|
||||
```
|
||||
|
||||
## 部署验证 (针对 LAN blog / web 任务)
|
||||
|
||||
如果产物是 web 应用:
|
||||
1. `python3 -m http.server <port> --bind 127.0.0.1 --directory <app_dir> &`
|
||||
2. `curl -sS http://127.0.0.1:<port>/` 取首页, 检查含关键元素
|
||||
3. `curl -sS http://127.0.0.1:<port>/api/<某端点>` 取 JSON, jq 校验结构
|
||||
4. kill 进程, 给端口让出来
|
||||
|
||||
## 输出 (严格)
|
||||
|
||||
最后输出:
|
||||
```
|
||||
## REVIEW REPORT
|
||||
verdict: PASS | FAIL
|
||||
checks:
|
||||
- id: <id>
|
||||
status: PASS | FAIL
|
||||
evidence: <一句话>
|
||||
issues:
|
||||
- severity: blocker | major | minor
|
||||
file: <路径:行号>
|
||||
description: <一句话>
|
||||
suggested_fix: <一句话>
|
||||
deployment_verified: true | false
|
||||
ready_for_handover: true | false
|
||||
```
|
||||
|
||||
## 禁用
|
||||
- ❌ 不要"修一下就好" (你是 reviewer, 不是 fixer, 改动让 manager 派回去)
|
||||
- ❌ 不要只看不跑 (verify 必须实际执行, 不接受"看起来对")
|
||||
- ❌ 不要放过 blocker (blocker = 必须修, 不是"建议修")
|
||||
50
opencode.jsonc
Normal file
50
opencode.jsonc
Normal file
@@ -0,0 +1,50 @@
|
||||
{
|
||||
"$schema": "https://opencode.ai/config.json",
|
||||
"plugin": ["oh-my-openagent"],
|
||||
"provider": {
|
||||
"litellm-local": {
|
||||
"npm": "@ai-sdk/openai-compatible",
|
||||
"name": "litellm-proxy (abee)",
|
||||
"options": {
|
||||
"baseURL": "http://127.0.0.1:4000/v1",
|
||||
"apiKey": "***"
|
||||
},
|
||||
"models": {
|
||||
"default": {
|
||||
"name": "Qwen3 35B (本地, 默认, thinking off)",
|
||||
"options": {
|
||||
"chat_template_kwargs": {"enable_thinking": false}
|
||||
}
|
||||
},
|
||||
"coding": {
|
||||
"name": "Kimi K2 (云端 coding)"
|
||||
},
|
||||
"analysis": {
|
||||
"name": "Qwen3.7 Plus (云端 analysis)"
|
||||
},
|
||||
"minimax-m3": {
|
||||
"name": "MiniMax-M3 (本会话同款)"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"model": "litellm-local/analysis",
|
||||
"agent": {
|
||||
"build": {
|
||||
"model": "litellm-local/coding",
|
||||
"prompt": "{file:./.opencode/agents/build.md}"
|
||||
},
|
||||
"plan": {
|
||||
"model": "litellm-local/analysis",
|
||||
"prompt": "{file:./.opencode/agents/plan.md}"
|
||||
},
|
||||
"manager": {
|
||||
"model": "litellm-local/analysis",
|
||||
"prompt": "{file:./.opencode/agents/manager.md}"
|
||||
},
|
||||
"review": {
|
||||
"model": "litellm-local/analysis",
|
||||
"prompt": "{file:./.opencode/agents/review.md}"
|
||||
}
|
||||
}
|
||||
}
|
||||
50
opencode.jsonc.tui-migration.bak
Normal file
50
opencode.jsonc.tui-migration.bak
Normal file
@@ -0,0 +1,50 @@
|
||||
{
|
||||
"$schema": "https://opencode.ai/config.json",
|
||||
"theme": "system",
|
||||
"provider": {
|
||||
"litellm-local": {
|
||||
"npm": "@ai-sdk/openai-compatible",
|
||||
"name": "litellm-proxy (abee)",
|
||||
"options": {
|
||||
"baseURL": "http://127.0.0.1:4000/v1",
|
||||
"apiKey": "***"
|
||||
},
|
||||
"models": {
|
||||
"default": {
|
||||
"name": "Qwen3 35B (本地, 默认, thinking off)",
|
||||
"options": {
|
||||
"chat_template_kwargs": {"enable_thinking": false}
|
||||
}
|
||||
},
|
||||
"coding": {
|
||||
"name": "Kimi K2 (云端 coding)"
|
||||
},
|
||||
"analysis": {
|
||||
"name": "Qwen3.7 Plus (云端 analysis)"
|
||||
},
|
||||
"minimax-m3": {
|
||||
"name": "MiniMax-M3 (本会话同款)"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"model": "litellm-local/analysis",
|
||||
"agent": {
|
||||
"build": {
|
||||
"model": "litellm-local/coding",
|
||||
"prompt": "{file:./.opencode/agents/build.md}"
|
||||
},
|
||||
"plan": {
|
||||
"model": "litellm-local/analysis",
|
||||
"prompt": "{file:./.opencode/agents/plan.md}"
|
||||
},
|
||||
"manager": {
|
||||
"model": "litellm-local/analysis",
|
||||
"prompt": "{file:./.opencode/agents/manager.md}"
|
||||
},
|
||||
"review": {
|
||||
"model": "litellm-local/analysis",
|
||||
"prompt": "{file:./.opencode/agents/review.md}"
|
||||
}
|
||||
}
|
||||
}
|
||||
401
package-lock.json
generated
Normal file
401
package-lock.json
generated
Normal file
@@ -0,0 +1,401 @@
|
||||
{
|
||||
"name": "opencode",
|
||||
"lockfileVersion": 3,
|
||||
"requires": true,
|
||||
"packages": {
|
||||
"": {
|
||||
"dependencies": {
|
||||
"@opencode-ai/plugin": "1.18.14"
|
||||
}
|
||||
},
|
||||
"node_modules/@ai-sdk/provider": {
|
||||
"version": "3.0.8",
|
||||
"resolved": "https://registry.npmjs.org/@ai-sdk/provider/-/provider-3.0.8.tgz",
|
||||
"integrity": "sha512-oGMAgGoQdBXbZqNG0Ze56CHjDZ1IDYOwGYxYjO5KLSlz5HiNQ9udIXsPZ61VWaHGZ5XW/jyjmr6t2xz2jGVwbQ==",
|
||||
"license": "Apache-2.0",
|
||||
"dependencies": {
|
||||
"json-schema": "^0.4.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=18"
|
||||
}
|
||||
},
|
||||
"node_modules/@msgpackr-extract/msgpackr-extract-darwin-arm64": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-arm64/-/msgpackr-extract-darwin-arm64-3.0.4.tgz",
|
||||
"integrity": "sha512-LCkGo6JDfaBhgST7UpPWgNgLINpcpabaHfyz5OBx75nUYxBsaEPxjnyNjWpeb/xBup/682QnBfRBy2/LvPutZQ==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
]
|
||||
},
|
||||
"node_modules/@msgpackr-extract/msgpackr-extract-darwin-x64": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-darwin-x64/-/msgpackr-extract-darwin-x64-3.0.4.tgz",
|
||||
"integrity": "sha512-zExlW9zUJKZH/tOtVMttwjKa4Xm/3KcNjnE3dPN92uCktwavMxpgCA3MoJK/DOnTWsQgo224OaST27/mPNAf+w==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"darwin"
|
||||
]
|
||||
},
|
||||
"node_modules/@msgpackr-extract/msgpackr-extract-linux-arm": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm/-/msgpackr-extract-linux-arm-3.0.4.tgz",
|
||||
"integrity": "sha512-Tg3yX65f5GbtXLkrYEHE5oibZG9epyYWas7FogTTEJeDEF9JlXJzKgXaNhT3UXlTOeA+AfZpYZYZ0uPj7Cfquw==",
|
||||
"cpu": [
|
||||
"arm"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
]
|
||||
},
|
||||
"node_modules/@msgpackr-extract/msgpackr-extract-linux-arm64": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-arm64/-/msgpackr-extract-linux-arm64-3.0.4.tgz",
|
||||
"integrity": "sha512-dgX0P/9wGPJeHFBG+ZmhgE6bmtMt7NP5CRBGyyktpopdk/mW4POnrpQsSLtKI1dwpc+pPLuXHDh6vvskyQE/sw==",
|
||||
"cpu": [
|
||||
"arm64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
]
|
||||
},
|
||||
"node_modules/@msgpackr-extract/msgpackr-extract-linux-x64": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-linux-x64/-/msgpackr-extract-linux-x64-3.0.4.tgz",
|
||||
"integrity": "sha512-8TNXMEjJc3QEy7R/x1INhgiU+XakDAFUzBhaz7+Rbrs8NH5UQeHQxxmzsSBJGyV6I1jW79undiQm8tOI+D+8FQ==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"linux"
|
||||
]
|
||||
},
|
||||
"node_modules/@msgpackr-extract/msgpackr-extract-win32-x64": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/@msgpackr-extract/msgpackr-extract-win32-x64/-/msgpackr-extract-win32-x64-3.0.4.tgz",
|
||||
"integrity": "sha512-CmCXPQrkbwExx3j946/PtHWHbYJiCRBRDl4BlkRQcJB/YOwQxJRTpoo7aTsortjgoJ1x7opzTSxn7C+ASSLVjQ==",
|
||||
"cpu": [
|
||||
"x64"
|
||||
],
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"os": [
|
||||
"win32"
|
||||
]
|
||||
},
|
||||
"node_modules/@opencode-ai/plugin": {
|
||||
"version": "1.18.14",
|
||||
"resolved": "https://registry.npmjs.org/@opencode-ai/plugin/-/plugin-1.18.14.tgz",
|
||||
"integrity": "sha512-M7gmzsQTE6z81fMZb8AaNd3u/FdQ8h7hhtQ59rWHnZMFMWusHXZM2S2BL1Z3E8kGWeveVluOVfTKtxJhCurXtw==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@ai-sdk/provider": "3.0.8",
|
||||
"@opencode-ai/sdk": "1.18.14",
|
||||
"effect": "4.0.0-beta.83",
|
||||
"zod": "4.1.8"
|
||||
},
|
||||
"peerDependencies": {
|
||||
"@opentui/core": ">=0.4.5",
|
||||
"@opentui/keymap": ">=0.4.5",
|
||||
"@opentui/solid": ">=0.4.5"
|
||||
},
|
||||
"peerDependenciesMeta": {
|
||||
"@opentui/core": {
|
||||
"optional": true
|
||||
},
|
||||
"@opentui/keymap": {
|
||||
"optional": true
|
||||
},
|
||||
"@opentui/solid": {
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"node_modules/@opencode-ai/sdk": {
|
||||
"version": "1.18.14",
|
||||
"resolved": "https://registry.npmjs.org/@opencode-ai/sdk/-/sdk-1.18.14.tgz",
|
||||
"integrity": "sha512-Yd8vPDT5DW++Hs2904Q/Vvk/m1U79aKFSRusgAfBQ+AGhfoT40LdeL5eiJtVy0xBUIZF/8DEZjkWaeof9Y59PA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"cross-spawn": "7.0.6"
|
||||
}
|
||||
},
|
||||
"node_modules/@standard-schema/spec": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "https://registry.npmjs.org/@standard-schema/spec/-/spec-1.1.0.tgz",
|
||||
"integrity": "sha512-l2aFy5jALhniG5HgqrD6jXLi/rUWrKvqN/qJx6yoJsgKhblVd+iqqU4RCXavm/jPityDo5TCvKMnpjKnOriy0w==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/cross-spawn": {
|
||||
"version": "7.0.6",
|
||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.6.tgz",
|
||||
"integrity": "sha512-uV2QOWP2nWzsy2aMp8aRibhi9dlzF5Hgh5SHaB9OiTGEyDTiJJyx0uy51QXdyWbtAHNua4XJzUKca3OzKUd3vA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"path-key": "^3.1.0",
|
||||
"shebang-command": "^2.0.0",
|
||||
"which": "^2.0.1"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 8"
|
||||
}
|
||||
},
|
||||
"node_modules/detect-libc": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-2.1.2.tgz",
|
||||
"integrity": "sha512-Btj2BOOO83o3WyH59e8MgXsxEQVcarkUOpEYrubB0urwnN10yQ364rsiByU11nZlqWYZm05i/of7io4mzihBtQ==",
|
||||
"license": "Apache-2.0",
|
||||
"optional": true,
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/effect": {
|
||||
"version": "4.0.0-beta.83",
|
||||
"resolved": "https://registry.npmjs.org/effect/-/effect-4.0.0-beta.83.tgz",
|
||||
"integrity": "sha512-0wsak8RtgGAr9UWSbVDgJHZcUqMSvicHcvaZv1MbMM7MCGgW4Rn/137J1MHQbwYPcwYGxT/IqehFd+UbYuj78w==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"@standard-schema/spec": "^1.1.0",
|
||||
"fast-check": "^4.8.0",
|
||||
"find-my-way-ts": "^0.1.6",
|
||||
"ini": "^7.0.0",
|
||||
"kubernetes-types": "^1.30.0",
|
||||
"msgpackr": "^2.0.1",
|
||||
"multipasta": "^0.2.7",
|
||||
"toml": "^4.1.1",
|
||||
"uuid": "^14.0.0",
|
||||
"yaml": "^2.9.0"
|
||||
}
|
||||
},
|
||||
"node_modules/fast-check": {
|
||||
"version": "4.9.0",
|
||||
"resolved": "https://registry.npmjs.org/fast-check/-/fast-check-4.9.0.tgz",
|
||||
"integrity": "sha512-7ms6T7SybUev/PQITciI0yLM2pOSFy5zpG8Ty7tQofcVaQUvrMXp6CBwqF6fThLCLOrfBtuHAtwq6Yu4XPCllg==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "individual",
|
||||
"url": "https://github.com/sponsors/dubzzz"
|
||||
},
|
||||
{
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/fast-check"
|
||||
}
|
||||
],
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"pure-rand": "^8.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=12.17.0"
|
||||
}
|
||||
},
|
||||
"node_modules/find-my-way-ts": {
|
||||
"version": "0.1.6",
|
||||
"resolved": "https://registry.npmjs.org/find-my-way-ts/-/find-my-way-ts-0.1.6.tgz",
|
||||
"integrity": "sha512-a85L9ZoXtNAey3Y6Z+eBWW658kO/MwR7zIafkIUPUMf3isZG0NCs2pjW2wtjxAKuJPxMAsHUIP4ZPGv0o5gyTA==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/ini": {
|
||||
"version": "7.0.0",
|
||||
"resolved": "https://registry.npmjs.org/ini/-/ini-7.0.0.tgz",
|
||||
"integrity": "sha512-ifK0CgjALofS5bkrcTy4RaQ9Vx2Knf/eLeIO+NaswQEpH1UblrtTSCIvN71qQDMq0PeQ/SSPojvEJp9vvvfr+w==",
|
||||
"license": "ISC",
|
||||
"engines": {
|
||||
"node": "^22.22.2 || ^24.15.0 || >=26.0.0"
|
||||
}
|
||||
},
|
||||
"node_modules/isexe": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
|
||||
"integrity": "sha512-RHxMLp9lnKHGHRng9QFhRCMbYAcVpn69smSGcq3f36xjgVVWThj4qqLbTLlq7Ssj8B+fIQ1EuCEGI2lKsyQeIw==",
|
||||
"license": "ISC"
|
||||
},
|
||||
"node_modules/json-schema": {
|
||||
"version": "0.4.0",
|
||||
"resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.4.0.tgz",
|
||||
"integrity": "sha512-es94M3nTIfsEPisRafak+HDLfHXnKBhV3vU5eqPcS3flIWqcxJWgXHXiey3YrpaNsanY5ei1VoYEbOzijuq9BA==",
|
||||
"license": "(AFL-2.1 OR BSD-3-Clause)"
|
||||
},
|
||||
"node_modules/kubernetes-types": {
|
||||
"version": "1.30.0",
|
||||
"resolved": "https://registry.npmjs.org/kubernetes-types/-/kubernetes-types-1.30.0.tgz",
|
||||
"integrity": "sha512-Dew1okvhM/SQcIa2rcgujNndZwU8VnSapDgdxlYoB84ZlpAD43U6KLAFqYo17ykSFGHNPrg0qry0bP+GJd9v7Q==",
|
||||
"license": "Apache-2.0"
|
||||
},
|
||||
"node_modules/msgpackr": {
|
||||
"version": "2.0.5",
|
||||
"resolved": "https://registry.npmjs.org/msgpackr/-/msgpackr-2.0.5.tgz",
|
||||
"integrity": "sha512-cef05H/dSYpLpqp3sj/qyZh5vhUYCalnaLO7j1yOmpsR0y/XwLVtK7r5gn+U/F7CTEfMowcGhlUQJDLcLf7jcA==",
|
||||
"license": "MIT",
|
||||
"optionalDependencies": {
|
||||
"msgpackr-extract": "^3.0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/msgpackr-extract": {
|
||||
"version": "3.0.4",
|
||||
"resolved": "https://registry.npmjs.org/msgpackr-extract/-/msgpackr-extract-3.0.4.tgz",
|
||||
"integrity": "sha512-4kmO/MdyUIkLIvTPr8VHLil4AtoKIoniWPIEk5+CDy0xnWC84azhSFmuJ7PxZdsYtiP5kEeQsORAVIeMgxT+Hw==",
|
||||
"hasInstallScript": true,
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"node-gyp-build-optional-packages": "5.2.2"
|
||||
},
|
||||
"bin": {
|
||||
"download-msgpackr-prebuilds": "bin/download-prebuilds.js"
|
||||
},
|
||||
"optionalDependencies": {
|
||||
"@msgpackr-extract/msgpackr-extract-darwin-arm64": "3.0.4",
|
||||
"@msgpackr-extract/msgpackr-extract-darwin-x64": "3.0.4",
|
||||
"@msgpackr-extract/msgpackr-extract-linux-arm": "3.0.4",
|
||||
"@msgpackr-extract/msgpackr-extract-linux-arm64": "3.0.4",
|
||||
"@msgpackr-extract/msgpackr-extract-linux-x64": "3.0.4",
|
||||
"@msgpackr-extract/msgpackr-extract-win32-x64": "3.0.4"
|
||||
}
|
||||
},
|
||||
"node_modules/multipasta": {
|
||||
"version": "0.2.8",
|
||||
"resolved": "https://registry.npmjs.org/multipasta/-/multipasta-0.2.8.tgz",
|
||||
"integrity": "sha512-ZPWuMKyv0cSO29f7hozp+k6+crZbQijV8ipMvxNxRf2SwtYGTX1ZX89Kd20VV4H9Znonx+EQn+iy1wGQsJ+b+Q==",
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/node-gyp-build-optional-packages": {
|
||||
"version": "5.2.2",
|
||||
"resolved": "https://registry.npmjs.org/node-gyp-build-optional-packages/-/node-gyp-build-optional-packages-5.2.2.tgz",
|
||||
"integrity": "sha512-s+w+rBWnpTMwSFbaE0UXsRlg7hU4FjekKU4eyAih5T8nJuNZT1nNsskXpxmeqSK9UzkBl6UgRlnKc8hz8IEqOw==",
|
||||
"license": "MIT",
|
||||
"optional": true,
|
||||
"dependencies": {
|
||||
"detect-libc": "^2.0.1"
|
||||
},
|
||||
"bin": {
|
||||
"node-gyp-build-optional-packages": "bin.js",
|
||||
"node-gyp-build-optional-packages-optional": "optional.js",
|
||||
"node-gyp-build-optional-packages-test": "build-test.js"
|
||||
}
|
||||
},
|
||||
"node_modules/path-key": {
|
||||
"version": "3.1.1",
|
||||
"resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
|
||||
"integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/pure-rand": {
|
||||
"version": "8.4.2",
|
||||
"resolved": "https://registry.npmjs.org/pure-rand/-/pure-rand-8.4.2.tgz",
|
||||
"integrity": "sha512-vvuOGgcuPJAirlHvuQw1TrOiw7ptaIXXmIbNuiNOY6lNGJJH49PQ1Kj4nd783nPdQhQdicgOjVI2yI/9BD6/Ng==",
|
||||
"funding": [
|
||||
{
|
||||
"type": "individual",
|
||||
"url": "https://github.com/sponsors/dubzzz"
|
||||
},
|
||||
{
|
||||
"type": "opencollective",
|
||||
"url": "https://opencollective.com/fast-check"
|
||||
}
|
||||
],
|
||||
"license": "MIT"
|
||||
},
|
||||
"node_modules/shebang-command": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
|
||||
"integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
|
||||
"license": "MIT",
|
||||
"dependencies": {
|
||||
"shebang-regex": "^3.0.0"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/shebang-regex": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
|
||||
"integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=8"
|
||||
}
|
||||
},
|
||||
"node_modules/toml": {
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/toml/-/toml-4.3.0.tgz",
|
||||
"integrity": "sha512-lVb8X9BsPVuH0M4BKeS91tXAmJvCjQ5UIyAbQFaxkKGyUFK2RPkhwaFSQH8vbpl1d23eu/IBH+dwVMHWaq9A5A==",
|
||||
"license": "MIT",
|
||||
"engines": {
|
||||
"node": ">=20"
|
||||
}
|
||||
},
|
||||
"node_modules/uuid": {
|
||||
"version": "14.0.1",
|
||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-14.0.1.tgz",
|
||||
"integrity": "sha512-6ZxzVpzDXDa3bJWaHilVayA+BH/1zmxCJoVgvmqJnid/gPoKHxUrS/aC/T6LGQtNHT+XHG9fXPJB4d+IrU30Ew==",
|
||||
"funding": [
|
||||
"https://github.com/sponsors/broofa",
|
||||
"https://github.com/sponsors/ctavan"
|
||||
],
|
||||
"license": "MIT",
|
||||
"bin": {
|
||||
"uuid": "dist-node/bin/uuid"
|
||||
}
|
||||
},
|
||||
"node_modules/which": {
|
||||
"version": "2.0.2",
|
||||
"resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
|
||||
"integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
|
||||
"license": "ISC",
|
||||
"dependencies": {
|
||||
"isexe": "^2.0.0"
|
||||
},
|
||||
"bin": {
|
||||
"node-which": "bin/node-which"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 8"
|
||||
}
|
||||
},
|
||||
"node_modules/yaml": {
|
||||
"version": "2.9.0",
|
||||
"resolved": "https://registry.npmjs.org/yaml/-/yaml-2.9.0.tgz",
|
||||
"integrity": "sha512-2AvhNX3mb8zd6Zy7INTtSpl1F15HW6Wnqj0srWlkKLcpYl/gMIMJiyuGq2KeI2YFxUPjdlB+3Lc10seMLtL4cA==",
|
||||
"license": "ISC",
|
||||
"bin": {
|
||||
"yaml": "bin.mjs"
|
||||
},
|
||||
"engines": {
|
||||
"node": ">= 14.6"
|
||||
},
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/eemeli"
|
||||
}
|
||||
},
|
||||
"node_modules/zod": {
|
||||
"version": "4.1.8",
|
||||
"resolved": "https://registry.npmjs.org/zod/-/zod-4.1.8.tgz",
|
||||
"integrity": "sha512-5R1P+WwQqmmMIEACyzSvo4JXHY5WiAFHRMg+zBZKgKS+Q1viRa0C1hmUKtHltoIFKtIdki3pRxkmpP74jnNYHQ==",
|
||||
"license": "MIT",
|
||||
"funding": {
|
||||
"url": "https://github.com/sponsors/colinhacks"
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
5
package.json
Normal file
5
package.json
Normal file
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"dependencies": {
|
||||
"@opencode-ai/plugin": "1.18.14"
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user