one-code-extension 0.1.0 → 0.1.2
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 +4 -3
- package/docs/decisions/distribution.md +19 -3
- package/package.json +2 -2
package/README.md
CHANGED
|
@@ -18,18 +18,19 @@ One project, two npm packages — pick the one that fits you:
|
|
|
18
18
|
|
|
19
19
|
| You | Install | Package |
|
|
20
20
|
|---|---|---|
|
|
21
|
-
| **Most people** (new to pi included) | `npm install -g one-code` | [
|
|
21
|
+
| **Most people** (new to pi included) | `npm install -g @one-ai/one-code` | [`@one-ai/one-code`](https://www.npmjs.com/package/@one-ai/one-code) — the app: its own `one-code` command, a pinned pi bundled inside, state isolated in `~/.one-code`, coexists with any existing `pi` |
|
|
22
22
|
| Already running pi, want it on your own install | `pi install npm:one-code-extension` | [`one-code-extension`](https://www.npmjs.com/package/one-code-extension) — just the extensions; rides your pi (tested against pi 0.83–0.84, warns outside that range) |
|
|
23
23
|
|
|
24
24
|
```bash
|
|
25
|
-
npm install -g one-code
|
|
25
|
+
npm install -g @one-ai/one-code
|
|
26
26
|
cd your-project && one-code
|
|
27
27
|
```
|
|
28
28
|
|
|
29
29
|
Or via Homebrew (also installs Node for you):
|
|
30
30
|
|
|
31
31
|
```bash
|
|
32
|
-
brew install
|
|
32
|
+
brew install isurumaduranga/one-ai/one-code
|
|
33
|
+
# or tap once, then it's just: brew tap isurumaduranga/one-ai && brew install one-code
|
|
33
34
|
```
|
|
34
35
|
|
|
35
36
|
> The npm route needs **Node 22.19+**.
|
|
@@ -8,14 +8,20 @@ One Code ships two npm packages built from this single repo:
|
|
|
8
8
|
|
|
9
9
|
| npm name | What it is | pi relationship |
|
|
10
10
|
|---|---|---|
|
|
11
|
-
|
|
|
11
|
+
| **`@one-ai/one-code`** (`app/`) | the bundled app — a `one-code` bin | **exact-pins** pi (`0.84.1`) as a dependency |
|
|
12
12
|
| **`one-code-extension`** (repo root) | the pi package | **peerDependency** range; runs on the user's own pi |
|
|
13
13
|
|
|
14
14
|
The split exists because the two installs need opposite dependency stances
|
|
15
15
|
(reproducible pin vs. ride-the-user's-pi), and nothing else: the app is a thin
|
|
16
16
|
launcher over the same extension set. `one-code-extension` was chosen over
|
|
17
17
|
`one-code-pi`, which reads as "one-code *with* pi bundled" — the opposite of
|
|
18
|
-
what it is.
|
|
18
|
+
what it is. The app is scoped under the **`one-ai`** npm org because npm's
|
|
19
|
+
typosquat guard rejects unscoped `one-code` (an existing `onecode` package
|
|
20
|
+
blocks every punctuation variant — discovered only at publish time; a 404 on
|
|
21
|
+
`npm view` does not mean a name is claimable). The *command* the app installs
|
|
22
|
+
is still `one-code`; the extension package stays unscoped so
|
|
23
|
+
`pi install npm:one-code-extension` reads clean, and is attached to the org
|
|
24
|
+
via team access rather than a scope. A Homebrew tap (`brew install IsuruMaduranga/one-code/one-code`)
|
|
19
25
|
delivers the same app and solves the Node ≥22.19 requirement via
|
|
20
26
|
`depends_on "node"`; a single compiled binary is not viable (pi-tui ships
|
|
21
27
|
per-platform native modules).
|
|
@@ -62,12 +68,22 @@ injects one inline JS extension (`app/update-check.mjs`) via
|
|
|
62
68
|
`extensionFactories`: a non-blocking, fail-silent fetch of
|
|
63
69
|
`registry.npmjs.org/one-code/latest` on session start, notifying with an
|
|
64
70
|
install-aware hint (`brew upgrade one-code` when the bin resolves under a
|
|
65
|
-
Homebrew prefix, else `npm i -g one-code`). pi's semver helpers are not
|
|
71
|
+
Homebrew prefix, else `npm i -g @one-ai/one-code`). pi's semver helpers are not
|
|
66
72
|
exported from the package root, so the dotted-numeric compare lives in the
|
|
67
73
|
app. `one-code --version` reports the app version with the pinned pi in
|
|
68
74
|
parentheses. Both paths live-verified (drift warning and update notice each
|
|
69
75
|
fired against a real TUI).
|
|
70
76
|
|
|
77
|
+
**Versioning is lockstep.** Both packages share one version per release, even
|
|
78
|
+
when only one changed, and the app pins the extension at exactly its own
|
|
79
|
+
version — so one git tag (`vX.Y.Z`) names the whole release, GitHub Releases
|
|
80
|
+
map one-to-one, and a pin/version mismatch is an instantly visible release
|
|
81
|
+
mistake. Adopted at 0.1.2 (the app skipped 0.1.1 to converge); the cost is an
|
|
82
|
+
occasional republish of an unchanged package. The Homebrew tap is
|
|
83
|
+
`IsuruMaduranga/homebrew-one-ai` — named for the brand umbrella so future
|
|
84
|
+
tools join the same tap — giving `brew install isurumaduranga/one-ai/one-code`
|
|
85
|
+
(two-segment installs are not brew grammar; verified empirically).
|
|
86
|
+
|
|
71
87
|
Registering the package also seeds first-run settings (`theme: "one-code"`,
|
|
72
88
|
`quietStartup: true`), which doubles as skipping pi's stock first-time theme
|
|
73
89
|
picker — the branded first run. Three hardcoded `~/.pi` paths found during
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "one-code-extension",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "One Code as a pi package \u2014 the Claude Code experience on your own pi install: ported system prompt, Claude-Code-format permissions, .claude/ compatibility, ToolSearch-style deferred tools, and system-reminder steering. For the bundled app, install
|
|
3
|
+
"version": "0.1.2",
|
|
4
|
+
"description": "One Code as a pi package \u2014 the Claude Code experience on your own pi install: ported system prompt, Claude-Code-format permissions, .claude/ compatibility, ToolSearch-style deferred tools, and system-reminder steering. For the bundled app, install `@one-ai/one-code` instead.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"pi",
|
|
7
7
|
"pi-package",
|