diff --git a/IMPLEMENTATION.md b/IMPLEMENTATION.md index 45b2394a5..9cf2661ff 100644 --- a/IMPLEMENTATION.md +++ b/IMPLEMENTATION.md @@ -152,7 +152,7 @@ them). The in-room `connect-github` card and the Plugins/Connections GitHub row are **PAT-first** (CL-6345): the person pastes a personal access token; -the host tests and stores it through `@workbench/connections`' generic +the host tests and stores it through `@corbits/connections`' generic `github/complete` route. The card then flips in place to pick repos (`startReviewingRepos`), including when GitHub is already connected — the in-room card reads live state; there is no `/new` already-connected @@ -244,7 +244,7 @@ handshake. list a workbench host launches with (`workbenchHostInferencePreferences` on the chat adapter; also `tenantDefaultModel` on agent-definition routes). It keeps credentialed completion-capable offerings -(`preferCompletionCapable` in `@workbench/connections/model-capability` +(`preferCompletionCapable` in `@corbits/connections/model-capability` — embedding names never win) and, when any survivor is `origin.direct`, picks from that direct set only. Inherit-only catalogs still sort among inherited completion rows. diff --git a/apps/hub/package.json b/apps/hub/package.json index 569791bf5..f427c01a4 100644 --- a/apps/hub/package.json +++ b/apps/hub/package.json @@ -63,7 +63,7 @@ "@intx/workflow-deploy": "workspace:*", "@modelcontextprotocol/sdk": "catalog:", "@workbench/access-policy": "workspace:*", - "@workbench/connections": "workspace:*", + "@corbits/connections": "workspace:*", "@corbits/hub-api-client": "workspace:*", "@corbits/seeding": "workspace:*", "@workbench/onboarding": "workspace:*", diff --git a/apps/hub/src/config.ts b/apps/hub/src/config.ts index 5c4754b79..01e311885 100644 --- a/apps/hub/src/config.ts +++ b/apps/hub/src/config.ts @@ -44,7 +44,7 @@ import { envProviderBaseUrlsFrom, envProviderKeysFrom, } from "@workbench/onboarding"; -import type { SupportedCredentialProvider } from "@workbench/connections/credential-test"; +import type { SupportedCredentialProvider } from "@corbits/connections/credential-test"; const HTTP_URL = /^https?:\/\/.+$/; diff --git a/apps/hub/src/connection-live-reconcile.test.ts b/apps/hub/src/connection-live-reconcile.test.ts index ef23ae213..d978412a1 100644 --- a/apps/hub/src/connection-live-reconcile.test.ts +++ b/apps/hub/src/connection-live-reconcile.test.ts @@ -3,7 +3,7 @@ // and not persist-only. `createHub` is not booted here; this is the // hook body `apps/hub/src/index.ts` fires from `settleServiceConnection`. import { describe, expect, test } from "bun:test"; -import { CONNECTOR_REGISTRY } from "@workbench/connections/registry"; +import { CONNECTOR_REGISTRY } from "@corbits/connections/registry"; import { reconcilePinnedToolPackagesAfterConnect } from "./connection-live-reconcile"; describe("reconcilePinnedToolPackagesAfterConnect", () => { diff --git a/apps/hub/src/connection-live-reconcile.ts b/apps/hub/src/connection-live-reconcile.ts index 1e24d7ff7..67f8115ca 100644 --- a/apps/hub/src/connection-live-reconcile.ts +++ b/apps/hub/src/connection-live-reconcile.ts @@ -6,7 +6,7 @@ // until this pass relaunches it. Persist-only (stamp the pin onto the // launch row and leave the run) is the bug: the sidecar keeps the old // snapshot. -import { CONNECTOR_REGISTRY } from "@workbench/connections/registry"; +import { CONNECTOR_REGISTRY } from "@corbits/connections/registry"; export type PinnedToolPackageReconcile = { reconcilePinnedToolPackages( diff --git a/apps/hub/src/credential-expiry-sweep.ts b/apps/hub/src/credential-expiry-sweep.ts index 86bfeef2c..0a0feeb19 100644 --- a/apps/hub/src/credential-expiry-sweep.ts +++ b/apps/hub/src/credential-expiry-sweep.ts @@ -43,7 +43,7 @@ import { mcpSlugOf, refreshMcpOAuthTokens, type McpOAuthRefreshResult, -} from "@workbench/connections"; +} from "@corbits/connections"; import type { OAuthClientInformationMixed, OAuthTokens, @@ -356,7 +356,7 @@ export type CredentialExpirySweepDeps = { * same redirect URI the original connect used. */ hubUrl: string; /** Re-invokes the MCP SDK's `auth()` orchestrator non-interactively. - * Defaults to the real `@workbench/connections` implementation; + * Defaults to the real `@corbits/connections` implementation; * overridable so a test can stub the authorization server round trip. */ refreshMcpTokens?: typeof refreshMcpOAuthTokens; /** Injectable for deterministic tests; defaults to `Date.now`-backed wall time. */ diff --git a/apps/hub/src/grant-allowance.ts b/apps/hub/src/grant-allowance.ts index fa11f3f78..dce564155 100644 --- a/apps/hub/src/grant-allowance.ts +++ b/apps/hub/src/grant-allowance.ts @@ -5,7 +5,7 @@ // - `createMcpServerToolsAllowanceLoader` — the live `tools/list` // read `@corbits/mcp-tools`' `mcp_call` classifier verifies a // downstream tool's `readOnlyHint` claim against, built from the -// tenant's stored MCP connection (`@workbench/connections`) and its +// tenant's stored MCP connection (`@corbits/connections`) and its // decrypted token, mirroring how `mcp-credential-bindings.ts` names // the same connections for tool delivery. // - `createAllowanceAutoApprover` — the native-resolve binding that @@ -27,7 +27,7 @@ import { withMcpConnection, type McpServerToolsLoader, } from "@corbits/mcp-tools"; -import { listMcpServerConnections } from "@workbench/connections"; +import { listMcpServerConnections } from "@corbits/connections"; import { MCP_NO_TOKEN_SENTINEL } from "@corbits/credential-providers"; function bearerFetch(token: string | undefined): typeof fetch { diff --git a/apps/hub/src/index.ts b/apps/hub/src/index.ts index 3c968d0bc..0a34f719f 100644 --- a/apps/hub/src/index.ts +++ b/apps/hub/src/index.ts @@ -192,8 +192,8 @@ import { workflowDisplayName, workbenchTemplateLibraryEntries, } from "@workbench/templates"; -import { createConnectGithubRoutes } from "@workbench/connections/connect-github-routes"; -import { webhookTriggerName } from "@workbench/connections/connect-github-setup"; +import { createConnectGithubRoutes } from "@corbits/connections/connect-github-routes"; +import { webhookTriggerName } from "@corbits/connections/connect-github-setup"; import { createTemplateBlockRoutes } from "./templates/template-block-routes"; import { createWorkflowDetailRoute, @@ -287,7 +287,7 @@ import { createPresenceRoutes, type PresenceRoomKey, } from "@corbits/presence"; -import { supportedCredentialProviders } from "@workbench/connections/credential-test"; +import { supportedCredentialProviders } from "@corbits/connections/credential-test"; import { createGitWorkflowPusher } from "@corbits/seeding"; import { createHubAPI } from "@corbits/hub-api-client"; import { @@ -305,13 +305,13 @@ import { createWorkflowConnectionRoutes, DEFAULT_RETURN_PATH_ALLOWLIST, listMcpServerConnections, -} from "@workbench/connections"; -import type { ServiceConnectedHook } from "@workbench/connections"; -import { CONNECTOR_REGISTRY } from "@workbench/connections/registry"; +} from "@corbits/connections"; +import type { ServiceConnectedHook } from "@corbits/connections"; +import { CONNECTOR_REGISTRY } from "@corbits/connections/registry"; import { createProviderHealthPort, createProviderHealthStore, -} from "@workbench/connections/provider-health"; +} from "@corbits/connections/provider-health"; import { applyAccessPolicyMigrations, createAccessPolicyRoutes, @@ -762,7 +762,7 @@ export async function createHub(config: HubConfig) { // See `./mcp-credential-bindings.ts`'s own doc. const mcpCredentialBindingsFor = createMcpCredentialBindingsFor(db); // Same owning check GET /connections uses — see - // `@workbench/connections`' `workflow-connection-routes.ts` and the + // `@corbits/connections`' `workflow-connection-routes.ts` and the // `createWorkflowConnectionRoutes` wiring below. Not // `listConnectedProviders` (catalog-only). const isConnectorConnected = async (tenantId: string, connectorId: string) => @@ -2335,7 +2335,7 @@ export async function createHub(config: HubConfig) { }), ); // Connections' own OAuth connect flow (CL-6389): `createOAuthConnectRoutes` - // (`@workbench/connections`) was exported but never mounted here — every + // (`@corbits/connections`) was exported but never mounted here — every // provider whose descriptor sets `oauth` (OpenRouter, Hugging Face, and // the GitHub App path) needs this to complete a one-click connect from // the settings surface above. Follows #115's `mcp-servers/oauth` mount @@ -3396,7 +3396,7 @@ export async function createHub(config: HubConfig) { envAllowedDomains: config.allowedEmailDomains, allowUnverifiedEmails: config.allowUnverifiedEmails, }, - // Same provider-health store `@workbench/connections`' own routes + // Same provider-health store `@corbits/connections`' own routes // report to and clear (CL-6092) — a successful `/complete` here must // clear the same record the shell banner's zero-provider "Fix it" // routed someone to onboarding to fix. diff --git a/apps/hub/src/mcp-credential-bindings.ts b/apps/hub/src/mcp-credential-bindings.ts index b13973a20..84c299f11 100644 --- a/apps/hub/src/mcp-credential-bindings.ts +++ b/apps/hub/src/mcp-credential-bindings.ts @@ -3,7 +3,7 @@ // supplied by the composition root rather than derived by the deploy-time // capability walk. `@corbits/mcp-tools`' credential handles are dynamic // (one `mcp.` per tenant-connected server), so this builds one -// `CredentialBinding` per connection `@workbench/connections`' own +// `CredentialBinding` per connection `@corbits/connections`' own // `listMcpServerConnections` lists for the tenant: `handle` mirrors the // `mcp.` convention `@corbits/mcp-tools`' `mcpCredentialHandle(slug)` // resolves against (conforms to `@intx/types`' `ToolCredentialHandle` @@ -13,7 +13,7 @@ import type { DB } from "@intx/db"; import type { CredentialBinding } from "@intx/types"; import type { McpCredentialBindingsFor } from "@corbits/folded-runs"; -import { listMcpServerConnections } from "@workbench/connections"; +import { listMcpServerConnections } from "@corbits/connections"; const MCP_TOOLS_PACKAGE = "@corbits/mcp-tools"; diff --git a/apps/hub/src/pinned-package-credential-bindings.ts b/apps/hub/src/pinned-package-credential-bindings.ts index f3893abcc..9c48fb251 100644 --- a/apps/hub/src/pinned-package-credential-bindings.ts +++ b/apps/hub/src/pinned-package-credential-bindings.ts @@ -13,7 +13,7 @@ import type { CredentialBinding } from "@intx/types"; import type { ToolPackagePin } from "@intx/types/tool-packages"; import type { PinnedPackageCredentialBindingsFor } from "@corbits/folded-runs"; -import { CONNECTOR_REGISTRY } from "@workbench/connections/registry"; +import { CONNECTOR_REGISTRY } from "@corbits/connections/registry"; export type IsConnectorConnected = ( tenantId: string, diff --git a/apps/hub/test/credential-expiry-sweep.test.ts b/apps/hub/test/credential-expiry-sweep.test.ts index 360630fe4..c4cbfc634 100644 --- a/apps/hub/test/credential-expiry-sweep.test.ts +++ b/apps/hub/test/credential-expiry-sweep.test.ts @@ -17,7 +17,7 @@ import { type RefreshableMcpCredential, } from "../src/credential-expiry-sweep"; import type { ExpiringCredential } from "@corbits/notify"; -import type { McpOAuthRefreshResult } from "@workbench/connections"; +import type { McpOAuthRefreshResult } from "@corbits/connections"; const HUB_URL = "http://hub.test"; diff --git a/apps/web/package.json b/apps/web/package.json index e42d1cc64..b81e9e7e5 100644 --- a/apps/web/package.json +++ b/apps/web/package.json @@ -47,7 +47,7 @@ "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-slot": "^1.2.3", "@tanstack/react-query": "catalog:", - "@workbench/connections": "workspace:*", + "@corbits/connections": "workspace:*", "@workbench/templates": "workspace:*", "arktype": "catalog:", "react": "^19.2.0", diff --git a/apps/web/src/agents-api.ts b/apps/web/src/agents-api.ts index 8b046ecd1..5cc0d76e9 100644 --- a/apps/web/src/agents-api.ts +++ b/apps/web/src/agents-api.ts @@ -23,7 +23,7 @@ import { UnauthenticatedError, toAPIQuery, } from "@corbits/api-query"; -import { isChatPickerModelName } from "@workbench/connections/model-capability"; +import { isChatPickerModelName } from "@corbits/connections/model-capability"; import { tenantKeys } from "./query-client"; export type AgentDefinition = typeof WorkflowDefinitionResponse.infer; diff --git a/apps/web/src/connect-github-actions.ts b/apps/web/src/connect-github-actions.ts index 71a2a0bb0..e108241a8 100644 --- a/apps/web/src/connect-github-actions.ts +++ b/apps/web/src/connect-github-actions.ts @@ -10,7 +10,7 @@ // (`connect-github-block.tsx`'s `DisconnectedBody`) is what actually asks // for the token, so this binding never needs a prompt or a modal of its // own. Reading state and starting reviews call the workbench-scoped routes -// `@workbench/connections`'s `createConnectGithubRoutes` exposes. +// `@corbits/connections`'s `createConnectGithubRoutes` exposes. // // `subscribeConnectState` has no server push to fold from yet (connecting a // credential publishes no `chat.settings` event of its own — only diff --git a/apps/web/src/connect-service-actions.ts b/apps/web/src/connect-service-actions.ts index e66e604b9..fd36a5189 100644 --- a/apps/web/src/connect-service-actions.ts +++ b/apps/web/src/connect-service-actions.ts @@ -27,8 +27,8 @@ import { listMcpPresets, McpServersApiError, } from "@corbits/plugins-ui"; -import { CONNECTOR_REGISTRY } from "@workbench/connections/registry"; -import { mcpPresetBySlug } from "@workbench/connections/mcp-presets"; +import { CONNECTOR_REGISTRY } from "@corbits/connections/registry"; +import { mcpPresetBySlug } from "@corbits/connections/mcp-presets"; function bareConnectorId(connectorId: string): string { return connectorId.startsWith("mcp:") diff --git a/apps/web/src/granola-plugin-availability.ts b/apps/web/src/granola-plugin-availability.ts index 644cad2b1..be926fb7c 100644 --- a/apps/web/src/granola-plugin-availability.ts +++ b/apps/web/src/granola-plugin-availability.ts @@ -28,7 +28,7 @@ export async function fetchGranolaPluginConnected( const parsed = ResolvedCredential(body); if (parsed instanceof type.errors) return false; // Revoked reads as not connected — same rule as - // `@workbench/connections/plugins`' resolveOne. + // `@corbits/connections/plugins`' resolveOne. return ( parsed.status === "active" || parsed.status === "expired" || diff --git a/apps/web/src/onboarding.ts b/apps/web/src/onboarding.ts index 239de040d..8cd747864 100644 --- a/apps/web/src/onboarding.ts +++ b/apps/web/src/onboarding.ts @@ -6,7 +6,7 @@ // so a broken provisioning call never leaves the user silently benchless. import { type } from "arktype"; -import type { SupportedCredentialProvider } from "@workbench/connections/credential-test"; +import type { SupportedCredentialProvider } from "@corbits/connections/credential-test"; const ProvisionResult = type({ kind: "'existing-member' | 'provisioned' | 'needs-onboarding'", diff --git a/apps/web/src/pages/onboarding-page.tsx b/apps/web/src/pages/onboarding-page.tsx index ba695684c..573b4433e 100644 --- a/apps/web/src/pages/onboarding-page.tsx +++ b/apps/web/src/pages/onboarding-page.tsx @@ -32,7 +32,7 @@ import { Key, WarningCircle } from "@corbits/icons"; import { WorkbenchLoadingState } from "@corbits/chat-ui"; import { useCallback, useEffect, useState } from "react"; import type { FormEvent } from "react"; -import { OLLAMA_PLACEHOLDER_SECRET } from "@workbench/connections/credential-test"; +import { OLLAMA_PLACEHOLDER_SECRET } from "@corbits/connections/credential-test"; import { useNavigate } from "../navigation"; import { diff --git a/apps/web/src/pages/plugins-page.tsx b/apps/web/src/pages/plugins-page.tsx index d3f897abf..07ff06292 100644 --- a/apps/web/src/pages/plugins-page.tsx +++ b/apps/web/src/pages/plugins-page.tsx @@ -21,10 +21,10 @@ import { PluginConnectPanel, type PluginsGalleryTab, } from "@corbits/plugins-ui"; -import type { ResolvedPlugin } from "@workbench/connections/plugins"; -import { listPluginsForTenant } from "@workbench/connections/plugins"; -import { CONNECTOR_REGISTRY } from "@workbench/connections/registry"; -import { MCP_PRESETS } from "@workbench/connections/mcp-presets"; +import type { ResolvedPlugin } from "@corbits/connections/plugins"; +import { listPluginsForTenant } from "@corbits/connections/plugins"; +import { CONNECTOR_REGISTRY } from "@corbits/connections/registry"; +import { MCP_PRESETS } from "@corbits/connections/mcp-presets"; import { Plus, SquaresFour, Warning } from "@corbits/icons"; import { useCallback, useEffect, useRef, useState } from "react"; diff --git a/apps/web/src/shell/provider-health-banner.tsx b/apps/web/src/shell/provider-health-banner.tsx index 719e69778..4c032cf34 100644 --- a/apps/web/src/shell/provider-health-banner.tsx +++ b/apps/web/src/shell/provider-health-banner.tsx @@ -14,8 +14,8 @@ // nothing unhealthy), and `unhealthy` (guided Fix-it banner). import { Button } from "@corbits/react-ui"; -import { connectorDescriptors } from "@workbench/connections/registry"; -import type { ClassifiedInferenceFailureCategory } from "@workbench/connections/provider-health"; +import { connectorDescriptors } from "@corbits/connections/registry"; +import type { ClassifiedInferenceFailureCategory } from "@corbits/connections/provider-health"; import { Warning, X } from "@corbits/icons"; import { useEffect, useState } from "react"; @@ -49,7 +49,7 @@ const COLLAPSE_TRANSITION_MS = 220; const POLL_ERROR_COPY = "Couldn't check provider health. Try again shortly."; -// The connector registry's own `displayName` (`@workbench/connections/registry`, +// The connector registry's own `displayName` (`@corbits/connections/registry`, // the same browser-safe subpath `plugins.ts` already reads) — never a // reinvented title-case of the provider id, which mangles ids like // `"google-genai"` or `"opencode-zen"` into nonsense. Falls back to the diff --git a/apps/web/src/shell/provider-health-context.tsx b/apps/web/src/shell/provider-health-context.tsx index 0aa1c0f4b..cf47cf060 100644 --- a/apps/web/src/shell/provider-health-context.tsx +++ b/apps/web/src/shell/provider-health-context.tsx @@ -35,7 +35,7 @@ import { fetchProviderHealth, type ClassifiedInferenceFailureCategory, type ProviderHealthRecord, -} from "@workbench/connections/provider-health"; +} from "@corbits/connections/provider-health"; import { useBench } from "../bench-context"; diff --git a/apps/web/test/onboarding.test.tsx b/apps/web/test/onboarding.test.tsx index 9c47168c3..15131f877 100644 --- a/apps/web/test/onboarding.test.tsx +++ b/apps/web/test/onboarding.test.tsx @@ -13,7 +13,7 @@ import { renderToStaticMarkup } from "react-dom/server"; import { OLLAMA_PLACEHOLDER_SECRET, supportedCredentialProviders, -} from "@workbench/connections/credential-test"; +} from "@corbits/connections/credential-test"; import { App } from "../src/app"; import { NavigationProvider } from "../src/navigation"; @@ -62,7 +62,7 @@ const signedIn: SessionState = { describe("CREDENTIAL_PROVIDERS", () => { // ProviderPicker (onboarding-page.tsx) renders one card per entry here — // this is the data the cards are built from, so covering it covers what - // actually shows up: one card per `@workbench/connections` provider the + // actually shows up: one card per `@corbits/connections` provider the // hub can actually test a credential against, each with a distinct // honest one-liner and a real key-console link. Compared against // `supportedCredentialProviders()` directly, not a second hand-copied diff --git a/bun.lock b/bun.lock index 79021e9dc..8eaa4cc5f 100644 --- a/bun.lock +++ b/bun.lock @@ -10,6 +10,7 @@ "devDependencies": { "@corbits/artifacts": "github:corbitsdev/corbits-artifacts#81049ed24a64e927498c7238bda6ffa66b63d2ab", "@corbits/artifacts-hub": "workspace:*", + "@corbits/connections": "workspace:*", "@corbits/evals": "workspace:*", "@corbits/ollama-adapter": "workspace:*", "@corbits/run-scope": "workspace:*", @@ -19,7 +20,6 @@ "@intx/mime": "0.3.0", "@intx/types": "0.3.0", "@types/bun": "1.3.14", - "@workbench/connections": "workspace:*", "@workbench/templates": "workspace:*", "eslint": "^10.8.0", "jiti": "^2.7.0", @@ -43,6 +43,7 @@ "@corbits/chat": "workspace:*", "@corbits/code-review-workflow": "workspace:*", "@corbits/commands": "workspace:*", + "@corbits/connections": "workspace:*", "@corbits/credential-providers": "workspace:*", "@corbits/docker-provisioner": "workspace:*", "@corbits/e2b-sandbox-sidecar": "workspace:*", @@ -86,7 +87,6 @@ "@intx/workflow-deploy": "workspace:*", "@modelcontextprotocol/sdk": "catalog:", "@workbench/access-policy": "workspace:*", - "@workbench/connections": "workspace:*", "@workbench/onboarding": "workspace:*", "@workbench/templates": "workspace:*", "arktype": "catalog:", @@ -148,6 +148,7 @@ "@corbits/chat-ui": "workspace:*", "@corbits/client-log": "workspace:*", "@corbits/command-palette": "workspace:*", + "@corbits/connections": "workspace:*", "@corbits/context-menu": "workspace:*", "@corbits/error-sink": "workspace:*", "@corbits/icons": "workspace:*", @@ -169,7 +170,6 @@ "@radix-ui/react-dialog": "^1.1.15", "@radix-ui/react-slot": "^1.2.3", "@tanstack/react-query": "catalog:", - "@workbench/connections": "workspace:*", "@workbench/templates": "workspace:*", "arktype": "catalog:", "react": "^19.2.0", @@ -429,6 +429,7 @@ "@corbits/approvals": "workspace:*", "@corbits/collections": "workspace:*", "@corbits/commands": "workspace:*", + "@corbits/connections": "workspace:*", "@corbits/error-sink": "workspace:*", "@corbits/folded-runs": "workspace:*", "@corbits/hub-api-client": "workspace:*", @@ -448,7 +449,6 @@ "@intx/types": "workspace:*", "@intx/workflow": "workspace:*", "@intx/workflow-deploy": "workspace:*", - "@workbench/connections": "workspace:*", "arktype": "catalog:", "drizzle-orm": "catalog:", "hono": "^4.11.9", @@ -465,6 +465,7 @@ "dependencies": { "@corbits/api-query": "workspace:*", "@corbits/chat": "workspace:*", + "@corbits/connections": "workspace:*", "@corbits/context-menu": "workspace:*", "@corbits/error-sink": "workspace:*", "@corbits/icons": "workspace:*", @@ -473,7 +474,6 @@ "@corbits/presence": "workspace:*", "@corbits/react-ui": "github:corbitsdev/react-ui#3b122812a307ccb35be31386f7696020c5a84635", "@tanstack/react-query": "catalog:", - "@workbench/connections": "workspace:*", "@workbench/templates": "workspace:*", "arktype": "catalog:", "react": "^19.2.0", @@ -548,7 +548,7 @@ }, }, "packages/connections": { - "name": "@workbench/connections", + "name": "@corbits/connections", "version": "0.0.1", "dependencies": { "@corbits/code-review": "workspace:*", @@ -580,9 +580,9 @@ "name": "@corbits/connections-tools", "version": "0.0.6", "dependencies": { + "@corbits/connections": "workspace:*", "@intx/agent": "workspace:*", "@intx/types": "workspace:*", - "@workbench/connections": "workspace:*", "arktype": "catalog:", }, "devDependencies": { @@ -664,6 +664,7 @@ "dependencies": { "@corbits/agent-directory": "workspace:*", "@corbits/assistant-workflow": "workspace:*", + "@corbits/connections": "workspace:*", "@corbits/error-sink": "workspace:*", "@corbits/hub-api-client": "workspace:*", "@corbits/migration-runner": "workspace:*", @@ -678,7 +679,6 @@ "@intx/types": "workspace:*", "@intx/workflow": "workspace:*", "@modelcontextprotocol/sdk": "catalog:", - "@workbench/connections": "workspace:*", "@workbench/onboarding": "workspace:*", "@workbench/templates": "workspace:*", "arktype": "catalog:", @@ -723,6 +723,7 @@ "dependencies": { "@corbits/agent-runtime": "workspace:*", "@corbits/collections": "workspace:*", + "@corbits/connections": "workspace:*", "@intx/crypto": "0.3.0", "@intx/db": "workspace:*", "@intx/hub-api": "workspace:*", @@ -732,7 +733,6 @@ "@intx/types": "workspace:*", "@intx/workflow": "workspace:*", "@intx/workflow-deploy": "workspace:*", - "@workbench/connections": "workspace:*", "arktype": "catalog:", "drizzle-orm": "catalog:", "postgres": "catalog:", @@ -855,8 +855,8 @@ "name": "@corbits/inference-settings", "version": "0.0.1", "dependencies": { + "@corbits/connections": "workspace:*", "@intx/types": "workspace:*", - "@workbench/connections": "workspace:*", "arktype": "catalog:", }, "devDependencies": { @@ -1055,6 +1055,7 @@ "version": "0.0.1", "dependencies": { "@corbits/collections": "workspace:*", + "@corbits/connections": "workspace:*", "@corbits/error-sink": "workspace:*", "@corbits/hub-api-client": "workspace:*", "@corbits/seeding": "workspace:*", @@ -1062,7 +1063,6 @@ "@intx/hub-api": "workspace:*", "@intx/types": "workspace:*", "@workbench/access-policy": "workspace:*", - "@workbench/connections": "workspace:*", "arktype": "catalog:", "drizzle-orm": "catalog:", "hono": "^4.11.9", @@ -1077,10 +1077,10 @@ "name": "@corbits/plugins-ui", "version": "0.0.1", "dependencies": { + "@corbits/connections": "workspace:*", "@corbits/icons": "workspace:*", "@corbits/react-ui": "github:corbitsdev/react-ui#3b122812a307ccb35be31386f7696020c5a84635", "@corbits/settings-ui": "workspace:*", - "@workbench/connections": "workspace:*", "arktype": "catalog:", "react": "^19.2.0", "react-dom": "^19.2.0", @@ -1132,8 +1132,8 @@ "name": "@corbits/provider-pricing", "version": "0.0.1", "dependencies": { + "@corbits/connections": "workspace:*", "@intx/inference-catalog": "0.3.0", - "@workbench/connections": "workspace:*", }, "devDependencies": { "@types/bun": "catalog:", @@ -1264,6 +1264,7 @@ "version": "0.0.1", "dependencies": { "@corbits/assistant-workflow": "workspace:*", + "@corbits/connections": "workspace:*", "@corbits/echo-workflow": "workspace:*", "@corbits/heartbeat-workflow": "workspace:*", "@corbits/hub-api-client": "workspace:*", @@ -1274,7 +1275,6 @@ "@corbits/workflows": "workspace:*", "@intx/inference": "workspace:*", "@intx/types": "workspace:*", - "@workbench/connections": "workspace:*", "@workbench/templates": "workspace:*", "arktype": "catalog:", }, @@ -1290,12 +1290,12 @@ "@corbits/api-query": "workspace:*", "@corbits/bench-ui": "workspace:*", "@corbits/chat-ui": "workspace:*", + "@corbits/connections": "workspace:*", "@corbits/error-sink": "workspace:*", "@corbits/icons": "workspace:*", "@corbits/inference-settings": "workspace:*", "@corbits/react-ui": "github:corbitsdev/react-ui#3b122812a307ccb35be31386f7696020c5a84635", "@intx/types": "workspace:*", - "@workbench/connections": "workspace:*", "@workbench/templates": "workspace:*", "arktype": "catalog:", "react": "^19.2.0", @@ -1525,8 +1525,8 @@ "postgres": "catalog:", }, "devDependencies": { + "@corbits/connections": "workspace:*", "@types/bun": "catalog:", - "@workbench/connections": "workspace:*", "typescript": "catalog:", }, }, @@ -1541,8 +1541,8 @@ "arktype": "catalog:", }, "devDependencies": { + "@corbits/connections": "workspace:*", "@types/bun": "catalog:", - "@workbench/connections": "workspace:*", "typescript": "catalog:", }, }, @@ -2173,6 +2173,8 @@ "@corbits/commands": ["@corbits/commands@workspace:packages/commands"], + "@corbits/connections": ["@corbits/connections@workspace:packages/connections"], + "@corbits/connections-tools": ["@corbits/connections-tools@workspace:packages/connections-tools"], "@corbits/context-menu": ["@corbits/context-menu@workspace:packages/context-menu"], @@ -2723,8 +2725,6 @@ "@workbench/access-policy": ["@workbench/access-policy@workspace:packages/access-policy"], - "@workbench/connections": ["@workbench/connections@workspace:packages/connections"], - "@workbench/hub": ["@workbench/hub@workspace:apps/hub"], "@workbench/onboarding": ["@workbench/onboarding@workspace:packages/onboarding"], diff --git a/docs/connect-cards.md b/docs/connect-cards.md index 9a57743d2..838cb2f80 100644 --- a/docs/connect-cards.md +++ b/docs/connect-cards.md @@ -30,7 +30,7 @@ the agent — no settings page round-trip, no "report back when done". (`packages/chat/src/connect-pending.ts`, applied by `workflow-participant-routes.ts`), so a later connect can find every room that is waiting. -- **Settling** — every connect surface in `@workbench/connections` +- **Settling** — every connect surface in `@corbits/connections` (OAuth callback, pasted key, MCP OAuth, keyless MCP preset) fires the optional `onConnected` hook (`src/connected-hook.ts`) once the credential is durably stored. The hub wires it to diff --git a/package.json b/package.json index 7a5469eeb..a52505308 100644 --- a/package.json +++ b/package.json @@ -55,7 +55,7 @@ "@corbits/evals": "workspace:*", "@corbits/ollama-adapter": "workspace:*", "@intx/db": "workspace:*", - "@workbench/connections": "workspace:*", + "@corbits/connections": "workspace:*", "@workbench/templates": "workspace:*", "@eslint/js": "^10.0.0", "@intx/mime": "0.3.0", diff --git a/packages/agent-directory/src/inventory.ts b/packages/agent-directory/src/inventory.ts index 92a19861c..03cc65f5f 100644 --- a/packages/agent-directory/src/inventory.ts +++ b/packages/agent-directory/src/inventory.ts @@ -4,7 +4,7 @@ // seam): this package owns the shape and the assembly, never the // listing logic itself — a tenant's usable agents, tool packages, // skills, and models are each already owned by another package -// (`@corbits/tasks`' definition list, `@workbench/connections`' +// (`@corbits/tasks`' definition list, `@corbits/connections`' // registry ∩ credentials, `@corbits/skills`' registry, the tenant // model catalog route), so task-planner only defines the seam those // listers plug into. diff --git a/packages/agent-events/src/agent-events.ts b/packages/agent-events/src/agent-events.ts index f8aa7f8b7..aea5c9af3 100644 --- a/packages/agent-events/src/agent-events.ts +++ b/packages/agent-events/src/agent-events.ts @@ -116,7 +116,7 @@ export function toolDoneResult( // `detail` rides alongside `content` on the underlying `ToolResult` // (`@intx/types/runtime`) as the side channel for structured metadata // that isn't meant for the model's own eyes — a missing-credential - // signal (`@workbench/connections`' `parseMissingCredentialDetail`) + // signal (`@corbits/connections`' `parseMissingCredentialDetail`) // being the one caller today. const detail = (result as { detail?: unknown }).detail; return { callId, content, isError, detail }; diff --git a/packages/chat-ui/package.json b/packages/chat-ui/package.json index 2df47e712..d75b8b1a5 100644 --- a/packages/chat-ui/package.json +++ b/packages/chat-ui/package.json @@ -24,7 +24,7 @@ "@corbits/presence": "workspace:*", "@corbits/react-ui": "github:corbitsdev/react-ui#3b122812a307ccb35be31386f7696020c5a84635", "@tanstack/react-query": "catalog:", - "@workbench/connections": "workspace:*", + "@corbits/connections": "workspace:*", "@workbench/templates": "workspace:*", "arktype": "catalog:", "@corbits/icons": "workspace:*", diff --git a/packages/chat-ui/src/api.ts b/packages/chat-ui/src/api.ts index db2e1a40a..2e7c5b21a 100644 --- a/packages/chat-ui/src/api.ts +++ b/packages/chat-ui/src/api.ts @@ -1232,7 +1232,7 @@ export function patchWorkbenchSettings( // `createConnectGithubRoutes` (mounted at // `/api/tenants/:tenantId/workbenches/:workbenchId/github/*`). Connecting // the PAT itself is a separate, already-generic surface — -// `@workbench/connections`' `POST /:connectorId/complete` — never +// `@corbits/connections`' `POST /:connectorId/complete` — never // duplicated here. const ConnectGithubRepoResponse = type({ id: "string", diff --git a/packages/chat-ui/src/blocks/connect-github-actions.ts b/packages/chat-ui/src/blocks/connect-github-actions.ts index 07fa3e518..bd6e0efc0 100644 --- a/packages/chat-ui/src/blocks/connect-github-actions.ts +++ b/packages/chat-ui/src/blocks/connect-github-actions.ts @@ -3,10 +3,10 @@ // `@corbits/chat-ui` owns no session, no credential, and no query cache, // so it never resolves a GitHub connection or lists repos itself. The // host supplies this port, and is expected to bind it against -// `@workbench/connections`' generic `/:connectorId/complete` route +// `@corbits/connections`' generic `/:connectorId/complete` route // (`github`'s PAT test-and-store — already fully generic, no bespoke // GitHub route needed), `@corbits/github-tools`' `listRepos`, and -// `@workbench/connections`'s `startReviewingRepos`. +// `@corbits/connections`'s `startReviewingRepos`. import type { ConnectGithubRepo } from "./connect-github-block"; export type { ConnectGithubRepo }; @@ -58,7 +58,7 @@ export type ConnectGithubActions = { /** * Submits a pasted personal access token — the actual PAT-first * connect path (CL-6345/CL-6344's follow-up slice): the host tests - * and stores it through `@workbench/connections`' generic + * and stores it through `@corbits/connections`' generic * `github/complete` route, then clears this room's own * `template/pendingConnections` entry for `"github"` so the same * `subscribeConnectState` channel `requestConnect`'s own doc diff --git a/packages/chat-ui/test/connect-github-flow.test.tsx b/packages/chat-ui/test/connect-github-flow.test.tsx index b7c9ccf8e..674d58fb2 100644 --- a/packages/chat-ui/test/connect-github-flow.test.tsx +++ b/packages/chat-ui/test/connect-github-flow.test.tsx @@ -4,7 +4,7 @@ // `WorkbenchTimeline` (the real registry, the real container, the real // presentational `ConnectGithubBlockView`), drives it through connect → // list repos → pick three → "Start reviewing", and proves: -// 1. `@workbench/connections`'s real `startReviewingRepos` mints +// 1. `@corbits/connections`'s real `startReviewingRepos` mints // one grant and one webhook trigger per selected repo, and records // the selection. // 2. The card settles into its connected state by the host fanning an @@ -18,7 +18,7 @@ import type { Root } from "react-dom/client"; import { startReviewingRepos, type ConnectGithubSetupPorts, -} from "@workbench/connections/connect-github-setup"; +} from "@corbits/connections/connect-github-setup"; import type { MessageItem } from "../src/api"; import type { diff --git a/packages/chat/package.json b/packages/chat/package.json index 19a0413ec..10457bd2b 100644 --- a/packages/chat/package.json +++ b/packages/chat/package.json @@ -50,7 +50,7 @@ "@intx/workflow": "workspace:*", "@intx/workflow-deploy": "workspace:*", "@corbits/url-path": "workspace:*", - "@workbench/connections": "workspace:*", + "@corbits/connections": "workspace:*", "arktype": "catalog:", "drizzle-orm": "catalog:", "hono": "^4.11.9", diff --git a/packages/chat/src/chat-orchestrator.ts b/packages/chat/src/chat-orchestrator.ts index 57396ada4..87294eb32 100644 --- a/packages/chat/src/chat-orchestrator.ts +++ b/packages/chat/src/chat-orchestrator.ts @@ -43,11 +43,11 @@ import { isClassifiedInferenceFailure, type ClassifiedInferenceFailureCategory, type ProviderHealthPort, -} from "@workbench/connections/provider-health"; +} from "@corbits/connections/provider-health"; import { CONNECTOR_REGISTRY, parseMissingCredentialDetail, -} from "@workbench/connections/registry"; +} from "@corbits/connections/registry"; import { artifactPartsForFinalizedTurn } from "./artifact-delivery"; import type { ApproveBlockData } from "./blocks"; import { encodeParts } from "./codec"; @@ -143,7 +143,7 @@ export type ChatOrchestratorDeps = { * own optional shape; every call site below is a no-op when this is * undefined. This orchestrator never marks a provider healthy — only a * passing credential re-test does that, and that write happens in - * `@workbench/connections`'s own routes, not here. + * `@corbits/connections`'s own routes, not here. */ providerHealth?: ProviderHealthPort; /** diff --git a/packages/chat/src/inference-preferences.ts b/packages/chat/src/inference-preferences.ts index d8182efa5..e934aa982 100644 --- a/packages/chat/src/inference-preferences.ts +++ b/packages/chat/src/inference-preferences.ts @@ -18,7 +18,7 @@ import { type ResolvedOffering, } from "@intx/db"; import type { InferencePreference } from "@intx/agent"; -import { preferCompletionCapable } from "@workbench/connections/model-capability"; +import { preferCompletionCapable } from "@corbits/connections/model-capability"; /** Reads back the provider names a tenant (or an ancestor it inherits * catalog rows from) actually has a usable credential for. */ diff --git a/packages/connections-tools/package.json b/packages/connections-tools/package.json index 853257fad..8c33eca34 100644 --- a/packages/connections-tools/package.json +++ b/packages/connections-tools/package.json @@ -2,7 +2,7 @@ "name": "@corbits/connections-tools", "private": true, "description": "The list_connections and request_connection tools as an @intx/agent tool bundle: an agent sees which third-party connections this workbench already has live and hands the human a deep link to connect one that isn't, reusing the existing connections plane and never inventing new state or completing OAuth itself", - "version": "0.0.6", + "version": "0.0.7", "license": "LGPL-2.1-or-later", "type": "module", "exports": { @@ -15,7 +15,7 @@ "dependencies": { "@intx/agent": "workspace:*", "@intx/types": "workspace:*", - "@workbench/connections": "workspace:*", + "@corbits/connections": "workspace:*", "arktype": "catalog:" }, "devDependencies": { diff --git a/packages/connections-tools/src/client.ts b/packages/connections-tools/src/client.ts index 16f07667f..fe00f4eba 100644 --- a/packages/connections-tools/src/client.ts +++ b/packages/connections-tools/src/client.ts @@ -1,7 +1,7 @@ // A minimal client for the workflow-run-authenticated connections // surface a running agent calls to see which third-party connectors // this workbench already has live — the execution half of -// `@workbench/connections`'s `createWorkflowConnectionRoutes` +// `@corbits/connections`'s `createWorkflowConnectionRoutes` // (`packages/connections/src/workflow-connection-routes.ts`), mounted // in `apps/hub` at `/api/workflow-connections` beside // `/api/workflow-capabilities` and `/api/workflow-skills` — diff --git a/packages/connections-tools/src/tool.ts b/packages/connections-tools/src/tool.ts index 104e4b719..5af33cc4c 100644 --- a/packages/connections-tools/src/tool.ts +++ b/packages/connections-tools/src/tool.ts @@ -3,12 +3,12 @@ // connections (Attio, Exa, Granola, ...) this workbench already has // live, and to hand the human a link to connect one that isn't yet. // Both tools reuse the existing connections plane end to end -// (`@workbench/connections`'s `CONNECTOR_REGISTRY` and the workflow-run +// (`@corbits/connections`'s `CONNECTOR_REGISTRY` and the workflow-run // route it exposes) — neither invents new state, and neither completes // OAuth itself; only a human, acting in the browser through the // existing Connections settings surface, can finish a connect flow. // -// Both tools also read `@workbench/connections`' MCP-server listing +// Both tools also read `@corbits/connections`' MCP-server listing // (CL-6142's `/api/workflow-connections/mcp-servers`, backed by // `@corbits/mcp-tools`' own `mcp_list_servers` route) — a tenant-minted // `mcp:` connector has no fixed registry id, so `list_connections` @@ -30,11 +30,8 @@ import { defineTool } from "@intx/agent"; import type { BaseEnv } from "@intx/agent"; import type { ToolCall, ToolResult } from "@intx/types/runtime"; -import { CONNECTOR_REGISTRY } from "@workbench/connections"; -import { - MCP_PRESETS, - mcpPresetByName, -} from "@workbench/connections/mcp-presets"; +import { CONNECTOR_REGISTRY } from "@corbits/connections"; +import { MCP_PRESETS, mcpPresetByName } from "@corbits/connections/mcp-presets"; import { type } from "arktype"; import { diff --git a/packages/connections/README.md b/packages/connections/README.md index 18ce53691..82f434038 100644 --- a/packages/connections/README.md +++ b/packages/connections/README.md @@ -1,4 +1,4 @@ -# @workbench/connections +# @corbits/connections The Connections settings surface: shared PKCE/state primitives for OAuth connect flows, the connector registry (inference providers plus diff --git a/packages/connections/package.json b/packages/connections/package.json index a38ff6eb7..ae3ca8c57 100644 --- a/packages/connections/package.json +++ b/packages/connections/package.json @@ -1,5 +1,5 @@ { - "name": "@workbench/connections", + "name": "@corbits/connections", "private": true, "description": "The Connections settings surface: shared PKCE/state primitives for OAuth connect flows, the connector registry (inference providers plus tool-credential connectors), and the route factory that tests and stores a connector's credential", "version": "0.0.1", diff --git a/packages/connections/src/connect-github-credential-link.test.ts b/packages/connections/src/connect-github-credential-link.test.ts index ad0fe28a9..534648b62 100644 --- a/packages/connections/src/connect-github-credential-link.test.ts +++ b/packages/connections/src/connect-github-credential-link.test.ts @@ -1,5 +1,5 @@ // CL-6463: the room's GitHub connect card submits a PAT through -// `@workbench/connections`' generic `persistConnectorCredential` (the +// `@corbits/connections`' generic `persistConnectorCredential` (the // exact sequence `POST /:connectorId/complete` runs) and reads its own // connected state back through `createConnectGithubRoutes`' injected // `resolveGithubConfig`. A host binds both against one real credential @@ -18,7 +18,7 @@ import type { ApiCall } from "@corbits/hub-api-client"; import { CONNECTOR_REGISTRY, persistConnectorCredential, -} from "@workbench/connections"; +} from "@corbits/connections"; import { createConnectGithubRoutes } from "./connect-github-routes"; diff --git a/packages/connections/src/connect-github-routes.ts b/packages/connections/src/connect-github-routes.ts index da98b1861..e78bcf2c0 100644 --- a/packages/connections/src/connect-github-routes.ts +++ b/packages/connections/src/connect-github-routes.ts @@ -4,11 +4,11 @@ // Mounted per-workbench, inside the platform's native tenant middleware // (`TenantEnv`'s `tenant`/`principal` resolved before any handler here // runs), the same way `@corbits/webhook-triggers`' management routes and -// `@workbench/connections`' routes are. +// `@corbits/connections`' routes are. // // Connecting the PAT itself is deliberately NOT a route here — // `@corbits/chat-ui`'s `connect-github-actions.ts` header already says -// why: `@workbench/connections`' generic `/:connectorId/complete` (with +// why: `@corbits/connections`' generic `/:connectorId/complete` (with // `connectorId: "github"`, already registered in `CONNECTOR_REGISTRY`) is // the credential test-and-store surface, and this module never // reimplements it. What this module owns is the two things that need the @@ -19,7 +19,7 @@ // credential, minting a grant, creating a live `webhook_trigger` row, // resolving the deployed code-review workflow definition, and patching // the room's settings — arrives as an injected port, exactly like -// `@workbench/connections`' `createConnectionRoutes`. `apps/hub` is the +// `@corbits/connections`' `createConnectionRoutes`. `apps/hub` is the // only caller that binds these against drizzle; this module never touches // it, so it stays testable with plain fakes (`./connect-github-routes.test.ts`). import { Hono } from "hono"; diff --git a/packages/connections/src/index.ts b/packages/connections/src/index.ts index 23750297f..6a1316434 100644 --- a/packages/connections/src/index.ts +++ b/packages/connections/src/index.ts @@ -1,4 +1,4 @@ -// The library entry for `@workbench/connections`: PKCE/state primitives +// The library entry for `@corbits/connections`: PKCE/state primitives // shared by every OAuth connect flow, the connector descriptor shape and // registry (also reachable browser-side through the lighter // `./registry` subpath — see that file's header comment), the diff --git a/packages/connections/src/workflow-connection-routes.ts b/packages/connections/src/workflow-connection-routes.ts index ac32bcb27..63e8b4f68 100644 --- a/packages/connections/src/workflow-connection-routes.ts +++ b/packages/connections/src/workflow-connection-routes.ts @@ -94,7 +94,7 @@ export type CreateWorkflowConnectionRoutesDeps = { ) => Promise; /** Backs `GET /mcp-servers` (`@corbits/mcp-tools`' `mcp_list_servers`): * every `mcp:` server this tenant has connected. `apps/hub` - * supplies `@workbench/connections`' own `listMcpServerConnections` + * supplies `@corbits/connections`' own `listMcpServerConnections` * (`mcp-server-store.ts`) — a direct DB read, since this route has no * tenant-session cookies to reuse `./mcp-server-routes.ts`'s hub-HTTP * listing. Optional so an environment that hasn't wired MCP support diff --git a/packages/credential-providers/src/mcp-streamable-http-provider.ts b/packages/credential-providers/src/mcp-streamable-http-provider.ts index 0dacbbdf7..1b6f3cea2 100644 --- a/packages/credential-providers/src/mcp-streamable-http-provider.ts +++ b/packages/credential-providers/src/mcp-streamable-http-provider.ts @@ -1,6 +1,6 @@ // The MCP-server credential provider, sibling to // `http-x-api-key-provider.ts`: a tenant-connected MCP server -// (`@workbench/connections`' `mcp:` rows) authenticates with +// (`@corbits/connections`' `mcp:` rows) authenticates with // `authorization: Bearer ` when the person supplied a token, and // with NO authorization header at all when they connected keyless. The // vendored `http` (Bearer) plugin cannot express the keyless case — it @@ -29,7 +29,7 @@ import { mcpOriginPinnedFetch } from "./mcp-origin-pinned-fetch"; * Credential storage requires a non-empty secret, so a tokenless server * stores this value; this provider reads it back as "send no * authorization header". Owned here so both the writer - * (`@workbench/connections`' MCP connector) and the reader (this + * (`@corbits/connections`' MCP connector) and the reader (this * provider) import the one constant. */ export const MCP_NO_TOKEN_SENTINEL = "unauthenticated-mcp-server"; @@ -41,7 +41,7 @@ export interface McpStreamableHttpCredentialProviderOptions { /** * Provider plugin key an MCP-server provider row's `plugin` column - * names. `@workbench/connections`' MCP connector writes this key on + * names. `@corbits/connections`' MCP connector writes this key on * connect; the sidecar registers the provider alongside the other * workbench-owned plugins. */ diff --git a/packages/evals/package.json b/packages/evals/package.json index f2be706b8..3a9ad1184 100644 --- a/packages/evals/package.json +++ b/packages/evals/package.json @@ -28,7 +28,7 @@ "@intx/types": "workspace:*", "@intx/workflow": "workspace:*", "@modelcontextprotocol/sdk": "catalog:", - "@workbench/connections": "workspace:*", + "@corbits/connections": "workspace:*", "@corbits/hub-api-client": "workspace:*", "@corbits/seeding": "workspace:*", "@workbench/onboarding": "workspace:*", diff --git a/packages/evals/src/targets/real-target.ts b/packages/evals/src/targets/real-target.ts index 2d1feb681..62f6eb679 100644 --- a/packages/evals/src/targets/real-target.ts +++ b/packages/evals/src/targets/real-target.ts @@ -21,7 +21,7 @@ import { mkdtemp, rm } from "node:fs/promises"; import { tmpdir } from "node:os"; import path from "node:path"; -import { OLLAMA_PLACEHOLDER_SECRET } from "@workbench/connections/credential-test"; +import { OLLAMA_PLACEHOLDER_SECRET } from "@corbits/connections/credential-test"; import { createGitWorkflowPusher } from "@corbits/seeding"; import { createHubAPI, type ApiCall } from "@corbits/hub-api-client"; import { getLogger } from "@intx/log"; diff --git a/packages/evals/src/targets/world-snapshot.ts b/packages/evals/src/targets/world-snapshot.ts index 8ab4353cc..b3f851055 100644 --- a/packages/evals/src/targets/world-snapshot.ts +++ b/packages/evals/src/targets/world-snapshot.ts @@ -18,7 +18,7 @@ // - routines: `routines.routine`, queried the same // `tenantId`/`deletedAt IS NULL` shape `RoutineStore.listRoutines` // uses. -// - connections: `@workbench/connections`' +// - connections: `@corbits/connections`' // `listMcpServerConnections` verbatim — it already filters to an // active credential, so everything it returns is "live". import { and, eq, isNull } from "drizzle-orm"; @@ -34,7 +34,7 @@ import { webhookTrigger as webhookTriggerTable } from "@corbits/webhook-triggers import { connectorDescriptors, listMcpServerConnections, -} from "@workbench/connections"; +} from "@corbits/connections"; import type { FakeReceipt, WorldSnapshot } from "../types.ts"; @@ -120,7 +120,7 @@ async function readConnections( // Connector credentials (the Plugins layer): a connector's credential // row is named after its descriptor's displayName — the exact - // resolution `@workbench/connections`' plugins module and the hub's + // resolution `@corbits/connections`' plugins module and the hub's // own `resolveGithubConfig` binding use — so a GitHub PAT connected // through the connections layer shows up here as slug "github", // which is not an MCP server and was invisible to this snapshot diff --git a/packages/folded-runs/package.json b/packages/folded-runs/package.json index c76e1a090..8b8e09092 100644 --- a/packages/folded-runs/package.json +++ b/packages/folded-runs/package.json @@ -25,7 +25,7 @@ "@intx/types": "workspace:*", "@intx/workflow": "workspace:*", "@intx/workflow-deploy": "workspace:*", - "@workbench/connections": "workspace:*", + "@corbits/connections": "workspace:*", "arktype": "catalog:", "drizzle-orm": "catalog:", "postgres": "catalog:" diff --git a/packages/folded-runs/src/credential-delivery-error.test.ts b/packages/folded-runs/src/credential-delivery-error.test.ts index c1e68fe84..a3b525931 100644 --- a/packages/folded-runs/src/credential-delivery-error.test.ts +++ b/packages/folded-runs/src/credential-delivery-error.test.ts @@ -1,5 +1,5 @@ import { describe, expect, test } from "bun:test"; -import { MissingCredentialError } from "@workbench/connections"; +import { MissingCredentialError } from "@corbits/connections"; import type { CredentialDeliveryFailure } from "@intx/db"; import { credentialDeliveryError } from "./credential-delivery-error"; diff --git a/packages/folded-runs/src/credential-delivery-error.ts b/packages/folded-runs/src/credential-delivery-error.ts index c4145faca..aa37baa01 100644 --- a/packages/folded-runs/src/credential-delivery-error.ts +++ b/packages/folded-runs/src/credential-delivery-error.ts @@ -8,7 +8,7 @@ // `"ambiguous"` are configuration faults, not a missing connection, so // they stay generic. import type { CredentialDeliveryFailure } from "@intx/db"; -import { MissingCredentialError } from "@workbench/connections"; +import { MissingCredentialError } from "@corbits/connections"; export function credentialDeliveryError( launchLabel: string, diff --git a/packages/github-tools/package.json b/packages/github-tools/package.json index de8d8a1e5..5f5555761 100644 --- a/packages/github-tools/package.json +++ b/packages/github-tools/package.json @@ -2,7 +2,7 @@ "name": "@corbits/github-tools", "private": true, "description": "GitHub search integration: a minimal REST client and an @intx/agent tool bundle exposing github_activity", - "version": "0.0.9", + "version": "0.0.10", "license": "LGPL-2.1-or-later", "type": "module", "exports": { diff --git a/packages/github-tools/src/pull-request-tools.ts b/packages/github-tools/src/pull-request-tools.ts index bc57466ce..63f05f487 100644 --- a/packages/github-tools/src/pull-request-tools.ts +++ b/packages/github-tools/src/pull-request-tools.ts @@ -57,7 +57,7 @@ function errorResult( } // The wire shape `@corbits/chat`'s orchestrator parses -// (`@workbench/connections`' `parseMissingCredentialDetail`) to render the +// (`@corbits/connections`' `parseMissingCredentialDetail`) to render the // live connect-service card. Written literally rather than imported: a // sandboxed tool package stays free of a dependency on the hub-side // connections package for one constant shape both sides already agree on diff --git a/packages/inference-settings/package.json b/packages/inference-settings/package.json index 754b27f4e..463ddfdae 100644 --- a/packages/inference-settings/package.json +++ b/packages/inference-settings/package.json @@ -16,7 +16,7 @@ }, "dependencies": { "@intx/types": "workspace:*", - "@workbench/connections": "workspace:*", + "@corbits/connections": "workspace:*", "arktype": "catalog:" }, "devDependencies": { diff --git a/packages/inference-settings/src/effective-list.ts b/packages/inference-settings/src/effective-list.ts index bda9e87e8..eb20fdbf3 100644 --- a/packages/inference-settings/src/effective-list.ts +++ b/packages/inference-settings/src/effective-list.ts @@ -5,8 +5,8 @@ // a plain unit test, no DOM or network stub required. import type { Capability, ModelInfo, ModelOfferingResponse } from "@intx/types"; -import { PROVIDER_TEST_CONFIG } from "@workbench/connections/credential-test"; -import { preferCompletionCapable } from "@workbench/connections/model-capability"; +import { PROVIDER_TEST_CONFIG } from "@corbits/connections/credential-test"; +import { preferCompletionCapable } from "@corbits/connections/model-capability"; /** * The provider's own display name (e.g. "Ollama (local)", "Opencode Zen") diff --git a/packages/mcp-tools/package.json b/packages/mcp-tools/package.json index 3d147e906..5168f6484 100644 --- a/packages/mcp-tools/package.json +++ b/packages/mcp-tools/package.json @@ -2,7 +2,7 @@ "name": "@corbits/mcp-tools", "private": true, "description": "Generic MCP server integration: connect any Streamable HTTP MCP server through Plugins and its tools become reachable by any agent via mcp_list_servers/mcp_list_tools/mcp_call", - "version": "0.0.10", + "version": "0.0.11", "license": "LGPL-2.1-or-later", "type": "module", "exports": { diff --git a/packages/mcp-tools/src/registry-client.ts b/packages/mcp-tools/src/registry-client.ts index 238d329ac..3301f7580 100644 --- a/packages/mcp-tools/src/registry-client.ts +++ b/packages/mcp-tools/src/registry-client.ts @@ -1,7 +1,7 @@ // Lists the MCP servers this tenant has connected, via the same // workflow-run-authenticated connections surface // `@corbits/connections-tools`' `client.ts` calls for `list_connections` -// (`@workbench/connections`'s `createWorkflowConnectionRoutes`, mounted +// (`@corbits/connections`'s `createWorkflowConnectionRoutes`, mounted // in `apps/hub` at `/api/workflow-connections`). This is a SEPARATE // endpoint (`/mcp-servers`) from the generic `/connections` one that // route exposes: an MCP server is a tenant-created, dynamically-slugged diff --git a/packages/mcp-tools/src/tool.ts b/packages/mcp-tools/src/tool.ts index e3c9f3cdc..3a0eba5f6 100644 --- a/packages/mcp-tools/src/tool.ts +++ b/packages/mcp-tools/src/tool.ts @@ -11,7 +11,7 @@ // mcp_call({server, tool, arguments}) -- invoke one of those tools. // // Credentials: each connected server is a `mcp.` credential -// handle (`@workbench/connections`'s MCP connector, stored under a +// handle (`@corbits/connections`'s MCP connector, stored under a // `mcp:` provider row name -- see that package's registry for the // provider/credential shape). The slug is dynamic // tenant data, unknown at package-publish time, so this package's @@ -69,7 +69,7 @@ export const MCP_CALL_TOOL = "mcp_call"; * MCP server binds to (see this file's header comment). Dots, not a * colon, so the handle conforms to `@intx/types`' `ToolCredentialHandle` * grammar (`/^[a-z0-9][a-z0-9._-]*$/`) -- distinct from the `mcp:` - * PROVIDER row naming `@workbench/connections` stores, which has no such + * PROVIDER row naming `@corbits/connections` stores, which has no such * constraint. */ export function mcpCredentialHandle(slug: string): string { return `mcp.${slug}`; diff --git a/packages/mocks/README.md b/packages/mocks/README.md index f146118ad..0c7ff4138 100644 --- a/packages/mocks/README.md +++ b/packages/mocks/README.md @@ -188,7 +188,7 @@ turn assembler is a follow-up — this package proves the shape, it does not Routes covered: `GET /api/tags` (native catalogue), `POST /api/show` (per-model capability probe), `POST /v1/chat/completions` (openai-compatible chat, tool calls, streaming and non-streaming) — the -exact three endpoints `@workbench/connections`'s `credential-test.ts` and +exact three endpoints `@corbits/connections`'s `credential-test.ts` and the openai adapter's request-building actually call. No `/api/generate`, `/api/embeddings`, or anything else Ollama exposes that we don't. diff --git a/packages/mocks/src/ollama/connections-consumer.test.ts b/packages/mocks/src/ollama/connections-consumer.test.ts index 79c7c6596..ef3844984 100644 --- a/packages/mocks/src/ollama/connections-consumer.test.ts +++ b/packages/mocks/src/ollama/connections-consumer.test.ts @@ -1,5 +1,5 @@ // Wires the mock into the REAL call sites it exists to plug into — -// `@workbench/connections`'s `FetchLike`-shaped functions — rather than +// `@corbits/connections`'s `FetchLike`-shaped functions — rather than // calling `mock.fetch` directly the way `mock.test.ts` does. That // distinction matters: `mock.fetch(new Request(...))` typechecking says // nothing about whether the mock satisfies the two-argument @@ -15,8 +15,8 @@ import { fetchOllamaModelCatalog, testProviderCredential, OLLAMA_PLACEHOLDER_SECRET, -} from "@workbench/connections/credential-test"; -import { preferCompletionCapable } from "@workbench/connections/model-capability"; +} from "@corbits/connections/credential-test"; +import { preferCompletionCapable } from "@corbits/connections/model-capability"; import { createOllamaMock } from "./index"; const BASE_URL = "http://mock-ollama"; diff --git a/packages/mocks/src/ollama/mock.ts b/packages/mocks/src/ollama/mock.ts index 25358da86..c74340f05 100644 --- a/packages/mocks/src/ollama/mock.ts +++ b/packages/mocks/src/ollama/mock.ts @@ -155,7 +155,7 @@ export class OllamaMock { /** * The whole mock as a `fetch`-shaped function — `(input, init?)`, the * same two-argument shape as global `fetch` and, load-bearingly, - * `@workbench/connections`'s `FetchLike` (the seam every real caller — + * `@corbits/connections`'s `FetchLike` (the seam every real caller — * `testProviderCredential`, `fetchOllamaModelCatalog`, * `fetchOllamaModelCapabilities` — actually threads a `fetchImpl` * through as). A caller passing a bare `Request` diff --git a/packages/mocks/src/ollama/types.ts b/packages/mocks/src/ollama/types.ts index 6936aaf74..d8f276236 100644 --- a/packages/mocks/src/ollama/types.ts +++ b/packages/mocks/src/ollama/types.ts @@ -1,7 +1,7 @@ import { type } from "arktype"; // Ollama's own `/api/show` capability vocabulary — the same strings -// `@workbench/connections`'s `OLLAMA_CAPABILITY_MAP` translates from. A +// `@corbits/connections`'s `OLLAMA_CAPABILITY_MAP` translates from. A // catalogue entry scripts these directly so model-selection logic // (`preferCompletionCapable`, capability probing) is testable against the // exact values the real instance would answer, with no translation layer diff --git a/packages/onboarding/README.md b/packages/onboarding/README.md index ae9fc07c3..eb3efde72 100644 --- a/packages/onboarding/README.md +++ b/packages/onboarding/README.md @@ -12,13 +12,13 @@ workflow deploys. `@corbits/seeding`'s `seedTenant`/`DEFAULT_WORKFLOWS` — never a product-owned tenant table of its own. - `complete-credential.ts` proves a pasted key with - `@workbench/connections`'s `testProviderCredential` before storing it + `@corbits/connections`'s `testProviderCredential` before storing it through the hub's native `POST /api/tenants/:id/credentials` (`ensureCredential`/`ensureProvider`), then runs the same `seedCatalog`/`seedTenant` path an operator-configured key runs. - `huggingface-connect.ts` and `openrouter-connect.ts` are thin re-exports: the actual OAuth/PKCE connect mechanics live in - `@workbench/connections` (CL-6028 generalized both flows into that + `@corbits/connections` (CL-6028 generalized both flows into that package's OAuth route factory) and are kept here only so existing imports don't break. - `@intx/crypto`'s `CredentialCipher` seals the plaintext key carried from diff --git a/packages/onboarding/package.json b/packages/onboarding/package.json index 5521a25ac..74dca676d 100644 --- a/packages/onboarding/package.json +++ b/packages/onboarding/package.json @@ -20,7 +20,7 @@ "@intx/hub-api": "workspace:*", "@intx/types": "workspace:*", "@workbench/access-policy": "workspace:*", - "@workbench/connections": "workspace:*", + "@corbits/connections": "workspace:*", "@corbits/hub-api-client": "workspace:*", "@corbits/seeding": "workspace:*", "arktype": "catalog:", diff --git a/packages/onboarding/src/complete-credential.ts b/packages/onboarding/src/complete-credential.ts index 9e8e87ef4..a00329cb7 100644 --- a/packages/onboarding/src/complete-credential.ts +++ b/packages/onboarding/src/complete-credential.ts @@ -63,8 +63,8 @@ import { import { ollamaOpenAICompatBaseURL, type SupportedCredentialProvider, -} from "@workbench/connections/credential-test"; -import { preferCompletionCapable } from "@workbench/connections/model-capability"; +} from "@corbits/connections/credential-test"; +import { preferCompletionCapable } from "@corbits/connections/model-capability"; import { CATALOG_SEEDS, DEFAULT_WORKFLOWS, @@ -81,8 +81,8 @@ import { import { persistConnectorCredential, type PersistConnectorCredentialFns, -} from "@workbench/connections/persist-credential"; -import { CONNECTOR_REGISTRY } from "@workbench/connections/registry"; +} from "@corbits/connections/persist-credential"; +import { CONNECTOR_REGISTRY } from "@corbits/connections/registry"; import { personalTenantSlug, seededWorkflowStatus } from "./provision"; /** The onboarding UI's copy for a partial seed: every durable step @@ -104,7 +104,7 @@ export type PersonalTenant = { export type TestAndPersistCredentialResult = /** * Kept for API compatibility with dependents that accept it as a - * possible outcome (`@workbench/connections`' `OAuthStoreOutcome`, + * possible outcome (`@corbits/connections`' `OAuthStoreOutcome`, * matched "exactly" per that module's own doc comment) — the default * implementation below never produces it, since CL-6123 dropped the * probe that used to be the only thing that could. diff --git a/packages/onboarding/src/huggingface-connect.ts b/packages/onboarding/src/huggingface-connect.ts index d5174adf7..837e4f167 100644 --- a/packages/onboarding/src/huggingface-connect.ts +++ b/packages/onboarding/src/huggingface-connect.ts @@ -1,5 +1,5 @@ // The Hugging Face PKCE connect mechanics moved to -// `@workbench/connections` (CL-6028's OAuth route factory generalized +// `@corbits/connections` (CL-6028's OAuth route factory generalized // both this and OpenRouter's flow) — re-exported from here so nothing // outside this package that still imports `./huggingface-connect` needs // to change. @@ -16,4 +16,4 @@ export { type ExchangeCodeForTokenArgs, type HuggingFaceExchangeFetch as ExchangeFetch, type HuggingFaceExchangeResult as ExchangeResult, -} from "@workbench/connections"; +} from "@corbits/connections"; diff --git a/packages/onboarding/src/openrouter-connect.ts b/packages/onboarding/src/openrouter-connect.ts index 2699fb4a1..3f0abd14e 100644 --- a/packages/onboarding/src/openrouter-connect.ts +++ b/packages/onboarding/src/openrouter-connect.ts @@ -1,4 +1,4 @@ -// The OpenRouter PKCE connect mechanics moved to `@workbench/connections` +// The OpenRouter PKCE connect mechanics moved to `@corbits/connections` // (CL-6028's OAuth route factory generalized both this and Hugging // Face's flow) — re-exported from here so nothing outside this package // that still imports `./openrouter-connect` needs to change. @@ -15,4 +15,4 @@ export { type ExchangeCodeForKeyArgs, type OpenRouterExchangeFetch as ExchangeFetch, type OpenRouterExchangeResult as ExchangeResult, -} from "@workbench/connections"; +} from "@corbits/connections"; diff --git a/packages/onboarding/src/pending-seed.ts b/packages/onboarding/src/pending-seed.ts index 7e53b543b..5ab12155d 100644 --- a/packages/onboarding/src/pending-seed.ts +++ b/packages/onboarding/src/pending-seed.ts @@ -64,7 +64,7 @@ import type { CredentialCipher } from "@intx/types"; import { supportedCredentialProviders, type SupportedCredentialProvider, -} from "@workbench/connections/credential-test"; +} from "@corbits/connections/credential-test"; import { pendingSeed } from "./schema"; /** diff --git a/packages/onboarding/src/plant-env-credentials.ts b/packages/onboarding/src/plant-env-credentials.ts index 49a1ab0be..dc8598cf1 100644 --- a/packages/onboarding/src/plant-env-credentials.ts +++ b/packages/onboarding/src/plant-env-credentials.ts @@ -11,7 +11,7 @@ // // Never reimplements credential planting: the live probe is // `testProviderCredential` and the actual plant is `seedCatalog` (same -// `@workbench/connections` functions `completeCredentialSetup` calls), +// `@corbits/connections` functions `completeCredentialSetup` calls), // reused here exactly as onboarding's own guided step uses them. This // module's only job is the env-map-to-provider translation, the // idempotency check that skips overwriting a provider already carrying @@ -32,7 +32,7 @@ import { testProviderCredential, type SupportedCredentialProvider, type TestProviderCredentialArgs, -} from "@workbench/connections/credential-test"; +} from "@corbits/connections/credential-test"; import { inferenceCredentialName, seedCatalog, diff --git a/packages/onboarding/src/routes.ts b/packages/onboarding/src/routes.ts index 004cf3586..aeb683eb7 100644 --- a/packages/onboarding/src/routes.ts +++ b/packages/onboarding/src/routes.ts @@ -12,7 +12,7 @@ import type { CredentialCipher } from "@intx/types"; import { supportedCredentialProviders, type SupportedCredentialProvider, -} from "@workbench/connections/credential-test"; +} from "@corbits/connections/credential-test"; import { inferenceCredentialName, SETUP_AGENT_ASSET_NAME, @@ -55,11 +55,11 @@ import { DEFAULT_RETURN_PATH_ALLOWLIST, type ConnectorDescriptor, type OAuthExchangeResult, -} from "@workbench/connections"; +} from "@corbits/connections"; import type { PendingSeedStore } from "./pending-seed"; import { exchangeCodeForKey } from "./openrouter-connect"; import { exchangeCodeForToken as exchangeHuggingFaceCodeForToken } from "./huggingface-connect"; -import type { ProviderHealthStore } from "@workbench/connections/provider-health"; +import type { ProviderHealthStore } from "@corbits/connections/provider-health"; function assertNonEmpty(arr: T[]): asserts arr is [T, ...T[]] { if (arr.length === 0) { @@ -173,7 +173,7 @@ export type CreateOnboardingRoutesDeps = { * catalog seed, the only work that call still does inline. */ testAndPersistCredentialFn?: typeof testAndPersistCredential; /** - * The same provider-health signal `@workbench/connections`' own routes + * The same provider-health signal `@corbits/connections`' own routes * write to (CL-6092): a successful `POST /complete` clears any stale * needs-attention record for the connected provider, so the shell * banner's onboarding-routed "Fix it" (the zero-working-providers case) @@ -201,7 +201,7 @@ export type CreateOnboardingRoutesDeps = { }; /** Seals the OAuth connect state (PKCE verifier included) parked * between `/start` and `/callback`, so a hub restart in between - * doesn't strand it — see `@workbench/connections`' `pkce.ts`. The same `CredentialCipher` + * doesn't strand it — see `@corbits/connections`' `pkce.ts`. The same `CredentialCipher` * every other secret-at-rest seam in the hub shares * (`CREDENTIAL_ENCRYPTION_KEY`, `apps/hub`'s `credentialCipherFrom`). * Defaults to the identity no-op cipher: fine for dev/test, never for @@ -489,7 +489,7 @@ export function createOnboardingRoutes( }); // OAuth connect (OpenRouter, Hugging Face): CL-6028 generalized both - // providers' start/callback mechanics into `@workbench/connections`' + // providers' start/callback mechanics into `@corbits/connections`' // `createOAuthConnectRoutes` — state sealing, PKCE, cookies, rate // limiting, and the duplicate-callback recovery shape all live there // now, driven by `CONNECTOR_REGISTRY`'s `openrouter`/`huggingface` @@ -560,12 +560,12 @@ export function createOnboardingRoutes( const huggingfaceDescriptor = CONNECTOR_REGISTRY["huggingface"]; if (openrouterDescriptor?.oauth === undefined) { throw new Error( - "@workbench/connections' registry is missing the openrouter oauth-pkce entry", + "@corbits/connections' registry is missing the openrouter oauth-pkce entry", ); } if (huggingfaceDescriptor?.oauth === undefined) { throw new Error( - "@workbench/connections' registry is missing the huggingface oauth-pkce entry", + "@corbits/connections' registry is missing the huggingface oauth-pkce entry", ); } // ONLY the two providers onboarding's own first-login flow offers. @@ -801,7 +801,7 @@ export function createOnboardingRoutes( } // The credential is durably stored — clear any stale // needs-attention record for this provider (CL-6092), the same - // clear-on-success rule `@workbench/connections`' own routes + // clear-on-success rule `@corbits/connections`' own routes // follow. The credential is proven-durable here whether or not the // agents have finished deploying. deps.providerHealth?.clear(result.tenantId, parsed.provider); diff --git a/packages/onboarding/test/huggingface-connect-routes.test.ts b/packages/onboarding/test/huggingface-connect-routes.test.ts index c19a81db3..19905bee8 100644 --- a/packages/onboarding/test/huggingface-connect-routes.test.ts +++ b/packages/onboarding/test/huggingface-connect-routes.test.ts @@ -19,7 +19,7 @@ import { import { createOnboardingRoutes } from "../src/routes"; import type { CreateOnboardingRoutesDeps } from "../src/routes"; import { testAndPersistCredential } from "../src/complete-credential"; -import { s256Challenge } from "@workbench/connections"; +import { s256Challenge } from "@corbits/connections"; import { createInMemoryPendingSeedStore, type PendingSeedStore, diff --git a/packages/onboarding/test/routes.test.ts b/packages/onboarding/test/routes.test.ts index 42eedcaab..fe6732dc9 100644 --- a/packages/onboarding/test/routes.test.ts +++ b/packages/onboarding/test/routes.test.ts @@ -11,7 +11,7 @@ import { Hono } from "hono"; import { createNoopCredentialCipher } from "@intx/crypto"; import { createOnboardingRoutes } from "../src/routes"; import { createInMemoryPendingSeedStore } from "../src/pending-seed"; -import { createProviderHealthStore } from "@workbench/connections/provider-health"; +import { createProviderHealthStore } from "@corbits/connections/provider-health"; import { HubApiError } from "@corbits/hub-api-client"; // These tests never exercise the pending-seed store — it is required diff --git a/packages/plugins-ui/README.md b/packages/plugins-ui/README.md index 4e442972b..1f7be260b 100644 --- a/packages/plugins-ui/README.md +++ b/packages/plugins-ui/README.md @@ -8,7 +8,7 @@ owns fetching data and passes it down. ## How it composes -- Reads `ResolvedPlugin` from `@workbench/connections/plugins` — the +- Reads `ResolvedPlugin` from `@corbits/connections/plugins` — the tenant-inheritance-aware resolver — rather than re-deriving connection status itself. - `PluginConnectPanel` reuses the exact mutations `@corbits/settings-ui`'s diff --git a/packages/plugins-ui/package.json b/packages/plugins-ui/package.json index 05efa6eff..7d932fcbf 100644 --- a/packages/plugins-ui/package.json +++ b/packages/plugins-ui/package.json @@ -16,7 +16,7 @@ "dependencies": { "@corbits/react-ui": "github:corbitsdev/react-ui#3b122812a307ccb35be31386f7696020c5a84635", "@corbits/settings-ui": "workspace:*", - "@workbench/connections": "workspace:*", + "@corbits/connections": "workspace:*", "arktype": "catalog:", "@corbits/icons": "workspace:*", "react": "^19.2.0", diff --git a/packages/plugins-ui/src/installed-strip.tsx b/packages/plugins-ui/src/installed-strip.tsx index 088ae1176..f37b404bd 100644 --- a/packages/plugins-ui/src/installed-strip.tsx +++ b/packages/plugins-ui/src/installed-strip.tsx @@ -3,7 +3,7 @@ // below it. Icon chip + a status dot, never a second copy of the card. import { Button } from "@corbits/react-ui"; -import type { ResolvedPlugin } from "@workbench/connections/plugins"; +import type { ResolvedPlugin } from "@corbits/connections/plugins"; import { pluginIcon } from "./plugin-meta"; diff --git a/packages/plugins-ui/src/mcp-preset-cards.tsx b/packages/plugins-ui/src/mcp-preset-cards.tsx index 347d8a9c1..5ed524fb4 100644 --- a/packages/plugins-ui/src/mcp-preset-cards.tsx +++ b/packages/plugins-ui/src/mcp-preset-cards.tsx @@ -3,8 +3,8 @@ // connected custom servers share the same server-side store. import { Button, ConfirmButton, Input, toast } from "@corbits/react-ui"; -import { CONNECTOR_REGISTRY } from "@workbench/connections/registry"; -import { MCP_PRESETS } from "@workbench/connections/mcp-presets"; +import { CONNECTOR_REGISTRY } from "@corbits/connections/registry"; +import { MCP_PRESETS } from "@corbits/connections/mcp-presets"; import { useEffect, useState } from "react"; import { diff --git a/packages/plugins-ui/src/mcp-servers-section.tsx b/packages/plugins-ui/src/mcp-servers-section.tsx index f1f385e9a..ac62f871b 100644 --- a/packages/plugins-ui/src/mcp-servers-section.tsx +++ b/packages/plugins-ui/src/mcp-servers-section.tsx @@ -9,7 +9,7 @@ // advertising a URL/token form as an installation path. import { ConfirmButton, toast } from "@corbits/react-ui"; -import { MCP_PRESETS } from "@workbench/connections/mcp-presets"; +import { MCP_PRESETS } from "@corbits/connections/mcp-presets"; import { PuzzlePiece } from "@corbits/icons"; import { useEffect, useState } from "react"; diff --git a/packages/plugins-ui/src/plugin-card.tsx b/packages/plugins-ui/src/plugin-card.tsx index fa17f20d2..a3fc0cb99 100644 --- a/packages/plugins-ui/src/plugin-card.tsx +++ b/packages/plugins-ui/src/plugin-card.tsx @@ -6,7 +6,7 @@ // scan, not a set of tiles to admire (CL-6272.1). import { Button } from "@corbits/react-ui"; -import type { ResolvedPlugin } from "@workbench/connections/plugins"; +import type { ResolvedPlugin } from "@corbits/connections/plugins"; import { pluginIcon, pluginOutcome } from "./plugin-meta"; import { PluginLogo } from "./plugin-logo"; diff --git a/packages/plugins-ui/src/plugin-connect-panel.tsx b/packages/plugins-ui/src/plugin-connect-panel.tsx index e04f93a7a..32b0a6bfc 100644 --- a/packages/plugins-ui/src/plugin-connect-panel.tsx +++ b/packages/plugins-ui/src/plugin-connect-panel.tsx @@ -32,8 +32,8 @@ import { fetchOAuthConfigured, oauthStartHref, } from "@corbits/settings-ui"; -import { CONNECTOR_REGISTRY } from "@workbench/connections/registry"; -import type { ResolvedPlugin } from "@workbench/connections/plugins"; +import { CONNECTOR_REGISTRY } from "@corbits/connections/registry"; +import type { ResolvedPlugin } from "@corbits/connections/plugins"; import { useEffect, useState } from "react"; import { pluginOutcome } from "./plugin-meta"; diff --git a/packages/plugins-ui/src/plugins-gallery.tsx b/packages/plugins-ui/src/plugins-gallery.tsx index cbd3e5d35..0cf29a9f9 100644 --- a/packages/plugins-ui/src/plugins-gallery.tsx +++ b/packages/plugins-ui/src/plugins-gallery.tsx @@ -7,11 +7,11 @@ // "owns the domain" and "stays generic." import { EmptyState, Tabs } from "@corbits/react-ui"; -import type { ResolvedPlugin } from "@workbench/connections/plugins"; +import type { ResolvedPlugin } from "@corbits/connections/plugins"; import { MCP_PRESETS, MCP_PRESET_CONNECTOR_IDS, -} from "@workbench/connections/mcp-presets"; +} from "@corbits/connections/mcp-presets"; import { Lightning } from "@corbits/icons"; import { useMemo } from "react"; diff --git a/packages/plugins-ui/test/mcp-preset-cards.test.tsx b/packages/plugins-ui/test/mcp-preset-cards.test.tsx index e0e6cc8cd..58653616e 100644 --- a/packages/plugins-ui/test/mcp-preset-cards.test.tsx +++ b/packages/plugins-ui/test/mcp-preset-cards.test.tsx @@ -8,7 +8,7 @@ import { act } from "react"; import { createRoot } from "react-dom/client"; import type { Root } from "react-dom/client"; -import { MCP_PRESETS } from "@workbench/connections/mcp-presets"; +import { MCP_PRESETS } from "@corbits/connections/mcp-presets"; import { McpPresetCardsSection } from "../src/mcp-preset-cards"; diff --git a/packages/plugins-ui/test/plugin-connect-panel.test.tsx b/packages/plugins-ui/test/plugin-connect-panel.test.tsx index a21ead0d9..725d42ecf 100644 --- a/packages/plugins-ui/test/plugin-connect-panel.test.tsx +++ b/packages/plugins-ui/test/plugin-connect-panel.test.tsx @@ -9,8 +9,8 @@ import { act } from "react"; import { createRoot } from "react-dom/client"; import type { Root } from "react-dom/client"; -import type { ConnectorDescriptor } from "@workbench/connections/registry"; -import type { ResolvedPlugin } from "@workbench/connections/plugins"; +import type { ConnectorDescriptor } from "@corbits/connections/registry"; +import type { ResolvedPlugin } from "@corbits/connections/plugins"; import { PluginConnectPanel } from "../src/plugin-connect-panel"; import { PLUGINS_STRINGS } from "../src/strings"; diff --git a/packages/plugins-ui/test/plugins-gallery.test.tsx b/packages/plugins-ui/test/plugins-gallery.test.tsx index 88c1c6826..24c7ee8b4 100644 --- a/packages/plugins-ui/test/plugins-gallery.test.tsx +++ b/packages/plugins-ui/test/plugins-gallery.test.tsx @@ -9,9 +9,9 @@ import { useState } from "react"; import { createRoot } from "react-dom/client"; import type { Root } from "react-dom/client"; -import type { ConnectorDescriptor } from "@workbench/connections/registry"; -import type { ResolvedPlugin } from "@workbench/connections/plugins"; -import { MCP_PRESETS } from "@workbench/connections/mcp-presets"; +import type { ConnectorDescriptor } from "@corbits/connections/registry"; +import type { ResolvedPlugin } from "@corbits/connections/plugins"; +import { MCP_PRESETS } from "@corbits/connections/mcp-presets"; import { PluginsGallery } from "../src/plugins-gallery"; import type { SkillCardData } from "../src/skill-card"; diff --git a/packages/provider-pricing/package.json b/packages/provider-pricing/package.json index 6b56ea991..eb85ec03a 100644 --- a/packages/provider-pricing/package.json +++ b/packages/provider-pricing/package.json @@ -14,7 +14,7 @@ }, "dependencies": { "@intx/inference-catalog": "0.3.0", - "@workbench/connections": "workspace:*" + "@corbits/connections": "workspace:*" }, "devDependencies": { "@types/bun": "catalog:", diff --git a/packages/provider-pricing/src/rates.ts b/packages/provider-pricing/src/rates.ts index 3138cfbb1..210c98f4c 100644 --- a/packages/provider-pricing/src/rates.ts +++ b/packages/provider-pricing/src/rates.ts @@ -1,4 +1,4 @@ -import type { SupportedCredentialProvider } from "@workbench/connections/credential-test"; +import type { SupportedCredentialProvider } from "@corbits/connections/credential-test"; import type { CatalogModelName } from "./catalog-models"; import type { ModelPrice, RateTier, TokenRates } from "./types"; diff --git a/packages/provider-pricing/src/types.ts b/packages/provider-pricing/src/types.ts index 77bcd2f85..a081bcf4e 100644 --- a/packages/provider-pricing/src/types.ts +++ b/packages/provider-pricing/src/types.ts @@ -1,4 +1,4 @@ -import type { SupportedCredentialProvider } from "@workbench/connections/credential-test"; +import type { SupportedCredentialProvider } from "@corbits/connections/credential-test"; import type { CatalogModelName } from "./catalog-models"; @@ -32,7 +32,7 @@ export type RateTier = { * A priced (provider, model) pair. `provider` is typed against * `SupportedCredentialProvider` — the same provider identity workbench * already uses for credentials and the catalog's adapter plugin mapping - * (see `@workbench/connections/credential-test`) — so a misspelled or + * (see `@corbits/connections/credential-test`) — so a misspelled or * unsupported provider is a compile error. * * `model` is the actual wire id billed on a usage turn, which is not diff --git a/packages/seeding/package.json b/packages/seeding/package.json index 0b8c9123e..e998e7bf9 100644 --- a/packages/seeding/package.json +++ b/packages/seeding/package.json @@ -24,7 +24,7 @@ "@corbits/workflows": "workspace:*", "@intx/inference": "workspace:*", "@intx/types": "workspace:*", - "@workbench/connections": "workspace:*", + "@corbits/connections": "workspace:*", "@workbench/templates": "workspace:*", "arktype": "catalog:" }, diff --git a/packages/seeding/src/catalog-seed-data.ts b/packages/seeding/src/catalog-seed-data.ts index ce050dac8..fc6a82ef4 100644 --- a/packages/seeding/src/catalog-seed-data.ts +++ b/packages/seeding/src/catalog-seed-data.ts @@ -15,7 +15,7 @@ import type { AdapterPluginId, SupportedCredentialProvider, -} from "@workbench/connections/credential-test"; +} from "@corbits/connections/credential-test"; export type CatalogModelSpec = { readonly canonicalName: string; diff --git a/packages/seeding/src/seed.ts b/packages/seeding/src/seed.ts index 599fb9efe..ac636d18d 100644 --- a/packages/seeding/src/seed.ts +++ b/packages/seeding/src/seed.ts @@ -62,8 +62,8 @@ import { fetchOllamaModelCatalog, ollamaOpenAICompatBaseURL, type SupportedCredentialProvider, -} from "@workbench/connections/credential-test"; -import { hasCompletionCapableModel } from "@workbench/connections/model-capability"; +} from "@corbits/connections/credential-test"; +import { hasCompletionCapableModel } from "@corbits/connections/model-capability"; const GIT_TOKEN_TTL_MS = 10 * 60 * 1000; const ECHO_TURN_TIMEOUT_MS = 2 * 60 * 1000; @@ -1419,7 +1419,7 @@ export type SeedCatalogArgs = { credentialVerified?: boolean; /** * A credential row the caller already planted (the shared - * persist-and-seed sequence, `@workbench/connections`' + * persist-and-seed sequence, `@corbits/connections`' * `persistConnectorCredential`). When set, this function plants only * the catalog side — provider/credential ensure is skipped entirely, * so the caller's single `ensureCredential` stays the one write (no diff --git a/packages/seeding/test/catalog-seed-data.test.ts b/packages/seeding/test/catalog-seed-data.test.ts index 5362ec9f4..489ebfae0 100644 --- a/packages/seeding/test/catalog-seed-data.test.ts +++ b/packages/seeding/test/catalog-seed-data.test.ts @@ -14,7 +14,7 @@ import { import { supportedCredentialProviders, type SupportedCredentialProvider, -} from "@workbench/connections/credential-test"; +} from "@corbits/connections/credential-test"; describe("CATALOG_SEEDS", () => { test("has one seed for every supported credential provider", () => { diff --git a/packages/settings-ui/package.json b/packages/settings-ui/package.json index 923ebd045..3a0fa1936 100644 --- a/packages/settings-ui/package.json +++ b/packages/settings-ui/package.json @@ -25,7 +25,7 @@ "@corbits/react-ui": "github:corbitsdev/react-ui#3b122812a307ccb35be31386f7696020c5a84635", "@workbench/templates": "workspace:*", "@intx/types": "workspace:*", - "@workbench/connections": "workspace:*", + "@corbits/connections": "workspace:*", "arktype": "catalog:", "@corbits/icons": "workspace:*", "react": "^19.2.0", diff --git a/packages/settings-ui/src/connections-api.ts b/packages/settings-ui/src/connections-api.ts index b01a97e3a..32065add6 100644 --- a/packages/settings-ui/src/connections-api.ts +++ b/packages/settings-ui/src/connections-api.ts @@ -1,5 +1,5 @@ // Connections section seam to the connector-registry routes -// (`/api/tenants/:tenantId/connections/:connectorId/*`, `@workbench/connections`'s +// (`/api/tenants/:tenantId/connections/:connectorId/*`, `@corbits/connections`'s // route factory). `credentials-api.ts`-shaped: same fetch wrapper, same // error class convention, arktype at the trust boundary. @@ -85,7 +85,7 @@ export function completeConnectorCredential( * credential (`model_provider.credential_id` is `ON DELETE RESTRICT`); * this route deletes the catalog provider first (cascading its * offerings), then the credential provider row (cascading its - * credentials) — see `@workbench/connections`' `disconnectConnector` for + * credentials) — see `@corbits/connections`' `disconnectConnector` for * the full ordering and why (CL-6258). */ export function disconnectConnector( diff --git a/packages/settings-ui/src/connections-section.tsx b/packages/settings-ui/src/connections-section.tsx index a88c21068..fdd26bc3a 100644 --- a/packages/settings-ui/src/connections-section.tsx +++ b/packages/settings-ui/src/connections-section.tsx @@ -24,8 +24,8 @@ import { CONNECTOR_REGISTRY, connectorDescriptors, type ConnectorDescriptor, -} from "@workbench/connections/registry"; -import { MCP_PRESET_CONNECTOR_IDS } from "@workbench/connections/mcp-presets"; +} from "@corbits/connections/registry"; +import { MCP_PRESET_CONNECTOR_IDS } from "@corbits/connections/mcp-presets"; import { workflowDisplayName } from "@workbench/templates"; import { buildEffectiveInferenceRows, @@ -67,7 +67,7 @@ import { } from "./credentials-api"; import { SETTINGS_STRINGS } from "./strings"; -// `@workbench/connections/registry` is the only subpath this browser +// `@corbits/connections/registry` is the only subpath this browser // bundle may import — its main export pulls in server-only hono routing. type OAuthConnectorCard = { diff --git a/packages/settings-ui/src/granola-webhook-card.tsx b/packages/settings-ui/src/granola-webhook-card.tsx index e50187024..90d7403f8 100644 --- a/packages/settings-ui/src/granola-webhook-card.tsx +++ b/packages/settings-ui/src/granola-webhook-card.tsx @@ -24,7 +24,7 @@ import { DialogTitle, formatRelativeTime, } from "@corbits/react-ui"; -import type { ConnectorDescriptor } from "@workbench/connections/registry"; +import type { ConnectorDescriptor } from "@corbits/connections/registry"; import { useEffect, useRef, useState } from "react"; import type { APIQuery } from "@corbits/api-query"; diff --git a/packages/settings-ui/test/connections-disconnect-flow.test.tsx b/packages/settings-ui/test/connections-disconnect-flow.test.tsx index 6802a0d03..b9d683c41 100644 --- a/packages/settings-ui/test/connections-disconnect-flow.test.tsx +++ b/packages/settings-ui/test/connections-disconnect-flow.test.tsx @@ -2,7 +2,7 @@ // the orchestrated `/connections/:id/disconnect` route -- never // `DELETE /credentials/:id` directly, which 500s for any inference // provider once a catalog provider row exists against its credential -// (see `@workbench/connections`' `disconnectConnector`). This also covers +// (see `@corbits/connections`' `disconnectConnector`). This also covers // the provider row's new default-model caption, the Models page's // replacement (CL-6258 item 1). diff --git a/packages/settings-ui/test/connector-credential-dialog.test.tsx b/packages/settings-ui/test/connector-credential-dialog.test.tsx index 35b5c5142..cdae01c9a 100644 --- a/packages/settings-ui/test/connector-credential-dialog.test.tsx +++ b/packages/settings-ui/test/connector-credential-dialog.test.tsx @@ -11,7 +11,7 @@ import { afterEach, describe, expect, test } from "bun:test"; import { act } from "react"; import { createRoot } from "react-dom/client"; import type { Root } from "react-dom/client"; -import type { ConnectorDescriptor } from "@workbench/connections/registry"; +import type { ConnectorDescriptor } from "@corbits/connections/registry"; import { ConnectorCredentialDialog } from "../src/connections-section"; import { SETTINGS_STRINGS } from "../src/strings"; diff --git a/packages/settings-ui/test/granola-webhook-card.test.tsx b/packages/settings-ui/test/granola-webhook-card.test.tsx index a0854db9e..f299c2fc5 100644 --- a/packages/settings-ui/test/granola-webhook-card.test.tsx +++ b/packages/settings-ui/test/granola-webhook-card.test.tsx @@ -8,7 +8,7 @@ import { afterEach, describe, expect, test } from "bun:test"; import { act } from "react"; import { createRoot } from "react-dom/client"; import type { Root } from "react-dom/client"; -import type { ConnectorDescriptor } from "@workbench/connections/registry"; +import type { ConnectorDescriptor } from "@corbits/connections/registry"; import { GranolaWebhookCard } from "../src/granola-webhook-card"; diff --git a/packages/settings-ui/test/granola-webhook-manage-state.test.tsx b/packages/settings-ui/test/granola-webhook-manage-state.test.tsx index a13ff42f6..f79a211ef 100644 --- a/packages/settings-ui/test/granola-webhook-manage-state.test.tsx +++ b/packages/settings-ui/test/granola-webhook-manage-state.test.tsx @@ -8,7 +8,7 @@ import { afterEach, describe, expect, test } from "bun:test"; import { act } from "react"; import { createRoot } from "react-dom/client"; import type { Root } from "react-dom/client"; -import type { ConnectorDescriptor } from "@workbench/connections/registry"; +import type { ConnectorDescriptor } from "@corbits/connections/registry"; import { GranolaWebhookCard } from "../src/granola-webhook-card"; diff --git a/packages/settings-ui/test/oauth-start-href.test.ts b/packages/settings-ui/test/oauth-start-href.test.ts index be28bc01e..e36cb1c3c 100644 --- a/packages/settings-ui/test/oauth-start-href.test.ts +++ b/packages/settings-ui/test/oauth-start-href.test.ts @@ -1,7 +1,7 @@ // Pins the exact start URL every connect surface renders (CL-6394): the // tenant-scoped `connections/oauth` mount, never onboarding's own // first-login mount — targeting the latter is what crashed the hosted -// GitHub one-click connect. `@workbench/connections`' own +// GitHub one-click connect. `@corbits/connections`' own // github-oauth-connect suite drives this same literal end to end, so a // change here that isn't mirrored there fails one side or the other. import { describe, expect, test } from "bun:test"; diff --git a/packages/webhook-triggers/src/repo-review-lease.ts b/packages/webhook-triggers/src/repo-review-lease.ts index 2238f5720..10fa9f89b 100644 --- a/packages/webhook-triggers/src/repo-review-lease.ts +++ b/packages/webhook-triggers/src/repo-review-lease.ts @@ -1,6 +1,6 @@ // Closes a check-then-act race in the GitHub connect card's // start-reviewing step (CL-7242): `startReviewingRepos` -// (`@workbench/connections`) loops over selected repos doing +// (`@corbits/connections`) loops over selected repos doing // hasRepoGrant/mintRepoGrant then hasWebhookTrigger/createWebhookTrigger // per repo, each a plain read followed by a conditional write with no // atomic backstop. Two concurrent calls for the same repo (a diff --git a/packages/workflows/package.json b/packages/workflows/package.json index 8593ad30f..490f080a2 100644 --- a/packages/workflows/package.json +++ b/packages/workflows/package.json @@ -29,7 +29,7 @@ }, "devDependencies": { "@types/bun": "catalog:", - "@workbench/connections": "workspace:*", + "@corbits/connections": "workspace:*", "typescript": "catalog:" } } diff --git a/packages/workflows/src/catalog.test.ts b/packages/workflows/src/catalog.test.ts index bf6c36d1b..90bb639b6 100644 --- a/packages/workflows/src/catalog.test.ts +++ b/packages/workflows/src/catalog.test.ts @@ -1,8 +1,8 @@ import { type } from "arktype"; import { describe, expect, test } from "bun:test"; -import { CONNECTOR_REGISTRY } from "@workbench/connections/registry"; -import { MCP_PRESETS } from "@workbench/connections/mcp-presets"; +import { CONNECTOR_REGISTRY } from "@corbits/connections/registry"; +import { MCP_PRESETS } from "@corbits/connections/mcp-presets"; import { deliveryWorkbenchRequiredForWorkflowName, diff --git a/packages/workflows/src/catalog.ts b/packages/workflows/src/catalog.ts index 8d2fa4770..063175587 100644 --- a/packages/workflows/src/catalog.ts +++ b/packages/workflows/src/catalog.ts @@ -111,9 +111,9 @@ export type WorkflowCatalogEntry = { readonly whatItDoes: string; /** * Connector ids this workflow's tool packages call — either a native - * connector (`@workbench/connections/registry`'s `CONNECTOR_REGISTRY`) + * connector (`@corbits/connections/registry`'s `CONNECTOR_REGISTRY`) * or an MCP preset slug a person connects under Plugins - * (`@workbench/connections/mcp-presets`' `MCP_PRESETS`), which is the + * (`@corbits/connections/mcp-presets`' `MCP_PRESETS`), which is the * only way some integrations (Attio) are reachable here at all. Empty * for workflows with no external connector dependency. */ diff --git a/scripts/checks/test/packages.test.ts b/scripts/checks/test/packages.test.ts index f1bf0015d..99cd2c3db 100644 --- a/scripts/checks/test/packages.test.ts +++ b/scripts/checks/test/packages.test.ts @@ -7,8 +7,8 @@ import { } from "../packages"; test("tarballNameFor flattens a scoped name the way bun pm pack does", () => { - expect(tarballNameFor("@workbench/connections", "0.0.1")).toBe( - "workbench-connections-0.0.1.tgz", + expect(tarballNameFor("@corbits/connections", "0.0.1")).toBe( + "corbits-connections-0.0.1.tgz", ); expect(tarballNameFor("plain", "1.2.3")).toBe("plain-1.2.3.tgz"); }); diff --git a/templates/index.ts b/templates/index.ts index 407c0c405..2b929f915 100644 --- a/templates/index.ts +++ b/templates/index.ts @@ -164,7 +164,7 @@ export type WorkbenchDefinition = { readonly promise: string; readonly blocks: readonly WorkbenchTemplateBlock[]; /** - * Connector ids (see `@workbench/connections`' `CONNECTOR_REGISTRY` and + * Connector ids (see `@corbits/connections`' `CONNECTOR_REGISTRY` and * `MCP_PRESETS`): `required` is what this definition cannot work * without, in the order the walkthrough asks for them; `optional` * makes it better and never gates the create. diff --git a/templates/package.json b/templates/package.json index 3f26e9076..04a27bb1c 100644 --- a/templates/package.json +++ b/templates/package.json @@ -23,7 +23,7 @@ }, "devDependencies": { "@types/bun": "catalog:", - "@workbench/connections": "workspace:*", + "@corbits/connections": "workspace:*", "typescript": "catalog:" } } diff --git a/templates/schema.test.ts b/templates/schema.test.ts index 60cd2683d..6f195e44b 100644 --- a/templates/schema.test.ts +++ b/templates/schema.test.ts @@ -1,6 +1,6 @@ import { expect, test } from "bun:test"; -import { CONNECTOR_REGISTRY } from "@workbench/connections/registry"; -import { MCP_PRESETS } from "@workbench/connections/mcp-presets"; +import { CONNECTOR_REGISTRY } from "@corbits/connections/registry"; +import { MCP_PRESETS } from "@corbits/connections/mcp-presets"; import { SCOUT_TOOL_PACKAGE_PINS } from "@corbits/scout-agent/definition"; import { diff --git a/workflows/assistant/src/index.ts b/workflows/assistant/src/index.ts index 65a55c41d..4f6c76782 100644 --- a/workflows/assistant/src/index.ts +++ b/workflows/assistant/src/index.ts @@ -48,10 +48,10 @@ export const ASSISTANT_TOOL_PACKAGE_PINS: readonly ToolPackagePin[] = [ { name: "@corbits/capability-tools", version: "0.0.5" }, { name: "@corbits/routines-tools", version: "0.0.10" }, { name: "@corbits/agent-directory-tools", version: "0.0.6" }, - { name: "@corbits/connections-tools", version: "0.0.6" }, + { name: "@corbits/connections-tools", version: "0.0.7" }, { name: "@corbits/catalog-tools", version: "0.0.2" }, { name: "@corbits/skills-tools", version: "0.0.6" }, - { name: "@corbits/mcp-tools", version: "0.0.10" }, + { name: "@corbits/mcp-tools", version: "0.0.11" }, { name: "@corbits/interaction-tools", version: "0.0.4" }, { name: "@corbits/manus-tools", version: "0.0.11" }, { name: "@corbits/workflow-authoring-tools", version: "0.0.4" }, diff --git a/workflows/attio-task-agent/src/index.ts b/workflows/attio-task-agent/src/index.ts index 65232e88c..5f0ce8d09 100644 --- a/workflows/attio-task-agent/src/index.ts +++ b/workflows/attio-task-agent/src/index.ts @@ -90,7 +90,7 @@ export const ATTIO_TASK_AGENT_SYSTEM_PROMPT = buildAttioTaskAgentSystemPrompt({ * deploy of this package itself. */ export const ATTIO_TASK_AGENT_TOOL_PACKAGE_PINS: readonly ToolPackagePin[] = [ - { name: "@corbits/mcp-tools", version: "0.0.10" }, + { name: "@corbits/mcp-tools", version: "0.0.11" }, ]; /** diff --git a/workflows/attio-task-agent/test/definition.test.ts b/workflows/attio-task-agent/test/definition.test.ts index b23076310..d20fef65b 100644 --- a/workflows/attio-task-agent/test/definition.test.ts +++ b/workflows/attio-task-agent/test/definition.test.ts @@ -70,7 +70,7 @@ test("one MCP pin covers the CRM, past calls, and the web — the OG needed thre const agent = workStep(buildAttioTaskAgentWorkflow(INPUT)).agent; expect(agent.toolPackagePins).toEqual(ATTIO_TASK_AGENT_TOOL_PACKAGE_PINS); expect(ATTIO_TASK_AGENT_TOOL_PACKAGE_PINS).toEqual([ - { name: "@corbits/mcp-tools", version: "0.0.10" }, + { name: "@corbits/mcp-tools", version: "0.0.11" }, ]); }); diff --git a/workflows/code-review/src/index.ts b/workflows/code-review/src/index.ts index 77df3f416..1399bda42 100644 --- a/workflows/code-review/src/index.ts +++ b/workflows/code-review/src/index.ts @@ -43,7 +43,7 @@ export const CODE_REVIEW_STEP_ID = "code-review"; /** The tool packages this definition pins: GitHub reach, nothing else. */ export const CODE_REVIEW_TOOL_PACKAGE_PINS: readonly ToolPackagePin[] = [ - { name: "@corbits/github-tools", version: "0.0.9" }, + { name: "@corbits/github-tools", version: "0.0.10" }, ]; /** Binds the pinned package's "github" handle to the tenant's connection. */ diff --git a/workflows/exa-topic-watch/src/index.ts b/workflows/exa-topic-watch/src/index.ts index 49cf7e033..bba7a8e6c 100644 --- a/workflows/exa-topic-watch/src/index.ts +++ b/workflows/exa-topic-watch/src/index.ts @@ -110,7 +110,7 @@ export const EXA_TOPIC_WATCH_SYSTEM_PROMPT = [ * travels with the deploy of this package itself. */ export const EXA_TOPIC_WATCH_TOOL_PACKAGE_PINS: readonly ToolPackagePin[] = [ - { name: "@corbits/mcp-tools", version: "0.0.10" }, + { name: "@corbits/mcp-tools", version: "0.0.11" }, ]; /** diff --git a/workflows/exa-topic-watch/test/definition.test.ts b/workflows/exa-topic-watch/test/definition.test.ts index cf2436870..fa9e3c9c2 100644 --- a/workflows/exa-topic-watch/test/definition.test.ts +++ b/workflows/exa-topic-watch/test/definition.test.ts @@ -71,7 +71,7 @@ test("the step pins the MCP tools bundle, the one package a deploy here can reso const agent = digestStep(buildExaTopicWatchWorkflow(INPUT)).agent; expect(agent.toolPackagePins).toEqual(EXA_TOPIC_WATCH_TOOL_PACKAGE_PINS); expect(EXA_TOPIC_WATCH_TOOL_PACKAGE_PINS).toEqual([ - { name: "@corbits/mcp-tools", version: "0.0.10" }, + { name: "@corbits/mcp-tools", version: "0.0.11" }, ]); }); diff --git a/workflows/last-30-days-research/src/index.ts b/workflows/last-30-days-research/src/index.ts index c965de2cf..e10b2db64 100644 --- a/workflows/last-30-days-research/src/index.ts +++ b/workflows/last-30-days-research/src/index.ts @@ -145,7 +145,7 @@ export const LAST_30_DAYS_RESEARCH_PENDING_SOURCES = [ export const LAST_30_DAYS_RESEARCH_TOOL_PACKAGE_PINS: readonly ToolPackagePin[] = [ { name: "@corbits/web-search-tools", version: "0.0.3" }, - { name: "@corbits/github-tools", version: "0.0.9" }, + { name: "@corbits/github-tools", version: "0.0.10" }, ]; const SYSTEM_PROMPT = [ diff --git a/workflows/last-30-days-research/test/definition.test.ts b/workflows/last-30-days-research/test/definition.test.ts index 38be28cc1..d8997ea31 100644 --- a/workflows/last-30-days-research/test/definition.test.ts +++ b/workflows/last-30-days-research/test/definition.test.ts @@ -58,7 +58,7 @@ test("the step carries an explicit per-turn timeout, no inline tools, and the tw expect(only.agent.capabilities).toEqual([]); expect(LAST_30_DAYS_RESEARCH_TOOL_PACKAGE_PINS).toEqual([ { name: "@corbits/web-search-tools", version: "0.0.3" }, - { name: "@corbits/github-tools", version: "0.0.9" }, + { name: "@corbits/github-tools", version: "0.0.10" }, ]); expect(only.agent.toolPackagePins).toEqual( LAST_30_DAYS_RESEARCH_TOOL_PACKAGE_PINS,