{"_id":"@agent-workspace/agent","_rev":"4-9d68ca6980f7ca66469161e177cb5685","name":"@agent-workspace/agent","dist-tags":{"latest":"0.9.0"},"versions":{"0.7.0":{"name":"@agent-workspace/agent","version":"0.7.0","keywords":["awp","agent","workspace","protocol","experiment","simulation","openai","anthropic","llm"],"license":"Apache-2.0","_id":"@agent-workspace/agent@0.7.0","maintainers":[{"name":"marcoloco23","email":"marcsperzel1@googlemail.com"}],"homepage":"https://github.com/marcoloco23/awp#readme","bugs":{"url":"https://github.com/marcoloco23/awp/issues"},"dist":{"shasum":"b139cf948d9f3694ccb9305fc993ea40ce36ad6a","tarball":"https://registry.npmjs.org/@agent-workspace/agent/-/agent-0.7.0.tgz","fileCount":38,"integrity":"sha512-F8iU3vrgKwXeoCiCQJ+02EFiAsQzs9HQXM0kAUH5xwg7lBNkieY/tQKsXAO7mzTgUtPmPFPQsv1xTGjMz0YMqQ==","signatures":[{"sig":"MEQCIA8L15CKyfJhtSxUp0u/Qm8SK6kJjImjLuS7+5G/QQTzAiBzxFrSnRZmxbWkhCOEd72vMCkB9WNTF8Rb5HLQsW9nVw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":152653},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"d90e23f32d9d313aa1cbaf381757fb8b40bae04c","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"marcoloco23","email":"marcsperzel1@googlemail.com"},"repository":{"url":"git+https://github.com/marcoloco23/awp.git","type":"git","directory":"packages/awp-agent"},"_npmVersion":"11.4.2","description":"Agent runtime for AWP experiments — framework-agnostic adapter pattern with OpenAI and Anthropic implementations","directories":{},"_nodeVersion":"22.14.0","dependencies":{"openai":"^4.77.0","gray-matter":"^4.0.3","@anthropic-ai/sdk":"^0.35.0","@agent-workspace/core":"0.7.0","@agent-workspace/utils":"0.7.0"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/agent_0.7.0_1769851840732_0.8131566659180467","host":"s3://npm-registry-packages-npm-production"}},"0.8.2":{"name":"@agent-workspace/agent","version":"0.8.2","keywords":["awp","agent","workspace","protocol","experiment","simulation","openai","anthropic","llm"],"license":"Apache-2.0","_id":"@agent-workspace/agent@0.8.2","maintainers":[{"name":"marcoloco23","email":"marcsperzel1@googlemail.com"}],"homepage":"https://github.com/marcoloco23/awp#readme","bugs":{"url":"https://github.com/marcoloco23/awp/issues"},"dist":{"shasum":"5cc5a8d3271e8ec22cb58675c6fa727e1145e840","tarball":"https://registry.npmjs.org/@agent-workspace/agent/-/agent-0.8.2.tgz","fileCount":46,"integrity":"sha512-txjzBwyb26A9jxULjCJ5wyDlhN6UEsJHmIzO3/dTMhEBOTT+b8s8E+4agFy9Ppytto2sTV+qgtnf5+A5EUpZwg==","signatures":[{"sig":"MEUCIBlesivewO0fPj4o/SlzgY3xAoWdTjuKAeMY9WCUqSuuAiEAwsoPgQhHSDKojOeFNxkmxw6LhSe9EXfg06IA9tVjjpk=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":198841},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"bdcfa1c95c1fb44ac41f84b30d97717ed5706a0d","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"marcoloco23","email":"marcsperzel1@googlemail.com"},"repository":{"url":"git+https://github.com/marcoloco23/awp.git","type":"git","directory":"packages/awp-agent"},"_npmVersion":"11.4.2","description":"Agent runtime for AWP experiments — framework-agnostic adapter pattern with OpenAI and Anthropic implementations","directories":{},"_nodeVersion":"22.14.0","dependencies":{"openai":"^4.77.0","gray-matter":"^4.0.3","@anthropic-ai/sdk":"^0.35.0","@agent-workspace/core":"0.8.2","@agent-workspace/utils":"0.8.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/agent_0.8.2_1769860960943_0.7121145789579078","host":"s3://npm-registry-packages-npm-production"}},"0.8.3":{"name":"@agent-workspace/agent","version":"0.8.3","keywords":["awp","agent","workspace","protocol","experiment","simulation","openai","anthropic","llm"],"license":"Apache-2.0","_id":"@agent-workspace/agent@0.8.3","maintainers":[{"name":"marcoloco23","email":"marcsperzel1@googlemail.com"}],"homepage":"https://github.com/marcoloco23/awp#readme","bugs":{"url":"https://github.com/marcoloco23/awp/issues"},"dist":{"shasum":"93ba5f88b99a81b721040dd341f9ddc9cbcca85b","tarball":"https://registry.npmjs.org/@agent-workspace/agent/-/agent-0.8.3.tgz","fileCount":46,"integrity":"sha512-YAYW8K35rXiHPemtDuDBbU9RoKlruCKod1S9cNNCSOoRayDA3PZXAjbwxn/UKdXeaKKJobzf3ypgJO3KrvfXLw==","signatures":[{"sig":"MEUCIQDe9VRRdX15HSFBrAMVEuMZf7NXDag+J2LuqqW8wuLRDgIgetHArrhkZMaiZRGcUD7XzNYJA1YWZXb72NxE0GnW7wM=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":198841},"main":"dist/index.js","type":"module","types":"dist/index.d.ts","engines":{"node":">=18"},"exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"gitHead":"dcf0cbcdcfcd55df864fbe60628776fbda20a406","scripts":{"dev":"tsc --watch","lint":"eslint src/","test":"vitest run","build":"tsc","typecheck":"tsc --noEmit","test:watch":"vitest","prepublishOnly":"npm run build"},"_npmUser":{"name":"marcoloco23","email":"marcsperzel1@googlemail.com"},"repository":{"url":"git+https://github.com/marcoloco23/awp.git","type":"git","directory":"packages/awp-agent"},"_npmVersion":"11.4.2","description":"Agent runtime for AWP experiments — framework-agnostic adapter pattern with OpenAI and Anthropic implementations","directories":{},"_nodeVersion":"22.14.0","dependencies":{"openai":"^4.77.0","gray-matter":"^4.0.3","@anthropic-ai/sdk":"^0.35.0","@agent-workspace/core":"0.8.2","@agent-workspace/utils":"0.8.2"},"_hasShrinkwrap":false,"devDependencies":{"typescript":"^5.7.0","@types/node":"^22.0.0"},"_npmOperationalInternal":{"tmp":"tmp/agent_0.8.3_1769871086321_0.6759090318799954","host":"s3://npm-registry-packages-npm-production"}},"0.9.0":{"name":"@agent-workspace/agent","version":"0.9.0","description":"Agent runtime for AWP experiments — framework-agnostic adapter pattern with OpenAI and Anthropic implementations","license":"Apache-2.0","type":"module","main":"dist/index.js","types":"dist/index.d.ts","exports":{".":{"types":"./dist/index.d.ts","default":"./dist/index.js"}},"repository":{"type":"git","url":"git+https://github.com/marcoloco23/awp.git","directory":"packages/awp-agent"},"homepage":"https://github.com/marcoloco23/awp#readme","keywords":["awp","agent","workspace","protocol","experiment","simulation","openai","anthropic","llm"],"engines":{"node":">=18"},"scripts":{"build":"tsc","dev":"tsc --watch","lint":"eslint src/","test":"vitest run","test:watch":"vitest","typecheck":"tsc --noEmit","prepublishOnly":"npm run build"},"dependencies":{"@agent-workspace/core":"*","@agent-workspace/utils":"*","@anthropic-ai/sdk":"^0.35.0","gray-matter":"^4.0.3","openai":"^4.77.0"},"devDependencies":{"@types/node":"^22.0.0","typescript":"^5.7.0"},"_id":"@agent-workspace/agent@0.9.0","gitHead":"e90f6c73b1f90d03a5a30f00b1a16875821c4248","bugs":{"url":"https://github.com/marcoloco23/awp/issues"},"_nodeVersion":"22.14.0","_npmVersion":"11.4.2","dist":{"integrity":"sha512-lsfrHWEX/vUBQgyNtqLns+wJG/eZwkJ18hn2sXjCSe2cHwUxMIFoilNCUv9qt7qv6W5A3+FjiD4tDSI0cXgYtw==","shasum":"f127462c4bcb00f6ba2f79e552d3e0b465f71594","tarball":"https://registry.npmjs.org/@agent-workspace/agent/-/agent-0.9.0.tgz","fileCount":46,"unpackedSize":198833,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEYCIQCNFnv5UeeDwgQUG+6jLTTVxGxgvTa7t604XwkeSPdMCwIhALJrsG2k9fxT/BY3pxPwATeZs0HhdTPOi9VfCd/zNsd1"}]},"_npmUser":{"name":"marcoloco23","email":"marcsperzel1@googlemail.com"},"directories":{},"maintainers":[{"name":"marcoloco23","email":"marcsperzel1@googlemail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/agent_0.9.0_1769890291736_0.8787196030025339"},"_hasShrinkwrap":false}},"time":{"created":"2026-01-31T09:30:40.607Z","modified":"2026-01-31T20:11:32.034Z","0.7.0":"2026-01-31T09:30:40.882Z","0.8.2":"2026-01-31T12:02:41.074Z","0.8.3":"2026-01-31T14:51:26.489Z","0.9.0":"2026-01-31T20:11:31.898Z"},"bugs":{"url":"https://github.com/marcoloco23/awp/issues"},"license":"Apache-2.0","homepage":"https://github.com/marcoloco23/awp#readme","keywords":["awp","agent","workspace","protocol","experiment","simulation","openai","anthropic","llm"],"repository":{"type":"git","url":"git+https://github.com/marcoloco23/awp.git","directory":"packages/awp-agent"},"description":"Agent runtime for AWP experiments — framework-agnostic adapter pattern with OpenAI and Anthropic implementations","maintainers":[{"name":"marcoloco23","email":"marcsperzel1@googlemail.com"}],"readme":"# @agent-workspace/agent\n\nAgent runtime for AWP experiments — a framework-agnostic adapter pattern with OpenAI and Anthropic implementations.\n\n## Overview\n\nThis package provides the agent runtime infrastructure for running AWP experiments. It uses an adapter pattern that allows different LLM backends (OpenAI, Anthropic, or custom) to be swapped while maintaining the same experiment orchestration logic.\n\n## Quick Start\n\n```bash\n# Install\nnpm install @agent-workspace/agent\n\n# Set API key\nexport OPENAI_API_KEY=sk-xxx\n# Or for Anthropic:\nexport ANTHROPIC_API_KEY=sk-ant-xxx\n```\n\n```typescript\nimport { \n  OpenAIAgent, \n  AnthropicAgent,\n  ExperimentOrchestrator, \n  SocietyManager,\n  MetricsCollector,\n  parseManifesto \n} from '@agent-workspace/agent';\n\n// Parse manifesto\nconst manifesto = await parseManifesto('./MANIFESTO.md');\n\n// Create society\nconst manager = new SocietyManager('./societies');\nconst society = await manager.createSociety('test-001', manifesto.id, 3);\n\n// Create agents\nconst agents = society.agents.map((workspace, i) => \n  new OpenAIAgent(`agent-${i + 1}`, workspace, 'gpt-4o-mini')\n);\n\n// Initialize agents\nfor (const agent of agents) {\n  await agent.getIdentity();\n}\n\n// Run experiment\nconst metrics = new MetricsCollector();\nconst orchestrator = new ExperimentOrchestrator(manifesto, agents, metrics, society);\nconst results = await orchestrator.runExperiment(5); // 5 cycles\n\nconsole.log(`Success rate: ${(results.aggregateMetrics.overallSuccessRate * 100).toFixed(1)}%`);\n```\n\n## Architecture\n\n```\n┌─────────────────────────────────────────────────────────────┐\n│                    Experiment Orchestrator                   │\n│         (creates contracts, runs cycles, collects metrics)  │\n└─────────────────────────┬───────────────────────────────────┘\n                          │\n          ┌───────────────┼───────────────┐\n          ▼               ▼               ▼\n    ┌───────────┐   ┌───────────┐   ┌───────────┐\n    │  OpenAI   │   │ Anthropic │   │  Custom   │\n    │   Agent   │   │   Agent   │   │  (yours)  │\n    └─────┬─────┘   └─────┬─────┘   └─────┬─────┘\n          │               │               │\n          └───────────────┼───────────────┘\n                          ▼\n                ┌───────────────────┐\n                │   AWP Tools       │\n                │   (7 operations)  │\n                └───────────────────┘\n```\n\n## Agent Implementations\n\n### OpenAIAgent\n\nUses OpenAI's function calling with models like `gpt-4o-mini`, `gpt-4o`, etc.\n\n```typescript\nimport { OpenAIAgent } from '@agent-workspace/agent';\n\nconst agent = new OpenAIAgent(\n  'agent-01',           // id\n  './workspace',        // workspace path\n  'gpt-4o-mini',        // model (optional)\n  process.env.OPENAI_API_KEY // apiKey (optional)\n);\n```\n\n### AnthropicAgent\n\nUses Anthropic's tool_use with models like `claude-sonnet-4-20250514`, `claude-3-haiku`, etc.\n\n```typescript\nimport { AnthropicAgent } from '@agent-workspace/agent';\n\nconst agent = new AnthropicAgent(\n  'agent-01',           // id\n  './workspace',        // workspace path\n  'claude-sonnet-4-20250514', // model (optional)\n  process.env.ANTHROPIC_API_KEY // apiKey (optional)\n);\n```\n\n### Custom Agents\n\nImplement the `AgentAdapter` interface or extend `BaseAgent`:\n\n```typescript\nimport { BaseAgent, AgentTask, TaskResult } from '@agent-workspace/agent';\n\nclass MyCustomAgent extends BaseAgent {\n  async executeTask(task: AgentTask): Promise<TaskResult> {\n    const systemPrompt = await this.buildSystemPrompt(task);\n    // ... your LLM integration\n  }\n}\n```\n\nSee [AGENT_ADAPTER.md](./AGENT_ADAPTER.md) for full documentation.\n\n## Core Interfaces\n\n### AgentAdapter\n\n```typescript\ninterface AgentAdapter {\n  readonly id: string;\n  readonly workspace: string;\n  readonly did: string;\n  \n  executeTask(task: AgentTask): Promise<TaskResult>;\n  getReputation(): Promise<AgentReputation>;\n  getIdentity(): Promise<{ name: string; did: string; role?: string }>;\n}\n```\n\n### AgentTask\n\n```typescript\ninterface AgentTask {\n  contractId: string;\n  description: string;\n  tools: ToolDefinition[];\n  timeout?: number;\n  outputFormat?: string;\n  outputSlug?: string;\n}\n```\n\n### TaskResult\n\n```typescript\ninterface TaskResult {\n  success: boolean;\n  output?: string;\n  toolCalls: ToolCall[];\n  tokens: { input: number; output: number };\n  durationMs: number;\n  error?: string;\n  rawResponse?: string;\n}\n```\n\n## Available Tools\n\nAgents have access to 7 AWP operations:\n\n| Tool | Description |\n|------|-------------|\n| `awp_artifact_read` | Read a knowledge artifact |\n| `awp_artifact_write` | Write/update an artifact |\n| `awp_artifact_list` | List all artifacts |\n| `awp_contract_accept` | Accept a delegation contract |\n| `awp_contract_complete` | Mark contract complete |\n| `awp_reputation_query` | Query agent reputation |\n| `task_complete` | Signal task completion |\n\n## CLI Integration\n\nThe `awp` CLI provides experiment commands:\n\n```bash\n# Create a society\nawp experiment society create --manifesto MANIFESTO.md --agents 3\n\n# Run experiment with OpenAI (default)\nawp experiment run -s <society-id> -c 5 -m MANIFESTO.md\n\n# Run with Anthropic\nawp experiment run -s <society-id> -c 5 -m MANIFESTO.md --provider anthropic\n\n# List societies\nawp experiment list\n\n# Show results\nawp experiment show <society-id>\n```\n\n## Environment Variables\n\n| Variable | Description | Required For |\n|----------|-------------|--------------|\n| `OPENAI_API_KEY` | OpenAI API key | OpenAIAgent |\n| `ANTHROPIC_API_KEY` | Anthropic API key | AnthropicAgent |\n\n## Exports\n\n```typescript\n// Types\nexport * from './types';\n\n// Base class\nexport { BaseAgent, MAX_ITERATIONS, DEFAULT_TIMEOUT_MS } from './base-agent';\n\n// Agent implementations\nexport { OpenAIAgent } from './openai-agent';\nexport { AnthropicAgent } from './anthropic-agent';\n\n// Tools\nexport { AWP_TOOLS, executeToolCall } from './tools';\n\n// Orchestration\nexport { ExperimentOrchestrator } from './orchestrator';\nexport { MetricsCollector } from './metrics';\nexport { SocietyManager, parseManifesto } from './society';\n```\n\n## License\n\nApache-2.0\n","readmeFilename":"README.md"}