@agentskit/chat-protocol 0.1.0 → 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.
- package/README.md +5 -0
- package/dist/index.cjs +254 -96
- package/dist/index.d.cts +425 -1
- package/dist/index.d.ts +425 -1
- package/dist/index.js +240 -96
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// src/index.ts
|
|
2
2
|
import { deserializeMessages, serializeMessages } from "@agentskit/core";
|
|
3
3
|
import { validateMemoryRecord } from "@agentskit/core/memory-validation";
|
|
4
|
-
import { z as
|
|
4
|
+
import { z as z4 } from "zod";
|
|
5
5
|
|
|
6
6
|
// src/ask.ts
|
|
7
7
|
import { z } from "zod";
|
|
@@ -13,7 +13,12 @@ var AskEventSchema = z.discriminatedUnion("type", [
|
|
|
13
13
|
z.object({ type: z.literal("text"), delta: z.string().max(ASK_EVENT_MAX_BYTES) }).strict(),
|
|
14
14
|
z.object({ type: z.literal("tool"), id: z.string().max(256), name: z.string().max(128), args: AskArgsSchema }).strict(),
|
|
15
15
|
z.object({ type: z.literal("done"), model: z.string().max(256).optional() }).strict(),
|
|
16
|
-
z.object({
|
|
16
|
+
z.object({
|
|
17
|
+
type: z.literal("error"),
|
|
18
|
+
message: z.string().min(1).max(4096),
|
|
19
|
+
code: z.string().regex(/^[A-Z][A-Z0-9_]{0,127}$/).optional(),
|
|
20
|
+
retryable: z.boolean().optional()
|
|
21
|
+
}).strict()
|
|
17
22
|
]);
|
|
18
23
|
var byteLength = (value) => new TextEncoder().encode(value).byteLength;
|
|
19
24
|
function decodeAskEvents(buffer) {
|
|
@@ -43,6 +48,9 @@ function decodeAskEvents(buffer) {
|
|
|
43
48
|
return { events: Object.freeze(events), rest: discardedPartial ? "" : partial, discardedPartial };
|
|
44
49
|
}
|
|
45
50
|
|
|
51
|
+
// src/backend.ts
|
|
52
|
+
import { z as z3 } from "zod";
|
|
53
|
+
|
|
46
54
|
// src/deterministic.ts
|
|
47
55
|
import { sha256 } from "@noble/hashes/sha2.js";
|
|
48
56
|
import { bytesToHex } from "@noble/hashes/utils.js";
|
|
@@ -313,6 +321,128 @@ var verifyLocalKnowledgeArtifactSync = (input, options) => {
|
|
|
313
321
|
var verifyLocalKnowledgeArtifact = async (input, options) => verifyLocalKnowledgeArtifactSync(input, options);
|
|
314
322
|
var decodeAnswerResponse = (input) => parseBoundedInput(input, AnswerResponseSchema, ANSWER_PROTOCOL, ANSWER_PROTOCOL_VERSION, 262144);
|
|
315
323
|
|
|
324
|
+
// src/backend.ts
|
|
325
|
+
var ASK_BACKEND_PROTOCOL = "agentskit.chat.ask";
|
|
326
|
+
var ASK_BACKEND_PROTOCOL_VERSION = 1;
|
|
327
|
+
var ASK_BACKEND_MAX_MESSAGES = 64;
|
|
328
|
+
var ASK_BACKEND_MAX_MESSAGE_CHARS = 16384;
|
|
329
|
+
var ASK_BACKEND_MAX_SOURCES = 8;
|
|
330
|
+
var SafeIdentifierSchema2 = z3.string().regex(/^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/);
|
|
331
|
+
var SafeLabelSchema = z3.string().trim().min(1).max(256);
|
|
332
|
+
var SafeHrefSchema2 = z3.string().min(1).max(2048).refine((value) => {
|
|
333
|
+
if (/[\u0000-\u001F\u007F\\]/u.test(value) || value.startsWith("//")) return false;
|
|
334
|
+
if (!/^[A-Za-z][A-Za-z0-9+.-]*:/.test(value)) return /^\/(?!\/)/.test(value);
|
|
335
|
+
try {
|
|
336
|
+
const url = new URL(value);
|
|
337
|
+
return (url.protocol === "http:" || url.protocol === "https:") && url.username === "" && url.password === "";
|
|
338
|
+
} catch {
|
|
339
|
+
return false;
|
|
340
|
+
}
|
|
341
|
+
}, "Source must use a safe relative, HTTP, or HTTPS URL.");
|
|
342
|
+
var AskBackendMessageSchema = z3.object({
|
|
343
|
+
role: z3.enum(["user", "assistant"]),
|
|
344
|
+
content: z3.string().max(ASK_BACKEND_MAX_MESSAGE_CHARS)
|
|
345
|
+
}).strict().readonly();
|
|
346
|
+
var DeterministicEscalationSchema = AnswerResponseSchema.refine(
|
|
347
|
+
(value) => value.outcome === "escalation",
|
|
348
|
+
"Deterministic context must be an escalation."
|
|
349
|
+
);
|
|
350
|
+
var AskBackendRequestSchema = z3.object({
|
|
351
|
+
protocol: z3.literal(ASK_BACKEND_PROTOCOL).optional(),
|
|
352
|
+
version: z3.literal(ASK_BACKEND_PROTOCOL_VERSION).optional(),
|
|
353
|
+
sessionId: SafeIdentifierSchema2.optional(),
|
|
354
|
+
messages: z3.array(AskBackendMessageSchema).min(1).max(ASK_BACKEND_MAX_MESSAGES).readonly(),
|
|
355
|
+
deterministic: DeterministicEscalationSchema.optional()
|
|
356
|
+
}).strict().readonly();
|
|
357
|
+
var AskBackendSourceSchema = z3.object({
|
|
358
|
+
id: SafeIdentifierSchema2,
|
|
359
|
+
title: SafeLabelSchema,
|
|
360
|
+
href: SafeHrefSchema2,
|
|
361
|
+
excerpt: z3.string().trim().min(1).max(4096)
|
|
362
|
+
}).strict().readonly();
|
|
363
|
+
var AskBackendSiteConfigSchema = z3.object({
|
|
364
|
+
protocol: z3.literal("agentskit.chat.backend-site"),
|
|
365
|
+
version: z3.literal(1),
|
|
366
|
+
siteId: SafeIdentifierSchema2,
|
|
367
|
+
assistant: z3.object({
|
|
368
|
+
id: SafeIdentifierSchema2,
|
|
369
|
+
name: SafeLabelSchema,
|
|
370
|
+
suggestions: z3.array(SafeLabelSchema).max(8).readonly()
|
|
371
|
+
}).strict().readonly(),
|
|
372
|
+
corpus: z3.object({
|
|
373
|
+
id: SafeIdentifierSchema2,
|
|
374
|
+
mode: z3.enum(["local", "federated"])
|
|
375
|
+
}).strict().readonly(),
|
|
376
|
+
components: z3.array(SafeIdentifierSchema2).max(64).readonly(),
|
|
377
|
+
actions: z3.array(SafeIdentifierSchema2).max(64).readonly(),
|
|
378
|
+
limits: z3.object({
|
|
379
|
+
requestTimeoutMs: z3.number().int().min(100).max(12e4),
|
|
380
|
+
retrievalTimeoutMs: z3.number().int().min(100).max(6e4),
|
|
381
|
+
generationTimeoutMs: z3.number().int().min(100).max(12e4),
|
|
382
|
+
maxSources: z3.number().int().min(1).max(ASK_BACKEND_MAX_SOURCES)
|
|
383
|
+
}).strict().readonly(),
|
|
384
|
+
persistence: z3.object({ mode: z3.enum(["required", "disabled"]) }).strict().readonly()
|
|
385
|
+
}).strict().readonly();
|
|
386
|
+
var AskBackendUsageSchema = z3.object({
|
|
387
|
+
inputTokens: z3.number().int().nonnegative().optional(),
|
|
388
|
+
outputTokens: z3.number().int().nonnegative().optional(),
|
|
389
|
+
totalTokens: z3.number().int().nonnegative().optional(),
|
|
390
|
+
costUsd: z3.number().nonnegative().finite().optional(),
|
|
391
|
+
model: z3.string().trim().min(1).max(256).optional()
|
|
392
|
+
}).strict().readonly();
|
|
393
|
+
var AskBackendSessionRecordSchema = z3.object({
|
|
394
|
+
revision: z3.number().int().nonnegative(),
|
|
395
|
+
messages: z3.array(AskBackendMessageSchema).max(ASK_BACKEND_MAX_MESSAGES).readonly()
|
|
396
|
+
}).strict().readonly();
|
|
397
|
+
var AskBackendDiagnosticSchema = z3.object({
|
|
398
|
+
code: z3.enum([
|
|
399
|
+
"ASK_INVALID_REQUEST",
|
|
400
|
+
"ASK_UNAUTHORIZED",
|
|
401
|
+
"ASK_FORBIDDEN",
|
|
402
|
+
"ASK_RATE_LIMITED",
|
|
403
|
+
"ASK_TIMEOUT",
|
|
404
|
+
"ASK_CANCELLED",
|
|
405
|
+
"ASK_RETRIEVAL_FAILED",
|
|
406
|
+
"ASK_NO_GROUNDED_SOURCES",
|
|
407
|
+
"ASK_GENERATION_FAILED",
|
|
408
|
+
"ASK_PERSISTENCE_CONFLICT",
|
|
409
|
+
"ASK_INTERNAL"
|
|
410
|
+
]),
|
|
411
|
+
message: z3.string().trim().min(1).max(4096),
|
|
412
|
+
retryable: z3.boolean()
|
|
413
|
+
}).strict().readonly();
|
|
414
|
+
var AskBackendMetricNameSchema = z3.enum([
|
|
415
|
+
"request.total_ms",
|
|
416
|
+
"stream.first_event_ms",
|
|
417
|
+
"stream.first_token_ms",
|
|
418
|
+
"stream.bytes",
|
|
419
|
+
"stream.events",
|
|
420
|
+
"stream.snapshots",
|
|
421
|
+
"deterministic.fallback",
|
|
422
|
+
"retrieval.total_ms",
|
|
423
|
+
"retrieval.documents",
|
|
424
|
+
"persistence.total_ms",
|
|
425
|
+
"cancellation.count",
|
|
426
|
+
"conflict.count",
|
|
427
|
+
"error.count",
|
|
428
|
+
"usage.input_tokens",
|
|
429
|
+
"usage.output_tokens",
|
|
430
|
+
"usage.total_tokens",
|
|
431
|
+
"cost.usd"
|
|
432
|
+
]);
|
|
433
|
+
var AskBackendMetricSchema = z3.object({
|
|
434
|
+
protocol: z3.literal("agentskit.chat.backend-metric"),
|
|
435
|
+
version: z3.literal(1),
|
|
436
|
+
name: AskBackendMetricNameSchema,
|
|
437
|
+
siteId: SafeIdentifierSchema2,
|
|
438
|
+
corpusId: SafeIdentifierSchema2,
|
|
439
|
+
requestId: SafeIdentifierSchema2,
|
|
440
|
+
value: z3.number().finite().nonnegative(),
|
|
441
|
+
unit: z3.enum(["ms", "bytes", "count", "tokens", "usd"]),
|
|
442
|
+
outcome: z3.enum(["ok", "rejected", "cancelled", "error"]),
|
|
443
|
+
emittedAt: z3.string().datetime({ offset: true })
|
|
444
|
+
}).strict().readonly();
|
|
445
|
+
|
|
316
446
|
// src/index.ts
|
|
317
447
|
var isRecord = (value) => typeof value === "object" && value !== null && !Array.isArray(value);
|
|
318
448
|
var isBoundedJsonValue = (input) => {
|
|
@@ -349,46 +479,46 @@ var ASSISTANT_CONTENT_PREFIX = `${ASSISTANT_CONTENT_PROTOCOL}/${ASSISTANT_CONTE
|
|
|
349
479
|
var ASSISTANT_CONTENT_PREFIX_ROOT = `${ASSISTANT_CONTENT_PROTOCOL}/`;
|
|
350
480
|
var ASSISTANT_CONTENT_MAX_BYTES = 262144;
|
|
351
481
|
var ASSISTANT_CONTENT_MAX_RECORDS = 512;
|
|
352
|
-
var ComponentKeySchema =
|
|
353
|
-
var ComponentFallbackSchema =
|
|
354
|
-
kind:
|
|
355
|
-
summary:
|
|
482
|
+
var ComponentKeySchema = z4.string().regex(/^[a-z][a-z0-9-]{0,63}$/);
|
|
483
|
+
var ComponentFallbackSchema = z4.object({
|
|
484
|
+
kind: z4.string().min(1).max(64),
|
|
485
|
+
summary: z4.string().min(1).max(4096)
|
|
356
486
|
}).readonly();
|
|
357
|
-
var ComponentRenderFrameSchema =
|
|
358
|
-
protocol:
|
|
359
|
-
version:
|
|
360
|
-
type:
|
|
487
|
+
var ComponentRenderFrameSchema = z4.object({
|
|
488
|
+
protocol: z4.literal(COMPONENT_PROTOCOL),
|
|
489
|
+
version: z4.literal(COMPONENT_PROTOCOL_VERSION),
|
|
490
|
+
type: z4.literal("render"),
|
|
361
491
|
componentKey: ComponentKeySchema,
|
|
362
|
-
instanceId:
|
|
363
|
-
props:
|
|
492
|
+
instanceId: z4.string().regex(/^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/),
|
|
493
|
+
props: z4.unknown().refine(isBoundedJsonValue),
|
|
364
494
|
fallback: ComponentFallbackSchema
|
|
365
495
|
}).readonly();
|
|
366
|
-
var ComponentSelectionEventSchema =
|
|
367
|
-
protocol:
|
|
368
|
-
version:
|
|
369
|
-
type:
|
|
496
|
+
var ComponentSelectionEventSchema = z4.object({
|
|
497
|
+
protocol: z4.literal(COMPONENT_PROTOCOL),
|
|
498
|
+
version: z4.literal(COMPONENT_PROTOCOL_VERSION),
|
|
499
|
+
type: z4.literal("select"),
|
|
370
500
|
componentKey: ComponentKeySchema,
|
|
371
|
-
instanceId:
|
|
372
|
-
choiceId:
|
|
501
|
+
instanceId: z4.string().regex(/^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/),
|
|
502
|
+
choiceId: z4.string().regex(/^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/)
|
|
373
503
|
}).readonly();
|
|
374
|
-
var ComponentInteractionEventSchema =
|
|
375
|
-
protocol:
|
|
376
|
-
version:
|
|
377
|
-
type:
|
|
504
|
+
var ComponentInteractionEventSchema = z4.object({
|
|
505
|
+
protocol: z4.literal(COMPONENT_PROTOCOL),
|
|
506
|
+
version: z4.literal(COMPONENT_PROTOCOL_VERSION),
|
|
507
|
+
type: z4.literal("interact"),
|
|
378
508
|
componentKey: ComponentKeySchema,
|
|
379
|
-
instanceId:
|
|
380
|
-
event:
|
|
381
|
-
value:
|
|
509
|
+
instanceId: z4.string().regex(/^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/),
|
|
510
|
+
event: z4.string().regex(/^[a-z][a-z0-9-]{0,63}$/),
|
|
511
|
+
value: z4.unknown().refine(isBoundedJsonValue).optional()
|
|
382
512
|
}).readonly();
|
|
383
|
-
var AssistantTextPartSchema =
|
|
384
|
-
kind:
|
|
385
|
-
text:
|
|
513
|
+
var AssistantTextPartSchema = z4.object({
|
|
514
|
+
kind: z4.literal("text"),
|
|
515
|
+
text: z4.string().min(1).max(16384)
|
|
386
516
|
}).readonly();
|
|
387
|
-
var AssistantComponentPartSchema =
|
|
388
|
-
kind:
|
|
517
|
+
var AssistantComponentPartSchema = z4.object({
|
|
518
|
+
kind: z4.literal("component"),
|
|
389
519
|
frame: ComponentRenderFrameSchema
|
|
390
520
|
}).readonly();
|
|
391
|
-
var AssistantContentPartSchema =
|
|
521
|
+
var AssistantContentPartSchema = z4.discriminatedUnion("kind", [AssistantTextPartSchema, AssistantComponentPartSchema]);
|
|
392
522
|
var createAssistantContentEncoder = () => {
|
|
393
523
|
let started = false;
|
|
394
524
|
return {
|
|
@@ -510,63 +640,63 @@ var createInteractionEvent = (frame, event, value) => ComponentInteractionEventS
|
|
|
510
640
|
event,
|
|
511
641
|
...value === void 0 ? {} : { value }
|
|
512
642
|
});
|
|
513
|
-
var TokenUsageSchema =
|
|
514
|
-
promptTokens:
|
|
515
|
-
completionTokens:
|
|
516
|
-
totalTokens:
|
|
643
|
+
var TokenUsageSchema = z4.object({
|
|
644
|
+
promptTokens: z4.number().int().nonnegative(),
|
|
645
|
+
completionTokens: z4.number().int().nonnegative(),
|
|
646
|
+
totalTokens: z4.number().int().nonnegative()
|
|
517
647
|
});
|
|
518
|
-
var TurnDiagnosticSchema =
|
|
519
|
-
version:
|
|
520
|
-
code:
|
|
521
|
-
message:
|
|
522
|
-
retryable:
|
|
648
|
+
var TurnDiagnosticSchema = z4.object({
|
|
649
|
+
version: z4.literal(1),
|
|
650
|
+
code: z4.string().regex(/^[A-Z][A-Z0-9_]*$/),
|
|
651
|
+
message: z4.string().min(1),
|
|
652
|
+
retryable: z4.boolean()
|
|
523
653
|
});
|
|
524
|
-
var
|
|
654
|
+
var SafeIdentifierSchema3 = z4.string().regex(/^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/);
|
|
525
655
|
var EnvelopeFields = {
|
|
526
|
-
protocol:
|
|
527
|
-
version:
|
|
528
|
-
eventId:
|
|
529
|
-
sessionId:
|
|
530
|
-
turnId:
|
|
531
|
-
sequence:
|
|
532
|
-
emittedAt:
|
|
656
|
+
protocol: z4.literal(TURN_PROTOCOL),
|
|
657
|
+
version: z4.literal(TURN_PROTOCOL_VERSION),
|
|
658
|
+
eventId: z4.string().regex(/^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/),
|
|
659
|
+
sessionId: z4.string().regex(/^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/),
|
|
660
|
+
turnId: z4.string().regex(/^[A-Za-z0-9][A-Za-z0-9._:-]{0,127}$/),
|
|
661
|
+
sequence: z4.number().int().nonnegative(),
|
|
662
|
+
emittedAt: z4.string().datetime({ offset: true })
|
|
533
663
|
};
|
|
534
|
-
var MemoryMessagesSchema =
|
|
664
|
+
var MemoryMessagesSchema = z4.array(z4.unknown()).transform((messages, context) => {
|
|
535
665
|
try {
|
|
536
666
|
return validateMemoryRecord({ version: 1, messages }).messages;
|
|
537
667
|
} catch {
|
|
538
668
|
context.addIssue({ code: "custom", message: "Messages are not a valid AgentsKit memory record." });
|
|
539
|
-
return
|
|
669
|
+
return z4.NEVER;
|
|
540
670
|
}
|
|
541
671
|
});
|
|
542
|
-
var TurnLineageSchema =
|
|
543
|
-
|
|
544
|
-
|
|
672
|
+
var TurnLineageSchema = z4.discriminatedUnion("operation", [
|
|
673
|
+
z4.object({ operation: z4.literal("submit") }),
|
|
674
|
+
z4.object({ operation: z4.enum(["retry", "edit", "regenerate"]), parentTurnId: SafeIdentifierSchema3, sourceMessageId: SafeIdentifierSchema3 })
|
|
545
675
|
]);
|
|
546
|
-
var SubmitEventSchema =
|
|
676
|
+
var SubmitEventSchema = z4.object({
|
|
547
677
|
...EnvelopeFields,
|
|
548
|
-
event:
|
|
549
|
-
payload:
|
|
550
|
-
input:
|
|
678
|
+
event: z4.literal("client.turn.submit"),
|
|
679
|
+
payload: z4.object({
|
|
680
|
+
input: z4.string().min(1).refine((value) => value.trim().length > 0)
|
|
551
681
|
})
|
|
552
682
|
});
|
|
553
|
-
var SnapshotEventSchema =
|
|
683
|
+
var SnapshotEventSchema = z4.object({
|
|
554
684
|
...EnvelopeFields,
|
|
555
|
-
event:
|
|
556
|
-
payload:
|
|
685
|
+
event: z4.literal("server.turn.snapshot"),
|
|
686
|
+
payload: z4.object({
|
|
557
687
|
messages: MemoryMessagesSchema,
|
|
558
|
-
status:
|
|
688
|
+
status: z4.enum(["idle", "streaming", "complete", "error"]),
|
|
559
689
|
usage: TokenUsageSchema,
|
|
560
690
|
error: TurnDiagnosticSchema.optional(),
|
|
561
691
|
lineage: TurnLineageSchema.optional()
|
|
562
692
|
})
|
|
563
693
|
});
|
|
564
|
-
var DiagnosticEventSchema =
|
|
694
|
+
var DiagnosticEventSchema = z4.object({
|
|
565
695
|
...EnvelopeFields,
|
|
566
|
-
event:
|
|
696
|
+
event: z4.literal("server.turn.diagnostic"),
|
|
567
697
|
payload: TurnDiagnosticSchema
|
|
568
698
|
});
|
|
569
|
-
var TurnEventSchema =
|
|
699
|
+
var TurnEventSchema = z4.discriminatedUnion("event", [
|
|
570
700
|
SubmitEventSchema,
|
|
571
701
|
SnapshotEventSchema,
|
|
572
702
|
DiagnosticEventSchema
|
|
@@ -594,7 +724,7 @@ var createSnapshotEvent = (options) => SnapshotEventSchema.parse({
|
|
|
594
724
|
}
|
|
595
725
|
});
|
|
596
726
|
var createTurnSnapshotCursor = (sessionId) => {
|
|
597
|
-
const expectedSessionId =
|
|
727
|
+
const expectedSessionId = SafeIdentifierSchema3.parse(sessionId);
|
|
598
728
|
let snapshot;
|
|
599
729
|
return {
|
|
600
730
|
apply(input) {
|
|
@@ -612,7 +742,7 @@ var eventNames = /* @__PURE__ */ new Set(["client.turn.submit", "server.turn.sna
|
|
|
612
742
|
var safeEventId = (input) => {
|
|
613
743
|
try {
|
|
614
744
|
if (!isRecord(input)) return void 0;
|
|
615
|
-
const parsed =
|
|
745
|
+
const parsed = SafeIdentifierSchema3.safeParse(input.eventId);
|
|
616
746
|
return parsed.success ? parsed.data : void 0;
|
|
617
747
|
} catch {
|
|
618
748
|
return void 0;
|
|
@@ -667,22 +797,22 @@ var snapshotMessages = (event) => {
|
|
|
667
797
|
};
|
|
668
798
|
var SESSION_PROTOCOL = "agentskit.chat.session";
|
|
669
799
|
var SESSION_PROTOCOL_VERSION = 1;
|
|
670
|
-
var SessionDecisionSchema =
|
|
671
|
-
messageId:
|
|
672
|
-
input:
|
|
673
|
-
routeId:
|
|
674
|
-
kind:
|
|
675
|
-
content:
|
|
676
|
-
fromState:
|
|
677
|
-
toState:
|
|
800
|
+
var SessionDecisionSchema = z4.object({
|
|
801
|
+
messageId: SafeIdentifierSchema3,
|
|
802
|
+
input: z4.string().max(16384),
|
|
803
|
+
routeId: SafeIdentifierSchema3,
|
|
804
|
+
kind: z4.enum(["deterministic", "repaired", "fallback"]),
|
|
805
|
+
content: z4.string().max(65536),
|
|
806
|
+
fromState: z4.string().min(1).max(128),
|
|
807
|
+
toState: z4.string().min(1).max(128)
|
|
678
808
|
}).readonly();
|
|
679
|
-
var SessionConfirmationSchema =
|
|
680
|
-
token:
|
|
681
|
-
action:
|
|
682
|
-
input:
|
|
683
|
-
toolCallId:
|
|
684
|
-
expiresAt:
|
|
685
|
-
status:
|
|
809
|
+
var SessionConfirmationSchema = z4.object({
|
|
810
|
+
token: SafeIdentifierSchema3,
|
|
811
|
+
action: SafeIdentifierSchema3,
|
|
812
|
+
input: z4.record(z4.string(), z4.unknown()).refine(isBoundedJsonValue),
|
|
813
|
+
toolCallId: SafeIdentifierSchema3,
|
|
814
|
+
expiresAt: z4.number().int().nonnegative(),
|
|
815
|
+
status: z4.enum(["pending", "approving", "rejecting", "expiring", "approved", "rejected", "expired"])
|
|
686
816
|
}).readonly();
|
|
687
817
|
var uniqueBy = (items, key, context, path) => {
|
|
688
818
|
const seen = /* @__PURE__ */ new Set();
|
|
@@ -692,29 +822,29 @@ var uniqueBy = (items, key, context, path) => {
|
|
|
692
822
|
seen.add(value);
|
|
693
823
|
});
|
|
694
824
|
};
|
|
695
|
-
var SessionDecisionsSchema =
|
|
696
|
-
var SessionConfirmationsSchema =
|
|
825
|
+
var SessionDecisionsSchema = z4.array(SessionDecisionSchema).max(1e3).superRefine((items, context) => uniqueBy(items, (item) => item.messageId, context, "messageId"));
|
|
826
|
+
var SessionConfirmationsSchema = z4.array(SessionConfirmationSchema).max(1e3).superRefine((items, context) => {
|
|
697
827
|
uniqueBy(items, (item) => item.token, context, "token");
|
|
698
828
|
uniqueBy(items, (item) => item.toolCallId, context, "toolCallId");
|
|
699
829
|
});
|
|
700
|
-
var SessionSnapshotObjectSchema =
|
|
701
|
-
protocol:
|
|
702
|
-
version:
|
|
703
|
-
sessionId:
|
|
704
|
-
definitionId:
|
|
705
|
-
definitionRevision:
|
|
706
|
-
updatedAt:
|
|
707
|
-
cursor:
|
|
708
|
-
activeTurn:
|
|
709
|
-
terminalTurns:
|
|
710
|
-
conversation:
|
|
711
|
-
state:
|
|
830
|
+
var SessionSnapshotObjectSchema = z4.object({
|
|
831
|
+
protocol: z4.literal(SESSION_PROTOCOL),
|
|
832
|
+
version: z4.literal(SESSION_PROTOCOL_VERSION),
|
|
833
|
+
sessionId: SafeIdentifierSchema3,
|
|
834
|
+
definitionId: SafeIdentifierSchema3,
|
|
835
|
+
definitionRevision: z4.number().int().positive(),
|
|
836
|
+
updatedAt: z4.string().datetime({ offset: true }),
|
|
837
|
+
cursor: z4.number().int().nonnegative(),
|
|
838
|
+
activeTurn: z4.object({ turnId: SafeIdentifierSchema3, expiresAt: z4.number().int().nonnegative() }).readonly().optional(),
|
|
839
|
+
terminalTurns: z4.array(z4.object({ turnId: SafeIdentifierSchema3, outcome: z4.enum(["completed", "indeterminate"]) }).readonly()).max(64).superRefine((items, context) => uniqueBy(items, (item) => item.turnId, context, "turnId")).readonly().optional(),
|
|
840
|
+
conversation: z4.object({
|
|
841
|
+
state: z4.string().min(1).max(128),
|
|
712
842
|
decisions: SessionDecisionsSchema
|
|
713
843
|
}).readonly().optional(),
|
|
714
844
|
confirmations: SessionConfirmationsSchema
|
|
715
845
|
});
|
|
716
846
|
var SessionSnapshotSchema = SessionSnapshotObjectSchema.readonly();
|
|
717
|
-
var LegacySessionSnapshotSchema = SessionSnapshotObjectSchema.omit({ protocol: true, version: true }).extend({ version:
|
|
847
|
+
var LegacySessionSnapshotSchema = SessionSnapshotObjectSchema.omit({ protocol: true, version: true }).extend({ version: z4.literal(0) });
|
|
718
848
|
var decodeSessionSnapshot = (input) => {
|
|
719
849
|
let candidate = input;
|
|
720
850
|
if (typeof input === "string") {
|
|
@@ -741,6 +871,11 @@ export {
|
|
|
741
871
|
ANSWER_MAX_SUGGESTIONS,
|
|
742
872
|
ANSWER_PROTOCOL,
|
|
743
873
|
ANSWER_PROTOCOL_VERSION,
|
|
874
|
+
ASK_BACKEND_MAX_MESSAGES,
|
|
875
|
+
ASK_BACKEND_MAX_MESSAGE_CHARS,
|
|
876
|
+
ASK_BACKEND_MAX_SOURCES,
|
|
877
|
+
ASK_BACKEND_PROTOCOL,
|
|
878
|
+
ASK_BACKEND_PROTOCOL_VERSION,
|
|
744
879
|
ASK_EVENT_MAX_BYTES,
|
|
745
880
|
ASK_EVENT_MAX_RECORDS,
|
|
746
881
|
ASK_SERVICE_PROTOCOL_VERSION,
|
|
@@ -753,6 +888,15 @@ export {
|
|
|
753
888
|
AnswerConfidenceSchema,
|
|
754
889
|
AnswerResponseSchema,
|
|
755
890
|
AnswerSuggestionSchema,
|
|
891
|
+
AskBackendDiagnosticSchema,
|
|
892
|
+
AskBackendMessageSchema,
|
|
893
|
+
AskBackendMetricNameSchema,
|
|
894
|
+
AskBackendMetricSchema,
|
|
895
|
+
AskBackendRequestSchema,
|
|
896
|
+
AskBackendSessionRecordSchema,
|
|
897
|
+
AskBackendSiteConfigSchema,
|
|
898
|
+
AskBackendSourceSchema,
|
|
899
|
+
AskBackendUsageSchema,
|
|
756
900
|
AskEventSchema,
|
|
757
901
|
AssistantComponentPartSchema,
|
|
758
902
|
AssistantContentPartSchema,
|