Files

164 lines
4.5 KiB
JavaScript
Raw Permalink Normal View History

"use strict";
const { CAPABILITY_STATUS } = require("../constants.cjs");
/** @type {import("../types.cjs").CapabilityDefinition[]} */
const META_CAPABILITIES = [
{
id: "session.environment",
domain: "session",
status: CAPABILITY_STATUS.IMPLEMENTED,
description: "List scoped terminal sessions available to the agent.",
policy: {
write: false,
sensitiveRead: false,
longRunning: false,
requiresChatSession: true,
bypassesObserverBlock: false,
bypassesApproval: true,
bypassesChatCancel: true,
},
surfaces: {
builtin: { rpcMethod: "netcatty/getContext", mcpTool: "get_environment" },
public: { rpcMethod: "public/getEnvironment", mcpTool: "get_environment" },
cli: { command: ["env"] },
},
},
{
id: "meta.status",
domain: "meta",
status: CAPABILITY_STATUS.IMPLEMENTED,
description: "Return bridge runtime status and policy configuration.",
policy: {
write: false,
sensitiveRead: false,
longRunning: false,
requiresChatSession: false,
bypassesObserverBlock: false,
bypassesApproval: true,
bypassesChatCancel: true,
},
surfaces: {
builtin: { rpcMethod: "netcatty/getStatus" },
public: { rpcMethod: "public/getStatus" },
cli: { command: ["status"] },
},
},
{
id: "attachment.list",
domain: "attachment",
status: CAPABILITY_STATUS.IMPLEMENTED,
description: "List user-attached files in the current AI chat scope.",
policy: {
write: false,
sensitiveRead: false,
longRunning: false,
requiresChatSession: true,
bypassesObserverBlock: false,
bypassesApproval: true,
bypassesChatCancel: true,
},
surfaces: {
builtin: { rpcMethod: "netcatty/listAttachments", mcpTool: "list_attachments" },
cli: { command: ["attachment", "list"] },
},
},
{
id: "attachment.read",
domain: "attachment",
status: CAPABILITY_STATUS.IMPLEMENTED,
description: "Read a user-attached file from the current AI chat scope.",
policy: {
write: false,
sensitiveRead: true,
longRunning: false,
requiresChatSession: true,
bypassesObserverBlock: false,
bypassesApproval: true,
bypassesChatCancel: true,
},
surfaces: {
builtin: { rpcMethod: "netcatty/readAttachment", mcpTool: "read_attachment" },
cli: { command: ["attachment", "read"] },
},
},
{
id: "session.cancel",
domain: "session",
status: CAPABILITY_STATUS.IMPLEMENTED,
description: "Cancel in-flight operations for a chat session.",
policy: {
write: false,
sensitiveRead: false,
longRunning: false,
requiresChatSession: true,
bypassesObserverBlock: false,
bypassesApproval: true,
bypassesChatCancel: true,
},
surfaces: {
builtin: { rpcMethod: "netcatty/setCancelled" },
cli: { command: ["cancel"] },
},
},
{
id: "session.resume",
domain: "session",
status: CAPABILITY_STATUS.IMPLEMENTED,
description: "Resume write operations for a cancelled chat session.",
policy: {
write: false,
sensitiveRead: false,
longRunning: false,
requiresChatSession: true,
bypassesObserverBlock: false,
bypassesApproval: true,
bypassesChatCancel: true,
},
surfaces: {
builtin: { rpcMethod: "netcatty/setCancelled" },
cli: { command: ["resume"] },
},
},
{
id: "session.get",
domain: "session",
status: CAPABILITY_STATUS.IMPLEMENTED,
description: "Get metadata for a single scoped session.",
policy: {
write: false,
sensitiveRead: false,
longRunning: false,
requiresChatSession: true,
bypassesObserverBlock: false,
bypassesApproval: true,
bypassesChatCancel: true,
},
surfaces: {
builtin: { rpcMethod: "netcatty/getContext" },
cli: { command: ["session"] },
},
},
{
id: "session.close",
domain: "session",
status: CAPABILITY_STATUS.IMPLEMENTED,
description: "Close a terminal session previously opened by host_open in the current AI scope.",
policy: {
write: true,
sensitiveRead: false,
longRunning: false,
requiresChatSession: true,
bypassesObserverBlock: true,
bypassesApproval: true,
bypassesChatCancel: true,
},
surfaces: {
global: { rpcMethod: "session/close" },
public: { rpcMethod: "public/session/close", mcpTool: "session_close" },
},
},
];
module.exports = { META_CAPABILITIES };