@agentuity/runtime 0.0.69 → 0.0.70
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/AGENTS.md +88 -10
- package/README.md +0 -2
- package/dist/_config.d.ts +16 -0
- package/dist/_config.d.ts.map +1 -1
- package/dist/_config.js +16 -0
- package/dist/_config.js.map +1 -1
- package/dist/_context.d.ts +17 -15
- package/dist/_context.d.ts.map +1 -1
- package/dist/_context.js +17 -8
- package/dist/_context.js.map +1 -1
- package/dist/_server.d.ts.map +1 -1
- package/dist/_server.js +23 -14
- package/dist/_server.js.map +1 -1
- package/dist/_services.d.ts.map +1 -1
- package/dist/_services.js +2 -29
- package/dist/_services.js.map +1 -1
- package/dist/_validation.d.ts +3 -3
- package/dist/_validation.d.ts.map +1 -1
- package/dist/_validation.js.map +1 -1
- package/dist/agent.d.ts +289 -107
- package/dist/agent.d.ts.map +1 -1
- package/dist/agent.js +206 -149
- package/dist/agent.js.map +1 -1
- package/dist/app.d.ts +6 -18
- package/dist/app.d.ts.map +1 -1
- package/dist/app.js +1 -1
- package/dist/app.js.map +1 -1
- package/dist/eval.d.ts +4 -4
- package/dist/eval.d.ts.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +1 -0
- package/dist/index.js.map +1 -1
- package/dist/otel/config.d.ts.map +1 -1
- package/dist/otel/config.js +5 -2
- package/dist/otel/config.js.map +1 -1
- package/dist/otel/console.d.ts +10 -6
- package/dist/otel/console.d.ts.map +1 -1
- package/dist/otel/console.js +31 -13
- package/dist/otel/console.js.map +1 -1
- package/dist/otel/logger.d.ts.map +1 -1
- package/dist/otel/logger.js +0 -19
- package/dist/otel/logger.js.map +1 -1
- package/dist/otel/otel.d.ts +2 -1
- package/dist/otel/otel.d.ts.map +1 -1
- package/dist/otel/otel.js +28 -15
- package/dist/otel/otel.js.map +1 -1
- package/dist/services/local/_db.d.ts.map +1 -1
- package/dist/services/local/_db.js +1 -22
- package/dist/services/local/_db.js.map +1 -1
- package/dist/services/local/_router.d.ts.map +1 -1
- package/dist/services/local/_router.js +0 -32
- package/dist/services/local/_router.js.map +1 -1
- package/dist/services/local/index.d.ts +0 -1
- package/dist/services/local/index.d.ts.map +1 -1
- package/dist/services/local/index.js +0 -1
- package/dist/services/local/index.js.map +1 -1
- package/dist/session.d.ts +2 -2
- package/dist/validator.d.ts +140 -0
- package/dist/validator.d.ts.map +1 -0
- package/dist/validator.js +146 -0
- package/dist/validator.js.map +1 -0
- package/dist/workbench.d.ts.map +1 -1
- package/dist/workbench.js +38 -29
- package/dist/workbench.js.map +1 -1
- package/package.json +6 -6
- package/src/_config.ts +19 -0
- package/src/_context.ts +25 -31
- package/src/_server.ts +26 -14
- package/src/_services.ts +0 -28
- package/src/_validation.ts +3 -7
- package/src/agent.ts +555 -348
- package/src/app.ts +5 -18
- package/src/eval.ts +6 -6
- package/src/index.ts +2 -1
- package/src/otel/config.ts +5 -2
- package/src/otel/console.ts +34 -20
- package/src/otel/logger.ts +0 -18
- package/src/otel/otel.ts +43 -29
- package/src/services/local/_db.ts +1 -27
- package/src/services/local/_router.ts +0 -46
- package/src/services/local/index.ts +0 -1
- package/src/session.ts +2 -2
- package/src/validator.ts +277 -0
- package/src/workbench.ts +38 -32
- package/dist/agent.validator.test.d.ts +0 -2
- package/dist/agent.validator.test.d.ts.map +0 -1
- package/dist/agent.validator.test.js +0 -508
- package/dist/agent.validator.test.js.map +0 -1
- package/dist/services/local/objectstore.d.ts +0 -19
- package/dist/services/local/objectstore.d.ts.map +0 -1
- package/dist/services/local/objectstore.js +0 -117
- package/dist/services/local/objectstore.js.map +0 -1
- package/src/agent.validator.test.ts +0 -587
- package/src/services/local/objectstore.ts +0 -177
package/dist/otel/otel.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BatchSpanProcessor } from '@opentelemetry/sdk-trace-base';
|
|
1
|
+
import { BatchSpanProcessor, SimpleSpanProcessor } from '@opentelemetry/sdk-trace-base';
|
|
2
2
|
import opentelemetry, { metrics, propagation } from '@opentelemetry/api';
|
|
3
3
|
import * as LogsAPI from '@opentelemetry/api-logs';
|
|
4
4
|
import { getNodeAutoInstrumentations } from '@opentelemetry/auto-instrumentations-node';
|
|
@@ -14,7 +14,7 @@ import { MeterProvider, PeriodicExportingMetricReader } from '@opentelemetry/sdk
|
|
|
14
14
|
import { NodeSDK } from '@opentelemetry/sdk-node';
|
|
15
15
|
import { ATTR_SERVICE_NAME, ATTR_SERVICE_VERSION } from '@opentelemetry/semantic-conventions';
|
|
16
16
|
import { initialize } from '@traceloop/node-server-sdk';
|
|
17
|
-
import { ConsoleLogRecordExporter } from './console';
|
|
17
|
+
import { ConsoleLogRecordExporter, DebugSpanExporter } from './console';
|
|
18
18
|
import { instrumentFetch } from './fetch';
|
|
19
19
|
import { createLogger, patchConsole } from './logger';
|
|
20
20
|
import { getSDKVersion, isAuthenticated } from '../_config';
|
|
@@ -36,10 +36,13 @@ export const createResource = (config) => {
|
|
|
36
36
|
'@agentuity/cliVersion': cliVersion ?? 'unknown',
|
|
37
37
|
});
|
|
38
38
|
};
|
|
39
|
-
export const createAgentuityLoggerProvider = ({ url, headers, resource,
|
|
39
|
+
export const createAgentuityLoggerProvider = ({ url, headers, resource, jsonlBasePath, useConsoleExporters, }) => {
|
|
40
40
|
let processor;
|
|
41
41
|
let exporter;
|
|
42
|
-
if (
|
|
42
|
+
if (useConsoleExporters) {
|
|
43
|
+
processor = new SimpleLogRecordProcessor(new ConsoleLogRecordExporter());
|
|
44
|
+
}
|
|
45
|
+
else if (jsonlBasePath) {
|
|
43
46
|
exporter = new JSONLLogExporter(jsonlBasePath);
|
|
44
47
|
processor = new BatchLogRecordProcessor(exporter);
|
|
45
48
|
}
|
|
@@ -55,7 +58,7 @@ export const createAgentuityLoggerProvider = ({ url, headers, resource, logLevel
|
|
|
55
58
|
processor = new BatchLogRecordProcessor(otlpExporter);
|
|
56
59
|
}
|
|
57
60
|
else {
|
|
58
|
-
processor = new SimpleLogRecordProcessor(new ConsoleLogRecordExporter(
|
|
61
|
+
processor = new SimpleLogRecordProcessor(new ConsoleLogRecordExporter());
|
|
59
62
|
}
|
|
60
63
|
const provider = new LoggerProvider({
|
|
61
64
|
resource,
|
|
@@ -99,6 +102,8 @@ export function registerOtel(config) {
|
|
|
99
102
|
headers = {};
|
|
100
103
|
headers.Authorization = `Bearer ${bearerToken}`;
|
|
101
104
|
}
|
|
105
|
+
// use console debug exporters for local debugging
|
|
106
|
+
const useConsoleExporters = process.env.AGENTUITY_DEBUG_OTEL_CONSOLE === 'true';
|
|
102
107
|
const resource = createResource(config);
|
|
103
108
|
const loggerProvider = createAgentuityLoggerProvider({
|
|
104
109
|
url,
|
|
@@ -106,6 +111,7 @@ export function registerOtel(config) {
|
|
|
106
111
|
resource,
|
|
107
112
|
logLevel,
|
|
108
113
|
jsonlBasePath,
|
|
114
|
+
useConsoleExporters,
|
|
109
115
|
});
|
|
110
116
|
const attrs = {
|
|
111
117
|
'@agentuity/orgId': orgId ?? 'unknown',
|
|
@@ -118,6 +124,7 @@ export function registerOtel(config) {
|
|
|
118
124
|
const logger = createLogger(!!url, attrs, logLevel);
|
|
119
125
|
// must do this after we have created the logger
|
|
120
126
|
patchConsole(!!url, attrs, logLevel);
|
|
127
|
+
// Build trace exporter (OTLP or JSONL)
|
|
121
128
|
const traceExporter = jsonlBasePath
|
|
122
129
|
? new JSONLTraceExporter(jsonlBasePath)
|
|
123
130
|
: url
|
|
@@ -128,6 +135,7 @@ export function registerOtel(config) {
|
|
|
128
135
|
compression: CompressionAlgorithm.GZIP,
|
|
129
136
|
})
|
|
130
137
|
: undefined;
|
|
138
|
+
// Build metric exporter (OTLP or JSONL)
|
|
131
139
|
const metricExporter = jsonlBasePath
|
|
132
140
|
? new JSONLMetricExporter(jsonlBasePath)
|
|
133
141
|
: url
|
|
@@ -138,10 +146,18 @@ export function registerOtel(config) {
|
|
|
138
146
|
compression: CompressionAlgorithm.GZIP,
|
|
139
147
|
})
|
|
140
148
|
: undefined;
|
|
141
|
-
// Create span
|
|
142
|
-
const
|
|
149
|
+
// Create span processors
|
|
150
|
+
const spanProcessors = [];
|
|
151
|
+
// Add OTLP/JSONL span processor if we have an exporter
|
|
152
|
+
if (traceExporter) {
|
|
153
|
+
spanProcessors.push(new BatchSpanProcessor(traceExporter));
|
|
154
|
+
}
|
|
155
|
+
// Add debug span processor if console debugging is enabled
|
|
156
|
+
if (useConsoleExporters) {
|
|
157
|
+
spanProcessors.push(new SimpleSpanProcessor(new DebugSpanExporter()));
|
|
158
|
+
}
|
|
143
159
|
// Create a separate metric reader for the NodeSDK
|
|
144
|
-
const sdkMetricReader =
|
|
160
|
+
const sdkMetricReader = metricExporter
|
|
145
161
|
? new PeriodicExportingMetricReader({
|
|
146
162
|
exporter: metricExporter,
|
|
147
163
|
exportTimeoutMillis: devmode ? devmodeExportInterval : productionExportInterval,
|
|
@@ -149,7 +165,7 @@ export function registerOtel(config) {
|
|
|
149
165
|
})
|
|
150
166
|
: undefined;
|
|
151
167
|
// Create a separate metric reader for the MeterProvider
|
|
152
|
-
const hostMetricReader =
|
|
168
|
+
const hostMetricReader = metricExporter
|
|
153
169
|
? new PeriodicExportingMetricReader({
|
|
154
170
|
exporter: metricExporter,
|
|
155
171
|
exportTimeoutMillis: devmode ? devmodeExportInterval : productionExportInterval,
|
|
@@ -168,17 +184,14 @@ export function registerOtel(config) {
|
|
|
168
184
|
const hostMetrics = meterProvider ? new HostMetrics({ meterProvider }) : undefined;
|
|
169
185
|
let running = false;
|
|
170
186
|
let instrumentationSDK;
|
|
171
|
-
if (url) {
|
|
187
|
+
if (url || useConsoleExporters) {
|
|
172
188
|
const propagator = new CompositePropagator({
|
|
173
189
|
propagators: [new W3CTraceContextPropagator(), new W3CBaggagePropagator()],
|
|
174
190
|
});
|
|
175
191
|
propagation.setGlobalPropagator(propagator);
|
|
176
192
|
instrumentFetch();
|
|
177
|
-
// Combine custom span processors with
|
|
178
|
-
const allSpanProcessors = [
|
|
179
|
-
...(traceSpanProcessor ? [traceSpanProcessor] : []),
|
|
180
|
-
...(config.spanProcessors || []),
|
|
181
|
-
];
|
|
193
|
+
// Combine custom span processors with our span processors
|
|
194
|
+
const allSpanProcessors = [...spanProcessors, ...(config.spanProcessors || [])];
|
|
182
195
|
instrumentationSDK = new NodeSDK({
|
|
183
196
|
logRecordProcessor: loggerProvider.processor,
|
|
184
197
|
metricReader: sdkMetricReader,
|
package/dist/otel/otel.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"otel.js","sourceRoot":"","sources":["../../src/otel/otel.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,kBAAkB,EAAE,MAAM,+BAA+B,CAAC;
|
|
1
|
+
{"version":3,"file":"otel.js","sourceRoot":"","sources":["../../src/otel/otel.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_db.d.ts","sourceRoot":"","sources":["../../../src/services/local/_db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAOtC,wBAAgB,UAAU,IAAI,QAAQ,CAkBrC;
|
|
1
|
+
{"version":3,"file":"_db.d.ts","sourceRoot":"","sources":["../../../src/services/local/_db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAOtC,wBAAgB,UAAU,IAAI,QAAQ,CAkBrC;AA6HD,wBAAgB,YAAY,IAAI,IAAI,CAKnC"}
|
|
@@ -37,24 +37,6 @@ function initializeTables(db) {
|
|
|
37
37
|
ON kv_storage(expires_at)
|
|
38
38
|
WHERE expires_at IS NOT NULL
|
|
39
39
|
`);
|
|
40
|
-
// Object Storage table
|
|
41
|
-
db.run(`
|
|
42
|
-
CREATE TABLE IF NOT EXISTS object_storage (
|
|
43
|
-
project_path TEXT NOT NULL,
|
|
44
|
-
bucket TEXT NOT NULL,
|
|
45
|
-
key TEXT NOT NULL,
|
|
46
|
-
data BLOB NOT NULL,
|
|
47
|
-
content_type TEXT NOT NULL DEFAULT 'application/octet-stream',
|
|
48
|
-
content_encoding TEXT,
|
|
49
|
-
cache_control TEXT,
|
|
50
|
-
content_disposition TEXT,
|
|
51
|
-
content_language TEXT,
|
|
52
|
-
metadata TEXT,
|
|
53
|
-
created_at INTEGER NOT NULL,
|
|
54
|
-
updated_at INTEGER NOT NULL,
|
|
55
|
-
PRIMARY KEY (project_path, bucket, key)
|
|
56
|
-
)
|
|
57
|
-
`);
|
|
58
40
|
// Stream Storage table
|
|
59
41
|
db.run(`
|
|
60
42
|
CREATE TABLE IF NOT EXISTS stream_storage (
|
|
@@ -105,12 +87,11 @@ function cleanupOrphanedProjects(db) {
|
|
|
105
87
|
const currentProjectPath = process.cwd();
|
|
106
88
|
// Query all tables for unique project paths
|
|
107
89
|
const kvPaths = db.query('SELECT DISTINCT project_path FROM kv_storage').all();
|
|
108
|
-
const objectPaths = db.query('SELECT DISTINCT project_path FROM object_storage').all();
|
|
109
90
|
const streamPaths = db.query('SELECT DISTINCT project_path FROM stream_storage').all();
|
|
110
91
|
const vectorPaths = db.query('SELECT DISTINCT project_path FROM vector_storage').all();
|
|
111
92
|
// Combine and deduplicate all project paths
|
|
112
93
|
const allPaths = new Set();
|
|
113
|
-
[...kvPaths, ...
|
|
94
|
+
[...kvPaths, ...streamPaths, ...vectorPaths].forEach((row) => {
|
|
114
95
|
allPaths.add(row.project_path);
|
|
115
96
|
});
|
|
116
97
|
// Check which paths no longer exist and are not the current project
|
|
@@ -125,11 +106,9 @@ function cleanupOrphanedProjects(db) {
|
|
|
125
106
|
const placeholders = pathsToDelete.map(() => '?').join(', ');
|
|
126
107
|
// Delete from all tables
|
|
127
108
|
const deleteKv = db.prepare(`DELETE FROM kv_storage WHERE project_path IN (${placeholders})`);
|
|
128
|
-
const deleteObject = db.prepare(`DELETE FROM object_storage WHERE project_path IN (${placeholders})`);
|
|
129
109
|
const deleteStream = db.prepare(`DELETE FROM stream_storage WHERE project_path IN (${placeholders})`);
|
|
130
110
|
const deleteVector = db.prepare(`DELETE FROM vector_storage WHERE project_path IN (${placeholders})`);
|
|
131
111
|
deleteKv.run(...pathsToDelete);
|
|
132
|
-
deleteObject.run(...pathsToDelete);
|
|
133
112
|
deleteStream.run(...pathsToDelete);
|
|
134
113
|
deleteVector.run(...pathsToDelete);
|
|
135
114
|
console.log(`[LocalDB] Cleaned up data for ${pathsToDelete.length} orphaned project(s)`);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_db.js","sourceRoot":"","sources":["../../../src/services/local/_db.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAChD,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,WAAW,CAAC;AAEjC,IAAI,UAAU,GAAoB,IAAI,CAAC;AAEvC,MAAM,UAAU,UAAU;IACzB,IAAI,UAAU,EAAE,CAAC;QAChB,OAAO,UAAU,CAAC;IACnB,CAAC;IAED,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,EAAE,EAAE,SAAS,EAAE,WAAW,CAAC,CAAC;IAE1D,IAAI,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC5B,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC3C,CAAC;IAED,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,EAAE,UAAU,CAAC,CAAC;IAC3C,UAAU,GAAG,IAAI,QAAQ,CAAC,MAAM,CAAC,CAAC;IAElC,gBAAgB,CAAC,UAAU,CAAC,CAAC;IAC7B,uBAAuB,CAAC,UAAU,CAAC,CAAC;IAEpC,OAAO,UAAU,CAAC;AACnB,CAAC;AAED,SAAS,gBAAgB,CAAC,EAAY;IACrC,yBAAyB;IACzB,EAAE,CAAC,GAAG,CAAC;;;;;;;;;;;;EAYN,CAAC,CAAC;IAEH,EAAE,CAAC,GAAG,CAAC;;;;EAIN,CAAC,CAAC;IAEH,uBAAuB;IACvB,EAAE,CAAC,GAAG,CAAC
|
|
1
|
+
{"version":3,"file":"_db.js","sourceRoot":"","sources":["../../../src/services/local/_db.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_router.d.ts","sourceRoot":"","sources":["../../../src/services/local/_router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAI3C,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,GAAG,GAAG,
|
|
1
|
+
{"version":3,"file":"_router.d.ts","sourceRoot":"","sources":["../../../src/services/local/_router.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAI3C,wBAAgB,wBAAwB,CAAC,EAAE,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,GAAG,GAAG,CAmC/E"}
|
|
@@ -4,38 +4,6 @@ export function createLocalStorageRouter(db, projectPath) {
|
|
|
4
4
|
const router = createRouter();
|
|
5
5
|
// so we can detect if we're running in local mode easily
|
|
6
6
|
router.get('/_agentuity/local/health', (c) => c.text('OK'));
|
|
7
|
-
// Serve objects: GET /_agentuity/local/object/:bucket/:key
|
|
8
|
-
router.get('/_agentuity/local/object/:bucket/:key', async (c) => {
|
|
9
|
-
const bucket = c.req.param('bucket');
|
|
10
|
-
const key = c.req.param('key');
|
|
11
|
-
const query = db.query(`
|
|
12
|
-
SELECT data, content_type, content_encoding, cache_control,
|
|
13
|
-
content_disposition, content_language
|
|
14
|
-
FROM object_storage
|
|
15
|
-
WHERE project_path = ? AND bucket = ? AND key = ?
|
|
16
|
-
`);
|
|
17
|
-
const row = query.get(projectPath, bucket, key);
|
|
18
|
-
if (!row) {
|
|
19
|
-
return c.notFound();
|
|
20
|
-
}
|
|
21
|
-
// Set headers
|
|
22
|
-
const headers = {
|
|
23
|
-
'Content-Type': row.content_type,
|
|
24
|
-
};
|
|
25
|
-
if (row.content_encoding) {
|
|
26
|
-
headers['Content-Encoding'] = row.content_encoding;
|
|
27
|
-
}
|
|
28
|
-
if (row.cache_control) {
|
|
29
|
-
headers['Cache-Control'] = row.cache_control;
|
|
30
|
-
}
|
|
31
|
-
if (row.content_disposition) {
|
|
32
|
-
headers['Content-Disposition'] = row.content_disposition;
|
|
33
|
-
}
|
|
34
|
-
if (row.content_language) {
|
|
35
|
-
headers['Content-Language'] = row.content_language;
|
|
36
|
-
}
|
|
37
|
-
return c.body(new Uint8Array(row.data), 200, headers);
|
|
38
|
-
});
|
|
39
7
|
// Serve streams: GET /_agentuity/local/stream/:id
|
|
40
8
|
router.get('/_agentuity/local/stream/:id', async (c) => {
|
|
41
9
|
const id = c.req.param('id');
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"_router.js","sourceRoot":"","sources":["../../../src/services/local/_router.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,8DAA8D;AAC9D,MAAM,UAAU,wBAAwB,CAAC,EAAY,EAAE,WAAmB;IACzE,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAE9B,yDAAyD;IACzD,MAAM,CAAC,GAAG,CAAC,0BAA0B,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAE5D,
|
|
1
|
+
{"version":3,"file":"_router.js","sourceRoot":"","sources":["../../../src/services/local/_router.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,YAAY,EAAE,MAAM,cAAc,CAAC;AAE5C,8DAA8D;AAC9D,MAAM,UAAU,wBAAwB,CAAC,EAAY,EAAE,WAAmB;IACzE,MAAM,MAAM,GAAG,YAAY,EAAE,CAAC;IAE9B,yDAAyD;IACzD,MAAM,CAAC,GAAG,CAAC,0BAA0B,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;IAE5D,kDAAkD;IAClD,MAAM,CAAC,GAAG,CAAC,8BAA8B,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE;QACtD,MAAM,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QAE7B,MAAM,KAAK,GAAG,EAAE,CAAC,KAAK,CAAC;;;;GAItB,CAAC,CAAC;QAEH,MAAM,GAAG,GAAG,KAAK,CAAC,GAAG,CAAC,WAAW,EAAE,EAAE,CAG7B,CAAC;QAET,IAAI,CAAC,GAAG,EAAE,CAAC;YACV,OAAO,CAAC,CAAC,QAAQ,EAAE,CAAC;QACrB,CAAC;QAED,IAAI,CAAC,GAAG,CAAC,IAAI,EAAE,CAAC;YACf,OAAO,CAAC,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,sBAAsB,EAAE,EAAE,GAAG,CAAC,CAAC;QACvD,CAAC;QAED,OAAO,CAAC,CAAC,IAAI,CAAC,IAAI,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,GAAG,EAAE;YAC5C,cAAc,EAAE,GAAG,CAAC,YAAY;SAChC,CAAC,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,OAAO,MAAM,CAAC;AACf,CAAC"}
|
|
@@ -2,7 +2,6 @@ export { getLocalDB, closeLocalDB } from './_db';
|
|
|
2
2
|
export { normalizeProjectPath, simpleEmbedding, cosineSimilarity } from './_util';
|
|
3
3
|
export { createLocalStorageRouter } from './_router';
|
|
4
4
|
export { LocalKeyValueStorage } from './keyvalue';
|
|
5
|
-
export { LocalObjectStorage } from './objectstore';
|
|
6
5
|
export { LocalStreamStorage } from './stream';
|
|
7
6
|
export { LocalVectorStorage } from './vector';
|
|
8
7
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/local/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAClF,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/services/local/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAClF,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -2,7 +2,6 @@ export { getLocalDB, closeLocalDB } from './_db';
|
|
|
2
2
|
export { normalizeProjectPath, simpleEmbedding, cosineSimilarity } from './_util';
|
|
3
3
|
export { createLocalStorageRouter } from './_router';
|
|
4
4
|
export { LocalKeyValueStorage } from './keyvalue';
|
|
5
|
-
export { LocalObjectStorage } from './objectstore';
|
|
6
5
|
export { LocalStreamStorage } from './stream';
|
|
7
6
|
export { LocalVectorStorage } from './vector';
|
|
8
7
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/local/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAClF,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/services/local/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,YAAY,EAAE,MAAM,OAAO,CAAC;AACjD,OAAO,EAAE,oBAAoB,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAClF,OAAO,EAAE,wBAAwB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;AAClD,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC"}
|
package/dist/session.d.ts
CHANGED
|
@@ -16,7 +16,7 @@ type SessionEventCallback<T extends Session> = (eventName: 'completed', session:
|
|
|
16
16
|
* @example
|
|
17
17
|
* ```typescript
|
|
18
18
|
* // Access thread in agent handler
|
|
19
|
-
* const agent = createAgent({
|
|
19
|
+
* const agent = createAgent('conversation', {
|
|
20
20
|
* handler: async (ctx, input) => {
|
|
21
21
|
* // Get thread ID
|
|
22
22
|
* ctx.logger.info('Thread: %s', ctx.thread.id);
|
|
@@ -109,7 +109,7 @@ export interface Thread {
|
|
|
109
109
|
*
|
|
110
110
|
* @example
|
|
111
111
|
* ```typescript
|
|
112
|
-
* const agent = createAgent({
|
|
112
|
+
* const agent = createAgent('request-handler', {
|
|
113
113
|
* handler: async (ctx, input) => {
|
|
114
114
|
* // Get session ID (unique per request)
|
|
115
115
|
* ctx.logger.info('Session: %s', ctx.session.id);
|
|
@@ -0,0 +1,140 @@
|
|
|
1
|
+
import { type InferOutput, type StandardSchemaV1 } from '@agentuity/core';
|
|
2
|
+
import type { Handler } from 'hono/types';
|
|
3
|
+
/**
|
|
4
|
+
* Route validator for standard HTTP routes (non-agent routes).
|
|
5
|
+
* Provides input and output validation with full type safety.
|
|
6
|
+
*
|
|
7
|
+
* **Input validation behavior by HTTP method:**
|
|
8
|
+
* - **GET**: Validates query parameters (accessible via `c.req.valid('query')`)
|
|
9
|
+
* - **POST/PUT/PATCH/DELETE**: Validates JSON body (accessible via `c.req.valid('json')`)
|
|
10
|
+
*
|
|
11
|
+
* **Output validation:**
|
|
12
|
+
* - Validates response JSON body before sending
|
|
13
|
+
* - Throws 500 Internal Server Error if validation fails
|
|
14
|
+
*
|
|
15
|
+
* @template TInput - Input schema type (query params for GET, body for POST/PUT/PATCH/DELETE)
|
|
16
|
+
* @template TOutput - Output schema type for response validation
|
|
17
|
+
*
|
|
18
|
+
* @example GET route with output validation only
|
|
19
|
+
* ```typescript
|
|
20
|
+
* router.get('/users',
|
|
21
|
+
* validator({ output: z.array(UserSchema) }),
|
|
22
|
+
* async (c) => {
|
|
23
|
+
* return c.json([{ id: '1', name: 'Alice' }]);
|
|
24
|
+
* }
|
|
25
|
+
* );
|
|
26
|
+
* ```
|
|
27
|
+
*
|
|
28
|
+
* @example GET route with query param validation
|
|
29
|
+
* ```typescript
|
|
30
|
+
* router.get('/users/:id',
|
|
31
|
+
* validator({
|
|
32
|
+
* input: z.object({ id: z.string() }),
|
|
33
|
+
* output: UserSchema
|
|
34
|
+
* }),
|
|
35
|
+
* async (c) => {
|
|
36
|
+
* const { id } = c.req.valid('query'); // Fully typed!
|
|
37
|
+
* return c.json({ id, name: 'Alice' });
|
|
38
|
+
* }
|
|
39
|
+
* );
|
|
40
|
+
* ```
|
|
41
|
+
*
|
|
42
|
+
* @example POST route with body and output validation
|
|
43
|
+
* ```typescript
|
|
44
|
+
* router.post('/users',
|
|
45
|
+
* validator({
|
|
46
|
+
* input: z.object({ name: z.string(), email: z.string().email() }),
|
|
47
|
+
* output: UserSchema
|
|
48
|
+
* }),
|
|
49
|
+
* async (c) => {
|
|
50
|
+
* const data = c.req.valid('json'); // Fully typed!
|
|
51
|
+
* return c.json({ id: '1', ...data });
|
|
52
|
+
* }
|
|
53
|
+
* );
|
|
54
|
+
* ```
|
|
55
|
+
*/
|
|
56
|
+
export interface RouteValidator {
|
|
57
|
+
/**
|
|
58
|
+
* Output-only validation (no input validation).
|
|
59
|
+
* Useful for GET routes without query parameters.
|
|
60
|
+
*
|
|
61
|
+
* @template TOutput - Output schema type
|
|
62
|
+
* @param options - Configuration object with output schema
|
|
63
|
+
* @returns Hono middleware handler
|
|
64
|
+
*/
|
|
65
|
+
<TOutput extends StandardSchemaV1>(options: {
|
|
66
|
+
output: TOutput;
|
|
67
|
+
}): Handler<any, any, {
|
|
68
|
+
in: {};
|
|
69
|
+
out: {
|
|
70
|
+
json: InferOutput<TOutput>;
|
|
71
|
+
};
|
|
72
|
+
}>;
|
|
73
|
+
/**
|
|
74
|
+
* Input and output validation.
|
|
75
|
+
* - GET: validates query parameters
|
|
76
|
+
* - POST/PUT/PATCH/DELETE: validates JSON body
|
|
77
|
+
*
|
|
78
|
+
* @template TInput - Input schema type
|
|
79
|
+
* @template TOutput - Optional output schema type
|
|
80
|
+
* @param options - Configuration object with input and optional output schemas
|
|
81
|
+
* @returns Hono middleware handler with type inference
|
|
82
|
+
*/
|
|
83
|
+
<TInput extends StandardSchemaV1, TOutput extends StandardSchemaV1 | undefined = undefined>(options: {
|
|
84
|
+
input: TInput;
|
|
85
|
+
output?: TOutput;
|
|
86
|
+
}): Handler<any, any, {
|
|
87
|
+
in: {};
|
|
88
|
+
out: {
|
|
89
|
+
json: InferOutput<TInput>;
|
|
90
|
+
query: InferOutput<TInput>;
|
|
91
|
+
};
|
|
92
|
+
}>;
|
|
93
|
+
}
|
|
94
|
+
/**
|
|
95
|
+
* Create a route validator middleware with input and/or output validation.
|
|
96
|
+
*
|
|
97
|
+
* Automatically handles different validation targets based on HTTP method:
|
|
98
|
+
* - GET requests: validates query parameters (if input schema provided)
|
|
99
|
+
* - POST/PUT/PATCH/DELETE: validates JSON body (if input schema provided)
|
|
100
|
+
* - All methods: validates JSON response (if output schema provided)
|
|
101
|
+
*
|
|
102
|
+
* @param options - Validation configuration
|
|
103
|
+
* @param options.input - Input schema (query params for GET, body for POST/PUT/PATCH/DELETE)
|
|
104
|
+
* @param options.output - Output schema for response validation
|
|
105
|
+
* @returns Hono middleware handler
|
|
106
|
+
*
|
|
107
|
+
* @example GET with query validation
|
|
108
|
+
* ```typescript
|
|
109
|
+
* import { validator } from '@agentuity/runtime';
|
|
110
|
+
*
|
|
111
|
+
* router.get('/search',
|
|
112
|
+
* validator({
|
|
113
|
+
* input: z.object({ q: z.string(), limit: z.number().optional() }),
|
|
114
|
+
* output: z.array(SearchResultSchema)
|
|
115
|
+
* }),
|
|
116
|
+
* async (c) => {
|
|
117
|
+
* const { q, limit } = c.req.valid('query'); // Typed!
|
|
118
|
+
* const results = await search(q, limit);
|
|
119
|
+
* return c.json(results);
|
|
120
|
+
* }
|
|
121
|
+
* );
|
|
122
|
+
* ```
|
|
123
|
+
*
|
|
124
|
+
* @example POST with body validation
|
|
125
|
+
* ```typescript
|
|
126
|
+
* router.post('/users',
|
|
127
|
+
* validator({
|
|
128
|
+
* input: z.object({ name: z.string() }),
|
|
129
|
+
* output: UserSchema
|
|
130
|
+
* }),
|
|
131
|
+
* async (c) => {
|
|
132
|
+
* const data = c.req.valid('json'); // Typed!
|
|
133
|
+
* const user = await createUser(data);
|
|
134
|
+
* return c.json(user);
|
|
135
|
+
* }
|
|
136
|
+
* );
|
|
137
|
+
* ```
|
|
138
|
+
*/
|
|
139
|
+
export declare const validator: RouteValidator;
|
|
140
|
+
//# sourceMappingURL=validator.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.d.ts","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"AACA,OAAO,EAAmB,KAAK,WAAW,EAAE,KAAK,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAE3F,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,YAAY,CAAC;AAI1C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAoDG;AACH,MAAM,WAAW,cAAc;IAC9B;;;;;;;OAOG;IACH,CAAC,OAAO,SAAS,gBAAgB,EAAE,OAAO,EAAE;QAC3C,MAAM,EAAE,OAAO,CAAC;KAChB,GAAG,OAAO,CACV,GAAG,EACH,GAAG,EACH;QAEC,EAAE,EAAE,EAAE,CAAC;QACP,GAAG,EAAE;YAAE,IAAI,EAAE,WAAW,CAAC,OAAO,CAAC,CAAA;SAAE,CAAC;KACpC,CACD,CAAC;IAEF;;;;;;;;;OASG;IACH,CACC,MAAM,SAAS,gBAAgB,EAC/B,OAAO,SAAS,gBAAgB,GAAG,SAAS,GAAG,SAAS,EACvD,OAAO,EAAE;QACV,KAAK,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,OAAO,CAAC;KACjB,GAAG,OAAO,CACV,GAAG,EACH,GAAG,EACH;QAEC,EAAE,EAAE,EAAE,CAAC;QACP,GAAG,EAAE;YACJ,IAAI,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;YAC1B,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,CAAC;SAC3B,CAAC;KACF,CACD,CAAC;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4CG;AACH,eAAO,MAAM,SAAS,EAAE,cAwHJ,CAAC"}
|
|
@@ -0,0 +1,146 @@
|
|
|
1
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
2
|
+
import { StructuredError } from '@agentuity/core';
|
|
3
|
+
import { validator as honoValidator } from 'hono/validator';
|
|
4
|
+
import { validateSchema, formatValidationIssues } from './_validation';
|
|
5
|
+
/**
|
|
6
|
+
* Create a route validator middleware with input and/or output validation.
|
|
7
|
+
*
|
|
8
|
+
* Automatically handles different validation targets based on HTTP method:
|
|
9
|
+
* - GET requests: validates query parameters (if input schema provided)
|
|
10
|
+
* - POST/PUT/PATCH/DELETE: validates JSON body (if input schema provided)
|
|
11
|
+
* - All methods: validates JSON response (if output schema provided)
|
|
12
|
+
*
|
|
13
|
+
* @param options - Validation configuration
|
|
14
|
+
* @param options.input - Input schema (query params for GET, body for POST/PUT/PATCH/DELETE)
|
|
15
|
+
* @param options.output - Output schema for response validation
|
|
16
|
+
* @returns Hono middleware handler
|
|
17
|
+
*
|
|
18
|
+
* @example GET with query validation
|
|
19
|
+
* ```typescript
|
|
20
|
+
* import { validator } from '@agentuity/runtime';
|
|
21
|
+
*
|
|
22
|
+
* router.get('/search',
|
|
23
|
+
* validator({
|
|
24
|
+
* input: z.object({ q: z.string(), limit: z.number().optional() }),
|
|
25
|
+
* output: z.array(SearchResultSchema)
|
|
26
|
+
* }),
|
|
27
|
+
* async (c) => {
|
|
28
|
+
* const { q, limit } = c.req.valid('query'); // Typed!
|
|
29
|
+
* const results = await search(q, limit);
|
|
30
|
+
* return c.json(results);
|
|
31
|
+
* }
|
|
32
|
+
* );
|
|
33
|
+
* ```
|
|
34
|
+
*
|
|
35
|
+
* @example POST with body validation
|
|
36
|
+
* ```typescript
|
|
37
|
+
* router.post('/users',
|
|
38
|
+
* validator({
|
|
39
|
+
* input: z.object({ name: z.string() }),
|
|
40
|
+
* output: UserSchema
|
|
41
|
+
* }),
|
|
42
|
+
* async (c) => {
|
|
43
|
+
* const data = c.req.valid('json'); // Typed!
|
|
44
|
+
* const user = await createUser(data);
|
|
45
|
+
* return c.json(user);
|
|
46
|
+
* }
|
|
47
|
+
* );
|
|
48
|
+
* ```
|
|
49
|
+
*/
|
|
50
|
+
export const validator = ((options) => {
|
|
51
|
+
const { input: inputSchema, output: outputSchema } = options;
|
|
52
|
+
// Helper to build input validator that detects HTTP method
|
|
53
|
+
const buildInputValidator = (schema) => {
|
|
54
|
+
return async (c, next) => {
|
|
55
|
+
const method = c.req.method.toUpperCase();
|
|
56
|
+
// GET requests validate query parameters
|
|
57
|
+
if (method === 'GET') {
|
|
58
|
+
const queryValidator = honoValidator('query', async (value, c) => {
|
|
59
|
+
const result = await validateSchema(schema, value);
|
|
60
|
+
if (!result.success) {
|
|
61
|
+
return c.json({
|
|
62
|
+
error: 'Validation failed',
|
|
63
|
+
message: formatValidationIssues(result.issues),
|
|
64
|
+
issues: result.issues,
|
|
65
|
+
}, 400);
|
|
66
|
+
}
|
|
67
|
+
return result.data;
|
|
68
|
+
});
|
|
69
|
+
return await queryValidator(c, next);
|
|
70
|
+
}
|
|
71
|
+
// POST/PUT/PATCH/DELETE validate JSON body
|
|
72
|
+
const jsonValidator = honoValidator('json', async (value, c) => {
|
|
73
|
+
const result = await validateSchema(schema, value);
|
|
74
|
+
if (!result.success) {
|
|
75
|
+
return c.json({
|
|
76
|
+
error: 'Validation failed',
|
|
77
|
+
message: formatValidationIssues(result.issues),
|
|
78
|
+
issues: result.issues,
|
|
79
|
+
}, 400);
|
|
80
|
+
}
|
|
81
|
+
return result.data;
|
|
82
|
+
});
|
|
83
|
+
return await jsonValidator(c, next);
|
|
84
|
+
};
|
|
85
|
+
};
|
|
86
|
+
// Output validation middleware (runs after handler)
|
|
87
|
+
const outputValidator = async (c, next) => {
|
|
88
|
+
await next();
|
|
89
|
+
if (!outputSchema)
|
|
90
|
+
return;
|
|
91
|
+
const res = c.res;
|
|
92
|
+
if (!res)
|
|
93
|
+
return;
|
|
94
|
+
// Only validate JSON responses
|
|
95
|
+
const contentType = res.headers.get('Content-Type') ?? '';
|
|
96
|
+
if (!contentType.toLowerCase().includes('application/json')) {
|
|
97
|
+
return;
|
|
98
|
+
}
|
|
99
|
+
// Clone so we don't consume the body that will be sent
|
|
100
|
+
let responseBody;
|
|
101
|
+
try {
|
|
102
|
+
const cloned = res.clone();
|
|
103
|
+
responseBody = await cloned.json();
|
|
104
|
+
}
|
|
105
|
+
catch {
|
|
106
|
+
const OutputValidationError = StructuredError('OutputValidationError')();
|
|
107
|
+
throw new OutputValidationError({
|
|
108
|
+
message: 'Output validation failed: response is not valid JSON',
|
|
109
|
+
issues: [],
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
const result = await validateSchema(outputSchema, responseBody);
|
|
113
|
+
if (!result.success) {
|
|
114
|
+
const OutputValidationError = StructuredError('OutputValidationError')();
|
|
115
|
+
throw new OutputValidationError({
|
|
116
|
+
message: `Output validation failed: ${formatValidationIssues(result.issues)}`,
|
|
117
|
+
issues: result.issues,
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
// Replace response with validated/sanitized JSON
|
|
121
|
+
c.res = new Response(JSON.stringify(result.data), {
|
|
122
|
+
status: res.status,
|
|
123
|
+
headers: res.headers,
|
|
124
|
+
});
|
|
125
|
+
};
|
|
126
|
+
// If no input schema, only do output validation
|
|
127
|
+
if (!inputSchema) {
|
|
128
|
+
return outputValidator;
|
|
129
|
+
}
|
|
130
|
+
// If no output schema, only do input validation
|
|
131
|
+
if (!outputSchema) {
|
|
132
|
+
return buildInputValidator(inputSchema);
|
|
133
|
+
}
|
|
134
|
+
// Compose: input validator → output validator
|
|
135
|
+
const inputMiddleware = buildInputValidator(inputSchema);
|
|
136
|
+
const composed = async (c, next) => {
|
|
137
|
+
// Run input validator first, then output validator, then handler
|
|
138
|
+
const result = await inputMiddleware(c, async () => {
|
|
139
|
+
await outputValidator(c, next);
|
|
140
|
+
});
|
|
141
|
+
// If inputMiddleware returned early (validation failed), return that response
|
|
142
|
+
return result;
|
|
143
|
+
};
|
|
144
|
+
return composed;
|
|
145
|
+
});
|
|
146
|
+
//# sourceMappingURL=validator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"validator.js","sourceRoot":"","sources":["../src/validator.ts"],"names":[],"mappings":"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"}
|
package/dist/workbench.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"workbench.d.ts","sourceRoot":"","sources":["../src/workbench.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"workbench.d.ts","sourceRoot":"","sources":["../src/workbench.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,MAAM,MAAM,CAAC;AAK7C,OAAO,KAAK,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAGpD,eAAO,MAAM,6BAA6B,QAAO,OAsFhD,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,qBAAqB,mGAmCjC,CAAC;AAqBF,eAAO,MAAM,4BAA4B,QAAO,OA2C/C,CAAC;AAKF,eAAO,MAAM,6BAA6B,SACjC,MAAM,OAAO,MACZ,IAAI,mBAAmB,SA6BhC,CAAC"}
|