harborloop 0.6.5 → 0.6.7
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 +27 -17
- package/bin/checksums.json +7 -7
- package/package.json +8 -8
package/README.md
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
# `harborloop`
|
|
2
2
|
|
|
3
|
-
Your team's knowledge, in your terminal. Recall in Claude Code, Codex
|
|
4
|
-
|
|
5
|
-
working.
|
|
3
|
+
Your team's knowledge, in your terminal. Recall in Claude Code, Codex, Cursor
|
|
4
|
+
and GitHub Copilot (the CLI and VS Code's agent mode); capture on the way back
|
|
5
|
+
out; and a `doctor` that can tell you it is not working.
|
|
6
6
|
|
|
7
7
|
```
|
|
8
8
|
npx harborloop init
|
|
@@ -24,16 +24,16 @@ Then `/harbor:login` in Claude Code, or `$harbor:login` in Codex. See
|
|
|
24
24
|
|
|
25
25
|
| | |
|
|
26
26
|
|---|---|
|
|
27
|
-
| `harbor init` | Sign in, install the hooks,
|
|
27
|
+
| `harbor init` | Sign in, install the hooks, turn Harbor on in this repo (in its Space; `--no-bind` leaves it off). Idempotent. Wires every agent it finds; `--cursor` / `--no-cursor`, `--codex` / `--no-codex` and `--copilot` / `--no-copilot` override detection. Asks before sending the repo's committed `CLAUDE.md` / `AGENTS.md` to your team's review queue, once per file; `--import-rules` sends without asking, `--no-import-rules` never sends, and `harbor update` never sends. `--headless` is for a cloud agent's setup script, see below. |
|
|
28
28
|
| `harbor doctor` | Is it actually working? `--offline`, `--json`, `--days N` |
|
|
29
29
|
| `harbor status` | This repo, from local files only. No network. |
|
|
30
|
-
| `harbor bind [
|
|
30
|
+
| `harbor bind [Space]` | Turn Harbor on in this repo, in a Space: the only one, or it asks. On a bound repo, `harbor bind --project <Space>` moves it (an owner, admin or curator can). Harbor stays off in every repo you do not bind. |
|
|
31
31
|
| `harbor workspaces` | Which workspaces you can reach, and the one this machine uses. `--json` |
|
|
32
32
|
| `harbor daily` | What the hooks run once a day in the background: renew the sign-in, send each connected repo's facts, report this machine's harborloop version, check for a newer release. |
|
|
33
33
|
| `harbor off` | Pause this repo. `--capture` keeps recall. `--global` for the machine. |
|
|
34
34
|
| `harbor on` | Resume. `--global` clears a machine-wide pause. |
|
|
35
35
|
| `harbor login` | Re-authenticate. `--no-browser` to paste a code instead. `--workspace <id>` switches workspace **without** the browser. |
|
|
36
|
-
| `harbor logout` |
|
|
36
|
+
| `harbor logout` | Sign this machine out: removes `~/.harbor/auth.json` and the MCP entry (and its bearer) from each agent's config. The hooks stay installed and do nothing until you sign in again. |
|
|
37
37
|
| `harbor uninstall` | Take Harbor off this machine: the hooks, the MCP entries and `~/.harbor`. |
|
|
38
38
|
|
|
39
39
|
There is deliberately no `ask`, no `learnings`, no `sources`. Your agent reaches
|
|
@@ -54,7 +54,7 @@ Create a workspace agent key in Harbor's settings, then give the environment
|
|
|
54
54
|
this setup script:
|
|
55
55
|
|
|
56
56
|
```
|
|
57
|
-
HARBOR_AGENT_KEY=<your key> npx -y harborloop@
|
|
57
|
+
HARBOR_AGENT_KEY=<your key> npx -y harborloop@latest init --headless
|
|
58
58
|
```
|
|
59
59
|
|
|
60
60
|
The key goes on the line itself. Claude Code on the web does not pass the
|
|
@@ -70,7 +70,7 @@ If the setup script runs inside a repo that has its own package named
|
|
|
70
70
|
`harborloop`, `npx` picks that one up instead. Install it globally there:
|
|
71
71
|
|
|
72
72
|
```
|
|
73
|
-
npm i -g harborloop@
|
|
73
|
+
npm i -g harborloop@latest && HARBOR_AGENT_KEY=<your key> harbor init --headless
|
|
74
74
|
```
|
|
75
75
|
|
|
76
76
|
`init --headless` wires Claude Code with the key: the MCP entry, the hooks, the
|
|
@@ -105,7 +105,7 @@ In the Codex environment's settings, add the key as a secret named
|
|
|
105
105
|
then use this setup script:
|
|
106
106
|
|
|
107
107
|
```
|
|
108
|
-
npx -y harborloop@
|
|
108
|
+
npx -y harborloop@latest init --headless --codex --origin https://github.com/<owner>/<repo>
|
|
109
109
|
```
|
|
110
110
|
|
|
111
111
|
- **Agent internet access** must be On, with `app.gethrbr.com` and
|
|
@@ -120,7 +120,7 @@ npx -y harborloop@0.5.14 init --headless --codex --origin https://github.com/<ow
|
|
|
120
120
|
Harbor stays off in a repo it cannot name. An origin the clone already has
|
|
121
121
|
is never replaced.
|
|
122
122
|
|
|
123
|
-
Cursor cloud agents are not supported yet.
|
|
123
|
+
Cursor and Copilot cloud agents are not supported yet.
|
|
124
124
|
|
|
125
125
|
## Why a CLI at all
|
|
126
126
|
|
|
@@ -168,9 +168,9 @@ tells you how much of what gets injected is actually used.
|
|
|
168
168
|
fails with the fix on the next line. A health check that only ever prints green
|
|
169
169
|
is not a health check.
|
|
170
170
|
|
|
171
|
-
**A partial install is one of the things it says no to.** `init` registers
|
|
172
|
-
events; a hand-edited `settings.json` that kept one of them gets
|
|
173
|
-
`Hooks ⚠ 1 of
|
|
171
|
+
**A partial install is one of the things it says no to.** `init` registers seven
|
|
172
|
+
events in Claude Code; a hand-edited `settings.json` that kept one of them gets
|
|
173
|
+
`Hooks ⚠ 1 of 7 events registered — capture, the end-of-session report and tool
|
|
174
174
|
context are not wired`, not a tick over a count. Counting what is there answers
|
|
175
175
|
a narrower question than the one you are asking it.
|
|
176
176
|
|
|
@@ -274,12 +274,14 @@ one never re-mints another:
|
|
|
274
274
|
|
|
275
275
|
```
|
|
276
276
|
~/.claude.json `mcpServers.harbor` — the MCP entry and its bearer
|
|
277
|
-
~/.claude/settings.json
|
|
277
|
+
~/.claude/settings.json seven hook events (NOT the MCP entry: Claude Code
|
|
278
278
|
reads `mcpServers` from `~/.claude.json` only)
|
|
279
|
-
~/.codex/config.toml the MCP server
|
|
280
|
-
~/.codex/hooks.json
|
|
279
|
+
~/.codex/config.toml the MCP server, plus the trust stamps Codex will not run hooks without
|
|
280
|
+
~/.codex/hooks.json six hook events (Codex has no SessionEnd)
|
|
281
281
|
~/.cursor/mcp.json `mcpServers.harbor`, Cursor's `{url, headers}` shape
|
|
282
|
-
~/.cursor/hooks.json
|
|
282
|
+
~/.cursor/hooks.json seven events, in Cursor's own event and tool names
|
|
283
|
+
~/.copilot/mcp-config.json `mcpServers.harbor`, in the shape `copilot mcp add` writes
|
|
284
|
+
~/.copilot/hooks/harbor.json seven events, in a file of Harbor's own (`$COPILOT_HOME` if set)
|
|
283
285
|
```
|
|
284
286
|
|
|
285
287
|
Nothing else. Until 0.6.0 a background job wrote the team's skills, documents and
|
|
@@ -294,6 +296,14 @@ no field to inject context into, so a Cursor session gets the bundle when it
|
|
|
294
296
|
opens and on every edit, and no per-turn delta. `doctor` says so on its healthy
|
|
295
297
|
line rather than implying parity.
|
|
296
298
|
|
|
299
|
+
⚠️ **Copilot shows no ⚓ line.** Its hooks have no channel to the person, so
|
|
300
|
+
the rules reach the agent on every prompt and after each file it touches, and
|
|
301
|
+
nothing tells you so in the terminal. A rule set to ask first refuses with a code
|
|
302
|
+
instead, as on Codex and Cursor. VS Code's agent mode runs the same hook file
|
|
303
|
+
(unless `"chat.useHooks": false`, which `doctor` warns about), but it starts the
|
|
304
|
+
harbor MCP server only when you do: once, from **MCP: List Servers**, **harbor**,
|
|
305
|
+
**Start Server**.
|
|
306
|
+
|
|
297
307
|
Every one of these files is yours, not ours: each write is a merge that leaves
|
|
298
308
|
your other MCP servers, your other hooks, and every key we do not recognise
|
|
299
309
|
exactly as it found them, under a cross-process lock so the desktop app and this
|
package/bin/checksums.json
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.6.
|
|
2
|
+
"version": "0.6.7",
|
|
3
3
|
"algorithm": "sha256",
|
|
4
4
|
"binaries": {
|
|
5
|
-
"@gethrbr/harborloop-darwin-arm64": "
|
|
6
|
-
"@gethrbr/harborloop-darwin-x64": "
|
|
7
|
-
"@gethrbr/harborloop-linux-x64": "
|
|
8
|
-
"@gethrbr/harborloop-linux-arm64": "
|
|
9
|
-
"@gethrbr/harborloop-linux-x64-musl": "
|
|
10
|
-
"@gethrbr/harborloop-win32-x64": "
|
|
5
|
+
"@gethrbr/harborloop-darwin-arm64": "d4b9a96a2a9235fa466010ae3478e1895bc0c2cc73745fb5572558a501a574af",
|
|
6
|
+
"@gethrbr/harborloop-darwin-x64": "ffbaa7051b071783b89d07708b9a1871580370acdcd6aa5a8332a80a1abdbcf5",
|
|
7
|
+
"@gethrbr/harborloop-linux-x64": "e236ab122c1ff8979bb0bad6f2a4337d6adc36b2ebba22e211e1f0feaa94355c",
|
|
8
|
+
"@gethrbr/harborloop-linux-arm64": "924e71a56441e342b057d1ab4dbf327e7e1674fce6357e2ce0f8b0da2f5ced2f",
|
|
9
|
+
"@gethrbr/harborloop-linux-x64-musl": "80ad4ecc46c746fa7e11ec5831960ad81621f4b3b3cd80ab3b08784f736c29de",
|
|
10
|
+
"@gethrbr/harborloop-win32-x64": "be87510309c8705959b1d49bdb43032aa4a9ab0e46bf76ece8d2399b02d86a39"
|
|
11
11
|
}
|
|
12
12
|
}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "harborloop",
|
|
3
|
-
"version": "0.6.
|
|
4
|
-
"description": "Install and health-check the harbor knowledge loop in your terminal. Recall in Claude Code, Codex and
|
|
3
|
+
"version": "0.6.7",
|
|
4
|
+
"description": "Install and health-check the harbor knowledge loop in your terminal. Recall in Claude Code, Codex, Cursor and GitHub Copilot CLI; a doctor that can say no.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
7
7
|
"homepage": "https://gethrbr.com",
|
|
@@ -26,12 +26,12 @@
|
|
|
26
26
|
"agents.md"
|
|
27
27
|
],
|
|
28
28
|
"optionalDependencies": {
|
|
29
|
-
"@gethrbr/harborloop-darwin-arm64": "0.6.
|
|
30
|
-
"@gethrbr/harborloop-darwin-x64": "0.6.
|
|
31
|
-
"@gethrbr/harborloop-linux-x64": "0.6.
|
|
32
|
-
"@gethrbr/harborloop-linux-arm64": "0.6.
|
|
33
|
-
"@gethrbr/harborloop-linux-x64-musl": "0.6.
|
|
34
|
-
"@gethrbr/harborloop-win32-x64": "0.6.
|
|
29
|
+
"@gethrbr/harborloop-darwin-arm64": "0.6.7",
|
|
30
|
+
"@gethrbr/harborloop-darwin-x64": "0.6.7",
|
|
31
|
+
"@gethrbr/harborloop-linux-x64": "0.6.7",
|
|
32
|
+
"@gethrbr/harborloop-linux-arm64": "0.6.7",
|
|
33
|
+
"@gethrbr/harborloop-linux-x64-musl": "0.6.7",
|
|
34
|
+
"@gethrbr/harborloop-win32-x64": "0.6.7"
|
|
35
35
|
},
|
|
36
36
|
"publishConfig": {
|
|
37
37
|
"//": "A scoped package defaults to RESTRICTED, and `npm publish` on a scope with no paid plan fails outright rather than publishing privately. This is the whole difference between a wedge anybody can `npx` and a 402.",
|