Skip to content

Commit 886b3db

Browse files
Agents CLI: rename the shared package to the CLI core (dex-agents-cli-core) (#1634)
1 parent b9d1358 commit 886b3db

207 files changed

Lines changed: 613 additions & 613 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

‎.github/workflows/agents-python-publish.yml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -33,10 +33,10 @@ concurrency:
3333
env:
3434
DEXCLI_RELEASE_TAG: cli-v1.45.0
3535
DEXCLI_ARCHIVE: dexcli_v1.45.0_linux_amd64.tar.gz
36-
# Upload order: the core, the adapters, the CLI runtime, then the CLI commands.
36+
# Upload order: the core, the adapters, the CLI core, then the CLI commands.
3737
AGENTS_PYTHON_DISTRIBUTIONS: >-
3838
dex-agents dex-agents-openai-agents dex-agents-pydantic-ai dex-agents-langgraph dex-agents-google-adk
39-
dex-agents-claude-agent-sdk dex-agents-cli dex-agents-claude-sdk-cli dex-agents-openai-sdk-cli
39+
dex-agents-claude-agent-sdk dex-agents-cli-core dex-agents-claude-sdk-cli dex-agents-openai-sdk-cli
4040
dex-agents-pydantic-ai-cli dex-agents-deepagents-cli dex-agents-google-adk-cli dex-agents-builtin-cli
4141
4242
jobs:

‎.github/workflows/agents-typescript-publish.yml‎

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,7 @@ jobs:
159159
name: agents-typescript-tarballs
160160
path: dist
161161
# The core publishes first so every adapter's peer dependency on it resolves.
162-
# The CLI runtime and commands follow the adapters.
162+
# The CLI core and commands follow the adapters.
163163
- name: Publish tarballs with trusted publishing
164164
shell: bash
165165
env:
@@ -169,7 +169,7 @@ jobs:
169169
set -euo pipefail
170170
for package in dex-agents dex-agents-vercel-ai dex-agents-openai-agents \
171171
dex-agents-mastra dex-agents-claude-agent-sdk dex-agents-pi \
172-
dex-agents-cli dex-agents-claude-sdk-cli dex-agents-openai-sdk-cli \
172+
dex-agents-cli-core dex-agents-claude-sdk-cli dex-agents-openai-sdk-cli \
173173
dex-agents-vercel-ai-cli dex-agents-mastra-cli dex-agents-builtin-cli dex-agents-pi-cli; do
174174
tarball="./dist/superdurable-${package}-${RELEASE_VERSION}.tgz"
175175
[[ -f "${tarball}" ]] || { echo "Missing ${tarball}" >&2; exit 1; }

‎CONTRIBUTING.md‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -248,7 +248,7 @@ The dependency-aware paths are:
248248
| TypeScript SDK | `sdk-typescript/vX.Y.Z` | `sdk-typescript/v0.1.0` | npm [`@superdurable/dex`](https://www.npmjs.com/package/@superdurable/dex) via [`.github/workflows/sdk-typescript-publish.yml`](.github/workflows/sdk-typescript-publish.yml) (version from the tag) |
249249
| Rust SDK | `sdk-rust/vX.Y.Z` | `sdk-rust/v0.1.0` | crates.io `dex-sdk`, `dex-blob-cache`, and `dex-protocol` via [`.github/workflows/sdk-rust-publish.yml`](.github/workflows/sdk-rust-publish.yml) (version from the tag) |
250250
| Dex CLI | `cli-vX.Y.Z` | `cli-v0.1.0` | macOS/Linux archives and Homebrew formula input |
251-
| Agents packages | `agents/vX.Y.Z` | `agents/v0.1.0` | PyPI `dex-agents`, its five adapters, the CLI runtime `dex-agents-cli`, and six CLI commands via [`.github/workflows/agents-python-publish.yml`](.github/workflows/agents-python-publish.yml), and npm `@superdurable/dex-agents`, its five adapters, the CLI runtime `@superdurable/dex-agents-cli`, and six CLI commands via [`.github/workflows/agents-typescript-publish.yml`](.github/workflows/agents-typescript-publish.yml) (one version for all twenty-six; see [`agents/README.md`](agents/README.md#releases)) |
251+
| Agents packages | `agents/vX.Y.Z` | `agents/v0.1.0` | PyPI `dex-agents`, its five adapters, the CLI core `dex-agents-cli-core`, and six CLI commands via [`.github/workflows/agents-python-publish.yml`](.github/workflows/agents-python-publish.yml), and npm `@superdurable/dex-agents`, its five adapters, the CLI core `@superdurable/dex-agents-cli-core`, and six CLI commands via [`.github/workflows/agents-typescript-publish.yml`](.github/workflows/agents-typescript-publish.yml) (one version for all twenty-six; see [`agents/README.md`](agents/README.md#releases)) |
252252

253253
Notes:
254254

‎agents/CHANGELOG.md‎

Lines changed: 23 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ for the Dex SDK and framework versions each release supports.
2424
- Dex SDK 1.45.0 still needs a Dex Server with protocol 4: server-zd v0.1.17
2525
or later.
2626
- Agents CI, the nightly long run, and the publish workflows test against
27-
`dexcli` 1.45.0. The Python and TypeScript CLI runtimes download `dexcli`
27+
`dexcli` 1.45.0. The Python and TypeScript CLI cores download `dexcli`
2828
1.45.0 when none is installed.
2929

3030
### Dex MCP conventions
@@ -78,32 +78,32 @@ for the Dex SDK and framework versions each release supports.
7878

7979
### Added
8080

81-
- Python CLI runtime (`dex-agents-cli`, first published in 0.5.0): the shared runtime
81+
- Python CLI core (`dex-agents-cli-core`, first published in 0.5.0): the shared CLI core
8282
of the Python harness commands. It reads `~/.dex/agents/<harness>.yaml` and
8383
asks the init questions on first run, reuses or starts `dexcli dev`
8484
(downloading a checksum-verified `dexcli` when none is installed), offers the
8585
connectors MCP server's tools and local file, shell, web fetch, and browser
8686
tools as Dex tool Steps, narrows each turn by the session settings, and chats
8787
in the terminal with inline approvals and Ctrl-C to cancel a turn. Harness
8888
packages implement **AgentHarness**. See
89-
[cli/python/runtime](cli/python/runtime/README.md).
89+
[cli/python/core](cli/python/core/README.md).
9090
- The **dex-agents-claude-sdk** command, in Python (`dex-agents-claude-sdk-cli`)
9191
and TypeScript (`@superdurable/dex-agents-claude-sdk-cli`), first published
92-
in 0.5.0: a Claude Agent SDK agent in the terminal on the shared CLI runtime.
92+
in 0.5.0: a Claude Agent SDK agent in the terminal on the shared CLI core.
9393
Claude Code's own Read, Grep, Glob, Write, Edit, Bash, and WebFetch tools
94-
replace the runtime's file, shell, and web fetch tools, with the same rules:
94+
replace the CLI core's file, shell, and web fetch tools, with the same rules:
9595
each turn offers only the groups its session settings switch on, reads run at
9696
once, writes and shell commands wait for approval unless the shell allow list
9797
has the command, file tools stay in the workspace, and the tool Step checks an
9898
approved call again. `ANTHROPIC_API_KEY` reaches Claude Code unchanged. See
9999
[cli/python/claude-sdk](cli/python/claude-sdk/README.md).
100100
- The **dex-agents-pi** command (`@superdurable/dex-agents-pi-cli`, first
101-
published in 0.5.0): a Pi coding agent in the terminal on the shared CLI runtime,
101+
published in 0.5.0): a Pi coding agent in the terminal on the shared CLI core,
102102
where Dex runs the agent loop and pi-ai makes each model call. The model is
103103
`<provider>/<model>` from pi-ai's catalog, and the key comes only from the
104104
provider's API key variable. pi-coding-agent's `read`, `grep`, `find`, `ls`,
105-
`write`, `edit`, and `bash` replace the runtime's file and shell tools, with
106-
the same rules: their file access goes through the runtime's workspace file
105+
`write`, `edit`, and `bash` replace the CLI core's file and shell tools, with
106+
the same rules: their file access goes through the CLI core's workspace file
107107
layer. `bash` has the shell tool's 120-second default timeout
108108
(`pi.bash_timeout_seconds`) and its 600-second maximum, and a command that
109109
ran is a result with its exit status. `grep` and `find` walk the workspace
@@ -113,44 +113,44 @@ for the Dex SDK and framework versions each release supports.
113113
only directly in its own directory, and above the workspace the file, and a
114114
link to it, must belong to you or root. See
115115
[cli/typescript/pi](cli/typescript/pi/README.md).
116-
- TypeScript CLI runtime: **WorkspaceFiles**, the workspace file layer of the
116+
- TypeScript CLI core: **WorkspaceFiles**, the workspace file layer of the
117117
local file tools, is exported for harnesses that bring their own file tools,
118118
with new methods **readFileWithVersion** (with an optional smaller
119119
**maximumBytes**), **replaceFileIfUnchanged**, **statExisting**, and
120120
**readDirectoryEntries**. A refusal throws the new
121121
**WorkspaceFileRefusedError**, a `ToolExecutionError` thrown before anything
122122
changed. See
123-
[cli/typescript/runtime](cli/typescript/runtime/README.md#the-harness-interface).
124-
- TypeScript CLI runtime: `read_file`, `edit_file`, and `search_files` open
123+
[cli/typescript/core](cli/typescript/core/README.md#the-harness-interface).
124+
- TypeScript CLI core: `read_file`, `edit_file`, and `search_files` open
125125
files without blocking, so a FIFO in the workspace fails at once as not a
126126
regular file, or is skipped by a search, instead of hanging the call, as in
127-
the Python runtime.
127+
the Python CLI core.
128128
- Python commands for the other harnesses, first published in 0.5.0, on the
129-
shared CLI runtime: **dex-agents-openai-sdk** (OpenAI Agents SDK),
129+
shared CLI core: **dex-agents-openai-sdk** (OpenAI Agents SDK),
130130
**dex-agents-pydantic-ai** (Pydantic AI), **dex-agents-deepagents** (Deep
131131
Agents on the LangGraph adapter), **dex-agents-google-adk** (Google ADK), and
132132
**dex-agents-builtin** (the Dex built-in agent loop on LiteLLM). Each uses the
133-
runtime's local and connector tools, so every tool call is its own Dex tool
134-
Step with the runtime's policy, and each model call uses its turn's model and
133+
CLI core's local and connector tools, so every tool call is its own Dex tool
134+
Step with the CLI core's policy, and each model call uses its turn's model and
135135
instructions. Provider keys come only from each provider's standard
136136
environment variables. The configuration file's `langgraph` section is now
137137
`deepagents`. See [cli/python](cli/python).
138138
- The TypeScript **dex-agents-openai-sdk**, **dex-agents-vercel-ai**,
139139
**dex-agents-mastra**, and **dex-agents-builtin** commands
140140
(`@superdurable/dex-agents-<name>-cli`), first published in 0.5.0: an OpenAI Agents
141141
SDK, Vercel AI SDK, Mastra, or built-in loop agent in the terminal on the shared
142-
CLI runtime, with its connector and local tools. Each turn uses the model and
142+
CLI core, with its connector and local tools. Each turn uses the model and
143143
instructions its session settings resolve to. Provider keys come from each
144144
provider's standard environment variables, such as `OPENAI_API_KEY`. See
145145
[cli/typescript/openai-sdk](cli/typescript/openai-sdk/README.md),
146146
[vercel-ai](cli/typescript/vercel-ai/README.md),
147147
[mastra](cli/typescript/mastra/README.md), and
148148
[builtin](cli/typescript/builtin/README.md).
149-
- TypeScript CLI runtime: a harness whose runner fixes its tools when the Flow
150-
is built sets **AgentHarness.isToolSetFixedAtBuild**. The runtime then lists
149+
- TypeScript CLI core: a harness whose runner fixes its tools when the Flow
150+
is built sets **AgentHarness.isToolSetFixedAtBuild**. The CLI core then lists
151151
the file's connector tools before building the Flow and, when the connectors
152152
MCP server does not answer at startup, says that a restart brings them back.
153-
See [cli/typescript/runtime](cli/typescript/runtime/README.md#connectors).
153+
See [cli/typescript/core](cli/typescript/core/README.md#connectors).
154154
- Python and TypeScript Claude Agent SDK adapters: **claude_code_tool_permission**
155155
(`claudeCodeToolPermission`) decides each call of a tool that runs inside the
156156
Claude Code CLI from its input. It returns a **ToolPolicy** for that call,
@@ -176,7 +176,7 @@ for the Dex SDK and framework versions each release supports.
176176
values that say where the program that started the session ran. The session
177177
never reads it; it stays in the Flow's start input. Python
178178
`AgentSessionClient.start_session` and TypeScript `startAgentSession` take
179-
it. Workers before 0.5.0 ignore it. The CLI runtimes record their host name,
179+
it. Workers before 0.5.0 ignore it. The CLI cores record their host name,
180180
user ID and user name, configuration identity, and workspace there.
181181
- Python and TypeScript cores: new **ToolCallContext.effect**, the effect of a
182182
built-in agent loop function tool call after the tool policies are applied.
@@ -323,7 +323,7 @@ for the Dex SDK and framework versions each release supports.
323323
`EncodeStepwiseMessage` -> `EncodeBuiltinLoopMessage`;
324324
`DecodeStepwiseMessage` -> `DecodeBuiltinLoopMessage`. Package `stepwise`
325325
forwards to `builtinloop` and is marked `Deprecated:`.
326-
- The framework adapters, the Pi adapter, and the agents CLI runtime import
326+
- The framework adapters, the Pi adapter, and the agents CLI core import
327327
the new names.
328328
- The error text for a session message that the built-in agent loop cannot
329329
read now says "built-in agent loop item" (Python and Go cores) or "built-in
@@ -333,7 +333,7 @@ for the Dex SDK and framework versions each release supports.
333333
Python loggers are now named `dex_agents.builtin_loop.*`, and the Go core's
334334
panic messages for a nil model client or definition start with
335335
`builtinloop:` instead of `stepwise:`.
336-
- Breaking, Python and TypeScript CLI runtimes: the session Flow type suffix is
336+
- Breaking, Python and TypeScript CLI cores: the session Flow type suffix is
337337
now 6 lowercase base36 characters instead of 12 hex digits, from the same
338338
SHA-256 of the host name, user, configuration identity, and workspace: the
339339
digest's first 8 bytes as an unsigned big-endian integer, modulo 36^6, in
@@ -343,7 +343,7 @@ for the Dex SDK and framework versions each release supports.
343343
`current_session_environment_identity`, and `SessionEnvironmentIdentity`
344344
match the TypeScript `namespaceSessionFlowType`.
345345
`agents/conformance/cli_session_flow_types.json` fixes the suffix for every
346-
CLI runtime.
346+
CLI core.
347347
- Breaking, Python and TypeScript cores: a connector tool's default name now
348348
uses the Connector library's snake case (connectorctl `lowerCamelToSnake`),
349349
which also names the Python Step factories. An acronym run stays one word.

‎agents/README.md‎

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ adapter depends on the published core instead.
2121
| [`python/langgraph`](python/langgraph) | [`dex-agents-langgraph`](https://pypi.org/project/dex-agents-langgraph/) | LangChain `create_agent` and LangGraph |
2222
| [`python/google-adk`](python/google-adk) | [`dex-agents-google-adk`](https://pypi.org/project/dex-agents-google-adk/) | Google ADK |
2323
| [`python/claude-agent-sdk`](python/claude-agent-sdk) | [`dex-agents-claude-agent-sdk`](https://pypi.org/project/dex-agents-claude-agent-sdk/) | Claude Agent SDK |
24-
| [`cli/python/runtime`](cli/python/runtime) | `dex-agents-cli` (`dex_agents_cli`), not published yet | Shared runtime of the Python CLI commands: configuration, `dexcli dev`, connector and local tools, terminal chat |
24+
| [`cli/python/core`](cli/python/core) | `dex-agents-cli-core` (`dex_agents_cli_core`), not published yet | Shared core of the Python CLI commands: configuration, `dexcli dev`, connector and local tools, terminal chat |
2525
| [`cli/python/claude-sdk`](cli/python/claude-sdk) | `dex-agents-claude-sdk-cli`, not published yet | The `dex-agents-claude-sdk` command: a Claude Agent SDK agent in the terminal |
2626
| [`cli/python/openai-sdk`](cli/python/openai-sdk) | `dex-agents-openai-sdk-cli`, not published yet | The `dex-agents-openai-sdk` command: an OpenAI Agents SDK agent in the terminal |
2727
| [`cli/python/pydantic-ai`](cli/python/pydantic-ai) | `dex-agents-pydantic-ai-cli`, not published yet | The `dex-agents-pydantic-ai` command: a Pydantic AI agent in the terminal |
@@ -35,7 +35,7 @@ adapter depends on the published core instead.
3535
| [`typescript/openai-agents`](typescript/openai-agents) | [`@superdurable/dex-agents-openai-agents`](https://www.npmjs.com/package/@superdurable/dex-agents-openai-agents) | OpenAI Agents SDK |
3636
| [`typescript/mastra`](typescript/mastra) | [`@superdurable/dex-agents-mastra`](https://www.npmjs.com/package/@superdurable/dex-agents-mastra) | Mastra |
3737
| [`typescript/claude-agent-sdk`](typescript/claude-agent-sdk) | [`@superdurable/dex-agents-claude-agent-sdk`](https://www.npmjs.com/package/@superdurable/dex-agents-claude-agent-sdk) | Claude Agent SDK |
38-
| [`cli/typescript/runtime`](cli/typescript/runtime) | `@superdurable/dex-agents-cli`, not published yet | Shared runtime of the TypeScript CLI commands: configuration, `dexcli dev`, connector and local tools, terminal chat |
38+
| [`cli/typescript/core`](cli/typescript/core) | `@superdurable/dex-agents-cli-core`, not published yet | Shared core of the TypeScript CLI commands: configuration, `dexcli dev`, connector and local tools, terminal chat |
3939
| [`cli/typescript/claude-sdk`](cli/typescript/claude-sdk) | `@superdurable/dex-agents-claude-sdk-cli`, not published yet | The `dex-agents-claude-sdk` command: a Claude Agent SDK agent in the terminal |
4040
| [`cli/typescript/openai-sdk`](cli/typescript/openai-sdk) | `@superdurable/dex-agents-openai-sdk-cli`, not published yet | The `dex-agents-openai-sdk` command: an OpenAI Agents SDK agent in the terminal |
4141
| [`cli/typescript/vercel-ai`](cli/typescript/vercel-ai) | `@superdurable/dex-agents-vercel-ai-cli`, not published yet | The `dex-agents-vercel-ai` command: a Vercel AI SDK agent in the terminal |
@@ -168,7 +168,7 @@ or later.
168168

169169
Publishing a GitHub Release with the tag `agents/v<version>` from a commit on
170170
`main` publishes all twenty-six packages in dependency order: the core, the
171-
adapters, the CLI runtime, then the CLI commands. `dex-agents-cli-testing`
171+
adapters, the CLI core, then the CLI commands. `dex-agents-cli-testing`
172172
is never published.
173173
[`agents-python-publish.yml`](../.github/workflows/agents-python-publish.yml)
174174
uploads to PyPI and
@@ -188,7 +188,7 @@ It sets one version in all fourteen `pyproject.toml` files (the thirteen
188188
published ones and `dex-agents-cli-testing`) and thirteen `package.json`
189189
files, their lockfiles, and every constraint between agents packages: the
190190
adapters' on their core, and the CLI packages' on the core, their adapter,
191-
and the CLI runtime. Python pins `==<version>`; npm peer-depends on
191+
and the CLI core. Python pins `==<version>`; npm peer-depends on
192192
`^<version>`. Run it locally to bump the committed version, and pass
193193
`--check` to verify it.
194194

@@ -198,7 +198,7 @@ and installs them into fresh projects without path dependencies: the core
198198
first, then each adapter. It imports every TypeScript core subpath with and
199199
without the optional peer `ai`. It then runs one Pydantic AI session and one Vercel
200200
AI SDK session against `dexcli dev --engine zd` with a scripted model, using
201-
the adapters' own test fixtures. Last, it installs the CLI runtime and each
201+
the adapters' own test fixtures. Last, it installs the CLI core and each
202202
CLI command from the built artifacts alone and runs each command's `--help`
203203
and `init --yes` with a scratch `HOME`; neither needs a model key or a Dex
204204
server. Agents CI runs it on every change, so packaging regressions fail CI:
@@ -211,7 +211,7 @@ DEXCLI=/path/to/dexcli agents/script/smoke-test-built-packages.sh all
211211

212212
PyPI accepts only about five new projects per day. A release that publishes
213213
more new PyPI names than that uploads in two runs. The first release of the
214-
CLI packages has seven new names: `dex-agents-cli` and six commands.
214+
CLI packages has seven new names: `dex-agents-cli-core` and six commands.
215215

216216
The PyPI workflow's `skip_packages` input leaves CLI command distributions
217217
out of one upload. It accepts only command names, because nothing else in the

0 commit comments

Comments
 (0)