@xfey/tutti 0.1.111 → 0.1.113
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/approvals/decision-command.d.ts +2 -2
- package/dist/chat-assistant/index.d.ts +1 -1
- package/dist/chat-assistant/index.js +19 -6
- package/dist/collaboration-ingestion/clarification.d.ts +25 -0
- package/dist/collaboration-ingestion/clarification.js +63 -0
- package/dist/collaboration-ingestion/external-source.d.ts +2 -0
- package/dist/collaboration-ingestion/external-source.js +35 -0
- package/dist/collaboration-ingestion/index.d.ts +2 -0
- package/dist/collaboration-ingestion/index.js +2 -0
- package/dist/collaboration-ingestion/platform-clarification.d.ts +10 -0
- package/dist/collaboration-ingestion/platform-clarification.js +42 -0
- package/dist/collaboration-state/clarification-messages.js +3 -2
- package/dist/collaboration-state/clarification-records.d.ts +1 -1
- package/dist/collaboration-state/clarification-records.js +7 -5
- package/dist/collaboration-state/clarification-rounds.js +5 -5
- package/dist/collaboration-state/clarification-snapshot.d.ts +228 -0
- package/dist/collaboration-state/clarification-snapshot.js +29 -0
- package/dist/collaboration-state/clarification-successors.js +6 -6
- package/dist/collaboration-state/index.d.ts +1 -0
- package/dist/collaboration-state/index.js +1 -0
- package/dist/collaboration-state/run-recording.js +1 -1
- package/dist/collaboration-state/task-compile-context.d.ts +1 -1
- package/dist/collaboration-state/types.d.ts +1 -0
- package/dist/control-plane/clarification-commands.d.ts +3 -2
- package/dist/control-plane/clarification-commands.js +13 -4
- package/dist/control-plane/follow-up-context.js +8 -14
- package/dist/control-plane/index.d.ts +3 -2
- package/dist/control-plane/task-compile-clarification-context.js +7 -2
- package/dist/control-plane/types.d.ts +1 -0
- package/dist/control-plane/workflows/openai.js +5 -4
- package/dist/platform-outbound/repository.js +83 -4
- package/dist/server-shell/cli/host-lifecycle.js +1 -0
- package/dist/server-shell/cli/host-server-runtime.d.ts +2 -1
- package/dist/server-shell/cli/host-server-runtime.js +4 -2
- package/dist/server-shell/cli/relay-registration.js +1 -0
- package/dist/server-shell/http/host-tunnel.d.ts +2 -1
- package/dist/server-shell/http/host-tunnel.js +4 -1
- package/dist/server-shell/http/integration-clarification-dispatch.d.ts +6 -0
- package/dist/server-shell/http/integration-clarification-dispatch.js +43 -0
- package/dist/server-shell/http/routes/project-api/clarification-routes.js +16 -42
- package/dist/server-shell/http/routes/project-api/openapi-collaboration-routes.d.ts +2 -0
- package/dist/server-shell/http/routes/project-api/openapi-workspace-routes.d.ts +1 -0
- package/dist/server-shell/http/routes/project-api/openapi.d.ts +3 -0
- package/dist/server-shell/http/routes/project-api/schemas.d.ts +1 -0
- package/migrations/0022_clarification_projection_cursors.sql +7 -0
- package/node_modules/@tutti/relay-client/dist/host-control.d.ts +1 -0
- package/node_modules/@tutti/relay-client/dist/host-control.js +3 -0
- package/node_modules/@tutti/shared/dist/schemas/api/clarifications.d.ts +13 -1
- package/node_modules/@tutti/shared/dist/schemas/api/clarifications.js +9 -2
- package/node_modules/@tutti/shared/dist/schemas/internal/index.d.ts +2 -0
- package/node_modules/@tutti/shared/dist/schemas/internal/index.js +2 -0
- package/node_modules/@tutti/shared/dist/schemas/internal/platform-clarification-content.d.ts +15 -0
- package/node_modules/@tutti/shared/dist/schemas/internal/platform-clarification-content.js +24 -0
- package/node_modules/@tutti/shared/dist/schemas/internal/platform-clarification.d.ts +354 -0
- package/node_modules/@tutti/shared/dist/schemas/internal/platform-clarification.js +94 -0
- package/node_modules/@tutti/shared/dist/schemas/internal/platform-integration.d.ts +89 -3
- package/node_modules/@tutti/shared/dist/schemas/internal/platform-integration.js +15 -3
- package/node_modules/@tutti/shared/dist/utils/clarification-participants.d.ts +4 -0
- package/node_modules/@tutti/shared/dist/utils/clarification-participants.js +11 -0
- package/node_modules/@tutti/shared/dist/utils/index.d.ts +1 -0
- package/node_modules/@tutti/shared/dist/utils/index.js +1 -0
- package/package.json +1 -1
- package/prompts/procedures/follow-up-check.md +4 -4
- package/web/assets/{homepage-motion-scene-TmkKf8wQ.js → homepage-motion-scene-BwdH6Iss.js} +1 -1
- package/web/assets/index-B29RuNsd.js +69 -0
- package/web/index.html +1 -1
- package/web/assets/index-B1oL1p9_.js +0 -69
|
@@ -14,6 +14,7 @@ export declare const PlatformConversationLocatorSchema: import("@sinclair/typebo
|
|
|
14
14
|
conversation_ref: import("@sinclair/typebox").TString;
|
|
15
15
|
thread_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
16
16
|
parent_message_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
17
|
+
root_message_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
17
18
|
}>;
|
|
18
19
|
export declare const ExternalMessageLocatorSchema: import("@sinclair/typebox").TObject<{
|
|
19
20
|
conversation: import("@sinclair/typebox").TObject<{
|
|
@@ -24,6 +25,7 @@ export declare const ExternalMessageLocatorSchema: import("@sinclair/typebox").T
|
|
|
24
25
|
conversation_ref: import("@sinclair/typebox").TString;
|
|
25
26
|
thread_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
26
27
|
parent_message_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
28
|
+
root_message_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
27
29
|
}>;
|
|
28
30
|
message_ref: import("@sinclair/typebox").TString;
|
|
29
31
|
}>;
|
|
@@ -213,6 +215,7 @@ export declare const PreIdentityReferenceAttachmentSourceSchema: import("@sincla
|
|
|
213
215
|
conversation_ref: import("@sinclair/typebox").TString;
|
|
214
216
|
thread_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
215
217
|
parent_message_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
218
|
+
root_message_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
216
219
|
}>;
|
|
217
220
|
message_ref: import("@sinclair/typebox").TString;
|
|
218
221
|
}>;
|
|
@@ -253,6 +256,7 @@ export declare const NormalizedConversationSourceSchema: import("@sinclair/typeb
|
|
|
253
256
|
conversation_ref: import("@sinclair/typebox").TString;
|
|
254
257
|
thread_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
255
258
|
parent_message_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
259
|
+
root_message_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
256
260
|
}>;
|
|
257
261
|
message_ref: import("@sinclair/typebox").TString;
|
|
258
262
|
}>;
|
|
@@ -329,6 +333,7 @@ export declare const PreIdentityNormalizedConversationSourceSchema: import("@sin
|
|
|
329
333
|
conversation_ref: import("@sinclair/typebox").TString;
|
|
330
334
|
thread_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
331
335
|
parent_message_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
336
|
+
root_message_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
332
337
|
}>;
|
|
333
338
|
message_ref: import("@sinclair/typebox").TString;
|
|
334
339
|
}>;
|
|
@@ -398,6 +403,7 @@ export declare const ExternalConversationRevisionObservationSchema: import("@sin
|
|
|
398
403
|
conversation_ref: import("@sinclair/typebox").TString;
|
|
399
404
|
thread_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
400
405
|
parent_message_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
406
|
+
root_message_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
401
407
|
}>;
|
|
402
408
|
message_ref: import("@sinclair/typebox").TString;
|
|
403
409
|
}>;
|
|
@@ -456,6 +462,7 @@ export declare const ExternalConversationRevisionObservationSchema: import("@sin
|
|
|
456
462
|
conversation_ref: import("@sinclair/typebox").TString;
|
|
457
463
|
thread_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
458
464
|
parent_message_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
465
|
+
root_message_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
459
466
|
}>;
|
|
460
467
|
message_ref: import("@sinclair/typebox").TString;
|
|
461
468
|
}>;
|
|
@@ -514,6 +521,7 @@ export declare const ConversationSourceIngestionEnvelopeSchema: import("@sinclai
|
|
|
514
521
|
conversation_ref: import("@sinclair/typebox").TString;
|
|
515
522
|
thread_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
516
523
|
parent_message_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
524
|
+
root_message_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
517
525
|
}>;
|
|
518
526
|
message_ref: import("@sinclair/typebox").TString;
|
|
519
527
|
}>;
|
|
@@ -609,6 +617,7 @@ export declare const ConversationRevisionIngestionEnvelopeSchema: import("@sincl
|
|
|
609
617
|
conversation_ref: import("@sinclair/typebox").TString;
|
|
610
618
|
thread_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
611
619
|
parent_message_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
620
|
+
root_message_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
612
621
|
}>;
|
|
613
622
|
message_ref: import("@sinclair/typebox").TString;
|
|
614
623
|
}>;
|
|
@@ -667,6 +676,7 @@ export declare const ConversationRevisionIngestionEnvelopeSchema: import("@sincl
|
|
|
667
676
|
conversation_ref: import("@sinclair/typebox").TString;
|
|
668
677
|
thread_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
669
678
|
parent_message_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
679
|
+
root_message_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
670
680
|
}>;
|
|
671
681
|
message_ref: import("@sinclair/typebox").TString;
|
|
672
682
|
}>;
|
|
@@ -715,6 +725,7 @@ export declare const ConversationIngestionEnvelopeSchema: import("@sinclair/type
|
|
|
715
725
|
conversation_ref: import("@sinclair/typebox").TString;
|
|
716
726
|
thread_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
717
727
|
parent_message_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
728
|
+
root_message_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
718
729
|
}>;
|
|
719
730
|
message_ref: import("@sinclair/typebox").TString;
|
|
720
731
|
}>;
|
|
@@ -809,6 +820,7 @@ export declare const ConversationIngestionEnvelopeSchema: import("@sinclair/type
|
|
|
809
820
|
conversation_ref: import("@sinclair/typebox").TString;
|
|
810
821
|
thread_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
811
822
|
parent_message_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
823
|
+
root_message_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
812
824
|
}>;
|
|
813
825
|
message_ref: import("@sinclair/typebox").TString;
|
|
814
826
|
}>;
|
|
@@ -867,6 +879,7 @@ export declare const ConversationIngestionEnvelopeSchema: import("@sinclair/type
|
|
|
867
879
|
conversation_ref: import("@sinclair/typebox").TString;
|
|
868
880
|
thread_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
869
881
|
parent_message_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
882
|
+
root_message_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
870
883
|
}>;
|
|
871
884
|
message_ref: import("@sinclair/typebox").TString;
|
|
872
885
|
}>;
|
|
@@ -906,13 +919,13 @@ export declare const IntegrationDeliveryDispositionSchema: import("@sinclair/typ
|
|
|
906
919
|
}>, import("@sinclair/typebox").TObject<{
|
|
907
920
|
kind: import("@sinclair/typebox").TLiteral<"host_incompatible">;
|
|
908
921
|
retryable: import("@sinclair/typebox").TLiteral<true>;
|
|
909
|
-
reason_code: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"integration_source_ingestion_unsupported">, import("@sinclair/typebox").TLiteral<"integration_attachment_ingestion_unsupported">, import("@sinclair/typebox").TLiteral<"integration_managed_reference_ingestion_unsupported">]>;
|
|
922
|
+
reason_code: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"integration_source_ingestion_unsupported">, import("@sinclair/typebox").TLiteral<"integration_attachment_ingestion_unsupported">, import("@sinclair/typebox").TLiteral<"integration_managed_reference_ingestion_unsupported">, import("@sinclair/typebox").TLiteral<"integration_clarification_unsupported">]>;
|
|
910
923
|
}>, import("@sinclair/typebox").TObject<{
|
|
911
924
|
kind: import("@sinclair/typebox").TLiteral<"invalid">;
|
|
912
925
|
reason_code: import("@sinclair/typebox").TString;
|
|
913
926
|
}>]>;
|
|
914
927
|
export declare const IntegrationConversationSourceDeliveryRequestSchema: import("@sinclair/typebox").TObject<{
|
|
915
|
-
protocol_version: import("@sinclair/typebox").TLiteral<2>;
|
|
928
|
+
protocol_version: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<2>, import("@sinclair/typebox").TLiteral<3>]>;
|
|
916
929
|
command_id: import("@sinclair/typebox").TString;
|
|
917
930
|
relay_project_ref: import("@sinclair/typebox").TString;
|
|
918
931
|
binding_ref: import("@sinclair/typebox").TString;
|
|
@@ -943,6 +956,7 @@ export declare const IntegrationConversationSourceDeliveryRequestSchema: import(
|
|
|
943
956
|
conversation_ref: import("@sinclair/typebox").TString;
|
|
944
957
|
thread_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
945
958
|
parent_message_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
959
|
+
root_message_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
946
960
|
}>;
|
|
947
961
|
message_ref: import("@sinclair/typebox").TString;
|
|
948
962
|
}>;
|
|
@@ -1001,6 +1015,7 @@ export declare const IntegrationConversationSourceDeliveryRequestSchema: import(
|
|
|
1001
1015
|
observed_at: import("@sinclair/typebox").TString;
|
|
1002
1016
|
adapter_version: import("@sinclair/typebox").TString;
|
|
1003
1017
|
}>;
|
|
1018
|
+
clarification_round_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
1004
1019
|
}>;
|
|
1005
1020
|
export declare const IntegrationReferenceAttachmentStageRequestSchema: import("@sinclair/typebox").TObject<{
|
|
1006
1021
|
protocol_version: import("@sinclair/typebox").TLiteral<1>;
|
|
@@ -1028,6 +1043,7 @@ export declare const IntegrationReferenceAttachmentStageRequestSchema: import("@
|
|
|
1028
1043
|
conversation_ref: import("@sinclair/typebox").TString;
|
|
1029
1044
|
thread_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
1030
1045
|
parent_message_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
1046
|
+
root_message_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
1031
1047
|
}>;
|
|
1032
1048
|
message_ref: import("@sinclair/typebox").TString;
|
|
1033
1049
|
}>;
|
|
@@ -1524,6 +1540,7 @@ export declare const TrustedConversationSourceIngestionCommandSchema: import("@s
|
|
|
1524
1540
|
conversation_ref: import("@sinclair/typebox").TString;
|
|
1525
1541
|
thread_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
1526
1542
|
parent_message_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
1543
|
+
root_message_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
1527
1544
|
}>;
|
|
1528
1545
|
message_ref: import("@sinclair/typebox").TString;
|
|
1529
1546
|
}>;
|
|
@@ -1584,6 +1601,7 @@ export declare const TrustedConversationSourceIngestionCommandSchema: import("@s
|
|
|
1584
1601
|
observed_at: import("@sinclair/typebox").TString;
|
|
1585
1602
|
adapter_version: import("@sinclair/typebox").TString;
|
|
1586
1603
|
}>;
|
|
1604
|
+
clarification_round_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
1587
1605
|
}>;
|
|
1588
1606
|
export declare const IntegrationReferenceAttachmentDeliveryRequestSchema: import("@sinclair/typebox").TObject<{
|
|
1589
1607
|
protocol_version: import("@sinclair/typebox").TLiteral<1>;
|
|
@@ -1611,6 +1629,7 @@ export declare const IntegrationReferenceAttachmentDeliveryRequestSchema: import
|
|
|
1611
1629
|
conversation_ref: import("@sinclair/typebox").TString;
|
|
1612
1630
|
thread_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
1613
1631
|
parent_message_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
1632
|
+
root_message_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
1614
1633
|
}>;
|
|
1615
1634
|
message_ref: import("@sinclair/typebox").TString;
|
|
1616
1635
|
}>;
|
|
@@ -1689,6 +1708,7 @@ export declare const TrustedReferenceAttachmentIngestionCommandSchema: import("@
|
|
|
1689
1708
|
conversation_ref: import("@sinclair/typebox").TString;
|
|
1690
1709
|
thread_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
1691
1710
|
parent_message_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
1711
|
+
root_message_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
1692
1712
|
}>;
|
|
1693
1713
|
message_ref: import("@sinclair/typebox").TString;
|
|
1694
1714
|
}>;
|
|
@@ -1774,7 +1794,7 @@ export declare const IntegrationConversationSourceDeliveryResponseSchema: import
|
|
|
1774
1794
|
}>, import("@sinclair/typebox").TObject<{
|
|
1775
1795
|
kind: import("@sinclair/typebox").TLiteral<"host_incompatible">;
|
|
1776
1796
|
retryable: import("@sinclair/typebox").TLiteral<true>;
|
|
1777
|
-
reason_code: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"integration_source_ingestion_unsupported">, import("@sinclair/typebox").TLiteral<"integration_attachment_ingestion_unsupported">, import("@sinclair/typebox").TLiteral<"integration_managed_reference_ingestion_unsupported">]>;
|
|
1797
|
+
reason_code: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"integration_source_ingestion_unsupported">, import("@sinclair/typebox").TLiteral<"integration_attachment_ingestion_unsupported">, import("@sinclair/typebox").TLiteral<"integration_managed_reference_ingestion_unsupported">, import("@sinclair/typebox").TLiteral<"integration_clarification_unsupported">]>;
|
|
1778
1798
|
}>, import("@sinclair/typebox").TObject<{
|
|
1779
1799
|
kind: import("@sinclair/typebox").TLiteral<"invalid">;
|
|
1780
1800
|
reason_code: import("@sinclair/typebox").TString;
|
|
@@ -1806,6 +1826,7 @@ export declare const PlatformOutboundApprovalRequestContentSchema: import("@sinc
|
|
|
1806
1826
|
export declare const PlatformOutboundContentSchema: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
|
|
1807
1827
|
kind: import("@sinclair/typebox").TLiteral<"text">;
|
|
1808
1828
|
text: import("@sinclair/typebox").TString;
|
|
1829
|
+
clarification_round_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
1809
1830
|
}>, import("@sinclair/typebox").TObject<{
|
|
1810
1831
|
kind: import("@sinclair/typebox").TLiteral<"approval_request">;
|
|
1811
1832
|
approval_id: import("@sinclair/typebox").TString;
|
|
@@ -1821,6 +1842,16 @@ export declare const PlatformOutboundContentSchema: import("@sinclair/typebox").
|
|
|
1821
1842
|
label: import("@sinclair/typebox").TString;
|
|
1822
1843
|
tone: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"primary">, import("@sinclair/typebox").TLiteral<"neutral">, import("@sinclair/typebox").TLiteral<"danger">]>;
|
|
1823
1844
|
}>>;
|
|
1845
|
+
}>, import("@sinclair/typebox").TObject<{
|
|
1846
|
+
kind: import("@sinclair/typebox").TLiteral<"clarification">;
|
|
1847
|
+
round_id: import("@sinclair/typebox").TString;
|
|
1848
|
+
version: import("@sinclair/typebox").TInteger;
|
|
1849
|
+
answer_revision: import("@sinclair/typebox").TInteger;
|
|
1850
|
+
closed_reason: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"resolved">, import("@sinclair/typebox").TLiteral<"contract_changed">, import("@sinclair/typebox").TLiteral<"cancelled">]>>;
|
|
1851
|
+
state: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"writable">, import("@sinclair/typebox").TLiteral<"submitted">, import("@sinclair/typebox").TLiteral<"continued">, import("@sinclair/typebox").TLiteral<"closed">]>;
|
|
1852
|
+
title: import("@sinclair/typebox").TString;
|
|
1853
|
+
request: import("@sinclair/typebox").TString;
|
|
1854
|
+
opened_at: import("@sinclair/typebox").TString;
|
|
1824
1855
|
}>]>;
|
|
1825
1856
|
export declare const PlatformOutboundEventSchema: import("@sinclair/typebox").TObject<{
|
|
1826
1857
|
kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"chat_response">, import("@sinclair/typebox").TLiteral<"needs_input">, import("@sinclair/typebox").TLiteral<"task_completed">, import("@sinclair/typebox").TLiteral<"task_failed">]>;
|
|
@@ -1847,6 +1878,7 @@ export declare const PlatformOutboundIntentSchema: import("@sinclair/typebox").T
|
|
|
1847
1878
|
readonly content: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
|
|
1848
1879
|
kind: import("@sinclair/typebox").TLiteral<"text">;
|
|
1849
1880
|
text: import("@sinclair/typebox").TString;
|
|
1881
|
+
clarification_round_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
1850
1882
|
}>, import("@sinclair/typebox").TObject<{
|
|
1851
1883
|
kind: import("@sinclair/typebox").TLiteral<"approval_request">;
|
|
1852
1884
|
approval_id: import("@sinclair/typebox").TString;
|
|
@@ -1862,6 +1894,16 @@ export declare const PlatformOutboundIntentSchema: import("@sinclair/typebox").T
|
|
|
1862
1894
|
label: import("@sinclair/typebox").TString;
|
|
1863
1895
|
tone: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"primary">, import("@sinclair/typebox").TLiteral<"neutral">, import("@sinclair/typebox").TLiteral<"danger">]>;
|
|
1864
1896
|
}>>;
|
|
1897
|
+
}>, import("@sinclair/typebox").TObject<{
|
|
1898
|
+
kind: import("@sinclair/typebox").TLiteral<"clarification">;
|
|
1899
|
+
round_id: import("@sinclair/typebox").TString;
|
|
1900
|
+
version: import("@sinclair/typebox").TInteger;
|
|
1901
|
+
answer_revision: import("@sinclair/typebox").TInteger;
|
|
1902
|
+
closed_reason: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"resolved">, import("@sinclair/typebox").TLiteral<"contract_changed">, import("@sinclair/typebox").TLiteral<"cancelled">]>>;
|
|
1903
|
+
state: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"writable">, import("@sinclair/typebox").TLiteral<"submitted">, import("@sinclair/typebox").TLiteral<"continued">, import("@sinclair/typebox").TLiteral<"closed">]>;
|
|
1904
|
+
title: import("@sinclair/typebox").TString;
|
|
1905
|
+
request: import("@sinclair/typebox").TString;
|
|
1906
|
+
opened_at: import("@sinclair/typebox").TString;
|
|
1865
1907
|
}>]>;
|
|
1866
1908
|
readonly event: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
|
|
1867
1909
|
kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"chat_response">, import("@sinclair/typebox").TLiteral<"needs_input">, import("@sinclair/typebox").TLiteral<"task_completed">, import("@sinclair/typebox").TLiteral<"task_failed">]>;
|
|
@@ -1892,6 +1934,7 @@ export declare const RelayAuthorizedPlatformOutboundIntentSchema: import("@sincl
|
|
|
1892
1934
|
content: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
|
|
1893
1935
|
kind: import("@sinclair/typebox").TLiteral<"text">;
|
|
1894
1936
|
text: import("@sinclair/typebox").TString;
|
|
1937
|
+
clarification_round_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
1895
1938
|
}>, import("@sinclair/typebox").TObject<{
|
|
1896
1939
|
kind: import("@sinclair/typebox").TLiteral<"approval_request">;
|
|
1897
1940
|
approval_id: import("@sinclair/typebox").TString;
|
|
@@ -1907,6 +1950,16 @@ export declare const RelayAuthorizedPlatformOutboundIntentSchema: import("@sincl
|
|
|
1907
1950
|
label: import("@sinclair/typebox").TString;
|
|
1908
1951
|
tone: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"primary">, import("@sinclair/typebox").TLiteral<"neutral">, import("@sinclair/typebox").TLiteral<"danger">]>;
|
|
1909
1952
|
}>>;
|
|
1953
|
+
}>, import("@sinclair/typebox").TObject<{
|
|
1954
|
+
kind: import("@sinclair/typebox").TLiteral<"clarification">;
|
|
1955
|
+
round_id: import("@sinclair/typebox").TString;
|
|
1956
|
+
version: import("@sinclair/typebox").TInteger;
|
|
1957
|
+
answer_revision: import("@sinclair/typebox").TInteger;
|
|
1958
|
+
closed_reason: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"resolved">, import("@sinclair/typebox").TLiteral<"contract_changed">, import("@sinclair/typebox").TLiteral<"cancelled">]>>;
|
|
1959
|
+
state: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"writable">, import("@sinclair/typebox").TLiteral<"submitted">, import("@sinclair/typebox").TLiteral<"continued">, import("@sinclair/typebox").TLiteral<"closed">]>;
|
|
1960
|
+
title: import("@sinclair/typebox").TString;
|
|
1961
|
+
request: import("@sinclair/typebox").TString;
|
|
1962
|
+
opened_at: import("@sinclair/typebox").TString;
|
|
1910
1963
|
}>]>;
|
|
1911
1964
|
event: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
|
|
1912
1965
|
kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"chat_response">, import("@sinclair/typebox").TLiteral<"needs_input">, import("@sinclair/typebox").TLiteral<"task_completed">, import("@sinclair/typebox").TLiteral<"task_failed">]>;
|
|
@@ -1936,6 +1989,7 @@ export declare const PlatformOutboundTextIntentSchema: import("@sinclair/typebox
|
|
|
1936
1989
|
readonly content: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
|
|
1937
1990
|
kind: import("@sinclair/typebox").TLiteral<"text">;
|
|
1938
1991
|
text: import("@sinclair/typebox").TString;
|
|
1992
|
+
clarification_round_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
1939
1993
|
}>, import("@sinclair/typebox").TObject<{
|
|
1940
1994
|
kind: import("@sinclair/typebox").TLiteral<"approval_request">;
|
|
1941
1995
|
approval_id: import("@sinclair/typebox").TString;
|
|
@@ -1951,6 +2005,16 @@ export declare const PlatformOutboundTextIntentSchema: import("@sinclair/typebox
|
|
|
1951
2005
|
label: import("@sinclair/typebox").TString;
|
|
1952
2006
|
tone: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"primary">, import("@sinclair/typebox").TLiteral<"neutral">, import("@sinclair/typebox").TLiteral<"danger">]>;
|
|
1953
2007
|
}>>;
|
|
2008
|
+
}>, import("@sinclair/typebox").TObject<{
|
|
2009
|
+
kind: import("@sinclair/typebox").TLiteral<"clarification">;
|
|
2010
|
+
round_id: import("@sinclair/typebox").TString;
|
|
2011
|
+
version: import("@sinclair/typebox").TInteger;
|
|
2012
|
+
answer_revision: import("@sinclair/typebox").TInteger;
|
|
2013
|
+
closed_reason: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"resolved">, import("@sinclair/typebox").TLiteral<"contract_changed">, import("@sinclair/typebox").TLiteral<"cancelled">]>>;
|
|
2014
|
+
state: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"writable">, import("@sinclair/typebox").TLiteral<"submitted">, import("@sinclair/typebox").TLiteral<"continued">, import("@sinclair/typebox").TLiteral<"closed">]>;
|
|
2015
|
+
title: import("@sinclair/typebox").TString;
|
|
2016
|
+
request: import("@sinclair/typebox").TString;
|
|
2017
|
+
opened_at: import("@sinclair/typebox").TString;
|
|
1954
2018
|
}>]>;
|
|
1955
2019
|
readonly event: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
|
|
1956
2020
|
kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"chat_response">, import("@sinclair/typebox").TLiteral<"needs_input">, import("@sinclair/typebox").TLiteral<"task_completed">, import("@sinclair/typebox").TLiteral<"task_failed">]>;
|
|
@@ -1981,6 +2045,7 @@ export declare const RelayAuthorizedPlatformOutboundTextIntentSchema: import("@s
|
|
|
1981
2045
|
content: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
|
|
1982
2046
|
kind: import("@sinclair/typebox").TLiteral<"text">;
|
|
1983
2047
|
text: import("@sinclair/typebox").TString;
|
|
2048
|
+
clarification_round_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
1984
2049
|
}>, import("@sinclair/typebox").TObject<{
|
|
1985
2050
|
kind: import("@sinclair/typebox").TLiteral<"approval_request">;
|
|
1986
2051
|
approval_id: import("@sinclair/typebox").TString;
|
|
@@ -1996,6 +2061,16 @@ export declare const RelayAuthorizedPlatformOutboundTextIntentSchema: import("@s
|
|
|
1996
2061
|
label: import("@sinclair/typebox").TString;
|
|
1997
2062
|
tone: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"primary">, import("@sinclair/typebox").TLiteral<"neutral">, import("@sinclair/typebox").TLiteral<"danger">]>;
|
|
1998
2063
|
}>>;
|
|
2064
|
+
}>, import("@sinclair/typebox").TObject<{
|
|
2065
|
+
kind: import("@sinclair/typebox").TLiteral<"clarification">;
|
|
2066
|
+
round_id: import("@sinclair/typebox").TString;
|
|
2067
|
+
version: import("@sinclair/typebox").TInteger;
|
|
2068
|
+
answer_revision: import("@sinclair/typebox").TInteger;
|
|
2069
|
+
closed_reason: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"resolved">, import("@sinclair/typebox").TLiteral<"contract_changed">, import("@sinclair/typebox").TLiteral<"cancelled">]>>;
|
|
2070
|
+
state: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"writable">, import("@sinclair/typebox").TLiteral<"submitted">, import("@sinclair/typebox").TLiteral<"continued">, import("@sinclair/typebox").TLiteral<"closed">]>;
|
|
2071
|
+
title: import("@sinclair/typebox").TString;
|
|
2072
|
+
request: import("@sinclair/typebox").TString;
|
|
2073
|
+
opened_at: import("@sinclair/typebox").TString;
|
|
1999
2074
|
}>]>;
|
|
2000
2075
|
event: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
|
|
2001
2076
|
kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"chat_response">, import("@sinclair/typebox").TLiteral<"needs_input">, import("@sinclair/typebox").TLiteral<"task_completed">, import("@sinclair/typebox").TLiteral<"task_failed">]>;
|
|
@@ -2188,6 +2263,7 @@ export declare const IntegrationOutboundClaimResponseSchema: import("@sinclair/t
|
|
|
2188
2263
|
content: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TObject<{
|
|
2189
2264
|
kind: import("@sinclair/typebox").TLiteral<"text">;
|
|
2190
2265
|
text: import("@sinclair/typebox").TString;
|
|
2266
|
+
clarification_round_ref: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TString>;
|
|
2191
2267
|
}>, import("@sinclair/typebox").TObject<{
|
|
2192
2268
|
kind: import("@sinclair/typebox").TLiteral<"approval_request">;
|
|
2193
2269
|
approval_id: import("@sinclair/typebox").TString;
|
|
@@ -2203,6 +2279,16 @@ export declare const IntegrationOutboundClaimResponseSchema: import("@sinclair/t
|
|
|
2203
2279
|
label: import("@sinclair/typebox").TString;
|
|
2204
2280
|
tone: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"primary">, import("@sinclair/typebox").TLiteral<"neutral">, import("@sinclair/typebox").TLiteral<"danger">]>;
|
|
2205
2281
|
}>>;
|
|
2282
|
+
}>, import("@sinclair/typebox").TObject<{
|
|
2283
|
+
kind: import("@sinclair/typebox").TLiteral<"clarification">;
|
|
2284
|
+
round_id: import("@sinclair/typebox").TString;
|
|
2285
|
+
version: import("@sinclair/typebox").TInteger;
|
|
2286
|
+
answer_revision: import("@sinclair/typebox").TInteger;
|
|
2287
|
+
closed_reason: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"resolved">, import("@sinclair/typebox").TLiteral<"contract_changed">, import("@sinclair/typebox").TLiteral<"cancelled">]>>;
|
|
2288
|
+
state: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"writable">, import("@sinclair/typebox").TLiteral<"submitted">, import("@sinclair/typebox").TLiteral<"continued">, import("@sinclair/typebox").TLiteral<"closed">]>;
|
|
2289
|
+
title: import("@sinclair/typebox").TString;
|
|
2290
|
+
request: import("@sinclair/typebox").TString;
|
|
2291
|
+
opened_at: import("@sinclair/typebox").TString;
|
|
2206
2292
|
}>]>;
|
|
2207
2293
|
event: import("@sinclair/typebox").TOptional<import("@sinclair/typebox").TObject<{
|
|
2208
2294
|
kind: import("@sinclair/typebox").TUnion<[import("@sinclair/typebox").TLiteral<"chat_response">, import("@sinclair/typebox").TLiteral<"needs_input">, import("@sinclair/typebox").TLiteral<"task_completed">, import("@sinclair/typebox").TLiteral<"task_failed">]>;
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { Type } from "@sinclair/typebox";
|
|
2
2
|
import { Value } from "@sinclair/typebox/value";
|
|
3
3
|
import { ExternalReferenceDescriptorSchema } from "../api/external-references.js";
|
|
4
|
-
import {
|
|
4
|
+
import { PlatformClarificationContentSchema } from "./platform-clarification-content.js";
|
|
5
|
+
import { IdempotencyKeySchema, ClarificationRoundRefSchema, IsoDateTimeStringSchema, MessageIdSchema, RelayAccountRefSchema, RelayProjectRefSchema, } from "../domain/index.js";
|
|
5
6
|
import { MAX_REFERENCE_STAGED_UPLOAD_BYTES, PresignedUploadPutSchema, ReferenceStagedUploadReferenceProperties, RelayUploadProjectionSchema, } from "../api/uploads.js";
|
|
6
7
|
export const PlatformAdapterKeySchema = Type.String({
|
|
7
8
|
minLength: 1,
|
|
@@ -27,6 +28,7 @@ export const PlatformConversationLocatorSchema = Type.Object({
|
|
|
27
28
|
conversation_ref: ExternalObjectRefSchema,
|
|
28
29
|
thread_ref: Type.Optional(ExternalObjectRefSchema),
|
|
29
30
|
parent_message_ref: Type.Optional(ExternalObjectRefSchema),
|
|
31
|
+
root_message_ref: Type.Optional(ExternalObjectRefSchema),
|
|
30
32
|
}, { additionalProperties: false });
|
|
31
33
|
export const ExternalMessageLocatorSchema = Type.Object({
|
|
32
34
|
conversation: PlatformConversationLocatorSchema,
|
|
@@ -244,6 +246,7 @@ export const IntegrationDeliveryDispositionSchema = Type.Union([
|
|
|
244
246
|
Type.Literal("integration_source_ingestion_unsupported"),
|
|
245
247
|
Type.Literal("integration_attachment_ingestion_unsupported"),
|
|
246
248
|
Type.Literal("integration_managed_reference_ingestion_unsupported"),
|
|
249
|
+
Type.Literal("integration_clarification_unsupported"),
|
|
247
250
|
]),
|
|
248
251
|
}, { additionalProperties: false }),
|
|
249
252
|
Type.Object({
|
|
@@ -252,12 +255,13 @@ export const IntegrationDeliveryDispositionSchema = Type.Union([
|
|
|
252
255
|
}, { additionalProperties: false }),
|
|
253
256
|
]);
|
|
254
257
|
export const IntegrationConversationSourceDeliveryRequestSchema = Type.Object({
|
|
255
|
-
protocol_version: Type.Literal(2),
|
|
258
|
+
protocol_version: Type.Union([Type.Literal(2), Type.Literal(3)]),
|
|
256
259
|
command_id: IdempotencyKeySchema,
|
|
257
260
|
relay_project_ref: RelayProjectRefSchema,
|
|
258
261
|
binding_ref: IntegrationOwnedRefSchema,
|
|
259
262
|
receipt: InboundIntegrationEventReceiptSchema,
|
|
260
263
|
source: PreIdentityNormalizedConversationSourceSchema,
|
|
264
|
+
clarification_round_ref: Type.Optional(ClarificationRoundRefSchema),
|
|
261
265
|
}, { additionalProperties: false });
|
|
262
266
|
export const IntegrationReferenceAttachmentStageRequestSchema = Type.Object({
|
|
263
267
|
protocol_version: Type.Literal(1),
|
|
@@ -463,6 +467,7 @@ export const TrustedConversationSourceIngestionCommandSchema = Type.Object({
|
|
|
463
467
|
TrustedDevelopmentBotActorContextSchema,
|
|
464
468
|
]),
|
|
465
469
|
source: NormalizedConversationSourceSchema,
|
|
470
|
+
clarification_round_ref: Type.Optional(ClarificationRoundRefSchema),
|
|
466
471
|
}, { additionalProperties: false });
|
|
467
472
|
export const IntegrationReferenceAttachmentDeliveryRequestSchema = Type.Object({
|
|
468
473
|
protocol_version: Type.Literal(1),
|
|
@@ -512,6 +517,7 @@ export const IntegrationConversationSourceDeliveryResponseSchema = Type.Object({
|
|
|
512
517
|
const PlatformOutboundTextContentSchema = Type.Object({
|
|
513
518
|
kind: Type.Literal("text"),
|
|
514
519
|
text: Type.String({ minLength: 1, maxLength: 4_000 }),
|
|
520
|
+
clarification_round_ref: Type.Optional(ClarificationRoundRefSchema),
|
|
515
521
|
}, { additionalProperties: false });
|
|
516
522
|
export const PlatformApprovalCardRevisionSchema = Type.String({
|
|
517
523
|
minLength: 1,
|
|
@@ -546,6 +552,7 @@ export const PlatformOutboundApprovalRequestContentSchema = Type.Object({
|
|
|
546
552
|
export const PlatformOutboundContentSchema = Type.Union([
|
|
547
553
|
PlatformOutboundTextContentSchema,
|
|
548
554
|
PlatformOutboundApprovalRequestContentSchema,
|
|
555
|
+
PlatformClarificationContentSchema,
|
|
549
556
|
]);
|
|
550
557
|
export const PlatformOutboundEventSchema = Type.Object({
|
|
551
558
|
kind: Type.Union([
|
|
@@ -768,7 +775,12 @@ export function isIntegrationConversationSourceDeliveryRequest(value) {
|
|
|
768
775
|
const request = value;
|
|
769
776
|
const sourceInstallation = request.source.locator.conversation.installation;
|
|
770
777
|
const sourceSubject = request.source.author.external_subject;
|
|
771
|
-
return (request.
|
|
778
|
+
return ((request.clarification_round_ref === undefined
|
|
779
|
+
? request.protocol_version === 2
|
|
780
|
+
: request.protocol_version === 3 &&
|
|
781
|
+
(request.source.locator.conversation.parent_message_ref !== undefined ||
|
|
782
|
+
request.source.locator.conversation.root_message_ref !== undefined)) &&
|
|
783
|
+
request.receipt.event_kind === "conversation_source" &&
|
|
772
784
|
(sourceSubject.subject_kind === "human" || sourceSubject.subject_kind === "bot") &&
|
|
773
785
|
sameInstallation(request.receipt.installation, sourceInstallation) &&
|
|
774
786
|
sameInstallation(request.receipt.installation, sourceSubject.installation));
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { MessageProjection } from "../schemas/api/index.js";
|
|
2
|
+
/** Only explicit user input counts as an answer, never an ordinary system notice. */
|
|
3
|
+
export declare function clarificationAnswerRole(message: Pick<MessageProjection, "author" | "message_kind" | "refs">): "human" | "operator" | null;
|
|
4
|
+
//# sourceMappingURL=clarification-participants.d.ts.map
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
/** Only explicit user input counts as an answer, never an ordinary system notice. */
|
|
2
|
+
export function clarificationAnswerRole(message) {
|
|
3
|
+
if (message.message_kind !== "user_text")
|
|
4
|
+
return null;
|
|
5
|
+
if (message.author.kind === "human")
|
|
6
|
+
return "human";
|
|
7
|
+
return message.author.kind === "system" && message.refs?.development_operator === true
|
|
8
|
+
? "operator"
|
|
9
|
+
: null;
|
|
10
|
+
}
|
|
11
|
+
//# sourceMappingURL=clarification-participants.js.map
|
package/package.json
CHANGED
|
@@ -8,11 +8,11 @@ model_path: openai.sdk.structured_output
|
|
|
8
8
|
|
|
9
9
|
You run Tutti `follow_up_check`.
|
|
10
10
|
|
|
11
|
-
Decide whether submitted
|
|
11
|
+
Decide whether submitted participant answers to a task-bound clarification allow the same frozen task contract to continue.
|
|
12
12
|
|
|
13
13
|
# Inputs
|
|
14
14
|
|
|
15
|
-
`workflow_input_json` contains the task contract, the previous Run pause reason, the original clarification request, and submitted
|
|
15
|
+
`workflow_input_json` contains the task contract, the previous Run pause reason, the original clarification request, and submitted participant answers:
|
|
16
16
|
|
|
17
17
|
```json
|
|
18
18
|
{{workflow_input_json}}
|
|
@@ -28,12 +28,12 @@ Fields:
|
|
|
28
28
|
- `title`: short request title, when available.
|
|
29
29
|
- `summary`: why the Run needed human input.
|
|
30
30
|
- `request`: the concrete question that needed an answer.
|
|
31
|
-
- `answers`:
|
|
31
|
+
- `answers`: sealed answers for this clarification round, in message order. Each item has `role` (`human` or an authorized `operator`) and `text`. Preserve that provenance; an operator answer is not a claim that a human took the action.
|
|
32
32
|
|
|
33
33
|
# Decision Rules
|
|
34
34
|
|
|
35
35
|
- `workflow_input_json` is the complete context for this decision.
|
|
36
|
-
- Treat `goal` and `scope` as the frozen task contract, `previous_run.summary` and `previous_run.clarification_request_payload` as the identified
|
|
36
|
+
- Treat `goal` and `scope` as the frozen task contract, `previous_run.summary` and `previous_run.clarification_request_payload` as the identified decision, and `answers` as the submitted participant reply.
|
|
37
37
|
- Evaluate only whether the answers resolve that decision within the same frozen task contract.
|
|
38
38
|
- Return `resume` when the blocker is resolved without changing the contract.
|
|
39
39
|
- Return `needs_more_input` when the same human decision remains unresolved but can still be answered within the contract.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
import{C as e,S as t,_ as n,a as r,b as i,c as a,d as o,f as s,g as c,h as l,i as u,l as d,m as f,n as p,o as m,p as h,r as g,s as _,t as v,u as y,v as b,w as x,x as S,y as C}from"./index-B1oL1p9_.js";var w=e(`mouse-pointer-2`,[[`path`,{d:`M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z`,key:`edeuup`}]]),T=e(`send`,[[`path`,{d:`M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z`,key:`1ffxy3`}],[`path`,{d:`m21.854 2.147-10.94 10.939`,key:`12cjpa`}]]),E=x();function D(e){return{"--reveal":e}}function O(e,t,n){let r=(e,t)=>Number.parseInt(e.slice(t,t+2),16),i=i=>Math.round(r(e,i)+(r(t,i)-r(e,i))*n).toString(16).padStart(2,`0`);return`#${i(1)}${i(3)}${i(5)}`}function k(e){let t=r((e-p.runEnd)/(p.executionComplete-p.runEnd));return t+t*t-t*t*t}function A({progress:e,children:t,className:n=``}){return(0,E.jsx)(`div`,{className:`scene-reveal ${n}`,style:D(e),children:t})}function j({progress:e,author:t,avatar:n,tone:r,timestamp:i,online:a=!1,assets:o,children:s}){return(0,E.jsxs)(`article`,{className:`scene-message`,style:D(e),children:[(0,E.jsx)(`span`,{className:`scene-avatar is-${r} ${n===`tutti`?`is-tutti`:``} ${a?`is-online`:``}`,"aria-hidden":`true`,children:n===`tutti`?(0,E.jsx)(`img`,{className:`scene-avatar-image`,src:o.tuttiAvatarSrc,alt:``}):(0,E.jsx)(`img`,{className:`scene-avatar-image`,src:o.humanAvatars[n],alt:``})}),(0,E.jsxs)(`div`,{className:`scene-message-copy`,children:[(0,E.jsxs)(`header`,{children:[(0,E.jsx)(`strong`,{children:t}),(0,E.jsx)(`span`,{children:i})]}),(0,E.jsx)(`p`,{children:s})]})]})}function M({time:e,assets:r}){let i=e>=p.artifactLive,a=e>=p.artifactClick,o=e>=p.runEnd&&e<p.executionComplete,u=d(e,p.runEnd,19.2),f=d(e,p.artifactLive,30.92);return(0,E.jsxs)(`aside`,{className:`scene-sidebar`,children:[(0,E.jsx)(`button`,{className:`scene-brand`,type:`button`,"aria-label":`Tutti`,tabIndex:-1,children:(0,E.jsx)(`img`,{src:r.logoSrc,alt:``})}),(0,E.jsxs)(`div`,{className:`scene-nav-stack`,children:[(0,E.jsxs)(`nav`,{className:`scene-nav`,"aria-label":`Workspace pages`,children:[(0,E.jsx)(`button`,{className:a?``:`is-active`,type:`button`,"aria-label":`Chat`,tabIndex:-1,children:(0,E.jsx)(c,{"aria-hidden":`true`})}),(0,E.jsx)(`button`,{type:`button`,"aria-label":`Worklist`,tabIndex:-1,children:(0,E.jsx)(b,{"aria-hidden":`true`})}),(0,E.jsxs)(`button`,{className:a?`is-active`:``,type:`button`,"aria-label":`Artifacts`,tabIndex:-1,children:[(0,E.jsx)(l,{"aria-hidden":`true`}),i?(0,E.jsx)(`span`,{className:`scene-live-pill`,style:D(f),children:`Live`}):null]}),(0,E.jsx)(`button`,{type:`button`,"aria-label":`References`,tabIndex:-1,children:(0,E.jsx)(C,{"aria-hidden":`true`})}),(0,E.jsx)(`button`,{type:`button`,"aria-label":`Skills`,tabIndex:-1,children:(0,E.jsx)(s,{"aria-hidden":`true`})}),(0,E.jsx)(`button`,{type:`button`,"aria-label":`Timeline`,tabIndex:-1,children:(0,E.jsx)(t,{"aria-hidden":`true`})})]}),o?(0,E.jsx)(`button`,{className:`scene-status-entry is-running`,style:D(u),type:`button`,"aria-label":`Task running`,tabIndex:-1,children:(0,E.jsx)(n,{"aria-hidden":`true`})}):null]}),(0,E.jsx)(`button`,{className:`scene-settings`,type:`button`,"aria-label":`Settings`,tabIndex:-1,children:(0,E.jsx)(h,{"aria-hidden":`true`})})]})}function N({time:e,assets:t}){let n=d(e,30.35,30.92);return(0,E.jsxs)(`section`,{className:`scene-panel scene-chat-panel`,children:[(0,E.jsxs)(`header`,{className:`scene-panel-header`,children:[(0,E.jsx)(`span`,{className:`scene-icon-tile`,children:(0,E.jsx)(c,{"aria-hidden":`true`})}),(0,E.jsxs)(`div`,{children:[(0,E.jsx)(`h2`,{children:`Morrow Studio`}),(0,E.jsx)(`p`,{children:`Ceramics storefront`})]}),(0,E.jsxs)(`span`,{className:`scene-members`,"aria-hidden":`true`,children:[(0,E.jsx)(`i`,{className:`is-green`,children:(0,E.jsx)(`img`,{className:`scene-avatar-image`,src:t.humanAvatars.fey,alt:``})}),(0,E.jsx)(`i`,{className:`is-blue`,children:(0,E.jsx)(`img`,{className:`scene-avatar-image`,src:t.humanAvatars.avery,alt:``})}),(0,E.jsx)(`i`,{className:`is-yellow`,children:(0,E.jsx)(`img`,{className:`scene-avatar-image`,src:t.humanAvatars.jun,alt:``})})]})]}),(0,E.jsxs)(`div`,{className:`scene-chat-stream`,children:[(0,E.jsx)(j,{progress:d(e,1.35,2.05),author:`Fey`,avatar:`fey`,tone:`green`,timestamp:`10:12`,online:!0,assets:t,children:`🏺 Let's build an online shop for our ceramics studio.`}),(0,E.jsx)(j,{progress:d(e,2.65,3.35),author:`Avery`,avatar:`avery`,tone:`blue`,timestamp:`10:13`,online:!0,assets:t,children:`✨ Keep it warm, minimal, and editorial.`}),(0,E.jsx)(j,{progress:d(e,3.95,4.65),author:`Jun`,avatar:`jun`,tone:`yellow`,timestamp:`10:14`,online:!0,assets:t,children:`🎨 Let people preview every piece in different glazes.`}),(0,E.jsx)(j,{progress:d(e,5.25,5.95),author:`Tutti`,avatar:`tutti`,tone:`green`,timestamp:`10:15`,assets:t,children:`Got it — I'll put it together. ✨`}),(0,E.jsxs)(`article`,{className:`scene-task-result`,style:D(n),children:[(0,E.jsx)(`span`,{className:`scene-task-result-rail`,"aria-hidden":`true`}),(0,E.jsx)(`span`,{className:`scene-task-result-icon`,"aria-hidden":`true`,children:(0,E.jsx)(S,{})}),(0,E.jsxs)(`div`,{children:[(0,E.jsx)(`span`,{children:`Task completed`}),(0,E.jsx)(`strong`,{children:`Build ceramics storefront`}),(0,E.jsx)(`small`,{children:`Storefront`}),(0,E.jsx)(`p`,{children:`Warm editorial shopping and glaze previews are ready in Artifacts.`})]}),(0,E.jsx)(i,{className:`scene-task-result-chevron`,"aria-hidden":`true`})]})]}),(0,E.jsxs)(`div`,{className:`scene-composer`,"aria-hidden":`true`,children:[(0,E.jsx)(`span`,{children:`Write a message`}),(0,E.jsx)(T,{})]})]})}function P({progress:e,icon:t,children:n}){return(0,E.jsxs)(`div`,{className:`scene-scratchpad-row`,style:D(e),children:[(0,E.jsx)(`span`,{"aria-hidden":`true`,children:t}),(0,E.jsx)(`p`,{children:n})]})}function F({time:e}){return(0,E.jsxs)(`section`,{className:`scene-panel scene-scratchpad-panel`,style:{"--scratchpad-collapse":d(e,p.runEnd,19.18)},children:[(0,E.jsxs)(`header`,{className:`scene-panel-header`,children:[(0,E.jsx)(`span`,{className:`scene-icon-tile`,children:(0,E.jsx)(v,{"aria-hidden":`true`})}),(0,E.jsx)(`h2`,{children:`Scratchpad`})]}),(0,E.jsxs)(`div`,{className:`scene-scratchpad-body`,children:[(0,E.jsxs)(A,{progress:d(e,8.95,10),className:`scene-scratchpad-intro`,children:[(0,E.jsx)(`h3`,{children:`Ceramics storefront`}),(0,E.jsx)(`p`,{children:`A warm, editorial storefront for a small-batch studio, centered on tactile product discovery.`})]}),(0,E.jsx)(A,{progress:d(e,9.85,10.65),className:`scene-scratchpad-label`,children:`Confirmed`}),(0,E.jsx)(P,{progress:d(e,10.4,11.25),icon:(0,E.jsx)(S,{}),children:`Product-first editorial layout with generous space`}),(0,E.jsx)(P,{progress:d(e,11.2,12.05),icon:(0,E.jsx)(S,{}),children:`Warm neutrals with quiet serif headlines`}),(0,E.jsx)(P,{progress:d(e,12,12.85),icon:(0,E.jsx)(S,{}),children:`Keep the collection small, curated, and story-led`}),(0,E.jsx)(A,{progress:d(e,12.75,13.55),className:`scene-scratchpad-label`,children:`Requested feature`}),(0,E.jsx)(P,{progress:d(e,13.3,14.2),icon:(0,E.jsx)(o,{}),children:`Preview every piece in clay, sage, and ink glazes`})]}),(0,E.jsxs)(`footer`,{className:`scene-scratchpad-footer`,style:D(d(e,15.7,16.8)),children:[(0,E.jsxs)(`span`,{className:`scene-writing-mark`,children:[(0,E.jsx)(`strong`,{children:`Updated`}),(0,E.jsx)(`span`,{children:`just now`})]}),(0,E.jsxs)(`button`,{className:`scene-run-button`,type:`button`,tabIndex:-1,children:[(0,E.jsx)(f,{"aria-hidden":`true`}),(0,E.jsx)(`span`,{children:`Run`})]})]})]})}function I(e,t){let n=Math.max(0,Math.floor((e-t)*50/5)*5);return`${Math.floor(n/60)}m${(n%60).toString().padStart(2,`0`)}s`}function L({time:e,scoreSrc:t}){let r=d(e,18.92,19.2),i=_(e),a=i.id===`complete`,o={prepare:p.runEnd,implement:p.executionPrepareEnd,validate:p.executionImplementEnd,update:p.executionValidateEnd,complete:p.executionComplete}[i.id],s=d(e,o,o+.32),c=k(e);return(0,E.jsx)(`div`,{className:`scene-execution`,style:{"--reveal":r,"--stage-reveal":s},children:(0,E.jsxs)(`article`,{className:`homepage-motion-panel homepage-motion-execution-panel homepage-motion-execution-card is-score-${a?`complete`:`running`}`,children:[(0,E.jsx)(`header`,{className:`homepage-motion-panel-header`,children:(0,E.jsxs)(`div`,{className:`homepage-motion-panel-title`,children:[(0,E.jsx)(`span`,{className:`scene-icon-tile`,"aria-hidden":`true`,children:(0,E.jsx)(y,{})}),(0,E.jsx)(`h3`,{children:`Tutti is working on`})]})}),(0,E.jsxs)(`div`,{className:`homepage-motion-execution-body`,children:[(0,E.jsxs)(`div`,{className:`homepage-motion-execution-step homepage-motion-execution-stage is-${a?`complete`:`running`} has-marker`,children:[(0,E.jsx)(`span`,{className:`homepage-motion-execution-marker ${a?`is-done`:`is-running`}`,"aria-hidden":`true`,children:a?(0,E.jsx)(S,{}):(0,E.jsx)(n,{})}),(0,E.jsx)(`span`,{className:`homepage-motion-execution-step-content homepage-motion-execution-stage-copy`,children:(0,E.jsxs)(`span`,{className:`homepage-motion-execution-step-title`,children:[(0,E.jsx)(`span`,{className:`homepage-motion-execution-step-label`,children:i.label}),a?null:(0,E.jsx)(`span`,{className:`homepage-motion-execution-step-elapsed`,children:` (${I(e,o)})`})]})},i.id)]}),(0,E.jsx)(`div`,{className:`homepage-motion-running-score ${a?`is-complete`:``}`,role:`img`,"aria-label":`Ode to Joy score phrase`,children:(0,E.jsx)(`div`,{className:`homepage-motion-score-passage`,style:{"--score-translate-x":`${-395.3*c}px`},"aria-hidden":`true`,children:(0,E.jsx)(`img`,{src:t,alt:``,draggable:!1})})})]})]})})}function R({color:e,variant:t=`vase`,className:n=``}){let r={"--ceramic-color":e};return t===`cup`?(0,E.jsxs)(`svg`,{className:`ceramic-object is-cup ${n}`,viewBox:`0 0 260 260`,style:r,"aria-hidden":`true`,children:[(0,E.jsx)(`path`,{className:`ceramic-main`,d:`M54 64h132l-9 126c-2 26-20 42-46 42h-22c-26 0-44-16-46-42Z`}),(0,E.jsx)(`path`,{className:`ceramic-outline`,d:`M186 92h18c34 0 34 72 1 76h-27`}),(0,E.jsx)(`ellipse`,{className:`ceramic-rim`,cx:`120`,cy:`64`,rx:`66`,ry:`13`}),(0,E.jsx)(`path`,{className:`ceramic-highlight`,d:`M78 90c5 62 4 91 20 114`})]}):t===`bowl`?(0,E.jsxs)(`svg`,{className:`ceramic-object is-bowl ${n}`,viewBox:`0 0 300 220`,style:r,"aria-hidden":`true`,children:[(0,E.jsx)(`ellipse`,{className:`ceramic-rim`,cx:`150`,cy:`55`,rx:`116`,ry:`24`}),(0,E.jsx)(`path`,{className:`ceramic-main`,d:`M34 55c8 82 45 132 116 132S258 137 266 55c-42 25-190 25-232 0Z`}),(0,E.jsx)(`path`,{className:`ceramic-highlight`,d:`M72 82c18 45 40 70 70 82`}),(0,E.jsx)(`path`,{className:`ceramic-base`,d:`M112 185h76`})]}):(0,E.jsxs)(`svg`,{className:`ceramic-object is-vase ${n}`,viewBox:`0 0 320 420`,style:r,"aria-hidden":`true`,children:[(0,E.jsx)(`path`,{className:`ceramic-main`,d:`M116 56c7 38-17 61-36 96-31 56-28 157 5 199 33 42 117 42 150 0 33-42 36-143 5-199-19-35-43-58-36-96Z`}),(0,E.jsx)(`ellipse`,{className:`ceramic-rim`,cx:`160`,cy:`56`,rx:`44`,ry:`12`}),(0,E.jsx)(`ellipse`,{className:`ceramic-base`,cx:`160`,cy:`365`,rx:`66`,ry:`13`}),(0,E.jsx)(`path`,{className:`ceramic-highlight`,d:`M108 153c-25 64-23 145 1 185`})]})}function z({time:e}){let t=d(e,p.artifactClick,33.25),n=d(e,34.25,34.52),r=d(e,34.88,35.15),i=d(e,35.55,35.82),a=g(e),o=O(`#d9cbb4`,`#c56f4f`,n);e>=34.88&&(o=O(`#c56f4f`,`#6f9275`,r)),e>=35.55&&(o=O(`#6f9275`,`#243a46`,i));let s=e>=35.55?`ink`:e>=34.88?`sage`:e>=34.25?`clay`:null,c={"--artifact-scroll":a};return(0,E.jsxs)(`section`,{className:`scene-panel scene-artifact-panel`,style:D(t),children:[(0,E.jsxs)(`header`,{className:`scene-panel-header`,children:[(0,E.jsx)(`span`,{className:`scene-icon-tile`,children:(0,E.jsx)(l,{"aria-hidden":`true`})}),(0,E.jsx)(`h2`,{children:`Artifacts`}),(0,E.jsx)(`span`,{className:`scene-ready-tag`,children:`Ready`})]}),(0,E.jsx)(`div`,{className:`scene-artifact-canvas`,children:(0,E.jsxs)(`div`,{className:`artifact-page-frame`,style:c,children:[(0,E.jsxs)(`div`,{className:`artifact-page-nav`,children:[(0,E.jsx)(`strong`,{children:`Morrow`}),(0,E.jsx)(`span`,{children:`Objects · Journal · Studio`})]}),(0,E.jsxs)(`section`,{className:`artifact-hero`,children:[(0,E.jsxs)(`div`,{className:`artifact-hero-copy`,children:[(0,E.jsx)(`span`,{className:`artifact-eyebrow`,children:`Hand-finished in small batches`}),(0,E.jsx)(`h3`,{children:`Objects for slower days.`}),(0,E.jsx)(`p`,{children:`Quiet forms, warm glazes, and useful pieces made to live with.`}),(0,E.jsx)(`button`,{type:`button`,tabIndex:-1,children:`Explore the collection`})]}),(0,E.jsxs)(`div`,{className:`artifact-hero-object`,children:[(0,E.jsx)(R,{color:o}),(0,E.jsxs)(`div`,{className:`artifact-glaze-picker`,"aria-label":`Glaze preview`,children:[(0,E.jsx)(`span`,{children:`Glaze`}),(0,E.jsx)(`i`,{className:s===`clay`?`is-active is-clay`:`is-clay`}),(0,E.jsx)(`i`,{className:s===`sage`?`is-active is-sage`:`is-sage`}),(0,E.jsx)(`i`,{className:s===`ink`?`is-active is-ink`:`is-ink`})]})]})]}),(0,E.jsxs)(`section`,{className:`artifact-collection`,children:[(0,E.jsxs)(`header`,{children:[(0,E.jsx)(`span`,{children:`Selected pieces`}),(0,E.jsx)(`p`,{children:`Everyday forms shaped for the rituals around them.`})]}),(0,E.jsxs)(`div`,{className:`artifact-product-grid`,children:[(0,E.jsxs)(`article`,{children:[(0,E.jsx)(R,{color:`#b9785f`,variant:`cup`}),(0,E.jsxs)(`div`,{children:[(0,E.jsx)(`strong`,{children:`Low cup`}),(0,E.jsx)(`span`,{children:`Rust glaze`})]})]}),(0,E.jsxs)(`article`,{children:[(0,E.jsx)(R,{color:`#819283`,variant:`vase`}),(0,E.jsxs)(`div`,{children:[(0,E.jsx)(`strong`,{children:`Field vase`}),(0,E.jsx)(`span`,{children:`Sage glaze`})]})]}),(0,E.jsxs)(`article`,{children:[(0,E.jsx)(R,{color:`#d5c7af`,variant:`bowl`}),(0,E.jsxs)(`div`,{children:[(0,E.jsx)(`strong`,{children:`Gather bowl`}),(0,E.jsx)(`span`,{children:`Flax glaze`})]})]})]})]}),(0,E.jsxs)(`section`,{className:`artifact-studio`,children:[(0,E.jsx)(`span`,{children:`Made by hand · Meant for every day`}),(0,E.jsx)(`h3`,{children:`Useful things can still feel special.`}),(0,E.jsx)(`p`,{children:`We make a small number of considered objects, slowly and close to home.`}),(0,E.jsx)(`button`,{type:`button`,tabIndex:-1,children:`Visit the studio`})]}),(0,E.jsxs)(`footer`,{className:`artifact-page-footer`,children:[(0,E.jsx)(`strong`,{children:`Morrow Ceramics`}),(0,E.jsx)(`span`,{className:`artifact-built-with`,children:`Built with Tutti.`}),(0,E.jsx)(`span`,{children:`Small batch · Est. 2026`})]})]})})]})}function B(e,t,n){return e+(t-e)*n}function V(e,t,n,r,i){let a=d(e,t,n,m);return{x:B(r.x,i.x,a),y:B(r.y,i.y,a)}}function H(e,t,n){return e<t||e>n?0:Math.sin(Math.PI*((e-t)/(n-t)))}function U(e){if(e>=p.runCursorStart&&e<18.92){let t=V(e,p.runCursorStart,p.runCursorArrive,{x:86,y:76},{x:94.25,y:94.2});return{visible:!0,x:t.x,y:t.y,clickPulse:H(e,p.runClickStart,p.runEnd)}}if(e>=31&&e<33.45){let t=V(e,31,32.22,{x:50,y:58},{x:4,y:22.85});return{visible:!0,x:t.x,y:t.y,clickPulse:H(e,32.28,32.6)}}return{visible:!1,x:50,y:50,clickPulse:0}}function W({time:e,assets:t}){let n=u(e),r=U(e),i=a(e),o=d(e,.08,1.05,m);return(0,E.jsx)(`div`,{className:`motion-scene`,role:`img`,"aria-label":`Tutti workflow animation from team discussion to a generated ceramics storefront`,style:{opacity:i,visibility:i<=.001?`hidden`:`visible`},children:(0,E.jsxs)(`div`,{className:`motion-stage`,style:{opacity:o,transform:`translate(50%, 50%) scale(${n.scale}) translate(${-n.centerX*100}%, ${-n.centerY*100}%)`},children:[(0,E.jsx)(M,{time:e,assets:t}),(0,E.jsxs)(`div`,{className:`scene-workspace-layer`,children:[(0,E.jsx)(N,{time:e,assets:t}),(0,E.jsx)(F,{time:e}),(0,E.jsx)(L,{time:e,scoreSrc:t.scoreSrc})]}),(0,E.jsx)(z,{time:e}),(0,E.jsxs)(`span`,{className:`scene-cursor ${r.visible?`is-visible`:``}`,style:{left:`${r.x}%`,top:`${r.y}%`,"--click-pulse":r.clickPulse},"aria-hidden":`true`,children:[(0,E.jsx)(w,{}),(0,E.jsx)(`i`,{})]})]})})}export{W as HomepageMotionScene};
|
|
1
|
+
import{C as e,S as t,_ as n,a as r,b as i,c as a,d as o,f as s,g as c,h as l,i as u,l as d,m as f,n as p,o as m,p as h,r as g,s as _,t as v,u as y,v as b,w as x,x as S,y as C}from"./index-B29RuNsd.js";var w=e(`mouse-pointer-2`,[[`path`,{d:`M4.037 4.688a.495.495 0 0 1 .651-.651l16 6.5a.5.5 0 0 1-.063.947l-6.124 1.58a2 2 0 0 0-1.438 1.435l-1.579 6.126a.5.5 0 0 1-.947.063z`,key:`edeuup`}]]),T=e(`send`,[[`path`,{d:`M14.536 21.686a.5.5 0 0 0 .937-.024l6.5-19a.496.496 0 0 0-.635-.635l-19 6.5a.5.5 0 0 0-.024.937l7.93 3.18a2 2 0 0 1 1.112 1.11z`,key:`1ffxy3`}],[`path`,{d:`m21.854 2.147-10.94 10.939`,key:`12cjpa`}]]),E=x();function D(e){return{"--reveal":e}}function O(e,t,n){let r=(e,t)=>Number.parseInt(e.slice(t,t+2),16),i=i=>Math.round(r(e,i)+(r(t,i)-r(e,i))*n).toString(16).padStart(2,`0`);return`#${i(1)}${i(3)}${i(5)}`}function k(e){let t=r((e-p.runEnd)/(p.executionComplete-p.runEnd));return t+t*t-t*t*t}function A({progress:e,children:t,className:n=``}){return(0,E.jsx)(`div`,{className:`scene-reveal ${n}`,style:D(e),children:t})}function j({progress:e,author:t,avatar:n,tone:r,timestamp:i,online:a=!1,assets:o,children:s}){return(0,E.jsxs)(`article`,{className:`scene-message`,style:D(e),children:[(0,E.jsx)(`span`,{className:`scene-avatar is-${r} ${n===`tutti`?`is-tutti`:``} ${a?`is-online`:``}`,"aria-hidden":`true`,children:n===`tutti`?(0,E.jsx)(`img`,{className:`scene-avatar-image`,src:o.tuttiAvatarSrc,alt:``}):(0,E.jsx)(`img`,{className:`scene-avatar-image`,src:o.humanAvatars[n],alt:``})}),(0,E.jsxs)(`div`,{className:`scene-message-copy`,children:[(0,E.jsxs)(`header`,{children:[(0,E.jsx)(`strong`,{children:t}),(0,E.jsx)(`span`,{children:i})]}),(0,E.jsx)(`p`,{children:s})]})]})}function M({time:e,assets:r}){let i=e>=p.artifactLive,a=e>=p.artifactClick,o=e>=p.runEnd&&e<p.executionComplete,u=d(e,p.runEnd,19.2),f=d(e,p.artifactLive,30.92);return(0,E.jsxs)(`aside`,{className:`scene-sidebar`,children:[(0,E.jsx)(`button`,{className:`scene-brand`,type:`button`,"aria-label":`Tutti`,tabIndex:-1,children:(0,E.jsx)(`img`,{src:r.logoSrc,alt:``})}),(0,E.jsxs)(`div`,{className:`scene-nav-stack`,children:[(0,E.jsxs)(`nav`,{className:`scene-nav`,"aria-label":`Workspace pages`,children:[(0,E.jsx)(`button`,{className:a?``:`is-active`,type:`button`,"aria-label":`Chat`,tabIndex:-1,children:(0,E.jsx)(c,{"aria-hidden":`true`})}),(0,E.jsx)(`button`,{type:`button`,"aria-label":`Worklist`,tabIndex:-1,children:(0,E.jsx)(b,{"aria-hidden":`true`})}),(0,E.jsxs)(`button`,{className:a?`is-active`:``,type:`button`,"aria-label":`Artifacts`,tabIndex:-1,children:[(0,E.jsx)(l,{"aria-hidden":`true`}),i?(0,E.jsx)(`span`,{className:`scene-live-pill`,style:D(f),children:`Live`}):null]}),(0,E.jsx)(`button`,{type:`button`,"aria-label":`References`,tabIndex:-1,children:(0,E.jsx)(C,{"aria-hidden":`true`})}),(0,E.jsx)(`button`,{type:`button`,"aria-label":`Skills`,tabIndex:-1,children:(0,E.jsx)(s,{"aria-hidden":`true`})}),(0,E.jsx)(`button`,{type:`button`,"aria-label":`Timeline`,tabIndex:-1,children:(0,E.jsx)(t,{"aria-hidden":`true`})})]}),o?(0,E.jsx)(`button`,{className:`scene-status-entry is-running`,style:D(u),type:`button`,"aria-label":`Task running`,tabIndex:-1,children:(0,E.jsx)(n,{"aria-hidden":`true`})}):null]}),(0,E.jsx)(`button`,{className:`scene-settings`,type:`button`,"aria-label":`Settings`,tabIndex:-1,children:(0,E.jsx)(h,{"aria-hidden":`true`})})]})}function N({time:e,assets:t}){let n=d(e,30.35,30.92);return(0,E.jsxs)(`section`,{className:`scene-panel scene-chat-panel`,children:[(0,E.jsxs)(`header`,{className:`scene-panel-header`,children:[(0,E.jsx)(`span`,{className:`scene-icon-tile`,children:(0,E.jsx)(c,{"aria-hidden":`true`})}),(0,E.jsxs)(`div`,{children:[(0,E.jsx)(`h2`,{children:`Morrow Studio`}),(0,E.jsx)(`p`,{children:`Ceramics storefront`})]}),(0,E.jsxs)(`span`,{className:`scene-members`,"aria-hidden":`true`,children:[(0,E.jsx)(`i`,{className:`is-green`,children:(0,E.jsx)(`img`,{className:`scene-avatar-image`,src:t.humanAvatars.fey,alt:``})}),(0,E.jsx)(`i`,{className:`is-blue`,children:(0,E.jsx)(`img`,{className:`scene-avatar-image`,src:t.humanAvatars.avery,alt:``})}),(0,E.jsx)(`i`,{className:`is-yellow`,children:(0,E.jsx)(`img`,{className:`scene-avatar-image`,src:t.humanAvatars.jun,alt:``})})]})]}),(0,E.jsxs)(`div`,{className:`scene-chat-stream`,children:[(0,E.jsx)(j,{progress:d(e,1.35,2.05),author:`Fey`,avatar:`fey`,tone:`green`,timestamp:`10:12`,online:!0,assets:t,children:`🏺 Let's build an online shop for our ceramics studio.`}),(0,E.jsx)(j,{progress:d(e,2.65,3.35),author:`Avery`,avatar:`avery`,tone:`blue`,timestamp:`10:13`,online:!0,assets:t,children:`✨ Keep it warm, minimal, and editorial.`}),(0,E.jsx)(j,{progress:d(e,3.95,4.65),author:`Jun`,avatar:`jun`,tone:`yellow`,timestamp:`10:14`,online:!0,assets:t,children:`🎨 Let people preview every piece in different glazes.`}),(0,E.jsx)(j,{progress:d(e,5.25,5.95),author:`Tutti`,avatar:`tutti`,tone:`green`,timestamp:`10:15`,assets:t,children:`Got it — I'll put it together. ✨`}),(0,E.jsxs)(`article`,{className:`scene-task-result`,style:D(n),children:[(0,E.jsx)(`span`,{className:`scene-task-result-rail`,"aria-hidden":`true`}),(0,E.jsx)(`span`,{className:`scene-task-result-icon`,"aria-hidden":`true`,children:(0,E.jsx)(S,{})}),(0,E.jsxs)(`div`,{children:[(0,E.jsx)(`span`,{children:`Task completed`}),(0,E.jsx)(`strong`,{children:`Build ceramics storefront`}),(0,E.jsx)(`small`,{children:`Storefront`}),(0,E.jsx)(`p`,{children:`Warm editorial shopping and glaze previews are ready in Artifacts.`})]}),(0,E.jsx)(i,{className:`scene-task-result-chevron`,"aria-hidden":`true`})]})]}),(0,E.jsxs)(`div`,{className:`scene-composer`,"aria-hidden":`true`,children:[(0,E.jsx)(`span`,{children:`Write a message`}),(0,E.jsx)(T,{})]})]})}function P({progress:e,icon:t,children:n}){return(0,E.jsxs)(`div`,{className:`scene-scratchpad-row`,style:D(e),children:[(0,E.jsx)(`span`,{"aria-hidden":`true`,children:t}),(0,E.jsx)(`p`,{children:n})]})}function F({time:e}){return(0,E.jsxs)(`section`,{className:`scene-panel scene-scratchpad-panel`,style:{"--scratchpad-collapse":d(e,p.runEnd,19.18)},children:[(0,E.jsxs)(`header`,{className:`scene-panel-header`,children:[(0,E.jsx)(`span`,{className:`scene-icon-tile`,children:(0,E.jsx)(v,{"aria-hidden":`true`})}),(0,E.jsx)(`h2`,{children:`Scratchpad`})]}),(0,E.jsxs)(`div`,{className:`scene-scratchpad-body`,children:[(0,E.jsxs)(A,{progress:d(e,8.95,10),className:`scene-scratchpad-intro`,children:[(0,E.jsx)(`h3`,{children:`Ceramics storefront`}),(0,E.jsx)(`p`,{children:`A warm, editorial storefront for a small-batch studio, centered on tactile product discovery.`})]}),(0,E.jsx)(A,{progress:d(e,9.85,10.65),className:`scene-scratchpad-label`,children:`Confirmed`}),(0,E.jsx)(P,{progress:d(e,10.4,11.25),icon:(0,E.jsx)(S,{}),children:`Product-first editorial layout with generous space`}),(0,E.jsx)(P,{progress:d(e,11.2,12.05),icon:(0,E.jsx)(S,{}),children:`Warm neutrals with quiet serif headlines`}),(0,E.jsx)(P,{progress:d(e,12,12.85),icon:(0,E.jsx)(S,{}),children:`Keep the collection small, curated, and story-led`}),(0,E.jsx)(A,{progress:d(e,12.75,13.55),className:`scene-scratchpad-label`,children:`Requested feature`}),(0,E.jsx)(P,{progress:d(e,13.3,14.2),icon:(0,E.jsx)(o,{}),children:`Preview every piece in clay, sage, and ink glazes`})]}),(0,E.jsxs)(`footer`,{className:`scene-scratchpad-footer`,style:D(d(e,15.7,16.8)),children:[(0,E.jsxs)(`span`,{className:`scene-writing-mark`,children:[(0,E.jsx)(`strong`,{children:`Updated`}),(0,E.jsx)(`span`,{children:`just now`})]}),(0,E.jsxs)(`button`,{className:`scene-run-button`,type:`button`,tabIndex:-1,children:[(0,E.jsx)(f,{"aria-hidden":`true`}),(0,E.jsx)(`span`,{children:`Run`})]})]})]})}function I(e,t){let n=Math.max(0,Math.floor((e-t)*50/5)*5);return`${Math.floor(n/60)}m${(n%60).toString().padStart(2,`0`)}s`}function L({time:e,scoreSrc:t}){let r=d(e,18.92,19.2),i=_(e),a=i.id===`complete`,o={prepare:p.runEnd,implement:p.executionPrepareEnd,validate:p.executionImplementEnd,update:p.executionValidateEnd,complete:p.executionComplete}[i.id],s=d(e,o,o+.32),c=k(e);return(0,E.jsx)(`div`,{className:`scene-execution`,style:{"--reveal":r,"--stage-reveal":s},children:(0,E.jsxs)(`article`,{className:`homepage-motion-panel homepage-motion-execution-panel homepage-motion-execution-card is-score-${a?`complete`:`running`}`,children:[(0,E.jsx)(`header`,{className:`homepage-motion-panel-header`,children:(0,E.jsxs)(`div`,{className:`homepage-motion-panel-title`,children:[(0,E.jsx)(`span`,{className:`scene-icon-tile`,"aria-hidden":`true`,children:(0,E.jsx)(y,{})}),(0,E.jsx)(`h3`,{children:`Tutti is working on`})]})}),(0,E.jsxs)(`div`,{className:`homepage-motion-execution-body`,children:[(0,E.jsxs)(`div`,{className:`homepage-motion-execution-step homepage-motion-execution-stage is-${a?`complete`:`running`} has-marker`,children:[(0,E.jsx)(`span`,{className:`homepage-motion-execution-marker ${a?`is-done`:`is-running`}`,"aria-hidden":`true`,children:a?(0,E.jsx)(S,{}):(0,E.jsx)(n,{})}),(0,E.jsx)(`span`,{className:`homepage-motion-execution-step-content homepage-motion-execution-stage-copy`,children:(0,E.jsxs)(`span`,{className:`homepage-motion-execution-step-title`,children:[(0,E.jsx)(`span`,{className:`homepage-motion-execution-step-label`,children:i.label}),a?null:(0,E.jsx)(`span`,{className:`homepage-motion-execution-step-elapsed`,children:` (${I(e,o)})`})]})},i.id)]}),(0,E.jsx)(`div`,{className:`homepage-motion-running-score ${a?`is-complete`:``}`,role:`img`,"aria-label":`Ode to Joy score phrase`,children:(0,E.jsx)(`div`,{className:`homepage-motion-score-passage`,style:{"--score-translate-x":`${-395.3*c}px`},"aria-hidden":`true`,children:(0,E.jsx)(`img`,{src:t,alt:``,draggable:!1})})})]})]})})}function R({color:e,variant:t=`vase`,className:n=``}){let r={"--ceramic-color":e};return t===`cup`?(0,E.jsxs)(`svg`,{className:`ceramic-object is-cup ${n}`,viewBox:`0 0 260 260`,style:r,"aria-hidden":`true`,children:[(0,E.jsx)(`path`,{className:`ceramic-main`,d:`M54 64h132l-9 126c-2 26-20 42-46 42h-22c-26 0-44-16-46-42Z`}),(0,E.jsx)(`path`,{className:`ceramic-outline`,d:`M186 92h18c34 0 34 72 1 76h-27`}),(0,E.jsx)(`ellipse`,{className:`ceramic-rim`,cx:`120`,cy:`64`,rx:`66`,ry:`13`}),(0,E.jsx)(`path`,{className:`ceramic-highlight`,d:`M78 90c5 62 4 91 20 114`})]}):t===`bowl`?(0,E.jsxs)(`svg`,{className:`ceramic-object is-bowl ${n}`,viewBox:`0 0 300 220`,style:r,"aria-hidden":`true`,children:[(0,E.jsx)(`ellipse`,{className:`ceramic-rim`,cx:`150`,cy:`55`,rx:`116`,ry:`24`}),(0,E.jsx)(`path`,{className:`ceramic-main`,d:`M34 55c8 82 45 132 116 132S258 137 266 55c-42 25-190 25-232 0Z`}),(0,E.jsx)(`path`,{className:`ceramic-highlight`,d:`M72 82c18 45 40 70 70 82`}),(0,E.jsx)(`path`,{className:`ceramic-base`,d:`M112 185h76`})]}):(0,E.jsxs)(`svg`,{className:`ceramic-object is-vase ${n}`,viewBox:`0 0 320 420`,style:r,"aria-hidden":`true`,children:[(0,E.jsx)(`path`,{className:`ceramic-main`,d:`M116 56c7 38-17 61-36 96-31 56-28 157 5 199 33 42 117 42 150 0 33-42 36-143 5-199-19-35-43-58-36-96Z`}),(0,E.jsx)(`ellipse`,{className:`ceramic-rim`,cx:`160`,cy:`56`,rx:`44`,ry:`12`}),(0,E.jsx)(`ellipse`,{className:`ceramic-base`,cx:`160`,cy:`365`,rx:`66`,ry:`13`}),(0,E.jsx)(`path`,{className:`ceramic-highlight`,d:`M108 153c-25 64-23 145 1 185`})]})}function z({time:e}){let t=d(e,p.artifactClick,33.25),n=d(e,34.25,34.52),r=d(e,34.88,35.15),i=d(e,35.55,35.82),a=g(e),o=O(`#d9cbb4`,`#c56f4f`,n);e>=34.88&&(o=O(`#c56f4f`,`#6f9275`,r)),e>=35.55&&(o=O(`#6f9275`,`#243a46`,i));let s=e>=35.55?`ink`:e>=34.88?`sage`:e>=34.25?`clay`:null,c={"--artifact-scroll":a};return(0,E.jsxs)(`section`,{className:`scene-panel scene-artifact-panel`,style:D(t),children:[(0,E.jsxs)(`header`,{className:`scene-panel-header`,children:[(0,E.jsx)(`span`,{className:`scene-icon-tile`,children:(0,E.jsx)(l,{"aria-hidden":`true`})}),(0,E.jsx)(`h2`,{children:`Artifacts`}),(0,E.jsx)(`span`,{className:`scene-ready-tag`,children:`Ready`})]}),(0,E.jsx)(`div`,{className:`scene-artifact-canvas`,children:(0,E.jsxs)(`div`,{className:`artifact-page-frame`,style:c,children:[(0,E.jsxs)(`div`,{className:`artifact-page-nav`,children:[(0,E.jsx)(`strong`,{children:`Morrow`}),(0,E.jsx)(`span`,{children:`Objects · Journal · Studio`})]}),(0,E.jsxs)(`section`,{className:`artifact-hero`,children:[(0,E.jsxs)(`div`,{className:`artifact-hero-copy`,children:[(0,E.jsx)(`span`,{className:`artifact-eyebrow`,children:`Hand-finished in small batches`}),(0,E.jsx)(`h3`,{children:`Objects for slower days.`}),(0,E.jsx)(`p`,{children:`Quiet forms, warm glazes, and useful pieces made to live with.`}),(0,E.jsx)(`button`,{type:`button`,tabIndex:-1,children:`Explore the collection`})]}),(0,E.jsxs)(`div`,{className:`artifact-hero-object`,children:[(0,E.jsx)(R,{color:o}),(0,E.jsxs)(`div`,{className:`artifact-glaze-picker`,"aria-label":`Glaze preview`,children:[(0,E.jsx)(`span`,{children:`Glaze`}),(0,E.jsx)(`i`,{className:s===`clay`?`is-active is-clay`:`is-clay`}),(0,E.jsx)(`i`,{className:s===`sage`?`is-active is-sage`:`is-sage`}),(0,E.jsx)(`i`,{className:s===`ink`?`is-active is-ink`:`is-ink`})]})]})]}),(0,E.jsxs)(`section`,{className:`artifact-collection`,children:[(0,E.jsxs)(`header`,{children:[(0,E.jsx)(`span`,{children:`Selected pieces`}),(0,E.jsx)(`p`,{children:`Everyday forms shaped for the rituals around them.`})]}),(0,E.jsxs)(`div`,{className:`artifact-product-grid`,children:[(0,E.jsxs)(`article`,{children:[(0,E.jsx)(R,{color:`#b9785f`,variant:`cup`}),(0,E.jsxs)(`div`,{children:[(0,E.jsx)(`strong`,{children:`Low cup`}),(0,E.jsx)(`span`,{children:`Rust glaze`})]})]}),(0,E.jsxs)(`article`,{children:[(0,E.jsx)(R,{color:`#819283`,variant:`vase`}),(0,E.jsxs)(`div`,{children:[(0,E.jsx)(`strong`,{children:`Field vase`}),(0,E.jsx)(`span`,{children:`Sage glaze`})]})]}),(0,E.jsxs)(`article`,{children:[(0,E.jsx)(R,{color:`#d5c7af`,variant:`bowl`}),(0,E.jsxs)(`div`,{children:[(0,E.jsx)(`strong`,{children:`Gather bowl`}),(0,E.jsx)(`span`,{children:`Flax glaze`})]})]})]})]}),(0,E.jsxs)(`section`,{className:`artifact-studio`,children:[(0,E.jsx)(`span`,{children:`Made by hand · Meant for every day`}),(0,E.jsx)(`h3`,{children:`Useful things can still feel special.`}),(0,E.jsx)(`p`,{children:`We make a small number of considered objects, slowly and close to home.`}),(0,E.jsx)(`button`,{type:`button`,tabIndex:-1,children:`Visit the studio`})]}),(0,E.jsxs)(`footer`,{className:`artifact-page-footer`,children:[(0,E.jsx)(`strong`,{children:`Morrow Ceramics`}),(0,E.jsx)(`span`,{className:`artifact-built-with`,children:`Built with Tutti.`}),(0,E.jsx)(`span`,{children:`Small batch · Est. 2026`})]})]})})]})}function B(e,t,n){return e+(t-e)*n}function V(e,t,n,r,i){let a=d(e,t,n,m);return{x:B(r.x,i.x,a),y:B(r.y,i.y,a)}}function H(e,t,n){return e<t||e>n?0:Math.sin(Math.PI*((e-t)/(n-t)))}function U(e){if(e>=p.runCursorStart&&e<18.92){let t=V(e,p.runCursorStart,p.runCursorArrive,{x:86,y:76},{x:94.25,y:94.2});return{visible:!0,x:t.x,y:t.y,clickPulse:H(e,p.runClickStart,p.runEnd)}}if(e>=31&&e<33.45){let t=V(e,31,32.22,{x:50,y:58},{x:4,y:22.85});return{visible:!0,x:t.x,y:t.y,clickPulse:H(e,32.28,32.6)}}return{visible:!1,x:50,y:50,clickPulse:0}}function W({time:e,assets:t}){let n=u(e),r=U(e),i=a(e),o=d(e,.08,1.05,m);return(0,E.jsx)(`div`,{className:`motion-scene`,role:`img`,"aria-label":`Tutti workflow animation from team discussion to a generated ceramics storefront`,style:{opacity:i,visibility:i<=.001?`hidden`:`visible`},children:(0,E.jsxs)(`div`,{className:`motion-stage`,style:{opacity:o,transform:`translate(50%, 50%) scale(${n.scale}) translate(${-n.centerX*100}%, ${-n.centerY*100}%)`},children:[(0,E.jsx)(M,{time:e,assets:t}),(0,E.jsxs)(`div`,{className:`scene-workspace-layer`,children:[(0,E.jsx)(N,{time:e,assets:t}),(0,E.jsx)(F,{time:e}),(0,E.jsx)(L,{time:e,scoreSrc:t.scoreSrc})]}),(0,E.jsx)(z,{time:e}),(0,E.jsxs)(`span`,{className:`scene-cursor ${r.visible?`is-visible`:``}`,style:{left:`${r.x}%`,top:`${r.y}%`,"--click-pulse":r.clickPulse},"aria-hidden":`true`,children:[(0,E.jsx)(w,{}),(0,E.jsx)(`i`,{})]})]})})}export{W as HomepageMotionScene};
|