@tai42/api-client 19.2.1 → 19.3.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.
@@ -1323,6 +1323,15 @@ export declare function createApiClient(config: ApiConfig): {
1323
1323
  interaction_id: string;
1324
1324
  status: string;
1325
1325
  }>;
1326
+ readonly reactInteraction: (interactionId: string, event: import("..").ReactionEvent, values: unknown) => Promise<{
1327
+ values: Record<string, unknown>;
1328
+ options: Record<string, {
1329
+ value: string;
1330
+ label?: string | null | undefined;
1331
+ }[]>;
1332
+ errors: Record<string, string>;
1333
+ display: Record<string, unknown>;
1334
+ }>;
1326
1335
  readonly cancelInteraction: (interactionId: string) => Promise<{
1327
1336
  interaction_id: string;
1328
1337
  status: string;
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/client/index.ts"],"names":[],"mappings":"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;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;YAA1vC,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;aAAsyF,CAAC;aAAgB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAH7tJ;AAED,MAAM,MAAM,SAAS,GAAG,UAAU,CAAC,OAAO,eAAe,CAAC,CAAC"}
@@ -1,3 +1,4 @@
1
+ import * as s from '../schemas';
1
2
  import type { Transport } from './transport';
2
3
  export declare function interactionsClient(t: Transport): {
3
4
  listInteractions: (page: number, pageSize: number, signal?: AbortSignal) => Promise<{
@@ -27,6 +28,15 @@ export declare function interactionsClient(t: Transport): {
27
28
  interaction_id: string;
28
29
  status: string;
29
30
  }>;
31
+ reactInteraction: (interactionId: string, event: s.ReactionEvent, values: unknown) => Promise<{
32
+ values: Record<string, unknown>;
33
+ options: Record<string, {
34
+ value: string;
35
+ label?: string | null | undefined;
36
+ }[]>;
37
+ errors: Record<string, string>;
38
+ display: Record<string, unknown>;
39
+ }>;
30
40
  cancelInteraction: (interactionId: string) => Promise<{
31
41
  interaction_id: string;
32
42
  status: string;
@@ -1 +1 @@
1
- {"version":3,"file":"interactions-client.d.ts","sourceRoot":"","sources":["../../src/client/interactions-client.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,SAAS;6BAOlB,MAAM,YAAY,MAAM,WAAW,WAAW;;;;;;;;;;;;;;;;;;;;;;;uCAEpC,MAAM,UAAU,OAAO;;;;uCAWvB,MAAM;;;;EAK5C;AAED,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,SAAS;IAGjD;;;;;;;;;;;;;OAaG;kCACiC,WAAW,gBAAgB,MAAM;EAqCxE"}
1
+ {"version":3,"file":"interactions-client.d.ts","sourceRoot":"","sources":["../../src/client/interactions-client.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,CAAC,MAAM,YAAY,CAAC;AAEhC,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAE7C,wBAAgB,kBAAkB,CAAC,CAAC,EAAE,SAAS;6BAOlB,MAAM,YAAY,MAAM,WAAW,WAAW;;;;;;;;;;;;;;;;;;;;;;;uCAEpC,MAAM,UAAU,OAAO;;;;sCAYxB,MAAM,SAAS,CAAC,CAAC,aAAa,UAAU,OAAO;;;;;;;;;uCAW9C,MAAM;;;;EAK5C;AAED,wBAAgB,wBAAwB,CAAC,CAAC,EAAE,SAAS;IAGjD;;;;;;;;;;;;;OAaG;kCACiC,WAAW,gBAAgB,MAAM;EAqCxE"}
@@ -15,6 +15,17 @@ export function interactionsClient(t) {
15
15
  method: 'POST',
16
16
  body: { answer },
17
17
  }),
18
+ // React to a still-open form while it is being filled: the in-app, authenticated
19
+ // sibling of the answer door (`POST /api/interactions/{id}/react`). It carries the
20
+ // event that fired (a field changed / a page advanced / the form submitted) and the
21
+ // partial `values` filled so far, and returns a form update to apply. It is STATELESS
22
+ // on the server — it records no answer and resolves no interaction — so it never
23
+ // substitutes for the answer door. A handler error/timeout surfaces as the shared
24
+ // `apiRequest` status handling (loud), never a stale value.
25
+ reactInteraction: (interactionId, event, values) => req(`/api/interactions/${encodeSegment(interactionId)}/react`, s.formUpdate, {
26
+ method: 'POST',
27
+ body: { event, values },
28
+ }),
18
29
  // Withdraw a pending ask WITHOUT answering it (a bodyless POST): the question is
19
30
  // resolved as cancelled and the flow that asked never resumes. Terminal like an
20
31
  // answer, so the loud failure mappings mirror it — a 409 (already answered, so no
@@ -1 +1 @@
1
- {"version":3,"file":"interactions-client.js","sourceRoot":"","sources":["../../src/client/interactions-client.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interactions-client.js","sourceRoot":"","sources":["../../src/client/interactions-client.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -14,7 +14,7 @@ export type { FailedMcpEntry, FleetFailureOutcome, FleetReportStatus, FleetRepor
14
14
  export { failedMcpsFromReport, isFleetReportFailure, summarizeFleetFanout, summarizeFleetResult, } from './fleet-report';
15
15
  export type { ApiConfig, RequestOptions } from './http';
16
16
  export { apiDownload, apiRequest, apiText } from './http';
17
- export type { AnswerFormat, ApplyResult, AttachmentMediaItem, AttachmentMediaKind, AuthCapabilities, AuthRoute, BackendInfo, BackupDocument, BackupImportReport, CallerAsksEnvelope, Channels, ChannelTemplate, ClaimLinkCreated, CompletedOrigin, ConnectionView, ConnectorCategoryView, ConnectorRef, ConsumerLink, ConsumerRow, ConversationAnswerStatus, ConversationConfigDeleted, ConversationConfigs, ConversationConfigWritten, ConversationDeliveryStatus, ConversationDoor, ConversationFailedMessages, ConversationMessage, ConversationMessageSearchPage, ConversationMode, ConversationPersonDeleted, ConversationRecordOrigin, ConversationRoute, ConversationRouteCreate, ConversationRouteDeleted, ConversationRoutes, ConversationRouteWritten, ConversationTargetKind, ConversationThread, ConversationThreadDeleted, ConversationThreadMessageSent, ConversationThreadMode, ConversationThreadModeState, ConversationThreadsPage, ConversationTranscriptPage, DashboardMetrics, Extension, FleetOutcome, FleetReloadResult, FleetReportFanout, FleetResult, FleetWorker, FleetWorkerResult, FleetWorkers, FolderRecord, FormData, FormOption, FormPage, FormPages, GrantLevel, HookList, HookParams, HookRegister, HookSubject, Interaction, InteractionAnswered, InteractionCancelled, InteractionMediaItem, InteractionsPage, KindStatus, LoginFormField, LoginMethod, LoginMethods, LoginResult, LogoutResult, ManifestMcpEntry, MarketplaceAdvisory, MarketplaceDelivery, MarketplaceInstalled, MarketplaceInstalledCompat, MarketplaceInstalledPlugin, MarketplaceInstallPreview, MarketplaceInstallResult, MarketplaceItem, MarketplaceLatestVersion, MarketplaceMountedRoute, MarketplacePluginDetail, MarketplacePreviewCollision, MarketplacePreviewItem, MarketplacePreviewPublicRoute, MarketplacePreviewRoute, MarketplaceRequiredEnvVar, MarketplaceRouteDecl, MarketplaceRoutesDecl, MarketplaceSearchGroup, MarketplaceSearchKind, MarketplaceSearchPage, MarketplaceSearchRow, MarketplaceSource, MarketplaceUninstallResult, MarketplaceUpgradeAllResult, MarketplaceUpgradeAllRow, MarketplaceVersion, McpEnvRef, McpEnvRefs, McpReloadResult, MediaKind, MeProjection, Notification, Notifications, OAuthCompleteResult, ParkedCallerAsk, ParkedStatus, PatternEntry, PolicyBody, PolicyVersion, PresetBody, PresetDetail, PresetExtensionElement, PresetRecord, PresetReferees, PresetRenamed, PresetValidation, PresetVersion, PresetVersionTags, Principal, PrincipalRef, ProviderCatalogResponse, ProviderView, RecordSearchPage, ReloadConfigResult, RoleAuditEvent, RoleBody, RoleGrants, RoleVersion, RoleVersions, RouteAction, RouteEntry, Run, RunSpan, RunTrace, ScheduleItem, SettingsSchema, SetupBody, SetupResult, StateAttach, StateAttached, StateAttachment, StateAttachmentUpdated, StateBinding, StateConsumers, StateDeclaration, StateDetached, StateDetail, StateFoldReport, StateInjection, StateListItem, StateRecord, StateRetentionPruned, StateStats, StateSubject, StateTemplateDocument, StateTemplateListItem, StateUpdate, StorageInfo, StorageResourceStat, StudioPluginManifest, SubjectPage, SubjectRow, SubMcpEntry, SubMcpMount, SuspendedRunReceipt, TargetConversationConfig, TemplateDeclarations, TemplatedText, TemplateJq, TemplateJqApplyResult, TemplateJqResult, TemplateReconcile, TokensPayload, ToolExtensions, ToolExtensionsApplyResult, ToolMediaResult, ToolMetaOverlay, ToolMetaRecord, ToolSchema, ToolTagEntry, TranscriptOrder, TriggerAuth, TriggerLinkCreated, TriggerLinkDeleted, TriggerLinkList, TriggerLinkRecord, ValidateConditionResult, VisitOutcome, WebEntryCode, WebEntryCodeMinted, WebEntryCodeRevoked, WebEntryGate, WebEntryGateState, WorkerKind, WorkerLastOp, WorkerState, WriteEntry, WritesPage, } from './schemas';
17
+ export type { AnswerFormat, ApplyResult, AttachmentMediaItem, AttachmentMediaKind, AuthCapabilities, AuthRoute, BackendInfo, BackupDocument, BackupImportReport, CallerAsksEnvelope, Channels, ChannelTemplate, ClaimLinkCreated, CompletedOrigin, ConnectionView, ConnectorCategoryView, ConnectorRef, ConsumerLink, ConsumerRow, ConversationAnswerStatus, ConversationConfigDeleted, ConversationConfigs, ConversationConfigWritten, ConversationDeliveryStatus, ConversationDoor, ConversationFailedMessages, ConversationMessage, ConversationMessageSearchPage, ConversationMode, ConversationPersonDeleted, ConversationRecordOrigin, ConversationRoute, ConversationRouteCreate, ConversationRouteDeleted, ConversationRoutes, ConversationRouteWritten, ConversationTargetKind, ConversationThread, ConversationThreadDeleted, ConversationThreadMessageSent, ConversationThreadMode, ConversationThreadModeState, ConversationThreadsPage, ConversationTranscriptPage, DashboardMetrics, DisplayBlock, DisplayBlockKind, Extension, FleetOutcome, FleetReloadResult, FleetReportFanout, FleetResult, FleetWorker, FleetWorkerResult, FleetWorkers, FolderRecord, FormData, FormOption, FormPage, FormPageKind, FormPages, FormReactions, FormUpdate, GrantLevel, HookList, HookParams, HookRegister, HookSubject, Interaction, InteractionAnswered, InteractionCancelled, InteractionMediaItem, InteractionsPage, KindStatus, LoginFormField, LoginMethod, LoginMethods, LoginResult, LogoutResult, ManifestMcpEntry, MarketplaceAdvisory, MarketplaceDelivery, MarketplaceInstalled, MarketplaceInstalledCompat, MarketplaceInstalledPlugin, MarketplaceInstallPreview, MarketplaceInstallResult, MarketplaceItem, MarketplaceLatestVersion, MarketplaceMountedRoute, MarketplacePluginDetail, MarketplacePreviewCollision, MarketplacePreviewItem, MarketplacePreviewPublicRoute, MarketplacePreviewRoute, MarketplaceRequiredEnvVar, MarketplaceRouteDecl, MarketplaceRoutesDecl, MarketplaceSearchGroup, MarketplaceSearchKind, MarketplaceSearchPage, MarketplaceSearchRow, MarketplaceSource, MarketplaceUninstallResult, MarketplaceUpgradeAllResult, MarketplaceUpgradeAllRow, MarketplaceVersion, McpEnvRef, McpEnvRefs, McpReloadResult, MediaKind, MeProjection, Notification, Notifications, OAuthCompleteResult, ParkedCallerAsk, ParkedStatus, PatternEntry, PolicyBody, PolicyVersion, PresetBody, PresetDetail, PresetExtensionElement, PresetRecord, PresetReferees, PresetRenamed, PresetValidation, PresetVersion, PresetVersionTags, Principal, PrincipalRef, ProviderCatalogResponse, ProviderView, ReactionEvent, ReactionEventKind, RecordSearchPage, ReloadConfigResult, RoleAuditEvent, RoleBody, RoleGrants, RoleVersion, RoleVersions, RouteAction, RouteEntry, Run, RunSpan, RunTrace, ScheduleItem, SettingsSchema, SetupBody, SetupResult, StateAttach, StateAttached, StateAttachment, StateAttachmentUpdated, StateBinding, StateConsumers, StateDeclaration, StateDetached, StateDetail, StateFoldReport, StateInjection, StateListItem, StateRecord, StateRetentionPruned, StateStats, StateSubject, StateTemplateDocument, StateTemplateListItem, StateUpdate, StorageInfo, StorageResourceStat, StudioPluginManifest, SubjectPage, SubjectRow, SubMcpEntry, SubMcpMount, SuspendedRunReceipt, TargetConversationConfig, TemplateDeclarations, TemplatedText, TemplateJq, TemplateJqApplyResult, TemplateJqResult, TemplateReconcile, TokensPayload, ToolExtensions, ToolExtensionsApplyResult, ToolMediaResult, ToolMetaOverlay, ToolMetaRecord, ToolSchema, ToolTagEntry, TranscriptOrder, TriggerAuth, TriggerLinkCreated, TriggerLinkDeleted, TriggerLinkList, TriggerLinkRecord, ValidateConditionResult, VisitOutcome, WebEntryCode, WebEntryCodeMinted, WebEntryCodeRevoked, WebEntryGate, WebEntryGateState, WorkerKind, WorkerLastOp, WorkerState, WriteEntry, WritesPage, } from './schemas';
18
18
  export * as schemas from './schemas';
19
19
  export type { SseFrame } from './sse';
20
20
  export { readSseFrames, SseFrameParser } from './sse';
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,YAAY,EAAE,UAAU,EAAE,YAAY,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,UAAU,CAAC;AAC9F,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AACnF,YAAY,EACV,iBAAiB,EACjB,SAAS,EACT,UAAU,EACV,iBAAiB,EACjB,aAAa,EACb,8BAA8B,EAC9B,yBAAyB,EACzB,6BAA6B,EAC7B,2BAA2B,EAC3B,gBAAgB,EAChB,sBAAsB,EACtB,6BAA6B,EAC7B,sBAAsB,EACtB,wBAAwB,EACxB,YAAY,EACZ,kBAAkB,EAClB,cAAc,EACd,cAAc,EACd,SAAS,EACT,WAAW,EACX,qBAAqB,EACrB,gBAAgB,EAChB,mBAAmB,EACnB,oBAAoB,EACpB,cAAc,EACd,eAAe,EACf,iBAAiB,EACjB,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,iBAAiB,EACjB,qBAAqB,EACrB,qBAAqB,EACrB,kBAAkB,EAClB,oBAAoB,GACrB,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,EACL,gBAAgB,EAChB,QAAQ,EACR,mBAAmB,EACnB,cAAc,EACd,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,UAAU,CAAC;AAClB,YAAY,EACV,cAAc,EACd,mBAAmB,EACnB,iBAAiB,EACjB,kBAAkB,EAClB,kBAAkB,GACnB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AACxB,YAAY,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,QAAQ,CAAC;AACxD,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAC1D,YAAY,EACV,YAAY,EACZ,WAAW,EACX,mBAAmB,EACnB,mBAAmB,EACnB,gBAAgB,EAChB,SAAS,EACT,WAAW,EACX,cAAc,EACd,kBAAkB,EAClB,kBAAkB,EAClB,QAAQ,EACR,eAAe,EACf,gBAAgB,EAChB,eAAe,EACf,cAAc,EACd,qBAAqB,EACrB,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,wBAAwB,EACxB,yBAAyB,EACzB,mBAAmB,EACnB,yBAAyB,EACzB,0BAA0B,EAC1B,gBAAgB,EAChB,0BAA0B,EAC1B,mBAAmB,EACnB,6BAA6B,EAC7B,gBAAgB,EAChB,yBAAyB,EACzB,wBAAwB,EACxB,iBAAiB,EACjB,uBAAuB,EACvB,wBAAwB,EACxB,kBAAkB,EAClB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,yBAAyB,EACzB,6BAA6B,EAC7B,sBAAsB,EACtB,2BAA2B,EAC3B,uBAAuB,EACvB,0BAA0B,EAC1B,gBAAgB,EAChB,SAAS,EACT,YAAY,EACZ,iBAAiB,EACjB,iBAAiB,EACjB,WAAW,EACX,WAAW,EACX,iBAAiB,EACjB,YAAY,EACZ,YAAY,EACZ,QAAQ,EACR,UAAU,EACV,QAAQ,EACR,SAAS,EACT,UAAU,EACV,QAAQ,EACR,UAAU,EACV,YAAY,EACZ,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACpB,oBAAoB,EACpB,gBAAgB,EAChB,UAAU,EACV,cAAc,EACd,WAAW,EACX,YAAY,EACZ,WAAW,EACX,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EACpB,0BAA0B,EAC1B,0BAA0B,EAC1B,yBAAyB,EACzB,wBAAwB,EACxB,eAAe,EACf,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,2BAA2B,EAC3B,sBAAsB,EACtB,6BAA6B,EAC7B,uBAAuB,EACvB,yBAAyB,EACzB,oBAAoB,EACpB,qBAAqB,EACrB,sBAAsB,EACtB,qBAAqB,EACrB,qBAAqB,EACrB,oBAAoB,EACpB,iBAAiB,EACjB,0BAA0B,EAC1B,2BAA2B,EAC3B,wBAAwB,EACxB,kBAAkB,EAClB,SAAS,EACT,UAAU,EACV,eAAe,EACf,SAAS,EACT,YAAY,EACZ,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,eAAe,EACf,YAAY,EACZ,YAAY,EACZ,UAAU,EACV,aAAa,EACb,UAAU,EACV,YAAY,EACZ,sBAAsB,EACtB,YAAY,EACZ,cAAc,EACd,aAAa,EACb,gBAAgB,EAChB,aAAa,EACb,iBAAiB,EACjB,SAAS,EACT,YAAY,EACZ,uBAAuB,EACvB,YAAY,EACZ,gBAAgB,EAChB,kBAAkB,EAClB,cAAc,EACd,QAAQ,EACR,UAAU,EACV,WAAW,EACX,YAAY,EACZ,WAAW,EACX,UAAU,EACV,GAAG,EACH,OAAO,EACP,QAAQ,EACR,YAAY,EACZ,cAAc,EACd,SAAS,EACT,WAAW,EACX,WAAW,EACX,aAAa,EACb,eAAe,EACf,sBAAsB,EACtB,YAAY,EACZ,cAAc,EACd,gBAAgB,EAChB,aAAa,EACb,WAAW,EACX,eAAe,EACf,cAAc,EACd,aAAa,EACb,WAAW,EACX,oBAAoB,EACpB,UAAU,EACV,YAAY,EACZ,qBAAqB,EACrB,qBAAqB,EACrB,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,oBAAoB,EACpB,WAAW,EACX,UAAU,EACV,WAAW,EACX,WAAW,EACX,mBAAmB,EACnB,wBAAwB,EACxB,oBAAoB,EACpB,aAAa,EACb,UAAU,EACV,qBAAqB,EACrB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,yBAAyB,EACzB,eAAe,EACf,eAAe,EACf,cAAc,EACd,UAAU,EACV,YAAY,EACZ,eAAe,EACf,WAAW,EACX,kBAAkB,EAClB,kBAAkB,EAClB,eAAe,EACf,iBAAiB,EACjB,uBAAuB,EACvB,YAAY,EACZ,YAAY,EACZ,kBAAkB,EAClB,mBAAmB,EACnB,YAAY,EACZ,iBAAiB,EACjB,UAAU,EACV,YAAY,EACZ,WAAW,EACX,UAAU,EACV,UAAU,GACX,MAAM,WAAW,CAAC;AACnB,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AACrC,YAAY,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AACtD,YAAY,EACV,iBAAiB,EACjB,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,mBAAmB,GACpB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,mBAAmB,GACpB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAsCnF,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,EACL,gBAAgB,EAChB,QAAQ,EACR,mBAAmB,EACnB,cAAc,EACd,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,UAAU,CAAC;AAQlB,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AA+M1D,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAErC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAStD,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,mBAAmB,GACpB,MAAM,aAAa,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAQA,OAAO,EAAE,gBAAgB,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAsCnF,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAC1D,OAAO,EACL,gBAAgB,EAChB,QAAQ,EACR,mBAAmB,EACnB,cAAc,EACd,mBAAmB,EACnB,oBAAoB,GACrB,MAAM,UAAU,CAAC;AAQlB,OAAO,EACL,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,EACpB,oBAAoB,GACrB,MAAM,gBAAgB,CAAC;AAExB,OAAO,EAAE,WAAW,EAAE,UAAU,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAC;AAsN1D,OAAO,KAAK,OAAO,MAAM,WAAW,CAAC;AAErC,OAAO,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAStD,OAAO,EACL,mBAAmB,EACnB,WAAW,EACX,eAAe,EACf,iBAAiB,EACjB,aAAa,EACb,aAAa,EACb,mBAAmB,GACpB,MAAM,aAAa,CAAC"}
@@ -101,22 +101,155 @@ export declare const formData: z.ZodObject<{
101
101
  }, z.core.$strip>>>>;
102
102
  }, z.core.$strip>;
103
103
  export type FormData = z.infer<typeof formData>;
104
+ /** The kind of an ordered display block a page may carry alongside its input fields. */
105
+ export declare const displayBlockKind: z.ZodEnum<{
106
+ image: "image";
107
+ heading: "heading";
108
+ body: "body";
109
+ }>;
110
+ export type DisplayBlockKind = z.infer<typeof displayBlockKind>;
111
+ /**
112
+ * One ordered, display-only block on a form page (never an input): a `heading` or
113
+ * `body` text block, or an `image`. `text` carries a heading/body's words; `src`/`alt`
114
+ * carry an image's source and alt text. An optional `slot` names a data key whose value
115
+ * the block shows in place of static `text` — filled from `format_payload.data` at send
116
+ * and/or by a reaction's `display` update (so a computed total is a display slot, not a
117
+ * special case). Every text field is `.nullish()` (absent OR explicit `null` both parse
118
+ * to absent) so a block that omits a key — or sends an explicit `null` — is not a
119
+ * whole-page parse failure. Applied per block by the preview (safeParsed via its page),
120
+ * so a malformed block is a loud notice, never silent.
121
+ */
122
+ export declare const displayBlock: z.ZodObject<{
123
+ kind: z.ZodEnum<{
124
+ image: "image";
125
+ heading: "heading";
126
+ body: "body";
127
+ }>;
128
+ text: z.ZodOptional<z.ZodNullable<z.ZodString>>;
129
+ src: z.ZodOptional<z.ZodNullable<z.ZodString>>;
130
+ alt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
131
+ slot: z.ZodOptional<z.ZodNullable<z.ZodString>>;
132
+ }, z.core.$strip>;
133
+ export type DisplayBlock = z.infer<typeof displayBlock>;
134
+ /** A page's role: an ordinary `input` page (default) or a terminal `review` summary. */
135
+ export declare const formPageKind: z.ZodEnum<{
136
+ input: "input";
137
+ review: "review";
138
+ }>;
139
+ export type FormPageKind = z.infer<typeof formPageKind>;
104
140
  /**
105
141
  * One page of a stepped `form`: a `title` and the ordered top-level property names it
106
142
  * groups. `format_payload.pages` is the ordered list of these; absent = one page. The
107
143
  * form preview safeParses the list, so a malformed page is a loud notice, never silent.
144
+ *
145
+ * `display` is the ordered list of display-only blocks the page shows alongside (or
146
+ * instead of, for a review page) its input fields; it defaults to empty, so a page that
147
+ * carries none renders exactly as before. `kind` marks a `review` page — a terminal
148
+ * summary step that shows the readback of entered values and the confirm/submit footer
149
+ * and carries no new input fields; it defaults to `input`. Both are additive: an older
150
+ * payload ({title, fields}) parses unchanged.
108
151
  */
109
152
  export declare const formPage: z.ZodObject<{
110
153
  title: z.ZodString;
111
154
  fields: z.ZodArray<z.ZodString>;
155
+ display: z.ZodDefault<z.ZodArray<z.ZodObject<{
156
+ kind: z.ZodEnum<{
157
+ image: "image";
158
+ heading: "heading";
159
+ body: "body";
160
+ }>;
161
+ text: z.ZodOptional<z.ZodNullable<z.ZodString>>;
162
+ src: z.ZodOptional<z.ZodNullable<z.ZodString>>;
163
+ alt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
164
+ slot: z.ZodOptional<z.ZodNullable<z.ZodString>>;
165
+ }, z.core.$strip>>>;
166
+ kind: z.ZodDefault<z.ZodEnum<{
167
+ input: "input";
168
+ review: "review";
169
+ }>>;
112
170
  }, z.core.$strip>;
113
171
  export type FormPage = z.infer<typeof formPage>;
114
172
  /** The `form` pages list (`format_payload.pages`), safeParsed as a whole by the preview. */
115
173
  export declare const formPages: z.ZodArray<z.ZodObject<{
116
174
  title: z.ZodString;
117
175
  fields: z.ZodArray<z.ZodString>;
176
+ display: z.ZodDefault<z.ZodArray<z.ZodObject<{
177
+ kind: z.ZodEnum<{
178
+ image: "image";
179
+ heading: "heading";
180
+ body: "body";
181
+ }>;
182
+ text: z.ZodOptional<z.ZodNullable<z.ZodString>>;
183
+ src: z.ZodOptional<z.ZodNullable<z.ZodString>>;
184
+ alt: z.ZodOptional<z.ZodNullable<z.ZodString>>;
185
+ slot: z.ZodOptional<z.ZodNullable<z.ZodString>>;
186
+ }, z.core.$strip>>>;
187
+ kind: z.ZodDefault<z.ZodEnum<{
188
+ input: "input";
189
+ review: "review";
190
+ }>>;
118
191
  }, z.core.$strip>>;
119
192
  export type FormPages = z.infer<typeof formPages>;
193
+ /**
194
+ * When a `form` reacts while it is open (`format_payload.reactions`): the plain,
195
+ * renderer-readable description of WHEN the form calls its reaction handler. Absent ⇒ a
196
+ * static (non-reacting) form, exactly as before. `field_changed` names the fields whose
197
+ * change triggers a reaction; `page_advanced` names the pages (by title) whose advance
198
+ * triggers one; `submitted` is true when the submission is checked by a reaction before
199
+ * acceptance; `choices` names the fields whose CHOICE LISTS a reaction may replace while
200
+ * the form is open (for such a field the send-time option list is advisory — the consumer
201
+ * owns membership at the `submitted` event). Every member defaults to empty/false so a
202
+ * partial declaration parses; a malformed block is a loud notice via the preview.
203
+ */
204
+ export declare const formReactions: z.ZodObject<{
205
+ field_changed: z.ZodDefault<z.ZodArray<z.ZodString>>;
206
+ page_advanced: z.ZodDefault<z.ZodArray<z.ZodString>>;
207
+ submitted: z.ZodDefault<z.ZodBoolean>;
208
+ choices: z.ZodDefault<z.ZodArray<z.ZodString>>;
209
+ }, z.core.$strip>;
210
+ export type FormReactions = z.infer<typeof formReactions>;
211
+ /**
212
+ * The form update a reaction door returns (`POST /api/interactions/{id}/react`): the
213
+ * same kind of data a form is sent with, applied to the open form. `values` sets field
214
+ * values; `options` replaces the per-send choice list of option-bearing fields; `errors`
215
+ * shows per-field messages (keyed by field name); `display` fills display slots (keyed by
216
+ * slot name) — a computed total among them. Every member defaults to empty, so a reaction
217
+ * that touches only one of them returns only that one. The door response is safeParsed, so
218
+ * a malformed update surfaces loudly rather than applying a half-understood change.
219
+ */
220
+ export declare const formUpdate: z.ZodObject<{
221
+ values: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
222
+ options: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodArray<z.ZodObject<{
223
+ value: z.ZodString;
224
+ label: z.ZodOptional<z.ZodNullable<z.ZodString>>;
225
+ }, z.core.$strip>>>>;
226
+ errors: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodString>>;
227
+ display: z.ZodDefault<z.ZodRecord<z.ZodString, z.ZodUnknown>>;
228
+ }, z.core.$strip>;
229
+ export type FormUpdate = z.infer<typeof formUpdate>;
230
+ /**
231
+ * The event a reaction round-trip reports to the door: `kind` is which of the three
232
+ * declared events fired, `field` names the changed field for a `field_changed` event, and
233
+ * `page` names the advanced-from page (by title) for a `page_advanced` event. A
234
+ * `submitted` event carries neither. The body also carries the partial `values` filled so
235
+ * far (see {@link interactionsClient}'s `reactInteraction`).
236
+ */
237
+ export declare const reactionEventKind: z.ZodEnum<{
238
+ field_changed: "field_changed";
239
+ page_advanced: "page_advanced";
240
+ submitted: "submitted";
241
+ }>;
242
+ export type ReactionEventKind = z.infer<typeof reactionEventKind>;
243
+ export declare const reactionEvent: z.ZodObject<{
244
+ kind: z.ZodEnum<{
245
+ field_changed: "field_changed";
246
+ page_advanced: "page_advanced";
247
+ submitted: "submitted";
248
+ }>;
249
+ field: z.ZodOptional<z.ZodString>;
250
+ page: z.ZodOptional<z.ZodString>;
251
+ }, z.core.$strip>;
252
+ export type ReactionEvent = z.infer<typeof reactionEvent>;
120
253
  export declare const interaction: z.ZodObject<{
121
254
  interaction_id: z.ZodString;
122
255
  group_id: z.ZodString;
@@ -1 +1 @@
1
- {"version":3,"file":"interactions.d.ts","sourceRoot":"","sources":["../../src/schemas/interactions.ts"],"names":[],"mappings":"AAAA,+DAA+D;AAC/D,OAAO,EAAE,CAAC,EAAE,MAAM,KAAK,CAAC;AASxB,eAAO,MAAM,YAAY;;;;;;EAA4D,CAAC;AACtF,MAAM,MAAM,YAAY,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,YAAY,CAAC,CAAC;AAExD,0FAA0F;AAC1F,eAAO,MAAM,SAAS;;;EAA4B,CAAC;AACnD,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAElD;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,oBAAoB;;;;;;;iBAI/B,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAExE;;;;GAIG;AACH,eAAO,MAAM,mBAAmB;;;;;EAAkD,CAAC;AACnF,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEtE;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,mBAAmB;;;;;;;;;;iBAK9B,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEtE;;;;;;GAMG;AACH,eAAO,MAAM,UAAU;;;iBAGrB,CAAC;AACH,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,UAAU,CAAC,CAAC;AAEpD;;;;;GAKG;AACH,eAAO,MAAM,QAAQ;;;;;;iBAGnB,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEhD;;;;GAIG;AACH,eAAO,MAAM,QAAQ;;;iBAGnB,CAAC;AACH,MAAM,MAAM,QAAQ,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,QAAQ,CAAC,CAAC;AAEhD,4FAA4F;AAC5F,eAAO,MAAM,SAAS;;;kBAAoB,CAAC;AAC3C,MAAM,MAAM,SAAS,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,SAAS,CAAC,CAAC;AAElD,eAAO,MAAM,WAAW;;;;;;;;;;;;;;;;;;;;;iBAsCtB,CAAC;AACH,MAAM,MAAM,WAAW,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,WAAW,CAAC,CAAC;AAEtD,iEAAiE;AACjE,eAAO,MAAM,mBAAmB;;;iBAG9B,CAAC;AACH,MAAM,MAAM,mBAAmB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,mBAAmB,CAAC,CAAC;AAEtE;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB;;;iBAG/B,CAAC;AACH,MAAM,MAAM,oBAAoB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,oBAAoB,CAAC,CAAC;AAExE;;;;GAIG;AACH,eAAO,MAAM,gBAAgB;;;;;;;;;;;;;;;;;;;;;;;;;;;;iBAG3B,CAAC;AACH,MAAM,MAAM,gBAAgB,GAAG,CAAC,CAAC,KAAK,CAAC,OAAO,gBAAgB,CAAC,CAAC"}
1
+ {"version":3,"file":"interactions.d.ts","sourceRoot":"","sources":["../../src/schemas/interactions.ts"],"names":[],"mappings":"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"}
@@ -74,17 +74,93 @@ export const formData = z.object({
74
74
  values: z.record(z.string(), z.unknown()).default({}),
75
75
  options: z.record(z.string(), z.array(formOption)).default({}),
76
76
  });
77
+ /** The kind of an ordered display block a page may carry alongside its input fields. */
78
+ export const displayBlockKind = z.enum(['heading', 'body', 'image']);
79
+ /**
80
+ * One ordered, display-only block on a form page (never an input): a `heading` or
81
+ * `body` text block, or an `image`. `text` carries a heading/body's words; `src`/`alt`
82
+ * carry an image's source and alt text. An optional `slot` names a data key whose value
83
+ * the block shows in place of static `text` — filled from `format_payload.data` at send
84
+ * and/or by a reaction's `display` update (so a computed total is a display slot, not a
85
+ * special case). Every text field is `.nullish()` (absent OR explicit `null` both parse
86
+ * to absent) so a block that omits a key — or sends an explicit `null` — is not a
87
+ * whole-page parse failure. Applied per block by the preview (safeParsed via its page),
88
+ * so a malformed block is a loud notice, never silent.
89
+ */
90
+ export const displayBlock = z.object({
91
+ kind: displayBlockKind,
92
+ text: z.string().nullish(),
93
+ src: z.string().nullish(),
94
+ alt: z.string().nullish(),
95
+ slot: z.string().nullish(),
96
+ });
97
+ /** A page's role: an ordinary `input` page (default) or a terminal `review` summary. */
98
+ export const formPageKind = z.enum(['input', 'review']);
77
99
  /**
78
100
  * One page of a stepped `form`: a `title` and the ordered top-level property names it
79
101
  * groups. `format_payload.pages` is the ordered list of these; absent = one page. The
80
102
  * form preview safeParses the list, so a malformed page is a loud notice, never silent.
103
+ *
104
+ * `display` is the ordered list of display-only blocks the page shows alongside (or
105
+ * instead of, for a review page) its input fields; it defaults to empty, so a page that
106
+ * carries none renders exactly as before. `kind` marks a `review` page — a terminal
107
+ * summary step that shows the readback of entered values and the confirm/submit footer
108
+ * and carries no new input fields; it defaults to `input`. Both are additive: an older
109
+ * payload ({title, fields}) parses unchanged.
81
110
  */
82
111
  export const formPage = z.object({
83
112
  title: z.string(),
84
113
  fields: z.array(z.string()),
114
+ display: z.array(displayBlock).default([]),
115
+ kind: formPageKind.default('input'),
85
116
  });
86
117
  /** The `form` pages list (`format_payload.pages`), safeParsed as a whole by the preview. */
87
118
  export const formPages = z.array(formPage);
119
+ /**
120
+ * When a `form` reacts while it is open (`format_payload.reactions`): the plain,
121
+ * renderer-readable description of WHEN the form calls its reaction handler. Absent ⇒ a
122
+ * static (non-reacting) form, exactly as before. `field_changed` names the fields whose
123
+ * change triggers a reaction; `page_advanced` names the pages (by title) whose advance
124
+ * triggers one; `submitted` is true when the submission is checked by a reaction before
125
+ * acceptance; `choices` names the fields whose CHOICE LISTS a reaction may replace while
126
+ * the form is open (for such a field the send-time option list is advisory — the consumer
127
+ * owns membership at the `submitted` event). Every member defaults to empty/false so a
128
+ * partial declaration parses; a malformed block is a loud notice via the preview.
129
+ */
130
+ export const formReactions = z.object({
131
+ field_changed: z.array(z.string()).default([]),
132
+ page_advanced: z.array(z.string()).default([]),
133
+ submitted: z.boolean().default(false),
134
+ choices: z.array(z.string()).default([]),
135
+ });
136
+ /**
137
+ * The form update a reaction door returns (`POST /api/interactions/{id}/react`): the
138
+ * same kind of data a form is sent with, applied to the open form. `values` sets field
139
+ * values; `options` replaces the per-send choice list of option-bearing fields; `errors`
140
+ * shows per-field messages (keyed by field name); `display` fills display slots (keyed by
141
+ * slot name) — a computed total among them. Every member defaults to empty, so a reaction
142
+ * that touches only one of them returns only that one. The door response is safeParsed, so
143
+ * a malformed update surfaces loudly rather than applying a half-understood change.
144
+ */
145
+ export const formUpdate = z.object({
146
+ values: z.record(z.string(), z.unknown()).default({}),
147
+ options: z.record(z.string(), z.array(formOption)).default({}),
148
+ errors: z.record(z.string(), z.string()).default({}),
149
+ display: z.record(z.string(), z.unknown()).default({}),
150
+ });
151
+ /**
152
+ * The event a reaction round-trip reports to the door: `kind` is which of the three
153
+ * declared events fired, `field` names the changed field for a `field_changed` event, and
154
+ * `page` names the advanced-from page (by title) for a `page_advanced` event. A
155
+ * `submitted` event carries neither. The body also carries the partial `values` filled so
156
+ * far (see {@link interactionsClient}'s `reactInteraction`).
157
+ */
158
+ export const reactionEventKind = z.enum(['field_changed', 'page_advanced', 'submitted']);
159
+ export const reactionEvent = z.object({
160
+ kind: reactionEventKind,
161
+ field: z.string().optional(),
162
+ page: z.string().optional(),
163
+ });
88
164
  export const interaction = z.object({
89
165
  interaction_id: z.string(),
90
166
  group_id: z.string(),
@@ -1 +1 @@
1
- {"version":3,"file":"interactions.js","sourceRoot":"","sources":["../../src/schemas/interactions.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"interactions.js","sourceRoot":"","sources":["../../src/schemas/interactions.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tai42/api-client",
3
- "version": "19.2.1",
3
+ "version": "19.3.0",
4
4
  "description": "Typed client for the tai42-skeleton HTTP API.",
5
5
  "license": "Apache-2.0",
6
6
  "author": "tai42 <oss@tai42.ai>",
@@ -19,6 +19,18 @@ export function interactionsClient(t: Transport) {
19
19
  method: 'POST',
20
20
  body: { answer },
21
21
  }),
22
+ // React to a still-open form while it is being filled: the in-app, authenticated
23
+ // sibling of the answer door (`POST /api/interactions/{id}/react`). It carries the
24
+ // event that fired (a field changed / a page advanced / the form submitted) and the
25
+ // partial `values` filled so far, and returns a form update to apply. It is STATELESS
26
+ // on the server — it records no answer and resolves no interaction — so it never
27
+ // substitutes for the answer door. A handler error/timeout surfaces as the shared
28
+ // `apiRequest` status handling (loud), never a stale value.
29
+ reactInteraction: (interactionId: string, event: s.ReactionEvent, values: unknown) =>
30
+ req(`/api/interactions/${encodeSegment(interactionId)}/react`, s.formUpdate, {
31
+ method: 'POST',
32
+ body: { event, values },
33
+ }),
22
34
  // Withdraw a pending ask WITHOUT answering it (a bodyless POST): the question is
23
35
  // resolved as cancelled and the flow that asked never resumes. Terminal like an
24
36
  // answer, so the loud failure mappings mirror it — a 409 (already answered, so no
package/src/index.ts CHANGED
@@ -114,6 +114,8 @@ export type {
114
114
  ConversationThreadsPage,
115
115
  ConversationTranscriptPage,
116
116
  DashboardMetrics,
117
+ DisplayBlock,
118
+ DisplayBlockKind,
117
119
  Extension,
118
120
  FleetOutcome,
119
121
  FleetReloadResult,
@@ -126,7 +128,10 @@ export type {
126
128
  FormData,
127
129
  FormOption,
128
130
  FormPage,
131
+ FormPageKind,
129
132
  FormPages,
133
+ FormReactions,
134
+ FormUpdate,
130
135
  GrantLevel,
131
136
  HookList,
132
137
  HookParams,
@@ -197,6 +202,8 @@ export type {
197
202
  PrincipalRef,
198
203
  ProviderCatalogResponse,
199
204
  ProviderView,
205
+ ReactionEvent,
206
+ ReactionEventKind,
200
207
  RecordSearchPage,
201
208
  ReloadConfigResult,
202
209
  RoleAuditEvent,
@@ -91,14 +91,51 @@ export const formData = z.object({
91
91
  });
92
92
  export type FormData = z.infer<typeof formData>;
93
93
 
94
+ /** The kind of an ordered display block a page may carry alongside its input fields. */
95
+ export const displayBlockKind = z.enum(['heading', 'body', 'image']);
96
+ export type DisplayBlockKind = z.infer<typeof displayBlockKind>;
97
+
98
+ /**
99
+ * One ordered, display-only block on a form page (never an input): a `heading` or
100
+ * `body` text block, or an `image`. `text` carries a heading/body's words; `src`/`alt`
101
+ * carry an image's source and alt text. An optional `slot` names a data key whose value
102
+ * the block shows in place of static `text` — filled from `format_payload.data` at send
103
+ * and/or by a reaction's `display` update (so a computed total is a display slot, not a
104
+ * special case). Every text field is `.nullish()` (absent OR explicit `null` both parse
105
+ * to absent) so a block that omits a key — or sends an explicit `null` — is not a
106
+ * whole-page parse failure. Applied per block by the preview (safeParsed via its page),
107
+ * so a malformed block is a loud notice, never silent.
108
+ */
109
+ export const displayBlock = z.object({
110
+ kind: displayBlockKind,
111
+ text: z.string().nullish(),
112
+ src: z.string().nullish(),
113
+ alt: z.string().nullish(),
114
+ slot: z.string().nullish(),
115
+ });
116
+ export type DisplayBlock = z.infer<typeof displayBlock>;
117
+
118
+ /** A page's role: an ordinary `input` page (default) or a terminal `review` summary. */
119
+ export const formPageKind = z.enum(['input', 'review']);
120
+ export type FormPageKind = z.infer<typeof formPageKind>;
121
+
94
122
  /**
95
123
  * One page of a stepped `form`: a `title` and the ordered top-level property names it
96
124
  * groups. `format_payload.pages` is the ordered list of these; absent = one page. The
97
125
  * form preview safeParses the list, so a malformed page is a loud notice, never silent.
126
+ *
127
+ * `display` is the ordered list of display-only blocks the page shows alongside (or
128
+ * instead of, for a review page) its input fields; it defaults to empty, so a page that
129
+ * carries none renders exactly as before. `kind` marks a `review` page — a terminal
130
+ * summary step that shows the readback of entered values and the confirm/submit footer
131
+ * and carries no new input fields; it defaults to `input`. Both are additive: an older
132
+ * payload ({title, fields}) parses unchanged.
98
133
  */
99
134
  export const formPage = z.object({
100
135
  title: z.string(),
101
136
  fields: z.array(z.string()),
137
+ display: z.array(displayBlock).default([]),
138
+ kind: formPageKind.default('input'),
102
139
  });
103
140
  export type FormPage = z.infer<typeof formPage>;
104
141
 
@@ -106,6 +143,59 @@ export type FormPage = z.infer<typeof formPage>;
106
143
  export const formPages = z.array(formPage);
107
144
  export type FormPages = z.infer<typeof formPages>;
108
145
 
146
+ /**
147
+ * When a `form` reacts while it is open (`format_payload.reactions`): the plain,
148
+ * renderer-readable description of WHEN the form calls its reaction handler. Absent ⇒ a
149
+ * static (non-reacting) form, exactly as before. `field_changed` names the fields whose
150
+ * change triggers a reaction; `page_advanced` names the pages (by title) whose advance
151
+ * triggers one; `submitted` is true when the submission is checked by a reaction before
152
+ * acceptance; `choices` names the fields whose CHOICE LISTS a reaction may replace while
153
+ * the form is open (for such a field the send-time option list is advisory — the consumer
154
+ * owns membership at the `submitted` event). Every member defaults to empty/false so a
155
+ * partial declaration parses; a malformed block is a loud notice via the preview.
156
+ */
157
+ export const formReactions = z.object({
158
+ field_changed: z.array(z.string()).default([]),
159
+ page_advanced: z.array(z.string()).default([]),
160
+ submitted: z.boolean().default(false),
161
+ choices: z.array(z.string()).default([]),
162
+ });
163
+ export type FormReactions = z.infer<typeof formReactions>;
164
+
165
+ /**
166
+ * The form update a reaction door returns (`POST /api/interactions/{id}/react`): the
167
+ * same kind of data a form is sent with, applied to the open form. `values` sets field
168
+ * values; `options` replaces the per-send choice list of option-bearing fields; `errors`
169
+ * shows per-field messages (keyed by field name); `display` fills display slots (keyed by
170
+ * slot name) — a computed total among them. Every member defaults to empty, so a reaction
171
+ * that touches only one of them returns only that one. The door response is safeParsed, so
172
+ * a malformed update surfaces loudly rather than applying a half-understood change.
173
+ */
174
+ export const formUpdate = z.object({
175
+ values: z.record(z.string(), z.unknown()).default({}),
176
+ options: z.record(z.string(), z.array(formOption)).default({}),
177
+ errors: z.record(z.string(), z.string()).default({}),
178
+ display: z.record(z.string(), z.unknown()).default({}),
179
+ });
180
+ export type FormUpdate = z.infer<typeof formUpdate>;
181
+
182
+ /**
183
+ * The event a reaction round-trip reports to the door: `kind` is which of the three
184
+ * declared events fired, `field` names the changed field for a `field_changed` event, and
185
+ * `page` names the advanced-from page (by title) for a `page_advanced` event. A
186
+ * `submitted` event carries neither. The body also carries the partial `values` filled so
187
+ * far (see {@link interactionsClient}'s `reactInteraction`).
188
+ */
189
+ export const reactionEventKind = z.enum(['field_changed', 'page_advanced', 'submitted']);
190
+ export type ReactionEventKind = z.infer<typeof reactionEventKind>;
191
+
192
+ export const reactionEvent = z.object({
193
+ kind: reactionEventKind,
194
+ field: z.string().optional(),
195
+ page: z.string().optional(),
196
+ });
197
+ export type ReactionEvent = z.infer<typeof reactionEvent>;
198
+
109
199
  export const interaction = z.object({
110
200
  interaction_id: z.string(),
111
201
  group_id: z.string(),