@sequenceholdings/agent-spec 0.1.1 → 0.1.3

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 (72) hide show
  1. package/README.md +93 -0
  2. package/dist/agent-definition.d.ts +616 -0
  3. package/dist/agent-definition.js +240 -0
  4. package/dist/canonical-json.d.ts +2 -0
  5. package/dist/canonical-json.js +13 -0
  6. package/dist/index.d.ts +2 -117
  7. package/dist/index.js +2 -248
  8. package/dist/input-schema.d.ts +19 -0
  9. package/dist/input-schema.js +57 -0
  10. package/dist/voice-access.d.ts +40 -0
  11. package/dist/voice-access.js +34 -0
  12. package/dist/voice-actions-contracts.d.ts +423 -0
  13. package/dist/voice-actions-contracts.js +95 -0
  14. package/dist/voice-actions-transitions.d.ts +52 -0
  15. package/dist/voice-actions-transitions.js +170 -0
  16. package/dist/voice-actions.d.ts +2 -0
  17. package/dist/voice-actions.js +2 -0
  18. package/dist/voice-api.d.ts +1102 -0
  19. package/dist/voice-api.js +164 -0
  20. package/dist/voice-authoring.d.ts +463 -0
  21. package/dist/voice-authoring.js +132 -0
  22. package/dist/voice-authority-contracts.d.ts +247 -0
  23. package/dist/voice-authority-contracts.js +177 -0
  24. package/dist/voice-authority-evaluation.d.ts +29 -0
  25. package/dist/voice-authority-evaluation.js +80 -0
  26. package/dist/voice-authority-verification.d.ts +47 -0
  27. package/dist/voice-authority-verification.js +184 -0
  28. package/dist/voice-authority.d.ts +3 -0
  29. package/dist/voice-authority.js +3 -0
  30. package/dist/voice-common.d.ts +21 -0
  31. package/dist/voice-common.js +23 -0
  32. package/dist/voice-drafts.d.ts +441 -0
  33. package/dist/voice-drafts.js +75 -0
  34. package/dist/voice-grant.d.ts +19 -0
  35. package/dist/voice-grant.js +21 -0
  36. package/dist/voice-lifecycle-control.d.ts +130 -0
  37. package/dist/voice-lifecycle-control.js +138 -0
  38. package/dist/voice-lifecycle-session.d.ts +168 -0
  39. package/dist/voice-lifecycle-session.js +114 -0
  40. package/dist/voice-lifecycle-states.d.ts +96 -0
  41. package/dist/voice-lifecycle-states.js +139 -0
  42. package/dist/voice-lifecycle.d.ts +3 -0
  43. package/dist/voice-lifecycle.js +3 -0
  44. package/dist/voice-policy-duration.d.ts +46 -0
  45. package/dist/voice-policy-duration.js +166 -0
  46. package/dist/voice-policy-limits.d.ts +174 -0
  47. package/dist/voice-policy-limits.js +188 -0
  48. package/dist/voice-policy.d.ts +2 -0
  49. package/dist/voice-policy.js +2 -0
  50. package/dist/voice-provider-evidence.d.ts +80 -0
  51. package/dist/voice-provider-evidence.js +115 -0
  52. package/dist/voice-provider-publication.d.ts +319 -0
  53. package/dist/voice-provider-publication.js +117 -0
  54. package/dist/voice-provider-release.d.ts +386 -0
  55. package/dist/voice-provider-release.js +154 -0
  56. package/dist/voice-provider.d.ts +3 -0
  57. package/dist/voice-provider.js +3 -0
  58. package/dist/voice-release.d.ts +808 -0
  59. package/dist/voice-release.js +110 -0
  60. package/dist/voice-runs-audio.d.ts +157 -0
  61. package/dist/voice-runs-audio.js +85 -0
  62. package/dist/voice-runs-evidence.d.ts +183 -0
  63. package/dist/voice-runs-evidence.js +154 -0
  64. package/dist/voice-runs-model.d.ts +967 -0
  65. package/dist/voice-runs-model.js +199 -0
  66. package/dist/voice-runs-tooling.d.ts +88 -0
  67. package/dist/voice-runs-tooling.js +100 -0
  68. package/dist/voice-runs.d.ts +4 -0
  69. package/dist/voice-runs.js +4 -0
  70. package/dist/voice.d.ts +13 -0
  71. package/dist/voice.js +13 -0
  72. package/package.json +8 -3
@@ -0,0 +1,386 @@
1
+ import { z } from 'zod';
2
+ export declare const voiceProviderReleaseEvidenceSchema: z.ZodObject<{
3
+ schemaVersion: z.ZodLiteral<"1">;
4
+ scope: z.ZodObject<{
5
+ tenantId: z.ZodString;
6
+ environmentId: z.ZodString;
7
+ agentId: z.ZodString;
8
+ }, z.core.$strict>;
9
+ releaseId: z.ZodString;
10
+ publicationOperationId: z.ZodString;
11
+ agentVersionId: z.ZodString;
12
+ createdByPrincipalId: z.ZodString;
13
+ createdAt: z.ZodISODateTime;
14
+ inputEvidence: z.ZodObject<{
15
+ authoredDefinitionHash: z.ZodString;
16
+ localProjectionCompilerVersion: z.ZodString;
17
+ localProjectionHash: z.ZodString;
18
+ eligibleToolCatalogHash: z.ZodString;
19
+ resolvedBindingHash: z.ZodString;
20
+ }, z.core.$strict>;
21
+ ownedReleaseMarker: z.ZodString;
22
+ providerAgentId: z.ZodString;
23
+ agentBranchVersion: z.ZodObject<{
24
+ identifierContract: z.ZodEnum<{
25
+ LIVE_PROOF_PENDING: "LIVE_PROOF_PENDING";
26
+ NOT_USED: "NOT_USED";
27
+ BRANCH_ONLY: "BRANCH_ONLY";
28
+ VERSION_ONLY: "VERSION_ONLY";
29
+ BRANCH_AND_VERSION: "BRANCH_AND_VERSION";
30
+ }>;
31
+ branchId: z.ZodNullable<z.ZodString>;
32
+ versionId: z.ZodNullable<z.ZodString>;
33
+ verifiedAt: z.ZodNullable<z.ZodISODateTime>;
34
+ evidenceRef: z.ZodNullable<z.ZodString>;
35
+ }, z.core.$strict>;
36
+ procedureMappings: z.ZodArray<z.ZodObject<{
37
+ localProcedureKey: z.ZodString;
38
+ providerProcedureId: z.ZodString;
39
+ branchVersion: z.ZodObject<{
40
+ identifierContract: z.ZodEnum<{
41
+ LIVE_PROOF_PENDING: "LIVE_PROOF_PENDING";
42
+ NOT_USED: "NOT_USED";
43
+ BRANCH_ONLY: "BRANCH_ONLY";
44
+ VERSION_ONLY: "VERSION_ONLY";
45
+ BRANCH_AND_VERSION: "BRANCH_AND_VERSION";
46
+ }>;
47
+ branchId: z.ZodNullable<z.ZodString>;
48
+ versionId: z.ZodNullable<z.ZodString>;
49
+ verifiedAt: z.ZodNullable<z.ZodISODateTime>;
50
+ evidenceRef: z.ZodNullable<z.ZodString>;
51
+ }, z.core.$strict>;
52
+ }, z.core.$strict>>;
53
+ publicationProgress: z.ZodObject<{
54
+ phase: z.ZodEnum<{
55
+ FAILED: "FAILED";
56
+ RECONCILIATION_REQUIRED: "RECONCILIATION_REQUIRED";
57
+ CREATE_AGENT: "CREATE_AGENT";
58
+ CREATE_PROCEDURES: "CREATE_PROCEDURES";
59
+ COMPILE: "COMPILE";
60
+ VALIDATE_GENERATED_WORKFLOW: "VALIDATE_GENERATED_WORKFLOW";
61
+ FINALIZE: "FINALIZE";
62
+ READBACK: "READBACK";
63
+ COMPLETE: "COMPLETE";
64
+ }>;
65
+ compile: z.ZodDiscriminatedUnion<[z.ZodObject<{
66
+ status: z.ZodLiteral<"NOT_STARTED">;
67
+ operationId: z.ZodString;
68
+ }, z.core.$strict>, z.ZodObject<{
69
+ lastObservedAt: z.ZodISODateTime;
70
+ operationId: z.ZodString;
71
+ startedAt: z.ZodISODateTime;
72
+ status: z.ZodLiteral<"IN_PROGRESS">;
73
+ }, z.core.$strict>, z.ZodObject<{
74
+ completedAt: z.ZodISODateTime;
75
+ receiptId: z.ZodNullable<z.ZodString>;
76
+ operationId: z.ZodString;
77
+ startedAt: z.ZodISODateTime;
78
+ status: z.ZodLiteral<"SUCCEEDED">;
79
+ }, z.core.$strict>, z.ZodObject<{
80
+ failedAt: z.ZodISODateTime;
81
+ errorCode: z.ZodString;
82
+ sanitizedMessage: z.ZodString;
83
+ retryable: z.ZodBoolean;
84
+ operationId: z.ZodString;
85
+ startedAt: z.ZodISODateTime;
86
+ status: z.ZodLiteral<"FAILED">;
87
+ }, z.core.$strict>, z.ZodObject<{
88
+ observedAt: z.ZodISODateTime;
89
+ reconciliationKey: z.ZodString;
90
+ sanitizedReason: z.ZodString;
91
+ operationId: z.ZodString;
92
+ startedAt: z.ZodISODateTime;
93
+ status: z.ZodLiteral<"UNKNOWN">;
94
+ }, z.core.$strict>], "status">;
95
+ finalization: z.ZodDiscriminatedUnion<[z.ZodObject<{
96
+ status: z.ZodLiteral<"NOT_STARTED">;
97
+ operationId: z.ZodString;
98
+ }, z.core.$strict>, z.ZodObject<{
99
+ lastObservedAt: z.ZodISODateTime;
100
+ operationId: z.ZodString;
101
+ startedAt: z.ZodISODateTime;
102
+ status: z.ZodLiteral<"IN_PROGRESS">;
103
+ }, z.core.$strict>, z.ZodObject<{
104
+ completedAt: z.ZodISODateTime;
105
+ receiptId: z.ZodNullable<z.ZodString>;
106
+ operationId: z.ZodString;
107
+ startedAt: z.ZodISODateTime;
108
+ status: z.ZodLiteral<"SUCCEEDED">;
109
+ }, z.core.$strict>, z.ZodObject<{
110
+ failedAt: z.ZodISODateTime;
111
+ errorCode: z.ZodString;
112
+ sanitizedMessage: z.ZodString;
113
+ retryable: z.ZodBoolean;
114
+ operationId: z.ZodString;
115
+ startedAt: z.ZodISODateTime;
116
+ status: z.ZodLiteral<"FAILED">;
117
+ }, z.core.$strict>, z.ZodObject<{
118
+ observedAt: z.ZodISODateTime;
119
+ reconciliationKey: z.ZodString;
120
+ sanitizedReason: z.ZodString;
121
+ operationId: z.ZodString;
122
+ startedAt: z.ZodISODateTime;
123
+ status: z.ZodLiteral<"UNKNOWN">;
124
+ }, z.core.$strict>], "status">;
125
+ updatedAt: z.ZodISODateTime;
126
+ }, z.core.$strict>;
127
+ generatedWorkflow: z.ZodObject<{
128
+ schemaVersion: z.ZodLiteral<"1">;
129
+ capturedAt: z.ZodISODateTime;
130
+ documentHash: z.ZodString;
131
+ sanitizedDocument: z.ZodJSONSchema;
132
+ normalized: z.ZodObject<{
133
+ authoritySource: z.ZodLiteral<"ATLAS_RELEASE_BINDINGS">;
134
+ procedures: z.ZodArray<z.ZodObject<{
135
+ localProcedureKey: z.ZodString;
136
+ providerProcedureId: z.ZodString;
137
+ toolAliases: z.ZodArray<z.ZodString>;
138
+ referencedProviderProcedureIds: z.ZodArray<z.ZodString>;
139
+ }, z.core.$strict>>;
140
+ toolAliases: z.ZodArray<z.ZodString>;
141
+ }, z.core.$strict>;
142
+ }, z.core.$strict>;
143
+ desiredConfiguration: z.ZodObject<{
144
+ configuration: z.ZodObject<{
145
+ providerAgentId: z.ZodString;
146
+ agentBranchVersion: z.ZodObject<{
147
+ identifierContract: z.ZodEnum<{
148
+ LIVE_PROOF_PENDING: "LIVE_PROOF_PENDING";
149
+ NOT_USED: "NOT_USED";
150
+ BRANCH_ONLY: "BRANCH_ONLY";
151
+ VERSION_ONLY: "VERSION_ONLY";
152
+ BRANCH_AND_VERSION: "BRANCH_AND_VERSION";
153
+ }>;
154
+ branchId: z.ZodNullable<z.ZodString>;
155
+ versionId: z.ZodNullable<z.ZodString>;
156
+ verifiedAt: z.ZodNullable<z.ZodISODateTime>;
157
+ evidenceRef: z.ZodNullable<z.ZodString>;
158
+ }, z.core.$strict>;
159
+ privacy: z.ZodLiteral<"PRIVATE">;
160
+ procedureMappings: z.ZodArray<z.ZodObject<{
161
+ localProcedureKey: z.ZodString;
162
+ providerProcedureId: z.ZodString;
163
+ branchVersion: z.ZodObject<{
164
+ identifierContract: z.ZodEnum<{
165
+ LIVE_PROOF_PENDING: "LIVE_PROOF_PENDING";
166
+ NOT_USED: "NOT_USED";
167
+ BRANCH_ONLY: "BRANCH_ONLY";
168
+ VERSION_ONLY: "VERSION_ONLY";
169
+ BRANCH_AND_VERSION: "BRANCH_AND_VERSION";
170
+ }>;
171
+ branchId: z.ZodNullable<z.ZodString>;
172
+ versionId: z.ZodNullable<z.ZodString>;
173
+ verifiedAt: z.ZodNullable<z.ZodISODateTime>;
174
+ evidenceRef: z.ZodNullable<z.ZodString>;
175
+ }, z.core.$strict>;
176
+ }, z.core.$strict>>;
177
+ toolAliases: z.ZodArray<z.ZodString>;
178
+ generatedWorkflowHash: z.ZodString;
179
+ maxCallDurationSeconds: z.ZodNumber;
180
+ providerDurationCeilingSeconds: z.ZodNumber;
181
+ recordingEnabled: z.ZodBoolean;
182
+ retentionDays: z.ZodLiteral<-1>;
183
+ telephonyConnection: z.ZodLiteral<"ATLAS_TWILIO_REGISTER_CALL">;
184
+ directProviderConversationAccess: z.ZodLiteral<false>;
185
+ transfersEnabled: z.ZodLiteral<false>;
186
+ authoritySource: z.ZodLiteral<"ATLAS_RELEASE_BINDINGS">;
187
+ }, z.core.$strict>;
188
+ configurationHash: z.ZodString;
189
+ capturedAt: z.ZodISODateTime;
190
+ }, z.core.$strict>;
191
+ readbackEvidence: z.ZodDiscriminatedUnion<[z.ZodObject<{
192
+ status: z.ZodLiteral<"VERIFIED">;
193
+ configuration: z.ZodObject<{
194
+ providerAgentId: z.ZodString;
195
+ agentBranchVersion: z.ZodObject<{
196
+ identifierContract: z.ZodEnum<{
197
+ LIVE_PROOF_PENDING: "LIVE_PROOF_PENDING";
198
+ NOT_USED: "NOT_USED";
199
+ BRANCH_ONLY: "BRANCH_ONLY";
200
+ VERSION_ONLY: "VERSION_ONLY";
201
+ BRANCH_AND_VERSION: "BRANCH_AND_VERSION";
202
+ }>;
203
+ branchId: z.ZodNullable<z.ZodString>;
204
+ versionId: z.ZodNullable<z.ZodString>;
205
+ verifiedAt: z.ZodNullable<z.ZodISODateTime>;
206
+ evidenceRef: z.ZodNullable<z.ZodString>;
207
+ }, z.core.$strict>;
208
+ privacy: z.ZodLiteral<"PRIVATE">;
209
+ procedureMappings: z.ZodArray<z.ZodObject<{
210
+ localProcedureKey: z.ZodString;
211
+ providerProcedureId: z.ZodString;
212
+ branchVersion: z.ZodObject<{
213
+ identifierContract: z.ZodEnum<{
214
+ LIVE_PROOF_PENDING: "LIVE_PROOF_PENDING";
215
+ NOT_USED: "NOT_USED";
216
+ BRANCH_ONLY: "BRANCH_ONLY";
217
+ VERSION_ONLY: "VERSION_ONLY";
218
+ BRANCH_AND_VERSION: "BRANCH_AND_VERSION";
219
+ }>;
220
+ branchId: z.ZodNullable<z.ZodString>;
221
+ versionId: z.ZodNullable<z.ZodString>;
222
+ verifiedAt: z.ZodNullable<z.ZodISODateTime>;
223
+ evidenceRef: z.ZodNullable<z.ZodString>;
224
+ }, z.core.$strict>;
225
+ }, z.core.$strict>>;
226
+ toolAliases: z.ZodArray<z.ZodString>;
227
+ generatedWorkflowHash: z.ZodString;
228
+ maxCallDurationSeconds: z.ZodNumber;
229
+ providerDurationCeilingSeconds: z.ZodNumber;
230
+ recordingEnabled: z.ZodBoolean;
231
+ retentionDays: z.ZodLiteral<-1>;
232
+ telephonyConnection: z.ZodLiteral<"ATLAS_TWILIO_REGISTER_CALL">;
233
+ directProviderConversationAccess: z.ZodLiteral<false>;
234
+ transfersEnabled: z.ZodLiteral<false>;
235
+ authoritySource: z.ZodLiteral<"ATLAS_RELEASE_BINDINGS">;
236
+ }, z.core.$strict>;
237
+ configurationHash: z.ZodString;
238
+ observedAt: z.ZodISODateTime;
239
+ evidenceRef: z.ZodString;
240
+ sanitizedDetail: z.ZodNullable<z.ZodString>;
241
+ }, z.core.$strict>, z.ZodObject<{
242
+ status: z.ZodEnum<{
243
+ INCOMPLETE: "INCOMPLETE";
244
+ CONTRADICTORY: "CONTRADICTORY";
245
+ }>;
246
+ configuration: z.ZodNullable<z.ZodObject<{
247
+ providerAgentId: z.ZodString;
248
+ agentBranchVersion: z.ZodObject<{
249
+ identifierContract: z.ZodEnum<{
250
+ LIVE_PROOF_PENDING: "LIVE_PROOF_PENDING";
251
+ NOT_USED: "NOT_USED";
252
+ BRANCH_ONLY: "BRANCH_ONLY";
253
+ VERSION_ONLY: "VERSION_ONLY";
254
+ BRANCH_AND_VERSION: "BRANCH_AND_VERSION";
255
+ }>;
256
+ branchId: z.ZodNullable<z.ZodString>;
257
+ versionId: z.ZodNullable<z.ZodString>;
258
+ verifiedAt: z.ZodNullable<z.ZodISODateTime>;
259
+ evidenceRef: z.ZodNullable<z.ZodString>;
260
+ }, z.core.$strict>;
261
+ privacy: z.ZodLiteral<"PRIVATE">;
262
+ procedureMappings: z.ZodArray<z.ZodObject<{
263
+ localProcedureKey: z.ZodString;
264
+ providerProcedureId: z.ZodString;
265
+ branchVersion: z.ZodObject<{
266
+ identifierContract: z.ZodEnum<{
267
+ LIVE_PROOF_PENDING: "LIVE_PROOF_PENDING";
268
+ NOT_USED: "NOT_USED";
269
+ BRANCH_ONLY: "BRANCH_ONLY";
270
+ VERSION_ONLY: "VERSION_ONLY";
271
+ BRANCH_AND_VERSION: "BRANCH_AND_VERSION";
272
+ }>;
273
+ branchId: z.ZodNullable<z.ZodString>;
274
+ versionId: z.ZodNullable<z.ZodString>;
275
+ verifiedAt: z.ZodNullable<z.ZodISODateTime>;
276
+ evidenceRef: z.ZodNullable<z.ZodString>;
277
+ }, z.core.$strict>;
278
+ }, z.core.$strict>>;
279
+ toolAliases: z.ZodArray<z.ZodString>;
280
+ generatedWorkflowHash: z.ZodString;
281
+ maxCallDurationSeconds: z.ZodNumber;
282
+ providerDurationCeilingSeconds: z.ZodNumber;
283
+ recordingEnabled: z.ZodBoolean;
284
+ retentionDays: z.ZodLiteral<-1>;
285
+ telephonyConnection: z.ZodLiteral<"ATLAS_TWILIO_REGISTER_CALL">;
286
+ directProviderConversationAccess: z.ZodLiteral<false>;
287
+ transfersEnabled: z.ZodLiteral<false>;
288
+ authoritySource: z.ZodLiteral<"ATLAS_RELEASE_BINDINGS">;
289
+ }, z.core.$strict>>;
290
+ configurationHash: z.ZodNullable<z.ZodString>;
291
+ observedAt: z.ZodISODateTime;
292
+ evidenceRef: z.ZodNullable<z.ZodString>;
293
+ sanitizedDetail: z.ZodString;
294
+ }, z.core.$strict>], "status">;
295
+ capabilityGates: z.ZodObject<{
296
+ procedureLifecycle: z.ZodObject<{
297
+ status: z.ZodEnum<{
298
+ LIVE_PROOF_PENDING: "LIVE_PROOF_PENDING";
299
+ VERIFIED_SUPPORTED: "VERIFIED_SUPPORTED";
300
+ VERIFIED_UNSUPPORTED: "VERIFIED_UNSUPPORTED";
301
+ DEFERRED: "DEFERRED";
302
+ }>;
303
+ verifiedAt: z.ZodNullable<z.ZodISODateTime>;
304
+ verifiedByPrincipalId: z.ZodNullable<z.ZodString>;
305
+ evidenceRef: z.ZodNullable<z.ZodString>;
306
+ sanitizedNote: z.ZodNullable<z.ZodString>;
307
+ }, z.core.$strict>;
308
+ durationEnforcement: z.ZodObject<{
309
+ status: z.ZodEnum<{
310
+ LIVE_PROOF_PENDING: "LIVE_PROOF_PENDING";
311
+ VERIFIED_SUPPORTED: "VERIFIED_SUPPORTED";
312
+ VERIFIED_UNSUPPORTED: "VERIFIED_UNSUPPORTED";
313
+ DEFERRED: "DEFERRED";
314
+ }>;
315
+ verifiedAt: z.ZodNullable<z.ZodISODateTime>;
316
+ verifiedByPrincipalId: z.ZodNullable<z.ZodString>;
317
+ evidenceRef: z.ZodNullable<z.ZodString>;
318
+ sanitizedNote: z.ZodNullable<z.ZodString>;
319
+ }, z.core.$strict>;
320
+ recording: z.ZodObject<{
321
+ status: z.ZodEnum<{
322
+ LIVE_PROOF_PENDING: "LIVE_PROOF_PENDING";
323
+ VERIFIED_SUPPORTED: "VERIFIED_SUPPORTED";
324
+ VERIFIED_UNSUPPORTED: "VERIFIED_UNSUPPORTED";
325
+ DEFERRED: "DEFERRED";
326
+ }>;
327
+ verifiedAt: z.ZodNullable<z.ZodISODateTime>;
328
+ verifiedByPrincipalId: z.ZodNullable<z.ZodString>;
329
+ evidenceRef: z.ZodNullable<z.ZodString>;
330
+ sanitizedNote: z.ZodNullable<z.ZodString>;
331
+ }, z.core.$strict>;
332
+ unlimitedRecordingRetention: z.ZodObject<{
333
+ status: z.ZodEnum<{
334
+ LIVE_PROOF_PENDING: "LIVE_PROOF_PENDING";
335
+ VERIFIED_SUPPORTED: "VERIFIED_SUPPORTED";
336
+ VERIFIED_UNSUPPORTED: "VERIFIED_UNSUPPORTED";
337
+ DEFERRED: "DEFERRED";
338
+ }>;
339
+ verifiedAt: z.ZodNullable<z.ZodISODateTime>;
340
+ verifiedByPrincipalId: z.ZodNullable<z.ZodString>;
341
+ evidenceRef: z.ZodNullable<z.ZodString>;
342
+ sanitizedNote: z.ZodNullable<z.ZodString>;
343
+ }, z.core.$strict>;
344
+ audioRetrieval: z.ZodObject<{
345
+ status: z.ZodEnum<{
346
+ LIVE_PROOF_PENDING: "LIVE_PROOF_PENDING";
347
+ VERIFIED_SUPPORTED: "VERIFIED_SUPPORTED";
348
+ VERIFIED_UNSUPPORTED: "VERIFIED_UNSUPPORTED";
349
+ DEFERRED: "DEFERRED";
350
+ }>;
351
+ verifiedAt: z.ZodNullable<z.ZodISODateTime>;
352
+ verifiedByPrincipalId: z.ZodNullable<z.ZodString>;
353
+ evidenceRef: z.ZodNullable<z.ZodString>;
354
+ sanitizedNote: z.ZodNullable<z.ZodString>;
355
+ }, z.core.$strict>;
356
+ }, z.core.$strict>;
357
+ }, z.core.$strict>;
358
+ export type VoiceProviderReleaseEvidence = z.infer<typeof voiceProviderReleaseEvidenceSchema>;
359
+ export type VoiceProviderReleaseEvidenceInput = z.input<typeof voiceProviderReleaseEvidenceSchema>;
360
+ export declare const voiceProviderReadinessBlockerSchema: z.ZodEnum<{
361
+ PUBLICATION_NOT_COMPLETE: "PUBLICATION_NOT_COMPLETE";
362
+ COMPILE_NOT_SUCCEEDED: "COMPILE_NOT_SUCCEEDED";
363
+ FINALIZATION_NOT_SUCCEEDED: "FINALIZATION_NOT_SUCCEEDED";
364
+ AGENT_BRANCH_VERSION_CONTRACT_UNVERIFIED: "AGENT_BRANCH_VERSION_CONTRACT_UNVERIFIED";
365
+ PROCEDURE_BRANCH_VERSION_CONTRACT_UNVERIFIED: "PROCEDURE_BRANCH_VERSION_CONTRACT_UNVERIFIED";
366
+ PROCEDURE_LIFECYCLE_NOT_VERIFIED: "PROCEDURE_LIFECYCLE_NOT_VERIFIED";
367
+ DURATION_ENFORCEMENT_NOT_VERIFIED: "DURATION_ENFORCEMENT_NOT_VERIFIED";
368
+ RECORDING_CAPABILITY_NOT_VERIFIED: "RECORDING_CAPABILITY_NOT_VERIFIED";
369
+ UNLIMITED_RECORDING_RETENTION_NOT_VERIFIED: "UNLIMITED_RECORDING_RETENTION_NOT_VERIFIED";
370
+ AUDIO_RETRIEVAL_NOT_VERIFIED: "AUDIO_RETRIEVAL_NOT_VERIFIED";
371
+ GENERATED_WORKFLOW_HASH_INVALID: "GENERATED_WORKFLOW_HASH_INVALID";
372
+ GENERATED_WORKFLOW_REFERENCE_MISMATCH: "GENERATED_WORKFLOW_REFERENCE_MISMATCH";
373
+ DESIRED_CONFIGURATION_HASH_INVALID: "DESIRED_CONFIGURATION_HASH_INVALID";
374
+ READBACK_NOT_VERIFIED: "READBACK_NOT_VERIFIED";
375
+ READBACK_CONFIGURATION_HASH_INVALID: "READBACK_CONFIGURATION_HASH_INVALID";
376
+ DESIRED_READBACK_MISMATCH: "DESIRED_READBACK_MISMATCH";
377
+ RELEASE_CONFIGURATION_MISMATCH: "RELEASE_CONFIGURATION_MISMATCH";
378
+ }>;
379
+ export type VoiceProviderReadinessBlocker = z.infer<typeof voiceProviderReadinessBlockerSchema>;
380
+ export type VoiceProviderReadiness = {
381
+ ready: boolean;
382
+ blockers: VoiceProviderReadinessBlocker[];
383
+ };
384
+ export declare function evaluateVoiceProviderReleaseReadiness({ release }: {
385
+ release: VoiceProviderReleaseEvidence;
386
+ }): VoiceProviderReadiness;
@@ -0,0 +1,154 @@
1
+ import { z } from 'zod';
2
+ import { canonicalJson } from './canonical-json.js';
3
+ import { voiceAgentScopeSchema, voiceHashSchema, voiceIdSchema, voiceTimestampSchema, } from './voice-common.js';
4
+ import { hashVoiceProviderEvidenceValue, voiceCanonicalProcedureMappingsSchema, voiceGeneratedWorkflowEvidenceSchema, voiceProviderBranchVersionSchema, } from './voice-provider-evidence.js';
5
+ import { voiceProviderCapabilityGateSchema, voiceProviderDesiredConfigurationSchema, voiceProviderPublicationProgressSchema, voiceProviderReadbackEvidenceSchema, } from './voice-provider-publication.js';
6
+ export const voiceProviderReleaseEvidenceSchema = z.strictObject({
7
+ schemaVersion: z.literal('1'),
8
+ scope: voiceAgentScopeSchema,
9
+ releaseId: voiceIdSchema,
10
+ publicationOperationId: voiceIdSchema,
11
+ agentVersionId: voiceIdSchema,
12
+ createdByPrincipalId: voiceIdSchema,
13
+ createdAt: voiceTimestampSchema,
14
+ inputEvidence: z.strictObject({
15
+ authoredDefinitionHash: voiceHashSchema,
16
+ localProjectionCompilerVersion: voiceIdSchema,
17
+ localProjectionHash: voiceHashSchema,
18
+ eligibleToolCatalogHash: voiceHashSchema,
19
+ resolvedBindingHash: voiceHashSchema,
20
+ }),
21
+ ownedReleaseMarker: z.string().trim().min(1).max(500),
22
+ providerAgentId: voiceIdSchema,
23
+ agentBranchVersion: voiceProviderBranchVersionSchema,
24
+ procedureMappings: voiceCanonicalProcedureMappingsSchema,
25
+ publicationProgress: voiceProviderPublicationProgressSchema,
26
+ generatedWorkflow: voiceGeneratedWorkflowEvidenceSchema,
27
+ desiredConfiguration: voiceProviderDesiredConfigurationSchema,
28
+ readbackEvidence: voiceProviderReadbackEvidenceSchema,
29
+ capabilityGates: z.strictObject({
30
+ procedureLifecycle: voiceProviderCapabilityGateSchema,
31
+ durationEnforcement: voiceProviderCapabilityGateSchema,
32
+ recording: voiceProviderCapabilityGateSchema,
33
+ unlimitedRecordingRetention: voiceProviderCapabilityGateSchema,
34
+ audioRetrieval: voiceProviderCapabilityGateSchema,
35
+ }),
36
+ }).superRefine((value, context) => {
37
+ if (Date.parse(value.desiredConfiguration.capturedAt) <
38
+ Date.parse(value.generatedWorkflow.capturedAt)) {
39
+ context.addIssue({
40
+ code: 'custom', path: ['desiredConfiguration', 'capturedAt'],
41
+ message: 'desired configuration must follow generated workflow validation',
42
+ });
43
+ }
44
+ if (Date.parse(value.readbackEvidence.observedAt) <
45
+ Date.parse(value.desiredConfiguration.capturedAt)) {
46
+ context.addIssue({
47
+ code: 'custom', path: ['readbackEvidence', 'observedAt'],
48
+ message: 'readback cannot precede desired configuration capture',
49
+ });
50
+ }
51
+ });
52
+ export const voiceProviderReadinessBlockerSchema = z.enum([
53
+ 'PUBLICATION_NOT_COMPLETE', 'COMPILE_NOT_SUCCEEDED', 'FINALIZATION_NOT_SUCCEEDED',
54
+ 'AGENT_BRANCH_VERSION_CONTRACT_UNVERIFIED',
55
+ 'PROCEDURE_BRANCH_VERSION_CONTRACT_UNVERIFIED',
56
+ 'PROCEDURE_LIFECYCLE_NOT_VERIFIED', 'DURATION_ENFORCEMENT_NOT_VERIFIED',
57
+ 'RECORDING_CAPABILITY_NOT_VERIFIED',
58
+ 'UNLIMITED_RECORDING_RETENTION_NOT_VERIFIED', 'AUDIO_RETRIEVAL_NOT_VERIFIED',
59
+ 'GENERATED_WORKFLOW_HASH_INVALID', 'GENERATED_WORKFLOW_REFERENCE_MISMATCH',
60
+ 'DESIRED_CONFIGURATION_HASH_INVALID', 'READBACK_NOT_VERIFIED',
61
+ 'READBACK_CONFIGURATION_HASH_INVALID', 'DESIRED_READBACK_MISMATCH',
62
+ 'RELEASE_CONFIGURATION_MISMATCH',
63
+ ]);
64
+ function sameEvidence({ left, right }) {
65
+ return canonicalJson(left) === canonicalJson(right);
66
+ }
67
+ function evaluateProgress({ release, blockers }) {
68
+ if (release.publicationProgress.phase !== 'COMPLETE') {
69
+ blockers.add('PUBLICATION_NOT_COMPLETE');
70
+ }
71
+ if (release.publicationProgress.compile.status !== 'SUCCEEDED') {
72
+ blockers.add('COMPILE_NOT_SUCCEEDED');
73
+ }
74
+ if (release.publicationProgress.finalization.status !== 'SUCCEEDED') {
75
+ blockers.add('FINALIZATION_NOT_SUCCEEDED');
76
+ }
77
+ if (release.agentBranchVersion.identifierContract === 'LIVE_PROOF_PENDING') {
78
+ blockers.add('AGENT_BRANCH_VERSION_CONTRACT_UNVERIFIED');
79
+ }
80
+ if (release.procedureMappings.some(({ branchVersion }) => branchVersion.identifierContract === 'LIVE_PROOF_PENDING')) {
81
+ blockers.add('PROCEDURE_BRANCH_VERSION_CONTRACT_UNVERIFIED');
82
+ }
83
+ }
84
+ function evaluateWorkflow({ release, blockers }) {
85
+ const workflow = release.generatedWorkflow;
86
+ if (hashVoiceProviderEvidenceValue({ value: workflow.sanitizedDocument }) !==
87
+ workflow.documentHash)
88
+ blockers.add('GENERATED_WORKFLOW_HASH_INVALID');
89
+ const generatedRefs = workflow.normalized.procedures.map(({ localProcedureKey, providerProcedureId }) => ({ localProcedureKey, providerProcedureId }));
90
+ const releaseRefs = release.procedureMappings.map(({ localProcedureKey, providerProcedureId }) => ({ localProcedureKey, providerProcedureId }));
91
+ const desiredAliases = new Set(release.desiredConfiguration.configuration.toolAliases);
92
+ const procedureAliases = workflow.normalized.procedures
93
+ .flatMap(({ toolAliases }) => toolAliases);
94
+ if (release.desiredConfiguration.configuration.generatedWorkflowHash !== workflow.documentHash ||
95
+ !sameEvidence({ left: generatedRefs, right: releaseRefs }) ||
96
+ !sameEvidence({
97
+ left: workflow.normalized.toolAliases,
98
+ right: release.desiredConfiguration.configuration.toolAliases,
99
+ }) || procedureAliases.some((alias) => !desiredAliases.has(alias))) {
100
+ blockers.add('GENERATED_WORKFLOW_REFERENCE_MISMATCH');
101
+ }
102
+ }
103
+ function evaluateConfiguration({ release, blockers }) {
104
+ const desired = release.desiredConfiguration;
105
+ if (hashVoiceProviderEvidenceValue({ value: desired.configuration }) !==
106
+ desired.configurationHash)
107
+ blockers.add('DESIRED_CONFIGURATION_HASH_INVALID');
108
+ if (desired.configuration.providerAgentId !== release.providerAgentId ||
109
+ !sameEvidence({ left: desired.configuration.agentBranchVersion,
110
+ right: release.agentBranchVersion }) ||
111
+ !sameEvidence({ left: desired.configuration.procedureMappings,
112
+ right: release.procedureMappings }))
113
+ blockers.add('RELEASE_CONFIGURATION_MISMATCH');
114
+ const readback = release.readbackEvidence;
115
+ if (readback.status !== 'VERIFIED') {
116
+ blockers.add('READBACK_NOT_VERIFIED');
117
+ return;
118
+ }
119
+ if (hashVoiceProviderEvidenceValue({ value: readback.configuration }) !==
120
+ readback.configurationHash)
121
+ blockers.add('READBACK_CONFIGURATION_HASH_INVALID');
122
+ if (readback.configurationHash !== desired.configurationHash ||
123
+ !sameEvidence({ left: readback.configuration, right: desired.configuration })) {
124
+ blockers.add('DESIRED_READBACK_MISMATCH');
125
+ }
126
+ }
127
+ function evaluateCapabilities({ release, blockers }) {
128
+ const gates = release.capabilityGates;
129
+ if (gates.procedureLifecycle.status !== 'VERIFIED_SUPPORTED') {
130
+ blockers.add('PROCEDURE_LIFECYCLE_NOT_VERIFIED');
131
+ }
132
+ if (gates.durationEnforcement.status !== 'VERIFIED_SUPPORTED') {
133
+ blockers.add('DURATION_ENFORCEMENT_NOT_VERIFIED');
134
+ }
135
+ if (!release.desiredConfiguration.configuration.recordingEnabled)
136
+ return;
137
+ if (gates.recording.status !== 'VERIFIED_SUPPORTED') {
138
+ blockers.add('RECORDING_CAPABILITY_NOT_VERIFIED');
139
+ }
140
+ if (gates.unlimitedRecordingRetention.status !== 'VERIFIED_SUPPORTED') {
141
+ blockers.add('UNLIMITED_RECORDING_RETENTION_NOT_VERIFIED');
142
+ }
143
+ if (gates.audioRetrieval.status !== 'VERIFIED_SUPPORTED') {
144
+ blockers.add('AUDIO_RETRIEVAL_NOT_VERIFIED');
145
+ }
146
+ }
147
+ export function evaluateVoiceProviderReleaseReadiness({ release }) {
148
+ const blockers = new Set();
149
+ evaluateProgress({ release, blockers });
150
+ evaluateWorkflow({ release, blockers });
151
+ evaluateConfiguration({ release, blockers });
152
+ evaluateCapabilities({ release, blockers });
153
+ return { ready: blockers.size === 0, blockers: [...blockers] };
154
+ }
@@ -0,0 +1,3 @@
1
+ export * from './voice-provider-evidence.js';
2
+ export * from './voice-provider-publication.js';
3
+ export * from './voice-provider-release.js';
@@ -0,0 +1,3 @@
1
+ export * from './voice-provider-evidence.js';
2
+ export * from './voice-provider-publication.js';
3
+ export * from './voice-provider-release.js';