Commit Graph

341 Commits

Author SHA1 Message Date
Peter Steinberger
d46e156102
docs: refresh docs site logo
Some checks failed
CI / scope (push) Has been cancelled
pages / Deploy docs (push) Has been cancelled
CI / ${{ matrix.name }} (pnpm run build, Build) (push) Has been cancelled
CI / Docs (push) Has been cancelled
CI / ${{ matrix.name }} (pnpm run conformance:run -- --case acp.v1.initialize.handshake, Conformance Smoke) (push) Has been cancelled
CI / ${{ matrix.name }} (pnpm run format:check, Format) (push) Has been cancelled
CI / ${{ matrix.name }} (pnpm run lint, Lint) (push) Has been cancelled
CI / ${{ matrix.name }} (pnpm run test:coverage, Test, 22) (push) Has been cancelled
CI / ${{ matrix.name }} (pnpm run typecheck, Typecheck) (push) Has been cancelled
2026-05-06 02:06:49 +01:00
Peter Steinberger
f6803dad1e
docs: polish docs site code blocks 2026-05-06 00:42:40 +01:00
Peter Steinberger
0132c82713
docs: preserve inline code in docs site 2026-05-05 22:10:43 +01:00
Peter Steinberger
9fedaec7c2
docs: add GitHub Pages docs site 2026-05-05 22:06:47 +01:00
Peter Steinberger
0f3a34a9eb
chore: release 0.7.0
Some checks failed
CI / scope (push) Has been cancelled
Release / release (push) Has been cancelled
CI / ${{ matrix.name }} (pnpm run build, Build) (push) Has been cancelled
CI / ${{ matrix.name }} (pnpm run conformance:run -- --case acp.v1.initialize.handshake, Conformance Smoke) (push) Has been cancelled
CI / ${{ matrix.name }} (pnpm run format:check, Format) (push) Has been cancelled
CI / ${{ matrix.name }} (pnpm run lint, Lint) (push) Has been cancelled
CI / ${{ matrix.name }} (pnpm run test:coverage, Test, 22) (push) Has been cancelled
CI / ${{ matrix.name }} (pnpm run typecheck, Typecheck) (push) Has been cancelled
CI / Docs (push) Has been cancelled
2026-05-05 20:47:39 +01:00
Peter Steinberger
f5fa1862e0
ci: run full checks for workflow changes 2026-05-05 20:42:14 +01:00
Peter Steinberger
c89b344f45
ci: use GitHub-hosted runners for CI 2026-05-05 20:41:23 +01:00
Joshua Lelon Mitchell
2d1e30d00c
feat(flows): add decision() helper for constrained LLM branching (#278)
Wraps the existing acp + parse + switch pattern into a typed helper that
scaffolds the JSON-with-reason prompt and validates the chosen value
against the supplied choices tuple. decisionEdge() builds the matching
switch edge with exhaustively-typed cases. Returns a plain AcpNodeDefinition
so no schema, snapshot, or replay-viewer changes are required.

Rewrites examples/flows/branch.flow.ts to use the helper.

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-05 20:28:05 +01:00
Peter Steinberger
fd67b109b3
Create CNAME 2026-05-05 20:25:47 +01:00
Peter Steinberger
43013ead1a
fix(runtime): preserve ACP session details and close active owners 2026-05-05 19:15:51 +01:00
Peter Steinberger
032bc40466
test: make Windows path assertions portable 2026-05-05 11:38:24 +01:00
Solomon Neas
c6bc937a29
fix: recognize .cmd/.bat as Windows-side commands for WSL cwd translation
Recognize Windows .cmd/.bat ACP agent wrappers when translating WSL cwd, including non-C drive installs.\n\nGate: pnpm run check locally on PR branch; rebased onto main after #289 and #291.\n\nThanks @solomonneas.
2026-05-05 10:51:02 +01:00
Jordan Baker
97f301dc69
fix: closeSession uses session/close not nes/close
Send session/close from AcpClient.closeSession instead of the experimental nes/close method.\n\nGate: pnpm run check locally on PR branch; rebased onto main after #289.\n\nThanks @hexsprite.
2026-05-05 10:50:08 +01:00
Mike Chong
436fd4fd66
fix(win32): resolve Claude Code executable path for ACP spawn
Resolve claude.exe from PATH before spawning Claude ACP sessions on native Windows.\n\nGate: pnpm run check; GitHub CI green on "3637bce325a32bcf083626a3e9d4ee6534b19594".\n\nThanks @MikeChongCan.
2026-05-05 10:48:54 +01:00
dependabot[bot]
a23310ee99
chore(deps): bump pnpm/action-setup to 6.0.5
Bump pnpm/action-setup from 6.0.3 to 6.0.5.
2026-05-05 10:33:07 +01:00
Peter Steinberger
03d87dd493
fix: satisfy unknown-session conformance
Some checks failed
CI / scope (push) Has been cancelled
CI / ${{ matrix.name }} (pnpm run build, Build) (push) Has been cancelled
CI / ${{ matrix.name }} (pnpm run conformance:run -- --case acp.v1.initialize.handshake, Conformance Smoke) (push) Has been cancelled
CI / ${{ matrix.name }} (pnpm run format:check, Format) (push) Has been cancelled
CI / ${{ matrix.name }} (pnpm run lint, Lint) (push) Has been cancelled
CI / ${{ matrix.name }} (pnpm run test:coverage, Test, 22) (push) Has been cancelled
CI / ${{ matrix.name }} (pnpm run typecheck, Typecheck) (push) Has been cancelled
CI / Docs (push) Has been cancelled
2026-05-03 16:18:04 +01:00
Vincent Koc
1a9fdabfd7
fix(security): avoid prototype setter in replay patches
Some checks failed
CI / scope (push) Has been cancelled
CI / Docs (push) Has been cancelled
CI / ${{ matrix.name }} (pnpm run build, Build) (push) Has been cancelled
CI / ${{ matrix.name }} (pnpm run conformance:run -- --case acp.v1.initialize.handshake, Conformance Smoke) (push) Has been cancelled
CI / ${{ matrix.name }} (pnpm run format:check, Format) (push) Has been cancelled
CI / ${{ matrix.name }} (pnpm run lint, Lint) (push) Has been cancelled
CI / ${{ matrix.name }} (pnpm run test:coverage, Test, 22) (push) Has been cancelled
CI / ${{ matrix.name }} (pnpm run typecheck, Typecheck) (push) Has been cancelled
2026-04-30 03:38:06 -07:00
Vincent Koc
541742f800
fix(security): harden flow sanitizer paths 2026-04-30 03:33:29 -07:00
Peter Steinberger
e1a3546669
chore: drop stale npm lockfile
Some checks failed
CI / scope (push) Has been cancelled
CI / ${{ matrix.name }} (pnpm run build, Build) (push) Has been cancelled
CI / ${{ matrix.name }} (pnpm run conformance:run -- --case acp.v1.initialize.handshake, Conformance Smoke) (push) Has been cancelled
CI / ${{ matrix.name }} (pnpm run format:check, Format) (push) Has been cancelled
CI / ${{ matrix.name }} (pnpm run lint, Lint) (push) Has been cancelled
CI / ${{ matrix.name }} (pnpm run test:coverage, Test, 22) (push) Has been cancelled
CI / ${{ matrix.name }} (pnpm run typecheck, Typecheck) (push) Has been cancelled
CI / Docs (push) Has been cancelled
2026-04-27 11:55:10 +01:00
Peter Steinberger
2480c48806
fix: require advertised ACP model support
Some checks are pending
CI / scope (push) Waiting to run
CI / ${{ matrix.name }} (pnpm run build, Build) (push) Blocked by required conditions
CI / ${{ matrix.name }} (pnpm run conformance:run -- --case acp.v1.initialize.handshake, Conformance Smoke) (push) Blocked by required conditions
CI / ${{ matrix.name }} (pnpm run format:check, Format) (push) Blocked by required conditions
CI / ${{ matrix.name }} (pnpm run lint, Lint) (push) Blocked by required conditions
CI / ${{ matrix.name }} (pnpm run test:coverage, Test, 22) (push) Blocked by required conditions
CI / ${{ matrix.name }} (pnpm run typecheck, Typecheck) (push) Blocked by required conditions
CI / Docs (push) Blocked by required conditions
2026-04-25 21:52:18 +01:00
Peter Steinberger
119b84ee31
test: dedupe session record fixtures
Some checks are pending
CI / scope (push) Waiting to run
CI / ${{ matrix.name }} (pnpm run build, Build) (push) Blocked by required conditions
CI / ${{ matrix.name }} (pnpm run conformance:run -- --case acp.v1.initialize.handshake, Conformance Smoke) (push) Blocked by required conditions
CI / ${{ matrix.name }} (pnpm run format:check, Format) (push) Blocked by required conditions
CI / ${{ matrix.name }} (pnpm run lint, Lint) (push) Blocked by required conditions
CI / ${{ matrix.name }} (pnpm run test:coverage, Test, 22) (push) Blocked by required conditions
CI / ${{ matrix.name }} (pnpm run typecheck, Typecheck) (push) Blocked by required conditions
CI / Docs (push) Blocked by required conditions
2026-04-25 11:32:53 +01:00
Peter Steinberger
7f3c177e7c
refactor: dedupe session and ACP helpers 2026-04-25 11:32:44 +01:00
Peter Steinberger
7ac8cf0bb3
chore: bump version to 0.6.1 2026-04-25 11:24:40 +01:00
Peter Steinberger
69f527646b
chore: strengthen lint rules 2026-04-25 11:23:44 +01:00
Peter Steinberger
0cc6ebad9b
docs: curate 0.6.0 changelog
Some checks failed
Release / release (push) Has been cancelled
2026-04-25 10:51:15 +01:00
Peter Steinberger
2b92de84e7
docs: clarify session identity output 2026-04-25 10:44:12 +01:00
Peter Steinberger
521fda38a5
fix: replay saved session config options 2026-04-25 10:40:46 +01:00
Peter Steinberger
013f2fd830
fix: use locked ACP SDK close API 2026-04-25 10:04:33 +01:00
Peter Steinberger
b7cc36c503
fix: improve live session history and error hints 2026-04-25 09:58:44 +01:00
Peter Steinberger
51123f8de5
fix: mark resumable sessions idle
Fixes #185
2026-04-25 09:47:51 +01:00
Peter Steinberger
4787ba3efa
fix: translate WSL cwd for Windows agents
Fixes #232
2026-04-25 09:40:39 +01:00
Peter Steinberger
957c60475e
chore(agents): bump built-in adapter ranges (#275) 2026-04-25 09:29:50 +01:00
Peter Steinberger
ea2c1cfb5a
fix(output): show quiet usage metadata (#274) 2026-04-25 09:25:12 +01:00
Peter Steinberger
3435b3f77c
test(queue): cover no-wait prompt drain (#273) 2026-04-25 09:20:28 +01:00
Peter Steinberger
6e0e1a70b2
fix(runtime): stringify doctor details
Normalize runtime probe/doctor detail values before returning `AcpRuntimeDoctorReport`, so consumers never receive object values that render as `[object Object]`.

Fixes #267.

Validation:
- fnm exec --using=24.15.0 corepack pnpm@10.33.2 run check
- CI: https://github.com/openclaw/acpx/actions/runs/24926487294
2026-04-25 09:14:26 +01:00
DMQ
3b94ac9c39
feat(cli): add terminal capability opt-out
Add --no-terminal so ACPX can initialize new agent clients with clientCapabilities.terminal=false.

Reworked on current main because the original branch targeted stale paths. Includes CLI/docs/changelog updates plus regression coverage for direct exec and queue-owner propagation.

Local verification:
- fnm exec --using=24.15.0 corepack pnpm@10.33.2 run check

CI: https://github.com/openclaw/acpx/actions/runs/24926378907

Co-authored-by: DMQ <6860287+DMQ@users.noreply.github.com>
2026-04-25 09:08:35 +01:00
Coder
0ad1577c1e
feat(sessions): add prune command
Add an explicit `sessions prune` command for deleting closed session records and optional event stream history.

- add `sessions prune` with `--dry-run`, `--before`, `--older-than`, and `--include-history`
- filter age by `closedAt`, falling back to `lastUsedAt` for older records
- avoid overmatching neighboring stream files when deleting history
- cover storage behavior plus CLI help, dry-run, JSON output, and include-history paths
- document the command and add the changelog entry

Validation:
- fnm exec --using=24.15.0 corepack pnpm@10.33.2 run build:test
- fnm exec --using=24.15.0 node --test dist-test/test/sessions-prune.test.js dist-test/test/cli.test.js --test-name-pattern "sessions prune|sessions new command is present"
- fnm exec --using=24.15.0 corepack pnpm@10.33.2 run check
- CI: https://github.com/openclaw/acpx/actions/runs/24926186590 on c263cd981d66bf66750a1ac73c4f46d089c780cc

Co-authored-by: coder999999999 <coder999999999@users.noreply.github.com>
2026-04-25 08:57:34 +01:00
Paul Bohm
cf895c8c6c
fix(runtime): reuse sessions for controls
Reuse the kept-open persistent runtime client for mode/config controls and keep config option state visible in runtime status.

- share runtime control session acquisition across active, pending, and reconnect paths
- reuse the pending persistent client for controls before the first prompt turn
- persist returned config option state into session status
- preserve active-turn config option state through the turn finalizer

Validation:
- fnm exec --using=24.15.0 corepack pnpm@10.33.2 run build:test
- fnm exec --using=24.15.0 node --test dist-test/test/runtime-manager.test.js
- fnm exec --using=24.15.0 corepack pnpm@10.33.2 run format:check
- CI: https://github.com/openclaw/acpx/actions/runs/24926069053 on 0683e507b9e109e101cd490173f5678df2234245

Co-authored-by: enki <29411+enki@users.noreply.github.com>
2026-04-25 08:50:25 +01:00
Paul Bohm
475a767169
feat(runtime): add turn handles
Add runtime turn handles for embedders that need live stream control without overloading terminal events.

- add startTurn(...) with live events, terminal result, per-turn cancel, and stream-only close
- keep runTurn(...) as the compatibility adapter that emits terminal done/error events
- retain reusable persistent clients across turns and close them on runtime close/active close
- make coverage exclude compiled test files explicitly and normalize early child-exit initialize failures

Validation:
- fnm exec --using=24.15.0 corepack pnpm@10.33.2 run check
- CI: https://github.com/openclaw/acpx/actions/runs/24925872112 on 343b0b957259e0adf720bded199c718f3bb8c057

Co-authored-by: enki <29411+enki@users.noreply.github.com>
2026-04-25 08:46:10 +01:00
Peter Steinberger
e42e921366
fix(prompt): honor model option on persistent prompts (#271)
fix(prompt): honor model option on persistent prompts

- carry prompt session options through persistent prompt and queue owner paths
- apply requested --model before sending the prompt to an existing session
- add regression coverage for persistent prompt model switches and queue payload parsing

Co-authored-by: william khoo <6055148+skywills@users.noreply.github.com>
2026-04-25 08:21:18 +01:00
Peter Steinberger
445d975b99
fix(claude): bump built-in adapter range
Bump the ACPX-owned Claude ACP adapter package range to `^0.31.0` so fresh built-in launches pick up Opus 4.7 support and later ACP compatibility fixes.

Also adds Claude built-in docs, fixes the stale docs package name, locks the range in tests, and hardens temp-home cleanup for a reproduced macOS `ENOTEMPTY` race in the CLI test suite.

Supersedes #253.
2026-04-25 08:06:16 +01:00
Miguel Salinas
1098b0d6ca
feat(claude): forward system prompt metadata
Adds Claude system prompt replace/append flags and persists the setting across acpx sessions.\n\nVerified locally with Node 24 / pnpm 10.33.2 full check and GitHub CI on 7453007.\n\nCo-authored-by: Miguel Salinas <mikeys@me.com>
2026-04-25 07:53:49 +01:00
Peter Steinberger
8afcc68c86
chore(deps): update dependencies
Updates all current dependencies and pnpm pin; adapts ACP SDK 0.20 session close API.\n\nVerified with local Node 24 pnpm 10.33.2 full check and CI.
2026-04-25 07:43:00 +01:00
Peter Steinberger
232999cd59
chore: prepare 0.6.0 release 2026-04-25 07:39:44 +01:00
Peter Steinberger
e0cb576534 ci: bump pnpm setup action to v6.0.3 (#266) 2026-04-25 07:29:49 +01:00
dependabot[bot]
9bd6421c29 chore(deps): bump @agentclientprotocol/sdk in the production group
Bumps the production group with 1 update: [@agentclientprotocol/sdk](https://github.com/agentclientprotocol/typescript-sdk).


Updates `@agentclientprotocol/sdk` from 0.18.1 to 0.18.2
- [Release notes](https://github.com/agentclientprotocol/typescript-sdk/releases)
- [Changelog](https://github.com/agentclientprotocol/typescript-sdk/blob/main/CHANGELOG.md)
- [Commits](https://github.com/agentclientprotocol/typescript-sdk/compare/v0.18.1...v0.18.2)

---
updated-dependencies:
- dependency-name: "@agentclientprotocol/sdk"
  dependency-version: 0.18.2
  dependency-type: direct:production
  update-type: version-update:semver-patch
  dependency-group: production
...

Signed-off-by: dependabot[bot] <support@github.com>
2026-04-25 07:26:52 +01:00
Peter Steinberger
b03c475f1e fix(output): add text error remediation hints (#256) 2026-04-25 07:26:04 +01:00
Peter Steinberger
3a0007e99d fix(queue): randomize owner generations (#207) 2026-04-25 07:20:38 +01:00
Peter Steinberger
3d967954c1 fix(config): honor custom agent args (#199) 2026-04-25 07:14:20 +01:00
Peter Steinberger
b201fd13bb test(queue): cover owner-only queue dirs (#216) 2026-04-25 07:07:34 +01:00