OSS-first docs

These docs teach the open system first: contracts, generated surfaces, runtimes, governance, and incremental adoption. Studio shows up as the operating layer on top, not as the source of truth.

agent.tool.list

Lists tools for an organization with optional filtering.

  • Type: operation (query)
  • Version: 1.0.0
  • Stability: stable
  • Owners: @agent-console-team
  • Tags: tool, list
  • File: packages/examples/agent-console/src/tool/tool.operation.ts
  • field.key.label
    agent.tool.list
    field.version.label
    1.0.0
    field.type.label
    operation (query)
    field.title.label
    agent.tool.list
    field.description.label

    Lists tools for an organization with optional filtering.

  • Type: operation (query)
  • Version: 1.0.0
  • Stability: stable
  • Owners: @agent-console-team
  • Tags: tool, list
  • File: packages/examples/agent-console/src/tool/tool.operation.ts
  • field.tags.label
    tool,list
    field.owners.label
    @agent-console-team
    field.stability.label
    stable

    Lists tools for an organization with optional filtering.

    Goal

    Browse and search available tools.

    Context

    Tool list/dashboard view.

    Source Definition

    import {
    	defineCommand,
    	defineQuery,
    } from '@lssm-tech/lib.contracts-spec/operations';
    import { defineSchemaModel, ScalarTypeEnum } from '@lssm-tech/lib.schema';
    import { ToolCategoryEnum, ToolStatusEnum } from './tool.enum';
    import {
    	CreateToolInputModel,
    	ToolModel,
    	ToolSummaryModel,
    	UpdateToolInputModel,
    } from './tool.schema';
    
    export const ListToolsQuery = defineQuery({
    	meta: {
    		key: 'agent.tool.list',
    		version: '1.0.0',
    		stability: 'stable',
    		owners: ['@agent-console-team'],
    		tags: ['tool', 'list'],
    		description: 'Lists tools for an organization with optional filtering.',
    		goal: 'Browse and search available tools.',
    		context: 'Tool list/dashboard view.',
    	},
    	io: {
    		input: defineSchemaModel({
    			name: 'ListToolsInput',
    			fields: {
    				organizationId: {
    					type: ScalarTypeEnum.String_unsecure(),
    					isOptional: false,
    				},
    				category: { type: ToolCategoryEnum, isOptional: true },
    				status: { type: ToolStatusEnum, isOptional: true },
    				search: { type: ScalarTypeEnum.String_unsecure(), isOptional: true },
    				limit: {
    					type: ScalarTypeEnum.Int_unsecure(),
    					isOptional: true,
    					defaultValue: 20,
    				},
    				offset: {
    					type: ScalarTypeEnum.Int_unsecure(),
    					isOptional: true,
    					defaultValue: 0,
    				},
    			},
    		}),
    		output: defineSchemaModel({
    			name: 'ListToolsOutput',
    			fields: {
    				items: { type: ToolSummaryModel, isArray: true, isOptional: false },
    				total: { type: ScalarTypeEnum.Int_unsecure(), isOptional: false },
    				hasMore: { type: ScalarTypeEnum.Boolean(), isOptional: false },
    			},
    		}),
    	},
    	policy: { auth: 'user' },
    	acceptance: {
    		scenarios: [
    			{
    				key: 'list-tools-happy-path',
    				given: ['Organization has tools'],
    				when: ['User lists tools'],
    				then: ['Paginated list of tools is returned'],
    			},
    		],
    		examples: [
    			{
    				key: 'list-by-category',
    				input: { organizationId: 'org-123', category: 'api', limit: 10 },
    				output: { items: [], total: 0, hasMore: false },
    			},
    		],
    	},
    });