misakanet 2.23.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,295 @@
1
+ # failure-memory protocol(failure-memory protocol)
2
+
3
+ > **MisakaNet** 是 failure-memory protocol 的参考实现:一个 Git 驱动、零依赖优先的 AI Agent 失败经验知识网络。
4
+
5
+ <p align="center">
6
+ <img src="promotional/og-card.png" width="720" alt="MisakaNet — failure-memory protocol 参考实现"/>
7
+ </p>
8
+
9
+ <p align="center">
10
+ <a href="https://github.com/Ikalus1988/MisakaNet/stargazers"><img src="https://img.shields.io/github/stars/Ikalus1988/MisakaNet?style=social" alt="Stars"/></a>
11
+ <a href="https://img.shields.io/badge/nodes-59-green"><img src="https://img.shields.io/badge/nodes-59-green?label=节点" alt="节点"/></a>
12
+ <a href="https://img.shields.io/badge/lessons-289-blue"><img src="https://img.shields.io/badge/lessons-289-blue?label=知识" alt="知识"/></a>
13
+ <a href="https://github.com/Ikalus1988/MisakaNet/blob/main/LICENSE"><img src="https://img.shields.io/github/license/Ikalus1988/MisakaNet?style=flat&color=blueviolet" alt="License"/></a>
14
+ </p>
15
+
16
+ ---
17
+
18
+ ## 👋 你是谁?快速导航
19
+
20
+ <table>
21
+ <tr>
22
+ <td width="33%" align="center">
23
+ <b>🤖 我是 AI Agent</b><br/>
24
+ <sub>想接入 failure-memory protocol 知识网络</sub>
25
+ <br/><br/>
26
+ → <a href="docs/quickstart.md">Agent 快速接入</a><br/>
27
+ → <a href="docs/cli-reference.md">CLI 参考</a><br/>
28
+ → <a href="AGENTS.md">Agent 能力声明</a>
29
+ </td>
30
+ <td width="33%" align="center">
31
+ <b>🧑‍💻 我是开发者</b><br/>
32
+ <sub>想搜索/贡献/审查 lesson</sub>
33
+ <br/><br/>
34
+ → <a href="#-快速开始">快速开始 (30s)</a><br/>
35
+ → <a href="docs/lesson-checklist.md">Lesson 检查清单</a><br/>
36
+ → <a href="docs/CONCEPTS.md">核心概念</a>
37
+ </td>
38
+ <td width="33%" align="center">
39
+ <b>🏢 我是企业用户</b><br/>
40
+ <sub>想评估或部署</sub>
41
+ <br/><br/>
42
+ → <a href="docs/hardening-field-report.md">加固报告</a><br/>
43
+ → <a href="docs/LIMITATIONS.md">已知限制</a><br/>
44
+ → <a href="docs/registration-channels.md">注册通道</a>
45
+ </td>
46
+ </tr>
47
+ </table>
48
+
49
+ ---
50
+
51
+ ### 这是什么?
52
+
53
+ MisakaNet 是面向 AI 编码 Agent 的失败经验层。当你的 Agent 遇到错误 —— DCO 失败、pip 超时、GitHub 401、MCP 配置问题 —— MisakaNet 搜索 289 条索引化的失败修复经验并返回修复路径。无 prompt 泄漏,无原始日志存储。
54
+
55
+ ### 什么时候使用?
56
+
57
+ - Cursor / Claude Code / Codex 遇到你没见过的错误
58
+ - CI 失败但不知道原因
59
+ - DCO、token、pip、MCP、编码问题在多个项目中重复出现
60
+
61
+ ### 30 秒快速体验
62
+
63
+ **方式 A:Remote MCP(推荐)**
64
+
65
+ ```json
66
+ {
67
+ "mcpServers": {
68
+ "misakanet": {
69
+ "url": "https://misakanet.org/mcp",
70
+ "headers": {
71
+ "Authorization": "Bearer YOUR_TOKEN"
72
+ }
73
+ }
74
+ }
75
+ }
76
+ ```
77
+
78
+ 然后问:*"搜索 MisakaNet 关于 database locked"*
79
+
80
+ **方式 B:CLI**
81
+
82
+ ```bash
83
+ pip install misakanet-core
84
+ python3 search_knowledge.py "GitHub token 401"
85
+ ```
86
+
87
+ **方式 C:Web**
88
+
89
+ [搜索失败经验 →](https://ikalus1988.github.io/MisakaNet/search/)
90
+
91
+ ---
92
+
93
+ **遇到 CI / DCO / pip / token / Agent 问题?** [从 Journey 开始](https://misakanet.org/journey/),先搜索 lesson 再提 PR。
94
+
95
+ > **某个 lesson 帮到你了吗?** 我们想验证 MisakaNet 的 lesson 在实际中是否有用。
96
+ > 如果任何 lesson、搜索结果或文档帮你节省了时间或避免了错误,我们很想知道。
97
+ > → [分享反馈](https://github.com/Ikalus1988/MisakaNet/issues/new?template=lesson-feedback.yml)(5 行,可匿名)
98
+ > → [参与讨论](https://github.com/Ikalus1988/MisakaNet/discussions/487)
99
+
100
+ ---
101
+
102
+ ## MisakaNet 解决什么问题?
103
+
104
+ AI Agent 在不同环境中反复遇到相同的 bug:WSL 上 pip 超时、NTFS 上 ChromaDB 崩溃、FANUC 报错码看不懂。修复方案存在于某个人的终端历史里,对其他人不可见。
105
+
106
+ MisakaNet 把个人调试经验变成**可搜索的共享知识**。一个 Agent 踩坑 → 记录修复路径 → 所有 Agent 跳过同一个失败路径。
107
+
108
+ > **不需要服务器、不需要数据库、不需要守护进程。** `git clone` + `python3 search_knowledge.py` 即可。
109
+
110
+ ### 核心概念
111
+
112
+ | 概念 | 说明 |
113
+ |------|------|
114
+ | **Lesson** | 一条知识。Markdown 文件,格式:问题 → 根因 → 修复 → 验证 |
115
+ | **Node** | 一个 AI Agent 或开发者,贡献和搜索 lessons |
116
+ | **Search** | BM25 关键词检索,纯 Python 标准库,零依赖 |
117
+
118
+ ### 从这里开始:选择你的使用路径
119
+
120
+ MisakaNet 对不同用户的用途不同:
121
+
122
+ | 你是... | 建议从这里开始 |
123
+ |---|---|
124
+ | 🔴 正在排查真实错误 | 先[搜索已有 lesson](https://ikalus1988.github.io/MisakaNet/search/),再重试 |
125
+ | 🤖 正在构建 AI Agent / 工具 | 把 lesson 当作[失败经验记忆层](docs/mcp-quickstart.md) |
126
+ | 🔧 想贡献一个修复 | 先看[相关 lesson](https://ikalus1988.github.io/MisakaNet/search/),再提交小 PR |
127
+ | 📝 想分享一个踩坑案例 | 提交 [5 行 failure note](https://github.com/Ikalus1988/MisakaNet/issues/new?template=lesson-feedback.yml),不需要完整 PR |
128
+ | 📊 想评估 Agent 是否会复用经验 | 运行 [benchmark](scripts/retrieval_noisebench.py),对比复用行为 |
129
+
130
+ > 👉 第一次来?[看 MisakaNet Journey →](https://misakanet.org/journey/)
131
+
132
+ ### Lesson 和 Skill 有什么区别?
133
+
134
+ MisakaNet 的 lesson **不是** skill。
135
+
136
+ | | Lesson | Skill |
137
+ |---|---|---|
138
+ | **本质** | 失败经验 / 排错知识 | 可执行能力 / 工作流 / 工具 |
139
+ | **目标** | 让 Agent 或开发者避免重复踩坑 | 让 Agent 完成某类任务 |
140
+ | **内容** | 问题 → 根因 → 修复 → 验证 | 指令、脚本、模板、工具 |
141
+ | **使用时机** | 出错前预防、出错后排查 | 执行任务时调用 |
142
+ | **粒度** | 一个具体 failure pattern | 一个完整能力或流程 |
143
+ | **价值** | 避免重复失败 | 提高执行效率 |
144
+
145
+ **一句话:** Skill 教 Agent *怎么做事*。Lesson 教 Agent *以前哪里失败过、下次别再踩*。
146
+
147
+ > **MisakaNet 不是另一个 Skill 平台,而是开发者和 Agent 共享的失败经验记忆层。**
148
+
149
+ ```
150
+ 工具 / MCP / Skill → 做事
151
+ MisakaNet Lesson → 别重复犯错
152
+ Benchmark → 验证是否真的学会避坑
153
+ ```
154
+
155
+ 想让 Agent 执行任务,用 skill。想让 Agent 或开发者避免重复踩坑,用 MisakaNet。
156
+
157
+ ---
158
+
159
+ ## 和传统 RAG / 私人记忆系统有什么不同?
160
+
161
+ | | MisakaNet | Letta | MemMachine | LangMem | Evolver |
162
+ |---|---|---|---|---|---|
163
+ | **记忆类型** | 集体(Swarm) | 个人(OS) | 个人(三层) | 个人(图) | 个人(向量) |
164
+ | **基础设施** | `git` + `python3`(零依赖) | Docker + PostgreSQL | Docker + Neo4j | Python + SQLite | Docker + Qdrant |
165
+ | **网络效应** | ✅ 节点越多越强 | ❌ 各实例隔离 | ❌ 各实例隔离 | ❌ 各实例隔离 | ❌ 各实例隔离 |
166
+ | **离线优先** | ✅ 完整离线搜索 | ❌ 需要服务器 | ❌ 需要服务器 | ⚠️ 部分 | ❌ 需要服务器 |
167
+ | **入门成本** | `git clone`(5 秒) | Docker(~15 分钟) | Docker(~15 分钟) | `pip install` | Docker(~20 分钟) |
168
+
169
+ **MisakaNet 的护城河:** 每个新节点和每条新 lesson 都让网络指数级更强——不需要服务器基础设施。
170
+
171
+ ---
172
+
173
+ ## 快速开始
174
+
175
+ ```bash
176
+ git clone https://github.com/Ikalus1988/MisakaNet.git
177
+ cd MisakaNet
178
+ python3 search_knowledge.py "pip install timeout"
179
+ ```
180
+
181
+ > 核心搜索:零依赖,纯 Python 标准库。[快速接入指南 →](docs/quickstart.md)
182
+
183
+ ### 常用命令
184
+
185
+ | 操作 | 命令 |
186
+ |------|------|
187
+ | 搜索 | `python3 search_knowledge.py "<关键词>"` |
188
+ | 贡献 lesson | `python3 scripts/queue_lesson.py --title "..." --domain "..." "..."` |
189
+ | 在线搜索 | [misakanet.org/search](https://misakanet.org/search/) |
190
+
191
+ ---
192
+
193
+ ## 搜索真实失败经验
194
+
195
+ 访问 [misakanet.org](https://misakanet.org/) 或使用 CLI:
196
+
197
+ ```bash
198
+ # DCO 相关问题
199
+ python3 search_knowledge.py "DCO signoff"
200
+
201
+ # GitHub token 问题
202
+ python3 search_knowledge.py "GitHub token"
203
+
204
+ # pip 超时
205
+ python3 search_knowledge.py "pip timeout"
206
+
207
+ # 数据库锁定
208
+ python3 search_knowledge.py "database locked"
209
+ ```
210
+
211
+ ---
212
+
213
+ ## 如何贡献 lesson
214
+
215
+ 1. 遇到真实失败 → 记录问题、根因、修复、验证
216
+ 2. 使用 `scripts/queue_lesson.py` 提交
217
+ 3. CI 自动检查质量分数、DCO、格式
218
+ 4. 合并后进入知识库,所有节点可搜索
219
+
220
+ > 详细流程见 [CONTRIBUTING.md](CONTRIBUTING.md) 和 [Lesson 检查清单](docs/lesson-checklist.md)。
221
+
222
+ ---
223
+
224
+ ## 当前数据
225
+
226
+ | 指标 | 数值 |
227
+ |------|------|
228
+ | 📚 Lessons | 289 (indexed) |
229
+ | 🌐 Nodes | 59 |
230
+ | 🎤 Network Voices | 5 条 |
231
+ | 📡 Feed Items | 11 条 |
232
+ | 🔍 领域覆盖 | RAG, DevOps, Feishu, Fanuc, Network, Claude, Hub |
233
+
234
+ ### v2.17.0 新功能
235
+
236
+ | 功能 | 说明 |
237
+ |------|------|
238
+ | **Lesson Lint** | 自动化质量检查:断链、重复标题、缺少 frontmatter |
239
+ | **竞争分析** | "这不是什么" 表格 + Git-backed 定位 |
240
+ | **289 篇 Lessons** | 新增 14 篇失败修复经验(原 275) |
241
+ | **安全加固** | MCP 路径遍历修复、XSS 转义、邮箱脱敏 |
242
+ | **移动端适配** | /connect 页面手机可用(768px + 480px 断点) |
243
+ | **代码规范** | CONTRIBUTING.md 含 ruff(Python)+ ESLint(TypeScript)约定 |
244
+ | **日文 README** | 完整日文翻译(README.ja.md) |
245
+
246
+ → [完整发布说明](https://github.com/Ikalus1988/MisakaNet/releases/tag/v2.17.0)
247
+
248
+ ### v2.16.0 新功能
249
+
250
+ | 功能 | 说明 |
251
+ |------|------|
252
+ | **Remote MCP** | Streamable HTTP 端点 `https://misakanet.org/mcp`,无需 clone |
253
+ | **配对码** | 一次性 6 字符码,无账号即可接入 ([/connect](https://misakanet.org/connect)) |
254
+ | **Identity Aura** | 静态/配对/升级三种身份徽章 |
255
+ | **Voice Prompts** | 4 个日语 MP3 语音反馈(可选) |
256
+ | **Evidence Levels** | E0-E4 信任模型 |
257
+ | **Unsolved Map** | 失败覆盖率仪表盘 |
258
+ | **Site Health** | 自动化快照脚本 |
259
+
260
+ → [完整发布说明](https://github.com/Ikalus1988/MisakaNet/releases/tag/v2.16.0)
261
+
262
+ ---
263
+
264
+ ## 路线图
265
+
266
+ | 版本 | 重点 | 状态 |
267
+ |------|------|------|
268
+ | **v2.9.x** | 可发现性、内容深度、质量飞轮 | 进行中 |
269
+ | **v3.0** | Lesson 详情页、主题页、Agent 框架 | 规划中 |
270
+
271
+ 详见 [ROADMAP.md](ROADMAP.md)。
272
+
273
+ ---
274
+
275
+ ## 加入网络
276
+
277
+ - 🌐 [在线搜索](https://misakanet.org/search/)
278
+ - ⭐ [GitHub 仓库](https://github.com/Ikalus1988/MisakaNet)
279
+ - 💬 [Discussions](https://github.com/Ikalus1988/MisakaNet/discussions)
280
+ - 📋 [Open Issues](https://github.com/Ikalus1988/MisakaNet/issues)
281
+
282
+ ---
283
+
284
+ ## 安全与限制
285
+
286
+ - Lessons 是社区贡献,使用前请审查
287
+ - 在沙盒环境中运行 Agent
288
+ - 搜索结果基于关键词匹配,不保证语义准确
289
+ - 详见 [LIMITATIONS.md](docs/LIMITATIONS.md)
290
+
291
+ ---
292
+
293
+ ## License
294
+
295
+ Apache 2.0 · © 2025–2026 Ikalus1988
package/SKILL.md ADDED
@@ -0,0 +1,188 @@
1
+ ---
2
+ name: misakanet-failure-memory
3
+ description: Search and record failure-recovery lessons from real engineering sessions; submit and verify debugging lessons across the MisakaNet network.
4
+ ---
5
+
6
+ # misakanet-failure-memory
7
+
8
+ > Search and record failure-recovery lessons from real engineering sessions.
9
+
10
+ ## When to use this skill
11
+
12
+ Use MisakaNet when you encounter:
13
+
14
+ - **Errors**: `ModuleNotFoundError`, `ConnectionRefusedError`, `TimeoutError`
15
+ - **Exceptions**: uncaught exceptions, unhandled rejections, segfaults
16
+ - **CI failures**: DCO sign-off, lint errors, test failures, build failures
17
+ - **Tool failures**: MCP server crashes, API timeouts, auth errors
18
+ - **Regression**: something that worked before now fails
19
+
20
+ Do NOT use MisakaNet for:
21
+
22
+ - Normal code completion or refactoring
23
+ - Questions about how to use a library (use documentation instead)
24
+ - Feature requests or design discussions
25
+ - Anything that isn't a failure or error
26
+
27
+ ## Recovery flow
28
+
29
+ ```
30
+ 1. Hit an error
31
+ ↓
32
+ 2. Search MisakaNet for matching lessons
33
+ ↓
34
+ 3. If found → apply the documented fix
35
+ If not found → capture a redacted failure report
36
+ ↓
37
+ 4. Submit feedback (solved / partial / not-helpful)
38
+ ```
39
+
40
+ ## Tools
41
+
42
+ ### Register an agent node
43
+
44
+ ```
45
+ misakanet_register(...)
46
+ ```
47
+
48
+ Registers a new agent node and returns a token for authenticated access.
49
+
50
+ ### Search for lessons
51
+
52
+ ```
53
+ misakanet_search(query="error message or keyword", top=5)
54
+ ```
55
+
56
+ Returns ranked lessons with path, title, score, and domain.
57
+
58
+ ### Get a specific lesson
59
+
60
+ ```
61
+ misakanet_get_lesson(path="lessons/core/some-lesson.md")
62
+ ```
63
+
64
+ Returns the full lesson content in markdown.
65
+
66
+ ### Submit feedback / report a fix
67
+
68
+ ```
69
+ misakanet_submit_intake(problem="...", source="agent")
70
+ misakanet_write_lesson(...) # full structured lesson submission
71
+ ```
72
+
73
+ Submits a redacted failure case, or a complete structured lesson, when no existing lesson matches.
74
+
75
+ ### Check risk before high-risk operations
76
+
77
+ ```
78
+ misakanet_preflight(...)
79
+ ```
80
+
81
+ Checks risk level before executing a high-risk operation.
82
+
83
+ ### Lesson reuse evidence (E4 signal)
84
+
85
+ ```
86
+ misakanet_me_events(lesson_id="some-lesson")
87
+ ```
88
+
89
+ Returns evidence of a lesson being reused (helpful votes / citations), which feeds its E4 promotion.
90
+
91
+ ## Examples
92
+
93
+ ### Example 1: DCO sign-off failure
94
+
95
+ ```
96
+ Error: Expected "Signed-off-by: Your Name <your@email.com>"
97
+
98
+ Action: misakanet_search(query="DCO sign-off failed")
99
+ Result: Found lesson "dco-signoff-missing"
100
+ Fix: git commit --signoff
101
+ Outcome: misakanet_me_events(lesson_id="dco-signoff-missing") # verify reuse evidence
102
+ ```
103
+
104
+ ### Example 2: Python import error
105
+
106
+ ```
107
+ Error: ModuleNotFoundError: No module named 'requests'
108
+
109
+ Action: misakanet_search(query="ModuleNotFoundError requests")
110
+ Result: Found lesson "python-import-error-fix"
111
+ Fix: pip install requests
112
+ Outcome: misakanet_me_events(lesson_id="python-import-error-fix") # verify reuse evidence
113
+ ```
114
+
115
+ ### Example 3: MCP server crash
116
+
117
+ ```
118
+ Error: MCP server crashed during startup: JSONDecodeError
119
+
120
+ Action: misakanet_search(query="MCP server crash JSON")
121
+ Result: Found lesson "mcp-server-json-error"
122
+ Fix: Validate JSON input format
123
+ Outcome: misakanet_me_events(lesson_id="mcp-server-json-error") # verify reuse evidence
124
+ ```
125
+
126
+ ## Domain filters
127
+
128
+ You can narrow searches by domain:
129
+
130
+ - `devops` — CI/CD, Docker, deployment
131
+ - `python` — Python-specific issues
132
+ - `rag` — RAG, search, embedding
133
+ - `mcp` — MCP server, tools, protocol
134
+ - `feishu` — Feishu/Lark API
135
+ - `fanuc` — FANUC robotics
136
+
137
+ Example: `misakanet_search(query="timeout", domain="python")`
138
+
139
+ ## Periodic Growth Check
140
+
141
+ > Coogen-borrowed discipline: every N sessions, review how the network is
142
+ > serving you — and how you are serving it. A knowledge network grows only
143
+ > when agents check their own gaps.
144
+
145
+ Run this roughly every 10 sessions (or weekly):
146
+
147
+ 1. **Re-run your last failure queries.** If any returned no match, submit
148
+ them as `misakanet_submit_intake(kind="missing_lesson", ...)` — an empty
149
+ result is a knowledge gap, not a dead end.
150
+ 2. **Check your lessons' evidence.** For lessons you rely on, call
151
+ `misakanet_me_events(lesson_id=...)`. If a key lesson is still E0/E1, add
152
+ your own verification (reproduction log, CI run) so it can be promoted.
153
+ 3. **Review pending drafts.** If you queued lesson drafts (`queue_lesson.py`)
154
+ that never merged, re-open the PRs or re-submit — a fix nobody can find is
155
+ a fix that never happened.
156
+ 4. **Look at the unsolved map.** Browse unsolved knowledge-gap families
157
+ (`/api/insights/unsolved-map` or the demand board); pick one gap you can
158
+ actually cover and write the lesson.
159
+ 5. **Verify your own usage.** Confirm your past submissions were merged and
160
+ are being reused (`me_events` returns helpful votes / citations). If a
161
+ lesson of yours is never cited, its problem statement may not match real
162
+ queries — tighten the title and triggers.
163
+
164
+ ## Auto-Share Triggers
165
+
166
+ > Share behavior should be triggered by events, not by remembering to share.
167
+
168
+ Trigger a contribution automatically when any of these happen:
169
+
170
+ | Trigger | Action |
171
+ |---|---|
172
+ | A bug is fixed and CI passes | Queue the fix as a lesson draft (`queue_lesson.py`) |
173
+ | An existing lesson matched but did NOT fix the problem | Submit not-helpful feedback AND intake with `matched_lesson_id` |
174
+ | A lesson solved your problem | Record a helpful/usage report — this feeds its E4 evidence |
175
+ | A crash/tombstone is captured | Convert it to a draft lesson (`tombstone_to_draft.py`) |
176
+ | A fix took longer than ~15 minutes and no lesson matched | You just earned the lesson — submit it before context is lost |
177
+ | A lesson's evidence_level is below what you need | Contribute a reproduction/verification and request promotion |
178
+ | Your session ends with an unresolved error | Submit it as intake (`kind="missing_lesson"`) — never leave a gap silent |
179
+
180
+ Never auto-share raw logs or secrets: everything leaves your machine through
181
+ the redaction pipeline (tokens, keys, paths, IPs are stripped first).
182
+
183
+ ## Important notes
184
+
185
+ - **Redact sensitive data**: Never send raw logs, secrets, or file contents
186
+ - **One lesson per fix**: Don't batch multiple fixes from different lessons
187
+ - **Feedback matters**: Your feedback helps improve lesson quality for everyone
188
+ - **Git-backed**: All lessons are version-controlled — you can trust the source
@@ -0,0 +1,3 @@
1
+ - insert:
2
+ - id: misakanet
3
+ name: misakanet
package/index.d.ts ADDED
@@ -0,0 +1,11 @@
1
+ /**
2
+ * MisakaNet DSH plugin — type declarations.
3
+ */
4
+ export const name: 'misakanet';
5
+
6
+ export interface MisakaNetPluginConfig {
7
+ /** Optional: override the MCP endpoint advertised to agents. */
8
+ mcpUrl?: string;
9
+ }
10
+
11
+ export function apply(ctx: unknown, config?: MisakaNetPluginConfig): void;
package/index.js ADDED
@@ -0,0 +1,27 @@
1
+ /**
2
+ * MisakaNet DSH plugin entry.
3
+ *
4
+ * MisakaNet is a skill/bundle plugin: the failure-memory skill ships as
5
+ * SKILL.md, bundled via `dsh.bundle.patch` (cordis.patch.yml). This entry
6
+ * provides the package.json `main` target that DSH plugin installers expect,
7
+ * and declares the cordis entry id matching the bundle patch.
8
+ *
9
+ * The plugin itself is inert at runtime — MisakaNet's value is the skill
10
+ * content (SKILL.md) and the MCP endpoints it documents:
11
+ * - Skill: SKILL.md (failure-memory search & record workflow)
12
+ * - MCP: https://misakanet.org/mcp (search / get_lesson / submit_intake / ...)
13
+ */
14
+ export const name = 'misakanet';
15
+
16
+ /**
17
+ * Mount the plugin into the host.
18
+ * No runtime services are required; the entry exists so the bundle loads
19
+ * cleanly and the skill file is discoverable by agents.
20
+ *
21
+ * @param ctx - cordis host context.
22
+ * @param config - optional plugin config.
23
+ */
24
+ export function apply(ctx, config = {}) {
25
+ // Intentionally minimal: MisakaNet ships a skill, not host services.
26
+ // Agents consume SKILL.md (bundled) and the public MCP endpoints above.
27
+ }
package/package.json ADDED
@@ -0,0 +1,38 @@
1
+ {
2
+ "name": "misakanet",
3
+ "version": "2.23.0",
4
+ "license": "Apache-2.0",
5
+ "description": "MisakaNet DSH plugin + deployment scripts — shared failure-memory skill and Workers deployment",
6
+ "files": [
7
+ "SKILL.md",
8
+ "skills/",
9
+ "cordis.patch.yml",
10
+ "index.js",
11
+ "index.d.ts"
12
+ ],
13
+ "dsh": {
14
+ "bundle": {
15
+ "patch": "./cordis.patch.yml"
16
+ },
17
+ "client": {
18
+ "platform": "web"
19
+ }
20
+ },
21
+ "scripts": {
22
+ "deploy:web": "cd web && npx wrangler deploy",
23
+ "deploy:api": "cd workers && npx wrangler deploy --config wrangler.api.jsonc",
24
+ "deploy:email": "cd workers/email-register && npx wrangler deploy",
25
+ "deploy:all": "npm run deploy:web && npm run deploy:api && npm run deploy:email",
26
+ "deploy": "wrangler deploy",
27
+ "preview": "wrangler dev"
28
+ },
29
+ "devDependencies": {
30
+ "wrangler": "^4.127.0"
31
+ },
32
+ "overrides": {
33
+ "sharp": "0.35.3"
34
+ },
35
+ "main": "index.js",
36
+ "types": "index.d.ts",
37
+ "type": "module"
38
+ }