@superblocksteam/vite-plugin-file-sync 2.0.41-next.9 → 2.0.42-next.0
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/apis-static-analysis.d.ts +2 -0
- package/dist/ai-service/agent/apis-static-analysis.d.ts.map +1 -0
- package/dist/ai-service/agent/apis-static-analysis.js +765 -0
- package/dist/ai-service/agent/apis-static-analysis.js.map +1 -0
- package/dist/ai-service/agent/apis-system-prompt.d.ts +1 -1
- package/dist/ai-service/agent/apis-system-prompt.d.ts.map +1 -1
- package/dist/ai-service/agent/apis-system-prompt.js +50 -21
- package/dist/ai-service/agent/apis-system-prompt.js.map +1 -1
- package/dist/ai-service/agent/apis.d.ts +10 -0
- package/dist/ai-service/agent/apis.d.ts.map +1 -1
- package/dist/ai-service/agent/apis.js +38 -5
- package/dist/ai-service/agent/apis.js.map +1 -1
- package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts +2 -0
- package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts.map +1 -0
- package/dist/ai-service/{state-machine/handlers/simple-prompt-builder.js → agent/prompts/build-base-system-prompt.js} +55 -15
- package/dist/ai-service/{state-machine/handlers/simple-prompt-builder.js.map → agent/prompts/build-base-system-prompt.js.map} +1 -1
- package/dist/ai-service/agent/tool-message-utils.d.ts +0 -1
- package/dist/ai-service/agent/tool-message-utils.d.ts.map +1 -1
- package/dist/ai-service/agent/tool-message-utils.js +55 -13
- package/dist/ai-service/agent/tool-message-utils.js.map +1 -1
- package/dist/ai-service/agent/tools/build-debug.d.ts +1 -1
- package/dist/ai-service/agent/tools/build-debug.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-debug.js +24 -23
- package/dist/ai-service/agent/tools/build-debug.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 +9 -14
- 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 +23 -2
- package/dist/ai-service/agent/tools/build-finalize.js.map +1 -1
- package/dist/ai-service/agent/tools/build-list-files.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-list-files.js +9 -1
- package/dist/ai-service/agent/tools/build-list-files.js.map +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 +6 -11
- package/dist/ai-service/agent/tools/build-multi-edit-file.js.map +1 -1
- package/dist/ai-service/agent/tools/build-read-files.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-read-files.js +16 -0
- package/dist/ai-service/agent/tools/build-read-files.js.map +1 -1
- package/dist/ai-service/agent/tools/build-set-api-triggers.d.ts +27 -0
- package/dist/ai-service/agent/tools/build-set-api-triggers.d.ts.map +1 -0
- package/dist/ai-service/agent/tools/build-set-api-triggers.js +265 -0
- package/dist/ai-service/agent/tools/build-set-api-triggers.js.map +1 -0
- package/dist/ai-service/agent/tools/build-write-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-write-file.js +6 -11
- package/dist/ai-service/agent/tools/build-write-file.js.map +1 -1
- package/dist/ai-service/agent/tools/debug-cache.d.ts +95 -13
- package/dist/ai-service/agent/tools/debug-cache.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/debug-cache.js +215 -38
- package/dist/ai-service/agent/tools/debug-cache.js.map +1 -1
- package/dist/ai-service/agent/tools/index.d.ts +1 -0
- package/dist/ai-service/agent/tools/index.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/index.js +1 -0
- package/dist/ai-service/agent/tools/index.js.map +1 -1
- package/dist/ai-service/agent/tools/shared-helpers.d.ts +5 -1
- package/dist/ai-service/agent/tools/shared-helpers.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/shared-helpers.js +26 -3
- package/dist/ai-service/agent/tools/shared-helpers.js.map +1 -1
- package/dist/ai-service/agent/tools/study-current-app-state.d.ts +2 -0
- package/dist/ai-service/agent/tools/study-current-app-state.d.ts.map +1 -1
- package/dist/ai-service/agent/tools.d.ts +24 -1
- package/dist/ai-service/agent/tools.d.ts.map +1 -1
- package/dist/ai-service/agent/tools.js +3 -1
- package/dist/ai-service/agent/tools.js.map +1 -1
- package/dist/ai-service/agent/utils.d.ts +2 -0
- package/dist/ai-service/agent/utils.d.ts.map +1 -1
- package/dist/ai-service/agent/utils.js +173 -159
- package/dist/ai-service/agent/utils.js.map +1 -1
- package/dist/ai-service/app-interface/file-system-interface.d.ts.map +1 -1
- package/dist/ai-service/app-interface/file-system-interface.js +117 -68
- package/dist/ai-service/app-interface/file-system-interface.js.map +1 -1
- package/dist/ai-service/app-interface/linter.d.ts.map +1 -1
- package/dist/ai-service/app-interface/linter.js +103 -54
- package/dist/ai-service/app-interface/linter.js.map +1 -1
- package/dist/ai-service/app-interface/shell.d.ts.map +1 -1
- package/dist/ai-service/app-interface/shell.js +227 -160
- package/dist/ai-service/app-interface/shell.js.map +1 -1
- package/dist/ai-service/artifacts/bolt.d.ts.map +1 -1
- package/dist/ai-service/artifacts/bolt.js +88 -30
- package/dist/ai-service/artifacts/bolt.js.map +1 -1
- package/dist/ai-service/chat/chat-session-store.d.ts +12 -2
- package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
- package/dist/ai-service/chat/chat-session-store.js +45 -1
- package/dist/ai-service/chat/chat-session-store.js.map +1 -1
- package/dist/ai-service/chat/extract-history.d.ts +3 -1
- package/dist/ai-service/chat/extract-history.d.ts.map +1 -1
- package/dist/ai-service/chat/extract-history.js +6 -1
- package/dist/ai-service/chat/extract-history.js.map +1 -1
- package/dist/ai-service/context/app-context.d.ts +5 -0
- package/dist/ai-service/context/app-context.d.ts.map +1 -1
- package/dist/ai-service/context/app-context.js +318 -241
- package/dist/ai-service/context/app-context.js.map +1 -1
- package/dist/ai-service/evals/content-matchers/index.d.ts.map +1 -1
- package/dist/ai-service/evals/content-matchers/index.js +1 -0
- package/dist/ai-service/evals/content-matchers/index.js.map +1 -1
- package/dist/ai-service/index.d.ts +3 -0
- package/dist/ai-service/index.d.ts.map +1 -1
- package/dist/ai-service/index.js +105 -71
- package/dist/ai-service/index.js.map +1 -1
- package/dist/ai-service/integration-validator.d.ts +1 -1
- package/dist/ai-service/integration-validator.d.ts.map +1 -1
- package/dist/ai-service/integration-validator.js +6 -3
- package/dist/ai-service/integration-validator.js.map +1 -1
- package/dist/ai-service/integrations/metadata/database.d.ts.map +1 -1
- package/dist/ai-service/integrations/metadata/database.js +1 -1
- package/dist/ai-service/integrations/metadata/database.js.map +1 -1
- package/dist/ai-service/integrations/metadata/graphql-based.js +1 -1
- package/dist/ai-service/integrations/metadata/graphql-based.js.map +1 -1
- package/dist/ai-service/integrations/metadata/open-api.js +1 -1
- package/dist/ai-service/integrations/metadata/open-api.js.map +1 -1
- package/dist/ai-service/integrations/store.d.ts.map +1 -1
- package/dist/ai-service/integrations/store.js +135 -74
- package/dist/ai-service/integrations/store.js.map +1 -1
- package/dist/ai-service/llmobs/helpers.d.ts +20 -0
- package/dist/ai-service/llmobs/helpers.d.ts.map +1 -0
- package/dist/ai-service/llmobs/helpers.js +130 -0
- package/dist/ai-service/llmobs/helpers.js.map +1 -0
- package/dist/ai-service/llmobs/index.d.ts +8 -0
- package/dist/ai-service/llmobs/index.d.ts.map +1 -0
- package/dist/ai-service/llmobs/index.js +7 -0
- package/dist/ai-service/llmobs/index.js.map +1 -0
- package/dist/ai-service/llmobs/middleware/stream-text.d.ts +60 -0
- package/dist/ai-service/llmobs/middleware/stream-text.d.ts.map +1 -0
- package/dist/ai-service/llmobs/middleware/stream-text.js +601 -0
- package/dist/ai-service/llmobs/middleware/stream-text.js.map +1 -0
- package/dist/ai-service/llmobs/tracer.d.ts +95 -0
- package/dist/ai-service/llmobs/tracer.d.ts.map +1 -0
- package/dist/ai-service/llmobs/tracer.js +341 -0
- package/dist/ai-service/llmobs/tracer.js.map +1 -0
- package/dist/ai-service/llmobs/types.d.ts +47 -0
- package/dist/ai-service/llmobs/types.d.ts.map +1 -0
- package/dist/ai-service/llmobs/types.js +2 -0
- package/dist/ai-service/llmobs/types.js.map +1 -0
- package/dist/ai-service/prompt-builder-service/fragment-generators/chakra-tokens.d.ts +3 -1
- package/dist/ai-service/prompt-builder-service/fragment-generators/chakra-tokens.d.ts.map +1 -1
- package/dist/ai-service/prompt-builder-service/fragment-generators/chakra-tokens.js +5 -3
- package/dist/ai-service/prompt-builder-service/fragment-generators/chakra-tokens.js.map +1 -1
- package/dist/ai-service/prompt-builder-service/fragment-generators/file-fragments.d.ts +3 -1
- package/dist/ai-service/prompt-builder-service/fragment-generators/file-fragments.d.ts.map +1 -1
- package/dist/ai-service/prompt-builder-service/fragment-generators/file-fragments.js +3 -1
- package/dist/ai-service/prompt-builder-service/fragment-generators/file-fragments.js.map +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ButtonPropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/CheckboxPropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ColumnPropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ContainerPropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DatePickerPropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DropdownPropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/IconPropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ImagePropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/InputPropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ModalPropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/PagePropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SectionPropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SlideoutPropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SwitchPropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TablePropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TextPropsDocs.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/Dim.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/EventFlow.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/TextStyleWithVariant.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/full-examples.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-api.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-components-rules.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-custom-components.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-data-filtering.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-event-flow.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-forms.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-layouts.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-page.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-rbac.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-routes.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-state.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-theming-chakra-new.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-base.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-incremental.js +1 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-specific-edit.js +1 -1
- package/dist/ai-service/prompt-builder-service/utils/integrations/to-sdk-prompt.d.ts +3 -1
- package/dist/ai-service/prompt-builder-service/utils/integrations/to-sdk-prompt.d.ts.map +1 -1
- package/dist/ai-service/prompt-builder-service/utils/integrations/to-sdk-prompt.js +4 -2
- package/dist/ai-service/prompt-builder-service/utils/integrations/to-sdk-prompt.js.map +1 -1
- package/dist/ai-service/prompt-builder-service/utils/markdown-loader.d.ts +3 -1
- package/dist/ai-service/prompt-builder-service/utils/markdown-loader.d.ts.map +1 -1
- package/dist/ai-service/prompt-builder-service/utils/markdown-loader.js +3 -1
- package/dist/ai-service/prompt-builder-service/utils/markdown-loader.js.map +1 -1
- package/dist/ai-service/state-machine/clark-fsm.d.ts +16 -4
- package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
- package/dist/ai-service/state-machine/clark-fsm.js +47 -0
- 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 +8 -10
- package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/awaiting-user.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/awaiting-user.js +5 -4
- package/dist/ai-service/state-machine/handlers/awaiting-user.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/idle.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/idle.js +2 -1
- package/dist/ai-service/state-machine/handlers/idle.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 +242 -262
- package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/post-processing.js +2 -0
- package/dist/ai-service/state-machine/handlers/post-processing.js.map +1 -1
- package/dist/ai-service/state-machine/traced-fsm.d.ts +41 -70
- package/dist/ai-service/state-machine/traced-fsm.d.ts.map +1 -1
- package/dist/ai-service/state-machine/traced-fsm.js +66 -173
- package/dist/ai-service/state-machine/traced-fsm.js.map +1 -1
- package/dist/ai-service/template-renderer.d.ts.map +1 -1
- package/dist/ai-service/template-renderer.js +102 -56
- package/dist/ai-service/template-renderer.js.map +1 -1
- package/dist/ai-service/test-utils/dd-trace-helpers.d.ts +1 -0
- package/dist/ai-service/test-utils/dd-trace-helpers.d.ts.map +1 -1
- package/dist/ai-service/test-utils/dd-trace-helpers.js.map +1 -1
- package/dist/ai-service/test-utils/span-interceptor.d.ts +74 -0
- package/dist/ai-service/test-utils/span-interceptor.d.ts.map +1 -0
- package/dist/ai-service/test-utils/span-interceptor.js +272 -0
- package/dist/ai-service/test-utils/span-interceptor.js.map +1 -0
- package/dist/ai-service/transform/api-builder/to-sdk-transformer.d.ts +2 -1
- package/dist/ai-service/transform/api-builder/to-sdk-transformer.d.ts.map +1 -1
- package/dist/ai-service/transform/api-builder/to-sdk-transformer.js +120 -63
- package/dist/ai-service/transform/api-builder/to-sdk-transformer.js.map +1 -1
- package/dist/ai-service/transform/api-builder/to-yaml-transformer.d.ts.map +1 -1
- package/dist/ai-service/transform/api-builder/to-yaml-transformer.js +97 -47
- package/dist/ai-service/transform/api-builder/to-yaml-transformer.js.map +1 -1
- package/dist/ai-service/transform/remove-api-builder-imports/transformer.d.ts.map +1 -1
- package/dist/ai-service/transform/remove-api-builder-imports/transformer.js +88 -37
- package/dist/ai-service/transform/remove-api-builder-imports/transformer.js.map +1 -1
- package/dist/ai-service/transform/shared.d.ts +4 -2
- package/dist/ai-service/transform/shared.d.ts.map +1 -1
- package/dist/ai-service/transform/shared.js +6 -3
- package/dist/ai-service/transform/shared.js.map +1 -1
- package/dist/ai-service/transform/workaround-missing-sbapi/transformer.d.ts.map +1 -1
- package/dist/ai-service/transform/workaround-missing-sbapi/transformer.js +77 -26
- package/dist/ai-service/transform/workaround-missing-sbapi/transformer.js.map +1 -1
- package/dist/ai-service/types.d.ts +2 -0
- package/dist/ai-service/types.d.ts.map +1 -1
- package/dist/ai-service/types.js.map +1 -1
- 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 +68 -0
- package/dist/ai-service/util/safe-stringify.js.map +1 -0
- package/dist/binding-extraction/extract-identifiers.d.ts +5 -2
- package/dist/binding-extraction/extract-identifiers.d.ts.map +1 -1
- package/dist/binding-extraction/extract-identifiers.js +7 -4
- package/dist/binding-extraction/extract-identifiers.js.map +1 -1
- package/dist/file-sync-vite-plugin.d.ts.map +1 -1
- package/dist/file-sync-vite-plugin.js +92 -1
- package/dist/file-sync-vite-plugin.js.map +1 -1
- package/dist/file-system-helpers.d.ts +3 -0
- package/dist/file-system-helpers.d.ts.map +1 -1
- package/dist/file-system-helpers.js +12 -0
- package/dist/file-system-helpers.js.map +1 -1
- package/dist/file-system-manager.d.ts.map +1 -1
- package/dist/file-system-manager.js +56 -7
- package/dist/file-system-manager.js.map +1 -1
- package/dist/parsing/entity/to-value-entity.d.ts.map +1 -1
- package/dist/parsing/entity/to-value-entity.js +1 -0
- package/dist/parsing/entity/to-value-entity.js.map +1 -1
- package/dist/parsing/jsx.d.ts +4 -0
- package/dist/parsing/jsx.d.ts.map +1 -1
- package/dist/parsing/jsx.js +33 -0
- package/dist/parsing/jsx.js.map +1 -1
- package/dist/parsing/page.d.ts.map +1 -1
- package/dist/parsing/page.js +53 -8
- package/dist/parsing/page.js.map +1 -1
- package/dist/parsing/properties.d.ts.map +1 -1
- package/dist/parsing/properties.js +10 -0
- package/dist/parsing/properties.js.map +1 -1
- package/dist/parsing/scope.d.ts.map +1 -1
- package/dist/parsing/scope.js +2 -7
- package/dist/parsing/scope.js.map +1 -1
- package/dist/socket-manager.d.ts.map +1 -1
- package/dist/socket-manager.js +3 -1
- package/dist/socket-manager.js.map +1 -1
- package/dist/source-tracker.d.ts +4 -0
- package/dist/source-tracker.d.ts.map +1 -1
- package/dist/source-tracker.js +132 -5
- package/dist/source-tracker.js.map +1 -1
- package/dist/sync-service/list-dir.d.ts +1 -1
- package/dist/sync-service/list-dir.d.ts.map +1 -1
- package/dist/sync-service/list-dir.js +3 -9
- package/dist/sync-service/list-dir.js.map +1 -1
- package/dist/util/logger.d.ts +9 -0
- package/dist/util/logger.d.ts.map +1 -1
- package/dist/util/logger.js +64 -7
- package/dist/util/logger.js.map +1 -1
- package/package.json +9 -7
- package/dist/ai-service/llmobs.d.ts +0 -154
- package/dist/ai-service/llmobs.d.ts.map +0 -1
- package/dist/ai-service/llmobs.js +0 -216
- package/dist/ai-service/llmobs.js.map +0 -1
- package/dist/ai-service/state-machine/handlers/simple-prompt-builder.d.ts +0 -2
- package/dist/ai-service/state-machine/handlers/simple-prompt-builder.d.ts.map +0 -1
- package/dist/ai-service/util/ddog-llmobs.d.ts +0 -20
- package/dist/ai-service/util/ddog-llmobs.d.ts.map +0 -1
- package/dist/ai-service/util/ddog-llmobs.js +0 -197
- package/dist/ai-service/util/ddog-llmobs.js.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-write-file.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools/build-write-file.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAEhF,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAC9C,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,uBAAuB;;;;;;;
|
|
1
|
+
{"version":3,"file":"build-write-file.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools/build-write-file.ts"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAC9D,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,kCAAkC,CAAC;AAEhF,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAC9C,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,uBAAuB;;;;;;;GAyElC"}
|
|
@@ -2,8 +2,8 @@ import { tool } from "ai";
|
|
|
2
2
|
import z from "zod";
|
|
3
3
|
import { ROUTES_FILE } from "../../../file-system-helpers.js";
|
|
4
4
|
import { fileReadTracker } from "../../state-machine/helpers/file-read-tracker.js";
|
|
5
|
-
import { debugCache,
|
|
6
|
-
import {
|
|
5
|
+
import { debugCache, createTypeScriptCheckFunction } from "./debug-cache.js";
|
|
6
|
+
import { isApiFilePath } from "./shared-helpers.js";
|
|
7
7
|
export default function createBuildWriteFileTool(clark, services) {
|
|
8
8
|
const { isReadRequired } = fileReadTracker(clark);
|
|
9
9
|
return tool({
|
|
@@ -36,7 +36,7 @@ export default function createBuildWriteFileTool(clark, services) {
|
|
|
36
36
|
if (isReadRequired(filePath)) {
|
|
37
37
|
throw new Error(`Cannot write to ${filePath} without reading it first. Please read the file before attempting to write to it.`);
|
|
38
38
|
}
|
|
39
|
-
if (
|
|
39
|
+
if (isApiFilePath(filePath)) {
|
|
40
40
|
throw new Error("Directly writing to API files is not allowed. Use the API sub-agent to create or modify APIs.");
|
|
41
41
|
}
|
|
42
42
|
const isScopeFile = filePath.endsWith("scope.ts");
|
|
@@ -47,15 +47,10 @@ export default function createBuildWriteFileTool(clark, services) {
|
|
|
47
47
|
if (isRoutesFile) {
|
|
48
48
|
throw new Error("Directly writing to routes files is not allowed. If you must make changes to the routes, use the appropriate tool. The routes file is automatically updated when you create pages.");
|
|
49
49
|
}
|
|
50
|
-
// Clear runtime and build system errors since code will change
|
|
51
|
-
clark.updateContext({
|
|
52
|
-
runtimeErrors: [],
|
|
53
|
-
buildSystemErrors: [],
|
|
54
|
-
});
|
|
55
50
|
await services.draftInterface.createDraftFile(filePath, content);
|
|
56
|
-
// Trigger eager
|
|
57
|
-
const
|
|
58
|
-
debugCache.
|
|
51
|
+
// Trigger eager TypeScript check after file write (debounced to avoid excessive checks)
|
|
52
|
+
const typeCheckFunction = createTypeScriptCheckFunction(services.appShell, clark.context.abortController?.signal);
|
|
53
|
+
debugCache.startEagerTypeScriptCheck(typeCheckFunction);
|
|
59
54
|
return {
|
|
60
55
|
filePath,
|
|
61
56
|
contentLength: content.length,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"build-write-file.js","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools/build-write-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,kDAAkD,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,
|
|
1
|
+
{"version":3,"file":"build-write-file.js","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools/build-write-file.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,IAAI,CAAC;AAC1B,OAAO,CAAC,MAAM,KAAK,CAAC;AACpB,OAAO,EAAE,WAAW,EAAE,MAAM,iCAAiC,CAAC;AAC9D,OAAO,EAAE,eAAe,EAAE,MAAM,kDAAkD,CAAC;AACnF,OAAO,EAAE,UAAU,EAAE,6BAA6B,EAAE,MAAM,kBAAkB,CAAC;AAC7E,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAIpD,MAAM,CAAC,OAAO,UAAU,wBAAwB,CAC9C,KAAY,EACZ,QAAiC;IAEjC,MAAM,EAAE,cAAc,EAAE,GAAG,eAAe,CAAC,KAAK,CAAC,CAAC;IAElD,OAAO,IAAI,CAAC;QACV,WAAW,EAAE;;;;;;;;;;;;;;;;;;;;KAoBZ;QACD,WAAW,EAAE,CAAC,CAAC,MAAM,CAAC;YACpB,QAAQ,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,2BAA2B,CAAC;YAC1D,OAAO,EAAE,CAAC,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,8BAA8B,CAAC;SAC7D,CAAC;QACF,OAAO,EAAE,KAAK,EAAE,EAAE,QAAQ,EAAE,OAAO,EAAE,EAAE,EAAE;YACvC,IAAI,cAAc,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC7B,MAAM,IAAI,KAAK,CACb,mBAAmB,QAAQ,mFAAmF,CAC/G,CAAC;YACJ,CAAC;YAED,IAAI,aAAa,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,MAAM,IAAI,KAAK,CACb,+FAA+F,CAChG,CAAC;YACJ,CAAC;YAED,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,UAAU,CAAC,CAAC;YAClD,IAAI,WAAW,EAAE,CAAC;gBAChB,MAAM,IAAI,KAAK,CACb,kHAAkH,CACnH,CAAC;YACJ,CAAC;YAED,MAAM,YAAY,GAAG,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,CAAC;YACpD,IAAI,YAAY,EAAE,CAAC;gBACjB,MAAM,IAAI,KAAK,CACb,oLAAoL,CACrL,CAAC;YACJ,CAAC;YAED,MAAM,QAAQ,CAAC,cAAc,CAAC,eAAe,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YAEjE,wFAAwF;YACxF,MAAM,iBAAiB,GAAG,6BAA6B,CACrD,QAAQ,CAAC,QAAQ,EACjB,KAAK,CAAC,OAAO,CAAC,eAAe,EAAE,MAAM,CACtC,CAAC;YACF,UAAU,CAAC,yBAAyB,CAAC,iBAAiB,CAAC,CAAC;YAExD,OAAO;gBACL,QAAQ;gBACR,aAAa,EAAE,OAAO,CAAC,MAAM;gBAC7B,OAAO,EAAE,sBAAsB,OAAO,CAAC,MAAM,kBAAkB,QAAQ,EAAE;aAC1E,CAAC;QACJ,CAAC;KACF,CAAC,CAAC;AACL,CAAC"}
|
|
@@ -1,35 +1,117 @@
|
|
|
1
1
|
import type { AppShell } from "../../app-interface/shell.js";
|
|
2
2
|
import type { Clark } from "../../state-machine/clark-fsm.js";
|
|
3
3
|
/**
|
|
4
|
-
*
|
|
4
|
+
* Results from different types of debug checks
|
|
5
5
|
*/
|
|
6
|
-
export interface
|
|
6
|
+
export interface TypeScriptCheckResult {
|
|
7
|
+
typeErrors: string;
|
|
8
|
+
status: "errors_found" | "success";
|
|
9
|
+
timestamp: number;
|
|
10
|
+
}
|
|
11
|
+
export interface ContextErrorsResult {
|
|
12
|
+
buildSystemErrors: Record<string, unknown>[];
|
|
13
|
+
runtimeErrors: Record<string, unknown>[];
|
|
14
|
+
status: "errors_found" | "success";
|
|
15
|
+
timestamp: number;
|
|
16
|
+
}
|
|
17
|
+
export interface CombinedDebugResult {
|
|
7
18
|
status: "errors_found" | "success";
|
|
8
19
|
message: string;
|
|
9
20
|
typeErrors: string;
|
|
10
|
-
buildSystemErrors: string[];
|
|
21
|
+
buildSystemErrors: Record<string, unknown>[];
|
|
11
22
|
runtimeErrors: Record<string, unknown>[];
|
|
12
23
|
timestamp: number;
|
|
13
24
|
}
|
|
14
|
-
|
|
25
|
+
/**
|
|
26
|
+
* Cache for expensive TypeScript type checking
|
|
27
|
+
* - Longer cache duration since type checking is expensive
|
|
28
|
+
* - Intelligent invalidation based on file changes
|
|
29
|
+
* - Debouncing to prevent multiple checks during rapid editing
|
|
30
|
+
*/
|
|
31
|
+
export declare class TypeScriptCache {
|
|
15
32
|
private pendingCheck;
|
|
16
33
|
private cachedResult;
|
|
17
34
|
private abortController;
|
|
35
|
+
private debounceTimer;
|
|
36
|
+
private readonly CACHE_TTL;
|
|
37
|
+
private readonly DEBOUNCE_DELAY;
|
|
18
38
|
/**
|
|
19
|
-
* Start
|
|
39
|
+
* Start a debounced TypeScript check
|
|
20
40
|
*/
|
|
21
|
-
startEagerCheck(
|
|
41
|
+
startEagerCheck(typeCheckFunction: () => Promise<TypeScriptCheckResult>): void;
|
|
22
42
|
/**
|
|
23
|
-
*
|
|
43
|
+
* Start an immediate TypeScript check (used internally and for testing)
|
|
24
44
|
*/
|
|
25
|
-
|
|
26
|
-
|
|
45
|
+
startImmediateCheck(typeCheckFunction: () => Promise<TypeScriptCheckResult>): void;
|
|
46
|
+
/**
|
|
47
|
+
* Get cached TypeScript result if available, otherwise wait for pending check
|
|
48
|
+
*/
|
|
49
|
+
getResult(): Promise<TypeScriptCheckResult>;
|
|
50
|
+
/**
|
|
51
|
+
* Check if we have a fresh cached result
|
|
52
|
+
*/
|
|
53
|
+
hasFreshResult(): boolean;
|
|
54
|
+
/**
|
|
55
|
+
* Invalidate the cache (e.g., when significant code changes occur)
|
|
56
|
+
*/
|
|
57
|
+
invalidate(): void;
|
|
58
|
+
private runTypeCheck;
|
|
59
|
+
}
|
|
60
|
+
/**
|
|
61
|
+
* Cache for context errors (build system and runtime errors)
|
|
62
|
+
* - Short cache duration since these are cheap to read from context
|
|
63
|
+
* - Updated whenever errors are added/removed from context
|
|
64
|
+
*/
|
|
65
|
+
export declare class ContextErrorsCache {
|
|
66
|
+
private cachedResult;
|
|
67
|
+
private readonly CACHE_TTL;
|
|
68
|
+
/**
|
|
69
|
+
* Get context errors, using cache if fresh, but always recalculate error ages
|
|
70
|
+
*/
|
|
71
|
+
getResult(contextErrorsFunction: () => ContextErrorsResult): ContextErrorsResult;
|
|
72
|
+
/**
|
|
73
|
+
* Add fresh age calculations to build system errors
|
|
74
|
+
*/
|
|
75
|
+
private addFreshAges;
|
|
76
|
+
/**
|
|
77
|
+
* Invalidate the cache when context errors change
|
|
78
|
+
*/
|
|
79
|
+
invalidate(): void;
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Combined debug cache that manages both TypeScript and context error caches
|
|
83
|
+
*/
|
|
84
|
+
export declare class DebugCache {
|
|
85
|
+
private typeScriptCache;
|
|
86
|
+
private contextErrorsCache;
|
|
87
|
+
/**
|
|
88
|
+
* Start an eager TypeScript check (debounced)
|
|
89
|
+
*/
|
|
90
|
+
startEagerTypeScriptCheck(typeCheckFunction: () => Promise<TypeScriptCheckResult>): void;
|
|
91
|
+
/**
|
|
92
|
+
* Invalidate context errors cache when errors are added/removed
|
|
93
|
+
*/
|
|
94
|
+
invalidateContextErrors(): void;
|
|
95
|
+
/**
|
|
96
|
+
* Invalidate TypeScript cache when significant code changes occur
|
|
97
|
+
*/
|
|
98
|
+
invalidateTypeScript(): void;
|
|
99
|
+
/**
|
|
100
|
+
* Get combined debug result
|
|
101
|
+
*/
|
|
102
|
+
getCombinedResult(typeCheckFunction: () => Promise<TypeScriptCheckResult>, contextErrorsFunction: () => ContextErrorsResult): Promise<CombinedDebugResult>;
|
|
103
|
+
/**
|
|
104
|
+
* Check if we have fresh TypeScript results (useful for optimization)
|
|
105
|
+
*/
|
|
106
|
+
hasFreshTypeScriptResult(): boolean;
|
|
27
107
|
}
|
|
28
108
|
export declare const debugCache: DebugCache;
|
|
29
109
|
/**
|
|
30
|
-
*
|
|
110
|
+
* Create TypeScript check function
|
|
111
|
+
*/
|
|
112
|
+
export declare function createTypeScriptCheckFunction(appShell: AppShell, abortSignal?: AbortSignal): () => Promise<TypeScriptCheckResult>;
|
|
113
|
+
/**
|
|
114
|
+
* Create context errors function
|
|
31
115
|
*/
|
|
32
|
-
export declare function
|
|
33
|
-
appShell: AppShell;
|
|
34
|
-
}): () => Promise<DebugResult>;
|
|
116
|
+
export declare function createRuntimeAndBuildErrorsFunction(clark: Clark, appShell: AppShell): () => ContextErrorsResult;
|
|
35
117
|
//# sourceMappingURL=debug-cache.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug-cache.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools/debug-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,WAAW;
|
|
1
|
+
{"version":3,"file":"debug-cache.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools/debug-cache.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,8BAA8B,CAAC;AAC7D,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAE9D;;GAEG;AACH,MAAM,WAAW,qBAAqB;IACpC,UAAU,EAAE,MAAM,CAAC;IACnB,MAAM,EAAE,cAAc,GAAG,SAAS,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC7C,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACzC,MAAM,EAAE,cAAc,GAAG,SAAS,CAAC;IACnC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,cAAc,GAAG,SAAS,CAAC;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAC7C,aAAa,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IACzC,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;GAKG;AACH,qBAAa,eAAe;IAC1B,OAAO,CAAC,YAAY,CAA+C;IACnE,OAAO,CAAC,YAAY,CAAsC;IAC1D,OAAO,CAAC,eAAe,CAAgC;IACvD,OAAO,CAAC,aAAa,CAA+B;IAGpD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAiB;IAC3C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAQ;IAEvC;;OAEG;IACI,eAAe,CACpB,iBAAiB,EAAE,MAAM,OAAO,CAAC,qBAAqB,CAAC,GACtD,IAAI;IAYP;;OAEG;IACI,mBAAmB,CACxB,iBAAiB,EAAE,MAAM,OAAO,CAAC,qBAAqB,CAAC,GACtD,IAAI;IAUP;;OAEG;IACU,SAAS,IAAI,OAAO,CAAC,qBAAqB,CAAC;IAmBxD;;OAEG;IACI,cAAc,IAAI,OAAO;IAMhC;;OAEG;IACI,UAAU,IAAI,IAAI;YAWX,YAAY;CAoB3B;AAED;;;;GAIG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,YAAY,CAAoC;IAGxD,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAa;IAEvC;;OAEG;IACI,SAAS,CACd,qBAAqB,EAAE,MAAM,mBAAmB,GAC/C,mBAAmB;IAkBtB;;OAEG;IACH,OAAO,CAAC,YAAY;IAWpB;;OAEG;IACI,UAAU,IAAI,IAAI;CAG1B;AAED;;GAEG;AACH,qBAAa,UAAU;IACrB,OAAO,CAAC,eAAe,CAAyB;IAChD,OAAO,CAAC,kBAAkB,CAA4B;IAEtD;;OAEG;IACI,yBAAyB,CAC9B,iBAAiB,EAAE,MAAM,OAAO,CAAC,qBAAqB,CAAC,GACtD,IAAI;IAIP;;OAEG;IACI,uBAAuB,IAAI,IAAI;IAItC;;OAEG;IACI,oBAAoB,IAAI,IAAI;IAInC;;OAEG;IACU,iBAAiB,CAC5B,iBAAiB,EAAE,MAAM,OAAO,CAAC,qBAAqB,CAAC,EACvD,qBAAqB,EAAE,MAAM,mBAAmB,GAC/C,OAAO,CAAC,mBAAmB,CAAC;IAmC/B;;OAEG;IACI,wBAAwB,IAAI,OAAO;CAG3C;AAGD,eAAO,MAAM,UAAU,YAAmB,CAAC;AAE3C;;GAEG;AACH,wBAAgB,6BAA6B,CAC3C,QAAQ,EAAE,QAAQ,EAClB,WAAW,CAAC,EAAE,WAAW,GACxB,MAAM,OAAO,CAAC,qBAAqB,CAAC,CAqBtC;AAED;;GAEG;AACH,wBAAgB,mCAAmC,CACjD,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,GACjB,MAAM,mBAAmB,CAsD3B"}
|
|
@@ -1,57 +1,95 @@
|
|
|
1
|
-
|
|
1
|
+
/**
|
|
2
|
+
* Cache for expensive TypeScript type checking
|
|
3
|
+
* - Longer cache duration since type checking is expensive
|
|
4
|
+
* - Intelligent invalidation based on file changes
|
|
5
|
+
* - Debouncing to prevent multiple checks during rapid editing
|
|
6
|
+
*/
|
|
7
|
+
export class TypeScriptCache {
|
|
2
8
|
pendingCheck = null;
|
|
3
9
|
cachedResult = null;
|
|
4
10
|
abortController = null;
|
|
11
|
+
debounceTimer = null;
|
|
12
|
+
// Cache TypeScript results for 5 minutes since they're expensive to compute
|
|
13
|
+
CACHE_TTL = 5 * 60 * 1000;
|
|
14
|
+
DEBOUNCE_DELAY = 1000; // 1 second debounce
|
|
15
|
+
/**
|
|
16
|
+
* Start a debounced TypeScript check
|
|
17
|
+
*/
|
|
18
|
+
startEagerCheck(typeCheckFunction) {
|
|
19
|
+
// Clear any existing debounce timer
|
|
20
|
+
if (this.debounceTimer) {
|
|
21
|
+
clearTimeout(this.debounceTimer);
|
|
22
|
+
}
|
|
23
|
+
// Debounce the type check to avoid multiple checks during rapid editing
|
|
24
|
+
this.debounceTimer = setTimeout(() => {
|
|
25
|
+
this.startImmediateCheck(typeCheckFunction);
|
|
26
|
+
}, this.DEBOUNCE_DELAY);
|
|
27
|
+
}
|
|
5
28
|
/**
|
|
6
|
-
* Start an
|
|
29
|
+
* Start an immediate TypeScript check (used internally and for testing)
|
|
7
30
|
*/
|
|
8
|
-
|
|
31
|
+
startImmediateCheck(typeCheckFunction) {
|
|
9
32
|
// Cancel existing check
|
|
10
33
|
if (this.abortController) {
|
|
11
34
|
this.abortController.abort();
|
|
12
35
|
}
|
|
13
36
|
this.abortController = new AbortController();
|
|
14
|
-
|
|
15
|
-
this.pendingCheck = this.runDebugCheck(debugFunction);
|
|
37
|
+
this.pendingCheck = this.runTypeCheck(typeCheckFunction);
|
|
16
38
|
}
|
|
17
39
|
/**
|
|
18
|
-
* Get cached result if available, otherwise wait for pending check
|
|
40
|
+
* Get cached TypeScript result if available, otherwise wait for pending check
|
|
19
41
|
*/
|
|
20
42
|
async getResult() {
|
|
21
43
|
if (this.pendingCheck) {
|
|
22
|
-
// Wait for pending check to complete
|
|
23
44
|
const result = await this.pendingCheck;
|
|
24
45
|
this.cachedResult = result;
|
|
25
46
|
this.pendingCheck = null;
|
|
26
47
|
return result;
|
|
27
48
|
}
|
|
28
49
|
if (this.cachedResult) {
|
|
29
|
-
// Return cached result if recent enough (within last 30 seconds)
|
|
30
50
|
const age = Date.now() - this.cachedResult.timestamp;
|
|
31
|
-
if (age <
|
|
51
|
+
if (age < this.CACHE_TTL) {
|
|
32
52
|
return this.cachedResult;
|
|
33
53
|
}
|
|
34
54
|
}
|
|
35
|
-
// No cached result or it's too old
|
|
36
|
-
throw new Error("No
|
|
55
|
+
// No cached result or it's too old
|
|
56
|
+
throw new Error("No TypeScript check result available");
|
|
57
|
+
}
|
|
58
|
+
/**
|
|
59
|
+
* Check if we have a fresh cached result
|
|
60
|
+
*/
|
|
61
|
+
hasFreshResult() {
|
|
62
|
+
if (!this.cachedResult)
|
|
63
|
+
return false;
|
|
64
|
+
const age = Date.now() - this.cachedResult.timestamp;
|
|
65
|
+
return age < this.CACHE_TTL;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Invalidate the cache (e.g., when significant code changes occur)
|
|
69
|
+
*/
|
|
70
|
+
invalidate() {
|
|
71
|
+
this.cachedResult = null;
|
|
72
|
+
if (this.abortController) {
|
|
73
|
+
this.abortController.abort();
|
|
74
|
+
this.abortController = null;
|
|
75
|
+
}
|
|
76
|
+
if (this.pendingCheck) {
|
|
77
|
+
this.pendingCheck = null;
|
|
78
|
+
}
|
|
37
79
|
}
|
|
38
|
-
async
|
|
80
|
+
async runTypeCheck(typeCheckFunction) {
|
|
39
81
|
try {
|
|
40
|
-
const result = await
|
|
82
|
+
const result = await typeCheckFunction();
|
|
41
83
|
return {
|
|
42
84
|
...result,
|
|
43
85
|
timestamp: Date.now(),
|
|
44
86
|
};
|
|
45
87
|
}
|
|
46
88
|
catch (error) {
|
|
47
|
-
// If aborted, return a placeholder result
|
|
48
89
|
if (error instanceof Error && error.name === "AbortError") {
|
|
49
90
|
return {
|
|
50
91
|
status: "success",
|
|
51
|
-
message: "Debug check was cancelled",
|
|
52
92
|
typeErrors: "",
|
|
53
|
-
buildSystemErrors: [],
|
|
54
|
-
runtimeErrors: [],
|
|
55
93
|
timestamp: Date.now(),
|
|
56
94
|
};
|
|
57
95
|
}
|
|
@@ -59,17 +97,171 @@ export class DebugCache {
|
|
|
59
97
|
}
|
|
60
98
|
}
|
|
61
99
|
}
|
|
100
|
+
/**
|
|
101
|
+
* Cache for context errors (build system and runtime errors)
|
|
102
|
+
* - Short cache duration since these are cheap to read from context
|
|
103
|
+
* - Updated whenever errors are added/removed from context
|
|
104
|
+
*/
|
|
105
|
+
export class ContextErrorsCache {
|
|
106
|
+
cachedResult = null;
|
|
107
|
+
// Cache context errors for 10 seconds since they're cheap to compute
|
|
108
|
+
CACHE_TTL = 10 * 1000;
|
|
109
|
+
/**
|
|
110
|
+
* Get context errors, using cache if fresh, but always recalculate error ages
|
|
111
|
+
*/
|
|
112
|
+
getResult(contextErrorsFunction) {
|
|
113
|
+
if (this.cachedResult) {
|
|
114
|
+
const age = Date.now() - this.cachedResult.timestamp;
|
|
115
|
+
if (age < this.CACHE_TTL) {
|
|
116
|
+
// Return cached result but recalculate ages for accurate reporting
|
|
117
|
+
return this.addFreshAges(this.cachedResult);
|
|
118
|
+
}
|
|
119
|
+
}
|
|
120
|
+
// Compute fresh result
|
|
121
|
+
const result = contextErrorsFunction();
|
|
122
|
+
this.cachedResult = {
|
|
123
|
+
...result,
|
|
124
|
+
timestamp: Date.now(),
|
|
125
|
+
};
|
|
126
|
+
return this.addFreshAges(this.cachedResult);
|
|
127
|
+
}
|
|
128
|
+
/**
|
|
129
|
+
* Add fresh age calculations to build system errors
|
|
130
|
+
*/
|
|
131
|
+
addFreshAges(result) {
|
|
132
|
+
const now = Date.now();
|
|
133
|
+
return {
|
|
134
|
+
...result,
|
|
135
|
+
buildSystemErrors: result.buildSystemErrors.map((error) => ({
|
|
136
|
+
...error,
|
|
137
|
+
age: error.timestamp ? now - error.timestamp : 0,
|
|
138
|
+
})),
|
|
139
|
+
};
|
|
140
|
+
}
|
|
141
|
+
/**
|
|
142
|
+
* Invalidate the cache when context errors change
|
|
143
|
+
*/
|
|
144
|
+
invalidate() {
|
|
145
|
+
this.cachedResult = null;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Combined debug cache that manages both TypeScript and context error caches
|
|
150
|
+
*/
|
|
151
|
+
export class DebugCache {
|
|
152
|
+
typeScriptCache = new TypeScriptCache();
|
|
153
|
+
contextErrorsCache = new ContextErrorsCache();
|
|
154
|
+
/**
|
|
155
|
+
* Start an eager TypeScript check (debounced)
|
|
156
|
+
*/
|
|
157
|
+
startEagerTypeScriptCheck(typeCheckFunction) {
|
|
158
|
+
this.typeScriptCache.startEagerCheck(typeCheckFunction);
|
|
159
|
+
}
|
|
160
|
+
/**
|
|
161
|
+
* Invalidate context errors cache when errors are added/removed
|
|
162
|
+
*/
|
|
163
|
+
invalidateContextErrors() {
|
|
164
|
+
this.contextErrorsCache.invalidate();
|
|
165
|
+
}
|
|
166
|
+
/**
|
|
167
|
+
* Invalidate TypeScript cache when significant code changes occur
|
|
168
|
+
*/
|
|
169
|
+
invalidateTypeScript() {
|
|
170
|
+
this.typeScriptCache.invalidate();
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Get combined debug result
|
|
174
|
+
*/
|
|
175
|
+
async getCombinedResult(typeCheckFunction, contextErrorsFunction) {
|
|
176
|
+
// Get TypeScript errors (may be cached or trigger new check)
|
|
177
|
+
let typeScriptResult;
|
|
178
|
+
try {
|
|
179
|
+
typeScriptResult = await this.typeScriptCache.getResult();
|
|
180
|
+
}
|
|
181
|
+
catch {
|
|
182
|
+
// No cached result, start immediate check
|
|
183
|
+
this.typeScriptCache.startImmediateCheck(typeCheckFunction);
|
|
184
|
+
typeScriptResult = await this.typeScriptCache.getResult();
|
|
185
|
+
}
|
|
186
|
+
// Get context errors (cached or fresh)
|
|
187
|
+
const contextResult = this.contextErrorsCache.getResult(contextErrorsFunction);
|
|
188
|
+
// Combine results
|
|
189
|
+
const hasErrors = Boolean(typeScriptResult.typeErrors ||
|
|
190
|
+
contextResult.buildSystemErrors.length ||
|
|
191
|
+
contextResult.runtimeErrors.length);
|
|
192
|
+
return {
|
|
193
|
+
status: hasErrors ? "errors_found" : "success",
|
|
194
|
+
message: hasErrors
|
|
195
|
+
? "Found errors that need to be fixed"
|
|
196
|
+
: "All checks passed successfully",
|
|
197
|
+
typeErrors: typeScriptResult.typeErrors,
|
|
198
|
+
buildSystemErrors: contextResult.buildSystemErrors,
|
|
199
|
+
runtimeErrors: contextResult.runtimeErrors,
|
|
200
|
+
timestamp: Math.max(typeScriptResult.timestamp, contextResult.timestamp),
|
|
201
|
+
};
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Check if we have fresh TypeScript results (useful for optimization)
|
|
205
|
+
*/
|
|
206
|
+
hasFreshTypeScriptResult() {
|
|
207
|
+
return this.typeScriptCache.hasFreshResult();
|
|
208
|
+
}
|
|
209
|
+
}
|
|
62
210
|
// Global debug cache instance
|
|
63
211
|
export const debugCache = new DebugCache();
|
|
64
212
|
/**
|
|
65
|
-
*
|
|
213
|
+
* Create TypeScript check function
|
|
66
214
|
*/
|
|
67
|
-
export function
|
|
215
|
+
export function createTypeScriptCheckFunction(appShell, abortSignal) {
|
|
68
216
|
return async () => {
|
|
217
|
+
const tsErrors = await appShell.runTypecheckRawOutput(abortSignal);
|
|
218
|
+
const maxLines = 30;
|
|
219
|
+
let clampedTsErrors = tsErrors ?? "";
|
|
220
|
+
if (clampedTsErrors) {
|
|
221
|
+
const lines = clampedTsErrors.split("\n");
|
|
222
|
+
if (lines.length > maxLines) {
|
|
223
|
+
clampedTsErrors =
|
|
224
|
+
lines.slice(0, maxLines).join("\n") +
|
|
225
|
+
`\n... (${lines.length - maxLines} more lines truncated)`;
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
return {
|
|
229
|
+
status: clampedTsErrors ? "errors_found" : "success",
|
|
230
|
+
typeErrors: clampedTsErrors,
|
|
231
|
+
timestamp: Date.now(),
|
|
232
|
+
};
|
|
233
|
+
};
|
|
234
|
+
}
|
|
235
|
+
/**
|
|
236
|
+
* Create context errors function
|
|
237
|
+
*/
|
|
238
|
+
export function createRuntimeAndBuildErrorsFunction(clark, appShell) {
|
|
239
|
+
return () => {
|
|
69
240
|
const buildSystemErrors = [];
|
|
70
241
|
if (clark.context.buildSystemErrors?.length) {
|
|
71
|
-
const rootDir = new RegExp(
|
|
72
|
-
|
|
242
|
+
const rootDir = new RegExp(appShell.appRootDirPath, "g");
|
|
243
|
+
const now = Date.now();
|
|
244
|
+
const MAX_ERROR_AGE = 5 * 60 * 1000;
|
|
245
|
+
// Filter out errors older than MAX_ERROR_AGE
|
|
246
|
+
const freshErrors = clark.context.buildSystemErrors.filter((e) => {
|
|
247
|
+
const errorAge = now - (e.timestamp || 0);
|
|
248
|
+
return errorAge < MAX_ERROR_AGE;
|
|
249
|
+
});
|
|
250
|
+
buildSystemErrors.push(...freshErrors.map((e) => ({
|
|
251
|
+
message: e.message.replace(rootDir, ""),
|
|
252
|
+
stack: e.stack?.replace(rootDir, ""),
|
|
253
|
+
name: e.name,
|
|
254
|
+
code: e.code,
|
|
255
|
+
timestamp: e.timestamp,
|
|
256
|
+
age: now - (e.timestamp || 0),
|
|
257
|
+
})));
|
|
258
|
+
// If we filtered out stale errors, update the context
|
|
259
|
+
if (freshErrors.length !== clark.context.buildSystemErrors.length) {
|
|
260
|
+
clark.updateContext((context) => ({
|
|
261
|
+
...context,
|
|
262
|
+
buildSystemErrors: freshErrors,
|
|
263
|
+
}));
|
|
264
|
+
}
|
|
73
265
|
}
|
|
74
266
|
let runtimeErrors = [];
|
|
75
267
|
if (clark.context.runtimeErrors?.length) {
|
|
@@ -80,26 +272,11 @@ export function createDebugFunction(clark, services) {
|
|
|
80
272
|
sourceId: e.identifier?.sourceId,
|
|
81
273
|
}));
|
|
82
274
|
}
|
|
83
|
-
const
|
|
84
|
-
const maxLines = 30;
|
|
85
|
-
let clampedTsErrors = tsErrors ?? "";
|
|
86
|
-
if (clampedTsErrors) {
|
|
87
|
-
const lines = clampedTsErrors.split("\n");
|
|
88
|
-
if (lines.length > maxLines) {
|
|
89
|
-
clampedTsErrors =
|
|
90
|
-
lines.slice(0, maxLines).join("\n") +
|
|
91
|
-
`\n... (${lines.length - maxLines} more lines truncated)`;
|
|
92
|
-
}
|
|
93
|
-
}
|
|
94
|
-
const hasErrors = Boolean(tsErrors || buildSystemErrors.length || runtimeErrors.length);
|
|
275
|
+
const hasErrors = Boolean(buildSystemErrors.length || runtimeErrors.length);
|
|
95
276
|
return {
|
|
96
|
-
status: hasErrors ? "errors_found" : "success",
|
|
97
|
-
message: hasErrors
|
|
98
|
-
? "Found errors that need to be fixed"
|
|
99
|
-
: "All checks passed successfully",
|
|
100
|
-
typeErrors: clampedTsErrors,
|
|
101
277
|
buildSystemErrors,
|
|
102
278
|
runtimeErrors,
|
|
279
|
+
status: hasErrors ? "errors_found" : "success",
|
|
103
280
|
timestamp: Date.now(),
|
|
104
281
|
};
|
|
105
282
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"debug-cache.js","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools/debug-cache.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"debug-cache.js","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools/debug-cache.ts"],"names":[],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ export { default as createBuildAddStateVarTool } from "./build-add-state-var.js"
|
|
|
6
6
|
export { default as createBuildUpdateStateVarTool } from "./build-update-state-var.js";
|
|
7
7
|
export { default as createBuildAddTimerTool } from "./build-add-timer.js";
|
|
8
8
|
export { default as createBuildAddEventTool } from "./build-add-event.js";
|
|
9
|
+
export { default as createBuildSetApiTriggersTool } from "./build-set-api-triggers.js";
|
|
9
10
|
export { default as createBuildRegisterComponentNameTool } from "./build-register-component-name.js";
|
|
10
11
|
export { default as createBuildWriteFileTool } from "./build-write-file.js";
|
|
11
12
|
export { default as createBuildEditFileTool } from "./build-edit-file.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AACzF,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AACxF,OAAO,EAAE,OAAO,IAAI,sCAAsC,EAAE,MAAM,sCAAsC,CAAC;AACzG,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AACvF,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,oCAAoC,EAAE,MAAM,oCAAoC,CAAC;AACrG,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,EACL,OAAO,IAAI,wBAAwB,EACnC,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,8BAA8B,EAAE,MAAM,6BAA6B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AACzF,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AACxF,OAAO,EAAE,OAAO,IAAI,sCAAsC,EAAE,MAAM,sCAAsC,CAAC;AACzG,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AACvF,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AACvF,OAAO,EAAE,OAAO,IAAI,oCAAoC,EAAE,MAAM,oCAAoC,CAAC;AACrG,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,EACL,OAAO,IAAI,wBAAwB,EACnC,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,8BAA8B,EAAE,MAAM,6BAA6B,CAAC"}
|
|
@@ -6,6 +6,7 @@ export { default as createBuildAddStateVarTool } from "./build-add-state-var.js"
|
|
|
6
6
|
export { default as createBuildUpdateStateVarTool } from "./build-update-state-var.js";
|
|
7
7
|
export { default as createBuildAddTimerTool } from "./build-add-timer.js";
|
|
8
8
|
export { default as createBuildAddEventTool } from "./build-add-event.js";
|
|
9
|
+
export { default as createBuildSetApiTriggersTool } from "./build-set-api-triggers.js";
|
|
9
10
|
export { default as createBuildRegisterComponentNameTool } from "./build-register-component-name.js";
|
|
10
11
|
export { default as createBuildWriteFileTool } from "./build-write-file.js";
|
|
11
12
|
export { default as createBuildEditFileTool } from "./build-edit-file.js";
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AACzF,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AACxF,OAAO,EAAE,OAAO,IAAI,sCAAsC,EAAE,MAAM,sCAAsC,CAAC;AACzG,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AACvF,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,oCAAoC,EAAE,MAAM,oCAAoC,CAAC;AACrG,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,EACL,OAAO,IAAI,wBAAwB,EACnC,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,8BAA8B,EAAE,MAAM,6BAA6B,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,8BAA8B,EAAE,MAAM,8BAA8B,CAAC;AACzF,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,8BAA8B,EAAE,MAAM,6BAA6B,CAAC;AACxF,OAAO,EAAE,OAAO,IAAI,sCAAsC,EAAE,MAAM,sCAAsC,CAAC;AACzG,OAAO,EAAE,OAAO,IAAI,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACjF,OAAO,EAAE,OAAO,IAAI,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AACvF,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,6BAA6B,EAAE,MAAM,6BAA6B,CAAC;AACvF,OAAO,EAAE,OAAO,IAAI,oCAAoC,EAAE,MAAM,oCAAoC,CAAC;AACrG,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,sBAAsB,CAAC;AAC1E,OAAO,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,4BAA4B,CAAC;AACrF,OAAO,EACL,OAAO,IAAI,wBAAwB,EACnC,mBAAmB,GACpB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,OAAO,IAAI,wBAAwB,EAAE,MAAM,uBAAuB,CAAC;AAC5E,OAAO,EAAE,OAAO,IAAI,yBAAyB,EAAE,MAAM,wBAAwB,CAAC;AAC9E,OAAO,EAAE,OAAO,IAAI,4BAA4B,EAAE,MAAM,2BAA2B,CAAC;AACpF,OAAO,EAAE,OAAO,IAAI,oBAAoB,EAAE,MAAM,kBAAkB,CAAC;AACnE,OAAO,EAAE,OAAO,IAAI,uBAAuB,EAAE,MAAM,qBAAqB,CAAC;AACzE,OAAO,EAAE,OAAO,IAAI,8BAA8B,EAAE,MAAM,6BAA6B,CAAC"}
|
|
@@ -1,9 +1,13 @@
|
|
|
1
|
+
import { Paths } from "../../const.js";
|
|
1
2
|
import type { OperationQueue } from "../../../util/operation-queue.js";
|
|
2
3
|
import type { Clark, ClarkStateHandlerParams } from "../../state-machine/clark-fsm.js";
|
|
4
|
+
import type { PathParams } from "../../types.js";
|
|
3
5
|
import type { AddEntityRequest } from "@superblocksteam/library-shared/types";
|
|
4
6
|
export declare const handleScopeAddEntity: (coords: {
|
|
5
7
|
identifier: string;
|
|
6
8
|
type: "name" | "id";
|
|
7
9
|
}, addEntityRequest: AddEntityRequest, clark: Clark, services: ClarkStateHandlerParams, scopeUpdateQueue: OperationQueue) => Promise<void>;
|
|
8
|
-
export declare const
|
|
10
|
+
export declare const isApiFilePath: (filePath: string) => boolean;
|
|
11
|
+
export declare const toGeneratedApiPath: (filePath: string) => string | undefined;
|
|
12
|
+
export declare const parseGeneratedApiPath: (filePath: string) => PathParams<Paths.GeneratedApis> | undefined;
|
|
9
13
|
//# sourceMappingURL=shared-helpers.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared-helpers.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools/shared-helpers.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shared-helpers.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/agent/tools/shared-helpers.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,KAAK,EAAE,MAAM,gBAAgB,CAAC;AAIvC,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,kCAAkC,CAAC;AACvE,OAAO,KAAK,EACV,KAAK,EACL,uBAAuB,EACxB,MAAM,kCAAkC,CAAC;AAC1C,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uCAAuC,CAAC;AAE9E,eAAO,MAAM,oBAAoB,GAC/B,QAAQ;IACN,UAAU,EAAE,MAAM,CAAC;IACnB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;CACrB,EACD,kBAAkB,gBAAgB,EAClC,OAAO,KAAK,EACZ,UAAU,uBAAuB,EACjC,kBAAkB,cAAc,kBAgCjC,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,UAAU,MAAM,YACgB,CAAC;AAI/D,eAAO,MAAM,kBAAkB,GAAI,UAAU,MAAM,KAAG,MAAM,GAAG,SAU9D,CAAC;AAIF,eAAO,MAAM,qBAAqB,GAChC,UAAU,MAAM,KACf,UAAU,CAAC,KAAK,CAAC,aAAa,CAAC,GAAG,SAUpC,CAAC"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import path from "node:path";
|
|
2
2
|
import { getPageFilePath } from "../../../file-system-helpers.js";
|
|
3
|
+
import { Paths } from "../../const.js";
|
|
3
4
|
import { fileReadTracker } from "../../state-machine/helpers/file-read-tracker.js";
|
|
5
|
+
import { matchPath, renderPath } from "../../transform/shared.js";
|
|
4
6
|
import { ensureScopeFileDraft } from "../utils.js";
|
|
5
7
|
export const handleScopeAddEntity = async (coords, addEntityRequest, clark, services, scopeUpdateQueue) => {
|
|
6
8
|
const { requireRead } = fileReadTracker(clark);
|
|
@@ -23,7 +25,28 @@ export const handleScopeAddEntity = async (coords, addEntityRequest, clark, serv
|
|
|
23
25
|
requireRead(pageFilePath);
|
|
24
26
|
});
|
|
25
27
|
};
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
export const
|
|
28
|
+
export const isApiFilePath = (filePath) => filePath.startsWith("pages/") && filePath.includes("/apis/");
|
|
29
|
+
const allApiArtifacts = matchPath("pages/:pageName/apis/:apiName/**");
|
|
30
|
+
export const toGeneratedApiPath = (filePath) => {
|
|
31
|
+
const match = allApiArtifacts(filePath);
|
|
32
|
+
if (match.matched) {
|
|
33
|
+
return renderPath(Paths.GeneratedApis, {
|
|
34
|
+
pageName: match.params.pageName,
|
|
35
|
+
apiName: `${match.params.apiName}.ts`,
|
|
36
|
+
});
|
|
37
|
+
}
|
|
38
|
+
return undefined;
|
|
39
|
+
};
|
|
40
|
+
const generatedApis = matchPath(Paths.GeneratedApis);
|
|
41
|
+
export const parseGeneratedApiPath = (filePath) => {
|
|
42
|
+
const match = generatedApis(filePath);
|
|
43
|
+
if (match.matched && match.params.apiName.endsWith(".ts")) {
|
|
44
|
+
const { pageName, apiName } = match.params;
|
|
45
|
+
return {
|
|
46
|
+
pageName,
|
|
47
|
+
apiName: path.basename(apiName, ".ts"),
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
return undefined;
|
|
51
|
+
};
|
|
29
52
|
//# sourceMappingURL=shared-helpers.js.map
|