[goose2] MCP Apps: hydrate and replay app payloads in Goose2 (#8632)
Signed-off-by: Andrew Harvard <aharvard@squareup.com>
This commit is contained in:
+55
-1
@@ -2,7 +2,17 @@ import type {
|
||||
Implementation,
|
||||
InitializeRequest,
|
||||
} from "@agentclientprotocol/sdk";
|
||||
import { RESOURCE_MIME_TYPE } from "@modelcontextprotocol/ext-apps";
|
||||
import { RESOURCE_MIME_TYPE } from "@modelcontextprotocol/ext-apps/app-bridge";
|
||||
import type {
|
||||
McpUiAppResourceConfig,
|
||||
McpUiAppToolConfig,
|
||||
} from "@modelcontextprotocol/ext-apps/server";
|
||||
import type {
|
||||
BlobResourceContents,
|
||||
ReadResourceResult,
|
||||
TextResourceContents,
|
||||
Tool,
|
||||
} from "@modelcontextprotocol/sdk/types.js";
|
||||
|
||||
export const GOOSE_MCP_UI_EXTENSION_ID = "io.modelcontextprotocol/ui" as const;
|
||||
|
||||
@@ -14,6 +24,50 @@ export interface GooseMcpHostCapabilities {
|
||||
extensions: Record<string, GooseMcpUiExtensionSettings>;
|
||||
}
|
||||
|
||||
export type GooseToolUiMetadata = Extract<
|
||||
McpUiAppToolConfig["_meta"],
|
||||
{ ui: unknown }
|
||||
>["ui"];
|
||||
|
||||
export type GooseToolMetadata = NonNullable<Tool["_meta"]> & {
|
||||
ui?: GooseToolUiMetadata;
|
||||
goose_extension?: string;
|
||||
};
|
||||
|
||||
export type GooseSessionTool = Tool & {
|
||||
meta?: GooseToolMetadata;
|
||||
_meta?: GooseToolMetadata;
|
||||
};
|
||||
|
||||
export type GooseTextResourceContents = TextResourceContents;
|
||||
|
||||
export type GooseBlobResourceContents = BlobResourceContents;
|
||||
|
||||
export type GooseResourceContents = TextResourceContents | BlobResourceContents;
|
||||
|
||||
export type GooseReadResourceResult = ReadResourceResult;
|
||||
|
||||
export type GooseResourceMetadata = NonNullable<
|
||||
Extract<NonNullable<McpUiAppResourceConfig["_meta"]>, { ui?: unknown }>["ui"]
|
||||
>;
|
||||
|
||||
export interface GooseMcpAppToolPayload {
|
||||
toolName: string;
|
||||
extensionName: string;
|
||||
resourceUri: string;
|
||||
toolMeta?: GooseToolMetadata;
|
||||
resourceResult?: GooseReadResourceResult | null;
|
||||
readError?: string;
|
||||
}
|
||||
|
||||
export interface GooseToolCallUpdateMeta {
|
||||
goose?: {
|
||||
mcpApp?: GooseMcpAppToolPayload;
|
||||
[key: string]: unknown;
|
||||
};
|
||||
[key: string]: unknown;
|
||||
}
|
||||
|
||||
export interface GooseClientMeta {
|
||||
goose: {
|
||||
mcpHostCapabilities: GooseMcpHostCapabilities;
|
||||
|
||||
Reference in New Issue
Block a user