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.
@@ -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](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](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](docs/semver.md).
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](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](docs/semver.md),
329
- [docs/provider-packages.md](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](../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.16.0",
4
- "description": "A small, provider-neutral TypeScript toolkit for calling LLMs from backend code.",
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
- "CHANGELOG.md",
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.unit.config.ts --run",
76
- "test:e2e": "vitest --config vitest.e2e.config.ts --run",
77
- "test:browser": "vitest --config vitest.browser.config.ts --run",
78
- "test:watch": "vitest --config vitest.unit.config.ts",
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
- "lint-staged": {
112
- "*.{js,ts,md}": "prettier --write"
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
  }