@alisaitteke/photoshop-mcp 1.2.0 → 1.3.3
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 +38 -2
- package/dist/analytics/beta-telemetry.d.ts +11 -0
- package/dist/analytics/beta-telemetry.d.ts.map +1 -0
- package/dist/analytics/beta-telemetry.js +47 -0
- package/dist/analytics/beta-telemetry.js.map +1 -0
- package/dist/analytics/client-ip.d.ts +5 -0
- package/dist/analytics/client-ip.d.ts.map +1 -0
- package/dist/analytics/client-ip.js +39 -0
- package/dist/analytics/client-ip.js.map +1 -0
- package/dist/analytics/config.d.ts +6 -0
- package/dist/analytics/config.d.ts.map +1 -0
- package/dist/analytics/config.js +23 -0
- package/dist/analytics/config.js.map +1 -0
- package/dist/analytics/context.d.ts +2 -0
- package/dist/analytics/context.d.ts.map +1 -0
- package/dist/analytics/context.js +13 -0
- package/dist/analytics/context.js.map +1 -0
- package/dist/analytics/events.d.ts +3 -0
- package/dist/analytics/events.d.ts.map +1 -0
- package/dist/analytics/events.js +85 -0
- package/dist/analytics/events.js.map +1 -0
- package/dist/analytics/identity.d.ts +9 -0
- package/dist/analytics/identity.d.ts.map +1 -0
- package/dist/analytics/identity.js +166 -0
- package/dist/analytics/identity.js.map +1 -0
- package/dist/analytics/index.d.ts +12 -0
- package/dist/analytics/index.d.ts.map +1 -0
- package/dist/analytics/index.js +38 -0
- package/dist/analytics/index.js.map +1 -0
- package/dist/analytics/launch-method.d.ts +4 -0
- package/dist/analytics/launch-method.d.ts.map +1 -0
- package/dist/analytics/launch-method.js +33 -0
- package/dist/analytics/launch-method.js.map +1 -0
- package/dist/analytics/locale.d.ts +4 -0
- package/dist/analytics/locale.d.ts.map +1 -0
- package/dist/analytics/locale.js +14 -0
- package/dist/analytics/locale.js.map +1 -0
- package/dist/analytics/noop.d.ts +6 -0
- package/dist/analytics/noop.d.ts.map +1 -0
- package/dist/analytics/noop.js +9 -0
- package/dist/analytics/noop.js.map +1 -0
- package/dist/analytics/posthog-node.d.ts +11 -0
- package/dist/analytics/posthog-node.d.ts.map +1 -0
- package/dist/analytics/posthog-node.js +55 -0
- package/dist/analytics/posthog-node.js.map +1 -0
- package/dist/analytics/provider.d.ts +5 -0
- package/dist/analytics/provider.d.ts.map +1 -0
- package/dist/analytics/provider.js +27 -0
- package/dist/analytics/provider.js.map +1 -0
- package/dist/analytics/types.d.ts +23 -0
- package/dist/analytics/types.d.ts.map +1 -0
- package/dist/analytics/types.js +2 -0
- package/dist/analytics/types.js.map +1 -0
- package/dist/core/server.d.ts +1 -0
- package/dist/core/server.d.ts.map +1 -1
- package/dist/core/server.js +3 -0
- package/dist/core/server.js.map +1 -1
- package/dist/index.js +32 -0
- package/dist/index.js.map +1 -1
- package/dist/platform/macos-detector.js +4 -4
- package/dist/platform/macos-detector.js.map +1 -1
- package/dist/platform/macos-executor.js +1 -1
- package/dist/platform/macos-executor.js.map +1 -1
- package/dist/platform/windows-detector.js +4 -4
- package/dist/platform/windows-detector.js.map +1 -1
- package/dist/platform/windows-executor.js +2 -2
- package/dist/platform/windows-executor.js.map +1 -1
- package/dist/ui/agent/action-plan.d.ts +19 -0
- package/dist/ui/agent/action-plan.d.ts.map +1 -0
- package/dist/ui/agent/action-plan.js +552 -0
- package/dist/ui/agent/action-plan.js.map +1 -0
- package/dist/ui/agent/api-key.d.ts.map +1 -1
- package/dist/ui/agent/api-key.js +22 -4
- package/dist/ui/agent/api-key.js.map +1 -1
- package/dist/ui/agent/claude-account.d.ts.map +1 -1
- package/dist/ui/agent/claude-account.js +26 -12
- package/dist/ui/agent/claude-account.js.map +1 -1
- package/dist/ui/agent/gemini-account.d.ts.map +1 -1
- package/dist/ui/agent/gemini-account.js +14 -4
- package/dist/ui/agent/gemini-account.js.map +1 -1
- package/dist/ui/agent/shared.d.ts +26 -1
- package/dist/ui/agent/shared.d.ts.map +1 -1
- package/dist/ui/agent/shared.js +61 -0
- package/dist/ui/agent/shared.js.map +1 -1
- package/dist/ui/agent.d.ts +1 -0
- package/dist/ui/agent.d.ts.map +1 -1
- package/dist/ui/agent.js +36 -0
- package/dist/ui/agent.js.map +1 -1
- package/dist/ui/cli.js +11 -1
- package/dist/ui/cli.js.map +1 -1
- package/dist/ui/config.d.ts +6 -1
- package/dist/ui/config.d.ts.map +1 -1
- package/dist/ui/config.js +1 -12
- package/dist/ui/config.js.map +1 -1
- package/dist/ui/server.d.ts.map +1 -1
- package/dist/ui/server.js +103 -6
- package/dist/ui/server.js.map +1 -1
- package/dist/ui/store/chats.d.ts +11 -0
- package/dist/ui/store/chats.d.ts.map +1 -1
- package/dist/ui/store/chats.js.map +1 -1
- package/dist/ui/store/db.js +2 -2
- package/dist/ui/store/db.js.map +1 -1
- package/package.json +4 -2
- package/web/dist/assets/index-BgiXf1Jy.css +1 -0
- package/web/dist/assets/index-n0ymP-Cw.js +249 -0
- package/web/dist/index.html +9 -3
- package/web/dist/assets/index-BN0tu4e6.css +0 -1
- package/web/dist/assets/index-Cf7sH5RM.js +0 -138
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"api-key.js","sourceRoot":"","sources":["../../../src/ui/agent/api-key.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAkB,MAAM,aAAa,CAAC;AAC9D,OAAO,EAAE,8BAA8B,EAAE,MAAM,uBAAuB,CAAC;AACvE,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,IAAI,CAAC;AAI7C,OAAO,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,oBAAoB,CAAC;AAClE,OAAO,EAAE,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACzE,OAAO,EACL,WAAW,EACX,mBAAmB,
|
|
1
|
+
{"version":3,"file":"api-key.js","sourceRoot":"","sources":["../../../src/ui/agent/api-key.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-account.d.ts","sourceRoot":"","sources":["../../../src/ui/agent/claude-account.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,
|
|
1
|
+
{"version":3,"file":"claude-account.d.ts","sourceRoot":"","sources":["../../../src/ui/agent/claude-account.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AACvC,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,0BAA0B,CAAC;AAEhE,OAAO,EAIL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,8BAA8B;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,QAAQ,EAAE,eAAe,CAAC;IAC1B,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,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,wBAAuB,uBAAuB,CAC5C,IAAI,EAAE,8BAA8B,GACnC,cAAc,CAAC,kBAAkB,CAAC,CA4JpC"}
|
|
@@ -1,11 +1,13 @@
|
|
|
1
1
|
import { query } from '@anthropic-ai/claude-agent-sdk';
|
|
2
2
|
import { buildMcpServerConfig } from './mcp-transport.js';
|
|
3
|
-
import { buildPromptWithHistory, stringifyToolOutput, } from './shared.js';
|
|
3
|
+
import { buildPromptWithHistory, isToolOutputOk, stringifyToolOutput, } from './shared.js';
|
|
4
4
|
export async function* runChatViaClaudeAccount(opts) {
|
|
5
5
|
const buffer = { text: '', toolCalls: [] };
|
|
6
6
|
const seenToolCalls = new Set();
|
|
7
7
|
const seenToolResults = new Set();
|
|
8
8
|
const abortController = new AbortController();
|
|
9
|
+
let sawStreamText = false;
|
|
10
|
+
let emittedThinking = false;
|
|
9
11
|
const onAbort = () => abortController.abort();
|
|
10
12
|
opts.abortSignal.addEventListener('abort', onAbort);
|
|
11
13
|
const prompt = buildPromptWithHistory(opts.history, opts.prompt);
|
|
@@ -29,6 +31,16 @@ export async function* runChatViaClaudeAccount(opts) {
|
|
|
29
31
|
for await (const message of q) {
|
|
30
32
|
if (opts.abortSignal.aborted)
|
|
31
33
|
break;
|
|
34
|
+
if (message.type === 'stream_event') {
|
|
35
|
+
const ev = message.event;
|
|
36
|
+
if (ev.type === 'content_block_delta' && ev.delta?.type === 'text_delta' && ev.delta.text) {
|
|
37
|
+
sawStreamText = true;
|
|
38
|
+
buffer.text += ev.delta.text;
|
|
39
|
+
yield { type: 'text-delta', payload: { text: ev.delta.text } };
|
|
40
|
+
opts.onAssistantBuffer?.(buffer);
|
|
41
|
+
}
|
|
42
|
+
continue;
|
|
43
|
+
}
|
|
32
44
|
if (message.type === 'assistant') {
|
|
33
45
|
if (message.error === 'authentication_failed') {
|
|
34
46
|
yield {
|
|
@@ -39,8 +51,12 @@ export async function* runChatViaClaudeAccount(opts) {
|
|
|
39
51
|
};
|
|
40
52
|
break;
|
|
41
53
|
}
|
|
54
|
+
if (!emittedThinking) {
|
|
55
|
+
yield { type: 'activity', payload: { phase: 'thinking' } };
|
|
56
|
+
emittedThinking = true;
|
|
57
|
+
}
|
|
42
58
|
for (const block of message.message.content) {
|
|
43
|
-
if ('text' in block && typeof block.text === 'string' && block.text) {
|
|
59
|
+
if ('text' in block && typeof block.text === 'string' && block.text && !sawStreamText) {
|
|
44
60
|
buffer.text += block.text;
|
|
45
61
|
yield { type: 'text-delta', payload: { text: block.text } };
|
|
46
62
|
opts.onAssistantBuffer?.(buffer);
|
|
@@ -58,9 +74,15 @@ export async function* runChatViaClaudeAccount(opts) {
|
|
|
58
74
|
type: 'tool-call',
|
|
59
75
|
payload: { id: tc.id, name: tc.name, input: tc.input },
|
|
60
76
|
};
|
|
77
|
+
yield {
|
|
78
|
+
type: 'activity',
|
|
79
|
+
payload: { phase: 'tool-running', detail: block.name },
|
|
80
|
+
};
|
|
61
81
|
opts.onAssistantBuffer?.(buffer);
|
|
62
82
|
}
|
|
63
83
|
}
|
|
84
|
+
sawStreamText = false;
|
|
85
|
+
emittedThinking = false;
|
|
64
86
|
continue;
|
|
65
87
|
}
|
|
66
88
|
if (message.type === 'user' && message.tool_use_result !== undefined) {
|
|
@@ -72,7 +94,7 @@ export async function* runChatViaClaudeAccount(opts) {
|
|
|
72
94
|
seenToolResults.add(toolUseId);
|
|
73
95
|
const text = stringifyToolOutput(message.tool_use_result);
|
|
74
96
|
const tc = buffer.toolCalls.find((c) => c.id === toolUseId);
|
|
75
|
-
const ok =
|
|
97
|
+
const ok = isToolOutputOk(message.tool_use_result);
|
|
76
98
|
if (tc) {
|
|
77
99
|
tc.result = { ok, content: text };
|
|
78
100
|
tc.status = ok ? 'success' : 'error';
|
|
@@ -81,6 +103,7 @@ export async function* runChatViaClaudeAccount(opts) {
|
|
|
81
103
|
type: 'tool-result',
|
|
82
104
|
payload: { id: toolUseId, ok, content: text },
|
|
83
105
|
};
|
|
106
|
+
yield { type: 'activity', payload: { phase: 'thinking' } };
|
|
84
107
|
opts.onAssistantBuffer?.(buffer);
|
|
85
108
|
continue;
|
|
86
109
|
}
|
|
@@ -138,13 +161,4 @@ function extractToolUseId(message) {
|
|
|
138
161
|
}
|
|
139
162
|
return null;
|
|
140
163
|
}
|
|
141
|
-
function isToolErrorResult(result) {
|
|
142
|
-
if (typeof result !== 'object' || result === null)
|
|
143
|
-
return false;
|
|
144
|
-
if ('is_error' in result && result.is_error === true)
|
|
145
|
-
return true;
|
|
146
|
-
if ('error' in result && result.error)
|
|
147
|
-
return true;
|
|
148
|
-
return false;
|
|
149
|
-
}
|
|
150
164
|
//# sourceMappingURL=claude-account.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"claude-account.js","sourceRoot":"","sources":["../../../src/ui/agent/claude-account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,gCAAgC,CAAC;AAGvD,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EACL,sBAAsB,EACtB,mBAAmB,GAIpB,MAAM,aAAa,CAAC;AAcrB,MAAM,CAAC,KAAK,SAAS,CAAC,CAAC,uBAAuB,CAC5C,IAAoC;IAEpC,MAAM,MAAM,GAAoB,EAAE,IAAI,EAAE,EAAE,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IAC5D,MAAM,aAAa,GAAG,IAAI,GAAG,EAAU,CAAC;IACxC,MAAM,eAAe,GAAG,IAAI,GAAG,EAAU,CAAC;IAC1C,MAAM,eAAe,GAAG,IAAI,eAAe,EAAE,CAAC;
|
|
1
|
+
{"version":3,"file":"claude-account.js","sourceRoot":"","sources":["../../../src/ui/agent/claude-account.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini-account.d.ts","sourceRoot":"","sources":["../../../src/ui/agent/gemini-account.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAGvC,OAAO,
|
|
1
|
+
{"version":3,"file":"gemini-account.d.ts","sourceRoot":"","sources":["../../../src/ui/agent/gemini-account.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAGvC,OAAO,EAGL,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACxB,MAAM,aAAa,CAAC;AAErB,MAAM,WAAW,8BAA8B;IAC7C,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,MAAM,CAAC;IACrB,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;AAoBD,wBAAuB,uBAAuB,CAC5C,IAAI,EAAE,8BAA8B,GACnC,cAAc,CAAC,kBAAkB,CAAC,CA0EpC"}
|
|
@@ -5,7 +5,7 @@ import { spawn } from 'node:child_process';
|
|
|
5
5
|
import { randomUUID } from 'node:crypto';
|
|
6
6
|
import { resolveCliBinary } from '../providers/cli-utils.js';
|
|
7
7
|
import { buildMcpServerConfig } from './mcp-transport.js';
|
|
8
|
-
import { buildPromptWithHistory, } from './shared.js';
|
|
8
|
+
import { buildPromptWithHistory, isToolOutputOk, } from './shared.js';
|
|
9
9
|
export async function* runChatViaGeminiAccount(opts) {
|
|
10
10
|
const geminiPath = await resolveCliBinary('gemini', opts.cliPath);
|
|
11
11
|
if (!geminiPath) {
|
|
@@ -42,12 +42,13 @@ export async function* runChatViaGeminiAccount(opts) {
|
|
|
42
42
|
const onAbort = () => child.kill('SIGTERM');
|
|
43
43
|
opts.abortSignal.addEventListener('abort', onAbort);
|
|
44
44
|
try {
|
|
45
|
+
const geminiState = { sawMessage: false };
|
|
45
46
|
const events = readJsonLines(child.stdout);
|
|
46
47
|
for await (const raw of events) {
|
|
47
48
|
if (opts.abortSignal.aborted)
|
|
48
49
|
break;
|
|
49
50
|
const event = raw;
|
|
50
|
-
const mapped = mapGeminiEvent(event, buffer);
|
|
51
|
+
const mapped = mapGeminiEvent(event, buffer, geminiState);
|
|
51
52
|
for (const ev of mapped.events) {
|
|
52
53
|
yield ev;
|
|
53
54
|
}
|
|
@@ -97,11 +98,15 @@ async function createGeminiWorkspace(chatId) {
|
|
|
97
98
|
await writeFile(join(geminiDir, 'settings.json'), JSON.stringify(settings, null, 2));
|
|
98
99
|
return root;
|
|
99
100
|
}
|
|
100
|
-
function mapGeminiEvent(event, buffer) {
|
|
101
|
+
function mapGeminiEvent(event, buffer, state) {
|
|
101
102
|
const events = [];
|
|
102
103
|
let finish;
|
|
103
104
|
switch (event.type) {
|
|
104
105
|
case 'message': {
|
|
106
|
+
if (!state.sawMessage && event.role !== 'user') {
|
|
107
|
+
state.sawMessage = true;
|
|
108
|
+
events.push({ type: 'activity', payload: { phase: 'thinking' } });
|
|
109
|
+
}
|
|
105
110
|
const text = event.delta ?? event.content ?? '';
|
|
106
111
|
if (text && event.role !== 'user') {
|
|
107
112
|
buffer.text += text;
|
|
@@ -122,6 +127,10 @@ function mapGeminiEvent(event, buffer) {
|
|
|
122
127
|
type: 'tool-call',
|
|
123
128
|
payload: { id: tc.id, name: tc.name, input: tc.input },
|
|
124
129
|
});
|
|
130
|
+
events.push({
|
|
131
|
+
type: 'activity',
|
|
132
|
+
payload: { phase: 'tool-running', detail: tc.name },
|
|
133
|
+
});
|
|
125
134
|
break;
|
|
126
135
|
}
|
|
127
136
|
case 'tool_result': {
|
|
@@ -129,13 +138,14 @@ function mapGeminiEvent(event, buffer) {
|
|
|
129
138
|
const content = typeof event.output === 'string'
|
|
130
139
|
? event.output
|
|
131
140
|
: JSON.stringify(event.output ?? '');
|
|
132
|
-
const ok = event.ok !== false;
|
|
141
|
+
const ok = isToolOutputOk(event.output) && event.ok !== false;
|
|
133
142
|
const tc = buffer.toolCalls.find((c) => c.id === id);
|
|
134
143
|
if (tc) {
|
|
135
144
|
tc.result = { ok, content };
|
|
136
145
|
tc.status = ok ? 'success' : 'error';
|
|
137
146
|
}
|
|
138
147
|
events.push({ type: 'tool-result', payload: { id, ok, content } });
|
|
148
|
+
events.push({ type: 'activity', payload: { phase: 'thinking' } });
|
|
139
149
|
break;
|
|
140
150
|
}
|
|
141
151
|
case 'error': {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"gemini-account.js","sourceRoot":"","sources":["../../../src/ui/agent/gemini-account.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AACjC,OAAO,EAAE,MAAM,EAAE,MAAM,SAAS,CAAC;AACjC,OAAO,EAAE,KAAK,EAAE,MAAM,oBAAoB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAEzC,OAAO,EAAE,gBAAgB,EAAE,MAAM,2BAA2B,CAAC;AAC7D,OAAO,EAAE,oBAAoB,EAAE,MAAM,oBAAoB,CAAC;AAC1D,OAAO,EACL,sBAAsB,
|
|
1
|
+
{"version":3,"file":"gemini-account.js","sourceRoot":"","sources":["../../../src/ui/agent/gemini-account.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,12 +12,31 @@ export interface ToolCallPersist {
|
|
|
12
12
|
};
|
|
13
13
|
status: 'pending' | 'success' | 'error';
|
|
14
14
|
}
|
|
15
|
+
export type PlanStepStatus = 'pending' | 'running' | 'done' | 'error';
|
|
16
|
+
export interface PlanStepView {
|
|
17
|
+
id: string;
|
|
18
|
+
tool: string;
|
|
19
|
+
rationale?: string;
|
|
20
|
+
status: PlanStepStatus;
|
|
21
|
+
}
|
|
22
|
+
export interface PlanView {
|
|
23
|
+
summary: string;
|
|
24
|
+
steps: PlanStepView[];
|
|
25
|
+
}
|
|
26
|
+
export type StreamActivityPhase = 'planning' | 'thinking' | 'tool-running';
|
|
27
|
+
export interface StreamActivityPayload {
|
|
28
|
+
phase: StreamActivityPhase;
|
|
29
|
+
detail?: string;
|
|
30
|
+
}
|
|
15
31
|
export interface AssistantBuffer {
|
|
16
32
|
text: string;
|
|
17
33
|
toolCalls: ToolCallPersist[];
|
|
34
|
+
reasoning?: string;
|
|
35
|
+
/** Present only for Action Plan (beta) runs; persisted so it survives reload. */
|
|
36
|
+
plan?: PlanView;
|
|
18
37
|
}
|
|
19
38
|
export interface RunChatStreamEvent {
|
|
20
|
-
type: 'text-delta' | 'tool-call' | 'tool-result' | 'finish' | 'error';
|
|
39
|
+
type: 'text-delta' | 'reasoning-delta' | 'activity' | 'tool-call' | 'tool-result' | 'finish' | 'error' | 'plan' | 'plan-partial' | 'plan-step' | 'plan-repair';
|
|
21
40
|
payload: unknown;
|
|
22
41
|
}
|
|
23
42
|
export interface RunChatFinishInfo {
|
|
@@ -25,6 +44,12 @@ export interface RunChatFinishInfo {
|
|
|
25
44
|
cost?: UsageCost;
|
|
26
45
|
}
|
|
27
46
|
export declare function stringifyToolOutput(output: unknown): string;
|
|
47
|
+
/** Parse structured tool envelopes from raw MCP / SDK output. */
|
|
48
|
+
export declare function parseToolEnvelope(output: unknown): Record<string, unknown> | null;
|
|
49
|
+
/** Whether a tool output represents success (not an error envelope or MCP error flag). */
|
|
50
|
+
export declare function isToolOutputOk(output: unknown): boolean;
|
|
51
|
+
/** Prefer envelope `message` for repair / error display. */
|
|
52
|
+
export declare function toolFailureMessage(output: unknown, fallback: string): string;
|
|
28
53
|
export declare function computeCost(usage: LanguageModelUsage, pricing: ModelPricing): UsageCost;
|
|
29
54
|
export declare function buildPromptWithHistory(history: ModelMessage[], prompt: string): string;
|
|
30
55
|
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/ui/agent/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAExE,YAAY,EAAE,SAAS,EAAE,CAAC;AAC1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,IAAI,CAAC;AAE7C,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;
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../src/ui/agent/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AACvC,OAAO,KAAK,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAC;AAExE,YAAY,EAAE,SAAS,EAAE,CAAC;AAC1B,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,IAAI,CAAC;AAE7C,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,MAAM,cAAc,GAAG,SAAS,GAAG,SAAS,GAAG,MAAM,GAAG,OAAO,CAAC;AAEtE,MAAM,WAAW,YAAY;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,cAAc,CAAC;CACxB;AAED,MAAM,WAAW,QAAQ;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,YAAY,EAAE,CAAC;CACvB;AAED,MAAM,MAAM,mBAAmB,GAAG,UAAU,GAAG,UAAU,GAAG,cAAc,CAAC;AAE3E,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,mBAAmB,CAAC;IAC3B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,eAAe,EAAE,CAAC;IAC7B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iFAAiF;IACjF,IAAI,CAAC,EAAE,QAAQ,CAAC;CACjB;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,EACA,YAAY,GACZ,iBAAiB,GACjB,UAAU,GACV,WAAW,GACX,aAAa,GACb,QAAQ,GACR,OAAO,GACP,MAAM,GACN,cAAc,GACd,WAAW,GACX,aAAa,CAAC;IAClB,OAAO,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,iBAAiB;IAChC,KAAK,EAAE,kBAAkB,CAAC;IAC1B,IAAI,CAAC,EAAE,SAAS,CAAC;CAClB;AAED,wBAAgB,mBAAmB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAiB3D;AAED,iEAAiE;AACjE,wBAAgB,iBAAiB,CAAC,MAAM,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CA0BjF;AAED,0FAA0F;AAC1F,wBAAgB,cAAc,CAAC,MAAM,EAAE,OAAO,GAAG,OAAO,CAmBvD;AAED,4DAA4D;AAC5D,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAM5E;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,kBAAkB,EAAE,OAAO,EAAE,YAAY,GAAG,SAAS,CAuBvF;AAED,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,YAAY,EAAE,EAAE,MAAM,EAAE,MAAM,GAAG,MAAM,CAkBtF"}
|
package/dist/ui/agent/shared.js
CHANGED
|
@@ -19,6 +19,67 @@ export function stringifyToolOutput(output) {
|
|
|
19
19
|
return String(output);
|
|
20
20
|
}
|
|
21
21
|
}
|
|
22
|
+
/** Parse structured tool envelopes from raw MCP / SDK output. */
|
|
23
|
+
export function parseToolEnvelope(output) {
|
|
24
|
+
if (output && typeof output === 'object' && !Array.isArray(output)) {
|
|
25
|
+
if ('content' in output) {
|
|
26
|
+
const text = stringifyToolOutput(output);
|
|
27
|
+
try {
|
|
28
|
+
const fromText = JSON.parse(text);
|
|
29
|
+
if (fromText && typeof fromText === 'object' && !Array.isArray(fromText)) {
|
|
30
|
+
return fromText;
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
catch {
|
|
34
|
+
return null;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
return output;
|
|
38
|
+
}
|
|
39
|
+
if (typeof output === 'string') {
|
|
40
|
+
try {
|
|
41
|
+
const parsed = JSON.parse(output);
|
|
42
|
+
if (parsed && typeof parsed === 'object' && !Array.isArray(parsed)) {
|
|
43
|
+
return parsed;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
return null;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
return null;
|
|
51
|
+
}
|
|
52
|
+
/** Whether a tool output represents success (not an error envelope or MCP error flag). */
|
|
53
|
+
export function isToolOutputOk(output) {
|
|
54
|
+
if (output == null)
|
|
55
|
+
return true;
|
|
56
|
+
if (typeof output === 'object' && output !== null) {
|
|
57
|
+
const obj = output;
|
|
58
|
+
if (obj.is_error === true || obj.isError === true)
|
|
59
|
+
return false;
|
|
60
|
+
if ('error' in obj && obj.error)
|
|
61
|
+
return false;
|
|
62
|
+
if (obj.ok === false)
|
|
63
|
+
return false;
|
|
64
|
+
const envelope = parseToolEnvelope(output);
|
|
65
|
+
if (envelope?.ok === false)
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
if (typeof output === 'string') {
|
|
69
|
+
const envelope = parseToolEnvelope(output);
|
|
70
|
+
if (envelope?.ok === false)
|
|
71
|
+
return false;
|
|
72
|
+
}
|
|
73
|
+
return true;
|
|
74
|
+
}
|
|
75
|
+
/** Prefer envelope `message` for repair / error display. */
|
|
76
|
+
export function toolFailureMessage(output, fallback) {
|
|
77
|
+
const envelope = parseToolEnvelope(output);
|
|
78
|
+
if (envelope && envelope.ok === false && typeof envelope.message === 'string') {
|
|
79
|
+
return envelope.message;
|
|
80
|
+
}
|
|
81
|
+
return fallback;
|
|
82
|
+
}
|
|
22
83
|
export function computeCost(usage, pricing) {
|
|
23
84
|
const cacheRead = usage.inputTokenDetails?.cacheReadTokens ?? 0;
|
|
24
85
|
const cacheWrite = usage.inputTokenDetails?.cacheWriteTokens ?? 0;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/ui/agent/shared.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/ui/agent/shared.ts"],"names":[],"mappings":"AAgEA,MAAM,UAAU,mBAAmB,CAAC,MAAe;IACjD,IAAI,MAAM,IAAI,IAAI;QAAE,OAAO,EAAE,CAAC;IAC9B,IAAI,OAAO,MAAM,KAAK,QAAQ;QAAE,OAAO,MAAM,CAAC;IAC9C,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;QACzE,MAAM,OAAO,GAAI,MAAgE,CAAC,OAAO,CAAC;QAC1F,IAAI,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,EAAE,CAAC;YAC3B,OAAO,OAAO;iBACX,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,IAAI,EAAE,CAAC,CAAC;iBACvD,MAAM,CAAC,OAAO,CAAC;iBACf,IAAI,CAAC,IAAI,CAAC,CAAC;QAChB,CAAC;IACH,CAAC;IACD,IAAI,CAAC;QACH,OAAO,IAAI,CAAC,SAAS,CAAC,MAAM,CAAC,CAAC;IAChC,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,MAAM,CAAC,MAAM,CAAC,CAAC;IACxB,CAAC;AACH,CAAC;AAED,iEAAiE;AACjE,MAAM,UAAU,iBAAiB,CAAC,MAAe;IAC/C,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;QACnE,IAAI,SAAS,IAAI,MAAM,EAAE,CAAC;YACxB,MAAM,IAAI,GAAG,mBAAmB,CAAC,MAAM,CAAC,CAAC;YACzC,IAAI,CAAC;gBACH,MAAM,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAY,CAAC;gBAC7C,IAAI,QAAQ,IAAI,OAAO,QAAQ,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;oBACzE,OAAO,QAAmC,CAAC;gBAC7C,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,OAAO,IAAI,CAAC;YACd,CAAC;QACH,CAAC;QACD,OAAO,MAAiC,CAAC;IAC3C,CAAC;IACD,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,IAAI,CAAC;YACH,MAAM,MAAM,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAY,CAAC;YAC7C,IAAI,MAAM,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC;gBACnE,OAAO,MAAiC,CAAC;YAC3C,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC;AAED,0FAA0F;AAC1F,MAAM,UAAU,cAAc,CAAC,MAAe;IAC5C,IAAI,MAAM,IAAI,IAAI;QAAE,OAAO,IAAI,CAAC;IAEhC,IAAI,OAAO,MAAM,KAAK,QAAQ,IAAI,MAAM,KAAK,IAAI,EAAE,CAAC;QAClD,MAAM,GAAG,GAAG,MAAiC,CAAC;QAC9C,IAAI,GAAG,CAAC,QAAQ,KAAK,IAAI,IAAI,GAAG,CAAC,OAAO,KAAK,IAAI;YAAE,OAAO,KAAK,CAAC;QAChE,IAAI,OAAO,IAAI,GAAG,IAAI,GAAG,CAAC,KAAK;YAAE,OAAO,KAAK,CAAC;QAC9C,IAAI,GAAG,CAAC,EAAE,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC;QAEnC,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,QAAQ,EAAE,EAAE,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC;IAC3C,CAAC;IAED,IAAI,OAAO,MAAM,KAAK,QAAQ,EAAE,CAAC;QAC/B,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;QAC3C,IAAI,QAAQ,EAAE,EAAE,KAAK,KAAK;YAAE,OAAO,KAAK,CAAC;IAC3C,CAAC;IAED,OAAO,IAAI,CAAC;AACd,CAAC;AAED,4DAA4D;AAC5D,MAAM,UAAU,kBAAkB,CAAC,MAAe,EAAE,QAAgB;IAClE,MAAM,QAAQ,GAAG,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAC3C,IAAI,QAAQ,IAAI,QAAQ,CAAC,EAAE,KAAK,KAAK,IAAI,OAAO,QAAQ,CAAC,OAAO,KAAK,QAAQ,EAAE,CAAC;QAC9E,OAAO,QAAQ,CAAC,OAAO,CAAC;IAC1B,CAAC;IACD,OAAO,QAAQ,CAAC;AAClB,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,KAAyB,EAAE,OAAqB;IAC1E,MAAM,SAAS,GAAG,KAAK,CAAC,iBAAiB,EAAE,eAAe,IAAI,CAAC,CAAC;IAChE,MAAM,UAAU,GAAG,KAAK,CAAC,iBAAiB,EAAE,gBAAgB,IAAI,CAAC,CAAC;IAClE,MAAM,UAAU,GAAG,KAAK,CAAC,WAAW,IAAI,CAAC,CAAC;IAC1C,MAAM,OAAO,GACX,KAAK,CAAC,iBAAiB,EAAE,aAAa;QACtC,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,UAAU,CAAC,CAAC;IACnD,MAAM,MAAM,GAAG,KAAK,CAAC,YAAY,IAAI,CAAC,CAAC;IAEvC,MAAM,QAAQ,GAAG,CAAC,OAAO,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,eAAe,CAAC;IACjE,MAAM,SAAS,GAAG,CAAC,MAAM,GAAG,SAAS,CAAC,GAAG,OAAO,CAAC,gBAAgB,CAAC;IAClE,MAAM,aAAa,GACjB,CAAC,SAAS,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,qBAAqB,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;IACvF,MAAM,cAAc,GAClB,CAAC,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,OAAO,CAAC,qBAAqB,IAAI,OAAO,CAAC,eAAe,CAAC,CAAC;IAExF,OAAO;QACL,QAAQ,EAAE,QAAQ,GAAG,SAAS,GAAG,aAAa,GAAG,cAAc;QAC/D,QAAQ;QACR,SAAS;QACT,aAAa;QACb,cAAc;KACf,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,sBAAsB,CAAC,OAAuB,EAAE,MAAc;IAC5E,MAAM,KAAK,GAAa,EAAE,CAAC;IAC3B,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,IAAI,GACR,OAAO,CAAC,CAAC,OAAO,KAAK,QAAQ;YAC3B,CAAC,CAAC,CAAC,CAAC,OAAO;YACX,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,OAAO,CAAC;gBACxB,CAAC,CAAC,CAAC,CAAC,OAAO;qBACN,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,MAAM,IAAI,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;qBAChD,MAAM,CAAC,OAAO,CAAC;qBACf,IAAI,CAAC,IAAI,CAAC;gBACf,CAAC,CAAC,EAAE,CAAC;QACX,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;QAC5B,IAAI,CAAC,OAAO;YAAE,SAAS;QACvB,KAAK,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,WAAW,KAAK,OAAO,EAAE,CAAC,CAAC;IACxE,CAAC;IACD,KAAK,CAAC,IAAI,CAAC,SAAS,MAAM,EAAE,CAAC,CAAC;IAC9B,OAAO,KAAK,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;AAC5B,CAAC"}
|
package/dist/ui/agent.d.ts
CHANGED
|
@@ -18,6 +18,7 @@ export interface RunChatOptions {
|
|
|
18
18
|
onFinish?: (info: RunChatFinishInfo) => void;
|
|
19
19
|
}
|
|
20
20
|
export declare const PHOTOSHOP_SYSTEM_PROMPT: string;
|
|
21
|
+
export declare const ACTION_PLAN_SYSTEM_PROMPT: string;
|
|
21
22
|
export declare function runChat(opts: RunChatOptions): AsyncGenerator<RunChatStreamEvent>;
|
|
22
23
|
export declare function buildHistory(messages: Array<{
|
|
23
24
|
role: 'user' | 'assistant';
|
package/dist/ui/agent.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/ui/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAE3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"agent.d.ts","sourceRoot":"","sources":["../../src/ui/agent.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,kBAAkB,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAE3D,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;AACvD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAM/D,OAAO,EACL,WAAW,EACX,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,eAAe,EACpB,KAAK,SAAS,EACf,MAAM,mBAAmB,CAAC;AAE3B,YAAY,EAAE,eAAe,EAAE,iBAAiB,EAAE,kBAAkB,EAAE,eAAe,EAAE,SAAS,EAAE,CAAC;AACnG,OAAO,EAAE,WAAW,EAAE,CAAC;AAEvB,MAAM,WAAW,cAAc;IAC7B,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,YAAY,EAAE,CAAC;IACxB,QAAQ,EAAE,eAAe,CAAC;IAC1B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,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,eAAO,MAAM,yBAAyB,QAa9B,CAAC;AAET,wBAAuB,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,cAAc,CAAC,kBAAkB,CAAC,CA0EvF;AAED,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,CAQhB;AAED,YAAY,EAAE,kBAAkB,EAAE,CAAC"}
|
package/dist/ui/agent.js
CHANGED
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
import { buildPhotoshopInstructions } from '../prompts/instructions.js';
|
|
2
|
+
import { runChatViaActionPlan } from './agent/action-plan.js';
|
|
2
3
|
import { runChatViaApiKey } from './agent/api-key.js';
|
|
3
4
|
import { runChatViaClaudeAccount } from './agent/claude-account.js';
|
|
4
5
|
import { runChatViaGeminiAccount } from './agent/gemini-account.js';
|
|
6
|
+
import { loadConfig } from './config.js';
|
|
5
7
|
import { computeCost, } from './agent/shared.js';
|
|
6
8
|
export { computeCost };
|
|
7
9
|
export const PHOTOSHOP_SYSTEM_PROMPT = `
|
|
@@ -19,8 +21,42 @@ Additional UI constraints:
|
|
|
19
21
|
- Only Photoshop MCP tools are available. Do not attempt shell, filesystem,
|
|
20
22
|
web, or general coding operations; respond in natural language instead.
|
|
21
23
|
`.trim();
|
|
24
|
+
export const ACTION_PLAN_SYSTEM_PROMPT = `
|
|
25
|
+
${PHOTOSHOP_SYSTEM_PROMPT}
|
|
26
|
+
|
|
27
|
+
You are operating in Action Plan mode. Analyze the full user request and produce a
|
|
28
|
+
single ordered plan that COMPLETES the entire outcome. The executor runs your plan
|
|
29
|
+
literally with no further LLM turns between steps — anything you omit will not happen.
|
|
30
|
+
|
|
31
|
+
Planning rules:
|
|
32
|
+
- Include every tool call required to deliver the requested end state, not a partial subset.
|
|
33
|
+
- After meaningful visual edits, include photoshop_get_preview when the user expects to see the result.
|
|
34
|
+
- Prefer photoshop_recipe_* tools over long atomic chains when the request matches a recipe purpose.
|
|
35
|
+
- A recipe that already performs a sub-task replaces its atomic equivalent — do not duplicate work.
|
|
36
|
+
- Use "$steps.<stepId>.<dot.path>" placeholders for values produced by earlier steps.
|
|
37
|
+
`.trim();
|
|
22
38
|
export async function* runChat(opts) {
|
|
23
39
|
const authMethod = opts.authMethod ?? 'api_key';
|
|
40
|
+
const actionPlanBeta = loadConfig().actionPlanBeta;
|
|
41
|
+
// Plan-and-execute needs generateObject (API key). Direct MCP execution does not
|
|
42
|
+
// need the subscription SDK, so honor the beta toggle whenever a key exists —
|
|
43
|
+
// even if the provider's active auth method is cli_account.
|
|
44
|
+
if (actionPlanBeta && opts.apiKey) {
|
|
45
|
+
yield* runChatViaActionPlan({
|
|
46
|
+
prompt: opts.prompt,
|
|
47
|
+
history: opts.history,
|
|
48
|
+
provider: opts.provider,
|
|
49
|
+
apiKey: opts.apiKey,
|
|
50
|
+
modelId: opts.modelId,
|
|
51
|
+
chatId: opts.chatId,
|
|
52
|
+
authMethod,
|
|
53
|
+
systemPrompt: ACTION_PLAN_SYSTEM_PROMPT,
|
|
54
|
+
abortSignal: opts.abortSignal,
|
|
55
|
+
onAssistantBuffer: opts.onAssistantBuffer,
|
|
56
|
+
onFinish: opts.onFinish,
|
|
57
|
+
});
|
|
58
|
+
return;
|
|
59
|
+
}
|
|
24
60
|
if (authMethod === 'cli_account') {
|
|
25
61
|
if (opts.provider.id === 'anthropic') {
|
|
26
62
|
yield* runChatViaClaudeAccount({
|
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,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,OAAO,EAAE,uBAAuB,EAAE,MAAM,2BAA2B,CAAC;AACpE,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,KAAK,SAAS,CAAC,CAAC,OAAO,CAAC,IAAoB;IACjD,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,IAAI,SAAS,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
|
@@ -4,8 +4,9 @@ import { dirname, join } from 'node:path';
|
|
|
4
4
|
import { fileURLToPath } from 'node:url';
|
|
5
5
|
import getPort from 'get-port';
|
|
6
6
|
import open from 'open';
|
|
7
|
-
import {
|
|
7
|
+
import { capture, ensureAnalyticsIdentity, shutdownAnalytics } from '../analytics/index.js';
|
|
8
8
|
import { Logger } from '../utils/logger.js';
|
|
9
|
+
import { startUIServer } from './server.js';
|
|
9
10
|
// dist/ui/cli.js -> ../../package.json
|
|
10
11
|
const __dirname = dirname(fileURLToPath(import.meta.url));
|
|
11
12
|
const PKG_VERSION = (() => {
|
|
@@ -66,11 +67,19 @@ function printVersion() {
|
|
|
66
67
|
async function main() {
|
|
67
68
|
const logger = new Logger('UI');
|
|
68
69
|
const flags = parseFlags(process.argv.slice(2));
|
|
70
|
+
ensureAnalyticsIdentity();
|
|
69
71
|
const port = flags.port ?? (await getPort({ port: [5174, 5175, 5176, 5180] }));
|
|
70
72
|
const server = await startUIServer({
|
|
71
73
|
host: flags.host,
|
|
72
74
|
port,
|
|
73
75
|
});
|
|
76
|
+
capture('ui_server_started', {
|
|
77
|
+
app_version: PKG_VERSION,
|
|
78
|
+
port,
|
|
79
|
+
host: flags.host,
|
|
80
|
+
no_open: flags.noOpen,
|
|
81
|
+
event_source: 'server',
|
|
82
|
+
});
|
|
74
83
|
const url = server.url;
|
|
75
84
|
process.stdout.write(`\nPhotoshop MCP UI ready at:\n ${url}\n\n`);
|
|
76
85
|
if (!flags.noOpen) {
|
|
@@ -84,6 +93,7 @@ async function main() {
|
|
|
84
93
|
const shutdown = async (signal) => {
|
|
85
94
|
logger.info(`Received ${signal}, shutting down`);
|
|
86
95
|
await server.close();
|
|
96
|
+
await shutdownAnalytics();
|
|
87
97
|
process.exit(0);
|
|
88
98
|
};
|
|
89
99
|
process.on('SIGINT', () => shutdown('SIGINT'));
|
package/dist/ui/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/ui/cli.ts"],"names":[],"mappings":";AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AACvC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AACzC,OAAO,OAAO,MAAM,UAAU,CAAC;AAC/B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/ui/cli.ts"],"names":[],"mappings":"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"}
|
package/dist/ui/config.d.ts
CHANGED
|
@@ -11,6 +11,12 @@ export interface UIConfig {
|
|
|
11
11
|
providers: Partial<Record<ProviderId, ProviderConfig>>;
|
|
12
12
|
activeProvider: ProviderId;
|
|
13
13
|
activeModel: string;
|
|
14
|
+
/**
|
|
15
|
+
* Beta: when enabled (and the active provider uses api_key auth), a single
|
|
16
|
+
* planning LLM call produces an ordered tool plan that is executed directly,
|
|
17
|
+
* instead of the per-step ReAct loop. Defaults to off (backward compatible).
|
|
18
|
+
*/
|
|
19
|
+
actionPlanBeta?: boolean;
|
|
14
20
|
}
|
|
15
21
|
export declare function loadConfig(): UIConfig;
|
|
16
22
|
export declare function saveConfig(patch: Partial<UIConfig>): UIConfig;
|
|
@@ -18,6 +24,5 @@ export declare function setProviderConfig(id: ProviderId, patch: ProviderConfig)
|
|
|
18
24
|
export declare function getProviderConfig(id: ProviderId): ProviderConfig | undefined;
|
|
19
25
|
export declare function getAuthMethod(id: ProviderId): AuthMethod;
|
|
20
26
|
export declare function isProviderConfigAuthenticated(id: ProviderId): boolean;
|
|
21
|
-
export declare function probeProviderAuthentication(id: ProviderId): Promise<boolean>;
|
|
22
27
|
export declare function maskApiKey(apiKey?: string): string | null;
|
|
23
28
|
//# sourceMappingURL=config.d.ts.map
|
package/dist/ui/config.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/ui/config.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"config.d.ts","sourceRoot":"","sources":["../../src/ui/config.ts"],"names":[],"mappings":"AAEA,MAAM,MAAM,UAAU,GAAG,WAAW,GAAG,QAAQ,GAAG,YAAY,GAAG,QAAQ,CAAC;AAC1E,MAAM,MAAM,UAAU,GAAG,SAAS,GAAG,aAAa,CAAC;AAEnD,MAAM,WAAW,cAAc;IAC7B,UAAU,CAAC,EAAE,UAAU,CAAC;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,QAAQ;IACvB,SAAS,EAAE,OAAO,CAAC,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC,CAAC;IACvD,cAAc,EAAE,UAAU,CAAC;IAC3B,WAAW,EAAE,MAAM,CAAC;IACpB;;;;OAIG;IACH,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAWD,wBAAgB,UAAU,IAAI,QAAQ,CAQrC;AAED,wBAAgB,UAAU,CAAC,KAAK,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG,QAAQ,CAS7D;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,UAAU,EAAE,KAAK,EAAE,cAAc,GAAG,QAAQ,CAMjF;AAED,wBAAgB,iBAAiB,CAAC,EAAE,EAAE,UAAU,GAAG,cAAc,GAAG,SAAS,CAE5E;AAED,wBAAgB,aAAa,CAAC,EAAE,EAAE,UAAU,GAAG,UAAU,CAExD;AAED,wBAAgB,6BAA6B,CAAC,EAAE,EAAE,UAAU,GAAG,OAAO,CAKrE;AAED,wBAAgB,UAAU,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAIzD"}
|
package/dist/ui/config.js
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { getProvider } from './providers/registry.js';
|
|
2
1
|
import { kvGet, kvSet } from './store/kv.js';
|
|
3
2
|
const KV_KEY = 'config';
|
|
4
3
|
const DEFAULT_CONFIG = {
|
|
5
4
|
providers: {},
|
|
6
5
|
activeProvider: 'anthropic',
|
|
7
6
|
activeModel: 'claude-sonnet-4-5',
|
|
7
|
+
actionPlanBeta: false,
|
|
8
8
|
};
|
|
9
9
|
export function loadConfig() {
|
|
10
10
|
const stored = kvGet(KV_KEY);
|
|
@@ -46,17 +46,6 @@ export function isProviderConfigAuthenticated(id) {
|
|
|
46
46
|
return Boolean(cfg?.apiKey);
|
|
47
47
|
return Boolean(cfg?.cliAccountLabel);
|
|
48
48
|
}
|
|
49
|
-
export async function probeProviderAuthentication(id) {
|
|
50
|
-
const cfg = getProviderConfig(id);
|
|
51
|
-
const authMethod = cfg?.authMethod ?? 'api_key';
|
|
52
|
-
if (authMethod === 'api_key')
|
|
53
|
-
return Boolean(cfg?.apiKey);
|
|
54
|
-
const provider = getProvider(id);
|
|
55
|
-
if (!provider?.validateCliAccount)
|
|
56
|
-
return false;
|
|
57
|
-
const check = await provider.validateCliAccount({ cliPath: cfg?.cliPath });
|
|
58
|
-
return check.ok;
|
|
59
|
-
}
|
|
60
49
|
export function maskApiKey(apiKey) {
|
|
61
50
|
if (!apiKey)
|
|
62
51
|
return null;
|
package/dist/ui/config.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/ui/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/ui/config.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AAyB7C,MAAM,MAAM,GAAG,QAAQ,CAAC;AAExB,MAAM,cAAc,GAAa;IAC/B,SAAS,EAAE,EAAE;IACb,cAAc,EAAE,WAAW;IAC3B,WAAW,EAAE,mBAAmB;IAChC,cAAc,EAAE,KAAK;CACtB,CAAC;AAEF,MAAM,UAAU,UAAU;IACxB,MAAM,MAAM,GAAG,KAAK,CAAW,MAAM,CAAC,CAAC;IACvC,IAAI,CAAC,MAAM;QAAE,OAAO,EAAE,GAAG,cAAc,EAAE,SAAS,EAAE,EAAE,EAAE,CAAC;IACzD,OAAO;QACL,GAAG,cAAc;QACjB,GAAG,MAAM;QACT,SAAS,EAAE,EAAE,GAAG,MAAM,CAAC,SAAS,EAAE;KACnC,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,KAAwB;IACjD,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,IAAI,GAAa;QACrB,GAAG,OAAO;QACV,GAAG,KAAK;QACR,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,GAAG,CAAC,KAAK,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE;KAChE,CAAC;IACF,KAAK,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACpB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,EAAc,EAAE,KAAqB;IACrE,MAAM,OAAO,GAAG,UAAU,EAAE,CAAC;IAC7B,MAAM,MAAM,GAAmB,EAAE,GAAG,OAAO,CAAC,SAAS,CAAC,EAAE,CAAC,EAAE,GAAG,KAAK,EAAE,CAAC;IACtE,OAAO,UAAU,CAAC;QAChB,SAAS,EAAE,EAAE,GAAG,OAAO,CAAC,SAAS,EAAE,CAAC,EAAE,CAAC,EAAE,MAAM,EAAE;KAClD,CAAC,CAAC;AACL,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,EAAc;IAC9C,OAAO,UAAU,EAAE,CAAC,SAAS,CAAC,EAAE,CAAC,CAAC;AACpC,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,EAAc;IAC1C,OAAO,iBAAiB,CAAC,EAAE,CAAC,EAAE,UAAU,IAAI,SAAS,CAAC;AACxD,CAAC;AAED,MAAM,UAAU,6BAA6B,CAAC,EAAc;IAC1D,MAAM,GAAG,GAAG,iBAAiB,CAAC,EAAE,CAAC,CAAC;IAClC,MAAM,UAAU,GAAG,GAAG,EAAE,UAAU,IAAI,SAAS,CAAC;IAChD,IAAI,UAAU,KAAK,SAAS;QAAE,OAAO,OAAO,CAAC,GAAG,EAAE,MAAM,CAAC,CAAC;IAC1D,OAAO,OAAO,CAAC,GAAG,EAAE,eAAe,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,MAAe;IACxC,IAAI,CAAC,MAAM;QAAE,OAAO,IAAI,CAAC;IACzB,IAAI,MAAM,CAAC,MAAM,IAAI,EAAE;QAAE,OAAO,KAAK,CAAC;IACtC,OAAO,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC;AACvD,CAAC"}
|