feat(phase-4): WS4 — Agent Marketplace (public registry, pagination, filters)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
SentryAgent.ai Developer
2026-04-02 10:17:51 +00:00
parent d1e6af25aa
commit 89c99b666d
12 changed files with 417 additions and 1 deletions

View File

@@ -77,6 +77,8 @@ export interface IAgent {
owner: string;
deploymentEnv: DeploymentEnv;
status: AgentStatus;
/** Whether this agent is listed in the public marketplace. Defaults to false. */
isPublic: boolean;
createdAt: Date;
updatedAt: Date;
/** W3C DID identifier for this agent. Populated after DID generation. */
@@ -104,6 +106,54 @@ export interface IUpdateAgentRequest {
owner?: string;
deploymentEnv?: DeploymentEnv;
status?: AgentStatus;
/** Set to true to list this agent in the public marketplace. */
isPublic?: boolean;
}
// ============================================================================
// Agent Marketplace
// ============================================================================
/** Query filters for the public agent marketplace listing. */
export interface IMarketplaceFilters {
/** Full-text search across owner, capabilities, and agent type. */
q?: string;
/** Filter by a specific capability string. */
capability?: string;
/** Filter by owner (publisher). */
publisher?: string;
page: number;
limit: number;
}
/** Minimal W3C DID Document returned with marketplace agent detail. */
export interface IMinimalDIDDocument {
'@context': string[];
id: string;
controller: string;
verificationMethod: unknown[];
authentication: unknown[];
}
/** Agent card returned by the marketplace detail endpoint. */
export interface IMarketplaceAgentCard {
agentId: string;
agentType: AgentType;
version: string;
capabilities: string[];
owner: string;
deploymentEnv: DeploymentEnv;
did: string | null;
didDocument: IMinimalDIDDocument | null;
publishedAt: Date;
}
/** Paginated marketplace listing response. */
export interface IPaginatedMarketplaceResponse {
data: IMarketplaceAgentCard[];
total: number;
page: number;
limit: number;
}
/** Paginated list of agents. */