[pull] main from danny-avila:main#105
Merged
Merged
Conversation
* fix: Separate mixed reasoning and text chunks * fix: Avoid mixed reasoning replay * refactor: Track streamed text structurally * refactor: Scope streamed text replay by run step * fix: Tighten mixed reasoning replay handling * fix: Scope reasoning replay markers * fix: Prevent late OpenRouter reasoning replay
* fix: Expose LangChain Message Roles * fix: Preserve Message Roles Through Cache Clones
* fix: honor Gemini server-side tool invocations * fix: preserve Gemini server-side stream parts * fix: dispatch Gemini server-side context parts * fix: preserve Gemini server-side stream steps * fix: retain Gemini server-side context fallbacks * fix: Gate Gemini server-side preservation by provider * fix: Preserve Gemini mixed tool context ordering
* fix: Sanitize Reranker Axios Error Logs * fix: Redact Reranker Error Response Bodies
* fix: Drop stale Anthropic server tool calls * fix: Deduplicate Anthropic Tool Replay * test: Cover Multiple Anthropic Server Tool Pairs * fix: Preserve Anthropic Server Tool Replay Boundaries * fix: Tighten Anthropic Tool Replay Edges
…agent (#225) * feat(hooks): add executingAgentId so hooks can attribute a tool batch to its agent The hook `agentId` is a subagent-scope marker — undefined for top-level agents (documented + asserted in subagentHooks.test.ts). That makes per-agent hook logic impossible in a multi-agent graph: a top-level agent running engine/runtime tools (traditional ToolNode path) emits PostToolBatch/PreToolUse/etc. with no way to tell which agent ran the batch. (The event-driven path passed agentId; the traditional path omitted it — an inconsistency, but 'fixing' it by populating agentId would break the subagent-scope contract.) Additive, non-breaking fix: introduce `executingAgentId` on BaseHookInput, always set to the owning agent's id (both ToolNode construction paths pass it). `agentId` is unchanged, so the subagent-scope semantics and existing hosts are untouched. - types: BaseHookInput.executingAgentId + ToolNodeOptions.executingAgentId - ToolNode: field + ctor param; surfaced at all 9 hook emission sites - Graph.initializeTools: pass executingAgentId on both ToolNode paths - test: assert top-level batch has agentId=undefined but executingAgentId=parent, and the subagent batch carries both * address Codex review: complete executingAgentId propagation - P2 (programmatic bridge): thread executingAgentId through ProgrammaticHookContext -> hookContext -> applyPreToolUseHooksForBridge, so inner programmatic tool calls (write_file/edit_file via the bridge) attribute PreToolUse to the owning agent instead of leaving it undefined. + unit test. - P2 (direct ToolNode callers): default executingAgentId to `executingAgentId ?? agentId` so callers constructing ToolNode directly with only the existing `agentId` option still get attribution. + test (default + explicit override). 104 tool/hook tests pass; tsc + eslint clean.
… Sort imports, Bump Node Engine, Test Sharding (#226) * fix: Update import path for isGoogleLike utility in stream.ts due to circular dependency * ci: add circular dependency check to CI workflow * feat: add import sorting script and update ESLint config to include scripts/**/*.ts - Introduced a new script to sort imports in TypeScript files according to project conventions. - Updated ESLint configuration to include TypeScript files in the scripts directory for linting. - Added new commands in package.json for sorting imports and checking import order. * chore: sort imports * chore: update TypeScript configuration for scripts and ESLint - Added a new tsconfig.json for the scripts directory, extending the main tsconfig.json. - Updated ESLint configuration to include the new scripts tsconfig for linting. - Modified main tsconfig.json to specify types for node and jest, and adjusted included files. * chore: update Node.js version and ESLint configuration - Added .nvmrc file to specify Node.js version 24. - Updated ESLint configuration to disable specific rules for test files. - Modified package.json to require Node.js version 24 and updated @types/node dependency. - Adjusted CI and publish workflows to use Node.js version 24. - Enhanced tsconfig-paths-bootstrap.mjs for better baseUrl handling. - Refactored logging.ts to improve type safety in write methods. * chore: remove unused inline attachment mime types from attachments.ts - Deleted the SUPPORTED_ATTACHMENT_MIMES constant, which included image and PDF mime types. - This change simplifies the attachment handling by relying solely on SUPPORTED_IMAGE_MIMES. * chore: update ESLint configuration to enforce no-nested-ternary rule as error - Changed the severity of the "no-nested-ternary" rule from warning to error in the ESLint configuration, promoting stricter code quality standards. * refactor: enhance workspace policy hook and improve Cloudflare execution engine - Updated the `createWorkspacePolicyHook` to introduce a `resolvePolicy` function for clearer policy resolution based on tool names. - Modified the `CloudflareSandboxExecutionEngine` to use a function for checking if the state is closed, preventing potential issues with concurrent mutations. - Simplified promise handling in `LocalCodingTools` by removing unnecessary checks and added a new utility function for formatting fallback grep display. * chore: update import sorting script to use Node instead of Bun - Changed the shebang in `sort-imports.ts` from Bun to Node for better compatibility. - Updated `package.json` scripts to reflect the change in runtime for sorting imports. - Removed Bun types from `tsconfig.json` to streamline type definitions. - Adjusted the import sorting logic to improve handling of file paths and sorting criteria. * ci: refactor CI workflow to introduce unit and integration test jobs - Renamed the existing test job to unit-tests and added a matrix strategy for sharding. - Created a new integration-tests job for change-gated integration testing. - Updated test execution commands to accommodate sharding in unit tests. * ci: enhance CI workflow with summarization tests and environment variables - Added a new job for summarization tests to the CI workflow. - Updated the unit test command to exclude an additional test file. - Introduced environment variables for various API keys to support the new summarization tests.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by
pull[bot] (v2.0.0-alpha.4)
Can you help keep this open source service alive? 💖 Please sponsor : )