[Init] Initial commit - NetMesh terminal manager
Some checks failed
build-packages / resolve bundled mosh-client (push) Has been cancelled
build-packages / resolve bundled et-client (push) Has been cancelled
build-packages / build-macos (push) Has been cancelled
build-packages / build-windows (push) Has been cancelled
build-packages / build-linux-x64 (push) Has been cancelled
build-packages / build-linux-arm64 (push) Has been cancelled
build-packages / release (push) Has been cancelled
build-packages / update Nix release metadata (push) Has been cancelled
build-packages / bump homebrew tap (push) Has been cancelled
test / lint-and-test (push) Has been cancelled
AI automation / Route event (push) Has been cancelled
AI automation / Hand reopened issue to maintainers (push) Has been cancelled
AI automation / Clean source issue state (push) Has been cancelled
AI automation / Reconcile handoffs (push) Has been cancelled
AI automation / Classify issue (push) Has been cancelled
AI automation / Claude Code smoke (push) Has been cancelled
AI automation / Review issue follow-up (push) Has been cancelled
AI automation / Publish issue follow-up (push) Has been cancelled
AI automation / Implement with Claude Code (push) Has been cancelled
AI automation / Publish implement PR (push) Has been cancelled
AI automation / Continue queued issue comments (push) Has been cancelled
AI automation / Codex review loop (push) Has been cancelled
AI automation / Publish Codex fix (push) Has been cancelled
AI automation / Clear Codex dispatch marker (push) Has been cancelled
AI automation / Own PR re-request Codex (push) Has been cancelled
AI automation / External PR re-request Codex (push) Has been cancelled
AI automation / Poll Codex reaction / retry (push) Has been cancelled
build-et-binaries / build-linux-x64 (push) Has been cancelled
build-et-binaries / build-linux-arm64 (push) Has been cancelled
build-et-binaries / build-macos-universal (push) Has been cancelled
build-et-binaries / build-windows-x64 (push) Has been cancelled
build-et-binaries / release (push) Has been cancelled
Some checks failed
build-packages / resolve bundled mosh-client (push) Has been cancelled
build-packages / resolve bundled et-client (push) Has been cancelled
build-packages / build-macos (push) Has been cancelled
build-packages / build-windows (push) Has been cancelled
build-packages / build-linux-x64 (push) Has been cancelled
build-packages / build-linux-arm64 (push) Has been cancelled
build-packages / release (push) Has been cancelled
build-packages / update Nix release metadata (push) Has been cancelled
build-packages / bump homebrew tap (push) Has been cancelled
test / lint-and-test (push) Has been cancelled
AI automation / Route event (push) Has been cancelled
AI automation / Hand reopened issue to maintainers (push) Has been cancelled
AI automation / Clean source issue state (push) Has been cancelled
AI automation / Reconcile handoffs (push) Has been cancelled
AI automation / Classify issue (push) Has been cancelled
AI automation / Claude Code smoke (push) Has been cancelled
AI automation / Review issue follow-up (push) Has been cancelled
AI automation / Publish issue follow-up (push) Has been cancelled
AI automation / Implement with Claude Code (push) Has been cancelled
AI automation / Publish implement PR (push) Has been cancelled
AI automation / Continue queued issue comments (push) Has been cancelled
AI automation / Codex review loop (push) Has been cancelled
AI automation / Publish Codex fix (push) Has been cancelled
AI automation / Clear Codex dispatch marker (push) Has been cancelled
AI automation / Own PR re-request Codex (push) Has been cancelled
AI automation / External PR re-request Codex (push) Has been cancelled
AI automation / Poll Codex reaction / retry (push) Has been cancelled
build-et-binaries / build-linux-x64 (push) Has been cancelled
build-et-binaries / build-linux-arm64 (push) Has been cancelled
build-et-binaries / build-macos-universal (push) Has been cancelled
build-et-binaries / build-windows-x64 (push) Has been cancelled
build-et-binaries / release (push) Has been cancelled
This commit is contained in:
262
types/global/netcatty-bridge-ai.d.ts
vendored
Normal file
262
types/global/netcatty-bridge-ai.d.ts
vendored
Normal file
@@ -0,0 +1,262 @@
|
||||
import type { CodebuddyAdvancedOptions } from '../../infrastructure/ai/types';
|
||||
|
||||
declare global {
|
||||
interface NetcattyBridge {
|
||||
// AI / external agents
|
||||
aiSyncProviders?(providers: Array<{ id: string; providerId: string; apiKey?: string; baseURL?: string; enabled: boolean }>): Promise<{ ok: boolean }>;
|
||||
aiChatStream?(requestId: string, url: string, headers?: Record<string, string>, body?: string, providerId?: string, idleTimeoutMs?: number): Promise<{ ok: boolean; statusCode?: number; statusText?: string; error?: string; aborted?: boolean }>;
|
||||
aiChatCancel?(requestId: string): Promise<boolean>;
|
||||
aiFetch?(url: string, method?: string, headers?: Record<string, string>, body?: string, providerId?: string, skipHostCheck?: boolean, followRedirects?: boolean, skipTLSVerify?: boolean): Promise<{ ok: boolean; status?: number; data: string; error?: string }>;
|
||||
aiAllowlistAddHost?(baseURL: string): Promise<{ ok: boolean; error?: string }>;
|
||||
aiExec?(sessionId: string, command: string, chatSessionId?: string): Promise<{ ok: boolean; stdout?: string; stderr?: string; exitCode?: number | null; error?: string }>;
|
||||
aiCattyCancelExec?(chatSessionId: string): Promise<{ ok: boolean; error?: string }>;
|
||||
aiDiscoverAgents?(options?: { refreshShellEnv?: boolean; apiKeyPresent?: boolean }): Promise<Array<{
|
||||
command: string;
|
||||
name: string;
|
||||
icon: string;
|
||||
description: string;
|
||||
args: string[];
|
||||
path: string;
|
||||
binPath?: string;
|
||||
version: string;
|
||||
available: boolean;
|
||||
installed?: boolean;
|
||||
authenticated?: boolean;
|
||||
authSource?: string | null;
|
||||
sdkBackend?: string;
|
||||
/** @deprecated Legacy persisted field from the pre-SDK migration. */
|
||||
acpCommand?: string;
|
||||
acpArgs?: string[];
|
||||
}>>;
|
||||
aiPrewarmShellEnv?(): Promise<{ ok: boolean; error?: string }>;
|
||||
aiCodexGetIntegration?(options?: { refreshShellEnv?: boolean; validateChatGptAuth?: boolean; codexPath?: string }): Promise<{
|
||||
state: 'connected_chatgpt' | 'connected_api_key' | 'connected_custom_config' | 'not_logged_in' | 'unknown';
|
||||
isConnected: boolean;
|
||||
rawOutput: string;
|
||||
exitCode: number | null;
|
||||
customConfig?: {
|
||||
providerName: string;
|
||||
displayName: string;
|
||||
baseUrl: string | null;
|
||||
envKey: string | null;
|
||||
envKeyPresent: boolean;
|
||||
hasHardcodedApiKey: boolean;
|
||||
model: string | null;
|
||||
authHash: string | null;
|
||||
} | null;
|
||||
}>;
|
||||
aiCodexStartLogin?(options?: { codexPath?: string }): Promise<{
|
||||
ok: boolean;
|
||||
session?: {
|
||||
sessionId: string;
|
||||
state: 'running' | 'success' | 'error' | 'cancelled';
|
||||
url: string | null;
|
||||
output: string;
|
||||
error: string | null;
|
||||
exitCode: number | null;
|
||||
codexPath?: string | null;
|
||||
};
|
||||
error?: string;
|
||||
}>;
|
||||
aiCodexGetLoginSession?(sessionId: string): Promise<{
|
||||
ok: boolean;
|
||||
session?: {
|
||||
sessionId: string;
|
||||
state: 'running' | 'success' | 'error' | 'cancelled';
|
||||
url: string | null;
|
||||
output: string;
|
||||
error: string | null;
|
||||
exitCode: number | null;
|
||||
codexPath?: string | null;
|
||||
};
|
||||
error?: string;
|
||||
}>;
|
||||
aiCodexCancelLogin?(sessionId: string): Promise<{
|
||||
ok: boolean;
|
||||
found?: boolean;
|
||||
session?: {
|
||||
sessionId: string;
|
||||
state: 'running' | 'success' | 'error' | 'cancelled';
|
||||
url: string | null;
|
||||
output: string;
|
||||
error: string | null;
|
||||
exitCode: number | null;
|
||||
codexPath?: string | null;
|
||||
};
|
||||
error?: string;
|
||||
}>;
|
||||
aiCodexLogout?(options?: { codexPath?: string }): Promise<{
|
||||
ok: boolean;
|
||||
state?: 'connected_chatgpt' | 'connected_api_key' | 'connected_custom_config' | 'not_logged_in' | 'unknown';
|
||||
isConnected?: boolean;
|
||||
rawOutput?: string;
|
||||
logoutOutput?: string;
|
||||
error?: string;
|
||||
}>;
|
||||
aiMcpUpdateSessions?(sessions: Array<{
|
||||
sessionId: string;
|
||||
hostId?: string;
|
||||
hostname: string;
|
||||
label: string;
|
||||
os?: string;
|
||||
username?: string;
|
||||
protocol?: string;
|
||||
shellType?: string;
|
||||
deviceType?: string;
|
||||
connected: boolean;
|
||||
hostChain?: Array<{ hostId: string; label?: string; hostname?: string }>;
|
||||
activePortForwards?: Array<{ ruleId: string; label?: string; type?: string; localPort?: number; status?: string }>;
|
||||
}>, chatSessionId?: string): Promise<{ ok: boolean }>;
|
||||
/** Update the app-owned live session snapshot used by existing AI scopes. */
|
||||
aiMcpUpdateLiveSessions?(sessions: Array<{
|
||||
sessionId: string;
|
||||
hostId?: string;
|
||||
hostname: string;
|
||||
label: string;
|
||||
os?: string;
|
||||
username?: string;
|
||||
protocol?: string;
|
||||
shellType?: string;
|
||||
deviceType?: string;
|
||||
connected: boolean;
|
||||
hostChain?: Array<{ hostId: string; label?: string; hostname?: string }>;
|
||||
activePortForwards?: Array<{ ruleId: string; label?: string; type?: string; localPort?: number; status?: string }>;
|
||||
}>): Promise<{ ok: boolean; count?: number; error?: string }>;
|
||||
/** Merge sessions into a chat scope without dropping existing entries. */
|
||||
aiMcpMergeSessions?(sessions: Array<{
|
||||
sessionId: string;
|
||||
hostId?: string;
|
||||
hostname: string;
|
||||
label: string;
|
||||
os?: string;
|
||||
username?: string;
|
||||
protocol?: string;
|
||||
shellType?: string;
|
||||
deviceType?: string;
|
||||
connected: boolean;
|
||||
hostChain?: Array<{ hostId: string; label?: string; hostname?: string }>;
|
||||
activePortForwards?: Array<{ ruleId: string; label?: string; type?: string; localPort?: number; status?: string }>;
|
||||
}>, chatSessionId: string): Promise<{ ok: boolean; count?: number; error?: string }>;
|
||||
onVaultAgentRequest?(cb: (payload: { requestId: string; op: string; params: Record<string, unknown> }) => void): () => void;
|
||||
respondVaultAgent?(requestId: string, result: Record<string, unknown>): Promise<{ ok: boolean; error?: string }>;
|
||||
aiMcpSetToolIntegrationMode?(mode: 'mcp' | 'skills'): Promise<{ ok: boolean; error?: string }>;
|
||||
aiUserSkillsGetStatus?(): Promise<{
|
||||
ok: boolean;
|
||||
directoryPath?: string;
|
||||
readyCount?: number;
|
||||
warningCount?: number;
|
||||
skills?: Array<{
|
||||
id: string;
|
||||
slug: string;
|
||||
directoryName: string;
|
||||
directoryPath: string;
|
||||
skillPath: string;
|
||||
name: string;
|
||||
description: string;
|
||||
status: 'ready' | 'warning';
|
||||
warnings: string[];
|
||||
}>;
|
||||
warnings?: string[];
|
||||
error?: string;
|
||||
}>;
|
||||
aiUserSkillsOpenFolder?(): Promise<{
|
||||
ok: boolean;
|
||||
directoryPath?: string;
|
||||
readyCount?: number;
|
||||
warningCount?: number;
|
||||
skills?: Array<{
|
||||
id: string;
|
||||
slug: string;
|
||||
directoryName: string;
|
||||
directoryPath: string;
|
||||
skillPath: string;
|
||||
name: string;
|
||||
description: string;
|
||||
status: 'ready' | 'warning';
|
||||
warnings: string[];
|
||||
}>;
|
||||
warnings?: string[];
|
||||
error?: string;
|
||||
}>;
|
||||
aiUserSkillsBuildContext?(prompt: string, selectedSkillSlugs?: string[]): Promise<{
|
||||
ok: boolean;
|
||||
context?: string;
|
||||
error?: string;
|
||||
}>;
|
||||
aiSkillsCliGetInvocation?(): Promise<{
|
||||
ok: boolean;
|
||||
skillPath?: string | null;
|
||||
commandPrefix?: string;
|
||||
launcherPath?: string | null;
|
||||
usesLauncher?: boolean;
|
||||
error?: string;
|
||||
}>;
|
||||
aiSdkAgentStream?(requestId: string, chatSessionId: string, sdkBackend: string, prompt: string, cwd?: string, providerId?: string, model?: string, existingSessionId?: string, historyMessages?: Array<{ role: 'user' | 'assistant'; content: string }>, images?: Array<{ base64Data: string; mediaType: string; filename?: string; filePath?: string }>, toolIntegrationMode?: 'mcp' | 'skills', defaultTargetSession?: { sessionId: string; hostname: string; label: string; os?: string; username?: string; protocol?: string; shellType?: string; deviceType?: string; connected: boolean; source: 'scope-target' | 'only-connected-in-scope' }, userSkillsContext?: string, agentEnv?: Record<string, string>, agentCommand?: string, codexRuntime?: 'sdk' | 'app-server', permissionMode?: 'observer' | 'confirm' | 'auto', codebuddyOptions?: CodebuddyAdvancedOptions): Promise<{ ok: boolean; error?: string }>;
|
||||
aiSdkAgentSteer?(requestId: string, chatSessionId: string, prompt: string, images: Array<{ base64Data: string; mediaType: string; filename?: string; filePath?: string }> | undefined, clientUserMessageId: string): Promise<{
|
||||
status: 'accepted' | 'not-steerable' | 'busy' | 'inactive' | 'unsupported' | 'cancelled' | 'failed';
|
||||
message?: string;
|
||||
turnKind?: 'review' | 'compact';
|
||||
}>;
|
||||
aiSdkAgentListModels?(sdkBackend: string, cwd?: string, providerId?: string, chatSessionId?: string, agentEnv?: Record<string, string>, agentCommand?: string, codexRuntime?: 'sdk' | 'app-server'): Promise<{ ok: boolean; models?: Array<{ id: string; name: string; description?: string; thinkingLevels?: string[]; defaultThinkingLevel?: string }>; currentModelId?: string | null; warning?: string; error?: string }>;
|
||||
codexAppServerGetStatus?(agentCommand?: string, agentEnv?: Record<string, string>): Promise<{ ok: boolean; available: boolean; error?: string }>;
|
||||
onCodexAppServerInteractionRequest?(cb: (payload: Record<string, unknown>) => void): () => void;
|
||||
onCodexAppServerInteractionCleared?(cb: (payload: { interactionIds: string[]; chatSessionId?: string }) => void): () => void;
|
||||
respondCodexAppServerInteraction?(payload: Record<string, unknown>): Promise<{ ok: boolean; error?: string }>;
|
||||
cancelCodexAppServerInteractionTimeout?(interactionId: string): Promise<{ ok: boolean; cancelled?: boolean; error?: string }>;
|
||||
aiCattyCancelExec?(chatSessionId: string): Promise<unknown>;
|
||||
aiSetChatSessionCancelled?(chatSessionId: string, cancelled?: boolean): Promise<{ ok: boolean; error?: string }>;
|
||||
aiMcpSyncPermissionGrants?(grants: Array<Record<string, unknown>>): Promise<{ ok: boolean; count?: number; error?: string }>;
|
||||
externalMcpGetStatus?(): Promise<{
|
||||
ok: boolean;
|
||||
enabled?: boolean;
|
||||
state?: string;
|
||||
host?: string;
|
||||
port?: number | null;
|
||||
discoveryPath?: string | null;
|
||||
launcherPath?: string | null;
|
||||
chatSessionId?: string;
|
||||
exposedSessionCount?: number;
|
||||
mode?: 'temporary' | 'persistent';
|
||||
idleTimeoutMinutes?: number;
|
||||
sessionIdleTimeoutMinutes?: number;
|
||||
lastActivityAt?: number | null;
|
||||
idleExpiresAt?: number | null;
|
||||
permissionMode?: string;
|
||||
hostRunning?: boolean;
|
||||
error?: string | null;
|
||||
}>;
|
||||
externalMcpSetEnabled?(enabled: boolean): Promise<Record<string, unknown>>;
|
||||
externalMcpSetConfig?(config: {
|
||||
mode?: 'temporary' | 'persistent';
|
||||
idleTimeoutMinutes?: number;
|
||||
sessionIdleTimeoutMinutes?: number;
|
||||
}): Promise<Record<string, unknown>>;
|
||||
externalMcpCodexGetStatus?(): Promise<Record<string, unknown>>;
|
||||
externalMcpCodexAdd?(): Promise<Record<string, unknown>>;
|
||||
externalMcpClaudeGetStatus?(): Promise<Record<string, unknown>>;
|
||||
externalMcpClaudeAdd?(): Promise<Record<string, unknown>>;
|
||||
externalMcpGrokGetStatus?(): Promise<Record<string, unknown>>;
|
||||
externalMcpGrokAdd?(): Promise<Record<string, unknown>>;
|
||||
aiSdkAgentCancel?(requestId: string, chatSessionId?: string): Promise<{ ok: boolean; error?: string }>;
|
||||
aiSdkAgentCleanup?(chatSessionId: string): Promise<{ ok: boolean }>;
|
||||
aiSdkAgentElicitationResponse?(elicitationId: string, action: string, content?: Record<string, unknown>): Promise<{ ok: boolean; error?: string }>;
|
||||
aiSdkAgentMcpStatus?(agentEnv?: Record<string, string>, agentCommand?: string): Promise<{ ok: boolean; servers?: Array<Record<string, unknown>>; error?: string }>;
|
||||
aiSdkAgentAccountInfo?(agentEnv?: Record<string, string>, agentCommand?: string): Promise<{ ok: boolean; account?: Record<string, unknown> | null; error?: string }>;
|
||||
aiSdkAgentPluginInstall?(options: { name: string; marketplace: string }): Promise<{ ok: boolean; result?: { success: boolean; message: string }; error?: string }>;
|
||||
aiSdkAgentPluginEnable?(name: string, marketplace: string): Promise<{ ok: boolean; result?: { success: boolean; message: string }; error?: string }>;
|
||||
aiSdkAgentPluginDisable?(name: string, marketplace: string): Promise<{ ok: boolean; result?: { success: boolean; message: string }; error?: string }>;
|
||||
aiSdkAgentMarketplaceInstall?(options: { name: string; repo: string; autoUpdate?: boolean }): Promise<{ ok: boolean; result?: { success: boolean; message: string }; error?: string }>;
|
||||
aiSdkAgentMarketplaceRemove?(options: { name: string; removePlugins?: boolean }): Promise<{ ok: boolean; result?: { success: boolean; message: string }; error?: string }>;
|
||||
onAiSdkAgentEvent?(requestId: string, cb: (event: Record<string, unknown>) => void): () => void;
|
||||
onAiSdkAgentDone?(requestId: string, cb: () => void): () => void;
|
||||
onAiSdkAgentError?(requestId: string, cb: (error: string) => void): () => void;
|
||||
onAiStreamData?(requestId: string, cb: (data: string) => void): () => void;
|
||||
onAiStreamEnd?(requestId: string, cb: () => void): () => void;
|
||||
onAiStreamError?(requestId: string, cb: (error: string) => void): () => void;
|
||||
onAiAgentStdout?(agentId: string, cb: (data: string) => void): () => void;
|
||||
onAiAgentStderr?(agentId: string, cb: (data: string) => void): () => void;
|
||||
onAiAgentExit?(agentId: string, cb: (code: number | null) => void): () => void;
|
||||
}
|
||||
}
|
||||
|
||||
export {};
|
||||
Reference in New Issue
Block a user