Skip to content

feat(nodes): expose policy-filtered discovery tool#327

Open
bogdanovich wants to merge 1 commit into
mainfrom
feat/node-discovery-tools
Open

feat(nodes): expose policy-filtered discovery tool#327
bogdanovich wants to merge 1 commit into
mainfrom
feat/node-discovery-tools

Conversation

@bogdanovich

Copy link
Copy Markdown
Owner

What changed or was removed

  • Added a read-only nodes model tool with list and describe actions.
  • Applied each agent's effective named-target policy before returning discovery data.
  • Resolved live node state through the gateway registry while redacting raw node IDs, configured node references, public keys, aliases, and capability schemas.
  • Registered the tool across startup and config reloads, including removal when nodes are disabled.

Why

The node companion MVP needs a bounded discovery surface before remote invocation is exposed. Agents should reason only about operator-owned target names and pairing-approved command summaries, never transport or identity details.

User and developer impact

Agents with an explicit target_policy can list their configured targets and inspect approved command names, risk classes, cancellation/progress support, platform, version, and health. Missing policies fail closed and expose no targets. This PR does not permit remote execution.

Validation

  • go test -tags goolm,stdjson ./...
  • golangci-lint run --allow-parallel-runners --build-tags=goolm,stdjson ./pkg/tools/... ./pkg/gateway/...
  • go test -tags goolm,stdjson ./pkg/tools ./pkg/gateway
  • git diff --check

Later PRs

  • Add typed invoke, status, and cancel actions with durable human approval.
  • Emit redacted node runtime audit events.
  • Complete the node MVP audit and document intentional gaps.

@bogdanovich
bogdanovich marked this pull request as ready for review July 24, 2026 11:54
@bogdanovich

Copy link
Copy Markdown
Owner Author

Automated review by Reviewer agent.

Review Summary

Direct inspection found no independently validated actionable defect, but the required Codex advisory analysis could not run because ACPx returned an internal runtime error.

Coverage Notes

  • Required Codex advisory analysis was unavailable due to ACPx runtime failure; queue worker should treat this result as inconclusive rather than clean.

@bogdanovich

Copy link
Copy Markdown
Owner Author

/forgeclaw review

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

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant