@superblocksteam/vite-plugin-file-sync 2.0.41-next.5 → 2.0.41-next.51
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-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 +25 -3
- package/dist/ai-service/agent/apis.js.map +1 -1
- package/dist/ai-service/agent/tool-message-utils.d.ts.map +1 -1
- package/dist/ai-service/agent/tool-message-utils.js +5 -2
- 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 +7 -12
- 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-multi-edit-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-multi-edit-file.js +4 -9
- package/dist/ai-service/agent/tools/build-multi-edit-file.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 +4 -9
- 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.d.ts +22 -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.map +1 -1
- package/dist/ai-service/agent/utils.js +170 -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.map +1 -1
- package/dist/ai-service/context/app-context.js +305 -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 +6 -6
- 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.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 +274 -266
- 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/handlers/simple-prompt-builder.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/simple-prompt-builder.js +54 -19
- package/dist/ai-service/state-machine/handlers/simple-prompt-builder.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 +53 -1
- 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 +48 -3
- 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/routing.d.ts.map +1 -1
- package/dist/routing.js +15 -16
- package/dist/routing.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/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,216 +0,0 @@
|
|
|
1
|
-
import { AsyncLocalStorage } from "async_hooks";
|
|
2
|
-
import ddTrace from "dd-trace";
|
|
3
|
-
class IndexedStack {
|
|
4
|
-
items = [];
|
|
5
|
-
push(item) {
|
|
6
|
-
this.items.push(item);
|
|
7
|
-
}
|
|
8
|
-
top() {
|
|
9
|
-
return this.items[this.items.length - 1];
|
|
10
|
-
}
|
|
11
|
-
remove(item) {
|
|
12
|
-
const index = this.items.indexOf(item);
|
|
13
|
-
if (index !== -1) {
|
|
14
|
-
this.items.splice(index, 1);
|
|
15
|
-
return true;
|
|
16
|
-
}
|
|
17
|
-
return false;
|
|
18
|
-
}
|
|
19
|
-
length() {
|
|
20
|
-
return this.items.length;
|
|
21
|
-
}
|
|
22
|
-
}
|
|
23
|
-
class State extends IndexedStack {
|
|
24
|
-
}
|
|
25
|
-
/**
|
|
26
|
-
* Flexible wrapper around DataDog's LLMObs tracing API.
|
|
27
|
-
*
|
|
28
|
-
* Provides four ways to create spans:
|
|
29
|
-
* - `trace()`: Execute function within auto-closing span
|
|
30
|
-
* - `wrap()`: Wrap function with automatic tracing
|
|
31
|
-
* - `startActiveSpan()`: Create manually-managed span
|
|
32
|
-
* - `decorate()`: Create decorator function for automatic tracing
|
|
33
|
-
*/
|
|
34
|
-
export class LLMObsTracer {
|
|
35
|
-
globalState = new State();
|
|
36
|
-
localStorage = new AsyncLocalStorage();
|
|
37
|
-
globalTags = {};
|
|
38
|
-
static _instance = new LLMObsTracer();
|
|
39
|
-
constructor() { }
|
|
40
|
-
static get instance() {
|
|
41
|
-
return LLMObsTracer._instance;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Execute a function within a traced span context
|
|
45
|
-
* Automatically closes the span when the function completes
|
|
46
|
-
* Supports both synchronous and asynchronous functions
|
|
47
|
-
*/
|
|
48
|
-
trace(options, fn) {
|
|
49
|
-
return this._trace({ finish: "auto", ...options }, fn);
|
|
50
|
-
}
|
|
51
|
-
/**
|
|
52
|
-
* Wrap a function with automatic tracing
|
|
53
|
-
* The function name is used as the span name if not explicitly provided,
|
|
54
|
-
* unless the function is anonymous, in which case options.kind is used
|
|
55
|
-
*/
|
|
56
|
-
wrap(options, fn) {
|
|
57
|
-
const name = options.name || fn.name || options.kind;
|
|
58
|
-
return ((...args) => {
|
|
59
|
-
return this.trace({ ...options, name }, (_span) => fn(...args));
|
|
60
|
-
});
|
|
61
|
-
}
|
|
62
|
-
/**
|
|
63
|
-
* Start a new active span that must be manually closed
|
|
64
|
-
*
|
|
65
|
-
* Activation modes (for manual spans only):
|
|
66
|
-
* - activation: "local" (default): Span becomes inactive at end of current scope
|
|
67
|
-
* - activation: "global": Span remains active across scopes until finished
|
|
68
|
-
*
|
|
69
|
-
* @param options Span configuration including name, kind, and activation mode
|
|
70
|
-
* @returns A span that must be manually finished
|
|
71
|
-
*/
|
|
72
|
-
startActiveSpan(options) {
|
|
73
|
-
const { activation, ...rest } = options;
|
|
74
|
-
return this._trace({ finish: "manual", activation, ...rest }, (span) => span);
|
|
75
|
-
}
|
|
76
|
-
/**
|
|
77
|
-
* Export a span for submission to DataDog
|
|
78
|
-
* Defaults to the currently active span if none provided
|
|
79
|
-
*/
|
|
80
|
-
exportSpan(span) {
|
|
81
|
-
return this.llmobs.exportSpan(span || this.active());
|
|
82
|
-
}
|
|
83
|
-
annotate(spanOrAnnotations, annotations) {
|
|
84
|
-
if (annotations === undefined) {
|
|
85
|
-
// First overload: annotate(annotations)
|
|
86
|
-
return this.llmobs.annotate(this.active(), spanOrAnnotations);
|
|
87
|
-
}
|
|
88
|
-
else {
|
|
89
|
-
// Second overload: annotate(span, annotations)
|
|
90
|
-
return this.llmobs.annotate(spanOrAnnotations, annotations);
|
|
91
|
-
}
|
|
92
|
-
}
|
|
93
|
-
/**
|
|
94
|
-
* Submit feedback or evaluation metrics for a completed span
|
|
95
|
-
* Use for user feedback (accept/reject) or quality scores
|
|
96
|
-
*/
|
|
97
|
-
submitEvaluation(spanContext, option) {
|
|
98
|
-
return this.llmobs.submitEvaluation(spanContext, option);
|
|
99
|
-
}
|
|
100
|
-
/**
|
|
101
|
-
* Create a decorator function for automatic tracing
|
|
102
|
-
* Use as a TypeScript decorator or function wrapper
|
|
103
|
-
*/
|
|
104
|
-
decorate(options) {
|
|
105
|
-
return (target) => {
|
|
106
|
-
return this.wrap(options, target);
|
|
107
|
-
};
|
|
108
|
-
}
|
|
109
|
-
/**
|
|
110
|
-
* Get the currently active span
|
|
111
|
-
*/
|
|
112
|
-
active() {
|
|
113
|
-
return this.localState?.top() || this.globalState.top();
|
|
114
|
-
}
|
|
115
|
-
/**
|
|
116
|
-
* Add global tags to be included on all spans
|
|
117
|
-
* Existing tags with the same key will be overwritten
|
|
118
|
-
*/
|
|
119
|
-
setGlobalTags(tags) {
|
|
120
|
-
this.globalTags = { ...this.globalTags, ...tags };
|
|
121
|
-
}
|
|
122
|
-
/**
|
|
123
|
-
* Register a span and set up cleanup
|
|
124
|
-
*
|
|
125
|
-
* @param span The span to register
|
|
126
|
-
* @param activation Whether span becomes inactive at scope end or remains active
|
|
127
|
-
*/
|
|
128
|
-
register(span, activation) {
|
|
129
|
-
this.annotate(span, { tags: this.globalTags });
|
|
130
|
-
const originalFinish = span.finish.bind(span);
|
|
131
|
-
// Override original finish to maintain stack integrity
|
|
132
|
-
span.finish = (finishTime) => {
|
|
133
|
-
// Always try to remove from both
|
|
134
|
-
this.localState?.remove(span);
|
|
135
|
-
this.globalState.remove(span);
|
|
136
|
-
return originalFinish(finishTime);
|
|
137
|
-
};
|
|
138
|
-
// Add span to appropriate state containers
|
|
139
|
-
const localState = this.localState;
|
|
140
|
-
if (localState) {
|
|
141
|
-
localState.push(span);
|
|
142
|
-
}
|
|
143
|
-
if (!localState || activation === "global") {
|
|
144
|
-
this.globalState.push(span);
|
|
145
|
-
}
|
|
146
|
-
}
|
|
147
|
-
/**
|
|
148
|
-
* Core tracing implementation
|
|
149
|
-
*
|
|
150
|
-
* Finish modes:
|
|
151
|
-
* - finish: "auto": Span finishes automatically at end of scope
|
|
152
|
-
* - finish: "manual": Span must be manually finished
|
|
153
|
-
*
|
|
154
|
-
* Activation modes (for manual spans only):
|
|
155
|
-
* - activation: "local": Span becomes inactive at end of scope
|
|
156
|
-
* - activation: "global": Span remains active across scopes
|
|
157
|
-
*
|
|
158
|
-
* @param options Span configuration including finish and activation modes
|
|
159
|
-
* @param fn Function to execute within span context
|
|
160
|
-
* @returns Result of executing fn within the span context
|
|
161
|
-
*/
|
|
162
|
-
_trace(options, fn) {
|
|
163
|
-
const { tags, finish, activation = "local", ...rest } = options;
|
|
164
|
-
const setup = (span) => {
|
|
165
|
-
this.register(span, activation);
|
|
166
|
-
this.annotate(span, { tags });
|
|
167
|
-
};
|
|
168
|
-
return this.activate(this.active(), () => {
|
|
169
|
-
if (finish == "auto") {
|
|
170
|
-
return this.llmobs.trace(rest, (span) => {
|
|
171
|
-
return this.localStorage.run(new State(), () => {
|
|
172
|
-
setup(span);
|
|
173
|
-
return fn(span);
|
|
174
|
-
});
|
|
175
|
-
});
|
|
176
|
-
}
|
|
177
|
-
else {
|
|
178
|
-
return this.llmobs.trace(rest, (span, _done) => {
|
|
179
|
-
setup(span);
|
|
180
|
-
return fn(span);
|
|
181
|
-
});
|
|
182
|
-
}
|
|
183
|
-
});
|
|
184
|
-
}
|
|
185
|
-
/**
|
|
186
|
-
* Activate a span as the current parent context for DataDog tracing
|
|
187
|
-
*
|
|
188
|
-
* This is a thin wrapper around DataDog's internal _activate method,
|
|
189
|
-
* which establishes the parent-child relationship for spans created
|
|
190
|
-
* within the executed function.
|
|
191
|
-
*
|
|
192
|
-
* @param span The span to set as parent context (null/undefined = no parent)
|
|
193
|
-
* @param fn Function to execute with the span as active parent
|
|
194
|
-
* @returns Result of executing fn with the span context active
|
|
195
|
-
*/
|
|
196
|
-
activate(span, fn) {
|
|
197
|
-
return this.llmobs._activate(span, null, fn);
|
|
198
|
-
}
|
|
199
|
-
get localState() {
|
|
200
|
-
return this.localStorage.getStore();
|
|
201
|
-
}
|
|
202
|
-
// Lazy initialization to avoid import order sensitivity
|
|
203
|
-
static _llmobs = null;
|
|
204
|
-
get llmobs() {
|
|
205
|
-
if (!LLMObsTracer._llmobs) {
|
|
206
|
-
LLMObsTracer._llmobs = ddTrace.llmobs;
|
|
207
|
-
}
|
|
208
|
-
return LLMObsTracer._llmobs;
|
|
209
|
-
}
|
|
210
|
-
}
|
|
211
|
-
/**
|
|
212
|
-
* Default singleton tracer instance
|
|
213
|
-
*/
|
|
214
|
-
const tracer = LLMObsTracer.instance;
|
|
215
|
-
export default tracer;
|
|
216
|
-
//# sourceMappingURL=llmobs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"llmobs.js","sourceRoot":"","sources":["../../src/ai-service/llmobs.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import { streamText, type ToolSet, type StepResult } from "ai";
|
|
2
|
-
import tracer, { type Span } from "dd-trace";
|
|
3
|
-
type LLMObsNamedSpanOptions = tracer.llmobs.LLMObsNamedSpanOptions;
|
|
4
|
-
type LLMObsSpanKind = tracer.llmobs.spanKind;
|
|
5
|
-
export declare function traceWorkflow<T>(name: string, operation: (span: any) => Promise<T>, tags?: Record<string, string | boolean>): Promise<T>;
|
|
6
|
-
export declare function traceTask<T>(name: string, operation: (span: any) => Promise<T>, tags?: Record<string, string | boolean>): Promise<T>;
|
|
7
|
-
export declare function traceLLM<T>(name: string, modelName: string, modelProvider: string, operation: (span: Span) => Promise<T>, tags?: Record<string, string | boolean>): Promise<T>;
|
|
8
|
-
export declare const traceToolSet: (toolset: ToolSet) => ToolSet;
|
|
9
|
-
export declare function getJwtTraceTags(jwt: string | undefined): Record<string, string>;
|
|
10
|
-
export declare function getCommonTraceTags(jwt: string | undefined, applicationId: string, organizationId: string, additionalTags?: Record<string, string | boolean>): Record<string, string | boolean>;
|
|
11
|
-
/**
|
|
12
|
-
* Builds LLMObsNamedSpanOptions from StepResult for tracing
|
|
13
|
-
*/
|
|
14
|
-
export declare function buildSpanOptions<T extends ToolSet>(kind: LLMObsSpanKind, step: StepResult<T>, modelName?: string, modelProvider?: string): LLMObsNamedSpanOptions;
|
|
15
|
-
/**
|
|
16
|
-
* Wrapper around streamText that automatically handles tracing for onStepFinish, onFinish, and prepareStep
|
|
17
|
-
*/
|
|
18
|
-
export declare function tracedStreamText<T extends ToolSet>(options: Parameters<typeof streamText<T>>[0]): import("ai").StreamTextResult<T, never>;
|
|
19
|
-
export {};
|
|
20
|
-
//# sourceMappingURL=ddog-llmobs.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ddog-llmobs.d.ts","sourceRoot":"","sources":["../../../src/ai-service/util/ddog-llmobs.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,UAAU,EACV,KAAK,OAAO,EACZ,KAAK,UAAU,EAGhB,MAAM,IAAI,CAAC;AACZ,OAAO,MAAM,EAAE,EAAE,KAAK,IAAI,EAAE,MAAM,UAAU,CAAC;AAG7C,KAAK,sBAAsB,GAAG,MAAM,CAAC,MAAM,CAAC,sBAAsB,CAAC;AACnE,KAAK,cAAc,GAAG,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC;AAG7C,wBAAgB,aAAa,CAAC,CAAC,EAC7B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,EACpC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GACtC,OAAO,CAAC,CAAC,CAAC,CAeZ;AAGD,wBAAgB,SAAS,CAAC,CAAC,EACzB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,CAAC,IAAI,EAAE,GAAG,KAAK,OAAO,CAAC,CAAC,CAAC,EACpC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GACtC,OAAO,CAAC,CAAC,CAAC,CAeZ;AAGD,wBAAgB,QAAQ,CAAC,CAAC,EACxB,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,MAAM,EACjB,aAAa,EAAE,MAAM,EACrB,SAAS,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,OAAO,CAAC,CAAC,CAAC,EACrC,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,GACtC,OAAO,CAAC,CAAC,CAAC,CAiBZ;AAGD,eAAO,MAAM,YAAY,GAAI,SAAS,OAAO,KAAG,OAsC/C,CAAC;AAGF,wBAAgB,eAAe,CAC7B,GAAG,EAAE,MAAM,GAAG,SAAS,GACtB,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAoBxB;AAGD,wBAAgB,kBAAkB,CAChC,GAAG,EAAE,MAAM,GAAG,SAAS,EACvB,aAAa,EAAE,MAAM,EACrB,cAAc,EAAE,MAAM,EACtB,cAAc,GAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAM,GACpD,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,CAclC;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,OAAO,EAChD,IAAI,EAAE,cAAc,EACpB,IAAI,EAAE,UAAU,CAAC,CAAC,CAAC,EACnB,SAAS,CAAC,EAAE,MAAM,EAClB,aAAa,CAAC,EAAE,MAAM,GACrB,sBAAsB,CA6BxB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,CAAC,SAAS,OAAO,EAChD,OAAO,EAAE,UAAU,CAAC,OAAO,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,2CAiE7C"}
|
|
@@ -1,197 +0,0 @@
|
|
|
1
|
-
import { streamText, } from "ai";
|
|
2
|
-
import tracer, {} from "dd-trace";
|
|
3
|
-
// Helper function for workflow tracing with common patterns
|
|
4
|
-
export function traceWorkflow(name, operation, tags) {
|
|
5
|
-
const { llmobs } = tracer;
|
|
6
|
-
return llmobs.trace({
|
|
7
|
-
kind: "workflow",
|
|
8
|
-
name,
|
|
9
|
-
}, async (span) => {
|
|
10
|
-
if (tags) {
|
|
11
|
-
llmobs.annotate({ tags });
|
|
12
|
-
}
|
|
13
|
-
return operation(span);
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
// Helper function for task tracing with common patterns
|
|
17
|
-
export function traceTask(name, operation, tags) {
|
|
18
|
-
const { llmobs } = tracer;
|
|
19
|
-
return llmobs.trace({
|
|
20
|
-
kind: "task",
|
|
21
|
-
name,
|
|
22
|
-
}, async (span) => {
|
|
23
|
-
if (tags) {
|
|
24
|
-
llmobs.annotate({ tags });
|
|
25
|
-
}
|
|
26
|
-
return operation(span);
|
|
27
|
-
});
|
|
28
|
-
}
|
|
29
|
-
// Helper function for LLM tracing with common patterns
|
|
30
|
-
export function traceLLM(name, modelName, modelProvider, operation, tags) {
|
|
31
|
-
const { llmobs } = tracer;
|
|
32
|
-
return llmobs.trace({
|
|
33
|
-
kind: "llm",
|
|
34
|
-
name,
|
|
35
|
-
modelName,
|
|
36
|
-
modelProvider,
|
|
37
|
-
}, async (span) => {
|
|
38
|
-
if (tags) {
|
|
39
|
-
llmobs.annotate({ tags });
|
|
40
|
-
}
|
|
41
|
-
return operation(span);
|
|
42
|
-
});
|
|
43
|
-
}
|
|
44
|
-
// Helper function for tool tracing with common patterns
|
|
45
|
-
export const traceToolSet = (toolset) => {
|
|
46
|
-
const tracedToolset = {};
|
|
47
|
-
const { llmobs } = tracer;
|
|
48
|
-
for (const [name, tool] of Object.entries(toolset)) {
|
|
49
|
-
tracedToolset[name] = {
|
|
50
|
-
...tool,
|
|
51
|
-
execute: async (input, options) => {
|
|
52
|
-
try {
|
|
53
|
-
return await llmobs.trace({
|
|
54
|
-
kind: "tool",
|
|
55
|
-
name,
|
|
56
|
-
}, async () => {
|
|
57
|
-
if (!tool.execute) {
|
|
58
|
-
throw new Error(`Tool ${name} has no execute method`);
|
|
59
|
-
}
|
|
60
|
-
const result = await tool.execute(input, options);
|
|
61
|
-
llmobs.annotate({
|
|
62
|
-
inputData: input,
|
|
63
|
-
outputData: result,
|
|
64
|
-
metadata: {
|
|
65
|
-
toolCallId: options?.toolCallId,
|
|
66
|
-
},
|
|
67
|
-
});
|
|
68
|
-
return result;
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
catch (error) {
|
|
72
|
-
console.error(`Error executing tool ${name}:`, error);
|
|
73
|
-
throw error;
|
|
74
|
-
}
|
|
75
|
-
},
|
|
76
|
-
};
|
|
77
|
-
}
|
|
78
|
-
return tracedToolset;
|
|
79
|
-
};
|
|
80
|
-
// Helper to extract JWT trace tags
|
|
81
|
-
export function getJwtTraceTags(jwt) {
|
|
82
|
-
const result = {};
|
|
83
|
-
if (jwt) {
|
|
84
|
-
try {
|
|
85
|
-
const parts = jwt.split(".");
|
|
86
|
-
if (parts.length === 3 && parts[1]) {
|
|
87
|
-
const payload = JSON.parse(Buffer.from(parts[1], "base64").toString());
|
|
88
|
-
if (payload.org_id)
|
|
89
|
-
result["org.id"] = payload.org_id;
|
|
90
|
-
if (payload.org_name)
|
|
91
|
-
result["org.name"] = payload.org_name;
|
|
92
|
-
if (payload.user_id)
|
|
93
|
-
result["user.id"] = payload.user_id;
|
|
94
|
-
if (payload.user_email)
|
|
95
|
-
result["user.email"] = payload.user_email;
|
|
96
|
-
}
|
|
97
|
-
}
|
|
98
|
-
catch {
|
|
99
|
-
// Silently handle JWT parsing errors
|
|
100
|
-
}
|
|
101
|
-
}
|
|
102
|
-
return result;
|
|
103
|
-
}
|
|
104
|
-
// Helper to combine common tags with enhanced user information
|
|
105
|
-
export function getCommonTraceTags(jwt, applicationId, organizationId, additionalTags = {}) {
|
|
106
|
-
const result = {};
|
|
107
|
-
// Extract and add JWT tags using the extracted function
|
|
108
|
-
Object.assign(result, getJwtTraceTags(jwt));
|
|
109
|
-
// Add required tags (no if checks needed since they're required)
|
|
110
|
-
result["application.id"] = applicationId;
|
|
111
|
-
result["organization.id"] = organizationId;
|
|
112
|
-
// Add additional tags
|
|
113
|
-
Object.assign(result, additionalTags);
|
|
114
|
-
return result;
|
|
115
|
-
}
|
|
116
|
-
/**
|
|
117
|
-
* Builds LLMObsNamedSpanOptions from StepResult for tracing
|
|
118
|
-
*/
|
|
119
|
-
export function buildSpanOptions(kind, step, modelName, modelProvider) {
|
|
120
|
-
const getSpanName = (finishReason, content) => {
|
|
121
|
-
switch (finishReason) {
|
|
122
|
-
case "tool-calls": {
|
|
123
|
-
const toolName = Array.isArray(content)
|
|
124
|
-
? content.find((item) => item?.type === "tool-call" && item.toolName)
|
|
125
|
-
?.toolName
|
|
126
|
-
: undefined;
|
|
127
|
-
return toolName ? `llm_${toolName}` : "llm_tool_calls";
|
|
128
|
-
}
|
|
129
|
-
case "stop":
|
|
130
|
-
return "llm_text_generation";
|
|
131
|
-
case "length":
|
|
132
|
-
return "llm_token_limit";
|
|
133
|
-
case "content-filter":
|
|
134
|
-
return "llm_content_filtered";
|
|
135
|
-
case "error":
|
|
136
|
-
return "llm_error";
|
|
137
|
-
default:
|
|
138
|
-
return "llm_step";
|
|
139
|
-
}
|
|
140
|
-
};
|
|
141
|
-
return {
|
|
142
|
-
kind,
|
|
143
|
-
name: getSpanName(step.finishReason, step.content),
|
|
144
|
-
...(modelName && { modelName }),
|
|
145
|
-
...(modelProvider && { modelProvider }),
|
|
146
|
-
};
|
|
147
|
-
}
|
|
148
|
-
/**
|
|
149
|
-
* Wrapper around streamText that automatically handles tracing for onStepFinish, onFinish, and prepareStep
|
|
150
|
-
*/
|
|
151
|
-
export function tracedStreamText(options) {
|
|
152
|
-
const { llmobs } = tracer;
|
|
153
|
-
let startTime;
|
|
154
|
-
const tracedPrepareStep = async (step) => {
|
|
155
|
-
startTime = Date.now();
|
|
156
|
-
if (options.prepareStep) {
|
|
157
|
-
return await options.prepareStep(step);
|
|
158
|
-
}
|
|
159
|
-
};
|
|
160
|
-
const tracedOnStepFinish = async (step) => {
|
|
161
|
-
return llmobs.trace(buildSpanOptions("llm", step, typeof options.model === "string"
|
|
162
|
-
? options.model
|
|
163
|
-
: options.model.modelId, typeof options.model === "string" ? "unknown" : options.model.provider), async () => {
|
|
164
|
-
if (options.onStepFinish) {
|
|
165
|
-
await options.onStepFinish(step);
|
|
166
|
-
}
|
|
167
|
-
console.log("Usage:", JSON.stringify(step.usage));
|
|
168
|
-
llmobs.annotate({
|
|
169
|
-
inputData: JSON.stringify(step.request?.body?.messages || []),
|
|
170
|
-
outputData: JSON.stringify(step.content),
|
|
171
|
-
metrics: {
|
|
172
|
-
inputTokens: step.usage?.inputTokens ?? 0,
|
|
173
|
-
outputTokens: step.usage?.outputTokens ?? 0,
|
|
174
|
-
totalTokens: step.usage?.totalTokens ?? 0,
|
|
175
|
-
},
|
|
176
|
-
metadata: {
|
|
177
|
-
request: step.request,
|
|
178
|
-
response: step.response,
|
|
179
|
-
},
|
|
180
|
-
tags: {
|
|
181
|
-
duration: Date.now() - startTime,
|
|
182
|
-
cachedInputTokens: step.usage?.cachedInputTokens ?? 0,
|
|
183
|
-
},
|
|
184
|
-
});
|
|
185
|
-
});
|
|
186
|
-
};
|
|
187
|
-
// Trace all tools
|
|
188
|
-
if (options.tools) {
|
|
189
|
-
options.tools = traceToolSet(options.tools);
|
|
190
|
-
}
|
|
191
|
-
return streamText({
|
|
192
|
-
...options,
|
|
193
|
-
prepareStep: tracedPrepareStep,
|
|
194
|
-
onStepFinish: tracedOnStepFinish,
|
|
195
|
-
});
|
|
196
|
-
}
|
|
197
|
-
//# sourceMappingURL=ddog-llmobs.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ddog-llmobs.js","sourceRoot":"","sources":["../../../src/ai-service/util/ddog-llmobs.ts"],"names":[],"mappings":"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"}
|