add targets field to filter tools per agent harness (pi/claude/all)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-08 09:39:38 +00:00
co-authored by Claude Opus 4.6
parent f2019a26b6
commit 1159978187
3 changed files with 9 additions and 0 deletions
+2
View File
@@ -32,6 +32,7 @@ type ToolMeta = {
label: string;
description: string;
inputs: Record<string, ToolParam>;
targets?: string;
};
type DiscoveredTool = {
@@ -138,6 +139,7 @@ function discoverTools(dirs: string[]): DiscoveredTool[] {
const { meta } = parseFrontmatter(content);
if (!meta.name || !meta.description) continue;
if ((meta.targets as string ?? 'all') === 'pi') continue;
if (seen.has(meta.name)) continue;
seen.add(meta.name);
+4
View File
@@ -21,6 +21,7 @@ type MarketplaceTool = {
body: string;
version: number;
language: string;
targets: string;
inputs: Record<string, ToolInput>;
implementation: string;
};
@@ -37,6 +38,9 @@ function buildToolMd(tool: MarketplaceTool): string {
lines.push(`description: ${tool.description}`);
lines.push(`version: ${tool.version}`);
lines.push(`language: ${tool.language}`);
if (tool.targets && tool.targets !== 'all') {
lines.push(`targets: ${tool.targets}`);
}
if (tool.inputs && Object.keys(tool.inputs).length > 0) {
lines.push('inputs:');
+3
View File
@@ -19,6 +19,7 @@ type ToolMeta = {
description: string;
language: 'typescript' | 'bash' | 'python';
inputs: Record<string, ToolParam>;
targets?: string;
};
function parseFrontmatter(content: string): { meta: Partial<ToolMeta>; body: string } {
@@ -171,6 +172,8 @@ function discoverTools(dir: string): Array<{ toolDir: string; entryFile: string;
continue;
}
if ((meta.targets as string ?? 'all') === 'claude') continue;
discovered.push({ toolDir, entryFile, meta: meta as ToolMeta });
}