@theia/ai-copilot 1.76.0-next.14 → 1.76.0-next.18
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 +2 -1
- package/lib/node/copilot-sdk-language-model.d.ts +2 -2
- package/lib/node/copilot-sdk-language-model.d.ts.map +1 -1
- package/lib/node/copilot-sdk-language-model.js +4 -4
- package/lib/node/copilot-sdk-language-model.js.map +1 -1
- package/lib/node/copilot-sdk-language-model.spec.js +14 -1
- package/lib/node/copilot-sdk-language-model.spec.js.map +1 -1
- package/lib/node/copilot-sdk-mappers.d.ts +7 -3
- package/lib/node/copilot-sdk-mappers.d.ts.map +1 -1
- package/lib/node/copilot-sdk-mappers.js +24 -4
- package/lib/node/copilot-sdk-mappers.js.map +1 -1
- package/lib/node/copilot-sdk-mappers.spec.js +33 -0
- package/lib/node/copilot-sdk-mappers.spec.js.map +1 -1
- package/lib/node/copilot-sdk-types.d.ts +13 -3
- package/lib/node/copilot-sdk-types.d.ts.map +1 -1
- package/package.json +4 -4
- package/src/node/copilot-sdk-language-model.spec.ts +17 -3
- package/src/node/copilot-sdk-language-model.ts +5 -4
- package/src/node/copilot-sdk-mappers.spec.ts +37 -0
- package/src/node/copilot-sdk-mappers.ts +27 -6
- package/src/node/copilot-sdk-types.ts +16 -2
package/README.md
CHANGED
|
@@ -125,7 +125,8 @@ It is used for the sign-in, and remembered with the credentials so that requests
|
|
|
125
125
|
- The conversation is flattened into one prompt. A single user turn is forwarded as it is, a longer history is rendered as a
|
|
126
126
|
role-labelled transcript. The system prompt of the Theia agent is not part of that, it becomes the system message of the
|
|
127
127
|
session and takes the place of the agent instructions the CLI would use.
|
|
128
|
-
- Images in a request are
|
|
128
|
+
- Images in a request are sent as inline attachments when they are base64-encoded; images given as a URL are dropped
|
|
129
|
+
and only noted as omitted, because the SDK's attachments carry inline data rather than a remote reference.
|
|
129
130
|
- Tool calls and tool results of the history are rendered as text rather than as the structured entries they were.
|
|
130
131
|
|
|
131
132
|
## Additional Information
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { LanguageModel, LanguageModelResponse, LanguageModelStatus, LanguageModelStreamResponsePart, ToolRequest, UserRequest } from '@theia/ai-core';
|
|
2
2
|
import { CancellationToken, ILogger } from '@theia/core';
|
|
3
|
-
import type { CopilotClient, CopilotSession, PermissionHandler, Tool } from './copilot-sdk-types';
|
|
3
|
+
import type { BlobMessageAttachment, CopilotClient, CopilotSession, PermissionHandler, Tool } from './copilot-sdk-types';
|
|
4
4
|
/**
|
|
5
5
|
* Answers the permission requests of the CLI for the tools of a request.
|
|
6
6
|
*
|
|
@@ -72,7 +72,7 @@ export declare class CopilotSdkLanguageModel implements LanguageModel {
|
|
|
72
72
|
*/
|
|
73
73
|
protected createTools(tools: ToolRequest[], sink: CopilotStreamSink): Tool[];
|
|
74
74
|
protected delay(ms: number): Promise<void>;
|
|
75
|
-
protected streamResponse(client: CopilotClient, session: CopilotSession, prompt: string, sink: CopilotStreamSink, cancellationToken?: CancellationToken): AsyncIterable<LanguageModelStreamResponsePart>;
|
|
75
|
+
protected streamResponse(client: CopilotClient, session: CopilotSession, prompt: string, attachments: BlobMessageAttachment[] | undefined, sink: CopilotStreamSink, cancellationToken?: CancellationToken): AsyncIterable<LanguageModelStreamResponsePart>;
|
|
76
76
|
/**
|
|
77
77
|
* Ends the session of a request and removes what it persisted.
|
|
78
78
|
*
|
|
@@ -1 +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,aAAa,EAAE,cAAc,EAAE,iBAAiB,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;
|
|
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"}
|
|
@@ -136,7 +136,7 @@ class CopilotSdkLanguageModel {
|
|
|
136
136
|
}
|
|
137
137
|
async request(request, cancellationToken) {
|
|
138
138
|
const client = await this.clientProvider();
|
|
139
|
-
const { systemText, prompt } = (0, copilot_sdk_mappers_1.buildSdkPrompt)(request.messages);
|
|
139
|
+
const { systemText, prompt, attachments } = (0, copilot_sdk_mappers_1.buildSdkPrompt)(request.messages);
|
|
140
140
|
const sink = new CopilotStreamSink();
|
|
141
141
|
const tools = this.createTools(request.tools ?? [], sink);
|
|
142
142
|
this.logger.debug(`Copilot: request with ${tools.length} tools [${tools.map(tool => tool.name).join(', ')}]`);
|
|
@@ -155,7 +155,7 @@ class CopilotSdkLanguageModel {
|
|
|
155
155
|
// The declared tools are Theia's own and are already gated by its tool confirmation.
|
|
156
156
|
onPermissionRequest: exports.approveTheiaTools
|
|
157
157
|
});
|
|
158
|
-
return { stream: this.streamResponse(client, session, prompt, sink, cancellationToken) };
|
|
158
|
+
return { stream: this.streamResponse(client, session, prompt, attachments, sink, cancellationToken) };
|
|
159
159
|
}
|
|
160
160
|
/**
|
|
161
161
|
* Maps the tools of the request onto tools of the CLI, reporting each invocation to the stream.
|
|
@@ -207,7 +207,7 @@ class CopilotSdkLanguageModel {
|
|
|
207
207
|
delay(ms) {
|
|
208
208
|
return new Promise(resolve => setTimeout(resolve, ms));
|
|
209
209
|
}
|
|
210
|
-
async *streamResponse(client, session, prompt, sink, cancellationToken) {
|
|
210
|
+
async *streamResponse(client, session, prompt, attachments, sink, cancellationToken) {
|
|
211
211
|
let inputTokens;
|
|
212
212
|
let outputTokens;
|
|
213
213
|
const disposables = [];
|
|
@@ -260,7 +260,7 @@ class CopilotSdkLanguageModel {
|
|
|
260
260
|
else {
|
|
261
261
|
// Deliberately not awaited: the turn only completes after the tool loop has run, and
|
|
262
262
|
// its parts have to be yielded while that happens.
|
|
263
|
-
session.send({ prompt }).catch(error => sink.finish(error));
|
|
263
|
+
session.send({ prompt, attachments }).catch(error => sink.finish(error));
|
|
264
264
|
}
|
|
265
265
|
yield* sink.drain();
|
|
266
266
|
if (inputTokens !== undefined || outputTokens !== undefined) {
|
|
@@ -1 +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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
|
|
1
|
+
{"version":3,"file":"copilot-sdk-language-model.js","sourceRoot":"","sources":["../../src/node/copilot-sdk-language-model.ts"],"names":[],"mappings":"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"}
|
|
@@ -47,6 +47,7 @@ class TestableCopilotSdkLanguageModel extends copilot_sdk_language_model_1.Copil
|
|
|
47
47
|
async captureTurn(request) {
|
|
48
48
|
let config = {};
|
|
49
49
|
let prompt;
|
|
50
|
+
let attachments;
|
|
50
51
|
let deleted;
|
|
51
52
|
const listeners = new Map();
|
|
52
53
|
const session = {
|
|
@@ -57,6 +58,7 @@ class TestableCopilotSdkLanguageModel extends copilot_sdk_language_model_1.Copil
|
|
|
57
58
|
},
|
|
58
59
|
send: async (message) => {
|
|
59
60
|
prompt = message.prompt;
|
|
61
|
+
attachments = message.attachments;
|
|
60
62
|
listeners.get('session.idle')?.({});
|
|
61
63
|
},
|
|
62
64
|
abort: async () => { },
|
|
@@ -76,7 +78,7 @@ class TestableCopilotSdkLanguageModel extends copilot_sdk_language_model_1.Copil
|
|
|
76
78
|
for await (const part of response.stream) {
|
|
77
79
|
(0, chai_1.expect)(part).to.exist;
|
|
78
80
|
}
|
|
79
|
-
return { config, prompt, deleted };
|
|
81
|
+
return { config, prompt, attachments, deleted };
|
|
80
82
|
}
|
|
81
83
|
}
|
|
82
84
|
function toolRequest(name, handler) {
|
|
@@ -212,6 +214,17 @@ describe('CopilotSdkLanguageModel - turn', () => {
|
|
|
212
214
|
const { deleted } = await model.captureTurn(request);
|
|
213
215
|
(0, chai_1.expect)(deleted).to.equal('test-session');
|
|
214
216
|
});
|
|
217
|
+
it('should send a base64 image of the request as a blob attachment', async () => {
|
|
218
|
+
const requestWithImage = {
|
|
219
|
+
messages: [
|
|
220
|
+
{ actor: 'user', type: 'text', text: 'what is this?' },
|
|
221
|
+
{ actor: 'user', type: 'image', image: { base64data: 'aGk=', mimeType: 'image/png' } }
|
|
222
|
+
]
|
|
223
|
+
};
|
|
224
|
+
const { prompt, attachments } = await model.captureTurn(requestWithImage);
|
|
225
|
+
(0, chai_1.expect)(prompt).to.equal('what is this?');
|
|
226
|
+
(0, chai_1.expect)(attachments).to.deep.equal([{ type: 'blob', data: 'aGk=', mimeType: 'image/png' }]);
|
|
227
|
+
});
|
|
215
228
|
});
|
|
216
229
|
describe('CopilotStreamSink', () => {
|
|
217
230
|
it('should yield parts pushed before draining', async () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilot-sdk-language-model.spec.js","sourceRoot":"","sources":["../../src/node/copilot-sdk-language-model.spec.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oDAAoD;AACpD,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;AAEhF,+BAA8B;AAG9B,yEAAqE;AACrE,6EAA6G;AAE7G,MAAM,+BAAgC,SAAQ,oDAAuB;IACjE;QACI,KAAK,CAAC,cAAc,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,OAAO,EAAE,EAAE,CAAC,EAAE,KAAK,IAAI,EAAE,CAAC,CAAC,EAAoB,CAAA,EAAE,IAAI,wBAAU,EAAE,CAAC,CAAC;IACrH,CAAC;IAED,eAAe,CAAC,KAAoB,EAAE,IAAuB;QACzD,OAAO,IAAI,CAAC,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC;IACzC,CAAC;IAED,+EAA+E;IAC/E,KAAK,CAAC,oBAAoB,CAAC,OAAoB;QAC3C,IAAI,QAAQ,GAA4B,EAAE,CAAC;QAC3C,MAAM,MAAM,GAAG;YACX,aAAa,EAAE,KAAK,EAAE,MAA+B,EAAE,EAAE;gBACrD,QAAQ,GAAG,MAAM,CAAC;gBAClB,OAAO,EAAE,EAAE,EAAE,GAAG,EAAE,CAAC,GAAG,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,KAAK,EAAE,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,UAAU,EAAE,KAAK,IAAI,EAAE,GAAG,CAAC,EAAE,CAAC;YAC/G,CAAC;SACwB,CAAC;QAC9B,MAAM,KAAK,GAAG,IAAI,+BAA+B,EAAE,CAAC;QACpD,8DAA8D;QAC7D,KAAa,CAAC,cAAc,GAAG,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC;QACnD,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,CAAC;QAC7B,OAAO,QAAQ,CAAC;IACpB,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,WAAW,CAAC,OAAoB;QAClC,IAAI,MAAM,GAA4B,EAAE,CAAC;QACzC,IAAI,MAA0B,CAAC;QAC/B,IAAI,OAA2B,CAAC;QAChC,MAAM,SAAS,GAAG,IAAI,GAAG,EAAoC,CAAC;QAC9D,MAAM,OAAO,GAAG;YACZ,SAAS,EAAE,cAAc;YACzB,EAAE,EAAE,CAAC,KAAa,EAAE,OAAmC,EAAE,EAAE;gBACvD,SAAS,CAAC,GAAG,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;gBAC9B,OAAO,GAAG,EAAE,CAAC,SAAS,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;YACzC,CAAC;YACD,IAAI,EAAE,KAAK,EAAE,OAA2B,EAAE,EAAE;gBACxC,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;gBACxB,SAAS,CAAC,GAAG,CAAC,cAAc,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;YACxC,CAAC;YACD,KAAK,EAAE,KAAK,IAAI,EAAE,GAAG,CAAC;YACtB,UAAU,EAAE,KAAK,IAAI,EAAE,GAAG,CAAC;SAC9B,CAAC;QACF,MAAM,MAAM,GAAG;YACX,aAAa,EAAE,KAAK,EAAE,aAAsC,EAAE,EAAE;gBAC5D,MAAM,GAAG,aAAa,CAAC;gBACvB,OAAO,OAAO,CAAC;YACnB,CAAC;YACD,aAAa,EAAE,KAAK,EAAE,SAAiB,EAAE,EAAE,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC,CAAC;SAC3C,CAAC;QAC9B,MAAM,KAAK,GAAG,IAAI,+BAA+B,EAAE,CAAC;QACpD,8DAA8D;QAC7D,KAAa,CAAC,cAAc,GAAG,KAAK,IAAI,EAAE,CAAC,MAAM,CAAC;QACnD,MAAM,QAAQ,GAAG,MAAM,KAAK,CAAC,OAAO,CAAC,OAAO,CAA+D,CAAC;QAC5G,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,QAAQ,CAAC,MAAM,EAAE,CAAC;YACvC,IAAA,aAAM,EAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;QAC1B,CAAC;QACD,OAAO,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,CAAC;IACvC,CAAC;CACJ;AAED,SAAS,WAAW,CAAC,IAAY,EAAE,OAAyE;IACxG,OAAO;QACH,EAAE,EAAE,IAAI;QACR,IAAI;QACJ,WAAW,EAAE,OAAO,IAAI,OAAO;QAC/B,UAAU,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE;QACxE,OAAO;KACV,CAAC;AACN,CAAC;AAED;;;GAGG;AACH,KAAK,UAAU,oBAAoB,CAC/B,IAAuB,EACvB,MAAwC;IAExC,MAAM,KAAK,GAAsC,EAAE,CAAC;IACpD,MAAM,QAAQ,GAAG,CAAC,KAAK,IAAI,EAAE;QACzB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;YACpC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACrB,CAAC;IACL,CAAC,CAAC,EAAE,CAAC;IACL,MAAM,MAAM,GAAG,MAAM,MAAM,EAAE,CAAC;IAC9B,IAAI,CAAC,MAAM,EAAE,CAAC;IACd,MAAM,QAAQ,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;AAC7B,CAAC;AAED,KAAK,UAAU,OAAO,CAAC,IAAuB;IAC1C,MAAM,KAAK,GAAsC,EAAE,CAAC;IACpD,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;QACpC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACrB,CAAC;IACD,OAAO,KAAK,CAAC;AACjB,CAAC;AAED,SAAS,SAAS,CAAC,IAAqC;IACpD,OAAQ,IAA6B,CAAC,UAAU,CAAC;AACrD,CAAC;AAED,QAAQ,CAAC,uCAAuC,EAAE,GAAG,EAAE;IAEnD,MAAM,KAAK,GAAG,IAAI,+BAA+B,EAAE,CAAC;IAEpD,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC1D,MAAM,KAAK,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,8CAAiB,EAAE,CAAC,CAAC;QAC/G,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAClC,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC;QAC3C,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,WAAW,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,mBAAmB,CAAC,CAAC;QAC3D,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,UAAU,EAAE,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;QACxG,4EAA4E;QAC5E,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,IAAI,CAAC;IAC/C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QAC/E,IAAI,QAA4B,CAAC;QACjC,MAAM,IAAI,GAAG,IAAI,8CAAiB,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,EAAC,IAAI,EAAC,EAAE,GAAG,QAAQ,GAAG,IAAI,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAE3H,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE,GAAG,EAAE,CACrD,KAAK,CAAC,CAAC,CAAC,CAAC,OAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAExH,IAAA,aAAM,EAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAC,CAAC;QAC5D,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC;IACvC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6EAA6E,EAAE,KAAK,IAAI,EAAE;QACzF,MAAM,IAAI,GAAG,IAAI,8CAAiB,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAE5F,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE,GAAG,EAAE,CACpD,KAAK,CAAC,CAAC,CAAC,CAAC,OAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAExH,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;QAClC,IAAA,aAAM,EAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;QAClF,IAAA,aAAM,EAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC,CAAC;QACzH,IAAA,aAAM,EAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,CAAC,CAAC;IACxG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iFAAiF,EAAE,KAAK,IAAI,EAAE;QAC7F,MAAM,IAAI,GAAG,IAAI,8CAAiB,EAAE,CAAC;QACrC,MAAM,KAAK,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE,GAAG,MAAM,IAAI,KAAK,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAEvH,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,MAAM,oBAAoB,CAAC,IAAI,EAAE,GAAG,EAAE,CAC5D,KAAK,CAAC,CAAC,CAAC,CAAC,OAAQ,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,EAAE,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC,CAAC,CAAC;QAE9H,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,cAAc,EAAE,CAAC,CAAC;QACxD,IAAA,aAAM,EAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,qBAAqB,EAAE,CAAC,CAAC;IACpH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACtE,IAAA,aAAM,EAAC,KAAK,CAAC,eAAe,CAAC,EAAE,EAAE,IAAI,8CAAiB,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;IAC3E,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,iDAAiD,EAAE,GAAG,EAAE;IAE7D,MAAM,KAAK,GAAG,IAAI,+BAA+B,EAAE,CAAC;IAEpD,SAAS,WAAW,CAAC,KAAoB;QACrC,OAAO,EAAE,QAAQ,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC,EAAE,KAAK,EAA4B,CAAC;IACxG,CAAC;IAED,EAAE,CAAC,mDAAmD,EAAE,KAAK,IAAI,EAAE;QAC/D,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,oBAAoB,CAAC,WAAW,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/G,kFAAkF;QAClF,IAAA,aAAM,EAAC,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QAC1D,IAAA,aAAM,EAAE,MAAM,CAAC,KAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;IACxF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,oBAAoB,CAAC,WAAW,CAAC;YACxD,WAAW,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC,GAAG,CAAC;YACxC,WAAW,CAAC,WAAW,EAAE,KAAK,IAAI,EAAE,CAAC,GAAG,CAAC;SAC5C,CAAC,CAAC,CAAC;QACJ,IAAA,aAAM,EAAE,MAAM,CAAC,KAAgB,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,EAAE,WAAW,CAAC,CAAC,CAAC;IACrG,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,mEAAmE,EAAE,KAAK,IAAI,EAAE;QAC/E,MAAM,MAAM,GAAG,MAAM,KAAK,CAAC,oBAAoB,CAAC,WAAW,CAAC,EAAE,CAAC,CAAC,CAAC;QACjE,IAAA,aAAM,EAAC,MAAM,CAAC,cAAc,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC;QAC1D,IAAA,aAAM,EAAC,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;IACrC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IAE/B,MAAM,iBAAiB,GAAG,EAAE,IAAI,EAAE,aAAa,EAAE,QAAQ,EAAE,UAAU,EAAkC,CAAC;IAExG,EAAE,CAAC,yEAAyE,EAAE,GAAG,EAAE;QAC/E,IAAA,aAAM,EAAC,IAAA,8CAAiB,EAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,cAAc,EAAE,CAAC,CAAC;IACxH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wFAAwF,EAAE,GAAG,EAAE;QAC9F,MAAM,OAAO,GAAG,EAAE,GAAG,iBAAiB,EAAE,uBAAuB,EAAE,IAAI,EAAkC,CAAC;QACxG,+FAA+F;QAC/F,IAAA,aAAM,EAAC,IAAA,8CAAiB,EAAC,OAAO,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,CAAC;IACpH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,6EAA6E,EAAE,GAAG,EAAE;QACnF,IAAA,aAAM,EAAC,IAAA,8CAAiB,EAAC,iBAAiB,EAAE,EAAE,SAAS,EAAE,cAAc,EAAE,sBAAsB,EAAE,IAAI,EAAE,CAAC,CAAC;aACpG,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,IAAI,EAAE,oBAAoB,EAAE,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,gCAAgC,EAAE,GAAG,EAAE;IAE5C,MAAM,KAAK,GAAG,IAAI,+BAA+B,EAAE,CAAC;IAEpD,MAAM,OAAO,GAAG;QACZ,QAAQ,EAAE;YACN,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,8BAA8B,EAAE;YACvE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;SAC9C;KACsB,CAAC;IAE5B,EAAE,CAAC,yEAAyE,EAAE,KAAK,IAAI,EAAE;QACrF,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACpD,IAAA,aAAM,EAAC,MAAM,CAAC,aAAa,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,WAAW,EAAE,OAAO,EAAE,8BAA8B,EAAE,CAAC,CAAC;IACjH,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2DAA2D,EAAE,KAAK,IAAI,EAAE;QACvE,MAAM,EAAE,MAAM,EAAE,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACpD,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,KAAK,IAAI,EAAE;QACtF,MAAM,EAAE,OAAO,EAAE,GAAG,MAAM,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QACrD,IAAA,aAAM,EAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,cAAc,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,mBAAmB,EAAE,GAAG,EAAE;IAE/B,EAAE,CAAC,2CAA2C,EAAE,KAAK,IAAI,EAAE;QACvD,MAAM,IAAI,GAAG,IAAI,8CAAiB,EAAE,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;QAC5B,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAA,aAAM,EAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IACpF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0CAA0C,EAAE,KAAK,IAAI,EAAE;QACtD,MAAM,IAAI,GAAG,IAAI,8CAAiB,EAAE,CAAC;QACrC,MAAM,SAAS,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;QAChC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;QAC5B,MAAM,OAAO,CAAC,OAAO,EAAE,CAAC;QACxB,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC;QAC5B,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAA,aAAM,EAAC,MAAM,SAAS,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,OAAO,EAAE,GAAG,EAAE,CAAC,CAAC,CAAC;IAChF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,qEAAqE,EAAE,KAAK,IAAI,EAAE;QACjF,MAAM,IAAI,GAAG,IAAI,8CAAiB,EAAE,CAAC;QACrC,IAAI,CAAC,IAAI,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC;QAClC,IAAI,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAEzC,MAAM,KAAK,GAAsC,EAAE,CAAC;QACpD,IAAI,KAAc,CAAC;QACnB,IAAI,CAAC;YACD,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;gBACpC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YACrB,CAAC;QACL,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YACd,KAAK,GAAG,MAAM,CAAC;QACnB,CAAC;QAED,IAAA,aAAM,EAAC,KAAK,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,EAAE,SAAS,EAAE,CAAC,CAAC,CAAC;QACtD,IAAA,aAAM,EAAE,KAAe,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,gBAAgB,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,KAAK,IAAI,EAAE;QAChE,MAAM,IAAI,GAAG,IAAI,8CAAiB,EAAE,CAAC;QACrC,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,IAAA,aAAM,EAAC,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;IAC5C,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,8CAA8C,EAAE,GAAG,EAAE;IAE1D,MAAM,KAAK,GAAG,IAAI,+BAA+B,EAAE,CAAC;IACpD,MAAM,UAAU,GAAG,EAAE,SAAS,EAAE,GAAG,EAAE,UAAU,EAAE,QAAQ,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IAEjG,EAAE,CAAC,mFAAmF,EAAE,KAAK,IAAI,EAAE;QAC/F,MAAM,IAAI,GAAG,IAAI,8CAAiB,EAAE,CAAC;QACrC,MAAM,QAAQ,GAAa,EAAE,CAAC;QAC9B,MAAM,KAAK,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE;gBACpE,QAAQ,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;gBAC1B,OAAO,SAAS,CAAC;YACrB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAEX,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,UAAU,CAAC,CAAC;QAEhE,0EAA0E;QAC1E,IAAA,aAAM,EAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,KAAK,CAAC;QAE7B,MAAM,KAAK,GAAsC,EAAE,CAAC;QACpD,MAAM,QAAQ,GAAG,CAAC,KAAK,IAAI,EAAE;YACzB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;gBACpC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBACjB,QAAQ,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;YACnC,CAAC;QACL,CAAC,CAAC,EAAE,CAAC;QAEL,MAAM,OAAO,CAAC;QACd,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,MAAM,QAAQ,CAAC;QAEf,IAAA,aAAM,EAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,eAAe,CAAC,CAAC;QAC9C,IAAA,aAAM,EAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,OAAO,CAAC,UAAU,CAAC,CAAC;QACxC,IAAA,aAAM,EAAC,SAAS,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,EAAE,EAAE,QAAQ,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,uEAAuE,EAAE,KAAK,IAAI,EAAE;QACnF,MAAM,IAAI,GAAG,IAAI,8CAAiB,EAAE,CAAC;QACrC,IAAI,UAA8B,CAAC;QACnC,MAAM,KAAK,GAAG,KAAK,CAAC,eAAe,CAAC,CAAC,WAAW,CAAC,UAAU,EAAE,KAAK,EAAE,KAAK,EAAE,GAAG,EAAE,EAAE;gBAC9E,UAAU,GAAG,GAAG,EAAE,UAAU,CAAC;gBAC7B,OAAO,SAAS,CAAC;YACrB,CAAC,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;QAEX,MAAM,OAAO,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC,OAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,UAAU,CAAC,CAAC;QAChE,MAAM,QAAQ,GAAG,CAAC,KAAK,IAAI,EAAE;YACzB,IAAI,KAAK,EAAE,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,EAAE,EAAE,CAAC;gBACpC,IAAA,aAAM,EAAC,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC;YAC1B,CAAC;QACL,CAAC,CAAC,EAAE,CAAC;QACL,MAAM,OAAO,CAAC;QACd,IAAI,CAAC,MAAM,EAAE,CAAC;QACd,MAAM,QAAQ,CAAC;QAEf,IAAA,aAAM,EAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"copilot-sdk-language-model.spec.js","sourceRoot":"","sources":["../../src/node/copilot-sdk-language-model.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { LanguageModelMessage } from '@theia/ai-core';
|
|
2
|
-
import type { ModelInfo, SystemMessageConfig } from './copilot-sdk-types';
|
|
2
|
+
import type { BlobMessageAttachment, ModelInfo, SystemMessageConfig } from './copilot-sdk-types';
|
|
3
3
|
/**
|
|
4
4
|
* Selects the model IDs that should be surfaced to Theia from the list returned
|
|
5
5
|
* by `CopilotClient.listModels()`.
|
|
@@ -21,6 +21,8 @@ export interface SdkPrompt {
|
|
|
21
21
|
systemText: string;
|
|
22
22
|
/** The user-facing prompt body derived from the non-system messages. */
|
|
23
23
|
prompt: string;
|
|
24
|
+
/** Base64-encoded images pulled out of the user's messages, sent alongside the prompt. */
|
|
25
|
+
attachments?: BlobMessageAttachment[];
|
|
24
26
|
}
|
|
25
27
|
/**
|
|
26
28
|
* Flattens a Theia message history into an {@link SdkPrompt}.
|
|
@@ -31,8 +33,10 @@ export interface SdkPrompt {
|
|
|
31
33
|
* see {@link buildSdkSystemMessage}. A lone user turn is forwarded verbatim;
|
|
32
34
|
* richer histories are rendered as a role-labelled transcript.
|
|
33
35
|
*
|
|
34
|
-
*
|
|
35
|
-
*
|
|
36
|
+
* Base64 user images are pulled out of the history and sent as blob attachments instead of
|
|
37
|
+
* being flattened into the prompt text, see {@link isAttachableImageMessage}. This is otherwise
|
|
38
|
+
* a lossy mapping by design, see the limitations documented in the package README, and is
|
|
39
|
+
* intended for single-turn requests.
|
|
36
40
|
*/
|
|
37
41
|
export declare function buildSdkPrompt(messages: LanguageModelMessage[]): SdkPrompt;
|
|
38
42
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilot-sdk-mappers.d.ts","sourceRoot":"","sources":["../../src/node/copilot-sdk-mappers.ts"],"names":[],"mappings":"AAgBA,OAAO,
|
|
1
|
+
{"version":3,"file":"copilot-sdk-mappers.d.ts","sourceRoot":"","sources":["../../src/node/copilot-sdk-mappers.ts"],"names":[],"mappings":"AAgBA,OAAO,EAAkD,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtG,OAAO,KAAK,EAAE,qBAAqB,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAQjG;;;;;;;;;;GAUG;AACH,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,EAAE,CAmB/D;AAED;;;GAGG;AACH,MAAM,WAAW,SAAS;IACtB,kEAAkE;IAClE,UAAU,EAAE,MAAM,CAAC;IACnB,wEAAwE;IACxE,MAAM,EAAE,MAAM,CAAC;IACf,0FAA0F;IAC1F,WAAW,CAAC,EAAE,qBAAqB,EAAE,CAAC;CACzC;AA4CD;;;;;;;;;;;;;GAaG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,oBAAoB,EAAE,GAAG,SAAS,CA6B1E;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAczF"}
|
|
@@ -65,6 +65,16 @@ function roleLabel(message) {
|
|
|
65
65
|
return 'User';
|
|
66
66
|
}
|
|
67
67
|
}
|
|
68
|
+
/**
|
|
69
|
+
* Whether a message is a user image the SDK can be sent as a blob attachment.
|
|
70
|
+
*
|
|
71
|
+
* URL images are not covered: the SDK's attachments carry inline data, not a remote reference,
|
|
72
|
+
* and fetching the URL on the backend to inline it would add a server-side-request-forgery
|
|
73
|
+
* surface for what is, today, not a use case Theia exercises.
|
|
74
|
+
*/
|
|
75
|
+
function isAttachableImageMessage(message) {
|
|
76
|
+
return ai_core_1.LanguageModelMessage.isImageMessage(message) && message.actor === 'user' && ai_core_1.ImageContent.isBase64(message.image);
|
|
77
|
+
}
|
|
68
78
|
function messageToText(message) {
|
|
69
79
|
if (ai_core_1.LanguageModelMessage.isTextMessage(message)) {
|
|
70
80
|
return message.text;
|
|
@@ -79,6 +89,7 @@ function messageToText(message) {
|
|
|
79
89
|
return `[tool result: ${content}]`;
|
|
80
90
|
}
|
|
81
91
|
if (ai_core_1.LanguageModelMessage.isImageMessage(message)) {
|
|
92
|
+
// Reached for URL images and non-user image messages; base64 user images are attachments instead, see buildSdkPrompt.
|
|
82
93
|
return '[image omitted]';
|
|
83
94
|
}
|
|
84
95
|
return '';
|
|
@@ -92,17 +103,26 @@ function messageToText(message) {
|
|
|
92
103
|
* see {@link buildSdkSystemMessage}. A lone user turn is forwarded verbatim;
|
|
93
104
|
* richer histories are rendered as a role-labelled transcript.
|
|
94
105
|
*
|
|
95
|
-
*
|
|
96
|
-
*
|
|
106
|
+
* Base64 user images are pulled out of the history and sent as blob attachments instead of
|
|
107
|
+
* being flattened into the prompt text, see {@link isAttachableImageMessage}. This is otherwise
|
|
108
|
+
* a lossy mapping by design, see the limitations documented in the package README, and is
|
|
109
|
+
* intended for single-turn requests.
|
|
97
110
|
*/
|
|
98
111
|
function buildSdkPrompt(messages) {
|
|
99
112
|
const systemParts = [];
|
|
100
113
|
const conversation = [];
|
|
114
|
+
const attachments = [];
|
|
101
115
|
for (const message of messages) {
|
|
102
116
|
if (message.actor === 'system' && ai_core_1.LanguageModelMessage.isTextMessage(message)) {
|
|
103
117
|
systemParts.push(message.text);
|
|
104
118
|
}
|
|
105
|
-
else if (message.type
|
|
119
|
+
else if (message.type === 'thinking') {
|
|
120
|
+
continue;
|
|
121
|
+
}
|
|
122
|
+
else if (isAttachableImageMessage(message)) {
|
|
123
|
+
attachments.push({ type: 'blob', data: message.image.base64data, mimeType: message.image.mimeType });
|
|
124
|
+
}
|
|
125
|
+
else {
|
|
106
126
|
conversation.push(message);
|
|
107
127
|
}
|
|
108
128
|
}
|
|
@@ -117,7 +137,7 @@ function buildSdkPrompt(messages) {
|
|
|
117
137
|
.join('\n\n')
|
|
118
138
|
.trim();
|
|
119
139
|
}
|
|
120
|
-
return { systemText, prompt };
|
|
140
|
+
return { systemText, prompt, attachments: attachments.length > 0 ? attachments : undefined };
|
|
121
141
|
}
|
|
122
142
|
/**
|
|
123
143
|
* Builds the system message configuration of a session from the system text of a request.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilot-sdk-mappers.js","sourceRoot":"","sources":["../../src/node/copilot-sdk-mappers.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oDAAoD;AACpD,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;AAsBhF,8CAmBC;
|
|
1
|
+
{"version":3,"file":"copilot-sdk-mappers.js","sourceRoot":"","sources":["../../src/node/copilot-sdk-mappers.ts"],"names":[],"mappings":"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"}
|
|
@@ -105,6 +105,39 @@ describe('copilot-sdk-mappers - buildSdkPrompt', () => {
|
|
|
105
105
|
const result = (0, copilot_sdk_mappers_1.buildSdkPrompt)(messages);
|
|
106
106
|
(0, chai_1.expect)(result.prompt).to.equal('User: run it\n\nAssistant: [tool call: foo {"x":1}]\n\nUser: [tool result: done]');
|
|
107
107
|
});
|
|
108
|
+
it('turns a base64 user image into a blob attachment and drops it from the prompt text', () => {
|
|
109
|
+
const messages = [
|
|
110
|
+
{ actor: 'user', type: 'text', text: 'what is this?' },
|
|
111
|
+
{ actor: 'user', type: 'image', image: { base64data: 'aGk=', mimeType: 'image/png' } }
|
|
112
|
+
];
|
|
113
|
+
const result = (0, copilot_sdk_mappers_1.buildSdkPrompt)(messages);
|
|
114
|
+
(0, chai_1.expect)(result.prompt).to.equal('what is this?');
|
|
115
|
+
(0, chai_1.expect)(result.attachments).to.deep.equal([{ type: 'blob', data: 'aGk=', mimeType: 'image/png' }]);
|
|
116
|
+
});
|
|
117
|
+
it('collects multiple base64 images in message order', () => {
|
|
118
|
+
const messages = [
|
|
119
|
+
{ actor: 'user', type: 'image', image: { base64data: 'AAA=', mimeType: 'image/png' } },
|
|
120
|
+
{ actor: 'user', type: 'image', image: { base64data: 'BBB=', mimeType: 'image/jpeg' } }
|
|
121
|
+
];
|
|
122
|
+
const result = (0, copilot_sdk_mappers_1.buildSdkPrompt)(messages);
|
|
123
|
+
(0, chai_1.expect)(result.attachments).to.deep.equal([
|
|
124
|
+
{ type: 'blob', data: 'AAA=', mimeType: 'image/png' },
|
|
125
|
+
{ type: 'blob', data: 'BBB=', mimeType: 'image/jpeg' }
|
|
126
|
+
]);
|
|
127
|
+
});
|
|
128
|
+
it('leaves attachments undefined when there are no images', () => {
|
|
129
|
+
const result = (0, copilot_sdk_mappers_1.buildSdkPrompt)([{ actor: 'user', type: 'text', text: 'hi' }]);
|
|
130
|
+
(0, chai_1.expect)(result.attachments).to.be.undefined;
|
|
131
|
+
});
|
|
132
|
+
it('does not attach a URL image and renders it as an omitted placeholder instead', () => {
|
|
133
|
+
const messages = [
|
|
134
|
+
{ actor: 'user', type: 'text', text: 'look' },
|
|
135
|
+
{ actor: 'user', type: 'image', image: { url: 'https://example.com/a.png' } }
|
|
136
|
+
];
|
|
137
|
+
const result = (0, copilot_sdk_mappers_1.buildSdkPrompt)(messages);
|
|
138
|
+
(0, chai_1.expect)(result.attachments).to.be.undefined;
|
|
139
|
+
(0, chai_1.expect)(result.prompt).to.equal('User: look\n\nUser: [image omitted]');
|
|
140
|
+
});
|
|
108
141
|
});
|
|
109
142
|
describe('copilot-sdk-mappers - buildSdkSystemMessage', () => {
|
|
110
143
|
it('carries the system text as the content of the system message', () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilot-sdk-mappers.spec.js","sourceRoot":"","sources":["../../src/node/copilot-sdk-mappers.spec.ts"],"names":[],"mappings":";AAAA,gFAAgF;AAChF,oDAAoD;AACpD,EAAE;AACF,2EAA2E;AAC3E,mEAAmE;AACnE,wCAAwC;AACxC,EAAE;AACF,4EAA4E;AAC5E,8EAA8E;AAC9E,6EAA6E;AAC7E,yDAAyD;AACzD,uDAAuD;AACvD,EAAE;AACF,gFAAgF;AAChF,gFAAgF;;AAEhF,+BAA8B;AAG9B,+DAAiG;AAEjG,mFAAmF;AACnF,SAAS,KAAK,CAAC,EAAU,EAAE,KAA+C;IACtE,OAAO,EAAE,EAAE,EAAE,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC,CAAC,SAAS,EAA0B,CAAC;AACjF,CAAC;AAED,QAAQ,CAAC,yCAAyC,EAAE,GAAG,EAAE;IACrD,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACrE,MAAM,MAAM,GAAG,IAAA,uCAAiB,EAAC;YAC7B,KAAK,CAAC,QAAQ,EAAE,SAAS,CAAC;YAC1B,KAAK,CAAC,IAAI,EAAE,UAAU,CAAC;YACvB,KAAK,CAAC,QAAQ,EAAE,cAAc,CAAC;YAC/B,KAAK,CAAC,OAAO,CAAC;SACjB,CAAC,CAAC;QACH,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC;IAChE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wCAAwC,EAAE,GAAG,EAAE;QAC9C,MAAM,MAAM,GAAG,IAAA,uCAAiB,EAAC;YAC7B,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC;YACrB,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC;YACrB,KAAK,CAAC,GAAG,EAAE,SAAS,CAAC;SACxB,CAAC,CAAC;QACH,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,GAAG,CAAC,CAAC,CAAC;IAC7C,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAChE,MAAM,MAAM,GAAG,IAAA,uCAAiB,EAAC;YAC7B,KAAK,CAAC,OAAO,CAAC;YACd,KAAK,CAAC,kBAAkB,CAAC;YACzB,KAAK,CAAC,iBAAiB,CAAC;YACxB,KAAK,CAAC,0BAA0B,CAAC;SACpC,CAAC,CAAC;QACH,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,iBAAiB,CAAC,CAAC,CAAC;IAC/D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,iEAAiE,EAAE,GAAG,EAAE;QACvE,MAAM,MAAM,GAAG,IAAA,uCAAiB,EAAC,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,KAAK,CAAC,uBAAuB,CAAC,CAAC,CAAC,CAAC;QACnF,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,EAAE,uBAAuB,CAAC,CAAC,CAAC;IACrE,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0DAA0D,EAAE,GAAG,EAAE;QAChE,MAAM,MAAM,GAAG,IAAA,uCAAiB,EAAC,CAAC,KAAK,CAAC,OAAO,EAAE,UAAU,CAAC,EAAE,KAAK,CAAC,kBAAkB,CAAC,CAAC,CAAC,CAAC;QAC1F,IAAA,aAAM,EAAC,MAAM,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,kBAAkB,CAAC,CAAC,CAAC;IACvD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,4CAA4C,EAAE,GAAG,EAAE;QAClD,IAAA,aAAM,EAAC,IAAA,uCAAiB,EAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,sCAAsC,EAAE,GAAG,EAAE;IAClD,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAC9D,MAAM,QAAQ,GAA2B;YACrC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;SACvD,CAAC;QACF,MAAM,MAAM,GAAG,IAAA,oCAAc,EAAC,QAAQ,CAAC,CAAC;QACxC,IAAA,aAAM,EAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;QACvC,IAAA,aAAM,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,aAAa,CAAC,CAAC;IAClD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,2CAA2C,EAAE,GAAG,EAAE;QACjD,MAAM,QAAQ,GAA2B;YACrC,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,kBAAkB,EAAE;YAC3D,EAAE,KAAK,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE;YACtD,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,IAAI,EAAE;SAC9C,CAAC;QACF,MAAM,MAAM,GAAG,IAAA,oCAAc,EAAC,QAAQ,CAAC,CAAC;QACxC,IAAA,aAAM,EAAC,MAAM,CAAC,UAAU,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,iCAAiC,CAAC,CAAC;QACtE,IAAA,aAAM,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,+DAA+D,EAAE,GAAG,EAAE;QACrE,MAAM,QAAQ,GAA2B;YACrC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;YAC9C,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE;YAC5C,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;SAClD,CAAC;QACF,MAAM,MAAM,GAAG,IAAA,oCAAc,EAAC,QAAQ,CAAC,CAAC;QACxC,IAAA,aAAM,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;IACtF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,oDAAoD,EAAE,GAAG,EAAE;QAC1D,MAAM,QAAQ,GAA2B;YACrC,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,EAAE,SAAS,EAAE,GAAG,EAAE;YACvE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,WAAW,EAAE;SACrD,CAAC;QACF,MAAM,MAAM,GAAG,IAAA,oCAAc,EAAC,QAAQ,CAAC,CAAC;QACxC,IAAA,aAAM,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACtE,MAAM,QAAQ,GAA2B;YACrC,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,QAAQ,EAAE;YAC/C,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,KAAK,EAAE,EAAE,CAAC,EAAE,CAAC,EAAE,EAAE;YAC7E,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,aAAa,EAAE,WAAW,EAAE,QAAQ,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,MAAM,EAAE;SAC9F,CAAC;QACF,MAAM,MAAM,GAAG,IAAA,oCAAc,EAAC,QAAQ,CAAC,CAAC;QACxC,IAAA,aAAM,EAAC,MAAM,CAAC,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAC1B,kFAAkF,CACrF,CAAC;IACN,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC;AAEH,QAAQ,CAAC,6CAA6C,EAAE,GAAG,EAAE;IACzD,EAAE,CAAC,8DAA8D,EAAE,GAAG,EAAE;QACpE,MAAM,aAAa,GAAG,IAAA,2CAAqB,EAAC,YAAY,CAAC,CAAC;QAC1D,IAAA,aAAM,EAAC,aAAa,EAAE,IAAI,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC;QAClD,IAAA,aAAM,EAAC,aAAa,EAAE,OAAO,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC;IAC1D,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,0EAA0E,EAAE,GAAG,EAAE;QAChF,MAAM,aAAa,GAAG,IAAA,2CAAqB,EAAC,YAAY,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,aAAa,EAAE,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1F,IAAA,aAAM,EAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,IAAI,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,UAAU,EAAE,MAAM,EAAE,YAAY,EAAE,mBAAmB,CAAC,CAAC,CAAC;QAC7G,KAAK,MAAM,OAAO,IAAI,MAAM,CAAC,MAAM,CAAC,QAAQ,IAAI,EAAE,CAAC,EAAE,CAAC;YAClD,IAAA,aAAM,EAAC,OAAO,EAAE,MAAM,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,QAAQ,CAAC,CAAC;QAC/C,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sEAAsE,EAAE,GAAG,EAAE;QAC5E,MAAM,aAAa,GAAG,IAAA,2CAAqB,EAAC,YAAY,CAAC,CAAC;QAC1D,MAAM,QAAQ,GAAG,aAAa,EAAE,IAAI,KAAK,WAAW,CAAC,CAAC,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,CAAC;QAC1F,IAAA,aAAM,EAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,mBAAmB,CAAC,CAAC;QAC3D,IAAA,aAAM,EAAC,QAAQ,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACpD,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,wDAAwD,EAAE,GAAG,EAAE;QAC9D,IAAA,aAAM,EAAC,IAAA,2CAAqB,EAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,SAAS,CAAC;IACtD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
|
|
1
|
+
{"version":3,"file":"copilot-sdk-mappers.spec.js","sourceRoot":"","sources":["../../src/node/copilot-sdk-mappers.spec.ts"],"names":[],"mappings":"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"}
|
|
@@ -121,6 +121,18 @@ export interface CopilotSessionEvents {
|
|
|
121
121
|
}>;
|
|
122
122
|
}
|
|
123
123
|
export type CopilotSessionEventType = keyof CopilotSessionEvents;
|
|
124
|
+
/** The one attachment kind this integration produces: an inline image, from `MessageOptions['attachments']`. */
|
|
125
|
+
export interface BlobMessageAttachment {
|
|
126
|
+
type: 'blob';
|
|
127
|
+
data: string;
|
|
128
|
+
mimeType: string;
|
|
129
|
+
displayName?: string;
|
|
130
|
+
}
|
|
131
|
+
/** The options this integration passes to {@link CopilotSession.send}. */
|
|
132
|
+
export interface MessageOptions {
|
|
133
|
+
prompt: string;
|
|
134
|
+
attachments?: BlobMessageAttachment[];
|
|
135
|
+
}
|
|
124
136
|
/** A conversation with the runtime, upstream a class with resume, fork and sharing on top. */
|
|
125
137
|
export interface CopilotSession {
|
|
126
138
|
readonly sessionId: string;
|
|
@@ -129,9 +141,7 @@ export interface CopilotSession {
|
|
|
129
141
|
*/
|
|
130
142
|
on<K extends CopilotSessionEventType>(eventType: K, handler: (event: CopilotSessionEvents[K]) => void): () => void;
|
|
131
143
|
/** Sends a turn and resolves with the id of the message it created. */
|
|
132
|
-
send(options:
|
|
133
|
-
prompt: string;
|
|
134
|
-
}): Promise<string>;
|
|
144
|
+
send(options: MessageOptions): Promise<string>;
|
|
135
145
|
/** Stops the turn in flight. */
|
|
136
146
|
abort(): Promise<void>;
|
|
137
147
|
/** Releases the session in memory, leaving what it persisted in place. */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"copilot-sdk-types.d.ts","sourceRoot":"","sources":["../../src/node/copilot-sdk-types.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"copilot-sdk-types.d.ts","sourceRoot":"","sources":["../../src/node/copilot-sdk-types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@theia/ai-copilot",
|
|
3
|
-
"version": "1.76.0-next.
|
|
3
|
+
"version": "1.76.0-next.18+69805e329",
|
|
4
4
|
"description": "Theia - GitHub Copilot Integration",
|
|
5
5
|
"dependencies": {
|
|
6
|
-
"@theia/ai-core": "1.76.0-next.
|
|
7
|
-
"@theia/core": "1.76.0-next.
|
|
6
|
+
"@theia/ai-core": "1.76.0-next.18+69805e329",
|
|
7
|
+
"@theia/core": "1.76.0-next.18+69805e329",
|
|
8
8
|
"tslib": "^2.8.1"
|
|
9
9
|
},
|
|
10
10
|
"publishConfig": {
|
|
@@ -46,5 +46,5 @@
|
|
|
46
46
|
"nyc": {
|
|
47
47
|
"extends": "../../configs/nyc.json"
|
|
48
48
|
},
|
|
49
|
-
"gitHead": "
|
|
49
|
+
"gitHead": "69805e3299deb477431e6d1e527bd7ebada5726a"
|
|
50
50
|
}
|
|
@@ -49,9 +49,10 @@ class TestableCopilotSdkLanguageModel extends CopilotSdkLanguageModel {
|
|
|
49
49
|
* Runs a request against a session that reports itself idle as soon as it was sent to, and
|
|
50
50
|
* reports what the session was configured with, what it was sent, and what was discarded.
|
|
51
51
|
*/
|
|
52
|
-
async captureTurn(request: UserRequest): Promise<{ config: Record<string, unknown>, prompt?: string, deleted?: string }> {
|
|
52
|
+
async captureTurn(request: UserRequest): Promise<{ config: Record<string, unknown>, prompt?: string, attachments?: unknown[], deleted?: string }> {
|
|
53
53
|
let config: Record<string, unknown> = {};
|
|
54
54
|
let prompt: string | undefined;
|
|
55
|
+
let attachments: unknown[] | undefined;
|
|
55
56
|
let deleted: string | undefined;
|
|
56
57
|
const listeners = new Map<string, (event: unknown) => void>();
|
|
57
58
|
const session = {
|
|
@@ -60,8 +61,9 @@ class TestableCopilotSdkLanguageModel extends CopilotSdkLanguageModel {
|
|
|
60
61
|
listeners.set(event, handler);
|
|
61
62
|
return () => listeners.delete(event);
|
|
62
63
|
},
|
|
63
|
-
send: async (message: { prompt: string }) => {
|
|
64
|
+
send: async (message: { prompt: string, attachments?: unknown[] }) => {
|
|
64
65
|
prompt = message.prompt;
|
|
66
|
+
attachments = message.attachments;
|
|
65
67
|
listeners.get('session.idle')?.({});
|
|
66
68
|
},
|
|
67
69
|
abort: async () => { },
|
|
@@ -81,7 +83,7 @@ class TestableCopilotSdkLanguageModel extends CopilotSdkLanguageModel {
|
|
|
81
83
|
for await (const part of response.stream) {
|
|
82
84
|
expect(part).to.exist;
|
|
83
85
|
}
|
|
84
|
-
return { config, prompt, deleted };
|
|
86
|
+
return { config, prompt, attachments, deleted };
|
|
85
87
|
}
|
|
86
88
|
}
|
|
87
89
|
|
|
@@ -257,6 +259,18 @@ describe('CopilotSdkLanguageModel - turn', () => {
|
|
|
257
259
|
const { deleted } = await model.captureTurn(request);
|
|
258
260
|
expect(deleted).to.equal('test-session');
|
|
259
261
|
});
|
|
262
|
+
|
|
263
|
+
it('should send a base64 image of the request as a blob attachment', async () => {
|
|
264
|
+
const requestWithImage = {
|
|
265
|
+
messages: [
|
|
266
|
+
{ actor: 'user', type: 'text', text: 'what is this?' },
|
|
267
|
+
{ actor: 'user', type: 'image', image: { base64data: 'aGk=', mimeType: 'image/png' } }
|
|
268
|
+
]
|
|
269
|
+
} as unknown as UserRequest;
|
|
270
|
+
const { prompt, attachments } = await model.captureTurn(requestWithImage);
|
|
271
|
+
expect(prompt).to.equal('what is this?');
|
|
272
|
+
expect(attachments).to.deep.equal([{ type: 'blob', data: 'aGk=', mimeType: 'image/png' }]);
|
|
273
|
+
});
|
|
260
274
|
});
|
|
261
275
|
|
|
262
276
|
describe('CopilotStreamSink', () => {
|
|
@@ -24,7 +24,7 @@ import {
|
|
|
24
24
|
UserRequest
|
|
25
25
|
} from '@theia/ai-core';
|
|
26
26
|
import { CancellationToken, ILogger } from '@theia/core';
|
|
27
|
-
import type { CopilotClient, CopilotSession, PermissionHandler, Tool } from './copilot-sdk-types';
|
|
27
|
+
import type { BlobMessageAttachment, CopilotClient, CopilotSession, PermissionHandler, Tool } from './copilot-sdk-types';
|
|
28
28
|
import { buildSdkPrompt, buildSdkSystemMessage } from './copilot-sdk-mappers';
|
|
29
29
|
|
|
30
30
|
/**
|
|
@@ -155,7 +155,7 @@ export class CopilotSdkLanguageModel implements LanguageModel {
|
|
|
155
155
|
|
|
156
156
|
async request(request: UserRequest, cancellationToken?: CancellationToken): Promise<LanguageModelResponse> {
|
|
157
157
|
const client = await this.clientProvider();
|
|
158
|
-
const { systemText, prompt } = buildSdkPrompt(request.messages);
|
|
158
|
+
const { systemText, prompt, attachments } = buildSdkPrompt(request.messages);
|
|
159
159
|
const sink = new CopilotStreamSink();
|
|
160
160
|
|
|
161
161
|
const tools = this.createTools(request.tools ?? [], sink);
|
|
@@ -177,7 +177,7 @@ export class CopilotSdkLanguageModel implements LanguageModel {
|
|
|
177
177
|
onPermissionRequest: approveTheiaTools
|
|
178
178
|
});
|
|
179
179
|
|
|
180
|
-
return { stream: this.streamResponse(client, session, prompt, sink, cancellationToken) };
|
|
180
|
+
return { stream: this.streamResponse(client, session, prompt, attachments, sink, cancellationToken) };
|
|
181
181
|
}
|
|
182
182
|
|
|
183
183
|
/**
|
|
@@ -235,6 +235,7 @@ export class CopilotSdkLanguageModel implements LanguageModel {
|
|
|
235
235
|
client: CopilotClient,
|
|
236
236
|
session: CopilotSession,
|
|
237
237
|
prompt: string,
|
|
238
|
+
attachments: BlobMessageAttachment[] | undefined,
|
|
238
239
|
sink: CopilotStreamSink,
|
|
239
240
|
cancellationToken?: CancellationToken
|
|
240
241
|
): AsyncIterable<LanguageModelStreamResponsePart> {
|
|
@@ -292,7 +293,7 @@ export class CopilotSdkLanguageModel implements LanguageModel {
|
|
|
292
293
|
} else {
|
|
293
294
|
// Deliberately not awaited: the turn only completes after the tool loop has run, and
|
|
294
295
|
// its parts have to be yielded while that happens.
|
|
295
|
-
session.send({ prompt }).catch(error => sink.finish(error));
|
|
296
|
+
session.send({ prompt, attachments }).catch(error => sink.finish(error));
|
|
296
297
|
}
|
|
297
298
|
yield* sink.drain();
|
|
298
299
|
if (inputTokens !== undefined || outputTokens !== undefined) {
|
|
@@ -120,6 +120,43 @@ describe('copilot-sdk-mappers - buildSdkPrompt', () => {
|
|
|
120
120
|
'User: run it\n\nAssistant: [tool call: foo {"x":1}]\n\nUser: [tool result: done]'
|
|
121
121
|
);
|
|
122
122
|
});
|
|
123
|
+
|
|
124
|
+
it('turns a base64 user image into a blob attachment and drops it from the prompt text', () => {
|
|
125
|
+
const messages: LanguageModelMessage[] = [
|
|
126
|
+
{ actor: 'user', type: 'text', text: 'what is this?' },
|
|
127
|
+
{ actor: 'user', type: 'image', image: { base64data: 'aGk=', mimeType: 'image/png' } }
|
|
128
|
+
];
|
|
129
|
+
const result = buildSdkPrompt(messages);
|
|
130
|
+
expect(result.prompt).to.equal('what is this?');
|
|
131
|
+
expect(result.attachments).to.deep.equal([{ type: 'blob', data: 'aGk=', mimeType: 'image/png' }]);
|
|
132
|
+
});
|
|
133
|
+
|
|
134
|
+
it('collects multiple base64 images in message order', () => {
|
|
135
|
+
const messages: LanguageModelMessage[] = [
|
|
136
|
+
{ actor: 'user', type: 'image', image: { base64data: 'AAA=', mimeType: 'image/png' } },
|
|
137
|
+
{ actor: 'user', type: 'image', image: { base64data: 'BBB=', mimeType: 'image/jpeg' } }
|
|
138
|
+
];
|
|
139
|
+
const result = buildSdkPrompt(messages);
|
|
140
|
+
expect(result.attachments).to.deep.equal([
|
|
141
|
+
{ type: 'blob', data: 'AAA=', mimeType: 'image/png' },
|
|
142
|
+
{ type: 'blob', data: 'BBB=', mimeType: 'image/jpeg' }
|
|
143
|
+
]);
|
|
144
|
+
});
|
|
145
|
+
|
|
146
|
+
it('leaves attachments undefined when there are no images', () => {
|
|
147
|
+
const result = buildSdkPrompt([{ actor: 'user', type: 'text', text: 'hi' }]);
|
|
148
|
+
expect(result.attachments).to.be.undefined;
|
|
149
|
+
});
|
|
150
|
+
|
|
151
|
+
it('does not attach a URL image and renders it as an omitted placeholder instead', () => {
|
|
152
|
+
const messages: LanguageModelMessage[] = [
|
|
153
|
+
{ actor: 'user', type: 'text', text: 'look' },
|
|
154
|
+
{ actor: 'user', type: 'image', image: { url: 'https://example.com/a.png' } }
|
|
155
|
+
];
|
|
156
|
+
const result = buildSdkPrompt(messages);
|
|
157
|
+
expect(result.attachments).to.be.undefined;
|
|
158
|
+
expect(result.prompt).to.equal('User: look\n\nUser: [image omitted]');
|
|
159
|
+
});
|
|
123
160
|
});
|
|
124
161
|
|
|
125
162
|
describe('copilot-sdk-mappers - buildSdkSystemMessage', () => {
|
|
@@ -14,8 +14,8 @@
|
|
|
14
14
|
// SPDX-License-Identifier: EPL-2.0 OR GPL-2.0-only WITH Classpath-exception-2.0
|
|
15
15
|
// *****************************************************************************
|
|
16
16
|
|
|
17
|
-
import { LanguageModelMessage } from '@theia/ai-core';
|
|
18
|
-
import type { ModelInfo, SystemMessageConfig } from './copilot-sdk-types';
|
|
17
|
+
import { Base64ImageContent, ImageContent, ImageMessage, LanguageModelMessage } from '@theia/ai-core';
|
|
18
|
+
import type { BlobMessageAttachment, ModelInfo, SystemMessageConfig } from './copilot-sdk-types';
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
21
|
* Recognizes an id that names a dated release of another model, such as
|
|
@@ -64,6 +64,8 @@ export interface SdkPrompt {
|
|
|
64
64
|
systemText: string;
|
|
65
65
|
/** The user-facing prompt body derived from the non-system messages. */
|
|
66
66
|
prompt: string;
|
|
67
|
+
/** Base64-encoded images pulled out of the user's messages, sent alongside the prompt. */
|
|
68
|
+
attachments?: BlobMessageAttachment[];
|
|
67
69
|
}
|
|
68
70
|
|
|
69
71
|
function roleLabel(message: LanguageModelMessage): string {
|
|
@@ -77,6 +79,17 @@ function roleLabel(message: LanguageModelMessage): string {
|
|
|
77
79
|
}
|
|
78
80
|
}
|
|
79
81
|
|
|
82
|
+
/**
|
|
83
|
+
* Whether a message is a user image the SDK can be sent as a blob attachment.
|
|
84
|
+
*
|
|
85
|
+
* URL images are not covered: the SDK's attachments carry inline data, not a remote reference,
|
|
86
|
+
* and fetching the URL on the backend to inline it would add a server-side-request-forgery
|
|
87
|
+
* surface for what is, today, not a use case Theia exercises.
|
|
88
|
+
*/
|
|
89
|
+
function isAttachableImageMessage(message: LanguageModelMessage): message is ImageMessage & { image: Base64ImageContent } {
|
|
90
|
+
return LanguageModelMessage.isImageMessage(message) && message.actor === 'user' && ImageContent.isBase64(message.image);
|
|
91
|
+
}
|
|
92
|
+
|
|
80
93
|
function messageToText(message: LanguageModelMessage): string {
|
|
81
94
|
if (LanguageModelMessage.isTextMessage(message)) {
|
|
82
95
|
return message.text;
|
|
@@ -91,6 +104,7 @@ function messageToText(message: LanguageModelMessage): string {
|
|
|
91
104
|
return `[tool result: ${content}]`;
|
|
92
105
|
}
|
|
93
106
|
if (LanguageModelMessage.isImageMessage(message)) {
|
|
107
|
+
// Reached for URL images and non-user image messages; base64 user images are attachments instead, see buildSdkPrompt.
|
|
94
108
|
return '[image omitted]';
|
|
95
109
|
}
|
|
96
110
|
return '';
|
|
@@ -105,16 +119,23 @@ function messageToText(message: LanguageModelMessage): string {
|
|
|
105
119
|
* see {@link buildSdkSystemMessage}. A lone user turn is forwarded verbatim;
|
|
106
120
|
* richer histories are rendered as a role-labelled transcript.
|
|
107
121
|
*
|
|
108
|
-
*
|
|
109
|
-
*
|
|
122
|
+
* Base64 user images are pulled out of the history and sent as blob attachments instead of
|
|
123
|
+
* being flattened into the prompt text, see {@link isAttachableImageMessage}. This is otherwise
|
|
124
|
+
* a lossy mapping by design, see the limitations documented in the package README, and is
|
|
125
|
+
* intended for single-turn requests.
|
|
110
126
|
*/
|
|
111
127
|
export function buildSdkPrompt(messages: LanguageModelMessage[]): SdkPrompt {
|
|
112
128
|
const systemParts: string[] = [];
|
|
113
129
|
const conversation: LanguageModelMessage[] = [];
|
|
130
|
+
const attachments: BlobMessageAttachment[] = [];
|
|
114
131
|
for (const message of messages) {
|
|
115
132
|
if (message.actor === 'system' && LanguageModelMessage.isTextMessage(message)) {
|
|
116
133
|
systemParts.push(message.text);
|
|
117
|
-
} else if (message.type
|
|
134
|
+
} else if (message.type === 'thinking') {
|
|
135
|
+
continue;
|
|
136
|
+
} else if (isAttachableImageMessage(message)) {
|
|
137
|
+
attachments.push({ type: 'blob', data: message.image.base64data, mimeType: message.image.mimeType });
|
|
138
|
+
} else {
|
|
118
139
|
conversation.push(message);
|
|
119
140
|
}
|
|
120
141
|
}
|
|
@@ -131,7 +152,7 @@ export function buildSdkPrompt(messages: LanguageModelMessage[]): SdkPrompt {
|
|
|
131
152
|
.trim();
|
|
132
153
|
}
|
|
133
154
|
|
|
134
|
-
return { systemText, prompt };
|
|
155
|
+
return { systemText, prompt, attachments: attachments.length > 0 ? attachments : undefined };
|
|
135
156
|
}
|
|
136
157
|
|
|
137
158
|
/**
|
|
@@ -191,9 +191,23 @@ export interface CopilotSessionEvents {
|
|
|
191
191
|
export type CopilotSessionEventType = keyof CopilotSessionEvents;
|
|
192
192
|
|
|
193
193
|
// ============================================================================
|
|
194
|
-
// Session, from `dist/session.d.ts`
|
|
194
|
+
// Session, from `dist/session.d.ts` and `dist/types.d.ts`
|
|
195
195
|
// ============================================================================
|
|
196
196
|
|
|
197
|
+
/** The one attachment kind this integration produces: an inline image, from `MessageOptions['attachments']`. */
|
|
198
|
+
export interface BlobMessageAttachment {
|
|
199
|
+
type: 'blob';
|
|
200
|
+
data: string;
|
|
201
|
+
mimeType: string;
|
|
202
|
+
displayName?: string;
|
|
203
|
+
}
|
|
204
|
+
|
|
205
|
+
/** The options this integration passes to {@link CopilotSession.send}. */
|
|
206
|
+
export interface MessageOptions {
|
|
207
|
+
prompt: string;
|
|
208
|
+
attachments?: BlobMessageAttachment[];
|
|
209
|
+
}
|
|
210
|
+
|
|
197
211
|
/** A conversation with the runtime, upstream a class with resume, fork and sharing on top. */
|
|
198
212
|
export interface CopilotSession {
|
|
199
213
|
readonly sessionId: string;
|
|
@@ -202,7 +216,7 @@ export interface CopilotSession {
|
|
|
202
216
|
*/
|
|
203
217
|
on<K extends CopilotSessionEventType>(eventType: K, handler: (event: CopilotSessionEvents[K]) => void): () => void;
|
|
204
218
|
/** Sends a turn and resolves with the id of the message it created. */
|
|
205
|
-
send(options:
|
|
219
|
+
send(options: MessageOptions): Promise<string>;
|
|
206
220
|
/** Stops the turn in flight. */
|
|
207
221
|
abort(): Promise<void>;
|
|
208
222
|
/** Releases the session in memory, leaving what it persisted in place. */
|