@alisaitteke/photoshop-mcp 1.7.24 → 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/README.md +5 -4
- 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/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 +2 -0
- package/package.json +1 -1
- package/web/dist/assets/{index-hrv691GI.js → index-DHJOEezS.js} +2 -1
- package/web/dist/index.html +1 -1
package/README.md
CHANGED
|
@@ -39,10 +39,11 @@ 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
49
|
TYPESAFE_API_KEY=... npx -p @alisaitteke/photoshop-mcp 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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"}
|
|
@@ -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"}
|
|
@@ -1,23 +1,81 @@
|
|
|
1
1
|
import { LAYER_BLEND_MODE_ENUM } from '../../tools/blend-mode.js';
|
|
2
|
+
export function humanBlendMode(mode) {
|
|
3
|
+
const spaced = mode
|
|
4
|
+
.toLowerCase()
|
|
5
|
+
.replace(/^(color|linear|vivid|pin|hard|soft|darker|lighter)(?=[a-z])/, '$1 ');
|
|
6
|
+
return spaced.charAt(0).toUpperCase() + spaced.slice(1);
|
|
7
|
+
}
|
|
8
|
+
export const BLEND_MODES = LAYER_BLEND_MODE_ENUM;
|
|
2
9
|
const none = () => ({});
|
|
10
|
+
/** Copy only the resolved slots into tool arguments, renaming keys where needed. */
|
|
11
|
+
function pick(slots, map) {
|
|
12
|
+
const out = {};
|
|
13
|
+
for (const [slot, arg] of Object.entries(map)) {
|
|
14
|
+
if (slots[slot] !== undefined)
|
|
15
|
+
out[arg] = slots[slot];
|
|
16
|
+
}
|
|
17
|
+
return out;
|
|
18
|
+
}
|
|
19
|
+
const COUNT_SLOT = {
|
|
20
|
+
kind: 'number',
|
|
21
|
+
key: 'count',
|
|
22
|
+
question: 'Which of these numbers is how many steps the `request` wants to undo or redo?',
|
|
23
|
+
min: 1,
|
|
24
|
+
max: 50,
|
|
25
|
+
integer: true,
|
|
26
|
+
};
|
|
27
|
+
const COLOR_GRADE_PRESETS = {
|
|
28
|
+
cinematic: 'Cinematic film look.',
|
|
29
|
+
vintage: 'Vintage, retro, faded old-photo look.',
|
|
30
|
+
teal_orange: 'Teal and orange look.',
|
|
31
|
+
bw: 'Black-and-white color grade.',
|
|
32
|
+
warm_film: 'Warm film tones, golden, sunny.',
|
|
33
|
+
cool_dusk: 'Cool, bluish, dusky or moody tones.',
|
|
34
|
+
};
|
|
35
|
+
const GRADIENT_DIRECTIONS = {
|
|
36
|
+
bottom_to_top: 'Hidden at the bottom edge, fully visible at the top (fades out towards the bottom).',
|
|
37
|
+
top_to_bottom: 'Hidden at the top edge, fully visible at the bottom (fades out towards the top).',
|
|
38
|
+
left_to_right: 'Hidden at the left edge, fully visible at the right (fades out towards the left).',
|
|
39
|
+
right_to_left: 'Hidden at the right edge, fully visible at the left (fades out towards the right).',
|
|
40
|
+
};
|
|
41
|
+
const PASSPORT_SPECS = {
|
|
42
|
+
us_2x2: 'US passport or visa photo, 2×2 inch.',
|
|
43
|
+
eu_35x45: 'EU / Schengen passport or visa photo, 35×45 mm.',
|
|
44
|
+
tr_50x60: 'Turkish biometric photo (biyometrik, vesikalık), 50×60 mm.',
|
|
45
|
+
};
|
|
46
|
+
const SOCIAL_PLATFORMS = {
|
|
47
|
+
instagram_post: 'Instagram post (square 1080×1080).',
|
|
48
|
+
instagram_story: 'Instagram story (1080×1920).',
|
|
49
|
+
instagram_reel: 'Instagram reel cover (1080×1920).',
|
|
50
|
+
x_post: 'X / Twitter post (1600×900).',
|
|
51
|
+
x_header: 'X / Twitter header banner (1500×500).',
|
|
52
|
+
facebook_post: 'Facebook post (1200×630).',
|
|
53
|
+
facebook_cover: 'Facebook cover photo (1640×624).',
|
|
54
|
+
linkedin_post: 'LinkedIn post (1200×627).',
|
|
55
|
+
linkedin_banner: 'LinkedIn banner (1584×396).',
|
|
56
|
+
youtube_thumbnail: 'YouTube thumbnail (1280×720).',
|
|
57
|
+
tiktok_vertical: 'TikTok vertical video cover (1080×1920).',
|
|
58
|
+
pinterest_pin: 'Pinterest pin (1000×1500).',
|
|
59
|
+
};
|
|
60
|
+
const presetLabel = (id) => typeof id === 'string' ? id.replace(/_/g, ' ').replace(/\bbw\b/, 'B&W') : '';
|
|
3
61
|
export const INSTANT_INTENTS = [
|
|
4
62
|
{
|
|
5
63
|
id: 'undo',
|
|
6
64
|
describe: 'Undo the most recent change (optionally a number of steps).',
|
|
7
65
|
label: 'Undo',
|
|
8
66
|
tool: 'photoshop_undo',
|
|
9
|
-
|
|
10
|
-
args: (s) => (s
|
|
11
|
-
describeCall: (s) => (s.count && s.count > 1 ? `Undo ${s.count} steps` : 'Undo 1 step'),
|
|
67
|
+
slots: [COUNT_SLOT],
|
|
68
|
+
args: (s) => pick(s, { count: 'steps' }),
|
|
69
|
+
describeCall: (s) => (typeof s.count === 'number' && s.count > 1 ? `Undo ${s.count} steps` : 'Undo 1 step'),
|
|
12
70
|
},
|
|
13
71
|
{
|
|
14
72
|
id: 'redo',
|
|
15
73
|
describe: 'Redo the change that was just undone (optionally a number of steps).',
|
|
16
74
|
label: 'Redo',
|
|
17
75
|
tool: 'photoshop_redo',
|
|
18
|
-
|
|
19
|
-
args: (s) => (s
|
|
20
|
-
describeCall: (s) => (s.count && s.count > 1 ? `Redo ${s.count} steps` : 'Redo 1 step'),
|
|
76
|
+
slots: [COUNT_SLOT],
|
|
77
|
+
args: (s) => pick(s, { count: 'steps' }),
|
|
78
|
+
describeCall: (s) => (typeof s.count === 'number' && s.count > 1 ? `Redo ${s.count} steps` : 'Redo 1 step'),
|
|
21
79
|
},
|
|
22
80
|
{
|
|
23
81
|
id: 'remove_background',
|
|
@@ -92,16 +150,34 @@ export const INSTANT_INTENTS = [
|
|
|
92
150
|
describe: 'Change the blend mode of the active layer only.',
|
|
93
151
|
label: 'Blend mode',
|
|
94
152
|
tool: 'photoshop_set_layer_blend_mode',
|
|
153
|
+
slots: [
|
|
154
|
+
{
|
|
155
|
+
kind: 'choice',
|
|
156
|
+
key: 'blendMode',
|
|
157
|
+
question: 'Which layer blend mode does the `request` name?',
|
|
158
|
+
options: Object.fromEntries(BLEND_MODES.map((mode) => [mode, humanBlendMode(mode)])),
|
|
159
|
+
},
|
|
160
|
+
],
|
|
95
161
|
requires: ['blendMode'],
|
|
96
162
|
preview: true,
|
|
97
163
|
args: (s) => ({ blendMode: s.blendMode }),
|
|
98
|
-
describeCall: (s) => `Blend mode ${s.blendMode ? humanBlendMode(s.blendMode) : ''}`.trim(),
|
|
164
|
+
describeCall: (s) => `Blend mode ${typeof s.blendMode === 'string' ? humanBlendMode(s.blendMode) : ''}`.trim(),
|
|
99
165
|
},
|
|
100
166
|
{
|
|
101
167
|
id: 'set_opacity',
|
|
102
168
|
describe: 'Change the opacity of the active layer only.',
|
|
103
169
|
label: 'Opacity',
|
|
104
170
|
tool: 'photoshop_set_layer_opacity',
|
|
171
|
+
slots: [
|
|
172
|
+
{
|
|
173
|
+
kind: 'number',
|
|
174
|
+
key: 'opacity',
|
|
175
|
+
question: 'Which of these numbers is the layer opacity the `request` asks for?',
|
|
176
|
+
min: 0,
|
|
177
|
+
max: 100,
|
|
178
|
+
integer: true,
|
|
179
|
+
},
|
|
180
|
+
],
|
|
105
181
|
requires: ['opacity'],
|
|
106
182
|
preview: true,
|
|
107
183
|
args: (s) => ({ opacity: s.opacity }),
|
|
@@ -144,17 +220,170 @@ export const INSTANT_INTENTS = [
|
|
|
144
220
|
risky: true,
|
|
145
221
|
args: none,
|
|
146
222
|
},
|
|
223
|
+
// ── Recipes: one intent, many Photoshop steps ────────────────────────────
|
|
224
|
+
{
|
|
225
|
+
id: 'color_grade',
|
|
226
|
+
describe: 'Give the whole image a color grade or stylistic look (cinematic, vintage, teal and orange, warm film, cool or moody tones).',
|
|
227
|
+
label: 'Color grade',
|
|
228
|
+
tool: 'photoshop_recipe_apply_color_grade',
|
|
229
|
+
slots: [{ kind: 'choice', key: 'preset', question: 'Which look does the `request` ask for?', options: COLOR_GRADE_PRESETS }],
|
|
230
|
+
preview: true,
|
|
231
|
+
args: (s) => pick(s, { preset: 'preset' }),
|
|
232
|
+
describeCall: (s) => (s.preset ? `Color grade: ${presetLabel(s.preset)}` : 'Color grade'),
|
|
233
|
+
},
|
|
234
|
+
{
|
|
235
|
+
id: 'enhance_portrait',
|
|
236
|
+
describe: 'Retouch or enhance a portrait automatically: smooth skin, clean up the face, fix blemishes.',
|
|
237
|
+
label: 'Enhance portrait',
|
|
238
|
+
tool: 'photoshop_recipe_enhance_portrait',
|
|
239
|
+
slots: [
|
|
240
|
+
{
|
|
241
|
+
kind: 'choice',
|
|
242
|
+
key: 'intensity',
|
|
243
|
+
question: 'How strong a retouch does the `request` ask for?',
|
|
244
|
+
options: {
|
|
245
|
+
low: 'Subtle, light, natural.',
|
|
246
|
+
medium: 'Normal, moderate.',
|
|
247
|
+
high: 'Strong, heavy smoothing.',
|
|
248
|
+
},
|
|
249
|
+
},
|
|
250
|
+
],
|
|
251
|
+
preview: true,
|
|
252
|
+
args: (s) => pick(s, { intensity: 'intensity' }),
|
|
253
|
+
describeCall: (s) => (s.intensity ? `Enhance portrait (${s.intensity})` : 'Enhance portrait'),
|
|
254
|
+
},
|
|
255
|
+
{
|
|
256
|
+
id: 'gradient_fade',
|
|
257
|
+
describe: 'Fade the active layer softly into the background with a gradient layer mask (soft edge fade).',
|
|
258
|
+
label: 'Gradient fade',
|
|
259
|
+
tool: 'photoshop_recipe_gradient_fade',
|
|
260
|
+
slots: [{ kind: 'choice', key: 'direction', question: 'Which way does the `request` want the layer to fade?', options: GRADIENT_DIRECTIONS }],
|
|
261
|
+
preview: true,
|
|
262
|
+
args: (s) => pick(s, { direction: 'direction' }),
|
|
263
|
+
describeCall: (s) => (s.direction ? `Gradient fade (${presetLabel(s.direction)})` : 'Gradient fade'),
|
|
264
|
+
},
|
|
265
|
+
{
|
|
266
|
+
id: 'dodge_burn',
|
|
267
|
+
describe: 'Set up a dodge and burn layer (50% gray) for painting light and shadow by hand.',
|
|
268
|
+
label: 'Dodge & burn layer',
|
|
269
|
+
tool: 'photoshop_recipe_dodge_burn',
|
|
270
|
+
slots: [
|
|
271
|
+
{
|
|
272
|
+
kind: 'choice',
|
|
273
|
+
key: 'blend',
|
|
274
|
+
question: 'Which blend mode does the `request` want for the dodge and burn layer?',
|
|
275
|
+
options: { overlay: 'Overlay (stronger).', soft_light: 'Soft light (gentler).' },
|
|
276
|
+
},
|
|
277
|
+
],
|
|
278
|
+
args: (s) => pick(s, { blend: 'blend_mode' }),
|
|
279
|
+
},
|
|
280
|
+
{
|
|
281
|
+
id: 'frequency_separation',
|
|
282
|
+
describe: 'Set up a frequency separation (low and high frequency layers) for manual retouching.',
|
|
283
|
+
label: 'Frequency separation',
|
|
284
|
+
tool: 'photoshop_recipe_frequency_separation',
|
|
285
|
+
slots: [
|
|
286
|
+
{
|
|
287
|
+
kind: 'number',
|
|
288
|
+
key: 'radius',
|
|
289
|
+
question: 'Which of these numbers is the blur radius in pixels the `request` asks for?',
|
|
290
|
+
min: 1,
|
|
291
|
+
max: 50,
|
|
292
|
+
},
|
|
293
|
+
],
|
|
294
|
+
args: (s) => pick(s, { radius: 'radius_px' }),
|
|
295
|
+
describeCall: (s) => (s.radius !== undefined ? `Frequency separation (${s.radius}px)` : 'Frequency separation'),
|
|
296
|
+
},
|
|
297
|
+
{
|
|
298
|
+
id: 'organize_layers',
|
|
299
|
+
describe: 'Tidy up the layers panel: rename messy layers consistently and group them by kind.',
|
|
300
|
+
label: 'Organize layers',
|
|
301
|
+
tool: 'photoshop_recipe_organize_layers',
|
|
302
|
+
slots: [
|
|
303
|
+
{
|
|
304
|
+
kind: 'choice',
|
|
305
|
+
key: 'naming',
|
|
306
|
+
question: 'How does the `request` want the layers renamed?',
|
|
307
|
+
options: {
|
|
308
|
+
type_index: 'By layer type and number, e.g. text_01.',
|
|
309
|
+
content_summary: 'After their content (text layers named after their text).',
|
|
310
|
+
preserve: 'Keep the current names.',
|
|
311
|
+
},
|
|
312
|
+
},
|
|
313
|
+
{ kind: 'flag', key: 'auto_group', question: 'Does the `request` ask to leave the layers ungrouped?', value: false },
|
|
314
|
+
],
|
|
315
|
+
args: (s) => pick(s, { naming: 'naming_scheme', auto_group: 'auto_group' }),
|
|
316
|
+
},
|
|
317
|
+
{
|
|
318
|
+
id: 'passport_photo',
|
|
319
|
+
describe: 'Make a passport, visa, ID or biometric photo (vesikalık) from the portrait and export it.',
|
|
320
|
+
label: 'Passport photo',
|
|
321
|
+
tool: 'photoshop_recipe_passport_photo',
|
|
322
|
+
slots: [
|
|
323
|
+
{ kind: 'choice', key: 'spec', question: 'Which photo size or country does the `request` ask for?', options: PASSPORT_SPECS },
|
|
324
|
+
{ kind: 'flag', key: 'make_sheet', question: 'Does the `request` ask for a print sheet with several copies?', value: true },
|
|
325
|
+
],
|
|
326
|
+
args: (s) => pick(s, { spec: 'spec', make_sheet: 'make_sheet' }),
|
|
327
|
+
describeCall: (s) => (s.spec ? `Passport photo (${String(s.spec).replace(/_/g, ' ')})` : 'Passport photo'),
|
|
328
|
+
},
|
|
329
|
+
{
|
|
330
|
+
id: 'prepare_for_web',
|
|
331
|
+
describe: 'Export one web-ready copy of the document (resized, sRGB, sharpened JPEG or PNG).',
|
|
332
|
+
label: 'Export for web',
|
|
333
|
+
tool: 'photoshop_recipe_prepare_for_web',
|
|
334
|
+
slots: [
|
|
335
|
+
{
|
|
336
|
+
kind: 'number',
|
|
337
|
+
key: 'max_px',
|
|
338
|
+
question: 'Which of these numbers is the maximum size (longest edge) in pixels the `request` asks for?',
|
|
339
|
+
min: 64,
|
|
340
|
+
max: 8192,
|
|
341
|
+
integer: true,
|
|
342
|
+
},
|
|
343
|
+
{
|
|
344
|
+
kind: 'choice',
|
|
345
|
+
key: 'format',
|
|
346
|
+
question: 'Which file format does the `request` ask for?',
|
|
347
|
+
options: { jpeg: 'JPEG / JPG.', png: 'PNG.' },
|
|
348
|
+
},
|
|
349
|
+
],
|
|
350
|
+
args: (s) => pick(s, { max_px: 'max_dimension_px', format: 'format' }),
|
|
351
|
+
describeCall: (s) => ['Export for web', s.max_px !== undefined ? `${s.max_px}px` : '', s.format ? String(s.format).toUpperCase() : '']
|
|
352
|
+
.filter(Boolean)
|
|
353
|
+
.join(' · '),
|
|
354
|
+
},
|
|
355
|
+
{
|
|
356
|
+
id: 'export_social_variants',
|
|
357
|
+
describe: 'Export sized copies of the document for several social media platforms at once.',
|
|
358
|
+
label: 'Social exports',
|
|
359
|
+
tool: 'photoshop_recipe_export_social_variants',
|
|
360
|
+
slots: [{ kind: 'multi', key: 'platforms', question: 'Does the `request` ask for an export for this platform:', options: SOCIAL_PLATFORMS }],
|
|
361
|
+
args: (s) => pick(s, { platforms: 'platforms' }),
|
|
362
|
+
describeCall: (s) => Array.isArray(s.platforms) ? `Social exports (${s.platforms.length})` : 'Social exports',
|
|
363
|
+
},
|
|
364
|
+
{
|
|
365
|
+
id: 'split_carousel',
|
|
366
|
+
describe: 'Split a wide image into a swipeable carousel of N slides and export them.',
|
|
367
|
+
label: 'Split carousel',
|
|
368
|
+
tool: 'photoshop_recipe_split_carousel',
|
|
369
|
+
slots: [
|
|
370
|
+
{
|
|
371
|
+
kind: 'number',
|
|
372
|
+
key: 'slides',
|
|
373
|
+
question: 'Which of these numbers is how many slides the `request` wants?',
|
|
374
|
+
min: 2,
|
|
375
|
+
max: 10,
|
|
376
|
+
integer: true,
|
|
377
|
+
},
|
|
378
|
+
],
|
|
379
|
+
requires: ['slides'],
|
|
380
|
+
args: (s) => ({ slides: s.slides }),
|
|
381
|
+
describeCall: (s) => `Split into ${s.slides} slides`,
|
|
382
|
+
},
|
|
147
383
|
];
|
|
148
384
|
export const OTHER_INTENT = 'other';
|
|
149
385
|
export const OTHER_DESCRIPTION = 'Anything else: more than one change, a change that is not listed here, a question, or unclear.';
|
|
150
386
|
export function findIntent(id) {
|
|
151
387
|
return INSTANT_INTENTS.find((intent) => intent.id === id);
|
|
152
388
|
}
|
|
153
|
-
export function humanBlendMode(mode) {
|
|
154
|
-
const spaced = mode
|
|
155
|
-
.toLowerCase()
|
|
156
|
-
.replace(/^(color|linear|vivid|pin|hard|soft|darker|lighter)(?=[a-z])/, '$1 ');
|
|
157
|
-
return spaced.charAt(0).toUpperCase() + spaced.slice(1);
|
|
158
|
-
}
|
|
159
|
-
export const BLEND_MODES = LAYER_BLEND_MODE_ENUM;
|
|
160
389
|
//# sourceMappingURL=catalog.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../src/ui/intent/catalog.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"catalog.js","sourceRoot":"","sources":["../../../src/ui/intent/catalog.ts"],"names":[],"mappings":"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"}
|