@mochabug/adapt-sdk 0.1.23 → 0.2.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 (57) hide show
  1. package/README.md +0 -40
  2. package/dist/{grpcweb.d.ts → api/grpcweb.d.ts} +1 -1
  3. package/dist/api/grpcweb.d.ts.map +1 -0
  4. package/dist/{api.d.ts → api/index.d.ts} +28 -28
  5. package/dist/api/index.d.ts.map +1 -0
  6. package/dist/{frontend.d.ts → browser/index.d.ts} +1 -1
  7. package/dist/browser/index.d.ts.map +1 -0
  8. package/dist/cel/index.d.ts +143 -0
  9. package/dist/cel/index.d.ts.map +1 -0
  10. package/dist/cjs/api.cjs.map +2 -2
  11. package/dist/cjs/{frontend.cjs → browser.cjs} +1 -1
  12. package/dist/cjs/{frontend.cjs.map → browser.cjs.map} +2 -2
  13. package/dist/cjs/cel.cjs +6 -0
  14. package/dist/cjs/cel.cjs.map +7 -0
  15. package/dist/cjs/react.cjs +2 -0
  16. package/dist/cjs/react.cjs.map +7 -0
  17. package/dist/cjs/router.cjs.map +2 -2
  18. package/dist/cjs/signals.cjs +2 -0
  19. package/dist/cjs/signals.cjs.map +7 -0
  20. package/dist/cjs/types.cjs.map +1 -1
  21. package/dist/esm/api.mjs.map +2 -2
  22. package/dist/esm/{frontend.mjs → browser.mjs} +1 -1
  23. package/dist/esm/{frontend.mjs.map → browser.mjs.map} +1 -1
  24. package/dist/esm/cel.mjs +6 -0
  25. package/dist/esm/cel.mjs.map +7 -0
  26. package/dist/esm/react.mjs +2 -0
  27. package/dist/esm/react.mjs.map +7 -0
  28. package/dist/esm/router.mjs.map +2 -2
  29. package/dist/esm/signals.mjs +2 -0
  30. package/dist/esm/signals.mjs.map +7 -0
  31. package/dist/react/index.d.ts +60 -0
  32. package/dist/react/index.d.ts.map +1 -0
  33. package/dist/react/styles.css +490 -0
  34. package/dist/{router.d.ts → router/index.d.ts} +5 -5
  35. package/dist/router/index.d.ts.map +1 -0
  36. package/dist/signals/index.d.ts +170 -0
  37. package/dist/signals/index.d.ts.map +1 -0
  38. package/dist/{types.d.ts → types/index.d.ts} +1 -1
  39. package/dist/types/index.d.ts.map +1 -0
  40. package/package.json +46 -24
  41. package/dist/api.d.ts.map +0 -1
  42. package/dist/api.spec.d.ts +0 -2
  43. package/dist/api.spec.d.ts.map +0 -1
  44. package/dist/cjs/mime.cjs +0 -2
  45. package/dist/cjs/mime.cjs.map +0 -7
  46. package/dist/esm/mime.mjs +0 -2
  47. package/dist/esm/mime.mjs.map +0 -7
  48. package/dist/frontend.d.ts.map +0 -1
  49. package/dist/grpcweb.d.ts.map +0 -1
  50. package/dist/mime.d.ts +0 -11
  51. package/dist/mime.d.ts.map +0 -1
  52. package/dist/router.d.ts.map +0 -1
  53. package/dist/router.spec.d.ts +0 -2
  54. package/dist/router.spec.d.ts.map +0 -1
  55. package/dist/signal-api.spec.d.ts +0 -17
  56. package/dist/signal-api.spec.d.ts.map +0 -1
  57. package/dist/types.d.ts.map +0 -1
@@ -0,0 +1,490 @@
1
+ @layer adapt-sdk {
2
+
3
+ /* ════════════════════════ Dark Theme (default) ════════════════════════ */
4
+
5
+ .adapt-signal-selector {
6
+ --adapt-bg: #121212;
7
+ --adapt-bg-input: #2a2a2a;
8
+ --adapt-bg-dropdown: #1e1e1e;
9
+ --adapt-bg-header: rgba(30, 30, 30, 0.95);
10
+ --adapt-bg-hover: #333333;
11
+ --adapt-bg-highlighted: rgba(255, 247, 0, 0.1);
12
+ --adapt-text: #ffffff;
13
+ --adapt-text-secondary: rgba(255, 255, 255, 0.6);
14
+ --adapt-text-muted: rgba(255, 255, 255, 0.35);
15
+ --adapt-border: #3a3a3a;
16
+ --adapt-border-focus: #FFF700;
17
+ --adapt-border-error: #ff6b6b;
18
+ --adapt-ring-focus: rgba(255, 247, 0, 0.25);
19
+ --adapt-ring-error: rgba(255, 107, 107, 0.25);
20
+ --adapt-color-standard: #5cb85c;
21
+ --adapt-color-failure: #ff6b6b;
22
+ --adapt-color-stream: #5bc0de;
23
+ --adapt-chip-bg: #1e1e1e;
24
+ --adapt-chip-border: #3a3a3a;
25
+ --adapt-chip-text: rgba(255, 255, 255, 0.6);
26
+ --adapt-chip-mime-bg: #052e16;
27
+ --adapt-chip-mime-border: #166534;
28
+ --adapt-chip-mime-text: #86efac;
29
+ --adapt-chip-complex-bg: #172554;
30
+ --adapt-chip-complex-border: #1e40af;
31
+ --adapt-chip-complex-text: #93c5fd;
32
+ --adapt-optional-bg: #451a03;
33
+ --adapt-optional-border: #92400e;
34
+ --adapt-optional-text: #fcd34d;
35
+ --adapt-shadow: 0 4px 24px rgba(0, 0, 0, 0.4);
36
+ --adapt-radius: 8px;
37
+ --adapt-radius-sm: 4px;
38
+ --adapt-radius-chip: 12px;
39
+ --adapt-font-family: inherit;
40
+ --adapt-font-mono: ui-monospace, 'SF Mono', Monaco, 'Cascadia Code', monospace;
41
+ --adapt-font-size: 14px;
42
+ --adapt-font-size-sm: 12px;
43
+ --adapt-font-size-xs: 10px;
44
+ --adapt-transition: 150ms ease;
45
+ --adapt-z-dropdown: 1000;
46
+ --adapt-max-height: 360px;
47
+
48
+ position: relative;
49
+ font-family: var(--adapt-font-family);
50
+ font-size: var(--adapt-font-size);
51
+ color: var(--adapt-text);
52
+ box-sizing: border-box;
53
+ }
54
+
55
+ .adapt-signal-selector *, .adapt-signal-selector *::before, .adapt-signal-selector *::after {
56
+ box-sizing: border-box;
57
+ }
58
+
59
+ /* ════════════════════════ Light Theme (explicit) ════════════════════════ */
60
+
61
+ .adapt-signal-selector[data-adapt-theme="light"],
62
+ [data-adapt-theme="light"] .adapt-signal-selector {
63
+ --adapt-bg: #ffffff;
64
+ --adapt-bg-input: #ffffff;
65
+ --adapt-bg-dropdown: #ffffff;
66
+ --adapt-bg-header: rgba(248, 250, 252, 0.95);
67
+ --adapt-bg-hover: #f1f5f9;
68
+ --adapt-bg-highlighted: rgba(204, 170, 0, 0.12);
69
+ --adapt-text: #0f172a;
70
+ --adapt-text-secondary: #475569;
71
+ --adapt-text-muted: #94a3b8;
72
+ --adapt-border: #cbd5e1;
73
+ --adapt-border-focus: #CCAA00;
74
+ --adapt-border-error: #ef4444;
75
+ --adapt-ring-focus: rgba(204, 170, 0, 0.3);
76
+ --adapt-ring-error: rgba(239, 68, 68, 0.2);
77
+ --adapt-color-standard: #16a34a;
78
+ --adapt-color-failure: #dc2626;
79
+ --adapt-color-stream: #2563eb;
80
+ --adapt-chip-bg: #f1f5f9;
81
+ --adapt-chip-border: #e2e8f0;
82
+ --adapt-chip-text: #475569;
83
+ --adapt-chip-mime-bg: #ecfdf5;
84
+ --adapt-chip-mime-border: #a7f3d0;
85
+ --adapt-chip-mime-text: #065f46;
86
+ --adapt-chip-complex-bg: #eff6ff;
87
+ --adapt-chip-complex-border: #bfdbfe;
88
+ --adapt-chip-complex-text: #1e40af;
89
+ --adapt-optional-bg: #fef3c7;
90
+ --adapt-optional-border: #fcd34d;
91
+ --adapt-optional-text: #92400e;
92
+ --adapt-shadow: 0 4px 24px rgba(0, 0, 0, 0.08), 0 1px 4px rgba(0, 0, 0, 0.04);
93
+ }
94
+
95
+ /* ════════════════════════ Input ════════════════════════ */
96
+
97
+ .adapt-signal-selector-input {
98
+ width: 100%;
99
+ padding: 10px 12px;
100
+ font-family: var(--adapt-font-mono);
101
+ font-size: var(--adapt-font-size);
102
+ color: var(--adapt-text);
103
+ background: var(--adapt-bg-input);
104
+ border: 1.5px solid var(--adapt-border);
105
+ border-radius: var(--adapt-radius);
106
+ outline: none;
107
+ box-sizing: border-box;
108
+ transition:
109
+ border-color var(--adapt-transition),
110
+ box-shadow var(--adapt-transition);
111
+ }
112
+
113
+ .adapt-signal-selector-input::placeholder {
114
+ color: var(--adapt-text-muted);
115
+ }
116
+
117
+ .adapt-signal-selector-input:focus {
118
+ border-color: var(--adapt-border-focus);
119
+ box-shadow: 0 0 0 3px var(--adapt-ring-focus);
120
+ }
121
+
122
+ .adapt-signal-selector--error .adapt-signal-selector-input {
123
+ border-color: var(--adapt-border-error);
124
+ }
125
+
126
+ .adapt-signal-selector--error .adapt-signal-selector-input:focus {
127
+ border-color: var(--adapt-border-error);
128
+ box-shadow: 0 0 0 3px var(--adapt-ring-error);
129
+ }
130
+
131
+ .adapt-signal-selector-input:disabled {
132
+ opacity: 0.5;
133
+ cursor: not-allowed;
134
+ }
135
+
136
+ .adapt-signal-selector-input--hidden {
137
+ position: absolute;
138
+ clip: rect(0, 0, 0, 0);
139
+ width: 1px;
140
+ height: 1px;
141
+ overflow: hidden;
142
+ white-space: nowrap;
143
+ }
144
+
145
+ /* ════════════════════════ Selected value display ════════════════════════ */
146
+
147
+ .adapt-signal-selector-selected {
148
+ display: flex;
149
+ align-items: center;
150
+ gap: 8px;
151
+ width: 100%;
152
+ padding: 10px 12px;
153
+ background: var(--adapt-bg-input);
154
+ border: 1.5px solid var(--adapt-border);
155
+ border-radius: var(--adapt-radius);
156
+ cursor: pointer;
157
+ transition:
158
+ border-color var(--adapt-transition),
159
+ box-shadow var(--adapt-transition);
160
+ min-width: 0;
161
+ }
162
+
163
+ .adapt-signal-selector-selected:hover {
164
+ border-color: var(--adapt-border-focus);
165
+ box-shadow: 0 0 0 3px var(--adapt-ring-focus);
166
+ }
167
+
168
+ .adapt-signal-selector-selected--disabled {
169
+ opacity: 0.5;
170
+ cursor: not-allowed;
171
+ pointer-events: none;
172
+ }
173
+
174
+ .adapt-signal-selector:focus-within .adapt-signal-selector-selected {
175
+ border-color: var(--adapt-border-focus);
176
+ box-shadow: 0 0 0 3px var(--adapt-ring-focus);
177
+ }
178
+
179
+ .adapt-signal-selector-selected-dot {
180
+ width: 6px;
181
+ height: 6px;
182
+ border-radius: 50%;
183
+ flex-shrink: 0;
184
+ }
185
+
186
+ .adapt-signal-selector-selected-dot--standard {
187
+ background: var(--adapt-color-standard);
188
+ }
189
+
190
+ .adapt-signal-selector-selected-dot--failure {
191
+ background: var(--adapt-color-failure);
192
+ }
193
+
194
+ .adapt-signal-selector-selected-dot--stream {
195
+ background: var(--adapt-color-stream);
196
+ }
197
+
198
+ .adapt-signal-selector-selected-icon {
199
+ flex-shrink: 0;
200
+ width: 18px;
201
+ height: 18px;
202
+ display: flex;
203
+ align-items: center;
204
+ justify-content: center;
205
+ }
206
+
207
+ .adapt-signal-selector-selected-icon img,
208
+ .adapt-signal-selector-selected-icon svg {
209
+ width: 100%;
210
+ height: 100%;
211
+ object-fit: contain;
212
+ border-radius: 2px;
213
+ }
214
+
215
+ .adapt-signal-selector-selected-node {
216
+ font-weight: 600;
217
+ color: var(--adapt-text);
218
+ white-space: nowrap;
219
+ overflow: hidden;
220
+ text-overflow: ellipsis;
221
+ max-width: 140px;
222
+ }
223
+
224
+ .adapt-signal-selector-selected-sep {
225
+ color: var(--adapt-text-muted);
226
+ font-size: 16px;
227
+ flex-shrink: 0;
228
+ }
229
+
230
+ .adapt-signal-selector-selected-signal {
231
+ font-weight: 500;
232
+ color: var(--adapt-text-secondary);
233
+ flex: 1;
234
+ min-width: 0;
235
+ white-space: nowrap;
236
+ overflow: hidden;
237
+ text-overflow: ellipsis;
238
+ }
239
+
240
+ .adapt-signal-selector-selected-clear {
241
+ width: 18px;
242
+ height: 18px;
243
+ border-radius: 50%;
244
+ display: flex;
245
+ align-items: center;
246
+ justify-content: center;
247
+ flex-shrink: 0;
248
+ color: var(--adapt-text-muted);
249
+ opacity: 0.5;
250
+ font-size: 14px;
251
+ line-height: 1;
252
+ transition:
253
+ opacity var(--adapt-transition),
254
+ background var(--adapt-transition),
255
+ color var(--adapt-transition);
256
+ }
257
+
258
+ .adapt-signal-selector-selected-clear:hover {
259
+ opacity: 1;
260
+ background: var(--adapt-bg-hover);
261
+ color: var(--adapt-text);
262
+ }
263
+
264
+ /* ════════════════════════ Error message ════════════════════════ */
265
+
266
+ .adapt-signal-selector-error {
267
+ display: block;
268
+ margin-top: 4px;
269
+ font-size: var(--adapt-font-size-sm);
270
+ color: var(--adapt-border-error);
271
+ }
272
+
273
+ /* ════════════════════════ Dropdown ════════════════════════ */
274
+
275
+ .adapt-signal-selector-dropdown {
276
+ position: absolute;
277
+ top: 100%;
278
+ left: 0;
279
+ right: 0;
280
+ margin-top: 4px;
281
+ background: var(--adapt-bg-dropdown);
282
+ border: 1.5px solid var(--adapt-border);
283
+ border-radius: var(--adapt-radius);
284
+ box-shadow: var(--adapt-shadow);
285
+ max-height: var(--adapt-max-height);
286
+ overflow-y: auto;
287
+ overflow-x: hidden;
288
+ z-index: var(--adapt-z-dropdown);
289
+ }
290
+
291
+ .adapt-signal-selector-dropdown::-webkit-scrollbar {
292
+ width: 6px;
293
+ }
294
+
295
+ .adapt-signal-selector-dropdown::-webkit-scrollbar-track {
296
+ background: transparent;
297
+ }
298
+
299
+ .adapt-signal-selector-dropdown::-webkit-scrollbar-thumb {
300
+ background: var(--adapt-border);
301
+ border-radius: 3px;
302
+ }
303
+
304
+ .adapt-signal-selector-dropdown::-webkit-scrollbar-thumb:hover {
305
+ background: var(--adapt-text-muted);
306
+ }
307
+
308
+ /* ════════════════════════ Group header ════════════════════════ */
309
+
310
+ .adapt-signal-group-header {
311
+ display: flex;
312
+ align-items: center;
313
+ gap: 8px;
314
+ padding: 8px 12px;
315
+ background: var(--adapt-bg-header);
316
+ backdrop-filter: blur(8px);
317
+ -webkit-backdrop-filter: blur(8px);
318
+ border-bottom: 1px solid var(--adapt-border);
319
+ position: sticky;
320
+ top: 0;
321
+ z-index: 1;
322
+ user-select: none;
323
+ }
324
+
325
+ .adapt-signal-group-icon {
326
+ flex-shrink: 0;
327
+ width: 24px;
328
+ height: 24px;
329
+ display: flex;
330
+ align-items: center;
331
+ justify-content: center;
332
+ }
333
+
334
+ .adapt-signal-group-icon img,
335
+ .adapt-signal-group-icon svg {
336
+ width: 100%;
337
+ height: 100%;
338
+ object-fit: contain;
339
+ border-radius: var(--adapt-radius-sm);
340
+ }
341
+
342
+ .adapt-signal-group-node-label {
343
+ font-weight: 600;
344
+ color: var(--adapt-text);
345
+ white-space: nowrap;
346
+ overflow: hidden;
347
+ text-overflow: ellipsis;
348
+ }
349
+
350
+ .adapt-signal-group-node-id {
351
+ font-family: var(--adapt-font-mono);
352
+ font-size: var(--adapt-font-size-xs);
353
+ color: var(--adapt-text-muted);
354
+ white-space: nowrap;
355
+ flex-shrink: 0;
356
+ }
357
+
358
+ .adapt-signal-group-separator {
359
+ width: 1px;
360
+ height: 12px;
361
+ background: var(--adapt-border);
362
+ flex-shrink: 0;
363
+ }
364
+
365
+ .adapt-signal-group-transmitter {
366
+ font-family: var(--adapt-font-mono);
367
+ font-size: var(--adapt-font-size-sm);
368
+ font-weight: 500;
369
+ white-space: nowrap;
370
+ }
371
+
372
+ .adapt-signal-group-transmitter--standard {
373
+ color: var(--adapt-color-standard);
374
+ }
375
+
376
+ .adapt-signal-group-transmitter--failure {
377
+ color: var(--adapt-color-failure);
378
+ }
379
+
380
+ .adapt-signal-group-transmitter--stream {
381
+ color: var(--adapt-color-stream);
382
+ }
383
+
384
+ /* ════════════════════════ Option ════════════════════════ */
385
+
386
+ .adapt-signal-selector-option {
387
+ padding: 8px 12px 8px 20px;
388
+ cursor: pointer;
389
+ transition: background-color var(--adapt-transition);
390
+ }
391
+
392
+ .adapt-signal-selector-option:hover {
393
+ background: var(--adapt-bg-hover);
394
+ }
395
+
396
+ .adapt-signal-selector-option--highlighted {
397
+ background: var(--adapt-bg-highlighted);
398
+ }
399
+
400
+ .adapt-signal-option-label {
401
+ display: flex;
402
+ align-items: baseline;
403
+ gap: 6px;
404
+ flex-wrap: wrap;
405
+ }
406
+
407
+ .adapt-signal-option-name {
408
+ font-weight: 600;
409
+ color: var(--adapt-text);
410
+ }
411
+
412
+ .adapt-signal-option-code {
413
+ font-family: var(--adapt-font-mono);
414
+ font-size: var(--adapt-font-size-sm);
415
+ color: var(--adapt-text-muted);
416
+ }
417
+
418
+ .adapt-signal-option-optional {
419
+ font-size: var(--adapt-font-size-xs);
420
+ font-weight: 500;
421
+ padding: 1px 6px;
422
+ border-radius: var(--adapt-radius-chip);
423
+ background: var(--adapt-optional-bg);
424
+ border: 1px solid var(--adapt-optional-border);
425
+ color: var(--adapt-optional-text);
426
+ line-height: 1.4;
427
+ }
428
+
429
+ /* ════════════════════════ Format chips ════════════════════════ */
430
+
431
+ .adapt-signal-format-viewer {
432
+ display: flex;
433
+ gap: 4px;
434
+ flex-wrap: wrap;
435
+ align-items: center;
436
+ margin-top: 4px;
437
+ }
438
+
439
+ .adapt-signal-format-chip {
440
+ display: inline-flex;
441
+ align-items: center;
442
+ font-size: var(--adapt-font-size-xs);
443
+ font-family: var(--adapt-font-mono);
444
+ padding: 1px 8px;
445
+ border-radius: var(--adapt-radius-chip);
446
+ background: var(--adapt-chip-bg);
447
+ border: 1px solid var(--adapt-chip-border);
448
+ color: var(--adapt-chip-text);
449
+ line-height: 1.5;
450
+ white-space: nowrap;
451
+ }
452
+
453
+ .adapt-signal-format-chip--mime {
454
+ background: var(--adapt-chip-mime-bg);
455
+ border-color: var(--adapt-chip-mime-border);
456
+ color: var(--adapt-chip-mime-text);
457
+ }
458
+
459
+ .adapt-signal-format-chip--primitive {
460
+ background: var(--adapt-chip-bg);
461
+ border-color: var(--adapt-chip-border);
462
+ color: var(--adapt-chip-text);
463
+ }
464
+
465
+ .adapt-signal-format-chip--complex {
466
+ background: var(--adapt-chip-complex-bg);
467
+ border-color: var(--adapt-chip-complex-border);
468
+ color: var(--adapt-chip-complex-text);
469
+ cursor: pointer;
470
+ }
471
+
472
+ .adapt-signal-format-chip--complex:hover {
473
+ filter: brightness(1.1);
474
+ }
475
+
476
+ .adapt-signal-format-overflow {
477
+ font-size: var(--adapt-font-size-xs);
478
+ color: var(--adapt-text-muted);
479
+ padding-left: 2px;
480
+ }
481
+
482
+ /* ════════════════════════ No results ════════════════════════ */
483
+
484
+ .adapt-signal-selector-no-results {
485
+ padding: 20px 16px;
486
+ text-align: center;
487
+ color: var(--adapt-text-muted);
488
+ font-size: var(--adapt-font-size-sm);
489
+ }
490
+ }
@@ -1,7 +1,7 @@
1
- import { ConfiguratorApi, ExecutorApi, SessionExecutorApi, StopExecutorApi } from './api';
2
- import { SignalData } from './genproto/mochabugapis/adapt/graph/signal_data_pb';
3
- import { CronTriggerRequest, ExchangeResultRequest, StartExecutionRequest, StopExecutionRequest } from './genproto/mochabugapis/adapt/runtime/v1/incoming_pb';
4
- import { ConfiguratorEnvironment, ExecutionContext, ExecutorEnvironment } from './types';
1
+ import { ConfiguratorApi, ExecutorApi, SessionExecutorApi, StopExecutorApi } from '../api';
2
+ import { SignalData } from '../genproto/mochabugapis/adapt/graph/signal_data_pb';
3
+ import { CronTriggerRequest, ExchangeResultRequest, StartExecutionRequest, StopExecutionRequest } from '../genproto/mochabugapis/adapt/runtime/v1/incoming_pb';
4
+ import { ConfiguratorEnvironment, ExecutionContext, ExecutorEnvironment } from '../types';
5
5
  export interface ExchangeResultWrapper extends ExchangeResultRequest {
6
6
  getSignal<T>(key: string): T;
7
7
  getSignalBinary(key: string): SignalData;
@@ -500,4 +500,4 @@ export declare class InternalConfiguratorRouter implements RouterEntrypoint<Conf
500
500
  entrypoint(_req: Request, _env: ConfiguratorEnvironment, _ctx: ExecutionContext): Promise<Response>;
501
501
  }
502
502
  export {};
503
- //# sourceMappingURL=router.d.ts.map
503
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/router/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,170 @@
1
+ import type { JTDSchemaJson, SignalDescriptorJson, SignalFormatJson } from '../api';
2
+ /** Generate a fuzzed (sample) value from a JTD schema. */
3
+ export declare function fuzzJTD(schema: JTDSchemaJson, definitions?: Record<string, JTDSchemaJson>, _depth?: number): unknown;
4
+ /**
5
+ * Validate a value against a JTD schema, returning an array of error messages.
6
+ * Delegates to the `jtd` npm package for spec-compliant validation.
7
+ */
8
+ export declare function validateValueAgainstJTD(schema: JTDSchemaJson, value: unknown, definitions?: Record<string, JTDSchemaJson>): string[];
9
+ /** Validate a JSON value against a single SignalFormatJson. */
10
+ export declare function validateValueAgainstSignal(format: SignalFormatJson, jsonValue: unknown): string[];
11
+ /** Validate a JSON value against a SignalDescriptorJson (valid if value matches ANY JTD format). */
12
+ export declare function validateValueAgainstSignal(descriptor: SignalDescriptorJson, jsonValue: unknown): string[];
13
+ /**
14
+ * Convert JTD (JSON Type Definition) schema to JSON Schema for validation.
15
+ *
16
+ * Supports all 8 JTD schema forms per RFC 8927:
17
+ * - Empty form: {}
18
+ * - Ref form: { ref: "..." }
19
+ * - Type form: { type: "..." }
20
+ * - Enum form: { enum: [...] }
21
+ * - Elements form: { elements: {...} }
22
+ * - Properties form: { properties: {...}, optionalProperties: {...} }
23
+ * - Values form: { values: {...} }
24
+ * - Discriminator form: { discriminator: "...", mapping: {...} }
25
+ */
26
+ export declare function jtdToJsonSchema(jtdSchema: JTDSchemaJson, definitions?: Record<string, JTDSchemaJson>, isRoot?: boolean): any;
27
+ export interface UniversalJsonSchema {
28
+ type?: string | string[];
29
+ title?: string;
30
+ description?: string;
31
+ enum?: (string | number | null)[];
32
+ format?: 'date-time' | 'date' | 'time';
33
+ properties?: Record<string, UniversalJsonSchema>;
34
+ required?: string[];
35
+ additionalProperties?: false;
36
+ items?: UniversalJsonSchema;
37
+ }
38
+ export interface ConversionSuccess {
39
+ success: true;
40
+ schema: UniversalJsonSchema;
41
+ }
42
+ export interface ConversionFailure {
43
+ success: false;
44
+ error: string;
45
+ }
46
+ export type ConversionResult = ConversionSuccess | ConversionFailure;
47
+ /** Convert JTD schema to Universal JSON Schema compatible with Claude, Gemini, and OpenAI. */
48
+ export declare function jtdToUniversalJsonSchema(jtdSchema: JTDSchemaJson): ConversionResult;
49
+ export declare const MAX_VALIDATION_DEPTH = 32;
50
+ export declare const MAX_VALIDATION_ERRORS = 100;
51
+ /** Validate that the input is a valid JTD schema. */
52
+ export declare function validateJTDSchema(schema: unknown): {
53
+ valid: true;
54
+ schema: JTDSchemaJson;
55
+ } | {
56
+ valid: false;
57
+ error: string;
58
+ };
59
+ /**
60
+ * Validate that the input is a valid JTD schema compatible with universal JSON schema
61
+ * (Anthropic Claude, Google Gemini, and OpenAI structured outputs).
62
+ */
63
+ export declare function validateUniversalJTD(schema: unknown): {
64
+ valid: true;
65
+ schema: JTDSchemaJson;
66
+ } | {
67
+ valid: false;
68
+ error: string;
69
+ };
70
+ /** Parse and validate a JSON string. */
71
+ export declare function validateJSON(jsonString: string): {
72
+ valid: boolean;
73
+ data?: unknown;
74
+ error?: string;
75
+ };
76
+ /** Parse a JSON string and validate it as a JTD schema. */
77
+ export declare function validateJTDSchemaString(schemaString: string): {
78
+ valid: true;
79
+ schema: JTDSchemaJson;
80
+ } | {
81
+ valid: false;
82
+ error: string;
83
+ };
84
+ /** Parse a JSON string and validate it as a universal JTD schema (compatible with Claude, Gemini, OpenAI). */
85
+ export declare function validateUniversalJTDSchemaString(schemaString: string): {
86
+ valid: true;
87
+ schema: JTDSchemaJson;
88
+ } | {
89
+ valid: false;
90
+ error: string;
91
+ };
92
+ /** Monaco editor JSON schema configuration for JTD schema IntelliSense and validation. */
93
+ export declare const JTD_SCHEMA_CONFIG: {
94
+ uri: string;
95
+ fileMatch: string[];
96
+ schema: {
97
+ $schema: string;
98
+ type: string;
99
+ properties: {
100
+ type: {
101
+ description: string;
102
+ enum: string[];
103
+ };
104
+ enum: {
105
+ description: string;
106
+ type: string;
107
+ items: {
108
+ type: string;
109
+ };
110
+ };
111
+ elements: {
112
+ description: string;
113
+ $ref: string;
114
+ };
115
+ properties: {
116
+ description: string;
117
+ type: string;
118
+ additionalProperties: {
119
+ $ref: string;
120
+ };
121
+ };
122
+ optionalProperties: {
123
+ description: string;
124
+ type: string;
125
+ additionalProperties: {
126
+ $ref: string;
127
+ };
128
+ };
129
+ values: {
130
+ description: string;
131
+ $ref: string;
132
+ };
133
+ discriminator: {
134
+ description: string;
135
+ type: string;
136
+ };
137
+ mapping: {
138
+ description: string;
139
+ type: string;
140
+ additionalProperties: {
141
+ $ref: string;
142
+ };
143
+ };
144
+ ref: {
145
+ description: string;
146
+ type: string;
147
+ };
148
+ definitions: {
149
+ description: string;
150
+ type: string;
151
+ additionalProperties: {
152
+ $ref: string;
153
+ };
154
+ };
155
+ nullable: {
156
+ description: string;
157
+ type: string;
158
+ };
159
+ metadata: {
160
+ description: string;
161
+ type: string;
162
+ };
163
+ additionalProperties: {
164
+ description: string;
165
+ type: string;
166
+ };
167
+ };
168
+ };
169
+ };
170
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/signals/index.ts"],"names":[],"mappings":"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"}
@@ -154,4 +154,4 @@ export interface ExecutorEnvironment extends Environment {
154
154
  export interface ConfiguratorEnvironment extends Environment {
155
155
  configurator: Fetcher;
156
156
  }
157
- //# sourceMappingURL=types.d.ts.map
157
+ //# sourceMappingURL=index.d.ts.map