diff --git a/examples/openclaw-routing.ts b/examples/openclaw-routing.ts index 5dce377..5937960 100644 --- a/examples/openclaw-routing.ts +++ b/examples/openclaw-routing.ts @@ -1,4 +1,5 @@ -import { resolvePersona, type PersonaIntent } from '../packages/workload-router/src/index.js'; +import { resolvePersona } from '../packages/workload-router/src/index.js'; +import type { PersonaIntent } from '../packages/persona-kit/src/index.js'; type OpenClawSpawnPayload = { runtime: 'subagent' | 'acp'; diff --git a/packages/cli/src/launch-metadata.test.ts b/packages/cli/src/launch-metadata.test.ts index 9c007cd..3900c32 100644 --- a/packages/cli/src/launch-metadata.test.ts +++ b/packages/cli/src/launch-metadata.test.ts @@ -1,7 +1,7 @@ import test from 'node:test'; import assert from 'node:assert/strict'; -import type { PersonaSelection, PersonaSpec } from '@agentworkforce/workload-router'; +import type { PersonaSelection, PersonaSpec } from '@agentworkforce/persona-kit'; import { buildLaunchMetadata, canonicalJson, diff --git a/packages/cli/src/launch-metadata.ts b/packages/cli/src/launch-metadata.ts index 734e9bc..84ddc3e 100644 --- a/packages/cli/src/launch-metadata.ts +++ b/packages/cli/src/launch-metadata.ts @@ -2,7 +2,7 @@ import { createHash } from 'node:crypto'; import { homedir } from 'node:os'; import { join } from 'node:path'; -import type { Harness, PersonaSelection } from '@agentworkforce/workload-router'; +import type { Harness, PersonaSelection } from '@agentworkforce/persona-kit'; import * as launchMetadataBackendSdk from '@relayburn/sdk'; export const LAUNCH_METADATA_INTERVAL_MS = 1_000; diff --git a/packages/cli/src/local-personas.test.ts b/packages/cli/src/local-personas.test.ts index 5434511..55b79ab 100644 --- a/packages/cli/src/local-personas.test.ts +++ b/packages/cli/src/local-personas.test.ts @@ -10,7 +10,7 @@ import { loadPersonaSourceConfig, type LocalPersonaOverride } from './local-personas.js'; -import type { PersonaSpec } from '@agentworkforce/workload-router'; +import type { PersonaSpec } from '@agentworkforce/persona-kit'; type Dirs = { cwd: string; home: string; pwdDir: string; homeDir: string }; diff --git a/packages/harness-kit/src/runner.test.ts b/packages/harness-kit/src/runner.test.ts index 3b90562..0ba437a 100644 --- a/packages/harness-kit/src/runner.test.ts +++ b/packages/harness-kit/src/runner.test.ts @@ -4,7 +4,7 @@ import { chmodSync, existsSync, mkdtempSync, readFileSync, realpathSync, rmSync, import { tmpdir } from 'node:os'; import { join } from 'node:path'; -import type { PersonaSelection } from '@agentworkforce/workload-router'; +import type { PersonaSelection } from '@agentworkforce/persona-kit'; import { buildNonInteractiveSpec, useRunnableSelection diff --git a/packages/harness-kit/src/runner.ts b/packages/harness-kit/src/runner.ts index d8fd559..bd998f7 100644 --- a/packages/harness-kit/src/runner.ts +++ b/packages/harness-kit/src/runner.ts @@ -6,11 +6,6 @@ import { randomUUID } from 'node:crypto'; import { usePersona, useSelection, - type Harness, - type PersonaContext, - type PersonaIntent, - type PersonaSelection, - type PersonaTier, type RoutingProfile, type RoutingProfileId } from '@agentworkforce/workload-router'; @@ -22,7 +17,12 @@ import { resolveMcpServersLenient, resolvePersonaInputs, resolveStringMapLenient, - type BuildInteractiveSpecInput + type BuildInteractiveSpecInput, + type Harness, + type PersonaContext, + type PersonaIntent, + type PersonaSelection, + type PersonaTier } from '@agentworkforce/persona-kit'; export interface PersonaSendOptions { diff --git a/packages/persona-kit/src/interactive-spec.ts b/packages/persona-kit/src/interactive-spec.ts index 7f118ef..1f88405 100644 --- a/packages/persona-kit/src/interactive-spec.ts +++ b/packages/persona-kit/src/interactive-spec.ts @@ -64,7 +64,7 @@ export interface BuildInteractiveSpecInput { * Absolute paths of directories to load as Claude Code plugins for this * session (`--plugin-dir ` per entry). Used to wire in out-of-repo * skill stages produced by - * {@link import('@agentworkforce/workload-router').SkillMaterializationOptions.installRoot}. + * {@link SkillMaterializationOptions.installRoot}. * Claude-only: other harnesses emit a warning and ignore the field. */ pluginDirs?: readonly string[]; diff --git a/packages/workload-router/CHANGELOG.md b/packages/workload-router/CHANGELOG.md index 002b0c6..9946cfc 100644 --- a/packages/workload-router/CHANGELOG.md +++ b/packages/workload-router/CHANGELOG.md @@ -7,6 +7,22 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0 ## [Unreleased] +## [1.0.0] - 2026-05-11 + +### Changed (BREAKING) + +- Drop all persona-domain re-exports that used to be forwarded from + `@agentworkforce/persona-kit`. Consumers must now import persona constants, + types, and functions (e.g. `HARNESS_VALUES`, `PERSONA_TIERS`, + `PERSONA_TAGS`, `PERMISSION_MODES`, `Harness`, `PersonaSpec`, + `PersonaSelection`, `PersonaSkill`, `materializeSkills`, + `parsePersonaSpec`, …) directly from `@agentworkforce/persona-kit`. +- The remaining public surface is routing-only: `RoutingProfile`, + `RoutingProfileRule`, `RoutingProfileId`, `personaCatalog`, + `listBuiltInPersonas`, `routingProfiles`, `resolvePersona`, + `resolvePersonaByTier`, `usePersona`, `useSelection`, and the evidence / + owner-decision exports from `./eval`. + ## [0.19.0] - 2026-05-08 ### Changed diff --git a/packages/workload-router/package.json b/packages/workload-router/package.json index 3cea46f..451a4a5 100644 --- a/packages/workload-router/package.json +++ b/packages/workload-router/package.json @@ -1,6 +1,6 @@ { "name": "@agentworkforce/workload-router", - "version": "0.19.0", + "version": "1.0.0", "private": false, "type": "module", "main": "dist/index.js", diff --git a/packages/workload-router/src/eval.ts b/packages/workload-router/src/eval.ts index 65aa9fd..34d9b3d 100644 --- a/packages/workload-router/src/eval.ts +++ b/packages/workload-router/src/eval.ts @@ -1,4 +1,4 @@ -import type { PersonaIntent, PersonaTier } from './index.js'; +import type { PersonaIntent, PersonaTier } from '@agentworkforce/persona-kit'; export interface EvalCase { id: string; diff --git a/packages/workload-router/src/index.test.ts b/packages/workload-router/src/index.test.ts index f5921db..af456f5 100644 --- a/packages/workload-router/src/index.test.ts +++ b/packages/workload-router/src/index.test.ts @@ -2,15 +2,17 @@ import test from 'node:test'; import assert from 'node:assert/strict'; import { PERSONA_INTENTS, - listBuiltInPersonas, materializeSkillsFor, + type PersonaSelection +} from '@agentworkforce/persona-kit'; +import { + listBuiltInPersonas, personaCatalog, resolvePersona, resolvePersonaByTier, routingProfiles, usePersona, - useSelection, - type PersonaSelection + useSelection } from './index.js'; const prpmSkill = { diff --git a/packages/workload-router/src/index.ts b/packages/workload-router/src/index.ts index 3c8fa3e..acc4fca 100644 --- a/packages/workload-router/src/index.ts +++ b/packages/workload-router/src/index.ts @@ -24,64 +24,6 @@ import { import { personaImprover, personaMaker } from './generated/personas.js'; import defaultRoutingProfileJson from '../routing-profiles/default.json' with { type: 'json' }; -// --------------------------------------------------------------------------- -// Re-exports of persona-shape symbols moved into @agentworkforce/persona-kit. -// These keep workload-router's external surface stable while the canonical -// implementations live in persona-kit. Issues 5/8 and 6/8 will delete these -// re-exports and the consumers that still depend on them. -// --------------------------------------------------------------------------- - -export { - // Constants - BUILT_IN_PERSONA_INTENTS, - CODEX_APPROVAL_POLICIES, - CODEX_SANDBOX_MODES, - HARNESS_SKILL_TARGETS, - HARNESS_VALUES, - PERMISSION_MODES, - PERSONA_INTENTS, - PERSONA_TAGS, - PERSONA_TIERS, - SIDECAR_MD_MODES, - SKILL_SOURCE_KINDS, - // Skill materialization - materializeSkills, - materializeSkillsFor, - resolveSkillSource, - // Parsers + sidecar resolver - parsePersonaSpec, - parseSkills, - resolveSidecar -} from '@agentworkforce/persona-kit'; - -export type { - // Types - CodexApprovalPolicy, - CodexSandboxMode, - Harness, - HarnessSettings, - HarnessSkillTarget, - McpServerSpec, - PermissionMode, - PersonaContext, - PersonaInputSpec, - PersonaInstallContext, - PersonaIntent, - PersonaMount, - PersonaPermissions, - PersonaRuntime, - PersonaSelection, - PersonaSkill, - PersonaSpec, - PersonaTag, - PersonaTier, - SidecarMdMode, - SkillInstall, - SkillMaterializationOptions, - SkillMaterializationPlan, - SkillSourceKind -} from '@agentworkforce/persona-kit'; - // --------------------------------------------------------------------------- // Routing profile + built-in persona catalog (workload-router's own concern). // ---------------------------------------------------------------------------