friend-assistant 0.1.54 → 0.1.55
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 +15 -7
- package/dist/BUILD.json +2 -2
- package/dist/friend.mjs +1581 -534
- package/dist/web/assets/{OrgParts-C5BY6KQd.js → OrgParts-D40aMpPd.js} +1 -1
- package/dist/web/assets/{index-DdBsgfIk.js → index-CCigY-V1.js} +36 -36
- package/dist/web/assets/{jarvis-ui-H15GueHR.js → jarvis-ui-C9ztv-dp.js} +1 -1
- package/dist/web/assets/{jarvisTree-DrSyBkJ9.js → jarvisTree-BGatiOp4.js} +1 -1
- package/dist/web/index.html +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -108,8 +108,9 @@ Restart `friend start` after any of these.
|
|
|
108
108
|
|
|
109
109
|
| Command | What it does | Use it when |
|
|
110
110
|
|---|---|---|
|
|
111
|
-
| `friend memory list` |
|
|
112
|
-
| `friend memory
|
|
111
|
+
| `friend memory list` | Shows the tree of notes Friend keeps about you, folder by folder (the older flat list if the tree is not there yet). | Seeing what it remembers. |
|
|
112
|
+
| `friend memory show <path>` | Prints one note, or a folder's index (for example `family/priya.md` or `family`). | Reading what it wrote. |
|
|
113
|
+
| `friend memory forget <path or number>` | Deletes one note, a whole folder (by path), or an older numbered note. | A note is wrong or private. |
|
|
113
114
|
| `friend memory clear` | Deletes all notes (asks for your PIN). | Starting fresh. |
|
|
114
115
|
| `friend rules list` | Lists the "always allow" rules you created by choosing *Always allow* on an approval card. | Reviewing what Friend may do without asking. |
|
|
115
116
|
| `friend rules remove <id>` | Removes a rule, so Friend asks again. | You trust something less now. |
|
|
@@ -421,15 +422,22 @@ Browsers keep sound blocked until the page has had a click, tap or key press. Fr
|
|
|
421
422
|
|
|
422
423
|
## Memory
|
|
423
424
|
|
|
424
|
-
|
|
425
|
+
Friend keeps what it knows about you as a **tree of small Markdown notes** in your data folder (`memory/`), not one long list. There is one entry point, `memory/INDEX.md`, and every folder has its own `INDEX.md` that lists what is inside. The program fixes no branch names: Friend makes the folders it wants (`family/`, `projects/friend/`, `trading/`, and deeper as a topic grows) and keeps every folder listed from the root, so everything can be found by walking down from the entry point.
|
|
425
426
|
|
|
426
|
-
-
|
|
427
|
-
-
|
|
428
|
-
-
|
|
427
|
+
- **What Friend reads.** Only the root index goes into each prompt (a few hundred tokens, however much memory there is). Friend opens a branch with `memory.read` when a question needs it, and finds notes by words with `memory.search`.
|
|
428
|
+
- **What Friend writes.** `memory.write` (a note at a path it chooses, folders made as needed), `memory.move` (group notes into sub-folders when a folder gets crowded) and `memory.forget`. A quick fact with no clear place goes to `inbox/` with `memory.remember`. Notes are short; a long one or a crowded folder is flagged so Friend splits it. A note is at most 6,000 characters, a path at most 6 folders deep, up to 2,000 notes.
|
|
429
|
+
- **Saving by itself.** Friend does not rely on remembering to call a memory tool. Once you have been quiet for a while (2 minutes by default, or after 8 turns in a row), a separate pass reads what was said, with the memory index and a few related notes, and decides what is worth keeping: facts you stated about yourself, family, work and habits, decisions, corrections, commitments and where your projects stand. Small talk, one-off questions, things easy to look up and anything from web pages or workers' reports is not kept. The pass prefers updating a related note over making a new one; when unsure it uses `inbox/`. The program, not the model, decides what is written: it checks every path, never keeps anything that looks like a password, PIN, key, card number or code, saves at most 6 notes per pass, and refuses an update that would shrink a note to almost nothing. A short line on screen says what was remembered ("Remembered: family/priya.md"), and every save is in the audit log. The very first time, it starts from the moment it is switched on, so an old conversation is not mined.
|
|
430
|
+
- **Kept in order by the AI.** Quick notes land in `inbox/`; a tidy pass (a little after Friend starts, after saving, or when you say "tidy my memory") lets the model file them into topic folders (`family/`, `work/`, `projects/friend/`, `preferences/` and so on, whatever the notes call for), give each a short title and a one-line summary, merge notes about the same subject, and link related notes to each other. A note's header lists the notes it relates to (`related: family/sarika.md`) and the page shows them as links under "Related". The model proposes; the program checks every path, keeps all text, and moves things through the tree so the indexes stay right. A link follows its note when the note moves and drops when the note is deleted.
|
|
431
|
+
- **Your control.** The notes are plain files: open and edit them with any editor, and a note you drop in by hand is listed the next time Friend starts. In the terminal: `friend memory list` (the tree), `friend memory show <path>`, `friend memory forget <path or number>` and `friend memory clear` (asks for the PIN). You can also say "forget what you know about Priya".
|
|
432
|
+
- **Your older notes.** The first time the tree starts, your older flat notes are copied once into `inbox/`; the old list is left untouched.
|
|
433
|
+
- **Settings** (Esc → Settings → **Memory**; changed by you with your PIN, never by Friend): `memory.enabled` (off means the older flat list of the 20 newest notes), `memory.maxIndexChars` (how much of the root index is shown every turn), `memory.autoSave` (`on` by default, or `off`), `memory.showSaved` (the "Remembered" line), `memory.autoTidy` (the tidy pass, on by default) and `memory.saveDelaySec` (how long you must be quiet before the pass runs, 10 to 3600 seconds).
|
|
434
|
+
- **Safety.** Notes are **data about you, never instructions**: text inside a note (or text a web page tricked the agent into saving) cannot change a setting or start work. Guests and unrecognized voices never see your notes. Friend never follows a link out of the folder, and is told never to save passwords, PINs or keys.
|
|
435
|
+
|
|
436
|
+
Next: a Memory screen to browse and edit notes, and a heartbeat that can start a conversation (see `docs/superpowers/specs/2026-10-24-friend-memory-and-heartbeat-design.md`).
|
|
429
437
|
|
|
430
438
|
## Plugins
|
|
431
439
|
|
|
432
|
-
**Day trader (India)** is a bundled plugin with
|
|
440
|
+
**Day trader (India)** is a bundled plugin with ten skills (focus list, scan for setups, news, entry, exit, budget, risk, replay, analyst, smart money) and an exact sizing tool (`trade-plan`). It reads Indian market data through three built-in tools, `market.get` (candles, quotes, NSE announcements, results, insider trades, bulk and block deals, shareholding, top movers, most active, volume spurts), `market.scan` (finds opening-range breakouts and bounces across the market and ranks them) and `market.replay` (replays the rest of the session from the stock's own recent candles). Both use free public feeds (Yahoo Finance and the NSE, no key), follow the Web switch, and work in IST and rupees. Your limits (max loss, money, leverage) are asked each session, never assumed. It is analysis only: it never places an order, you place it in your broker app.
|
|
433
441
|
|
|
434
442
|
Plugins add **skills** (instructions the agent loads when they fit, for example "write my stand-up") and **tools** (small programs the agent can call, for example an exact unit converter). Three examples are bundled in `plugins/`: `unit-converter`, `standup-writer`, `rubber-duck`.
|
|
435
443
|
|
package/dist/BUILD.json
CHANGED