mini-coder 0.0.14 → 0.0.16

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.
@@ -0,0 +1,68 @@
1
+ # ChatGPT/Codex subscription auth notes
2
+
3
+ mini-coder does **not** currently support logging in with a ChatGPT Plus/Pro/Codex subscription.
4
+
5
+ ## Why
6
+
7
+ We looked at two implementations:
8
+
9
+ - OpenCode in `/tmp/opencode-src`
10
+ - official Codex in `/tmp/openai-codex/codex-rs`
11
+
12
+ Both rely on OpenAI **first-party/private** auth and backend APIs rather than a documented public developer API.
13
+
14
+ ## What those implementations do
15
+
16
+ ### Auth
17
+
18
+ They use OAuth-like flows against `https://auth.openai.com`, including:
19
+
20
+ - browser login with PKCE and a localhost callback server
21
+ - device-code / headless login
22
+ - refresh tokens via `POST /oauth/token`
23
+
24
+ Both also rely on a hardcoded first-party client id embedded in their source trees.
25
+
26
+ Examples:
27
+
28
+ - official Codex: `/tmp/openai-codex/codex-rs/core/src/auth.rs`
29
+ - OpenCode: `/tmp/opencode-src/packages/opencode/src/plugin/codex.ts`
30
+
31
+ ### Runtime API
32
+
33
+ After login, requests are sent to ChatGPT backend endpoints such as:
34
+
35
+ - `https://chatgpt.com/backend-api/codex`
36
+ - `https://chatgpt.com/backend-api/codex/responses`
37
+
38
+ with headers like:
39
+
40
+ - `Authorization: Bearer <oauth access token>`
41
+ - `ChatGPT-Account-Id: <account id>`
42
+
43
+ Examples:
44
+
45
+ - official Codex: `/tmp/openai-codex/codex-rs/core/src/model_provider_info.rs`
46
+ - official Codex headers: `/tmp/openai-codex/codex-rs/backend-client/src/client.rs`
47
+ - OpenCode rewrite layer: `/tmp/opencode-src/packages/opencode/src/plugin/codex.ts`
48
+
49
+ ## Why mini-coder is not adopting this
50
+
51
+ - It depends on undocumented/private auth endpoints.
52
+ - It depends on a hardcoded first-party client id.
53
+ - It depends on private ChatGPT backend routes.
54
+ - Browser login would require running a local callback server.
55
+ - Even the official Codex source does not expose a clean public API-based alternative here.
56
+
57
+ ## Future stance
58
+
59
+ We may revisit support if OpenAI exposes a stable, documented path for:
60
+
61
+ - ChatGPT subscription login for third-party tools, or
62
+ - a public Codex/ChatGPT backend API intended for external clients
63
+
64
+ Until then, mini-coder only supports providers with clearer public integration paths.
65
+
66
+ ## Note
67
+
68
+ If you want a supported hosted integration instead of ChatGPT subscription auth, mini-coder already supports OpenCode Zen via `OPENCODE_API_KEY`. See the existing `zen/<model>` provider path.
@@ -46,6 +46,8 @@ into the conversation.
46
46
  |---|---|---|
47
47
  | `description` | No | Shown in `/help`. Defaults to filename. |
48
48
  | `model` | No | Override the active model for this agent. |
49
+ | `mode` | No | `primary` — interactive only (via `/agent <name>`); `subagent` — callable via the `subagent` tool only (default); `all` — both. |
50
+
49
51
 
50
52
  The markdown body (after frontmatter) is the agent's system prompt.
51
53
 
@@ -20,7 +20,8 @@ Create a markdown file. The filename becomes the command name.
20
20
  ```md
21
21
  ---
22
22
  description: Summarise what changed since yesterday
23
- model: zen/claude-3-5-haiku
23
+ model: zen/claude-haiku-4-5
24
+
24
25
  ---
25
26
 
26
27
  Run `!`git log --oneline --since=yesterday`` and summarise the changes
@@ -38,8 +39,11 @@ Then in the REPL:
38
39
  | Field | Required | Description |
39
40
  |---|---|---|
40
41
  | `description` | No | Shown in `/help`. Defaults to the command name. |
41
- | `model` | No | Override the active model for this command (subagent execution). |
42
- | `execution` | No | Where the command runs: `subagent` (default) or `inline`. |
42
+ | `model` | No | Override the active model for this command (only applies when `context: fork`). |
43
+ | `context` | No | Set to `fork` to run the command as an isolated subagent; default runs inline. |
44
+ | `subtask` | No | Set to `true` to force subagent execution (OpenCode-compatible alias for `context: fork`). |
45
+ | `agent` | No | Run the command under a named agent's system prompt (only applies when `context: fork`). |
46
+
43
47
 
44
48
 
45
49
  ## Arguments
@@ -51,7 +55,8 @@ Use `$ARGUMENTS` for the full argument string, or `$1`, `$2`, … `$9` for indiv
51
55
  ```md
52
56
  ---
53
57
  description: Search the codebase for a topic
54
- model: zen/claude-3-5-haiku
58
+ model: zen/claude-haiku-4-5
59
+
55
60
  ---
56
61
 
57
62
  Search the codebase for: $ARGUMENTS
@@ -111,7 +116,8 @@ lightweight tasks regardless of what the session is currently set to.
111
116
  ```md
112
117
  ---
113
118
  description: Quick grep for a symbol
114
- model: zen/claude-3-5-haiku
119
+ model: zen/claude-haiku-4-5
120
+
115
121
  ---
116
122
 
117
123
  Find all usages of $ARGUMENTS across the codebase using grep and glob.
@@ -120,31 +126,14 @@ List each occurrence with file path and line number. No explanations needed.
120
126
 
121
127
  Large models for deep analysis, small models for search and lookup.
122
128
 
123
- ## Execution mode
124
-
125
- By default, commands run with `execution: subagent` (even if `execution`
126
- is omitted).
127
-
128
- Use `execution: inline` to run the command in the main agent context
129
- instead of spawning a subagent worktree.
130
-
131
- ```md
132
- ---
133
- description: Safe release flow
134
- execution: inline
135
- ---
136
-
137
- Run the release steps in this main repo checkout.
138
- ```
139
-
140
- Use `inline` for repo-sensitive workflows (like release flows) where branch
141
- context must be exactly the current session branch.
142
-
143
129
 
144
130
  ## Precedence
145
131
 
146
- Custom commands shadow built-ins. If you create `.agents/commands/review.md`
147
- it will replace the built-in `/review` for that project.
132
+ Custom commands shadow built-ins. If you create `.agents/commands/plan.md`
133
+ it will replace the built-in `/plan` for that project. The global `/review`
134
+ command (auto-created at `~/.agents/commands/review.md` on first run) works
135
+ the same way — a local `.agents/commands/review.md` will override it.
136
+
148
137
 
149
138
  ## Listing commands
150
139
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "mini-coder",
3
- "version": "0.0.14",
3
+ "version": "0.0.16",
4
4
  "description": "A small, fast CLI coding agent",
5
5
  "module": "src/index.ts",
6
6
  "type": "module",
@@ -13,24 +13,28 @@
13
13
  "typecheck": "tsc --noEmit",
14
14
  "lint": "biome check src",
15
15
  "format": "biome format --write src",
16
- "test": "bun test"
16
+ "knip": "knip",
17
+ "test": "bun test --only-failures",
18
+ "test:verbose": "bun test",
19
+ "jscpd": "jscpd src"
17
20
  },
18
21
  "dependencies": {
19
- "@ai-sdk/anthropic": "^3.0.46",
20
- "@ai-sdk/google": "^3.0.30",
21
- "@ai-sdk/openai": "^3.0.30",
22
- "@ai-sdk/openai-compatible": "^2.0.30",
23
- "@modelcontextprotocol/sdk": "^1.26.0",
24
- "ai": "^6.0.94",
22
+ "@ai-sdk/anthropic": "^3.0.58",
23
+ "@ai-sdk/google": "^3.0.43",
24
+ "@ai-sdk/openai": "^3.0.41",
25
+ "@ai-sdk/openai-compatible": "^2.0.35",
26
+ "@modelcontextprotocol/sdk": "^1.27.1",
27
+ "ai": "^6.0.116",
25
28
  "ignore": "^7.0.5",
26
- "ollama-ai-provider": "^1.2.0",
27
- "yoctocolors": "^2.1.1",
29
+ "yoctocolors": "^2.1.2",
28
30
  "zod": "^4.3.6"
29
31
  },
30
32
  "devDependencies": {
31
- "@biomejs/biome": "^1.9.4",
33
+ "@biomejs/biome": "^2.4.6",
32
34
  "@types/bun": "latest",
33
- "typescript": "^5.8.3"
35
+ "jscpd": "^4.0.8",
36
+ "knip": "^5.86.0",
37
+ "typescript": "^5.9.3"
34
38
  },
35
39
  "license": "MIT"
36
40
  }