@mxalbert/context-mode 2.0.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.
Files changed (365) hide show
  1. package/.claude-plugin/marketplace.json +33 -0
  2. package/.claude-plugin/plugin.json +31 -0
  3. package/.codex-plugin/hooks.json +65 -0
  4. package/.codex-plugin/mcp.json +13 -0
  5. package/.codex-plugin/plugin.json +31 -0
  6. package/.openclaw-plugin/index.ts +12 -0
  7. package/.openclaw-plugin/openclaw.plugin.json +38 -0
  8. package/.openclaw-plugin/package.json +28 -0
  9. package/LICENSE +94 -0
  10. package/README.md +1619 -0
  11. package/bin/statusline.mjs +378 -0
  12. package/build/adapters/antigravity/index.d.ts +51 -0
  13. package/build/adapters/antigravity/index.js +169 -0
  14. package/build/adapters/antigravity-cli/index.d.ts +51 -0
  15. package/build/adapters/antigravity-cli/index.js +342 -0
  16. package/build/adapters/base.d.ts +92 -0
  17. package/build/adapters/base.js +135 -0
  18. package/build/adapters/claude-code/config.d.ts +8 -0
  19. package/build/adapters/claude-code/config.js +8 -0
  20. package/build/adapters/claude-code/hooks.d.ts +106 -0
  21. package/build/adapters/claude-code/hooks.js +183 -0
  22. package/build/adapters/claude-code/index.d.ts +80 -0
  23. package/build/adapters/claude-code/index.js +569 -0
  24. package/build/adapters/claude-code-base.d.ts +49 -0
  25. package/build/adapters/claude-code-base.js +113 -0
  26. package/build/adapters/client-map.d.ts +10 -0
  27. package/build/adapters/client-map.js +42 -0
  28. package/build/adapters/codex/config.d.ts +8 -0
  29. package/build/adapters/codex/config.js +8 -0
  30. package/build/adapters/codex/hooks.d.ts +55 -0
  31. package/build/adapters/codex/hooks.js +64 -0
  32. package/build/adapters/codex/index.d.ts +87 -0
  33. package/build/adapters/codex/index.js +995 -0
  34. package/build/adapters/codex/paths.d.ts +1 -0
  35. package/build/adapters/codex/paths.js +12 -0
  36. package/build/adapters/codex/usage.d.ts +107 -0
  37. package/build/adapters/codex/usage.js +227 -0
  38. package/build/adapters/copilot-base.d.ts +94 -0
  39. package/build/adapters/copilot-base.js +297 -0
  40. package/build/adapters/copilot-cli/hooks.d.ts +33 -0
  41. package/build/adapters/copilot-cli/hooks.js +64 -0
  42. package/build/adapters/copilot-cli/index.d.ts +48 -0
  43. package/build/adapters/copilot-cli/index.js +341 -0
  44. package/build/adapters/cursor/config.d.ts +4 -0
  45. package/build/adapters/cursor/config.js +4 -0
  46. package/build/adapters/cursor/hooks.d.ts +55 -0
  47. package/build/adapters/cursor/hooks.js +82 -0
  48. package/build/adapters/cursor/index.d.ts +64 -0
  49. package/build/adapters/cursor/index.js +517 -0
  50. package/build/adapters/detect.d.ts +136 -0
  51. package/build/adapters/detect.js +623 -0
  52. package/build/adapters/gemini-cli/config.d.ts +8 -0
  53. package/build/adapters/gemini-cli/config.js +8 -0
  54. package/build/adapters/gemini-cli/hooks.d.ts +83 -0
  55. package/build/adapters/gemini-cli/hooks.js +115 -0
  56. package/build/adapters/gemini-cli/index.d.ts +80 -0
  57. package/build/adapters/gemini-cli/index.js +483 -0
  58. package/build/adapters/jetbrains-copilot/config.d.ts +8 -0
  59. package/build/adapters/jetbrains-copilot/config.js +8 -0
  60. package/build/adapters/jetbrains-copilot/hooks.d.ts +59 -0
  61. package/build/adapters/jetbrains-copilot/hooks.js +87 -0
  62. package/build/adapters/jetbrains-copilot/index.d.ts +31 -0
  63. package/build/adapters/jetbrains-copilot/index.js +131 -0
  64. package/build/adapters/kimi/config.d.ts +8 -0
  65. package/build/adapters/kimi/config.js +8 -0
  66. package/build/adapters/kimi/hooks.d.ts +28 -0
  67. package/build/adapters/kimi/hooks.js +34 -0
  68. package/build/adapters/kimi/index.d.ts +66 -0
  69. package/build/adapters/kimi/index.js +537 -0
  70. package/build/adapters/kimi/paths.d.ts +21 -0
  71. package/build/adapters/kimi/paths.js +52 -0
  72. package/build/adapters/kimi/usage.d.ts +82 -0
  73. package/build/adapters/kimi/usage.js +217 -0
  74. package/build/adapters/kiro/hooks.d.ts +61 -0
  75. package/build/adapters/kiro/hooks.js +94 -0
  76. package/build/adapters/kiro/index.d.ts +61 -0
  77. package/build/adapters/kiro/index.js +301 -0
  78. package/build/adapters/omp/index.d.ts +65 -0
  79. package/build/adapters/omp/index.js +182 -0
  80. package/build/adapters/omp/plugin.d.ts +81 -0
  81. package/build/adapters/omp/plugin.js +331 -0
  82. package/build/adapters/omp/usage.d.ts +49 -0
  83. package/build/adapters/omp/usage.js +110 -0
  84. package/build/adapters/openclaw/config.d.ts +8 -0
  85. package/build/adapters/openclaw/config.js +8 -0
  86. package/build/adapters/openclaw/hooks.d.ts +50 -0
  87. package/build/adapters/openclaw/hooks.js +61 -0
  88. package/build/adapters/openclaw/index.d.ts +74 -0
  89. package/build/adapters/openclaw/index.js +439 -0
  90. package/build/adapters/openclaw/mcp-tools.d.ts +54 -0
  91. package/build/adapters/openclaw/mcp-tools.js +207 -0
  92. package/build/adapters/openclaw/plugin.d.ts +141 -0
  93. package/build/adapters/openclaw/plugin.js +818 -0
  94. package/build/adapters/openclaw/session-db.d.ts +55 -0
  95. package/build/adapters/openclaw/session-db.js +88 -0
  96. package/build/adapters/openclaw/usage.d.ts +34 -0
  97. package/build/adapters/openclaw/usage.js +52 -0
  98. package/build/adapters/openclaw/workspace-router.d.ts +29 -0
  99. package/build/adapters/openclaw/workspace-router.js +64 -0
  100. package/build/adapters/opencode/config.d.ts +8 -0
  101. package/build/adapters/opencode/config.js +8 -0
  102. package/build/adapters/opencode/hooks.d.ts +38 -0
  103. package/build/adapters/opencode/hooks.js +50 -0
  104. package/build/adapters/opencode/index.d.ts +144 -0
  105. package/build/adapters/opencode/index.js +638 -0
  106. package/build/adapters/opencode/plugin.d.ts +249 -0
  107. package/build/adapters/opencode/plugin.js +1536 -0
  108. package/build/adapters/opencode/v2.d.ts +117 -0
  109. package/build/adapters/opencode/v2.js +224 -0
  110. package/build/adapters/opencode/zod3tov4.d.ts +1 -0
  111. package/build/adapters/opencode/zod3tov4.js +132 -0
  112. package/build/adapters/pi/extension.d.ts +81 -0
  113. package/build/adapters/pi/extension.js +861 -0
  114. package/build/adapters/pi/index.d.ts +57 -0
  115. package/build/adapters/pi/index.js +173 -0
  116. package/build/adapters/pi/mcp-bridge.d.ts +268 -0
  117. package/build/adapters/pi/mcp-bridge.js +894 -0
  118. package/build/adapters/qwen-code/hooks.d.ts +26 -0
  119. package/build/adapters/qwen-code/hooks.js +29 -0
  120. package/build/adapters/qwen-code/index.d.ts +40 -0
  121. package/build/adapters/qwen-code/index.js +361 -0
  122. package/build/adapters/qwen-code/usage.d.ts +90 -0
  123. package/build/adapters/qwen-code/usage.js +222 -0
  124. package/build/adapters/types.d.ts +360 -0
  125. package/build/adapters/types.js +118 -0
  126. package/build/adapters/vscode-copilot/config.d.ts +8 -0
  127. package/build/adapters/vscode-copilot/config.js +8 -0
  128. package/build/adapters/vscode-copilot/hooks.d.ts +71 -0
  129. package/build/adapters/vscode-copilot/hooks.js +98 -0
  130. package/build/adapters/vscode-copilot/index.d.ts +32 -0
  131. package/build/adapters/vscode-copilot/index.js +222 -0
  132. package/build/adapters/zed/index.d.ts +40 -0
  133. package/build/adapters/zed/index.js +163 -0
  134. package/build/cli.d.ts +34 -0
  135. package/build/cli.js +1828 -0
  136. package/build/db-base.d.ts +250 -0
  137. package/build/db-base.js +756 -0
  138. package/build/executor.d.ts +72 -0
  139. package/build/executor.js +678 -0
  140. package/build/exit-classify.d.ts +19 -0
  141. package/build/exit-classify.js +12 -0
  142. package/build/fetch/blocks.d.ts +145 -0
  143. package/build/fetch/blocks.js +244 -0
  144. package/build/fetch/extract.d.ts +68 -0
  145. package/build/fetch/extract.js +123 -0
  146. package/build/fetch/page-store.d.ts +66 -0
  147. package/build/fetch/page-store.js +174 -0
  148. package/build/fetch-cache.d.ts +13 -0
  149. package/build/fetch-cache.js +15 -0
  150. package/build/lifecycle.d.ts +124 -0
  151. package/build/lifecycle.js +278 -0
  152. package/build/package-identity.d.ts +26 -0
  153. package/build/package-identity.js +28 -0
  154. package/build/runPool.d.ts +36 -0
  155. package/build/runPool.js +51 -0
  156. package/build/runtime.d.ts +71 -0
  157. package/build/runtime.js +659 -0
  158. package/build/search/auto-memory.d.ts +47 -0
  159. package/build/search/auto-memory.js +170 -0
  160. package/build/search/ctx-search-schema.d.ts +90 -0
  161. package/build/search/ctx-search-schema.js +135 -0
  162. package/build/search/flood-guard.d.ts +57 -0
  163. package/build/search/flood-guard.js +80 -0
  164. package/build/search/unified.d.ts +56 -0
  165. package/build/search/unified.js +104 -0
  166. package/build/security.d.ts +206 -0
  167. package/build/security.js +780 -0
  168. package/build/server.d.ts +240 -0
  169. package/build/server.js +5034 -0
  170. package/build/session/analytics.d.ts +773 -0
  171. package/build/session/analytics.js +2420 -0
  172. package/build/session/db.d.ts +468 -0
  173. package/build/session/db.js +1330 -0
  174. package/build/session/error-classifier.d.ts +87 -0
  175. package/build/session/error-classifier.js +303 -0
  176. package/build/session/event-emit.d.ts +48 -0
  177. package/build/session/event-emit.js +101 -0
  178. package/build/session/extract.d.ts +333 -0
  179. package/build/session/extract.js +2688 -0
  180. package/build/session/model-prices.json +429 -0
  181. package/build/session/persist-tool-calls.d.ts +54 -0
  182. package/build/session/persist-tool-calls.js +105 -0
  183. package/build/session/pricing.d.ts +64 -0
  184. package/build/session/pricing.js +151 -0
  185. package/build/session/project-attribution.d.ts +73 -0
  186. package/build/session/project-attribution.js +245 -0
  187. package/build/session/purge.d.ts +138 -0
  188. package/build/session/purge.js +240 -0
  189. package/build/session/retrieval-marker.d.ts +39 -0
  190. package/build/session/retrieval-marker.js +65 -0
  191. package/build/session/snapshot.d.ts +46 -0
  192. package/build/session/snapshot.js +532 -0
  193. package/build/store-directory.d.ts +56 -0
  194. package/build/store-directory.js +254 -0
  195. package/build/store.d.ts +147 -0
  196. package/build/store.js +1714 -0
  197. package/build/truncate.d.ts +57 -0
  198. package/build/truncate.js +142 -0
  199. package/build/types.d.ts +117 -0
  200. package/build/types.js +20 -0
  201. package/build/util/claude-config.d.ts +32 -0
  202. package/build/util/claude-config.js +84 -0
  203. package/build/util/hook-config.d.ts +27 -0
  204. package/build/util/hook-config.js +76 -0
  205. package/build/util/jsonc.d.ts +14 -0
  206. package/build/util/jsonc.js +104 -0
  207. package/build/util/plugin-cache-integrity.d.ts +51 -0
  208. package/build/util/plugin-cache-integrity.js +146 -0
  209. package/build/util/project-dir.d.ts +149 -0
  210. package/build/util/project-dir.js +340 -0
  211. package/build/util/sibling-mcp.d.ts +79 -0
  212. package/build/util/sibling-mcp.js +181 -0
  213. package/cli.bundle.mjs +1495 -0
  214. package/configs/antigravity/GEMINI.md +68 -0
  215. package/configs/antigravity/mcp_config.json +7 -0
  216. package/configs/antigravity-cli/hooks/hooks.json +37 -0
  217. package/configs/antigravity-cli/hooks.json +37 -0
  218. package/configs/antigravity-cli/mcp_config.json +10 -0
  219. package/configs/antigravity-cli/plugin.json +14 -0
  220. package/configs/antigravity-cli/rules/context-mode.md +77 -0
  221. package/configs/antigravity-cli/skills/context-mode/SKILL.md +77 -0
  222. package/configs/claude-code/CLAUDE.md +91 -0
  223. package/configs/codex/AGENTS.md +99 -0
  224. package/configs/codex/config.toml +8 -0
  225. package/configs/codex/hooks.json +47 -0
  226. package/configs/copilot-cli/.github/plugin/plugin.json +23 -0
  227. package/configs/copilot-cli/.mcp.json +12 -0
  228. package/configs/copilot-cli/README.md +47 -0
  229. package/configs/copilot-cli/hooks.json +41 -0
  230. package/configs/copilot-cli/skills/context-mode/SKILL.md +38 -0
  231. package/configs/cursor/context-mode.mdc +76 -0
  232. package/configs/cursor/hooks.json +21 -0
  233. package/configs/cursor/mcp.json +7 -0
  234. package/configs/gemini-cli/GEMINI.md +88 -0
  235. package/configs/gemini-cli/mcp.json +7 -0
  236. package/configs/gemini-cli/settings.json +60 -0
  237. package/configs/jetbrains-copilot/copilot-instructions.md +80 -0
  238. package/configs/jetbrains-copilot/hooks.json +16 -0
  239. package/configs/jetbrains-copilot/mcp.json +7 -0
  240. package/configs/kilo/AGENTS.md +84 -0
  241. package/configs/kilo/kilo.json +6 -0
  242. package/configs/kimi/hooks.json +54 -0
  243. package/configs/kiro/KIRO.md +84 -0
  244. package/configs/kiro/agent.json +18 -0
  245. package/configs/kiro/mcp.json +7 -0
  246. package/configs/omp/SYSTEM.md +85 -0
  247. package/configs/omp/mcp.json +7 -0
  248. package/configs/openclaw/AGENTS.md +87 -0
  249. package/configs/openclaw/openclaw.json +13 -0
  250. package/configs/opencode/AGENTS.md +84 -0
  251. package/configs/opencode/opencode.json +6 -0
  252. package/configs/pi/AGENTS.md +3 -0
  253. package/configs/qwen-code/QWEN.md +91 -0
  254. package/configs/vscode-copilot/copilot-instructions.md +80 -0
  255. package/configs/vscode-copilot/hooks.json +16 -0
  256. package/configs/vscode-copilot/mcp.json +7 -0
  257. package/configs/zed/AGENTS.md +68 -0
  258. package/hooks/antigravity-cli/payload.mjs +98 -0
  259. package/hooks/antigravity-cli/posttooluse.mjs +138 -0
  260. package/hooks/antigravity-cli/pretooluse.mjs +78 -0
  261. package/hooks/antigravity-cli/stop.mjs +58 -0
  262. package/hooks/auto-injection.mjs +102 -0
  263. package/hooks/cache-heal-utils.mjs +379 -0
  264. package/hooks/codex/platform.mjs +1 -0
  265. package/hooks/codex/posttooluse.mjs +66 -0
  266. package/hooks/codex/precompact.mjs +70 -0
  267. package/hooks/codex/pretooluse.mjs +42 -0
  268. package/hooks/codex/sessionstart.mjs +121 -0
  269. package/hooks/codex/stop.mjs +138 -0
  270. package/hooks/codex/userpromptsubmit.mjs +75 -0
  271. package/hooks/copilot-cli/posttooluse.mjs +79 -0
  272. package/hooks/copilot-cli/precompact.mjs +66 -0
  273. package/hooks/copilot-cli/pretooluse.mjs +41 -0
  274. package/hooks/copilot-cli/sessionstart.mjs +121 -0
  275. package/hooks/copilot-cli/stop.mjs +59 -0
  276. package/hooks/copilot-cli/userpromptsubmit.mjs +77 -0
  277. package/hooks/core/codex-caps.mjs +112 -0
  278. package/hooks/core/formatters.mjs +356 -0
  279. package/hooks/core/mcp-ready.mjs +109 -0
  280. package/hooks/core/platform-detect.mjs +49 -0
  281. package/hooks/core/routing.mjs +1050 -0
  282. package/hooks/core/stdin.mjs +90 -0
  283. package/hooks/core/tool-naming.mjs +57 -0
  284. package/hooks/cursor/afteragentresponse.mjs +74 -0
  285. package/hooks/cursor/hooks.json +31 -0
  286. package/hooks/cursor/posttooluse.mjs +72 -0
  287. package/hooks/cursor/pretooluse.mjs +26 -0
  288. package/hooks/cursor/sessionstart.mjs +97 -0
  289. package/hooks/cursor/stop.mjs +48 -0
  290. package/hooks/ensure-deps.mjs +254 -0
  291. package/hooks/formatters/claude-code.mjs +113 -0
  292. package/hooks/formatters/cursor.mjs +37 -0
  293. package/hooks/formatters/gemini-cli.mjs +55 -0
  294. package/hooks/formatters/vscode-copilot.mjs +55 -0
  295. package/hooks/gemini-cli/aftermodel.mjs +70 -0
  296. package/hooks/gemini-cli/aftertool.mjs +61 -0
  297. package/hooks/gemini-cli/beforeagent.mjs +99 -0
  298. package/hooks/gemini-cli/beforetool.mjs +27 -0
  299. package/hooks/gemini-cli/precompress.mjs +55 -0
  300. package/hooks/gemini-cli/sessionstart.mjs +137 -0
  301. package/hooks/heal-partial-install.mjs +712 -0
  302. package/hooks/hooks.json +143 -0
  303. package/hooks/jetbrains-copilot/posttooluse.mjs +61 -0
  304. package/hooks/jetbrains-copilot/precompact.mjs +55 -0
  305. package/hooks/jetbrains-copilot/pretooluse.mjs +27 -0
  306. package/hooks/jetbrains-copilot/sessionstart.mjs +124 -0
  307. package/hooks/kimi/platform.mjs +1 -0
  308. package/hooks/kimi/posttooluse.mjs +72 -0
  309. package/hooks/kimi/precompact.mjs +80 -0
  310. package/hooks/kimi/pretooluse.mjs +42 -0
  311. package/hooks/kimi/sessionend.mjs +61 -0
  312. package/hooks/kimi/sessionstart.mjs +113 -0
  313. package/hooks/kimi/stop.mjs +132 -0
  314. package/hooks/kimi/userpromptsubmit.mjs +90 -0
  315. package/hooks/kiro/agentspawn.mjs +97 -0
  316. package/hooks/kiro/posttooluse.mjs +51 -0
  317. package/hooks/kiro/pretooluse.mjs +64 -0
  318. package/hooks/kiro/userpromptsubmit.mjs +88 -0
  319. package/hooks/normalize-hooks.mjs +323 -0
  320. package/hooks/platform-bridge.mjs +340 -0
  321. package/hooks/posttooluse.mjs +225 -0
  322. package/hooks/precompact.mjs +100 -0
  323. package/hooks/pretooluse.mjs +227 -0
  324. package/hooks/qwen-code/platform.mjs +1 -0
  325. package/hooks/qwen-code/stop.mjs +168 -0
  326. package/hooks/routing-block.mjs +105 -0
  327. package/hooks/run-hook.mjs +95 -0
  328. package/hooks/security.bundle.mjs +2 -0
  329. package/hooks/session-attribution.bundle.mjs +1 -0
  330. package/hooks/session-db.bundle.mjs +145 -0
  331. package/hooks/session-directive.mjs +520 -0
  332. package/hooks/session-extract.bundle.mjs +3 -0
  333. package/hooks/session-helpers.mjs +428 -0
  334. package/hooks/session-loaders.mjs +448 -0
  335. package/hooks/session-snapshot.bundle.mjs +32 -0
  336. package/hooks/sessionstart.mjs +464 -0
  337. package/hooks/stop.mjs +82 -0
  338. package/hooks/suppress-stderr.mjs +25 -0
  339. package/hooks/userpromptsubmit.mjs +108 -0
  340. package/hooks/vscode-copilot/posttooluse.mjs +61 -0
  341. package/hooks/vscode-copilot/precompact.mjs +55 -0
  342. package/hooks/vscode-copilot/pretooluse.mjs +27 -0
  343. package/hooks/vscode-copilot/sessionstart.mjs +129 -0
  344. package/openclaw.plugin.json +38 -0
  345. package/package.json +132 -0
  346. package/scripts/heal-better-sqlite3.mjs +430 -0
  347. package/scripts/heal-installed-plugins.mjs +635 -0
  348. package/scripts/plugin-cache-integrity.mjs +248 -0
  349. package/scripts/postinstall.mjs +397 -0
  350. package/server.bundle.mjs +1421 -0
  351. package/server.js +5 -0
  352. package/skills/.ignore +7 -0
  353. package/skills/context-mode/SKILL.md +300 -0
  354. package/skills/context-mode/references/anti-patterns.md +283 -0
  355. package/skills/context-mode/references/patterns-javascript.md +298 -0
  356. package/skills/context-mode/references/patterns-python.md +304 -0
  357. package/skills/context-mode/references/patterns-shell.md +277 -0
  358. package/skills/ctx-doctor/SKILL.md +22 -0
  359. package/skills/ctx-index/SKILL.md +46 -0
  360. package/skills/ctx-insight/SKILL.md +24 -0
  361. package/skills/ctx-purge/SKILL.md +49 -0
  362. package/skills/ctx-search/SKILL.md +35 -0
  363. package/skills/ctx-stats/SKILL.md +26 -0
  364. package/skills/ctx-upgrade/SKILL.md +31 -0
  365. package/start.mjs +616 -0
@@ -0,0 +1,277 @@
1
+ # Shell Patterns for execute
2
+
3
+ Practical patterns for using `execute` with `language: shell`.
4
+ Best for piping, filtering, and leveraging native OS tools.
5
+
6
+ ---
7
+
8
+ ## Build Output Filtering
9
+
10
+ ### Capture build errors only
11
+
12
+ ```shell
13
+ npm run build 2>&1 | tee /tmp/build-output.txt
14
+ EXIT_CODE=${PIPESTATUS[0]}
15
+
16
+ echo "=== Build Result ==="
17
+ echo "Exit code: $EXIT_CODE"
18
+
19
+ if [ "$EXIT_CODE" -ne 0 ]; then
20
+ echo ""
21
+ echo "=== Errors ==="
22
+ grep -iE '(error|failed|FAIL)' /tmp/build-output.txt | head -50
23
+ echo ""
24
+ echo "=== Warnings ==="
25
+ grep -iE '(warning|warn)' /tmp/build-output.txt | head -20
26
+ else
27
+ echo "Build succeeded."
28
+ echo ""
29
+ echo "=== Warnings (if any) ==="
30
+ grep -iE '(warning|warn)' /tmp/build-output.txt | head -10
31
+ fi
32
+
33
+ echo ""
34
+ echo "=== Output Size ==="
35
+ wc -l < /tmp/build-output.txt | xargs -I{} echo "{} total lines of output"
36
+ rm -f /tmp/build-output.txt
37
+ ```
38
+ > summary_prompt: "Report build success/failure, list all errors with file paths, and count warnings"
39
+ > timeout_ms: 120000
40
+
41
+ ### TypeScript compilation check
42
+
43
+ ```shell
44
+ npx tsc --noEmit 2>&1 | tee /tmp/tsc-output.txt
45
+ EXIT_CODE=${PIPESTATUS[0]}
46
+
47
+ echo "=== TypeScript Check ==="
48
+ echo "Exit code: $EXIT_CODE"
49
+
50
+ TOTAL_ERRORS=$(grep -c 'error TS' /tmp/tsc-output.txt 2>/dev/null || echo 0)
51
+ echo "Total errors: $TOTAL_ERRORS"
52
+
53
+ if [ "$TOTAL_ERRORS" -gt 0 ]; then
54
+ echo ""
55
+ echo "=== Errors by Code ==="
56
+ grep -oP 'error TS\d+' /tmp/tsc-output.txt | sort | uniq -c | sort -rn | head -20
57
+
58
+ echo ""
59
+ echo "=== Errors by File ==="
60
+ grep 'error TS' /tmp/tsc-output.txt | cut -d'(' -f1 | sort | uniq -c | sort -rn | head -20
61
+
62
+ echo ""
63
+ echo "=== First 30 Errors ==="
64
+ grep 'error TS' /tmp/tsc-output.txt | head -30
65
+ fi
66
+
67
+ rm -f /tmp/tsc-output.txt
68
+ ```
69
+ > summary_prompt: "Report type error count, most common error codes, and most affected files"
70
+ > timeout_ms: 60000
71
+
72
+ ---
73
+
74
+ ## Test Result Summarization
75
+
76
+ ### Jest test summary
77
+
78
+ ```shell
79
+ npx jest --verbose 2>&1 | tee /tmp/test-output.txt
80
+ EXIT_CODE=${PIPESTATUS[0]}
81
+
82
+ echo ""
83
+ echo "=== Test Summary ==="
84
+ echo "Exit code: $EXIT_CODE"
85
+
86
+ # Extract summary line
87
+ grep -E '(Tests:|Test Suites:|Snapshots:|Time:)' /tmp/test-output.txt
88
+
89
+ echo ""
90
+ echo "=== Failed Tests ==="
91
+ grep -A 2 'FAIL ' /tmp/test-output.txt | head -40
92
+
93
+ echo ""
94
+ echo "=== Slow Tests (if reported) ==="
95
+ grep -i 'slow' /tmp/test-output.txt | head -10
96
+
97
+ rm -f /tmp/test-output.txt
98
+ ```
99
+ > summary_prompt: "Report pass/fail ratio, list all failing test names with suite, note any slow tests"
100
+ > timeout_ms: 120000
101
+
102
+ ### Pytest summary
103
+
104
+ ```shell
105
+ python -m pytest --tb=short -q 2>&1 | tee /tmp/pytest-output.txt
106
+ EXIT_CODE=${PIPESTATUS[0]}
107
+
108
+ echo ""
109
+ echo "=== Pytest Summary ==="
110
+ echo "Exit code: $EXIT_CODE"
111
+
112
+ # Last 20 lines usually contain the summary
113
+ tail -20 /tmp/pytest-output.txt
114
+
115
+ echo ""
116
+ echo "=== Failures ==="
117
+ grep -E '(FAILED|ERROR)' /tmp/pytest-output.txt | head -30
118
+
119
+ rm -f /tmp/pytest-output.txt
120
+ ```
121
+ > summary_prompt: "Report test results, list all failures with file and test name"
122
+ > timeout_ms: 120000
123
+
124
+ ---
125
+
126
+ ## Log File Analysis
127
+
128
+ ### Filter application logs by severity
129
+
130
+ ```shell
131
+ LOG_FILE="${1:-/var/log/app.log}"
132
+
133
+ echo "=== Log File: $LOG_FILE ==="
134
+ echo "Total lines: $(wc -l < "$LOG_FILE")"
135
+ echo ""
136
+
137
+ echo "=== Level Distribution ==="
138
+ grep -oE '\b(DEBUG|INFO|WARN|ERROR|FATAL)\b' "$LOG_FILE" | sort | uniq -c | sort -rn
139
+
140
+ echo ""
141
+ echo "=== Last 20 Errors ==="
142
+ grep -i 'ERROR\|FATAL' "$LOG_FILE" | tail -20
143
+
144
+ echo ""
145
+ echo "=== Error Timeline (hourly) ==="
146
+ grep -i 'ERROR' "$LOG_FILE" | grep -oE '\d{4}-\d{2}-\d{2} \d{2}' | sort | uniq -c | tail -24
147
+ ```
148
+ > summary_prompt: "Report error frequency, identify patterns, and note any error spikes"
149
+
150
+ ### Analyze access logs
151
+
152
+ ```shell
153
+ LOG_FILE="${1:-/var/log/access.log}"
154
+
155
+ echo "=== Access Log Summary ==="
156
+ echo "Total requests: $(wc -l < "$LOG_FILE")"
157
+
158
+ echo ""
159
+ echo "=== HTTP Status Codes ==="
160
+ awk '{print $9}' "$LOG_FILE" | sort | uniq -c | sort -rn | head -10
161
+
162
+ echo ""
163
+ echo "=== Top 20 Paths ==="
164
+ awk '{print $7}' "$LOG_FILE" | sort | uniq -c | sort -rn | head -20
165
+
166
+ echo ""
167
+ echo "=== Top 10 IPs ==="
168
+ awk '{print $1}' "$LOG_FILE" | sort | uniq -c | sort -rn | head -10
169
+
170
+ echo ""
171
+ echo "=== 5xx Errors ==="
172
+ awk '$9 ~ /^5/' "$LOG_FILE" | tail -20
173
+
174
+ echo ""
175
+ echo "=== Requests per Hour ==="
176
+ awk '{print $4}' "$LOG_FILE" | cut -d: -f1-2 | sort | uniq -c | tail -24
177
+ ```
178
+ > summary_prompt: "Report traffic patterns, error rates, most hit endpoints, and suspicious IPs"
179
+
180
+ ---
181
+
182
+ ## Directory Size and Structure Analysis
183
+
184
+ ### Project structure overview
185
+
186
+ ```shell
187
+ echo "=== Directory Structure ==="
188
+ find . -maxdepth 3 -type d \
189
+ ! -path '*/node_modules/*' \
190
+ ! -path '*/.git/*' \
191
+ ! -path '*/dist/*' \
192
+ ! -path '*/.next/*' \
193
+ ! -path '*/__pycache__/*' \
194
+ | sort
195
+
196
+ echo ""
197
+ echo "=== File Type Distribution ==="
198
+ find . -type f \
199
+ ! -path '*/node_modules/*' \
200
+ ! -path '*/.git/*' \
201
+ ! -path '*/dist/*' \
202
+ | sed 's/.*\.//' | sort | uniq -c | sort -rn | head -20
203
+
204
+ echo ""
205
+ echo "=== Largest Files (top 20) ==="
206
+ find . -type f \
207
+ ! -path '*/node_modules/*' \
208
+ ! -path '*/.git/*' \
209
+ -exec ls -la {} \; | sort -k5 -rn | head -20 | awk '{print $5, $9}'
210
+
211
+ echo ""
212
+ echo "=== Directory Sizes ==="
213
+ du -sh */ 2>/dev/null | sort -rh | head -15
214
+ ```
215
+ > summary_prompt: "Describe the project structure, identify large files that may need attention, report file type distribution"
216
+
217
+ ### Disk usage investigation
218
+
219
+ ```shell
220
+ echo "=== Top-Level Disk Usage ==="
221
+ du -sh */ 2>/dev/null | sort -rh
222
+
223
+ echo ""
224
+ echo "=== node_modules Size ==="
225
+ if [ -d "node_modules" ]; then
226
+ du -sh node_modules
227
+ echo ""
228
+ echo "=== Largest node_modules packages ==="
229
+ du -sh node_modules/*/ 2>/dev/null | sort -rh | head -20
230
+ else
231
+ echo "No node_modules directory"
232
+ fi
233
+
234
+ echo ""
235
+ echo "=== Build Artifacts ==="
236
+ for dir in dist build .next out .cache; do
237
+ if [ -d "$dir" ]; then
238
+ echo " $dir: $(du -sh "$dir" | cut -f1)"
239
+ fi
240
+ done
241
+
242
+ echo ""
243
+ echo "=== Git Objects Size ==="
244
+ if [ -d ".git" ]; then
245
+ du -sh .git
246
+ fi
247
+ ```
248
+ > summary_prompt: "Report total project size, largest contributors, and recommend cleanup targets"
249
+
250
+ ---
251
+
252
+ ## Git Analysis
253
+
254
+ ### Commit activity analysis
255
+
256
+ ```shell
257
+ echo "=== Recent Commits (last 30 days) ==="
258
+ git log --since="30 days ago" --oneline | wc -l | xargs -I{} echo "{} commits in last 30 days"
259
+
260
+ echo ""
261
+ echo "=== Commits by Author ==="
262
+ git shortlog -sn --since="30 days ago" | head -15
263
+
264
+ echo ""
265
+ echo "=== Most Changed Files (last 30 days) ==="
266
+ git log --since="30 days ago" --pretty=format: --name-only | sort | uniq -c | sort -rn | head -20
267
+
268
+ echo ""
269
+ echo "=== Branches ==="
270
+ echo "Local: $(git branch | wc -l | xargs)"
271
+ echo "Remote: $(git branch -r | wc -l | xargs)"
272
+
273
+ echo ""
274
+ echo "=== Stale Branches (merged, excluding main/master) ==="
275
+ git branch --merged main 2>/dev/null | grep -v 'main\|master\|\*' | head -10
276
+ ```
277
+ > summary_prompt: "Report development velocity, active contributors, hotspot files, and cleanup opportunities"
@@ -0,0 +1,22 @@
1
+ ---
2
+ name: ctx-doctor
3
+ description: |
4
+ Run context-mode diagnostics. Checks runtimes, hooks, FTS5,
5
+ plugin registration, npm and marketplace versions.
6
+ Trigger: /context-mode:ctx-doctor
7
+ user-invocable: true
8
+ ---
9
+
10
+ # Context Mode Doctor
11
+
12
+ Run diagnostics and display results directly in the conversation.
13
+
14
+ ## Instructions
15
+
16
+ 1. Call the `ctx_doctor` MCP tool directly. It runs all checks server-side and returns a plain-text status report.
17
+ 2. Display the results verbatim — they are already formatted with plain-text status prefixes: `[OK]` PASS, `[FAIL]` FAIL, `[WARN]` WARN. Renderer-safe (no markdown task-list syntax) for cross-client compatibility (e.g., Z.ai GLM).
18
+ 3. **Fallback** (only if MCP tool call fails): Derive the **plugin root** from this skill's base directory (go up 2 levels — remove `/skills/ctx-doctor`), then run with Bash:
19
+ ```
20
+ CLI="<PLUGIN_ROOT>/cli.bundle.mjs"; [ ! -f "$CLI" ] && CLI="<PLUGIN_ROOT>/build/cli.js"; node "$CLI" doctor
21
+ ```
22
+ Re-display results verbatim with the same `[OK]`/`[FAIL]`/`[WARN]` prefixes.
@@ -0,0 +1,46 @@
1
+ ---
2
+ name: ctx-index
3
+ description: |
4
+ Index a local file or directory into context-mode's persistent FTS5 knowledge base
5
+ so future ctx_search calls can retrieve focused snippets without rereading raw files.
6
+ Trigger: /context-mode:ctx-index
7
+ user-invocable: true
8
+ ---
9
+
10
+ # Context Mode Index
11
+
12
+ Index local project content for later search.
13
+
14
+ ## Instructions
15
+
16
+ 1. Prefer the `ctx_index` MCP tool when it is available.
17
+ 2. Ask for a path only if the user did not provide one and the current project root is ambiguous.
18
+ 3. Use `path`, not large inline `content`, so file bytes do not enter the conversation.
19
+ 4. For repository indexing, pass conservative bounds and a clear source label:
20
+
21
+ ```javascript
22
+ ctx_index({
23
+ path: ".",
24
+ source: "project:<name>",
25
+ maxDepth: 5,
26
+ maxFiles: 200
27
+ })
28
+ ```
29
+
30
+ 5. If MCP tools are unavailable, fall back to the CLI:
31
+
32
+ ```bash
33
+ context-mode index . --source project:<name>
34
+ ```
35
+
36
+ 6. Report the indexed source label, file count or section count, and the matching search command:
37
+
38
+ ```javascript
39
+ ctx_search({ source: "project:<name>", queries: ["..."] })
40
+ ```
41
+
42
+ ## Safety
43
+
44
+ - Do not index dependency directories, build outputs, secrets, or generated artifacts.
45
+ - Prefer `--exclude` or `exclude` for project-specific noisy paths.
46
+ - For broad repos, ask the user before raising `maxFiles` above 500.
@@ -0,0 +1,24 @@
1
+ ---
2
+ name: ctx-insight
3
+ description: |
4
+ Open the context-mode Insight dashboard in your default browser.
5
+ Insight is the hosted analytics layer for AI-assisted engineering teams —
6
+ per-engineer productive rate, retry waste, blocker detection, role-narrowed views.
7
+ Trigger: /context-mode:ctx-insight
8
+ user-invocable: true
9
+ ---
10
+
11
+ # Context Mode Insight
12
+
13
+ Open the hosted Insight dashboard in the user's default browser.
14
+
15
+ ## Instructions
16
+
17
+ 1. Call the `ctx_insight` MCP tool (no parameters). It opens
18
+ <https://context-mode.com/insight> in the default browser and returns a
19
+ confirmation line.
20
+ 2. Display the tool's output to the user.
21
+ 3. Tell the user:
22
+ - "Insight opened at https://context-mode.com/insight"
23
+ - The landing page at context-mode.com/insight is the single source of truth for sign-in and pricing details.
24
+ - If the browser did not open automatically, share the URL so they can open it manually.
@@ -0,0 +1,49 @@
1
+ ---
2
+ name: ctx-purge
3
+ description: |
4
+ Purge the context-mode knowledge base. Permanently deletes all indexed content
5
+ and resets session stats. This is destructive and cannot be undone.
6
+ Trigger: /context-mode:ctx-purge
7
+ user-invocable: true
8
+ ---
9
+
10
+ # Context Mode Purge
11
+
12
+ Permanently deletes session data for this project. Two scopes are supported (issue #520):
13
+
14
+ - **Project scope** (`scope: "project"`): wipes EVERYTHING — knowledge base, all session DB rows for every session, events markdown, and stats.
15
+ - **Session scope** (`sessionId: "<id>"` or `scope: "session"`): wipes ONLY the matching session's rows + FTS5 chunks. Sibling sessions, project stats, and the FTS5 store file are preserved.
16
+
17
+ ## Instructions
18
+
19
+ 1. **Decide the scope first** with the user:
20
+ - "Wipe just one session?" → ask for the `sessionId`.
21
+ - "Wipe the whole project?" → confirm scope:'project' (this is the destructive, irreversible default).
22
+ 2. **Warn the user about scope:'project'**. Everything will be deleted:
23
+ - FTS5 knowledge base (all indexed content from `ctx_index`, `ctx_fetch_and_index`, `ctx_batch_execute`)
24
+ - Session events DB (analytics, metadata, resume snapshots) for ALL sessions in the project
25
+ - Session events markdown file
26
+ - In-memory session stats + persisted stats file
27
+ 3. Call the `mcp__context-mode__ctx_purge` MCP tool with the chosen parameters:
28
+ - Scoped: `{ confirm: true, sessionId: "<id>" }` — implies scope:'session'.
29
+ - Project: `{ confirm: true, scope: "project" }` — explicit destructive form.
30
+ - Bare `{ confirm: true }` still works but emits a deprecation warning. Prefer the explicit forms.
31
+ 4. Report the result to the user — the response lists exactly what was deleted and (for scoped purges) confirms that other sessions and project stats were preserved.
32
+
33
+ ## Schema rules
34
+
35
+ - `confirm: true` is always required.
36
+ - `sessionId` and `scope: "project"` together is REJECTED as ambiguous (the sessionId implies session scope; combining with project scope contradicts intent).
37
+ - `scope: "session"` without `sessionId` throws — sessionId is required.
38
+
39
+ ## When to Use
40
+
41
+ - **Scoped (per-session)**: scratch acceptance scenarios, drill replays, isolating a polluted session without losing the main working session's stats.
42
+ - **Project**: KB contains stale or incorrect content polluting search results, switching between unrelated projects in the same session, completely fresh start.
43
+
44
+ ## Important
45
+
46
+ - `ctx_purge` is the **only** way to delete session data. No other mechanism exists.
47
+ - `ctx_stats` is read-only — shows statistics only.
48
+ - `/clear` and `/compact` do NOT affect any context-mode data.
49
+ - There is no undo. Re-index content if you need it again.
@@ -0,0 +1,35 @@
1
+ ---
2
+ name: ctx-search
3
+ description: |
4
+ Search context-mode's persistent FTS5 knowledge base for previously indexed
5
+ local project content, documentation, or session memory.
6
+ Trigger: /context-mode:ctx-search
7
+ user-invocable: true
8
+ ---
9
+
10
+ # Context Mode Search
11
+
12
+ Search indexed content without rereading raw sources into conversation context.
13
+
14
+ ## Instructions
15
+
16
+ 1. Prefer the `ctx_search` MCP tool when it is available.
17
+ 2. Batch all related questions in one `queries` array.
18
+ 3. Scope with `source` when the user names a project or indexed label.
19
+ 4. Use short, specific queries of two to four technical terms.
20
+
21
+ ```javascript
22
+ ctx_search({
23
+ source: "project:<name>",
24
+ queries: ["authentication middleware", "token refresh"],
25
+ limit: 5
26
+ })
27
+ ```
28
+
29
+ 5. If MCP tools are unavailable, fall back to the CLI:
30
+
31
+ ```bash
32
+ context-mode search "authentication middleware" --source project:<name> --limit 5
33
+ ```
34
+
35
+ 6. If the index is empty, tell the user to run `/context-mode:ctx-index` or `context-mode index <path>` first.
@@ -0,0 +1,26 @@
1
+ ---
2
+ name: ctx-stats
3
+ description: |
4
+ Show how much context window context-mode saved this session.
5
+ Displays token consumption, context savings ratio, and per-tool breakdown.
6
+ Read-only — shows stats only, no reset capability.
7
+ To wipe the knowledge base entirely, use ctx_purge instead.
8
+ Trigger: /context-mode:ctx-stats
9
+ user-invocable: true
10
+ ---
11
+
12
+ # Context Mode Stats
13
+
14
+ Show context savings for the current session.
15
+
16
+ ## Instructions
17
+
18
+ 1. Call the `mcp__context-mode__ctx_stats` MCP tool (no parameters needed).
19
+ 2. **CRITICAL**: You MUST copy-paste the ENTIRE tool output as markdown text directly into your response message. Do NOT summarize, do NOT collapse, do NOT paraphrase. The user must see the full tables without pressing ctrl+o. Copy every line exactly as returned by the tool.
20
+ 3. After the full output, add ONE sentence highlighting the key savings metric, e.g.:
21
+ - "context-mode saved **12.4x** — 92% of data stayed in sandbox."
22
+ - If no data yet: "No context-mode calls yet this session."
23
+
24
+ ## Purge
25
+
26
+ - **`ctx_purge(confirm: true)`** — Permanently deletes all indexed content from the knowledge base. Use `/context-mode:ctx-purge` for this.
@@ -0,0 +1,31 @@
1
+ ---
2
+ name: ctx-upgrade
3
+ description: |
4
+ Update context-mode from GitHub and fix hooks/settings.
5
+ Pulls latest, builds, installs, updates npm global, configures hooks.
6
+ Trigger: /context-mode:ctx-upgrade
7
+ user-invocable: true
8
+ ---
9
+
10
+ # Context Mode Upgrade
11
+
12
+ Pull latest from GitHub and reinstall the plugin.
13
+
14
+ ## Instructions
15
+
16
+ 1. Call the `ctx_upgrade` MCP tool directly. It returns a shell command to execute.
17
+ 2. Run the returned command using your shell execution tool (Bash, shell_execute, etc.).
18
+ 3. Display results as a markdown checklist:
19
+ ```
20
+ ## context-mode upgrade
21
+ - [x] Pulled latest from GitHub
22
+ - [x] Built and installed v1.0.39
23
+ - [x] Hooks configured
24
+ - [x] Doctor: all checks PASS
25
+ ```
26
+ Use `[x]` for success, `[ ]` for failure. Show actual version numbers.
27
+ 4. Tell the user to **restart their session** to pick up the new version.
28
+ 5. **Fallback** (only if MCP tool call fails): Derive the **plugin root** from this skill's base directory (go up 2 levels — remove `/skills/ctx-upgrade`), then run with Bash:
29
+ ```
30
+ CLI="<PLUGIN_ROOT>/cli.bundle.mjs"; [ ! -f "$CLI" ] && CLI="<PLUGIN_ROOT>/build/cli.js"; node "$CLI" upgrade
31
+ ```