@webinson/peer 0.4.2 → 0.4.14
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 +23 -7
- package/bin/peer.mjs +512 -13
- package/mod/peer-thread-mark/.claude-plugin/plugin.json +2 -2
- package/mod/peer-thread-mark/hooks/register.tsx +884 -12
- package/mod/peer-thread-mark/tests/all.test.tsx +107 -0
- package/mod/peer-thread-mark/tests/band.test.tsx +59 -0
- package/mod/peer-thread-mark/tests/memories.test.tsx +54 -0
- package/mod/peer-thread-mark/tests/recall.test.tsx +70 -0
- package/mod/peer-thread-mark/tests/saved.test.tsx +148 -0
- package/mod/peer-thread-mark/types/index.d.ts +62 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -24,10 +24,13 @@ In a Claude Code thread:
|
|
|
24
24
|
- A shared thread's title starts with `● Peer · `, so it stands out in Claude Code's session list; the mark comes
|
|
25
25
|
back if Claude Code renames the thread, and `/peer stop` takes it off.
|
|
26
26
|
- `/peer-list` lists the shared threads by repository, then by person, with each thread's branch and
|
|
27
|
-
state, and the threads that stopped in the last hours.
|
|
27
|
+
state, and the threads that stopped in the last hours. With the plugin installed it opens a `Peer` pane beside
|
|
28
|
+
the chat that reloads every 15 s; without it, or where no pane fits, the hook answers with the list.
|
|
28
29
|
|
|
29
|
-
`/peer
|
|
30
|
-
|
|
30
|
+
`/peer stop` and `/peer-list` are answered by the hook before the prompt reaches the model, so they
|
|
31
|
+
cost no tokens. A bare `/peer` is shared by the hook too, then reaches the agent, which confirms it in a
|
|
32
|
+
line or two: one short turn, instead of Claude Code's "hook blocked your prompt" warning. `/peer-thread` opens a pane with what this thread saved to your own OpenViking memory, in sentences (read-only;
|
|
33
|
+
`peer thread <session id>` prints it). `peer list` prints the same list in a terminal; `peer list --json` gives the pane the hub's list as it came.
|
|
31
34
|
|
|
32
35
|
## What is shared
|
|
33
36
|
|
|
@@ -59,7 +62,7 @@ only the hook knows the session id. After that the hooks report that thread arou
|
|
|
59
62
|
mark. A hook never fails or holds up a session: it gives the hub 3 seconds and drops what does not
|
|
60
63
|
go through. What the hooks did, without any prompt text, is in `~/.peer/hook.log`.
|
|
61
64
|
|
|
62
|
-
If
|
|
65
|
+
If the agent says the hook did not run, or `/peer stop` reaches the model, `peer doctor` checks the sign-in, the hooks in
|
|
63
66
|
Claude Code's settings and the paths they run, and runs the hook the way Claude Code does. An app
|
|
64
67
|
or IDE that starts Claude through the Agent SDK may not load `~/.claude/settings.json`; `claude` in
|
|
65
68
|
a terminal does.
|
|
@@ -74,21 +77,34 @@ If your team runs a shared project memory (an OpenViking server, see the Peer Hu
|
|
|
74
77
|
`deploy/team-memory/`), connect this computer once, inside the project's repository:
|
|
75
78
|
|
|
76
79
|
```bash
|
|
77
|
-
printf '%s' "$YOUR_TEAM_KEY" | peer team connect https://memory.example.com --as <you>
|
|
80
|
+
printf '%s' "$YOUR_TEAM_KEY" | peer team connect https://memory.example.com --as <you>
|
|
78
81
|
```
|
|
79
82
|
|
|
80
|
-
The
|
|
83
|
+
The project is the one your Peer workspace keeps this repository in, with all of that project's repositories;
|
|
84
|
+
a repository in no Hub project (or without `peer login`) is a project of its own, named by its normalized
|
|
85
|
+
origin (`github.com-acme-shop`). `--project <id>` names another. The key comes on stdin and is saved in `~/.peer/team-memory/member.json` (mode 0600). After that, the first
|
|
81
86
|
prompt of every thread in that repository (and the first after a resume or compaction) gets at most five
|
|
82
87
|
teammates' published findings that match it: verified or observed, not your own, about 1,500 tokens,
|
|
83
88
|
fenced as data from colleagues; a page whose paths changed in three or more commits since it was last
|
|
84
89
|
confirmed comes marked "may be stale". The prompt's first 400 characters go to the team server as the search
|
|
85
90
|
query. Nothing else of the thread is sent. `peer team status` shows the connection and the last recalls.
|
|
86
91
|
|
|
92
|
+
## Your own memory
|
|
93
|
+
|
|
94
|
+
`/peer-all` lists what your personal OpenViking (as `~/.openviking/ovcli.conf` points to it) remembers, 20 to a
|
|
95
|
+
page: `/peer-all page 2`; `--newest` or `--oldest` orders it by the time a memory last changed (for an event, when it
|
|
96
|
+
was added). With the thread mark installed it opens a pane with a search field that searches as you type, a this-repository switch and a time
|
|
97
|
+
button that goes unsorted, newest first, oldest first and back. `/peer-all <words>` searches the memories' full text: every word, in
|
|
98
|
+
any order, anywhere in a memory, case and diacritics left aside (`pamat` finds "pamäť"); `"a phrase"` in quotes keeps
|
|
99
|
+
its words together; conversation archives are left out, and `here` keeps it to the current repository:
|
|
100
|
+
`/peer-all here batch limit`. The hook answers, so the list reaches you and never the thread or its capture.
|
|
101
|
+
`peer all …` prints the same in a terminal. Editing and deleting stay in OpenViking Studio.
|
|
102
|
+
|
|
87
103
|
## Other commands
|
|
88
104
|
|
|
89
105
|
```
|
|
90
106
|
peer status who you are, the workspace and the threads this computer shares
|
|
91
|
-
peer doctor why
|
|
107
|
+
peer doctor why Peer's hook did not answer /peer
|
|
92
108
|
peer team connect connect to the team's memory server (see above)
|
|
93
109
|
peer team status the team server, project and the last recalls
|
|
94
110
|
peer install set Claude Code up again
|