Skip to content

fix(lr-4c90): enforce agent tool restrictions in sdk-bridge#149

Merged
akuehner merged 1 commit into
mainfrom
fix/lr-4c90-sdk-bridge-tool-enforcement
May 19, 2026
Merged

fix(lr-4c90): enforce agent tool restrictions in sdk-bridge#149
akuehner merged 1 commit into
mainfrom
fix/lr-4c90-sdk-bridge-tool-enforcement

Conversation

@akuehner
Copy link
Copy Markdown
Member

lr-4c90: Belt-and-suspenders tool enforcement for UI-path agent sessions. Adds readAgentToolsFromFile() to agents.js and sets claudeOpts.tools in sdk-bridge.js after claudeOpts.agent. Regression tests in test/agents.test.js. Part 1 (lr-5254 agent file format) already merged.

…k-bridge

The SDK's `agent` option only applies tool restrictions when the agent
file uses JSON array syntax for the tools field. Add belt-and-suspenders
enforcement: read the tools list directly from the agent's on-disk
frontmatter and set claudeOpts.tools explicitly in sdk-bridge.js.

Changes:
- lib/agents.js: add readAgentToolsFromFile(agentName) — reads the
  agent definition file from AGENTS_SOURCE_DIR, parses frontmatter,
  and returns string[] if the tools field is a valid JSON array (null
  otherwise). Comma-string format silently returns null, ensuring the
  old broken format cannot cause unintended restrictions.
- lib/sdk-bridge.js: require readAgentToolsFromFile from agents.js;
  after setting claudeOpts.agent, call the helper and set
  claudeOpts.tools when a tools array is found. Logs the enforced
  tool set at info level.
- test/agents.test.js: regression tests for readAgentToolsFromFile
  covering null guards, valid JSON array, comma-string rejection,
  missing tools field, malformed JSON, empty array, and slugification.

Part 1 (agent file format) completed by lr-5254 — all canonical
source files already use JSON array syntax.
@akuehner akuehner merged commit 12c0deb into main May 19, 2026
1 check passed
@akuehner akuehner deleted the fix/lr-4c90-sdk-bridge-tool-enforcement branch May 19, 2026 18:51
@clagentic-release-bot
Copy link
Copy Markdown

This issue has been resolved in version 1.2.0-beta.2 (beta).

To update, run:

npx @clagentic/console@1.2.0-beta.2

@clagentic-release-bot
Copy link
Copy Markdown

This issue has been resolved in version 1.2.0 (stable).

To update, run:

npx @clagentic/console@1.2.0

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant