acstack 0.47.0 → 0.48.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/.claude-plugin/plugin.json +1 -1
- package/THIRD_PARTY_NOTICES +28 -0
- package/assets/terminal-workspace/config.example.yaml +6 -1
- package/assets/terminal-workspace/setup.sh +92 -5
- package/cli/dist/index.js +761 -60
- package/cli/dist/index.js.map +4 -4
- package/cli/package.json +10 -2
- package/docs/adr/0018-alignment-packs-use-local-viewers.md +11 -0
- package/docs/adr/index.md +1 -0
- package/docs/terminal-workspace.md +7 -1
- package/package.json +1 -1
- package/skills/map/SKILL.md +4 -4
- package/skills/map/trackers/files.md +5 -2
package/cli/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "acstack-cli",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.48.0",
|
|
4
4
|
"description": "CLI for the ACStack agentic coding stack",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"license": "MIT",
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
"node": ">=20.0.0"
|
|
26
26
|
},
|
|
27
27
|
"scripts": {
|
|
28
|
-
"build": "npm run sync-version && node build.mjs",
|
|
28
|
+
"build": "npm run sync-version && node scripts/build-viewer.mjs && node build.mjs",
|
|
29
29
|
"dev": "node build.mjs --watch",
|
|
30
30
|
"typecheck": "tsc --noEmit",
|
|
31
31
|
"lint": "eslint src/",
|
|
@@ -36,11 +36,19 @@
|
|
|
36
36
|
"devDependencies": {
|
|
37
37
|
"@eslint/js": "^9.39.5",
|
|
38
38
|
"@types/node": "^22.0.0",
|
|
39
|
+
"@types/react": "^19.3.0",
|
|
40
|
+
"@types/react-dom": "^19.3.0",
|
|
41
|
+
"@xyflow/react": "^12.12.0",
|
|
39
42
|
"chalk": "^5.4.0",
|
|
40
43
|
"commander": "^14.0.0",
|
|
44
|
+
"elkjs": "^0.12.0",
|
|
41
45
|
"esbuild": "^0.24.0",
|
|
42
46
|
"eslint": "^9.39.5",
|
|
43
47
|
"fast-glob": "^3.3.0",
|
|
48
|
+
"lucide-react": "^1.55.0",
|
|
49
|
+
"react": "^19.3.0",
|
|
50
|
+
"react-dom": "^19.3.0",
|
|
51
|
+
"react-markdown": "^10.1.0",
|
|
44
52
|
"typescript": "^5.7.0",
|
|
45
53
|
"typescript-eslint": "^8.67.0",
|
|
46
54
|
"vitest": "^3.0.0",
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
# Alignment packs use local viewers
|
|
2
|
+
|
|
3
|
+
Alignment packs must not depend on a remote viewer or remote script. ACStack can open a generated pack in a local browser, including through a localhost server.
|
|
4
|
+
|
|
5
|
+
## Considered options
|
|
6
|
+
|
|
7
|
+
A pinned remote viewer keeps generated files smaller. It also makes review depend on network access and trust in a hosted script.
|
|
8
|
+
|
|
9
|
+
## Consequences
|
|
10
|
+
|
|
11
|
+
ACStack must inline or vendor the viewer code it needs. A Herdr-style terminal view can follow later if a clean graph viewer exists.
|
package/docs/adr/index.md
CHANGED
|
@@ -15,3 +15,4 @@
|
|
|
15
15
|
- [0015](0015-a-node-id-links-to-its-issue-through-an-anchor.md) – A node id links to its issue through an anchor
|
|
16
16
|
- [0016](0016-the-map-root-carries-no-status-of-its-own.md) – The map root carries no status of its own
|
|
17
17
|
- [0017](0017-call-impeccable-copy-only-its-questions.md) – Call impeccable's command line, and copy only its question sets
|
|
18
|
+
- [0018](0018-alignment-packs-use-local-viewers.md) – Alignment packs use local viewers
|
|
@@ -370,6 +370,9 @@ What `apply` does:
|
|
|
370
370
|
- It adds web search, URL fetching, GitHub repo cloning, PDF extraction and media understanding tools to pi
|
|
371
371
|
- This is separate from pi's anonymous install and update reporting; `pi.settings.install_telemetry: false` still controls that telemetry setting
|
|
372
372
|
- Set `pi.web_access: false` to leave it out, or to remove it later if this setup installed it
|
|
373
|
+
- It can install `pi-lens` for diagnostics and code-intelligence tools
|
|
374
|
+
- It is off by default because it is a heavier dev-tool layer
|
|
375
|
+
- Set `pi.lens: true` to install it, or `pi.lens: false` to remove it later if this setup installed it
|
|
373
376
|
- It installs `pi-slash-anywhere` by default, so slash commands work from any prompt
|
|
374
377
|
- Set `pi.slash_anywhere: false` to leave it out, or to remove it later if this setup installed it
|
|
375
378
|
- It installs `pi-compact-tools` and runs `agentic-retro install-pi`, each behind its own toggle
|
|
@@ -380,6 +383,8 @@ What `apply` does:
|
|
|
380
383
|
- It sets `"toolActivation": "eager"` in `~/.pi/agent/extensions/subagent/config.json`
|
|
381
384
|
- It binds `"app.message.dequeue"` to `"ctrl+enter"` in `~/.pi/agent/keybindings.json`
|
|
382
385
|
- It writes the four keys under `pi.settings` into `~/.pi/agent/settings.json`
|
|
386
|
+
- It patches pi's bundled TUI so Windows Terminal Win32 input records paste as text
|
|
387
|
+
- `pi update` can replace the bundle, so `setup.sh upgrade pi` reapplies the patch
|
|
383
388
|
|
|
384
389
|
How it treats pi's files:
|
|
385
390
|
|
|
@@ -396,7 +401,7 @@ How it treats pi's files:
|
|
|
396
401
|
- `apply` never touches `auth.json`
|
|
397
402
|
- Run `pi`, then `/login`, yourself
|
|
398
403
|
- `setup.sh status` reports pi's version, its packages, the delegation line, `toolActivation`, and whether `auth.json` exists
|
|
399
|
-
- `setup.sh outdated` and `setup.sh upgrade` include `billion-context`, `@juicesharp/rpiv-todo`, `pi-plugin-manager`, `@juicesharp/rpiv-ask-user-question`, `pi-web-access`, and `pi-slash-anywhere` like pi's other npm packages
|
|
404
|
+
- `setup.sh outdated` and `setup.sh upgrade` include `billion-context`, `@juicesharp/rpiv-todo`, `pi-plugin-manager`, `@juicesharp/rpiv-ask-user-question`, `pi-web-access`, `pi-lens`, and `pi-slash-anywhere` like pi's other npm packages
|
|
400
405
|
|
|
401
406
|
## 4. How you attach
|
|
402
407
|
|
|
@@ -472,6 +477,7 @@ The two paths deliver keys by different routes.
|
|
|
472
477
|
- The two routes do not carry the same set
|
|
473
478
|
- The `ctrl+alt` family survives the escape-sequence route and dies on the native one
|
|
474
479
|
- `ctrl+<digit>` does the opposite
|
|
480
|
+
|
|
475
481
|
- Either way herdr accepts the binding and then never sees the key
|
|
476
482
|
- A chord that does not cross is therefore silently dead, and herdr reports no error
|
|
477
483
|
- `alt+<key>` is the only family that crossed both
|
package/package.json
CHANGED
package/skills/map/SKILL.md
CHANGED
|
@@ -94,7 +94,7 @@ operation. First the root:
|
|
|
94
94
|
```bash
|
|
95
95
|
# files backend – github.md has the equivalent
|
|
96
96
|
~/.claude/acstack/bin/acstack node create --map <name> --title "<destination>" \
|
|
97
|
-
--kind destination --label "<at most four words>" \
|
|
97
|
+
--kind destination --label "<at most four words>" --summary "<one sentence>" \
|
|
98
98
|
--body "<the destination, as settled>"
|
|
99
99
|
```
|
|
100
100
|
|
|
@@ -111,9 +111,9 @@ operation. First the root:
|
|
|
111
111
|
- On GitHub, every node body opens with a header line that encodes its edges.
|
|
112
112
|
`trackers/github.md` holds the format. The files backend writes none.
|
|
113
113
|
|
|
114
|
-
- Every node carries a `kind` and
|
|
115
|
-
|
|
116
|
-
caps, and the
|
|
114
|
+
- Every node carries a required `kind` and `label`, its short diagram name.
|
|
115
|
+
Work nodes and the destination add a one-sentence business `--summary`.
|
|
116
|
+
`trackers/files.md` holds the kinds, the caps, and the CLI's contract.
|
|
117
117
|
|
|
118
118
|
- Every node body carries a diagram, two at most. A childless `notes` node is
|
|
119
119
|
the one exception.
|
|
@@ -16,15 +16,18 @@ To enumerate a project's maps: `ls acstack/maps/`.
|
|
|
16
16
|
|
|
17
17
|
| Operation | Command |
|
|
18
18
|
| --------- | ------- |
|
|
19
|
-
| create | `acstack node create --map <name> --title <t> --kind <k> --label <l> [--status] [--mode] [--answers <id>] [--blocked-by <ids>] [--pinned] [--body <md>] [--body-file <path>]` |
|
|
19
|
+
| create | `acstack node create --map <name> --title <t> --kind <k> --label <l> [--summary <s>] [--status] [--mode] [--answers <id>] [--blocked-by <ids>] [--pinned] [--body <md>] [--body-file <path>]` |
|
|
20
20
|
| read | `acstack node read <id> --map <name> [--json] [--visuals]` |
|
|
21
|
-
| update | `acstack node update <id> --map <name> [--title] [--status] [--mode] [--kind] [--label] [--answers] [--blocked-by] [--pinned true\|false] [--body] [--body-file] [--append-body]` |
|
|
21
|
+
| update | `acstack node update <id> --map <name> [--title] [--status] [--mode] [--kind] [--label] [--summary] [--answers] [--blocked-by] [--pinned true\|false] [--body] [--body-file] [--append-body]` |
|
|
22
22
|
| list | `acstack node list --map <name> [--status <s>] [--json]` |
|
|
23
23
|
|
|
24
24
|
`create` rejects a node that omits `--kind` or `--label`. `--kind` takes one of
|
|
25
25
|
`destination`, `notes`, `decision`, `research`, or `work`. `--label` takes the
|
|
26
26
|
node's short name for a diagram, at most four words and thirty characters.
|
|
27
27
|
|
|
28
|
+
`--summary` is optional: one plain sentence, on one line, for a business
|
|
29
|
+
reader. `create` refuses a blank one, and on `update` an empty string clears it.
|
|
30
|
+
|
|
28
31
|
## No body header
|
|
29
32
|
|
|
30
33
|
The GitHub backend opens every node body with a header line, because an issue
|