MCPcopy Create free account
hub / github.com/ConsortiumAI/Consortium / claudeRemote

Function claudeRemote

packages/consortium-cli/src/claude/claudeRemote.ts:30–186  ·  view source on GitHub ↗
(opts: {
    sessionId: string | null,
    path: string,
    mcpServers?: Record<string, any>,
    claudeEnvVars?: Record<string, string>,
    claudeArgs?: string[],
    allowedTools: string[],
    signal?: AbortSignal,
    canCallTool: (toolName: string, input: unknown, mode: EnhancedMode, options: { signal: AbortSignal }) => Promise<PermissionResult>,

    nextMessage: () => Promise<{ message: string, mode: EnhancedMode } | null>,
    onReady: () => void,
    isAborted: (toolCallId: string) => boolean,

    onSessionFound: (id: string) => void,
    onThinkingChange?: (thinking: boolean) => void,
    onMessage: (message: SDKMessage) => void,
    onCompletionEvent?: (message: string) => void,
    onSessionReset?: () => void
})

Source from the content-addressed store, hash-verified

28}
29
30export async function claudeRemote(opts: {
31 sessionId: string | null,
32 path: string,
33 mcpServers?: Record<string, any>,
34 claudeEnvVars?: Record<string, string>,
35 claudeArgs?: string[],
36 allowedTools: string[],
37 signal?: AbortSignal,
38 canCallTool: (toolName: string, input: unknown, mode: EnhancedMode, options: { signal: AbortSignal }) => Promise<PermissionResult>,
39
40 nextMessage: () => Promise<{ message: string, mode: EnhancedMode } | null>,
41 onReady: () => void,
42 isAborted: (toolCallId: string) => boolean,
43
44 onSessionFound: (id: string) => void,
45 onThinkingChange?: (thinking: boolean) => void,
46 onMessage: (message: SDKMessage) => void,
47 onCompletionEvent?: (message: string) => void,
48 onSessionReset?: () => void
49}) {
50 let startFrom = opts.sessionId;
51
52 // Extract --resume from claudeArgs if present
53 if (!startFrom && opts.claudeArgs) {
54 for (let i = 0; i < opts.claudeArgs.length; i++) {
55 if (opts.claudeArgs[i] === '--resume') {
56 if (i + 1 < opts.claudeArgs.length) {
57 const nextArg = opts.claudeArgs[i + 1];
58 if (!nextArg.startsWith('-') && nextArg.includes('-')) {
59 startFrom = nextArg;
60 logger.debug(`[claudeRemote] Found --resume with session ID: ${startFrom}`);
61 break;
62 }
63 }
64 break;
65 }
66 }
67 }
68
69 // Set environment variables for Claude process
70 if (opts.claudeEnvVars) {
71 Object.entries(opts.claudeEnvVars).forEach(([key, value]) => {
72 process.env[key] = value;
73 });
74 }
75
76 // Get initial message
77 const initial = await opts.nextMessage();
78 if (!initial) return;
79
80 // Handle /clear command
81 if (initial.message.trim() === '/clear') {
82 if (opts.onCompletionEvent) opts.onCompletionEvent('Context was reset');
83 if (opts.onSessionReset) opts.onSessionReset();
84 return;
85 }
86
87 // Handle /compact command

Callers 1

claudeRemoteLauncherFunction · 0.90

Calls 7

pushMethod · 0.95
endMethod · 0.95
getDefaultClaudeCodePathFunction · 0.90
queryFunction · 0.90
mapToClaudeModeFunction · 0.85
updateThinkingFunction · 0.85
debugMethod · 0.80

Tested by

no test coverage detected