@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 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 photoshop-mcp-ui` |
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
  ![Screenshot der eigenständigen UI](./images/frame_generic_light.png)
40
40
 
41
41
  ```bash
42
- npx -p @alisaitteke/photoshop-mcp photoshop-mcp-ui
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
  ![Captura de pantalla de la UI independiente](./images/frame_generic_light.png)
39
39
 
40
40
  ```bash
41
- npx -p @alisaitteke/photoshop-mcp photoshop-mcp-ui
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
  ![スタンドアロンUIスクリーンショット](./images/frame_generic_light.png)
39
39
 
40
40
  ```bash
41
- npx -p @alisaitteke/photoshop-mcp photoshop-mcp-ui
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 16 safe commands with every value spelled out (undo, opacity, blend mode,
43
- remove background, …), it runs in Photoshop straight away: no LLM call, no LLM
44
- tokens. Multi-step requests and hard-to-undo ones like merge or flatten never
45
- take the instant path; they go to the Action Plan.
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 photoshop-mcp-ui
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 photoshop-mcp-ui
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
  ![Bağımsız UI Ekran Görüntüsü](./images/frame_generic_light.png)
39
39
 
40
40
  ```bash
41
- npx -p @alisaitteke/photoshop-mcp photoshop-mcp-ui
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
  ![独立 UI 截图](./images/frame_generic_light.png)
39
39
 
40
40
  ```bash
41
- npx -p @alisaitteke/photoshop-mcp photoshop-mcp-ui
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 its arguments, so run it
6
- * directly and show a preview. No language model is involved, so there is no
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
- call: InstantCall;
20
+ calls: InstantCall[];
20
21
  }
21
22
  /**
22
- * Start the MCP child and check the tool exists. Returns null (caller falls back
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(call: InstantCall, chatId?: string): Promise<PreparedInstant | null>;
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;;;;GAIG;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,IAAI,EAAE,WAAW,CAAC;CACnB;AAYD;;;GAGG;AACH,wBAAsB,cAAc,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,eAAe,GAAG,IAAI,CAAC,CAoBxG;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,CAyCrC"}
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"}
@@ -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 the tool exists. Returns null (caller falls back
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(call, chatId) {
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, call };
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, call } = opts.prepared;
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 main = yield* runTool(call.tool, call.args);
65
- if (main.ok && call.preview && !opts.abortSignal.aborted && tools.photoshop_get_preview?.execute) {
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 = main.ok ? `Done: ${call.label}.` : `${call.label} did not work: ${main.message}`;
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":"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"}
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.call) {
53
- const prepared = await prepareInstant(decision.call, opts.chatId);
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,
@@ -1 +1 @@
1
- {"version":3,"file":"agent.js","sourceRoot":"","sources":["../../src/ui/agent.ts"],"names":[],"mappings":"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"}
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: photoshop-mcp-ui [options]',
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)',
@@ -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":"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"}
@@ -1,14 +1,45 @@
1
1
  /**
2
- * Single-step commands the standalone UI may run without a language model when
3
- * Jev (TypeSafe's System One model) is confident the request is exactly one of
4
- * them. Anything destructive is marked `risky` and never runs this way.
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
- export type IntentSlot = 'count' | 'opacity' | 'blendMode';
7
- export interface SlotValues {
8
- count?: number;
9
- opacity?: number;
10
- blendMode?: string;
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
- /** Slots that must be resolved before the intent can run instantly. */
22
- requires?: IntentSlot[];
23
- /** Slots used when present. */
24
- optional?: IntentSlot[];
25
- /** Destructive or hard to undo: route to a reviewed plan instead. */
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;;;;GAIG;AAEH,MAAM,MAAM,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,WAAW,CAAC;AAE3D,MAAM,WAAW,UAAU;IACzB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,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,uEAAuE;IACvE,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IACxB,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,UAAU,EAAE,CAAC;IACxB,qEAAqE;IACrE,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;AAID,eAAO,MAAM,eAAe,EAAE,SAAS,aAAa,EAgJnD,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;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKnD;AAED,eAAO,MAAM,WAAW,EAAE,SAAS,MAAM,EAA0B,CAAC"}
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"}