aiki-cli 0.2.0 → 0.2.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/CHANGELOG.md +5 -0
- package/README.md +24 -0
- package/dist/cli/index.js +1 -1
- package/dist/cli/version.js +8 -0
- package/dist/providers/codex.js +4 -4
- package/package.json +1 -1
package/CHANGELOG.md
CHANGED
|
@@ -17,6 +17,11 @@
|
|
|
17
17
|
intent preflight and the judge seat also writes the validation plan. The default budget is now 13 so
|
|
18
18
|
a normal run still has room for one repair without skipping the validation plan.
|
|
19
19
|
|
|
20
|
+
### Fixed
|
|
21
|
+
- Codex provider smoke no longer crashes in non-git folders; Aiki now passes Codex's verified
|
|
22
|
+
`--skip-git-repo-check` flag while keeping `-s read-only`.
|
|
23
|
+
- `aiki --version` now reads from `package.json`, preventing CLI/package version drift.
|
|
24
|
+
|
|
20
25
|
## 0.2.0 — 2026-07-06 — v2 product round
|
|
21
26
|
|
|
22
27
|
### Added
|
package/README.md
CHANGED
|
@@ -104,12 +104,21 @@ n = 10 cases, single run per arm — directional, not a p-value. Full method and
|
|
|
104
104
|
aiki doctor # lists each provider: version, ready/not, read-only mode
|
|
105
105
|
```
|
|
106
106
|
|
|
107
|
+
`aiki doctor` is safe to run from any folder. For Codex, Aiki passes `--skip-git-repo-check` while
|
|
108
|
+
keeping the read-only sandbox enabled, so non-git folders do not crash the provider smoke:
|
|
109
|
+
|
|
110
|
+
```bash
|
|
111
|
+
aiki doctor --fresh
|
|
112
|
+
```
|
|
113
|
+
|
|
107
114
|
## Install
|
|
108
115
|
|
|
109
116
|
```bash
|
|
110
117
|
npm install -g aiki-cli
|
|
111
118
|
```
|
|
112
119
|
|
|
120
|
+
The package is `aiki-cli`; it installs the `aiki` command.
|
|
121
|
+
|
|
113
122
|
From source:
|
|
114
123
|
|
|
115
124
|
```bash
|
|
@@ -123,9 +132,24 @@ npm link # puts `aiki` on your PATH (or run directly: node dist/cl
|
|
|
123
132
|
## Quickstart
|
|
124
133
|
|
|
125
134
|
```bash
|
|
135
|
+
cd /path/to/your/project
|
|
126
136
|
aiki # opens the interactive home screen
|
|
127
137
|
```
|
|
128
138
|
|
|
139
|
+
## Use Aiki For
|
|
140
|
+
|
|
141
|
+
- Code review: "review this branch", "check this patch", "find bugs in this diff".
|
|
142
|
+
- Idea stress-testing: "pressure-test this product idea", "find risks in this plan", "what must be validated first?"
|
|
143
|
+
- Decisions where disagreement helps: multiple models analyze independently, cross-examine, then a judge writes the brief.
|
|
144
|
+
|
|
145
|
+
## Do Not Use Aiki For
|
|
146
|
+
|
|
147
|
+
- Chatting, trivia, writing emails, summaries, or general Q&A.
|
|
148
|
+
- Questions with one straightforward answer, like "what is Docker?" or "explain React hooks".
|
|
149
|
+
- Asking it to edit files, run commands, or act like an autonomous coding agent.
|
|
150
|
+
|
|
151
|
+
If you want chat, use your normal assistant. Aiki is for expensive council-style review and idea pressure-testing.
|
|
152
|
+
|
|
129
153
|
Type a command, or just describe an idea and press Enter:
|
|
130
154
|
|
|
131
155
|
| Command | What it does |
|
package/dist/cli/index.js
CHANGED
|
@@ -12,10 +12,10 @@ import { sessionsCommand } from './sessions.js';
|
|
|
12
12
|
import { config } from './config.js';
|
|
13
13
|
import { modelsCommand } from './models.js';
|
|
14
14
|
import { benchCommand } from './bench.js';
|
|
15
|
+
import { VERSION } from './version.js';
|
|
15
16
|
import { ConfigError, loadLayeredConfig } from '../config/config.js';
|
|
16
17
|
import { resolveRunsRoot } from '../storage/paths.js';
|
|
17
18
|
import { startTui } from '../tui/index.js';
|
|
18
|
-
export const VERSION = '0.2.0';
|
|
19
19
|
const program = new Command();
|
|
20
20
|
/** commander collector for a repeatable option. */
|
|
21
21
|
const collect = (v, acc) => {
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { readFileSync } from 'node:fs';
|
|
2
|
+
export function readPackageVersion(metaUrl = import.meta.url) {
|
|
3
|
+
const pkg = JSON.parse(readFileSync(new URL('../../package.json', metaUrl), 'utf8'));
|
|
4
|
+
if (typeof pkg.version !== 'string')
|
|
5
|
+
throw new Error('package.json version missing');
|
|
6
|
+
return pkg.version;
|
|
7
|
+
}
|
|
8
|
+
export const VERSION = readPackageVersion();
|
package/dist/providers/codex.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { runAdapter } from './adapter-core.js';
|
|
2
2
|
/**
|
|
3
3
|
* Codex CLI (`codex`). Invocation (verified live, T3):
|
|
4
|
-
* codex exec [-s read-only] "<prompt>" (cwd set via spawn's cwd option)
|
|
4
|
+
* codex exec --skip-git-repo-check [-s read-only] "<prompt>" (cwd set via spawn's cwd option)
|
|
5
5
|
*
|
|
6
6
|
* Output split (verified): stdout carries ONLY the model's final message; the full session
|
|
7
7
|
* transcript (session id, echoed prompt, "tokens used") goes to stderr. So stdout *is* the
|
|
@@ -11,13 +11,13 @@ import { runAdapter } from './adapter-core.js';
|
|
|
11
11
|
* Because codex mirrors the prompt + result into stderr, error classification must not scan
|
|
12
12
|
* stderr on success — adapter-core.classify short-circuits on exit 0 for exactly this reason.
|
|
13
13
|
*
|
|
14
|
-
*
|
|
15
|
-
*
|
|
14
|
+
* `--skip-git-repo-check` is safe here: it only permits arbitrary cwd for run-anywhere
|
|
15
|
+
* support and does not bypass approvals or the read-only sandbox.
|
|
16
16
|
*/
|
|
17
17
|
const codexSpec = {
|
|
18
18
|
id: 'codex',
|
|
19
19
|
buildArgs(req, flags) {
|
|
20
|
-
const args = ['exec'];
|
|
20
|
+
const args = ['exec', '--skip-git-repo-check'];
|
|
21
21
|
if (req.readOnly !== false && flags.readOnlyFlag === 'sandbox')
|
|
22
22
|
args.push('-s', 'read-only');
|
|
23
23
|
if (flags.model)
|
package/package.json
CHANGED