@lifeaitools/clauth 1.6.0 → 1.7.2
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/README.md +43 -26
- package/cli/commands/serve.js +330 -50
- package/cli/commands/watchdog.js +79 -14
- package/cli/index.js +19 -6
- package/cli/lib/fs-git.js +282 -0
- package/cli/recovery.js +101 -0
- package/cli/watchdog-registry.js +209 -0
- package/cli/watchdog-registry.test.js +89 -0
- package/package.json +1 -1
- package/scripts/bin/bootstrap-linux +0 -0
- package/scripts/bin/bootstrap-macos +0 -0
- package/scripts/bin/bootstrap-win.exe +0 -0
package/README.md
CHANGED
|
@@ -72,20 +72,20 @@ clauth get github
|
|
|
72
72
|
```
|
|
73
73
|
clauth install Provision Supabase + install Claude skill
|
|
74
74
|
clauth setup Register this machine with the vault
|
|
75
|
-
clauth status All services + state
|
|
76
|
-
clauth search <query> Find services by name, project, description, or redacted address
|
|
77
|
-
clauth test Verify connection
|
|
75
|
+
clauth status All services + state
|
|
76
|
+
clauth search <query> Find services by name, project, description, or redacted address
|
|
77
|
+
clauth test Verify connection
|
|
78
78
|
|
|
79
79
|
clauth write key <service> Store a credential
|
|
80
80
|
clauth write pw Change password
|
|
81
81
|
clauth enable <svc|all> Activate service
|
|
82
82
|
clauth disable <svc|all> Suspend service
|
|
83
|
-
clauth get <service> Retrieve a key
|
|
84
|
-
clauth npm whoami Verify npm token without PowerShell secret plumbing
|
|
85
|
-
clauth npm sync-github-secret LIFEAI/rdc-skills
|
|
86
|
-
Update GitHub NPM_TOKEN from clauth
|
|
87
|
-
|
|
88
|
-
clauth add service <n> Register new service
|
|
83
|
+
clauth get <service> Retrieve a key
|
|
84
|
+
clauth npm whoami Verify npm token without PowerShell secret plumbing
|
|
85
|
+
clauth npm sync-github-secret LIFEAI/rdc-skills
|
|
86
|
+
Update GitHub NPM_TOKEN from clauth
|
|
87
|
+
|
|
88
|
+
clauth add service <n> Register new service
|
|
89
89
|
clauth remove service <n> Remove service
|
|
90
90
|
clauth revoke <svc|all> Delete key (destructive)
|
|
91
91
|
```
|
|
@@ -127,7 +127,7 @@ Full daemon operations reference: see `regen-root/.claude/rules/clauth.md`.
|
|
|
127
127
|
|
|
128
128
|
---
|
|
129
129
|
|
|
130
|
-
## MCP Server — 3 Namespaces, 32 Tools
|
|
130
|
+
## MCP Server — 3 Namespaces, 32 Tools
|
|
131
131
|
|
|
132
132
|
clauth is the single MCP interface for all local tools. One process, namespaced paths:
|
|
133
133
|
|
|
@@ -135,18 +135,18 @@ clauth is the single MCP interface for all local tools. One process, namespaced
|
|
|
135
135
|
|------|-----------|-------|-------------|
|
|
136
136
|
| `/clauth` | `clauth_*` | 13 | Credential vault operations |
|
|
137
137
|
| `/gws` | `gws_*` | 6 | Google Workspace (Gmail, Calendar, Drive) |
|
|
138
|
-
| `/fs` | `fs_*` | 13 | Filesystem (read, write, append, chunked write, URL ingest, Git import, stat, grep, glob, delete, mkdir, mounts) |
|
|
139
|
-
| `/mcp` | all | 32 | All namespaces combined (Claude Code) |
|
|
140
|
-
|
|
141
|
-
### FS Tools
|
|
142
|
-
|
|
143
|
-
13 filesystem tools with path-jail security:
|
|
144
|
-
- `fs_read`, `fs_write`, `fs_stat`, `fs_append`, `fs_write_chunk`, `fs_ingest_url`, `fs_import_git_files`, `fs_list`, `fs_grep`, `fs_glob`, `fs_delete`, `fs_mkdir`, `fs_mounts`
|
|
145
|
-
- Uses `node:fs/promises` (async), `@vscode/ripgrep` (shipped binary), `fast-glob`
|
|
146
|
-
- Permission flags per mount: `r` (read), `w` (write), `d` (delete)
|
|
147
|
-
- Mount config stored as "fileserver" service type in vault — only configurable through web UI
|
|
148
|
-
- Large writes should use `fs_write_chunk`; cloud-to-local transfer should use `fs_ingest_url`; guarded appends should pass `expected_sha256` from `fs_stat`
|
|
149
|
-
- Durable new files authored by Claude.ai in GitHub should use `fs_import_git_files` so the local dirty monorepo fetches and restores only named paths without `git pull`
|
|
138
|
+
| `/fs` | `fs_*` | 13 | Filesystem (read, write, append, chunked write, URL ingest, Git import, stat, grep, glob, delete, mkdir, mounts) |
|
|
139
|
+
| `/mcp` | all | 32 | All namespaces combined (Claude Code) |
|
|
140
|
+
|
|
141
|
+
### FS Tools
|
|
142
|
+
|
|
143
|
+
13 filesystem tools with path-jail security:
|
|
144
|
+
- `fs_read`, `fs_write`, `fs_stat`, `fs_append`, `fs_write_chunk`, `fs_ingest_url`, `fs_import_git_files`, `fs_list`, `fs_grep`, `fs_glob`, `fs_delete`, `fs_mkdir`, `fs_mounts`
|
|
145
|
+
- Uses `node:fs/promises` (async), `@vscode/ripgrep` (shipped binary), `fast-glob`
|
|
146
|
+
- Permission flags per mount: `r` (read), `w` (write), `d` (delete)
|
|
147
|
+
- Mount config stored as "fileserver" service type in vault — only configurable through web UI
|
|
148
|
+
- Large writes should use `fs_write_chunk`; cloud-to-local transfer should use `fs_ingest_url`; guarded appends should pass `expected_sha256` from `fs_stat`
|
|
149
|
+
- Durable new files authored by Claude.ai in GitHub should use `fs_import_git_files` so the local dirty monorepo fetches and restores only named paths without `git pull`
|
|
150
150
|
|
|
151
151
|
### GWS Tools
|
|
152
152
|
|
|
@@ -200,15 +200,32 @@ Tests actual MCP tool calls (not just OAuth + listing).
|
|
|
200
200
|
|
|
201
201
|
## Releasing a New Version (maintainers)
|
|
202
202
|
|
|
203
|
+
clauth is a **private** repo, so we do **not** use GitHub Actions to publish —
|
|
204
|
+
Actions bill for minutes on private repos. (Reserve Actions for *public* repos,
|
|
205
|
+
where they're free.) Publishing is **webhook-driven**, with a manual fallback.
|
|
206
|
+
|
|
203
207
|
```bash
|
|
204
208
|
# 1. Bump version in package.json
|
|
205
|
-
# 2. Commit
|
|
206
|
-
git
|
|
209
|
+
# 2. Commit + tag + push — the tag push triggers the publish webhook
|
|
210
|
+
git add -A && git commit -m "feat(...): description (vX.Y.Z)"
|
|
211
|
+
git tag vX.Y.Z
|
|
207
212
|
git push && git push --tags
|
|
208
|
-
|
|
213
|
+
|
|
214
|
+
# 3. Verify it published (direct registry check — bypasses npm's cache)
|
|
215
|
+
curl -s https://registry.npmjs.org/@lifeaitools/clauth \
|
|
216
|
+
| python -c "import sys,json;print(json.load(sys.stdin)['dist-tags'])"
|
|
217
|
+
|
|
218
|
+
# 4. Fallback — if the webhook did NOT publish (registry still shows the old
|
|
219
|
+
# version), publish manually with the vault npm token:
|
|
220
|
+
clauth npm set-local # writes ~/.npmrc auth from the vault 'npm' service
|
|
221
|
+
npm publish --access public
|
|
209
222
|
```
|
|
210
223
|
|
|
211
|
-
**NEVER** commit a version bump without tagging — the tag
|
|
224
|
+
**NEVER** commit a version bump without tagging — the tag push is what triggers
|
|
225
|
+
the publish webhook. If the webhook fails silently, the usual cause is a **stale
|
|
226
|
+
npm token on the webhook receiver** (it holds an env copy, not the live vault
|
|
227
|
+
value) — re-sync the receiver's token to the current vault `npm` service, then
|
|
228
|
+
use the manual publish above to unblock the release.
|
|
212
229
|
|
|
213
230
|
---
|
|
214
231
|
|