@superblocksteam/vite-plugin-file-sync 2.0.72-next.11 → 2.0.72-next.14
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/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts +2 -1
- package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts.map +1 -1
- package/dist/ai-service/agent/prompts/build-base-system-prompt.js +18 -2
- package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
- package/dist/ai-service/agent/subagents/testing/index.d.ts +3 -0
- package/dist/ai-service/agent/subagents/testing/index.d.ts.map +1 -0
- package/dist/ai-service/agent/subagents/testing/index.js +2 -0
- package/dist/ai-service/agent/subagents/testing/index.js.map +1 -0
- package/dist/ai-service/agent/subagents/testing/prompt-builder.d.ts +10 -0
- package/dist/ai-service/agent/subagents/testing/prompt-builder.d.ts.map +1 -0
- package/dist/ai-service/agent/subagents/testing/prompt-builder.js +162 -0
- package/dist/ai-service/agent/subagents/testing/prompt-builder.js.map +1 -0
- package/dist/ai-service/agent/subagents/testing/types.d.ts +67 -0
- package/dist/ai-service/agent/subagents/testing/types.d.ts.map +1 -0
- package/dist/ai-service/agent/subagents/testing/types.js +2 -0
- package/dist/ai-service/agent/subagents/testing/types.js.map +1 -0
- package/dist/ai-service/agent/subagents/types.d.ts +9 -8
- package/dist/ai-service/agent/subagents/types.d.ts.map +1 -1
- package/dist/ai-service/agent/subagents/types.js +9 -9
- package/dist/ai-service/agent/subagents/types.js.map +1 -1
- package/dist/ai-service/agent/tool-message-utils.d.ts +7 -2
- package/dist/ai-service/agent/tool-message-utils.d.ts.map +1 -1
- package/dist/ai-service/agent/tool-message-utils.js +21 -2
- package/dist/ai-service/agent/tool-message-utils.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/api-source.d.ts +1 -1
- package/dist/ai-service/agent/tools/apis/api-source.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/api-source.js +37 -9
- package/dist/ai-service/agent/tools/apis/api-source.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/test-api.js +1 -1
- package/dist/ai-service/agent/tools/apis/test-api.js.map +1 -1
- package/dist/ai-service/agent/tools/build-capture-screenshot.d.ts +1 -0
- package/dist/ai-service/agent/tools/build-capture-screenshot.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-capture-screenshot.js +4 -2
- package/dist/ai-service/agent/tools/build-capture-screenshot.js.map +1 -1
- package/dist/ai-service/agent/tools/build-delete-file.d.ts +1 -1
- package/dist/ai-service/agent/tools/build-manage-checklist.d.ts +1 -1
- package/dist/ai-service/agent/tools/{build-read-files.d.ts → build-read-file.d.ts} +10 -6
- package/dist/ai-service/agent/tools/build-read-file.d.ts.map +1 -0
- package/dist/ai-service/agent/tools/build-read-file.js +139 -0
- package/dist/ai-service/agent/tools/build-read-file.js.map +1 -0
- package/dist/ai-service/agent/tools/build-reload-file.d.ts +9 -3
- package/dist/ai-service/agent/tools/build-reload-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-reload-file.js +20 -9
- package/dist/ai-service/agent/tools/build-reload-file.js.map +1 -1
- package/dist/ai-service/agent/tools/get-console-logs.js +1 -1
- package/dist/ai-service/agent/tools/get-console-logs.js.map +1 -1
- package/dist/ai-service/agent/tools/get-runtime-errors.js +1 -1
- package/dist/ai-service/agent/tools/get-runtime-errors.js.map +1 -1
- package/dist/ai-service/agent/tools/index.d.ts +5 -1
- package/dist/ai-service/agent/tools/index.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/index.js +5 -1
- package/dist/ai-service/agent/tools/index.js.map +1 -1
- package/dist/ai-service/agent/tools/integrations/execute-request.d.ts +1 -1
- package/dist/ai-service/agent/tools/integrations/internal.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/integrations/internal.js +8 -1
- package/dist/ai-service/agent/tools/integrations/internal.js.map +1 -1
- package/dist/ai-service/agent/tools.d.ts.map +1 -1
- package/dist/ai-service/agent/tools.js +124 -31
- package/dist/ai-service/agent/tools.js.map +1 -1
- package/dist/ai-service/agent/tools2/access-control.d.ts +23 -1
- package/dist/ai-service/agent/tools2/access-control.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/access-control.js +67 -1
- package/dist/ai-service/agent/tools2/access-control.js.map +1 -1
- package/dist/ai-service/agent/tools2/entity-permissions.d.ts +26 -0
- package/dist/ai-service/agent/tools2/entity-permissions.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/entity-permissions.js +15 -0
- package/dist/ai-service/agent/tools2/entity-permissions.js.map +1 -1
- package/dist/ai-service/agent/tools2/example.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/example.js +2 -4
- package/dist/ai-service/agent/tools2/example.js.map +1 -1
- package/dist/ai-service/agent/tools2/index.d.ts +1 -1
- package/dist/ai-service/agent/tools2/index.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/index.js +1 -1
- package/dist/ai-service/agent/tools2/index.js.map +1 -1
- package/dist/ai-service/agent/tools2/registry.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/registry.js +37 -23
- package/dist/ai-service/agent/tools2/registry.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/ask-multi-choice.d.ts +0 -1
- package/dist/ai-service/agent/tools2/tools/ask-multi-choice.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/ask-multi-choice.js +1 -6
- package/dist/ai-service/agent/tools2/tools/ask-multi-choice.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/end-test-run.d.ts +31 -0
- package/dist/ai-service/agent/tools2/tools/end-test-run.d.ts.map +1 -0
- package/dist/ai-service/agent/tools2/tools/end-test-run.js +107 -0
- package/dist/ai-service/agent/tools2/tools/end-test-run.js.map +1 -0
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts +2 -1
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js +63 -76
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/list-attachments.d.ts +15 -0
- package/dist/ai-service/agent/tools2/tools/list-attachments.d.ts.map +1 -0
- package/dist/ai-service/agent/tools2/tools/list-attachments.js +47 -0
- package/dist/ai-service/agent/tools2/tools/list-attachments.js.map +1 -0
- package/dist/ai-service/agent/tools2/tools/start-test-run.d.ts +24 -0
- package/dist/ai-service/agent/tools2/tools/start-test-run.d.ts.map +1 -0
- package/dist/ai-service/agent/tools2/tools/start-test-run.js +340 -0
- package/dist/ai-service/agent/tools2/tools/start-test-run.js.map +1 -0
- package/dist/ai-service/agent/tools2/tools/update-test-case-status.d.ts +29 -0
- package/dist/ai-service/agent/tools2/tools/update-test-case-status.d.ts.map +1 -0
- package/dist/ai-service/agent/tools2/tools/update-test-case-status.js +106 -0
- package/dist/ai-service/agent/tools2/tools/update-test-case-status.js.map +1 -0
- package/dist/ai-service/agent/tools2/types.d.ts +6 -24
- package/dist/ai-service/agent/tools2/types.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/types.js +4 -15
- package/dist/ai-service/agent/tools2/types.js.map +1 -1
- package/dist/ai-service/agent/utils.d.ts +10 -0
- package/dist/ai-service/agent/utils.d.ts.map +1 -1
- package/dist/ai-service/agent/utils.js +160 -2
- package/dist/ai-service/agent/utils.js.map +1 -1
- package/dist/ai-service/attachments/index.d.ts +2 -0
- package/dist/ai-service/attachments/index.d.ts.map +1 -0
- package/dist/ai-service/attachments/index.js +2 -0
- package/dist/ai-service/attachments/index.js.map +1 -0
- package/dist/ai-service/attachments/store.d.ts +65 -0
- package/dist/ai-service/attachments/store.d.ts.map +1 -0
- package/dist/ai-service/attachments/store.js +158 -0
- package/dist/ai-service/attachments/store.js.map +1 -0
- package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
- package/dist/ai-service/chat/chat-session-store.js +133 -1
- package/dist/ai-service/chat/chat-session-store.js.map +1 -1
- package/dist/ai-service/context-download.d.ts +24 -0
- package/dist/ai-service/context-download.d.ts.map +1 -0
- package/dist/ai-service/context-download.js +127 -0
- package/dist/ai-service/context-download.js.map +1 -0
- package/dist/ai-service/context-upload.d.ts +17 -0
- package/dist/ai-service/context-upload.d.ts.map +1 -0
- package/dist/ai-service/context-upload.js +100 -0
- package/dist/ai-service/context-upload.js.map +1 -0
- package/dist/ai-service/features.d.ts +4 -0
- package/dist/ai-service/features.d.ts.map +1 -1
- package/dist/ai-service/features.js +4 -0
- package/dist/ai-service/features.js.map +1 -1
- package/dist/ai-service/index.d.ts +27 -3
- package/dist/ai-service/index.d.ts.map +1 -1
- package/dist/ai-service/index.js +259 -20
- package/dist/ai-service/index.js.map +1 -1
- package/dist/ai-service/judge/integration/mcp-client.d.ts +3 -6
- package/dist/ai-service/judge/integration/mcp-client.d.ts.map +1 -1
- package/dist/ai-service/judge/integration/mcp-client.js.map +1 -1
- package/dist/ai-service/judge/tools/playwright-action.d.ts +1 -1
- package/dist/ai-service/judge/tools/submit-feedback.d.ts +1 -1
- package/dist/ai-service/llm/client.d.ts +6 -0
- package/dist/ai-service/llm/client.d.ts.map +1 -1
- package/dist/ai-service/llm/client.js +9 -0
- package/dist/ai-service/llm/client.js.map +1 -1
- package/dist/ai-service/llm/context/constants.d.ts +8 -0
- package/dist/ai-service/llm/context/constants.d.ts.map +1 -1
- package/dist/ai-service/llm/context/constants.js +8 -0
- package/dist/ai-service/llm/context/constants.js.map +1 -1
- package/dist/ai-service/llm/context/context.d.ts +4 -0
- package/dist/ai-service/llm/context/context.d.ts.map +1 -1
- package/dist/ai-service/llm/context/context.js +22 -9
- package/dist/ai-service/llm/context/context.js.map +1 -1
- package/dist/ai-service/llm/context/manager.d.ts +6 -1
- package/dist/ai-service/llm/context/manager.d.ts.map +1 -1
- package/dist/ai-service/llm/context/manager.js +9 -1
- package/dist/ai-service/llm/context/manager.js.map +1 -1
- package/dist/ai-service/llm/context/serialization.d.ts +3 -0
- package/dist/ai-service/llm/context/serialization.d.ts.map +1 -1
- package/dist/ai-service/llm/context/utils/message-utils.d.ts +10 -0
- package/dist/ai-service/llm/context/utils/message-utils.d.ts.map +1 -1
- package/dist/ai-service/llm/context/utils/message-utils.js +92 -0
- package/dist/ai-service/llm/context/utils/message-utils.js.map +1 -1
- package/dist/ai-service/llm/interaction/provider.d.ts +1 -0
- package/dist/ai-service/llm/interaction/provider.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/config.d.ts +2 -0
- package/dist/ai-service/llm/stream/config.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/config.js +1 -0
- package/dist/ai-service/llm/stream/config.js.map +1 -1
- package/dist/ai-service/llm/stream/event-bus.d.ts +5 -0
- package/dist/ai-service/llm/stream/event-bus.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/event-bus.js.map +1 -1
- package/dist/ai-service/llm/stream/observers/llmobs.d.ts +4 -1
- package/dist/ai-service/llm/stream/observers/llmobs.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/observers/llmobs.js +194 -10
- package/dist/ai-service/llm/stream/observers/llmobs.js.map +1 -1
- package/dist/ai-service/llm/stream/observers/logging.d.ts +1 -0
- package/dist/ai-service/llm/stream/observers/logging.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/observers/logging.js +92 -20
- package/dist/ai-service/llm/stream/observers/logging.js.map +1 -1
- package/dist/ai-service/llm/stream/orchestrator.d.ts +7 -1
- package/dist/ai-service/llm/stream/orchestrator.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/orchestrator.js +23 -3
- package/dist/ai-service/llm/stream/orchestrator.js.map +1 -1
- package/dist/ai-service/llm/stream/retry-engine.d.ts +1 -0
- package/dist/ai-service/llm/stream/retry-engine.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/retry-engine.js +20 -1
- package/dist/ai-service/llm/stream/retry-engine.js.map +1 -1
- package/dist/ai-service/llm/stream/session.d.ts +14 -2
- package/dist/ai-service/llm/stream/session.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/session.js +15 -28
- package/dist/ai-service/llm/stream/session.js.map +1 -1
- package/dist/ai-service/llmobs/otel-exporter.d.ts +58 -0
- package/dist/ai-service/llmobs/otel-exporter.d.ts.map +1 -0
- package/dist/ai-service/llmobs/otel-exporter.js +182 -0
- package/dist/ai-service/llmobs/otel-exporter.js.map +1 -0
- package/dist/ai-service/llmobs/tracer.d.ts +9 -5
- package/dist/ai-service/llmobs/tracer.d.ts.map +1 -1
- package/dist/ai-service/llmobs/tracer.js +46 -41
- package/dist/ai-service/llmobs/tracer.js.map +1 -1
- package/dist/ai-service/llmobs/types.d.ts +1 -0
- package/dist/ai-service/llmobs/types.d.ts.map +1 -1
- package/dist/ai-service/mcp/adapter/mcp-tool-adapter.d.ts +1 -1
- package/dist/ai-service/mcp/adapter/mcp-tool-adapter.d.ts.map +1 -1
- package/dist/ai-service/mcp/adapter/mcp-tool-adapter.js +5 -2
- package/dist/ai-service/mcp/adapter/mcp-tool-adapter.js.map +1 -1
- package/dist/ai-service/mcp/embedded-playwright-mcp-server.d.ts +33 -1
- package/dist/ai-service/mcp/embedded-playwright-mcp-server.d.ts.map +1 -1
- package/dist/ai-service/mcp/embedded-playwright-mcp-server.js +949 -91
- package/dist/ai-service/mcp/embedded-playwright-mcp-server.js.map +1 -1
- package/dist/ai-service/mcp/playwright-server.d.ts +39 -0
- package/dist/ai-service/mcp/playwright-server.d.ts.map +1 -1
- package/dist/ai-service/mcp/playwright-server.js +56 -0
- package/dist/ai-service/mcp/playwright-server.js.map +1 -1
- package/dist/ai-service/mcp/types.d.ts +4 -0
- package/dist/ai-service/mcp/types.d.ts.map +1 -1
- package/dist/ai-service/prompts/explain-code.d.ts +2 -2
- package/dist/ai-service/prompts/explain-code.d.ts.map +1 -1
- package/dist/ai-service/prompts/explain-code.js +2 -2
- package/dist/ai-service/prompts/explain-code.js.map +1 -1
- package/dist/ai-service/state-machine/clark-fsm.d.ts +20 -1
- package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
- package/dist/ai-service/state-machine/clark-fsm.js +16 -0
- package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
- package/dist/ai-service/state-machine/fsm.d.ts.map +1 -1
- package/dist/ai-service/state-machine/fsm.js +1 -0
- package/dist/ai-service/state-machine/fsm.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/agent-planning.js +71 -7
- package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/llm-generating.js +112 -33
- package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
- package/dist/ai-service/state-machine/helpers/peer.d.ts +1 -1
- package/dist/ai-service/state-machine/helpers/peer.d.ts.map +1 -1
- package/dist/ai-service/state-machine/helpers/peer.js +21 -4
- package/dist/ai-service/state-machine/helpers/peer.js.map +1 -1
- package/dist/ai-service/state-machine/mocks.d.ts.map +1 -1
- package/dist/ai-service/state-machine/mocks.js +2 -0
- package/dist/ai-service/state-machine/mocks.js.map +1 -1
- package/dist/ai-service/state-machine/traced-fsm.d.ts +2 -0
- package/dist/ai-service/state-machine/traced-fsm.d.ts.map +1 -1
- package/dist/ai-service/state-machine/traced-fsm.js +18 -0
- package/dist/ai-service/state-machine/traced-fsm.js.map +1 -1
- package/dist/ai-service/util/safe-parse.d.ts +2 -0
- package/dist/ai-service/util/safe-parse.d.ts.map +1 -0
- package/dist/ai-service/util/safe-parse.js +9 -0
- package/dist/ai-service/util/safe-parse.js.map +1 -0
- package/dist/ai-service/util/safe-stringify.d.ts.map +1 -1
- package/dist/ai-service/util/safe-stringify.js +7 -0
- package/dist/ai-service/util/safe-stringify.js.map +1 -1
- package/dist/ai-service/util/scoped-token-utils.d.ts +15 -0
- package/dist/ai-service/util/scoped-token-utils.d.ts.map +1 -0
- package/dist/ai-service/util/scoped-token-utils.js +131 -0
- package/dist/ai-service/util/scoped-token-utils.js.map +1 -0
- package/dist/ai-service/util/stop-condition.d.ts +1 -0
- package/dist/ai-service/util/stop-condition.d.ts.map +1 -1
- package/dist/ai-service/util/stop-condition.js +5 -0
- package/dist/ai-service/util/stop-condition.js.map +1 -1
- package/dist/ai-service/util/strip-content.d.ts +2 -0
- package/dist/ai-service/util/strip-content.d.ts.map +1 -0
- package/dist/ai-service/util/strip-content.js +31 -0
- package/dist/ai-service/util/strip-content.js.map +1 -0
- package/dist/ai-service/util/tool-signature.d.ts +13 -0
- package/dist/ai-service/util/tool-signature.d.ts.map +1 -0
- package/dist/ai-service/util/tool-signature.js +38 -0
- package/dist/ai-service/util/tool-signature.js.map +1 -0
- package/dist/file-sync-vite-plugin.d.ts.map +1 -1
- package/dist/file-sync-vite-plugin.js +4 -1
- package/dist/file-sync-vite-plugin.js.map +1 -1
- package/dist/injected-index.js +2 -2
- package/dist/injected-index.js.map +1 -1
- package/dist/parsing/jsx.d.ts.map +1 -1
- package/dist/parsing/jsx.js +0 -2
- package/dist/parsing/jsx.js.map +1 -1
- package/dist/server-rpc/index.js +1 -1
- package/dist/server-rpc/index.js.map +1 -1
- package/dist/socket-manager.d.ts.map +1 -1
- package/dist/socket-manager.js +61 -4
- package/dist/socket-manager.js.map +1 -1
- package/package.json +9 -9
- package/dist/ai-service/agent/tools/build-read-files.d.ts.map +0 -1
- package/dist/ai-service/agent/tools/build-read-files.js +0 -67
- package/dist/ai-service/agent/tools/build-read-files.js.map +0 -1
|
@@ -1,10 +1,12 @@
|
|
|
1
1
|
import { AI_PLAN_STREAMING_END_MARKER, } from "@superblocksteam/library-shared/types";
|
|
2
2
|
import { z } from "zod";
|
|
3
3
|
import { getErrorMeta, getLogger } from "../../../../util/logger.js";
|
|
4
|
+
import { AttachmentsStore } from "../../../attachments/index.js";
|
|
5
|
+
import { getContextId } from "../../../state-machine/helpers/context-id.js";
|
|
4
6
|
import { sendUserMessageChannel } from "../../../state-machine/helpers/peer.js";
|
|
5
7
|
import { createToolFactory, PermissionLevel, ToolCategory } from "../types.js";
|
|
6
8
|
const MAX_ATTEMPTS = 5;
|
|
7
|
-
const
|
|
9
|
+
const MAX_PLAN_ATTACHMENTS = 5;
|
|
8
10
|
const PlanComplexityLevels = [
|
|
9
11
|
"Extra Small",
|
|
10
12
|
"Small",
|
|
@@ -21,64 +23,6 @@ function formatIntegrationForPlanPrompt(integration) {
|
|
|
21
23
|
const labelForLLM = displayName || name;
|
|
22
24
|
return `- ${labelForLLM}\n tag: @${name}[id=${id}]\n type: ${type}`;
|
|
23
25
|
}
|
|
24
|
-
function extractImageFromMediaPart(part) {
|
|
25
|
-
if (part.type === "media" &&
|
|
26
|
-
typeof part.data === "string" &&
|
|
27
|
-
typeof part.mediaType === "string") {
|
|
28
|
-
return {
|
|
29
|
-
type: "image",
|
|
30
|
-
image: `data:${part.mediaType};base64,${part.data}`,
|
|
31
|
-
};
|
|
32
|
-
}
|
|
33
|
-
return null;
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Extracts images from message history (user-uploaded and tool screenshots).
|
|
37
|
-
*/
|
|
38
|
-
function extractImagesFromMessages(messages) {
|
|
39
|
-
const images = [];
|
|
40
|
-
for (const message of messages) {
|
|
41
|
-
if (Array.isArray(message.content)) {
|
|
42
|
-
for (const part of message.content) {
|
|
43
|
-
if (typeof part !== "object" || part === null || !("type" in part)) {
|
|
44
|
-
continue;
|
|
45
|
-
}
|
|
46
|
-
if (part.type === "image" && "image" in part) {
|
|
47
|
-
const imageData = part.image;
|
|
48
|
-
if (typeof imageData === "string") {
|
|
49
|
-
images.push({
|
|
50
|
-
type: "image",
|
|
51
|
-
image: imageData,
|
|
52
|
-
});
|
|
53
|
-
}
|
|
54
|
-
}
|
|
55
|
-
if (part.type === "tool-result") {
|
|
56
|
-
const output = ("output" in part
|
|
57
|
-
? part.output
|
|
58
|
-
: "result" in part
|
|
59
|
-
? part.result
|
|
60
|
-
: null);
|
|
61
|
-
if (output &&
|
|
62
|
-
typeof output === "object" &&
|
|
63
|
-
output.type === "content" &&
|
|
64
|
-
Array.isArray(output.value)) {
|
|
65
|
-
for (const valuePart of output.value) {
|
|
66
|
-
if (typeof valuePart === "object" &&
|
|
67
|
-
valuePart !== null &&
|
|
68
|
-
"type" in valuePart) {
|
|
69
|
-
const image = extractImageFromMediaPart(valuePart);
|
|
70
|
-
if (image) {
|
|
71
|
-
images.push(image);
|
|
72
|
-
}
|
|
73
|
-
}
|
|
74
|
-
}
|
|
75
|
-
}
|
|
76
|
-
}
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
return images;
|
|
81
|
-
}
|
|
82
26
|
/**
|
|
83
27
|
* Exit Plan Mode - prompts the user to exit Plan mode when they have finished planning and are ready to code.
|
|
84
28
|
*/
|
|
@@ -101,13 +45,17 @@ export const exitPlanModeToolFactory = createToolFactory("exitPlanMode", ({ clar
|
|
|
101
45
|
integrationIds: z
|
|
102
46
|
.array(z.string())
|
|
103
47
|
.describe("List of integration IDs that may be referenced in the plan."),
|
|
104
|
-
|
|
48
|
+
attachmentIds: z
|
|
105
49
|
.array(z.number())
|
|
106
|
-
.max(
|
|
50
|
+
.max(MAX_PLAN_ATTACHMENTS)
|
|
51
|
+
.optional()
|
|
52
|
+
.describe(`List of up to ${MAX_PLAN_ATTACHMENTS} attachment IDs that are relevant to the plan. Call listAttachments first to see available attachments with their IDs, types, and labels.`),
|
|
53
|
+
entityIds: z
|
|
54
|
+
.array(z.string())
|
|
107
55
|
.optional()
|
|
108
|
-
.describe(`
|
|
56
|
+
.describe(`List of targeted entity IDs (components) from the user's selection that are relevant to implementing this plan. Include entities that the plan will modify or depend on.`),
|
|
109
57
|
}),
|
|
110
|
-
execute: async ({ complexity, title, integrationIds,
|
|
58
|
+
execute: async ({ complexity, title, integrationIds, attachmentIds, entityIds, }) => {
|
|
111
59
|
const { chatSessionStore } = services;
|
|
112
60
|
const sendUserMessage = sendUserMessageChannel(clark, chatSessionStore);
|
|
113
61
|
const availableIntegrations = await services.integrationStore.availableIntegrations();
|
|
@@ -126,6 +74,14 @@ export const exitPlanModeToolFactory = createToolFactory("exitPlanMode", ({ clar
|
|
|
126
74
|
if (unavailableRequestedIds.length > 0) {
|
|
127
75
|
getLogger().warn(`exitPlanMode: Requested integration IDs not available: ${unavailableRequestedIds.join(", ")}`);
|
|
128
76
|
}
|
|
77
|
+
// Filter tagged entities for plan execution
|
|
78
|
+
const taggedEntities = clark.context.taggedEntities ?? [];
|
|
79
|
+
let filteredEntities = [];
|
|
80
|
+
if (entityIds && entityIds.length > 0) {
|
|
81
|
+
const entityIdSet = new Set(entityIds);
|
|
82
|
+
filteredEntities = taggedEntities.filter((entity) => entityIdSet.has(entity.id));
|
|
83
|
+
getLogger().info(`Plan entities: ${taggedEntities.length} tagged, ${filteredEntities.length} selected for execution`);
|
|
84
|
+
}
|
|
129
85
|
const integrationGuidance = filteredIntegrations.length > 0
|
|
130
86
|
? `
|
|
131
87
|
Only reference the integrations listed below when they are necessary. Use the exact tag shown for each integration within relevant plan steps (e.g. "Use @Integration[id=123] to ..."). Do not reference any other integrations.
|
|
@@ -170,9 +126,17 @@ ${filteredIntegrations
|
|
|
170
126
|
try {
|
|
171
127
|
const result = await clark.streamText(services, {
|
|
172
128
|
user: planPrompt,
|
|
173
|
-
context: { messages },
|
|
129
|
+
context: { messages: [] },
|
|
174
130
|
});
|
|
175
|
-
|
|
131
|
+
// Use fullStream instead of textStream to properly capture text-delta chunks
|
|
132
|
+
// With extended thinking enabled (default), textStream may not yield content
|
|
133
|
+
// if the model outputs reasoning blocks before text
|
|
134
|
+
for await (const chunk of result.fullStream) {
|
|
135
|
+
// Only process text-delta chunks for plan content
|
|
136
|
+
if (chunk.type !== "text-delta") {
|
|
137
|
+
continue;
|
|
138
|
+
}
|
|
139
|
+
const text = chunk.text;
|
|
176
140
|
if (text.trim().length === 0) {
|
|
177
141
|
continue;
|
|
178
142
|
}
|
|
@@ -184,6 +148,7 @@ ${filteredIntegrations
|
|
|
184
148
|
title: sanitizedTitle,
|
|
185
149
|
timeEstimate,
|
|
186
150
|
integrations: filteredIntegrations,
|
|
151
|
+
entities: filteredEntities.length > 0 ? filteredEntities : undefined,
|
|
187
152
|
streaming: true,
|
|
188
153
|
});
|
|
189
154
|
hasSentInitialPlanMessageThisAttempt = true;
|
|
@@ -201,31 +166,43 @@ ${filteredIntegrations
|
|
|
201
166
|
throw new Error("Plan generation did not produce any new content.");
|
|
202
167
|
}
|
|
203
168
|
fullPlanText = attemptPlanText;
|
|
204
|
-
|
|
205
|
-
let
|
|
206
|
-
if (
|
|
207
|
-
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
.
|
|
211
|
-
|
|
169
|
+
// Load all attachments from store by ID (images, PDFs, text files - all unified)
|
|
170
|
+
let planAttachments = [];
|
|
171
|
+
if (attachmentIds && attachmentIds.length > 0) {
|
|
172
|
+
const contextId = getContextId(clark, services);
|
|
173
|
+
const context = services.contextManager.getLoadedContext(contextId);
|
|
174
|
+
if (!context) {
|
|
175
|
+
getLogger().error("[exitPlanMode] Context not loaded");
|
|
176
|
+
}
|
|
177
|
+
else {
|
|
178
|
+
const store = new AttachmentsStore();
|
|
179
|
+
const storedAttachments = store.getAttachmentsByIds(context, attachmentIds.slice(0, MAX_PLAN_ATTACHMENTS));
|
|
180
|
+
planAttachments =
|
|
181
|
+
AttachmentsStore.toAttachments(storedAttachments);
|
|
182
|
+
getLogger().info(`Plan attachments: ${attachmentIds.length} requested, ${planAttachments.length} found in store (max ${MAX_PLAN_ATTACHMENTS})`, planAttachments.map((a) => ({
|
|
183
|
+
type: a.type,
|
|
184
|
+
fileName: a.fileName,
|
|
185
|
+
})));
|
|
186
|
+
}
|
|
212
187
|
}
|
|
213
188
|
await sendUserMessage({
|
|
214
189
|
type: "plan-delta",
|
|
215
190
|
text: AI_PLAN_STREAMING_END_MARKER,
|
|
216
191
|
streaming: false,
|
|
217
192
|
group: "clark",
|
|
218
|
-
attachments:
|
|
193
|
+
attachments: planAttachments.length > 0 ? planAttachments : undefined,
|
|
219
194
|
});
|
|
220
195
|
getLogger().info(`Plan generation stream completed. Length: ${attemptPlanText.length}`);
|
|
221
196
|
clark.updateContext((context) => ({
|
|
222
197
|
...context,
|
|
223
198
|
planContext: {
|
|
199
|
+
enableTesting: context.planContext?.enableTesting ?? false,
|
|
224
200
|
plan: attemptPlanText,
|
|
225
201
|
integrations: filteredIntegrations,
|
|
202
|
+
entities: filteredEntities.length > 0 ? filteredEntities : undefined,
|
|
226
203
|
approved: false,
|
|
227
204
|
title: sanitizedTitle,
|
|
228
|
-
attachments:
|
|
205
|
+
attachments: planAttachments.length > 0 ? planAttachments : undefined,
|
|
229
206
|
},
|
|
230
207
|
}));
|
|
231
208
|
getLogger().info(`Plan generation completed successfully on attempt ${attemptNumber}. Plan length: ${attemptPlanText.length}`);
|
|
@@ -333,7 +310,7 @@ Layout & Data
|
|
|
333
310
|
- Load data directly from @demoOrders, defaulting to all orders on initial load
|
|
334
311
|
Search Behavior
|
|
335
312
|
- Filter by Order ID, Customer Name, or Status, updating results dynamically on each keystroke with debounce
|
|
336
|
-
- Provide loading feedback while searching and display a clear
|
|
313
|
+
- Provide loading feedback while searching and display a clear "No results found" message when no matches exist
|
|
337
314
|
</plan>
|
|
338
315
|
|
|
339
316
|
Extra Large - (MAX 1100 Characters)
|
|
@@ -367,6 +344,16 @@ NEVER output a plan directly as text - ALWAYS use this tool to present plans pro
|
|
|
367
344
|
|
|
368
345
|
IMPORTANT: Only use this tool AFTER you have gathered enough information to create a specific plan.
|
|
369
346
|
|
|
347
|
+
ATTACHMENTS:
|
|
348
|
+
- If the user has uploaded attachments (images, PDFs, CSV, JSON, etc.), call listAttachments first to see available attachment IDs with their types, labels and insights
|
|
349
|
+
- Pass relevant attachmentIds to include attachments in the plan (max ${MAX_PLAN_ATTACHMENTS})
|
|
350
|
+
- Only include attachments that contain information essential for implementation (UI mockups, data schemas, requirements, etc.)
|
|
351
|
+
|
|
352
|
+
ENTITIES:
|
|
353
|
+
- If there are focused_entities in the context (components selected by the user), extract the "id" field from each entity
|
|
354
|
+
- Pass these IDs to the entityIds parameter - they will be displayed in the plan and preserved for build mode
|
|
355
|
+
- Include the relevant focused entity IDs unless they are clearly irrelevant to the plan
|
|
356
|
+
|
|
370
357
|
Before presenting a plan:
|
|
371
358
|
- If the user's request is ambiguous or has multiple interpretations, use askMultiChoice to clarify
|
|
372
359
|
- If there are unknowns about requirements, preferences, or approach, use askMultiChoice first
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"exit-plan-mode.js","sourceRoot":"","sources":["../../../../../src/ai-service/agent/tools2/tools/exit-plan-mode.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,4BAA4B,GAG7B,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,4BAA4B,CAAC;AACrE,OAAO,EAAE,sBAAsB,EAAE,MAAM,wCAAwC,CAAC;AAChF,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAO/E,MAAM,YAAY,GAAG,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"exit-plan-mode.js","sourceRoot":"","sources":["../../../../../src/ai-service/agent/tools2/tools/exit-plan-mode.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { Clark } from "../../../state-machine/clark-fsm.js";
|
|
2
|
+
import type { ClarkStateHandlerParams } from "../../../state-machine/clark-fsm.js";
|
|
3
|
+
export declare const listAttachmentsToolFactory: import("../types.js").ToolFactory<{
|
|
4
|
+
clark: Clark;
|
|
5
|
+
services: ClarkStateHandlerParams;
|
|
6
|
+
}, import("../types.js").Tool<{}, {
|
|
7
|
+
attachments: never[];
|
|
8
|
+
error: string;
|
|
9
|
+
count?: undefined;
|
|
10
|
+
} | {
|
|
11
|
+
attachments: import("../../../attachments/store.js").AttachmentInfo[];
|
|
12
|
+
count: number;
|
|
13
|
+
error?: undefined;
|
|
14
|
+
}>>;
|
|
15
|
+
//# sourceMappingURL=list-attachments.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-attachments.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/agent/tools2/tools/list-attachments.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,qCAAqC,CAAC;AACjE,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,qCAAqC,CAAC;AAEnF,eAAO,MAAM,0BAA0B;WAM5B,KAAK;cACF,uBAAuB;;;;;;;;;GAiDpC,CAAC"}
|
|
@@ -0,0 +1,47 @@
|
|
|
1
|
+
import { z } from "zod";
|
|
2
|
+
import { getPrefixedLogger } from "../../../../util/logger.js";
|
|
3
|
+
import { AttachmentsStore } from "../../../attachments/index.js";
|
|
4
|
+
import { getContextId } from "../../../state-machine/helpers/context-id.js";
|
|
5
|
+
import { createToolFactory, PermissionLevel, ToolCategory } from "../types.js";
|
|
6
|
+
export const listAttachmentsToolFactory = createToolFactory("listAttachments", ({ clark, services, }) => {
|
|
7
|
+
return {
|
|
8
|
+
category: ToolCategory.PLAN,
|
|
9
|
+
description: `List all attachments that have been uploaded during this session.
|
|
10
|
+
|
|
11
|
+
Returns a compact list of attachments with:
|
|
12
|
+
- id: Numeric identifier (use this ID in exitPlanMode.attachmentIds to include attachments in plans)
|
|
13
|
+
- type: Attachment type (image, pdf, csv, json, yaml, css, txt)
|
|
14
|
+
- fileName: Original filename of the uploaded file
|
|
15
|
+
- label: Brief 2-3 word description of the content (e.g., "login form mockup", "orders dataset")
|
|
16
|
+
- insight: Key observation about the attachment (e.g., "grid layout appears misaligned", "contains 500 order records")
|
|
17
|
+
- originalMessage: The original user message that accompanied this attachment (truncated to 300 chars)
|
|
18
|
+
|
|
19
|
+
Use this tool to see what files the user has uploaded before calling exitPlanMode.
|
|
20
|
+
The file content/data is NOT returned - use attachmentIds in exitPlanMode to include attachments in plans.
|
|
21
|
+
|
|
22
|
+
Example workflow:
|
|
23
|
+
1. User uploads files (images, PDFs, CSV, etc.) while chatting
|
|
24
|
+
2. Call listAttachments to see available attachments with their IDs, types, and descriptions
|
|
25
|
+
3. When creating a plan, pass relevant attachmentIds to exitPlanMode`,
|
|
26
|
+
defaultPermission: PermissionLevel.ALLOW,
|
|
27
|
+
readOnly: true,
|
|
28
|
+
inputSchema: z.object({}),
|
|
29
|
+
execute: async () => {
|
|
30
|
+
const logger = getPrefixedLogger("[listAttachments]");
|
|
31
|
+
const contextId = getContextId(clark, services);
|
|
32
|
+
const context = services.contextManager.getLoadedContext(contextId);
|
|
33
|
+
if (!context) {
|
|
34
|
+
logger.error("Context not loaded");
|
|
35
|
+
return { attachments: [], error: "Context not available" };
|
|
36
|
+
}
|
|
37
|
+
const store = new AttachmentsStore();
|
|
38
|
+
const attachments = store.listAttachments(context);
|
|
39
|
+
logger.info(`Returning ${attachments.length} attachment(s)`);
|
|
40
|
+
return {
|
|
41
|
+
attachments,
|
|
42
|
+
count: attachments.length,
|
|
43
|
+
};
|
|
44
|
+
},
|
|
45
|
+
};
|
|
46
|
+
});
|
|
47
|
+
//# sourceMappingURL=list-attachments.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"list-attachments.js","sourceRoot":"","sources":["../../../../../src/ai-service/agent/tools2/tools/list-attachments.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AACxB,OAAO,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAC/D,OAAO,EAAE,gBAAgB,EAAE,MAAM,+BAA+B,CAAC;AACjE,OAAO,EAAE,YAAY,EAAE,MAAM,8CAA8C,CAAC;AAC5E,OAAO,EAAE,iBAAiB,EAAE,eAAe,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAI/E,MAAM,CAAC,MAAM,0BAA0B,GAAG,iBAAiB,CACzD,iBAAiB,EACjB,CAAC,EACC,KAAK,EACL,QAAQ,GAIT,EAAE,EAAE;IACH,OAAO;QACL,QAAQ,EAAE,YAAY,CAAC,IAAI;QAC3B,WAAW,EAAE;;;;;;;;;;;;;;;;qEAgBkD;QAC/D,iBAAiB,EAAE,eAAe,CAAC,KAAK;QACxC,QAAQ,EAAE,IAAI;QAEd,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC,EAAE,CAAC;QAEzB,OAAO,EAAE,KAAK,IAAI,EAAE;YAClB,MAAM,MAAM,GAAG,iBAAiB,CAAC,mBAAmB,CAAC,CAAC;YACtD,MAAM,SAAS,GAAG,YAAY,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;YAEhD,MAAM,OAAO,GAAG,QAAQ,CAAC,cAAc,CAAC,gBAAgB,CAAC,SAAS,CAAC,CAAC;YAEpE,IAAI,CAAC,OAAO,EAAE,CAAC;gBACb,MAAM,CAAC,KAAK,CAAC,oBAAoB,CAAC,CAAC;gBACnC,OAAO,EAAE,WAAW,EAAE,EAAE,EAAE,KAAK,EAAE,uBAAuB,EAAE,CAAC;YAC7D,CAAC;YAED,MAAM,KAAK,GAAG,IAAI,gBAAgB,EAAE,CAAC;YACrC,MAAM,WAAW,GAAG,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;YAEnD,MAAM,CAAC,IAAI,CAAC,aAAa,WAAW,CAAC,MAAM,gBAAgB,CAAC,CAAC;YAE7D,OAAO;gBACL,WAAW;gBACX,KAAK,EAAE,WAAW,CAAC,MAAM;aAC1B,CAAC;QACJ,CAAC;KACF,CAAC;AACJ,CAAC,CACF,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Clark, ClarkStateHandlerParams } from "../../../state-machine/clark-fsm.js";
|
|
2
|
+
/**
|
|
3
|
+
* startTestRun - Invokes the Testing Agent subagent to perform end-to-end testing.
|
|
4
|
+
*
|
|
5
|
+
* This tool:
|
|
6
|
+
* 1. Creates a test run with a unique ID
|
|
7
|
+
* 2. Sends test_run_start message to UI
|
|
8
|
+
* 3. Invokes the TEST subagent with filtered tools
|
|
9
|
+
* 4. Suppresses text/reasoning output (all context in tool descriptions)
|
|
10
|
+
* 5. Streams tool results back to the user
|
|
11
|
+
*/
|
|
12
|
+
export declare const startTestRunToolFactory: import("../types.js").ToolFactory<{
|
|
13
|
+
clark: Clark;
|
|
14
|
+
services: ClarkStateHandlerParams;
|
|
15
|
+
}, import("../types.js").Tool<{
|
|
16
|
+
header: string;
|
|
17
|
+
testDescription: string;
|
|
18
|
+
}, {
|
|
19
|
+
success: boolean;
|
|
20
|
+
testRunId: `${string}-${string}-${string}-${string}-${string}`;
|
|
21
|
+
status: string;
|
|
22
|
+
summary: string;
|
|
23
|
+
}>>;
|
|
24
|
+
//# sourceMappingURL=start-test-run.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"start-test-run.d.ts","sourceRoot":"","sources":["../../../../../src/ai-service/agent/tools2/tools/start-test-run.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,KAAK,EACL,uBAAuB,EACxB,MAAM,qCAAqC,CAAC;AAG7C;;;;;;;;;GASG;AACH,eAAO,MAAM,uBAAuB;WAMzB,KAAK;cACF,uBAAuB;;;;;;;;;GA6ZpC,CAAC"}
|