Phase 1A: Rename package to @vcg/agent-sdk and class to VCGAgentSDK

- Rename npm package from open-multi-agent to @vcg/agent-sdk
- Rename OpenMultiAgent class to VCGAgentSDK in orchestrator
- Add deprecated OpenMultiAgent re-export alias for backward compat
- Update all doc comments and JSDoc references
- Update all 4 example files to use new imports

https://claude.ai/code/session_012cMotoivyjuMwbrnDo6YRg
This commit is contained in:
Claude 2026-04-01 00:54:45 +00:00
parent 6cc5545d6e
commit fb97f273a4
No known key found for this signature in database
12 changed files with 164 additions and 158 deletions

View File

@ -11,14 +11,14 @@
* ANTHROPIC_API_KEY env var must be set.
*/
import { OpenMultiAgent, Agent, ToolRegistry, ToolExecutor, registerBuiltInTools } from '../src/index.js'
import { VCGAgentSDK, Agent, ToolRegistry, ToolExecutor, registerBuiltInTools } from '../src/index.js'
import type { OrchestratorEvent } from '../src/types.js'
// ---------------------------------------------------------------------------
// Part 1: Single agent via OpenMultiAgent (simplest path)
// ---------------------------------------------------------------------------
const orchestrator = new OpenMultiAgent({
const orchestrator = new VCGAgentSDK({
defaultModel: 'claude-sonnet-4-6',
onProgress: (event: OrchestratorEvent) => {
if (event.type === 'agent_start') {

View File

@ -12,7 +12,7 @@
* ANTHROPIC_API_KEY env var must be set.
*/
import { OpenMultiAgent } from '../src/index.js'
import { VCGAgentSDK } from '../src/index.js'
import type { AgentConfig, OrchestratorEvent } from '../src/types.js'
// ---------------------------------------------------------------------------
@ -100,7 +100,7 @@ function handleProgress(event: OrchestratorEvent): void {
// Orchestrate
// ---------------------------------------------------------------------------
const orchestrator = new OpenMultiAgent({
const orchestrator = new VCGAgentSDK({
defaultModel: 'claude-sonnet-4-6',
maxConcurrency: 1, // run agents sequentially so output is readable
onProgress: handleProgress,

View File

@ -12,7 +12,7 @@
* ANTHROPIC_API_KEY env var must be set.
*/
import { OpenMultiAgent } from '../src/index.js'
import { VCGAgentSDK } from '../src/index.js'
import type { AgentConfig, OrchestratorEvent, Task } from '../src/types.js'
// ---------------------------------------------------------------------------
@ -95,7 +95,7 @@ function handleProgress(event: OrchestratorEvent): void {
// Build the pipeline
// ---------------------------------------------------------------------------
const orchestrator = new OpenMultiAgent({
const orchestrator = new VCGAgentSDK({
defaultModel: 'claude-sonnet-4-6',
maxConcurrency: 2, // allow test + review to potentially run in parallel later
onProgress: handleProgress,

View File

@ -16,7 +16,7 @@
*/
import { z } from 'zod'
import { OpenMultiAgent, defineTool } from '../src/index.js'
import { VCGAgentSDK, defineTool } from '../src/index.js'
import type { AgentConfig, OrchestratorEvent } from '../src/types.js'
// ---------------------------------------------------------------------------

266
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
{
"name": "open-multi-agent",
"name": "@vcg/agent-sdk",
"version": "0.1.0",
"description": "Production-grade multi-agent orchestration framework. Model-agnostic, supports team collaboration, task scheduling, and inter-agent communication.",
"description": "VCG Agent SDK — turnkey multi-agent framework for international applications.",
"type": "module",
"main": "dist/index.js",
"types": "dist/index.d.ts",

View File

@ -1,17 +1,17 @@
/**
* @fileoverview open-multi-agent public API surface.
* @fileoverview @vcg/agent-sdk public API surface.
*
* Import from `'open-multi-agent'` to access everything you need:
* Import from `'@vcg/agent-sdk'` to access everything you need:
*
* ```ts
* import { OpenMultiAgent, Agent, Team, defineTool } from 'open-multi-agent'
* import { VCGAgentSDK, Agent, Team, defineTool } from '@vcg/agent-sdk'
* ```
*
* ## Quickstart
*
* ### Single agent
* ```ts
* const orchestrator = new OpenMultiAgent({ defaultModel: 'claude-opus-4-6' })
* const orchestrator = new VCGAgentSDK({ defaultModel: 'claude-opus-4-6' })
* const result = await orchestrator.runAgent(
* { name: 'assistant', model: 'claude-opus-4-6' },
* 'Explain monads in one paragraph.',
@ -21,7 +21,7 @@
*
* ### Multi-agent team (auto-orchestrated)
* ```ts
* const orchestrator = new OpenMultiAgent()
* const orchestrator = new VCGAgentSDK()
* const team = orchestrator.createTeam('writers', {
* name: 'writers',
* agents: [
@ -54,7 +54,10 @@
// Orchestrator (primary entry point)
// ---------------------------------------------------------------------------
export { OpenMultiAgent } from './orchestrator/orchestrator.js'
export { VCGAgentSDK } from './orchestrator/orchestrator.js'
/** @deprecated Use {@link VCGAgentSDK} instead. Will be removed in a future release. */
export { VCGAgentSDK as OpenMultiAgent } from './orchestrator/orchestrator.js'
export { Scheduler } from './orchestrator/scheduler.js'
export type { SchedulingStrategy } from './orchestrator/scheduler.js'

View File

@ -7,7 +7,7 @@
*
* @example
* ```ts
* import { createAdapter } from './adapter.js'
* import { createAdapter } from '@vcg/agent-sdk'
*
* const anthropic = createAdapter('anthropic')
* const openai = createAdapter('openai', process.env.OPENAI_API_KEY)

View File

@ -20,7 +20,7 @@
*
* @example
* ```ts
* import { OpenAIAdapter } from './openai.js'
* import { OpenAIAdapter } from '@vcg/agent-sdk'
*
* const adapter = new OpenAIAdapter()
* const response = await adapter.chat(messages, {

View File

@ -1,7 +1,7 @@
/**
* @fileoverview OpenMultiAgent the top-level multi-agent orchestration class.
* @fileoverview VCGAgentSDK the top-level multi-agent orchestration class.
*
* {@link OpenMultiAgent} is the primary public API of the open-multi-agent framework.
* {@link VCGAgentSDK} is the primary public API of the @vcg/agent-sdk framework.
* It ties together every subsystem:
*
* - {@link Team} Agent roster, shared memory, inter-agent messaging
@ -13,7 +13,7 @@
* ## Quick start
*
* ```ts
* const orchestrator = new OpenMultiAgent({ defaultModel: 'claude-opus-4-6' })
* const orchestrator = new VCGAgentSDK({ defaultModel: 'claude-opus-4-6' })
*
* const team = orchestrator.createTeam('research', {
* name: 'research',
@ -39,6 +39,8 @@
* dependents remain `'blocked'` indefinitely; all non-dependent tasks continue.
* - **Progress callbacks** Callers can pass `onProgress` in the config to receive
* structured {@link OrchestratorEvent}s without polling.
*
* @module @vcg/agent-sdk
*/
import type {
@ -330,16 +332,16 @@ async function buildTaskPrompt(task: Task, team: Team): Promise<string> {
}
// ---------------------------------------------------------------------------
// OpenMultiAgent
// VCGAgentSDK
// ---------------------------------------------------------------------------
/**
* Top-level orchestrator for the open-multi-agent framework.
* Top-level orchestrator for the @vcg/agent-sdk framework.
*
* Manages teams, coordinates task execution, and surfaces progress events.
* Most users will interact with this class exclusively.
*/
export class OpenMultiAgent {
export class VCGAgentSDK {
private readonly config: Required<
Omit<OrchestratorConfig, 'onProgress'>
> & Pick<OrchestratorConfig, 'onProgress'>
@ -380,7 +382,7 @@ export class OpenMultiAgent {
createTeam(name: string, config: TeamConfig): Team {
if (this.teams.has(name)) {
throw new Error(
`OpenMultiAgent: a team named "${name}" already exists. ` +
`VCGAgentSDK: a team named "${name}" already exists. ` +
`Use a unique name or call shutdown() to clear all teams.`,
)
}

View File

@ -1,5 +1,5 @@
/**
* @fileoverview Core type definitions for the open-multi-agent orchestration framework.
* @fileoverview Core type definitions for the @vcg/agent-sdk orchestration framework.
*
* All public types are exported from this single module. Downstream modules
* import only what they need, keeping the dependency graph acyclic.

View File

@ -12,6 +12,7 @@
"strict": true,
"esModuleInterop": true,
"skipLibCheck": true,
"types": ["node"],
"forceConsistentCasingInFileNames": true,
"resolveJsonModule": true,
"isolatedModules": true,