@pellux/goodvibes-sdk 0.21.30 → 0.21.34
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/_internal/contracts/zod-schemas/accounts.d.ts +9 -9
- package/dist/_internal/contracts/zod-schemas/auth.d.ts +1 -1
- package/dist/_internal/daemon/context.d.ts +1 -0
- package/dist/_internal/daemon/context.d.ts.map +1 -1
- package/dist/_internal/daemon/error-response.js +22 -22
- package/dist/_internal/daemon/integration-route-types.d.ts +2 -1
- package/dist/_internal/daemon/integration-route-types.d.ts.map +1 -1
- package/dist/_internal/daemon/knowledge-routes.js +5 -5
- package/dist/_internal/daemon/media-routes.d.ts.map +1 -1
- package/dist/_internal/daemon/media-routes.js +4 -3
- package/dist/_internal/daemon/operator.d.ts +1 -1
- package/dist/_internal/daemon/operator.d.ts.map +1 -1
- package/dist/_internal/daemon/operator.js +2 -0
- package/dist/_internal/daemon/runtime-route-types.d.ts +2 -1
- package/dist/_internal/daemon/runtime-route-types.d.ts.map +1 -1
- package/dist/_internal/daemon/runtime-routes.d.ts +1 -1
- package/dist/_internal/daemon/runtime-routes.d.ts.map +1 -1
- package/dist/_internal/daemon/runtime-routes.js +1 -0
- package/dist/_internal/daemon/telemetry-routes.d.ts.map +1 -1
- package/dist/_internal/daemon/telemetry-routes.js +13 -12
- package/dist/_internal/errors/daemon-error-contract.d.ts +17 -0
- package/dist/_internal/errors/daemon-error-contract.d.ts.map +1 -1
- package/dist/_internal/errors/daemon-error-contract.js +17 -1
- package/dist/_internal/errors/index.d.ts +2 -1
- package/dist/_internal/errors/index.d.ts.map +1 -1
- package/dist/_internal/errors/index.js +1 -0
- package/dist/_internal/platform/artifacts/store.d.ts.map +1 -1
- package/dist/_internal/platform/artifacts/store.js +2 -1
- package/dist/_internal/platform/automation/scheduler-capacity.d.ts +29 -0
- package/dist/_internal/platform/automation/scheduler-capacity.d.ts.map +1 -0
- package/dist/_internal/platform/automation/scheduler-capacity.js +31 -0
- package/dist/_internal/platform/channels/delivery/shared.d.ts.map +1 -1
- package/dist/_internal/platform/channels/delivery/shared.js +3 -2
- package/dist/_internal/platform/channels/delivery/strategies-bridge.d.ts.map +1 -1
- package/dist/_internal/platform/channels/delivery/strategies-bridge.js +3 -2
- package/dist/_internal/platform/channels/delivery/strategies-core.d.ts.map +1 -1
- package/dist/_internal/platform/channels/delivery/strategies-core.js +5 -4
- package/dist/_internal/platform/channels/delivery/strategies-enterprise.d.ts.map +1 -1
- package/dist/_internal/platform/channels/delivery/strategies-enterprise.js +4 -3
- package/dist/_internal/platform/config/manager.d.ts.map +1 -1
- package/dist/_internal/platform/config/manager.js +2 -1
- package/dist/_internal/platform/config/schema-domain-runtime.d.ts +6 -0
- package/dist/_internal/platform/config/schema-domain-runtime.d.ts.map +1 -1
- package/dist/_internal/platform/config/schema-domain-runtime.js +22 -0
- package/dist/_internal/platform/config/schema-types.d.ts +16 -2
- package/dist/_internal/platform/config/schema-types.d.ts.map +1 -1
- package/dist/_internal/platform/config/schema.d.ts.map +1 -1
- package/dist/_internal/platform/config/schema.js +1 -0
- package/dist/_internal/platform/config/service-registry.d.ts.map +1 -1
- package/dist/_internal/platform/config/service-registry.js +2 -1
- package/dist/_internal/platform/control-plane/gateway-web-ui.d.ts +0 -1
- package/dist/_internal/platform/control-plane/gateway-web-ui.d.ts.map +1 -1
- package/dist/_internal/platform/control-plane/gateway-web-ui.js +7 -6
- package/dist/_internal/platform/control-plane/session-broker.d.ts.map +1 -1
- package/dist/_internal/platform/control-plane/session-broker.js +12 -4
- package/dist/_internal/platform/core/orchestrator-tool-runtime.d.ts.map +1 -1
- package/dist/_internal/platform/core/orchestrator-tool-runtime.js +6 -6
- package/dist/_internal/platform/core/orchestrator-turn-loop.d.ts.map +1 -1
- package/dist/_internal/platform/core/orchestrator-turn-loop.js +10 -2
- package/dist/_internal/platform/daemon/facade-composition.d.ts +4 -131
- package/dist/_internal/platform/daemon/facade-composition.d.ts.map +1 -1
- package/dist/_internal/platform/daemon/facade-composition.js +9 -10
- package/dist/_internal/platform/daemon/facade-types.d.ts +141 -0
- package/dist/_internal/platform/daemon/facade-types.d.ts.map +1 -0
- package/dist/_internal/platform/daemon/facade-types.js +1 -0
- package/dist/_internal/platform/daemon/http/rate-limiter.d.ts +23 -0
- package/dist/_internal/platform/daemon/http/rate-limiter.d.ts.map +1 -0
- package/dist/_internal/platform/daemon/http/rate-limiter.js +71 -0
- package/dist/_internal/platform/daemon/http/router-route-contexts.d.ts.map +1 -1
- package/dist/_internal/platform/daemon/http/router-route-contexts.js +2 -1
- package/dist/_internal/platform/daemon/http/router.d.ts.map +1 -1
- package/dist/_internal/platform/daemon/http/router.js +70 -65
- package/dist/_internal/platform/daemon/http/runtime-route-types.d.ts.map +1 -1
- package/dist/_internal/platform/daemon/http-listener.d.ts +1 -0
- package/dist/_internal/platform/daemon/http-listener.d.ts.map +1 -1
- package/dist/_internal/platform/daemon/http-listener.js +53 -73
- package/dist/_internal/platform/daemon/surface-delivery.d.ts.map +1 -1
- package/dist/_internal/platform/daemon/surface-delivery.js +6 -5
- package/dist/_internal/platform/discovery/mcp-scanner.d.ts.map +1 -1
- package/dist/_internal/platform/discovery/mcp-scanner.js +28 -22
- package/dist/_internal/platform/discovery/scanner.d.ts.map +1 -1
- package/dist/_internal/platform/discovery/scanner.js +38 -22
- package/dist/_internal/platform/export/session-export.d.ts +0 -1
- package/dist/_internal/platform/export/session-export.d.ts.map +1 -1
- package/dist/_internal/platform/export/session-export.js +1 -33
- package/dist/_internal/platform/hooks/runners/http.d.ts.map +1 -1
- package/dist/_internal/platform/hooks/runners/http.js +2 -1
- package/dist/_internal/platform/integrations/delivery.d.ts +3 -1
- package/dist/_internal/platform/integrations/delivery.d.ts.map +1 -1
- package/dist/_internal/platform/integrations/delivery.js +3 -2
- package/dist/_internal/platform/integrations/discord.d.ts.map +1 -1
- package/dist/_internal/platform/integrations/discord.js +6 -5
- package/dist/_internal/platform/integrations/ntfy.d.ts.map +1 -1
- package/dist/_internal/platform/integrations/ntfy.js +3 -2
- package/dist/_internal/platform/integrations/webhooks.d.ts.map +1 -1
- package/dist/_internal/platform/integrations/webhooks.js +2 -1
- package/dist/_internal/platform/intelligence/lsp/binary-downloader.d.ts.map +1 -1
- package/dist/_internal/platform/intelligence/lsp/binary-downloader.js +4 -3
- package/dist/_internal/platform/knowledge/store.d.ts.map +1 -1
- package/dist/_internal/platform/knowledge/store.js +50 -25
- package/dist/_internal/platform/mcp/client.d.ts.map +1 -1
- package/dist/_internal/platform/mcp/client.js +3 -2
- package/dist/_internal/platform/media/builtin-generation-providers.d.ts.map +1 -1
- package/dist/_internal/platform/media/builtin-generation-providers.js +4 -3
- package/dist/_internal/platform/media/builtin-image-understanding.d.ts.map +1 -1
- package/dist/_internal/platform/media/builtin-image-understanding.js +5 -4
- package/dist/_internal/platform/providers/anthropic-compat.d.ts.map +1 -1
- package/dist/_internal/platform/providers/anthropic-compat.js +5 -3
- package/dist/_internal/platform/providers/anthropic.d.ts.map +1 -1
- package/dist/_internal/platform/providers/anthropic.js +10 -7
- package/dist/_internal/platform/providers/builtin-catalog.d.ts.map +1 -1
- package/dist/_internal/platform/providers/builtin-catalog.js +3 -2
- package/dist/_internal/platform/providers/catalogue.d.ts +56 -0
- package/dist/_internal/platform/providers/catalogue.d.ts.map +1 -0
- package/dist/_internal/platform/providers/catalogue.js +111 -0
- package/dist/_internal/platform/providers/context-discovery.d.ts.map +1 -1
- package/dist/_internal/platform/providers/context-discovery.js +2 -1
- package/dist/_internal/platform/providers/credentials.d.ts +12 -0
- package/dist/_internal/platform/providers/credentials.d.ts.map +1 -0
- package/dist/_internal/platform/providers/credentials.js +54 -0
- package/dist/_internal/platform/providers/gemini.d.ts.map +1 -1
- package/dist/_internal/platform/providers/gemini.js +6 -5
- package/dist/_internal/platform/providers/github-copilot.d.ts.map +1 -1
- package/dist/_internal/platform/providers/github-copilot.js +2 -1
- package/dist/_internal/platform/providers/health.d.ts +15 -0
- package/dist/_internal/platform/providers/health.d.ts.map +1 -0
- package/dist/_internal/platform/providers/health.js +32 -0
- package/dist/_internal/platform/providers/llama-cpp.d.ts.map +1 -1
- package/dist/_internal/platform/providers/llama-cpp.js +5 -3
- package/dist/_internal/platform/providers/lm-studio.d.ts.map +1 -1
- package/dist/_internal/platform/providers/lm-studio.js +5 -3
- package/dist/_internal/platform/providers/model-benchmarks.d.ts.map +1 -1
- package/dist/_internal/platform/providers/model-benchmarks.js +2 -1
- package/dist/_internal/platform/providers/model-catalog-cache.d.ts.map +1 -1
- package/dist/_internal/platform/providers/model-catalog-cache.js +2 -1
- package/dist/_internal/platform/providers/model-limits.d.ts.map +1 -1
- package/dist/_internal/platform/providers/model-limits.js +2 -1
- package/dist/_internal/platform/providers/ollama.d.ts.map +1 -1
- package/dist/_internal/platform/providers/ollama.js +5 -3
- package/dist/_internal/platform/providers/openai-codex.d.ts.map +1 -1
- package/dist/_internal/platform/providers/openai-codex.js +4 -2
- package/dist/_internal/platform/providers/openai-compat.d.ts.map +1 -1
- package/dist/_internal/platform/providers/openai-compat.js +3 -2
- package/dist/_internal/platform/providers/provider-not-found-error.d.ts +3 -1
- package/dist/_internal/platform/providers/provider-not-found-error.d.ts.map +1 -1
- package/dist/_internal/platform/providers/provider-not-found-error.js +3 -4
- package/dist/_internal/platform/providers/well-known-endpoints.d.ts +53 -0
- package/dist/_internal/platform/providers/well-known-endpoints.d.ts.map +1 -0
- package/dist/_internal/platform/providers/well-known-endpoints.js +52 -0
- package/dist/_internal/platform/runtime/auth/oauth-core.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/auth/oauth-core.js +2 -1
- package/dist/_internal/platform/runtime/contracts/index.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/contracts/index.js +1 -5
- package/dist/_internal/platform/runtime/contracts/migrations/schemas.d.ts +57 -0
- package/dist/_internal/platform/runtime/contracts/migrations/schemas.d.ts.map +1 -0
- package/dist/_internal/platform/runtime/contracts/migrations/schemas.js +157 -0
- package/dist/_internal/platform/runtime/correlation.d.ts +44 -0
- package/dist/_internal/platform/runtime/correlation.d.ts.map +1 -0
- package/dist/_internal/platform/runtime/correlation.js +40 -0
- package/dist/_internal/platform/runtime/emitters/security.d.ts +32 -0
- package/dist/_internal/platform/runtime/emitters/security.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/emitters/security.js +26 -0
- package/dist/_internal/platform/runtime/emitters/tools.d.ts +11 -2
- package/dist/_internal/platform/runtime/emitters/tools.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/emitters/tools.js +27 -0
- package/dist/_internal/platform/runtime/emitters/transport.d.ts +27 -0
- package/dist/_internal/platform/runtime/emitters/transport.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/emitters/transport.js +19 -0
- package/dist/_internal/platform/runtime/emitters/turn.d.ts +22 -1
- package/dist/_internal/platform/runtime/emitters/turn.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/emitters/turn.js +9 -0
- package/dist/_internal/platform/runtime/events/index.d.ts +45 -0
- package/dist/_internal/platform/runtime/events/index.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/events/index.js +108 -14
- package/dist/_internal/platform/runtime/events/ops.d.ts +8 -0
- package/dist/_internal/platform/runtime/events/ops.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/events/security.d.ts +47 -0
- package/dist/_internal/platform/runtime/events/security.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/events/tools.d.ts +14 -2
- package/dist/_internal/platform/runtime/events/tools.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/events/transport.d.ts +31 -0
- package/dist/_internal/platform/runtime/events/transport.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/events/turn.d.ts +25 -1
- package/dist/_internal/platform/runtime/events/turn.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/events/workspace.d.ts +16 -0
- package/dist/_internal/platform/runtime/events/workspace.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/llm-observability.d.ts +43 -0
- package/dist/_internal/platform/runtime/llm-observability.d.ts.map +1 -0
- package/dist/_internal/platform/runtime/llm-observability.js +107 -0
- package/dist/_internal/platform/runtime/metrics.d.ts +49 -0
- package/dist/_internal/platform/runtime/metrics.d.ts.map +1 -0
- package/dist/_internal/platform/runtime/metrics.js +114 -0
- package/dist/_internal/platform/runtime/ops/control-plane.d.ts +5 -2
- package/dist/_internal/platform/runtime/ops/control-plane.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/ops/control-plane.js +5 -4
- package/dist/_internal/platform/runtime/permissions/divergence-dashboard.d.ts +3 -1
- package/dist/_internal/platform/runtime/permissions/divergence-dashboard.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/permissions/divergence-dashboard.js +3 -2
- package/dist/_internal/platform/runtime/permissions/policy-loader.d.ts +3 -1
- package/dist/_internal/platform/runtime/permissions/policy-loader.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/permissions/policy-loader.js +3 -2
- package/dist/_internal/platform/runtime/permissions/policy-signer.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/permissions/policy-signer.js +7 -2
- package/dist/_internal/platform/runtime/permissions/simulation.d.ts +3 -1
- package/dist/_internal/platform/runtime/permissions/simulation.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/permissions/simulation.js +3 -2
- package/dist/_internal/platform/runtime/remote/transport-contract.d.ts +14 -2
- package/dist/_internal/platform/runtime/remote/transport-contract.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/remote/transport-contract.js +7 -5
- package/dist/_internal/platform/runtime/store/helpers/reducers/sync.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/store/helpers/reducers/sync.js +12 -1
- package/dist/_internal/platform/runtime/tasks/manager.d.ts +7 -3
- package/dist/_internal/platform/runtime/tasks/manager.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/tasks/manager.js +7 -6
- package/dist/_internal/platform/runtime/telemetry/api-helpers.d.ts +14 -0
- package/dist/_internal/platform/runtime/telemetry/api-helpers.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/telemetry/api-helpers.js +59 -0
- package/dist/_internal/platform/runtime/telemetry/api.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/telemetry/api.js +9 -2
- package/dist/_internal/platform/runtime/telemetry/exporters/otlp.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/telemetry/exporters/otlp.js +19 -6
- package/dist/_internal/platform/runtime/telemetry/exporters/queue.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/telemetry/exporters/queue.js +11 -4
- package/dist/_internal/platform/runtime/telemetry/meter.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/telemetry/meter.js +7 -3
- package/dist/_internal/platform/runtime/telemetry/redaction-config.d.ts +9 -0
- package/dist/_internal/platform/runtime/telemetry/redaction-config.d.ts.map +1 -0
- package/dist/_internal/platform/runtime/telemetry/redaction-config.js +52 -0
- package/dist/_internal/platform/runtime/tools/phases/budget.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/tools/phases/budget.js +3 -2
- package/dist/_internal/platform/runtime/transports/daemon-http-client.d.ts.map +1 -1
- package/dist/_internal/platform/runtime/transports/daemon-http-client.js +138 -17
- package/dist/_internal/platform/scheduler/scheduler.d.ts.map +1 -1
- package/dist/_internal/platform/scheduler/scheduler.js +6 -2
- package/dist/_internal/platform/sessions/manager.d.ts.map +1 -1
- package/dist/_internal/platform/sessions/manager.js +6 -2
- package/dist/_internal/platform/state/memory-embedding-http.d.ts.map +1 -1
- package/dist/_internal/platform/state/memory-embedding-http.js +3 -2
- package/dist/_internal/platform/state/project-index.d.ts.map +1 -1
- package/dist/_internal/platform/state/project-index.js +6 -4
- package/dist/_internal/platform/tools/agent/index.d.ts.map +1 -1
- package/dist/_internal/platform/tools/agent/index.js +2 -1
- package/dist/_internal/platform/tools/analyze/git-modes.d.ts.map +1 -1
- package/dist/_internal/platform/tools/analyze/git-modes.js +2 -1
- package/dist/_internal/platform/tools/edit/core.d.ts.map +1 -1
- package/dist/_internal/platform/tools/edit/core.js +2 -1
- package/dist/_internal/platform/tools/exec/runtime.d.ts.map +1 -1
- package/dist/_internal/platform/tools/exec/runtime.js +3 -2
- package/dist/_internal/platform/tools/fetch/runtime.d.ts.map +1 -1
- package/dist/_internal/platform/tools/fetch/runtime.js +4 -2
- package/dist/_internal/platform/tools/read/index.d.ts.map +1 -1
- package/dist/_internal/platform/tools/read/index.js +2 -1
- package/dist/_internal/platform/tools/registry-tool/index.d.ts.map +1 -1
- package/dist/_internal/platform/tools/registry-tool/index.js +2 -1
- package/dist/_internal/platform/tools/state/index.d.ts.map +1 -1
- package/dist/_internal/platform/tools/state/index.js +2 -1
- package/dist/_internal/platform/tools/task/index.d.ts.map +1 -1
- package/dist/_internal/platform/tools/task/index.js +2 -1
- package/dist/_internal/platform/tools/team/index.d.ts.map +1 -1
- package/dist/_internal/platform/tools/team/index.js +2 -1
- package/dist/_internal/platform/tools/web-search/index.d.ts.map +1 -1
- package/dist/_internal/platform/tools/web-search/index.js +2 -1
- package/dist/_internal/platform/tools/worklist/index.d.ts.map +1 -1
- package/dist/_internal/platform/tools/worklist/index.js +2 -1
- package/dist/_internal/platform/types/errors.d.ts +12 -10
- package/dist/_internal/platform/types/errors.d.ts.map +1 -1
- package/dist/_internal/platform/types/errors.js +21 -20
- package/dist/_internal/platform/utils/error-display.d.ts.map +1 -1
- package/dist/_internal/platform/utils/error-display.js +6 -4
- package/dist/_internal/platform/utils/fetch-with-timeout.d.ts +17 -0
- package/dist/_internal/platform/utils/fetch-with-timeout.d.ts.map +1 -1
- package/dist/_internal/platform/utils/fetch-with-timeout.js +59 -0
- package/dist/_internal/platform/utils/record-coerce.d.ts +11 -0
- package/dist/_internal/platform/utils/record-coerce.d.ts.map +1 -0
- package/dist/_internal/platform/utils/record-coerce.js +12 -0
- package/dist/_internal/platform/utils/redaction.js +1 -1
- package/dist/_internal/platform/utils/ring-buffer.d.ts +54 -0
- package/dist/_internal/platform/utils/ring-buffer.d.ts.map +1 -0
- package/dist/_internal/platform/utils/ring-buffer.js +96 -0
- package/dist/_internal/platform/utils/shell-split.d.ts +11 -0
- package/dist/_internal/platform/utils/shell-split.d.ts.map +1 -0
- package/dist/_internal/platform/utils/shell-split.js +83 -0
- package/dist/_internal/platform/version.js +1 -1
- package/dist/_internal/platform/voice/providers/deepgram.d.ts.map +1 -1
- package/dist/_internal/platform/voice/providers/deepgram.js +2 -1
- package/dist/_internal/platform/voice/providers/elevenlabs.d.ts.map +1 -1
- package/dist/_internal/platform/voice/providers/elevenlabs.js +5 -4
- package/dist/_internal/platform/voice/providers/google.d.ts.map +1 -1
- package/dist/_internal/platform/voice/providers/google.js +5 -4
- package/dist/_internal/platform/voice/providers/microsoft.d.ts.map +1 -1
- package/dist/_internal/platform/voice/providers/microsoft.js +2 -1
- package/dist/_internal/platform/voice/providers/openai.d.ts.map +1 -1
- package/dist/_internal/platform/voice/providers/openai.js +4 -3
- package/dist/_internal/platform/voice/providers/shared.d.ts.map +1 -1
- package/dist/_internal/platform/voice/providers/shared.js +2 -1
- package/dist/_internal/platform/voice/providers/vydra.d.ts.map +1 -1
- package/dist/_internal/platform/voice/providers/vydra.js +3 -2
- package/dist/_internal/platform/watchers/registry.d.ts.map +1 -1
- package/dist/_internal/platform/watchers/registry.js +3 -2
- package/dist/_internal/platform/workflow/trigger-executor.d.ts.map +1 -1
- package/dist/_internal/platform/workflow/trigger-executor.js +5 -3
- package/dist/_internal/platform/workspace/daemon-home.d.ts.map +1 -1
- package/dist/_internal/platform/workspace/daemon-home.js +6 -2
- package/dist/_internal/platform/workspace/workspace-swap-manager.d.ts +1 -0
- package/dist/_internal/platform/workspace/workspace-swap-manager.d.ts.map +1 -1
- package/dist/_internal/platform/workspace/workspace-swap-manager.js +14 -2
- package/package.json +1 -1
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { asRecord, buildStatus, estimateConfidenceFromAvgLogprob, inferFilename, normalizeBaseUrl, readFirstEnv, resolveAudioInput, trimToUndefined, } from './shared.js';
|
|
2
|
+
import { instrumentedFetch } from '../../utils/fetch-with-timeout.js';
|
|
2
3
|
const DEFAULT_ELEVENLABS_STT_MODEL = 'scribe_v2';
|
|
3
4
|
const DEFAULT_ELEVENLABS_REALTIME_MODEL = 'scribe_v2_realtime';
|
|
4
5
|
const ELEVENLABS_SINGLE_USE_TOKEN_TTL_MS = 15 * 60 * 1000;
|
|
@@ -75,7 +76,7 @@ export function createElevenLabsProvider() {
|
|
|
75
76
|
if (!apiKey)
|
|
76
77
|
return [];
|
|
77
78
|
const baseUrl = normalizeBaseUrl(readFirstEnv(baseUrlEnvVars), 'https://api.elevenlabs.io');
|
|
78
|
-
const response = await
|
|
79
|
+
const response = await instrumentedFetch(`${baseUrl}/v1/voices`, {
|
|
79
80
|
headers: { 'xi-api-key': apiKey },
|
|
80
81
|
});
|
|
81
82
|
if (!response.ok)
|
|
@@ -98,7 +99,7 @@ export function createElevenLabsProvider() {
|
|
|
98
99
|
throw new Error('ElevenLabs API key missing');
|
|
99
100
|
const baseUrl = normalizeBaseUrl(readFirstEnv(baseUrlEnvVars), 'https://api.elevenlabs.io');
|
|
100
101
|
const voiceId = request.voiceId?.trim() || 'pMsXgVXv3BLzUgSXRplE';
|
|
101
|
-
const response = await
|
|
102
|
+
const response = await instrumentedFetch(`${baseUrl}/v1/text-to-speech/${voiceId}`, {
|
|
102
103
|
method: 'POST',
|
|
103
104
|
headers: {
|
|
104
105
|
'xi-api-key': apiKey,
|
|
@@ -222,7 +223,7 @@ export function createElevenLabsProvider() {
|
|
|
222
223
|
if (metadata?.['webhookMetadata'] !== undefined) {
|
|
223
224
|
form.append('webhook_metadata', JSON.stringify(metadata['webhookMetadata']));
|
|
224
225
|
}
|
|
225
|
-
const response = await
|
|
226
|
+
const response = await instrumentedFetch(url, {
|
|
226
227
|
method: 'POST',
|
|
227
228
|
headers: {
|
|
228
229
|
'xi-api-key': apiKey,
|
|
@@ -298,7 +299,7 @@ export function createElevenLabsProvider() {
|
|
|
298
299
|
if (value)
|
|
299
300
|
websocketUrl.searchParams.set('enable_logging', value);
|
|
300
301
|
}
|
|
301
|
-
const tokenResponse = await
|
|
302
|
+
const tokenResponse = await instrumentedFetch(`${baseUrl}/v1/single-use-token/realtime_scribe`, {
|
|
302
303
|
method: 'POST',
|
|
303
304
|
headers: {
|
|
304
305
|
'xi-api-key': apiKey,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"google.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/voice/providers/google.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"google.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/voice/providers/google.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AA6HjD,wBAAgB,oBAAoB,IAAI,aAAa,CAiGpD"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { asRecord, buildStatus, inferFilename, normalizeBaseUrl, readFirstEnv, resolveAudioInput, trimToUndefined, } from './shared.js';
|
|
2
|
+
import { instrumentedFetch } from '../../utils/fetch-with-timeout.js';
|
|
2
3
|
const GEMINI_API_BASE_URL = 'https://generativelanguage.googleapis.com/v1beta';
|
|
3
4
|
const DEFAULT_GOOGLE_STT_MODEL = 'gemini-2.5-flash';
|
|
4
5
|
const GOOGLE_INLINE_AUDIO_LIMIT_BYTES = 20 * 1024 * 1024;
|
|
@@ -26,7 +27,7 @@ function parseGoogleFileRecord(payload) {
|
|
|
26
27
|
}
|
|
27
28
|
async function uploadGoogleFile(baseUrl, apiKey, buffer, mimeType, displayName) {
|
|
28
29
|
const uploadBaseUrl = baseUrl.replace(/\/v1beta$/, '');
|
|
29
|
-
const startResponse = await
|
|
30
|
+
const startResponse = await instrumentedFetch(`${uploadBaseUrl}/upload/v1beta/files`, {
|
|
30
31
|
method: 'POST',
|
|
31
32
|
headers: {
|
|
32
33
|
'Content-Type': 'application/json',
|
|
@@ -49,7 +50,7 @@ async function uploadGoogleFile(baseUrl, apiKey, buffer, mimeType, displayName)
|
|
|
49
50
|
if (!uploadUrl) {
|
|
50
51
|
throw new Error('Google file upload start response missing upload URL');
|
|
51
52
|
}
|
|
52
|
-
const uploadResponse = await
|
|
53
|
+
const uploadResponse = await instrumentedFetch(uploadUrl, {
|
|
53
54
|
method: 'POST',
|
|
54
55
|
headers: {
|
|
55
56
|
'Content-Length': String(buffer.byteLength),
|
|
@@ -66,7 +67,7 @@ async function uploadGoogleFile(baseUrl, apiKey, buffer, mimeType, displayName)
|
|
|
66
67
|
}
|
|
67
68
|
async function deleteGoogleFile(baseUrl, apiKey, name) {
|
|
68
69
|
try {
|
|
69
|
-
await
|
|
70
|
+
await instrumentedFetch(`${baseUrl}/${name}`, {
|
|
70
71
|
method: 'DELETE',
|
|
71
72
|
headers: {
|
|
72
73
|
'x-goog-api-key': apiKey,
|
|
@@ -110,7 +111,7 @@ export function createGoogleProvider() {
|
|
|
110
111
|
if (useFilesApi) {
|
|
111
112
|
uploadedFile = await uploadGoogleFile(baseUrl, apiKey, buffer, effectiveMimeType, inferFilename(request.audio, '.wav'));
|
|
112
113
|
}
|
|
113
|
-
const response = await
|
|
114
|
+
const response = await instrumentedFetch(`${baseUrl}/models/${encodeURIComponent(model)}:generateContent`, {
|
|
114
115
|
method: 'POST',
|
|
115
116
|
headers: {
|
|
116
117
|
'Content-Type': 'application/json',
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"microsoft.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/voice/providers/microsoft.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAmB,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"microsoft.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/voice/providers/microsoft.ts"],"names":[],"mappings":"AASA,OAAO,KAAK,EAAmB,aAAa,EAAE,MAAM,aAAa,CAAC;AAsDlE,wBAAgB,uBAAuB,IAAI,aAAa,CAoDvD"}
|
|
@@ -4,6 +4,7 @@ import { join } from 'node:path';
|
|
|
4
4
|
import { EdgeTTS } from 'node-edge-tts';
|
|
5
5
|
import { CHROMIUM_FULL_VERSION, TRUSTED_CLIENT_TOKEN, generateSecMsGecToken, } from 'node-edge-tts/dist/drm.js';
|
|
6
6
|
import { buildStatus, inferExtFromOutputFormat, inferMimeFromExtension, } from './shared.js';
|
|
7
|
+
import { instrumentedFetch } from '../../utils/fetch-with-timeout.js';
|
|
7
8
|
function buildMicrosoftVoiceHeaders() {
|
|
8
9
|
const major = CHROMIUM_FULL_VERSION.split('.')[0] || '0';
|
|
9
10
|
return {
|
|
@@ -16,7 +17,7 @@ function buildMicrosoftVoiceHeaders() {
|
|
|
16
17
|
};
|
|
17
18
|
}
|
|
18
19
|
async function listMicrosoftVoices() {
|
|
19
|
-
const response = await
|
|
20
|
+
const response = await instrumentedFetch(`https://speech.platform.bing.com/consumer/speech/synthesize/readaloud/voices/list?trustedclienttoken=${TRUSTED_CLIENT_TOKEN}`, { headers: buildMicrosoftVoiceHeaders() });
|
|
20
21
|
if (!response.ok)
|
|
21
22
|
throw new Error(`Microsoft voices failed: HTTP ${response.status}`);
|
|
22
23
|
const payload = await response.json();
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/voice/providers/openai.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EAGd,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"openai.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/voice/providers/openai.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAEV,aAAa,EAGd,MAAM,aAAa,CAAC;AAqIrB,wBAAgB,oBAAoB,IAAI,aAAa,CAuNpD"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { asFiniteNumber, asRecord, buildStatus, estimateConfidenceFromAvgLogprob, inferFilename, mimeTypeForVoiceFormat, normalizeBaseUrl, readFirstEnv, resolveAudioInput, trimToUndefined, } from './shared.js';
|
|
2
|
+
import { instrumentedFetch } from '../../utils/fetch-with-timeout.js';
|
|
2
3
|
const OPENAI_AUDIO_BASE_URL = 'https://api.openai.com/v1';
|
|
3
4
|
const OPENAI_VOICES = [
|
|
4
5
|
'alloy',
|
|
@@ -116,7 +117,7 @@ export function createOpenAIProvider() {
|
|
|
116
117
|
const baseUrl = normalizeBaseUrl(readFirstEnv(baseUrlEnvVars), OPENAI_AUDIO_BASE_URL);
|
|
117
118
|
const responseFormat = resolveOpenAISpeechFormat(request.format);
|
|
118
119
|
const metadata = asRecord(request.metadata);
|
|
119
|
-
const response = await
|
|
120
|
+
const response = await instrumentedFetch(`${baseUrl}/audio/speech`, {
|
|
120
121
|
method: 'POST',
|
|
121
122
|
headers: {
|
|
122
123
|
Authorization: `Bearer ${apiKey}`,
|
|
@@ -173,7 +174,7 @@ export function createOpenAIProvider() {
|
|
|
173
174
|
form.append('language', request.language.trim());
|
|
174
175
|
if (request.prompt?.trim())
|
|
175
176
|
form.append('prompt', request.prompt.trim());
|
|
176
|
-
const response = await
|
|
177
|
+
const response = await instrumentedFetch(`${baseUrl}/audio/transcriptions`, {
|
|
177
178
|
method: 'POST',
|
|
178
179
|
headers: {
|
|
179
180
|
Authorization: `Bearer ${apiKey}`,
|
|
@@ -216,7 +217,7 @@ export function createOpenAIProvider() {
|
|
|
216
217
|
const voice = request.voiceId?.trim() || DEFAULT_OPENAI_VOICE;
|
|
217
218
|
const inputFormat = resolveOpenAIRealtimeAudioFormat(request.inputFormat);
|
|
218
219
|
const outputFormat = resolveOpenAIRealtimeAudioFormat(request.outputFormat);
|
|
219
|
-
const response = await
|
|
220
|
+
const response = await instrumentedFetch(`${baseUrl}/realtime/client_secrets`, {
|
|
220
221
|
method: 'POST',
|
|
221
222
|
headers: {
|
|
222
223
|
Authorization: `Bearer ${apiKey}`,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/voice/providers/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACpB,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/voice/providers/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EACV,kBAAkB,EAClB,aAAa,EACb,mBAAmB,EACpB,MAAM,aAAa,CAAC;AAGrB,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAElE;AAED,wBAAgB,cAAc,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAEjE;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,CAI5E;AAED,wBAAgB,YAAY,CAAC,OAAO,EAAE,SAAS,MAAM,EAAE,GAAG,MAAM,GAAG,IAAI,CAMtE;AAED,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM,CAG3F;AAED,wBAAsB,iBAAiB,CACrC,KAAK,EAAE,kBAAkB,GACxB,OAAO,CAAC;IAAE,MAAM,EAAE,UAAU,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,CAAC,CAgBnD;AAED,wBAAgB,WAAW,CACzB,EAAE,EAAE,MAAM,EACV,KAAK,EAAE,MAAM,EACb,YAAY,EAAE,aAAa,CAAC,cAAc,CAAC,EAC3C,UAAU,EAAE,OAAO,EACnB,MAAM,EAAE,MAAM,EACd,QAAQ,GAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAM,GACrC,mBAAmB,CAUrB;AAED,wBAAgB,sBAAsB,CAAC,GAAG,EAAE,MAAM,GAAG,MAAM,CAiB1D;AAED,wBAAgB,wBAAwB,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,CASrE;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,kBAAkB,EAAE,WAAW,EAAE,MAAM,GAAG,MAAM,CAKpF;AAED,wBAAgB,sBAAsB,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAe7D;AAED,wBAAgB,gCAAgC,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,GAAG,SAAS,CAInF"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { instrumentedFetch } from '../../utils/fetch-with-timeout.js';
|
|
1
2
|
export function trimToUndefined(value) {
|
|
2
3
|
return typeof value === 'string' && value.trim().length > 0 ? value.trim() : undefined;
|
|
3
4
|
}
|
|
@@ -29,7 +30,7 @@ export async function resolveAudioInput(audio) {
|
|
|
29
30
|
};
|
|
30
31
|
}
|
|
31
32
|
if (typeof audio.uri === 'string' && audio.uri.trim().length > 0) {
|
|
32
|
-
const response = await
|
|
33
|
+
const response = await instrumentedFetch(audio.uri);
|
|
33
34
|
if (!response.ok)
|
|
34
35
|
throw new Error(`Failed to load audio URI: HTTP ${response.status}`);
|
|
35
36
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"vydra.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/voice/providers/vydra.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,aAAa,EAAE,MAAM,aAAa,CAAC;
|
|
1
|
+
{"version":3,"file":"vydra.d.ts","sourceRoot":"","sources":["../../../../../src/_internal/platform/voice/providers/vydra.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAmB,aAAa,EAAE,MAAM,aAAa,CAAC;AAQlE,wBAAgB,mBAAmB,IAAI,aAAa,CA2EnD"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { buildStatus, normalizeBaseUrl, readFirstEnv, } from './shared.js';
|
|
2
|
+
import { instrumentedFetch } from '../../utils/fetch-with-timeout.js';
|
|
2
3
|
export function createVydraProvider() {
|
|
3
4
|
const envVars = ['VYDRA_API_KEY'];
|
|
4
5
|
const baseUrlEnvVars = ['VYDRA_BASE_URL'];
|
|
@@ -27,7 +28,7 @@ export function createVydraProvider() {
|
|
|
27
28
|
throw new Error('Vydra API key missing');
|
|
28
29
|
const baseUrl = normalizeBaseUrl(readFirstEnv(baseUrlEnvVars), 'https://www.vydra.ai/api/v1');
|
|
29
30
|
const model = request.modelId?.trim() || 'elevenlabs/tts';
|
|
30
|
-
const response = await
|
|
31
|
+
const response = await instrumentedFetch(`${baseUrl}/models/${model}`, {
|
|
31
32
|
method: 'POST',
|
|
32
33
|
headers: {
|
|
33
34
|
Authorization: `Bearer ${apiKey}`,
|
|
@@ -55,7 +56,7 @@ export function createVydraProvider() {
|
|
|
55
56
|
const audioUrl = urls[0];
|
|
56
57
|
if (!audioUrl)
|
|
57
58
|
throw new Error('Vydra speech synthesis response missing audio URL');
|
|
58
|
-
const audioResponse = await
|
|
59
|
+
const audioResponse = await instrumentedFetch(audioUrl);
|
|
59
60
|
if (!audioResponse.ok)
|
|
60
61
|
throw new Error(`Vydra audio download failed: HTTP ${audioResponse.status}`);
|
|
61
62
|
const mimeType = audioResponse.headers.get('content-type')?.trim() || 'audio/mpeg';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/watchers/registry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAuB,MAAM,sCAAsC,CAAC;AAC5G,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"registry.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/watchers/registry.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAkB,YAAY,EAAE,MAAM,2BAA2B,CAAC;AAC9E,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAClE,OAAO,KAAK,EAAE,WAAW,EAAE,aAAa,EAAuB,MAAM,sCAAsC,CAAC;AAC5G,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,0BAA0B,CAAC;AAgBvE,MAAM,WAAW,oBAAoB;IACnC,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,IAAI,CAAC,EAAE,WAAW,CAAC;IAC5B,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;IACxC,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;IAC7B,QAAQ,CAAC,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC5C,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;CAC7D;AAED,MAAM,WAAW,2BAA2B;IAC1C,QAAQ,CAAC,EAAE,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,KAAK,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,MAAM,EAAE,sBAAsB,CAAC;IACxC,QAAQ,CAAC,UAAU,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,GAAG,EAAE,MAAM,OAAO,CAAC,MAAM,GAAG,IAAI,CAAC,GAAG,MAAM,GAAG,IAAI,CAAC;CAC5D;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,SAAS,CAAC,EAAE,MAAM,CAAC;CAC7B;AAwFD,qBAAa,eAAe;IAC1B,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAwC;IACjE,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAqD;IAC5E,OAAO,CAAC,QAAQ,CAAC,QAAQ,CAAqB;IAC9C,OAAO,CAAC,QAAQ,CAAC,SAAS,CAAS;IACnC,OAAO,CAAC,eAAe,CAA+B;IACtD,OAAO,CAAC,UAAU,CAAgC;IAClD,OAAO,CAAC,MAAM,CAAS;gBAEX,OAAO,GAAE,sBAA2B;IAIhD,aAAa,CAAC,MAAM,EAAE;QACpB,QAAQ,CAAC,YAAY,CAAC,EAAE,YAAY,GAAG,IAAI,CAAC;QAC5C,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,GAAG,IAAI,CAAC;KAC9C,GAAG,IAAI;IAYR,eAAe,CAAC,KAAK,EAAE,oBAAoB,GAAG,aAAa;IAuC3D,sBAAsB,CAAC,KAAK,EAAE,2BAA2B,GAAG,aAAa;IAezE,IAAI,IAAI,aAAa,EAAE;IAkBvB,UAAU,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAa5C,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa,GAAG,IAAI;IAuC9C,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,SAAY,GAAG,aAAa,GAAG,IAAI;IA8B3D,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,aAAa,GAAG,IAAI,CAAC;IAQ9D,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAoBlC,OAAO,CAAC,YAAY;IAkCpB,OAAO,CAAC,eAAe;YAYT,UAAU;IA4DxB,OAAO,CAAC,gBAAgB;IA+DxB,OAAO,CAAC,OAAO;CAShB"}
|
|
@@ -3,6 +3,7 @@ import { createDomainDispatch } from '../runtime/store/index.js';
|
|
|
3
3
|
import { summarizeError } from '../utils/error-display.js';
|
|
4
4
|
import { emitWatcherFailed, emitWatcherHeartbeat, emitWatcherStarted, emitWatcherStopped, } from '../runtime/emitters/index.js';
|
|
5
5
|
import { loadWatcherSnapshotFromPath, resolveWatcherStorePath, saveWatcherSnapshotToPath, } from './store.js';
|
|
6
|
+
import { instrumentedFetch } from '../utils/fetch-with-timeout.js';
|
|
6
7
|
function now() {
|
|
7
8
|
return Date.now();
|
|
8
9
|
}
|
|
@@ -404,7 +405,7 @@ export class WatcherRegistry {
|
|
|
404
405
|
return async () => {
|
|
405
406
|
if (!url)
|
|
406
407
|
return `${record.id}:webhook-no-url`;
|
|
407
|
-
const response = await
|
|
408
|
+
const response = await instrumentedFetch(url, {
|
|
408
409
|
method: typeof merged.method === 'string' ? merged.method.toUpperCase() : 'GET',
|
|
409
410
|
headers: typeof merged.headers === 'object' && merged.headers !== null
|
|
410
411
|
? Object.fromEntries(Object.entries(merged.headers).filter(([, value]) => typeof value === 'string'))
|
|
@@ -426,7 +427,7 @@ export class WatcherRegistry {
|
|
|
426
427
|
const url = typeof merged.url === 'string' ? merged.url : typeof merged.endpoint === 'string' ? merged.endpoint : '';
|
|
427
428
|
if (url) {
|
|
428
429
|
return async () => {
|
|
429
|
-
const response = await
|
|
430
|
+
const response = await instrumentedFetch(url, {
|
|
430
431
|
method: typeof merged.method === 'string' ? merged.method.toUpperCase() : 'GET',
|
|
431
432
|
headers: typeof merged.headers === 'object' && merged.headers !== null
|
|
432
433
|
? Object.fromEntries(Object.entries(merged.headers).filter(([, value]) => typeof value === 'string'))
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"trigger-executor.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/workflow/trigger-executor.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"trigger-executor.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/workflow/trigger-executor.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,4BAA4B,CAAC;AAYpE,MAAM,WAAW,kBAAkB;IACjC,IAAI,IAAI,iBAAiB,EAAE,CAAC;CAC7B;AAED;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED;;;GAGG;AACH,wBAAsB,YAAY,CAChC,KAAK,EAAE,SAAS,EAChB,cAAc,EAAE,kBAAkB,GACjC,OAAO,CAAC,iBAAiB,EAAE,CAAC,CA2B9B"}
|
|
@@ -1,6 +1,8 @@
|
|
|
1
1
|
import { logger } from '../utils/logger.js';
|
|
2
|
+
import { shellSplit } from '../utils/shell-split.js';
|
|
2
3
|
import { matchesEventPath } from '../hooks/matcher.js';
|
|
3
4
|
import { summarizeError } from '../utils/error-display.js';
|
|
5
|
+
import { toRecord } from '../utils/record-coerce.js';
|
|
4
6
|
/**
|
|
5
7
|
* Evaluate all enabled triggers against a fired hook event.
|
|
6
8
|
* Matching triggers have their action executed via Bun.spawn.
|
|
@@ -130,7 +132,7 @@ function parseValue(token, event) {
|
|
|
130
132
|
return Number(token);
|
|
131
133
|
// Property path — only event.* and payload.*
|
|
132
134
|
if (token.startsWith('event.')) {
|
|
133
|
-
return resolvePath(event, token.slice(6));
|
|
135
|
+
return resolvePath(toRecord(event), token.slice(6));
|
|
134
136
|
}
|
|
135
137
|
if (token.startsWith('payload.')) {
|
|
136
138
|
return resolvePath((event.payload ?? {}), token.slice(8));
|
|
@@ -269,8 +271,8 @@ async function executeAction(trigger, event) {
|
|
|
269
271
|
event: trigger.event,
|
|
270
272
|
action: trigger.action,
|
|
271
273
|
};
|
|
272
|
-
// Parse the action string as a shell command
|
|
273
|
-
const parts = trigger.action
|
|
274
|
+
// Parse the action string as a shell command (POSIX shellwords tokenizer)
|
|
275
|
+
const parts = shellSplit(trigger.action);
|
|
274
276
|
if (parts.length === 0) {
|
|
275
277
|
return { ...base, executed: false, error: 'Empty action command' };
|
|
276
278
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"daemon-home.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/workspace/daemon-home.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAwB,MAAM,4BAA4B,CAAC;AAOxF,MAAM,WAAW,cAAc;IAC7B,6EAA6E;IAC7E,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,iFAAiF;IACjF,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,oDAAoD;IACpD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,wCAAwC;IACxC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CAClC;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC;CACvC;AAMD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,iBAAsB,GAAG,MAAM,CAiB5E;AAMD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAEtE;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,iBAAsB,EAC/B,IAAI,GAAE,uBAA4B,GACjC,cAAc,CAgChB;AAMD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CASnF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQ/E;AAMD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAWxF;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,
|
|
1
|
+
{"version":3,"file":"daemon-home.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/workspace/daemon-home.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;GAuBG;AAOH,OAAO,KAAK,EAAE,eAAe,EAAwB,MAAM,4BAA4B,CAAC;AAOxF,MAAM,WAAW,cAAc;IAC7B,6EAA6E;IAC7E,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,iFAAiF;IACjF,QAAQ,CAAC,YAAY,EAAE,OAAO,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,oDAAoD;IACpD,QAAQ,CAAC,aAAa,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5C,wCAAwC;IACxC,QAAQ,CAAC,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CAClC;AAED;;;;GAIG;AACH,MAAM,WAAW,uBAAuB;IACtC,QAAQ,CAAC,UAAU,CAAC,EAAE,eAAe,CAAC;CACvC;AAMD;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,GAAE,iBAAsB,GAAG,MAAM,CAiB5E;AAMD;;;GAGG;AACH,wBAAgB,wBAAwB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,CAEtE;AAMD;;;;;;;;;;GAUG;AACH,wBAAgB,sBAAsB,CACpC,aAAa,EAAE,MAAM,EACrB,OAAO,GAAE,iBAAsB,EAC/B,IAAI,GAAE,uBAA4B,GACjC,cAAc,CAgChB;AAMD;;;;;;GAMG;AACH,wBAAgB,sBAAsB,CAAC,aAAa,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,IAAI,CASnF;AAED;;;GAGG;AACH,wBAAgB,qBAAqB,CAAC,aAAa,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAQ/E;AAMD;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAWxF;AAED;;;;;GAKG;AACH,wBAAgB,kBAAkB,CAAC,aAAa,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,IAAI,CAqB1F"}
|
|
@@ -172,8 +172,12 @@ export function writeDaemonSetting(daemonHomeDir, key, value) {
|
|
|
172
172
|
try {
|
|
173
173
|
existing = JSON.parse(readFileSync(settingsPath, 'utf-8'));
|
|
174
174
|
}
|
|
175
|
-
catch {
|
|
176
|
-
// Overwrite corrupt file
|
|
175
|
+
catch (err) {
|
|
176
|
+
// OBS-11: Overwrite corrupt file; log so ops can see when this happens
|
|
177
|
+
logger.warn('[DaemonHome] daemon-settings.json parse failed — overwriting with fresh state', {
|
|
178
|
+
path: settingsPath,
|
|
179
|
+
error: String(err),
|
|
180
|
+
});
|
|
177
181
|
}
|
|
178
182
|
}
|
|
179
183
|
// SEC-12: daemon-settings.json may contain sensitive pairing state; write at 0600.
|
|
@@ -16,6 +16,7 @@
|
|
|
16
16
|
* WORKSPACE_SWAP_STARTED — before swap begins
|
|
17
17
|
* WORKSPACE_SWAP_REFUSED — when swap is rejected
|
|
18
18
|
* WORKSPACE_SWAP_COMPLETED — after all stores re-rooted
|
|
19
|
+
* WORKSPACE_SWAP_FAILED — when mkdir or rerootStores fails (OBS-08)
|
|
19
20
|
*/
|
|
20
21
|
import type { RuntimeEventBus } from '../runtime/events/index.js';
|
|
21
22
|
export interface WorkspaceSwapDeps {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workspace-swap-manager.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/workspace/workspace-swap-manager.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"workspace-swap-manager.d.ts","sourceRoot":"","sources":["../../../../src/_internal/platform/workspace/workspace-swap-manager.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;GAmBG;AAMH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AASlE,MAAM,WAAW,iBAAiB;IAChC,QAAQ,CAAC,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;IAC5C,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B;;;OAGG;IACH,QAAQ,CAAC,mBAAmB,EAAE,MAAM,MAAM,CAAC;IAC3C;;;;OAIG;IACH,QAAQ,CAAC,YAAY,EAAE,CAAC,aAAa,EAAE,MAAM,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;CACjE;AAMD,MAAM,MAAM,mBAAmB,GAC3B;IAAE,EAAE,EAAE,IAAI,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC/C;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,gBAAgB,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAA;CAAE,GACzE;IAAE,EAAE,EAAE,KAAK,CAAC;IAAC,IAAI,EAAE,cAAc,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,CAAC;AAMxD,qBAAa,oBAAoB;IAM7B,OAAO,CAAC,QAAQ,CAAC,IAAI;IALvB,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,cAAc,CAA6C;gBAGjE,iBAAiB,EAAE,MAAM,EACR,IAAI,EAAE,iBAAiB;IAK1C,oBAAoB,IAAI,MAAM;IAIxB,WAAW,CAAC,aAAa,EAAE,MAAM,GAAG,OAAO,CAAC,mBAAmB,CAAC;YAYxD,iBAAiB;IAyE/B,OAAO,CAAC,KAAK;CAmBd"}
|
|
@@ -16,11 +16,14 @@
|
|
|
16
16
|
* WORKSPACE_SWAP_STARTED — before swap begins
|
|
17
17
|
* WORKSPACE_SWAP_REFUSED — when swap is rejected
|
|
18
18
|
* WORKSPACE_SWAP_COMPLETED — after all stores re-rooted
|
|
19
|
+
* WORKSPACE_SWAP_FAILED — when mkdir or rerootStores fails (OBS-08)
|
|
19
20
|
*/
|
|
20
21
|
import { mkdirSync, existsSync } from 'node:fs';
|
|
21
22
|
import { isAbsolute, resolve, join } from 'node:path';
|
|
22
23
|
import { writeDaemonSetting } from './daemon-home.js';
|
|
23
24
|
import { createEventEnvelope } from '../runtime/events/index.js';
|
|
25
|
+
import { logger } from '../utils/logger.js';
|
|
26
|
+
import { summarizeError } from '../utils/error-display.js';
|
|
24
27
|
// ---------------------------------------------------------------------------
|
|
25
28
|
// WorkspaceSwapManager
|
|
26
29
|
// ---------------------------------------------------------------------------
|
|
@@ -72,6 +75,8 @@ export class WorkspaceSwapManager {
|
|
|
72
75
|
}
|
|
73
76
|
catch (err) {
|
|
74
77
|
const reason = `Cannot create workspace directory at '${resolved}': ${err instanceof Error ? err.message : String(err)}`;
|
|
78
|
+
// OBS-08: emit WORKSPACE_SWAP_FAILED so subscribers that saw STARTED get terminal resolution
|
|
79
|
+
this._emit({ type: 'WORKSPACE_SWAP_FAILED', from, to, code: 'INVALID_PATH', reason });
|
|
75
80
|
return { ok: false, code: 'INVALID_PATH', reason };
|
|
76
81
|
}
|
|
77
82
|
// Re-root all stores
|
|
@@ -80,6 +85,8 @@ export class WorkspaceSwapManager {
|
|
|
80
85
|
}
|
|
81
86
|
catch (err) {
|
|
82
87
|
const reason = `Failed to re-initialize stores at '${resolved}': ${err instanceof Error ? err.message : String(err)}`;
|
|
88
|
+
// OBS-08: emit WORKSPACE_SWAP_FAILED so subscribers that saw STARTED get terminal resolution
|
|
89
|
+
this._emit({ type: 'WORKSPACE_SWAP_FAILED', from, to, code: 'REROOT_FAILED', reason });
|
|
83
90
|
return { ok: false, code: 'INVALID_PATH', reason };
|
|
84
91
|
}
|
|
85
92
|
// Update internal state
|
|
@@ -90,8 +97,13 @@ export class WorkspaceSwapManager {
|
|
|
90
97
|
writeDaemonSetting(this.deps.daemonHomeDir, 'runtime.workingDir', resolved);
|
|
91
98
|
persistedInDaemonSettings = true;
|
|
92
99
|
}
|
|
93
|
-
catch {
|
|
94
|
-
// Non-fatal — swap succeeded but persistence failed
|
|
100
|
+
catch (err) {
|
|
101
|
+
// OBS-09: Non-fatal — swap succeeded but persistence failed. Log so ops can diagnose.
|
|
102
|
+
logger.warn('[WorkspaceSwap] daemon settings persistence failed — workingDir will not survive restart', {
|
|
103
|
+
error: summarizeError(err),
|
|
104
|
+
daemonHomeDir: this.deps.daemonHomeDir,
|
|
105
|
+
resolvedPath: resolved,
|
|
106
|
+
});
|
|
95
107
|
}
|
|
96
108
|
this._emit({ type: 'WORKSPACE_SWAP_COMPLETED', from, to: resolved, persistedInDaemonSettings });
|
|
97
109
|
return { ok: true, previous: from, current: resolved };
|