visual-companion 0.3.1
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/PUBLISHING.md +76 -0
- package/README.md +39 -0
- package/package.json +34 -0
package/PUBLISHING.md
ADDED
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
# Publishing the npm placeholder
|
|
2
|
+
|
|
3
|
+
`visual-companion` on npm is a **name reservation**, not a distribution channel.
|
|
4
|
+
The real program is a single static binary; see the project README.
|
|
5
|
+
|
|
6
|
+
This is deliberately not wired into CI. Re-publishing is a rare, manual act, and
|
|
7
|
+
a workflow that fires on every tag would burn versions on an empty package.
|
|
8
|
+
|
|
9
|
+
## Why a placeholder at all
|
|
10
|
+
|
|
11
|
+
The name is worth more than the work of claiming it. Anyone searching npm for a
|
|
12
|
+
"visual companion" or "MCP brainstorming" tool would otherwise find a squatter,
|
|
13
|
+
and the cost of reclaiming a name is far higher than the cost of holding it.
|
|
14
|
+
|
|
15
|
+
## One-time setup
|
|
16
|
+
|
|
17
|
+
The token in `~/.npmrc` must be able to publish the `visual-companion` package.
|
|
18
|
+
A stale token fails in a confusing way: `npm publish` reports
|
|
19
|
+
|
|
20
|
+
```
|
|
21
|
+
404 Not Found - PUT https://registry.npmjs.org/visual-companion
|
|
22
|
+
```
|
|
23
|
+
|
|
24
|
+
That is npm's response to a token it does not accept — it deliberately does not
|
|
25
|
+
distinguish "no such package" from "you may not create it", so a 404 on PUT
|
|
26
|
+
almost always means the token, not the name.
|
|
27
|
+
|
|
28
|
+
Check the token before blaming anything else:
|
|
29
|
+
|
|
30
|
+
```bash
|
|
31
|
+
npm whoami --registry=https://registry.npmjs.org/
|
|
32
|
+
```
|
|
33
|
+
|
|
34
|
+
`{}` or a 401 means the token is revoked or expired. Mint a new **granular
|
|
35
|
+
access token** with *Read and write* permission at
|
|
36
|
+
<https://www.npmjs.com/settings/~/tokens>, and put it in `~/.npmrc`:
|
|
37
|
+
|
|
38
|
+
```
|
|
39
|
+
//registry.npmjs.org/:_authToken=npm_xxxxxxxxxxxxxxxx
|
|
40
|
+
```
|
|
41
|
+
|
|
42
|
+
Note that `~/.npmrc` may point `registry` at a mirror (npmmirror, for instance).
|
|
43
|
+
`whoami` and `publish` then go to the mirror, which does not know about your
|
|
44
|
+
npmjs token. Always pass the registry explicitly, as the commands below do.
|
|
45
|
+
|
|
46
|
+
## Publishing
|
|
47
|
+
|
|
48
|
+
```bash
|
|
49
|
+
cd packaging/npm
|
|
50
|
+
npm version <x.y.z> --no-git-tag-version # keep in step with the Git tag
|
|
51
|
+
npm publish --registry=https://registry.npmjs.org/
|
|
52
|
+
```
|
|
53
|
+
|
|
54
|
+
Then verify:
|
|
55
|
+
|
|
56
|
+
```bash
|
|
57
|
+
npm view visual-companion version --registry=https://registry.npmjs.org/
|
|
58
|
+
```
|
|
59
|
+
|
|
60
|
+
## Replacing the placeholder with a real package
|
|
61
|
+
|
|
62
|
+
If npm distribution is ever wanted, the pattern is one package per platform
|
|
63
|
+
holding the binary, plus this package as the entry point:
|
|
64
|
+
|
|
65
|
+
```
|
|
66
|
+
visual-companion bin -> launcher.js, optionalDependencies on the below
|
|
67
|
+
visual-companion-darwin-arm64 the binary
|
|
68
|
+
visual-companion-linux-x64 the binary
|
|
69
|
+
...
|
|
70
|
+
```
|
|
71
|
+
|
|
72
|
+
The launcher picks the artifact for `process.platform` / `process.arch` and
|
|
73
|
+
spawns it. Weigh that against the point of the project first: it exists so the
|
|
74
|
+
target machine needs **no runtime**, and a machine without Node cannot use an
|
|
75
|
+
npm package. Users who do have Node are already served by
|
|
76
|
+
`scripts/install.sh` in one line.
|
package/README.md
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
# visual-companion (placeholder)
|
|
2
|
+
|
|
3
|
+
**This package intentionally contains no code.** It exists so the name is not
|
|
4
|
+
taken by something unrelated before the real npm packaging lands.
|
|
5
|
+
|
|
6
|
+
The actual program is an MCP stdio server that gives a coding agent a browser
|
|
7
|
+
tab for showing mockups, diagrams, and visual options during a brainstorming
|
|
8
|
+
session. The agent pushes HTML fragments; you look and click; the agent reads
|
|
9
|
+
the clicks back on its next turn.
|
|
10
|
+
|
|
11
|
+
## Install the real thing
|
|
12
|
+
|
|
13
|
+
It ships as a **single static binary** with the browser assets embedded — no
|
|
14
|
+
Node, no npm, no runtime. The installer detects your platform, verifies the
|
|
15
|
+
SHA256, installs to `~/.local/bin`, and clears the macOS quarantine flag:
|
|
16
|
+
|
|
17
|
+
```bash
|
|
18
|
+
curl -fsSL https://raw.githubusercontent.com/ystyle/visual-companion/main/scripts/install.sh | bash
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Or download the artifact for your platform from the
|
|
22
|
+
[releases page](https://github.com/ystyle/visual-companion/releases).
|
|
23
|
+
|
|
24
|
+
## Configure your agent
|
|
25
|
+
|
|
26
|
+
```bash
|
|
27
|
+
claude mcp add visual-companion -- visual-companion
|
|
28
|
+
```
|
|
29
|
+
|
|
30
|
+
No path argument is needed: the server discovers your workspace over MCP roots
|
|
31
|
+
when a companion starts.
|
|
32
|
+
|
|
33
|
+
See the [project README](https://github.com/ystyle/visual-companion#readme) for
|
|
34
|
+
screen-authoring conventions, the design/version scheme, and how it works.
|
|
35
|
+
|
|
36
|
+
## License
|
|
37
|
+
|
|
38
|
+
MIT. The browser assets are adapted from
|
|
39
|
+
[Superpowers](https://github.com/obra/superpowers) by Jesse Vincent.
|
package/package.json
ADDED
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "visual-companion",
|
|
3
|
+
"version": "0.3.1",
|
|
4
|
+
"description": "MCP browser companion for visual brainstorming. Placeholder package — the real distribution is a single static binary with no runtime dependency.",
|
|
5
|
+
"keywords": [
|
|
6
|
+
"mcp",
|
|
7
|
+
"model-context-protocol",
|
|
8
|
+
"brainstorming",
|
|
9
|
+
"mockups",
|
|
10
|
+
"visual",
|
|
11
|
+
"design"
|
|
12
|
+
],
|
|
13
|
+
"homepage": "https://github.com/ystyle/visual-companion",
|
|
14
|
+
"repository": {
|
|
15
|
+
"type": "git",
|
|
16
|
+
"url": "git+https://github.com/ystyle/visual-companion.git"
|
|
17
|
+
},
|
|
18
|
+
"bugs": {
|
|
19
|
+
"url": "https://github.com/ystyle/visual-companion/issues"
|
|
20
|
+
},
|
|
21
|
+
"license": "MIT",
|
|
22
|
+
"author": "ystyle",
|
|
23
|
+
"files": [
|
|
24
|
+
"README.md",
|
|
25
|
+
"PUBLISHING.md"
|
|
26
|
+
],
|
|
27
|
+
"publishConfig": {
|
|
28
|
+
"registry": "https://registry.npmjs.org/",
|
|
29
|
+
"access": "public"
|
|
30
|
+
},
|
|
31
|
+
"scripts": {
|
|
32
|
+
"prepublishOnly": "node -e \"const p=require('./package.json');if(!/^\\d+\\.\\d+\\.\\d+/.test(p.version)){console.error('bad version');process.exit(1)}\""
|
|
33
|
+
}
|
|
34
|
+
}
|