{
  "interval": {
    "intervalStart": "2025-08-03T00:00:00.000Z",
    "intervalEnd": "2025-08-10T00:00:00.000Z",
    "intervalType": "week"
  },
  "repository": "elizaos/eliza",
  "overview": "From 2025-08-03 to 2025-08-10, elizaos/eliza had 27 new PRs (22 merged), 17 new issues, and 17 active contributors.",
  "topIssues": [
    {
      "id": "I_kwDOMT5cIs7ELgn4",
      "title": "Calling `startAgent` from CLI command start - hangs early when `@elizaos/plugin-bootstrap` is omitted & hangs later when it is included",
      "author": "monilpat",
      "number": 5719,
      "repository": "elizaos/eliza",
      "body": "**Describe the bug**\n\n`packages/cli/src/commands/start/actions/agent-start.ts` is exported and re-used in CLI commands with  \n\n```ts\nimport { startAgent } from '../commands/start';\n```\n\nWhen I call `startAgent` from `runtime-factory.ts` / `initializeAgent()`:\n\n```ts\nconst runtime = await startAgent(\n  encryptedCharacter(character),\n  server,\n  undefined,\n  [],                       // <-- intentionally no bootstrap plugin\n  { isTestMode: false }\n);\n```\n\ninitialization hangs almost immediately (before plugin dependency resolution).\n\nIf I add `@elizaos/plugin-bootstrap` back:\n\n```ts\nconst runtime = await startAgent(\n  encryptedCharacter(character),\n  server,\n  undefined,\n  ['@elizaos/plugin-bootstrap'],\n  { isTestMode: false }\n);\n```\n\ninitialization gets past early steps, loads **all** plugins, but then hangs right after the bootstrap plugin finishes loading.\n\n---\n\n**To Reproduce**\n\n1. Build the CLI (`cd packages/cli && bun x tsup`).\n2. From `packages/cli` run a scenario that relies on `initializeAgent`, e.g.:\n\n```bash\nbun run src/index.ts scenario run \\\n  src/commands/scenario/examples/e2b-test.scenario.yaml\n```\n\n3. Edit `runtime-factory.ts` ➜ `initializeAgent()` and comment the bootstrap plugin in the `character.plugins` array (lines 411-415).\n4. Re-run the same command – observe early hang.\n5. Re-enable the bootstrap plugin and re-run – observe later hang.\n\n---\n\n**Expected behavior**\n\n`startAgent` should finish initializing an agent regardless of whether `@elizaos/plugin-bootstrap` is present.  \nIf the bootstrap plugin is mandatory there should be a clear validation error, not a silent hang.\n\n---\n\n**Logs / Screenshots**\n\n<details>\n<summary>1️⃣ Hang without bootstrap plugin (early-stage)</summary>\n\n```\n[2025-08-04 02:47:47] INFO: [startAgent] Step 1 – Starting agent initialization\n[2025-08-04 02:47:47] INFO: [startAgent] Step 2 – Character ID set\n[2025-08-04 02:47:47] INFO: [startAgent] Step 3 – Checking character secrets\n[2025-08-04 02:47:47] INFO: [startAgent] Step 3c – Character already has secrets\n[2025-08-04 02:47:47] INFO: [startAgent] Step 4 – Initializing plugin loading\n[2025-08-04 02:47:47] INFO: [startAgent] Step 4a – SQL plugin loaded\n[2025-08-04 02:47:47] INFO: [startAgent] Step 4b – Character plugins: [\"@elizaos/plugin-e2b\",\"@elizaos/plugin-openai\"]\n... nothing further – process hangs here ...\n```\n</details>\n\n<details>\n<summary>2️⃣ Hang with bootstrap plugin (late-stage)</summary>\n\n```\n[2025-08-04 02:52:47] INFO: [loadAndPreparePlugin] Step 1 – Starting to load plugin: @elizaos/plugin-bootstrap\n[2025-08-04 02:52:47] SUCCESS: Successfully loaded plugin '@elizaos/plugin-bootstrap' using workspace dependency\n[2025-08-04 02:52:47] INFO: [loadAndPreparePlugin] Step 4e – Found valid plugin export\n[2025-08-04 02:52:47] INFO: [startAgent] Step 5d – Successfully loaded plugin: bootstrap\n... no further output – runtime hangs right after this point ...\n```\n</details>\n\n---\n\n**Additional context**\n\n* The call site is `packages/cli/src/scenarios/runtime-factory.ts` → `initializeAgent()`.\n* `startAgent` is imported with  \n  `import { startAgent } from '../commands/start';`\n* Hangs occur both in **local** and **E2B** scenarios.\n* Database migrations complete successfully; the hang happens after plugin loading.\n* Removing *all* plugins except SQL reproduces the *early* hang; adding any plugin that has bootstrap as a dep reproduces the *late* hang.\n* The same code path works in commit `510b8aac2e0b20cc3d176093a58143c26e838e65` (July 25 commit) but fails from `d84963ef3d5f5cccfef461350175dc1bc9b77b58` onward.\n\nPlease review my branch and the file for the associated changes. I review the plugin loading stack trace loadAndPreparePlugin -> loadPluginModule -> strategy.tryImport (which is where it hangs \n\n```\n */\nconst importStrategies: ImportStrategy[] = [\n  // Try local development first - this is the most important for plugin testing\n  {\n    name: 'local development plugin',\n    tryImport: async (repository: string) => {\n      const context = detectPluginContext(repository);\n\n      if (context.isLocalDevelopment) {\n        logger.debug(`Detected local development for plugin: ${repository}`);\n\n        // Ensure the plugin is built\n        const isBuilt = await ensurePluginBuilt(context);\n        if (!isBuilt) {\n          provideLocalPluginGuidance(repository, context);\n          return null;\n        }\n\n        // Try to load from built output\n        if (context.localPath && existsSync(context.localPath)) {\n          logger.info(`Loading local development plugin: ${repository}`);\n          return tryImporting(context.localPath, 'local development plugin', repository);\n        }\n\n        // This shouldn't happen if ensurePluginBuilt succeeded, but handle it gracefully\n        logger.warn(`Plugin built but output not found at expected path: ${context.localPath}`);\n        provideLocalPluginGuidance(repository, context);\n        return null;\n      }\n\n      return null;\n    },\n  },\n  // Try workspace dependencies (for monorepo packages)\n  {\n    name: 'workspace dependency',\n    tryImport: async (repository: string) => {\n      if (repository.startsWith('@elizaos/plugin-')) {\n        // Try to find the plugin in the workspace\n        const pluginName = repository.replace('@elizaos/', '');\n        const workspacePath = path.resolve(process.cwd(), '..', pluginName, 'dist', 'index.js');\n        if (existsSync(workspacePath)) {\n          return tryImporting(workspacePath, 'workspace dependency', repository);\n        }\n      }\n      return null;\n    },\n  },\n  {\n    name: 'direct path',\n    tryImport: async (repository: string) => tryImporting(repository, 'direct path', repository),\n  },\n  {\n    name: 'local node_modules',\n    tryImport: async (repository: string) =>\n      tryImporting(resolveNodeModulesPath(repository), 'local node_modules', repository),\n  },\n  {\n    name: 'global node_modules',\n    tryImport: async (repository: string) => {\n      const globalPath = path.resolve(getGlobalNodeModulesPath(), repository);\n      if (!existsSync(path.dirname(globalPath))) {\n        logger.debug(\n          `Global node_modules directory not found at ${path.dirname(globalPath)}, skipping for ${repository}`\n        );\n        return null;\n      }\n      return tryImporting(globalPath, 'global node_modules', repository);\n    },\n  },\n  {\n    name: 'package.json entry',\n    tryImport: async (repository: string) => {\n      const packageJson = await readPackageJson(repository);\n      if (!packageJson) return null;\n\n      const entryPoint = packageJson.module || packageJson.main || DEFAULT_ENTRY_POINT;\n      return tryImporting(\n        resolveNodeModulesPath(repository, entryPoint),\n        `package.json entry (${entryPoint})`,\n        repository\n      );\n    },\n  },\n  {\n    name: 'common dist pattern',\n    tryImport: async (repository: string) => {\n      const packageJson = await readPackageJson(repository);\n      if (packageJson?.main === DEFAULT_ENTRY_POINT) return null;\n\n      return tryImporting(\n        resolveNodeModulesPath(repository, DEFAULT_ENTRY_POINT),\n        'common dist pattern',\n        repository\n      );\n    },\n  },\n];\n``` in load-plugin.ts  BRANCH in question: https://github.com/elizaOS/eliza/blob/scenarios-cli/packages/cli/src/scenarios/runtime-factory.ts\n\n\nbut startAgent is in develop and is having issues when its being called. ",
      "createdAt": "2025-08-05T02:45:31Z",
      "closedAt": null,
      "state": "OPEN",
      "commentCount": 3
    },
    {
      "id": "I_kwDOMT5cIs7EwwuN",
      "title": "Eliza CLI failed to build project",
      "author": "Kemystra",
      "number": 5734,
      "repository": "elizaos/eliza",
      "body": "**Describe the bug**\n\nOn project creation, ElizaOS CLI fails with the following error:\n```\n◇  Failed to build project\nstdout: src/index.ts(7,25): error TS2345: Argument of type 'string' is not assignable to parameter of type 'undefined'.\nstderr: $ tsc --noEmit && vite build && tsup\n```\n\n**To Reproduce**\n\n- Install ElizaOS through `bun`\n```\nbun i -g @elizaos/cli\n```\n- Create new ElizaOS project\n```\nelizaos create abcde\n```\n\n**Expected behavior**\n\nProject built successfully\n\n**Screenshots**\n\n<img width=\"1095\" height=\"572\" alt=\"Image\" src=\"https://github.com/user-attachments/assets/967dd6a2-0d70-4e2e-8019-85a2eab5f225\" />\n\n**Additional context**\n\nElizaOS CLI version: `1.3.2`\n",
      "createdAt": "2025-08-07T16:14:00Z",
      "closedAt": null,
      "state": "OPEN",
      "commentCount": 2
    },
    {
      "id": "I_kwDOMT5cIs7Engk3",
      "title": "feat(scenarios): Implement conditional mocking and complex response structures",
      "author": "monilpat",
      "number": 5726,
      "repository": "elizaos/eliza",
      "body": "# feat(scenarios): Implement conditional mocking and complex response structures\n\n## Description\n\nThis ticket enhances the mocking system to support conditional responses based on input parameters and complex response structures with metadata. This enables realistic testing of service interactions like GitHub API calls or EVM transactions with proper request/response matching.\n\n## Acceptance Criteria\n\n1. Mock definitions support `when` clauses for conditional responses\n2. `when` clauses can match on method arguments, input parameters, or request context\n3. Mock responses support complex nested structures with metadata (timestamps, IDs, etc.)\n4. Multiple mock responses can be defined for the same service/method with different conditions\n5. Mock system provides clear logging of which mock was triggered and why\n6. Mock responses can include realistic error conditions and edge cases\n7. Support for dynamic response generation based on input parameters\n8. Mock validation ensures `when` clauses are syntactically correct\n\n## Technical Approach\n\n### 1. Enhanced Mock Schema\n```typescript\n// packages/cli/src/scenarios/schema.ts\nconst MockSchema = z.object({\n  service: z.string(),\n  method: z.string(),\n  when: z.object({\n    // Match on method arguments\n    args: z.array(z.any()).optional(),\n    // Match on specific argument values\n    input: z.record(z.any()).optional(),\n    // Match on request context\n    context: z.record(z.any()).optional(),\n    // Custom matching function\n    matcher: z.string().optional(), // JavaScript expression\n  }).optional(),\n  response: z.any(), // Can be function or static value\n  // For dynamic responses\n  responseFn: z.string().optional(), // JavaScript function\n  // Error simulation\n  error: z.object({\n    code: z.string(),\n    message: z.string(),\n  }).optional(),\n});\n```\n\n### 2. Mock Engine Implementation\n```typescript\n// packages/cli/src/scenarios/mock-engine.ts\nexport class MockEngine {\n  private mocks: MockDefinition[] = [];\n\n  addMock(mock: MockDefinition) {\n    this.mocks.push(mock);\n  }\n\n  async findMock(service: string, method: string, args: any[]): Promise<any> {\n    const candidates = this.mocks.filter(m => \n      m.service === service && m.method === method\n    );\n\n    for (const mock of candidates) {\n      if (await this.matchesCondition(mock, args)) {\n        this.logger.info(`Mock triggered: ${service}.${method} with condition: ${JSON.stringify(mock.when)}`);\n        return this.generateResponse(mock, args);\n      }\n    }\n\n    return null; // No mock found\n  }\n\n  private async matchesCondition(mock: MockDefinition, args: any[]): Promise<boolean> {\n    if (!mock.when) return true; // Default mock\n\n    // Match on arguments\n    if (mock.when.args) {\n      if (!this.deepEqual(args, mock.when.args)) return false;\n    }\n\n    // Match on input parameters\n    if (mock.when.input) {\n      const input = this.extractInputFromArgs(args);\n      if (!this.deepEqual(input, mock.when.input)) return false;\n    }\n\n    // Custom matcher function\n    if (mock.when.matcher) {\n      const matcherFn = new Function('args', 'input', mock.when.matcher);\n      return matcherFn(args, this.extractInputFromArgs(args));\n    }\n\n    return true;\n  }\n\n  private generateResponse(mock: MockDefinition, args: any[]): any {\n    if (mock.error) {\n      throw new Error(`${mock.error.code}: ${mock.error.message}`);\n    }\n\n    if (mock.responseFn) {\n      const responseFn = new Function('args', 'input', mock.responseFn);\n      return responseFn(args, this.extractInputFromArgs(args));\n    }\n\n    return mock.response;\n  }\n}\n```\n\n## Test Scenario\n\nCreate `advanced-mocking-test.scenario.yaml`:\n```yaml\nname: \"Advanced Mocking Test\"\ndescription: \"Tests conditional mocking and complex response structures\"\n\nplugins:\n  - \"@elizaos/plugin-github\"\n  - \"@elizaos/plugin-evm\"\n\nenvironment:\n  type: e2b\n\nsetup:\n  mocks:\n    # Conditional GitHub issue search\n    - service: \"github-service\"\n      method: \"searchIssues\"\n      when:\n        input:\n          labels: \"bug\"\n        matcher: \"input.labels.includes('bug')\"\n      response:\n        - title: \"Critical Bug Found\"\n          number: 456\n          state: \"open\"\n          labels: [\"bug\", \"critical\"]\n          created_at: \"2024-07-15T10:00:00Z\"\n\n    # Conditional GitHub issue search - different response\n    - service: \"github-service\"\n      method: \"searchIssues\"\n      when:\n        input:\n          labels: \"feature\"\n        matcher: \"input.labels.includes('feature')\"\n      response:\n        - title: \"New Feature Request\"\n          number: 789\n          state: \"open\"\n          labels: [\"feature\", \"enhancement\"]\n          created_at: \"2024-07-15T11:00:00Z\"\n\n    # Dynamic EVM balance response\n    - service: \"evm-service\"\n      method: \"getBalancesForAddress\"\n      when:\n        args: [\"0x1234567890abcdef\"]\n      responseFn: |\n        return {\n          chain: \"ethereum\",\n          address: args[0],\n          balances: [\n            { symbol: \"ETH\", amount: \"1.23\" },\n            { symbol: \"USDC\", amount: \"1000.00\" }\n          ],\n          last_updated: new Date().toISOString()\n        }\n\n    # Error simulation\n    - service: \"github-service\"\n      method: \"readFile\"\n      when:\n        input:\n          path: \"/docs/nonexistent.md\"\n      error:\n        code: \"FILE_NOT_FOUND\"\n        message: \"File does not exist\"\n\nrun:\n  - name: \"Test conditional GitHub search\"\n    input: \"Search for issues with bug label\"\n    evaluations:\n      - type: \"trajectory_contains_action\"\n        action: \"github-service.searchIssues\"\n      - type: \"string_contains\"\n        value: \"Critical Bug Found\"\n      - type: \"llm_judge\"\n        prompt: \"Did the agent correctly search for bug issues?\"\n        expected: \"yes\"\n\n  - name: \"Test dynamic EVM response\"\n    input: \"What's the balance for address 0x1234567890abcdef?\"\n    evaluations:\n      - type: \"trajectory_contains_action\"\n        action: \"evm-service.getBalancesForAddress\"\n      - type: \"string_contains\"\n        value: \"1.23 ETH\"\n      - type: \"string_contains\"\n        value: \"1000.00 USDC\"\n\n  - name: \"Test error handling\"\n    input: \"Read the file /docs/nonexistent.md\"\n    evaluations:\n      - type: \"trajectory_contains_action\"\n        action: \"github-service.readFile\"\n      - type: \"string_contains\"\n        value: \"File does not exist\"\n\njudgment:\n  strategy: all_pass\n```\n\n## Testing Strategy\n\n1. **Conditional Matching**: Test different responses based on input parameters\n2. **Dynamic Responses**: Test response generation based on arguments\n3. **Error Simulation**: Test error handling and reporting\n4. **Complex Structures**: Test nested response objects with metadata\n5. **Multiple Mocks**: Test multiple mocks for same service/method\n6. **Logging**: Verify mock selection is logged clearly\n\n## Dependencies\n\n- Builds on existing mock system in scenarios\n- Requires plugin system integration (Ticket 1)\n- Integrates with agent interaction testing (Ticket 3) ",
      "createdAt": "2025-08-07T02:49:00Z",
      "closedAt": null,
      "state": "OPEN",
      "commentCount": 2
    },
    {
      "id": "I_kwDOMT5cIs7Bh7_I",
      "title": "Ticket Spec: `fix(scenarios): Runtime dependency audit and fix for evaluators`",
      "author": "linear",
      "number": 5640,
      "repository": "elizaos/eliza",
      "body": "### \n\n**Issue Title**: `fix(scenarios): Runtime dependency audit and fix for evaluators`\n\n**Tags**: `cli`, `scenarios`, `bug`, `evaluators`, `runtime-integration`\n\n#### **Description**\n\nSeveral evaluators in the `EvaluationEngine` make assumptions about `IAgentRuntime` methods that may not exist or may have different signatures than expected. This creates a risk of runtime errors when scenarios are executed, and prevents certain evaluations from functioning correctly.\n\nThe issue stems from evaluators being implemented without first auditing the actual `IAgentRuntime` interface and available methods in the ElizaOS core.\n\n#### **Specific Problem Methods**\n\n**1.** `TrajectoryContainsActionEvaluator`\n\n```typescript\n// Current problematic code in EvaluationEngine.ts\nasync evaluate(runtime: IAgentRuntime, _result: ScenarioResult): Promise<boolean> {\n    const memories = await runtime.getAllMemories(); // ❌ This method may not exist\n    return memories.some((memory: any) => memory.content?.metadata?.action === this.action);\n}\n```\n\n**2.** `LLMJudgeEvaluator`\n\n```typescript\n// Current problematic code in EvaluationEngine.ts\nasync evaluate(runtime: IAgentRuntime, result: ScenarioResult): Promise<boolean> {\n    const llmResult = await runtime.useModel('TEXT_LARGE', { // ❌ Wrong method signature\n        system: `...`,\n        messages: [...]\n    });\n    return llmResult.toLowerCase().includes(this.expected.toLowerCase());\n}\n```\n\n#### **Required Investigation and Fixes**\n\n**1. Audit** `IAgentRuntime` Interface\n\nBefore making any changes, thoroughly examine the actual `IAgentRuntime` interface:\n\n* **Review**: `packages/core/src/types.ts` or wherever `IAgentRuntime` is defined\n* **Identify**: What methods are actually available for:\n  * Accessing agent memory/action history\n  * Making LLM calls\n  * Querying agent state\n* **Document**: Create a reference of available methods with their correct signatures\n\n**2. Study Existing ElizaOS Patterns**\n\nExamine how other parts of the codebase interact with the runtime:\n\n* **Look at**: `packages/core/src/` - How do actions and providers access runtime capabilities?\n* **Look at**: `packages/plugin-bootstrap/src/` - How do evaluators and actions query agent state?\n* **Pattern**: Find examples of LLM calls, memory access, and action history retrieval\n* **Follow**: Use the same patterns that exist elsewhere in the codebase\n\n**3. Fix** `TrajectoryContainsActionEvaluator`\n\n* **Research**: How does ElizaOS actually store and retrieve action history?\n* **Options to investigate**:\n  * `runtime.messageManager` - for conversation/action logs\n  * `runtime.databaseAdapter` - for direct database queries\n  * Event/memory storage patterns used elsewhere\n* **Implementation**: Use the correct ElizaOS pattern for accessing action trajectory\n\n**Example research questions:**\n\n```typescript\n// What's the correct way to access action history?\n// Is it one of these patterns?\nconst actionHistory = await runtime.messageManager.getMemories({...});\nconst events = await runtime.databaseAdapter.getEventHistory();\nconst memories = await runtime.memory.getMemoriesByType('action');\n```\n\n**4. Fix** `LLMJudgeEvaluator`\n\n* **Research**: How do other parts of ElizaOS make LLM calls?\n* **Find**: The correct method signature for LLM invocation\n* **Pattern**: Look at how actions, providers, or other evaluators make LLM calls\n\n**Example research questions:**\n\n```typescript\n// What's the correct way to call an LLM?\n// Is it one of these patterns?\nconst response = await runtime.completion({...});\nconst result = await runtime.generateText({...});\nconst output = await runtime.llm.complete({...});\n```\n\n**5. Add Error Handling and Fallbacks**\n\nFor each fixed evaluator:\n\n* **Graceful Degradation**: If a runtime method is unavailable, return a clear error or skip\n* **Clear Error Messages**: Provide actionable error messages when dependencies are missing\n* **Feature Detection**: Check if required runtime capabilities are available before using them\n\n**6. Create Runtime Requirements Documentation**\n\n* **Document**: What runtime capabilities each evaluator requires\n* **Specify**: Minimum runtime interface requirements for scenarios\n* **Guide**: Help future evaluator implementations avoid these issues\n\n#### **Implementation Approach**\n\n**Phase 1: Investigation (Do this first)**\n\n1. Create a comprehensive audit of `IAgentRuntime` available methods\n2. Find existing patterns in the codebase for:\n   * LLM calls\n   * Memory/action history access\n   * Agent state queries\n3. Document the correct patterns to follow\n\n**Phase 2: Fix Implementation**\n\n1. Update `TrajectoryContainsActionEvaluator` to use correct action history access\n2. Update `LLMJudgeEvaluator` to use correct LLM invocation method\n3. Add proper error handling for missing capabilities\n4. Update any other evaluators with similar issues\n\n**Phase 3: Validation**\n\n1. Test each evaluator with actual runtime instances\n2. Verify error handling works correctly\n3. Confirm evaluators integrate properly with the rest of the scenario system\n\n#### **Testing Strategy**\n\n**1. Runtime Method Validation**\n\n* Create test scenarios that exercise each evaluator type\n* Verify no runtime errors occur during evaluation execution\n* Test both success and failure cases for each evaluator\n\n**2. Integration Testing**\n\n* Test evaluators with actual agent runtimes\n* Verify trajectory evaluation works with real action sequences\n* Verify LLM judge works with actual model calls\n\n**3. Error Handling**\n\n* Test evaluators with mock runtimes that don't have required methods\n* Verify graceful error handling and clear error messages\n\n#### **Success Criteria**\n\n1. All evaluators use correct `IAgentRuntime` methods with proper signatures\n2. No runtime errors occur when evaluators are executed\n3. `TrajectoryContainsActionEvaluator` correctly identifies actions in agent execution history\n4. `LLMJudgeEvaluator` successfully makes LLM calls and processes responses\n5. Clear error messages when runtime capabilities are missing\n6. Documentation exists for runtime requirements of each evaluator\n\n#### **Implementation Guidelines**\n\n**⚠️ Critical Research First:**\n\n1. **Don't assume method signatures** - Always verify against actual `IAgentRuntime` interface\n2. **Follow existing patterns** - Find how other ElizaOS components do LLM calls and memory access\n3. **Study plugin-bootstrap** - This likely contains examples of evaluators that work correctly\n4. **Test incrementally** - Fix one evaluator at a time and verify it works\n5. **Document findings** - Create clear documentation of correct patterns for future reference\n\nThis fix ensures the evaluation engine works reliably with actual ElizaOS runtime instances and follows established patterns in the codebase.",
      "createdAt": "2025-07-21T01:20:49Z",
      "closedAt": "2025-08-07T02:40:16Z",
      "state": "CLOSED",
      "commentCount": 1
    },
    {
      "id": "I_kwDOMT5cIs7Bh7k0",
      "title": "Ticket Spec: `fix(scenarios): Fix environment provider integration - bypass issue`",
      "author": "linear",
      "number": 5639,
      "repository": "elizaos/eliza",
      "body": "### \n\n**Issue Title**: `fix(scenarios): Fix environment provider integration - bypass issue`\n\n**Tags**: `cli`, `scenarios`, `bug`, `critical`, `environment-provider`\n\n#### **Description**\n\nThe scenario runner currently bypasses the sophisticated environment provider system entirely. The `handleRunScenario` function directly executes shell commands using `child_process.exec` instead of calling the properly implemented `LocalEnvironmentProvider` and `E2BEnvironmentProvider` classes. This means that virtual file systems, proper sandboxing, and environment-specific logic are not functioning as intended.\n\nThis is a **critical bug** that breaks core functionality and prevents the scenario system from working as designed.\n\n#### **Current Implementation Problem**\n\nIn `packages/cli/src/commands/scenario.ts`, the `handleRunScenario` function currently does this:\n\n```typescript\nasync function handleRunScenario(_args: {filePath: string, live: boolean}, _runtime: any, scenario: any): Promise<ScenarioResult> {\n    const runStep = scenario.run[0];\n    \n    return new Promise<ScenarioResult>((resolve) => {\n        exec(runStep.input, (error, stdout, stderr) => {\n            resolve({ stdout, stderr, exitCode: error ? error.code || 1 : 0 });\n        });\n    });\n}\n```\n\n**This completely ignores the environment providers that were carefully implemented.**\n\n#### **Expected Implementation**\n\nThe function should instantiate and use the appropriate environment provider based on `scenario.environment.type`:\n\n```typescript\nasync function handleRunScenario(args: {filePath: string, live: boolean}, runtime: IAgentRuntime, scenario: Scenario): Promise<ScenarioResult> {\n    let provider: EnvironmentProvider;\n    \n    // Instantiate the correct provider\n    if (scenario.environment.type === 'e2b') {\n        provider = new E2BEnvironmentProvider(runtime);\n    } else if (scenario.environment.type === 'local') {\n        provider = new LocalEnvironmentProvider();\n    } else {\n        throw new Error(`Unsupported environment type: ${scenario.environment.type}`);\n    }\n    \n    try {\n        await provider.setup(scenario);\n        return await provider.run(scenario);\n    } finally {\n        await provider.teardown();\n    }\n}\n```\n\n#### **Root Cause Analysis**\n\nBased on the AI implementation feedback, this likely happened because:\n\n1. The AI didn't review existing ElizaOS patterns for environment abstraction\n2. The AI took a shortcuts approach instead of following the designed architecture\n3. The ticket didn't emphasize examining existing provider implementations in the codebase\n\n#### **Required Changes**\n\n**1. Fix the Main Handler Function**\n\n* **Modify**: `packages/cli/src/commands/scenario.ts` - `handleRunScenario` function\n* **Change**: Remove direct `child_process.exec` usage\n* **Add**: Proper environment provider instantiation and lifecycle management\n\n**2. Review Existing ElizaOS Environment Patterns**\n\nBefore implementing, examine these existing patterns in the codebase:\n\n* **Look at**: `packages/cli/src/commands/start/` - How does the start command manage different environments?\n* **Look at**: `packages/core/src/` - Are there existing environment abstraction patterns?\n* **Look at**: Other plugins that manage execution environments\n* **Pattern**: Follow existing ElizaOS conventions for service instantiation and lifecycle\n\n**3. E2B Integration Specifics**\n\nBased on the [`@elizaos/plugin-e2b` documentation](https://github.com/elizaos-plugins/plugin-e2b), ensure proper integration:\n\n* **Service Discovery**: Use `runtime.getService('e2b')` to get the E2B service\n* **Error Handling**: Implement the recommended error checking pattern from the plugin docs\n* **API Usage**: Use the correct E2B service methods:\n  * `createSandbox()` for sandbox creation\n  * `executeCode()` for command execution (not `runCommand()` as currently implemented)\n  * `writeFileToSandbox()` for virtual file system setup\n  * `killSandbox()` for cleanup\n* **Configuration**: Respect E2B environment variables (`E2B_API_KEY`, `E2B_MODE`)\n\n**4. Local Environment Integration**\n\n* **Working Directory**: Ensure commands execute in the temporary directory created by `LocalEnvironmentProvider.setup()`\n* **File System**: Verify that `virtual_fs` files are actually available to the executed commands\n* **Cleanup**: Ensure temporary directories are properly cleaned up even on errors\n\n**5. Error Handling & Integration**\n\n* **Provider Errors**: Catch and properly format provider-specific errors\n* **Service Availability**: Handle cases where E2B service is not available with clear error messages\n* **Graceful Degradation**: Implement proper fallback behavior when providers fail\n\n#### **Testing Strategy**\n\n**1. Verify Virtual File System Works**\n\n* Test scenario with `setup.virtual_fs` containing test files\n* Verify commands can read and modify those files\n* Confirm files are properly isolated between test runs\n\n**2. Test E2B Integration**\n\n* Create test scenario that requires E2B (`environment: { type: 'e2b' }`)\n* Verify sandbox creation, file writing, and command execution\n* Test both with and without `E2B_API_KEY` to verify error handling\n\n**3. Test Local Environment**\n\n* Verify local scenarios work with temporary directory isolation\n* Test complex scenarios with multiple commands and file operations\n\n**4. Error Scenarios**\n\n* Test with invalid environment types\n* Test E2B scenarios without the plugin installed\n* Test scenarios that fail during setup or execution\n\n#### **Implementation Notes**\n\n**⚠️ Critical Implementation Guidelines:**\n\n1. **Review Existing Code First**: Before writing any new code, examine how other parts of ElizaOS handle environment abstraction and service integration\n2. **Follow ElizaOS Patterns**: Use the same patterns for service discovery, error handling, and lifecycle management that exist elsewhere in the codebase\n3. **E2B Plugin Integration**: Study the actual E2B plugin implementation to understand the correct service interface, don't assume the interface based on the provider code alone\n4. **Test Incrementally**: Fix local environment first (simpler), then E2B integration\n5. **Preserve Existing Functionality**: Ensure the mock engine, evaluation engine, and reporting continue to work exactly as they do now\n\n**Dependencies:**\n\n* The `LocalEnvironmentProvider` and `E2BEnvironmentProvider` classes are correctly implemented\n* The `@elizaos/plugin-e2b` service interface matches what's expected\n* The scenario schema and validation logic remain unchanged\n\nThis fix will unlock the full potential of the scenario system and enable proper testing of both local and sandboxed agent execution.",
      "createdAt": "2025-07-21T01:18:50Z",
      "closedAt": "2025-08-07T02:39:52Z",
      "state": "CLOSED",
      "commentCount": 1
    }
  ],
  "topPRs": [
    {
      "id": "PR_kwDOMT5cIs6iAhom",
      "title": "Fix memory count and agent id errors",
      "author": "wtfsayo",
      "number": 5712,
      "body": "```\n# Relates to\n\n<!-- No specific issue or ticket provided -->\n\n# Risks\n\nLow. This PR fixes a display bug and adds error handling for invalid input, improving robustness without introducing new functionality.\n\n# Background\n\n## What does this PR do?\n\n*   Corrects the `clearAgentMemories` command to use `result?.deletedCount` instead of `result?.deleted` to accurately display the number of cleared memories.\n*   Adds robust error handling for `asUUID(resolvedAgentId)` calls in `removeAgent`, `clearAgentMemories`, and `setAgentConfig` commands. This prevents unhandled errors when an invalid agent ID format (non-UUID) is provided.\n\n## What kind of change is this?\n\nBug fixes\n\n## Why are we doing this? Any context or related work?\n\nThe `clearAgentMemories` command was incorrectly displaying '0 memories cleared' because it expected a `deleted` property from the API response, while the API returns `deletedCount`. Additionally, the `removeAgent`, `clearAgentMemories`, and `setAgentConfig` commands lacked proper error handling for invalid UUIDs passed to `asUUID`, which could lead to unhandled exceptions.\n\n# Documentation changes needed?\n\nMy changes do not require a change to the project documentation.\n\n# Testing\n\n## Where should a reviewer start?\n\n`packages/cli/src/commands/agent/actions/crud.ts`\n\n## Detailed testing steps\n\n*   **Verify `clearAgentMemories` count display**:\n    1.  Ensure an agent has some memories (e.g., by interacting with it).\n    2.  Run `npm run cli agent clear-memories --name <agent-name>` (or by UUID/index).\n    3.  Verify the output correctly displays the number of cleared memories (e.g., \"Successfully cleared X memories...\").\n*   **Verify `asUUID` error handling**:\n    1.  Run `npm run cli agent remove --name invalid-uuid-format`.\n    2.  Verify an error message like \"Invalid agent ID format: invalid-uuid-format. Please provide a valid UUID, agent name, or index.\" is displayed.\n    3.  Repeat steps 1 and 2 for `npm run cli agent clear-memories --name invalid-uuid-format`.\n    4.  Repeat steps 1 and 2 for `npm run cli agent set --name invalid-uuid-format --config '{ \"name\": \"test\" }'`.\n```\n\n---\n<a href=\"https://cursor.com/background-agent?bcId=bc-88928546-cf20-494a-964b-9e11d92f1e69\">\n  <picture>\n    <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://cursor.com/open-in-cursor-dark.svg\">\n    <source media=\"(prefers-color-scheme: light)\" srcset=\"https://cursor.com/open-in-cursor-light.svg\">\n    <img alt=\"Open in Cursor\" src=\"https://cursor.com/open-in-cursor.svg\">\n  </picture>\n</a>\n<a href=\"https://cursor.com/agents?id=bc-88928546-cf20-494a-964b-9e11d92f1e69\">\n  <picture>\n    <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://cursor.com/open-in-web-dark.svg\">\n    <source media=\"(prefers-color-scheme: light)\" srcset=\"https://cursor.com/open-in-web-light.svg\">\n    <img alt=\"Open in Web\" src=\"https://cursor.com/open-in-web.svg\">\n  </picture>\n</a>\n\n<sub>[Learn more](https://docs.cursor.com/background-agent/web-and-mobile) about Cursor Agents</sub>",
      "repository": "elizaos/eliza",
      "createdAt": "2025-08-04T13:43:39Z",
      "mergedAt": null,
      "additions": 46580,
      "deletions": 142155
    },
    {
      "id": "PR_kwDOMT5cIs6iADWo",
      "title": "Fix agent id uuid conversion in getAgent command",
      "author": "wtfsayo",
      "number": 5711,
      "body": "# Relates to\n\n<!-- LINK TO ISSUE OR TICKET -->\n\n# Risks\n\nLow. This PR improves error handling without changing core logic.\n\n# Background\n\n## What does this PR do?\n\nThis PR enhances the `getAgent` command by adding robust error handling for UUID conversion. It wraps the `asUUID(resolvedAgentId)` call in a try-catch block, providing a more descriptive error message if the `resolvedAgentId` cannot be converted to a valid UUID.\n\n## What kind of change is this?\n\nBug fixes (non-breaking change which fixes an issue)\nImprovements (misc. changes to existing features)\n\n## Why are we doing this? Any context or related work?\n\nThe `getAgent` command's use of `asUUID(resolvedAgentId)` could lead to runtime failures if `resolvedAgentId` (even after being resolved from a name, index, or string ID) is not a valid UUID. While `resolveAgentId` is intended to return a UUID, this change adds a safeguard against potential data inconsistencies or unexpected inputs, providing a clearer, user-friendly error message instead of a generic validation error. This improves the command's resilience.\n\n# Documentation changes needed?\n\nMy changes do not require a change to the project documentation.\n\n# Testing\n\n## Where should a reviewer start?\n\n`packages/cli/src/commands/agent/actions/crud.ts` at line 31.\n\n## Detailed testing steps\n\n1.  **Verify existing functionality**:\n    *   Create an agent: `eliza agent create --name myagent`\n    *   Get the agent by name: `eliza agent get --name myagent` (should succeed)\n    *   Get the agent by its UUID (copy from `eliza agent list`): `eliza agent get --id <UUID>` (should succeed)\n    *   Get the agent by index: `eliza agent get --index 0` (should succeed)\n2.  **Verify new error handling**:\n    *   Attempt to get an agent with a clearly invalid, non-UUID string that `resolveAgentId` might theoretically pass through (e.g., `eliza agent get --id \"not-a-uuid\"`).\n    *   Verify that the command now outputs the custom error message: \"Invalid agent ID format: not-a-uuid. Please provide a valid UUID, agent name, or index.\"\n\n---\n<a href=\"https://cursor.com/background-agent?bcId=bc-523cb3f7-2ab8-48b0-8ff9-dd316c000970\">\n  <picture>\n    <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://cursor.com/open-in-cursor-dark.svg\">\n    <source media=\"(prefers-color-scheme: light)\" srcset=\"https://cursor.com/open-in-cursor-light.svg\">\n    <img alt=\"Open in Cursor\" src=\"https://cursor.com/open-in-cursor.svg\">\n  </picture>\n</a>\n<a href=\"https://cursor.com/agents?id=bc-523cb3f7-2ab8-48b0-8ff9-dd316c000970\">\n  <picture>\n    <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://cursor.com/open-in-web-dark.svg\">\n    <source media=\"(prefers-color-scheme: light)\" srcset=\"https://cursor.com/open-in-web-light.svg\">\n    <img alt=\"Open in Web\" src=\"https://cursor.com/open-in-web.svg\">\n  </picture>\n</a>\n\n<sub>[Learn more](https://docs.cursor.com/background-agent/web-and-mobile) about Cursor Agents</sub>",
      "repository": "elizaos/eliza",
      "createdAt": "2025-08-04T13:07:05Z",
      "mergedAt": null,
      "additions": 46565,
      "deletions": 142158
    },
    {
      "id": "PR_kwDOMT5cIs6h_-Oc",
      "title": "Fix agent config output exclusion",
      "author": "wtfsayo",
      "number": 5710,
      "body": "# Relates to\n\nN/A\n\n# Risks\n\nLow - This change only affects the output format of agent configuration and does not alter core functionality or data.\n\n# Background\n\n## What does this PR do?\n\nThis PR restores the previous behavior of excluding the `enabled` field from the agent configuration when saving to a file (using `--output`) or displaying as JSON (using `--json`).\n\n## What kind of change is this?\n\nBug fixes\n\n## Why are we doing this? Any context or related work?\n\nThe `enabled` field was inadvertently included in the agent configuration output, which was a regression from the previous behavior where it was explicitly excluded. This fix ensures consistency with the expected output format.\n\n# Documentation changes needed?\n\nMy changes do not require a change to the project documentation.\n\n# Testing\n\n## Where should a reviewer start?\n\n`packages/cli/src/commands/agent/actions/crud.ts`\n\n## Detailed testing steps\n\n1.  Run the agent command with the `--output` flag:\n    `your-cli-command agent get --output agent_config.json`\n    Verify that `agent_config.json` does *not* contain the `enabled` field.\n2.  Run the agent command with the `--json` flag:\n    `your-cli-command agent get --json`\n    Verify that the JSON output in the console does *not* contain the `enabled` field.\n\n---\n<a href=\"https://cursor.com/background-agent?bcId=bc-b795369d-f01e-447f-a8b5-44c4428496e0\">\n  <picture>\n    <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://cursor.com/open-in-cursor-dark.svg\">\n    <source media=\"(prefers-color-scheme: light)\" srcset=\"https://cursor.com/open-in-cursor-light.svg\">\n    <img alt=\"Open in Cursor\" src=\"https://cursor.com/open-in-cursor.svg\">\n  </picture>\n</a>\n<a href=\"https://cursor.com/agents?id=bc-b795369d-f01e-447f-a8b5-44c4428496e0\">\n  <picture>\n    <source media=\"(prefers-color-scheme: dark)\" srcset=\"https://cursor.com/open-in-web-dark.svg\">\n    <source media=\"(prefers-color-scheme: light)\" srcset=\"https://cursor.com/open-in-web-light.svg\">\n    <img alt=\"Open in Web\" src=\"https://cursor.com/open-in-web.svg\">\n  </picture>\n</a>\n\n<sub>[Learn more](https://docs.cursor.com/background-agent/web-and-mobile) about Cursor Agents</sub>",
      "repository": "elizaos/eliza",
      "createdAt": "2025-08-04T13:00:58Z",
      "mergedAt": null,
      "additions": 46560,
      "deletions": 142159
    },
    {
      "id": "PR_kwDOMT5cIs6ipYsq",
      "title": "Fix action chaining",
      "author": "alex-nax",
      "number": 5736,
      "body": "<!-- Use this template by filling in information and copying and pasting relevant items out of the HTML comments. -->\r\n\r\n# Relates to\r\n\r\n<!-- LINK TO ISSUE OR TICKET -->\r\n\r\n<!-- This risks section must be filled out before the final review and merge. -->\r\n\r\n# Risks\r\n\r\n<!--\r\nLow, medium, large. List what kind of risks and what could be affected.\r\n-->\r\n\r\n# Background\r\n\r\n## What does this PR do?\r\n\r\n## What kind of change is this?\r\n\r\n<!--\r\nBug fixes (non-breaking change which fixes an issue)\r\nImprovements (misc. changes to existing features)\r\nFeatures (non-breaking change which adds functionality)\r\nUpdates (new versions of included code)\r\n-->\r\n\r\n<!-- This \"Why\" section is most relevant if there are no linked issues explaining why. If there is a related issue, it might make sense to skip this why section. -->\r\n<!--\r\n## Why are we doing this? Any context or related work?\r\n-->\r\n\r\n# Documentation changes needed?\r\n\r\n<!--\r\nMy changes do not require a change to the project documentation.\r\nMy changes require a change to the project documentation.\r\nIf documentation change is needed: I have updated the documentation accordingly.\r\n-->\r\n\r\n<!-- Please show how you tested the PR. This will really help if the PR needs to be retested and probably help the PR get merged quicker. -->\r\n\r\n# Testing\r\n\r\n## Where should a reviewer start?\r\n\r\n## Detailed testing steps\r\n\r\n<!--\r\nNone: Automated tests are acceptable.\r\n-->\r\n\r\n<!--\r\n- As [anon/admin], go to [link]\r\n  - [do action]\r\n  - verify [result]\r\n-->\r\n\r\n<!-- If there is a UI change, please include before and after screenshots or videos. This will speed up PRs being merged. It is extra nice to annotate screenshots with arrows or boxes pointing out the differences. -->\r\n<!--\r\n## Screenshots\r\n### Before\r\n### After\r\n-->\r\n\r\n<!-- If there is anything about the deployment, please make a note. -->\r\n<!--\r\n# Deploy Notes\r\n-->\r\n\r\n<!--  Copy and paste command line output. -->\r\n<!--\r\n## Database changes\r\n-->\r\n\r\n<!--  Please specify deploy instructions if there is something more than the automated steps. -->\r\n<!--\r\n## Deployment instructions\r\n-->\r\n\r\n<!-- If you are on Discord, please join https://discord.gg/ai16z and state your Discord username here for the contributor role and join us in #development-feed -->\r\n<!--\r\n## Discord username\r\n\r\n-->\r\n",
      "repository": "elizaos/eliza",
      "createdAt": "2025-08-07T19:20:39Z",
      "mergedAt": null,
      "additions": 16193,
      "deletions": 301526
    },
    {
      "id": "PR_kwDOMT5cIs6iWsk7",
      "title": "feat(scenarios): Add comprehensive scenario testing system",
      "author": "wtfsayo",
      "number": 5723,
      "body": "## Summary\n- Add ElizaOS scenario testing system with YAML-based test definitions\n- Support for both local and E2B sandboxed testing environments  \n- Comprehensive evaluation engine with action tracking and LLM judges\n- Mock service support for deterministic testing\n- CLI command `elizaos scenario run` for running individual scenarios\n- Batch testing support with `bun run test:scenarios`\n\n## Key Features\n- **Environment Providers**: Local and E2B sandbox support with fallback\n- **Mock Engine**: Service call interception and response mocking\n- **Evaluation Engine**: Action tracking, response validation, trajectory analysis\n- **LLM Judgment**: AI-powered evaluation of test results\n- **Comprehensive Documentation**: Examples, specs, and usage guides\n\n## Files Added\n- Scenario CLI command implementation\n- Environment providers (Local, E2B, Mock)\n- Evaluation and reporting engines\n- 15+ example scenarios covering various test cases\n- Comprehensive documentation and guides\n\n## Testing\n- Adds `test:scenarios` script to CLI package\n- 15+ example scenarios with different complexity levels\n- E2B integration with graceful fallbacks\n- Mock service testing capabilities\n\n🤖 Generated with [Claude Code](https://claude.ai/code)",
      "repository": "elizaos/eliza",
      "createdAt": "2025-08-06T10:13:37Z",
      "mergedAt": null,
      "additions": 6742,
      "deletions": 3090
    }
  ],
  "codeChanges": {
    "additions": 11277,
    "deletions": 22361,
    "files": 239,
    "commitCount": 148
  },
  "completedItems": [
    {
      "title": "feat: add CLI delegation debug tool",
      "prNumber": 5682,
      "type": "feature",
      "body": "## Overview\n\nThis PR adds a comprehensive debug tool for diagnosing ElizaOS CLI delegation issues. The script helps developers understand why local CLI delegation might not be working and provides automatic fixes for common problems.\n\n## Fe",
      "files": [
        "packages/cli/src/utils/local-cli-delegation.ts",
        "packages/cli/tests/unit/utils/local-cli-delegation.test.ts",
        "scripts/debug-cli-delegation.test.ts",
        "scripts/debug-cli-delegation.ts"
      ]
    },
    {
      "title": "feat: Boostrap event / logging improvement",
      "prNumber": 5684,
      "type": "feature",
      "body": "# Risks\r\n\r\nLow, won't affect most copies\r\n\r\n# Background\r\n\r\n## What does this PR do?\r\n\r\n- uses proper runtime logger as almost all calls are in the context of a runtime\r\n- new setting: BOOTSTRAP_DEFLLMOFF - turns off LLM automatically respo",
      "files": [
        "packages/plugin-bootstrap/src/index.ts",
        ".cursor"
      ]
    },
    {
      "title": "sessions API",
      "prNumber": 5704,
      "type": "other",
      "body": "# Sessions API Documentation\r\n\r\nThe Sessions API provides a simplified interface for messaging between users and agents, abstracting away the complexity of servers, channels, and participants.\r\n\r\n## Overview\r\n\r\nThe Sessions API is designed ",
      "files": [
        "packages/plugin-bootstrap/src/index.ts",
        "packages/server/src/api/messaging/__tests__/sessions.test.ts",
        "packages/server/src/api/messaging/index.ts",
        "packages/server/src/api/messaging/sessions.ts",
        "packages/server/src/services/message.ts",
        "packages/server/src/types.ts",
        "packages/server/src/types/sessions.ts"
      ]
    },
    {
      "title": "fix/elizaos test component",
      "prNumber": 5705,
      "type": "bugfix",
      "body": "# Fix: Enable `elizaos test --type component` for all project and plugin types\r\n\r\n## Overview\r\n\r\nThis PR fixes the `elizaos test --type component` command to ensure it passes for all project and plugin types generated by the CLI. Previously",
      "files": [
        "packages/cli/src/commands/test/actions/component-tests.ts",
        "packages/cli/src/commands/test/index.ts",
        "packages/cli/src/utils/testing/tsc-validator.ts",
        "packages/plugin-quick-starter/package.json",
        "packages/plugin-quick-starter/src/__tests__/plugin.test.ts",
        "packages/plugin-quick-starter/src/__tests__/test-utils.ts",
        "packages/plugin-quick-starter/src/plugin.ts",
        "packages/plugin-starter/package.json",
        "packages/plugin-starter/src/__tests__/integration.test.ts",
        "packages/plugin-starter/src/__tests__/plugin.test.ts",
        "packages/plugin-starter/src/__tests__/test-utils.ts",
        "packages/plugin-starter/src/plugin.ts",
        "packages/project-starter/src/__tests__/env.test.ts",
        "packages/project-starter/src/__tests__/file-structure.test.ts",
        "packages/project-starter/src/__tests__/integration.test.ts",
        "packages/project-tee-starter/__tests__/build-order.test.ts",
        "packages/project-tee-starter/__tests__/character.test.ts",
        "packages/project-tee-starter/__tests__/env.test.ts",
        "packages/project-tee-starter/__tests__/file-structure.test.ts",
        "packages/project-tee-starter/__tests__/tee-validation.test.ts",
        "packages/project-tee-starter/__tests__/vite-config-utils.ts",
        "packages/project-tee-starter/package.json",
        "packages/project-tee-starter/src/index.ts",
        "packages/project-tee-starter/src/plugin.ts",
        "packages/project-tee-starter/tsup.config.ts",
        "packages/project-starter/tsup.config.ts"
      ]
    },
    {
      "title": "sessions api client",
      "prNumber": 5717,
      "type": "other",
      "body": "## Add Sessions API to API Client SDK\r\n\r\n### Summary\r\nThis PR adds support for the new Sessions API to the `@elizaos/api-client` package. The Sessions API provides a simplified interface for managing stateful conversations between users and",
      "files": [
        "packages/api-client/README.md",
        "packages/api-client/docs/sessions-api.md",
        "packages/api-client/src/__tests__/services/sessions.test.ts",
        "packages/api-client/src/client.ts",
        "packages/api-client/src/index.ts",
        "packages/api-client/src/services/sessions.ts",
        "packages/api-client/src/types/sessions.ts",
        "bun.lock",
        "packages/api-client/src/__tests__/base-client.test.ts",
        "packages/api-client/src/lib/base-client.ts"
      ]
    },
    {
      "title": "feat: Integrate API client and standardize workspace dependencies",
      "prNumber": 5709,
      "type": "feature",
      "body": "## Summary\n\nThis PR adds comprehensive authentication support to CLI agent commands and integrates the existing `@elizaos/api-client` package to eliminate code duplication. It also standardizes all workspace packages to use `workspace:*` de",
      "files": [
        ".cursor",
        ".github/workflows/cli-tests.yml",
        ".gitmodules",
        ".prettierignore",
        "bun.lock",
        "lerna.json",
        "package.json",
        "packages/api-client/package.json",
        "packages/api-client/src/types/agents.ts",
        "packages/cli/bunfig.toml",
        "packages/cli/package.json",
        "packages/cli/src/commands/agent/actions/crud.ts",
        "packages/cli/src/commands/agent/actions/lifecycle.ts",
        "packages/cli/src/commands/agent/index.ts",
        "packages/cli/src/commands/agent/utils/validation.ts",
        "packages/cli/src/commands/shared/auth-utils.ts",
        "packages/cli/src/commands/shared/index.ts",
        "packages/cli/src/utils/handle-error.ts",
        "packages/cli/tests/commands/agent.test.ts",
        "packages/cli/tests/commands/create.test.ts",
        "packages/cli/tests/commands/start.test.ts",
        "packages/cli/tests/commands/update.test.ts",
        "packages/cli/tests/test-timeouts.ts",
        "packages/docs/api-reference/openapi.yaml",
        "packages/plugin-bootstrap/package.json",
        "packages/plugin-bootstrap/src/index.ts",
        "packages/plugin-dummy-services/package.json",
        "packages/plugin-quick-starter/package.json",
        "packages/plugin-sql/package.json",
        "packages/plugin-starter/package.json",
        "packages/project-tee-starter/GUIDE.md",
        "packages/project-tee-starter/__tests__/frontend.test.ts",
        "packages/project-tee-starter/__tests__/routes.test.ts",
        "packages/project-tee-starter/__tests__/tee-validation.test.ts",
        "packages/project-tee-starter/index.html",
        "packages/project-tee-starter/package.json",
        "packages/project-tee-starter/postcss.config.js",
        "packages/project-tee-starter/scripts/install-test-deps.js",
        "packages/project-tee-starter/src/frontend/index.css",
        "packages/project-tee-starter/src/frontend/index.html",
        "packages/project-tee-starter/src/frontend/index.tsx",
        "packages/project-tee-starter/src/frontend/panels.tsx",
        "packages/project-tee-starter/src/frontend/utils.ts",
        "packages/project-tee-starter/src/plugin.ts",
        "packages/project-tee-starter/tailwind.config.js",
        "packages/project-tee-starter/tsconfig.build.json",
        "packages/project-tee-starter/tsconfig.json",
        "packages/project-tee-starter/vite.config.ts",
        "packages/server/package.json",
        "packages/server/src/api/memory/agents.ts"
      ]
    },
    {
      "title": "fix: Enable E2E testing for all starter templates",
      "prNumber": 5720,
      "type": "bugfix",
      "body": "## Problem\r\n\r\nFollowing PR #5075 which enabled component testing, E2E tests were missing or broken across starter templates. This prevented developers from validating full integration scenarios and created an inconsistent testing experience",
      "files": [
        "packages/cli/README.md",
        "packages/cli/src/commands/test/actions/component-tests.ts",
        "packages/cli/src/commands/test/actions/e2e-tests.ts",
        "packages/cli/src/commands/test/actions/run-all-tests.ts",
        "packages/cli/src/utils/test-runner.ts",
        "packages/plugin-quick-starter/README.md",
        "packages/plugin-quick-starter/src/__tests__/e2e/README.md",
        "packages/plugin-quick-starter/src/__tests__/e2e/plugin-quick-starter.e2e.ts",
        "packages/plugin-quick-starter/src/__tests__/plugin.test.ts",
        "packages/plugin-quick-starter/src/plugin.ts",
        "packages/plugin-starter/README.md",
        "packages/plugin-starter/src/__tests__/e2e/README.md",
        "packages/plugin-starter/src/__tests__/e2e/plugin-starter.e2e.ts",
        "packages/plugin-starter/src/plugin.ts",
        "packages/plugin-starter/src/tests.ts",
        "packages/project-starter/README.md",
        "packages/project-starter/src/__tests__/e2e/README.md",
        "packages/project-starter/src/__tests__/e2e/index.ts",
        "packages/project-starter/src/__tests__/e2e/natural-language.test.ts",
        "packages/project-starter/src/__tests__/e2e/project-starter.e2e.ts",
        "packages/project-starter/src/__tests__/e2e/project.test.ts",
        "packages/project-starter/src/__tests__/e2e/starter-plugin.test.ts",
        "packages/project-starter/src/index.ts",
        "packages/project-tee-starter/README.md",
        "packages/project-tee-starter/e2e/project.test.ts",
        "packages/project-tee-starter/e2e/starter-plugin.test.ts",
        "packages/project-tee-starter/src/__tests__/actions.test.ts",
        "packages/project-tee-starter/src/__tests__/build-order.test.ts",
        "packages/project-tee-starter/src/__tests__/character.test.ts",
        "packages/project-tee-starter/src/__tests__/config.test.ts",
        "packages/project-tee-starter/src/__tests__/e2e/README.md",
        "packages/project-tee-starter/src/__tests__/e2e/project-tee-starter.e2e.ts",
        "packages/project-tee-starter/src/__tests__/env.test.ts",
        "packages/project-tee-starter/src/__tests__/error-handling.test.ts",
        "packages/project-tee-starter/src/__tests__/events.test.ts",
        "packages/project-tee-starter/src/__tests__/file-structure.test.ts",
        "packages/project-tee-starter/src/__tests__/frontend.test.ts",
        "packages/project-tee-starter/src/__tests__/integration.test.ts",
        "packages/project-tee-starter/src/__tests__/models.test.ts",
        "packages/project-tee-starter/src/__tests__/plugin.test.ts",
        "packages/project-tee-starter/src/__tests__/provider.test.ts",
        "packages/project-tee-starter/src/__tests__/routes.test.ts",
        "packages/project-tee-starter/src/__tests__/tee-validation.test.ts",
        "packages/project-tee-starter/src/__tests__/test-utils.ts",
        "packages/project-tee-starter/src/__tests__/utils/core-test-utils.ts",
        "packages/project-tee-starter/src/__tests__/vite-config-utils.ts",
        "packages/project-tee-starter/src/index.ts",
        "packages/project-tee-starter/src/plugin.ts",
        "CLAUDE.md",
        "lerna.json",
        "packages/plugin-dummy-services/src/e2e/scenarios.ts"
      ]
    },
    {
      "title": "fix: support plugin-mysql",
      "prNumber": 5718,
      "type": "bugfix",
      "body": "# Risks\r\n\r\nLow, always ensures an adapter still\r\n\r\n# Background\r\n\r\n## What does this PR do?\r\n\r\nallows mysql before forcing plugin-sql\r\n\r\nI had looked at reording plugins but figured out how to make the order of my plugins to be not importan",
      "files": [
        "packages/cli/src/commands/start/actions/agent-start.ts"
      ]
    },
    {
      "title": "chore: remove unused specs from core",
      "prNumber": 5724,
      "type": "other",
      "body": "# Relates to\r\n\r\n**Clean-up effort**: Remove obsolete plugin specification system from core package\r\n\r\n# Risks\r\n\r\n**Low risk** - This is a cleanup operation removing unused code:\r\n- No breaking changes to existing functionality\r\n- Only remov",
      "files": [
        ".cursorrules",
        "CLAUDE.md",
        "bun.lock",
        "packages/core/package.json",
        "packages/core/src/index.ts",
        "packages/core/src/specs/README.md",
        "packages/core/src/specs/index.ts",
        "packages/core/src/specs/v1/__tests__/actionExample.test.ts",
        "packages/core/src/specs/v1/__tests__/integration.test.ts",
        "packages/core/src/specs/v1/__tests__/provider.test.ts",
        "packages/core/src/specs/v1/__tests__/state.test.ts",
        "packages/core/src/specs/v1/__tests__/templates.test.ts",
        "packages/core/src/specs/v1/__tests__/uuid.test.ts",
        "packages/core/src/specs/v1/actionExample.ts",
        "packages/core/src/specs/v1/index.ts",
        "packages/core/src/specs/v1/messages.ts",
        "packages/core/src/specs/v1/posts.ts",
        "packages/core/src/specs/v1/provider.ts",
        "packages/core/src/specs/v1/runtime.ts",
        "packages/core/src/specs/v1/state.ts",
        "packages/core/src/specs/v1/templates.ts",
        "packages/core/src/specs/v1/types.ts",
        "packages/core/src/specs/v1/uuid.ts",
        "packages/core/src/specs/v2/__tests__/actions.test.ts",
        "packages/core/src/specs/v2/__tests__/database.test.ts",
        "packages/core/src/specs/v2/__tests__/entities-extra.test.ts",
        "packages/core/src/specs/v2/__tests__/env.test.ts",
        "packages/core/src/specs/v2/__tests__/messages.test.ts",
        "packages/core/src/specs/v2/__tests__/mockCharacter.ts",
        "packages/core/src/specs/v2/__tests__/parsing.test.ts",
        "packages/core/src/specs/v2/__tests__/roles.test.ts",
        "packages/core/src/specs/v2/__tests__/runtime.test.ts",
        "packages/core/src/specs/v2/__tests__/search.test.ts",
        "packages/core/src/specs/v2/__tests__/settings.test.ts",
        "packages/core/src/specs/v2/__tests__/utils-extra.test.ts",
        "packages/core/src/specs/v2/__tests__/utils-prompt.test.ts",
        "packages/core/src/specs/v2/__tests__/uuid.test.ts",
        "packages/core/src/specs/v2/actions.ts",
        "packages/core/src/specs/v2/database.ts",
        "packages/core/src/specs/v2/entities.ts",
        "packages/core/src/specs/v2/index.ts",
        "packages/core/src/specs/v2/logger.ts",
        "packages/core/src/specs/v2/prompts.ts",
        "packages/core/src/specs/v2/roles.ts",
        "packages/core/src/specs/v2/runtime.ts",
        "packages/core/src/specs/v2/search.ts",
        "packages/core/src/specs/v2/services.ts",
        "packages/core/src/specs/v2/settings.ts",
        "packages/core/src/specs/v2/types.ts",
        "packages/core/src/specs/v2/types/stream-browserify.d.ts"
      ]
    },
    {
      "title": "allow iframes when web ui is enabled in production",
      "prNumber": 5735,
      "type": "other",
      "body": "# Risks\r\n\r\n- Low: Allows iframes from self if web ui is enabled in production.\r\n\r\n# Background\r\n\r\nCurrently in production, any panels exposed by plugins are blocked. This is because plugin panels are exposed using an iframe. with frame-src ",
      "files": [
        "packages/server/src/index.ts"
      ]
    },
    {
      "title": "fix(cli): handle monorepo version in update command",
      "prNumber": 5733,
      "type": "bugfix",
      "body": "## Summary\n\nThis PR fixes the failing CLI test `update --check works` that was failing in CI due to version handling in monorepo context.\n\n## Problem\n\nThe test was expecting a semantic version pattern (e.g., `1.2.0`) but was receiving `work",
      "files": [
        "packages/cli/src/commands/update/utils/version-utils.ts",
        "packages/cli/tests/commands/update.test.ts"
      ]
    },
    {
      "title": "feat: remove automatic merge to develop from release workflow",
      "prNumber": 5732,
      "type": "feature",
      "body": "## Summary\n\nThis PR removes the automatic merge from main to develop that was happening at the end of the release workflow.\n\n## Changes\n\n- Removed the 'Merge main to develop' step from \n- This step was automatically merging main into develo",
      "files": [
        ".github/workflows/release.yaml"
      ]
    },
    {
      "title": "feat: replace numbered versions to workspace:*",
      "prNumber": 5731,
      "type": "feature",
      "body": "## Summary\n\nThis PR migrates the ElizaOS monorepo to use workspace:* version management for better dependency synchronization and consistency.\n\n## Changes\n\n- Updated all package.json files to use `workspace:*` versioning instead of hardcode",
      "files": [
        "bun.lock",
        "packages/api-client/package.json",
        "packages/app/package.json",
        "packages/app/src-tauri/Cargo.lock",
        "packages/autodoc/package.json",
        "packages/cli/package.json",
        "packages/client/package.json",
        "packages/config/package.json",
        "packages/core/package.json",
        "packages/create-eliza/package.json",
        "packages/plugin-bootstrap/package.json",
        "packages/plugin-dummy-services/package.json",
        "packages/plugin-quick-starter/package.json",
        "packages/plugin-sql/package.json",
        "packages/plugin-starter/package.json",
        "packages/project-starter/package.json",
        "packages/project-tee-starter/package.json",
        "packages/server/package.json",
        "packages/test-utils/package.json"
      ]
    },
    {
      "title": "chore: 1.4.2",
      "prNumber": 5746,
      "type": "other",
      "body": "",
      "files": [
        "packages/cli/package.json"
      ]
    },
    {
      "title": "chore: 1.4.1",
      "prNumber": 5745,
      "type": "other",
      "body": "",
      "files": [
        "bun.lock",
        "llms.txt",
        "packages/api-client/package.json",
        "packages/app/package.json",
        "packages/client/package.json",
        "packages/core/package.json",
        "packages/plugin-bootstrap/package.json",
        "packages/plugin-dummy-services/package.json",
        "packages/plugin-quick-starter/package.json",
        "packages/plugin-sql/package.json",
        "packages/plugin-starter/package.json",
        "packages/project-starter/package.json",
        "packages/project-tee-starter/package.json",
        "packages/server/package.json",
        "packages/test-utils/package.json"
      ]
    },
    {
      "title": "feat: remove obsolete llms.txt and standardize workspace dependencies",
      "prNumber": 5744,
      "type": "feature",
      "body": "## Summary\n\nThis PR performs repository cleanup and standardizes dependency management by:\n- Removing the obsolete `llms.txt` file (2743 lines) \n- Updating all internal package dependencies to use the workspace protocol\n- Updating lockfile ",
      "files": [
        "bun.lock",
        "llms.txt",
        "packages/api-client/package.json",
        "packages/app/package.json",
        "packages/client/package.json",
        "packages/core/package.json",
        "packages/plugin-bootstrap/package.json",
        "packages/plugin-dummy-services/package.json",
        "packages/plugin-quick-starter/package.json",
        "packages/plugin-sql/package.json",
        "packages/plugin-starter/package.json",
        "packages/project-starter/package.json",
        "packages/project-tee-starter/package.json",
        "packages/server/package.json",
        "packages/test-utils/package.json"
      ]
    },
    {
      "title": "chore 1.3.4",
      "prNumber": 5743,
      "type": "other",
      "body": "",
      "files": [
        ".github/workflows/pre-release.yml",
        ".github/workflows/release.yaml",
        "package.json",
        "packages/core/src/utils.ts"
      ]
    },
    {
      "title": "feat: migrate from npx to bunx and improve XML parser",
      "prNumber": 5742,
      "type": "feature",
      "body": "## Summary\n\nThis PR contains two main improvements:\n\n### 1. Migration from npx to bunx\n- Updated GitHub workflows (pre-release.yml and release.yaml) to use `bunx` instead of `npx` for lerna commands\n- Updated package.json clean script to us",
      "files": [
        ".github/workflows/pre-release.yml",
        ".github/workflows/release.yaml",
        "package.json",
        "packages/core/src/utils.ts"
      ]
    },
    {
      "title": "fix(core): replace unsafe XML fallback regex with linear scan to avoi…",
      "prNumber": 5741,
      "type": "bugfix",
      "body": "",
      "files": [
        ".github/workflows/ci.yaml",
        ".github/workflows/pre-release.yml",
        ".github/workflows/update-news.yml",
        "packages/api-client/src/__tests__/base-client.test.ts",
        "packages/api-client/src/__tests__/services/sessions.test.ts",
        "packages/api-client/src/lib/base-client.ts",
        "packages/cli/src/commands/test/actions/run-all-tests.ts",
        "packages/client/package.json",
        "packages/core/src/__tests__/utils.test.ts",
        "packages/core/src/utils.ts"
      ]
    },
    {
      "title": "feat: code formatting and linting improvements",
      "prNumber": 5740,
      "type": "feature",
      "body": "## 📝 Description\n\nThis PR implements comprehensive code formatting and linting improvements across the entire ElizaOS codebase to enhance code quality, consistency, and maintainability.\n\n## 🔧 Changes Made\n\n### Code Formatting & Style\n- Ap",
      "files": [
        "bun.lock",
        "packages/api-client/README.md",
        "packages/api-client/docs/sessions-api.md",
        "packages/api-client/package.json",
        "packages/api-client/src/__tests__/services/sessions.test.ts",
        "packages/api-client/src/services/sessions.ts",
        "packages/api-client/src/types/sessions.ts",
        "packages/app/package.json",
        "packages/autodoc/package.json",
        "packages/cli/package.json",
        "packages/cli/src/commands/create/index.ts",
        "packages/cli/src/commands/plugins/utils/env-vars.ts",
        "packages/cli/src/commands/start/actions/agent-start.ts",
        "packages/cli/src/commands/test/actions/e2e-tests.ts",
        "packages/cli/src/commands/update/actions/cli-update.ts",
        "packages/cli/src/project.ts",
        "packages/cli/src/utils/dependency-manager.ts",
        "packages/cli/src/utils/get-config.ts",
        "packages/cli/src/utils/registry/index.ts",
        "packages/cli/src/utils/upgrade/migration-guide-loader.ts",
        "packages/cli/src/utils/upgrade/simple-migration-agent.ts",
        "packages/cli/src/utils/user-environment.ts",
        "packages/client/package.json",
        "packages/config/package.json",
        "packages/core/package.json",
        "packages/core/src/utils.ts",
        "packages/create-eliza/package.json",
        "packages/plugin-bootstrap/package.json",
        "packages/plugin-bootstrap/src/index.ts",
        "packages/plugin-bootstrap/src/providers/capabilities.ts",
        "packages/plugin-bootstrap/src/providers/choice.ts",
        "packages/plugin-bootstrap/src/providers/facts.ts",
        "packages/plugin-bootstrap/src/providers/recentMessages.ts",
        "packages/plugin-bootstrap/src/providers/world.ts",
        "packages/plugin-bootstrap/src/services/task.ts",
        "packages/plugin-dummy-services/package.json",
        "packages/plugin-dummy-services/src/tokenData/service.ts",
        "packages/plugin-quick-starter/package.json",
        "packages/plugin-sql/package.json",
        "packages/plugin-starter/package.json",
        "packages/project-starter/package.json",
        "packages/project-starter/src/__tests__/plugin.test.ts",
        "packages/project-starter/src/__tests__/provider.test.ts",
        "packages/project-tee-starter/package.json",
        "packages/server/package.json",
        "packages/server/src/index.ts",
        "packages/test-utils/package.json"
      ]
    },
    {
      "title": "chore: 1.3.3",
      "prNumber": 5739,
      "type": "other",
      "body": "",
      "files": [
        ".cursorrules",
        ".github/workflows/ci.yaml",
        ".github/workflows/pre-release.yml",
        ".github/workflows/release.yaml",
        ".github/workflows/update-news.yml",
        "CLAUDE.md",
        "bun.lock",
        "lerna.json",
        "packages/api-client/README.md",
        "packages/api-client/docs/sessions-api.md",
        "packages/api-client/package.json",
        "packages/api-client/src/__tests__/services/sessions.test.ts",
        "packages/api-client/src/client.ts",
        "packages/api-client/src/index.ts",
        "packages/api-client/src/lib/base-client.ts",
        "packages/api-client/src/services/sessions.ts",
        "packages/api-client/src/types/sessions.ts",
        "packages/app/package.json",
        "packages/app/src-tauri/Cargo.lock",
        "packages/autodoc/package.json",
        "packages/cli/README.md",
        "packages/cli/package.json",
        "packages/cli/src/commands/create/index.ts",
        "packages/cli/src/commands/plugins/utils/env-vars.ts",
        "packages/cli/src/commands/start/actions/agent-start.ts",
        "packages/cli/src/commands/start/actions/server-start.ts",
        "packages/cli/src/commands/start/index.ts",
        "packages/cli/src/commands/start/utils/dependency-resolver.ts",
        "packages/cli/src/commands/test/actions/component-tests.ts",
        "packages/cli/src/commands/test/actions/e2e-tests.ts",
        "packages/cli/src/commands/test/actions/run-all-tests.ts",
        "packages/cli/src/commands/test/utils/plugin-utils.ts",
        "packages/cli/src/commands/update/actions/cli-update.ts",
        "packages/cli/src/commands/update/utils/version-utils.ts",
        "packages/cli/src/index.ts",
        "packages/cli/src/project.ts",
        "packages/cli/src/utils/auto-install-bun.ts",
        "packages/cli/src/utils/bun-exec.ts",
        "packages/cli/src/utils/dependency-manager.ts",
        "packages/cli/src/utils/get-config.ts",
        "packages/cli/src/utils/handle-error.ts",
        "packages/cli/src/utils/install-plugin.ts",
        "packages/cli/src/utils/local-cli-delegation.ts",
        "packages/cli/src/utils/publisher.ts",
        "packages/cli/src/utils/registry/index.ts",
        "packages/cli/src/utils/test-runner.ts",
        "packages/cli/src/utils/testing/tsc-validator.ts",
        "packages/cli/src/utils/upgrade/migration-guide-loader.ts",
        "packages/cli/src/utils/upgrade/simple-migration-agent.ts",
        "packages/cli/src/utils/user-environment.ts"
      ]
    },
    {
      "title": "fix missing pino logger refactors",
      "prNumber": 5737,
      "type": "bugfix",
      "body": "### Summary\r\n- Convert logger calls across the repo to object-first structured logging to align with pino typings and fix TS/DTS errors.\r\n- No functional behavior changes; improves type-safety and log structure.\r\n\r\n### Why\r\n- Recent stricte",
      "files": [
        "bun.lock",
        "packages/cli/src/commands/create/index.ts",
        "packages/cli/src/commands/plugins/utils/env-vars.ts",
        "packages/cli/src/commands/start/actions/agent-start.ts",
        "packages/cli/src/commands/start/actions/server-start.ts",
        "packages/cli/src/commands/start/index.ts",
        "packages/cli/src/commands/start/utils/dependency-resolver.ts",
        "packages/cli/src/commands/test/actions/component-tests.ts",
        "packages/cli/src/commands/test/actions/e2e-tests.ts",
        "packages/cli/src/commands/test/utils/plugin-utils.ts",
        "packages/cli/src/commands/update/actions/cli-update.ts",
        "packages/cli/src/commands/update/utils/version-utils.ts",
        "packages/cli/src/index.ts",
        "packages/cli/src/project.ts",
        "packages/cli/src/utils/auto-install-bun.ts",
        "packages/cli/src/utils/bun-exec.ts",
        "packages/cli/src/utils/dependency-manager.ts",
        "packages/cli/src/utils/get-config.ts",
        "packages/cli/src/utils/handle-error.ts",
        "packages/cli/src/utils/install-plugin.ts",
        "packages/cli/src/utils/local-cli-delegation.ts",
        "packages/cli/src/utils/publisher.ts",
        "packages/cli/src/utils/registry/index.ts",
        "packages/cli/src/utils/testing/tsc-validator.ts",
        "packages/cli/src/utils/upgrade/migration-guide-loader.ts",
        "packages/cli/src/utils/upgrade/simple-migration-agent.ts",
        "packages/cli/src/utils/user-environment.ts",
        "packages/core/src/utils.ts",
        "packages/plugin-bootstrap/src/__tests__/evaluators.test.ts",
        "packages/plugin-bootstrap/src/actions/choice.ts",
        "packages/plugin-bootstrap/src/actions/followRoom.ts",
        "packages/plugin-bootstrap/src/actions/muteRoom.ts",
        "packages/plugin-bootstrap/src/actions/roles.ts",
        "packages/plugin-bootstrap/src/actions/settings.ts",
        "packages/plugin-bootstrap/src/actions/unmuteRoom.ts",
        "packages/plugin-bootstrap/src/evaluators/reflection.ts",
        "packages/plugin-bootstrap/src/index.ts",
        "packages/plugin-bootstrap/src/providers/actionState.ts",
        "packages/plugin-bootstrap/src/providers/capabilities.ts",
        "packages/plugin-bootstrap/src/providers/choice.ts",
        "packages/plugin-bootstrap/src/providers/facts.ts",
        "packages/plugin-bootstrap/src/providers/recentMessages.ts",
        "packages/plugin-bootstrap/src/providers/world.ts",
        "packages/plugin-bootstrap/src/services/task.ts",
        "packages/plugin-dummy-services/src/tokenData/service.ts",
        "packages/plugin-quick-starter/src/plugin.ts",
        "packages/plugin-starter/src/plugin.ts",
        "packages/project-starter/src/__tests__/actions.test.ts",
        "packages/project-starter/src/__tests__/integration.test.ts",
        "packages/project-starter/src/__tests__/models.test.ts"
      ]
    }
  ],
  "topContributors": [
    {
      "username": "wtfsayo",
      "avatarUrl": "https://avatars.githubusercontent.com/u/82053242?u=98209a1f10456f42d4d2fa71db4d5bf4a672cbc3&v=4",
      "totalScore": 698.9275054908418,
      "prScore": 688.3275054908418,
      "issueScore": 0,
      "reviewScore": 10,
      "commentScore": 0.6000000000000001,
      "summary": null
    },
    {
      "username": "0xbbjoker",
      "avatarUrl": "https://avatars.githubusercontent.com/u/54844437?u=90fe1762420de6ad493a1c1582f1f70c0d87d8e2&v=4",
      "totalScore": 146.18592386044378,
      "prScore": 135.98592386044376,
      "issueScore": 0,
      "reviewScore": 10,
      "commentScore": 0.2,
      "summary": null
    },
    {
      "username": "ChristopherTrimboli",
      "avatarUrl": "https://avatars.githubusercontent.com/u/27584221?u=0d816ce1dcdea8f925aba18bb710153d4a87a719&v=4",
      "totalScore": 121.69157046153126,
      "prScore": 96.69157046153126,
      "issueScore": 0,
      "reviewScore": 25,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "yungalgo",
      "avatarUrl": "https://avatars.githubusercontent.com/u/113615973?u=92e0f29f7e2fbb8ce46ed13c51f692ca803de02d&v=4",
      "totalScore": 113.29007008035396,
      "prScore": 103.17207008035395,
      "issueScore": 0,
      "reviewScore": 9,
      "commentScore": 1.1179999999999999,
      "summary": null
    },
    {
      "username": "alex-nax",
      "avatarUrl": "https://avatars.githubusercontent.com/u/82507604?u=b3af75d82f80ed83007a77c351a64bdd9e5d67de&v=4",
      "totalScore": 50.88309952482126,
      "prScore": 50.88309952482126,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "linear",
      "avatarUrl": "https://avatars.githubusercontent.com/in/20150?v=4",
      "totalScore": 18,
      "prScore": 0,
      "issueScore": 18,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "github-advanced-security",
      "avatarUrl": "https://avatars.githubusercontent.com/in/57789?v=4",
      "totalScore": 18,
      "prScore": 0,
      "issueScore": 0,
      "reviewScore": 18,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "odilitime",
      "avatarUrl": "https://avatars.githubusercontent.com/u/16395496?u=c9bac48e632aae594a0d85aaf9e9c9c69b674d8b&v=4",
      "totalScore": 15.98021948958322,
      "prScore": 6.78021948958322,
      "issueScore": 0,
      "reviewScore": 9,
      "commentScore": 0.2,
      "summary": null
    },
    {
      "username": "yohaiai",
      "avatarUrl": "https://avatars.githubusercontent.com/u/1732742?v=4",
      "totalScore": 11.827306144334056,
      "prScore": 11.827306144334056,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "monilpat",
      "avatarUrl": "https://avatars.githubusercontent.com/u/15067321?v=4",
      "totalScore": 11.038,
      "prScore": 0,
      "issueScore": 10.4,
      "reviewScore": 0,
      "commentScore": 0.6379999999999999,
      "summary": null
    },
    {
      "username": "mandatedisrael",
      "avatarUrl": "https://avatars.githubusercontent.com/u/32749185?u=d7ad7a2e6f7771775eda9a8a5dfbadb0390d535c&v=4",
      "totalScore": 8.426879734614028,
      "prScore": 8.426879734614028,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "wookosh",
      "avatarUrl": "https://avatars.githubusercontent.com/u/120273332?u=493e01d0863a55ed139425760447079b96ef931d&v=4",
      "totalScore": 8.377306144334055,
      "prScore": 8.377306144334055,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "RolandOne",
      "avatarUrl": "https://avatars.githubusercontent.com/u/38446707?v=4",
      "totalScore": 5.909573590279972,
      "prScore": 5.909573590279972,
      "issueScore": 0,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "Kemystra",
      "avatarUrl": "https://avatars.githubusercontent.com/u/74447600?u=b02004f220ac249b7c1e3d847482c0f480a150d5&v=4",
      "totalScore": 2.3000000000000003,
      "prScore": 0,
      "issueScore": 2.1,
      "reviewScore": 0,
      "commentScore": 0.2,
      "summary": null
    },
    {
      "username": "znahas",
      "avatarUrl": "https://avatars.githubusercontent.com/u/4540248?v=4",
      "totalScore": 2,
      "prScore": 0,
      "issueScore": 2,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "samarth30",
      "avatarUrl": "https://avatars.githubusercontent.com/u/48334430?u=1fc119a6c2deb8cf60448b4c8961cb21dc69baeb&v=4",
      "totalScore": 2,
      "prScore": 0,
      "issueScore": 2,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "jimthedj65",
      "avatarUrl": "https://avatars.githubusercontent.com/u/46975497?v=4",
      "totalScore": 2,
      "prScore": 0,
      "issueScore": 2,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    },
    {
      "username": "LinuxIsCool",
      "avatarUrl": "https://avatars.githubusercontent.com/u/31582215?u=b8eb5d3849bf877a3a0b686cf1632aca92e744ae&v=4",
      "totalScore": 2,
      "prScore": 0,
      "issueScore": 2,
      "reviewScore": 0,
      "commentScore": 0,
      "summary": null
    }
  ],
  "newPRs": 27,
  "mergedPRs": 22,
  "newIssues": 17,
  "closedIssues": 17,
  "activeContributors": 17
}