MCPcopy
hub / github.com/continuedev/continue / Core

Class Core

core/core.ts:89–1460  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

87import { Logger } from "./util/Logger.js";
88
89export class Core {
90 configHandler: ConfigHandler;
91 codeBaseIndexer: CodebaseIndexer;
92 completionProvider: CompletionProvider;
93 nextEditProvider: NextEditProvider;
94 private docsService: DocsService;
95 private globalContext = new GlobalContext();
96 llmLogger = new LLMLogger();
97
98 private messageAbortControllers = new Map<string, AbortController>();
99 private addMessageAbortController(id: string): AbortController {
100 const controller = new AbortController();
101 this.messageAbortControllers.set(id, controller);
102 controller.signal.addEventListener("abort", () => {
103 this.messageAbortControllers.delete(id);
104 });
105 return controller;
106 }
107 private abortById(messageId: string) {
108 this.messageAbortControllers.get(messageId)?.abort();
109 }
110
111 invoke<T extends keyof ToCoreProtocol>(
112 messageType: T,
113 data: ToCoreProtocol[T][0],
114 ): ToCoreProtocol[T][1] {
115 return this.messenger.invoke(messageType, data);
116 }
117
118 send<T extends keyof FromCoreProtocol>(
119 messageType: T,
120 data: FromCoreProtocol[T][0],
121 messageId?: string,
122 ): string {
123 return this.messenger.send(messageType, data, messageId);
124 }
125
126 // TODO: It shouldn't actually need an IDE type, because this can happen
127 // through the messenger (it does in the case of any non-VS Code IDEs already)
128 constructor(
129 private readonly messenger: IMessenger<ToCoreProtocol, FromCoreProtocol>,
130 private readonly ide: IDE,
131 ) {
132 try {
133 // Ensure .continue directory is created
134 migrateV1DevDataFiles();
135
136 const ideInfoPromise = messenger.request("getIdeInfo", undefined);
137 const ideSettingsPromise = messenger.request("getIdeSettings", undefined);
138 this.configHandler = new ConfigHandler(this.ide, this.llmLogger);
139
140 this.docsService = DocsService.createSingleton(
141 this.configHandler,
142 this.ide,
143 this.messenger,
144 );
145
146 MCPManagerSingleton.getInstance().onConnectionsRefreshed = () => {

Callers

nothing calls this directly

Calls 4

fetchwithRequestOptionsFunction · 0.90
getContextItemsMethod · 0.65
showToastMethod · 0.65
loadConfigMethod · 0.45

Tested by

no test coverage detected