Uh oh!
There was an error while loading. Please reload this page.
feat: remove hosted provider and expand agent workflows - #176
Conversation
…er module The config-file shape, the model-alias types, and the /models value parsers were defined inside the provider-login module and carried its name, even though nothing about them is provider-specific: a custom registry, a models.dev import, and an API-key provider all use the same shapes, and the Codex OAuth flow imports one of the parsers. Move them to their own module under neutral names. The provider module re-exports the old names for now so no other package changes in this step.
…ndpoint Title generation called a chat_title endpoint on a service this product does not operate, authenticated with a credential slot that logs into a third party. Remove that call and the prompt-composition machinery that only ever fed it. The service, its flag, and the client-facing rename surface stay in place and generation now reports unavailable, so an existing custom or generated title is never disturbed. The flag already defaulted to off, so no enabled feature changes behaviour.
The plugin authenticated against a hosted service this product does not operate, using a fixed auth host and inference endpoint compiled into its binary. It cannot work once that service is gone, so ship it no longer: the plugin, its marketplace entry, and its documentation references are removed. The "quota-consuming plugin" notice went with it. It existed only to warn that this one plugin billed against a hosted plan, and no remaining plugin bills anything.
…ugh one shared slot Plugin MCP servers were handed the endpoint of a hosted provider slot through injected environment variables, and the web fetch and search services borrowed that same slot's name when resolving a token for a credential the user had configured themselves. Drop the plugin injection: nothing bundled reads those variables any more. Give the fetch and search services their own credential slot names so each one resolves the token for the service it is actually configured for.
Centralize MCP configuration, discovery, connection tests, and OAuth lifecycle for process-level clients.
Carry workspace context through management mutations and OAuth lookup while preserving declared public error codes.
Expose MCP CRUD, inspection, testing, and OAuth routes only when the experimental MCP management flag is enabled.
Add validated memory and IPC calls for MCP management while rejecting access when the experimental flag is disabled.
Use the unified engine service for MCP configuration, inspection, testing, and OAuth while preserving SDK error shapes.
Place skill catalogs and tools under one feature unit. Resolve skill operations through each agent runtime while preserving existing gateway, SDK, and Klient wire methods.
Give AgentDynamicWorkflow an independent timeout setting and environment override. Keep print mode unbounded unless the user sets a value.
Record repeated tool signatures across steps in one turn without changing dedupe behavior. Reset counters at the turn boundary and emit structured telemetry.
Steer tower input into the active coordinator turn. Preserve re-init state, report base mismatches, and let the tower abandon stale missions so their scopes can be reused.
Export the registered Tower flag and verify default, config, dedicated environment, and master environment precedence.
Refresh provider availability after logout without closing a running session. Clear a config-derived model only when no session exists.
Serve file suggestions from absolute roots without registering a workspace. Merge and deduplicate results across roots while preserving the primary root display contract.
Remove in-place prompt refresh and notify agents when instruction files change. Preserve active prompts across compaction and configuration updates.
Drop imports left unused after managed provider and Tower workflow removal so the repository lint gate passes.
Build only the surviving OAuth package entry after removing the managed device-flow module.
Remove stale OAuth importer entries so frozen installs and the Nix derivation use the package manifest exactly.
Important Review skippedToo many files! This PR contains 914 files, which is 614 over the limit of 300. To get a review, reduce the PR to 300 files or fewer by splitting it into smaller PRs or changing its base branch. Usage-priced reviews support at most 300 files. ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: ⛔ Files ignored due to path filters (2)
📒 Files selected for processing (914)
You can disable this status message by setting the Comment |
commit: |
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
Related Issue
No linked issue. This is a maintainer-directed repository update.
Problem
The built-in hosted-provider path duplicated provider configuration, authentication, usage, feedback, model aliases, and SDK behavior. Agent runtime ownership and MCP management also needed one consistent engine boundary.
What changed
xstatebecause these runtimes use explicit state machines for goals, cron, todo, interaction, and dynamic-workflow state./api/v2/mcp. The management surface is disabled unlessPYTHINKER_CODE_EXPERIMENTAL_MCP_MANAGEMENT=1; the versioned/api/v2route prefix stays stable.@fastify/rate-limitbecause the five MCP authentication routes need one shared source limit through Fastify's supported request lifecycle. The package is Fastify-maintained, MIT-licensed, and has no production audit findings.Breaking change
The built-in hosted provider and its public authentication and SDK methods are removed. Configure a supported provider with its own API key or OAuth flow instead. The approved changeset gives
@pymodel/pythinker-codea major bump.Verification
pnpm install --frozen-lockfilepnpm buildpnpm test— 1,215 files passed; 20,299 tests passedpnpm lint— 0 errorspnpm typechecknpx tsgo -p packages/agent-core-v2/tsconfig.json --noEmitnpx tsgo -p packages/agent-gateway/tsconfig.json --noEmitnix build .#pythinker-codenode scripts/check-nix-workspace.mjs— 18/18 workspacespnpm --filter pythinker-code-docs run buildpnpm sherifpnpm audit --prod— no known vulnerabilitiesChecklist
gen-changesetsskill.gen-docsskill.