@staff0rd/assist 0.586.0 → 0.588.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/README.md +12 -0
- package/allowed.cli-reads +2 -0
- package/claude/commands/miro.md +46 -0
- package/claude/settings.json +2 -0
- package/dist/allowed.cli-reads +2 -0
- package/dist/commands/criteriaExtension/criteria-extension/content.js +266 -0
- package/dist/commands/criteriaExtension/criteria-extension/manifest.json +13 -0
- package/dist/commands/sessions/web/bundle.js +1 -1
- package/dist/index.js +638 -586
- package/package.json +2 -1
package/README.md
CHANGED
|
@@ -72,6 +72,7 @@ After installation, the `assist` command will be available globally. You can als
|
|
|
72
72
|
- `/inspect` - Run .NET code inspections on changed files
|
|
73
73
|
- `/screenshot` - Capture a screenshot of a running application window
|
|
74
74
|
- `/raven` - Query and manage RavenDB connections and collections
|
|
75
|
+
- `/miro [board url | extract name]` - Dump a Miro frame's raw `board_list_items` pages and extract its boxes as an ordered YAML list via `assist miro extract`
|
|
75
76
|
- `/seq` - Query Seq logs from a URL or filter expression
|
|
76
77
|
- `/sql` - Query a MSSQL database via assist sql
|
|
77
78
|
- `/verify` - Run all verification commands in parallel
|
|
@@ -299,6 +300,7 @@ The Config tab of the sessions web dashboard never receives secret values: `GET
|
|
|
299
300
|
|
|
300
301
|
- `assist netcap [-p, --port <port>] [-o, --out <dir>] [-f, --filter <pattern>]` - Capture browser network traffic to `capture.jsonl` under `--out` (default `~/.assist/netcap`), paired with the [netcap browser extension](#netcap-browser-extension)
|
|
301
302
|
- `assist netcap extract-linkedin-posts [file]` - Parse a netcap capture into structured LinkedIn posts, written to `posts.json` beside the capture
|
|
303
|
+
- `assist criteria-extension` - Print the directory to load the [acceptance criteria outliner extension](#acceptance-criteria-outliner-extension) unpacked from (copies to `C:\tools\criteria-extension` under WSL)
|
|
302
304
|
- `assist screenshot <process>` - Capture a screenshot of a running application window (`screenshot.outputDir`, default `./screenshots`)
|
|
303
305
|
- `assist handover save --summary <s>` - Save a session handover note (content from stdin), scoped by the repo's git origin
|
|
304
306
|
- `assist handover list` - List unrecalled handovers for this repo, most recent first
|
|
@@ -420,6 +422,16 @@ Web server changes only need the `assist sessions` process restarted — session
|
|
|
420
422
|
- `branch.prefix` — when set (e.g. `sw`), `assist branch <slug>` prepends `<prefix>/` to the branch name
|
|
421
423
|
- `branch.defaultBranch` — override the base branch, which is otherwise resolved live from the remote (`git ls-remote --symref origin HEAD`), falling back to `main`
|
|
422
424
|
|
|
425
|
+
## Acceptance criteria outliner extension
|
|
426
|
+
|
|
427
|
+
`assist criteria-extension` prints the directory to load unpacked; nothing talks to assist at runtime. The extension is a single Manifest V3 content script scoped to `https://github.com/*`, built by `npm run build` from `src/commands/criteriaExtension/criteriaContentScript.tsx` into `criteria-extension/content.js` (gitignored). It adds an **Outline criteria** toggle to the markdown toolbar of an issue's body editor; pressing it hides the textarea and mounts the same `AcceptanceCriteriaOutline` control the web preview panel uses, in a shadow root with its own emotion cache and MUI theme. Each edit is written back through `writeAcceptanceCriteria` into the textarea and dispatched as an `input` event, so GitHub's own Save pushes it.
|
|
428
|
+
|
|
429
|
+
1. Run `assist criteria-extension` — it prints the extension directory. Under WSL it copies the extension to `C:\tools\criteria-extension` and prints that Windows path instead; re-run and reload the extension after a rebuild.
|
|
430
|
+
2. Load the unpacked extension:
|
|
431
|
+
- **Chrome**: open `chrome://extensions`, enable **Developer mode**, click **Load unpacked**, and select the extension directory.
|
|
432
|
+
- **Firefox**: open `about:debugging#/runtime/this-firefox` → **Load Temporary Add-on…** → pick `manifest.json` inside the printed extension directory.
|
|
433
|
+
3. Open an issue, press **Edit** on the body, and press **Outline criteria**.
|
|
434
|
+
|
|
423
435
|
## netcap browser extension
|
|
424
436
|
|
|
425
437
|
`assist netcap` only runs the receiver; the browser side is a raw Manifest V3 extension (no build step) under `netcap-extension/`. A MAIN-world content script patches `fetch`/`XMLHttpRequest` to capture `{url, method, status, requestBody, responseBody, timestamp}` and relays each entry to the background service worker, which POSTs it to the receiver. Forwarding happens in the background context, so the page's CSP (`connect-src`) never blocks it.
|
package/allowed.cli-reads
CHANGED
|
@@ -32,6 +32,7 @@ assist complexity
|
|
|
32
32
|
assist config get
|
|
33
33
|
assist config keys
|
|
34
34
|
assist config list
|
|
35
|
+
assist criteria-extension
|
|
35
36
|
assist coverage
|
|
36
37
|
assist daemon status
|
|
37
38
|
assist dotnet
|
|
@@ -41,6 +42,7 @@ assist jira auth
|
|
|
41
42
|
assist jira view
|
|
42
43
|
assist list
|
|
43
44
|
assist ls
|
|
45
|
+
assist miro extract
|
|
44
46
|
assist news
|
|
45
47
|
assist prs list-comments
|
|
46
48
|
assist ravendb auth list
|
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
---
|
|
2
|
+
description: Dump a Miro frame and extract its boxes as an ordered YAML list
|
|
3
|
+
allowed_args: "[board url | extract name]"
|
|
4
|
+
---
|
|
5
|
+
|
|
6
|
+
The user wants the text of every box inside a rectangle on a Miro board, in priority order. Fetching is your job; everything after the dump is `assist miro extract`.
|
|
7
|
+
|
|
8
|
+
## Step 0: is this a saved extract?
|
|
9
|
+
|
|
10
|
+
If `$ARGUMENTS` names a saved extract, or the user asks to refresh one they have picked before, do not re-pick anchors. Re-dump the frame over the extract's `items` file (step 2), then run `assist miro extract <name>`, which resolves board, frame, anchors, items, ignore and out from config. `assist config get miro.extracts` lists what is already saved.
|
|
11
|
+
|
|
12
|
+
## Step 1: confirm the frame
|
|
13
|
+
|
|
14
|
+
Run `context_explore` on the board URL and show the user the frames it returns. Confirm which frame is the target before dumping anything — a whole-board dump is large and usually wrong.
|
|
15
|
+
|
|
16
|
+
## Step 2: dump the raw pages
|
|
17
|
+
|
|
18
|
+
Call `board_list_items` with the board URL plus `?moveToWidget=<frame_id>` for the confirmed frame and `limit: 50`. Page with the returned `cursor` until `has_more` is false.
|
|
19
|
+
|
|
20
|
+
Write the raw response pages to a file (e.g. `board-items.json`) **exactly as returned** — a JSON array of the page objects, or one page object per line. Do not rename, reshape, flatten, sort or filter anything: the CLI normalises centre-origin positions, `geometry` and the HTML in `data.content` itself, and it errors if the shape is wrong rather than guessing.
|
|
21
|
+
|
|
22
|
+
## Step 3: extract
|
|
23
|
+
|
|
24
|
+
- Already picked: `assist miro extract <name>`
|
|
25
|
+
- Anchors known: `assist miro extract --items board-items.json --top-left <id|link> --bottom-right <id|link>`
|
|
26
|
+
- First time: `assist miro extract --items board-items.json --save <name>`
|
|
27
|
+
|
|
28
|
+
With no anchor flags the command renders the dump in the assist web UI preview pane, where the user clicks the top-left then the bottom-right box. **That needs the assist web UI running and this conversation attached to an assist session** — without one the command fails naming both flags rather than hanging. If it fails that way, tell the user to start the web UI (or supply the two ids).
|
|
29
|
+
|
|
30
|
+
Pass `--save <name>` on a first-time run. The interactive "save this selection?" prompt only appears on a TTY, so an agent run that omits `--save` picks anchors and then discards them. Add `-g` (or `-g -r [repo]`) only if the user asks for a config level other than the project `assist.yml`; the command prints the file it wrote and, on later runs, the file the extract came from.
|
|
31
|
+
|
|
32
|
+
Add `--ignore <file>` (a YAML list of box texts) to drop banners and containers, and `--out <file>` to write the YAML with a provenance header instead of printing it.
|
|
33
|
+
|
|
34
|
+
## Anchor ids
|
|
35
|
+
|
|
36
|
+
Anchors are chosen visually, in the picker. There is no reliable way to read them off the board by hand:
|
|
37
|
+
|
|
38
|
+
- A per-item **Copy link to object** link gives `?moveToWidget=<id>`, which the command accepts verbatim as an anchor.
|
|
39
|
+
- A multi-select share link gives an opaque `moveToWidgets=<token>` — the API cannot resolve it, so it is useless here. Do not try to pass one.
|
|
40
|
+
- Nothing exposes the user's live Miro selection.
|
|
41
|
+
|
|
42
|
+
The picker echoes `--top-left <id> --bottom-right <id>` to stdout; report that pair to the user so it can be reused as flags.
|
|
43
|
+
|
|
44
|
+
## Reporting
|
|
45
|
+
|
|
46
|
+
Show the extracted list. The order is leftmost box edge first, topmost edge breaking ties — a wide banner spanning the board sorts early by design, so suggest the ignore list rather than treating it as a bug.
|
package/claude/settings.json
CHANGED
package/dist/allowed.cli-reads
CHANGED
|
@@ -32,6 +32,7 @@ assist complexity
|
|
|
32
32
|
assist config get
|
|
33
33
|
assist config keys
|
|
34
34
|
assist config list
|
|
35
|
+
assist criteria-extension
|
|
35
36
|
assist coverage
|
|
36
37
|
assist daemon status
|
|
37
38
|
assist dotnet
|
|
@@ -41,6 +42,7 @@ assist jira auth
|
|
|
41
42
|
assist jira view
|
|
42
43
|
assist list
|
|
43
44
|
assist ls
|
|
45
|
+
assist miro extract
|
|
44
46
|
assist news
|
|
45
47
|
assist prs list-comments
|
|
46
48
|
assist ravendb auth list
|