@warlock.js/ai-panoptic 5.29.0 → 5.30.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.
- package/CHANGELOG.md +6 -0
- package/cjs/index.cjs +31 -31
- package/cjs/index.cjs.map +1 -1
- package/esm/collector/collector.d.mts +1 -1
- package/esm/collector/collector.d.mts.map +1 -1
- package/esm/collector/collector.mjs +1 -1
- package/esm/collector/collector.mjs.map +1 -1
- package/esm/collector/content-capture.type.d.mts +1 -1
- package/esm/collector/content-capture.type.d.mts.map +1 -1
- package/esm/collector/extract-span-attributes.d.mts +1 -1
- package/esm/collector/extract-span-attributes.d.mts.map +1 -1
- package/esm/collector/extract-span-attributes.mjs +1 -1
- package/esm/collector/extract-span-attributes.mjs.map +1 -1
- package/esm/collector/normalize-error.d.mts +1 -1
- package/esm/collector/normalize-error.d.mts.map +1 -1
- package/esm/collector/normalize-error.mjs +1 -1
- package/esm/collector/normalize-error.mjs.map +1 -1
- package/esm/collector/report-to-span.d.mts +1 -1
- package/esm/collector/report-to-span.d.mts.map +1 -1
- package/esm/collector/report-to-span.mjs +1 -1
- package/esm/collector/report-to-span.mjs.map +1 -1
- package/esm/collector/report-to-trace.d.mts +1 -1
- package/esm/collector/report-to-trace.d.mts.map +1 -1
- package/esm/collector/report-to-trace.mjs +1 -1
- package/esm/collector/report-to-trace.mjs.map +1 -1
- package/esm/config/apply-panoptic-config.d.mts +1 -1
- package/esm/config/apply-panoptic-config.d.mts.map +1 -1
- package/esm/config/apply-panoptic-config.mjs +1 -1
- package/esm/config/apply-panoptic-config.mjs.map +1 -1
- package/esm/config/panoptic-config.type.d.mts +1 -1
- package/esm/config/panoptic-config.type.d.mts.map +1 -1
- package/esm/contracts/collector.contract.d.mts +1 -1
- package/esm/contracts/collector.contract.d.mts.map +1 -1
- package/esm/contracts/exporter.contract.d.mts +1 -1
- package/esm/contracts/exporter.contract.d.mts.map +1 -1
- package/esm/contracts/trace.type.d.mts +1 -1
- package/esm/contracts/trace.type.d.mts.map +1 -1
- package/esm/dashboard/dashboard.d.mts +1 -1
- package/esm/dashboard/dashboard.d.mts.map +1 -1
- package/esm/dashboard/dashboard.mjs +1 -1
- package/esm/dashboard/dashboard.mjs.map +1 -1
- package/esm/dashboard/dashboard.type.d.mts +1 -1
- package/esm/dashboard/dashboard.type.d.mts.map +1 -1
- package/esm/dashboard/parse-query.mjs +1 -1
- package/esm/dashboard/parse-query.mjs.map +1 -1
- package/esm/dashboard/serve.mjs +1 -1
- package/esm/dashboard/serve.mjs.map +1 -1
- package/esm/dashboard/trace-filter.d.mts +1 -1
- package/esm/dashboard/trace-filter.d.mts.map +1 -1
- package/esm/dashboard/trace-filter.mjs +1 -1
- package/esm/dashboard/trace-filter.mjs.map +1 -1
- package/esm/dashboard/ui.html.mjs +1 -1
- package/esm/dashboard/ui.html.mjs.map +1 -1
- package/esm/dashboard/warlock-logo.mjs +1 -1
- package/esm/dashboard/warlock-logo.mjs.map +1 -1
- package/esm/evaluate/evaluate-system-prompt.d.mts +1 -1
- package/esm/evaluate/evaluate-system-prompt.d.mts.map +1 -1
- package/esm/evaluate/evaluate-system-prompt.mjs +1 -1
- package/esm/evaluate/evaluate-system-prompt.mjs.map +1 -1
- package/esm/evaluate/evaluate.type.d.mts +1 -1
- package/esm/evaluate/evaluate.type.d.mts.map +1 -1
- package/esm/evaluate/extract-last-system-prompt.d.mts +1 -1
- package/esm/evaluate/extract-last-system-prompt.d.mts.map +1 -1
- package/esm/evaluate/extract-last-system-prompt.mjs +1 -1
- package/esm/evaluate/extract-last-system-prompt.mjs.map +1 -1
- package/esm/evaluate/find-span-by-id.d.mts +1 -1
- package/esm/evaluate/find-span-by-id.d.mts.map +1 -1
- package/esm/evaluate/find-span-by-id.mjs +1 -1
- package/esm/evaluate/find-span-by-id.mjs.map +1 -1
- package/esm/exporters/console/console-exporter.d.mts +1 -1
- package/esm/exporters/console/console-exporter.d.mts.map +1 -1
- package/esm/exporters/console/console-exporter.mjs +1 -1
- package/esm/exporters/console/console-exporter.mjs.map +1 -1
- package/esm/exporters/console/console-exporter.type.d.mts +1 -1
- package/esm/exporters/console/console-exporter.type.d.mts.map +1 -1
- package/esm/exporters/console/format-span-io.d.mts +1 -1
- package/esm/exporters/console/format-span-io.d.mts.map +1 -1
- package/esm/exporters/console/format-span-io.mjs +1 -1
- package/esm/exporters/console/format-span-io.mjs.map +1 -1
- package/esm/exporters/console/format-span-line.d.mts +1 -1
- package/esm/exporters/console/format-span-line.d.mts.map +1 -1
- package/esm/exporters/console/format-span-line.mjs +1 -1
- package/esm/exporters/console/format-span-line.mjs.map +1 -1
- package/esm/exporters/file/file-exporter.d.mts +1 -1
- package/esm/exporters/file/file-exporter.d.mts.map +1 -1
- package/esm/exporters/file/file-exporter.mjs +1 -1
- package/esm/exporters/file/file-exporter.mjs.map +1 -1
- package/esm/exporters/file/file-exporter.type.d.mts +1 -1
- package/esm/exporters/file/file-exporter.type.d.mts.map +1 -1
- package/esm/exporters/langfuse/langfuse-exporter.d.mts +1 -1
- package/esm/exporters/langfuse/langfuse-exporter.d.mts.map +1 -1
- package/esm/exporters/langfuse/langfuse-exporter.mjs +1 -1
- package/esm/exporters/langfuse/langfuse-exporter.mjs.map +1 -1
- package/esm/exporters/langfuse/langfuse-exporter.type.d.mts +1 -1
- package/esm/exporters/langfuse/langfuse-exporter.type.d.mts.map +1 -1
- package/esm/exporters/otel/otel-api.shim.type.d.mts +1 -1
- package/esm/exporters/otel/otel-api.shim.type.d.mts.map +1 -1
- package/esm/exporters/otel/otel-exporter.d.mts +1 -1
- package/esm/exporters/otel/otel-exporter.d.mts.map +1 -1
- package/esm/exporters/otel/otel-exporter.mjs +1 -1
- package/esm/exporters/otel/otel-exporter.mjs.map +1 -1
- package/esm/exporters/otel/otel-exporter.type.d.mts +1 -1
- package/esm/exporters/otel/otel-exporter.type.d.mts.map +1 -1
- package/esm/exporters/utils/gen-ai-attributes.d.mts +1 -1
- package/esm/exporters/utils/gen-ai-attributes.d.mts.map +1 -1
- package/esm/exporters/utils/gen-ai-attributes.mjs +1 -1
- package/esm/exporters/utils/gen-ai-attributes.mjs.map +1 -1
- package/esm/exporters/utils/total-cost.d.mts +1 -1
- package/esm/exporters/utils/total-cost.d.mts.map +1 -1
- package/esm/exporters/utils/total-cost.mjs +1 -1
- package/esm/exporters/utils/total-cost.mjs.map +1 -1
- package/esm/exporters/utils/walk-spans.d.mts +1 -1
- package/esm/exporters/utils/walk-spans.d.mts.map +1 -1
- package/esm/exporters/utils/walk-spans.mjs +1 -1
- package/esm/exporters/utils/walk-spans.mjs.map +1 -1
- package/esm/panoptic/panoptic-middleware.d.mts +1 -1
- package/esm/panoptic/panoptic-middleware.d.mts.map +1 -1
- package/esm/panoptic/panoptic-middleware.mjs +1 -1
- package/esm/panoptic/panoptic-middleware.mjs.map +1 -1
- package/esm/panoptic/panoptic-target.type.d.mts +1 -1
- package/esm/panoptic/panoptic-target.type.d.mts.map +1 -1
- package/esm/panoptic/panoptic.d.mts +1 -1
- package/esm/panoptic/panoptic.d.mts.map +1 -1
- package/esm/panoptic/panoptic.mjs +1 -1
- package/esm/panoptic/panoptic.mjs.map +1 -1
- package/esm/panoptic/panoptic.type.d.mts +1 -1
- package/esm/panoptic/panoptic.type.d.mts.map +1 -1
- package/esm/register.mjs +1 -1
- package/esm/register.mjs.map +1 -1
- package/esm/store/cache-trace-store.d.mts +1 -1
- package/esm/store/cache-trace-store.d.mts.map +1 -1
- package/esm/store/cache-trace-store.mjs +1 -1
- package/esm/store/cache-trace-store.mjs.map +1 -1
- package/esm/store/in-memory-trace-store.d.mts +1 -1
- package/esm/store/in-memory-trace-store.d.mts.map +1 -1
- package/esm/store/in-memory-trace-store.mjs +1 -1
- package/esm/store/in-memory-trace-store.mjs.map +1 -1
- package/esm/store/match-trace.d.mts +1 -1
- package/esm/store/match-trace.d.mts.map +1 -1
- package/esm/store/match-trace.mjs +1 -1
- package/esm/store/match-trace.mjs.map +1 -1
- package/esm/store/sum-usage.d.mts +1 -1
- package/esm/store/sum-usage.d.mts.map +1 -1
- package/esm/store/sum-usage.mjs +1 -1
- package/esm/store/sum-usage.mjs.map +1 -1
- package/esm/store/trace-aggregate.type.d.mts +1 -1
- package/esm/store/trace-aggregate.type.d.mts.map +1 -1
- package/esm/store/trace-query.type.d.mts +1 -1
- package/esm/store/trace-query.type.d.mts.map +1 -1
- package/esm/store/trace-store.contract.d.mts +1 -1
- package/esm/store/trace-store.contract.d.mts.map +1 -1
- package/package.json +6 -5
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,12 @@ All notable changes to `@warlock.js/ai-panoptic` are documented in this file.
|
|
|
4
4
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/). `@warlock.js/*` packages are released in lockstep — every package shares the same version number, so a version below may list only the changes that affected this package.
|
|
6
6
|
|
|
7
|
+
## 5.30.0 - 2026-10-16
|
|
8
|
+
|
|
9
|
+
### Changed
|
|
10
|
+
|
|
11
|
+
- Lockstep release; package APIs are unchanged.
|
|
12
|
+
|
|
7
13
|
## 5.29.0 - 2026-10-01
|
|
8
14
|
|
|
9
15
|
### Changed
|
package/cjs/index.cjs
CHANGED
|
@@ -6,7 +6,7 @@ let node_http = require("node:http");
|
|
|
6
6
|
let node_crypto = require("node:crypto");
|
|
7
7
|
let _warlock_js_logger = require("@warlock.js/logger");
|
|
8
8
|
|
|
9
|
-
//#region
|
|
9
|
+
//#region ../../packages/ai-panoptic/src/exporters/utils/walk-spans.ts
|
|
10
10
|
/**
|
|
11
11
|
* Depth-first pre-order traversal of a {@link TraceSpan} tree, yielding
|
|
12
12
|
* the root first and then each descendant in `children` (invocation)
|
|
@@ -25,7 +25,7 @@ function* walkSpans(root) {
|
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
//#endregion
|
|
28
|
-
//#region
|
|
28
|
+
//#region ../../packages/ai-panoptic/src/collector/normalize-error.ts
|
|
29
29
|
/**
|
|
30
30
|
* Project a captured execution error onto the structural
|
|
31
31
|
* {@link TraceSpanError} shape used on a failed / cancelled span.
|
|
@@ -73,7 +73,7 @@ function pickString(value) {
|
|
|
73
73
|
}
|
|
74
74
|
|
|
75
75
|
//#endregion
|
|
76
|
-
//#region
|
|
76
|
+
//#region ../../packages/ai-panoptic/src/collector/extract-span-attributes.ts
|
|
77
77
|
/**
|
|
78
78
|
* Build the free-form `TraceSpan.attributes` bag for one report node.
|
|
79
79
|
*
|
|
@@ -150,7 +150,7 @@ function addToolAttributes(attributes, extensions) {
|
|
|
150
150
|
}
|
|
151
151
|
|
|
152
152
|
//#endregion
|
|
153
|
-
//#region
|
|
153
|
+
//#region ../../packages/ai-panoptic/src/collector/report-to-span.ts
|
|
154
154
|
/**
|
|
155
155
|
* Project one {@link BaseReport} node — and its entire subtree — into a
|
|
156
156
|
* {@link TraceSpan}. Pure and recursive: identity, timing, status, and
|
|
@@ -283,7 +283,7 @@ function lastNonEmptyOutput(trips) {
|
|
|
283
283
|
}
|
|
284
284
|
|
|
285
285
|
//#endregion
|
|
286
|
-
//#region
|
|
286
|
+
//#region ../../packages/ai-panoptic/src/collector/report-to-trace.ts
|
|
287
287
|
/**
|
|
288
288
|
* Project an outermost {@link BaseReport} (one whole `.execute()` /
|
|
289
289
|
* `.invoke()` run) into a {@link Trace} — the root {@link
|
|
@@ -334,7 +334,7 @@ function reportToTrace(report, rootError, options) {
|
|
|
334
334
|
}
|
|
335
335
|
|
|
336
336
|
//#endregion
|
|
337
|
-
//#region
|
|
337
|
+
//#region ../../packages/ai-panoptic/src/collector/collector.ts
|
|
338
338
|
/**
|
|
339
339
|
* Drive the source end of the Panoptic pipeline: ingest core
|
|
340
340
|
* `@warlock.js/ai` {@link BaseReport} trees, project them into {@link
|
|
@@ -458,7 +458,7 @@ function createCollector(options = {}) {
|
|
|
458
458
|
}
|
|
459
459
|
|
|
460
460
|
//#endregion
|
|
461
|
-
//#region
|
|
461
|
+
//#region ../../packages/ai-panoptic/src/store/match-trace.ts
|
|
462
462
|
/**
|
|
463
463
|
* Test whether one trace satisfies a {@link TraceQuery}. Every declared
|
|
464
464
|
* filter field must match (logical AND); absent fields are ignored, so
|
|
@@ -500,7 +500,7 @@ function toEpoch(bound) {
|
|
|
500
500
|
}
|
|
501
501
|
|
|
502
502
|
//#endregion
|
|
503
|
-
//#region
|
|
503
|
+
//#region ../../packages/ai-panoptic/src/store/sum-usage.ts
|
|
504
504
|
/**
|
|
505
505
|
* Fold a child {@link Usage} into a running accumulator. Token channels
|
|
506
506
|
* (`input` / `output` / `total`) always sum; the optional cache /
|
|
@@ -561,7 +561,7 @@ function sumOptional(accumulator, next) {
|
|
|
561
561
|
}
|
|
562
562
|
|
|
563
563
|
//#endregion
|
|
564
|
-
//#region
|
|
564
|
+
//#region ../../packages/ai-panoptic/src/store/cache-trace-store.ts
|
|
565
565
|
const DEFAULT_PREFIX = "panoptic";
|
|
566
566
|
/**
|
|
567
567
|
* Cache-backed {@link TraceStoreContract} with a **write-through** design
|
|
@@ -846,7 +846,7 @@ function createCacheTraceStore(cache, options = {}) {
|
|
|
846
846
|
}
|
|
847
847
|
|
|
848
848
|
//#endregion
|
|
849
|
-
//#region
|
|
849
|
+
//#region ../../packages/ai-panoptic/src/store/in-memory-trace-store.ts
|
|
850
850
|
/**
|
|
851
851
|
* In-memory {@link TraceStoreContract} that doubles as an
|
|
852
852
|
* {@link ExporterContract} — register it on a collector
|
|
@@ -982,7 +982,7 @@ function createInMemoryTraceStore(options) {
|
|
|
982
982
|
}
|
|
983
983
|
|
|
984
984
|
//#endregion
|
|
985
|
-
//#region
|
|
985
|
+
//#region ../../packages/ai-panoptic/src/exporters/utils/total-cost.ts
|
|
986
986
|
/**
|
|
987
987
|
* Collapse a {@link Usage.cost} breakdown into a single USD scalar by
|
|
988
988
|
* summing every populated field. Mirrors the formula documented on
|
|
@@ -1003,7 +1003,7 @@ function totalCostUsd(usage) {
|
|
|
1003
1003
|
}
|
|
1004
1004
|
|
|
1005
1005
|
//#endregion
|
|
1006
|
-
//#region
|
|
1006
|
+
//#region ../../packages/ai-panoptic/src/exporters/utils/gen-ai-attributes.ts
|
|
1007
1007
|
/**
|
|
1008
1008
|
* Subset of the OpenTelemetry GenAI semantic-convention attribute keys
|
|
1009
1009
|
* Panoptic emits. Kept as a named constant map (not inline string
|
|
@@ -1091,7 +1091,7 @@ function mergeScalarAttributes(target, source) {
|
|
|
1091
1091
|
}
|
|
1092
1092
|
|
|
1093
1093
|
//#endregion
|
|
1094
|
-
//#region
|
|
1094
|
+
//#region ../../packages/ai-panoptic/src/exporters/console/format-span-io.ts
|
|
1095
1095
|
/** Default cap on how many characters of captured content a console line shows. */
|
|
1096
1096
|
const DEFAULT_IO_MAX_CHARS = 500;
|
|
1097
1097
|
/**
|
|
@@ -1141,7 +1141,7 @@ function stringify(value) {
|
|
|
1141
1141
|
}
|
|
1142
1142
|
|
|
1143
1143
|
//#endregion
|
|
1144
|
-
//#region
|
|
1144
|
+
//#region ../../packages/ai-panoptic/src/exporters/console/format-span-line.ts
|
|
1145
1145
|
/**
|
|
1146
1146
|
* Render a single {@link TraceSpan} as one scannable console line:
|
|
1147
1147
|
* `<status> <type> "<name>" — <duration>ms, <tokens> tok[, $<cost>]`.
|
|
@@ -1178,7 +1178,7 @@ function statusMarker(status) {
|
|
|
1178
1178
|
}
|
|
1179
1179
|
|
|
1180
1180
|
//#endregion
|
|
1181
|
-
//#region
|
|
1181
|
+
//#region ../../packages/ai-panoptic/src/exporters/console/console-exporter.ts
|
|
1182
1182
|
const EXPORTER_NAME$3 = "console";
|
|
1183
1183
|
/**
|
|
1184
1184
|
* Zero-dependency {@link ExporterContract} that prints traces to a
|
|
@@ -1269,7 +1269,7 @@ function spanDepth(root, targetSpanId, depth = 0) {
|
|
|
1269
1269
|
}
|
|
1270
1270
|
|
|
1271
1271
|
//#endregion
|
|
1272
|
-
//#region
|
|
1272
|
+
//#region ../../packages/ai-panoptic/src/exporters/file/file-exporter.ts
|
|
1273
1273
|
const EXPORTER_NAME$2 = "file";
|
|
1274
1274
|
/**
|
|
1275
1275
|
* Zero-dependency {@link ExporterContract} that appends completed traces
|
|
@@ -1360,7 +1360,7 @@ var FileTraceWriter = class {
|
|
|
1360
1360
|
};
|
|
1361
1361
|
|
|
1362
1362
|
//#endregion
|
|
1363
|
-
//#region
|
|
1363
|
+
//#region ../../packages/ai-panoptic/src/exporters/langfuse/langfuse-exporter.ts
|
|
1364
1364
|
const EXPORTER_NAME$1 = "langfuse";
|
|
1365
1365
|
let LangfuseSdk;
|
|
1366
1366
|
let isModuleExists$1 = null;
|
|
@@ -1564,7 +1564,7 @@ function toLevel(span) {
|
|
|
1564
1564
|
}
|
|
1565
1565
|
|
|
1566
1566
|
//#endregion
|
|
1567
|
-
//#region
|
|
1567
|
+
//#region ../../packages/ai-panoptic/src/exporters/otel/otel-exporter.ts
|
|
1568
1568
|
const EXPORTER_NAME = "otel";
|
|
1569
1569
|
const DEFAULT_TRACER_NAME = "@warlock.js/ai-panoptic";
|
|
1570
1570
|
let OtelApi;
|
|
@@ -1717,7 +1717,7 @@ function toEpochMillis(isoTimestamp) {
|
|
|
1717
1717
|
}
|
|
1718
1718
|
|
|
1719
1719
|
//#endregion
|
|
1720
|
-
//#region
|
|
1720
|
+
//#region ../../packages/ai-panoptic/src/panoptic/panoptic-middleware.ts
|
|
1721
1721
|
/**
|
|
1722
1722
|
* Build an {@link AgentMiddleware} that feeds a collector from the
|
|
1723
1723
|
* `execute`- and `supervisor`-level hooks. An alternative wiring to event
|
|
@@ -1783,7 +1783,7 @@ function isReport(value) {
|
|
|
1783
1783
|
}
|
|
1784
1784
|
|
|
1785
1785
|
//#endregion
|
|
1786
|
-
//#region
|
|
1786
|
+
//#region ../../packages/ai-panoptic/src/panoptic/panoptic.ts
|
|
1787
1787
|
/**
|
|
1788
1788
|
* Terminal `*.completed` events of every core primitive that carries the
|
|
1789
1789
|
* finalized `result` (and therefore the `report` tree). These fire once
|
|
@@ -1920,7 +1920,7 @@ function panoptic(options = {}) {
|
|
|
1920
1920
|
}
|
|
1921
1921
|
|
|
1922
1922
|
//#endregion
|
|
1923
|
-
//#region
|
|
1923
|
+
//#region ../../packages/ai-panoptic/src/evaluate/evaluate-system-prompt.ts
|
|
1924
1924
|
/**
|
|
1925
1925
|
* Grade `systemPrompt` with the configured judge model, reusing
|
|
1926
1926
|
* `ai.prompts().validate()`'s own `judgePromptBody` — never a second
|
|
@@ -1938,7 +1938,7 @@ async function evaluateSystemPrompt(systemPrompt, config, instructionsOverride)
|
|
|
1938
1938
|
}
|
|
1939
1939
|
|
|
1940
1940
|
//#endregion
|
|
1941
|
-
//#region
|
|
1941
|
+
//#region ../../packages/ai-panoptic/src/evaluate/extract-last-system-prompt.ts
|
|
1942
1942
|
/**
|
|
1943
1943
|
* Pull the LAST `{role: "system"}` message off a span's captured `input`.
|
|
1944
1944
|
*
|
|
@@ -1960,7 +1960,7 @@ function extractLastSystemPrompt(span) {
|
|
|
1960
1960
|
}
|
|
1961
1961
|
|
|
1962
1962
|
//#endregion
|
|
1963
|
-
//#region
|
|
1963
|
+
//#region ../../packages/ai-panoptic/src/evaluate/find-span-by-id.ts
|
|
1964
1964
|
/** Depth-first search for the span with `spanId` inside a trace's span tree. */
|
|
1965
1965
|
function findSpanById(root, spanId) {
|
|
1966
1966
|
if (root.spanId === spanId) return root;
|
|
@@ -1971,7 +1971,7 @@ function findSpanById(root, spanId) {
|
|
|
1971
1971
|
}
|
|
1972
1972
|
|
|
1973
1973
|
//#endregion
|
|
1974
|
-
//#region
|
|
1974
|
+
//#region ../../packages/ai-panoptic/src/dashboard/parse-query.ts
|
|
1975
1975
|
/**
|
|
1976
1976
|
* The set of terminal statuses a stored trace can carry. Used to keep
|
|
1977
1977
|
* `parseQuery` from forwarding arbitrary `?status=` junk into the store.
|
|
@@ -2023,7 +2023,7 @@ function parseQuery(params) {
|
|
|
2023
2023
|
}
|
|
2024
2024
|
|
|
2025
2025
|
//#endregion
|
|
2026
|
-
//#region
|
|
2026
|
+
//#region ../../packages/ai-panoptic/src/dashboard/warlock-logo.ts
|
|
2027
2027
|
/**
|
|
2028
2028
|
* The Warlock logo as an inlined base64 PNG data URI (64x64, ~9KB).
|
|
2029
2029
|
* Inlined so the dashboard stays a single self-contained, offline-capable
|
|
@@ -2034,7 +2034,7 @@ function parseQuery(params) {
|
|
|
2034
2034
|
const WARLOCK_LOGO_DATA_URI = "data:image/png;base64,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";
|
|
2035
2035
|
|
|
2036
2036
|
//#endregion
|
|
2037
|
-
//#region
|
|
2037
|
+
//#region ../../packages/ai-panoptic/src/dashboard/ui.html.ts
|
|
2038
2038
|
/**
|
|
2039
2039
|
* Build the single self-contained dashboard HTML page. No external
|
|
2040
2040
|
* assets, no bundler, no framework — one inlined string that polls the
|
|
@@ -3519,7 +3519,7 @@ function encodeForInlineScript(value) {
|
|
|
3519
3519
|
}
|
|
3520
3520
|
|
|
3521
3521
|
//#endregion
|
|
3522
|
-
//#region
|
|
3522
|
+
//#region ../../packages/ai-panoptic/src/dashboard/serve.ts
|
|
3523
3523
|
/** Hard cap on the evaluate route's request body — well beyond a real instructions string. */
|
|
3524
3524
|
const MAX_EVALUATE_BODY_BYTES = 64 * 1024;
|
|
3525
3525
|
/**
|
|
@@ -3768,7 +3768,7 @@ async function handleEvaluate(store, evaluate, traceId, spanId, req, res) {
|
|
|
3768
3768
|
}
|
|
3769
3769
|
|
|
3770
3770
|
//#endregion
|
|
3771
|
-
//#region
|
|
3771
|
+
//#region ../../packages/ai-panoptic/src/dashboard/dashboard.ts
|
|
3772
3772
|
const DEFAULT_PORT = 4319;
|
|
3773
3773
|
const DEFAULT_HOST = "127.0.0.1";
|
|
3774
3774
|
const DEFAULT_TITLE = "Panoptic";
|
|
@@ -3896,7 +3896,7 @@ function openBrowser(url) {
|
|
|
3896
3896
|
}
|
|
3897
3897
|
|
|
3898
3898
|
//#endregion
|
|
3899
|
-
//#region
|
|
3899
|
+
//#region ../../packages/ai-panoptic/src/dashboard/trace-filter.ts
|
|
3900
3900
|
/** Statuses the errors-only toggle keeps. */
|
|
3901
3901
|
const ERROR_STATUSES = ["failed", "cancelled"];
|
|
3902
3902
|
/**
|
|
@@ -4164,7 +4164,7 @@ function maxNodeCost(root) {
|
|
|
4164
4164
|
}
|
|
4165
4165
|
|
|
4166
4166
|
//#endregion
|
|
4167
|
-
//#region
|
|
4167
|
+
//#region ../../packages/ai-panoptic/src/config/apply-panoptic-config.ts
|
|
4168
4168
|
let applied;
|
|
4169
4169
|
/**
|
|
4170
4170
|
* Read a {@link PanopticConfig} and wire panoptic onto the core observe
|
|
@@ -4246,7 +4246,7 @@ function startDashboard(store, dashboardConfig) {
|
|
|
4246
4246
|
}
|
|
4247
4247
|
|
|
4248
4248
|
//#endregion
|
|
4249
|
-
//#region
|
|
4249
|
+
//#region ../../packages/ai-panoptic/src/register.ts
|
|
4250
4250
|
(0, _warlock_js_ai.onConfigApplied)((config) => {
|
|
4251
4251
|
applyPanopticConfig(config.panoptic);
|
|
4252
4252
|
});
|