@theia/ai-copilot 1.76.0-next.4 → 1.76.0-next.42
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +87 -14
- package/lib/browser/copilot-auth-dialog.d.ts.map +1 -1
- package/lib/browser/copilot-auth-dialog.js +19 -11
- package/lib/browser/copilot-auth-dialog.js.map +1 -1
- package/lib/browser/copilot-frontend-application-contribution.d.ts +21 -1
- package/lib/browser/copilot-frontend-application-contribution.d.ts.map +1 -1
- package/lib/browser/copilot-frontend-application-contribution.js +129 -26
- package/lib/browser/copilot-frontend-application-contribution.js.map +1 -1
- package/lib/common/copilot-auth-service.d.ts +27 -24
- package/lib/common/copilot-auth-service.d.ts.map +1 -1
- package/lib/common/copilot-language-models-manager.d.ts +6 -22
- package/lib/common/copilot-language-models-manager.d.ts.map +1 -1
- package/lib/common/copilot-language-models-manager.js +1 -13
- package/lib/common/copilot-language-models-manager.js.map +1 -1
- package/lib/common/copilot-preferences.d.ts +1 -0
- package/lib/common/copilot-preferences.d.ts.map +1 -1
- package/lib/common/copilot-preferences.js +24 -6
- package/lib/common/copilot-preferences.js.map +1 -1
- package/lib/common/index.d.ts +0 -1
- package/lib/common/index.d.ts.map +1 -1
- package/lib/common/index.js +0 -1
- package/lib/common/index.js.map +1 -1
- package/lib/node/copilot-auth-service-impl.d.ts +25 -16
- package/lib/node/copilot-auth-service-impl.d.ts.map +1 -1
- package/lib/node/copilot-auth-service-impl.js +67 -183
- package/lib/node/copilot-auth-service-impl.js.map +1 -1
- package/lib/node/copilot-auth-service-impl.spec.js +104 -168
- package/lib/node/copilot-auth-service-impl.spec.js.map +1 -1
- package/lib/node/copilot-backend-module.d.ts.map +1 -1
- package/lib/node/copilot-backend-module.js +10 -2
- package/lib/node/copilot-backend-module.js.map +1 -1
- package/lib/node/copilot-cli-auth-provider.d.ts +146 -0
- package/lib/node/copilot-cli-auth-provider.d.ts.map +1 -0
- package/lib/node/copilot-cli-auth-provider.js +430 -0
- package/lib/node/copilot-cli-auth-provider.js.map +1 -0
- package/lib/node/copilot-cli-auth-provider.spec.d.ts +2 -0
- package/lib/node/copilot-cli-auth-provider.spec.d.ts.map +1 -0
- package/lib/node/copilot-cli-auth-provider.spec.js +249 -0
- package/lib/node/copilot-cli-auth-provider.spec.js.map +1 -0
- package/lib/node/copilot-cli-locator.d.ts +120 -0
- package/lib/node/copilot-cli-locator.d.ts.map +1 -0
- package/lib/node/copilot-cli-locator.js +348 -0
- package/lib/node/copilot-cli-locator.js.map +1 -0
- package/lib/node/copilot-cli-locator.spec.d.ts +2 -0
- package/lib/node/copilot-cli-locator.spec.d.ts.map +1 -0
- package/lib/node/copilot-cli-locator.spec.js +327 -0
- package/lib/node/copilot-cli-locator.spec.js.map +1 -0
- package/lib/node/copilot-credential-store.d.ts +45 -0
- package/lib/node/copilot-credential-store.d.ts.map +1 -0
- package/lib/node/copilot-credential-store.js +96 -0
- package/lib/node/copilot-credential-store.js.map +1 -0
- package/lib/node/copilot-credential-store.spec.d.ts +2 -0
- package/lib/node/copilot-credential-store.spec.d.ts.map +1 -0
- package/lib/node/copilot-credential-store.spec.js +93 -0
- package/lib/node/copilot-credential-store.spec.js.map +1 -0
- package/lib/node/copilot-language-models-manager-impl.d.ts +44 -20
- package/lib/node/copilot-language-models-manager-impl.d.ts.map +1 -1
- package/lib/node/copilot-language-models-manager-impl.js +112 -65
- package/lib/node/copilot-language-models-manager-impl.js.map +1 -1
- package/lib/node/copilot-language-models-manager-impl.spec.d.ts +2 -0
- package/lib/node/copilot-language-models-manager-impl.spec.d.ts.map +1 -0
- package/lib/node/copilot-language-models-manager-impl.spec.js +162 -0
- package/lib/node/copilot-language-models-manager-impl.spec.js.map +1 -0
- package/lib/node/copilot-runtime-env.d.ts +20 -0
- package/lib/node/copilot-runtime-env.d.ts.map +1 -0
- package/lib/node/copilot-runtime-env.js +49 -0
- package/lib/node/copilot-runtime-env.js.map +1 -0
- package/lib/node/copilot-sdk-client-provider.d.ts +103 -0
- package/lib/node/copilot-sdk-client-provider.d.ts.map +1 -0
- package/lib/node/copilot-sdk-client-provider.js +247 -0
- package/lib/node/copilot-sdk-client-provider.js.map +1 -0
- package/lib/node/copilot-sdk-client-provider.spec.d.ts +2 -0
- package/lib/node/copilot-sdk-client-provider.spec.d.ts.map +1 -0
- package/lib/node/copilot-sdk-client-provider.spec.js +215 -0
- package/lib/node/copilot-sdk-client-provider.spec.js.map +1 -0
- package/lib/node/copilot-sdk-language-model.d.ts +85 -0
- package/lib/node/copilot-sdk-language-model.d.ts.map +1 -0
- package/lib/node/copilot-sdk-language-model.js +301 -0
- package/lib/node/copilot-sdk-language-model.js.map +1 -0
- package/lib/node/copilot-sdk-language-model.spec.d.ts +2 -0
- package/lib/node/copilot-sdk-language-model.spec.d.ts.map +1 -0
- package/lib/node/copilot-sdk-language-model.spec.js +315 -0
- package/lib/node/copilot-sdk-language-model.spec.js.map +1 -0
- package/lib/node/copilot-sdk-loader.d.ts +57 -0
- package/lib/node/copilot-sdk-loader.d.ts.map +1 -0
- package/lib/node/copilot-sdk-loader.js +133 -0
- package/lib/node/copilot-sdk-loader.js.map +1 -0
- package/lib/node/copilot-sdk-loader.spec.d.ts +2 -0
- package/lib/node/copilot-sdk-loader.spec.d.ts.map +1 -0
- package/lib/node/copilot-sdk-loader.spec.js +113 -0
- package/lib/node/copilot-sdk-loader.spec.js.map +1 -0
- package/lib/node/copilot-sdk-mappers.d.ts +54 -0
- package/lib/node/copilot-sdk-mappers.d.ts.map +1 -0
- package/lib/node/copilot-sdk-mappers.js +158 -0
- package/lib/node/copilot-sdk-mappers.js.map +1 -0
- package/lib/node/copilot-sdk-mappers.spec.d.ts +2 -0
- package/lib/node/copilot-sdk-mappers.spec.d.ts.map +1 -0
- package/lib/node/copilot-sdk-mappers.spec.js +168 -0
- package/lib/node/copilot-sdk-mappers.spec.js.map +1 -0
- package/lib/node/copilot-sdk-types.d.ts +208 -0
- package/lib/node/copilot-sdk-types.d.ts.map +1 -0
- package/lib/{common/copilot-oauth-config.js → node/copilot-sdk-types.js} +2 -13
- package/lib/node/copilot-sdk-types.js.map +1 -0
- package/lib/node/index.d.ts +9 -1
- package/lib/node/index.d.ts.map +1 -1
- package/lib/node/index.js +9 -1
- package/lib/node/index.js.map +1 -1
- package/package.json +4 -6
- package/src/browser/copilot-auth-dialog.tsx +20 -16
- package/src/browser/copilot-frontend-application-contribution.ts +144 -31
- package/src/common/copilot-auth-service.ts +28 -24
- package/src/common/copilot-language-models-manager.ts +6 -29
- package/src/common/copilot-preferences.ts +24 -5
- package/src/common/index.ts +0 -1
- package/src/node/copilot-auth-service-impl.spec.ts +122 -207
- package/src/node/copilot-auth-service-impl.ts +63 -218
- package/src/node/copilot-backend-module.ts +11 -2
- package/src/node/copilot-cli-auth-provider.spec.ts +315 -0
- package/src/node/copilot-cli-auth-provider.ts +444 -0
- package/src/node/copilot-cli-locator.spec.ts +386 -0
- package/src/node/copilot-cli-locator.ts +363 -0
- package/src/node/copilot-credential-store.spec.ts +106 -0
- package/src/node/copilot-credential-store.ts +99 -0
- package/src/node/copilot-language-models-manager-impl.spec.ts +188 -0
- package/src/node/copilot-language-models-manager-impl.ts +131 -84
- package/src/node/copilot-runtime-env.ts +46 -0
- package/src/node/copilot-sdk-client-provider.spec.ts +253 -0
- package/src/node/copilot-sdk-client-provider.ts +241 -0
- package/src/node/copilot-sdk-language-model.spec.ts +377 -0
- package/src/node/copilot-sdk-language-model.ts +330 -0
- package/src/node/copilot-sdk-loader.spec.ts +126 -0
- package/src/node/copilot-sdk-loader.ts +142 -0
- package/src/node/copilot-sdk-mappers.spec.ts +190 -0
- package/src/node/copilot-sdk-mappers.ts +172 -0
- package/src/node/copilot-sdk-types.ts +290 -0
- package/src/node/index.ts +9 -1
- package/lib/common/copilot-oauth-config.d.ts +0 -33
- package/lib/common/copilot-oauth-config.d.ts.map +0 -1
- package/lib/common/copilot-oauth-config.js.map +0 -1
- package/lib/node/copilot-language-model.d.ts +0 -34
- package/lib/node/copilot-language-model.d.ts.map +0 -1
- package/lib/node/copilot-language-model.js +0 -236
- package/lib/node/copilot-language-model.js.map +0 -1
- package/lib/node/copilot-language-model.spec.d.ts +0 -2
- package/lib/node/copilot-language-model.spec.d.ts.map +0 -1
- package/lib/node/copilot-language-model.spec.js +0 -89
- package/lib/node/copilot-language-model.spec.js.map +0 -1
- package/src/common/copilot-oauth-config.ts +0 -55
- package/src/node/copilot-language-model.spec.ts +0 -106
- package/src/node/copilot-language-model.ts +0 -273
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copilot-sdk-client-provider.spec.js","sourceRoot":"","sources":["../../src/node/copilot-sdk-client-provider.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
import { LanguageModel, LanguageModelResponse, LanguageModelStatus, LanguageModelStreamResponsePart, ToolRequest, UserRequest } from '@theia/ai-core';
|
|
2
|
+
import { CancellationToken, ILogger } from '@theia/core';
|
|
3
|
+
import type { BlobMessageAttachment, CopilotClient, CopilotSession, PermissionHandler, Tool } from './copilot-sdk-types';
|
|
4
|
+
/**
|
|
5
|
+
* Answers the permission requests of the CLI for the tools of a request.
|
|
6
|
+
*
|
|
7
|
+
* Only Theia's own tools are declared to the CLI, and those are gated by Theia's tool confirmation
|
|
8
|
+
* already, so a second confirmation by the CLI would ask the user the same question twice. This is
|
|
9
|
+
* the behaviour of the SDK's own `approveAll`, which cannot be used here because it is not imported
|
|
10
|
+
* at runtime.
|
|
11
|
+
*
|
|
12
|
+
* A request that managed policy reserves for an explicit decision is not approved on the user's
|
|
13
|
+
* behalf but denied as unconfirmable. Leaving it unanswered is what the SDK's `no-result` does, and
|
|
14
|
+
* it is only correct when another client is connected that can answer it; here it would leave the
|
|
15
|
+
* turn pending until the request is cancelled.
|
|
16
|
+
*/
|
|
17
|
+
export declare const approveTheiaTools: PermissionHandler;
|
|
18
|
+
/**
|
|
19
|
+
* Collects the stream parts produced by the session events and by the tool handlers, and hands them
|
|
20
|
+
* to the consuming generator as they arrive.
|
|
21
|
+
*
|
|
22
|
+
* A buffer is needed because the parts originate from callbacks rather than from a stream we can
|
|
23
|
+
* await, and because the tool handlers of a turn run while its response is still being produced.
|
|
24
|
+
*/
|
|
25
|
+
export declare class CopilotStreamSink {
|
|
26
|
+
protected readonly queue: LanguageModelStreamResponsePart[];
|
|
27
|
+
protected readonly flushWaiters: Array<() => void>;
|
|
28
|
+
protected notify: (() => void) | undefined;
|
|
29
|
+
protected done: boolean;
|
|
30
|
+
protected failure: unknown;
|
|
31
|
+
push(part: LanguageModelStreamResponsePart): void;
|
|
32
|
+
/**
|
|
33
|
+
* Resolves once everything pushed so far has been taken by the consumer.
|
|
34
|
+
*
|
|
35
|
+
* Needed because a tool call has to be reported before the tool runs: the caller creates the
|
|
36
|
+
* record of the call from the stream, and the tool handler then completes that record. Handing the
|
|
37
|
+
* part over and invoking the handler in the same turn would leave the handler with nothing to
|
|
38
|
+
* complete.
|
|
39
|
+
*/
|
|
40
|
+
flush(): Promise<void>;
|
|
41
|
+
/**
|
|
42
|
+
* Ends the stream. A given error is raised to the consumer once the buffered parts are drained.
|
|
43
|
+
*/
|
|
44
|
+
finish(error?: unknown): void;
|
|
45
|
+
drain(): AsyncIterable<LanguageModelStreamResponsePart>;
|
|
46
|
+
protected wake(): void;
|
|
47
|
+
protected releaseFlushWaiters(): void;
|
|
48
|
+
}
|
|
49
|
+
/**
|
|
50
|
+
* Language model implementation for GitHub Copilot backed by the official Copilot
|
|
51
|
+
* CLI via `@github/copilot-sdk`.
|
|
52
|
+
*
|
|
53
|
+
* The CLI is an agent that owns the tool-calling loop, whereas Theia's language model contract
|
|
54
|
+
* expects the caller to drive it. The two are reconciled by handing the tools of the request to the
|
|
55
|
+
* CLI as custom tools whose handlers delegate back to Theia, and by reporting every invocation as a
|
|
56
|
+
* tool call part, so that the conversation and its tool calls are recorded and rendered as usual.
|
|
57
|
+
* None of the CLI's own tools are exposed, so only what Theia provides can run.
|
|
58
|
+
*
|
|
59
|
+
* Structured output is not supported on this path.
|
|
60
|
+
*/
|
|
61
|
+
export declare class CopilotSdkLanguageModel implements LanguageModel {
|
|
62
|
+
readonly id: string;
|
|
63
|
+
model: string;
|
|
64
|
+
status: LanguageModelStatus;
|
|
65
|
+
maxRetries: number;
|
|
66
|
+
protected readonly clientProvider: () => Promise<CopilotClient>;
|
|
67
|
+
protected readonly logger: ILogger;
|
|
68
|
+
constructor(id: string, model: string, status: LanguageModelStatus, maxRetries: number, clientProvider: () => Promise<CopilotClient>, logger: ILogger);
|
|
69
|
+
request(request: UserRequest, cancellationToken?: CancellationToken): Promise<LanguageModelResponse>;
|
|
70
|
+
/**
|
|
71
|
+
* Maps the tools of the request onto tools of the CLI, reporting each invocation to the stream.
|
|
72
|
+
*/
|
|
73
|
+
protected createTools(tools: ToolRequest[], sink: CopilotStreamSink): Tool[];
|
|
74
|
+
protected delay(ms: number): Promise<void>;
|
|
75
|
+
protected streamResponse(client: CopilotClient, session: CopilotSession, prompt: string, attachments: BlobMessageAttachment[] | undefined, sink: CopilotStreamSink, cancellationToken?: CancellationToken): AsyncIterable<LanguageModelStreamResponsePart>;
|
|
76
|
+
/**
|
|
77
|
+
* Ends the session of a request and removes what it persisted.
|
|
78
|
+
*
|
|
79
|
+
* Disconnecting only releases the session in memory and keeps it stored for a later resumption,
|
|
80
|
+
* which Theia never does: it drives the conversation itself and starts a fresh session per
|
|
81
|
+
* request. Without the deletion, every request would leave a session behind in the Copilot home.
|
|
82
|
+
*/
|
|
83
|
+
protected discardSession(client: CopilotClient, session: CopilotSession): Promise<void>;
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=copilot-sdk-language-model.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copilot-sdk-language-model.d.ts","sourceRoot":"","sources":["../../src/node/copilot-sdk-language-model.ts"],"names":[],"mappings":"AAgBA,OAAO,EAEH,aAAa,EACb,qBAAqB,EACrB,mBAAmB,EACnB,+BAA+B,EAC/B,WAAW,EACX,WAAW,EACd,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACzD,OAAO,KAAK,EAAE,qBAAqB,EAAE,aAAa,EAAE,cAAc,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAGzH;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,iBAAiB,EAAE,iBAK/B,CAAC;AAOF;;;;;;GAMG;AACH,qBAAa,iBAAiB;IAE1B,SAAS,CAAC,QAAQ,CAAC,KAAK,EAAE,+BAA+B,EAAE,CAAM;IACjE,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,KAAK,CAAC,MAAM,IAAI,CAAC,CAAM;IACxD,SAAS,CAAC,MAAM,EAAE,CAAC,MAAM,IAAI,CAAC,GAAG,SAAS,CAAC;IAC3C,SAAS,CAAC,IAAI,UAAS;IACvB,SAAS,CAAC,OAAO,EAAE,OAAO,CAAC;IAE3B,IAAI,CAAC,IAAI,EAAE,+BAA+B,GAAG,IAAI;IAKjD;;;;;;;OAOG;IACH,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAOtB;;OAEG;IACH,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,IAAI;IAQtB,KAAK,IAAI,aAAa,CAAC,+BAA+B,CAAC;IAkB9D,SAAS,CAAC,IAAI,IAAI,IAAI;IAMtB,SAAS,CAAC,mBAAmB,IAAI,IAAI;CAMxC;AAED;;;;;;;;;;;GAWG;AACH,qBAAa,uBAAwB,YAAW,aAAa;aAGrC,EAAE,EAAE,MAAM;IACnB,KAAK,EAAE,MAAM;IACb,MAAM,EAAE,mBAAmB;IAC3B,UAAU,EAAE,MAAM;IACzB,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC;IAC/D,SAAS,CAAC,QAAQ,CAAC,MAAM,EAAE,OAAO;gBALlB,EAAE,EAAE,MAAM,EACnB,KAAK,EAAE,MAAM,EACb,MAAM,EAAE,mBAAmB,EAC3B,UAAU,EAAE,MAAM,EACN,cAAc,EAAE,MAAM,OAAO,CAAC,aAAa,CAAC,EAC5C,MAAM,EAAE,OAAO;IAGhC,OAAO,CAAC,OAAO,EAAE,WAAW,EAAE,iBAAiB,CAAC,EAAE,iBAAiB,GAAG,OAAO,CAAC,qBAAqB,CAAC;IA2B1G;;OAEG;IACH,SAAS,CAAC,WAAW,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,IAAI,EAAE,iBAAiB,GAAG,IAAI,EAAE;IA4C5E,SAAS,CAAC,KAAK,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;cAIzB,cAAc,CAC3B,MAAM,EAAE,aAAa,EACrB,OAAO,EAAE,cAAc,EACvB,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,qBAAqB,EAAE,GAAG,SAAS,EAChD,IAAI,EAAE,iBAAiB,EACvB,iBAAiB,CAAC,EAAE,iBAAiB,GACtC,aAAa,CAAC,+BAA+B,CAAC;IAsEjD;;;;;;OAMG;cACa,cAAc,CAAC,MAAM,EAAE,aAAa,EAAE,OAAO,EAAE,cAAc,GAAG,OAAO,CAAC,IAAI,CAAC;CAYhG"}
|
|
@@ -0,0 +1,301 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
// *****************************************************************************
|
|
3
|
+
// Copyright (C) 2026 EclipseSource GmbH and others.
|
|
4
|
+
//
|
|
5
|
+
// This program and the accompanying materials are made available under the
|
|
6
|
+
// terms of the Eclipse Public License v. 2.0 which is available at
|
|
7
|
+
// http://www.eclipse.org/legal/epl-2.0.
|
|
8
|
+
//
|
|
9
|
+
// This Source Code may also be made available under the following Secondary
|
|
10
|
+
// Licenses when the conditions for such availability set forth in the Eclipse
|
|
11
|
+
// Public License v. 2.0 are satisfied: GNU General Public License, version 2
|
|
12
|
+
// with the GNU Classpath Exception which is available at
|
|
13
|
+
// https://www.gnu.org/software/classpath/license.html.
|
|
14
|
+
//
|
|
15
|
+
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
16
|
+
// *****************************************************************************
|
|
17
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
18
|
+
exports.CopilotSdkLanguageModel = exports.CopilotStreamSink = exports.approveTheiaTools = void 0;
|
|
19
|
+
const ai_core_1 = require("@theia/ai-core");
|
|
20
|
+
const copilot_sdk_mappers_1 = require("./copilot-sdk-mappers");
|
|
21
|
+
/**
|
|
22
|
+
* Answers the permission requests of the CLI for the tools of a request.
|
|
23
|
+
*
|
|
24
|
+
* Only Theia's own tools are declared to the CLI, and those are gated by Theia's tool confirmation
|
|
25
|
+
* already, so a second confirmation by the CLI would ask the user the same question twice. This is
|
|
26
|
+
* the behaviour of the SDK's own `approveAll`, which cannot be used here because it is not imported
|
|
27
|
+
* at runtime.
|
|
28
|
+
*
|
|
29
|
+
* A request that managed policy reserves for an explicit decision is not approved on the user's
|
|
30
|
+
* behalf but denied as unconfirmable. Leaving it unanswered is what the SDK's `no-result` does, and
|
|
31
|
+
* it is only correct when another client is connected that can answer it; here it would leave the
|
|
32
|
+
* turn pending until the request is cancelled.
|
|
33
|
+
*/
|
|
34
|
+
const approveTheiaTools = (request, invocation) => {
|
|
35
|
+
if (invocation.managedSettingsEnabled || ('managedApprovalRequired' in request && request.managedApprovalRequired)) {
|
|
36
|
+
return { kind: 'user-not-available' };
|
|
37
|
+
}
|
|
38
|
+
return { kind: 'approve-once' };
|
|
39
|
+
};
|
|
40
|
+
exports.approveTheiaTools = approveTheiaTools;
|
|
41
|
+
/**
|
|
42
|
+
* Upper bound for awaiting that a reported tool call has been consumed before the tool is run.
|
|
43
|
+
*/
|
|
44
|
+
const TOOL_CALL_FLUSH_TIMEOUT_MS = 2000;
|
|
45
|
+
/**
|
|
46
|
+
* Collects the stream parts produced by the session events and by the tool handlers, and hands them
|
|
47
|
+
* to the consuming generator as they arrive.
|
|
48
|
+
*
|
|
49
|
+
* A buffer is needed because the parts originate from callbacks rather than from a stream we can
|
|
50
|
+
* await, and because the tool handlers of a turn run while its response is still being produced.
|
|
51
|
+
*/
|
|
52
|
+
class CopilotStreamSink {
|
|
53
|
+
constructor() {
|
|
54
|
+
this.queue = [];
|
|
55
|
+
this.flushWaiters = [];
|
|
56
|
+
this.done = false;
|
|
57
|
+
}
|
|
58
|
+
push(part) {
|
|
59
|
+
this.queue.push(part);
|
|
60
|
+
this.wake();
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Resolves once everything pushed so far has been taken by the consumer.
|
|
64
|
+
*
|
|
65
|
+
* Needed because a tool call has to be reported before the tool runs: the caller creates the
|
|
66
|
+
* record of the call from the stream, and the tool handler then completes that record. Handing the
|
|
67
|
+
* part over and invoking the handler in the same turn would leave the handler with nothing to
|
|
68
|
+
* complete.
|
|
69
|
+
*/
|
|
70
|
+
flush() {
|
|
71
|
+
if (this.queue.length === 0 || this.done) {
|
|
72
|
+
return Promise.resolve();
|
|
73
|
+
}
|
|
74
|
+
return new Promise(resolve => this.flushWaiters.push(resolve));
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Ends the stream. A given error is raised to the consumer once the buffered parts are drained.
|
|
78
|
+
*/
|
|
79
|
+
finish(error) {
|
|
80
|
+
if (error !== undefined) {
|
|
81
|
+
this.failure = error;
|
|
82
|
+
}
|
|
83
|
+
this.done = true;
|
|
84
|
+
this.wake();
|
|
85
|
+
}
|
|
86
|
+
async *drain() {
|
|
87
|
+
while (true) {
|
|
88
|
+
while (this.queue.length > 0) {
|
|
89
|
+
yield this.queue.shift();
|
|
90
|
+
}
|
|
91
|
+
// Asking for the next part means the consumer is done with the previous ones.
|
|
92
|
+
this.releaseFlushWaiters();
|
|
93
|
+
if (this.done) {
|
|
94
|
+
break;
|
|
95
|
+
}
|
|
96
|
+
await new Promise(resolve => { this.notify = resolve; });
|
|
97
|
+
}
|
|
98
|
+
this.releaseFlushWaiters();
|
|
99
|
+
if (this.failure !== undefined) {
|
|
100
|
+
throw this.failure;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
wake() {
|
|
104
|
+
const resolve = this.notify;
|
|
105
|
+
this.notify = undefined;
|
|
106
|
+
resolve?.();
|
|
107
|
+
}
|
|
108
|
+
releaseFlushWaiters() {
|
|
109
|
+
const waiters = this.flushWaiters.splice(0, this.flushWaiters.length);
|
|
110
|
+
for (const resolve of waiters) {
|
|
111
|
+
resolve();
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
exports.CopilotStreamSink = CopilotStreamSink;
|
|
116
|
+
/**
|
|
117
|
+
* Language model implementation for GitHub Copilot backed by the official Copilot
|
|
118
|
+
* CLI via `@github/copilot-sdk`.
|
|
119
|
+
*
|
|
120
|
+
* The CLI is an agent that owns the tool-calling loop, whereas Theia's language model contract
|
|
121
|
+
* expects the caller to drive it. The two are reconciled by handing the tools of the request to the
|
|
122
|
+
* CLI as custom tools whose handlers delegate back to Theia, and by reporting every invocation as a
|
|
123
|
+
* tool call part, so that the conversation and its tool calls are recorded and rendered as usual.
|
|
124
|
+
* None of the CLI's own tools are exposed, so only what Theia provides can run.
|
|
125
|
+
*
|
|
126
|
+
* Structured output is not supported on this path.
|
|
127
|
+
*/
|
|
128
|
+
class CopilotSdkLanguageModel {
|
|
129
|
+
constructor(id, model, status, maxRetries, clientProvider, logger) {
|
|
130
|
+
this.id = id;
|
|
131
|
+
this.model = model;
|
|
132
|
+
this.status = status;
|
|
133
|
+
this.maxRetries = maxRetries;
|
|
134
|
+
this.clientProvider = clientProvider;
|
|
135
|
+
this.logger = logger;
|
|
136
|
+
}
|
|
137
|
+
async request(request, cancellationToken) {
|
|
138
|
+
const client = await this.clientProvider();
|
|
139
|
+
const { systemText, prompt, attachments } = (0, copilot_sdk_mappers_1.buildSdkPrompt)(request.messages);
|
|
140
|
+
const sink = new CopilotStreamSink();
|
|
141
|
+
const tools = this.createTools(request.tools ?? [], sink);
|
|
142
|
+
this.logger.debug(`Copilot: request with ${tools.length} tools [${tools.map(tool => tool.name).join(', ')}]`);
|
|
143
|
+
const session = await client.createSession({
|
|
144
|
+
model: this.model,
|
|
145
|
+
streaming: true,
|
|
146
|
+
tools,
|
|
147
|
+
// The prompt of the Theia agent belongs into the system message of the session rather than
|
|
148
|
+
// into its user prompt, so that it takes the place of the agent instructions of the CLI.
|
|
149
|
+
systemMessage: (0, copilot_sdk_mappers_1.buildSdkSystemMessage)(systemText),
|
|
150
|
+
// Enable exactly the tools declared above and nothing else: `custom:*` matches the tools of
|
|
151
|
+
// this request, while the built-in tools of the CLI and any MCP tools stay disabled, so that
|
|
152
|
+
// Theia remains in control of what runs on the host. An empty list would match nothing and
|
|
153
|
+
// would disable the declared tools as well.
|
|
154
|
+
availableTools: ['custom:*'],
|
|
155
|
+
// The declared tools are Theia's own and are already gated by its tool confirmation.
|
|
156
|
+
onPermissionRequest: exports.approveTheiaTools
|
|
157
|
+
});
|
|
158
|
+
return { stream: this.streamResponse(client, session, prompt, attachments, sink, cancellationToken) };
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Maps the tools of the request onto tools of the CLI, reporting each invocation to the stream.
|
|
162
|
+
*/
|
|
163
|
+
createTools(tools, sink) {
|
|
164
|
+
return tools.map(tool => ({
|
|
165
|
+
name: tool.name,
|
|
166
|
+
description: tool.description,
|
|
167
|
+
parameters: tool.parameters,
|
|
168
|
+
// Theia confirms tool invocations itself, so the CLI must not prompt on top of that.
|
|
169
|
+
skipPermission: true,
|
|
170
|
+
handler: async (args, invocation) => {
|
|
171
|
+
// Theia's tool handlers take the raw argument string of the model.
|
|
172
|
+
const argumentsString = JSON.stringify(args ?? {});
|
|
173
|
+
sink.push({
|
|
174
|
+
tool_calls: [{ id: invocation.toolCallId, function: { name: tool.name, arguments: argumentsString }, finished: false }]
|
|
175
|
+
});
|
|
176
|
+
// The handler completes the record of the call that the caller creates from the part
|
|
177
|
+
// above, so the part has to be consumed before the tool runs. The wait is bounded so
|
|
178
|
+
// that a consumer which stops reading cannot hold the tool call forever.
|
|
179
|
+
await Promise.race([sink.flush(), this.delay(TOOL_CALL_FLUSH_TIMEOUT_MS)]);
|
|
180
|
+
try {
|
|
181
|
+
// Passing the call id lets the caller correlate the invocation with the part above,
|
|
182
|
+
// instead of having to fall back to matching on the tool name and its arguments.
|
|
183
|
+
const result = await tool.handler(argumentsString, { toolCallId: invocation.toolCallId });
|
|
184
|
+
// The structured result is kept for the stream, so that the UI can render e.g. the
|
|
185
|
+
// HTML of an MCP app, while the model is handed a readable serialization of it.
|
|
186
|
+
sink.push({
|
|
187
|
+
tool_calls: [{ id: invocation.toolCallId, function: { name: tool.name, arguments: argumentsString }, finished: true, result }]
|
|
188
|
+
});
|
|
189
|
+
return (0, ai_core_1.formatToolCallContentForModel)(result);
|
|
190
|
+
}
|
|
191
|
+
catch (error) {
|
|
192
|
+
const message = error instanceof Error ? error.message : String(error);
|
|
193
|
+
sink.push({
|
|
194
|
+
tool_calls: [{
|
|
195
|
+
id: invocation.toolCallId,
|
|
196
|
+
function: { name: tool.name, arguments: argumentsString },
|
|
197
|
+
finished: true,
|
|
198
|
+
result: `Error: ${message}`
|
|
199
|
+
}]
|
|
200
|
+
});
|
|
201
|
+
// Report the failure to the agent instead of failing the turn, so that it can react.
|
|
202
|
+
return { error: message };
|
|
203
|
+
}
|
|
204
|
+
}
|
|
205
|
+
}));
|
|
206
|
+
}
|
|
207
|
+
delay(ms) {
|
|
208
|
+
return new Promise(resolve => setTimeout(resolve, ms));
|
|
209
|
+
}
|
|
210
|
+
async *streamResponse(client, session, prompt, attachments, sink, cancellationToken) {
|
|
211
|
+
let inputTokens;
|
|
212
|
+
let outputTokens;
|
|
213
|
+
const disposables = [];
|
|
214
|
+
disposables.push(session.on('assistant.message_delta', event => {
|
|
215
|
+
if (event.data.deltaContent) {
|
|
216
|
+
sink.push({ content: event.data.deltaContent });
|
|
217
|
+
}
|
|
218
|
+
}));
|
|
219
|
+
disposables.push(session.on('assistant.reasoning_delta', event => {
|
|
220
|
+
if (event.data.deltaContent) {
|
|
221
|
+
sink.push({ thought: event.data.deltaContent, signature: '' });
|
|
222
|
+
}
|
|
223
|
+
}));
|
|
224
|
+
disposables.push(session.on('assistant.message', event => {
|
|
225
|
+
if (typeof event.data.outputTokens === 'number') {
|
|
226
|
+
outputTokens = event.data.outputTokens;
|
|
227
|
+
}
|
|
228
|
+
}));
|
|
229
|
+
disposables.push(session.on('assistant.usage', event => {
|
|
230
|
+
if (typeof event.data.inputTokens === 'number') {
|
|
231
|
+
inputTokens = event.data.inputTokens;
|
|
232
|
+
}
|
|
233
|
+
if (typeof event.data.outputTokens === 'number') {
|
|
234
|
+
outputTokens = event.data.outputTokens;
|
|
235
|
+
}
|
|
236
|
+
}));
|
|
237
|
+
disposables.push(session.on('session.idle', () => sink.finish()));
|
|
238
|
+
disposables.push(session.on('session.error', event => {
|
|
239
|
+
// The CLI can report a terminal error (auth, quota, rate limit, context
|
|
240
|
+
// limit, ...) without a following `session.idle`. Surface it as a stream
|
|
241
|
+
// failure so the request rejects instead of hanging forever.
|
|
242
|
+
const data = event.data;
|
|
243
|
+
const detail = data.statusCode !== undefined ? ` (${data.errorType}, status ${data.statusCode})` : ` (${data.errorType})`;
|
|
244
|
+
const error = new Error(`Copilot request failed${detail}: ${data.message}`);
|
|
245
|
+
if (data.stack) {
|
|
246
|
+
error.stack = data.stack;
|
|
247
|
+
}
|
|
248
|
+
sink.finish(error);
|
|
249
|
+
}));
|
|
250
|
+
const cancelListener = cancellationToken?.onCancellationRequested(() => {
|
|
251
|
+
session.abort().catch(() => { });
|
|
252
|
+
sink.finish();
|
|
253
|
+
});
|
|
254
|
+
try {
|
|
255
|
+
if (cancellationToken?.isCancellationRequested) {
|
|
256
|
+
// Already cancelled before we started: don't bother sending.
|
|
257
|
+
await session.abort().catch(() => { });
|
|
258
|
+
sink.finish();
|
|
259
|
+
}
|
|
260
|
+
else {
|
|
261
|
+
// Deliberately not awaited: the turn only completes after the tool loop has run, and
|
|
262
|
+
// its parts have to be yielded while that happens.
|
|
263
|
+
session.send({ prompt, attachments }).catch(error => sink.finish(error));
|
|
264
|
+
}
|
|
265
|
+
yield* sink.drain();
|
|
266
|
+
if (inputTokens !== undefined || outputTokens !== undefined) {
|
|
267
|
+
yield { input_tokens: inputTokens ?? 0, output_tokens: outputTokens ?? 0 };
|
|
268
|
+
}
|
|
269
|
+
}
|
|
270
|
+
finally {
|
|
271
|
+
for (const dispose of disposables) {
|
|
272
|
+
dispose();
|
|
273
|
+
}
|
|
274
|
+
cancelListener?.dispose();
|
|
275
|
+
await this.discardSession(client, session);
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
/**
|
|
279
|
+
* Ends the session of a request and removes what it persisted.
|
|
280
|
+
*
|
|
281
|
+
* Disconnecting only releases the session in memory and keeps it stored for a later resumption,
|
|
282
|
+
* which Theia never does: it drives the conversation itself and starts a fresh session per
|
|
283
|
+
* request. Without the deletion, every request would leave a session behind in the Copilot home.
|
|
284
|
+
*/
|
|
285
|
+
async discardSession(client, session) {
|
|
286
|
+
try {
|
|
287
|
+
await session.disconnect();
|
|
288
|
+
}
|
|
289
|
+
catch (error) {
|
|
290
|
+
this.logger.warn('Copilot SDK: failed to disconnect session:', error);
|
|
291
|
+
}
|
|
292
|
+
try {
|
|
293
|
+
await client.deleteSession(session.sessionId);
|
|
294
|
+
}
|
|
295
|
+
catch (error) {
|
|
296
|
+
this.logger.warn(`Copilot SDK: failed to delete session ${session.sessionId}:`, error);
|
|
297
|
+
}
|
|
298
|
+
}
|
|
299
|
+
}
|
|
300
|
+
exports.CopilotSdkLanguageModel = CopilotSdkLanguageModel;
|
|
301
|
+
//# sourceMappingURL=copilot-sdk-language-model.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copilot-sdk-language-model.js","sourceRoot":"","sources":["../../src/node/copilot-sdk-language-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copilot-sdk-language-model.spec.d.ts","sourceRoot":"","sources":["../../src/node/copilot-sdk-language-model.spec.ts"],"names":[],"mappings":""}
|