@byok-sdk/protocol 0.7.0 → 0.8.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/dist/index.js CHANGED
@@ -3,6 +3,7 @@ import { z } from 'zod';
3
3
  // src/agent-egress.ts
4
4
  var AGENT_EGRESS_POLICY_CAPABILITY = "agent-egress-policy";
5
5
  var AGENT_EGRESS_RELIABLE_ACK_CAPABILITY = "agent-egress-reliable-ack";
6
+ var AGENT_EGRESS_FRESH_SESSION_CAPABILITY = "agent-egress-fresh-session";
6
7
  var AGENT_CONTENT_WORKSPACE_READ_CAPABILITY = "agent-content-workspace-read";
7
8
  var AGENT_CONTENT_TRANSCRIPT_READ_CAPABILITY = "agent-content-transcript-read";
8
9
  var AGENT_CONTENT_ARTIFACT_READ_CAPABILITY = "agent-content-artifact-read";
@@ -83,6 +84,19 @@ var AgentContentReadDenialReasonSchema = z.enum([
83
84
  ]);
84
85
  var AgentEgressContentHashSchema = z.string().regex(/^sha256:[a-f0-9]{64}$/u, "contentHash must be a lowercase SHA-256 digest");
85
86
  var AgentEgressPolicyRevisionSchema = POLICY_REVISION;
87
+ var AGENT_HOME_PROJECTION_CAPABILITY = "agent-home-projection";
88
+ var AGENT_HOME_PROJECTION_MAX_BYTES = 64 * 1024;
89
+ var AGENT_HOME_PROJECTION_PROFILE_REVISION_MAXIMUM = "9223372036854775807";
90
+ var AgentHomeProjectionProfileRevisionSchema = z.string().regex(/^[1-9][0-9]{0,18}$/u, "profileRevision must be a canonical positive decimal string").refine(
91
+ (value) => value.length < AGENT_HOME_PROJECTION_PROFILE_REVISION_MAXIMUM.length || value <= AGENT_HOME_PROJECTION_PROFILE_REVISION_MAXIMUM,
92
+ `profileRevision must not exceed PostgreSQL BIGINT maximum ${AGENT_HOME_PROJECTION_PROFILE_REVISION_MAXIMUM}`
93
+ );
94
+ var AgentHomeProjectionHashSchema = AgentEgressContentHashSchema;
95
+ var AgentHomeProjectionOutcomeSchema = z.enum(["applied", "idempotent", "stale", "conflict"]);
96
+ var AgentHomeProjectionValueSchema = z.json().refine(
97
+ (value) => new TextEncoder().encode(JSON.stringify(value)).byteLength <= AGENT_HOME_PROJECTION_MAX_BYTES,
98
+ `projection must not exceed ${AGENT_HOME_PROJECTION_MAX_BYTES} UTF-8 JSON bytes`
99
+ );
86
100
 
87
101
  // src/version.ts
88
102
  var PROTOCOL_VERSION = 1;
@@ -98,9 +112,11 @@ var CAPABILITY_FLAGS = [
98
112
  "agent-home-contract",
99
113
  AGENT_EGRESS_POLICY_CAPABILITY,
100
114
  AGENT_EGRESS_RELIABLE_ACK_CAPABILITY,
115
+ AGENT_EGRESS_FRESH_SESSION_CAPABILITY,
101
116
  AGENT_CONTENT_WORKSPACE_READ_CAPABILITY,
102
117
  AGENT_CONTENT_TRANSCRIPT_READ_CAPABILITY,
103
- AGENT_CONTENT_ARTIFACT_READ_CAPABILITY
118
+ AGENT_CONTENT_ARTIFACT_READ_CAPABILITY,
119
+ AGENT_HOME_PROJECTION_CAPABILITY
104
120
  ];
105
121
  var CONTENT_HASH_RE = /^sha256:[0-9a-f]{64}$/;
106
122
  var BlobRefSchema = z.object({
@@ -234,6 +250,9 @@ var AgentRefSchema = z.object({
234
250
  ),
235
251
  profileRevision: AGENT_REF_VALUE
236
252
  }).strict();
253
+ var AgentHomeProjectionAgentRefSchema = AgentRefSchema.extend({
254
+ profileRevision: AgentHomeProjectionProfileRevisionSchema
255
+ }).strict();
237
256
  function rejectDuplicateToolsets(ids, ctx, label) {
238
257
  const seen = /* @__PURE__ */ new Set();
239
258
  for (const [index, id] of ids.entries()) {
@@ -317,6 +336,9 @@ var TaskOfferForAgentWithEgressPayloadSchema = TaskOfferForAgentPayloadSchema.ex
317
336
  sessionRef: z.string().min(1).max(512),
318
337
  egressPolicy: AgentEgressPolicySchema
319
338
  }).strict();
339
+ var TaskOfferForAgentWithEgressFreshPayloadSchema = TaskOfferForAgentPayloadSchema.omit({
340
+ sessionRef: true
341
+ }).extend({ egressPolicy: AgentEgressPolicySchema }).strict();
320
342
  var EGRESS_SAFE_VALUE = z.json().refine(
321
343
  (value) => new TextEncoder().encode(JSON.stringify(value)).byteLength <= 256 * 1024,
322
344
  "sanitized egress payload exceeds 256KiB"
@@ -411,6 +433,12 @@ var AgentContentReceiptPayloadSchema = z.discriminatedUnion("decision", [
411
433
  ctx.addIssue({ code: "custom", path: ["blobRef", "contentType"], message: "blobRef contentType must equal mimeType" });
412
434
  }
413
435
  });
436
+ var AgentHomeProjectionPayloadSchema = z.object({
437
+ requestId: z.uuid(),
438
+ agentRef: AgentHomeProjectionAgentRefSchema,
439
+ projectionHash: AgentHomeProjectionHashSchema,
440
+ projection: AgentHomeProjectionValueSchema
441
+ }).strict();
414
442
  var TaskApprovePayloadSchema = z.object({
415
443
  approvalId: z.string().optional()
416
444
  });
@@ -561,10 +589,12 @@ var MESSAGE_PAYLOAD_SCHEMAS = {
561
589
  "task.offer_with_toolsets": TaskOfferWithToolsetsPayloadSchema,
562
590
  "task.offer_for_agent": TaskOfferForAgentPayloadSchema,
563
591
  "task.offer_for_agent_with_egress": TaskOfferForAgentWithEgressPayloadSchema,
592
+ "task.offer_for_agent_with_egress_fresh": TaskOfferForAgentWithEgressFreshPayloadSchema,
564
593
  "agent.egress.reliable": AgentEgressReliablePayloadSchema,
565
594
  "agent.egress.ack": AgentEgressAckPayloadSchema,
566
595
  "agent.content.read": AgentContentReadPayloadSchema,
567
596
  "agent.content.receipt": AgentContentReceiptPayloadSchema,
597
+ "agent.home.projection": AgentHomeProjectionPayloadSchema,
568
598
  "task.approve": TaskApprovePayloadSchema,
569
599
  "task.reject": TaskRejectPayloadSchema,
570
600
  "task.cancel": TaskCancelPayloadSchema,
@@ -587,8 +617,10 @@ var SERVER_TO_DAEMON_TYPES = [
587
617
  "task.offer_with_toolsets",
588
618
  "task.offer_for_agent",
589
619
  "task.offer_for_agent_with_egress",
620
+ "task.offer_for_agent_with_egress_fresh",
590
621
  "agent.egress.ack",
591
622
  "agent.content.read",
623
+ "agent.home.projection",
592
624
  "task.approve",
593
625
  "task.reject",
594
626
  "task.cancel",
@@ -610,6 +642,7 @@ var DAEMON_TO_SERVER_TYPES = [
610
642
  ];
611
643
  var REQUIRED_TASK_ID = z.string().min(1);
612
644
  var OPTIONAL_TASK_ID = REQUIRED_TASK_ID.optional();
645
+ var FORBIDDEN_TASK_ID = z.never().optional();
613
646
  var REQUIRED_SEQ = z.number().int();
614
647
  var OPTIONAL_SEQ = REQUIRED_SEQ.optional();
615
648
  function envelopeShape(type, taskId, seq) {
@@ -636,8 +669,10 @@ var EnvelopeSchema = z.discriminatedUnion("type", [
636
669
  envelopeShape("task.offer_with_toolsets", REQUIRED_TASK_ID, REQUIRED_SEQ),
637
670
  envelopeShape("task.offer_for_agent", REQUIRED_TASK_ID, REQUIRED_SEQ),
638
671
  envelopeShape("task.offer_for_agent_with_egress", REQUIRED_TASK_ID, REQUIRED_SEQ),
672
+ envelopeShape("task.offer_for_agent_with_egress_fresh", REQUIRED_TASK_ID, REQUIRED_SEQ),
639
673
  envelopeShape("agent.egress.ack", OPTIONAL_TASK_ID, REQUIRED_SEQ),
640
674
  envelopeShape("agent.content.read", OPTIONAL_TASK_ID, REQUIRED_SEQ),
675
+ envelopeShape("agent.home.projection", FORBIDDEN_TASK_ID, REQUIRED_SEQ),
641
676
  envelopeShape("task.approve", REQUIRED_TASK_ID, REQUIRED_SEQ),
642
677
  envelopeShape("task.reject", REQUIRED_TASK_ID, REQUIRED_SEQ),
643
678
  envelopeShape("task.cancel", REQUIRED_TASK_ID, REQUIRED_SEQ),
@@ -833,6 +868,28 @@ var MessagesSendResponseSchema = z.object({
833
868
  accepted: z.number().int().nonnegative(),
834
869
  rejected: z.number().int().nonnegative().optional()
835
870
  });
871
+ var AgentHomeProjectionCompletionRequestSchema = z.object({
872
+ requestId: z.uuid(),
873
+ agentRef: AgentHomeProjectionAgentRefSchema,
874
+ projectionHash: AgentHomeProjectionHashSchema,
875
+ outcome: AgentHomeProjectionOutcomeSchema
876
+ }).strict();
877
+ var AgentHomeProjectionStatusSchema = z.enum([
878
+ "pending",
879
+ "applied",
880
+ "idempotent",
881
+ "stale",
882
+ "conflict"
883
+ ]);
884
+ var AgentHomeProjectionReadbackSchema = z.object({
885
+ tenantId: z.string().min(1),
886
+ deviceId: z.string().min(1),
887
+ requestId: z.uuid(),
888
+ agentRef: AgentHomeProjectionAgentRefSchema,
889
+ projectionHash: AgentHomeProjectionHashSchema,
890
+ status: AgentHomeProjectionStatusSchema,
891
+ completedAt: z.iso.datetime({ offset: true }).optional()
892
+ }).strict();
836
893
  var BYOK_WS_PATH = "/byok/ws";
837
894
  var BYOK_PAIR_PATH = "/byok/pair";
838
895
  var BYOK_CHALLENGE_PATH = "/byok/challenge";
@@ -840,6 +897,11 @@ var BYOK_TOKEN_PATH = "/byok/token";
840
897
  var BYOK_CAPABILITIES_PATH = "/byok/capabilities";
841
898
  var BYOK_EVENTS_PATH = "/byok/events";
842
899
  var BYOK_MESSAGES_PATH = "/byok/messages";
900
+ var BYOK_AGENT_HOME_PROJECTIONS_PATH = "/byok/agent-home-projections";
901
+ var BYOK_AGENT_HOME_PROJECTION_COMPLETION_ROUTE = "/byok/agent-home-projections/:requestId/completion";
902
+ function byokAgentHomeProjectionCompletionPath(requestId) {
903
+ return `${BYOK_AGENT_HOME_PROJECTIONS_PATH}/${encodeURIComponent(requestId)}/completion`;
904
+ }
843
905
  var BYOK_PRESENCE_PATH = "/byok/presence";
844
906
  var BYOK_ACTIVITY_PATH = "/byok/activity";
845
907
  var BYOK_BOARD_PATH = "/byok/board";
@@ -871,6 +933,6 @@ function byokBlobContentPath(blobId) {
871
933
  return `/byok/blobs/${blobId}/content`;
872
934
  }
873
935
 
874
- export { AGENT_CONTENT_ARTIFACT_READ_CAPABILITY, AGENT_CONTENT_TRANSCRIPT_READ_CAPABILITY, AGENT_CONTENT_WORKSPACE_READ_CAPABILITY, AGENT_EGRESS_POLICY_CAPABILITY, AGENT_EGRESS_RELIABLE_ACK_CAPABILITY, AGENT_REF_MAX_BYTES, AgentContentActorKindSchema, AgentContentActorSchema, AgentContentDecodeAsSchema, AgentContentMimeTypeSchema, AgentContentReadDecisionSchema, AgentContentReadDenialReasonSchema, AgentContentReadPayloadSchema, AgentContentReadSurfaceSchema, AgentContentReceiptPayloadSchema, AgentEgressAckPayloadSchema, AgentEgressActivityPolicySchema, AgentEgressContentHashSchema, AgentEgressDropReasonSchema, AgentEgressLaneSchema, AgentEgressPolicyRevisionSchema, AgentEgressPolicySchema, AgentEgressReliablePayloadSchema, AgentEventOrUnknownSchema, AgentEventSchema, AgentRefSchema, AgentReliableQuotaPolicySchema, BYOK_ACTIVITY_PATH, BYOK_BLOBS_PATH, BYOK_BLOB_CONTENT_ROUTE, BYOK_BLOB_FINALIZE_ROUTE, BYOK_BLOB_URL_ROUTE, BYOK_BOARD_CLAIM_ROUTE, BYOK_BOARD_PATH, BYOK_BOARD_STATUS_ROUTE, BYOK_BOARD_STREAM_PATH, BYOK_BOARD_UNCLAIM_ROUTE, BYOK_CAPABILITIES_PATH, BYOK_CHALLENGE_PATH, BYOK_EVENTS_PATH, BYOK_MESSAGES_PATH, BYOK_PAIR_PATH, BYOK_PRESENCE_PATH, BYOK_RECORDS_PATH, BYOK_RECORD_ROUTE, BYOK_SKILL_PACKS_PATH, BYOK_SKILL_PACK_FILE_ROUTE, BYOK_TOKEN_PATH, BYOK_WS_PATH, BlobDownloadUrlResponseSchema, BlobRefSchema, CAPABILITY_FLAGS, CONFIGURED_TOOLSETS_MAX_ITEMS, CONTENT_HASH_RE, ChallengeRequestSchema, ChallengeResponseSchema, ConfiguredToolsetsSchema, ConnAckPayloadSchema, ConnHelloPayloadSchema, ContentReadPolicySchema, CreateBlobRequestSchema, CreateBlobResponseSchema, DAEMON_TO_SERVER_TYPES, DispatchSelectionSchema, EnvelopeParseError, EnvelopeSchema, EnvelopeValidationError, EventsPollQuerySchema, EventsPollResponseSchema, KNOWN_AGENT_EVENT_TYPES, MAX_MESSAGES_PER_BATCH, MESSAGE_PAYLOAD_SCHEMAS, MESSAGE_TYPES, MessagesSendRequestSchema, MessagesSendResponseSchema, PAIR_RESPONSE_TENANT_ID_MAX_LENGTH, PERMISSION_MODES, PROTOCOL_VERSION, PairRequestSchema, PairResponseSchema, PairResponseTenantIdSchema, PermissionPolicySchema, PresencePublishRequestSchema, ProtocolError, ProtocolVersionNumberSchema, RESULT_DOCUMENT_MAX_BYTES, RequiredToolsetsSchema, RuntimeCapabilitiesSchema, RuntimeIdSchema, RuntimeInfoSchema, SERVER_TO_DAEMON_TYPES, TASK_STATES, TASK_TRANSITIONS, TERMINAL_INFERENCE_USAGE_CLIENT_VERSION_MAX_LENGTH, TERMINAL_INFERENCE_USAGE_MAX_DURATION_MS, TERMINAL_INFERENCE_USAGE_MAX_TOKENS, TERMINAL_INFERENCE_USAGE_MODEL_MAX_LENGTH, TERMINAL_INFERENCE_USAGE_PROVIDER_MAX_LENGTH, TaskApprovalResolvedPayloadSchema, TaskApprovePayloadSchema, TaskArtifactPayloadSchema, TaskAwaitApprovalPayloadSchema, TaskCancelPayloadSchema, TaskCancelledPayloadSchema, TaskClaimPayloadSchema, TaskCompletePayloadSchema, TaskDeclinePayloadSchema, TaskFailPayloadSchema, TaskOfferForAgentPayloadSchema, TaskOfferForAgentWithEgressPayloadSchema, TaskOfferPayloadSchema, TaskOfferWithToolsetsPayloadSchema, TaskProgressPayloadSchema, TaskRejectPayloadSchema, TaskStartedPayloadSchema, TaskSteerPayloadSchema, TerminalInferenceUsageSchema, TokenRequestSchema, TokenResponseSchema, ToolsetIdSchema, UnknownAgentEventSchema, UnknownMessageTypeError, byokBlobContentPath, byokBlobFinalizePath, byokBlobUrlPath, byokRecordPath, byokSkillPackFilePath, canTransition, checkResultDocument, createEnvelope, decodeEnvelope, encodeEnvelope, isKnownAgentEvent, isServerToDaemonType, parseMessage, partitionAgentEvents };
936
+ export { AGENT_CONTENT_ARTIFACT_READ_CAPABILITY, AGENT_CONTENT_TRANSCRIPT_READ_CAPABILITY, AGENT_CONTENT_WORKSPACE_READ_CAPABILITY, AGENT_EGRESS_FRESH_SESSION_CAPABILITY, AGENT_EGRESS_POLICY_CAPABILITY, AGENT_EGRESS_RELIABLE_ACK_CAPABILITY, AGENT_HOME_PROJECTION_CAPABILITY, AGENT_HOME_PROJECTION_MAX_BYTES, AGENT_HOME_PROJECTION_PROFILE_REVISION_MAXIMUM, AGENT_REF_MAX_BYTES, AgentContentActorKindSchema, AgentContentActorSchema, AgentContentDecodeAsSchema, AgentContentMimeTypeSchema, AgentContentReadDecisionSchema, AgentContentReadDenialReasonSchema, AgentContentReadPayloadSchema, AgentContentReadSurfaceSchema, AgentContentReceiptPayloadSchema, AgentEgressAckPayloadSchema, AgentEgressActivityPolicySchema, AgentEgressContentHashSchema, AgentEgressDropReasonSchema, AgentEgressLaneSchema, AgentEgressPolicyRevisionSchema, AgentEgressPolicySchema, AgentEgressReliablePayloadSchema, AgentEventOrUnknownSchema, AgentEventSchema, AgentHomeProjectionAgentRefSchema, AgentHomeProjectionCompletionRequestSchema, AgentHomeProjectionHashSchema, AgentHomeProjectionOutcomeSchema, AgentHomeProjectionPayloadSchema, AgentHomeProjectionProfileRevisionSchema, AgentHomeProjectionReadbackSchema, AgentHomeProjectionStatusSchema, AgentHomeProjectionValueSchema, AgentRefSchema, AgentReliableQuotaPolicySchema, BYOK_ACTIVITY_PATH, BYOK_AGENT_HOME_PROJECTIONS_PATH, BYOK_AGENT_HOME_PROJECTION_COMPLETION_ROUTE, BYOK_BLOBS_PATH, BYOK_BLOB_CONTENT_ROUTE, BYOK_BLOB_FINALIZE_ROUTE, BYOK_BLOB_URL_ROUTE, BYOK_BOARD_CLAIM_ROUTE, BYOK_BOARD_PATH, BYOK_BOARD_STATUS_ROUTE, BYOK_BOARD_STREAM_PATH, BYOK_BOARD_UNCLAIM_ROUTE, BYOK_CAPABILITIES_PATH, BYOK_CHALLENGE_PATH, BYOK_EVENTS_PATH, BYOK_MESSAGES_PATH, BYOK_PAIR_PATH, BYOK_PRESENCE_PATH, BYOK_RECORDS_PATH, BYOK_RECORD_ROUTE, BYOK_SKILL_PACKS_PATH, BYOK_SKILL_PACK_FILE_ROUTE, BYOK_TOKEN_PATH, BYOK_WS_PATH, BlobDownloadUrlResponseSchema, BlobRefSchema, CAPABILITY_FLAGS, CONFIGURED_TOOLSETS_MAX_ITEMS, CONTENT_HASH_RE, ChallengeRequestSchema, ChallengeResponseSchema, ConfiguredToolsetsSchema, ConnAckPayloadSchema, ConnHelloPayloadSchema, ContentReadPolicySchema, CreateBlobRequestSchema, CreateBlobResponseSchema, DAEMON_TO_SERVER_TYPES, DispatchSelectionSchema, EnvelopeParseError, EnvelopeSchema, EnvelopeValidationError, EventsPollQuerySchema, EventsPollResponseSchema, KNOWN_AGENT_EVENT_TYPES, MAX_MESSAGES_PER_BATCH, MESSAGE_PAYLOAD_SCHEMAS, MESSAGE_TYPES, MessagesSendRequestSchema, MessagesSendResponseSchema, PAIR_RESPONSE_TENANT_ID_MAX_LENGTH, PERMISSION_MODES, PROTOCOL_VERSION, PairRequestSchema, PairResponseSchema, PairResponseTenantIdSchema, PermissionPolicySchema, PresencePublishRequestSchema, ProtocolError, ProtocolVersionNumberSchema, RESULT_DOCUMENT_MAX_BYTES, RequiredToolsetsSchema, RuntimeCapabilitiesSchema, RuntimeIdSchema, RuntimeInfoSchema, SERVER_TO_DAEMON_TYPES, TASK_STATES, TASK_TRANSITIONS, TERMINAL_INFERENCE_USAGE_CLIENT_VERSION_MAX_LENGTH, TERMINAL_INFERENCE_USAGE_MAX_DURATION_MS, TERMINAL_INFERENCE_USAGE_MAX_TOKENS, TERMINAL_INFERENCE_USAGE_MODEL_MAX_LENGTH, TERMINAL_INFERENCE_USAGE_PROVIDER_MAX_LENGTH, TaskApprovalResolvedPayloadSchema, TaskApprovePayloadSchema, TaskArtifactPayloadSchema, TaskAwaitApprovalPayloadSchema, TaskCancelPayloadSchema, TaskCancelledPayloadSchema, TaskClaimPayloadSchema, TaskCompletePayloadSchema, TaskDeclinePayloadSchema, TaskFailPayloadSchema, TaskOfferForAgentPayloadSchema, TaskOfferForAgentWithEgressFreshPayloadSchema, TaskOfferForAgentWithEgressPayloadSchema, TaskOfferPayloadSchema, TaskOfferWithToolsetsPayloadSchema, TaskProgressPayloadSchema, TaskRejectPayloadSchema, TaskStartedPayloadSchema, TaskSteerPayloadSchema, TerminalInferenceUsageSchema, TokenRequestSchema, TokenResponseSchema, ToolsetIdSchema, UnknownAgentEventSchema, UnknownMessageTypeError, byokAgentHomeProjectionCompletionPath, byokBlobContentPath, byokBlobFinalizePath, byokBlobUrlPath, byokRecordPath, byokSkillPackFilePath, canTransition, checkResultDocument, createEnvelope, decodeEnvelope, encodeEnvelope, isKnownAgentEvent, isServerToDaemonType, parseMessage, partitionAgentEvents };
875
937
  //# sourceMappingURL=index.js.map
876
938
  //# sourceMappingURL=index.js.map