qyl-mcp-server 0.1.0

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 (77) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +41 -0
  3. package/dist/atomic-json-store.d.ts +37 -0
  4. package/dist/atomic-json-store.js +143 -0
  5. package/dist/atomic-json-store.js.map +1 -0
  6. package/dist/ci.d.ts +51 -0
  7. package/dist/ci.js +158 -0
  8. package/dist/ci.js.map +1 -0
  9. package/dist/collector.d.ts +43 -0
  10. package/dist/collector.js +163 -0
  11. package/dist/collector.js.map +1 -0
  12. package/dist/config.d.ts +14 -0
  13. package/dist/config.js +39 -0
  14. package/dist/config.js.map +1 -0
  15. package/dist/contract-validation.d.ts +146 -0
  16. package/dist/contract-validation.js +350 -0
  17. package/dist/contract-validation.js.map +1 -0
  18. package/dist/data.d.ts +46 -0
  19. package/dist/data.js +138 -0
  20. package/dist/data.js.map +1 -0
  21. package/dist/demo.d.ts +23 -0
  22. package/dist/demo.js +836 -0
  23. package/dist/demo.js.map +1 -0
  24. package/dist/execution-evidence.d.ts +13 -0
  25. package/dist/execution-evidence.js +81 -0
  26. package/dist/execution-evidence.js.map +1 -0
  27. package/dist/execution-result.d.ts +5 -0
  28. package/dist/execution-result.js +17 -0
  29. package/dist/execution-result.js.map +1 -0
  30. package/dist/http-security.d.ts +36 -0
  31. package/dist/http-security.js +101 -0
  32. package/dist/http-security.js.map +1 -0
  33. package/dist/log-body.d.ts +3 -0
  34. package/dist/log-body.js +12 -0
  35. package/dist/log-body.js.map +1 -0
  36. package/dist/main.d.ts +51 -0
  37. package/dist/main.js +215 -0
  38. package/dist/main.js.map +1 -0
  39. package/dist/mcp-app.html +218 -0
  40. package/dist/mcp-dashboard.html +223 -0
  41. package/dist/mcp-errors.d.ts +5 -0
  42. package/dist/mcp-errors.js +15 -0
  43. package/dist/mcp-errors.js.map +1 -0
  44. package/dist/mcp-semconv.d.ts +68 -0
  45. package/dist/mcp-semconv.js +208 -0
  46. package/dist/mcp-semconv.js.map +1 -0
  47. package/dist/native-execution.d.ts +132 -0
  48. package/dist/native-execution.js +508 -0
  49. package/dist/native-execution.js.map +1 -0
  50. package/dist/observability-suppression.d.ts +8 -0
  51. package/dist/observability-suppression.js +15 -0
  52. package/dist/observability-suppression.js.map +1 -0
  53. package/dist/secret-redactor.d.ts +30 -0
  54. package/dist/secret-redactor.js +255 -0
  55. package/dist/secret-redactor.js.map +1 -0
  56. package/dist/server.d.ts +25 -0
  57. package/dist/server.js +207 -0
  58. package/dist/server.js.map +1 -0
  59. package/dist/stats.d.ts +18 -0
  60. package/dist/stats.js +141 -0
  61. package/dist/stats.js.map +1 -0
  62. package/dist/summaries.d.ts +14 -0
  63. package/dist/summaries.js +128 -0
  64. package/dist/summaries.js.map +1 -0
  65. package/dist/telemetry-redaction.d.ts +6 -0
  66. package/dist/telemetry-redaction.js +28 -0
  67. package/dist/telemetry-redaction.js.map +1 -0
  68. package/dist/telemetry.d.ts +72 -0
  69. package/dist/telemetry.js +362 -0
  70. package/dist/telemetry.js.map +1 -0
  71. package/dist/tools.d.ts +17 -0
  72. package/dist/tools.js +111 -0
  73. package/dist/tools.js.map +1 -0
  74. package/dist/wire.d.ts +10 -0
  75. package/dist/wire.js +7 -0
  76. package/dist/wire.js.map +1 -0
  77. package/package.json +91 -0
@@ -0,0 +1,508 @@
1
+ import { CallToolRequestSchema, CallToolResultSchema, ErrorCode, McpError, } from "@modelcontextprotocol/sdk/types.js";
2
+ import { randomUUID } from "node:crypto";
3
+ import { homedir } from "node:os";
4
+ import { join } from "node:path";
5
+ import { z } from "zod";
6
+ import { AtomicJsonStore } from "./atomic-json-store.js";
7
+ import { extractExecutionEvidence } from "./execution-evidence.js";
8
+ import { MAX_PERSISTED_RESULT_CHARACTERS, sanitizePersistedToolResult, } from "./execution-result.js";
9
+ import { SecretRedactor } from "./secret-redactor.js";
10
+ import { McpTelemetry, } from "./telemetry.js";
11
+ const NATIVE_STATE_VERSION = 1;
12
+ const DEFAULT_MAX_EXECUTIONS = 1_000;
13
+ const NATIVE_SERVER_ID = "qyl.mcp/native";
14
+ const MAX_PROTOCOL_PAYLOAD_CHARACTERS = 64_000;
15
+ const IdentifierSchema = z.string().min(1).max(256);
16
+ const IsoDateSchema = z.string().datetime({ offset: true });
17
+ const JsonRpcRequestIdSchema = z.union([z.string().max(2_048), z.number().finite()]);
18
+ const TokenUsageSchema = z.object({
19
+ inputTokens: z.number().int().nonnegative().optional(),
20
+ outputTokens: z.number().int().nonnegative().optional(),
21
+ totalTokens: z.number().int().nonnegative().optional(),
22
+ estimated: z.boolean(),
23
+ }).strict();
24
+ const CostSchema = z.object({
25
+ amountUsd: z.number().finite().nonnegative(),
26
+ estimated: z.boolean(),
27
+ source: z.string().min(1).max(256).optional(),
28
+ }).strict();
29
+ const ProtocolEventSchema = z.object({
30
+ sequence: z.number().int().positive(),
31
+ timestamp: IsoDateSchema,
32
+ direction: z.enum(["inbound", "outbound"]),
33
+ messageKind: z.enum(["request", "result", "error"]),
34
+ jsonrpc: z.literal("2.0"),
35
+ requestId: JsonRpcRequestIdSchema,
36
+ method: z.literal("tools/call"),
37
+ payload: z.unknown(),
38
+ }).strict();
39
+ const NativeExecutionRecordSchema = z.object({
40
+ id: IdentifierSchema,
41
+ serverId: z.literal(NATIVE_SERVER_ID),
42
+ status: z.enum(["running", "succeeded", "failed"]),
43
+ createdAt: IsoDateSchema,
44
+ startedAt: IsoDateSchema,
45
+ completedAt: IsoDateSchema.optional(),
46
+ durationMs: z.number().finite().nonnegative().optional(),
47
+ attemptCount: z.literal(1),
48
+ request: z.object({
49
+ requestId: JsonRpcRequestIdSchema,
50
+ toolName: z.string().min(1).max(1_024),
51
+ arguments: z.record(z.string(), z.unknown()),
52
+ transport: z.enum([
53
+ "stdio",
54
+ "http",
55
+ "streamable_http",
56
+ "streamable-http",
57
+ "sse",
58
+ "inproc",
59
+ "builtin",
60
+ ]),
61
+ sessionId: z.string().min(1).max(2_048).optional(),
62
+ meta: z.record(z.string(), z.unknown()).optional(),
63
+ }).strict(),
64
+ result: z.unknown().optional(),
65
+ error: z.object({
66
+ code: z.string().min(1).max(128),
67
+ message: z.string().min(1).max(4_096),
68
+ }).strict().optional(),
69
+ tokenUsage: TokenUsageSchema.optional(),
70
+ cost: CostSchema.optional(),
71
+ protocolEvents: z.array(ProtocolEventSchema).min(1).max(2),
72
+ telemetryCorrelation: z.object({
73
+ executionId: IdentifierSchema,
74
+ traceIds: z.array(z.string().regex(/^[0-9a-f]{32}$/u)).max(2),
75
+ spanIds: z.array(z.string().regex(/^[0-9a-f]{16}$/u)).max(2),
76
+ }).strict(),
77
+ }).strict();
78
+ const NativeExecutionStateSchema = z.object({
79
+ version: z.literal(NATIVE_STATE_VERSION),
80
+ executions: z.array(NativeExecutionRecordSchema),
81
+ }).strict();
82
+ /** Durable, redacted native-server evidence kept separately from workbench state. */
83
+ export class FileNativeExecutionRepository {
84
+ store;
85
+ maxExecutions;
86
+ now;
87
+ initialization;
88
+ constructor(options = {}) {
89
+ const environment = options.environment ?? process.env;
90
+ const redactor = options.redactor ?? new SecretRedactor({
91
+ environment,
92
+ maxStringLength: MAX_PERSISTED_RESULT_CHARACTERS + 1,
93
+ });
94
+ this.maxExecutions = positiveInteger(options.maxExecutions ?? DEFAULT_MAX_EXECUTIONS, "maxExecutions");
95
+ this.now = options.now ?? Date.now;
96
+ this.store = new AtomicJsonStore(options.filePath ?? nativeStatePath(environment), {
97
+ initial: () => ({ version: NATIVE_STATE_VERSION, executions: [] }),
98
+ parse: (value) => NativeExecutionStateSchema.parse(value),
99
+ prepareForWrite: (value) => NativeExecutionStateSchema.parse(redactor.redact(value)),
100
+ });
101
+ }
102
+ async save(record) {
103
+ await this.initialize();
104
+ const validated = NativeExecutionRecordSchema.parse(record);
105
+ await this.store.transact((state) => {
106
+ const index = state.executions.findIndex((entry) => entry.id === validated.id);
107
+ if (index < 0)
108
+ state.executions.push(validated);
109
+ else
110
+ state.executions[index] = validated;
111
+ state.executions.sort((left, right) => left.createdAt.localeCompare(right.createdAt));
112
+ if (state.executions.length > this.maxExecutions) {
113
+ state.executions.splice(0, state.executions.length - this.maxExecutions);
114
+ }
115
+ });
116
+ }
117
+ async list() {
118
+ await this.initialize();
119
+ return (await this.store.read()).executions;
120
+ }
121
+ initialize() {
122
+ this.initialization ??= this.initializeCore();
123
+ return this.initialization;
124
+ }
125
+ async initializeCore() {
126
+ await this.store.initialize();
127
+ const completedMs = this.now();
128
+ const completedAt = timestamp(completedMs);
129
+ const current = await this.store.read();
130
+ if (!current.executions.some((record) => record.status === "running"))
131
+ return;
132
+ await this.store.transact((state) => {
133
+ for (const record of state.executions) {
134
+ if (record.status !== "running")
135
+ continue;
136
+ record.status = "failed";
137
+ record.completedAt = completedAt;
138
+ record.durationMs = Math.max(0, completedMs - Date.parse(record.startedAt));
139
+ record.error = {
140
+ code: "process_interrupted",
141
+ message: "The qyl.mcp process stopped before this native tool call completed.",
142
+ };
143
+ }
144
+ });
145
+ }
146
+ }
147
+ /** Owns the automatic inbound tools/call lifecycle and evidence transaction. */
148
+ export class NativeExecutionRuntime {
149
+ repository;
150
+ telemetry;
151
+ redactor;
152
+ now;
153
+ id;
154
+ constructor(repository, options = {}) {
155
+ this.repository = repository;
156
+ this.telemetry = options.telemetry;
157
+ this.redactor = options.redactor ?? new SecretRedactor({
158
+ environment: process.env,
159
+ maxStringLength: MAX_PERSISTED_RESULT_CHARACTERS + 1,
160
+ });
161
+ this.now = options.now ?? Date.now;
162
+ this.id = options.id ?? randomUUID;
163
+ }
164
+ async execute(input, invoke) {
165
+ const startedMs = this.now();
166
+ const executionId = this.id();
167
+ const startedAt = timestamp(startedMs);
168
+ const requestId = input.extra.requestId;
169
+ const durableRequestId = sanitizeRequestId(requestId, this.redactor);
170
+ const toolName = input.request.params.name;
171
+ const operation = this.startTelemetry(input, executionId, startedMs);
172
+ const running = NativeExecutionRecordSchema.parse({
173
+ id: executionId,
174
+ serverId: NATIVE_SERVER_ID,
175
+ status: "running",
176
+ createdAt: startedAt,
177
+ startedAt,
178
+ attemptCount: 1,
179
+ request: {
180
+ requestId: durableRequestId,
181
+ toolName: this.redactor.redactText(toolName).slice(0, 1_024),
182
+ arguments: sanitizeArguments(input.request.params.arguments, this.redactor),
183
+ transport: input.transport,
184
+ ...(input.extra.sessionId === undefined
185
+ ? {}
186
+ : { sessionId: this.redactor.redactText(input.extra.sessionId).slice(0, 2_048) }),
187
+ ...(input.request.params._meta === undefined
188
+ ? {}
189
+ : { meta: sanitizeRecord(input.request.params._meta, this.redactor) }),
190
+ },
191
+ protocolEvents: [requestEvent(input, durableRequestId, startedAt, this.redactor)],
192
+ telemetryCorrelation: correlation(executionId, operation?.correlation),
193
+ });
194
+ try {
195
+ await this.repository.save(running);
196
+ }
197
+ catch (error) {
198
+ operation?.end({
199
+ endTimeMs: this.now(),
200
+ jsonRpcRequestId: requestId,
201
+ errorType: "evidence_persistence_failed",
202
+ });
203
+ throw error;
204
+ }
205
+ let result;
206
+ try {
207
+ const rawResult = await (operation?.run(invoke) ?? invoke());
208
+ result = CallToolResultSchema.parse(rawResult);
209
+ }
210
+ catch (error) {
211
+ const completedMs = this.now();
212
+ const completedAt = timestamp(completedMs);
213
+ const failedRecord = NativeExecutionRecordSchema.parse({
214
+ ...running,
215
+ status: "failed",
216
+ completedAt,
217
+ durationMs: duration(startedMs, completedMs),
218
+ error: errorEvidence(error, this.redactor),
219
+ protocolEvents: [
220
+ ...running.protocolEvents,
221
+ errorEvent(durableRequestId, toolName, completedAt, error, this.redactor),
222
+ ],
223
+ telemetryCorrelation: correlation(executionId, operation?.correlation),
224
+ });
225
+ try {
226
+ await this.repository.save(failedRecord);
227
+ }
228
+ catch (persistenceError) {
229
+ operation?.end({
230
+ endTimeMs: this.now(),
231
+ jsonRpcRequestId: requestId,
232
+ errorType: "evidence_persistence_failed",
233
+ });
234
+ throw persistenceError;
235
+ }
236
+ operation?.end({
237
+ endTimeMs: completedMs,
238
+ jsonRpcRequestId: requestId,
239
+ errorType: errorType(error),
240
+ ...(error instanceof McpError
241
+ ? { rpcResponseStatusCode: String(error.code) }
242
+ : {}),
243
+ });
244
+ throw error;
245
+ }
246
+ const completedMs = this.now();
247
+ const completedAt = timestamp(completedMs);
248
+ const durableResult = sanitizePersistedToolResult(result, this.redactor);
249
+ const evidence = extractExecutionEvidence(result);
250
+ const toolFailed = result.isError === true;
251
+ const completedRecord = NativeExecutionRecordSchema.parse({
252
+ ...running,
253
+ status: toolFailed ? "failed" : "succeeded",
254
+ completedAt,
255
+ durationMs: duration(startedMs, completedMs),
256
+ result: durableResult,
257
+ ...(toolFailed
258
+ ? {
259
+ error: {
260
+ code: "tool_result_error",
261
+ message: "The MCP tool returned an error result.",
262
+ },
263
+ }
264
+ : {}),
265
+ ...evidenceFields(evidence, this.redactor),
266
+ protocolEvents: [
267
+ ...running.protocolEvents,
268
+ resultEvent(durableRequestId, completedAt, durableResult),
269
+ ],
270
+ telemetryCorrelation: correlation(executionId, operation?.correlation),
271
+ });
272
+ try {
273
+ await this.repository.save(completedRecord);
274
+ }
275
+ catch (error) {
276
+ operation?.end({
277
+ endTimeMs: this.now(),
278
+ jsonRpcRequestId: requestId,
279
+ errorType: "evidence_persistence_failed",
280
+ });
281
+ throw error;
282
+ }
283
+ operation?.end({
284
+ endTimeMs: completedMs,
285
+ jsonRpcRequestId: requestId,
286
+ ...(toolFailed ? { errorType: "tool_error" } : {}),
287
+ });
288
+ return result;
289
+ }
290
+ close() {
291
+ return this.telemetry?.close?.() ?? Promise.resolve();
292
+ }
293
+ get telemetryEnabled() {
294
+ return this.telemetry !== undefined;
295
+ }
296
+ startTelemetry(input, executionId, startedMs) {
297
+ try {
298
+ return this.telemetry?.startOperation({
299
+ role: "server",
300
+ method: "tools/call",
301
+ serverId: NATIVE_SERVER_ID,
302
+ toolName: input.request.params.name,
303
+ transport: input.transport,
304
+ ...(input.extra.sessionId === undefined ? {} : { mcpSessionId: input.extra.sessionId }),
305
+ jsonRpcProtocolVersion: "2.0",
306
+ executionId,
307
+ remotePropagation: propagationCarrier(input.request.params._meta),
308
+ startTimeMs: startedMs,
309
+ });
310
+ }
311
+ catch {
312
+ return undefined;
313
+ }
314
+ }
315
+ }
316
+ const instrumentedServers = new WeakSet();
317
+ const nativeTelemetryServers = new WeakSet();
318
+ /** Wrap the SDK's single tools/call dispatcher, covering all current and future tools. */
319
+ export function installNativeExecutionRecording(server, runtime, transport) {
320
+ if (instrumentedServers.has(server))
321
+ return;
322
+ instrumentedServers.add(server);
323
+ if (runtime.telemetryEnabled)
324
+ nativeTelemetryServers.add(server);
325
+ const lowLevel = server.server;
326
+ const original = lowLevel.setRequestHandler.bind(server.server);
327
+ lowLevel.setRequestHandler = (schema, handler) => {
328
+ if (schema !== CallToolRequestSchema) {
329
+ original(schema, handler);
330
+ return;
331
+ }
332
+ original(schema, async (request, extra) => {
333
+ const validated = CallToolRequestSchema.parse(request);
334
+ return runtime.execute({ request: validated, extra, transport }, () => handler(validated, extra));
335
+ });
336
+ };
337
+ }
338
+ export function hasNativeExecutionTelemetry(server) {
339
+ return typeof server === "object" &&
340
+ server !== null &&
341
+ nativeTelemetryServers.has(server);
342
+ }
343
+ let defaultRuntime;
344
+ export function defaultNativeExecutionRuntime(environment = process.env) {
345
+ defaultRuntime ??= createDefaultRuntime(environment);
346
+ return defaultRuntime;
347
+ }
348
+ export async function closeDefaultNativeExecutionRuntime() {
349
+ const runtime = defaultRuntime;
350
+ defaultRuntime = undefined;
351
+ await runtime?.close();
352
+ }
353
+ function createDefaultRuntime(environment) {
354
+ const redactor = new SecretRedactor({
355
+ environment,
356
+ maxStringLength: MAX_PERSISTED_RESULT_CHARACTERS + 1,
357
+ });
358
+ const repository = new FileNativeExecutionRepository({ environment, redactor });
359
+ let telemetry;
360
+ try {
361
+ telemetry = new McpTelemetry(environment, redactor);
362
+ }
363
+ catch {
364
+ telemetry = undefined;
365
+ }
366
+ return new NativeExecutionRuntime(repository, { redactor, telemetry });
367
+ }
368
+ function nativeStatePath(environment) {
369
+ return environment.QYL_MCP_NATIVE_STATE_PATH
370
+ ?? join(homedir(), ".qyl", "mcp-native-executions.json");
371
+ }
372
+ function requestEvent(input, requestId, at, redactor) {
373
+ return {
374
+ sequence: 1,
375
+ timestamp: at,
376
+ direction: "inbound",
377
+ messageKind: "request",
378
+ jsonrpc: "2.0",
379
+ requestId,
380
+ method: "tools/call",
381
+ payload: boundPayload(redactor.redact({
382
+ jsonrpc: "2.0",
383
+ id: requestId,
384
+ method: "tools/call",
385
+ params: input.request.params,
386
+ })),
387
+ };
388
+ }
389
+ function resultEvent(requestId, at, result) {
390
+ return {
391
+ sequence: 2,
392
+ timestamp: at,
393
+ direction: "outbound",
394
+ messageKind: "result",
395
+ jsonrpc: "2.0",
396
+ requestId,
397
+ method: "tools/call",
398
+ payload: boundPayload({ jsonrpc: "2.0", id: requestId, result }),
399
+ };
400
+ }
401
+ function errorEvent(requestId, toolName, at, error, redactor) {
402
+ const evidence = errorEvidence(error, redactor);
403
+ return {
404
+ sequence: 2,
405
+ timestamp: at,
406
+ direction: "outbound",
407
+ messageKind: "error",
408
+ jsonrpc: "2.0",
409
+ requestId,
410
+ method: "tools/call",
411
+ payload: boundPayload({
412
+ jsonrpc: "2.0",
413
+ id: requestId,
414
+ error: {
415
+ code: error instanceof McpError ? error.code : ErrorCode.InternalError,
416
+ message: evidence.message,
417
+ data: { toolName: redactor.redactText(toolName).slice(0, 1_024) },
418
+ },
419
+ }),
420
+ };
421
+ }
422
+ function errorEvidence(error, redactor) {
423
+ const message = redactor.redactText(error instanceof Error ? error.message : String(error));
424
+ return {
425
+ code: errorType(error),
426
+ message: message.trim().length === 0 ? "Native MCP tool execution failed." : message.slice(0, 4_096),
427
+ };
428
+ }
429
+ function errorType(error) {
430
+ if (error instanceof McpError)
431
+ return `mcp_${error.code}`;
432
+ if (error instanceof Error && /^[A-Za-z][A-Za-z0-9]*$/u.test(error.name)) {
433
+ return error.name.slice(0, 128);
434
+ }
435
+ return "native_tool_failure";
436
+ }
437
+ function correlation(executionId, span) {
438
+ return {
439
+ executionId,
440
+ traceIds: span === undefined ? [] : [span.traceId],
441
+ spanIds: span === undefined ? [] : [span.spanId],
442
+ };
443
+ }
444
+ function propagationCarrier(value) {
445
+ if (!isRecord(value))
446
+ return undefined;
447
+ const entries = Object.entries(value)
448
+ .filter((entry) => typeof entry[1] === "string");
449
+ return entries.length === 0 ? undefined : Object.fromEntries(entries);
450
+ }
451
+ function sanitizeArguments(value, redactor) {
452
+ return sanitizeRecord(value ?? {}, redactor);
453
+ }
454
+ function sanitizeRecord(value, redactor) {
455
+ const sanitized = redactor.redact(value);
456
+ if (!isRecord(sanitized))
457
+ return {};
458
+ const bounded = boundPayload(sanitized);
459
+ return isRecord(bounded) ? bounded : {};
460
+ }
461
+ function boundPayload(value) {
462
+ const serialized = JSON.stringify(value);
463
+ if (serialized === undefined || serialized.length <= MAX_PROTOCOL_PAYLOAD_CHARACTERS) {
464
+ return value;
465
+ }
466
+ return {
467
+ truncated: true,
468
+ originalCharacters: serialized.length,
469
+ preview: `${serialized.slice(0, MAX_PROTOCOL_PAYLOAD_CHARACTERS - 1)}…`,
470
+ };
471
+ }
472
+ function evidenceFields(evidence, redactor) {
473
+ const source = evidence.cost?.source === undefined
474
+ ? undefined
475
+ : redactor.redactText(evidence.cost.source).trim().slice(0, 256);
476
+ const cost = evidence.cost === undefined
477
+ ? undefined
478
+ : {
479
+ amountUsd: evidence.cost.amountUsd,
480
+ estimated: evidence.cost.estimated,
481
+ ...(source === undefined || source.length === 0 ? {} : { source }),
482
+ };
483
+ return {
484
+ ...(evidence.tokenUsage === undefined ? {} : { tokenUsage: evidence.tokenUsage }),
485
+ ...(cost === undefined ? {} : { cost }),
486
+ };
487
+ }
488
+ function sanitizeRequestId(value, redactor) {
489
+ return typeof value === "string"
490
+ ? redactor.redactText(value).slice(0, 2_048)
491
+ : value;
492
+ }
493
+ function duration(startedMs, completedMs) {
494
+ return Math.max(0, completedMs - startedMs);
495
+ }
496
+ function timestamp(value) {
497
+ return new Date(value).toISOString();
498
+ }
499
+ function isRecord(value) {
500
+ return typeof value === "object" && value !== null && !Array.isArray(value);
501
+ }
502
+ function positiveInteger(value, name) {
503
+ if (!Number.isSafeInteger(value) || value <= 0) {
504
+ throw new Error(`${name} must be a positive integer.`);
505
+ }
506
+ return value;
507
+ }
508
+ //# sourceMappingURL=native-execution.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"native-execution.js","sourceRoot":"","sources":["../src/native-execution.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,8 @@
1
+ /**
2
+ * Runs a Qyl read operation in a context that self-telemetry exporters must
3
+ * ignore. This prevents the workbench from recursively observing the queries
4
+ * it performs to retrieve observability evidence.
5
+ */
6
+ export declare function runWithObservabilitySelfExportSuppressed<T>(operation: () => T): T;
7
+ /** True only while the current async call chain is reading Qyl evidence. */
8
+ export declare function isObservabilitySelfExportSuppressed(): boolean;
@@ -0,0 +1,15 @@
1
+ import { AsyncLocalStorage } from "node:async_hooks";
2
+ const selfExportSuppression = new AsyncLocalStorage();
3
+ /**
4
+ * Runs a Qyl read operation in a context that self-telemetry exporters must
5
+ * ignore. This prevents the workbench from recursively observing the queries
6
+ * it performs to retrieve observability evidence.
7
+ */
8
+ export function runWithObservabilitySelfExportSuppressed(operation) {
9
+ return selfExportSuppression.run(true, operation);
10
+ }
11
+ /** True only while the current async call chain is reading Qyl evidence. */
12
+ export function isObservabilitySelfExportSuppressed() {
13
+ return selfExportSuppression.getStore() === true;
14
+ }
15
+ //# sourceMappingURL=observability-suppression.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"observability-suppression.js","sourceRoot":"","sources":["../src/observability-suppression.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,kBAAkB,CAAC;AAErD,MAAM,qBAAqB,GAAG,IAAI,iBAAiB,EAAQ,CAAC;AAE5D;;;;GAIG;AACH,MAAM,UAAU,wCAAwC,CAAI,SAAkB;IAC1E,OAAO,qBAAqB,CAAC,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACtD,CAAC;AAED,4EAA4E;AAC5E,MAAM,UAAU,mCAAmC;IAC/C,OAAO,qBAAqB,CAAC,QAAQ,EAAE,KAAK,IAAI,CAAC;AACrD,CAAC"}
@@ -0,0 +1,30 @@
1
+ export interface SecretRedactorOptions {
2
+ environment?: Readonly<Record<string, string | undefined>>;
3
+ secretValues?: readonly string[];
4
+ replacement?: string;
5
+ maxDepth?: number;
6
+ maxStringLength?: number;
7
+ }
8
+ /**
9
+ * Redacts credentials from diagnostic values without retaining or emitting the
10
+ * secret source. The result is safe to serialize but deliberately does not
11
+ * preserve object prototypes.
12
+ */
13
+ export declare class SecretRedactor {
14
+ readonly replacement: string;
15
+ private readonly maxDepth;
16
+ private readonly maxStringLength;
17
+ private readonly registeredSecretValues;
18
+ private secretValues;
19
+ constructor(options?: SecretRedactorOptions);
20
+ /** Registers credential values resolved after construction. */
21
+ registerSecretValues(values: readonly string[]): void;
22
+ redact(value: unknown): unknown;
23
+ redactText(value: string): string;
24
+ redactUri(value: string): string;
25
+ private redactValue;
26
+ private redactTextWithoutUrls;
27
+ private refreshSecretValues;
28
+ }
29
+ export declare function isCredentialKey(key: string): boolean;
30
+ export declare function validateEnvironmentVariableName(name: string): void;