@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 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 dropped and only noted as omitted.
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;AAGlG;;;;;;;;;;;;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,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"}
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":"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"}
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
- * This is a lossy mapping by design, see the limitations documented in the package
35
- * README, and is intended for single-turn requests.
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,EAAE,oBAAoB,EAAE,MAAM,gBAAgB,CAAC;AACtD,OAAO,KAAK,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAC;AAQ1E;;;;;;;;;;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;CAClB;AAgCD;;;;;;;;;;;GAWG;AACH,wBAAgB,cAAc,CAAC,QAAQ,EAAE,oBAAoB,EAAE,GAAG,SAAS,CAwB1E;AAED;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CAAC,UAAU,EAAE,MAAM,GAAG,mBAAmB,GAAG,SAAS,CAczF"}
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
- * This is a lossy mapping by design, see the limitations documented in the package
96
- * README, and is intended for single-turn requests.
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 !== 'thinking') {
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":"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"}
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":"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"}
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.14+6f8fdc2e7",
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.14+6f8fdc2e7",
7
- "@theia/core": "1.76.0-next.14+6f8fdc2e7",
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": "6f8fdc2e711d78cd60e21d188d0140277548029a"
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
- * This is a lossy mapping by design, see the limitations documented in the package
109
- * README, and is intended for single-turn requests.
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 !== 'thinking') {
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: { prompt: string }): Promise<string>;
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. */