@alisaitteke/photoshop-mcp 0.1.7 → 1.1.2

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.
Files changed (70) hide show
  1. package/README.md +55 -0
  2. package/dist/api/extendscript.d.ts +12 -2
  3. package/dist/api/extendscript.d.ts.map +1 -1
  4. package/dist/api/extendscript.js +76 -9
  5. package/dist/api/extendscript.js.map +1 -1
  6. package/dist/api/photoshop-api.js +20 -3
  7. package/dist/api/photoshop-api.js.map +1 -1
  8. package/dist/platform/macos-executor.d.ts.map +1 -1
  9. package/dist/platform/macos-executor.js +3 -2
  10. package/dist/platform/macos-executor.js.map +1 -1
  11. package/dist/ui/agent.d.ts +44 -0
  12. package/dist/ui/agent.d.ts.map +1 -0
  13. package/dist/ui/agent.js +198 -0
  14. package/dist/ui/agent.js.map +1 -0
  15. package/dist/ui/cli.d.ts +3 -0
  16. package/dist/ui/cli.d.ts.map +1 -0
  17. package/dist/ui/cli.js +96 -0
  18. package/dist/ui/cli.js.map +1 -0
  19. package/dist/ui/config.d.ts +16 -0
  20. package/dist/ui/config.d.ts.map +1 -0
  21. package/dist/ui/config.js +45 -0
  22. package/dist/ui/config.js.map +1 -0
  23. package/dist/ui/providers/anthropic.d.ts +3 -0
  24. package/dist/ui/providers/anthropic.d.ts.map +1 -0
  25. package/dist/ui/providers/anthropic.js +72 -0
  26. package/dist/ui/providers/anthropic.js.map +1 -0
  27. package/dist/ui/providers/google.d.ts +3 -0
  28. package/dist/ui/providers/google.d.ts.map +1 -0
  29. package/dist/ui/providers/google.js +71 -0
  30. package/dist/ui/providers/google.js.map +1 -0
  31. package/dist/ui/providers/openai.d.ts +3 -0
  32. package/dist/ui/providers/openai.d.ts.map +1 -0
  33. package/dist/ui/providers/openai.js +71 -0
  34. package/dist/ui/providers/openai.js.map +1 -0
  35. package/dist/ui/providers/openrouter.d.ts +3 -0
  36. package/dist/ui/providers/openrouter.d.ts.map +1 -0
  37. package/dist/ui/providers/openrouter.js +82 -0
  38. package/dist/ui/providers/openrouter.js.map +1 -0
  39. package/dist/ui/providers/registry.d.ts +6 -0
  40. package/dist/ui/providers/registry.d.ts.map +1 -0
  41. package/dist/ui/providers/registry.js +17 -0
  42. package/dist/ui/providers/registry.js.map +1 -0
  43. package/dist/ui/providers/types.d.ts +40 -0
  44. package/dist/ui/providers/types.d.ts.map +1 -0
  45. package/dist/ui/providers/types.js +2 -0
  46. package/dist/ui/providers/types.js.map +1 -0
  47. package/dist/ui/server.d.ts +10 -0
  48. package/dist/ui/server.d.ts.map +1 -0
  49. package/dist/ui/server.js +337 -0
  50. package/dist/ui/server.js.map +1 -0
  51. package/dist/ui/store/chats.d.ts +53 -0
  52. package/dist/ui/store/chats.d.ts.map +1 -0
  53. package/dist/ui/store/chats.js +89 -0
  54. package/dist/ui/store/chats.js.map +1 -0
  55. package/dist/ui/store/db.d.ts +6 -0
  56. package/dist/ui/store/db.d.ts.map +1 -0
  57. package/dist/ui/store/db.js +59 -0
  58. package/dist/ui/store/db.js.map +1 -0
  59. package/dist/ui/store/kv.d.ts +4 -0
  60. package/dist/ui/store/kv.d.ts.map +1 -0
  61. package/dist/ui/store/kv.js +24 -0
  62. package/dist/ui/store/kv.js.map +1 -0
  63. package/package.json +42 -6
  64. package/web/dist/assets/index-Kxyfap9w.js +138 -0
  65. package/web/dist/assets/index-Th6OF4IB.css +1 -0
  66. package/web/dist/assets/source-sans-3-latin-wght-normal-BqRLTx4X.woff2 +0 -0
  67. package/web/dist/index.html +15 -0
  68. package/web/dist/ps-logo-icon.svg +6 -0
  69. package/.prettierrc +0 -9
  70. package/server.json +0 -21
package/README.md CHANGED
@@ -8,6 +8,61 @@
8
8
 
9
9
  A Model Context Protocol (MCP) server that enables AI assistants like Claude and Cursor to control Adobe Photoshop programmatically. This allows you to create designs, manipulate images, and automate Photoshop workflows through natural language commands while working in your IDE.
10
10
 
11
+ ## 🖥️ Standalone UI (no IDE required)
12
+
13
+ Don't want to wire this into Claude Desktop or Cursor? The same package ships a
14
+ fully local web UI that lets you chat with an AI model and drive Photoshop
15
+ through this MCP server underneath.
16
+
17
+ ![Standalone UI Screenshot](./images/frame_generic_light.png)
18
+
19
+ ```bash
20
+ npx -p @alisaitteke/photoshop-mcp photoshop-mcp-ui
21
+ ```
22
+
23
+ That's it. A local server starts on `127.0.0.1` (random free port) and your
24
+ default browser opens the chat UI automatically.
25
+
26
+ ### Supported providers
27
+
28
+ Pick any of the following on first launch — bring your own API key:
29
+
30
+ | Provider | Models | Get a key |
31
+ |---|---|---|
32
+ | **Anthropic** | Claude Sonnet / Opus / Haiku | [console.anthropic.com](https://console.anthropic.com/settings/keys) |
33
+ | **OpenAI** | GPT-5, GPT-4.1, o-series | [platform.openai.com](https://platform.openai.com/api-keys) |
34
+ | **Google** | Gemini 2.5 Pro / Flash / Flash-Lite | [aistudio.google.com](https://aistudio.google.com/apikey) |
35
+ | **OpenRouter** | 100+ models from any provider | [openrouter.ai](https://openrouter.ai/keys) |
36
+
37
+ ### What happens on first launch
38
+
39
+ 1. Pick a provider and paste your API key.
40
+ 2. The key is validated against the provider, then stored locally at
41
+ `~/.photoshop-mcp/data.db` (SQLite, `chmod 600`). It never leaves your
42
+ machine.
43
+ 3. Type natural-language prompts. The UI streams the model's reply, runs
44
+ Photoshop tool calls in real time, and renders each tool call as an
45
+ inspectable card (input + result).
46
+ 4. Switch provider or model anytime from the model selector — chats, costs and
47
+ tool history are persisted across sessions.
48
+
49
+ ### CLI flags
50
+
51
+ ```
52
+ photoshop-mcp-ui [--port 5174] [--host 127.0.0.1] [--no-open]
53
+ ```
54
+
55
+ ### Notes
56
+
57
+ - The agent is restricted to Photoshop MCP tools only — built-in shell, file
58
+ and web tools are disabled.
59
+ - Tech stack: Vue 3 + Tailwind v4 + [shadcn-vue](https://www.shadcn-vue.com/)
60
+ on the frontend; [Hono](https://hono.dev/) + the [Vercel AI SDK](https://sdk.vercel.ai/)
61
+ on the backend. The agent loop talks to this same Photoshop MCP server over
62
+ STDIO — same code path as the IDE integration.
63
+
64
+ ---
65
+
11
66
  ## Example Prompts
12
67
 
13
68
  Below are example prompts you can use with AI assistants (Claude, Cursor, etc.) when this MCP server is configured:
@@ -55,7 +55,12 @@ export declare const ExtendScriptSnippets: {
55
55
  */
56
56
  deleteLayer: () => string;
57
57
  /**
58
- * Fill layer with color
58
+ * Fill the active layer with a solid RGB color.
59
+ *
60
+ * ArtLayer has no fillPath() method (that exists on PathItem only).
61
+ * The correct approach is Selection.fill(): preserve any existing
62
+ * selection, otherwise select the whole canvas, fill, then deselect.
63
+ * Background / fully-locked layers cannot be filled, so fail clearly.
59
64
  */
60
65
  fillLayer: (red: number, green: number, blue: number) => string;
61
66
  /**
@@ -139,7 +144,12 @@ export declare const ExtendScriptSnippets: {
139
144
  */
140
145
  adjustBrightnessContrast: (brightness: number, contrast: number) => string;
141
146
  /**
142
- * Adjust hue and saturation
147
+ * Adjust hue, saturation and lightness on the active layer.
148
+ *
149
+ * ArtLayer has no DOM method for Hue/Saturation - adjustColorBalance()
150
+ * is for Color Balance (cyan/red, magenta/green, yellow/blue) and would
151
+ * throw here. The correct path is the "HStr" Action Descriptor which
152
+ * matches the Image > Adjustments > Hue/Saturation menu command.
143
153
  */
144
154
  adjustHueSaturation: (hue: number, saturation: number, lightness: number) => string;
145
155
  /**
@@ -1 +1 @@
1
- {"version":3,"file":"extendscript.d.ts","sourceRoot":"","sources":["../../src/api/extendscript.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA8DH;;GAEG;AACH,eAAO,MAAM,oBAAoB;IAC/B;;OAEG;;IASH;;OAEG;yBACkB,MAAM,UAAU,MAAM;IAW3C;;OAEG;;IAYH;;OAEG;4BACqB,MAAM;IAwB9B;;OAEG;2BACoB,MAAM;IAwC7B;;OAEG;0BACmB,MAAM;IAe5B;;OAEG;sBACe,MAAM;IAYxB;;OAEG;uBACgB,MAAM;IAazB;;OAEG;sBACe,MAAM;IAYxB;;OAEG;;IAUH;;OAEG;sBACe,MAAM;IAkBxB;;OAEG;;IAaH;;OAEG;qBACc,MAAM,SAAS,MAAM,QAAQ,MAAM;IAapD;;OAEG;yBACkB,MAAM,UAAU,MAAM;IAiB3C;;OAEG;;IA4BH;;OAEG;wBACiB,MAAM;IAc1B;;OAEG;;IA8DH;;OAEG;+BACwB,MAAM;IAoBjC;;OAEG;wBACiB,MAAM,UAAU,MAAM;IAoB1C;;OAEG;2BACoB,MAAM;IAmB7B;;OAEG;+BACwB,MAAM;IAqBjC;;OAEG;mCAC4B,MAAM;IAqBrC;;OAEG;kCAC2B,OAAO;IAerC;;OAEG;6BACsB,OAAO;IAehC;;OAEG;2BACoB,MAAM;IAgB7B;;OAEG;+BACwB,MAAM;IAgBjC;;OAEG;;IAaH;;OAEG;;IAaH;;OAEG;gCACyB,MAAM;IA+BlC;;OAEG;+BACwB,MAAM,UAAU,MAAM,aAAa,MAAM;IAyBpE;;OAEG;4BACqB,MAAM,gBAAgB,MAAM,iBAAiB,OAAO;IA0B5E;;OAEG;6BACsB,MAAM,UAAU,MAAM;IAwB/C;;OAEG;2CACoC,MAAM,YAAY,MAAM;IAoB/D;;OAEG;+BACwB,MAAM,cAAc,MAAM,aAAa,MAAM;IAgBxE;;OAEG;;IAmBH;;OAEG;;IAmBH;;OAEG;;IAmBH;;OAEG;;IAmBH;;OAEG;yBACkB,MAAM,OAAO,MAAM,SAAS,MAAM,UAAU,MAAM;IAgBvE;;OAEG;4BACqB,MAAM,aAAa,MAAM;IAmBjD;;OAEG;wBACiB,MAAM,SAAS,MAAM,QAAQ,MAAM;IAqBvD;;OAEG;kCAC2B,MAAM;IAiBpC;;OAEG;iCAC0B,MAAM;IAiBnC;;OAEG;4BACqB,MAAM,OAAO,MAAM,SAAS,MAAM,UAAU,MAAM;IAe1E;;OAEG;;IAaH;;OAEG;;IAaH;;OAEG;;IAaH;;OAEG;;IAqBH;;OAEG;;IAmBH;;OAEG;;IAmBH;;OAEG;6BACsB,MAAM,iBAAiB,MAAM;IAStD;;OAEG;gCACyB,MAAM;IAIlC;;OAEG;;IAwBH;;OAEG;;IAwCH;;OAEG;;IAwCH;;OAEG;;IAoCH;;OAEG;2CACoC,MAAM,YAAY,MAAM;IAiD/D;;OAEG;;IAuBH;;OAEG;;IAuBH;;OAEG;;IAuCH;;OAEG;;CAsCJ,CAAC;AAEF;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUzD"}
1
+ {"version":3,"file":"extendscript.d.ts","sourceRoot":"","sources":["../../src/api/extendscript.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAqEH;;GAEG;AACH,eAAO,MAAM,oBAAoB;IAC/B;;OAEG;;IASH;;OAEG;yBACkB,MAAM,UAAU,MAAM;IAW3C;;OAEG;;IAYH;;OAEG;4BACqB,MAAM;IAwB9B;;OAEG;2BACoB,MAAM;IAwC7B;;OAEG;0BACmB,MAAM;IAe5B;;OAEG;sBACe,MAAM;IAYxB;;OAEG;uBACgB,MAAM;IAazB;;OAEG;sBACe,MAAM;IAYxB;;OAEG;;IAUH;;OAEG;sBACe,MAAM;IAkBxB;;OAEG;;IAaH;;;;;;;OAOG;qBACc,MAAM,SAAS,MAAM,QAAQ,MAAM;IAyCpD;;OAEG;yBACkB,MAAM,UAAU,MAAM;IAiB3C;;OAEG;;IA4BH;;OAEG;wBACiB,MAAM;IAc1B;;OAEG;;IA8DH;;OAEG;+BACwB,MAAM;IAoBjC;;OAEG;wBACiB,MAAM,UAAU,MAAM;IAoB1C;;OAEG;2BACoB,MAAM;IAmB7B;;OAEG;+BACwB,MAAM;IAqBjC;;OAEG;mCAC4B,MAAM;IAqBrC;;OAEG;kCAC2B,OAAO;IAerC;;OAEG;6BACsB,OAAO;IAehC;;OAEG;2BACoB,MAAM;IAgB7B;;OAEG;+BACwB,MAAM;IAgBjC;;OAEG;;IAaH;;OAEG;;IAaH;;OAEG;gCACyB,MAAM;IA+BlC;;OAEG;+BACwB,MAAM,UAAU,MAAM,aAAa,MAAM;IAyBpE;;OAEG;4BACqB,MAAM,gBAAgB,MAAM,iBAAiB,OAAO;IA0B5E;;OAEG;6BACsB,MAAM,UAAU,MAAM;IAwB/C;;OAEG;2CACoC,MAAM,YAAY,MAAM;IAoB/D;;;;;;;OAOG;+BACwB,MAAM,cAAc,MAAM,aAAa,MAAM;IAsCxE;;OAEG;;IAmBH;;OAEG;;IAmBH;;OAEG;;IAmBH;;OAEG;;IAmBH;;OAEG;yBACkB,MAAM,OAAO,MAAM,SAAS,MAAM,UAAU,MAAM;IAgBvE;;OAEG;4BACqB,MAAM,aAAa,MAAM;IAmBjD;;OAEG;wBACiB,MAAM,SAAS,MAAM,QAAQ,MAAM;IAqBvD;;OAEG;kCAC2B,MAAM;IAiBpC;;OAEG;iCAC0B,MAAM;IAiBnC;;OAEG;4BACqB,MAAM,OAAO,MAAM,SAAS,MAAM,UAAU,MAAM;IAe1E;;OAEG;;IAaH;;OAEG;;IAaH;;OAEG;;IAaH;;OAEG;;IAqBH;;OAEG;;IAmBH;;OAEG;;IAmBH;;OAEG;6BACsB,MAAM,iBAAiB,MAAM;IAStD;;OAEG;gCACyB,MAAM;IAIlC;;OAEG;;IAwBH;;OAEG;;IAwCH;;OAEG;;IAwCH;;OAEG;;IAoCH;;OAEG;2CACoC,MAAM,YAAY,MAAM;IAiD/D;;OAEG;;IAuBH;;OAEG;;IAuBH;;OAEG;;IAuCH;;OAEG;;CAsCJ,CAAC;AAEF;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAUzD"}
@@ -27,7 +27,14 @@ function getContextInfo() {
27
27
  resolution: doc.resolution,
28
28
  colorMode: String(doc.mode),
29
29
  layerCount: doc.layers.length,
30
- hasSelection: doc.selection.bounds ? true : false
30
+ hasSelection: (function () {
31
+ try {
32
+ return !!(doc.selection && doc.selection.bounds);
33
+ } catch (e) {
34
+ // ExtendScript throws "No such element" when there is no active selection
35
+ return false;
36
+ }
37
+ })()
31
38
  };
32
39
 
33
40
  if (doc.activeLayer) {
@@ -274,19 +281,52 @@ export const ExtendScriptSnippets = {
274
281
  throw new Error('No active layer');
275
282
  `,
276
283
  /**
277
- * Fill layer with color
284
+ * Fill the active layer with a solid RGB color.
285
+ *
286
+ * ArtLayer has no fillPath() method (that exists on PathItem only).
287
+ * The correct approach is Selection.fill(): preserve any existing
288
+ * selection, otherwise select the whole canvas, fill, then deselect.
289
+ * Background / fully-locked layers cannot be filled, so fail clearly.
278
290
  */
279
291
  fillLayer: (red, green, blue) => `
280
292
  if (app.documents.length === 0) {
281
293
  throw new Error('No active document');
282
294
  }
283
295
  var doc = app.activeDocument;
296
+ var layer = doc.activeLayer;
297
+
298
+ if (layer.allLocked) {
299
+ throw new Error('Cannot fill a fully locked layer: ' + layer.name);
300
+ }
301
+ if (layer.kind === LayerKind.TEXT) {
302
+ throw new Error('Cannot fill a text layer. Rasterize it first.');
303
+ }
304
+
284
305
  var color = new SolidColor();
285
306
  color.rgb.red = ${red};
286
307
  color.rgb.green = ${green};
287
308
  color.rgb.blue = ${blue};
288
- doc.activeLayer.fillPath(color);
289
- return { filled: true };
309
+
310
+ var hadSelection = false;
311
+ try {
312
+ hadSelection = doc.selection.bounds != null;
313
+ } catch (e) {
314
+ hadSelection = false;
315
+ }
316
+
317
+ if (!hadSelection) {
318
+ doc.selection.selectAll();
319
+ }
320
+ doc.selection.fill(color);
321
+ if (!hadSelection) {
322
+ doc.selection.deselect();
323
+ }
324
+
325
+ return {
326
+ filled: true,
327
+ layerName: layer.name,
328
+ color: { red: ${red}, green: ${green}, blue: ${blue} }
329
+ };
290
330
  `,
291
331
  /**
292
332
  * Resize image
@@ -761,17 +801,44 @@ export const ExtendScriptSnippets = {
761
801
  };
762
802
  `,
763
803
  /**
764
- * Adjust hue and saturation
804
+ * Adjust hue, saturation and lightness on the active layer.
805
+ *
806
+ * ArtLayer has no DOM method for Hue/Saturation - adjustColorBalance()
807
+ * is for Color Balance (cyan/red, magenta/green, yellow/blue) and would
808
+ * throw here. The correct path is the "HStr" Action Descriptor which
809
+ * matches the Image > Adjustments > Hue/Saturation menu command.
765
810
  */
766
811
  adjustHueSaturation: (hue, saturation, lightness) => `
812
+ ${helperFunctions}
813
+
767
814
  if (app.documents.length === 0) {
768
815
  throw new Error('No active document');
769
816
  }
770
817
  var layer = app.activeDocument.activeLayer;
771
-
772
- layer.adjustColorBalance([${hue}], [${saturation}], [${lightness}]);
773
-
774
- return {
818
+
819
+ if (layer.kind === LayerKind.TEXT || layer.kind === LayerKind.SMARTOBJECT) {
820
+ layer.rasterize(RasterizeType.ENTIRELAYER);
821
+ }
822
+
823
+ var desc = new ActionDescriptor();
824
+ desc.putEnumerated(
825
+ sTID('presetKind'),
826
+ sTID('presetKindType'),
827
+ sTID('presetKindCustom')
828
+ );
829
+ desc.putBoolean(cTID('Clrz'), false);
830
+
831
+ var adjustments = new ActionList();
832
+ var adjustment = new ActionDescriptor();
833
+ adjustment.putInteger(cTID('H '), ${hue});
834
+ adjustment.putInteger(cTID('Strt'), ${saturation});
835
+ adjustment.putInteger(cTID('Lght'), ${lightness});
836
+ adjustments.putObject(cTID('Hsrt'), adjustment);
837
+ desc.putList(cTID('Adjs'), adjustments);
838
+
839
+ executeAction(cTID('HStr'), desc, DialogModes.NO);
840
+
841
+ return {
775
842
  adjustment: 'Hue/Saturation',
776
843
  hue: ${hue},
777
844
  saturation: ${saturation},
@@ -1 +1 @@
1
- {"version":3,"file":"extendscript.js","sourceRoot":"","sources":["../../src/api/extendscript.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"extendscript.js","sourceRoot":"","sources":["../../src/api/extendscript.ts"],"names":[],"mappings":"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"}
@@ -62,21 +62,38 @@ class ExtendScriptPhotoshopAPI {
62
62
  return await this.connection.executeScript(wrappedScript);
63
63
  }
64
64
  wrapInErrorHandling(script) {
65
- // ExtendScript doesn't have JSON object, we return plain result
66
- // The result will be converted to string by Photoshop
65
+ // ExtendScript has no JSON object, so the result is serialized via
66
+ // toSource()/String(). Errors are surfaced with an "ERROR:" prefix
67
+ // that platform executors translate back into thrown Errors.
68
+ //
69
+ // Ruler and type units are temporarily forced to pixels/points so that
70
+ // every DOM API that accepts plain numbers (translate, textItem.size,
71
+ // textItem.position, doc.crop bounds, etc.) behaves consistently
72
+ // regardless of the user's Photoshop preferences. The user's original
73
+ // preferences are restored in the finally block.
67
74
  return `
68
75
  (function() {
76
+ var __originalRulerUnits = null;
77
+ var __originalTypeUnits = null;
78
+ try { __originalRulerUnits = app.preferences.rulerUnits; } catch (e) {}
79
+ try { __originalTypeUnits = app.preferences.typeUnits; } catch (e) {}
80
+
69
81
  try {
82
+ try { app.preferences.rulerUnits = Units.PIXELS; } catch (e) {}
83
+ try { app.preferences.typeUnits = TypeUnits.POINTS; } catch (e) {}
84
+
70
85
  var result = (function() {
71
86
  ${script}
72
87
  })();
73
- // Convert result to string for transport
74
88
  if (typeof result === 'object' && result !== null) {
75
89
  return result.toSource ? result.toSource() : String(result);
76
90
  }
77
91
  return String(result);
78
92
  } catch (error) {
79
93
  return 'ERROR: ' + (error.message || String(error));
94
+ } finally {
95
+ try { if (__originalRulerUnits !== null) app.preferences.rulerUnits = __originalRulerUnits; } catch (e) {}
96
+ try { if (__originalTypeUnits !== null) app.preferences.typeUnits = __originalTypeUnits; } catch (e) {}
80
97
  }
81
98
  })();
82
99
  `.trim();
@@ -1 +1 @@
1
- {"version":3,"file":"photoshop-api.js","sourceRoot":"","sources":["../../src/api/photoshop-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAiB5C,MAAM,OAAO,mBAAmB;IACtB,MAAM,CAAS;IACf,UAAU,CAAsB;IAExC,YAAY,UAA+B;QACzC,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;QAEhD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAClF,CAAC;QAED,8CAA8C;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEpD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,OAAO,8BAA8B,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAElF,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;YACtB,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,OAAe;QACtC,oFAAoF;QACpF,uEAAuE;QACvE,gEAAgE;QAEhE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,OAAO,6CAA6C,CAAC,CAAC;QAC1G,OAAO,cAAc,CAAC;IACxB,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,eAAe;IACX,UAAU,CAAsB;IAExC,YAAY,UAA+B;QACzC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAc;QAChC,wDAAwD;QACxD,4BAA4B;QAC5B,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC;IAED,UAAU;QACR,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED;;GAEG;AACH,MAAM,wBAAwB;IACpB,UAAU,CAAsB;IAExC,YAAY,UAA+B;QACzC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAc;QAChC,gCAAgC;QAChC,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACvD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IAC5D,CAAC;IAEO,mBAAmB,CAAC,MAAc;QACxC,gEAAgE;QAChE,sDAAsD;QACtD,OAAO;;;;QAIH,MAAM;;;;;;;;;;;KAWT,CAAC,IAAI,EAAE,CAAC;IACX,CAAC;IAED,UAAU;QACR,OAAO,cAAc,CAAC;IACxB,CAAC;CACF"}
1
+ {"version":3,"file":"photoshop-api.js","sourceRoot":"","sources":["../../src/api/photoshop-api.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAiB5C,MAAM,OAAO,mBAAmB;IACtB,MAAM,CAAS;IACf,UAAU,CAAsB;IAExC,YAAY,UAA+B;QACzC,IAAI,CAAC,MAAM,GAAG,IAAI,MAAM,CAAC,qBAAqB,CAAC,CAAC;QAChD,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,SAAS;QACb,MAAM,IAAI,GAAG,IAAI,CAAC,UAAU,CAAC,gBAAgB,EAAE,CAAC;QAEhD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,MAAM,IAAI,KAAK,CAAC,8DAA8D,CAAC,CAAC;QAClF,CAAC;QAED,8CAA8C;QAC9C,MAAM,OAAO,GAAG,IAAI,CAAC,gBAAgB,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QAEpD,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,YAAY,OAAO,8BAA8B,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC;QAElF,IAAI,OAAO,KAAK,KAAK,EAAE,CAAC;YACtB,OAAO,IAAI,eAAe,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC9C,CAAC;aAAM,CAAC;YACN,OAAO,IAAI,wBAAwB,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QACvD,CAAC;IACH,CAAC;IAEO,gBAAgB,CAAC,OAAe;QACtC,oFAAoF;QACpF,uEAAuE;QACvE,gEAAgE;QAEhE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,kCAAkC,OAAO,6CAA6C,CAAC,CAAC;QAC1G,OAAO,cAAc,CAAC;IACxB,CAAC;CACF;AAED;;;;GAIG;AACH,MAAM,eAAe;IACX,UAAU,CAAsB;IAExC,YAAY,UAA+B;QACzC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAc;QAChC,wDAAwD;QACxD,4BAA4B;QAC5B,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,MAAM,CAAC,CAAC;IACrD,CAAC;IAED,UAAU;QACR,OAAO,KAAK,CAAC;IACf,CAAC;CACF;AAED;;GAEG;AACH,MAAM,wBAAwB;IACpB,UAAU,CAAsB;IAExC,YAAY,UAA+B;QACzC,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;IAC/B,CAAC;IAED,KAAK,CAAC,aAAa,CAAC,MAAc;QAChC,gCAAgC;QAChC,MAAM,aAAa,GAAG,IAAI,CAAC,mBAAmB,CAAC,MAAM,CAAC,CAAC;QACvD,OAAO,MAAM,IAAI,CAAC,UAAU,CAAC,aAAa,CAAC,aAAa,CAAC,CAAC;IAC5D,CAAC;IAEO,mBAAmB,CAAC,MAAc;QACxC,mEAAmE;QACnE,mEAAmE;QACnE,6DAA6D;QAC7D,EAAE;QACF,uEAAuE;QACvE,sEAAsE;QACtE,iEAAiE;QACjE,sEAAsE;QACtE,iDAAiD;QACjD,OAAO;;;;;;;;;;;;QAYH,MAAM;;;;;;;;;;;;;KAaT,CAAC,IAAI,EAAE,CAAC;IACX,CAAC;IAED,UAAU;QACR,OAAO,cAAc,CAAC;IACxB,CAAC;CACF"}
@@ -1 +1 @@
1
- {"version":3,"file":"macos-executor.d.ts","sourceRoot":"","sources":["../../src/platform/macos-executor.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAItD,qBAAa,aAAc,YAAW,cAAc;IAClD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAqC;IACxD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAkC;;IAMjD,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAK3B,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,MAAc,GAAG,OAAO,CAAC,OAAO,CAAC;YAuB1D,YAAY;YAqBZ,aAAa;IAmC3B,OAAO,CAAC,wBAAwB;IAWhC,OAAO,CAAC,WAAW;IAYb,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;IAUtC,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB3D;;;OAGG;IACG,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAoBhE"}
1
+ {"version":3,"file":"macos-executor.d.ts","sourceRoot":"","sources":["../../src/platform/macos-executor.ts"],"names":[],"mappings":"AAMA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAItD,qBAAa,aAAc,YAAW,cAAc;IAClD,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,WAAW,CAAqC;IACxD,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,OAAO,CAAkC;;IAMjD,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAK3B,OAAO,CAAC,MAAM,EAAE,MAAM,EAAE,OAAO,GAAE,MAAc,GAAG,OAAO,CAAC,OAAO,CAAC;YAuB1D,YAAY;YAqBZ,aAAa;IAmC3B,OAAO,CAAC,wBAAwB;IAWhC,OAAO,CAAC,WAAW;IAcb,kBAAkB,IAAI,OAAO,CAAC,OAAO,CAAC;IAUtC,eAAe,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAuB3D;;;OAGG;IACG,uBAAuB,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,OAAO,CAAC;CAoBhE"}
@@ -99,12 +99,13 @@ end tell`;
99
99
  }
100
100
  parseResult(output) {
101
101
  const trimmed = output.trim();
102
- // Try to parse as JSON
102
+ if (trimmed.startsWith('ERROR:')) {
103
+ throw new Error(trimmed.substring(6).trim());
104
+ }
103
105
  try {
104
106
  return JSON.parse(trimmed);
105
107
  }
106
108
  catch {
107
- // Return as string if not JSON
108
109
  return trimmed;
109
110
  }
110
111
  }
@@ -1 +1 @@
1
- {"version":3,"file":"macos-executor.js","sourceRoot":"","sources":["../../src/platform/macos-executor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"macos-executor.js","sourceRoot":"","sources":["../../src/platform/macos-executor.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,44 @@
1
+ import { type LanguageModelUsage, type ModelMessage } from 'ai';
2
+ import type { ModelPricing, ProviderAdapter, UsageCost } from './providers/registry.js';
3
+ export interface ToolCallPersist {
4
+ id: string;
5
+ name: string;
6
+ input: unknown;
7
+ result?: {
8
+ ok: boolean;
9
+ content: string;
10
+ };
11
+ status: 'pending' | 'success' | 'error';
12
+ }
13
+ export interface AssistantBuffer {
14
+ text: string;
15
+ toolCalls: ToolCallPersist[];
16
+ }
17
+ export interface RunChatStreamEvent {
18
+ type: 'text-delta' | 'tool-call' | 'tool-result' | 'finish' | 'error';
19
+ payload: unknown;
20
+ }
21
+ export interface RunChatFinishInfo {
22
+ usage: LanguageModelUsage;
23
+ cost?: UsageCost;
24
+ }
25
+ export interface RunChatOptions {
26
+ prompt: string;
27
+ history: ModelMessage[];
28
+ provider: ProviderAdapter;
29
+ apiKey: string;
30
+ modelId: string;
31
+ abortSignal: AbortSignal;
32
+ onAssistantBuffer?: (buf: AssistantBuffer) => void;
33
+ onFinish?: (info: RunChatFinishInfo) => void;
34
+ }
35
+ export declare const PHOTOSHOP_SYSTEM_PROMPT: string;
36
+ export declare function runChat(opts: RunChatOptions): AsyncGenerator<RunChatStreamEvent>;
37
+ export declare function computeCost(usage: LanguageModelUsage, pricing: ModelPricing): UsageCost;
38
+ export declare function buildHistory(messages: Array<{
39
+ role: 'user' | 'assistant';
40
+ content: {
41
+ text: string;
42
+ };
43
+ }>): ModelMessage[];
44
+ //# sourceMappingURL=agent.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/ui/agent.ts"],"names":[],"mappings":"AAEA,OAAO,EAA2B,KAAK,kBAAkB,EAAE,KAAK,YAAY,EAAE,MAAM,IAAI,CAAC;AAGzF,OAAO,KAAK,EAAE,YAAY,EAAE,eAAe,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AAYxF,MAAM,WAAW,eAAe;IAC9B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE;QAAE,EAAE,EAAE,OAAO,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;IAC1C,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;CACzC;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,eAAe,EAAE,CAAC;CAC9B;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,YAAY,GAAG,WAAW,GAAG,aAAa,GAAG,QAAQ,GAAG,OAAO,CAAC;IACtE,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,kBAAkB,CAAC;IAC1B,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,WAAW,CAAC;IACzB,iBAAiB,CAAC,EAAE,CAAC,GAAG,EAAE,eAAe,KAAK,IAAI,CAAC;IACnD,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,IAAI,CAAC;CAC9C;AAED,eAAO,MAAM,uBAAuB,QAc5B,CAAC;AAET,wBAAuB,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,CAAC,kBAAkB,CAAC,CA0GvF;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,YAAY,GAAG,SAAS,CAyBvF;AA6BD,wBAAgB,YAAY,CAC1B,QAAQ,EAAE,KAAK,CAAC;IAAE,IAAI,EAAE,MAAM,GAAG,WAAW,CAAC;IAAC,OAAO,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,CAAA;CAAE,CAAC,GACzE,YAAY,EAAE,CAWhB"}
@@ -0,0 +1,198 @@
1
+ import { createMCPClient } from '@ai-sdk/mcp';
2
+ import { Experimental_StdioMCPTransport } from '@ai-sdk/mcp/mcp-stdio';
3
+ import { stepCountIs, streamText } from 'ai';
4
+ import { dirname, resolve } from 'node:path';
5
+ import { fileURLToPath } from 'node:url';
6
+ const __filename = fileURLToPath(import.meta.url);
7
+ const __dirname = dirname(__filename);
8
+ // In production (`dist/ui/agent.js`) we point at the compiled `dist/index.js`.
9
+ // In development (`tsx watch src/ui/cli.ts`) the source `.ts` is loaded directly,
10
+ // so we resolve the TS entry and spawn it through Node's tsx loader.
11
+ const IS_DEV_SOURCE = __filename.endsWith('.ts');
12
+ const PHOTOSHOP_MCP_ENTRY = IS_DEV_SOURCE
13
+ ? resolve(__dirname, '..', 'index.ts')
14
+ : resolve(__dirname, '..', 'index.js');
15
+ export const PHOTOSHOP_SYSTEM_PROMPT = `
16
+ You are an assistant that controls Adobe Photoshop on the user's machine through
17
+ the "photoshop" MCP server. Use the photoshop_* tools to fulfill the user's
18
+ request: open documents, manage layers, place images, apply filters, write text,
19
+ save files, and so on.
20
+
21
+ Guidelines:
22
+ - Start with photoshop_ping when you are unsure whether Photoshop is reachable.
23
+ - Prefer single, well-scoped tool calls instead of long combined operations.
24
+ - After meaningful state changes, briefly describe in plain language what you did.
25
+ - If a tool call fails, surface the error to the user and ask for confirmation
26
+ before retrying or trying an alternative.
27
+ - Only Photoshop MCP tools are available. Do not attempt shell, filesystem,
28
+ web, or general coding operations; respond in natural language instead.
29
+ `.trim();
30
+ export async function* runChat(opts) {
31
+ let mcp;
32
+ const buffer = { text: '', toolCalls: [] };
33
+ try {
34
+ const spawnArgs = IS_DEV_SOURCE
35
+ ? ['--import', 'tsx', PHOTOSHOP_MCP_ENTRY]
36
+ : [PHOTOSHOP_MCP_ENTRY];
37
+ mcp = await createMCPClient({
38
+ transport: new Experimental_StdioMCPTransport({
39
+ command: process.execPath,
40
+ args: spawnArgs,
41
+ env: { ...sanitizedEnv(), LOG_LEVEL: process.env.LOG_LEVEL ?? '2' },
42
+ }),
43
+ });
44
+ const tools = await mcp.tools();
45
+ const result = streamText({
46
+ model: opts.provider.getLanguageModel({
47
+ apiKey: opts.apiKey,
48
+ modelId: opts.modelId,
49
+ }),
50
+ tools,
51
+ system: PHOTOSHOP_SYSTEM_PROMPT,
52
+ messages: [...opts.history, { role: 'user', content: opts.prompt }],
53
+ stopWhen: stepCountIs(20),
54
+ abortSignal: opts.abortSignal,
55
+ });
56
+ for await (const part of result.fullStream) {
57
+ switch (part.type) {
58
+ case 'text-delta': {
59
+ buffer.text += part.text;
60
+ yield { type: 'text-delta', payload: { text: part.text } };
61
+ opts.onAssistantBuffer?.(buffer);
62
+ break;
63
+ }
64
+ case 'tool-call': {
65
+ const tc = {
66
+ id: part.toolCallId,
67
+ name: part.toolName,
68
+ input: part.input,
69
+ status: 'pending',
70
+ };
71
+ buffer.toolCalls.push(tc);
72
+ yield {
73
+ type: 'tool-call',
74
+ payload: { id: tc.id, name: tc.name, input: tc.input },
75
+ };
76
+ opts.onAssistantBuffer?.(buffer);
77
+ break;
78
+ }
79
+ case 'tool-result': {
80
+ const tc = buffer.toolCalls.find((c) => c.id === part.toolCallId);
81
+ const text = stringifyToolOutput(part.output);
82
+ if (tc) {
83
+ tc.result = { ok: true, content: text };
84
+ tc.status = 'success';
85
+ }
86
+ yield {
87
+ type: 'tool-result',
88
+ payload: { id: part.toolCallId, ok: true, content: text },
89
+ };
90
+ opts.onAssistantBuffer?.(buffer);
91
+ break;
92
+ }
93
+ case 'tool-error': {
94
+ const tc = buffer.toolCalls.find((c) => c.id === part.toolCallId);
95
+ const text = part.error?.message ?? String(part.error);
96
+ if (tc) {
97
+ tc.result = { ok: false, content: text };
98
+ tc.status = 'error';
99
+ }
100
+ yield {
101
+ type: 'tool-result',
102
+ payload: { id: part.toolCallId, ok: false, content: text },
103
+ };
104
+ opts.onAssistantBuffer?.(buffer);
105
+ break;
106
+ }
107
+ case 'finish': {
108
+ const usage = part.totalUsage;
109
+ const pricing = opts.provider.getModelPricing(opts.modelId);
110
+ const cost = pricing ? computeCost(usage, pricing) : undefined;
111
+ opts.onFinish?.({ usage, cost });
112
+ yield {
113
+ type: 'finish',
114
+ payload: { finishReason: part.finishReason, usage, cost },
115
+ };
116
+ break;
117
+ }
118
+ case 'error': {
119
+ yield {
120
+ type: 'error',
121
+ payload: { message: part.error?.message ?? String(part.error) },
122
+ };
123
+ break;
124
+ }
125
+ default:
126
+ break;
127
+ }
128
+ }
129
+ }
130
+ finally {
131
+ if (mcp)
132
+ await mcp.close().catch(() => undefined);
133
+ }
134
+ }
135
+ export function computeCost(usage, pricing) {
136
+ const cacheRead = usage.inputTokenDetails?.cacheReadTokens ?? 0;
137
+ const cacheWrite = usage.inputTokenDetails?.cacheWriteTokens ?? 0;
138
+ // Prefer the explicit non-cache count when the provider reports it; otherwise
139
+ // derive it from the total minus cache buckets so we don't double-bill.
140
+ const totalInput = usage.inputTokens ?? 0;
141
+ const noCache = usage.inputTokenDetails?.noCacheTokens ??
142
+ Math.max(0, totalInput - cacheRead - cacheWrite);
143
+ const output = usage.outputTokens ?? 0;
144
+ const inputUsd = (noCache / 1_000_000) * pricing.inputUsdPerMTok;
145
+ const outputUsd = (output / 1_000_000) * pricing.outputUsdPerMTok;
146
+ const cachedReadUsd = (cacheRead / 1_000_000) * (pricing.cachedInputUsdPerMTok ?? pricing.inputUsdPerMTok);
147
+ const cachedWriteUsd = (cacheWrite / 1_000_000) * (pricing.cachedWriteUsdPerMTok ?? pricing.inputUsdPerMTok);
148
+ return {
149
+ totalUsd: inputUsd + outputUsd + cachedReadUsd + cachedWriteUsd,
150
+ inputUsd,
151
+ outputUsd,
152
+ cachedReadUsd,
153
+ cachedWriteUsd,
154
+ };
155
+ }
156
+ function stringifyToolOutput(output) {
157
+ if (output == null)
158
+ return '';
159
+ if (typeof output === 'string')
160
+ return output;
161
+ if (typeof output === 'object' && output !== null && 'content' in output) {
162
+ const content = output.content;
163
+ if (Array.isArray(content)) {
164
+ return content
165
+ .map((c) => (typeof c === 'string' ? c : c?.text ?? ''))
166
+ .filter(Boolean)
167
+ .join('\n');
168
+ }
169
+ }
170
+ try {
171
+ return JSON.stringify(output);
172
+ }
173
+ catch {
174
+ return String(output);
175
+ }
176
+ }
177
+ function sanitizedEnv() {
178
+ const out = {};
179
+ for (const [k, v] of Object.entries(process.env)) {
180
+ if (typeof v === 'string')
181
+ out[k] = v;
182
+ }
183
+ return out;
184
+ }
185
+ export function buildHistory(messages) {
186
+ // Persisted history is rebuilt as plain text turns. Tool-call traces are
187
+ // intentionally not replayed, since their results are already reflected in
188
+ // the assistant's prior response text and re-issuing them would duplicate work.
189
+ const history = [];
190
+ for (const m of messages) {
191
+ const text = m.content.text?.trim();
192
+ if (!text)
193
+ continue;
194
+ history.push({ role: m.role, content: text });
195
+ }
196
+ return history;
197
+ }
198
+ //# sourceMappingURL=agent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/ui/agent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ #!/usr/bin/env node
2
+ export {};
3
+ //# sourceMappingURL=cli.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cli.d.ts","sourceRoot":"","sources":["../../src/ui/cli.ts"],"names":[],"mappings":""}