@probelabs/visor 0.1.181 → 0.1.182-ee

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.
Files changed (144) hide show
  1. package/defaults/code-talk.yaml +80 -14
  2. package/defaults/engineer.yaml +33 -15
  3. package/defaults/skills/code-explorer.yaml +5 -0
  4. package/dist/agent-protocol/a2a-frontend.d.ts +10 -0
  5. package/dist/agent-protocol/a2a-frontend.d.ts.map +1 -1
  6. package/dist/agent-protocol/task-evaluator.d.ts +52 -0
  7. package/dist/agent-protocol/task-evaluator.d.ts.map +1 -0
  8. package/dist/agent-protocol/task-store.d.ts +5 -3
  9. package/dist/agent-protocol/task-store.d.ts.map +1 -1
  10. package/dist/agent-protocol/tasks-cli-handler.d.ts.map +1 -1
  11. package/dist/agent-protocol/tasks-tui.d.ts +34 -0
  12. package/dist/agent-protocol/tasks-tui.d.ts.map +1 -0
  13. package/dist/agent-protocol/trace-serializer.d.ts +90 -0
  14. package/dist/agent-protocol/trace-serializer.d.ts.map +1 -0
  15. package/dist/agent-protocol/track-execution.d.ts +2 -0
  16. package/dist/agent-protocol/track-execution.d.ts.map +1 -1
  17. package/dist/cli-main.d.ts.map +1 -1
  18. package/dist/defaults/code-talk.yaml +80 -14
  19. package/dist/defaults/engineer.yaml +33 -15
  20. package/dist/defaults/skills/code-explorer.yaml +5 -0
  21. package/dist/docs/commands.md +57 -14
  22. package/dist/docs/configuration.md +2 -0
  23. package/dist/docs/guides/graceful-restart.md +178 -0
  24. package/dist/docs/observability.md +69 -0
  25. package/dist/docs/production-deployment.md +17 -0
  26. package/dist/email/polling-runner.d.ts +4 -0
  27. package/dist/email/polling-runner.d.ts.map +1 -1
  28. package/dist/generated/config-schema.d.ts +70 -6
  29. package/dist/generated/config-schema.d.ts.map +1 -1
  30. package/dist/generated/config-schema.json +36 -6
  31. package/dist/index.js +7420 -1483
  32. package/dist/providers/mcp-custom-sse-server.d.ts +4 -0
  33. package/dist/providers/mcp-custom-sse-server.d.ts.map +1 -1
  34. package/dist/runners/graceful-restart.d.ts +46 -0
  35. package/dist/runners/graceful-restart.d.ts.map +1 -0
  36. package/dist/runners/mcp-server-runner.d.ts +12 -0
  37. package/dist/runners/mcp-server-runner.d.ts.map +1 -1
  38. package/dist/runners/runner-factory.d.ts.map +1 -1
  39. package/dist/runners/runner-host.d.ts +12 -0
  40. package/dist/runners/runner-host.d.ts.map +1 -1
  41. package/dist/runners/runner.d.ts +12 -0
  42. package/dist/runners/runner.d.ts.map +1 -1
  43. package/dist/sdk/{a2a-frontend-IWOUJOIZ.mjs → a2a-frontend-4LP3MLTS.mjs} +47 -5
  44. package/dist/sdk/a2a-frontend-4LP3MLTS.mjs.map +1 -0
  45. package/dist/sdk/{a2a-frontend-BDACLGMA.mjs → a2a-frontend-MU5EO2HZ.mjs} +35 -1
  46. package/dist/sdk/a2a-frontend-MU5EO2HZ.mjs.map +1 -0
  47. package/dist/sdk/{check-provider-registry-4YKTEDKF.mjs → check-provider-registry-I4BCWKRU.mjs} +7 -7
  48. package/dist/sdk/{check-provider-registry-4YFVBGYU.mjs → check-provider-registry-RRWCXSTG.mjs} +3 -3
  49. package/dist/sdk/{chunk-VMVIM4JB.mjs → chunk-4I3TJ7UJ.mjs} +37 -7
  50. package/dist/sdk/chunk-4I3TJ7UJ.mjs.map +1 -0
  51. package/dist/sdk/{chunk-7YZSSO4X.mjs → chunk-6DPPP7LD.mjs} +10 -10
  52. package/dist/sdk/chunk-7ERVRLDV.mjs +296 -0
  53. package/dist/sdk/chunk-7ERVRLDV.mjs.map +1 -0
  54. package/dist/sdk/{chunk-VXC2XNQJ.mjs → chunk-ANUT54HW.mjs} +3 -3
  55. package/dist/sdk/{chunk-J73GEFPT.mjs → chunk-DHETLQIX.mjs} +2 -2
  56. package/dist/sdk/{chunk-DGIH6EX3.mjs → chunk-QXT47ZHR.mjs} +151 -281
  57. package/dist/sdk/chunk-QXT47ZHR.mjs.map +1 -0
  58. package/dist/sdk/{chunk-4DVP6KVC.mjs → chunk-TQQNSHQV.mjs} +72 -31
  59. package/dist/sdk/chunk-TQQNSHQV.mjs.map +1 -0
  60. package/dist/sdk/chunk-ZOF5QT6U.mjs +5943 -0
  61. package/dist/sdk/chunk-ZOF5QT6U.mjs.map +1 -0
  62. package/dist/sdk/{config-TSA5FUOM.mjs → config-2STD74CJ.mjs} +2 -2
  63. package/dist/sdk/config-JE4HKTWW.mjs +16 -0
  64. package/dist/sdk/{failure-condition-evaluator-HTPB5FYW.mjs → failure-condition-evaluator-5DZYMCGW.mjs} +4 -4
  65. package/dist/sdk/{github-frontend-3SDFCCKI.mjs → github-frontend-L3F5JXPJ.mjs} +4 -4
  66. package/dist/sdk/{host-QE4L7UXE.mjs → host-QBJ7TOWG.mjs} +3 -3
  67. package/dist/sdk/{host-CVH2CSHM.mjs → host-X5ZZCEWN.mjs} +2 -2
  68. package/dist/sdk/knex-store-QCEW4I4R.mjs +527 -0
  69. package/dist/sdk/knex-store-QCEW4I4R.mjs.map +1 -0
  70. package/dist/sdk/loader-ZNKKJEZ3.mjs +89 -0
  71. package/dist/sdk/loader-ZNKKJEZ3.mjs.map +1 -0
  72. package/dist/sdk/opa-policy-engine-QCSSIMUF.mjs +655 -0
  73. package/dist/sdk/opa-policy-engine-QCSSIMUF.mjs.map +1 -0
  74. package/dist/sdk/{routing-YVMTKFDZ.mjs → routing-CVQT4KHX.mjs} +5 -5
  75. package/dist/sdk/{schedule-tool-Z5VG67JK.mjs → schedule-tool-AECLFHSY.mjs} +7 -7
  76. package/dist/sdk/{schedule-tool-ZMX3Y7LF.mjs → schedule-tool-Z6QYL2B3.mjs} +3 -3
  77. package/dist/sdk/{schedule-tool-handler-PCERK6ZZ.mjs → schedule-tool-handler-6QLZRTQA.mjs} +7 -7
  78. package/dist/sdk/{schedule-tool-handler-N7UNABOA.mjs → schedule-tool-handler-J4NUETJ6.mjs} +3 -3
  79. package/dist/sdk/sdk.d.mts +33 -0
  80. package/dist/sdk/sdk.d.ts +33 -0
  81. package/dist/sdk/sdk.js +3545 -455
  82. package/dist/sdk/sdk.js.map +1 -1
  83. package/dist/sdk/sdk.mjs +6 -6
  84. package/dist/sdk/task-evaluator-HLNXKKVV.mjs +1278 -0
  85. package/dist/sdk/task-evaluator-HLNXKKVV.mjs.map +1 -0
  86. package/dist/sdk/{trace-helpers-KXDOJWBL.mjs → trace-helpers-WJXYVV4S.mjs} +3 -3
  87. package/dist/sdk/trace-reader-ZY77OFNM.mjs +266 -0
  88. package/dist/sdk/trace-reader-ZY77OFNM.mjs.map +1 -0
  89. package/dist/sdk/track-execution-MKIQXP2C.mjs +136 -0
  90. package/dist/sdk/track-execution-MKIQXP2C.mjs.map +1 -0
  91. package/dist/sdk/validator-XTZJZZJH.mjs +134 -0
  92. package/dist/sdk/validator-XTZJZZJH.mjs.map +1 -0
  93. package/dist/sdk/{workflow-check-provider-NTHC5ZBF.mjs → workflow-check-provider-EXMC6JIS.mjs} +7 -7
  94. package/dist/sdk/{workflow-check-provider-SRIMWKLQ.mjs → workflow-check-provider-VKYGI5GK.mjs} +3 -3
  95. package/dist/slack/socket-runner.d.ts +12 -0
  96. package/dist/slack/socket-runner.d.ts.map +1 -1
  97. package/dist/teams/webhook-runner.d.ts +4 -0
  98. package/dist/teams/webhook-runner.d.ts.map +1 -1
  99. package/dist/telegram/polling-runner.d.ts +2 -0
  100. package/dist/telegram/polling-runner.d.ts.map +1 -1
  101. package/dist/types/config.d.ts +33 -0
  102. package/dist/types/config.d.ts.map +1 -1
  103. package/dist/whatsapp/webhook-runner.d.ts +4 -0
  104. package/dist/whatsapp/webhook-runner.d.ts.map +1 -1
  105. package/package.json +2 -2
  106. package/dist/output/traces/run-2026-03-17T13-58-29-402Z.ndjson +0 -157
  107. package/dist/output/traces/run-2026-03-17T13-59-10-403Z.ndjson +0 -2333
  108. package/dist/sdk/a2a-frontend-BDACLGMA.mjs.map +0 -1
  109. package/dist/sdk/a2a-frontend-IWOUJOIZ.mjs.map +0 -1
  110. package/dist/sdk/check-provider-registry-67ZLGDDQ.mjs +0 -31
  111. package/dist/sdk/chunk-4DVP6KVC.mjs.map +0 -1
  112. package/dist/sdk/chunk-DGIH6EX3.mjs.map +0 -1
  113. package/dist/sdk/chunk-QGBASDYP.mjs +0 -46153
  114. package/dist/sdk/chunk-QGBASDYP.mjs.map +0 -1
  115. package/dist/sdk/chunk-VMVIM4JB.mjs.map +0 -1
  116. package/dist/sdk/host-VBBSLUWG.mjs +0 -87
  117. package/dist/sdk/host-VBBSLUWG.mjs.map +0 -1
  118. package/dist/sdk/schedule-tool-ADUXTCY7.mjs +0 -37
  119. package/dist/sdk/schedule-tool-handler-QOJVFRB4.mjs +0 -41
  120. package/dist/sdk/workflow-check-provider-CJXW2Z4F.mjs +0 -31
  121. package/dist/sdk/workflow-check-provider-CJXW2Z4F.mjs.map +0 -1
  122. package/dist/sdk/workflow-check-provider-NTHC5ZBF.mjs.map +0 -1
  123. package/dist/sdk/workflow-check-provider-SRIMWKLQ.mjs.map +0 -1
  124. package/dist/traces/run-2026-03-17T13-58-29-402Z.ndjson +0 -157
  125. package/dist/traces/run-2026-03-17T13-59-10-403Z.ndjson +0 -2333
  126. /package/dist/sdk/{check-provider-registry-4YFVBGYU.mjs.map → check-provider-registry-I4BCWKRU.mjs.map} +0 -0
  127. /package/dist/sdk/{check-provider-registry-4YKTEDKF.mjs.map → check-provider-registry-RRWCXSTG.mjs.map} +0 -0
  128. /package/dist/sdk/{chunk-7YZSSO4X.mjs.map → chunk-6DPPP7LD.mjs.map} +0 -0
  129. /package/dist/sdk/{chunk-VXC2XNQJ.mjs.map → chunk-ANUT54HW.mjs.map} +0 -0
  130. /package/dist/sdk/{chunk-J73GEFPT.mjs.map → chunk-DHETLQIX.mjs.map} +0 -0
  131. /package/dist/sdk/{check-provider-registry-67ZLGDDQ.mjs.map → config-2STD74CJ.mjs.map} +0 -0
  132. /package/dist/sdk/{config-TSA5FUOM.mjs.map → config-JE4HKTWW.mjs.map} +0 -0
  133. /package/dist/sdk/{failure-condition-evaluator-HTPB5FYW.mjs.map → failure-condition-evaluator-5DZYMCGW.mjs.map} +0 -0
  134. /package/dist/sdk/{github-frontend-3SDFCCKI.mjs.map → github-frontend-L3F5JXPJ.mjs.map} +0 -0
  135. /package/dist/sdk/{host-CVH2CSHM.mjs.map → host-QBJ7TOWG.mjs.map} +0 -0
  136. /package/dist/sdk/{host-QE4L7UXE.mjs.map → host-X5ZZCEWN.mjs.map} +0 -0
  137. /package/dist/sdk/{routing-YVMTKFDZ.mjs.map → routing-CVQT4KHX.mjs.map} +0 -0
  138. /package/dist/sdk/{schedule-tool-ADUXTCY7.mjs.map → schedule-tool-AECLFHSY.mjs.map} +0 -0
  139. /package/dist/sdk/{schedule-tool-Z5VG67JK.mjs.map → schedule-tool-Z6QYL2B3.mjs.map} +0 -0
  140. /package/dist/sdk/{schedule-tool-ZMX3Y7LF.mjs.map → schedule-tool-handler-6QLZRTQA.mjs.map} +0 -0
  141. /package/dist/sdk/{schedule-tool-handler-N7UNABOA.mjs.map → schedule-tool-handler-J4NUETJ6.mjs.map} +0 -0
  142. /package/dist/sdk/{schedule-tool-handler-PCERK6ZZ.mjs.map → trace-helpers-WJXYVV4S.mjs.map} +0 -0
  143. /package/dist/sdk/{schedule-tool-handler-QOJVFRB4.mjs.map → workflow-check-provider-EXMC6JIS.mjs.map} +0 -0
  144. /package/dist/sdk/{trace-helpers-KXDOJWBL.mjs.map → workflow-check-provider-VKYGI5GK.mjs.map} +0 -0
@@ -58,7 +58,7 @@ import {
58
58
  import {
59
59
  config_exports,
60
60
  init_config
61
- } from "./chunk-VMVIM4JB.mjs";
61
+ } from "./chunk-4I3TJ7UJ.mjs";
62
62
  import {
63
63
  ExecutionJournal,
64
64
  checkLoopBudget,
@@ -4295,7 +4295,7 @@ async function executeWorkflowAsTool(workflowId, args, context2, argsOverrides)
4295
4295
  ...args,
4296
4296
  ...argsOverrides
4297
4297
  };
4298
- const { WorkflowCheckProvider: WorkflowCheckProvider2 } = await import("./workflow-check-provider-SRIMWKLQ.mjs");
4298
+ const { WorkflowCheckProvider: WorkflowCheckProvider2 } = await import("./workflow-check-provider-VKYGI5GK.mjs");
4299
4299
  const provider = new WorkflowCheckProvider2();
4300
4300
  const checkConfig = {
4301
4301
  type: "workflow",
@@ -14041,7 +14041,7 @@ var init_state_machine_execution_engine = __esm({
14041
14041
  try {
14042
14042
  const map = options?.webhookContext?.webhookData;
14043
14043
  if (map) {
14044
- const { CheckProviderRegistry: CheckProviderRegistry2 } = await import("./check-provider-registry-4YKTEDKF.mjs");
14044
+ const { CheckProviderRegistry: CheckProviderRegistry2 } = await import("./check-provider-registry-RRWCXSTG.mjs");
14045
14045
  const reg = CheckProviderRegistry2.getInstance();
14046
14046
  const p = reg.getProvider("http_input");
14047
14047
  if (p && typeof p.setWebhookContext === "function") p.setWebhookContext(map);
@@ -14154,7 +14154,7 @@ var init_state_machine_execution_engine = __esm({
14154
14154
  logger.info("[StateMachine] Using state machine engine");
14155
14155
  }
14156
14156
  if (!config) {
14157
- const { ConfigManager } = await import("./config-TSA5FUOM.mjs");
14157
+ const { ConfigManager } = await import("./config-2STD74CJ.mjs");
14158
14158
  const configManager = new ConfigManager();
14159
14159
  config = await configManager.getDefaultConfig();
14160
14160
  logger.debug("[StateMachine] Using default configuration (no config provided)");
@@ -14164,7 +14164,7 @@ var init_state_machine_execution_engine = __esm({
14164
14164
  tag_filter: tagFilter
14165
14165
  } : config;
14166
14166
  try {
14167
- const { CheckProviderRegistry: CheckProviderRegistry2 } = await import("./check-provider-registry-4YKTEDKF.mjs");
14167
+ const { CheckProviderRegistry: CheckProviderRegistry2 } = await import("./check-provider-registry-RRWCXSTG.mjs");
14168
14168
  const registry = CheckProviderRegistry2.getInstance();
14169
14169
  registry.setCustomTools(configWithTagFilter.tools || {});
14170
14170
  } catch (error) {
@@ -14228,7 +14228,7 @@ var init_state_machine_execution_engine = __esm({
14228
14228
  try {
14229
14229
  const webhookData = this.executionContext?.webhookContext?.webhookData;
14230
14230
  if (webhookData instanceof Map) {
14231
- const { extractSlackContext: extractSlackContext2 } = await import("./schedule-tool-handler-N7UNABOA.mjs");
14231
+ const { extractSlackContext: extractSlackContext2 } = await import("./schedule-tool-handler-J4NUETJ6.mjs");
14232
14232
  const slackCtx = extractSlackContext2(webhookData);
14233
14233
  if (slackCtx) {
14234
14234
  const payload = Array.from(webhookData.values())[0];
@@ -14257,7 +14257,7 @@ var init_state_machine_execution_engine = __esm({
14257
14257
  if (Array.isArray(configWithTagFilter.frontends) && configWithTagFilter.frontends.length > 0) {
14258
14258
  try {
14259
14259
  const { EventBus } = await import("./event-bus-5K3Y2FCS.mjs");
14260
- const { FrontendsHost } = await import("./host-CVH2CSHM.mjs");
14260
+ const { FrontendsHost } = await import("./host-X5ZZCEWN.mjs");
14261
14261
  const bus = new EventBus();
14262
14262
  context2.eventBus = bus;
14263
14263
  frontendsHost = new FrontendsHost(bus, logger);
@@ -42425,8 +42425,8 @@ function buildBuiltinGlobals(opts) {
42425
42425
  const asyncFunctionNames = /* @__PURE__ */ new Set();
42426
42426
  const scheduleFn = async (args = {}) => {
42427
42427
  try {
42428
- const { handleScheduleAction: handleScheduleAction2, buildScheduleToolContext: buildScheduleToolContext2 } = await import("./schedule-tool-ADUXTCY7.mjs");
42429
- const { extractSlackContext: extractSlackContext2 } = await import("./schedule-tool-handler-N7UNABOA.mjs");
42428
+ const { handleScheduleAction: handleScheduleAction2, buildScheduleToolContext: buildScheduleToolContext2 } = await import("./schedule-tool-Z6QYL2B3.mjs");
42429
+ const { extractSlackContext: extractSlackContext2 } = await import("./schedule-tool-handler-J4NUETJ6.mjs");
42430
42430
  const parentCtx = opts.sessionInfo?._parentContext;
42431
42431
  const webhookData = parentCtx?.prInfo?.eventContext?.webhookData;
42432
42432
  const visorCfg = parentCtx?.config;
@@ -46150,4 +46150,4 @@ undici/lib/fetch/body.js:
46150
46150
  undici/lib/websocket/frame.js:
46151
46151
  (*! ws. MIT License. Einar Otto Stangvik <einaros@gmail.com> *)
46152
46152
  */
46153
- //# sourceMappingURL=chunk-7YZSSO4X.mjs.map
46153
+ //# sourceMappingURL=chunk-6DPPP7LD.mjs.map
@@ -0,0 +1,296 @@
1
+ import {
2
+ getInstanceId,
3
+ init_instance_id,
4
+ require_package
5
+ } from "./chunk-QXT47ZHR.mjs";
6
+ import {
7
+ init_metrics,
8
+ metrics_exports
9
+ } from "./chunk-34QX63WK.mjs";
10
+ import {
11
+ SpanStatusCode,
12
+ context,
13
+ init_lazy_otel,
14
+ trace
15
+ } from "./chunk-UCMJJ3IM.mjs";
16
+ import {
17
+ __esm,
18
+ __export,
19
+ __require,
20
+ __toCommonJS
21
+ } from "./chunk-J7LXIPZS.mjs";
22
+
23
+ // src/telemetry/fallback-ndjson.ts
24
+ var fallback_ndjson_exports = {};
25
+ __export(fallback_ndjson_exports, {
26
+ emitNdjsonFallback: () => emitNdjsonFallback,
27
+ emitNdjsonSpanWithEvents: () => emitNdjsonSpanWithEvents,
28
+ flushNdjson: () => flushNdjson
29
+ });
30
+ import * as fs from "fs";
31
+ import * as path from "path";
32
+ function resolveTargetPath(outDir) {
33
+ if (process.env.VISOR_FALLBACK_TRACE_FILE) {
34
+ CURRENT_FILE = process.env.VISOR_FALLBACK_TRACE_FILE;
35
+ return CURRENT_FILE;
36
+ }
37
+ if (CURRENT_FILE) return CURRENT_FILE;
38
+ const ts = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-");
39
+ CURRENT_FILE = path.join(outDir, `${ts}.ndjson`);
40
+ return CURRENT_FILE;
41
+ }
42
+ function isEnabled() {
43
+ if (process.env.VISOR_FALLBACK_TRACE_FILE) return true;
44
+ return process.env.VISOR_TELEMETRY_ENABLED === "true" && (process.env.VISOR_TELEMETRY_SINK || "file") === "file";
45
+ }
46
+ function appendAsync(outDir, line) {
47
+ writeChain = writeChain.then(async () => {
48
+ if (!dirReady) {
49
+ try {
50
+ await fs.promises.mkdir(outDir, { recursive: true });
51
+ } catch {
52
+ }
53
+ dirReady = true;
54
+ }
55
+ const target = resolveTargetPath(outDir);
56
+ await fs.promises.appendFile(target, line, "utf8");
57
+ }).catch(() => {
58
+ });
59
+ }
60
+ async function flushNdjson() {
61
+ try {
62
+ await writeChain;
63
+ } catch {
64
+ }
65
+ }
66
+ function emitNdjsonFallback(name, attrs) {
67
+ try {
68
+ if (!isEnabled()) return;
69
+ const outDir = process.env.VISOR_TRACE_DIR || path.join(process.cwd(), "output", "traces");
70
+ const line = JSON.stringify({ name, attributes: attrs }) + "\n";
71
+ appendAsync(outDir, line);
72
+ } catch {
73
+ }
74
+ }
75
+ function emitNdjsonSpanWithEvents(name, attrs, events) {
76
+ try {
77
+ if (!isEnabled()) return;
78
+ const outDir = process.env.VISOR_TRACE_DIR || path.join(process.cwd(), "output", "traces");
79
+ const line = JSON.stringify({ name, attributes: attrs, events }) + "\n";
80
+ appendAsync(outDir, line);
81
+ } catch {
82
+ }
83
+ }
84
+ var CURRENT_FILE, dirReady, writeChain;
85
+ var init_fallback_ndjson = __esm({
86
+ "src/telemetry/fallback-ndjson.ts"() {
87
+ "use strict";
88
+ CURRENT_FILE = null;
89
+ dirReady = false;
90
+ writeChain = Promise.resolve();
91
+ }
92
+ });
93
+
94
+ // src/telemetry/trace-helpers.ts
95
+ var trace_helpers_exports = {};
96
+ __export(trace_helpers_exports, {
97
+ __getOrCreateNdjsonPath: () => __getOrCreateNdjsonPath,
98
+ _appendRunMarker: () => _appendRunMarker,
99
+ addEvent: () => addEvent,
100
+ getTracer: () => getTracer,
101
+ getVisorRunAttributes: () => getVisorRunAttributes,
102
+ setSpanAttributes: () => setSpanAttributes,
103
+ setSpanError: () => setSpanError,
104
+ withActiveSpan: () => withActiveSpan,
105
+ withVisorRun: () => withVisorRun
106
+ });
107
+ function getTracer() {
108
+ return trace.getTracer("visor");
109
+ }
110
+ async function withActiveSpan(name, attrs, fn) {
111
+ const tracer = getTracer();
112
+ return await new Promise((resolve, reject) => {
113
+ const callback = async (span) => {
114
+ try {
115
+ const res = await fn(span);
116
+ resolve(res);
117
+ } catch (err) {
118
+ try {
119
+ if (err instanceof Error) span.recordException(err);
120
+ span.setStatus({ code: SpanStatusCode.ERROR });
121
+ } catch {
122
+ }
123
+ reject(err);
124
+ } finally {
125
+ try {
126
+ span.end();
127
+ } catch {
128
+ }
129
+ }
130
+ };
131
+ const options = attrs ? { attributes: attrs } : {};
132
+ tracer.startActiveSpan(name, options, callback);
133
+ });
134
+ }
135
+ function addEvent(name, attrs) {
136
+ const span = trace.getSpan(context.active());
137
+ if (span) {
138
+ try {
139
+ span.addEvent(name, attrs);
140
+ } catch {
141
+ }
142
+ }
143
+ try {
144
+ const { emitNdjsonSpanWithEvents: emitNdjsonSpanWithEvents2 } = (init_fallback_ndjson(), __toCommonJS(fallback_ndjson_exports));
145
+ emitNdjsonSpanWithEvents2("visor.event", {}, [{ name, attrs }]);
146
+ if (name === "fail_if.triggered") {
147
+ emitNdjsonSpanWithEvents2("visor.event", {}, [
148
+ { name: "fail_if.evaluated", attrs },
149
+ { name: "fail_if.triggered", attrs }
150
+ ]);
151
+ }
152
+ } catch {
153
+ }
154
+ }
155
+ function setSpanAttributes(attrs) {
156
+ const span = trace.getSpan(context.active());
157
+ if (!span) return;
158
+ try {
159
+ for (const [k, v] of Object.entries(attrs)) span.setAttribute(k, v);
160
+ } catch {
161
+ }
162
+ }
163
+ function setSpanError(err) {
164
+ const span = trace.getSpan(context.active());
165
+ if (!span) return;
166
+ try {
167
+ if (err instanceof Error) span.recordException(err);
168
+ span.setStatus({ code: SpanStatusCode.ERROR });
169
+ } catch {
170
+ }
171
+ }
172
+ function getVisorRunAttributes() {
173
+ const attrs = {};
174
+ try {
175
+ attrs["visor.version"] = process.env.VISOR_VERSION || (require_package()?.version ?? "dev");
176
+ } catch {
177
+ attrs["visor.version"] = "dev";
178
+ }
179
+ const commitShort = process.env.VISOR_COMMIT_SHORT || "";
180
+ const commitFull = process.env.VISOR_COMMIT_SHA || process.env.VISOR_COMMIT || "";
181
+ if (commitShort) {
182
+ attrs["visor.commit"] = commitShort;
183
+ }
184
+ if (commitFull) {
185
+ attrs["visor.commit.sha"] = commitFull;
186
+ }
187
+ attrs["visor.instance_id"] = getInstanceId();
188
+ return attrs;
189
+ }
190
+ async function withVisorRun(attrs, runMeta, fn) {
191
+ const {
192
+ recordRunStart,
193
+ recordRunDuration,
194
+ resetRunAiCalls,
195
+ recordRunAiCalls,
196
+ getRunAiCalls
197
+ } = (init_metrics(), __toCommonJS(metrics_exports));
198
+ const instanceId = getInstanceId();
199
+ recordRunStart({
200
+ source: runMeta.source,
201
+ userId: runMeta.userId,
202
+ userName: runMeta.userName,
203
+ workflowId: runMeta.workflowId,
204
+ instanceId
205
+ });
206
+ resetRunAiCalls();
207
+ const startMs = Date.now();
208
+ let success = true;
209
+ try {
210
+ return await withActiveSpan("visor.run", attrs, async (span) => {
211
+ try {
212
+ return await fn(span);
213
+ } finally {
214
+ try {
215
+ span.setAttribute("visor.run.ai_calls", getRunAiCalls());
216
+ span.setAttribute("visor.run.duration_ms", Date.now() - startMs);
217
+ } catch {
218
+ }
219
+ }
220
+ });
221
+ } catch (err) {
222
+ success = false;
223
+ throw err;
224
+ } finally {
225
+ recordRunAiCalls({
226
+ source: runMeta.source,
227
+ workflowId: runMeta.workflowId
228
+ });
229
+ recordRunDuration(Date.now() - startMs, {
230
+ source: runMeta.source,
231
+ userId: runMeta.userId,
232
+ workflowId: runMeta.workflowId,
233
+ success
234
+ });
235
+ }
236
+ }
237
+ function __getOrCreateNdjsonPath() {
238
+ try {
239
+ if (process.env.VISOR_TELEMETRY_SINK && process.env.VISOR_TELEMETRY_SINK !== "file")
240
+ return null;
241
+ const path2 = __require("path");
242
+ const fs2 = __require("fs");
243
+ if (process.env.VISOR_FALLBACK_TRACE_FILE) {
244
+ __ndjsonPath = process.env.VISOR_FALLBACK_TRACE_FILE;
245
+ const dir = path2.dirname(__ndjsonPath);
246
+ if (!fs2.existsSync(dir)) fs2.mkdirSync(dir, { recursive: true });
247
+ return __ndjsonPath;
248
+ }
249
+ const outDir = process.env.VISOR_TRACE_DIR || path2.join(process.cwd(), "output", "traces");
250
+ if (!fs2.existsSync(outDir)) fs2.mkdirSync(outDir, { recursive: true });
251
+ if (!__ndjsonPath) {
252
+ const ts = (/* @__PURE__ */ new Date()).toISOString().replace(/[:.]/g, "-");
253
+ __ndjsonPath = path2.join(outDir, `${ts}.ndjson`);
254
+ }
255
+ return __ndjsonPath;
256
+ } catch {
257
+ return null;
258
+ }
259
+ }
260
+ function _appendRunMarker() {
261
+ try {
262
+ const fs2 = __require("fs");
263
+ const p = __getOrCreateNdjsonPath();
264
+ if (!p) return;
265
+ const line = { name: "visor.run", attributes: { started: true } };
266
+ fs2.appendFileSync(p, JSON.stringify(line) + "\n", "utf8");
267
+ } catch {
268
+ }
269
+ }
270
+ var __ndjsonPath;
271
+ var init_trace_helpers = __esm({
272
+ "src/telemetry/trace-helpers.ts"() {
273
+ init_lazy_otel();
274
+ init_instance_id();
275
+ __ndjsonPath = null;
276
+ }
277
+ });
278
+
279
+ export {
280
+ emitNdjsonFallback,
281
+ emitNdjsonSpanWithEvents,
282
+ fallback_ndjson_exports,
283
+ init_fallback_ndjson,
284
+ getTracer,
285
+ withActiveSpan,
286
+ addEvent,
287
+ setSpanAttributes,
288
+ setSpanError,
289
+ getVisorRunAttributes,
290
+ withVisorRun,
291
+ __getOrCreateNdjsonPath,
292
+ _appendRunMarker,
293
+ trace_helpers_exports,
294
+ init_trace_helpers
295
+ };
296
+ //# sourceMappingURL=chunk-7ERVRLDV.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../../src/telemetry/fallback-ndjson.ts","../../src/telemetry/trace-helpers.ts"],"sourcesContent":["import * as fs from 'fs';\nimport * as path from 'path';\n\nlet CURRENT_FILE: string | null = null;\nlet dirReady = false;\nlet writeChain: Promise<void> = Promise.resolve();\nfunction resolveTargetPath(outDir: string): string {\n if (process.env.VISOR_FALLBACK_TRACE_FILE) {\n CURRENT_FILE = process.env.VISOR_FALLBACK_TRACE_FILE;\n return CURRENT_FILE;\n }\n if (CURRENT_FILE) return CURRENT_FILE;\n const ts = new Date().toISOString().replace(/[:.]/g, '-');\n CURRENT_FILE = path.join(outDir, `${ts}.ndjson`);\n return CURRENT_FILE;\n}\n\nfunction isEnabled(): boolean {\n // Enable when CLI set a fallback file (serverless mode), or when explicit file sink is enabled\n if (process.env.VISOR_FALLBACK_TRACE_FILE) return true;\n return (\n process.env.VISOR_TELEMETRY_ENABLED === 'true' &&\n (process.env.VISOR_TELEMETRY_SINK || 'file') === 'file'\n );\n}\n\nfunction appendAsync(outDir: string, line: string): void {\n writeChain = writeChain\n .then(async () => {\n if (!dirReady) {\n try {\n await fs.promises.mkdir(outDir, { recursive: true });\n } catch {}\n dirReady = true;\n }\n const target = resolveTargetPath(outDir);\n await fs.promises.appendFile(target, line, 'utf8');\n })\n .catch(() => {});\n}\n\nexport async function flushNdjson(): Promise<void> {\n try {\n await writeChain;\n } catch {}\n}\n\nexport function emitNdjsonFallback(name: string, attrs: Record<string, unknown>): void {\n try {\n if (!isEnabled()) return;\n const outDir = process.env.VISOR_TRACE_DIR || path.join(process.cwd(), 'output', 'traces');\n const line = JSON.stringify({ name, attributes: attrs }) + '\\n';\n appendAsync(outDir, line);\n } catch {\n // ignore\n }\n}\n\nexport function emitNdjsonSpanWithEvents(\n name: string,\n attrs: Record<string, unknown>,\n events: Array<{ name: string; attrs?: Record<string, unknown> }>\n): void {\n try {\n if (!isEnabled()) return;\n const outDir = process.env.VISOR_TRACE_DIR || path.join(process.cwd(), 'output', 'traces');\n const line = JSON.stringify({ name, attributes: attrs, events }) + '\\n';\n appendAsync(outDir, line);\n } catch {\n // ignore\n }\n}\n","import { context as otContext, Span, SpanStatusCode, trace, Attributes } from './lazy-otel';\nimport { getInstanceId } from '../utils/instance-id';\n\nexport function getTracer() {\n return trace.getTracer('visor');\n}\n\nexport async function withActiveSpan<T>(\n name: string,\n attrs: Record<string, unknown> | undefined,\n fn: (span: Span) => Promise<T>\n): Promise<T> {\n const tracer = getTracer();\n // Preserve parent context via tracer API; avoid logging parent IDs to stdout\n // Avoid noisy stdout logs that break JSON consumers\n return await new Promise<T>((resolve, reject) => {\n const callback = async (span: Span) => {\n // console.debug(`[trace] Span callback invoked for: [trace_id=${ctx.traceId} span_id=${ctx.spanId}] ${name} span: true`);\n try {\n const res = await fn(span);\n // console.debug('[trace] Span execution completed for:', name);\n resolve(res);\n } catch (err) {\n // console.debug('[trace] Span execution errored for:', name, err);\n try {\n if (err instanceof Error) span.recordException(err);\n span.setStatus({ code: SpanStatusCode.ERROR });\n } catch {}\n reject(err);\n } finally {\n try {\n // console.debug('[trace] Ending span:', name);\n span.end();\n } catch {}\n }\n };\n // startActiveSpan should use the current active context to set parent automatically\n const options = attrs ? { attributes: attrs as Attributes } : {};\n tracer.startActiveSpan(name, options, callback);\n });\n}\n\nexport function addEvent(name: string, attrs?: Record<string, unknown>): void {\n const span = trace.getSpan(otContext.active());\n if (span) {\n try {\n span.addEvent(name, attrs as Attributes);\n } catch {\n // ignore\n }\n }\n // Fallback NDJSON emission for serverless/file sink when SDK may be inactive\n try {\n const { emitNdjsonSpanWithEvents } = require('./fallback-ndjson');\n emitNdjsonSpanWithEvents('visor.event', {}, [{ name, attrs }]);\n if (name === 'fail_if.triggered') {\n emitNdjsonSpanWithEvents('visor.event', {}, [\n { name: 'fail_if.evaluated', attrs },\n { name: 'fail_if.triggered', attrs },\n ]);\n }\n } catch {}\n}\n\nexport function setSpanAttributes(attrs: Record<string, unknown>): void {\n const span = trace.getSpan(otContext.active());\n if (!span) return;\n try {\n for (const [k, v] of Object.entries(attrs)) span.setAttribute(k, v as never);\n } catch {\n // ignore\n }\n}\n\nexport function setSpanError(err: unknown): void {\n const span = trace.getSpan(otContext.active());\n if (!span) return;\n try {\n if (err instanceof Error) span.recordException(err);\n span.setStatus({ code: SpanStatusCode.ERROR });\n } catch {\n // ignore\n }\n}\n\n/**\n * Return standard visor.* resource attributes for the root `visor.run` span.\n * Reads version from package.json / env and git commit short SHA from env.\n */\nexport function getVisorRunAttributes(): Record<string, string> {\n const attrs: Record<string, string> = {};\n try {\n attrs['visor.version'] =\n process.env.VISOR_VERSION || (require('../../package.json')?.version ?? 'dev');\n } catch {\n attrs['visor.version'] = 'dev';\n }\n const commitShort = process.env.VISOR_COMMIT_SHORT || '';\n const commitFull = process.env.VISOR_COMMIT_SHA || process.env.VISOR_COMMIT || '';\n if (commitShort) {\n attrs['visor.commit'] = commitShort;\n }\n if (commitFull) {\n attrs['visor.commit.sha'] = commitFull;\n }\n attrs['visor.instance_id'] = getInstanceId();\n return attrs;\n}\n\n/**\n * Wraps a visor.run span with automatic run metrics (counter + duration histogram).\n * Use this instead of raw `withActiveSpan('visor.run', ...)` to get metrics for free.\n */\nexport async function withVisorRun<T>(\n attrs: Record<string, unknown>,\n runMeta: {\n source?: string;\n userId?: string;\n userName?: string;\n workflowId?: string;\n },\n fn: (span: Span) => Promise<T>\n): Promise<T> {\n const {\n recordRunStart,\n recordRunDuration,\n resetRunAiCalls,\n recordRunAiCalls,\n getRunAiCalls,\n } = require('./metrics');\n const instanceId = getInstanceId();\n recordRunStart({\n source: runMeta.source,\n userId: runMeta.userId,\n userName: runMeta.userName,\n workflowId: runMeta.workflowId,\n instanceId,\n });\n resetRunAiCalls();\n const startMs = Date.now();\n let success = true;\n try {\n return await withActiveSpan('visor.run', attrs, async span => {\n try {\n return await fn(span);\n } finally {\n // Record AI call count as span attribute for trace visibility\n try {\n span.setAttribute('visor.run.ai_calls', getRunAiCalls());\n span.setAttribute('visor.run.duration_ms', Date.now() - startMs);\n } catch {}\n }\n });\n } catch (err) {\n success = false;\n throw err;\n } finally {\n recordRunAiCalls({\n source: runMeta.source,\n workflowId: runMeta.workflowId,\n });\n recordRunDuration(Date.now() - startMs, {\n source: runMeta.source,\n userId: runMeta.userId,\n workflowId: runMeta.workflowId,\n success,\n });\n }\n}\n\n// Internal helper for tests: write a minimal run marker to NDJSON when using file sink\nlet __ndjsonPath: string | null = null;\nexport function __getOrCreateNdjsonPath(): string | null {\n try {\n // If sink is explicitly set to non-file, skip. If unset, still allow when a trace dir/file is configured.\n if (process.env.VISOR_TELEMETRY_SINK && process.env.VISOR_TELEMETRY_SINK !== 'file')\n return null;\n const path = require('path');\n const fs = require('fs');\n // Prefer explicit fallback file path if set by the CLI\n if (process.env.VISOR_FALLBACK_TRACE_FILE) {\n __ndjsonPath = process.env.VISOR_FALLBACK_TRACE_FILE;\n const dir = path.dirname(__ndjsonPath);\n if (!fs.existsSync(dir)) fs.mkdirSync(dir, { recursive: true });\n return __ndjsonPath;\n }\n const outDir = process.env.VISOR_TRACE_DIR || path.join(process.cwd(), 'output', 'traces');\n if (!fs.existsSync(outDir)) fs.mkdirSync(outDir, { recursive: true });\n if (!__ndjsonPath) {\n const ts = new Date().toISOString().replace(/[:.]/g, '-');\n __ndjsonPath = path.join(outDir, `${ts}.ndjson`);\n }\n return __ndjsonPath;\n } catch {\n return null;\n }\n}\nexport function _appendRunMarker(): void {\n try {\n const fs = require('fs');\n const p = __getOrCreateNdjsonPath();\n if (!p) return;\n const line = { name: 'visor.run', attributes: { started: true } };\n fs.appendFileSync(p, JSON.stringify(line) + '\\n', 'utf8');\n } catch {}\n}\n"],"mappings":"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","names":["emitNdjsonSpanWithEvents","path","fs"]}
@@ -1,11 +1,11 @@
1
1
  import {
2
2
  FailureConditionEvaluator,
3
3
  init_failure_condition_evaluator
4
- } from "./chunk-J73GEFPT.mjs";
4
+ } from "./chunk-DHETLQIX.mjs";
5
5
  import {
6
6
  addEvent,
7
7
  init_trace_helpers
8
- } from "./chunk-DGIH6EX3.mjs";
8
+ } from "./chunk-7ERVRLDV.mjs";
9
9
  import {
10
10
  createExtendedLiquid,
11
11
  init_liquid_extensions
@@ -1499,4 +1499,4 @@ export {
1499
1499
  evaluateTransitions,
1500
1500
  init_routing
1501
1501
  };
1502
- //# sourceMappingURL=chunk-VXC2XNQJ.mjs.map
1502
+ //# sourceMappingURL=chunk-ANUT54HW.mjs.map
@@ -3,7 +3,7 @@ import {
3
3
  fallback_ndjson_exports,
4
4
  init_fallback_ndjson,
5
5
  init_trace_helpers
6
- } from "./chunk-DGIH6EX3.mjs";
6
+ } from "./chunk-7ERVRLDV.mjs";
7
7
  import {
8
8
  addFailIfTriggered,
9
9
  init_metrics
@@ -736,4 +736,4 @@ export {
736
736
  failure_condition_evaluator_exports,
737
737
  init_failure_condition_evaluator
738
738
  };
739
- //# sourceMappingURL=chunk-J73GEFPT.mjs.map
739
+ //# sourceMappingURL=chunk-DHETLQIX.mjs.map