@higherdev/cli 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.
Files changed (3) hide show
  1. package/README.md +41 -15
  2. package/dist/index.js +919 -687
  3. package/package.json +1 -1
package/README.md CHANGED
@@ -56,30 +56,53 @@ hd ask "why is HD-12 stuck?"
56
56
  hd msg HD-12 --to builder "also rename the old column" --interrupt
57
57
  ```
58
58
 
59
- `hd plan` runs the **architect** here on your machine, on Codex against your
60
- ChatGPT subscription. It reads the repo, decides what should be built, files an
61
- epic, and can tune the platform itself: models, effort, routing notes, prompt
62
- addenda, conventions, budgets. Creating an epic fires `epic.created`, which the
59
+ `hd plan` runs the **architect** here on your machine, on your ChatGPT
60
+ subscription. It reads the repo, decides what should be built, files an epic,
61
+ and can tune the platform itself: models, effort, routing notes, prompt addenda,
62
+ conventions, budgets. Creating an epic fires `epic.created`, which the
63
63
  orchestrator already triggers on, so the handoff needs no glue.
64
64
 
65
65
  ```bash
66
- hd connect # ChatGPT OAuth, once per machine
67
- hd doctor # what a run would cost, before it runs
66
+ hd connect # ChatGPT OAuth, once per machine
67
+ hd doctor # what a run would cost, before it runs
68
+ hd plan # a conversation: type, it answers, keep going
69
+ ```
70
+
71
+ Bare `hd plan` on a terminal is a back-and-forth. Every turn after the first
72
+ continues the same Codex session, so it remembers what you already said. A blank
73
+ line or `/exit` leaves, and `hd plan --resume "..."` picks the thread back up
74
+ later.
75
+
76
+ Give it a request on the command line instead and it runs one turn and exits,
77
+ which is what a script wants:
78
+
79
+ ```bash
68
80
  hd plan "assess the call-intel code and plan what is missing"
69
81
  hd plan --read-only "what would you change about the agent lineup?"
70
- hd plan --resume "split the third ticket, it is too big"
82
+ hd plan --once "file the epic we discussed"
71
83
  ```
72
84
 
73
- ### The subscription is checked, not assumed
85
+ ### How it reaches the model
86
+
87
+ `hd` calls the ChatGPT backend directly with your subscription credentials and
88
+ runs its own agent loop over its own tools, in process. It does not spawn
89
+ `codex exec`. That matters: a subprocess made Codex's coding agent the brain, so
90
+ it owned the system prompt, it had a shell, and a greeting took twenty seconds.
91
+ Direct, a turn answers in about two, `hd` owns the prompt, there is no shell in
92
+ the path, and text streams as it is written.
74
93
 
75
- The platform runs on subscriptions, never per-token APIs, so `hd plan` **refuses
76
- to start** unless Codex is signed in through the ChatGPT OAuth flow. It reads
77
- `~/.codex/auth.json` and distinguishes four states: connected, signed in with an
78
- API key (which bills per token), signed out, and not installed. `hd connect`
79
- runs `codex login` for you, which opens the browser and writes the token itself.
80
- `hd` never sees or stores a Codex credential.
94
+ The credential comes from `~/.codex/auth.json`, because the Codex CLI is what
95
+ performs the browser login. Nothing else about Codex is involved. `hd connect`
96
+ runs that login for you; `hd` never sees or stores the token, and renews the
97
+ session automatically rather than asking you to sign in again.
81
98
 
82
- `--allow-api-billing` overrides the refusal when you actually mean to spend.
99
+ `hd plan` **refuses to start** unless that session is a real ChatGPT one, since
100
+ the platform runs on subscriptions and never per-token APIs. It distinguishes
101
+ connected, signed in with an API key (which bills per token), signed out, and
102
+ not installed. `--allow-api-billing` overrides the refusal when you mean it.
103
+
104
+ The architect reads code through `list_files`, `read_file`, and `search_code`,
105
+ scoped to the workspace checkout. Read only, no shell, no path escape.
83
106
 
84
107
  `hd mcp` is the same platform as MCP tools on stdio. `hd plan` attaches it to
85
108
  Codex for the invocation, with no global config edit. Attach it to Claude Code or
@@ -90,6 +113,9 @@ hd mcp --list # the 24 tools, with what each does
90
113
  hd mcp --read-only # safe to hand to anything
91
114
  ```
92
115
 
116
+ The architect does not go through MCP: its tools are the same functions, called
117
+ in process. `hd mcp` exists so anything else can reach them.
118
+
93
119
  ## Everything else
94
120
 
95
121
  ```