@superblocksteam/vite-plugin-file-sync 2.0.83-next.1 → 2.0.83
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/ai-service/agent/middleware.d.ts +0 -36
- package/dist/ai-service/agent/middleware.d.ts.map +1 -1
- package/dist/ai-service/agent/middleware.js +1 -65
- package/dist/ai-service/agent/middleware.js.map +1 -1
- package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts +1 -1
- package/dist/ai-service/agent/prompts/build-base-system-prompt.d.ts.map +1 -1
- package/dist/ai-service/agent/prompts/build-base-system-prompt.js +57 -101
- package/dist/ai-service/agent/prompts/build-base-system-prompt.js.map +1 -1
- package/dist/ai-service/agent/tool-message-utils.js +1 -1
- package/dist/ai-service/agent/tool-message-utils.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/api-executor.js +1 -1
- package/dist/ai-service/agent/tools/apis/api-executor.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/api-validation-orchestrator.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/api-validation-orchestrator.js +1 -1
- package/dist/ai-service/agent/tools/apis/api-validation-orchestrator.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/build-api-artifact.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/build-api-artifact.js +7 -23
- package/dist/ai-service/agent/tools/apis/build-api-artifact.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/build-api.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/build-api.js +19 -36
- package/dist/ai-service/agent/tools/apis/build-api.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/get-api-docs.d.ts +1 -1
- package/dist/ai-service/agent/tools/apis/sample-json.js +1 -1
- package/dist/ai-service/agent/tools/apis/sample-json.js.map +1 -1
- package/dist/ai-service/agent/tools/apis/test-api.d.ts +1 -11
- package/dist/ai-service/agent/tools/apis/test-api.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/apis/test-api.js +54 -95
- package/dist/ai-service/agent/tools/apis/test-api.js.map +1 -1
- package/dist/ai-service/agent/tools/build-capture-screenshot.d.ts +0 -3
- package/dist/ai-service/agent/tools/build-capture-screenshot.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-capture-screenshot.js +8 -12
- package/dist/ai-service/agent/tools/build-capture-screenshot.js.map +1 -1
- package/dist/ai-service/agent/tools/build-debug.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-debug.js +10 -30
- package/dist/ai-service/agent/tools/build-debug.js.map +1 -1
- package/dist/ai-service/agent/tools/build-delete-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-delete-file.js +2 -6
- package/dist/ai-service/agent/tools/build-delete-file.js.map +1 -1
- package/dist/ai-service/agent/tools/build-edit-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-edit-file.js +5 -20
- package/dist/ai-service/agent/tools/build-edit-file.js.map +1 -1
- package/dist/ai-service/agent/tools/build-finalize.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-finalize.js +4 -30
- package/dist/ai-service/agent/tools/build-finalize.js.map +1 -1
- package/dist/ai-service/agent/tools/build-manage-checklist.d.ts +1 -1
- package/dist/ai-service/agent/tools/build-multi-edit-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-multi-edit-file.js +4 -14
- package/dist/ai-service/agent/tools/build-multi-edit-file.js.map +1 -1
- package/dist/ai-service/agent/tools/build-read-file.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/build-read-file.js +11 -23
- package/dist/ai-service/agent/tools/build-read-file.js.map +1 -1
- package/dist/ai-service/agent/tools/debug-cache.js +1 -1
- package/dist/ai-service/agent/tools/debug-cache.js.map +1 -1
- package/dist/ai-service/agent/tools/get-console-logs.d.ts +29 -0
- package/dist/ai-service/agent/tools/get-console-logs.d.ts.map +1 -0
- package/dist/ai-service/agent/tools/get-console-logs.js +171 -0
- package/dist/ai-service/agent/tools/get-console-logs.js.map +1 -0
- package/dist/ai-service/agent/tools/index.d.ts +1 -1
- package/dist/ai-service/agent/tools/index.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/index.js +1 -1
- package/dist/ai-service/agent/tools/index.js.map +1 -1
- package/dist/ai-service/agent/tools/integrations/execute-request.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/integrations/execute-request.js +5 -20
- package/dist/ai-service/agent/tools/integrations/execute-request.js.map +1 -1
- package/dist/ai-service/agent/tools/integrations/internal.d.ts.map +1 -1
- package/dist/ai-service/agent/tools/integrations/internal.js +3 -12
- package/dist/ai-service/agent/tools/integrations/internal.js.map +1 -1
- package/dist/ai-service/agent/tools.d.ts.map +1 -1
- package/dist/ai-service/agent/tools.js +28 -19
- package/dist/ai-service/agent/tools.js.map +1 -1
- package/dist/ai-service/agent/tools2/registry.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/registry.js +15 -37
- package/dist/ai-service/agent/tools2/registry.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/bash.d.ts +1 -1
- package/dist/ai-service/agent/tools2/tools/edit.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/edit.js +4 -9
- package/dist/ai-service/agent/tools2/tools/edit.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/grep.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/grep.js +7 -73
- package/dist/ai-service/agent/tools2/tools/grep.js.map +1 -1
- package/dist/ai-service/agent/tools2/tools/read.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/tools/read.js +4 -9
- package/dist/ai-service/agent/tools2/tools/read.js.map +1 -1
- package/dist/ai-service/agent/tools2/types.d.ts +8 -40
- package/dist/ai-service/agent/tools2/types.d.ts.map +1 -1
- package/dist/ai-service/agent/tools2/types.js +3 -41
- package/dist/ai-service/agent/tools2/types.js.map +1 -1
- package/dist/ai-service/app-interface/filesystem/handlers/skill-handler.d.ts +1 -0
- package/dist/ai-service/app-interface/filesystem/handlers/skill-handler.d.ts.map +1 -1
- package/dist/ai-service/app-interface/filesystem/handlers/skill-handler.js +54 -60
- package/dist/ai-service/app-interface/filesystem/handlers/skill-handler.js.map +1 -1
- package/dist/ai-service/chat/chat-session-store.d.ts +0 -6
- package/dist/ai-service/chat/chat-session-store.d.ts.map +1 -1
- package/dist/ai-service/chat/chat-session-store.js +0 -44
- package/dist/ai-service/chat/chat-session-store.js.map +1 -1
- package/dist/ai-service/features.d.ts +0 -8
- package/dist/ai-service/features.d.ts.map +1 -1
- package/dist/ai-service/features.js +0 -8
- package/dist/ai-service/features.js.map +1 -1
- package/dist/ai-service/index.d.ts +2 -34
- package/dist/ai-service/index.d.ts.map +1 -1
- package/dist/ai-service/index.js +18 -112
- package/dist/ai-service/index.js.map +1 -1
- package/dist/ai-service/integrations/metadata-storage/local.d.ts.map +1 -1
- package/dist/ai-service/integrations/metadata-storage/local.js +2 -4
- package/dist/ai-service/integrations/metadata-storage/local.js.map +1 -1
- package/dist/ai-service/integrations/store.d.ts +3 -6
- package/dist/ai-service/integrations/store.d.ts.map +1 -1
- package/dist/ai-service/integrations/store.js +6 -96
- package/dist/ai-service/integrations/store.js.map +1 -1
- package/dist/ai-service/judge/judge-executor.js +1 -1
- package/dist/ai-service/judge/judge-executor.js.map +1 -1
- package/dist/ai-service/judge/tools/playwright-action.d.ts +1 -1
- package/dist/ai-service/llm/client.d.ts.map +1 -1
- package/dist/ai-service/llm/client.js +13 -26
- package/dist/ai-service/llm/client.js.map +1 -1
- package/dist/ai-service/llm/context-v2/adapter.d.ts +0 -2
- package/dist/ai-service/llm/context-v2/adapter.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/adapter.js +0 -6
- package/dist/ai-service/llm/context-v2/adapter.js.map +1 -1
- package/dist/ai-service/llm/context-v2/context.d.ts +0 -17
- package/dist/ai-service/llm/context-v2/context.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/context.js +1 -54
- package/dist/ai-service/llm/context-v2/context.js.map +1 -1
- package/dist/ai-service/llm/context-v2/conversation-context.d.ts +1 -11
- package/dist/ai-service/llm/context-v2/conversation-context.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.d.ts +1 -1
- package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.js +6 -42
- package/dist/ai-service/llm/context-v2/phase1-tool-summarizer.js.map +1 -1
- package/dist/ai-service/llm/context-v2/types.d.ts +0 -4
- package/dist/ai-service/llm/context-v2/types.d.ts.map +1 -1
- package/dist/ai-service/llm/context-v2/types.js.map +1 -1
- package/dist/ai-service/llm/error.js +1 -1
- package/dist/ai-service/llm/error.js.map +1 -1
- package/dist/ai-service/llm/interaction/adapters/vercel.js +5 -5
- package/dist/ai-service/llm/stream/config.d.ts +1 -1
- package/dist/ai-service/llm/stream/config.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/config.js.map +1 -1
- package/dist/ai-service/llm/stream/observers/llmobs.js +1 -1
- package/dist/ai-service/llm/stream/observers/llmobs.js.map +1 -1
- package/dist/ai-service/llm/stream/observers/logging.d.ts +0 -20
- package/dist/ai-service/llm/stream/observers/logging.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/observers/logging.js +18 -115
- package/dist/ai-service/llm/stream/observers/logging.js.map +1 -1
- package/dist/ai-service/llm/stream/observers/retry-notification.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/observers/retry-notification.js +1 -2
- package/dist/ai-service/llm/stream/observers/retry-notification.js.map +1 -1
- package/dist/ai-service/llm/stream/orchestrator.js +4 -4
- package/dist/ai-service/llm/stream/orchestrator.js.map +1 -1
- package/dist/ai-service/llm/stream/retry-engine.d.ts.map +1 -1
- package/dist/ai-service/llm/stream/retry-engine.js +1 -1
- package/dist/ai-service/llm/stream/retry-engine.js.map +1 -1
- package/dist/ai-service/llmobs/otel-exporter.d.ts +14 -111
- package/dist/ai-service/llmobs/otel-exporter.d.ts.map +1 -1
- package/dist/ai-service/llmobs/otel-exporter.js +66 -441
- package/dist/ai-service/llmobs/otel-exporter.js.map +1 -1
- package/dist/ai-service/llmobs/tracer.d.ts.map +1 -1
- package/dist/ai-service/llmobs/tracer.js +4 -40
- package/dist/ai-service/llmobs/tracer.js.map +1 -1
- package/dist/ai-service/mcp/playwright-server.d.ts.map +1 -1
- package/dist/ai-service/mcp/playwright-server.js +2 -11
- package/dist/ai-service/mcp/playwright-server.js.map +1 -1
- package/dist/ai-service/security/safety-classifier.d.ts.map +1 -1
- package/dist/ai-service/security/safety-classifier.js +3 -9
- package/dist/ai-service/security/safety-classifier.js.map +1 -1
- package/dist/ai-service/skills/index.d.ts +11 -23
- package/dist/ai-service/skills/index.d.ts.map +1 -1
- package/dist/ai-service/skills/index.js +21 -86
- package/dist/ai-service/skills/index.js.map +1 -1
- package/dist/ai-service/skills/system/superblocks-api/references/code-blocks.generated.d.ts +1 -1
- package/dist/ai-service/skills/system/superblocks-api/references/code-blocks.generated.d.ts.map +1 -1
- package/dist/ai-service/skills/system/superblocks-api/references/code-blocks.generated.js +0 -56
- package/dist/ai-service/skills/system/superblocks-api/references/code-blocks.generated.js.map +1 -1
- package/dist/ai-service/skills/system/superblocks-api/references/sql-databases.generated.d.ts +1 -1
- package/dist/ai-service/skills/system/superblocks-api/references/sql-databases.generated.d.ts.map +1 -1
- package/dist/ai-service/skills/system/superblocks-api/references/sql-databases.generated.js +11 -143
- package/dist/ai-service/skills/system/superblocks-api/references/sql-databases.generated.js.map +1 -1
- package/dist/ai-service/skills/system/superblocks-api/skill.generated.d.ts +1 -1
- package/dist/ai-service/skills/system/superblocks-api/skill.generated.d.ts.map +1 -1
- package/dist/ai-service/skills/system/superblocks-api/skill.generated.js +3 -130
- package/dist/ai-service/skills/system/superblocks-api/skill.generated.js.map +1 -1
- package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.d.ts +1 -1
- package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.d.ts.map +1 -1
- package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.js +17 -97
- package/dist/ai-service/skills/system/superblocks-frontend/skill.generated.js.map +1 -1
- package/dist/ai-service/skills/types.d.ts +0 -24
- package/dist/ai-service/skills/types.d.ts.map +1 -1
- package/dist/ai-service/skills/types.js +0 -45
- package/dist/ai-service/skills/types.js.map +1 -1
- package/dist/ai-service/state-machine/clark-fsm.d.ts +2 -33
- package/dist/ai-service/state-machine/clark-fsm.d.ts.map +1 -1
- package/dist/ai-service/state-machine/clark-fsm.js +1 -6
- package/dist/ai-service/state-machine/clark-fsm.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/agent-planning.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/agent-planning.js +21 -24
- package/dist/ai-service/state-machine/handlers/agent-planning.js.map +1 -1
- package/dist/ai-service/state-machine/handlers/llm-generating.d.ts.map +1 -1
- package/dist/ai-service/state-machine/handlers/llm-generating.js +5 -120
- package/dist/ai-service/state-machine/handlers/llm-generating.js.map +1 -1
- package/dist/ai-service/state-machine/mocks.d.ts.map +1 -1
- package/dist/ai-service/state-machine/mocks.js +0 -23
- package/dist/ai-service/state-machine/mocks.js.map +1 -1
- package/dist/ai-service/state-machine/traced-fsm.d.ts.map +1 -1
- package/dist/ai-service/state-machine/traced-fsm.js +1 -1
- package/dist/ai-service/state-machine/traced-fsm.js.map +1 -1
- package/dist/ai-service/test-utils/anthropic-service-mock.d.ts +2 -0
- package/dist/ai-service/test-utils/anthropic-service-mock.d.ts.map +1 -0
- package/dist/ai-service/test-utils/anthropic-service-mock.js +91 -0
- package/dist/ai-service/test-utils/anthropic-service-mock.js.map +1 -0
- package/dist/ai-service/test-utils/app-generation-mocks/orders-app.d.ts +3 -0
- package/dist/ai-service/test-utils/app-generation-mocks/orders-app.d.ts.map +1 -0
- package/dist/ai-service/test-utils/app-generation-mocks/orders-app.js +886 -0
- package/dist/ai-service/test-utils/app-generation-mocks/orders-app.js.map +1 -0
- package/dist/ai-service/test-utils/app-generation-mocks/reprompt.d.ts +3 -0
- package/dist/ai-service/test-utils/app-generation-mocks/reprompt.d.ts.map +1 -0
- package/dist/ai-service/test-utils/app-generation-mocks/reprompt.js +70 -0
- package/dist/ai-service/test-utils/app-generation-mocks/reprompt.js.map +1 -0
- package/dist/ai-service/test-utils/app-generation-mocks/smoketest.d.ts +3 -0
- package/dist/ai-service/test-utils/app-generation-mocks/smoketest.d.ts.map +1 -0
- package/dist/ai-service/test-utils/app-generation-mocks/smoketest.js +109 -0
- package/dist/ai-service/test-utils/app-generation-mocks/smoketest.js.map +1 -0
- package/dist/ai-service/test-utils/mock-utils.d.ts +12 -0
- package/dist/ai-service/test-utils/mock-utils.d.ts.map +1 -0
- package/dist/ai-service/test-utils/mock-utils.js +70 -0
- package/dist/ai-service/test-utils/mock-utils.js.map +1 -0
- package/dist/ai-service/util/safe-stringify.d.ts +2 -0
- package/dist/ai-service/util/safe-stringify.d.ts.map +1 -0
- package/dist/ai-service/util/safe-stringify.js +75 -0
- package/dist/ai-service/util/safe-stringify.js.map +1 -0
- package/dist/file-sync-vite-plugin.d.ts.map +1 -1
- package/dist/file-sync-vite-plugin.js +22 -52
- package/dist/file-sync-vite-plugin.js.map +1 -1
- package/dist/ids.d.ts +0 -1
- package/dist/ids.d.ts.map +1 -1
- package/dist/ids.js +0 -3
- package/dist/ids.js.map +1 -1
- package/dist/refactor/entities.d.ts.map +1 -1
- package/dist/refactor/entities.js +1 -0
- package/dist/refactor/entities.js.map +1 -1
- package/dist/socket-manager.d.ts.map +1 -1
- package/dist/socket-manager.js +3 -21
- package/dist/socket-manager.js.map +1 -1
- package/dist/sync-service/index.d.ts +0 -4
- package/dist/sync-service/index.d.ts.map +1 -1
- package/dist/sync-service/index.js +0 -6
- package/dist/sync-service/index.js.map +1 -1
- package/dist/util/logger.d.ts +0 -4
- package/dist/util/logger.d.ts.map +1 -1
- package/dist/util/logger.js +19 -77
- package/dist/util/logger.js.map +1 -1
- package/package.json +14 -17
- package/dist/ai-service/agent/tools/get-logs.d.ts +0 -72
- package/dist/ai-service/agent/tools/get-logs.d.ts.map +0 -1
- package/dist/ai-service/agent/tools/get-logs.js +0 -343
- package/dist/ai-service/agent/tools/get-logs.js.map +0 -1
- package/dist/ai-service/agent/tools/integrations/errors.d.ts +0 -9
- package/dist/ai-service/agent/tools/integrations/errors.d.ts.map +0 -1
- package/dist/ai-service/agent/tools/integrations/errors.js +0 -35
- package/dist/ai-service/agent/tools/integrations/errors.js.map +0 -1
- package/dist/ai-service/facts/helpers.d.ts +0 -9
- package/dist/ai-service/facts/helpers.d.ts.map +0 -1
- package/dist/ai-service/facts/helpers.js +0 -72
- package/dist/ai-service/facts/helpers.js.map +0 -1
- package/dist/ai-service/facts/index.d.ts +0 -4
- package/dist/ai-service/facts/index.d.ts.map +0 -1
- package/dist/ai-service/facts/index.js +0 -3
- package/dist/ai-service/facts/index.js.map +0 -1
- package/dist/ai-service/facts/knowledge-manager.d.ts +0 -50
- package/dist/ai-service/facts/knowledge-manager.d.ts.map +0 -1
- package/dist/ai-service/facts/knowledge-manager.js +0 -195
- package/dist/ai-service/facts/knowledge-manager.js.map +0 -1
- package/dist/ai-service/recording/index.d.ts +0 -25
- package/dist/ai-service/recording/index.d.ts.map +0 -1
- package/dist/ai-service/recording/index.js +0 -27
- package/dist/ai-service/recording/index.js.map +0 -1
- package/dist/ai-service/recording/recorders/llm-recorder.d.ts +0 -35
- package/dist/ai-service/recording/recorders/llm-recorder.d.ts.map +0 -1
- package/dist/ai-service/recording/recorders/llm-recorder.js +0 -221
- package/dist/ai-service/recording/recorders/llm-recorder.js.map +0 -1
- package/dist/ai-service/recording/recorders/socket-recorder.d.ts +0 -38
- package/dist/ai-service/recording/recorders/socket-recorder.d.ts.map +0 -1
- package/dist/ai-service/recording/recorders/socket-recorder.js +0 -44
- package/dist/ai-service/recording/recorders/socket-recorder.js.map +0 -1
- package/dist/ai-service/recording/recorders/tool-recorder.d.ts +0 -25
- package/dist/ai-service/recording/recorders/tool-recorder.d.ts.map +0 -1
- package/dist/ai-service/recording/recorders/tool-recorder.js +0 -58
- package/dist/ai-service/recording/recorders/tool-recorder.js.map +0 -1
- package/dist/ai-service/recording/recording-manager.d.ts +0 -104
- package/dist/ai-service/recording/recording-manager.d.ts.map +0 -1
- package/dist/ai-service/recording/recording-manager.js +0 -308
- package/dist/ai-service/recording/recording-manager.js.map +0 -1
- package/dist/ai-service/recording/storage/session-recording-storage.d.ts +0 -143
- package/dist/ai-service/recording/storage/session-recording-storage.d.ts.map +0 -1
- package/dist/ai-service/recording/storage/session-recording-storage.js +0 -374
- package/dist/ai-service/recording/storage/session-recording-storage.js.map +0 -1
- package/dist/ai-service/recording/types.d.ts +0 -148
- package/dist/ai-service/recording/types.d.ts.map +0 -1
- package/dist/ai-service/recording/types.js +0 -8
- package/dist/ai-service/recording/types.js.map +0 -1
- package/dist/ai-service/skills/system/_registry.generated.d.ts +0 -6
- package/dist/ai-service/skills/system/_registry.generated.d.ts.map +0 -1
- package/dist/ai-service/skills/system/_registry.generated.js +0 -24
- package/dist/ai-service/skills/system/_registry.generated.js.map +0 -1
- package/dist/ai-service/skills/system/superblocks-frontend/references/embedding.generated.d.ts +0 -2
- package/dist/ai-service/skills/system/superblocks-frontend/references/embedding.generated.d.ts.map +0 -1
- package/dist/ai-service/skills/system/superblocks-frontend/references/embedding.generated.js +0 -155
- package/dist/ai-service/skills/system/superblocks-frontend/references/embedding.generated.js.map +0 -1
- package/dist/util/log-sanitizer.d.ts +0 -42
- package/dist/util/log-sanitizer.d.ts.map +0 -1
- package/dist/util/log-sanitizer.js +0 -177
- package/dist/util/log-sanitizer.js.map +0 -1
|
@@ -5,49 +5,14 @@
|
|
|
5
5
|
* for export via OTEL collector. Used in CLOUD_PREM deployments where direct
|
|
6
6
|
* Datadog API access is not available.
|
|
7
7
|
*
|
|
8
|
-
*
|
|
9
|
-
*
|
|
10
|
-
*
|
|
11
|
-
*
|
|
12
|
-
*
|
|
13
|
-
* - Tier 1: Full data (prompts, user-email, org-id) → Customer's local observability
|
|
14
|
-
* - Tier 2: Sanitized data (hashed IDs, no content) → Superblocks-managed observability
|
|
15
|
-
* - Tier 3: AI content with identity stripped → AI quality analysis
|
|
16
|
-
*
|
|
17
|
-
* The SDK's job is to:
|
|
18
|
-
* 1. Convert LLMObs spans to OTEL format
|
|
19
|
-
* 2. Emit ALL data (including content and identity)
|
|
20
|
-
* 3. Use gen_ai.* semantic conventions ONLY (no legacy llm.* prefixes)
|
|
21
|
-
* 4. Set `superblocks.tier_hint: "include_tier3"` for AI quality analysis
|
|
22
|
-
*
|
|
23
|
-
* The Collector's job is to:
|
|
24
|
-
* 1. Hash identity attributes (user-email → user.hash) for Tier 2
|
|
25
|
-
* 2. Strip forbidden attributes (llmobs.input, llmobs.output) for Tier 2
|
|
26
|
-
* 3. Strip identity (no hashing) for Tier 3, but preserve content
|
|
27
|
-
* 4. Route to appropriate tier pipelines based on tier_hint
|
|
28
|
-
*
|
|
29
|
-
* Contract: tier2-traces.v0.3.0.json
|
|
30
|
-
* See also: sdk-tier-policy-hints.md
|
|
8
|
+
* This uses the SpanInterceptor pattern from test-utils/span-interceptor.ts:
|
|
9
|
+
* - Patches LLMObsSpanWriter.prototype.flush to capture span events
|
|
10
|
+
* - Converts span events to OTEL spans with llmobs.* attributes
|
|
11
|
+
* - Drops original spans to prevent Datadog LLMObs API submission
|
|
31
12
|
*/
|
|
32
13
|
import { SpanKind, trace } from "@opentelemetry/api";
|
|
33
14
|
import { getLogger } from "../../util/logger.js";
|
|
34
|
-
|
|
35
|
-
* Tier policy hint attribute key.
|
|
36
|
-
* Must match TIER_HINT_ATTRIBUTE from @superblocksteam/telemetry.
|
|
37
|
-
*/
|
|
38
|
-
const TIER_HINT_ATTRIBUTE = "superblocks.tier_hint";
|
|
39
|
-
/**
|
|
40
|
-
* Tier policy hint for AI quality analysis.
|
|
41
|
-
* All LLMObs spans get this hint so they're routed to Tier 3.
|
|
42
|
-
* Must match TierPolicyHint.INCLUDE_TIER3 from @superblocksteam/telemetry.
|
|
43
|
-
*/
|
|
44
|
-
const TIER_HINT_INCLUDE_TIER3 = "include_tier3";
|
|
45
|
-
/**
|
|
46
|
-
* Maximum length for llmobs.input / llmobs.output span attributes.
|
|
47
|
-
* Very large LLM responses (100K+ tokens) can create spans that are
|
|
48
|
-
* rejected by the OTEL Collector or cause memory pressure.
|
|
49
|
-
*/
|
|
50
|
-
const MAX_ATTRIBUTE_LENGTH = 64_000;
|
|
15
|
+
import { safeJsonStringify } from "../util/safe-stringify.js";
|
|
51
16
|
/**
|
|
52
17
|
* Lazily loaded LLMObsSpanWriter from dd-trace internals.
|
|
53
18
|
* Must be loaded after dd-trace is initialized to avoid accessing
|
|
@@ -62,64 +27,19 @@ async function loadLLMObsSpanWriter() {
|
|
|
62
27
|
return LLMObsSpanWriter;
|
|
63
28
|
}
|
|
64
29
|
/**
|
|
65
|
-
*
|
|
66
|
-
|
|
67
|
-
const GENAI_SYSTEM_MAPPING = {
|
|
68
|
-
openai: "openai",
|
|
69
|
-
anthropic: "anthropic",
|
|
70
|
-
claude: "anthropic",
|
|
71
|
-
azure: "azure.ai.openai",
|
|
72
|
-
azure_openai: "azure.ai.openai",
|
|
73
|
-
bedrock: "aws.bedrock",
|
|
74
|
-
aws_bedrock: "aws.bedrock",
|
|
75
|
-
google: "gcp.gemini",
|
|
76
|
-
gemini: "gcp.gemini",
|
|
77
|
-
vertex: "gcp.vertex_ai",
|
|
78
|
-
cohere: "cohere",
|
|
79
|
-
mistral: "mistral_ai",
|
|
80
|
-
deepseek: "deepseek",
|
|
81
|
-
groq: "groq",
|
|
82
|
-
};
|
|
83
|
-
/**
|
|
84
|
-
* Valid error categories per tier2-traces.v0.3.0.json contract.
|
|
30
|
+
* Maximum length for input/output JSON strings.
|
|
31
|
+
* Prevents excessively large span attributes.
|
|
85
32
|
*/
|
|
86
|
-
const
|
|
87
|
-
"none",
|
|
88
|
-
"rate_limit",
|
|
89
|
-
"context_length",
|
|
90
|
-
"content_filter",
|
|
91
|
-
"quota",
|
|
92
|
-
"network",
|
|
93
|
-
"timeout",
|
|
94
|
-
"auth_error",
|
|
95
|
-
"api_error",
|
|
96
|
-
"validation_error",
|
|
97
|
-
"aborted",
|
|
98
|
-
"unknown",
|
|
99
|
-
]);
|
|
100
|
-
/**
|
|
101
|
-
* Valid finish reasons per tier2-traces.v0.3.0.json contract.
|
|
102
|
-
*/
|
|
103
|
-
const VALID_FINISH_REASONS = new Set([
|
|
104
|
-
"stop",
|
|
105
|
-
"length",
|
|
106
|
-
"content_filter",
|
|
107
|
-
"tool_calls",
|
|
108
|
-
"error",
|
|
109
|
-
]);
|
|
33
|
+
const MAX_IO_LENGTH = 10000;
|
|
110
34
|
/**
|
|
111
35
|
* Converts LLMObs spans to OTEL spans for CLOUD_PREM deployments.
|
|
112
36
|
*
|
|
113
|
-
* This exporter emits FULL-FIDELITY spans. The OTEL Collector handles
|
|
114
|
-
* tier separation (hashing, stripping, routing).
|
|
115
|
-
*
|
|
116
37
|
* When initialized, patches LLMObsSpanWriter.flush to:
|
|
117
38
|
* 1. Intercept all buffered span events
|
|
118
|
-
* 2. Convert each to
|
|
119
|
-
* 3.
|
|
120
|
-
* 4. Drop original spans (prevent Datadog LLMObs API submission)
|
|
39
|
+
* 2. Convert each to an OTEL span with llmobs.* attributes
|
|
40
|
+
* 3. Drop original spans (prevent Datadog LLMObs API submission)
|
|
121
41
|
*/
|
|
122
|
-
|
|
42
|
+
class LLMObsOtelExporter {
|
|
123
43
|
originalFlush = null;
|
|
124
44
|
/**
|
|
125
45
|
* Get the OTEL tracer lazily to ensure it's fetched after NodeSDK is started.
|
|
@@ -144,383 +64,91 @@ export class LLMObsOtelExporter {
|
|
|
144
64
|
const self = this;
|
|
145
65
|
SpanWriter.prototype.flush = function () {
|
|
146
66
|
if (this._buffer.length > 0) {
|
|
147
|
-
getLogger().debug(`LLMObsOtelExporter: Converting ${this._buffer.length} spans to OTEL
|
|
67
|
+
getLogger().debug(`LLMObsOtelExporter: Converting ${this._buffer.length} spans to OTEL`);
|
|
148
68
|
for (const spanEvent of this._buffer) {
|
|
149
|
-
|
|
150
|
-
self.emitFullFidelitySpan(spanEvent);
|
|
151
|
-
}
|
|
152
|
-
catch (err) {
|
|
153
|
-
getLogger().error(`LLMObsOtelExporter: Failed to convert span: ${err instanceof Error ? err.message : String(err)}`);
|
|
154
|
-
}
|
|
69
|
+
self.convertToOtelSpan(spanEvent);
|
|
155
70
|
}
|
|
156
71
|
}
|
|
157
72
|
// Clear buffer - don't send to Datadog
|
|
158
73
|
this._buffer = [];
|
|
159
74
|
this._bufferSize = 0;
|
|
75
|
+
getLogger().debug("LLMObsOtelExporter: Spans converted to OTEL, dropped from Datadog export");
|
|
160
76
|
};
|
|
161
|
-
getLogger().info("LLMObsOtelExporter:
|
|
77
|
+
getLogger().info("LLMObsOtelExporter: Successfully initialized for CLOUD_PREM mode");
|
|
162
78
|
}
|
|
163
79
|
/**
|
|
164
|
-
*
|
|
165
|
-
*
|
|
166
|
-
* This method includes ALL data - the Collector is responsible for
|
|
167
|
-
* sanitizing and routing to the appropriate tier.
|
|
168
|
-
*
|
|
169
|
-
* Attributes emitted (gen_ai.* only, per v0.3.0 contract):
|
|
170
|
-
* - gen_ai.system (provider)
|
|
171
|
-
* - gen_ai.request.model
|
|
172
|
-
* - gen_ai.operation.name
|
|
173
|
-
* - gen_ai.usage.* (token counts)
|
|
174
|
-
* - gen_ai.request.status
|
|
175
|
-
* - gen_ai.client.duration_ms
|
|
176
|
-
* - gen_ai.error.category
|
|
177
|
-
* - gen_ai.response.finish_reasons
|
|
178
|
-
* - gen_ai.client.time_to_first_token
|
|
179
|
-
*
|
|
180
|
-
* Identity attributes (Collector will hash for Tier 2):
|
|
181
|
-
* - user-email
|
|
182
|
-
* - organization-id
|
|
183
|
-
* - application-id
|
|
184
|
-
* - session.id
|
|
80
|
+
* Convert an LLMObs span event to an OTEL span.
|
|
185
81
|
*
|
|
186
|
-
*
|
|
187
|
-
* -
|
|
188
|
-
* - llmobs
|
|
82
|
+
* The span is created with:
|
|
83
|
+
* - Correct timing (start time and duration from original span)
|
|
84
|
+
* - All LLMObs data as llmobs.* attributes
|
|
85
|
+
* - Model info, input/output, metadata, and metrics preserved
|
|
189
86
|
*/
|
|
190
|
-
|
|
87
|
+
convertToOtelSpan(event) {
|
|
191
88
|
const spanKind = event.meta["span.kind"] || "unknown";
|
|
192
89
|
const otelKind = spanKind === "llm" ? SpanKind.CLIENT : SpanKind.INTERNAL;
|
|
193
90
|
// Convert nanoseconds to milliseconds for OTEL
|
|
194
91
|
const startTimeMs = event.start_ns / 1e6;
|
|
195
92
|
const endTimeMs = startTimeMs + event.duration / 1e6;
|
|
196
|
-
const durationMs = event.duration / 1e6;
|
|
197
|
-
// Map LLMObs span kind to OTEL span name pattern
|
|
198
|
-
const spanName = this.mapToSpanName(event.name, spanKind);
|
|
199
|
-
// Build FULL-FIDELITY attributes using gen_ai.* ONLY
|
|
200
93
|
const attributes = {
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
"
|
|
205
|
-
"
|
|
206
|
-
"
|
|
207
|
-
//
|
|
208
|
-
"
|
|
209
|
-
|
|
210
|
-
"gen_ai.client.duration_ms": Math.round(durationMs),
|
|
211
|
-
// === Token metrics (gen_ai.usage.*) ===
|
|
212
|
-
...this.extractTokenMetrics(event.metrics),
|
|
213
|
-
// === Identity from tags (Collector will hash for Tier 2) ===
|
|
214
|
-
...this.extractIdentityFromTags(event.tags),
|
|
215
|
-
// === Full content (Collector will strip for Tier 2, preserve for Tier 3) ===
|
|
216
|
-
"llmobs.input": event.meta.input
|
|
217
|
-
? this.truncateAttribute(this.safeStringify(event.meta.input))
|
|
218
|
-
: undefined,
|
|
219
|
-
"llmobs.output": event.meta.output
|
|
220
|
-
? this.truncateAttribute(this.safeStringify(event.meta.output))
|
|
221
|
-
: undefined,
|
|
94
|
+
"llmobs.trace_id": event.trace_id,
|
|
95
|
+
"llmobs.span_id": event.span_id,
|
|
96
|
+
"llmobs.parent_id": event.parent_id,
|
|
97
|
+
"llmobs.span_kind": spanKind,
|
|
98
|
+
"llmobs.status": event.status,
|
|
99
|
+
"llmobs.session_id": event.session_id,
|
|
100
|
+
// Model info
|
|
101
|
+
"llmobs.model_name": event.meta.model_name,
|
|
102
|
+
"llmobs.model_provider": event.meta.model_provider,
|
|
222
103
|
};
|
|
223
|
-
//
|
|
224
|
-
|
|
225
|
-
|
|
226
|
-
|
|
227
|
-
|
|
228
|
-
|
|
229
|
-
|
|
230
|
-
|
|
231
|
-
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
104
|
+
// Input/output as JSON (truncated to prevent huge attributes)
|
|
105
|
+
// Using safeJsonStringify to handle circular references and broken toJSON methods
|
|
106
|
+
if (event.meta.input !== undefined) {
|
|
107
|
+
const inputJson = safeJsonStringify(event.meta.input);
|
|
108
|
+
attributes["llmobs.input"] =
|
|
109
|
+
inputJson.length > MAX_IO_LENGTH
|
|
110
|
+
? inputJson.slice(0, MAX_IO_LENGTH) + "..."
|
|
111
|
+
: inputJson;
|
|
112
|
+
}
|
|
113
|
+
if (event.meta.output !== undefined) {
|
|
114
|
+
const outputJson = safeJsonStringify(event.meta.output);
|
|
115
|
+
attributes["llmobs.output"] =
|
|
116
|
+
outputJson.length > MAX_IO_LENGTH
|
|
117
|
+
? outputJson.slice(0, MAX_IO_LENGTH) + "..."
|
|
118
|
+
: outputJson;
|
|
119
|
+
}
|
|
120
|
+
// Metadata as JSON
|
|
121
|
+
if (event.meta.metadata) {
|
|
122
|
+
attributes["llmobs.metadata"] = safeJsonStringify(event.meta.metadata);
|
|
237
123
|
}
|
|
238
124
|
// Create the OTEL span
|
|
239
|
-
const otelSpan = this.otelTracer.startSpan(
|
|
125
|
+
const otelSpan = this.otelTracer.startSpan(event.name, {
|
|
240
126
|
kind: otelKind,
|
|
241
127
|
startTime: startTimeMs,
|
|
242
128
|
attributes: this.filterUndefined(attributes),
|
|
243
129
|
});
|
|
244
|
-
//
|
|
245
|
-
if (event.
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
});
|
|
249
|
-
}
|
|
250
|
-
// End span with correct end time
|
|
251
|
-
otelSpan.end(endTimeMs);
|
|
252
|
-
getLogger().debug(`LLMObsOtelExporter: Emitted span ${spanName} (${spanKind})`);
|
|
253
|
-
}
|
|
254
|
-
/**
|
|
255
|
-
* Map LLMObs span name to contract-defined span pattern.
|
|
256
|
-
* Uses gen_ai.* naming per v0.3.0 contract.
|
|
257
|
-
*/
|
|
258
|
-
mapToSpanName(originalName, spanKind) {
|
|
259
|
-
// Map to contract-defined span names (gen_ai.* per v0.3.0)
|
|
260
|
-
if (spanKind === "llm") {
|
|
261
|
-
return "gen_ai.request";
|
|
262
|
-
}
|
|
263
|
-
if (spanKind === "tool") {
|
|
264
|
-
return "gen_ai.tool_call";
|
|
265
|
-
}
|
|
266
|
-
// Map ai.streamText before the generic workflow/task handler,
|
|
267
|
-
// since these spans may have spanKind "task" and would otherwise
|
|
268
|
-
// be caught by the block below.
|
|
269
|
-
if (originalName === "ai.streamText") {
|
|
270
|
-
return "gen_ai.stream";
|
|
271
|
-
}
|
|
272
|
-
if (originalName === "ai.streamText.step") {
|
|
273
|
-
return "gen_ai.stream.step";
|
|
274
|
-
}
|
|
275
|
-
if (spanKind === "workflow" || spanKind === "task") {
|
|
276
|
-
// Clark session spans
|
|
277
|
-
if (originalName.includes("clark") || originalName.includes("Clark")) {
|
|
278
|
-
return "clark.session";
|
|
279
|
-
}
|
|
280
|
-
return originalName.startsWith("ai.")
|
|
281
|
-
? originalName
|
|
282
|
-
: `ai.${originalName}`;
|
|
283
|
-
}
|
|
284
|
-
return originalName;
|
|
285
|
-
}
|
|
286
|
-
/**
|
|
287
|
-
* Extract token metrics with gen_ai.usage.* naming.
|
|
288
|
-
*/
|
|
289
|
-
extractTokenMetrics(metrics) {
|
|
290
|
-
if (!metrics)
|
|
291
|
-
return {};
|
|
292
|
-
const result = {};
|
|
293
|
-
// Input tokens
|
|
294
|
-
const inputTokens = metrics.input_tokens ??
|
|
295
|
-
metrics.inputTokens ??
|
|
296
|
-
metrics.prompt_tokens ??
|
|
297
|
-
metrics.promptTokens;
|
|
298
|
-
if (inputTokens !== undefined) {
|
|
299
|
-
result["gen_ai.usage.input_tokens"] = inputTokens;
|
|
300
|
-
}
|
|
301
|
-
// Output tokens
|
|
302
|
-
const outputTokens = metrics.output_tokens ??
|
|
303
|
-
metrics.outputTokens ??
|
|
304
|
-
metrics.completion_tokens ??
|
|
305
|
-
metrics.completionTokens;
|
|
306
|
-
if (outputTokens !== undefined) {
|
|
307
|
-
result["gen_ai.usage.output_tokens"] = outputTokens;
|
|
308
|
-
}
|
|
309
|
-
// Total tokens
|
|
310
|
-
const totalTokens = metrics.total_tokens ??
|
|
311
|
-
metrics.totalTokens ??
|
|
312
|
-
(inputTokens !== undefined && outputTokens !== undefined
|
|
313
|
-
? inputTokens + outputTokens
|
|
314
|
-
: undefined);
|
|
315
|
-
if (totalTokens !== undefined) {
|
|
316
|
-
result["gen_ai.usage.total_tokens"] = totalTokens;
|
|
317
|
-
}
|
|
318
|
-
// Reasoning tokens (o1-style models)
|
|
319
|
-
const reasoningTokens = metrics.reasoning_tokens ?? metrics.reasoningTokens;
|
|
320
|
-
if (reasoningTokens !== undefined) {
|
|
321
|
-
result["gen_ai.usage.reasoning_tokens"] = reasoningTokens;
|
|
322
|
-
}
|
|
323
|
-
// Cached tokens
|
|
324
|
-
const cachedTokens = metrics.cached_tokens ??
|
|
325
|
-
metrics.cachedTokens ??
|
|
326
|
-
metrics.cache_read_tokens ??
|
|
327
|
-
metrics.cacheReadTokens;
|
|
328
|
-
if (cachedTokens !== undefined) {
|
|
329
|
-
result["gen_ai.usage.cached_tokens"] = cachedTokens;
|
|
330
|
-
}
|
|
331
|
-
return result;
|
|
332
|
-
}
|
|
333
|
-
/**
|
|
334
|
-
* Extract identity attributes from tags.
|
|
335
|
-
* These will be hashed by the Collector for Tier 2.
|
|
336
|
-
*/
|
|
337
|
-
extractIdentityFromTags(tags) {
|
|
338
|
-
const result = {};
|
|
339
|
-
for (const tag of tags) {
|
|
340
|
-
const colonIndex = tag.indexOf(":");
|
|
341
|
-
if (colonIndex === -1)
|
|
342
|
-
continue;
|
|
343
|
-
const key = tag.slice(0, colonIndex);
|
|
344
|
-
const value = tag.slice(colonIndex + 1);
|
|
345
|
-
// Map known identity tags
|
|
346
|
-
switch (key) {
|
|
347
|
-
case "user_email":
|
|
348
|
-
case "userEmail":
|
|
349
|
-
case "user.email":
|
|
350
|
-
result["user-email"] = value;
|
|
351
|
-
break;
|
|
352
|
-
case "org_id":
|
|
353
|
-
case "orgId":
|
|
354
|
-
case "org.id":
|
|
355
|
-
case "organization_id":
|
|
356
|
-
case "organizationId":
|
|
357
|
-
result["organization-id"] = value;
|
|
358
|
-
break;
|
|
359
|
-
case "app_id":
|
|
360
|
-
case "appId":
|
|
361
|
-
case "app.id":
|
|
362
|
-
case "application_id":
|
|
363
|
-
case "applicationId":
|
|
364
|
-
result["application-id"] = value;
|
|
365
|
-
break;
|
|
366
|
-
case "session_id":
|
|
367
|
-
case "sessionId":
|
|
368
|
-
result["session.id"] = value;
|
|
369
|
-
break;
|
|
370
|
-
default:
|
|
371
|
-
// Only pass through explicitly known identity-related tags
|
|
372
|
-
break;
|
|
373
|
-
}
|
|
374
|
-
}
|
|
375
|
-
return result;
|
|
376
|
-
}
|
|
377
|
-
/**
|
|
378
|
-
* Normalize provider to OTEL gen_ai.system canonical names.
|
|
379
|
-
*/
|
|
380
|
-
normalizeSystem(provider) {
|
|
381
|
-
if (!provider)
|
|
382
|
-
return undefined;
|
|
383
|
-
const trimmed = provider.trim();
|
|
384
|
-
if (!trimmed)
|
|
385
|
-
return undefined;
|
|
386
|
-
const normalized = trimmed.toLowerCase().replace(/[-_\s]/g, "_");
|
|
387
|
-
return GENAI_SYSTEM_MAPPING[normalized] || trimmed.toLowerCase();
|
|
388
|
-
}
|
|
389
|
-
/**
|
|
390
|
-
* Extract operation name from event.
|
|
391
|
-
* Maps span kind to OTEL gen_ai.operation.name values.
|
|
392
|
-
*/
|
|
393
|
-
extractOperationName(event) {
|
|
394
|
-
const spanKind = event.meta["span.kind"] || "";
|
|
395
|
-
const name = event.name.toLowerCase();
|
|
396
|
-
// Map span kind
|
|
397
|
-
if (spanKind === "tool")
|
|
398
|
-
return "execute_tool";
|
|
399
|
-
if (spanKind === "workflow" || spanKind === "agent")
|
|
400
|
-
return "invoke_agent";
|
|
401
|
-
if (spanKind === "embedding")
|
|
402
|
-
return "embeddings";
|
|
403
|
-
// Infer from span name
|
|
404
|
-
if (name.includes("embed"))
|
|
405
|
-
return "embeddings";
|
|
406
|
-
if (name.includes("agent") || name.includes("clark"))
|
|
407
|
-
return "invoke_agent";
|
|
408
|
-
if (name.includes("tool"))
|
|
409
|
-
return "execute_tool";
|
|
410
|
-
if (name.includes("complete") && !name.includes("chat"))
|
|
411
|
-
return "text_completion";
|
|
412
|
-
// Default to chat
|
|
413
|
-
return "chat";
|
|
414
|
-
}
|
|
415
|
-
/**
|
|
416
|
-
* Extract error category from event metadata.
|
|
417
|
-
*/
|
|
418
|
-
extractErrorCategory(event) {
|
|
419
|
-
// Check metadata for explicit error category
|
|
420
|
-
const metadata = event.meta.metadata;
|
|
421
|
-
if (metadata) {
|
|
422
|
-
const category = metadata.errorCategory;
|
|
423
|
-
if (category && this.isValidErrorCategory(category)) {
|
|
424
|
-
return category;
|
|
425
|
-
}
|
|
426
|
-
}
|
|
427
|
-
// Check tags for error category
|
|
428
|
-
for (const tag of event.tags) {
|
|
429
|
-
if (tag.startsWith("errorCategory:")) {
|
|
430
|
-
const category = tag.slice("errorCategory:".length);
|
|
431
|
-
if (this.isValidErrorCategory(category)) {
|
|
432
|
-
return category;
|
|
433
|
-
}
|
|
434
|
-
}
|
|
435
|
-
if (tag === "wasAborted:true") {
|
|
436
|
-
return "aborted";
|
|
437
|
-
}
|
|
438
|
-
}
|
|
439
|
-
return "unknown";
|
|
440
|
-
}
|
|
441
|
-
/**
|
|
442
|
-
* Extract finish reason from event.
|
|
443
|
-
*/
|
|
444
|
-
extractFinishReason(event) {
|
|
445
|
-
const metadata = event.meta.metadata;
|
|
446
|
-
if (metadata) {
|
|
447
|
-
const reason = metadata.finishReason;
|
|
448
|
-
if (reason && this.isValidFinishReason(reason)) {
|
|
449
|
-
return reason;
|
|
130
|
+
// Add metrics as attributes
|
|
131
|
+
if (event.metrics) {
|
|
132
|
+
for (const [key, value] of Object.entries(event.metrics)) {
|
|
133
|
+
otelSpan.setAttribute(`llmobs.metrics.${key}`, value);
|
|
450
134
|
}
|
|
451
135
|
}
|
|
452
|
-
//
|
|
136
|
+
// Add tags as attributes
|
|
453
137
|
for (const tag of event.tags) {
|
|
454
|
-
|
|
455
|
-
|
|
456
|
-
|
|
457
|
-
|
|
458
|
-
}
|
|
459
|
-
}
|
|
460
|
-
}
|
|
461
|
-
return undefined;
|
|
462
|
-
}
|
|
463
|
-
/**
|
|
464
|
-
* Extract time to first token from event metadata.
|
|
465
|
-
* Returns value in seconds (OTEL convention).
|
|
466
|
-
*/
|
|
467
|
-
extractTimeToFirstToken(event) {
|
|
468
|
-
const metadata = event.meta.metadata;
|
|
469
|
-
if (!metadata)
|
|
470
|
-
return undefined;
|
|
471
|
-
// Check for timeToFirstToken (in seconds, from Datadog LLMObs)
|
|
472
|
-
const ttftSeconds = metadata.timeToFirstToken;
|
|
473
|
-
if (typeof ttftSeconds === "number" && ttftSeconds > 0) {
|
|
474
|
-
return ttftSeconds;
|
|
475
|
-
}
|
|
476
|
-
// Check for timeToFirstTokenMs (in milliseconds)
|
|
477
|
-
const ttftMs = metadata.timeToFirstTokenMs;
|
|
478
|
-
if (typeof ttftMs === "number" && ttftMs > 0) {
|
|
479
|
-
return ttftMs / 1000;
|
|
480
|
-
}
|
|
481
|
-
// Check metrics for timeToFirstToken
|
|
482
|
-
if (event.metrics) {
|
|
483
|
-
const metricsttft = event.metrics.timeToFirstToken;
|
|
484
|
-
if (typeof metricsttft === "number" && metricsttft > 0) {
|
|
485
|
-
return metricsttft;
|
|
138
|
+
const colonIndex = tag.indexOf(":");
|
|
139
|
+
if (colonIndex !== -1) {
|
|
140
|
+
const key = tag.slice(0, colonIndex);
|
|
141
|
+
const value = tag.slice(colonIndex + 1);
|
|
142
|
+
otelSpan.setAttribute(`llmobs.tag.${key}`, value);
|
|
486
143
|
}
|
|
487
144
|
}
|
|
488
|
-
|
|
489
|
-
|
|
490
|
-
|
|
491
|
-
* Safely stringify a value for span attributes.
|
|
492
|
-
*/
|
|
493
|
-
safeStringify(value) {
|
|
494
|
-
if (typeof value === "string")
|
|
495
|
-
return value;
|
|
496
|
-
try {
|
|
497
|
-
return JSON.stringify(value);
|
|
498
|
-
}
|
|
499
|
-
catch {
|
|
500
|
-
return String(value);
|
|
145
|
+
// Set error status if needed
|
|
146
|
+
if (event.status === "error") {
|
|
147
|
+
otelSpan.setAttribute("error", true);
|
|
501
148
|
}
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
505
|
-
* Prevents OTEL Collector rejection and memory pressure from very large values.
|
|
506
|
-
*/
|
|
507
|
-
truncateAttribute(value) {
|
|
508
|
-
if (value.length <= MAX_ATTRIBUTE_LENGTH)
|
|
509
|
-
return value;
|
|
510
|
-
return (value.slice(0, MAX_ATTRIBUTE_LENGTH) +
|
|
511
|
-
`... [truncated ${value.length - MAX_ATTRIBUTE_LENGTH} chars]`);
|
|
512
|
-
}
|
|
513
|
-
/**
|
|
514
|
-
* Validate error category is in the allowed enum.
|
|
515
|
-
*/
|
|
516
|
-
isValidErrorCategory(category) {
|
|
517
|
-
return VALID_ERROR_CATEGORIES.has(category);
|
|
518
|
-
}
|
|
519
|
-
/**
|
|
520
|
-
* Validate finish reason is in the allowed enum.
|
|
521
|
-
*/
|
|
522
|
-
isValidFinishReason(reason) {
|
|
523
|
-
return VALID_FINISH_REASONS.has(reason);
|
|
149
|
+
// End span with correct end time
|
|
150
|
+
otelSpan.end(endTimeMs);
|
|
151
|
+
getLogger().debug(`LLMObsOtelExporter: Converted span ${event.name} (${spanKind})`);
|
|
524
152
|
}
|
|
525
153
|
/**
|
|
526
154
|
* Filter out undefined values from attributes object.
|
|
@@ -549,9 +177,6 @@ export class LLMObsOtelExporter {
|
|
|
549
177
|
/**
|
|
550
178
|
* Singleton instance of the LLMObs-to-OTEL exporter.
|
|
551
179
|
* Call llmobsOtelExporter.init() in CLOUD_PREM mode to enable.
|
|
552
|
-
*
|
|
553
|
-
* NOTE: This exporter emits FULL-FIDELITY spans.
|
|
554
|
-
* The OTEL Collector handles tier separation (hashing, stripping, routing).
|
|
555
180
|
*/
|
|
556
181
|
export const llmobsOtelExporter = new LLMObsOtelExporter();
|
|
557
182
|
//# sourceMappingURL=otel-exporter.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otel-exporter.js","sourceRoot":"","sources":["../../../src/ai-service/llmobs/otel-exporter.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"otel-exporter.js","sourceRoot":"","sources":["../../../src/ai-service/llmobs/otel-exporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../../../src/ai-service/llmobs/tracer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"tracer.d.ts","sourceRoot":"","sources":["../../../src/ai-service/llmobs/tracer.ts"],"names":[],"mappings":"AAQA,OAAO,KAAK,EACV,kBAAkB,EAElB,uBAAuB,EACvB,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,yBAAyB,EACzB,gBAAgB,EAChB,UAAU,EAEX,MAAM,YAAY,CAAC;AAkCpB;;;;;GAKG;AAEH,qBAAa,YAAY;IACvB,OAAO,CAAC,WAAW,CAAsB;IACzC,OAAO,CAAC,YAAY,CAAqD;IACzE,OAAO,CAAC,UAAU,CAA8B;IAChD,OAAO,CAAC,iBAAiB,CAAmB;IAC5C,OAAO,CAAC,MAAM,CAAC,SAAS,CAAoC;IAErD,QAAQ,CAAC,EAAE,UAAU,CAAC;IAE7B,SAAS,aAAa,EACpB,iBAA2B,GAC5B,GAAE;QACD,iBAAiB,CAAC,EAAE,gBAAgB,CAAC;KACjC;IAMN,WAAkB,QAAQ,IAAI,YAAY,CAEzC;IAED;;;;OAIG;IACI,oBAAoB,CAAC,MAAM,EAAE,gBAAgB;IAIpD;;;OAGG;IACI,KAAK,CAAC,CAAC,EACZ,OAAO,EAAE,sBAAsB,EAC/B,EAAE,EAAE,CAAC,IAAI,EAAE,UAAU,KAAK,CAAC,GAC1B,CAAC;IAIJ;;;OAGG;IACI,IAAI,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAC3C,OAAO,EAAE,yBAAyB,EAClC,EAAE,EAAE,CAAC,GACJ,CAAC;IAQG,eAAe,CAAC,OAAO,EAAE,uBAAuB,GAAG,UAAU;IAQpE;;OAEG;IACI,KAAK,IAAI,IAAI;IAQpB;;;OAGG;IACI,UAAU,CAAC,IAAI,CAAC,EAAE,UAAU,GAAG,kBAAkB;IAgBxD;;;OAGG;IACI,QAAQ,CAAC,WAAW,EAAE,uBAAuB,GAAG,IAAI;IACpD,QAAQ,CAAC,IAAI,EAAE,UAAU,EAAE,WAAW,EAAE,uBAAuB,GAAG,IAAI;IAoC7E,kEAAkE;IAC3D,gBAAgB,CACrB,WAAW,EAAE,kBAAkB,EAC/B,MAAM,EAAE,uBAAuB,GAC9B,IAAI;IAIP;;;OAGG;IACI,QAAQ,CAAC,CAAC,SAAS,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,GAAG,EAC/C,OAAO,EAAE,yBAAyB,GACjC,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC;IAMnB,wEAAwE;IACjE,MAAM,IAAI,UAAU,GAAG,SAAS;IAIvC;;;OAGG;IACI,aAAa,CAAC,IAAI,EAAE;QAAE,CAAC,GAAG,EAAE,MAAM,GAAG,GAAG,CAAA;KAAE;IAIjD;;;OAGG;IACH,OAAO,CAAC,QAAQ;IAiChB;;;OAGG;IACH,OAAO,CAAC,MAAM;IA4Dd,OAAO,CAAC,MAAM,CAAC,cAAc;IAkB7B,2EAA2E;IAC3E,OAAO,CAAC,QAAQ;IAahB,OAAO,KAAK,UAAU,GAErB;IAED,OAAO,CAAC,MAAM,CAAC,OAAO,CAAsC;IAC5D,OAAO,CAAC,MAAM,CAAC,wBAAwB,CAAS;IAChD,OAAO,CAAC,MAAM,CAAC,kBAAkB,CAAwB;IAEzD,OAAO,KAAK,MAAM,GA6BjB;IAED;;;;;OAKG;IACH,OAAO,CAAC,MAAM,CAAC,WAAW;IAqB1B,OAAO,CAAC,QAAQ;IAShB,OAAO,CAAC,MAAM;IAQd;;;OAGG;IACH,OAAO,CAAC,MAAM,CAAC,qBAAqB;IAkCpC,gEAAgE;IAChE,OAAO,CAAC,MAAM,CAAC,YAAY;IAI3B,kFAAkF;IAClF,OAAO,CAAC,MAAM,CAAC,0BAA0B;CAsC1C;AAsCD,eAAO,MAAM,MAAM,cAAwB,CAAC;AAC5C,eAAe,MAAM,CAAC"}
|