@alisaitteke/photoshop-mcp 1.7.23 → 1.7.25
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/AGENTS.md +1 -1
- package/README.de.md +1 -1
- package/README.es.md +1 -1
- package/README.ja.md +1 -1
- package/README.md +7 -6
- package/README.tr.md +1 -1
- package/README.zh-CN.md +1 -1
- package/dist/ui/agent/instant.d.ts +12 -7
- package/dist/ui/agent/instant.d.ts.map +1 -1
- package/dist/ui/agent/instant.js +35 -9
- package/dist/ui/agent/instant.js.map +1 -1
- package/dist/ui/agent.js +2 -2
- package/dist/ui/agent.js.map +1 -1
- package/dist/ui/cli.js +2 -1
- package/dist/ui/cli.js.map +1 -1
- package/dist/ui/intent/catalog.d.ts +47 -16
- package/dist/ui/intent/catalog.d.ts.map +1 -1
- package/dist/ui/intent/catalog.js +243 -14
- package/dist/ui/intent/catalog.js.map +1 -1
- package/dist/ui/intent/router.d.ts +83 -17
- package/dist/ui/intent/router.d.ts.map +1 -1
- package/dist/ui/intent/router.js +302 -66
- package/dist/ui/intent/router.js.map +1 -1
- package/dist/ui/intent/service.d.ts +5 -1
- package/dist/ui/intent/service.d.ts.map +1 -1
- package/dist/ui/intent/service.js +5 -2
- package/dist/ui/intent/service.js.map +1 -1
- package/dist/ui/store/chats.d.ts +6 -0
- package/dist/ui/store/chats.d.ts.map +1 -1
- package/dist/ui/store/chats.js.map +1 -1
- package/llms.txt +3 -1
- package/package.json +3 -2
- package/web/dist/assets/{index-hrv691GI.js → index-DHJOEezS.js} +2 -1
- package/web/dist/index.html +1 -1
package/AGENTS.md
CHANGED
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
| Cursor | Install the `photoshop-mcp` plugin (Customize → Plugins / Marketplace) so the Photoshop logo appears in the MCP list. Fallback: `mcpServers` → `npx -y @alisaitteke/photoshop-mcp` (stdio, generic icon) |
|
|
11
11
|
| Claude Desktop / VS Code | Configure `mcpServers` → `npx -y @alisaitteke/photoshop-mcp` (stdio) |
|
|
12
12
|
| Claude Code | `claude mcp add photoshop -- npx -y @alisaitteke/photoshop-mcp` |
|
|
13
|
-
| Standalone chat UI (no IDE) | `npx -p @alisaitteke/photoshop-mcp
|
|
13
|
+
| Standalone chat UI (no IDE) | `npx -p @alisaitteke/photoshop-mcp ui` |
|
|
14
14
|
| Local development | `npm install && npm run build && node dist/index.js` — see [docs/development.md](docs/development.md) |
|
|
15
15
|
|
|
16
16
|
**Prerequisites:** Photoshop running on Windows or macOS, Node.js 18+. This is unofficial and not affiliated with Adobe.
|
package/README.de.md
CHANGED
|
@@ -39,7 +39,7 @@ CLI** – kein separater API-Schlüssel erforderlich.
|
|
|
39
39
|

|
|
40
40
|
|
|
41
41
|
```bash
|
|
42
|
-
npx -p @alisaitteke/photoshop-mcp
|
|
42
|
+
npx -p @alisaitteke/photoshop-mcp ui
|
|
43
43
|
```
|
|
44
44
|
|
|
45
45
|
Das war's. Ein lokaler Server startet auf `127.0.0.1` (zufälliger freier Port) und der Standard-Browser öffnet die Chat-UI automatisch.
|
package/README.es.md
CHANGED
|
@@ -38,7 +38,7 @@ Análisis técnico detallado: [`docs/architecture.md`](docs/architecture.md).
|
|
|
38
38
|

|
|
39
39
|
|
|
40
40
|
```bash
|
|
41
|
-
npx -p @alisaitteke/photoshop-mcp
|
|
41
|
+
npx -p @alisaitteke/photoshop-mcp ui
|
|
42
42
|
```
|
|
43
43
|
|
|
44
44
|
Eso es todo. Se inicia un servidor local en `127.0.0.1` (puerto libre aleatorio) y el navegador predeterminado abre la UI de chat automáticamente.
|
package/README.ja.md
CHANGED
|
@@ -38,7 +38,7 @@ Claude DesktopやCursorに組み込みたくない場合でも大丈夫です。
|
|
|
38
38
|

|
|
39
39
|
|
|
40
40
|
```bash
|
|
41
|
-
npx -p @alisaitteke/photoshop-mcp
|
|
41
|
+
npx -p @alisaitteke/photoshop-mcp ui
|
|
42
42
|
```
|
|
43
43
|
|
|
44
44
|
これだけです。`127.0.0.1`(ランダムな空きポート)でローカルサーバーが起動し、デフォルトブラウザにチャットUIが自動で開きます。
|
package/README.md
CHANGED
|
@@ -39,13 +39,14 @@ window. No code, no scripts, no IDE required.
|
|
|
39
39
|
Not every prompt needs a language model. The built-in chat window can now ask
|
|
40
40
|
**Jev**, [TypeSafe AI](https://typesafe.ai)'s System One model, where each
|
|
41
41
|
message should go before any LLM runs. When Jev is confident you asked for one
|
|
42
|
-
of
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
42
|
+
of 26 safe commands and recipes (undo, opacity, blend mode, remove background,
|
|
43
|
+
color grade, split carousel, …), or a short chain of them like "black and white,
|
|
44
|
+
then opacity 50", it runs in Photoshop straight away: no LLM call, no LLM
|
|
45
|
+
tokens. Anything else, and hard-to-undo steps like merge or flatten, goes to the
|
|
46
|
+
Action Plan.
|
|
46
47
|
|
|
47
48
|
```bash
|
|
48
|
-
TYPESAFE_API_KEY=... npx -p @alisaitteke/photoshop-mcp
|
|
49
|
+
TYPESAFE_API_KEY=... npx -p @alisaitteke/photoshop-mcp ui
|
|
49
50
|
```
|
|
50
51
|
|
|
51
52
|
Experimental and opt-in. Without the key the UI works exactly as before and
|
|
@@ -102,7 +103,7 @@ You need **Photoshop running** (Windows or macOS, any version 2012+) and **Node.
|
|
|
102
103
|
### Option 1 — Easiest: the built-in chat window
|
|
103
104
|
|
|
104
105
|
```bash
|
|
105
|
-
npx -p @alisaitteke/photoshop-mcp
|
|
106
|
+
npx -p @alisaitteke/photoshop-mcp ui
|
|
106
107
|
```
|
|
107
108
|
|
|
108
109
|
A chat window opens in your browser. Sign in with an AI provider API key — or
|
package/README.tr.md
CHANGED
|
@@ -38,7 +38,7 @@ Bunu Claude Desktop veya Cursor'a bağlamak istemiyorsanız? Aynı paket, bir ya
|
|
|
38
38
|

|
|
39
39
|
|
|
40
40
|
```bash
|
|
41
|
-
npx -p @alisaitteke/photoshop-mcp
|
|
41
|
+
npx -p @alisaitteke/photoshop-mcp ui
|
|
42
42
|
```
|
|
43
43
|
|
|
44
44
|
Hepsi bu. `127.0.0.1` üzerinde yerel bir sunucu başlar (rastgele boş port) ve varsayılan tarayıcınız sohbet UI'ını otomatik olarak açar.
|
package/README.zh-CN.md
CHANGED
|
@@ -38,7 +38,7 @@ Photoshop MCP 添加了**状态感知**(`get_state`、`get_preview`、`get_cap
|
|
|
38
38
|

|
|
39
39
|
|
|
40
40
|
```bash
|
|
41
|
-
npx -p @alisaitteke/photoshop-mcp
|
|
41
|
+
npx -p @alisaitteke/photoshop-mcp ui
|
|
42
42
|
```
|
|
43
43
|
|
|
44
44
|
就这样。本地服务器在 `127.0.0.1`(随机空闲端口)上启动,您的默认浏览器会自动打开聊天 UI。
|
|
@@ -2,9 +2,10 @@ import { type MCPClient } from '@ai-sdk/mcp';
|
|
|
2
2
|
import type { InstantCall } from '../intent/router.js';
|
|
3
3
|
import { type AssistantBuffer, type RunChatFinishInfo, type RunChatStreamEvent } from './shared.js';
|
|
4
4
|
/**
|
|
5
|
-
* The "instant" route: Jev already picked the tool and
|
|
6
|
-
*
|
|
7
|
-
* token usage or cost for the turn.
|
|
5
|
+
* The "instant" route: Jev already picked the tool(s) and their arguments, so
|
|
6
|
+
* run them in order and show one preview at the end. No language model is
|
|
7
|
+
* involved, so there is no token usage or cost for the turn. A chain stops at
|
|
8
|
+
* the first failed step and reports what was applied before it.
|
|
8
9
|
*/
|
|
9
10
|
type ExecutableTool = {
|
|
10
11
|
execute?: (input: unknown, options: {
|
|
@@ -16,13 +17,13 @@ type ExecutableTool = {
|
|
|
16
17
|
export interface PreparedInstant {
|
|
17
18
|
mcp: MCPClient;
|
|
18
19
|
tools: Record<string, ExecutableTool>;
|
|
19
|
-
|
|
20
|
+
calls: InstantCall[];
|
|
20
21
|
}
|
|
21
22
|
/**
|
|
22
|
-
* Start the MCP child and check
|
|
23
|
-
* to the normal LLM route) instead of failing the turn.
|
|
23
|
+
* Start the MCP child and check every tool exists. Returns null (caller falls
|
|
24
|
+
* back to the normal LLM route) instead of failing the turn.
|
|
24
25
|
*/
|
|
25
|
-
export declare function prepareInstant(
|
|
26
|
+
export declare function prepareInstant(calls: InstantCall[], chatId?: string): Promise<PreparedInstant | null>;
|
|
26
27
|
export declare function runChatViaInstant(opts: {
|
|
27
28
|
prepared: PreparedInstant;
|
|
28
29
|
chatId?: string;
|
|
@@ -30,5 +31,9 @@ export declare function runChatViaInstant(opts: {
|
|
|
30
31
|
onAssistantBuffer?: (buf: AssistantBuffer) => void;
|
|
31
32
|
onFinish?: (info: RunChatFinishInfo) => void;
|
|
32
33
|
}): AsyncGenerator<RunChatStreamEvent>;
|
|
34
|
+
export declare function instantSummary(calls: InstantCall[], done: InstantCall[], failure: {
|
|
35
|
+
call: InstantCall;
|
|
36
|
+
message: string;
|
|
37
|
+
} | null): string;
|
|
33
38
|
export {};
|
|
34
39
|
//# sourceMappingURL=instant.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instant.d.ts","sourceRoot":"","sources":["../../../src/ui/agent/instant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAI9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAC;AAErB
|
|
1
|
+
{"version":3,"file":"instant.d.ts","sourceRoot":"","sources":["../../../src/ui/agent/instant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAmB,KAAK,SAAS,EAAE,MAAM,aAAa,CAAC;AAI9D,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAEvD,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAC;AAErB;;;;;GAKG;AAEH,KAAK,cAAc,GAAG;IACpB,OAAO,CAAC,EAAE,CACR,KAAK,EAAE,OAAO,EACd,OAAO,EAAE;QAAE,UAAU,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,EAAE,CAAC;QAAC,WAAW,CAAC,EAAE,WAAW,CAAA;KAAE,KACrE,WAAW,CAAC,OAAO,CAAC,CAAC;CAC3B,CAAC;AAEF,MAAM,WAAW,eAAe;IAC9B,GAAG,EAAE,SAAS,CAAC;IACf,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,cAAc,CAAC,CAAC;IACtC,KAAK,EAAE,WAAW,EAAE,CAAC;CACtB;AAYD;;;GAGG;AACH,wBAAsB,cAAc,CAAC,KAAK,EAAE,WAAW,EAAE,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAqB3G;AAED,wBAAuB,iBAAiB,CAAC,IAAI,EAAE;IAC7C,QAAQ,EAAE,eAAe,CAAC;IAC1B,MAAM,CAAC,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,GAAG,cAAc,CAAC,kBAAkB,CAAC,CAsDrC;AAED,wBAAgB,cAAc,CAC5B,KAAK,EAAE,WAAW,EAAE,EACpB,IAAI,EAAE,WAAW,EAAE,EACnB,OAAO,EAAE;IAAE,IAAI,EAAE,WAAW,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAAG,IAAI,GACrD,MAAM,CASR"}
|
package/dist/ui/agent/instant.js
CHANGED
|
@@ -12,10 +12,12 @@ const ZERO_USAGE = {
|
|
|
12
12
|
outputTokenDetails: { textTokens: 0, reasoningTokens: 0 },
|
|
13
13
|
};
|
|
14
14
|
/**
|
|
15
|
-
* Start the MCP child and check
|
|
16
|
-
* to the normal LLM route) instead of failing the turn.
|
|
15
|
+
* Start the MCP child and check every tool exists. Returns null (caller falls
|
|
16
|
+
* back to the normal LLM route) instead of failing the turn.
|
|
17
17
|
*/
|
|
18
|
-
export async function prepareInstant(
|
|
18
|
+
export async function prepareInstant(calls, chatId) {
|
|
19
|
+
if (calls.length === 0)
|
|
20
|
+
return null;
|
|
19
21
|
let mcp;
|
|
20
22
|
try {
|
|
21
23
|
mcp = await createMCPClient({
|
|
@@ -26,11 +28,11 @@ export async function prepareInstant(call, chatId) {
|
|
|
26
28
|
}),
|
|
27
29
|
});
|
|
28
30
|
const tools = (await mcp.tools());
|
|
29
|
-
if (typeof tools[call.tool]?.execute !== 'function') {
|
|
31
|
+
if (calls.some((call) => typeof tools[call.tool]?.execute !== 'function')) {
|
|
30
32
|
await mcp.close();
|
|
31
33
|
return null;
|
|
32
34
|
}
|
|
33
|
-
return { mcp, tools,
|
|
35
|
+
return { mcp, tools, calls };
|
|
34
36
|
}
|
|
35
37
|
catch {
|
|
36
38
|
await mcp?.close().catch(() => undefined);
|
|
@@ -38,7 +40,7 @@ export async function prepareInstant(call, chatId) {
|
|
|
38
40
|
}
|
|
39
41
|
}
|
|
40
42
|
export async function* runChatViaInstant(opts) {
|
|
41
|
-
const { mcp, tools,
|
|
43
|
+
const { mcp, tools, calls } = opts.prepared;
|
|
42
44
|
const buffer = { text: '', toolCalls: [] };
|
|
43
45
|
const runTool = async function* (name, args) {
|
|
44
46
|
const id = randomUUID();
|
|
@@ -61,11 +63,24 @@ export async function* runChatViaInstant(opts) {
|
|
|
61
63
|
}
|
|
62
64
|
};
|
|
63
65
|
try {
|
|
64
|
-
const
|
|
65
|
-
|
|
66
|
+
const done = [];
|
|
67
|
+
let failure = null;
|
|
68
|
+
for (const call of calls) {
|
|
69
|
+
if (opts.abortSignal.aborted)
|
|
70
|
+
break;
|
|
71
|
+
const result = yield* runTool(call.tool, call.args);
|
|
72
|
+
if (!result.ok) {
|
|
73
|
+
failure = { call, message: result.message };
|
|
74
|
+
break;
|
|
75
|
+
}
|
|
76
|
+
done.push(call);
|
|
77
|
+
}
|
|
78
|
+
const last = done[done.length - 1];
|
|
79
|
+
const wantsPreview = done.some((call) => call.preview) && last?.tool !== 'photoshop_get_preview';
|
|
80
|
+
if (wantsPreview && !opts.abortSignal.aborted && tools.photoshop_get_preview?.execute) {
|
|
66
81
|
yield* runTool('photoshop_get_preview', { max_dimension_px: 1024 });
|
|
67
82
|
}
|
|
68
|
-
buffer.text =
|
|
83
|
+
buffer.text = instantSummary(calls, done, failure);
|
|
69
84
|
yield { type: 'text-delta', payload: { text: buffer.text } };
|
|
70
85
|
opts.onAssistantBuffer?.(buffer);
|
|
71
86
|
opts.onFinish?.({ usage: ZERO_USAGE, cost: ZERO_COST });
|
|
@@ -75,4 +90,15 @@ export async function* runChatViaInstant(opts) {
|
|
|
75
90
|
await mcp.close().catch(() => undefined);
|
|
76
91
|
}
|
|
77
92
|
}
|
|
93
|
+
export function instantSummary(calls, done, failure) {
|
|
94
|
+
const labels = (list) => list.map((call) => call.label).join(' → ');
|
|
95
|
+
if (!failure) {
|
|
96
|
+
return done.length === calls.length ? `Done: ${labels(done)}.` : `Stopped after: ${labels(done) || 'nothing'}.`;
|
|
97
|
+
}
|
|
98
|
+
if (calls.length === 1)
|
|
99
|
+
return `${failure.call.label} did not work: ${failure.message}`;
|
|
100
|
+
const step = calls.indexOf(failure.call) + 1;
|
|
101
|
+
const applied = done.length > 0 ? ` Applied before it: ${labels(done)}.` : '';
|
|
102
|
+
return `Step ${step} of ${calls.length} (${failure.call.label}) did not work: ${failure.message.replace(/\.\s*$/, '')}.${applied}`;
|
|
103
|
+
}
|
|
78
104
|
//# sourceMappingURL=instant.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"instant.js","sourceRoot":"","sources":["../../../src/ui/agent/instant.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAkB,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AAEvE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,cAAc,EAAE,kBAAkB,EAAE,MAAM,oBAAoB,CAAC;AACxE,OAAO,EACL,cAAc,EACd,kBAAkB,GAInB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"instant.js","sourceRoot":"","sources":["../../../src/ui/agent/instant.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/agent.js
CHANGED
|
@@ -49,8 +49,8 @@ export async function* runChat(opts) {
|
|
|
49
49
|
if (routed) {
|
|
50
50
|
const { decision } = routed;
|
|
51
51
|
yield { type: 'route', payload: toRouteView(decision) };
|
|
52
|
-
if (decision.route === 'instant' && decision.
|
|
53
|
-
const prepared = await prepareInstant(decision.
|
|
52
|
+
if (decision.route === 'instant' && decision.calls?.length) {
|
|
53
|
+
const prepared = await prepareInstant(decision.calls, opts.chatId);
|
|
54
54
|
if (prepared) {
|
|
55
55
|
yield* runChatViaInstant({
|
|
56
56
|
prepared,
|
package/dist/ui/agent.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/ui/agent.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,0BAA0B,EAAE,MAAM,4BAA4B,CAAC;AAGxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,wBAAwB,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,oBAAoB,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AACzC,OAAO,EACL,WAAW,GAMZ,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,WAAW,EAAE,CAAC;AAgBvB,MAAM,CAAC,MAAM,uBAAuB,GAAG;;;;;;EAMrC,0BAA0B,EAAE;;;;;;;;CAQ7B,CAAC,IAAI,EAAE,CAAC;AAET,MAAM,CAAC,MAAM,yBAAyB,GAAG;EACvC,uBAAuB;;;;;;;;;;;;CAYxB,CAAC,IAAI,EAAE,CAAC;AAET,MAAM,YAAY,GAAG;;CAEpB,CAAC,IAAI,EAAE,CAAC;AAET,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,OAAO,CAAC,IAAoB;IACjD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,SAAS,CAAC;IAChD,IAAI,cAAc,GAAG,UAAU,EAAE,CAAC,cAAc,CAAC;IACjD,IAAI,iBAAiB,GAAG,uBAAuB,CAAC;IAEhD,wFAAwF;IACxF,MAAM,MAAM,GAAG,MAAM,WAAW,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,WAAW,CAAC,CAAC,KAAK,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;IAClF,IAAI,MAAM,EAAE,CAAC;QACX,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAC;QAC5B,MAAM,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,WAAW,CAAC,QAAQ,CAAC,EAAE,CAAC;QACxD,IAAI,QAAQ,CAAC,KAAK,KAAK,SAAS,IAAI,QAAQ,CAAC,
|
|
1
|
+
{"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/ui/agent.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/cli.js
CHANGED
|
@@ -35,7 +35,8 @@ function printHelp() {
|
|
|
35
35
|
process.stdout.write([
|
|
36
36
|
'photoshop-mcp-ui — Browser UI for the Photoshop MCP server',
|
|
37
37
|
'',
|
|
38
|
-
'Usage:
|
|
38
|
+
'Usage: ui [options]',
|
|
39
|
+
' photoshop-mcp-ui [options]',
|
|
39
40
|
'',
|
|
40
41
|
'Options:',
|
|
41
42
|
' -p, --port <number> Port to listen on (default: random free port)',
|
package/dist/ui/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/ui/cli.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/ui/cli.ts"],"names":[],"mappings":";AAEA,OAAO,OAAO,MAAM,UAAU,CAAC;AAC/B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EACL,OAAO,EACP,uBAAuB,EACvB,aAAa,EACb,uBAAuB,EACvB,iBAAiB,GAClB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,MAAM,EAAE,MAAM,oBAAoB,CAAC;AAC5C,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AACjE,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAQ5C,SAAS,UAAU,CAAC,IAAc;IAChC,MAAM,KAAK,GAAa,EAAE,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC;IAC7D,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;QACrC,MAAM,GAAG,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;QACpB,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YACrC,MAAM,GAAG,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;YAC9B,IAAI,MAAM,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,GAAG,CAAC;gBAAE,KAAK,CAAC,IAAI,GAAG,GAAG,CAAC;QACxD,CAAC;aAAM,IAAI,GAAG,KAAK,QAAQ,EAAE,CAAC;YAC5B,KAAK,CAAC,IAAI,GAAG,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,KAAK,CAAC,IAAI,CAAC;QACvC,CAAC;aAAM,IAAI,GAAG,KAAK,WAAW,EAAE,CAAC;YAC/B,KAAK,CAAC,MAAM,GAAG,IAAI,CAAC;QACtB,CAAC;aAAM,IAAI,GAAG,KAAK,QAAQ,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC5C,SAAS,EAAE,CAAC;YACZ,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;aAAM,IAAI,GAAG,KAAK,WAAW,IAAI,GAAG,KAAK,IAAI,EAAE,CAAC;YAC/C,YAAY,EAAE,CAAC;YACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IACD,OAAO,KAAK,CAAC;AACf,CAAC;AAED,SAAS,SAAS;IAChB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB;QACE,4DAA4D;QAC5D,EAAE;QACF,qBAAqB;QACrB,mCAAmC;QACnC,EAAE;QACF,UAAU;QACV,uEAAuE;QACvE,8DAA8D;QAC9D,sDAAsD;QACtD,wCAAwC;QACxC,sCAAsC;QACtC,EAAE;QACF,sEAAsE;QACtE,qDAAqD;QACrD,0DAA0D;QAC1D,gDAAgD;QAChD,EAAE;KACH,CAAC,IAAI,CAAC,IAAI,CAAC,CACb,CAAC;AACJ,CAAC;AAED,SAAS,YAAY;IACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,oBAAoB,aAAa,EAAE,IAAI,CAAC,CAAC;AAChE,CAAC;AAED,KAAK,UAAU,IAAI;IACjB,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,IAAI,CAAC,CAAC;IAChC,MAAM,KAAK,GAAG,UAAU,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;IAChD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;IAE7B,uBAAuB,EAAE,CAAC;IAC1B,uBAAuB,CAAC;QACtB,aAAa,EAAE,QAAQ;QACvB,YAAY,EAAE,QAAQ;KACvB,CAAC,CAAC;IAEH,MAAM,IAAI,GAAG,KAAK,CAAC,IAAI,IAAI,CAAC,MAAM,OAAO,CAAC,EAAE,IAAI,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC;IAE/E,MAAM,MAAM,GAAG,MAAM,aAAa,CAAC;QACjC,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,IAAI;KACL,CAAC,CAAC;IAEH,OAAO,CAAC,mBAAmB,EAAE;QAC3B,IAAI;QACJ,IAAI,EAAE,KAAK,CAAC,IAAI;QAChB,OAAO,EAAE,KAAK,CAAC,MAAM;QACrB,YAAY,EAAE,QAAQ;KACvB,CAAC,CAAC;IAEH,MAAM,GAAG,GAAG,MAAM,CAAC,GAAG,CAAC;IACvB,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,mCAAmC,GAAG,MAAM;QAC1C,sDAAsD;QACtD,KAAK,kBAAkB,EAAE,MAAM,CAClC,CAAC;IAEF,IAAI,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC;QAClB,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,GAAG,CAAC,CAAC;QAClB,CAAC;QAAC,OAAO,GAAG,EAAE,CAAC;YACb,MAAM,CAAC,IAAI,CAAC,6BAA6B,EAAE,GAAG,CAAC,CAAC;QAClD,CAAC;IACH,CAAC;IAED,MAAM,QAAQ,GAAG,KAAK,EAAE,MAAc,EAAE,EAAE;QACxC,MAAM,CAAC,IAAI,CAAC,YAAY,MAAM,iBAAiB,CAAC,CAAC;QACjD,OAAO,CAAC,iBAAiB,EAAE;YACzB,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,GAAG,SAAS;YACnC,eAAe,EAAE,MAAM,CAAC,WAAW,EAAE;YACrC,YAAY,EAAE,QAAQ;SACvB,CAAC,CAAC;QACH,MAAM,MAAM,CAAC,KAAK,EAAE,CAAC;QACrB,MAAM,iBAAiB,EAAE,CAAC;QAC1B,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC;IACF,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,QAAQ,CAAC,SAAS,CAAC,CAAC,CAAC;AACnD,CAAC;AAED,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;IACnB,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC,qCAAsC,GAAa,CAAC,OAAO,IAAI,CAAC,CAAC;IACtF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;AAClB,CAAC,CAAC,CAAC"}
|
|
@@ -1,14 +1,45 @@
|
|
|
1
1
|
/**
|
|
2
|
-
*
|
|
3
|
-
*
|
|
4
|
-
* them. Anything destructive is marked `risky` and
|
|
2
|
+
* Commands the standalone UI may run without a language model when Jev
|
|
3
|
+
* (TypeSafe's System One model) is confident the request is exactly one of
|
|
4
|
+
* them, or a short chain of them. Anything destructive is marked `risky` and
|
|
5
|
+
* never runs this way.
|
|
6
|
+
*
|
|
7
|
+
* Recipes are listed here too: a recipe is already a fixed multi-tool
|
|
8
|
+
* workflow, so matching one runs many Photoshop steps with no LLM call. Only
|
|
9
|
+
* recipes whose inputs are choices, numbers or yes/no flags qualify, because
|
|
10
|
+
* Jev picks from options and cannot write free text (paths, prompts, copy).
|
|
5
11
|
*/
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
+
/**
|
|
13
|
+
* How a slot is filled. Jev never writes the value; it picks one:
|
|
14
|
+
* - `choice`: one of the listed options (or "not stated").
|
|
15
|
+
* - `number`: one of the numbers found in the text (pre-parsed value pattern).
|
|
16
|
+
* - `flag`: a yes/no question; a confident yes sets `value`.
|
|
17
|
+
* - `multi`: one yes/no question per option; every confident yes is kept.
|
|
18
|
+
*/
|
|
19
|
+
export type SlotSpec = {
|
|
20
|
+
kind: 'choice';
|
|
21
|
+
key: string;
|
|
22
|
+
question: string;
|
|
23
|
+
options: Record<string, string>;
|
|
24
|
+
} | {
|
|
25
|
+
kind: 'number';
|
|
26
|
+
key: string;
|
|
27
|
+
question: string;
|
|
28
|
+
min: number;
|
|
29
|
+
max: number;
|
|
30
|
+
integer?: boolean;
|
|
31
|
+
} | {
|
|
32
|
+
kind: 'flag';
|
|
33
|
+
key: string;
|
|
34
|
+
question: string;
|
|
35
|
+
value: unknown;
|
|
36
|
+
} | {
|
|
37
|
+
kind: 'multi';
|
|
38
|
+
key: string;
|
|
39
|
+
question: string;
|
|
40
|
+
options: Record<string, string>;
|
|
41
|
+
};
|
|
42
|
+
export type SlotValues = Record<string, unknown>;
|
|
12
43
|
export interface InstantIntent {
|
|
13
44
|
/** Choice label sent to Jev; stable snake_case. */
|
|
14
45
|
id: string;
|
|
@@ -18,11 +49,11 @@ export interface InstantIntent {
|
|
|
18
49
|
label: string;
|
|
19
50
|
/** MCP tool to call. */
|
|
20
51
|
tool: string;
|
|
21
|
-
/**
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
|
|
25
|
-
/** Destructive or hard to undo: route to a
|
|
52
|
+
/** Values Jev may fill. Unresolved optional slots fall back to the tool's defaults. */
|
|
53
|
+
slots?: SlotSpec[];
|
|
54
|
+
/** Slot keys that must be resolved before the intent can run instantly. */
|
|
55
|
+
requires?: string[];
|
|
56
|
+
/** Destructive or hard to undo: route to a plan instead. */
|
|
26
57
|
risky?: boolean;
|
|
27
58
|
/** Pixels change, so fetch a preview afterwards. */
|
|
28
59
|
preview?: boolean;
|
|
@@ -30,10 +61,10 @@ export interface InstantIntent {
|
|
|
30
61
|
/** Label with slot values, e.g. "Opacity 60%". */
|
|
31
62
|
describeCall?: (slots: SlotValues) => string;
|
|
32
63
|
}
|
|
64
|
+
export declare function humanBlendMode(mode: string): string;
|
|
65
|
+
export declare const BLEND_MODES: readonly string[];
|
|
33
66
|
export declare const INSTANT_INTENTS: readonly InstantIntent[];
|
|
34
67
|
export declare const OTHER_INTENT = "other";
|
|
35
68
|
export declare const OTHER_DESCRIPTION = "Anything else: more than one change, a change that is not listed here, a question, or unclear.";
|
|
36
69
|
export declare function findIntent(id: string): InstantIntent | undefined;
|
|
37
|
-
export declare function humanBlendMode(mode: string): string;
|
|
38
|
-
export declare const BLEND_MODES: readonly string[];
|
|
39
70
|
//# sourceMappingURL=catalog.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/ui/intent/catalog.ts"],"names":[],"mappings":"AAEA
|
|
1
|
+
{"version":3,"file":"catalog.d.ts","sourceRoot":"","sources":["../../../src/ui/intent/catalog.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;GAUG;AAEH;;;;;;GAMG;AACH,MAAM,MAAM,QAAQ,GAChB;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,GAClF;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,GAC9F;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,OAAO,CAAA;CAAE,GAC/D;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,GAAG,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAA;CAAE,CAAC;AAEtF,MAAM,MAAM,UAAU,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAEjD,MAAM,WAAW,aAAa;IAC5B,mDAAmD;IACnD,EAAE,EAAE,MAAM,CAAC;IACX,yCAAyC;IACzC,QAAQ,EAAE,MAAM,CAAC;IACjB,gDAAgD;IAChD,KAAK,EAAE,MAAM,CAAC;IACd,wBAAwB;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,uFAAuF;IACvF,KAAK,CAAC,EAAE,QAAQ,EAAE,CAAC;IACnB,2EAA2E;IAC3E,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;IACpB,4DAA4D;IAC5D,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,oDAAoD;IACpD,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,IAAI,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACrD,kDAAkD;IAClD,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE,UAAU,KAAK,MAAM,CAAC;CAC9C;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKnD;AAED,eAAO,MAAM,WAAW,EAAE,SAAS,MAAM,EAA0B,CAAC;AA8DpE,eAAO,MAAM,eAAe,EAAE,SAAS,aAAa,EAsUnD,CAAC;AAEF,eAAO,MAAM,YAAY,UAAU,CAAC;AACpC,eAAO,MAAM,iBAAiB,mGACoE,CAAC;AAEnG,wBAAgB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,SAAS,CAEhE"}
|