@superblocksteam/vite-plugin-file-sync 2.0.83-next.1 → 2.0.83
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/middleware.d.ts +0 -36
- package/dist/ai-service/agent/middleware.d.ts.map +1 -1
- package/dist/ai-service/agent/middleware.js +1 -65
- package/dist/ai-service/agent/middleware.js.map +1 -1
- package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts +1 -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 +57 -101
- package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
- package/dist/ai-service/agent/tool-message-utils.js +1 -1
- package/dist/ai-service/agent/tool-message-utils.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/api-executor.js +1 -1
- package/dist/ai-service/agent/tools/apis/api-executor.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/api-validation-orchestrator.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/api-validation-orchestrator.js +1 -1
- package/dist/ai-service/agent/tools/apis/api-validation-orchestrator.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/build-api-artifact.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/build-api-artifact.js +7 -23
- package/dist/ai-service/agent/tools/apis/build-api-artifact.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/build-api.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/build-api.js +19 -36
- package/dist/ai-service/agent/tools/apis/build-api.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/get-api-docs.d.ts +1 -1
- package/dist/ai-service/agent/tools/apis/sample-json.js +1 -1
- package/dist/ai-service/agent/tools/apis/sample-json.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/test-api.d.ts +1 -11
- package/dist/ai-service/agent/tools/apis/test-api.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/test-api.js +54 -95
- package/dist/ai-service/agent/tools/apis/test-api.js.map +1 -1
- package/dist/ai-service/agent/tools/build-capture-screenshot.d.ts +0 -3
- package/dist/ai-service/agent/tools/build-capture-screenshot.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-capture-screenshot.js +8 -12
- package/dist/ai-service/agent/tools/build-capture-screenshot.js.map +1 -1
- package/dist/ai-service/agent/tools/build-debug.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-debug.js +10 -30
- package/dist/ai-service/agent/tools/build-debug.js.map +1 -1
- package/dist/ai-service/agent/tools/build-delete-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-delete-file.js +2 -6
- package/dist/ai-service/agent/tools/build-delete-file.js.map +1 -1
- package/dist/ai-service/agent/tools/build-edit-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-edit-file.js +5 -20
- package/dist/ai-service/agent/tools/build-edit-file.js.map +1 -1
- package/dist/ai-service/agent/tools/build-finalize.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-finalize.js +4 -30
- package/dist/ai-service/agent/tools/build-finalize.js.map +1 -1
- package/dist/ai-service/agent/tools/build-manage-checklist.d.ts +1 -1
- package/dist/ai-service/agent/tools/build-multi-edit-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-multi-edit-file.js +4 -14
- package/dist/ai-service/agent/tools/build-multi-edit-file.js.map +1 -1
- package/dist/ai-service/agent/tools/build-read-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-read-file.js +11 -23
- package/dist/ai-service/agent/tools/build-read-file.js.map +1 -1
- package/dist/ai-service/agent/tools/debug-cache.js +1 -1
- package/dist/ai-service/agent/tools/debug-cache.js.map +1 -1
- package/dist/ai-service/agent/tools/get-console-logs.d.ts +29 -0
- package/dist/ai-service/agent/tools/get-console-logs.d.ts.map +1 -0
- package/dist/ai-service/agent/tools/get-console-logs.js +171 -0
- package/dist/ai-service/agent/tools/get-console-logs.js.map +1 -0
- package/dist/ai-service/agent/tools/index.d.ts +1 -1
- package/dist/ai-service/agent/tools/index.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/index.js +1 -1
- package/dist/ai-service/agent/tools/index.js.map +1 -1
- package/dist/ai-service/agent/tools/integrations/execute-request.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/integrations/execute-request.js +5 -20
- package/dist/ai-service/agent/tools/integrations/execute-request.js.map +1 -1
- package/dist/ai-service/agent/tools/integrations/internal.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/integrations/internal.js +3 -12
- 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 +28 -19
- package/dist/ai-service/agent/tools.js.map +1 -1
- package/dist/ai-service/agent/tools2/registry.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/registry.js +15 -37
- package/dist/ai-service/agent/tools2/registry.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/bash.d.ts +1 -1
- package/dist/ai-service/agent/tools2/tools/edit.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/edit.js +4 -9
- package/dist/ai-service/agent/tools2/tools/edit.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/grep.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/grep.js +7 -73
- package/dist/ai-service/agent/tools2/tools/grep.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/read.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/read.js +4 -9
- package/dist/ai-service/agent/tools2/tools/read.js.map +1 -1
- package/dist/ai-service/agent/tools2/types.d.ts +8 -40
- package/dist/ai-service/agent/tools2/types.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/types.js +3 -41
- package/dist/ai-service/agent/tools2/types.js.map +1 -1
- package/dist/ai-service/app-interface/filesystem/handlers/skill-handler.d.ts +1 -0
- package/dist/ai-service/app-interface/filesystem/handlers/skill-handler.d.ts.map +1 -1
- package/dist/ai-service/app-interface/filesystem/handlers/skill-handler.js +54 -60
- package/dist/ai-service/app-interface/filesystem/handlers/skill-handler.js.map +1 -1
- package/dist/ai-service/chat/chat-session-store.d.ts +0 -6
- package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
- package/dist/ai-service/chat/chat-session-store.js +0 -44
- package/dist/ai-service/chat/chat-session-store.js.map +1 -1
- package/dist/ai-service/features.d.ts +0 -8
- package/dist/ai-service/features.d.ts.map +1 -1
- package/dist/ai-service/features.js +0 -8
- package/dist/ai-service/features.js.map +1 -1
- package/dist/ai-service/index.d.ts +2 -34
- package/dist/ai-service/index.d.ts.map +1 -1
- package/dist/ai-service/index.js +18 -112
- package/dist/ai-service/index.js.map +1 -1
- package/dist/ai-service/integrations/metadata-storage/local.d.ts.map +1 -1
- package/dist/ai-service/integrations/metadata-storage/local.js +2 -4
- package/dist/ai-service/integrations/metadata-storage/local.js.map +1 -1
- package/dist/ai-service/integrations/store.d.ts +3 -6
- package/dist/ai-service/integrations/store.d.ts.map +1 -1
- package/dist/ai-service/integrations/store.js +6 -96
- package/dist/ai-service/integrations/store.js.map +1 -1
- package/dist/ai-service/judge/judge-executor.js +1 -1
- package/dist/ai-service/judge/judge-executor.js.map +1 -1
- package/dist/ai-service/judge/tools/playwright-action.d.ts +1 -1
- package/dist/ai-service/llm/client.d.ts.map +1 -1
- package/dist/ai-service/llm/client.js +13 -26
- package/dist/ai-service/llm/client.js.map +1 -1
- package/dist/ai-service/llm/context-v2/adapter.d.ts +0 -2
- package/dist/ai-service/llm/context-v2/adapter.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/adapter.js +0 -6
- package/dist/ai-service/llm/context-v2/adapter.js.map +1 -1
- package/dist/ai-service/llm/context-v2/context.d.ts +0 -17
- package/dist/ai-service/llm/context-v2/context.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/context.js +1 -54
- package/dist/ai-service/llm/context-v2/context.js.map +1 -1
- package/dist/ai-service/llm/context-v2/conversation-context.d.ts +1 -11
- package/dist/ai-service/llm/context-v2/conversation-context.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.d.ts +1 -1
- package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.js +6 -42
- package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.js.map +1 -1
- package/dist/ai-service/llm/context-v2/types.d.ts +0 -4
- package/dist/ai-service/llm/context-v2/types.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/types.js.map +1 -1
- package/dist/ai-service/llm/error.js +1 -1
- package/dist/ai-service/llm/error.js.map +1 -1
- package/dist/ai-service/llm/interaction/adapters/vercel.js +5 -5
- package/dist/ai-service/llm/stream/config.d.ts +1 -1
- package/dist/ai-service/llm/stream/config.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/config.js.map +1 -1
- package/dist/ai-service/llm/stream/observers/llmobs.js +1 -1
- package/dist/ai-service/llm/stream/observers/llmobs.js.map +1 -1
- package/dist/ai-service/llm/stream/observers/logging.d.ts +0 -20
- package/dist/ai-service/llm/stream/observers/logging.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/observers/logging.js +18 -115
- package/dist/ai-service/llm/stream/observers/logging.js.map +1 -1
- package/dist/ai-service/llm/stream/observers/retry-notification.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/observers/retry-notification.js +1 -2
- package/dist/ai-service/llm/stream/observers/retry-notification.js.map +1 -1
- package/dist/ai-service/llm/stream/orchestrator.js +4 -4
- package/dist/ai-service/llm/stream/orchestrator.js.map +1 -1
- package/dist/ai-service/llm/stream/retry-engine.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/retry-engine.js +1 -1
- package/dist/ai-service/llm/stream/retry-engine.js.map +1 -1
- package/dist/ai-service/llmobs/otel-exporter.d.ts +14 -111
- package/dist/ai-service/llmobs/otel-exporter.d.ts.map +1 -1
- package/dist/ai-service/llmobs/otel-exporter.js +66 -441
- package/dist/ai-service/llmobs/otel-exporter.js.map +1 -1
- package/dist/ai-service/llmobs/tracer.d.ts.map +1 -1
- package/dist/ai-service/llmobs/tracer.js +4 -40
- package/dist/ai-service/llmobs/tracer.js.map +1 -1
- package/dist/ai-service/mcp/playwright-server.d.ts.map +1 -1
- package/dist/ai-service/mcp/playwright-server.js +2 -11
- package/dist/ai-service/mcp/playwright-server.js.map +1 -1
- package/dist/ai-service/security/safety-classifier.d.ts.map +1 -1
- package/dist/ai-service/security/safety-classifier.js +3 -9
- package/dist/ai-service/security/safety-classifier.js.map +1 -1
- package/dist/ai-service/skills/index.d.ts +11 -23
- package/dist/ai-service/skills/index.d.ts.map +1 -1
- package/dist/ai-service/skills/index.js +21 -86
- package/dist/ai-service/skills/index.js.map +1 -1
- package/dist/ai-service/skills/system/superblocks-api/references/code-blocks.generated.d.ts +1 -1
- package/dist/ai-service/skills/system/superblocks-api/references/code-blocks.generated.d.ts.map +1 -1
- package/dist/ai-service/skills/system/superblocks-api/references/code-blocks.generated.js +0 -56
- package/dist/ai-service/skills/system/superblocks-api/references/code-blocks.generated.js.map +1 -1
- package/dist/ai-service/skills/system/superblocks-api/references/sql-databases.generated.d.ts +1 -1
- package/dist/ai-service/skills/system/superblocks-api/references/sql-databases.generated.d.ts.map +1 -1
- package/dist/ai-service/skills/system/superblocks-api/references/sql-databases.generated.js +11 -143
- package/dist/ai-service/skills/system/superblocks-api/references/sql-databases.generated.js.map +1 -1
- package/dist/ai-service/skills/system/superblocks-api/skill.generated.d.ts +1 -1
- package/dist/ai-service/skills/system/superblocks-api/skill.generated.d.ts.map +1 -1
- package/dist/ai-service/skills/system/superblocks-api/skill.generated.js +3 -130
- package/dist/ai-service/skills/system/superblocks-api/skill.generated.js.map +1 -1
- package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.d.ts +1 -1
- package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.d.ts.map +1 -1
- package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.js +17 -97
- package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.js.map +1 -1
- package/dist/ai-service/skills/types.d.ts +0 -24
- package/dist/ai-service/skills/types.d.ts.map +1 -1
- package/dist/ai-service/skills/types.js +0 -45
- package/dist/ai-service/skills/types.js.map +1 -1
- package/dist/ai-service/state-machine/clark-fsm.d.ts +2 -33
- package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
- package/dist/ai-service/state-machine/clark-fsm.js +1 -6
- package/dist/ai-service/state-machine/clark-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 +21 -24
- 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 +5 -120
- package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
- package/dist/ai-service/state-machine/mocks.d.ts.map +1 -1
- package/dist/ai-service/state-machine/mocks.js +0 -23
- package/dist/ai-service/state-machine/mocks.js.map +1 -1
- package/dist/ai-service/state-machine/traced-fsm.d.ts.map +1 -1
- package/dist/ai-service/state-machine/traced-fsm.js +1 -1
- package/dist/ai-service/state-machine/traced-fsm.js.map +1 -1
- package/dist/ai-service/test-utils/anthropic-service-mock.d.ts +2 -0
- package/dist/ai-service/test-utils/anthropic-service-mock.d.ts.map +1 -0
- package/dist/ai-service/test-utils/anthropic-service-mock.js +91 -0
- package/dist/ai-service/test-utils/anthropic-service-mock.js.map +1 -0
- package/dist/ai-service/test-utils/app-generation-mocks/orders-app.d.ts +3 -0
- package/dist/ai-service/test-utils/app-generation-mocks/orders-app.d.ts.map +1 -0
- package/dist/ai-service/test-utils/app-generation-mocks/orders-app.js +886 -0
- package/dist/ai-service/test-utils/app-generation-mocks/orders-app.js.map +1 -0
- package/dist/ai-service/test-utils/app-generation-mocks/reprompt.d.ts +3 -0
- package/dist/ai-service/test-utils/app-generation-mocks/reprompt.d.ts.map +1 -0
- package/dist/ai-service/test-utils/app-generation-mocks/reprompt.js +70 -0
- package/dist/ai-service/test-utils/app-generation-mocks/reprompt.js.map +1 -0
- package/dist/ai-service/test-utils/app-generation-mocks/smoketest.d.ts +3 -0
- package/dist/ai-service/test-utils/app-generation-mocks/smoketest.d.ts.map +1 -0
- package/dist/ai-service/test-utils/app-generation-mocks/smoketest.js +109 -0
- package/dist/ai-service/test-utils/app-generation-mocks/smoketest.js.map +1 -0
- package/dist/ai-service/test-utils/mock-utils.d.ts +12 -0
- package/dist/ai-service/test-utils/mock-utils.d.ts.map +1 -0
- package/dist/ai-service/test-utils/mock-utils.js +70 -0
- package/dist/ai-service/test-utils/mock-utils.js.map +1 -0
- package/dist/ai-service/util/safe-stringify.d.ts +2 -0
- package/dist/ai-service/util/safe-stringify.d.ts.map +1 -0
- package/dist/ai-service/util/safe-stringify.js +75 -0
- package/dist/ai-service/util/safe-stringify.js.map +1 -0
- package/dist/file-sync-vite-plugin.d.ts.map +1 -1
- package/dist/file-sync-vite-plugin.js +22 -52
- package/dist/file-sync-vite-plugin.js.map +1 -1
- package/dist/ids.d.ts +0 -1
- package/dist/ids.d.ts.map +1 -1
- package/dist/ids.js +0 -3
- package/dist/ids.js.map +1 -1
- package/dist/refactor/entities.d.ts.map +1 -1
- package/dist/refactor/entities.js +1 -0
- package/dist/refactor/entities.js.map +1 -1
- package/dist/socket-manager.d.ts.map +1 -1
- package/dist/socket-manager.js +3 -21
- package/dist/socket-manager.js.map +1 -1
- package/dist/sync-service/index.d.ts +0 -4
- package/dist/sync-service/index.d.ts.map +1 -1
- package/dist/sync-service/index.js +0 -6
- package/dist/sync-service/index.js.map +1 -1
- package/dist/util/logger.d.ts +0 -4
- package/dist/util/logger.d.ts.map +1 -1
- package/dist/util/logger.js +19 -77
- package/dist/util/logger.js.map +1 -1
- package/package.json +14 -17
- package/dist/ai-service/agent/tools/get-logs.d.ts +0 -72
- package/dist/ai-service/agent/tools/get-logs.d.ts.map +0 -1
- package/dist/ai-service/agent/tools/get-logs.js +0 -343
- package/dist/ai-service/agent/tools/get-logs.js.map +0 -1
- package/dist/ai-service/agent/tools/integrations/errors.d.ts +0 -9
- package/dist/ai-service/agent/tools/integrations/errors.d.ts.map +0 -1
- package/dist/ai-service/agent/tools/integrations/errors.js +0 -35
- package/dist/ai-service/agent/tools/integrations/errors.js.map +0 -1
- package/dist/ai-service/facts/helpers.d.ts +0 -9
- package/dist/ai-service/facts/helpers.d.ts.map +0 -1
- package/dist/ai-service/facts/helpers.js +0 -72
- package/dist/ai-service/facts/helpers.js.map +0 -1
- package/dist/ai-service/facts/index.d.ts +0 -4
- package/dist/ai-service/facts/index.d.ts.map +0 -1
- package/dist/ai-service/facts/index.js +0 -3
- package/dist/ai-service/facts/index.js.map +0 -1
- package/dist/ai-service/facts/knowledge-manager.d.ts +0 -50
- package/dist/ai-service/facts/knowledge-manager.d.ts.map +0 -1
- package/dist/ai-service/facts/knowledge-manager.js +0 -195
- package/dist/ai-service/facts/knowledge-manager.js.map +0 -1
- package/dist/ai-service/recording/index.d.ts +0 -25
- package/dist/ai-service/recording/index.d.ts.map +0 -1
- package/dist/ai-service/recording/index.js +0 -27
- package/dist/ai-service/recording/index.js.map +0 -1
- package/dist/ai-service/recording/recorders/llm-recorder.d.ts +0 -35
- package/dist/ai-service/recording/recorders/llm-recorder.d.ts.map +0 -1
- package/dist/ai-service/recording/recorders/llm-recorder.js +0 -221
- package/dist/ai-service/recording/recorders/llm-recorder.js.map +0 -1
- package/dist/ai-service/recording/recorders/socket-recorder.d.ts +0 -38
- package/dist/ai-service/recording/recorders/socket-recorder.d.ts.map +0 -1
- package/dist/ai-service/recording/recorders/socket-recorder.js +0 -44
- package/dist/ai-service/recording/recorders/socket-recorder.js.map +0 -1
- package/dist/ai-service/recording/recorders/tool-recorder.d.ts +0 -25
- package/dist/ai-service/recording/recorders/tool-recorder.d.ts.map +0 -1
- package/dist/ai-service/recording/recorders/tool-recorder.js +0 -58
- package/dist/ai-service/recording/recorders/tool-recorder.js.map +0 -1
- package/dist/ai-service/recording/recording-manager.d.ts +0 -104
- package/dist/ai-service/recording/recording-manager.d.ts.map +0 -1
- package/dist/ai-service/recording/recording-manager.js +0 -308
- package/dist/ai-service/recording/recording-manager.js.map +0 -1
- package/dist/ai-service/recording/storage/session-recording-storage.d.ts +0 -143
- package/dist/ai-service/recording/storage/session-recording-storage.d.ts.map +0 -1
- package/dist/ai-service/recording/storage/session-recording-storage.js +0 -374
- package/dist/ai-service/recording/storage/session-recording-storage.js.map +0 -1
- package/dist/ai-service/recording/types.d.ts +0 -148
- package/dist/ai-service/recording/types.d.ts.map +0 -1
- package/dist/ai-service/recording/types.js +0 -8
- package/dist/ai-service/recording/types.js.map +0 -1
- package/dist/ai-service/skills/system/_registry.generated.d.ts +0 -6
- package/dist/ai-service/skills/system/_registry.generated.d.ts.map +0 -1
- package/dist/ai-service/skills/system/_registry.generated.js +0 -24
- package/dist/ai-service/skills/system/_registry.generated.js.map +0 -1
- package/dist/ai-service/skills/system/superblocks-frontend/references/embedding.generated.d.ts +0 -2
- package/dist/ai-service/skills/system/superblocks-frontend/references/embedding.generated.d.ts.map +0 -1
- package/dist/ai-service/skills/system/superblocks-frontend/references/embedding.generated.js +0 -155
- package/dist/ai-service/skills/system/superblocks-frontend/references/embedding.generated.js.map +0 -1
- package/dist/util/log-sanitizer.d.ts +0 -42
- package/dist/util/log-sanitizer.d.ts.map +0 -1
- package/dist/util/log-sanitizer.js +0 -177
- package/dist/util/log-sanitizer.js.map +0 -1
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"orders-app.js","sourceRoot":"","sources":["../../../../src/ai-service/test-utils/app-generation-mocks/orders-app.ts"],"names":[],"mappings":"AAAA,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;kIAo3BmH,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const _default: "BUILDING APPLICATION FROM MOCK RESPONSE: I will add a title to the app.\n\n<boltArtifact id=\"hello-world-api-app\" title=\"Hello World API App With Title\">\n<boltAction type=\"file\" filePath=\"pages/Page1/scope.ts\">\nimport { createScope, SbApi } from \"@superblocksteam/library\";\n\nexport const Page1Scope = createScope<{\n HelloText: any;\n HelloTitle: any;\n}>(\n () => ({\n getHelloWorldApi: SbApi({}),\n }),\n {\n name: \"Page1\",\n }\n);\n\nexport const Page1 = Page1Scope.entities;\n</boltAction>\n<boltAction type=\"file\" filePath=\"pages/Page1/index.tsx\">\nimport {\n Page,\n Dim,\n Section,\n Column,\n Text,\n Button,\n EventFlow,\n computed,\n registerPage,\n} from \"@superblocksteam/library\";\nimport { Page1, Page1Scope } from \"./scope\";\n\nfunction PageContent() {\n const { HelloText, HelloTitle, getHelloWorldApi } = Page1;\n\n return (\n <Page \n name=\"Page1\" \n height={Dim.fill()} \n width={Dim.fill()}\n onLoad={EventFlow.runApis([getHelloWorldApi])}\n >\n <Section height={Dim.fill()}>\n <Column width={Dim.fill()} layout=\"vertical\" spacing={Dim.px(12)}>\n <Text bind={HelloTitle} text=\"This is my hello world app\" />\n <Button\n label=\"Fetch Hello World\"\n onClick={EventFlow.runApis([getHelloWorldApi])}\n />\n <Text\n width={Dim.fit()}\n height={Dim.fit()}\n text={computed(() => `${getHelloWorldApi.response || \"\"}`)}\n bind={HelloText}\n />\n </Column>\n </Section>\n </Page>\n );\n}\n\nexport default registerPage(PageContent, Page1Scope);\n</boltAction>\n\n</boltArtifact>\n\nThe app has now a `This is my hello world app` title;";
|
|
2
|
+
export default _default;
|
|
3
|
+
//# sourceMappingURL=reprompt.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reprompt.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/test-utils/app-generation-mocks/reprompt.ts"],"names":[],"mappings":";AAAA,wBAoEyD"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
export default `BUILDING APPLICATION FROM MOCK RESPONSE: I will add a title to the app.
|
|
2
|
+
|
|
3
|
+
<boltArtifact id="hello-world-api-app" title="Hello World API App With Title">
|
|
4
|
+
<boltAction type="file" filePath="pages/Page1/scope.ts">
|
|
5
|
+
import { createScope, SbApi } from "@superblocksteam/library";
|
|
6
|
+
|
|
7
|
+
export const Page1Scope = createScope<{
|
|
8
|
+
HelloText: any;
|
|
9
|
+
HelloTitle: any;
|
|
10
|
+
}>(
|
|
11
|
+
() => ({
|
|
12
|
+
getHelloWorldApi: SbApi({}),
|
|
13
|
+
}),
|
|
14
|
+
{
|
|
15
|
+
name: "Page1",
|
|
16
|
+
}
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
export const Page1 = Page1Scope.entities;
|
|
20
|
+
</boltAction>
|
|
21
|
+
<boltAction type="file" filePath="pages/Page1/index.tsx">
|
|
22
|
+
import {
|
|
23
|
+
Page,
|
|
24
|
+
Dim,
|
|
25
|
+
Section,
|
|
26
|
+
Column,
|
|
27
|
+
Text,
|
|
28
|
+
Button,
|
|
29
|
+
EventFlow,
|
|
30
|
+
computed,
|
|
31
|
+
registerPage,
|
|
32
|
+
} from "@superblocksteam/library";
|
|
33
|
+
import { Page1, Page1Scope } from "./scope";
|
|
34
|
+
|
|
35
|
+
function PageContent() {
|
|
36
|
+
const { HelloText, HelloTitle, getHelloWorldApi } = Page1;
|
|
37
|
+
|
|
38
|
+
return (
|
|
39
|
+
<Page
|
|
40
|
+
name="Page1"
|
|
41
|
+
height={Dim.fill()}
|
|
42
|
+
width={Dim.fill()}
|
|
43
|
+
onLoad={EventFlow.runApis([getHelloWorldApi])}
|
|
44
|
+
>
|
|
45
|
+
<Section height={Dim.fill()}>
|
|
46
|
+
<Column width={Dim.fill()} layout="vertical" spacing={Dim.px(12)}>
|
|
47
|
+
<Text bind={HelloTitle} text="This is my hello world app" />
|
|
48
|
+
<Button
|
|
49
|
+
label="Fetch Hello World"
|
|
50
|
+
onClick={EventFlow.runApis([getHelloWorldApi])}
|
|
51
|
+
/>
|
|
52
|
+
<Text
|
|
53
|
+
width={Dim.fit()}
|
|
54
|
+
height={Dim.fit()}
|
|
55
|
+
text={computed(() => \`\${getHelloWorldApi.response || ""}\`)}
|
|
56
|
+
bind={HelloText}
|
|
57
|
+
/>
|
|
58
|
+
</Column>
|
|
59
|
+
</Section>
|
|
60
|
+
</Page>
|
|
61
|
+
);
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
export default registerPage(PageContent, Page1Scope);
|
|
65
|
+
</boltAction>
|
|
66
|
+
|
|
67
|
+
</boltArtifact>
|
|
68
|
+
|
|
69
|
+
The app has now a \`This is my hello world app\` title;`;
|
|
70
|
+
//# sourceMappingURL=reprompt.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"reprompt.js","sourceRoot":"","sources":["../../../../src/ai-service/test-utils/app-generation-mocks/reprompt.ts"],"names":[],"mappings":"AAAA,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;wDAoEyC,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
declare const _default: "BUILDING APPLICATION FROM MOCK RESPONSE: I'll create an app with an API that returns \"Hello World from API App Generation\" and connect it to a text component.\n\n<boltArtifact id=\"hello-world-api-app\" title=\"Hello World API App\">\n<boltAction type=\"file\" filePath=\"pages/Page1/scope.ts\">\nimport { createScope, SbApi } from \"@superblocksteam/library\";\n\nexport const Page1Scope = createScope<{\n HelloText: any;\n}>(\n () => ({\n getHelloWorldApi: SbApi({}),\n }),\n {\n name: \"Page1\",\n }\n);\n\nexport const Page1 = Page1Scope.entities;\n</boltAction>\n\n<boltAction type=\"file\" filePath=\"pages/Page1/index.tsx\">\nimport {\n Page,\n Dim,\n Section,\n Column,\n Text,\n Button,\n EventFlow,\n computed,\n registerPage,\n} from \"@superblocksteam/library\";\nimport { Page1, Page1Scope } from \"./scope\";\n\nfunction PageContent() {\n const { HelloText, getHelloWorldApi } = Page1;\n\n return (\n <Page\n name=\"Page1\"\n height={Dim.fill()}\n width={Dim.fill()}\n onLoad={EventFlow.runApis([getHelloWorldApi])}\n >\n <Section height={Dim.fill()}>\n <Column width={Dim.fill()} layout=\"vertical\" spacing={Dim.px(12)}>\n <Button\n label=\"Fetch Hello World\"\n onClick={EventFlow.runApis([getHelloWorldApi])}\n />\n <Text\n width={Dim.fit()}\n height={Dim.fit()}\n text={computed(() => `${getHelloWorldApi.response || \"\"}`)}\n bind={HelloText}\n />\n </Column>\n </Section>\n </Page>\n );\n}\n\nexport default registerPage(PageContent, Page1Scope);\n</boltAction>\n\n<boltAction type=\"file\" filePath=\"pages/Page1/apis/getHelloWorldApi.ts\">\nimport {\n Api,\n Athena,\n BigQuery,\n DynamoDb,\n JavaScript,\n Python,\n Databricks,\n MicrosoftSql,\n MySql,\n Snowflake,\n PostgreSQL,\n RestApi,\n Email,\n Salesforce,\n Conditional,\n TryCatch,\n Variables,\n Loop,\n Parallel,\n Throw,\n Return,\n} from \"@superblocksteam/library\";\n\nexport default new Api(\"getHelloWorldApi\", [\n new JavaScript(\"returnHelloWorld\", {\n fn: () => {\n return \"Hello World from API App Generation\";\n },\n }),\n]);\n</boltAction>\n</boltArtifact>\n\nThe app is now set up with:\n\n1. **API**: `getHelloWorldApi` that returns the string \"Hello World from API App Generation\"\n2. **Text**: Connected to display the API response value\n3. **Button**: To manually trigger the API call\n4. **Auto-load**: The API runs automatically when the page loads\n\nThe text will show the API response, and you can click the button to refresh the data from the API.";
|
|
2
|
+
export default _default;
|
|
3
|
+
//# sourceMappingURL=smoketest.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smoketest.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/test-utils/app-generation-mocks/smoketest.ts"],"names":[],"mappings":";AAAA,wBA2GqG"}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
export default `BUILDING APPLICATION FROM MOCK RESPONSE: I'll create an app with an API that returns "Hello World from API App Generation" and connect it to a text component.
|
|
2
|
+
|
|
3
|
+
<boltArtifact id="hello-world-api-app" title="Hello World API App">
|
|
4
|
+
<boltAction type="file" filePath="pages/Page1/scope.ts">
|
|
5
|
+
import { createScope, SbApi } from "@superblocksteam/library";
|
|
6
|
+
|
|
7
|
+
export const Page1Scope = createScope<{
|
|
8
|
+
HelloText: any;
|
|
9
|
+
}>(
|
|
10
|
+
() => ({
|
|
11
|
+
getHelloWorldApi: SbApi({}),
|
|
12
|
+
}),
|
|
13
|
+
{
|
|
14
|
+
name: "Page1",
|
|
15
|
+
}
|
|
16
|
+
);
|
|
17
|
+
|
|
18
|
+
export const Page1 = Page1Scope.entities;
|
|
19
|
+
</boltAction>
|
|
20
|
+
|
|
21
|
+
<boltAction type="file" filePath="pages/Page1/index.tsx">
|
|
22
|
+
import {
|
|
23
|
+
Page,
|
|
24
|
+
Dim,
|
|
25
|
+
Section,
|
|
26
|
+
Column,
|
|
27
|
+
Text,
|
|
28
|
+
Button,
|
|
29
|
+
EventFlow,
|
|
30
|
+
computed,
|
|
31
|
+
registerPage,
|
|
32
|
+
} from "@superblocksteam/library";
|
|
33
|
+
import { Page1, Page1Scope } from "./scope";
|
|
34
|
+
|
|
35
|
+
function PageContent() {
|
|
36
|
+
const { HelloText, getHelloWorldApi } = Page1;
|
|
37
|
+
|
|
38
|
+
return (
|
|
39
|
+
<Page
|
|
40
|
+
name="Page1"
|
|
41
|
+
height={Dim.fill()}
|
|
42
|
+
width={Dim.fill()}
|
|
43
|
+
onLoad={EventFlow.runApis([getHelloWorldApi])}
|
|
44
|
+
>
|
|
45
|
+
<Section height={Dim.fill()}>
|
|
46
|
+
<Column width={Dim.fill()} layout="vertical" spacing={Dim.px(12)}>
|
|
47
|
+
<Button
|
|
48
|
+
label="Fetch Hello World"
|
|
49
|
+
onClick={EventFlow.runApis([getHelloWorldApi])}
|
|
50
|
+
/>
|
|
51
|
+
<Text
|
|
52
|
+
width={Dim.fit()}
|
|
53
|
+
height={Dim.fit()}
|
|
54
|
+
text={computed(() => \`\${getHelloWorldApi.response || ""}\`)}
|
|
55
|
+
bind={HelloText}
|
|
56
|
+
/>
|
|
57
|
+
</Column>
|
|
58
|
+
</Section>
|
|
59
|
+
</Page>
|
|
60
|
+
);
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
export default registerPage(PageContent, Page1Scope);
|
|
64
|
+
</boltAction>
|
|
65
|
+
|
|
66
|
+
<boltAction type="file" filePath="pages/Page1/apis/getHelloWorldApi.ts">
|
|
67
|
+
import {
|
|
68
|
+
Api,
|
|
69
|
+
Athena,
|
|
70
|
+
BigQuery,
|
|
71
|
+
DynamoDb,
|
|
72
|
+
JavaScript,
|
|
73
|
+
Python,
|
|
74
|
+
Databricks,
|
|
75
|
+
MicrosoftSql,
|
|
76
|
+
MySql,
|
|
77
|
+
Snowflake,
|
|
78
|
+
PostgreSQL,
|
|
79
|
+
RestApi,
|
|
80
|
+
Email,
|
|
81
|
+
Salesforce,
|
|
82
|
+
Conditional,
|
|
83
|
+
TryCatch,
|
|
84
|
+
Variables,
|
|
85
|
+
Loop,
|
|
86
|
+
Parallel,
|
|
87
|
+
Throw,
|
|
88
|
+
Return,
|
|
89
|
+
} from "@superblocksteam/library";
|
|
90
|
+
|
|
91
|
+
export default new Api("getHelloWorldApi", [
|
|
92
|
+
new JavaScript("returnHelloWorld", {
|
|
93
|
+
fn: () => {
|
|
94
|
+
return "Hello World from API App Generation";
|
|
95
|
+
},
|
|
96
|
+
}),
|
|
97
|
+
]);
|
|
98
|
+
</boltAction>
|
|
99
|
+
</boltArtifact>
|
|
100
|
+
|
|
101
|
+
The app is now set up with:
|
|
102
|
+
|
|
103
|
+
1. **API**: \`getHelloWorldApi\` that returns the string "Hello World from API App Generation"
|
|
104
|
+
2. **Text**: Connected to display the API response value
|
|
105
|
+
3. **Button**: To manually trigger the API call
|
|
106
|
+
4. **Auto-load**: The API runs automatically when the page loads
|
|
107
|
+
|
|
108
|
+
The text will show the API response, and you can click the button to refresh the data from the API.`;
|
|
109
|
+
//# sourceMappingURL=smoketest.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"smoketest.js","sourceRoot":"","sources":["../../../../src/ai-service/test-utils/app-generation-mocks/smoketest.ts"],"names":[],"mappings":"AAAA,eAAe;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;oGA2GqF,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export declare const APP_GEN_MOCKS: Record<string, string>;
|
|
2
|
+
export declare const getPromptFromRequest: (requestInit?: RequestInit) => any;
|
|
3
|
+
export declare const getMockContent: (prompt: string) => string;
|
|
4
|
+
export declare function extractMockNameFromPrompt(prompt: string): string | null;
|
|
5
|
+
/**
|
|
6
|
+
* Splits a mock response into chunks where:
|
|
7
|
+
* - Simple text sections are kept as single chunks
|
|
8
|
+
* - Each boltAction (between <boltAction> tags) is kept as a separate, complete chunk
|
|
9
|
+
* - Preserves the exact content and structure of boltActions
|
|
10
|
+
*/
|
|
11
|
+
export declare function splitGenMockIntoChunks(generationMock: string): string[];
|
|
12
|
+
//# sourceMappingURL=mock-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-utils.d.ts","sourceRoot":"","sources":["../../../src/ai-service/test-utils/mock-utils.ts"],"names":[],"mappings":"AAIA,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAIhD,CAAC;AAEF,eAAO,MAAM,oBAAoB,GAAI,cAAc,WAAW,QAc7D,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,QAAQ,MAAM,KAAG,MAS/C,CAAC;AAEF,wBAAgB,yBAAyB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAGvE;AAED;;;;;GAKG;AACH,wBAAgB,sBAAsB,CAAC,cAAc,EAAE,MAAM,GAAG,MAAM,EAAE,CAqCvE"}
|
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
import ordersAppMockContent from "./app-generation-mocks/orders-app.js";
|
|
2
|
+
import repromptMockContent from "./app-generation-mocks/reprompt.js";
|
|
3
|
+
import smoketestMockContent from "./app-generation-mocks/smoketest.js";
|
|
4
|
+
export const APP_GEN_MOCKS = {
|
|
5
|
+
smoketest: smoketestMockContent,
|
|
6
|
+
orders_app: ordersAppMockContent,
|
|
7
|
+
reprompt: repromptMockContent,
|
|
8
|
+
};
|
|
9
|
+
export const getPromptFromRequest = (requestInit) => {
|
|
10
|
+
if (!requestInit) {
|
|
11
|
+
return "";
|
|
12
|
+
}
|
|
13
|
+
const body = JSON.parse(requestInit.body);
|
|
14
|
+
const userMessage = body.messages.filter((message) => message.role === "user")[0].content[0].text;
|
|
15
|
+
// filter out old prompts to only get the new one if its a reprompt
|
|
16
|
+
if (userMessage.includes("new prompt is:")) {
|
|
17
|
+
return userMessage.split("new prompt is:")[1].trim();
|
|
18
|
+
}
|
|
19
|
+
return userMessage;
|
|
20
|
+
};
|
|
21
|
+
export const getMockContent = (prompt) => {
|
|
22
|
+
const mockName = extractMockNameFromPrompt(prompt);
|
|
23
|
+
if (mockName && APP_GEN_MOCKS[mockName]) {
|
|
24
|
+
return APP_GEN_MOCKS[mockName];
|
|
25
|
+
}
|
|
26
|
+
return ("Could not find mock content for prompt. Please use a valid mock name with structure SB_MOCK_APP_<mock-name>. Currently available mocks are: " +
|
|
27
|
+
Object.keys(APP_GEN_MOCKS).join(", "));
|
|
28
|
+
};
|
|
29
|
+
export function extractMockNameFromPrompt(prompt) {
|
|
30
|
+
const mockMatch = prompt.match(/^SB_MOCK_APP_(\w+)$/);
|
|
31
|
+
return mockMatch?.[1] || null;
|
|
32
|
+
}
|
|
33
|
+
/**
|
|
34
|
+
* Splits a mock response into chunks where:
|
|
35
|
+
* - Simple text sections are kept as single chunks
|
|
36
|
+
* - Each boltAction (between <boltAction> tags) is kept as a separate, complete chunk
|
|
37
|
+
* - Preserves the exact content and structure of boltActions
|
|
38
|
+
*/
|
|
39
|
+
export function splitGenMockIntoChunks(generationMock) {
|
|
40
|
+
const chunks = [];
|
|
41
|
+
let currentIndex = 0;
|
|
42
|
+
// Regular expression to match boltAction tags with their content
|
|
43
|
+
const boltActionRegex = /<boltAction[^>]*>[\s\S]*?<\/boltAction>/g;
|
|
44
|
+
let match;
|
|
45
|
+
while ((match = boltActionRegex.exec(generationMock)) !== null) {
|
|
46
|
+
const boltActionStart = match.index;
|
|
47
|
+
const boltActionEnd = boltActionStart + match[0].length;
|
|
48
|
+
// Add any text before this boltAction as a text chunk
|
|
49
|
+
if (boltActionStart > currentIndex) {
|
|
50
|
+
const textContent = generationMock
|
|
51
|
+
.slice(currentIndex, boltActionStart)
|
|
52
|
+
.trim();
|
|
53
|
+
if (textContent) {
|
|
54
|
+
chunks.push(textContent);
|
|
55
|
+
}
|
|
56
|
+
}
|
|
57
|
+
// Add the boltAction as a separate chunk
|
|
58
|
+
chunks.push(match[0]);
|
|
59
|
+
currentIndex = boltActionEnd;
|
|
60
|
+
}
|
|
61
|
+
// Add any remaining text after the last boltAction
|
|
62
|
+
if (currentIndex < generationMock.length) {
|
|
63
|
+
const textContent = generationMock.slice(currentIndex).trim();
|
|
64
|
+
if (textContent) {
|
|
65
|
+
chunks.push(textContent);
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
return chunks;
|
|
69
|
+
}
|
|
70
|
+
//# sourceMappingURL=mock-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-utils.js","sourceRoot":"","sources":["../../../src/ai-service/test-utils/mock-utils.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe-stringify.d.ts","sourceRoot":"","sources":["../../../src/ai-service/util/safe-stringify.ts"],"names":[],"mappings":"AAQA,wBAAgB,iBAAiB,CAC/B,GAAG,EAAE,OAAO,EACZ,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,GACtB,MAAM,CA0ER"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
const SENSITIVE_KEYS = [
|
|
2
|
+
"password",
|
|
3
|
+
"api_key",
|
|
4
|
+
"jwt",
|
|
5
|
+
"access_token",
|
|
6
|
+
"refresh_token",
|
|
7
|
+
];
|
|
8
|
+
export function safeJsonStringify(obj, space) {
|
|
9
|
+
if (obj === null || obj === undefined) {
|
|
10
|
+
return "{}";
|
|
11
|
+
}
|
|
12
|
+
if (typeof obj === "string") {
|
|
13
|
+
return obj;
|
|
14
|
+
}
|
|
15
|
+
const seen = new WeakSet();
|
|
16
|
+
return JSON.stringify(obj, (key, value) => {
|
|
17
|
+
// Handle null and primitives first
|
|
18
|
+
if (value === null || value === undefined) {
|
|
19
|
+
return value;
|
|
20
|
+
}
|
|
21
|
+
if (SENSITIVE_KEYS.includes(key.toLowerCase())) {
|
|
22
|
+
return "[REDACTED]";
|
|
23
|
+
}
|
|
24
|
+
// Handle circular references
|
|
25
|
+
if (typeof value === "object") {
|
|
26
|
+
if (seen.has(value)) {
|
|
27
|
+
return "[Circular Reference]";
|
|
28
|
+
}
|
|
29
|
+
seen.add(value);
|
|
30
|
+
if (value instanceof Error) {
|
|
31
|
+
return {
|
|
32
|
+
message: value.message,
|
|
33
|
+
stack: value.stack,
|
|
34
|
+
name: value.name,
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
// Check for toJSON method that might be broken
|
|
38
|
+
if (typeof value.toJSON === "function") {
|
|
39
|
+
try {
|
|
40
|
+
const jsonValue = value.toJSON();
|
|
41
|
+
// Recursively check if the result is serializable
|
|
42
|
+
return jsonValue;
|
|
43
|
+
}
|
|
44
|
+
catch (_error) {
|
|
45
|
+
// If toJSON throws, treat as non-serializable
|
|
46
|
+
return `[Object with broken toJSON: ${value.constructor?.name || "unknown"}]`;
|
|
47
|
+
}
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
// Try to serialize the value
|
|
51
|
+
try {
|
|
52
|
+
// This will throw if the value is not serializable
|
|
53
|
+
JSON.stringify(value, null, space);
|
|
54
|
+
return value;
|
|
55
|
+
}
|
|
56
|
+
catch (_error) {
|
|
57
|
+
// Handle non-serializable types
|
|
58
|
+
if (typeof value === "function") {
|
|
59
|
+
return `[Function: ${value.name || "anonymous"}]`;
|
|
60
|
+
}
|
|
61
|
+
if (typeof value === "symbol") {
|
|
62
|
+
return `[Symbol: ${value.toString()}]`;
|
|
63
|
+
}
|
|
64
|
+
if (typeof value === "bigint") {
|
|
65
|
+
return `[BigInt: ${value.toString()}]`;
|
|
66
|
+
}
|
|
67
|
+
if (typeof value === "object") {
|
|
68
|
+
// For objects that can't be serialized
|
|
69
|
+
return "[Non-serializable]";
|
|
70
|
+
}
|
|
71
|
+
return "[Non-serializable]";
|
|
72
|
+
}
|
|
73
|
+
}, space);
|
|
74
|
+
}
|
|
75
|
+
//# sourceMappingURL=safe-stringify.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"safe-stringify.js","sourceRoot":"","sources":["../../../src/ai-service/util/safe-stringify.ts"],"names":[],"mappings":"AAAA,MAAM,cAAc,GAAG;IACrB,UAAU;IACV,SAAS;IACT,KAAK;IACL,cAAc;IACd,eAAe;CAChB,CAAC;AAEF,MAAM,UAAU,iBAAiB,CAC/B,GAAY,EACZ,KAAuB;IAEvB,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO,IAAI,CAAC;IACd,CAAC;IACD,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE,CAAC;QAC5B,OAAO,GAAG,CAAC;IACb,CAAC;IACD,MAAM,IAAI,GAAG,IAAI,OAAO,EAAE,CAAC;IAE3B,OAAO,IAAI,CAAC,SAAS,CACnB,GAAG,EACH,CAAC,GAAG,EAAE,KAAK,EAAE,EAAE;QACb,mCAAmC;QACnC,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;YAC1C,OAAO,KAAK,CAAC;QACf,CAAC;QAED,IAAI,cAAc,CAAC,QAAQ,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,EAAE,CAAC;YAC/C,OAAO,YAAY,CAAC;QACtB,CAAC;QAED,6BAA6B;QAC7B,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;YAC9B,IAAI,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;gBACpB,OAAO,sBAAsB,CAAC;YAChC,CAAC;YACD,IAAI,CAAC,GAAG,CAAC,KAAK,CAAC,CAAC;YAEhB,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;gBAC3B,OAAO;oBACL,OAAO,EAAE,KAAK,CAAC,OAAO;oBACtB,KAAK,EAAE,KAAK,CAAC,KAAK;oBAClB,IAAI,EAAE,KAAK,CAAC,IAAI;iBACjB,CAAC;YACJ,CAAC;YAED,+CAA+C;YAC/C,IAAI,OAAO,KAAK,CAAC,MAAM,KAAK,UAAU,EAAE,CAAC;gBACvC,IAAI,CAAC;oBACH,MAAM,SAAS,GAAG,KAAK,CAAC,MAAM,EAAE,CAAC;oBACjC,kDAAkD;oBAClD,OAAO,SAAS,CAAC;gBACnB,CAAC;gBAAC,OAAO,MAAM,EAAE,CAAC;oBAChB,8CAA8C;oBAC9C,OAAO,+BAA+B,KAAK,CAAC,WAAW,EAAE,IAAI,IAAI,SAAS,GAAG,CAAC;gBAChF,CAAC;YACH,CAAC;QACH,CAAC;QAED,6BAA6B;QAC7B,IAAI,CAAC;YACH,mDAAmD;YACnD,IAAI,CAAC,SAAS,CAAC,KAAK,EAAE,IAAI,EAAE,KAAK,CAAC,CAAC;YACnC,OAAO,KAAK,CAAC;QACf,CAAC;QAAC,OAAO,MAAM,EAAE,CAAC;YAChB,gCAAgC;YAChC,IAAI,OAAO,KAAK,KAAK,UAAU,EAAE,CAAC;gBAChC,OAAO,cAAc,KAAK,CAAC,IAAI,IAAI,WAAW,GAAG,CAAC;YACpD,CAAC;YACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO,YAAY,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC;YACzC,CAAC;YACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,OAAO,YAAY,KAAK,CAAC,QAAQ,EAAE,GAAG,CAAC;YACzC,CAAC;YACD,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE,CAAC;gBAC9B,uCAAuC;gBACvC,OAAO,oBAAoB,CAAC;YAC9B,CAAC;YACD,OAAO,oBAAoB,CAAC;QAC9B,CAAC;IACH,CAAC,EACD,KAAK,CACN,CAAC;AACJ,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-sync-vite-plugin.d.ts","sourceRoot":"","sources":["../src/file-sync-vite-plugin.ts"],"names":[],"mappings":"AA+CA,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAW7B,OAAO,KAAK,EAAE,MAAM,EAA0B,MAAM,MAAM,CAAC;AAY3D,eAAO,MAAM,kBAAkB,EAAE,CAC/B,YAAY,EAAE,oBAAoB,EAClC,OAAO,CAAC,EAAE,qBAAqB,KAC5B;IAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAA;
|
|
1
|
+
{"version":3,"file":"file-sync-vite-plugin.d.ts","sourceRoot":"","sources":["../src/file-sync-vite-plugin.ts"],"names":[],"mappings":"AA+CA,OAAO,KAAK,EACV,qBAAqB,EACrB,oBAAoB,EACrB,MAAM,qBAAqB,CAAC;AAW7B,OAAO,KAAK,EAAE,MAAM,EAA0B,MAAM,MAAM,CAAC;AAY3D,eAAO,MAAM,kBAAkB,EAAE,CAC/B,YAAY,EAAE,oBAAoB,EAClC,OAAO,CAAC,EAAE,qBAAqB,KAC5B;IAAE,MAAM,EAAE,MAAM,EAAE,CAAC;IAAC,OAAO,EAAE,MAAM,IAAI,CAAA;CAgyC3C,CAAC"}
|
|
@@ -64,12 +64,6 @@ export const fileSyncVitePlugin = (pluginParams, options) => {
|
|
|
64
64
|
await aiService.waitUntilGenerationComplete();
|
|
65
65
|
});
|
|
66
66
|
}
|
|
67
|
-
// Wire up commit ID updates for recording sessions
|
|
68
|
-
if (aiService && syncService) {
|
|
69
|
-
syncService.on("commitIdChanged", (commitId) => {
|
|
70
|
-
void aiService.getRecordingManager().setCurrentCommitId(commitId);
|
|
71
|
-
});
|
|
72
|
-
}
|
|
73
67
|
const componentsManager = ComponentsManager.setInstance(pluginParams.tracer);
|
|
74
68
|
const lastImportErrorFiles = new Set();
|
|
75
69
|
let isFirstContentfulGeneration = true;
|
|
@@ -97,7 +91,6 @@ export const fileSyncVitePlugin = (pluginParams, options) => {
|
|
|
97
91
|
apply: "serve",
|
|
98
92
|
enforce: "pre",
|
|
99
93
|
async configureServer(server) {
|
|
100
|
-
const tracer = pluginParams.tracer;
|
|
101
94
|
config = server.config;
|
|
102
95
|
// Set up Vite module invalidation callback for SyncService
|
|
103
96
|
// This ensures that when Clark writes files, Vite's module cache is invalidated
|
|
@@ -111,9 +104,9 @@ export const fileSyncVitePlugin = (pluginParams, options) => {
|
|
|
111
104
|
}
|
|
112
105
|
});
|
|
113
106
|
}
|
|
114
|
-
// Wrap logger.error to
|
|
115
|
-
//
|
|
116
|
-
|
|
107
|
+
// Wrap logger.error to send errors to AI when it's busy
|
|
108
|
+
// Otherwise, let errors flow naturally through Vite's error handling
|
|
109
|
+
const originalErrorLogger = config.logger.error;
|
|
117
110
|
config.logger.error = (message, options) => {
|
|
118
111
|
if (aiService?.isBusy()) {
|
|
119
112
|
void aiService.handleBuildSystemError(new Error(message));
|
|
@@ -121,18 +114,13 @@ export const fileSyncVitePlugin = (pluginParams, options) => {
|
|
|
121
114
|
if (options?.error) {
|
|
122
115
|
loggedViteErrors.push(options.error);
|
|
123
116
|
}
|
|
124
|
-
|
|
117
|
+
// Let the error be logged normally regardless
|
|
118
|
+
// Vite will handle sending it to the client via HMR
|
|
119
|
+
return originalErrorLogger.apply(config.logger, [message, options]);
|
|
125
120
|
};
|
|
126
121
|
createIdResolver(server.config, server.environments.client);
|
|
127
122
|
await Promise.all([
|
|
128
|
-
|
|
129
|
-
try {
|
|
130
|
-
await componentsManager.initialize(process.cwd(), server.watcher);
|
|
131
|
-
}
|
|
132
|
-
finally {
|
|
133
|
-
compSpan.end();
|
|
134
|
-
}
|
|
135
|
-
}),
|
|
123
|
+
componentsManager.initialize(process.cwd(), server.watcher),
|
|
136
124
|
server.waitForRequestsIdle("sb-file-sync").then(async () => {
|
|
137
125
|
if (hasStarted) {
|
|
138
126
|
// We only want to initialize the file sync once, but vite seems to fire this multiple times
|
|
@@ -141,15 +129,8 @@ export const fileSyncVitePlugin = (pluginParams, options) => {
|
|
|
141
129
|
hasStarted = true;
|
|
142
130
|
const root = server.config.root;
|
|
143
131
|
try {
|
|
144
|
-
await
|
|
145
|
-
|
|
146
|
-
await fileSyncManager.watch(server.watcher, root).then(() => {
|
|
147
|
-
isInitialized = true;
|
|
148
|
-
});
|
|
149
|
-
}
|
|
150
|
-
finally {
|
|
151
|
-
watchSpan.end();
|
|
152
|
-
}
|
|
132
|
+
await fileSyncManager.watch(server.watcher, root).then(() => {
|
|
133
|
+
isInitialized = true;
|
|
153
134
|
});
|
|
154
135
|
}
|
|
155
136
|
catch (e) {
|
|
@@ -307,22 +288,15 @@ export const fileSyncVitePlugin = (pluginParams, options) => {
|
|
|
307
288
|
})();
|
|
308
289
|
});
|
|
309
290
|
socketManager = createSocketManager(pluginParams.tracer);
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
tracer: pluginParams.tracer,
|
|
320
|
-
path: "/sb-updates",
|
|
321
|
-
});
|
|
322
|
-
}
|
|
323
|
-
finally {
|
|
324
|
-
socketSpan.end();
|
|
325
|
-
}
|
|
291
|
+
socketManager.startSocketServer({
|
|
292
|
+
server: httpServer,
|
|
293
|
+
fileSyncManager,
|
|
294
|
+
lockService,
|
|
295
|
+
syncService,
|
|
296
|
+
aiService,
|
|
297
|
+
checkAuthorization: pluginParams.checkAuthorization,
|
|
298
|
+
tracer: pluginParams.tracer,
|
|
299
|
+
path: "/sb-updates",
|
|
326
300
|
});
|
|
327
301
|
socketManager.removeAllListeners();
|
|
328
302
|
const sendError = (errorEvent) => {
|
|
@@ -338,8 +312,7 @@ export const fileSyncVitePlugin = (pluginParams, options) => {
|
|
|
338
312
|
sendError(makeServerError(error));
|
|
339
313
|
});
|
|
340
314
|
process.on("unhandledRejection", (reason) => {
|
|
341
|
-
|
|
342
|
-
logger.error(`Unhandled rejection: ${reasonStr}`);
|
|
315
|
+
logger.error(`Unhandled rejection: ${JSON.stringify(reason)}`);
|
|
343
316
|
const error = reason instanceof Error
|
|
344
317
|
? reason
|
|
345
318
|
: typeof reason === "object"
|
|
@@ -608,8 +581,7 @@ export const fileSyncVitePlugin = (pluginParams, options) => {
|
|
|
608
581
|
await socket.call.syncStatus({ status, generationNumber });
|
|
609
582
|
}
|
|
610
583
|
catch (err) {
|
|
611
|
-
|
|
612
|
-
logger.warn("Failed to send syncStatus", getErrorMeta(err));
|
|
584
|
+
logger.error("Failed to send syncStatus", getErrorMeta(err));
|
|
613
585
|
}
|
|
614
586
|
});
|
|
615
587
|
})();
|
|
@@ -624,8 +596,7 @@ export const fileSyncVitePlugin = (pluginParams, options) => {
|
|
|
624
596
|
await socket.call.releasingLock();
|
|
625
597
|
}
|
|
626
598
|
catch (err) {
|
|
627
|
-
|
|
628
|
-
logger.warn("Failed to send releasingLock", getErrorMeta(err));
|
|
599
|
+
logger.error("Failed to send releasingLock", getErrorMeta(err));
|
|
629
600
|
}
|
|
630
601
|
});
|
|
631
602
|
}
|
|
@@ -636,8 +607,7 @@ export const fileSyncVitePlugin = (pluginParams, options) => {
|
|
|
636
607
|
await socket.call.closedByServer(data);
|
|
637
608
|
}
|
|
638
609
|
catch (err) {
|
|
639
|
-
|
|
640
|
-
logger.warn("Failed to send closedByServer", getErrorMeta(err));
|
|
610
|
+
logger.error("Failed to send releasingLock", getErrorMeta(err));
|
|
641
611
|
}
|
|
642
612
|
});
|
|
643
613
|
});
|