genaicode 2.16.0 → 2.17.1
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 +118 -96
- package/dist/react/agent-chat.css +32 -0
- package/dist/react/agent-chat.d.ts +5 -0
- package/dist/react/agent-chat.js +24 -4
- package/dist/react/agent-chat.js.map +1 -1
- package/dist/react/app-agent-chat.d.ts +2 -0
- package/dist/react/app-agent-chat.js +1 -1
- package/dist/react/app-agent-chat.js.map +1 -1
- package/dist/ui/web-client.js +44 -12
- package/{CHANGELOG.md → docs/CHANGELOG.md} +12 -6
- package/docs/pivot.md +2 -2
- package/docs/semver.md +1 -1
- package/package.json +35 -13
|
@@ -4,6 +4,9 @@
|
|
|
4
4
|
|
|
5
5
|
### Added
|
|
6
6
|
|
|
7
|
+
- `<AgentChat foldSteps>` (and `<AppAgentChat foldSteps>`): each turn's work (tools, edits,
|
|
8
|
+
interim text) folds into one "N steps" line that opens on click, naming the running tool.
|
|
9
|
+
The answer, errors, steering input and open approvals stay in view.
|
|
7
10
|
- `AppAgent.notify(text)`: a note from the app to its agent, e.g. that a background job a tool
|
|
8
11
|
started has finished. It goes ahead of queued prompts and never starts a conversation.
|
|
9
12
|
- `useAppAgent(basePath, { eventsUrl })`: the event stream URL, for an app that puts a key in
|
|
@@ -50,6 +53,9 @@
|
|
|
50
53
|
|
|
51
54
|
### Changed
|
|
52
55
|
|
|
56
|
+
- README and the package description lead with the coding agents: a 20-second demo, the
|
|
57
|
+
`npx genaicode run --verify` one-liner, then `genaicode/agents`. The LLM layer moved below
|
|
58
|
+
them as "Also: a thin LLM layer", and the 1.x note to the end.
|
|
53
59
|
- `defaultAppAgents`: Claude cannot start subagents (`Task`, `Agent`) in either mode; one can
|
|
54
60
|
outlive the turn, so its answer never reaches the user.
|
|
55
61
|
|
|
@@ -262,7 +268,7 @@
|
|
|
262
268
|
### Notes
|
|
263
269
|
|
|
264
270
|
- Releases are published from GitHub Actions when a version tag is pushed. See
|
|
265
|
-
[docs/releasing.md](
|
|
271
|
+
[docs/releasing.md](releasing.md).
|
|
266
272
|
|
|
267
273
|
## 2.4.0 — 2026-09-24
|
|
268
274
|
|
|
@@ -272,7 +278,7 @@
|
|
|
272
278
|
`CodingAgent` interface. Drivers `claude()`, `codex()`, `muse()`; agent-neutral
|
|
273
279
|
`AgentEvent` stream and `AgentResult`; abort, timeout and process-group kill;
|
|
274
280
|
`detectAgents` / `findExecutable`; `cliAgent()` for custom drivers. See
|
|
275
|
-
[docs/agents.md](
|
|
281
|
+
[docs/agents.md](agents.md).
|
|
276
282
|
- Live agent sessions over JSON-RPC: `codexLive()` (`codex app-server`) and `museLive()`
|
|
277
283
|
(`muse serve`) with `AgentRun.steer()` and `AgentTask.onApproval`; `liveAgent()` and
|
|
278
284
|
`RpcPeer` for custom live drivers; `approval-resolved` event.
|
|
@@ -313,7 +319,7 @@
|
|
|
313
319
|
|
|
314
320
|
Publishes the Phase 3–4 work already on `master`. npm `2.0.0` shipped the 2.0
|
|
315
321
|
kernel and provider adapters only; this minor adds the remaining public surface
|
|
316
|
-
documented in the README and [semver policy](
|
|
322
|
+
documented in the README and [semver policy](semver.md).
|
|
317
323
|
|
|
318
324
|
### Added
|
|
319
325
|
|
|
@@ -321,12 +327,12 @@ documented in the README and [semver policy](docs/semver.md).
|
|
|
321
327
|
native streams for OpenAI / Anthropic / Google with generate→stream fallback)
|
|
322
328
|
- Built-in middleware: `timingPlugin`, `rateLimitPlugin`, `cachePlugin`,
|
|
323
329
|
`fallbackPlugin`, `fallbackProvider`
|
|
324
|
-
- Retry helpers: `classifyError`, `isRetryable`, `withRetry` (+ [docs/retry.md](
|
|
330
|
+
- Retry helpers: `classifyError`, `isRetryable`, `withRetry` (+ [docs/retry.md](retry.md))
|
|
325
331
|
- `ProviderCapabilities` on `ModelProvider`
|
|
326
332
|
- Compatibility fixtures for multimodal and tool-call round trips
|
|
327
333
|
- Framework examples under `examples/` (HTTP handler, queue worker, cron job)
|
|
328
|
-
- Written guidance: [docs/semver.md](
|
|
329
|
-
[docs/provider-packages.md](
|
|
334
|
+
- Written guidance: [docs/semver.md](semver.md),
|
|
335
|
+
[docs/provider-packages.md](provider-packages.md)
|
|
330
336
|
|
|
331
337
|
### Notes
|
|
332
338
|
|
package/docs/pivot.md
CHANGED
|
@@ -91,7 +91,7 @@ and in the 1.x npm line.
|
|
|
91
91
|
`fallbackProvider`).
|
|
92
92
|
- First-class schema adapters without requiring a specific validation library — implemented.
|
|
93
93
|
- Small framework examples for HTTP handlers, queues, and cron jobs — implemented
|
|
94
|
-
under `examples/`.
|
|
94
|
+
under `docs/examples/`.
|
|
95
95
|
- Re-evaluate separate provider packages if dependency size becomes material —
|
|
96
96
|
evaluated; keep bundled for 2.x (see [provider-packages.md](./provider-packages.md)).
|
|
97
97
|
|
|
@@ -113,7 +113,7 @@ and in the 1.x npm line.
|
|
|
113
113
|
helpers, fixtures, examples, and related docs).
|
|
114
114
|
- `2.2.0` adds portable `responseFormat` and `thinking` request fields (so apps
|
|
115
115
|
need fewer provider-specific `generationConfig` casts). See
|
|
116
|
-
[CHANGELOG.md](
|
|
116
|
+
[CHANGELOG.md](CHANGELOG.md).
|
|
117
117
|
|
|
118
118
|
## Success measures
|
|
119
119
|
|
package/docs/semver.md
CHANGED
|
@@ -52,7 +52,7 @@ Require a new major version:
|
|
|
52
52
|
- Timing of stream events beyond the `StreamEvent` discriminant
|
|
53
53
|
- Dependency versions of underlying provider SDKs within a major (may bump in
|
|
54
54
|
minors when needed for security or API drift)
|
|
55
|
-
- Example apps under `examples/` (illustrative only)
|
|
55
|
+
- Example apps under `docs/examples/` (illustrative only)
|
|
56
56
|
|
|
57
57
|
## Plugin and provider authors
|
|
58
58
|
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "genaicode",
|
|
3
|
-
"version": "2.
|
|
4
|
-
"description": "
|
|
3
|
+
"version": "2.17.1",
|
|
4
|
+
"description": "Drive the coding-agent CLIs you already have (Claude Code, Codex, Copilot, Cursor, Gemini, opencode...) behind one API and one CLI, plus a thin provider-neutral LLM layer.",
|
|
5
5
|
"author": "Grzegorz Tańczyk",
|
|
6
6
|
"repository": {
|
|
7
7
|
"type": "git",
|
|
@@ -33,7 +33,8 @@
|
|
|
33
33
|
"files": [
|
|
34
34
|
"dist",
|
|
35
35
|
"docs",
|
|
36
|
-
"
|
|
36
|
+
"!docs/examples",
|
|
37
|
+
"!docs/media",
|
|
37
38
|
"README.md",
|
|
38
39
|
"LICENSE"
|
|
39
40
|
],
|
|
@@ -70,16 +71,17 @@
|
|
|
70
71
|
},
|
|
71
72
|
"scripts": {
|
|
72
73
|
"clean": "node -e \"require('node:fs').rmSync('dist', { recursive: true, force: true })\"",
|
|
73
|
-
"build": "npm run clean && tsc -p tsconfig.build.json && node scripts/build-ui.mjs",
|
|
74
|
+
"build": "npm run clean && tsc -p scripts/tsconfig.build.json && node scripts/build-ui.mjs",
|
|
74
75
|
"lint": "eslint . --ext js,ts,tsx --report-unused-disable-directives --max-warnings 0",
|
|
75
|
-
"test": "vitest --config vitest.
|
|
76
|
-
"test:e2e": "vitest --config vitest.
|
|
77
|
-
"test:browser": "vitest --config vitest.
|
|
78
|
-
"test:watch": "vitest --config vitest.
|
|
76
|
+
"test": "vitest --config scripts/vitest.config.ts --run --project unit",
|
|
77
|
+
"test:e2e": "vitest --config scripts/vitest.config.ts --run --project e2e",
|
|
78
|
+
"test:browser": "vitest --config scripts/vitest.config.ts --run --project browser",
|
|
79
|
+
"test:watch": "vitest --config scripts/vitest.config.ts --project unit",
|
|
79
80
|
"type-check": "tsc --noEmit",
|
|
80
81
|
"check": "npm run type-check && npm run lint && npm test && npm run build",
|
|
81
82
|
"prepublishOnly": "npm run check",
|
|
82
|
-
"prepare": "npm run build"
|
|
83
|
+
"prepare": "npm run build",
|
|
84
|
+
"format": "prettier --write ."
|
|
83
85
|
},
|
|
84
86
|
"dependencies": {
|
|
85
87
|
"@anthropic-ai/sdk": "^0.74.0",
|
|
@@ -96,10 +98,8 @@
|
|
|
96
98
|
"eslint": "^8.54.0",
|
|
97
99
|
"eslint-config-prettier": "^9.0.0",
|
|
98
100
|
"happy-dom": "^20.14.5",
|
|
99
|
-
"husky": "^9.1.1",
|
|
100
101
|
"ink": "^6.8.0",
|
|
101
102
|
"ink-testing-library": "^4.0.0",
|
|
102
|
-
"lint-staged": "^16.4.0",
|
|
103
103
|
"playwright": "^1.56.1",
|
|
104
104
|
"prettier": "^3.1.0",
|
|
105
105
|
"react": "^19.3.0",
|
|
@@ -108,7 +108,29 @@
|
|
|
108
108
|
"vite": "^6.4.3",
|
|
109
109
|
"vitest": "^4.1.11"
|
|
110
110
|
},
|
|
111
|
-
"
|
|
112
|
-
"
|
|
111
|
+
"prettier": {
|
|
112
|
+
"trailingComma": "all",
|
|
113
|
+
"tabWidth": 2,
|
|
114
|
+
"semi": true,
|
|
115
|
+
"singleQuote": true,
|
|
116
|
+
"printWidth": 120,
|
|
117
|
+
"bracketSpacing": true,
|
|
118
|
+
"endOfLine": "lf"
|
|
119
|
+
},
|
|
120
|
+
"eslintConfig": {
|
|
121
|
+
"root": true,
|
|
122
|
+
"env": {
|
|
123
|
+
"node": true
|
|
124
|
+
},
|
|
125
|
+
"extends": [
|
|
126
|
+
"eslint:recommended",
|
|
127
|
+
"plugin:@typescript-eslint/recommended"
|
|
128
|
+
],
|
|
129
|
+
"ignorePatterns": [
|
|
130
|
+
"docs/examples/**/*",
|
|
131
|
+
"dist",
|
|
132
|
+
"coverage"
|
|
133
|
+
],
|
|
134
|
+
"parser": "@typescript-eslint/parser"
|
|
113
135
|
}
|
|
114
136
|
}
|