lithermes-ai 0.5.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.
- package/LICENSE +21 -0
- package/README.md +245 -0
- package/README_Ko-KR.md +245 -0
- package/assets/lithermes-plugin/NOTICE.md +37 -0
- package/assets/lithermes-plugin/README.md +40 -0
- package/assets/lithermes-plugin/__init__.py +179 -0
- package/assets/lithermes-plugin/core.py +853 -0
- package/assets/lithermes-plugin/litgoal/__init__.py +10 -0
- package/assets/lithermes-plugin/litgoal/cli.py +133 -0
- package/assets/lithermes-plugin/litgoal/hook.py +48 -0
- package/assets/lithermes-plugin/litgoal/model.py +171 -0
- package/assets/lithermes-plugin/litgoal/runtime.py +273 -0
- package/assets/lithermes-plugin/litgoal/store.py +93 -0
- package/assets/lithermes-plugin/litgoal/tools.py +228 -0
- package/assets/lithermes-plugin/payload-version.json +471 -0
- package/assets/lithermes-plugin/plugin.yaml +9 -0
- package/assets/lithermes-plugin/skills/ai-slop-remover/SKILL.md +142 -0
- package/assets/lithermes-plugin/skills/comment-checker/SKILL.md +50 -0
- package/assets/lithermes-plugin/skills/debugging/SKILL.md +116 -0
- package/assets/lithermes-plugin/skills/debugging/references/methodology/00-setup.md +108 -0
- package/assets/lithermes-plugin/skills/debugging/references/methodology/02-investigate.md +121 -0
- package/assets/lithermes-plugin/skills/debugging/references/methodology/04-oracle-triple.md +136 -0
- package/assets/lithermes-plugin/skills/debugging/references/methodology/05-escalate.md +69 -0
- package/assets/lithermes-plugin/skills/debugging/references/methodology/06-fix.md +116 -0
- package/assets/lithermes-plugin/skills/debugging/references/methodology/08-qa.md +94 -0
- package/assets/lithermes-plugin/skills/debugging/references/methodology/09-cleanup.md +164 -0
- package/assets/lithermes-plugin/skills/debugging/references/methodology/partial-runtime-evidence.md +229 -0
- package/assets/lithermes-plugin/skills/debugging/references/runtimes/bundled-js-binary.md +415 -0
- package/assets/lithermes-plugin/skills/debugging/references/runtimes/go.md +252 -0
- package/assets/lithermes-plugin/skills/debugging/references/runtimes/native-binary.md +484 -0
- package/assets/lithermes-plugin/skills/debugging/references/runtimes/node.md +260 -0
- package/assets/lithermes-plugin/skills/debugging/references/runtimes/python.md +248 -0
- package/assets/lithermes-plugin/skills/debugging/references/runtimes/rust.md +234 -0
- package/assets/lithermes-plugin/skills/debugging/references/tools/ghidra.md +212 -0
- package/assets/lithermes-plugin/skills/debugging/references/tools/playwright-cli.md +194 -0
- package/assets/lithermes-plugin/skills/debugging/references/tools/pwndbg.md +263 -0
- package/assets/lithermes-plugin/skills/debugging/references/tools/pwntools.md +265 -0
- package/assets/lithermes-plugin/skills/frontend-ui-ux/SKILL.md +77 -0
- package/assets/lithermes-plugin/skills/lit-plan/SKILL.md +374 -0
- package/assets/lithermes-plugin/skills/litgoal/.gitkeep +0 -0
- package/assets/lithermes-plugin/skills/litgoal/SKILL.md +207 -0
- package/assets/lithermes-plugin/skills/litwork/SKILL.md +262 -0
- package/assets/lithermes-plugin/skills/lsp/SKILL.md +53 -0
- package/assets/lithermes-plugin/skills/programming/SKILL.md +463 -0
- package/assets/lithermes-plugin/skills/programming/references/go/README.md +90 -0
- package/assets/lithermes-plugin/skills/programming/references/go/backend-stack.md +641 -0
- package/assets/lithermes-plugin/skills/programming/references/go/bootstrap.md +328 -0
- package/assets/lithermes-plugin/skills/programming/references/go/bubbletea-v2.md +360 -0
- package/assets/lithermes-plugin/skills/programming/references/go/cobra-stack.md +468 -0
- package/assets/lithermes-plugin/skills/programming/references/go/concurrency.md +362 -0
- package/assets/lithermes-plugin/skills/programming/references/go/data-modeling.md +329 -0
- package/assets/lithermes-plugin/skills/programming/references/go/error-handling.md +359 -0
- package/assets/lithermes-plugin/skills/programming/references/go/golangci-strict.md +236 -0
- package/assets/lithermes-plugin/skills/programming/references/go/grpc-connect.md +375 -0
- package/assets/lithermes-plugin/skills/programming/references/go/libraries.md +337 -0
- package/assets/lithermes-plugin/skills/programming/references/go/one-liners.md +202 -0
- package/assets/lithermes-plugin/skills/programming/references/go/sqlc-pgx.md +471 -0
- package/assets/lithermes-plugin/skills/programming/references/go/testing.md +467 -0
- package/assets/lithermes-plugin/skills/programming/references/go/type-patterns.md +298 -0
- package/assets/lithermes-plugin/skills/programming/references/python/README.md +314 -0
- package/assets/lithermes-plugin/skills/programming/references/python/async-anyio.md +442 -0
- package/assets/lithermes-plugin/skills/programming/references/python/data-modeling.md +233 -0
- package/assets/lithermes-plugin/skills/programming/references/python/data-processing.md +133 -0
- package/assets/lithermes-plugin/skills/programming/references/python/error-handling.md +218 -0
- package/assets/lithermes-plugin/skills/programming/references/python/fastapi-stack.md +316 -0
- package/assets/lithermes-plugin/skills/programming/references/python/httpx2-optimization.md +360 -0
- package/assets/lithermes-plugin/skills/programming/references/python/libraries.md +307 -0
- package/assets/lithermes-plugin/skills/programming/references/python/one-liners.md +268 -0
- package/assets/lithermes-plugin/skills/programming/references/python/orjson-stack.md +378 -0
- package/assets/lithermes-plugin/skills/programming/references/python/pydantic-ai.md +285 -0
- package/assets/lithermes-plugin/skills/programming/references/python/pyproject-strict.md +232 -0
- package/assets/lithermes-plugin/skills/programming/references/python/textual-tui.md +201 -0
- package/assets/lithermes-plugin/skills/programming/references/python/type-patterns.md +176 -0
- package/assets/lithermes-plugin/skills/programming/references/rust/README.md +317 -0
- package/assets/lithermes-plugin/skills/programming/references/rust/async-tokio.md +299 -0
- package/assets/lithermes-plugin/skills/programming/references/rust/axum-stack.md +467 -0
- package/assets/lithermes-plugin/skills/programming/references/rust/cargo-strict.md +317 -0
- package/assets/lithermes-plugin/skills/programming/references/rust/clap-stack.md +409 -0
- package/assets/lithermes-plugin/skills/programming/references/rust/concurrency.md +375 -0
- package/assets/lithermes-plugin/skills/programming/references/rust/libraries.md +439 -0
- package/assets/lithermes-plugin/skills/programming/references/rust/one-liners.md +291 -0
- package/assets/lithermes-plugin/skills/programming/references/rust/proptest-insta.md +429 -0
- package/assets/lithermes-plugin/skills/programming/references/rust/type-state.md +354 -0
- package/assets/lithermes-plugin/skills/programming/references/rust/unsafe-discipline.md +250 -0
- package/assets/lithermes-plugin/skills/programming/references/rust/zero-cost-safety.md +527 -0
- package/assets/lithermes-plugin/skills/programming/references/rust-ub/README.md +289 -0
- package/assets/lithermes-plugin/skills/programming/references/rust-ub/miri-sanitizers-loom.md +411 -0
- package/assets/lithermes-plugin/skills/programming/references/rust-ub/ub-taxonomy.md +269 -0
- package/assets/lithermes-plugin/skills/programming/references/typescript/README.md +195 -0
- package/assets/lithermes-plugin/skills/programming/references/typescript/backend-hono.md +672 -0
- package/assets/lithermes-plugin/skills/programming/references/typescript/bootstrap.md +199 -0
- package/assets/lithermes-plugin/skills/programming/references/typescript/data-modeling.md +202 -0
- package/assets/lithermes-plugin/skills/programming/references/typescript/error-handling.md +169 -0
- package/assets/lithermes-plugin/skills/programming/references/typescript/tsconfig-strict.md +152 -0
- package/assets/lithermes-plugin/skills/programming/references/typescript/type-patterns.md +196 -0
- package/assets/lithermes-plugin/skills/programming/scripts/go/check-no-excuse-rules.sh +173 -0
- package/assets/lithermes-plugin/skills/programming/scripts/go/new-project.py +138 -0
- package/assets/lithermes-plugin/skills/programming/scripts/go/templates/.editorconfig +13 -0
- package/assets/lithermes-plugin/skills/programming/scripts/go/templates/.golangci.yml +95 -0
- package/assets/lithermes-plugin/skills/programming/scripts/go/templates/AGENTS.md.tmpl +24 -0
- package/assets/lithermes-plugin/skills/programming/scripts/go/templates/README.md.tmpl +12 -0
- package/assets/lithermes-plugin/skills/programming/scripts/go/templates/Taskfile.yml +40 -0
- package/assets/lithermes-plugin/skills/programming/scripts/go/templates/ci.yml +37 -0
- package/assets/lithermes-plugin/skills/programming/scripts/go/templates/config.go +24 -0
- package/assets/lithermes-plugin/skills/programming/scripts/go/templates/gitignore +15 -0
- package/assets/lithermes-plugin/skills/programming/scripts/go/templates/main.go.tmpl +22 -0
- package/assets/lithermes-plugin/skills/programming/scripts/go/templates/run.go +15 -0
- package/assets/lithermes-plugin/skills/programming/scripts/python/check-no-excuse-rules.py +687 -0
- package/assets/lithermes-plugin/skills/programming/scripts/python/new-project.py +172 -0
- package/assets/lithermes-plugin/skills/programming/scripts/python/new-script.py +116 -0
- package/assets/lithermes-plugin/skills/programming/scripts/rust/check-no-excuse-rules.py +296 -0
- package/assets/lithermes-plugin/skills/programming/scripts/rust/check-no-excuse-rules.sh +158 -0
- package/assets/lithermes-plugin/skills/programming/scripts/rust/new-project.py +175 -0
- package/assets/lithermes-plugin/skills/programming/scripts/typescript/check-no-excuse-rules.ts +282 -0
- package/assets/lithermes-plugin/skills/programming/scripts/typescript/new-project.ts +177 -0
- package/assets/lithermes-plugin/skills/refactor/SKILL.md +770 -0
- package/assets/lithermes-plugin/skills/remove-ai-slops/SKILL.md +335 -0
- package/assets/lithermes-plugin/skills/review-work/SKILL.md +562 -0
- package/assets/lithermes-plugin/skills/rules/SKILL.md +41 -0
- package/assets/lithermes-plugin/skills/start-work/SKILL.md +332 -0
- package/bin/lithermes.js +8 -0
- package/cover.png +0 -0
- package/package.json +39 -0
- package/src/cli.js +129 -0
- package/src/lib/check.js +94 -0
- package/src/lib/config.js +170 -0
- package/src/lib/files.js +65 -0
- package/src/lib/hermesDiscovery.js +50 -0
- package/src/lib/hud.js +121 -0
- package/src/lib/install.js +159 -0
- package/src/lib/patch.js +153 -0
- package/src/lib/skins.js +113 -0
- package/src/lib/spinner.js +104 -0
package/LICENSE
ADDED
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
MIT License
|
|
2
|
+
|
|
3
|
+
Copyright (c) 2026 wjgoarxiv
|
|
4
|
+
|
|
5
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
6
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
7
|
+
in the Software without restriction, including without limitation the rights
|
|
8
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
9
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
10
|
+
furnished to do so, subject to the following conditions:
|
|
11
|
+
|
|
12
|
+
The above copyright notice and this permission notice shall be included in all
|
|
13
|
+
copies or substantial portions of the Software.
|
|
14
|
+
|
|
15
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
16
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
17
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
18
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
19
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
20
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
21
|
+
SOFTWARE.
|
package/README.md
ADDED
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
<p align="center"><img src="./cover.png" width="100%" /></p>
|
|
2
|
+
|
|
3
|
+
<h1 align="center">LitHermes</h1>
|
|
4
|
+
|
|
5
|
+
<p align="center">
|
|
6
|
+
Install evidence-first Litwork commands into Hermes Agent with one <code>npx</code> or <code>bunx</code> command.
|
|
7
|
+
</p>
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
<a href="https://www.npmjs.com/package/lithermes-ai"><img src="https://img.shields.io/npm/v/lithermes-ai?color=14b8a6" alt="npm version" /></a>
|
|
11
|
+
<a href="https://github.com/wjgoarxiv/lithermes"><img src="https://img.shields.io/badge/GitHub-lithermes-111827" alt="GitHub repository" /></a>
|
|
12
|
+
<img src="https://img.shields.io/badge/Hermes-Agent-6366f1" alt="Hermes Agent" />
|
|
13
|
+
<img src="https://img.shields.io/badge/license-MIT-0f766e" alt="MIT license" />
|
|
14
|
+
</p>
|
|
15
|
+
|
|
16
|
+
<p align="center">
|
|
17
|
+
<a href="#quick-start">Quick Start</a> ·
|
|
18
|
+
<a href="#what-you-get">What You Get</a> ·
|
|
19
|
+
<a href="#install">Install</a> ·
|
|
20
|
+
<a href="#verify">Verify</a> ·
|
|
21
|
+
<a href="#telegram-gateway">Telegram Gateway</a> ·
|
|
22
|
+
<a href="./README_Ko-KR.md">한국어</a>
|
|
23
|
+
</p>
|
|
24
|
+
|
|
25
|
+
> This is the npm package source for LitHermes. It installs the Hermes plugin that provides `/lit`, `/lit-loop`, `/lit-plan`, and gateway-friendly aliases.
|
|
26
|
+
|
|
27
|
+
## Quick Start
|
|
28
|
+
|
|
29
|
+
Run a doctor check first:
|
|
30
|
+
|
|
31
|
+
```sh
|
|
32
|
+
npx lithermes-ai doctor
|
|
33
|
+
bunx lithermes-ai doctor
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
Install the plugin:
|
|
37
|
+
|
|
38
|
+
```sh
|
|
39
|
+
npx lithermes-ai install --yes
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Restart any running Hermes CLI or Hermes gateway process. Then open Hermes and try:
|
|
43
|
+
|
|
44
|
+
```text
|
|
45
|
+
/lit 이 폴더에 뭐가 있는지 정리해줘
|
|
46
|
+
/lit-plan lithermes를 더 안전하게 배포하는 플랜 세워줘
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## What You Get
|
|
50
|
+
|
|
51
|
+
- `/lit`: start an Litwork loop immediately.
|
|
52
|
+
- `/lit-loop`: explicit alias for the same execution loop.
|
|
53
|
+
- `/lit-plan`: create a durable implementation plan.
|
|
54
|
+
- `/litwork-loop` and `/litwork-plan`: longer aliases.
|
|
55
|
+
- `/lit_loop` and `/lit_plan`: gateway-friendly aliases for Telegram dispatch.
|
|
56
|
+
- Native `/goal` binding: Hermes has no model-facing goal tools, so `/lit`, `/lit-loop`, and `/lit-plan` bind the native standing `/goal` via the session goal manager (persists across turns; native evidence-judge decides completion). Criteria + evidence use the durable `goal_*` tools.
|
|
57
|
+
- Interactive install spinner keeps terminal installs lively while redirected or scripted installs stay plain; use `npx lithermes-ai install --yes --no-spinner` for quiet terminal installs.
|
|
58
|
+
- `start-work`: open or dry-run a LitHermes plan inside Hermes.
|
|
59
|
+
- LitHermes workflow skill set: `ai-slop-remover`, `comment-checker`,
|
|
60
|
+
`debugging`, `frontend-ui-ux`, `lsp`, `programming`, `refactor`,
|
|
61
|
+
`remove-ai-slops`, `review-work`, `rules`, `start-work`, `lit-plan`,
|
|
62
|
+
`litgoal`, and `litwork` are installed as `lithermes:*` skills.
|
|
63
|
+
- The full plugin payload — the `pre_llm_call` / `subagent_stop` /
|
|
64
|
+
`on_session_start` hooks, every skill, and the durable goal tooling — ships in
|
|
65
|
+
the bundle exactly as installed, so each release is reproducible and auditable.
|
|
66
|
+
|
|
67
|
+
## Requirements
|
|
68
|
+
|
|
69
|
+
- Hermes Agent already installed on the machine.
|
|
70
|
+
- Node.js 18 or newer for `npx`.
|
|
71
|
+
- Bun if you want to use `bunx`.
|
|
72
|
+
- Write access to the Hermes home directory, normally `~/.hermes`.
|
|
73
|
+
|
|
74
|
+
The default install target is:
|
|
75
|
+
|
|
76
|
+
```text
|
|
77
|
+
~/.hermes/plugins/lithermes
|
|
78
|
+
~/.hermes/config.yaml
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Use `--hermes-home PATH` if your Hermes home is somewhere else.
|
|
82
|
+
|
|
83
|
+
## Install
|
|
84
|
+
|
|
85
|
+
Preview changes without writing anything:
|
|
86
|
+
|
|
87
|
+
```sh
|
|
88
|
+
npx lithermes-ai install --dry-run
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
Install with npm:
|
|
92
|
+
|
|
93
|
+
```sh
|
|
94
|
+
npx lithermes-ai install --yes
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Install with Bun:
|
|
98
|
+
|
|
99
|
+
```sh
|
|
100
|
+
bunx lithermes-ai install --yes
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Install into a custom Hermes home:
|
|
104
|
+
|
|
105
|
+
```sh
|
|
106
|
+
npx lithermes-ai install --yes --hermes-home /path/to/.hermes
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
LitHermes refuses to mutate Hermes config unless you pass `--yes`. If `~/.hermes/plugins/lithermes` already exists but was not created by this installer, installation stops instead of overwriting user files.
|
|
110
|
+
|
|
111
|
+
## Verify
|
|
112
|
+
|
|
113
|
+
Check the package and Hermes compatibility:
|
|
114
|
+
|
|
115
|
+
```sh
|
|
116
|
+
npx lithermes-ai doctor
|
|
117
|
+
bunx lithermes-ai doctor
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
Check an installed plugin:
|
|
121
|
+
|
|
122
|
+
```sh
|
|
123
|
+
npx lithermes-ai check --offline
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
Expected successful output includes:
|
|
127
|
+
|
|
128
|
+
```text
|
|
129
|
+
LitHermes check PASS
|
|
130
|
+
commands: lit, lit-loop, lit-plan
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
For gateway compatibility checks:
|
|
134
|
+
|
|
135
|
+
```sh
|
|
136
|
+
npx lithermes-ai check --gateway-offline --hermes-repo /path/to/hermes-agent
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
Expected successful output includes:
|
|
140
|
+
|
|
141
|
+
```text
|
|
142
|
+
gateway /lit_loop PASS
|
|
143
|
+
gateway /lit_plan PASS
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## Hermes Goal Tools
|
|
147
|
+
|
|
148
|
+
Hermes exposes no model-facing goal tools. LitHermes binds the native standing `/goal` for you through the session goal manager when you start an Litwork run, so it persists across turns and the native evidence-judge decides completion. Success criteria and evidence are tracked with the durable `goal_*` tools and `hermes lithermes goal status`.
|
|
149
|
+
|
|
150
|
+
That means a recent Hermes Agent can continue the same LitHermes work across turns instead of stopping after the command creates a run directory or plan file.
|
|
151
|
+
|
|
152
|
+
## Telegram Gateway
|
|
153
|
+
|
|
154
|
+
LitHermes does not contact Telegram during install. It only installs the Hermes plugin and checks whether the local Hermes gateway source supports plugin command dispatch.
|
|
155
|
+
|
|
156
|
+
After installing:
|
|
157
|
+
|
|
158
|
+
1. Restart the Hermes gateway process.
|
|
159
|
+
2. In Telegram, send `/lit_loop your task`.
|
|
160
|
+
3. For planning-only work, send `/lit_plan your task`.
|
|
161
|
+
|
|
162
|
+
If Telegram does not recognize the command, run:
|
|
163
|
+
|
|
164
|
+
```sh
|
|
165
|
+
npx lithermes-ai doctor --hermes-repo /path/to/hermes-agent
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
If `cli payload dispatch`, `tui payload dispatch`, or `gateway underscore dispatch` is not `PASS`, update Hermes or use the patch fallback below.
|
|
169
|
+
|
|
170
|
+
## Patch Fallback
|
|
171
|
+
|
|
172
|
+
When LitHermes can find `~/.hermes/hermes-agent`, `install --yes` attempts known compatibility patches automatically and writes backups first. Use the explicit form when Hermes lives elsewhere, or add `--no-patch-installed-hermes` if you only want to copy the plugin.
|
|
173
|
+
|
|
174
|
+
```sh
|
|
175
|
+
npx lithermes-ai install --yes --patch-installed-hermes --hermes-repo /path/to/hermes-agent
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
The patch path writes `.lithermes.bak` backups and a rollback manifest under the Hermes home.
|
|
179
|
+
|
|
180
|
+
Rollback patches:
|
|
181
|
+
|
|
182
|
+
```sh
|
|
183
|
+
npx lithermes-ai uninstall --yes --rollback-patches
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
## Uninstall
|
|
187
|
+
|
|
188
|
+
Remove only manifest-owned LitHermes files and remove the config entry:
|
|
189
|
+
|
|
190
|
+
```sh
|
|
191
|
+
npx lithermes-ai uninstall --yes
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
Uninstall intentionally preserves unrelated files in `~/.hermes/plugins`.
|
|
195
|
+
|
|
196
|
+
## Troubleshooting
|
|
197
|
+
|
|
198
|
+
### `Hermes installation not found`
|
|
199
|
+
|
|
200
|
+
Pass the Hermes home explicitly:
|
|
201
|
+
|
|
202
|
+
```sh
|
|
203
|
+
npx lithermes-ai doctor --hermes-home /path/to/.hermes
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### Commands do not appear inside Hermes
|
|
207
|
+
|
|
208
|
+
Restart Hermes. Plugin discovery is loaded by the running process, so an already-open CLI or gateway may not see a newly installed plugin.
|
|
209
|
+
|
|
210
|
+
Then check:
|
|
211
|
+
|
|
212
|
+
```sh
|
|
213
|
+
npx lithermes-ai check --offline
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
### Telegram `/lit_loop` does not respond
|
|
217
|
+
|
|
218
|
+
Run:
|
|
219
|
+
|
|
220
|
+
```sh
|
|
221
|
+
npx lithermes-ai check --gateway-offline --hermes-repo /path/to/hermes-agent
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
If the gateway check fails, update Hermes or use the explicit patch fallback.
|
|
225
|
+
|
|
226
|
+
### Bun local tarball testing
|
|
227
|
+
|
|
228
|
+
Current Bun versions may not execute a local tarball directly with `bunx ./file.tgz`. For local release testing, install the tarball into a temp project and run the binary:
|
|
229
|
+
|
|
230
|
+
```sh
|
|
231
|
+
bun init -y
|
|
232
|
+
bun add ./lithermes-*.tgz
|
|
233
|
+
bunx --no-install lithermes doctor
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
## Release Checklist
|
|
237
|
+
|
|
238
|
+
```sh
|
|
239
|
+
npm test
|
|
240
|
+
npm pack --dry-run --json
|
|
241
|
+
npm publish --access public
|
|
242
|
+
npx --yes lithermes@latest doctor
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
Security note: `npx` and `bunx` execute package code. Use `doctor` and `--dry-run` first when installing on a sensitive Hermes host.
|
package/README_Ko-KR.md
ADDED
|
@@ -0,0 +1,245 @@
|
|
|
1
|
+
<p align="center"><img src="./cover.png" width="100%" /></p>
|
|
2
|
+
|
|
3
|
+
<h1 align="center">LitHermes</h1>
|
|
4
|
+
|
|
5
|
+
<p align="center">
|
|
6
|
+
Hermes Agent에 evidence-first Litwork 명령을 설치하는 <code>npx</code>/<code>bunx</code> 패키지입니다.
|
|
7
|
+
</p>
|
|
8
|
+
|
|
9
|
+
<p align="center">
|
|
10
|
+
<a href="https://www.npmjs.com/package/lithermes-ai"><img src="https://img.shields.io/npm/v/lithermes-ai?color=14b8a6" alt="npm version" /></a>
|
|
11
|
+
<a href="https://github.com/wjgoarxiv/lithermes"><img src="https://img.shields.io/badge/GitHub-lithermes-111827" alt="GitHub repository" /></a>
|
|
12
|
+
<img src="https://img.shields.io/badge/Hermes-Agent-6366f1" alt="Hermes Agent" />
|
|
13
|
+
<img src="https://img.shields.io/badge/license-MIT-0f766e" alt="MIT license" />
|
|
14
|
+
</p>
|
|
15
|
+
|
|
16
|
+
<p align="center">
|
|
17
|
+
<a href="#빠른-시작">빠른 시작</a> ·
|
|
18
|
+
<a href="#무엇이-설치되나요">무엇이 설치되나요</a> ·
|
|
19
|
+
<a href="#설치">설치</a> ·
|
|
20
|
+
<a href="#확인">확인</a> ·
|
|
21
|
+
<a href="#텔레그램-게이트웨이">텔레그램 게이트웨이</a> ·
|
|
22
|
+
<a href="./README.md">English</a>
|
|
23
|
+
</p>
|
|
24
|
+
|
|
25
|
+
> 이 문서는 LitHermes npm package 사용 설명서입니다. 설치 후 Hermes에서 `/lit`, `/lit-loop`, `/lit-plan`을 사용할 수 있고, Hermes gateway에서는 `/lit_loop`, `/lit_plan` alias도 사용할 수 있습니다.
|
|
26
|
+
|
|
27
|
+
## 빠른 시작
|
|
28
|
+
|
|
29
|
+
먼저 현재 Hermes 환경이 LitHermes를 받을 수 있는지 확인합니다.
|
|
30
|
+
|
|
31
|
+
```sh
|
|
32
|
+
npx lithermes-ai doctor
|
|
33
|
+
bunx lithermes-ai doctor
|
|
34
|
+
```
|
|
35
|
+
|
|
36
|
+
설치합니다.
|
|
37
|
+
|
|
38
|
+
```sh
|
|
39
|
+
npx lithermes-ai install --yes
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
실행 중인 Hermes CLI 또는 Hermes gateway를 재시작합니다. 그 다음 Hermes에서 이렇게 사용합니다.
|
|
43
|
+
|
|
44
|
+
```text
|
|
45
|
+
/lit 이 폴더에 뭐가 있는지 정리해줘
|
|
46
|
+
/lit-plan lithermes를 더 안전하게 배포하는 플랜 세워줘
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
## 무엇이 설치되나요
|
|
50
|
+
|
|
51
|
+
- `/lit`: Litwork loop를 바로 시작합니다.
|
|
52
|
+
- `/lit-loop`: 같은 실행 loop를 명시적으로 호출합니다.
|
|
53
|
+
- `/lit-plan`: 구현 계획을 먼저 세웁니다.
|
|
54
|
+
- `/litwork-loop`, `/litwork-plan`: 긴 이름의 alias입니다.
|
|
55
|
+
- `/lit_loop`, `/lit_plan`: Telegram dispatch에 맞춘 gateway alias입니다.
|
|
56
|
+
- 네이티브 `/goal` 바인딩: Hermes에는 model-facing goal tool이 없으므로 `/lit`, `/lit-loop`, `/lit-plan`은 세션 goal manager를 통해 네이티브 standing `/goal`을 대신 설정합니다(턴을 넘어 유지되고 네이티브 evidence-judge가 완료를 판정). success criteria와 증거는 durable `goal_*` 도구로 추적합니다.
|
|
57
|
+
- interactive install spinner가 terminal 설치는 더 생동감 있게 보여주고, redirect/script 설치는 기존처럼 plain output을 유지합니다. 조용한 terminal 설치가 필요하면 `npx lithermes-ai install --yes --no-spinner`를 사용합니다.
|
|
58
|
+
- `start-work`: LitHermes plan을 Hermes 작업으로 엽니다.
|
|
59
|
+
- LitHermes workflow skill set: `ai-slop-remover`, `comment-checker`,
|
|
60
|
+
`debugging`, `frontend-ui-ux`, `lsp`, `programming`, `refactor`,
|
|
61
|
+
`remove-ai-slops`, `review-work`, `rules`, `start-work`, `lit-plan`,
|
|
62
|
+
`litgoal`, `litwork`가 `lithermes:*` skill로 함께 설치됩니다.
|
|
63
|
+
- 전체 plugin payload — `pre_llm_call` / `subagent_stop` / `on_session_start`
|
|
64
|
+
hook, 모든 skill, durable goal tooling — 이 설치 상태 그대로 번들에 들어가므로,
|
|
65
|
+
각 릴리스는 재현 가능하고 감사할 수 있습니다.
|
|
66
|
+
|
|
67
|
+
## 요구 사항
|
|
68
|
+
|
|
69
|
+
- Hermes Agent가 이미 설치되어 있어야 합니다.
|
|
70
|
+
- `npx` 사용 시 Node.js 18 이상이 필요합니다.
|
|
71
|
+
- `bunx` 사용 시 Bun이 필요합니다.
|
|
72
|
+
- 보통 `~/.hermes`인 Hermes home에 쓸 수 있어야 합니다.
|
|
73
|
+
|
|
74
|
+
기본 설치 위치는 다음과 같습니다.
|
|
75
|
+
|
|
76
|
+
```text
|
|
77
|
+
~/.hermes/plugins/lithermes
|
|
78
|
+
~/.hermes/config.yaml
|
|
79
|
+
```
|
|
80
|
+
|
|
81
|
+
Hermes home이 다른 위치라면 `--hermes-home PATH`를 사용하세요.
|
|
82
|
+
|
|
83
|
+
## 설치
|
|
84
|
+
|
|
85
|
+
실제로 쓰기 전에 변경될 내용을 미리 봅니다.
|
|
86
|
+
|
|
87
|
+
```sh
|
|
88
|
+
npx lithermes-ai install --dry-run
|
|
89
|
+
```
|
|
90
|
+
|
|
91
|
+
npm으로 설치합니다.
|
|
92
|
+
|
|
93
|
+
```sh
|
|
94
|
+
npx lithermes-ai install --yes
|
|
95
|
+
```
|
|
96
|
+
|
|
97
|
+
Bun으로 설치합니다.
|
|
98
|
+
|
|
99
|
+
```sh
|
|
100
|
+
bunx lithermes-ai install --yes
|
|
101
|
+
```
|
|
102
|
+
|
|
103
|
+
Hermes home을 직접 지정합니다.
|
|
104
|
+
|
|
105
|
+
```sh
|
|
106
|
+
npx lithermes-ai install --yes --hermes-home /path/to/.hermes
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
LitHermes는 `--yes`가 없으면 Hermes config를 수정하지 않습니다. 또한 `~/.hermes/plugins/lithermes`가 이미 있는데 이 installer가 만든 파일이 아니면, 사용자 파일을 덮어쓰지 않고 멈춥니다.
|
|
110
|
+
|
|
111
|
+
## 확인
|
|
112
|
+
|
|
113
|
+
패키지와 Hermes 호환성을 확인합니다.
|
|
114
|
+
|
|
115
|
+
```sh
|
|
116
|
+
npx lithermes-ai doctor
|
|
117
|
+
bunx lithermes-ai doctor
|
|
118
|
+
```
|
|
119
|
+
|
|
120
|
+
설치된 plugin을 확인합니다.
|
|
121
|
+
|
|
122
|
+
```sh
|
|
123
|
+
npx lithermes-ai check --offline
|
|
124
|
+
```
|
|
125
|
+
|
|
126
|
+
성공하면 다음과 비슷하게 보입니다.
|
|
127
|
+
|
|
128
|
+
```text
|
|
129
|
+
LitHermes check PASS
|
|
130
|
+
commands: lit, lit-loop, lit-plan
|
|
131
|
+
```
|
|
132
|
+
|
|
133
|
+
gateway 호환성까지 확인하려면:
|
|
134
|
+
|
|
135
|
+
```sh
|
|
136
|
+
npx lithermes-ai check --gateway-offline --hermes-repo /path/to/hermes-agent
|
|
137
|
+
```
|
|
138
|
+
|
|
139
|
+
성공하면 다음 문구가 포함됩니다.
|
|
140
|
+
|
|
141
|
+
```text
|
|
142
|
+
gateway /lit_loop PASS
|
|
143
|
+
gateway /lit_plan PASS
|
|
144
|
+
```
|
|
145
|
+
|
|
146
|
+
## Hermes Goal Tools
|
|
147
|
+
|
|
148
|
+
Hermes는 model-facing goal tool을 제공하지 않습니다. LitHermes는 Litwork run을 시작할 때 세션 goal manager를 통해 네이티브 standing `/goal`을 대신 설정하며, 이는 턴을 넘어 유지되고 네이티브 evidence-judge가 완료를 판정합니다. success criteria와 증거는 durable `goal_*` 도구와 `hermes lithermes goal status`로 추적합니다.
|
|
149
|
+
|
|
150
|
+
따라서 최신 Hermes Agent에서는 command가 run directory나 plan file만 만들고 멈추지 않고, 같은 LitHermes 작업을 여러 turn에 걸쳐 이어갈 수 있습니다.
|
|
151
|
+
|
|
152
|
+
## 텔레그램 게이트웨이
|
|
153
|
+
|
|
154
|
+
LitHermes 설치 과정은 Telegram에 접속하지 않습니다. 로컬 Hermes plugin을 설치하고, Hermes gateway 소스가 plugin command dispatch를 지원하는지만 확인합니다.
|
|
155
|
+
|
|
156
|
+
설치 후:
|
|
157
|
+
|
|
158
|
+
1. Hermes gateway 프로세스를 재시작합니다.
|
|
159
|
+
2. Telegram에서 `/lit_loop 할 일`을 보냅니다.
|
|
160
|
+
3. 계획만 세우고 싶다면 `/lit_plan 할 일`을 보냅니다.
|
|
161
|
+
|
|
162
|
+
Telegram에서 명령이 동작하지 않으면 다음을 실행하세요.
|
|
163
|
+
|
|
164
|
+
```sh
|
|
165
|
+
npx lithermes-ai doctor --hermes-repo /path/to/hermes-agent
|
|
166
|
+
```
|
|
167
|
+
|
|
168
|
+
`cli payload dispatch`, `tui payload dispatch`, `gateway underscore dispatch` 중 하나라도 `PASS`가 아니라면 Hermes를 업데이트하거나 아래 patch fallback을 사용하세요.
|
|
169
|
+
|
|
170
|
+
## Patch Fallback
|
|
171
|
+
|
|
172
|
+
LitHermes가 `~/.hermes/hermes-agent`를 찾을 수 있으면 `install --yes` 과정에서 알려진 호환성 patch를 자동으로 시도하고 먼저 백업을 남깁니다. Hermes checkout이 다른 위치에 있으면 아래처럼 명시적으로 지정하세요. plugin만 복사하고 싶다면 `--no-patch-installed-hermes`를 붙이면 됩니다.
|
|
173
|
+
|
|
174
|
+
```sh
|
|
175
|
+
npx lithermes-ai install --yes --patch-installed-hermes --hermes-repo /path/to/hermes-agent
|
|
176
|
+
```
|
|
177
|
+
|
|
178
|
+
patch fallback은 `.lithermes.bak` 백업과 Hermes home 아래 rollback manifest를 남깁니다.
|
|
179
|
+
|
|
180
|
+
patch를 되돌리려면:
|
|
181
|
+
|
|
182
|
+
```sh
|
|
183
|
+
npx lithermes-ai uninstall --yes --rollback-patches
|
|
184
|
+
```
|
|
185
|
+
|
|
186
|
+
## 삭제
|
|
187
|
+
|
|
188
|
+
installer manifest가 소유한 LitHermes 파일만 제거하고 config entry를 지웁니다.
|
|
189
|
+
|
|
190
|
+
```sh
|
|
191
|
+
npx lithermes-ai uninstall --yes
|
|
192
|
+
```
|
|
193
|
+
|
|
194
|
+
`~/.hermes/plugins` 안의 관련 없는 파일은 보존됩니다.
|
|
195
|
+
|
|
196
|
+
## 문제 해결
|
|
197
|
+
|
|
198
|
+
### `Hermes installation not found`
|
|
199
|
+
|
|
200
|
+
Hermes home을 직접 지정하세요.
|
|
201
|
+
|
|
202
|
+
```sh
|
|
203
|
+
npx lithermes-ai doctor --hermes-home /path/to/.hermes
|
|
204
|
+
```
|
|
205
|
+
|
|
206
|
+
### Hermes 안에서 명령이 보이지 않음
|
|
207
|
+
|
|
208
|
+
Hermes를 재시작하세요. 이미 실행 중인 CLI나 gateway는 새로 설치된 plugin을 바로 보지 못할 수 있습니다.
|
|
209
|
+
|
|
210
|
+
그 다음 확인합니다.
|
|
211
|
+
|
|
212
|
+
```sh
|
|
213
|
+
npx lithermes-ai check --offline
|
|
214
|
+
```
|
|
215
|
+
|
|
216
|
+
### Telegram `/lit_loop`가 반응하지 않음
|
|
217
|
+
|
|
218
|
+
다음을 실행하세요.
|
|
219
|
+
|
|
220
|
+
```sh
|
|
221
|
+
npx lithermes-ai check --gateway-offline --hermes-repo /path/to/hermes-agent
|
|
222
|
+
```
|
|
223
|
+
|
|
224
|
+
gateway check가 실패하면 Hermes를 업데이트하거나 명시적 patch fallback을 사용하세요.
|
|
225
|
+
|
|
226
|
+
### Bun local tarball 테스트
|
|
227
|
+
|
|
228
|
+
현재 Bun 버전에서는 `bunx ./file.tgz`처럼 local tarball을 바로 실행하는 방식이 일관되게 동작하지 않을 수 있습니다. 로컬 release smoke는 temp project에 tarball을 설치한 뒤 binary를 실행하세요.
|
|
229
|
+
|
|
230
|
+
```sh
|
|
231
|
+
bun init -y
|
|
232
|
+
bun add ./lithermes-*.tgz
|
|
233
|
+
bunx --no-install lithermes doctor
|
|
234
|
+
```
|
|
235
|
+
|
|
236
|
+
## Release Checklist
|
|
237
|
+
|
|
238
|
+
```sh
|
|
239
|
+
npm test
|
|
240
|
+
npm pack --dry-run --json
|
|
241
|
+
npm publish --access public
|
|
242
|
+
npx --yes lithermes@latest doctor
|
|
243
|
+
```
|
|
244
|
+
|
|
245
|
+
보안 메모: `npx`와 `bunx`는 package code를 실행합니다. 민감한 Hermes host에 설치할 때는 먼저 `doctor`와 `--dry-run`을 사용하세요.
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
# Notice
|
|
2
|
+
|
|
3
|
+
This plugin is a Hermes-native adaptation of the bundled workflow reference:
|
|
4
|
+
|
|
5
|
+
- Repository: bundled workflow reference
|
|
6
|
+
- Reference commit inspected for this port:
|
|
7
|
+
`3fb8802e314dc0a1f23481dd3782cdca26b92dc2`
|
|
8
|
+
|
|
9
|
+
The runtime implementation here is not a vendored upstream runtime. LitHermes
|
|
10
|
+
re-implements command dispatch against Hermes' plugin, hook, skill, and LSP
|
|
11
|
+
surfaces.
|
|
12
|
+
|
|
13
|
+
The bundled skill markdown is adapted from MIT-licensed workflow guidance, with
|
|
14
|
+
Hermes-specific command mapping for `/lit`,
|
|
15
|
+
`/lit-loop`, `/lit-plan`, `/lit_loop`, and `/lit_plan`.
|
|
16
|
+
|
|
17
|
+
## MIT License Notice
|
|
18
|
+
|
|
19
|
+
Copyright (c) 2026 Yeongyu Kim
|
|
20
|
+
|
|
21
|
+
Permission is hereby granted, free of charge, to any person obtaining a copy
|
|
22
|
+
of this software and associated documentation files (the "Software"), to deal
|
|
23
|
+
in the Software without restriction, including without limitation the rights
|
|
24
|
+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
|
|
25
|
+
copies of the Software, and to permit persons to whom the Software is
|
|
26
|
+
furnished to do so, subject to the following conditions:
|
|
27
|
+
|
|
28
|
+
The above copyright notice and this permission notice shall be included in all
|
|
29
|
+
copies or substantial portions of the Software.
|
|
30
|
+
|
|
31
|
+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
|
32
|
+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
|
33
|
+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
|
34
|
+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
|
35
|
+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
|
|
36
|
+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
|
37
|
+
SOFTWARE.
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
# lithermes
|
|
2
|
+
|
|
3
|
+
Hermes-native workflow tools for plan-first execution, evidence ledgers, and
|
|
4
|
+
first-class Hermes skills:
|
|
5
|
+
|
|
6
|
+
- `/lit-plan` and `/litwork-plan` create durable plans in `plans/`, then forward a
|
|
7
|
+
goal bootstrap to the Hermes agent instead of stopping at plan creation.
|
|
8
|
+
- `/lit-loop` and `/litwork-loop` create run state under
|
|
9
|
+
`.hermes/lithermes/runs/` and dispatch the task back to the Hermes agent.
|
|
10
|
+
- `/start-work` opens or dry-runs a plan against a workspace.
|
|
11
|
+
- The `pre_llm_call` hook injects an Litwork directive when the user says
|
|
12
|
+
`lit` or `litwork`. Hermes has no model-facing goal tools, so a direct
|
|
13
|
+
`lit <task>` (and the /lit command) binds the native standing `/goal` via the
|
|
14
|
+
session goal manager; criteria + evidence use the durable `goal_*` tools.
|
|
15
|
+
- Explicit skills are available as:
|
|
16
|
+
`lithermes:ai-slop-remover`, `lithermes:comment-checker`,
|
|
17
|
+
`lithermes:debugging`, `lithermes:frontend-ui-ux`, `lithermes:lsp`,
|
|
18
|
+
`lithermes:programming`, `lithermes:refactor`,
|
|
19
|
+
`lithermes:remove-ai-slops`, `lithermes:review-work`,
|
|
20
|
+
`lithermes:rules`, `lithermes:start-work`, `lithermes:lit-plan`,
|
|
21
|
+
`lithermes:litgoal`, and `lithermes:litwork`.
|
|
22
|
+
- Delegation fans lanes out through the native `delegate_task` tool (children
|
|
23
|
+
run in parallel, the parent blocks for all); there is no named-agent registry
|
|
24
|
+
and no per-child model selection.
|
|
25
|
+
|
|
26
|
+
Enable with:
|
|
27
|
+
|
|
28
|
+
```yaml
|
|
29
|
+
plugins:
|
|
30
|
+
enabled:
|
|
31
|
+
- lithermes
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
## Reference
|
|
35
|
+
|
|
36
|
+
The bundled workflow reference is adapted for LitHermes command names and
|
|
37
|
+
Hermes gateway behavior. LitHermes runs entirely on Hermes-native primitives
|
|
38
|
+
(`delegate_task`, the durable `goal_*` tools, and the `pre_llm_call` /
|
|
39
|
+
`subagent_stop` / `on_session_start` hooks) and ships no external
|
|
40
|
+
prompt-runtime installer in the plugin payload.
|