one-code-extension 0.1.1 → 0.1.3
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 +7 -1
- package/docs/decisions/distribution.md +34 -5
- package/docs/decisions.md +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -29,11 +29,17 @@ cd your-project && one-code
|
|
|
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+**.
|
|
36
37
|
|
|
38
|
+
> Tip: the app opens in a **full-screen TUI** (alt-screen, restores your
|
|
39
|
+
> terminal on exit) by default. On your own pi that's opt-in — set
|
|
40
|
+
> `"tuiMode": "fullscreen"` in `~/.pi/agent/settings.json`, or launch with
|
|
41
|
+
> `pi --tui-mode fullscreen`.
|
|
42
|
+
|
|
37
43
|
## Two-minute quickstart — free, no card
|
|
38
44
|
|
|
39
45
|
You need one model-provider key. Two providers hand out **free frontier-adjacent
|
|
@@ -2,9 +2,10 @@
|
|
|
2
2
|
|
|
3
3
|
Part of [Decisions](../decisions.md).
|
|
4
4
|
|
|
5
|
-
## Two artifacts from one codebase: the app and the package (2026-08-10
|
|
5
|
+
## Two artifacts from one codebase: the app and the package (2026-08-10)
|
|
6
6
|
|
|
7
|
-
One Code ships two npm packages built from this single repo
|
|
7
|
+
One Code ships two npm packages built from this single repo — **both live on
|
|
8
|
+
npm since 2026-08-10 at 0.1.2** (GitHub release `v0.1.2`):
|
|
8
9
|
|
|
9
10
|
| npm name | What it is | pi relationship |
|
|
10
11
|
|---|---|---|
|
|
@@ -21,7 +22,11 @@ blocks every punctuation variant — discovered only at publish time; a 404 on
|
|
|
21
22
|
`npm view` does not mean a name is claimable). The *command* the app installs
|
|
22
23
|
is still `one-code`; the extension package stays unscoped so
|
|
23
24
|
`pi install npm:one-code-extension` reads clean, and is attached to the org
|
|
24
|
-
via team access rather than a scope.
|
|
25
|
+
via team access rather than a scope. The npm org (`one-ai`) and the planned
|
|
26
|
+
GitHub org (`oneai-hq` — `one-ai` was taken on GitHub) deliberately differ:
|
|
27
|
+
registry namespaces are independent, install commands only ever cite the npm
|
|
28
|
+
scope, and `repository` fields point at URLs, so the mismatch costs nothing
|
|
29
|
+
beyond a profile cross-link. A Homebrew tap (`brew install IsuruMaduranga/one-code/one-code`)
|
|
25
30
|
delivers the same app and solves the Node ≥22.19 requirement via
|
|
26
31
|
`depends_on "node"`; a single compiled binary is not viable (pi-tui ships
|
|
27
32
|
per-platform native modules).
|
|
@@ -74,9 +79,29 @@ app. `one-code --version` reports the app version with the pinned pi in
|
|
|
74
79
|
parentheses. Both paths live-verified (drift warning and update notice each
|
|
75
80
|
fired against a real TUI).
|
|
76
81
|
|
|
82
|
+
**Versioning is lockstep.** Both packages share one version per release, even
|
|
83
|
+
when only one changed, and the app pins the extension at exactly its own
|
|
84
|
+
version — so one git tag (`vX.Y.Z`) names the whole release, GitHub Releases
|
|
85
|
+
map one-to-one, and a pin/version mismatch is an instantly visible release
|
|
86
|
+
mistake. Adopted at 0.1.2 (the app skipped 0.1.1 to converge); the cost is an
|
|
87
|
+
occasional republish of an unchanged package. The Homebrew tap is
|
|
88
|
+
`IsuruMaduranga/homebrew-one-ai` — named for the brand umbrella so future
|
|
89
|
+
tools join the same tap — giving `brew install isurumaduranga/one-ai/one-code`
|
|
90
|
+
(two-segment installs are not brew grammar; verified empirically). Two
|
|
91
|
+
release-process facts learned shipping 0.1.2: the formula's `url` + `sha256`
|
|
92
|
+
must be bumped by hand each release until a release workflow automates it,
|
|
93
|
+
and Homebrew's `std_npm_args` passes npm's supply-chain guard
|
|
94
|
+
`--min-release-age=1`, so **the brew install of a release only works ~24h
|
|
95
|
+
after its npm publish** — day-one users get "No matching version found …
|
|
96
|
+
with a date before <now−1d>"; either schedule the formula bump a day after
|
|
97
|
+
the npm publish or accept the gap.
|
|
98
|
+
|
|
77
99
|
Registering the package also seeds first-run settings (`theme: "one-code"`,
|
|
78
|
-
`quietStartup: true
|
|
79
|
-
|
|
100
|
+
`quietStartup: true`, and — from 0.1.3 — `tuiMode: "fullscreen"`, the
|
|
101
|
+
alt-screen One Code look per the fullscreen decision in `tui.md`), which
|
|
102
|
+
doubles as skipping pi's stock first-time theme picker — the branded first
|
|
103
|
+
run. Seeded only when no settings file exists, so a user's later changes
|
|
104
|
+
stick. Three hardcoded `~/.pi` paths found during
|
|
80
105
|
this work (quiet-startup detection, the skills listing, the Anthropic-OAuth
|
|
81
106
|
check) now resolve through pi's `getAgentDir()`, which honours the isolation
|
|
82
107
|
env var.
|
|
@@ -114,6 +139,10 @@ Per project directive, prefer ecosystem packages over new code.
|
|
|
114
139
|
|
|
115
140
|
## Publish readiness (Phase 7)
|
|
116
141
|
|
|
142
|
+
*(Historical — the release shipped 2026-08-10 as described in the two-artifact
|
|
143
|
+
entry above. The tarball/install checks below were the single-package-era
|
|
144
|
+
method and remain the template for pre-publish verification.)*
|
|
145
|
+
|
|
117
146
|
`npm pack` produces a 69 kB / 47-file tarball: `extensions/`, `agents/`, `types/`,
|
|
118
147
|
README, LICENSE and `docs/decisions.md`. Every path in the `pi.extensions`
|
|
119
148
|
manifest is checked to be present in the tarball.
|
package/docs/decisions.md
CHANGED
|
@@ -11,7 +11,7 @@ entry. (Companion docs: [`findings.md`](findings.md) for how pi behaves,
|
|
|
11
11
|
|
|
12
12
|
Full context: [`decisions/distribution.md`](decisions/distribution.md).
|
|
13
13
|
|
|
14
|
-
- **[Two artifacts from one codebase: the app and the package](decisions/distribution.md#two-artifacts-from-one-codebase-the-app-and-the-package-2026-08-10
|
|
14
|
+
- **[Two artifacts from one codebase: the app and the package](decisions/distribution.md#two-artifacts-from-one-codebase-the-app-and-the-package-2026-08-10)** — npm `@one-ai/one-code` (bundled app: pinned pi, `~/.one-code` isolation via `PI_CODING_AGENT_DIR`, package-registration load shape, stdout rebranding, own update check) + npm `one-code-extension` (peer-dep pi package with a runtime tested-range warning); lockstep versions from 0.1.2; Homebrew tap `isurumaduranga/one-ai` delivers the app (brew's `--min-release-age=1` makes day-one brew installs fail by design).
|
|
15
15
|
- **[Distribution: pi package, not a wrapper binary](decisions/distribution.md#distribution-pi-package-not-a-wrapper-binary)** — *(partially superseded by the two-artifact model)* ship as an installable pi package because pi's rebranding resolves from pi's own `package.json`; a dependent can't rebrand it, and a package keeps upstream upgrades a version bump away.
|
|
16
16
|
- **[Community packages: adopted where they work](decisions/distribution.md#community-packages-adopted-where-they-work)** — prefer ecosystem packages, but trial first: only `pi-ask-user` survived; `pi-subagents` was rejected (children SIGKILLed ~29 ms after spawn here).
|
|
17
17
|
- **[Publish readiness (Phase 7)](decisions/distribution.md#publish-readiness-phase-7)** — what's done and what remains before `npm publish` (metadata, tarball, install-path verification).
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "one-code-extension",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.3",
|
|
4
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",
|