@superblocksteam/vite-plugin-file-sync 2.0.48-next.0 → 2.0.50
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 +10 -0
- package/dist/ai-service/agent/middleware.d.ts.map +1 -0
- package/dist/ai-service/agent/middleware.js +27 -0
- package/dist/ai-service/agent/middleware.js.map +1 -0
- 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 +13 -19
- package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
- package/dist/ai-service/agent/subagents/apis/generate-api-source.d.ts +2 -70
- package/dist/ai-service/agent/subagents/apis/generate-api-source.d.ts.map +1 -1
- package/dist/ai-service/agent/subagents/apis/generate-api-source.js +20 -21
- package/dist/ai-service/agent/subagents/apis/generate-api-source.js.map +1 -1
- package/dist/ai-service/agent/subagents/apis/state.d.ts +3 -4
- package/dist/ai-service/agent/subagents/apis/state.d.ts.map +1 -1
- package/dist/ai-service/agent/subagents/apis/system-prompt.d.ts +1 -1
- package/dist/ai-service/agent/subagents/apis/system-prompt.d.ts.map +1 -1
- package/dist/ai-service/agent/subagents/apis/system-prompt.js +187 -2
- package/dist/ai-service/agent/subagents/apis/system-prompt.js.map +1 -1
- package/dist/ai-service/agent/subagents/types.d.ts +39 -0
- package/dist/ai-service/agent/subagents/types.d.ts.map +1 -0
- package/dist/ai-service/agent/subagents/types.js +40 -0
- package/dist/ai-service/agent/subagents/types.js.map +1 -0
- package/dist/ai-service/agent/tool-message-utils.d.ts +1 -2
- package/dist/ai-service/agent/tool-message-utils.d.ts.map +1 -1
- package/dist/ai-service/agent/tool-message-utils.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/build-api.d.ts +1 -0
- package/dist/ai-service/agent/tools/apis/build-api.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/build-api.js +113 -89
- package/dist/ai-service/agent/tools/apis/build-api.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/finalize-api.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/finalize-api.js +27 -15
- package/dist/ai-service/agent/tools/apis/finalize-api.js.map +1 -1
- package/dist/ai-service/agent/tools/build-list-available-components.d.ts +6 -1
- package/dist/ai-service/agent/tools/build-list-available-components.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-list-available-components.js +23 -7
- package/dist/ai-service/agent/tools/build-list-available-components.js.map +1 -1
- package/dist/ai-service/agent/tools/build-manage-checklist.d.ts +1 -1
- package/dist/ai-service/agent/tools/debug-cache.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/debug-cache.js +36 -1
- package/dist/ai-service/agent/tools/debug-cache.js.map +1 -1
- package/dist/ai-service/agent/tools/integrations/execute-request.js +1 -1
- package/dist/ai-service/agent/tools/integrations/execute-request.js.map +1 -1
- package/dist/ai-service/agent/tools/integrations/metadata.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/integrations/metadata.js +2 -3
- package/dist/ai-service/agent/tools/integrations/metadata.js.map +1 -1
- package/dist/ai-service/agent/tools.d.ts +2 -2
- package/dist/ai-service/agent/tools.d.ts.map +1 -1
- package/dist/ai-service/agent/tools.js +24 -11
- package/dist/ai-service/agent/tools.js.map +1 -1
- package/dist/ai-service/agent/tools2/access-control.d.ts +50 -20
- package/dist/ai-service/agent/tools2/access-control.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/access-control.js +122 -51
- package/dist/ai-service/agent/tools2/access-control.js.map +1 -1
- package/dist/ai-service/agent/tools2/registry.d.ts +27 -22
- package/dist/ai-service/agent/tools2/registry.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/registry.js +77 -46
- package/dist/ai-service/agent/tools2/registry.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js +1 -1
- package/dist/ai-service/agent/tools2/tools/exit-plan-mode.js.map +1 -1
- package/dist/ai-service/agent/tools2/types.d.ts +20 -12
- package/dist/ai-service/agent/tools2/types.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/types.js +4 -0
- package/dist/ai-service/agent/tools2/types.js.map +1 -1
- package/dist/ai-service/agent/utils.d.ts +2 -2
- package/dist/ai-service/agent/utils.d.ts.map +1 -1
- package/dist/ai-service/agent/utils.js +12 -68
- package/dist/ai-service/agent/utils.js.map +1 -1
- package/dist/ai-service/app-interface/shell.d.ts +2 -0
- package/dist/ai-service/app-interface/shell.d.ts.map +1 -1
- package/dist/ai-service/app-interface/shell.js +14 -1
- package/dist/ai-service/app-interface/shell.js.map +1 -1
- package/dist/ai-service/index.d.ts +20 -0
- package/dist/ai-service/index.d.ts.map +1 -1
- package/dist/ai-service/index.js +76 -6
- package/dist/ai-service/index.js.map +1 -1
- package/dist/ai-service/integrations/store.d.ts +2 -1
- package/dist/ai-service/integrations/store.d.ts.map +1 -1
- package/dist/ai-service/integrations/store.js +30 -7
- package/dist/ai-service/integrations/store.js.map +1 -1
- package/dist/ai-service/llm/chaos-fetch.d.ts +102 -0
- package/dist/ai-service/llm/chaos-fetch.d.ts.map +1 -0
- package/dist/ai-service/llm/chaos-fetch.js +196 -0
- package/dist/ai-service/llm/chaos-fetch.js.map +1 -0
- package/dist/ai-service/llm/context/context-lock.d.ts +1 -0
- package/dist/ai-service/llm/context/context-lock.d.ts.map +1 -1
- package/dist/ai-service/llm/context/context-lock.js +4 -0
- package/dist/ai-service/llm/context/context-lock.js.map +1 -1
- package/dist/ai-service/llm/context/context.d.ts +6 -0
- package/dist/ai-service/llm/context/context.d.ts.map +1 -1
- package/dist/ai-service/llm/context/context.js +25 -1
- package/dist/ai-service/llm/context/context.js.map +1 -1
- package/dist/ai-service/llm/error.d.ts +54 -0
- package/dist/ai-service/llm/error.d.ts.map +1 -0
- package/dist/ai-service/llm/error.js +148 -0
- package/dist/ai-service/llm/error.js.map +1 -0
- package/dist/ai-service/llm/middleware/retry.d.ts +112 -0
- package/dist/ai-service/llm/middleware/retry.d.ts.map +1 -0
- package/dist/ai-service/llm/middleware/retry.js +239 -0
- package/dist/ai-service/llm/middleware/retry.js.map +1 -0
- package/dist/ai-service/llm/provider.d.ts +2 -1
- package/dist/ai-service/llm/provider.d.ts.map +1 -1
- package/dist/ai-service/llm/provider.js +11 -3
- package/dist/ai-service/llm/provider.js.map +1 -1
- package/dist/ai-service/llm/types.d.ts +2 -1
- package/dist/ai-service/llm/types.d.ts.map +1 -1
- package/dist/ai-service/llm/util/provider-errors.d.ts +4 -0
- package/dist/ai-service/llm/util/provider-errors.d.ts.map +1 -0
- package/dist/ai-service/llm/util/provider-errors.js +35 -0
- package/dist/ai-service/llm/util/provider-errors.js.map +1 -0
- package/dist/ai-service/llmobs/helpers.d.ts +8 -7
- package/dist/ai-service/llmobs/helpers.d.ts.map +1 -1
- package/dist/ai-service/llmobs/helpers.js +16 -14
- package/dist/ai-service/llmobs/helpers.js.map +1 -1
- package/dist/ai-service/prompt-builder-service/index.d.ts +0 -1
- package/dist/ai-service/prompt-builder-service/index.d.ts.map +1 -1
- package/dist/ai-service/prompt-builder-service/index.js +0 -1
- package/dist/ai-service/prompt-builder-service/index.js.map +1 -1
- package/dist/ai-service/state-machine/clark-fsm.d.ts +11 -2
- package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
- package/dist/ai-service/state-machine/clark-fsm.js +22 -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 +58 -90
- package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/idle.js +1 -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 +30 -4
- 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 +1 -0
- package/dist/ai-service/state-machine/mocks.js.map +1 -1
- package/dist/ai-service/test-utils/error-mocks.d.ts +69 -0
- package/dist/ai-service/test-utils/error-mocks.d.ts.map +1 -0
- package/dist/ai-service/test-utils/error-mocks.js +327 -0
- package/dist/ai-service/test-utils/error-mocks.js.map +1 -0
- package/dist/ai-service/types.d.ts +42 -11
- package/dist/ai-service/types.d.ts.map +1 -1
- package/dist/ai-service/types.js +37 -1
- package/dist/ai-service/types.js.map +1 -1
- package/dist/ai-service/util/backoff-strategy.d.ts +72 -0
- package/dist/ai-service/util/backoff-strategy.d.ts.map +1 -0
- package/dist/ai-service/util/backoff-strategy.js +45 -0
- package/dist/ai-service/util/backoff-strategy.js.map +1 -0
- package/dist/file-sync-vite-plugin.d.ts.map +1 -1
- package/dist/file-sync-vite-plugin.js +48 -28
- package/dist/file-sync-vite-plugin.js.map +1 -1
- package/dist/lock-service/activity-tracker.d.ts +39 -0
- package/dist/lock-service/activity-tracker.d.ts.map +1 -0
- package/dist/lock-service/activity-tracker.js +80 -0
- package/dist/lock-service/activity-tracker.js.map +1 -0
- package/dist/lock-service/index.d.ts +30 -9
- package/dist/lock-service/index.d.ts.map +1 -1
- package/dist/lock-service/index.js +120 -37
- package/dist/lock-service/index.js.map +1 -1
- package/dist/socket-manager.d.ts.map +1 -1
- package/dist/socket-manager.js +7 -4
- package/dist/socket-manager.js.map +1 -1
- package/package.json +10 -14
- package/dist/ai-service/evals/content-matchers/index.d.ts +0 -15
- package/dist/ai-service/evals/content-matchers/index.d.ts.map +0 -1
- package/dist/ai-service/evals/content-matchers/index.js +0 -184
- package/dist/ai-service/evals/content-matchers/index.js.map +0 -1
- package/dist/ai-service/evals/fixtures/api-gen/get-orders-from-postgres-integrations.d.ts +0 -20
- package/dist/ai-service/evals/fixtures/api-gen/get-orders-from-postgres-integrations.d.ts.map +0 -1
- package/dist/ai-service/evals/fixtures/api-gen/get-orders-from-postgres-integrations.js +0 -50
- package/dist/ai-service/evals/fixtures/api-gen/get-orders-from-postgres-integrations.js.map +0 -1
- package/dist/ai-service/evals/fixtures/api-gen/get-salesforce-accounts-integrations.d.ts +0 -13
- package/dist/ai-service/evals/fixtures/api-gen/get-salesforce-accounts-integrations.d.ts.map +0 -1
- package/dist/ai-service/evals/fixtures/api-gen/get-salesforce-accounts-integrations.js +0 -51
- package/dist/ai-service/evals/fixtures/api-gen/get-salesforce-accounts-integrations.js.map +0 -1
- package/dist/ai-service/evals/fixtures/doordash-prompt-integrations.d.ts +0 -43
- package/dist/ai-service/evals/fixtures/doordash-prompt-integrations.d.ts.map +0 -1
- package/dist/ai-service/evals/fixtures/doordash-prompt-integrations.js +0 -2172
- package/dist/ai-service/evals/fixtures/doordash-prompt-integrations.js.map +0 -1
- package/dist/ai-service/evals/fixtures/example-db-schemas.d.ts +0 -21
- package/dist/ai-service/evals/fixtures/example-db-schemas.d.ts.map +0 -1
- package/dist/ai-service/evals/fixtures/example-db-schemas.js +0 -525
- package/dist/ai-service/evals/fixtures/example-db-schemas.js.map +0 -1
- package/dist/ai-service/evals/fixtures/j-and-j-prompt-integrations.d.ts +0 -43
- package/dist/ai-service/evals/fixtures/j-and-j-prompt-integrations.d.ts.map +0 -1
- package/dist/ai-service/evals/fixtures/j-and-j-prompt-integrations.js +0 -2172
- package/dist/ai-service/evals/fixtures/j-and-j-prompt-integrations.js.map +0 -1
- package/dist/ai-service/evals/fixtures/linkedin-prompt-integrations.d.ts +0 -43
- package/dist/ai-service/evals/fixtures/linkedin-prompt-integrations.d.ts.map +0 -1
- package/dist/ai-service/evals/fixtures/linkedin-prompt-integrations.js +0 -2172
- package/dist/ai-service/evals/fixtures/linkedin-prompt-integrations.js.map +0 -1
- package/dist/ai-service/evals/fixtures/open-api-example-schemas.d.ts +0 -1591
- package/dist/ai-service/evals/fixtures/open-api-example-schemas.d.ts.map +0 -1
- package/dist/ai-service/evals/fixtures/open-api-example-schemas.js +0 -1766
- package/dist/ai-service/evals/fixtures/open-api-example-schemas.js.map +0 -1
- package/dist/ai-service/evals/fixtures/pfizer-prompt-integrations.d.ts +0 -36
- package/dist/ai-service/evals/fixtures/pfizer-prompt-integrations.d.ts.map +0 -1
- package/dist/ai-service/evals/fixtures/pfizer-prompt-integrations.js +0 -2166
- package/dist/ai-service/evals/fixtures/pfizer-prompt-integrations.js.map +0 -1
- package/dist/ai-service/evals/helpers/critical-scorers.d.ts +0 -12
- package/dist/ai-service/evals/helpers/critical-scorers.d.ts.map +0 -1
- package/dist/ai-service/evals/helpers/critical-scorers.js +0 -451
- package/dist/ai-service/evals/helpers/critical-scorers.js.map +0 -1
- package/dist/ai-service/evals/helpers/eval-scoring.d.ts +0 -127
- package/dist/ai-service/evals/helpers/eval-scoring.d.ts.map +0 -1
- package/dist/ai-service/evals/helpers/eval-scoring.js +0 -201
- package/dist/ai-service/evals/helpers/eval-scoring.js.map +0 -1
- package/dist/ai-service/evals/helpers/index.d.ts +0 -68
- package/dist/ai-service/evals/helpers/index.d.ts.map +0 -1
- package/dist/ai-service/evals/helpers/index.js +0 -556
- package/dist/ai-service/evals/helpers/index.js.map +0 -1
- package/dist/ai-service/evals/helpers/non-critical-scorers.d.ts +0 -6
- package/dist/ai-service/evals/helpers/non-critical-scorers.d.ts.map +0 -1
- package/dist/ai-service/evals/helpers/non-critical-scorers.js +0 -197
- package/dist/ai-service/evals/helpers/non-critical-scorers.js.map +0 -1
- package/dist/ai-service/evals/helpers/scorer-types.d.ts +0 -39
- package/dist/ai-service/evals/helpers/scorer-types.d.ts.map +0 -1
- package/dist/ai-service/evals/helpers/scorer-types.js +0 -19
- package/dist/ai-service/evals/helpers/scorer-types.js.map +0 -1
- package/dist/ai-service/evals/llm-provider.d.ts +0 -3
- package/dist/ai-service/evals/llm-provider.d.ts.map +0 -1
- package/dist/ai-service/evals/llm-provider.js +0 -14
- package/dist/ai-service/evals/llm-provider.js.map +0 -1
- package/dist/ai-service/evals/load-env-vars.d.ts +0 -2
- package/dist/ai-service/evals/load-env-vars.d.ts.map +0 -1
- package/dist/ai-service/evals/load-env-vars.js +0 -11
- package/dist/ai-service/evals/load-env-vars.js.map +0 -1
- package/dist/ai-service/llmobs/middleware/retry.d.ts +0 -51
- package/dist/ai-service/llmobs/middleware/retry.d.ts.map +0 -1
- package/dist/ai-service/llmobs/middleware/retry.js +0 -147
- package/dist/ai-service/llmobs/middleware/retry.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/builders/code-generation.d.ts +0 -8
- package/dist/ai-service/prompt-builder-service/builders/code-generation.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/builders/code-generation.js +0 -145
- package/dist/ai-service/prompt-builder-service/builders/code-generation.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/builders/incremental-edits.d.ts +0 -13
- package/dist/ai-service/prompt-builder-service/builders/incremental-edits.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/builders/incremental-edits.js +0 -71
- package/dist/ai-service/prompt-builder-service/builders/incremental-edits.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/builders/specific-edits.d.ts +0 -13
- package/dist/ai-service/prompt-builder-service/builders/specific-edits.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/builders/specific-edits.js +0 -71
- package/dist/ai-service/prompt-builder-service/builders/specific-edits.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/constants/index.d.ts +0 -4
- package/dist/ai-service/prompt-builder-service/constants/index.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/constants/index.js +0 -54
- package/dist/ai-service/prompt-builder-service/constants/index.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/constants/superblocks-platform-fragments.d.ts +0 -4
- package/dist/ai-service/prompt-builder-service/constants/superblocks-platform-fragments.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/constants/superblocks-platform-fragments.js +0 -66
- package/dist/ai-service/prompt-builder-service/constants/superblocks-platform-fragments.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/fragment-generators/base-fragment.d.ts +0 -5
- package/dist/ai-service/prompt-builder-service/fragment-generators/base-fragment.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/fragment-generators/base-fragment.js +0 -50
- package/dist/ai-service/prompt-builder-service/fragment-generators/base-fragment.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/fragment-generators/chakra-tokens.d.ts +0 -8
- package/dist/ai-service/prompt-builder-service/fragment-generators/chakra-tokens.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/fragment-generators/chakra-tokens.js +0 -54
- package/dist/ai-service/prompt-builder-service/fragment-generators/chakra-tokens.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/fragment-generators/file-fragments.d.ts +0 -4
- package/dist/ai-service/prompt-builder-service/fragment-generators/file-fragments.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/fragment-generators/file-fragments.js +0 -17
- package/dist/ai-service/prompt-builder-service/fragment-generators/file-fragments.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/fragment-generators/integration-fragments.d.ts +0 -4
- package/dist/ai-service/prompt-builder-service/fragment-generators/integration-fragments.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/fragment-generators/integration-fragments.js +0 -20
- package/dist/ai-service/prompt-builder-service/fragment-generators/integration-fragments.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/index.d.ts +0 -4
- package/dist/ai-service/prompt-builder-service/static-fragments/index.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/index.js +0 -6
- package/dist/ai-service/prompt-builder-service/static-fragments/index.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ButtonPropsDocs.d.ts +0 -2
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ButtonPropsDocs.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ButtonPropsDocs.js +0 -6
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ButtonPropsDocs.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/CheckboxPropsDocs.d.ts +0 -2
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/CheckboxPropsDocs.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/CheckboxPropsDocs.js +0 -6
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/CheckboxPropsDocs.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ColumnPropsDocs.d.ts +0 -2
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ColumnPropsDocs.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ColumnPropsDocs.js +0 -6
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ColumnPropsDocs.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ContainerPropsDocs.d.ts +0 -2
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ContainerPropsDocs.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ContainerPropsDocs.js +0 -6
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ContainerPropsDocs.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DatePickerPropsDocs.d.ts +0 -2
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DatePickerPropsDocs.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DatePickerPropsDocs.js +0 -6
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DatePickerPropsDocs.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DropdownPropsDocs.d.ts +0 -2
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DropdownPropsDocs.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DropdownPropsDocs.js +0 -6
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/DropdownPropsDocs.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/IconPropsDocs.d.ts +0 -2
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/IconPropsDocs.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/IconPropsDocs.js +0 -6
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/IconPropsDocs.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ImagePropsDocs.d.ts +0 -2
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ImagePropsDocs.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ImagePropsDocs.js +0 -6
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ImagePropsDocs.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/InputPropsDocs.d.ts +0 -2
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/InputPropsDocs.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/InputPropsDocs.js +0 -6
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/InputPropsDocs.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ModalPropsDocs.d.ts +0 -2
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ModalPropsDocs.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ModalPropsDocs.js +0 -6
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/ModalPropsDocs.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/PagePropsDocs.d.ts +0 -2
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/PagePropsDocs.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/PagePropsDocs.js +0 -6
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/PagePropsDocs.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SectionPropsDocs.d.ts +0 -2
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SectionPropsDocs.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SectionPropsDocs.js +0 -6
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SectionPropsDocs.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SlideoutPropsDocs.d.ts +0 -2
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SlideoutPropsDocs.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SlideoutPropsDocs.js +0 -6
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SlideoutPropsDocs.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SwitchPropsDocs.d.ts +0 -2
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SwitchPropsDocs.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SwitchPropsDocs.js +0 -6
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/SwitchPropsDocs.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TablePropsDocs.d.ts +0 -2
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TablePropsDocs.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TablePropsDocs.js +0 -6
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TablePropsDocs.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TextPropsDocs.d.ts +0 -2
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TextPropsDocs.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TextPropsDocs.js +0 -6
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/TextPropsDocs.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/index.d.ts +0 -17
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/index.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/index.js +0 -19
- package/dist/ai-service/prompt-builder-service/static-fragments/library-components/index.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/Dim.d.ts +0 -2
- package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/Dim.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/Dim.js +0 -6
- package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/Dim.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/EventFlow.d.ts +0 -2
- package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/EventFlow.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/EventFlow.js +0 -6
- package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/EventFlow.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/TextStyleWithVariant.d.ts +0 -2
- package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/TextStyleWithVariant.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/TextStyleWithVariant.js +0 -6
- package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/TextStyleWithVariant.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/index.d.ts +0 -4
- package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/index.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/index.js +0 -6
- package/dist/ai-service/prompt-builder-service/static-fragments/library-typedefs/index.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/full-examples.d.ts +0 -2
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/full-examples.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/full-examples.js +0 -6
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/full-examples.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/index.d.ts +0 -17
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/index.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/index.js +0 -19
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/index.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-api.d.ts +0 -2
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-api.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-api.js +0 -6
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-api.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-components-rules.d.ts +0 -2
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-components-rules.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-components-rules.js +0 -6
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-components-rules.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-custom-components.d.ts +0 -2
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-custom-components.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-custom-components.js +0 -6
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-custom-components.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-data-filtering.d.ts +0 -2
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-data-filtering.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-data-filtering.js +0 -6
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-data-filtering.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-event-flow.d.ts +0 -2
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-event-flow.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-event-flow.js +0 -6
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-event-flow.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-forms.d.ts +0 -2
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-forms.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-forms.js +0 -6
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-forms.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-layouts.d.ts +0 -2
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-layouts.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-layouts.js +0 -6
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-layouts.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-page.d.ts +0 -2
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-page.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-page.js +0 -6
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-page.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-rbac.d.ts +0 -2
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-rbac.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-rbac.js +0 -6
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-rbac.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-routes.d.ts +0 -2
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-routes.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-routes.js +0 -6
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-routes.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-state.d.ts +0 -2
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-state.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-state.js +0 -6
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-state.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-theming-chakra-new.d.ts +0 -2
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-theming-chakra-new.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-theming-chakra-new.js +0 -6
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/superblocks-theming-chakra-new.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-base.d.ts +0 -2
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-base.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-base.js +0 -6
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-base.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-incremental.d.ts +0 -2
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-incremental.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-incremental.js +0 -6
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-incremental.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-specific-edit.d.ts +0 -2
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-specific-edit.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-specific-edit.js +0 -6
- package/dist/ai-service/prompt-builder-service/static-fragments/platform-parts/system-specific-edit.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/utils/chakra/extract-chakra-tokens.d.ts +0 -18
- package/dist/ai-service/prompt-builder-service/utils/chakra/extract-chakra-tokens.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/utils/chakra/extract-chakra-tokens.js +0 -340
- package/dist/ai-service/prompt-builder-service/utils/chakra/extract-chakra-tokens.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/utils/formatting.d.ts +0 -3
- package/dist/ai-service/prompt-builder-service/utils/formatting.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/utils/formatting.js +0 -13
- package/dist/ai-service/prompt-builder-service/utils/formatting.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/utils/integrations/to-sdk-prompt.d.ts +0 -5
- package/dist/ai-service/prompt-builder-service/utils/integrations/to-sdk-prompt.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/utils/integrations/to-sdk-prompt.js +0 -40
- package/dist/ai-service/prompt-builder-service/utils/integrations/to-sdk-prompt.js.map +0 -1
- package/dist/ai-service/prompt-builder-service/utils/markdown-loader.d.ts +0 -12
- package/dist/ai-service/prompt-builder-service/utils/markdown-loader.d.ts.map +0 -1
- package/dist/ai-service/prompt-builder-service/utils/markdown-loader.js +0 -83
- package/dist/ai-service/prompt-builder-service/utils/markdown-loader.js.map +0 -1
- package/dist/ai-service/util/retry-on-timeout.d.ts +0 -93
- package/dist/ai-service/util/retry-on-timeout.d.ts.map +0 -1
- package/dist/ai-service/util/retry-on-timeout.js +0 -153
- package/dist/ai-service/util/retry-on-timeout.js.map +0 -1
|
@@ -0,0 +1,148 @@
|
|
|
1
|
+
import { APICallError } from "ai";
|
|
2
|
+
import { safeJsonStringify } from "../util/safe-stringify.js";
|
|
3
|
+
const ERROR_MAPPINGS = {
|
|
4
|
+
// Anthropic errors
|
|
5
|
+
rate_limit_error: "rate_limit",
|
|
6
|
+
request_too_large: "request_too_large",
|
|
7
|
+
authentication_error: "authentication",
|
|
8
|
+
permission_error: "permission",
|
|
9
|
+
not_found_error: "not_found",
|
|
10
|
+
api_error: "server_error",
|
|
11
|
+
invalid_request_error: "validation",
|
|
12
|
+
overloaded_error: "overloaded",
|
|
13
|
+
// Bedrock errors
|
|
14
|
+
ThrottlingException: "rate_limit",
|
|
15
|
+
AccessDeniedException: "permission",
|
|
16
|
+
NotAuthorized: "permission",
|
|
17
|
+
InvalidClientTokenId: "authentication",
|
|
18
|
+
UnrecognizedClientException: "authentication",
|
|
19
|
+
ResourceNotFound: "not_found",
|
|
20
|
+
InternalFailure: "server_error",
|
|
21
|
+
ValidationError: "validation",
|
|
22
|
+
InvalidAction: "validation",
|
|
23
|
+
IncompleteSignature: "validation",
|
|
24
|
+
RequestExpired: "request_expired",
|
|
25
|
+
ServiceUnavailable: "overloaded",
|
|
26
|
+
// Clark errors
|
|
27
|
+
server_error: "server_error",
|
|
28
|
+
};
|
|
29
|
+
const name = "SB_LLMProviderError";
|
|
30
|
+
const marker = `superblocks.ai.error.${name}`;
|
|
31
|
+
const symbol = Symbol.for(marker);
|
|
32
|
+
export class LLMProviderError {
|
|
33
|
+
[symbol] = true; // used in isInstance
|
|
34
|
+
messages = ["Failed to get response from LLM provider"];
|
|
35
|
+
name = "LLMProviderError";
|
|
36
|
+
provider;
|
|
37
|
+
type = "unknown";
|
|
38
|
+
url;
|
|
39
|
+
statusCode;
|
|
40
|
+
isRetryable = true;
|
|
41
|
+
data;
|
|
42
|
+
cause;
|
|
43
|
+
constructor({ provider, message, aborted, cause, }) {
|
|
44
|
+
this.provider = provider;
|
|
45
|
+
if (message) {
|
|
46
|
+
this.messages[0] = message;
|
|
47
|
+
}
|
|
48
|
+
if (aborted) {
|
|
49
|
+
this.isRetryable = false;
|
|
50
|
+
this.type = "aborted";
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
if (!cause) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
this.cause = cause;
|
|
57
|
+
if (APICallError.isInstance(cause)) {
|
|
58
|
+
this.messages.push(cause.message);
|
|
59
|
+
this.statusCode = cause.statusCode;
|
|
60
|
+
this.url = cause.url;
|
|
61
|
+
this.isRetryable = cause.isRetryable;
|
|
62
|
+
if (cause.data) {
|
|
63
|
+
this.data = normalizeProviderErrorData(cause.data);
|
|
64
|
+
this.messages.push(this.data.message);
|
|
65
|
+
if (this.data.type) {
|
|
66
|
+
this.type =
|
|
67
|
+
ERROR_MAPPINGS[this.data.type] ||
|
|
68
|
+
"server_error";
|
|
69
|
+
}
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
else if (cause instanceof Error) {
|
|
73
|
+
this.messages.push(cause.message);
|
|
74
|
+
this.type = "server_error";
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
set message(message) {
|
|
78
|
+
this.messages[0] = message;
|
|
79
|
+
}
|
|
80
|
+
get message() {
|
|
81
|
+
return this.messages.join(": ");
|
|
82
|
+
}
|
|
83
|
+
toJSON() {
|
|
84
|
+
return {
|
|
85
|
+
name: this.name,
|
|
86
|
+
type: this.type,
|
|
87
|
+
message: this.message,
|
|
88
|
+
url: this.url,
|
|
89
|
+
statusCode: this.statusCode,
|
|
90
|
+
isRetryable: this.isRetryable,
|
|
91
|
+
data: this.data,
|
|
92
|
+
cause: this.cause,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
static hasMarker(error, marker) {
|
|
96
|
+
const markerSymbol = Symbol.for(marker);
|
|
97
|
+
return (error != null &&
|
|
98
|
+
typeof error === "object" &&
|
|
99
|
+
markerSymbol in error &&
|
|
100
|
+
typeof error[markerSymbol] === "boolean" &&
|
|
101
|
+
error[markerSymbol] === true);
|
|
102
|
+
}
|
|
103
|
+
static isInstance(error) {
|
|
104
|
+
return LLMProviderError.hasMarker(error, marker);
|
|
105
|
+
}
|
|
106
|
+
}
|
|
107
|
+
function normalizeProviderErrorData(data) {
|
|
108
|
+
// Use type guards to narrow parsed.data type
|
|
109
|
+
if (isAnthropicErrorData(data)) {
|
|
110
|
+
// Anthropic/Vertex: { data: { error: { message, type } } }
|
|
111
|
+
return { type: data.error.type, message: data.error.message };
|
|
112
|
+
}
|
|
113
|
+
else if (isBedrockErrorData(data)) {
|
|
114
|
+
// Bedrock: { data: { message, type } }
|
|
115
|
+
return { type: data.type || undefined, message: data.message };
|
|
116
|
+
}
|
|
117
|
+
else if (isClarkErrorData(data)) {
|
|
118
|
+
// Clark: { data: { responseMetadata: { message, ... } } }
|
|
119
|
+
return { type: "server_error", message: data.responseMetadata.message };
|
|
120
|
+
}
|
|
121
|
+
return { message: `Unknown error format: ${safeJsonStringify(data)}` };
|
|
122
|
+
}
|
|
123
|
+
// Type guard for Anthropic/Vertex error format
|
|
124
|
+
function isAnthropicErrorData(data) {
|
|
125
|
+
return (typeof data === "object" &&
|
|
126
|
+
data !== null &&
|
|
127
|
+
"error" in data &&
|
|
128
|
+
typeof data.error === "object" &&
|
|
129
|
+
data.error !== null &&
|
|
130
|
+
"message" in data.error &&
|
|
131
|
+
"type" in data.error);
|
|
132
|
+
}
|
|
133
|
+
// Type guard for Bedrock error format
|
|
134
|
+
function isBedrockErrorData(data) {
|
|
135
|
+
return (typeof data === "object" &&
|
|
136
|
+
data !== null &&
|
|
137
|
+
"message" in data &&
|
|
138
|
+
typeof data.message === "string");
|
|
139
|
+
}
|
|
140
|
+
// Type guard for Clark error format
|
|
141
|
+
function isClarkErrorData(data) {
|
|
142
|
+
return (typeof data === "object" &&
|
|
143
|
+
data !== null &&
|
|
144
|
+
"responseMetadata" in data &&
|
|
145
|
+
typeof data.responseMetadata === "object" &&
|
|
146
|
+
data.responseMetadata !== null);
|
|
147
|
+
}
|
|
148
|
+
//# sourceMappingURL=error.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error.js","sourceRoot":"","sources":["../../../src/ai-service/llm/error.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAmE9D,MAAM,cAAc,GAA2D;IAC7E,mBAAmB;IACnB,gBAAgB,EAAE,YAAY;IAC9B,iBAAiB,EAAE,mBAAmB;IACtC,oBAAoB,EAAE,gBAAgB;IACtC,gBAAgB,EAAE,YAAY;IAC9B,eAAe,EAAE,WAAW;IAC5B,SAAS,EAAE,cAAc;IACzB,qBAAqB,EAAE,YAAY;IACnC,gBAAgB,EAAE,YAAY;IAE9B,iBAAiB;IACjB,mBAAmB,EAAE,YAAY;IACjC,qBAAqB,EAAE,YAAY;IACnC,aAAa,EAAE,YAAY;IAC3B,oBAAoB,EAAE,gBAAgB;IACtC,2BAA2B,EAAE,gBAAgB;IAC7C,gBAAgB,EAAE,WAAW;IAC7B,eAAe,EAAE,cAAc;IAC/B,eAAe,EAAE,YAAY;IAC7B,aAAa,EAAE,YAAY;IAC3B,mBAAmB,EAAE,YAAY;IACjC,cAAc,EAAE,iBAAiB;IACjC,kBAAkB,EAAE,YAAY;IAEhC,eAAe;IACf,YAAY,EAAE,cAAc;CAC7B,CAAC;AAEF,MAAM,IAAI,GAAG,qBAAqB,CAAC;AACnC,MAAM,MAAM,GAAG,wBAAwB,IAAI,EAAE,CAAC;AAC9C,MAAM,MAAM,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;AAElC,MAAM,OAAO,gBAAgB;IACV,CAAC,MAAM,CAAC,GAAG,IAAI,CAAC,CAAC,qBAAqB;IAC/C,QAAQ,GAAa,CAAC,0CAA0C,CAAC,CAAC;IAC1E,IAAI,GAAW,kBAAkB,CAAC;IAClC,QAAQ,CAAgC;IACxC,IAAI,GAWY,SAAS,CAAC;IAC1B,GAAG,CAAU;IACb,UAAU,CAAU;IACpB,WAAW,GAAY,IAAI,CAAC;IAC5B,IAAI,CAAqB;IACzB,KAAK,CAAW;IAEhB,YAAY,EACV,QAAQ,EACR,OAAO,EACP,OAAO,EACP,KAAK,GAON;QACC,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;QAC7B,CAAC;QACD,IAAI,OAAO,EAAE,CAAC;YACZ,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC;YACzB,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;YACtB,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,EAAE,CAAC;YACX,OAAO;QACT,CAAC;QACD,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC;QAEnB,IAAI,YAAY,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;YACnC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,CAAC,UAAU,GAAG,KAAK,CAAC,UAAU,CAAC;YACnC,IAAI,CAAC,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC;YACrB,IAAI,CAAC,WAAW,GAAG,KAAK,CAAC,WAAW,CAAC;YACrC,IAAI,KAAK,CAAC,IAAI,EAAE,CAAC;gBACf,IAAI,CAAC,IAAI,GAAG,0BAA0B,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;gBACnD,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;gBACtC,IAAI,IAAI,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;oBACnB,IAAI,CAAC,IAAI;wBACP,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC,IAA4B,CAAC;4BACtD,cAAc,CAAC;gBACnB,CAAC;YACH,CAAC;QACH,CAAC;aAAM,IAAI,KAAK,YAAY,KAAK,EAAE,CAAC;YAClC,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAClC,IAAI,CAAC,IAAI,GAAG,cAAc,CAAC;QAC7B,CAAC;IACH,CAAC;IAED,IAAI,OAAO,CAAC,OAAe;QACzB,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,OAAO,CAAC;IAC7B,CAAC;IAED,IAAI,OAAO;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAClC,CAAC;IAED,MAAM;QACJ,OAAO;YACL,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,GAAG,EAAE,IAAI,CAAC,GAAG;YACb,UAAU,EAAE,IAAI,CAAC,UAAU;YAC3B,WAAW,EAAE,IAAI,CAAC,WAAW;YAC7B,IAAI,EAAE,IAAI,CAAC,IAAI;YACf,KAAK,EAAE,IAAI,CAAC,KAAK;SAClB,CAAC;IACJ,CAAC;IAES,MAAM,CAAC,SAAS,CAAC,KAAc,EAAE,MAAc;QACvD,MAAM,YAAY,GAAG,MAAM,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;QACxC,OAAO,CACL,KAAK,IAAI,IAAI;YACb,OAAO,KAAK,KAAK,QAAQ;YACzB,YAAY,IAAI,KAAK;YACrB,OAAO,KAAK,CAAC,YAAY,CAAC,KAAK,SAAS;YACxC,KAAK,CAAC,YAAY,CAAC,KAAK,IAAI,CAC7B,CAAC;IACJ,CAAC;IAED,MAAM,CAAC,UAAU,CAAC,KAAc;QAC9B,OAAO,gBAAgB,CAAC,SAAS,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;IACnD,CAAC;CACF;AAOD,SAAS,0BAA0B,CAAC,IAAa;IAC/C,6CAA6C;IAC7C,IAAI,oBAAoB,CAAC,IAAI,CAAC,EAAE,CAAC;QAC/B,2DAA2D;QAC3D,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,KAAK,CAAC,IAAI,EAAE,OAAO,EAAE,IAAI,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;IAChE,CAAC;SAAM,IAAI,kBAAkB,CAAC,IAAI,CAAC,EAAE,CAAC;QACpC,uCAAuC;QACvC,OAAO,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,SAAS,EAAE,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC;IACjE,CAAC;SAAM,IAAI,gBAAgB,CAAC,IAAI,CAAC,EAAE,CAAC;QAClC,0DAA0D;QAC1D,OAAO,EAAE,IAAI,EAAE,cAAc,EAAE,OAAO,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,CAAC;IAC1E,CAAC;IACD,OAAO,EAAE,OAAO,EAAE,yBAAyB,iBAAiB,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;AACzE,CAAC;AAED,+CAA+C;AAC/C,SAAS,oBAAoB,CAAC,IAAa;IACzC,OAAO,CACL,OAAO,IAAI,KAAK,QAAQ;QACxB,IAAI,KAAK,IAAI;QACb,OAAO,IAAI,IAAI;QACf,OAAO,IAAI,CAAC,KAAK,KAAK,QAAQ;QAC9B,IAAI,CAAC,KAAK,KAAK,IAAI;QACnB,SAAS,IAAI,IAAI,CAAC,KAAK;QACvB,MAAM,IAAI,IAAI,CAAC,KAAK,CACrB,CAAC;AACJ,CAAC;AAED,sCAAsC;AACtC,SAAS,kBAAkB,CAAC,IAAa;IACvC,OAAO,CACL,OAAO,IAAI,KAAK,QAAQ;QACxB,IAAI,KAAK,IAAI;QACb,SAAS,IAAI,IAAI;QACjB,OAAO,IAAI,CAAC,OAAO,KAAK,QAAQ,CACjC,CAAC;AACJ,CAAC;AAED,oCAAoC;AACpC,SAAS,gBAAgB,CAAC,IAAa;IACrC,OAAO,CACL,OAAO,IAAI,KAAK,QAAQ;QACxB,IAAI,KAAK,IAAI;QACb,kBAAkB,IAAI,IAAI;QAC1B,OAAO,IAAI,CAAC,gBAAgB,KAAK,QAAQ;QACzC,IAAI,CAAC,gBAAgB,KAAK,IAAI,CAC/B,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Retry middleware for AI SDK language models.
|
|
3
|
+
*
|
|
4
|
+
* Provides automatic retry functionality for streaming operations that fail
|
|
5
|
+
* due to transient network errors (e.g., timeouts). This middleware operates
|
|
6
|
+
* at the LanguageModelV2 level, retrying doStream() calls with exponential
|
|
7
|
+
* backoff.
|
|
8
|
+
*
|
|
9
|
+
* **Two-phase retry architecture:**
|
|
10
|
+
* 1. **Initial call retry**: Retries HTTP-level errors when calling doStream() to get metadata
|
|
11
|
+
* 2. **Stream consumption retry**: Retries mid-stream errors during stream consumption
|
|
12
|
+
*
|
|
13
|
+
* **Separate retry budgets:**
|
|
14
|
+
* Each phase has its own independent retry budget. For example, with maxRetries: 3:
|
|
15
|
+
* - Phase 1 can retry up to 3 times (4 total attempts to get initial metadata)
|
|
16
|
+
* - Phase 2 can retry up to 3 times (4 total attempts to consume stream)
|
|
17
|
+
* - Maximum total attempts: 4 (phase 1) + 4 (phase 2) = 8
|
|
18
|
+
*
|
|
19
|
+
* This design ensures that failures in one phase don't prevent retries in the other phase.
|
|
20
|
+
*
|
|
21
|
+
* Handles two error types:
|
|
22
|
+
* 1. HTTP-level errors: doStream() throws an exception (retried in phase 1)
|
|
23
|
+
* 2. Stream-level errors: error chunks in the stream or connection drops (retried in phase 2)
|
|
24
|
+
*
|
|
25
|
+
* **Default retry strategy: Permissive**
|
|
26
|
+
* - Retries all errors except known permanent failures (auth, permission, invalid request)
|
|
27
|
+
* - Handles rate limits, server overload, timeouts, network issues
|
|
28
|
+
* - Future-proof: retries unknown error types
|
|
29
|
+
*
|
|
30
|
+
* By default, retries are unlimited but can be constrained by maxRetries and/or
|
|
31
|
+
* maxTotalRetryTimeMs options.
|
|
32
|
+
*/
|
|
33
|
+
import { type Logger } from "../../../util/logger.js";
|
|
34
|
+
import { type BackoffStrategy } from "../../util/backoff-strategy.js";
|
|
35
|
+
import type { LanguageModelV2Middleware } from "@ai-sdk/provider";
|
|
36
|
+
import type { LLMProviderConfig } from "@superblocksteam/library-shared/types";
|
|
37
|
+
export interface RetryOptions {
|
|
38
|
+
/**
|
|
39
|
+
* Maximum number of retry attempts (not including the initial attempt).
|
|
40
|
+
* Default: unlimited
|
|
41
|
+
*/
|
|
42
|
+
maxRetries?: number;
|
|
43
|
+
/**
|
|
44
|
+
* Custom backoff strategy for calculating retry delays.
|
|
45
|
+
* If not provided, uses ExponentialBackoff with initialDelayMs, maxDelayMs, and backoffMultiplier.
|
|
46
|
+
*/
|
|
47
|
+
backoffStrategy?: BackoffStrategy;
|
|
48
|
+
/**
|
|
49
|
+
* Initial delay in milliseconds before the first retry.
|
|
50
|
+
* Subsequent retries use exponential backoff.
|
|
51
|
+
* Only used if backoffStrategy is not provided.
|
|
52
|
+
* Default: 500 (0.5 seconds)
|
|
53
|
+
*/
|
|
54
|
+
initialDelayMs?: number;
|
|
55
|
+
/**
|
|
56
|
+
* Maximum delay in milliseconds for exponential backoff.
|
|
57
|
+
* Only used if backoffStrategy is not provided.
|
|
58
|
+
* Default: 5000 (5 seconds)
|
|
59
|
+
*/
|
|
60
|
+
maxDelayMs?: number;
|
|
61
|
+
/**
|
|
62
|
+
* Backoff multiplier for exponential backoff.
|
|
63
|
+
* Only used if backoffStrategy is not provided.
|
|
64
|
+
* Default: 2
|
|
65
|
+
*/
|
|
66
|
+
backoffMultiplier?: number;
|
|
67
|
+
/**
|
|
68
|
+
* Maximum total time in milliseconds for all retry attempts.
|
|
69
|
+
* If retries exceed this total time, no more retries will be attempted.
|
|
70
|
+
* Default: undefined (no time limit)
|
|
71
|
+
*/
|
|
72
|
+
maxTotalRetryTimeMs?: number;
|
|
73
|
+
/**
|
|
74
|
+
* Function to determine if an error is retryable.
|
|
75
|
+
* Default: checks for timeout and connection errors
|
|
76
|
+
*/
|
|
77
|
+
isRetryable?: (error: unknown) => boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Callback invoked before each retry attempt.
|
|
80
|
+
*/
|
|
81
|
+
onRetry?: (error: unknown, attempt: number, delayMs: number, totalRetryTimeMs: number) => void | Promise<void>;
|
|
82
|
+
/**
|
|
83
|
+
* Optional abort signal to cancel retry attempts.
|
|
84
|
+
* When the signal is aborted, no further retries will be attempted.
|
|
85
|
+
*/
|
|
86
|
+
abortSignal?: AbortSignal;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Creates retry middleware for LanguageModelV2.
|
|
90
|
+
*
|
|
91
|
+
* This middleware wraps the doStream function and automatically retries
|
|
92
|
+
* both HTTP-level errors (thrown exceptions) and stream-level errors
|
|
93
|
+
* (error chunks in the stream). Retries use exponential backoff and
|
|
94
|
+
* respect configured limits.
|
|
95
|
+
*
|
|
96
|
+
* @example
|
|
97
|
+
* ```typescript
|
|
98
|
+
* // Unlimited retries with 2-minute time limit
|
|
99
|
+
* const middleware = retryMiddleware("bedrock", { maxTotalRetryTimeMs: 120000 });
|
|
100
|
+
*
|
|
101
|
+
* // Limit to 3 retries
|
|
102
|
+
* const middleware = retryMiddleware("bedrock", { maxRetries: 3 });
|
|
103
|
+
*
|
|
104
|
+
* // Apply to model
|
|
105
|
+
* const model = wrapLanguageModel({
|
|
106
|
+
* model: baseModel,
|
|
107
|
+
* middleware: [middleware]
|
|
108
|
+
* });
|
|
109
|
+
* ```
|
|
110
|
+
*/
|
|
111
|
+
export declare function retryMiddleware(provider: LLMProviderConfig["provider"], options?: RetryOptions, logger?: Logger): LanguageModelV2Middleware;
|
|
112
|
+
//# sourceMappingURL=retry.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/middleware/retry.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AAEH,OAAO,EAAE,KAAK,MAAM,EAA2B,MAAM,yBAAyB,CAAC;AAC/E,OAAO,EAEL,KAAK,eAAe,EACrB,MAAM,gCAAgC,CAAC;AAGxC,OAAO,KAAK,EACV,yBAAyB,EAE1B,MAAM,kBAAkB,CAAC;AAC1B,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,MAAM,WAAW,YAAY;IAC3B;;;OAGG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;OAGG;IACH,eAAe,CAAC,EAAE,eAAe,CAAC;IAElC;;;;;OAKG;IACH,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB;;;;OAIG;IACH,UAAU,CAAC,EAAE,MAAM,CAAC;IAEpB;;;;OAIG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;;;OAIG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAE7B;;;OAGG;IACH,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,OAAO,CAAC;IAE1C;;OAEG;IACH,OAAO,CAAC,EAAE,CACR,KAAK,EAAE,OAAO,EACd,OAAO,EAAE,MAAM,EACf,OAAO,EAAE,MAAM,EACf,gBAAgB,EAAE,MAAM,KACrB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IAE1B;;;OAGG;IACH,WAAW,CAAC,EAAE,WAAW,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;;;;;;;GAsBG;AACH,wBAAgB,eAAe,CAC7B,QAAQ,EAAE,iBAAiB,CAAC,UAAU,CAAC,EACvC,OAAO,GAAE,YAAiB,EAC1B,MAAM,GAAE,MAAoB,GAC3B,yBAAyB,CAsJ3B"}
|
|
@@ -0,0 +1,239 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Retry middleware for AI SDK language models.
|
|
3
|
+
*
|
|
4
|
+
* Provides automatic retry functionality for streaming operations that fail
|
|
5
|
+
* due to transient network errors (e.g., timeouts). This middleware operates
|
|
6
|
+
* at the LanguageModelV2 level, retrying doStream() calls with exponential
|
|
7
|
+
* backoff.
|
|
8
|
+
*
|
|
9
|
+
* **Two-phase retry architecture:**
|
|
10
|
+
* 1. **Initial call retry**: Retries HTTP-level errors when calling doStream() to get metadata
|
|
11
|
+
* 2. **Stream consumption retry**: Retries mid-stream errors during stream consumption
|
|
12
|
+
*
|
|
13
|
+
* **Separate retry budgets:**
|
|
14
|
+
* Each phase has its own independent retry budget. For example, with maxRetries: 3:
|
|
15
|
+
* - Phase 1 can retry up to 3 times (4 total attempts to get initial metadata)
|
|
16
|
+
* - Phase 2 can retry up to 3 times (4 total attempts to consume stream)
|
|
17
|
+
* - Maximum total attempts: 4 (phase 1) + 4 (phase 2) = 8
|
|
18
|
+
*
|
|
19
|
+
* This design ensures that failures in one phase don't prevent retries in the other phase.
|
|
20
|
+
*
|
|
21
|
+
* Handles two error types:
|
|
22
|
+
* 1. HTTP-level errors: doStream() throws an exception (retried in phase 1)
|
|
23
|
+
* 2. Stream-level errors: error chunks in the stream or connection drops (retried in phase 2)
|
|
24
|
+
*
|
|
25
|
+
* **Default retry strategy: Permissive**
|
|
26
|
+
* - Retries all errors except known permanent failures (auth, permission, invalid request)
|
|
27
|
+
* - Handles rate limits, server overload, timeouts, network issues
|
|
28
|
+
* - Future-proof: retries unknown error types
|
|
29
|
+
*
|
|
30
|
+
* By default, retries are unlimited but can be constrained by maxRetries and/or
|
|
31
|
+
* maxTotalRetryTimeMs options.
|
|
32
|
+
*/
|
|
33
|
+
import { getErrorMeta, getLogger } from "../../../util/logger.js";
|
|
34
|
+
import { ExponentialBackoff, } from "../../util/backoff-strategy.js";
|
|
35
|
+
import { LLMProviderError } from "../error.js";
|
|
36
|
+
import { isProviderErrorRetryable } from "../util/provider-errors.js";
|
|
37
|
+
/**
|
|
38
|
+
* Creates retry middleware for LanguageModelV2.
|
|
39
|
+
*
|
|
40
|
+
* This middleware wraps the doStream function and automatically retries
|
|
41
|
+
* both HTTP-level errors (thrown exceptions) and stream-level errors
|
|
42
|
+
* (error chunks in the stream). Retries use exponential backoff and
|
|
43
|
+
* respect configured limits.
|
|
44
|
+
*
|
|
45
|
+
* @example
|
|
46
|
+
* ```typescript
|
|
47
|
+
* // Unlimited retries with 2-minute time limit
|
|
48
|
+
* const middleware = retryMiddleware("bedrock", { maxTotalRetryTimeMs: 120000 });
|
|
49
|
+
*
|
|
50
|
+
* // Limit to 3 retries
|
|
51
|
+
* const middleware = retryMiddleware("bedrock", { maxRetries: 3 });
|
|
52
|
+
*
|
|
53
|
+
* // Apply to model
|
|
54
|
+
* const model = wrapLanguageModel({
|
|
55
|
+
* model: baseModel,
|
|
56
|
+
* middleware: [middleware]
|
|
57
|
+
* });
|
|
58
|
+
* ```
|
|
59
|
+
*/
|
|
60
|
+
export function retryMiddleware(provider, options = {}, logger = getLogger()) {
|
|
61
|
+
const maxRetries = options.maxRetries ?? Infinity;
|
|
62
|
+
const isRetryable = options.isRetryable ?? isProviderErrorRetryable;
|
|
63
|
+
const maxTotalRetryTimeMs = options.maxTotalRetryTimeMs;
|
|
64
|
+
const onRetry = options.onRetry;
|
|
65
|
+
const backoffStrategy = options.backoffStrategy ??
|
|
66
|
+
new ExponentialBackoff({
|
|
67
|
+
initialDelayMs: options.initialDelayMs ?? 500,
|
|
68
|
+
maxDelayMs: options.maxDelayMs ?? 5000,
|
|
69
|
+
backoffMultiplier: options.backoffMultiplier ?? 2,
|
|
70
|
+
});
|
|
71
|
+
// Format maxRetries for display
|
|
72
|
+
const maxRetriesDisplay = maxRetries === Infinity ? "unlimited" : String(maxRetries);
|
|
73
|
+
const retryConfig = {
|
|
74
|
+
provider,
|
|
75
|
+
maxRetries,
|
|
76
|
+
maxRetriesDisplay,
|
|
77
|
+
maxTotalRetryTimeMs,
|
|
78
|
+
backoffStrategy,
|
|
79
|
+
isRetryable,
|
|
80
|
+
onRetry,
|
|
81
|
+
abortSignal: options.abortSignal,
|
|
82
|
+
logger,
|
|
83
|
+
};
|
|
84
|
+
return {
|
|
85
|
+
wrapStream: async ({ doStream }) => {
|
|
86
|
+
// First retry loop: Get initial result with metadata
|
|
87
|
+
// This retries HTTP-level errors from doStream() call
|
|
88
|
+
let attempt = 0;
|
|
89
|
+
let totalRetryTime = 0;
|
|
90
|
+
let initialResult;
|
|
91
|
+
while (true) {
|
|
92
|
+
try {
|
|
93
|
+
initialResult = await doStream();
|
|
94
|
+
break; // Success!
|
|
95
|
+
}
|
|
96
|
+
catch (err) {
|
|
97
|
+
attempt++;
|
|
98
|
+
const delay = await handleRetryAttempt(err, attempt, totalRetryTime, {
|
|
99
|
+
...retryConfig,
|
|
100
|
+
errorContext: "HTTP error",
|
|
101
|
+
});
|
|
102
|
+
totalRetryTime += delay;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
// Second retry loop: Handle stream consumption errors
|
|
106
|
+
// This retries mid-stream errors (connection drops, timeouts)
|
|
107
|
+
const retryingStream = new ReadableStream({
|
|
108
|
+
async start(controller) {
|
|
109
|
+
let consumptionAttempt = 0;
|
|
110
|
+
let consumptionRetryTime = 0;
|
|
111
|
+
let isFirstAttempt = true;
|
|
112
|
+
while (true) {
|
|
113
|
+
let reader = null;
|
|
114
|
+
let error;
|
|
115
|
+
try {
|
|
116
|
+
// First attempt: reuse initial stream
|
|
117
|
+
// Subsequent attempts: call doStream() fresh
|
|
118
|
+
const streamResult = isFirstAttempt
|
|
119
|
+
? initialResult
|
|
120
|
+
: await doStream();
|
|
121
|
+
isFirstAttempt = false;
|
|
122
|
+
reader = streamResult.stream.getReader();
|
|
123
|
+
// Read and forward chunks
|
|
124
|
+
while (true) {
|
|
125
|
+
const { value: chunk, done } = await reader.read();
|
|
126
|
+
if (done) {
|
|
127
|
+
controller.close();
|
|
128
|
+
return; // Success!
|
|
129
|
+
}
|
|
130
|
+
// Check for error chunks
|
|
131
|
+
if (chunk.type === "error") {
|
|
132
|
+
throw new LLMProviderError({
|
|
133
|
+
provider,
|
|
134
|
+
cause: chunk.error,
|
|
135
|
+
});
|
|
136
|
+
}
|
|
137
|
+
// Normal chunk - forward it
|
|
138
|
+
controller.enqueue(chunk);
|
|
139
|
+
// Reset consumption attempt on successful chunk
|
|
140
|
+
consumptionAttempt = 0;
|
|
141
|
+
consumptionRetryTime = 0;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
catch (err) {
|
|
145
|
+
// Release reader before retry
|
|
146
|
+
if (reader) {
|
|
147
|
+
try {
|
|
148
|
+
reader.releaseLock();
|
|
149
|
+
}
|
|
150
|
+
catch {
|
|
151
|
+
// Ignore errors during release
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
error =
|
|
155
|
+
err instanceof LLMProviderError
|
|
156
|
+
? err
|
|
157
|
+
: new LLMProviderError({ provider, cause: err });
|
|
158
|
+
}
|
|
159
|
+
// Handle error - check if we should retry
|
|
160
|
+
consumptionAttempt++;
|
|
161
|
+
try {
|
|
162
|
+
const delay = await handleRetryAttempt(error, consumptionAttempt, consumptionRetryTime, {
|
|
163
|
+
...retryConfig,
|
|
164
|
+
errorContext: "Stream error",
|
|
165
|
+
});
|
|
166
|
+
consumptionRetryTime += delay;
|
|
167
|
+
}
|
|
168
|
+
catch (finalError) {
|
|
169
|
+
// Exhausted or non-retryable - pass error through and close
|
|
170
|
+
controller.enqueue({
|
|
171
|
+
type: "error",
|
|
172
|
+
error: finalError,
|
|
173
|
+
});
|
|
174
|
+
controller.close();
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
// Loop continues - will call doStream() again
|
|
178
|
+
}
|
|
179
|
+
},
|
|
180
|
+
});
|
|
181
|
+
// Return metadata from initial result with retrying stream
|
|
182
|
+
return {
|
|
183
|
+
...initialResult,
|
|
184
|
+
stream: retryingStream,
|
|
185
|
+
};
|
|
186
|
+
},
|
|
187
|
+
};
|
|
188
|
+
}
|
|
189
|
+
/**
|
|
190
|
+
* Checks if an error can be retried and returns appropriate error handling info.
|
|
191
|
+
*/
|
|
192
|
+
function checkRetryability(error, attempt, maxRetries, maxRetriesDisplay, totalRetryTime, maxTotalRetryTimeMs, isRetryable, logger) {
|
|
193
|
+
const withinMaxRetries = attempt <= maxRetries;
|
|
194
|
+
const withinTimeLimit = !maxTotalRetryTimeMs || totalRetryTime < maxTotalRetryTimeMs;
|
|
195
|
+
const canRetry = isRetryable(error) && withinMaxRetries && withinTimeLimit;
|
|
196
|
+
if (!canRetry) {
|
|
197
|
+
const reason = !isRetryable(error)
|
|
198
|
+
? `not retryable (type: ${error.type})`
|
|
199
|
+
: !withinMaxRetries
|
|
200
|
+
? `after ${maxRetriesDisplay} retries`
|
|
201
|
+
: `total retry time exceeded ${maxTotalRetryTimeMs}ms`;
|
|
202
|
+
const message = `Stream error ${reason}`;
|
|
203
|
+
error.message = message;
|
|
204
|
+
logger.error(message, getErrorMeta(error.cause));
|
|
205
|
+
return { canRetry: false, errorToThrow: error };
|
|
206
|
+
}
|
|
207
|
+
return { canRetry: true };
|
|
208
|
+
}
|
|
209
|
+
/**
|
|
210
|
+
* Executes retry logic for a single attempt including error wrapping, backoff, logging, and callbacks.
|
|
211
|
+
* Returns the delay in milliseconds if a retry should be attempted, or throws if no retry is possible.
|
|
212
|
+
*/
|
|
213
|
+
async function handleRetryAttempt(err, attempt, totalRetryTime, config) {
|
|
214
|
+
const error = err instanceof LLMProviderError
|
|
215
|
+
? err
|
|
216
|
+
: new LLMProviderError({ provider: config.provider, cause: err });
|
|
217
|
+
const retryCheck = checkRetryability(error, attempt, config.maxRetries, config.maxRetriesDisplay, totalRetryTime, config.maxTotalRetryTimeMs, config.isRetryable, config.logger);
|
|
218
|
+
if (!retryCheck.canRetry) {
|
|
219
|
+
throw retryCheck.errorToThrow;
|
|
220
|
+
}
|
|
221
|
+
// Check if abort signal was triggered
|
|
222
|
+
if (config.abortSignal?.aborted) {
|
|
223
|
+
const abortError = new LLMProviderError({
|
|
224
|
+
message: "Request aborted",
|
|
225
|
+
provider: config.provider,
|
|
226
|
+
aborted: true,
|
|
227
|
+
});
|
|
228
|
+
config.logger.info("Request aborted, stopping retry attempts");
|
|
229
|
+
throw abortError;
|
|
230
|
+
}
|
|
231
|
+
const delay = config.backoffStrategy.getNextDelay(attempt);
|
|
232
|
+
config.logger.warn(`${config.errorContext} (type: ${error.type}). Attempt ${attempt}/${config.maxRetriesDisplay}. Retrying in ${delay}ms...`);
|
|
233
|
+
if (config.onRetry) {
|
|
234
|
+
await config.onRetry(error, attempt, delay, totalRetryTime);
|
|
235
|
+
}
|
|
236
|
+
await new Promise((resolve) => setTimeout(resolve, delay));
|
|
237
|
+
return delay;
|
|
238
|
+
}
|
|
239
|
+
//# sourceMappingURL=retry.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"retry.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/middleware/retry.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
|
+
import { type RetryOptions } from "./middleware/retry.js";
|
|
1
2
|
import type { LLMProvider, LLMProviderSettings } from "./types.js";
|
|
2
3
|
import type { LLMProviderConfig } from "@superblocksteam/library-shared/types";
|
|
3
|
-
export declare const createLLMProvider: (settings: LLMProviderSettings, getJwt?: () => string | undefined, llmConfig?: LLMProviderConfig) => LLMProvider;
|
|
4
|
+
export declare const createLLMProvider: (settings: LLMProviderSettings, getJwt?: () => string | undefined, llmConfig?: LLMProviderConfig, retryOptions?: RetryOptions) => LLMProvider;
|
|
4
5
|
//# sourceMappingURL=provider.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/ai-service/llm/provider.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"provider.d.ts","sourceRoot":"","sources":["../../../src/ai-service/llm/provider.ts"],"names":[],"mappings":"AAIA,OAAO,EAAmB,KAAK,YAAY,EAAE,MAAM,uBAAuB,CAAC;AAE3E,OAAO,KAAK,EACV,WAAW,EACX,mBAAmB,EAGpB,MAAM,YAAY,CAAC;AAEpB,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uCAAuC,CAAC;AAE/E,eAAO,MAAM,iBAAiB,GAC5B,UAAU,mBAAmB,EAC7B,SAAS,MAAM,MAAM,GAAG,SAAS,EACjC,YAAY,iBAAiB,EAC7B,eAAe,YAAY,KAC1B,WA4DF,CAAC"}
|
|
@@ -2,13 +2,20 @@ import { customProvider, wrapLanguageModel } from "ai";
|
|
|
2
2
|
import { getLogger } from "../../util/logger.js";
|
|
3
3
|
import { anthropicImpl } from "./impl/anthropic.js";
|
|
4
4
|
import { clarkImpl } from "./impl/clark.js";
|
|
5
|
+
import { retryMiddleware } from "./middleware/retry.js";
|
|
5
6
|
import { jwtMiddleware, modelFromClassification } from "./utils.js";
|
|
6
|
-
export const createLLMProvider = (settings, getJwt, llmConfig) => {
|
|
7
|
+
export const createLLMProvider = (settings, getJwt, llmConfig, retryOptions) => {
|
|
8
|
+
const providerType = llmConfig?.provider || "bedrock";
|
|
7
9
|
const wrapDefaults = (model) => wrapLanguageModel({
|
|
8
10
|
model,
|
|
9
|
-
middleware: [
|
|
11
|
+
middleware: [
|
|
12
|
+
jwtMiddleware(getJwt),
|
|
13
|
+
retryMiddleware(providerType, {
|
|
14
|
+
maxTotalRetryTimeMs: 2 * 60 * 1000, // 2 minutes
|
|
15
|
+
...retryOptions,
|
|
16
|
+
}, getLogger()),
|
|
17
|
+
],
|
|
10
18
|
});
|
|
11
|
-
const providerType = llmConfig?.provider || "bedrock";
|
|
12
19
|
getLogger().info(`Creating LLM provider: type=${providerType}, config=${JSON.stringify(llmConfig || {})}`);
|
|
13
20
|
let implFunc;
|
|
14
21
|
switch (providerType) {
|
|
@@ -39,6 +46,7 @@ export const createLLMProvider = (settings, getJwt, llmConfig) => {
|
|
|
39
46
|
return sdkProvider.languageModel(modelId);
|
|
40
47
|
};
|
|
41
48
|
return {
|
|
49
|
+
name: providerType,
|
|
42
50
|
modelForTask,
|
|
43
51
|
modelForClassification: (classification) => modelFromClassification(modelForTask, classification),
|
|
44
52
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/ai-service/llm/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,IAAI,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAUpE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,QAA6B,EAC7B,MAAiC,EACjC,SAA6B,
|
|
1
|
+
{"version":3,"file":"provider.js","sourceRoot":"","sources":["../../../src/ai-service/llm/provider.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,iBAAiB,EAAE,MAAM,IAAI,CAAC;AACvD,OAAO,EAAE,SAAS,EAAE,MAAM,sBAAsB,CAAC;AACjD,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5C,OAAO,EAAE,eAAe,EAAqB,MAAM,uBAAuB,CAAC;AAC3E,OAAO,EAAE,aAAa,EAAE,uBAAuB,EAAE,MAAM,YAAY,CAAC;AAUpE,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,QAA6B,EAC7B,MAAiC,EACjC,SAA6B,EAC7B,YAA2B,EACd,EAAE;IACf,MAAM,YAAY,GAAG,SAAS,EAAE,QAAQ,IAAI,SAAS,CAAC;IAEtD,MAAM,YAAY,GAAG,CAAC,KAAsB,EAAE,EAAE,CAC9C,iBAAiB,CAAC;QAChB,KAAK;QACL,UAAU,EAAE;YACV,aAAa,CAAC,MAAM,CAAC;YACrB,eAAe,CACb,YAAY,EACZ;gBACE,mBAAmB,EAAE,CAAC,GAAG,EAAE,GAAG,IAAI,EAAE,YAAY;gBAChD,GAAG,YAAY;aAChB,EACD,SAAS,EAAE,CACZ;SACF;KACF,CAAC,CAAC;IACL,SAAS,EAAE,CAAC,IAAI,CACd,+BAA+B,YAAY,YAAY,IAAI,CAAC,SAAS,CAAC,SAAS,IAAI,EAAE,CAAC,EAAE,CACzF,CAAC;IACF,IAAI,QAAQ,CAAC;IACb,QAAQ,YAAY,EAAE,CAAC;QACrB,KAAK,SAAS;YACZ,QAAQ,GAAG,SAAS,CAAC;YACrB,MAAM;QACR,KAAK,QAAQ;YACX,QAAQ,GAAG,SAAS,CAAC;YACrB,MAAM;QACR,KAAK,WAAW,CAAC;QACjB;YACE,QAAQ,GAAG,aAAa,CAAC;YACzB,MAAM;IACV,CAAC;IAED,MAAM,IAAI,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAEhC,MAAM,cAAc,GAAkB;QACpC,cAAc,EAAE,YAAY,CAAC,IAAI,CAAC,cAAc,CAAC;QACjD,aAAa,EAAE,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC;QAC/C,oBAAoB,EAAE,YAAY,CAAC,IAAI,CAAC,oBAAoB,CAAC;QAC7D,iBAAiB,EAAE,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC;QACvD,kBAAkB,EAAE,YAAY,CAAC,IAAI,CAAC,kBAAkB,CAAC;QACzD,iBAAiB,EAAE,YAAY,CAAC,IAAI,CAAC,iBAAiB,CAAC;KACxD,CAAC;IAEF,MAAM,WAAW,GAAG,cAAc,CAAC;QACjC,cAAc;KACf,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,CAAC,OAAgB,EAAE,EAAE;QACxC,OAAO,WAAW,CAAC,aAAa,CAAC,OAAO,CAAC,CAAC;IAC5C,CAAC,CAAC;IAEF,OAAO;QACL,IAAI,EAAE,YAAY;QAClB,YAAY;QACZ,sBAAsB,EAAE,CAAC,cAAc,EAAE,EAAE,CACzC,uBAAuB,CAAC,YAAY,EAAE,cAAc,CAAC;KACxD,CAAC;AACJ,CAAC,CAAC"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { ClarkProviderSettings } from "../clark-provider/clark-provider.js";
|
|
2
2
|
import type { AnthropicProviderSettings } from "@ai-sdk/anthropic";
|
|
3
3
|
import type { LanguageModelV2 } from "@ai-sdk/provider";
|
|
4
|
-
import type { PromptClassification } from "@superblocksteam/library-shared/types";
|
|
4
|
+
import type { LLMProviderConfig, PromptClassification } from "@superblocksteam/library-shared/types";
|
|
5
5
|
export type LLMProviderSettings = {
|
|
6
6
|
anthropic: AnthropicProviderSettings;
|
|
7
7
|
clark: ClarkProviderSettings;
|
|
@@ -11,6 +11,7 @@ export type LLMTaskModels = {
|
|
|
11
11
|
[K in LLMTask]: LanguageModelV2;
|
|
12
12
|
};
|
|
13
13
|
export type LLMProvider = {
|
|
14
|
+
name: LLMProviderConfig["provider"];
|
|
14
15
|
modelForTask: (modelId: LLMTask) => LanguageModelV2;
|
|
15
16
|
modelForClassification: (classification: PromptClassification) => LanguageModelV2;
|
|
16
17
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/ai-service/llm/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/ai-service/llm/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,mBAAmB,CAAC;AACnE,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AACxD,OAAO,KAAK,EACV,iBAAiB,EACjB,oBAAoB,EACrB,MAAM,uCAAuC,CAAC;AAE/C,MAAM,MAAM,mBAAmB,GAAG;IAChC,SAAS,EAAE,yBAAyB,CAAC;IACrC,KAAK,EAAE,qBAAqB,CAAC;CAC9B,CAAC;AAEF,MAAM,MAAM,OAAO,GACf,gBAAgB,GAChB,mBAAmB,GACnB,eAAe,GACf,sBAAsB,GACtB,mBAAmB,GACnB,oBAAoB,CAAC;AAEzB,MAAM,MAAM,aAAa,GAAG;KACzB,CAAC,IAAI,OAAO,GAAG,eAAe;CAChC,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,IAAI,EAAE,iBAAiB,CAAC,UAAU,CAAC,CAAC;IACpC,YAAY,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,eAAe,CAAC;IACpD,sBAAsB,EAAE,CACtB,cAAc,EAAE,oBAAoB,KACjC,eAAe,CAAC;CACtB,CAAC"}
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { Clark } from "../../state-machine/clark-fsm.js";
|
|
2
|
+
export declare function isProviderErrorRetryable(error: unknown): boolean;
|
|
3
|
+
export declare function onRetryFactory(clark: Clark, sendMessageAfterMs?: number): (_error: unknown, attempt: number, _delayMs: number, totalRetryTimeMs: number) => void;
|
|
4
|
+
//# sourceMappingURL=provider-errors.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-errors.d.ts","sourceRoot":"","sources":["../../../../src/ai-service/llm/util/provider-errors.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,kCAAkC,CAAC;AAE9D,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAQhE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,KAAK,EAAE,kBAAkB,SAAO,IAGlE,QAAQ,OAAO,EACf,SAAS,MAAM,EACf,UAAU,MAAM,EAChB,kBAAkB,MAAM,UA2B3B"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { getLogger } from "../../../util/logger.js";
|
|
2
|
+
import { LLMProviderError } from "../error.js";
|
|
3
|
+
export function isProviderErrorRetryable(error) {
|
|
4
|
+
if (LLMProviderError.isInstance(error)) {
|
|
5
|
+
return error.isRetryable;
|
|
6
|
+
}
|
|
7
|
+
// For thrown errors or unstructured errors, be permissive and retry
|
|
8
|
+
// These might be network issues, timeouts, or other transient problems
|
|
9
|
+
return true;
|
|
10
|
+
}
|
|
11
|
+
export function onRetryFactory(clark, sendMessageAfterMs = 5000) {
|
|
12
|
+
let sentMessage = false;
|
|
13
|
+
return (_error, attempt, _delayMs, totalRetryTimeMs) => {
|
|
14
|
+
if (attempt === 1) {
|
|
15
|
+
sentMessage = false;
|
|
16
|
+
}
|
|
17
|
+
if (sentMessage || totalRetryTimeMs < sendMessageAfterMs) {
|
|
18
|
+
return;
|
|
19
|
+
}
|
|
20
|
+
const editorClient = clark.context.peer;
|
|
21
|
+
if (!editorClient) {
|
|
22
|
+
getLogger().warn("Editor client not found in Clark context, cannot send retry message");
|
|
23
|
+
return;
|
|
24
|
+
}
|
|
25
|
+
void editorClient.call
|
|
26
|
+
.aiPushMessage({
|
|
27
|
+
type: "text",
|
|
28
|
+
text: "Hmmm, I'm having trouble connecting to the model provider. Let me try again...",
|
|
29
|
+
})
|
|
30
|
+
.then(() => {
|
|
31
|
+
sentMessage = true;
|
|
32
|
+
});
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
//# sourceMappingURL=provider-errors.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"provider-errors.js","sourceRoot":"","sources":["../../../../src/ai-service/llm/util/provider-errors.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAG/C,MAAM,UAAU,wBAAwB,CAAC,KAAc;IACrD,IAAI,gBAAgB,CAAC,UAAU,CAAC,KAAK,CAAC,EAAE,CAAC;QACvC,OAAO,KAAK,CAAC,WAAW,CAAC;IAC3B,CAAC;IAED,oEAAoE;IACpE,uEAAuE;IACvE,OAAO,IAAI,CAAC;AACd,CAAC;AAED,MAAM,UAAU,cAAc,CAAC,KAAY,EAAE,kBAAkB,GAAG,IAAI;IACpE,IAAI,WAAW,GAAG,KAAK,CAAC;IACxB,OAAO,CACL,MAAe,EACf,OAAe,EACf,QAAgB,EAChB,gBAAwB,EACxB,EAAE;QACF,IAAI,OAAO,KAAK,CAAC,EAAE,CAAC;YAClB,WAAW,GAAG,KAAK,CAAC;QACtB,CAAC;QAED,IAAI,WAAW,IAAI,gBAAgB,GAAG,kBAAkB,EAAE,CAAC;YACzD,OAAO;QACT,CAAC;QAED,MAAM,YAAY,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC;QACxC,IAAI,CAAC,YAAY,EAAE,CAAC;YAClB,SAAS,EAAE,CAAC,IAAI,CACd,qEAAqE,CACtE,CAAC;YACF,OAAO;QACT,CAAC;QAED,KAAK,YAAY,CAAC,IAAI;aACnB,aAAa,CAAC;YACb,IAAI,EAAE,MAAM;YACZ,IAAI,EAAE,gFAAgF;SACvF,CAAC;aACD,IAAI,CAAC,GAAG,EAAE;YACT,WAAW,GAAG,IAAI,CAAC;QACrB,CAAC,CAAC,CAAC;IACP,CAAC,CAAC;AACJ,CAAC"}
|