@collective-intelligence/extensions-sdk-frontend-react 0.1.9 → 0.1.11

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -243,3 +243,17 @@ consumer React peers, including its loading state and loaded component props.
243
243
  ## Enum value spelling
244
244
 
245
245
  Repository-owned enum values use lower `snake_case`. This includes component kinds, dataset statuses, schema consumer profiles, and hosted contribution identity. Notification enum values retain their existing spelling. External protocol values, including HTTP methods and JSON Schema keywords and formats, retain the protocol spelling.
246
+
247
+ ### Query related records
248
+
249
+ The generated `/studio-api` export includes `studioViewDataSearchMembers`. It queries
250
+ `POST /studio/apps/by-slug/{slug}/views/{viewId}/data/{instanceId}/relation-members/search`
251
+ with the published view's authorization scope. Its generated body accepts the relation
252
+ `field`, filters, sort, cursor, limit and include paths. Filters and sort address the
253
+ related schema. Forward and inverse fields use the same operation, including scalar
254
+ relations (zero or one result). Preserve the generated response's pagination envelope.
255
+
256
+ A successful page and its relation IDs are complete. Per-field includes can carry the
257
+ existing truncation marker; paging within nested includes is not supported. A typed
258
+ `KnowledgeReadLimitExceeded` response requires narrowing the query, page, or includes;
259
+ do not silently trim the response or retry the unchanged oversized request.
@@ -1,6 +1,6 @@
1
1
  import type { dataTagErrorSymbol, dataTagSymbol } from "@tanstack/react-query";
2
2
  import { type InfiniteData, type UseMutationOptions } from "@tanstack/react-query";
3
- import type { StudioAgentRunsGetData, StudioAgentRunsGetError, StudioAgentRunsListData, StudioAgentRunsListError, StudioViewDataGetItemData, StudioViewDataGetItemError, StudioViewDataSearchData, StudioViewDataSearchError, StudioViewDataUpdateItemData, StudioViewDataUpdateItemError, StudioViewDataUpdateItemResponse, StudioWorkflowRunsGetData, StudioWorkflowRunsGetError, StudioWorkflowRunsListData, StudioWorkflowRunsListError } from "../types.gen";
3
+ import type { StudioAgentRunsGetData, StudioAgentRunsGetError, StudioAgentRunsListData, StudioAgentRunsListError, StudioViewDataGetItemData, StudioViewDataGetItemError, StudioViewDataSearchData, StudioViewDataSearchError, StudioViewDataSearchMembersData, StudioViewDataSearchMembersError, StudioViewDataUpdateItemData, StudioViewDataUpdateItemError, StudioViewDataUpdateItemResponse, StudioWorkflowRunsGetData, StudioWorkflowRunsGetError, StudioWorkflowRunsListData, StudioWorkflowRunsListError } from "../types.gen";
4
4
  import { type Options } from "../sdk.gen";
5
5
  export type QueryKey<TOptions extends Options> = [
6
6
  Pick<TOptions, "baseUrl" | "body" | "headers" | "path" | "query"> & {
@@ -22,6 +22,7 @@ export declare const studioAgentRunsListOptions: (options: Options<StudioAgentRu
22
22
  completedAt: string | null;
23
23
  createdAt: string;
24
24
  errorCode: string | null;
25
+ errorMessage: string | null;
25
26
  id: string;
26
27
  initiator: {
27
28
  kind: "user";
@@ -45,6 +46,7 @@ export declare const studioAgentRunsListOptions: (options: Options<StudioAgentRu
45
46
  completedAt: string | null;
46
47
  createdAt: string;
47
48
  errorCode: string | null;
49
+ errorMessage: string | null;
48
50
  id: string;
49
51
  initiator: {
50
52
  kind: "user";
@@ -73,6 +75,7 @@ export declare const studioAgentRunsListOptions: (options: Options<StudioAgentRu
73
75
  completedAt: string | null;
74
76
  createdAt: string;
75
77
  errorCode: string | null;
78
+ errorMessage: string | null;
76
79
  id: string;
77
80
  initiator: {
78
81
  kind: "user";
@@ -107,6 +110,7 @@ export declare const studioAgentRunsListOptions: (options: Options<StudioAgentRu
107
110
  completedAt: string | null;
108
111
  createdAt: string;
109
112
  errorCode: string | null;
113
+ errorMessage: string | null;
110
114
  id: string;
111
115
  initiator: {
112
116
  kind: "user";
@@ -135,6 +139,7 @@ export declare const studioAgentRunsListInfiniteOptions: (options: Options<Studi
135
139
  completedAt: string | null;
136
140
  createdAt: string;
137
141
  errorCode: string | null;
142
+ errorMessage: string | null;
138
143
  id: string;
139
144
  initiator: {
140
145
  kind: "user";
@@ -158,6 +163,7 @@ export declare const studioAgentRunsListInfiniteOptions: (options: Options<Studi
158
163
  completedAt: string | null;
159
164
  createdAt: string;
160
165
  errorCode: string | null;
166
+ errorMessage: string | null;
161
167
  id: string;
162
168
  initiator: {
163
169
  kind: "user";
@@ -186,6 +192,7 @@ export declare const studioAgentRunsListInfiniteOptions: (options: Options<Studi
186
192
  completedAt: string | null;
187
193
  createdAt: string;
188
194
  errorCode: string | null;
195
+ errorMessage: string | null;
189
196
  id: string;
190
197
  initiator: {
191
198
  kind: "user";
@@ -213,6 +220,7 @@ export declare const studioAgentRunsListInfiniteOptions: (options: Options<Studi
213
220
  completedAt: string | null;
214
221
  createdAt: string;
215
222
  errorCode: string | null;
223
+ errorMessage: string | null;
216
224
  id: string;
217
225
  initiator: {
218
226
  kind: "user";
@@ -243,6 +251,7 @@ export declare const studioAgentRunsListInfiniteOptions: (options: Options<Studi
243
251
  completedAt: string | null;
244
252
  createdAt: string;
245
253
  errorCode: string | null;
254
+ errorMessage: string | null;
246
255
  id: string;
247
256
  initiator: {
248
257
  kind: "user";
@@ -273,6 +282,7 @@ export declare const studioAgentRunsGetOptions: (options: Options<StudioAgentRun
273
282
  completedAt: string | null;
274
283
  createdAt: string;
275
284
  errorCode: string | null;
285
+ errorMessage: string | null;
276
286
  id: string;
277
287
  initiator: {
278
288
  kind: "user";
@@ -287,6 +297,7 @@ export declare const studioAgentRunsGetOptions: (options: Options<StudioAgentRun
287
297
  completedAt: string | null;
288
298
  createdAt: string;
289
299
  errorCode: string | null;
300
+ errorMessage: string | null;
290
301
  id: string;
291
302
  initiator: {
292
303
  kind: "user";
@@ -306,6 +317,7 @@ export declare const studioAgentRunsGetOptions: (options: Options<StudioAgentRun
306
317
  completedAt: string | null;
307
318
  createdAt: string;
308
319
  errorCode: string | null;
320
+ errorMessage: string | null;
309
321
  id: string;
310
322
  initiator: {
311
323
  kind: "user";
@@ -331,6 +343,7 @@ export declare const studioAgentRunsGetOptions: (options: Options<StudioAgentRun
331
343
  completedAt: string | null;
332
344
  createdAt: string;
333
345
  errorCode: string | null;
346
+ errorMessage: string | null;
334
347
  id: string;
335
348
  initiator: {
336
349
  kind: "user";
@@ -343,6 +356,52 @@ export declare const studioAgentRunsGetOptions: (options: Options<StudioAgentRun
343
356
  [dataTagErrorSymbol]: StudioAgentRunsGetError;
344
357
  };
345
358
  };
359
+ export declare const studioViewDataSearchMembersQueryKey: (options: Options<StudioViewDataSearchMembersData>) => [Pick<Options<StudioViewDataSearchMembersData>, "baseUrl" | "body" | "headers" | "path" | "query"> & {
360
+ _id: string;
361
+ _infinite?: boolean;
362
+ tags?: ReadonlyArray<string>;
363
+ }];
364
+ export declare const studioViewDataSearchMembersOptions: (options: Options<StudioViewDataSearchMembersData>) => import("@tanstack/react-query").OmitKeyof<import("@tanstack/react-query").UseQueryOptions<unknown, StudioViewDataSearchMembersError, unknown, [Pick<Options<StudioViewDataSearchMembersData>, "baseUrl" | "body" | "headers" | "path" | "query"> & {
365
+ _id: string;
366
+ _infinite?: boolean;
367
+ tags?: ReadonlyArray<string>;
368
+ }]>, "queryFn"> & {
369
+ queryFn?: import("@tanstack/react-query").QueryFunction<unknown, [Pick<Options<StudioViewDataSearchMembersData>, "baseUrl" | "body" | "headers" | "path" | "query"> & {
370
+ _id: string;
371
+ _infinite?: boolean;
372
+ tags?: ReadonlyArray<string>;
373
+ }], never>;
374
+ } & {
375
+ queryKey: [Pick<Options<StudioViewDataSearchMembersData>, "baseUrl" | "body" | "headers" | "path" | "query"> & {
376
+ _id: string;
377
+ _infinite?: boolean;
378
+ tags?: ReadonlyArray<string>;
379
+ }] & {
380
+ [dataTagSymbol]: unknown;
381
+ [dataTagErrorSymbol]: StudioViewDataSearchMembersError;
382
+ };
383
+ };
384
+ export declare const studioViewDataSearchMembersInfiniteQueryKey: (options: Options<StudioViewDataSearchMembersData>) => QueryKey<Options<StudioViewDataSearchMembersData>>;
385
+ export declare const studioViewDataSearchMembersInfiniteOptions: (options: Options<StudioViewDataSearchMembersData>) => import("@tanstack/react-query").UseInfiniteQueryOptions<unknown, StudioViewDataSearchMembersError, InfiniteData<unknown, unknown>, QueryKey<Options<StudioViewDataSearchMembersData>>, string | Pick<Pick<Options<StudioViewDataSearchMembersData>, "baseUrl" | "body" | "headers" | "path" | "query"> & {
386
+ _id: string;
387
+ _infinite?: boolean;
388
+ tags?: ReadonlyArray<string>;
389
+ }, "body" | "headers" | "path" | "query"> | null> & {
390
+ initialData: InfiniteData<unknown, string | Pick<Pick<Options<StudioViewDataSearchMembersData>, "baseUrl" | "body" | "headers" | "path" | "query"> & {
391
+ _id: string;
392
+ _infinite?: boolean;
393
+ tags?: ReadonlyArray<string>;
394
+ }, "body" | "headers" | "path" | "query"> | null> | (() => InfiniteData<unknown, string | Pick<Pick<Options<StudioViewDataSearchMembersData>, "baseUrl" | "body" | "headers" | "path" | "query"> & {
395
+ _id: string;
396
+ _infinite?: boolean;
397
+ tags?: ReadonlyArray<string>;
398
+ }, "body" | "headers" | "path" | "query"> | null>) | undefined;
399
+ } & {
400
+ queryKey: QueryKey<Options<StudioViewDataSearchMembersData>> & {
401
+ [dataTagSymbol]: InfiniteData<unknown, unknown>;
402
+ [dataTagErrorSymbol]: StudioViewDataSearchMembersError;
403
+ };
404
+ };
346
405
  export declare const studioViewDataSearchQueryKey: (options: Options<StudioViewDataSearchData>) => [Pick<Options<StudioViewDataSearchData>, "baseUrl" | "body" | "headers" | "path" | "query"> & {
347
406
  _id: string;
348
407
  _infinite?: boolean;
@@ -426,6 +485,7 @@ export declare const studioWorkflowRunsListOptions: (options: Options<StudioWork
426
485
  completedAt: string | null;
427
486
  createdAt: string;
428
487
  errorCode: string | null;
488
+ errorMessage: string | null;
429
489
  id: string;
430
490
  initiator: {
431
491
  kind: "user";
@@ -452,6 +512,7 @@ export declare const studioWorkflowRunsListOptions: (options: Options<StudioWork
452
512
  completedAt: string | null;
453
513
  createdAt: string;
454
514
  errorCode: string | null;
515
+ errorMessage: string | null;
455
516
  id: string;
456
517
  initiator: {
457
518
  kind: "user";
@@ -483,6 +544,7 @@ export declare const studioWorkflowRunsListOptions: (options: Options<StudioWork
483
544
  completedAt: string | null;
484
545
  createdAt: string;
485
546
  errorCode: string | null;
547
+ errorMessage: string | null;
486
548
  id: string;
487
549
  initiator: {
488
550
  kind: "user";
@@ -520,6 +582,7 @@ export declare const studioWorkflowRunsListOptions: (options: Options<StudioWork
520
582
  completedAt: string | null;
521
583
  createdAt: string;
522
584
  errorCode: string | null;
585
+ errorMessage: string | null;
523
586
  id: string;
524
587
  initiator: {
525
588
  kind: "user";
@@ -551,6 +614,7 @@ export declare const studioWorkflowRunsListInfiniteOptions: (options: Options<St
551
614
  completedAt: string | null;
552
615
  createdAt: string;
553
616
  errorCode: string | null;
617
+ errorMessage: string | null;
554
618
  id: string;
555
619
  initiator: {
556
620
  kind: "user";
@@ -577,6 +641,7 @@ export declare const studioWorkflowRunsListInfiniteOptions: (options: Options<St
577
641
  completedAt: string | null;
578
642
  createdAt: string;
579
643
  errorCode: string | null;
644
+ errorMessage: string | null;
580
645
  id: string;
581
646
  initiator: {
582
647
  kind: "user";
@@ -608,6 +673,7 @@ export declare const studioWorkflowRunsListInfiniteOptions: (options: Options<St
608
673
  completedAt: string | null;
609
674
  createdAt: string;
610
675
  errorCode: string | null;
676
+ errorMessage: string | null;
611
677
  id: string;
612
678
  initiator: {
613
679
  kind: "user";
@@ -638,6 +704,7 @@ export declare const studioWorkflowRunsListInfiniteOptions: (options: Options<St
638
704
  completedAt: string | null;
639
705
  createdAt: string;
640
706
  errorCode: string | null;
707
+ errorMessage: string | null;
641
708
  id: string;
642
709
  initiator: {
643
710
  kind: "user";
@@ -671,6 +738,7 @@ export declare const studioWorkflowRunsListInfiniteOptions: (options: Options<St
671
738
  completedAt: string | null;
672
739
  createdAt: string;
673
740
  errorCode: string | null;
741
+ errorMessage: string | null;
674
742
  id: string;
675
743
  initiator: {
676
744
  kind: "user";
@@ -704,6 +772,7 @@ export declare const studioWorkflowRunsGetOptions: (options: Options<StudioWorkf
704
772
  completedAt: string | null;
705
773
  createdAt: string;
706
774
  errorCode: string | null;
775
+ errorMessage: string | null;
707
776
  id: string;
708
777
  initiator: {
709
778
  kind: "user";
@@ -720,7 +789,13 @@ export declare const studioWorkflowRunsGetOptions: (options: Options<StudioWorkf
720
789
  steps: Array<{
721
790
  attempt: number;
722
791
  completedAt: string | null;
792
+ durationMs: number | null;
793
+ error: {
794
+ code: string | null;
795
+ message: string;
796
+ } | null;
723
797
  nodeId: string;
798
+ nodeType: string | null;
724
799
  startedAt: string | null;
725
800
  status: string;
726
801
  }>;
@@ -728,6 +803,7 @@ export declare const studioWorkflowRunsGetOptions: (options: Options<StudioWorkf
728
803
  completedAt: string | null;
729
804
  createdAt: string;
730
805
  errorCode: string | null;
806
+ errorMessage: string | null;
731
807
  id: string;
732
808
  initiator: {
733
809
  kind: "user";
@@ -744,7 +820,13 @@ export declare const studioWorkflowRunsGetOptions: (options: Options<StudioWorkf
744
820
  steps: Array<{
745
821
  attempt: number;
746
822
  completedAt: string | null;
823
+ durationMs: number | null;
824
+ error: {
825
+ code: string | null;
826
+ message: string;
827
+ } | null;
747
828
  nodeId: string;
829
+ nodeType: string | null;
748
830
  startedAt: string | null;
749
831
  status: string;
750
832
  }>;
@@ -757,6 +839,7 @@ export declare const studioWorkflowRunsGetOptions: (options: Options<StudioWorkf
757
839
  completedAt: string | null;
758
840
  createdAt: string;
759
841
  errorCode: string | null;
842
+ errorMessage: string | null;
760
843
  id: string;
761
844
  initiator: {
762
845
  kind: "user";
@@ -773,7 +856,13 @@ export declare const studioWorkflowRunsGetOptions: (options: Options<StudioWorkf
773
856
  steps: Array<{
774
857
  attempt: number;
775
858
  completedAt: string | null;
859
+ durationMs: number | null;
860
+ error: {
861
+ code: string | null;
862
+ message: string;
863
+ } | null;
776
864
  nodeId: string;
865
+ nodeType: string | null;
777
866
  startedAt: string | null;
778
867
  status: string;
779
868
  }>;
@@ -792,6 +881,7 @@ export declare const studioWorkflowRunsGetOptions: (options: Options<StudioWorkf
792
881
  completedAt: string | null;
793
882
  createdAt: string;
794
883
  errorCode: string | null;
884
+ errorMessage: string | null;
795
885
  id: string;
796
886
  initiator: {
797
887
  kind: "user";
@@ -808,7 +898,13 @@ export declare const studioWorkflowRunsGetOptions: (options: Options<StudioWorkf
808
898
  steps: Array<{
809
899
  attempt: number;
810
900
  completedAt: string | null;
901
+ durationMs: number | null;
902
+ error: {
903
+ code: string | null;
904
+ message: string;
905
+ } | null;
811
906
  nodeId: string;
907
+ nodeType: string | null;
812
908
  startedAt: string | null;
813
909
  status: string;
814
910
  }>;
@@ -1,4 +1,4 @@
1
- export { type QueryKey, studioAgentRunsGetOptions, studioAgentRunsGetQueryKey, studioAgentRunsListInfiniteOptions, studioAgentRunsListInfiniteQueryKey, studioAgentRunsListOptions, studioAgentRunsListQueryKey, studioViewDataGetItemOptions, studioViewDataGetItemQueryKey, studioViewDataSearchInfiniteOptions, studioViewDataSearchInfiniteQueryKey, studioViewDataSearchOptions, studioViewDataSearchQueryKey, studioViewDataUpdateItemMutation, studioWorkflowRunsGetOptions, studioWorkflowRunsGetQueryKey, studioWorkflowRunsListInfiniteOptions, studioWorkflowRunsListInfiniteQueryKey, studioWorkflowRunsListOptions, studioWorkflowRunsListQueryKey } from "./@tanstack/react-query.gen";
1
+ export { type QueryKey, studioAgentRunsGetOptions, studioAgentRunsGetQueryKey, studioAgentRunsListInfiniteOptions, studioAgentRunsListInfiniteQueryKey, studioAgentRunsListOptions, studioAgentRunsListQueryKey, studioViewDataGetItemOptions, studioViewDataGetItemQueryKey, studioViewDataSearchInfiniteOptions, studioViewDataSearchInfiniteQueryKey, studioViewDataSearchMembersInfiniteOptions, studioViewDataSearchMembersInfiniteQueryKey, studioViewDataSearchMembersOptions, studioViewDataSearchMembersQueryKey, studioViewDataSearchOptions, studioViewDataSearchQueryKey, studioViewDataUpdateItemMutation, studioWorkflowRunsGetOptions, studioWorkflowRunsGetQueryKey, studioWorkflowRunsListInfiniteOptions, studioWorkflowRunsListInfiniteQueryKey, studioWorkflowRunsListOptions, studioWorkflowRunsListQueryKey } from "./@tanstack/react-query.gen";
2
2
  export { client, type CreateClientConfig } from "./client.gen";
3
- export { type Options, studioAgentRunsGet, studioAgentRunsList, studioViewDataGetItem, studioViewDataSearch, studioViewDataUpdateItem, studioWorkflowRunsGet, studioWorkflowRunsList } from "./sdk.gen";
4
- export type { ClientOptions, EffectHttpApiErrorBadRequestEncoded, EffectHttpApiErrorForbiddenEncoded, EffectHttpApiErrorInternalServerErrorEncoded, EffectHttpApiErrorNotFoundEncoded, EffectHttpApiErrorUnauthorizedEncoded, EntityFileFieldConflictDiagnosticEncoded, EntityFileFieldDiagnosticEncoded, EntityUniqueFieldConflictDiagnosticEncoded, EntityValueDiagnosticEncoded, StudioAgentRunsGetData, StudioAgentRunsGetError, StudioAgentRunsGetErrors, StudioAgentRunsGetResponse, StudioAgentRunsGetResponses, StudioAgentRunsListData, StudioAgentRunsListError, StudioAgentRunsListErrors, StudioAgentRunsListResponse, StudioAgentRunsListResponses, StudioViewDataGetItemData, StudioViewDataGetItemError, StudioViewDataGetItemErrors, StudioViewDataGetItemResponses, StudioViewDataSearchData, StudioViewDataSearchError, StudioViewDataSearchErrors, StudioViewDataSearchResponses, StudioViewDataUpdateItemData, StudioViewDataUpdateItemError, StudioViewDataUpdateItemErrors, StudioViewDataUpdateItemResponse, StudioViewDataUpdateItemResponses, StudioWorkflowRunsGetData, StudioWorkflowRunsGetError, StudioWorkflowRunsGetErrors, StudioWorkflowRunsGetResponse, StudioWorkflowRunsGetResponses, StudioWorkflowRunsListData, StudioWorkflowRunsListError, StudioWorkflowRunsListErrors, StudioWorkflowRunsListResponse, StudioWorkflowRunsListResponses, Suspend1 } from "./types.gen";
3
+ export { type Options, studioAgentRunsGet, studioAgentRunsList, studioViewDataGetItem, studioViewDataSearch, studioViewDataSearchMembers, studioViewDataUpdateItem, studioWorkflowRunsGet, studioWorkflowRunsList } from "./sdk.gen";
4
+ export type { ClientOptions, EffectHttpApiErrorBadRequestEncoded, EffectHttpApiErrorForbiddenEncoded, EffectHttpApiErrorInternalServerErrorEncoded, EffectHttpApiErrorNotFoundEncoded, EffectHttpApiErrorUnauthorizedEncoded, EntityFileFieldConflictDiagnosticEncoded, EntityFileFieldDiagnosticEncoded, EntityRelationFieldDiagnosticEncoded, EntityUniqueFieldConflictDiagnosticEncoded, EntityValueDiagnosticEncoded, InvalidIncludePathEncoded, KnowledgeReadLimitExceededEncoded, StudioAgentRunsGetData, StudioAgentRunsGetError, StudioAgentRunsGetErrors, StudioAgentRunsGetResponse, StudioAgentRunsGetResponses, StudioAgentRunsListData, StudioAgentRunsListError, StudioAgentRunsListErrors, StudioAgentRunsListResponse, StudioAgentRunsListResponses, StudioViewDataGetItemData, StudioViewDataGetItemError, StudioViewDataGetItemErrors, StudioViewDataGetItemResponses, StudioViewDataSearchData, StudioViewDataSearchError, StudioViewDataSearchErrors, StudioViewDataSearchMembersData, StudioViewDataSearchMembersError, StudioViewDataSearchMembersErrors, StudioViewDataSearchMembersResponses, StudioViewDataSearchResponses, StudioViewDataUpdateItemData, StudioViewDataUpdateItemError, StudioViewDataUpdateItemErrors, StudioViewDataUpdateItemResponse, StudioViewDataUpdateItemResponses, StudioWorkflowRunsGetData, StudioWorkflowRunsGetError, StudioWorkflowRunsGetErrors, StudioWorkflowRunsGetResponse, StudioWorkflowRunsGetResponses, StudioWorkflowRunsListData, StudioWorkflowRunsListError, StudioWorkflowRunsListErrors, StudioWorkflowRunsListResponse, StudioWorkflowRunsListResponses, Suspend2 } from "./types.gen";
@@ -1,6 +1,6 @@
1
- import{infiniteQueryOptions as _,queryOptions as q}from"@tanstack/react-query";function re({onRequest:e,onSseError:t,onSseEvent:r,responseTransformer:n,responseValidator:o,sseDefaultRetryDelay:d,sseMaxRetryAttempts:i,sseMaxRetryDelay:a,sseSleepFn:u,url:S,...l}){let s,w=u??((O)=>new Promise((p)=>setTimeout(p,O)));return{stream:async function*(){let O=d??3000,p=0,R=l.signal??new AbortController().signal;while(!0){if(R.aborted)break;p++;let T=l.headers instanceof Headers?l.headers:new Headers(l.headers);if(s!==void 0)T.set("Last-Event-ID",s);try{let b={redirect:"follow",...l,body:l.serializedBody??null,headers:T,signal:R},E=new Request(S,b);if(e)E=await e(S,b);let c=await(l.fetch??globalThis.fetch)(E);if(!c.ok)throw Error(`SSE failed: ${c.status} ${c.statusText}`);if(!c.body)throw Error("No body in SSE response");let y=c.body.pipeThrough(new TextDecoderStream).getReader(),f="",X=()=>{try{y.cancel()}catch{}};R.addEventListener("abort",X);try{while(!0){let{done:ge,value:me}=await y.read();if(ge)break;f+=me,f=f.replace(/\r\n?/g,`
2
- `);let Y=f.split(`
1
+ import{infiniteQueryOptions as P,queryOptions as x}from"@tanstack/react-query";function ne({onRequest:e,onSseError:t,onSseEvent:r,responseTransformer:n,responseValidator:o,sseDefaultRetryDelay:d,sseMaxRetryAttempts:s,sseMaxRetryDelay:a,sseSleepFn:u,url:S,...c}){let i,w=u??((O)=>new Promise((p)=>setTimeout(p,O)));return{stream:async function*(){let O=d??3000,p=0,h=c.signal??new AbortController().signal;while(!0){if(h.aborted)break;p++;let q=c.headers instanceof Headers?c.headers:new Headers(c.headers);if(i!==void 0)q.set("Last-Event-ID",i);try{let b={redirect:"follow",...c,body:c.serializedBody??null,headers:q,signal:h},E=new Request(S,b);if(e)E=await e(S,b);let l=await(c.fetch??globalThis.fetch)(E);if(!l.ok)throw Error(`SSE failed: ${l.status} ${l.statusText}`);if(!l.body)throw Error("No body in SSE response");let f=l.body.pipeThrough(new TextDecoderStream).getReader(),y="",Y=()=>{try{f.cancel()}catch{}};h.addEventListener("abort",Y);try{while(!0){let{done:Oe,value:be}=await f.read();if(Oe)break;y+=be,y=y.replace(/\r\n?/g,`
2
+ `);let Z=y.split(`
3
3
 
4
- `);f=Y.pop()??"";for(let Oe of Y){let De=Oe.split(`
5
- `),L=[],Z;for(let g of De)if(g.startsWith("data:"))L.push(g.replace(/^data:\s*/,""));else if(g.startsWith("event:"))Z=g.replace(/^event:\s*/,"");else if(g.startsWith("id:"))s=g.replace(/^id:\s*/,"");else if(g.startsWith("retry:")){let te=Number.parseInt(g.replace(/^retry:\s*/,""),10);if(!Number.isNaN(te))O=te}let k,ee=!1;if(L.length){let g=L.join(`
6
- `);try{k=JSON.parse(g),ee=!0}catch{k=g}}if(ee){if(o)await o(k);if(n)k=await n(k)}if(r?.({data:k,event:Z,id:s,retry:O}),L.length)yield k}}}finally{R.removeEventListener("abort",X),y.releaseLock()}break}catch(b){if(t?.(b),i!==void 0&&p>=i)break;let E=Math.min(O*2**(p-1),a??30000);await w(E)}}}()}}var be=(e)=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},Ee=(e)=>{switch(e){case"form":return",";case"pipeDelimited":return"|";case"spaceDelimited":return"%20";default:return","}},ke=(e)=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},C=({allowReserved:e,explode:t,name:r,style:n,value:o})=>{if(!t){let a=(e?o:o.map((u)=>encodeURIComponent(u))).join(Ee(n));switch(n){case"label":return`.${a}`;case"matrix":return`;${r}=${a}`;case"simple":return a;default:return`${r}=${a}`}}let d=be(n),i=o.map((a)=>{if(n==="label"||n==="simple")return e?a:encodeURIComponent(a);return I({allowReserved:e,name:r,value:a})}).join(d);return n==="label"||n==="matrix"?d+i:i},I=({allowReserved:e,name:t,value:r})=>{if(r===void 0||r===null)return"";if(typeof r==="object")throw Error("Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.");return`${t}=${e?r:encodeURIComponent(r)}`},z=({allowReserved:e,explode:t,name:r,style:n,value:o,valueOnly:d})=>{if(o instanceof Date)return d?o.toISOString():`${r}=${o.toISOString()}`;if(n!=="deepObject"&&!t){let u=[];Object.entries(o).forEach(([l,s])=>{u=[...u,l,e?s:encodeURIComponent(s)]});let S=u.join(",");switch(n){case"form":return`${r}=${S}`;case"label":return`.${S}`;case"matrix":return`;${r}=${S}`;default:return S}}let i=ke(n),a=Object.entries(o).map(([u,S])=>I({allowReserved:e,name:n==="deepObject"?`${r}[${u}]`:u,value:S})).join(i);return n==="label"||n==="matrix"?i+a:a};var xe=/\{[^{}]+\}/g,Ae=({path:e,url:t})=>{let r=t,n=t.match(xe);if(n)for(let o of n){let d=!1,i=o.substring(1,o.length-1),a="simple";if(i.endsWith("*"))d=!0,i=i.substring(0,i.length-1);if(i.startsWith("."))i=i.substring(1),a="label";else if(i.startsWith(";"))i=i.substring(1),a="matrix";let u=e[i];if(u===void 0||u===null)continue;if(Array.isArray(u)){r=r.replace(o,C({explode:d,name:i,style:a,value:u}));continue}if(typeof u==="object"){r=r.replace(o,z({explode:d,name:i,style:a,value:u,valueOnly:!0}));continue}if(a==="matrix"){r=r.replace(o,`;${I({name:i,value:u})}`);continue}let S=encodeURIComponent(a==="label"?`.${u}`:u);r=r.replace(o,S)}return r},ne=({baseUrl:e,path:t,query:r,querySerializer:n,url:o})=>{let d=o.startsWith("/")?o:`/${o}`,i=(e??"")+d;if(t)i=Ae({path:t,url:i});let a=r?n(r):"";if(a.startsWith("?"))a=a.substring(1);if(a)i+=`?${a}`;return i};function Q(e){let t=e.body!==void 0;if(t&&e.bodySerializer){if("serializedBody"in e)return e.serializedBody!==void 0&&e.serializedBody!==""?e.serializedBody:null;return e.body!==""?e.body:null}if(t)return e.body;return}var oe=async(e,t)=>{let r=typeof t==="function"?await t(e):t;if(!r)return;if(e.scheme==="bearer")return`Bearer ${r}`;if(e.scheme==="basic")return`Basic ${btoa(r)}`;return r};var se={bodySerializer:(e)=>JSON.stringify(e,(t,r)=>typeof r==="bigint"?r.toString():r)};var ie=({parameters:e={},...t}={})=>(n)=>{let o=[];if(n&&typeof n==="object")for(let d in n){let i=n[d];if(i===void 0||i===null)continue;let a=e[d]||t;if(Array.isArray(i)){let u=C({allowReserved:a.allowReserved,explode:!0,name:d,style:"form",value:i,...a.array});if(u)o.push(u)}else if(typeof i==="object"){let u=z({allowReserved:a.allowReserved,explode:!0,name:d,style:"deepObject",value:i,...a.object});if(u)o.push(u)}else{let u=I({allowReserved:a.allowReserved,name:d,value:i});if(u)o.push(u)}}return o.join("&")},ae=(e)=>{if(!e)return"stream";let t=e.split(";")[0]?.trim();if(!t)return;if(t.startsWith("application/json")||t.endsWith("+json"))return"json";if(t==="multipart/form-data")return"formData";if(["application/","audio/","image/","video/"].some((r)=>t.startsWith(r)))return"blob";if(t.startsWith("text/"))return"text";return},Ie=(e,t)=>{if(!t)return!1;if(e.headers.has(t)||e.query?.[t]||e.headers.get("Cookie")?.includes(`${t}=`))return!0;return!1},ue=async({security:e,...t})=>{for(let r of e){if(Ie(t,r.name))continue;let n=await oe(r,t.auth);if(!n)continue;let o=r.name??"Authorization";switch(r.in){case"query":if(!t.query)t.query={};t.query[o]=n;break;case"cookie":t.headers.append("Cookie",`${o}=${n}`);break;case"header":default:t.headers.set(o,n);break}}},K=(e)=>ne({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:typeof e.querySerializer==="function"?e.querySerializer:ie(e.querySerializer),url:e.url}),v=(e,t)=>{let r={...e,...t};if(r.baseUrl?.endsWith("/"))r.baseUrl=r.baseUrl.substring(0,r.baseUrl.length-1);return r.headers=G(e.headers,t.headers),r},qe=(e)=>{let t=[];return e.forEach((r,n)=>{t.push([n,r])}),t},G=(...e)=>{let t=new Headers;for(let r of e){if(!r)continue;let n=r instanceof Headers?qe(r):Object.entries(r);for(let[o,d]of n)if(d===null)t.delete(o);else if(Array.isArray(d))for(let i of d)t.append(o,i);else if(d!==void 0)t.set(o,typeof d==="object"?JSON.stringify(d):d)}return t};class W{fns=[];clear(){this.fns=[]}eject(e){let t=this.getInterceptorIndex(e);if(this.fns[t])this.fns[t]=null}exists(e){let t=this.getInterceptorIndex(e);return Boolean(this.fns[t])}getInterceptorIndex(e){if(typeof e==="number")return this.fns[e]?e:-1;return this.fns.indexOf(e)}update(e,t){let r=this.getInterceptorIndex(e);if(this.fns[r])return this.fns[r]=t,e;return!1}use(e){return this.fns.push(e),this.fns.length-1}}var de=()=>({error:new W,request:new W,response:new W}),Te=ie({allowReserved:!1,array:{explode:!0,style:"form"},object:{explode:!0,style:"deepObject"}}),Ve={"Content-Type":"application/json"},V=(e={})=>({...se,headers:Ve,parseAs:"auto",querySerializer:Te,...e});var B=(e={})=>{let t=v(V(),e),r=()=>({...t}),n=(l)=>(t=v(t,l),r()),o=de(),d=async(l)=>{let s={...t,...l,fetch:l.fetch??t.fetch??globalThis.fetch,headers:G(t.headers,l.headers),serializedBody:void 0};if(s.security)await ue({...s,security:s.security});if(s.requestValidator)await s.requestValidator(s);if(s.body!==void 0&&s.bodySerializer)s.serializedBody=s.bodySerializer(s.body);if(s.body===void 0||s.serializedBody==="")s.headers.delete("Content-Type");let w=s,x=K(w);return{opts:w,url:x}},i=async(l)=>{let{opts:s,url:w}=await d(l),x={redirect:"follow",...s,body:Q(s)},h=new Request(w,x);for(let c of o.request.fns)if(c)h=await c(h,s);let O=s.fetch,p;try{p=await O(h)}catch(c){let y=c;for(let f of o.error.fns)if(f)y=await f(c,void 0,h,s);if(y=y||{},s.throwOnError)throw y;return s.responseStyle==="data"?void 0:{error:y,request:h,response:void 0}}for(let c of o.response.fns)if(c)p=await c(p,h,s);let R={request:h,response:p};if(p.ok){let c=(s.parseAs==="auto"?ae(p.headers.get("Content-Type")):s.parseAs)??"json";if(p.status===204||p.headers.get("Content-Length")==="0"){let f;switch(c){case"arrayBuffer":case"blob":case"text":f=await p[c]();break;case"formData":f=new FormData;break;case"stream":f=p.body;break;case"json":default:f={};break}return s.responseStyle==="data"?f:{data:f,...R}}let y;switch(c){case"arrayBuffer":case"blob":case"formData":case"text":y=await p[c]();break;case"json":{let f=await p.text();y=f?JSON.parse(f):{};break}case"stream":return s.responseStyle==="data"?p.body:{data:p.body,...R}}if(c==="json"){if(s.responseValidator)await s.responseValidator(y);if(s.responseTransformer)y=await s.responseTransformer(y)}return s.responseStyle==="data"?y:{data:y,...R}}let T=await p.text(),b;try{b=JSON.parse(T)}catch{}let E=b??T,A=E;for(let c of o.error.fns)if(c)A=await c(E,p,h,s);if(A=A||{},s.throwOnError)throw A;return s.responseStyle==="data"?void 0:{error:A,...R}},a=(l)=>(s)=>i({...s,method:l}),u=(l)=>async(s)=>{let{opts:w,url:x}=await d(s);return re({...w,body:w.body,headers:w.headers,method:l,onRequest:async(h,O)=>{let p=new Request(h,O);for(let R of o.request.fns)if(R)p=await R(p,w);return p},serializedBody:Q(w),url:x})};return{buildUrl:(l)=>K({...t,...l}),connect:a("CONNECT"),delete:a("DELETE"),get:a("GET"),getConfig:r,head:a("HEAD"),interceptors:o,options:a("OPTIONS"),patch:a("PATCH"),post:a("POST"),put:a("PUT"),request:i,setConfig:n,sse:{connect:u("CONNECT"),delete:u("DELETE"),get:u("GET"),head:u("HEAD"),options:u("OPTIONS"),patch:u("PATCH"),post:u("POST"),put:u("PUT"),trace:u("TRACE")},trace:a("TRACE")}};var m=B(V());var U=(e)=>(e.client??m).get({security:[{scheme:"bearer",type:"http"}],url:"/studio/agent-runs",...e}),H=(e)=>(e.client??m).get({security:[{scheme:"bearer",type:"http"}],url:"/studio/agent-runs/{runId}",...e}),j=(e)=>(e.client??m).post({security:[{scheme:"bearer",type:"http"}],url:"/studio/apps/by-slug/{slug}/views/{viewId}/data/search",...e,headers:{"Content-Type":"application/json",...e.headers}}),F=(e)=>(e.client??m).get({security:[{scheme:"bearer",type:"http"}],url:"/studio/apps/by-slug/{slug}/views/{viewId}/data/{instanceId}",...e}),N=(e)=>(e.client??m).patch({security:[{scheme:"bearer",type:"http"}],url:"/studio/apps/by-slug/{slug}/views/{viewId}/data/{instanceId}",...e,headers:{"Content-Type":"application/json",...e.headers}}),P=(e)=>(e.client??m).get({security:[{scheme:"bearer",type:"http"}],url:"/studio/workflow-runs",...e}),M=(e)=>(e.client??m).get({security:[{scheme:"bearer",type:"http"}],url:"/studio/workflow-runs/{runId}",...e});var D=(e,t,r,n)=>{let o={_id:e,baseUrl:t?.baseUrl||(t?.client??m).getConfig().baseUrl};if(r)o._infinite=r;if(n)o.tags=n;if(t?.body)o.body=t.body;if(t?.headers)o.headers=t.headers;if(t?.path)o.path=t.path;if(t?.query)o.query=t.query;return[o]},pe=(e)=>D("studioAgentRunsList",e),Le=(e)=>q({queryFn:async({queryKey:t,signal:r})=>{let{data:n}=await U({...e,...t[0],signal:r,throwOnError:!0});return n},queryKey:pe(e)}),J=(e,t)=>{let r={...e[0]};if(t.body)r.body={...e[0].body,...t.body};if(t.headers)r.headers={...e[0].headers,...t.headers};if(t.path)r.path={...e[0].path,...t.path};if(t.query)r.query={...e[0].query,...t.query};return r},le=(e)=>D("studioAgentRunsList",e,!0),Ce=(e)=>_({queryFn:async({pageParam:t,queryKey:r,signal:n})=>{let d=J(r,typeof t==="object"?t:{query:{page:t}}),{data:i}=await U({...e,...d,signal:n,throwOnError:!0});return i},queryKey:le(e)}),ce=(e)=>D("studioAgentRunsGet",e),ze=(e)=>q({queryFn:async({queryKey:t,signal:r})=>{let{data:n}=await H({...e,...t[0],signal:r,throwOnError:!0});return n},queryKey:ce(e)}),fe=(e)=>D("studioViewDataSearch",e),We=(e)=>q({queryFn:async({queryKey:t,signal:r})=>{let{data:n}=await j({...e,...t[0],signal:r,throwOnError:!0});return n},queryKey:fe(e)}),ye=(e)=>D("studioViewDataSearch",e,!0),Ge=(e)=>_({queryFn:async({pageParam:t,queryKey:r,signal:n})=>{let d=J(r,typeof t==="object"?t:{body:{cursor:t}}),{data:i}=await j({...e,...d,signal:n,throwOnError:!0});return i},queryKey:ye(e)}),Se=(e)=>D("studioViewDataGetItem",e),Ue=(e)=>q({queryFn:async({queryKey:t,signal:r})=>{let{data:n}=await F({...e,...t[0],signal:r,throwOnError:!0});return n},queryKey:Se(e)}),je=(e)=>({mutationFn:async(r)=>{let{data:n}=await N({...e,...r,throwOnError:!0});return n}}),we=(e)=>D("studioWorkflowRunsList",e),Pe=(e)=>q({queryFn:async({queryKey:t,signal:r})=>{let{data:n}=await P({...e,...t[0],signal:r,throwOnError:!0});return n},queryKey:we(e)}),Re=(e)=>D("studioWorkflowRunsList",e,!0),Qe=(e)=>_({queryFn:async({pageParam:t,queryKey:r,signal:n})=>{let d=J(r,typeof t==="object"?t:{query:{page:t}}),{data:i}=await P({...e,...d,signal:n,throwOnError:!0});return i},queryKey:Re(e)}),he=(e)=>D("studioWorkflowRunsGet",e),Ke=(e)=>q({queryFn:async({queryKey:t,signal:r})=>{let{data:n}=await M({...e,...t[0],signal:r,throwOnError:!0});return n},queryKey:he(e)});export{m as client,H as studioAgentRunsGet,ze as studioAgentRunsGetOptions,ce as studioAgentRunsGetQueryKey,U as studioAgentRunsList,Ce as studioAgentRunsListInfiniteOptions,le as studioAgentRunsListInfiniteQueryKey,Le as studioAgentRunsListOptions,pe as studioAgentRunsListQueryKey,F as studioViewDataGetItem,Ue as studioViewDataGetItemOptions,Se as studioViewDataGetItemQueryKey,j as studioViewDataSearch,Ge as studioViewDataSearchInfiniteOptions,ye as studioViewDataSearchInfiniteQueryKey,We as studioViewDataSearchOptions,fe as studioViewDataSearchQueryKey,N as studioViewDataUpdateItem,je as studioViewDataUpdateItemMutation,M as studioWorkflowRunsGet,Ke as studioWorkflowRunsGetOptions,he as studioWorkflowRunsGetQueryKey,P as studioWorkflowRunsList,Qe as studioWorkflowRunsListInfiniteOptions,Re as studioWorkflowRunsListInfiniteQueryKey,Pe as studioWorkflowRunsListOptions,we as studioWorkflowRunsListQueryKey};
4
+ `);y=Z.pop()??"";for(let Ee of Z){let ke=Ee.split(`
5
+ `),L=[],ee;for(let g of ke)if(g.startsWith("data:"))L.push(g.replace(/^data:\s*/,""));else if(g.startsWith("event:"))ee=g.replace(/^event:\s*/,"");else if(g.startsWith("id:"))i=g.replace(/^id:\s*/,"");else if(g.startsWith("retry:")){let re=Number.parseInt(g.replace(/^retry:\s*/,""),10);if(!Number.isNaN(re))O=re}let k,te=!1;if(L.length){let g=L.join(`
6
+ `);try{k=JSON.parse(g),te=!0}catch{k=g}}if(te){if(o)await o(k);if(n)k=await n(k)}if(r?.({data:k,event:ee,id:i,retry:O}),L.length)yield k}}}finally{h.removeEventListener("abort",Y),f.releaseLock()}break}catch(b){if(t?.(b),s!==void 0&&p>=s)break;let E=Math.min(O*2**(p-1),a??30000);await w(E)}}}()}}var xe=(e)=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},Ae=(e)=>{switch(e){case"form":return",";case"pipeDelimited":return"|";case"spaceDelimited":return"%20";default:return","}},Ie=(e)=>{switch(e){case"label":return".";case"matrix":return";";case"simple":return",";default:return"&"}},C=({allowReserved:e,explode:t,name:r,style:n,value:o})=>{if(!t){let a=(e?o:o.map((u)=>encodeURIComponent(u))).join(Ae(n));switch(n){case"label":return`.${a}`;case"matrix":return`;${r}=${a}`;case"simple":return a;default:return`${r}=${a}`}}let d=xe(n),s=o.map((a)=>{if(n==="label"||n==="simple")return e?a:encodeURIComponent(a);return V({allowReserved:e,name:r,value:a})}).join(d);return n==="label"||n==="matrix"?d+s:s},V=({allowReserved:e,name:t,value:r})=>{if(r===void 0||r===null)return"";if(typeof r==="object")throw Error("Deeply-nested arrays/objects aren’t supported. Provide your own `querySerializer()` to handle these.");return`${t}=${e?r:encodeURIComponent(r)}`},z=({allowReserved:e,explode:t,name:r,style:n,value:o,valueOnly:d})=>{if(o instanceof Date)return d?o.toISOString():`${r}=${o.toISOString()}`;if(n!=="deepObject"&&!t){let u=[];Object.entries(o).forEach(([c,i])=>{u=[...u,c,e?i:encodeURIComponent(i)]});let S=u.join(",");switch(n){case"form":return`${r}=${S}`;case"label":return`.${S}`;case"matrix":return`;${r}=${S}`;default:return S}}let s=Ie(n),a=Object.entries(o).map(([u,S])=>V({allowReserved:e,name:n==="deepObject"?`${r}[${u}]`:u,value:S})).join(s);return n==="label"||n==="matrix"?s+a:a};var Ve=/\{[^{}]+\}/g,qe=({path:e,url:t})=>{let r=t,n=t.match(Ve);if(n)for(let o of n){let d=!1,s=o.substring(1,o.length-1),a="simple";if(s.endsWith("*"))d=!0,s=s.substring(0,s.length-1);if(s.startsWith("."))s=s.substring(1),a="label";else if(s.startsWith(";"))s=s.substring(1),a="matrix";let u=e[s];if(u===void 0||u===null)continue;if(Array.isArray(u)){r=r.replace(o,C({explode:d,name:s,style:a,value:u}));continue}if(typeof u==="object"){r=r.replace(o,z({explode:d,name:s,style:a,value:u,valueOnly:!0}));continue}if(a==="matrix"){r=r.replace(o,`;${V({name:s,value:u})}`);continue}let S=encodeURIComponent(a==="label"?`.${u}`:u);r=r.replace(o,S)}return r},oe=({baseUrl:e,path:t,query:r,querySerializer:n,url:o})=>{let d=o.startsWith("/")?o:`/${o}`,s=(e??"")+d;if(t)s=qe({path:t,url:s});let a=r?n(r):"";if(a.startsWith("?"))a=a.substring(1);if(a)s+=`?${a}`;return s};function v(e){let t=e.body!==void 0;if(t&&e.bodySerializer){if("serializedBody"in e)return e.serializedBody!==void 0&&e.serializedBody!==""?e.serializedBody:null;return e.body!==""?e.body:null}if(t)return e.body;return}var se=async(e,t)=>{let r=typeof t==="function"?await t(e):t;if(!r)return;if(e.scheme==="bearer")return`Bearer ${r}`;if(e.scheme==="basic")return`Basic ${btoa(r)}`;return r};var ie={bodySerializer:(e)=>JSON.stringify(e,(t,r)=>typeof r==="bigint"?r.toString():r)};var ae=({parameters:e={},...t}={})=>(n)=>{let o=[];if(n&&typeof n==="object")for(let d in n){let s=n[d];if(s===void 0||s===null)continue;let a=e[d]||t;if(Array.isArray(s)){let u=C({allowReserved:a.allowReserved,explode:!0,name:d,style:"form",value:s,...a.array});if(u)o.push(u)}else if(typeof s==="object"){let u=z({allowReserved:a.allowReserved,explode:!0,name:d,style:"deepObject",value:s,...a.object});if(u)o.push(u)}else{let u=V({allowReserved:a.allowReserved,name:d,value:s});if(u)o.push(u)}}return o.join("&")},ue=(e)=>{if(!e)return"stream";let t=e.split(";")[0]?.trim();if(!t)return;if(t.startsWith("application/json")||t.endsWith("+json"))return"json";if(t==="multipart/form-data")return"formData";if(["application/","audio/","image/","video/"].some((r)=>t.startsWith(r)))return"blob";if(t.startsWith("text/"))return"text";return},Te=(e,t)=>{if(!t)return!1;if(e.headers.has(t)||e.query?.[t]||e.headers.get("Cookie")?.includes(`${t}=`))return!0;return!1},de=async({security:e,...t})=>{for(let r of e){if(Te(t,r.name))continue;let n=await se(r,t.auth);if(!n)continue;let o=r.name??"Authorization";switch(r.in){case"query":if(!t.query)t.query={};t.query[o]=n;break;case"cookie":t.headers.append("Cookie",`${o}=${n}`);break;case"header":default:t.headers.set(o,n);break}}},B=(e)=>oe({baseUrl:e.baseUrl,path:e.path,query:e.query,querySerializer:typeof e.querySerializer==="function"?e.querySerializer:ae(e.querySerializer),url:e.url}),F=(e,t)=>{let r={...e,...t};if(r.baseUrl?.endsWith("/"))r.baseUrl=r.baseUrl.substring(0,r.baseUrl.length-1);return r.headers=G(e.headers,t.headers),r},Le=(e)=>{let t=[];return e.forEach((r,n)=>{t.push([n,r])}),t},G=(...e)=>{let t=new Headers;for(let r of e){if(!r)continue;let n=r instanceof Headers?Le(r):Object.entries(r);for(let[o,d]of n)if(d===null)t.delete(o);else if(Array.isArray(d))for(let s of d)t.append(o,s);else if(d!==void 0)t.set(o,typeof d==="object"?JSON.stringify(d):d)}return t};class W{fns=[];clear(){this.fns=[]}eject(e){let t=this.getInterceptorIndex(e);if(this.fns[t])this.fns[t]=null}exists(e){let t=this.getInterceptorIndex(e);return Boolean(this.fns[t])}getInterceptorIndex(e){if(typeof e==="number")return this.fns[e]?e:-1;return this.fns.indexOf(e)}update(e,t){let r=this.getInterceptorIndex(e);if(this.fns[r])return this.fns[r]=t,e;return!1}use(e){return this.fns.push(e),this.fns.length-1}}var pe=()=>({error:new W,request:new W,response:new W}),Ce=ae({allowReserved:!1,array:{explode:!0,style:"form"},object:{explode:!0,style:"deepObject"}}),ze={"Content-Type":"application/json"},T=(e={})=>({...ie,headers:ze,parseAs:"auto",querySerializer:Ce,...e});var H=(e={})=>{let t=F(T(),e),r=()=>({...t}),n=(c)=>(t=F(t,c),r()),o=pe(),d=async(c)=>{let i={...t,...c,fetch:c.fetch??t.fetch??globalThis.fetch,headers:G(t.headers,c.headers),serializedBody:void 0};if(i.security)await de({...i,security:i.security});if(i.requestValidator)await i.requestValidator(i);if(i.body!==void 0&&i.bodySerializer)i.serializedBody=i.bodySerializer(i.body);if(i.body===void 0||i.serializedBody==="")i.headers.delete("Content-Type");let w=i,A=B(w);return{opts:w,url:A}},s=async(c)=>{let{opts:i,url:w}=await d(c),A={redirect:"follow",...i,body:v(i)},m=new Request(w,A);for(let l of o.request.fns)if(l)m=await l(m,i);let O=i.fetch,p;try{p=await O(m)}catch(l){let f=l;for(let y of o.error.fns)if(y)f=await y(l,void 0,m,i);if(f=f||{},i.throwOnError)throw f;return i.responseStyle==="data"?void 0:{error:f,request:m,response:void 0}}for(let l of o.response.fns)if(l)p=await l(p,m,i);let h={request:m,response:p};if(p.ok){let l=(i.parseAs==="auto"?ue(p.headers.get("Content-Type")):i.parseAs)??"json";if(p.status===204||p.headers.get("Content-Length")==="0"){let y;switch(l){case"arrayBuffer":case"blob":case"text":y=await p[l]();break;case"formData":y=new FormData;break;case"stream":y=p.body;break;case"json":default:y={};break}return i.responseStyle==="data"?y:{data:y,...h}}let f;switch(l){case"arrayBuffer":case"blob":case"formData":case"text":f=await p[l]();break;case"json":{let y=await p.text();f=y?JSON.parse(y):{};break}case"stream":return i.responseStyle==="data"?p.body:{data:p.body,...h}}if(l==="json"){if(i.responseValidator)await i.responseValidator(f);if(i.responseTransformer)f=await i.responseTransformer(f)}return i.responseStyle==="data"?f:{data:f,...h}}let q=await p.text(),b;try{b=JSON.parse(q)}catch{}let E=b??q,I=E;for(let l of o.error.fns)if(l)I=await l(E,p,m,i);if(I=I||{},i.throwOnError)throw I;return i.responseStyle==="data"?void 0:{error:I,...h}},a=(c)=>(i)=>s({...i,method:c}),u=(c)=>async(i)=>{let{opts:w,url:A}=await d(i);return ne({...w,body:w.body,headers:w.headers,method:c,onRequest:async(m,O)=>{let p=new Request(m,O);for(let h of o.request.fns)if(h)p=await h(p,w);return p},serializedBody:v(w),url:A})};return{buildUrl:(c)=>B({...t,...c}),connect:a("CONNECT"),delete:a("DELETE"),get:a("GET"),getConfig:r,head:a("HEAD"),interceptors:o,options:a("OPTIONS"),patch:a("PATCH"),post:a("POST"),put:a("PUT"),request:s,setConfig:n,sse:{connect:u("CONNECT"),delete:u("DELETE"),get:u("GET"),head:u("HEAD"),options:u("OPTIONS"),patch:u("PATCH"),post:u("POST"),put:u("PUT"),trace:u("TRACE")},trace:a("TRACE")}};var R=H(T());var Q=(e)=>(e.client??R).get({security:[{scheme:"bearer",type:"http"}],url:"/studio/agent-runs",...e}),N=(e)=>(e.client??R).get({security:[{scheme:"bearer",type:"http"}],url:"/studio/agent-runs/{runId}",...e}),U=(e)=>(e.client??R).post({security:[{scheme:"bearer",type:"http"}],url:"/studio/apps/by-slug/{slug}/views/{viewId}/data/{instanceId}/relation-members/search",...e,headers:{"Content-Type":"application/json",...e.headers}}),K=(e)=>(e.client??R).post({security:[{scheme:"bearer",type:"http"}],url:"/studio/apps/by-slug/{slug}/views/{viewId}/data/search",...e,headers:{"Content-Type":"application/json",...e.headers}}),_=(e)=>(e.client??R).get({security:[{scheme:"bearer",type:"http"}],url:"/studio/apps/by-slug/{slug}/views/{viewId}/data/{instanceId}",...e}),J=(e)=>(e.client??R).patch({security:[{scheme:"bearer",type:"http"}],url:"/studio/apps/by-slug/{slug}/views/{viewId}/data/{instanceId}",...e,headers:{"Content-Type":"application/json",...e.headers}}),j=(e)=>(e.client??R).get({security:[{scheme:"bearer",type:"http"}],url:"/studio/workflow-runs",...e}),X=(e)=>(e.client??R).get({security:[{scheme:"bearer",type:"http"}],url:"/studio/workflow-runs/{runId}",...e});var D=(e,t,r,n)=>{let o={_id:e,baseUrl:t?.baseUrl||(t?.client??R).getConfig().baseUrl};if(r)o._infinite=r;if(n)o.tags=n;if(t?.body)o.body=t.body;if(t?.headers)o.headers=t.headers;if(t?.path)o.path=t.path;if(t?.query)o.query=t.query;return[o]},ce=(e)=>D("studioAgentRunsList",e),We=(e)=>x({queryFn:async({queryKey:t,signal:r})=>{let{data:n}=await Q({...e,...t[0],signal:r,throwOnError:!0});return n},queryKey:ce(e)}),M=(e,t)=>{let r={...e[0]};if(t.body)r.body={...e[0].body,...t.body};if(t.headers)r.headers={...e[0].headers,...t.headers};if(t.path)r.path={...e[0].path,...t.path};if(t.query)r.query={...e[0].query,...t.query};return r},le=(e)=>D("studioAgentRunsList",e,!0),Ge=(e)=>P({queryFn:async({pageParam:t,queryKey:r,signal:n})=>{let d=M(r,typeof t==="object"?t:{query:{page:t}}),{data:s}=await Q({...e,...d,signal:n,throwOnError:!0});return s},queryKey:le(e)}),ye=(e)=>D("studioAgentRunsGet",e),Qe=(e)=>x({queryFn:async({queryKey:t,signal:r})=>{let{data:n}=await N({...e,...t[0],signal:r,throwOnError:!0});return n},queryKey:ye(e)}),fe=(e)=>D("studioViewDataSearchMembers",e),Ue=(e)=>x({queryFn:async({queryKey:t,signal:r})=>{let{data:n}=await U({...e,...t[0],signal:r,throwOnError:!0});return n},queryKey:fe(e)}),Se=(e)=>D("studioViewDataSearchMembers",e,!0),Ke=(e)=>P({queryFn:async({pageParam:t,queryKey:r,signal:n})=>{let d=M(r,typeof t==="object"?t:{body:{cursor:t}}),{data:s}=await U({...e,...d,signal:n,throwOnError:!0});return s},queryKey:Se(e)}),we=(e)=>D("studioViewDataSearch",e),je=(e)=>x({queryFn:async({queryKey:t,signal:r})=>{let{data:n}=await K({...e,...t[0],signal:r,throwOnError:!0});return n},queryKey:we(e)}),he=(e)=>D("studioViewDataSearch",e,!0),Pe=(e)=>P({queryFn:async({pageParam:t,queryKey:r,signal:n})=>{let d=M(r,typeof t==="object"?t:{body:{cursor:t}}),{data:s}=await K({...e,...d,signal:n,throwOnError:!0});return s},queryKey:he(e)}),Re=(e)=>D("studioViewDataGetItem",e),Me=(e)=>x({queryFn:async({queryKey:t,signal:r})=>{let{data:n}=await _({...e,...t[0],signal:r,throwOnError:!0});return n},queryKey:Re(e)}),ve=(e)=>({mutationFn:async(r)=>{let{data:n}=await J({...e,...r,throwOnError:!0});return n}}),me=(e)=>D("studioWorkflowRunsList",e),Be=(e)=>x({queryFn:async({queryKey:t,signal:r})=>{let{data:n}=await j({...e,...t[0],signal:r,throwOnError:!0});return n},queryKey:me(e)}),ge=(e)=>D("studioWorkflowRunsList",e,!0),Fe=(e)=>P({queryFn:async({pageParam:t,queryKey:r,signal:n})=>{let d=M(r,typeof t==="object"?t:{query:{page:t}}),{data:s}=await j({...e,...d,signal:n,throwOnError:!0});return s},queryKey:ge(e)}),De=(e)=>D("studioWorkflowRunsGet",e),He=(e)=>x({queryFn:async({queryKey:t,signal:r})=>{let{data:n}=await X({...e,...t[0],signal:r,throwOnError:!0});return n},queryKey:De(e)});export{R as client,N as studioAgentRunsGet,Qe as studioAgentRunsGetOptions,ye as studioAgentRunsGetQueryKey,Q as studioAgentRunsList,Ge as studioAgentRunsListInfiniteOptions,le as studioAgentRunsListInfiniteQueryKey,We as studioAgentRunsListOptions,ce as studioAgentRunsListQueryKey,_ as studioViewDataGetItem,Me as studioViewDataGetItemOptions,Re as studioViewDataGetItemQueryKey,K as studioViewDataSearch,Pe as studioViewDataSearchInfiniteOptions,he as studioViewDataSearchInfiniteQueryKey,U as studioViewDataSearchMembers,Ke as studioViewDataSearchMembersInfiniteOptions,Se as studioViewDataSearchMembersInfiniteQueryKey,Ue as studioViewDataSearchMembersOptions,fe as studioViewDataSearchMembersQueryKey,je as studioViewDataSearchOptions,we as studioViewDataSearchQueryKey,J as studioViewDataUpdateItem,ve as studioViewDataUpdateItemMutation,X as studioWorkflowRunsGet,He as studioWorkflowRunsGetOptions,De as studioWorkflowRunsGetQueryKey,j as studioWorkflowRunsList,Fe as studioWorkflowRunsListInfiniteOptions,ge as studioWorkflowRunsListInfiniteQueryKey,Be as studioWorkflowRunsListOptions,me as studioWorkflowRunsListQueryKey};
@@ -1,5 +1,5 @@
1
1
  import type { Client, Options as Options2, TEndpointData } from "./client";
2
- import type { StudioAgentRunsGetData, StudioAgentRunsGetErrors, StudioAgentRunsGetResponses, StudioAgentRunsListData, StudioAgentRunsListErrors, StudioAgentRunsListResponses, StudioViewDataGetItemData, StudioViewDataGetItemErrors, StudioViewDataGetItemResponses, StudioViewDataSearchData, StudioViewDataSearchErrors, StudioViewDataSearchResponses, StudioViewDataUpdateItemData, StudioViewDataUpdateItemErrors, StudioViewDataUpdateItemResponses, StudioWorkflowRunsGetData, StudioWorkflowRunsGetErrors, StudioWorkflowRunsGetResponses, StudioWorkflowRunsListData, StudioWorkflowRunsListErrors, StudioWorkflowRunsListResponses } from "./types.gen";
2
+ import type { StudioAgentRunsGetData, StudioAgentRunsGetErrors, StudioAgentRunsGetResponses, StudioAgentRunsListData, StudioAgentRunsListErrors, StudioAgentRunsListResponses, StudioViewDataGetItemData, StudioViewDataGetItemErrors, StudioViewDataGetItemResponses, StudioViewDataSearchData, StudioViewDataSearchErrors, StudioViewDataSearchMembersData, StudioViewDataSearchMembersErrors, StudioViewDataSearchMembersResponses, StudioViewDataSearchResponses, StudioViewDataUpdateItemData, StudioViewDataUpdateItemErrors, StudioViewDataUpdateItemResponses, StudioWorkflowRunsGetData, StudioWorkflowRunsGetErrors, StudioWorkflowRunsGetResponses, StudioWorkflowRunsListData, StudioWorkflowRunsListErrors, StudioWorkflowRunsListResponses } from "./types.gen";
3
3
  export type Options<TData extends TEndpointData = TEndpointData, ThrowOnError extends boolean = boolean, TResponse = unknown> = Options2<TData, ThrowOnError, TResponse> & {
4
4
  /**
5
5
  * You can provide a client instance returned by `createClient()` instead of
@@ -15,6 +15,7 @@ export type Options<TData extends TEndpointData = TEndpointData, ThrowOnError ex
15
15
  };
16
16
  export declare const studioAgentRunsList: <ThrowOnError extends boolean = false>(options: Options<StudioAgentRunsListData, ThrowOnError>) => import("./client").RequestResult<StudioAgentRunsListResponses, StudioAgentRunsListErrors, ThrowOnError, "fields">;
17
17
  export declare const studioAgentRunsGet: <ThrowOnError extends boolean = false>(options: Options<StudioAgentRunsGetData, ThrowOnError>) => import("./client").RequestResult<StudioAgentRunsGetResponses, StudioAgentRunsGetErrors, ThrowOnError, "fields">;
18
+ export declare const studioViewDataSearchMembers: <ThrowOnError extends boolean = false>(options: Options<StudioViewDataSearchMembersData, ThrowOnError>) => import("./client").RequestResult<StudioViewDataSearchMembersResponses, StudioViewDataSearchMembersErrors, ThrowOnError, "fields">;
18
19
  export declare const studioViewDataSearch: <ThrowOnError extends boolean = false>(options: Options<StudioViewDataSearchData, ThrowOnError>) => import("./client").RequestResult<StudioViewDataSearchResponses, StudioViewDataSearchErrors, ThrowOnError, "fields">;
19
20
  export declare const studioViewDataGetItem: <ThrowOnError extends boolean = false>(options: Options<StudioViewDataGetItemData, ThrowOnError>) => import("./client").RequestResult<StudioViewDataGetItemResponses, StudioViewDataGetItemErrors, ThrowOnError, "fields">;
20
21
  export declare const studioViewDataUpdateItem: <ThrowOnError extends boolean = false>(options: Options<StudioViewDataUpdateItemData, ThrowOnError>) => import("./client").RequestResult<StudioViewDataUpdateItemResponses, StudioViewDataUpdateItemErrors, ThrowOnError, "fields">;
@@ -20,6 +20,13 @@ export type EntityFileFieldDiagnosticEncoded = {
20
20
  message: string;
21
21
  reason: "invalid_form" | "unknown_attachment" | "invalid_upload" | "upload_consumed" | "type_not_accepted" | "file_too_large" | "unknown_stored_file";
22
22
  };
23
+ export type EntityRelationFieldDiagnosticEncoded = {
24
+ _tag: "EntityRelationFieldDiagnostic";
25
+ code: "relation_field_invalid";
26
+ field: string;
27
+ message: string;
28
+ reason: "read_only" | "cardinality_conflict" | "invalid_value" | "duplicate_target" | "max_items_exceeded" | "target_not_found" | "wrong_target_schema" | "target_deleted" | "base_filter_mismatch";
29
+ };
23
30
  export type EntityUniqueFieldConflictDiagnosticEncoded = {
24
31
  _tag: "EntityUniqueFieldConflictDiagnostic";
25
32
  code: "unique_field_conflict";
@@ -29,10 +36,22 @@ export type EntityUniqueFieldConflictDiagnosticEncoded = {
29
36
  export type EntityFileFieldConflictDiagnosticEncoded = {
30
37
  _tag: "EntityFileFieldConflictDiagnostic";
31
38
  code: "file_field_connector_owned";
39
+ field: string;
32
40
  message: string;
33
41
  };
34
- export type Suspend1 = null | boolean | number | string | Array<Suspend1> | {
35
- [key: string]: Suspend1;
42
+ export type Suspend2 = null | boolean | number | string | Array<Suspend2> | {
43
+ [key: string]: Suspend2;
44
+ };
45
+ export type InvalidIncludePathEncoded = {
46
+ _tag: "InvalidIncludePath";
47
+ message: string;
48
+ path: string;
49
+ reason: "malformed" | "too_deep" | "unknown_field";
50
+ };
51
+ export type KnowledgeReadLimitExceededEncoded = {
52
+ _tag: "KnowledgeReadLimitExceeded";
53
+ budget: "work" | "nodes" | "relation_ids" | "bytes";
54
+ message: string;
36
55
  };
37
56
  export type EffectHttpApiErrorBadRequestEncoded = {
38
57
  _tag: "BadRequest";
@@ -98,6 +117,7 @@ export type StudioAgentRunsListResponses = {
98
117
  completedAt: string | null;
99
118
  createdAt: string;
100
119
  errorCode: string | null;
120
+ errorMessage: string | null;
101
121
  id: string;
102
122
  initiator: {
103
123
  kind: "user";
@@ -166,6 +186,7 @@ export type StudioAgentRunsGetResponses = {
166
186
  completedAt: string | null;
167
187
  createdAt: string;
168
188
  errorCode: string | null;
189
+ errorMessage: string | null;
169
190
  id: string;
170
191
  initiator: {
171
192
  kind: "user";
@@ -177,6 +198,65 @@ export type StudioAgentRunsGetResponses = {
177
198
  };
178
199
  };
179
200
  export type StudioAgentRunsGetResponse = StudioAgentRunsGetResponses[keyof StudioAgentRunsGetResponses];
201
+ export type StudioViewDataSearchMembersData = {
202
+ body: {
203
+ cursor?: string | null;
204
+ filters?: Array<{
205
+ caseSensitive?: boolean;
206
+ field: string;
207
+ operator: "eq" | "ne" | "in" | "nin" | "contains" | "not_contains" | "starts_with" | "ends_with" | "gt" | "gte" | "lt" | "lte" | "exists" | "is_empty" | "is_not_empty";
208
+ value: Suspend2 | Array<Suspend2>;
209
+ }>;
210
+ include?: Array<string>;
211
+ limit?: number;
212
+ sort?: Array<{
213
+ direction: "asc" | "desc";
214
+ field: string;
215
+ }>;
216
+ text?: string;
217
+ field: string;
218
+ };
219
+ headers: {
220
+ authorization?: string;
221
+ "x-organization-id": string;
222
+ };
223
+ path: {
224
+ slug: string;
225
+ viewId: string;
226
+ instanceId: string;
227
+ };
228
+ query?: never;
229
+ url: "/studio/apps/by-slug/{slug}/views/{viewId}/data/{instanceId}/relation-members/search";
230
+ };
231
+ export type StudioViewDataSearchMembersErrors = {
232
+ /**
233
+ * InvalidIncludePath | KnowledgeReadLimitExceeded | BadRequest
234
+ */
235
+ 400: InvalidIncludePathEncoded | KnowledgeReadLimitExceededEncoded | EffectHttpApiErrorBadRequestEncoded;
236
+ /**
237
+ * Unauthorized
238
+ */
239
+ 401: EffectHttpApiErrorUnauthorizedEncoded;
240
+ /**
241
+ * Forbidden
242
+ */
243
+ 403: EffectHttpApiErrorForbiddenEncoded;
244
+ /**
245
+ * NotFound
246
+ */
247
+ 404: EffectHttpApiErrorNotFoundEncoded;
248
+ /**
249
+ * InternalServerError
250
+ */
251
+ 500: EffectHttpApiErrorInternalServerErrorEncoded;
252
+ };
253
+ export type StudioViewDataSearchMembersError = StudioViewDataSearchMembersErrors[keyof StudioViewDataSearchMembersErrors];
254
+ export type StudioViewDataSearchMembersResponses = {
255
+ /**
256
+ * Success
257
+ */
258
+ 200: unknown;
259
+ };
180
260
  export type StudioViewDataSearchData = {
181
261
  body: {
182
262
  cursor?: string | null;
@@ -184,8 +264,9 @@ export type StudioViewDataSearchData = {
184
264
  caseSensitive?: boolean;
185
265
  field: string;
186
266
  operator: "eq" | "ne" | "in" | "nin" | "contains" | "not_contains" | "starts_with" | "ends_with" | "gt" | "gte" | "lt" | "lte" | "exists" | "is_empty" | "is_not_empty";
187
- value: Suspend1 | Array<Suspend1>;
267
+ value: Suspend2 | Array<Suspend2>;
188
268
  }>;
269
+ include?: Array<string>;
189
270
  limit?: number;
190
271
  sort?: Array<{
191
272
  direction: "asc" | "desc";
@@ -206,9 +287,9 @@ export type StudioViewDataSearchData = {
206
287
  };
207
288
  export type StudioViewDataSearchErrors = {
208
289
  /**
209
- * BadRequest
290
+ * InvalidIncludePath | KnowledgeReadLimitExceeded | BadRequest
210
291
  */
211
- 400: EffectHttpApiErrorBadRequestEncoded;
292
+ 400: InvalidIncludePathEncoded | KnowledgeReadLimitExceededEncoded | EffectHttpApiErrorBadRequestEncoded;
212
293
  /**
213
294
  * Unauthorized
214
295
  */
@@ -244,14 +325,16 @@ export type StudioViewDataGetItemData = {
244
325
  viewId: string;
245
326
  instanceId: string;
246
327
  };
247
- query?: never;
328
+ query?: {
329
+ include?: string;
330
+ };
248
331
  url: "/studio/apps/by-slug/{slug}/views/{viewId}/data/{instanceId}";
249
332
  };
250
333
  export type StudioViewDataGetItemErrors = {
251
334
  /**
252
- * BadRequest
335
+ * InvalidIncludePath | KnowledgeReadLimitExceeded | BadRequest
253
336
  */
254
- 400: EffectHttpApiErrorBadRequestEncoded;
337
+ 400: InvalidIncludePathEncoded | KnowledgeReadLimitExceededEncoded | EffectHttpApiErrorBadRequestEncoded;
255
338
  /**
256
339
  * Unauthorized
257
340
  */
@@ -299,9 +382,9 @@ export type StudioViewDataUpdateItemData = {
299
382
  };
300
383
  export type StudioViewDataUpdateItemErrors = {
301
384
  /**
302
- * EntityValueDiagnostic | EntityFileFieldDiagnostic | BadRequest
385
+ * EntityValueDiagnostic | EntityFileFieldDiagnostic | EntityRelationFieldDiagnostic | KnowledgeReadLimitExceeded | BadRequest
303
386
  */
304
- 400: EntityValueDiagnosticEncoded | EntityFileFieldDiagnosticEncoded | EffectHttpApiErrorBadRequestEncoded;
387
+ 400: EntityValueDiagnosticEncoded | EntityFileFieldDiagnosticEncoded | EntityRelationFieldDiagnosticEncoded | KnowledgeReadLimitExceededEncoded | EffectHttpApiErrorBadRequestEncoded;
305
388
  /**
306
389
  * Unauthorized
307
390
  */
@@ -380,6 +463,7 @@ export type StudioWorkflowRunsListResponses = {
380
463
  completedAt: string | null;
381
464
  createdAt: string;
382
465
  errorCode: string | null;
466
+ errorMessage: string | null;
383
467
  id: string;
384
468
  initiator: {
385
469
  kind: "user";
@@ -451,6 +535,7 @@ export type StudioWorkflowRunsGetResponses = {
451
535
  completedAt: string | null;
452
536
  createdAt: string;
453
537
  errorCode: string | null;
538
+ errorMessage: string | null;
454
539
  id: string;
455
540
  initiator: {
456
541
  kind: "user";
@@ -467,7 +552,13 @@ export type StudioWorkflowRunsGetResponses = {
467
552
  steps: Array<{
468
553
  attempt: number;
469
554
  completedAt: string | null;
555
+ durationMs: number | null;
556
+ error: {
557
+ code: string | null;
558
+ message: string;
559
+ } | null;
470
560
  nodeId: string;
561
+ nodeType: string | null;
471
562
  startedAt: string | null;
472
563
  status: string;
473
564
  }>;
package/dist/workflow.js CHANGED
@@ -1 +1 @@
1
- var Mn=Object.defineProperty;var Bn=(o)=>o;function Ln(o,e){this[o]=Bn.bind(null,e)}var _n=(o,e)=>{for(var n in e)Mn(o,n,{get:e[n],enumerable:!0,configurable:!0,set:Ln.bind(e,n)})};var b=(o,e,n)=>()=>{if(o)try{e=o(o=0)}catch(t){n=[t]}if(n)throw n[0];return e};var se=(o)=>Boolean(o)===o,Hn=(o)=>Object.prototype.toString.call(o)==="[object Function]",J=(o)=>Number(o)===o,W=(o)=>o!==null&&Object(o)===o&&!Hn(o),P=(o)=>{let e=Object.prototype.toString.call(o);if(o===null||e==="[object Boolean]"||e==="[object Number]"||e==="[object String]")return!0;if(Array.isArray(o))return o.every(P);return W(o)&&Object.values(o).every(P)},T=(o)=>P(o)&&W(o)&&!Array.isArray(o),p=(o)=>String(o)===o,Si=(o)=>o===void 0,Ei=(o)=>{let e=o;if(p(e))return e;if(se(e)||J(e))return String(e);return""};import{ArrowRight as Kn,CheckCircle2 as Un,Wrench as zn,Zap as Qn}from"@collective-intelligence/ui-react/icons";var vo=function(e){switch(e){case"trigger":case"trigger_node":return{icon:Qn,label:"Trigger",tone:"bg-violet-500/12 text-violet-600 dark:text-violet-400"};case"input_node":return{icon:Kn,label:"Input",tone:"bg-sky-500/12 text-sky-600 dark:text-sky-400"};case"output_node":return{icon:Un,label:"Output",tone:"bg-emerald-500/12 text-emerald-600 dark:text-emerald-400"};default:return{icon:zn,label:"Action",tone:"bg-slate-500/12 text-slate-600 dark:text-slate-400"}}};var Wo=()=>{};import{AlertTriangle as Gn,Plus as Yn}from"@collective-intelligence/ui-react/icons";import{Tooltip as Zn,TooltipContent as Xn,TooltipTrigger as et}from"@collective-intelligence/ui-react/ui";import{Handle as ot,Position as Co,useNodeId as nt,useUpdateNodeInternals as tt}from"@xyflow/react";import{useEffect as rt}from"react";import{jsx as w,jsxs as D,Fragment as lt}from"react/jsx-runtime";var it,Fo=function(e){if(p(e))return e;if(W(e)&&"kind"in e&&"text"in e){let n=e;if(n.kind==="literal"&&p(n.text))return n.text}if(W(e)&&"en"in e){let n=e.en;return p(n)?n:""}return""},st=({issues:o,title:e})=>{let n=`${o.length} ${o.length===1?"issue":"issues"} on ${e}`;return D(Zn,{children:[w(et,{asChild:!0,children:w("button",{type:"button","aria-label":n,className:"nodrag nopan absolute -right-2 -top-2 z-20 flex size-7 items-center justify-center rounded-full border border-[color-mix(in_oklab,var(--warning)_45%,var(--border))] bg-[color-mix(in_oklab,var(--warning)_16%,var(--card))] text-[color-mix(in_oklab,var(--warning)_80%,var(--foreground))] shadow-sm transition hover:bg-[color-mix(in_oklab,var(--warning)_24%,var(--card))] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40",onClick:(t)=>{t.stopPropagation()},onPointerDown:(t)=>{t.stopPropagation()},children:w(Gn,{"aria-hidden":"true",className:"size-4"})})}),D(Xn,{side:"top",sideOffset:6,className:"max-w-72 p-3",children:[w("p",{className:"font-semibold",children:n}),w("ul",{className:"mt-1.5 space-y-1",children:o.map((t)=>w("li",{className:"leading-snug",children:t.message},`${t.code}:${t.message}`))})]})]})},So=({port:o,side:e,index:n=0,count:t=1})=>{let r=e==="left"?Co.Left:Co.Right,i={top:`${(n+1)/(t+1)*100}%`},s=o.maxConnections===null?"unlimited connections":`maximum ${o.maxConnections??1} connections`,a=[...Array.isArray(o.allowedTemplateKinds)?o.allowedTemplateKinds.filter(p):[],...Array.isArray(o.allowedTemplateFqns)?o.allowedTemplateFqns.filter(p):[]],l=`${o.key} — ${o.direction}, ${s}${a.length?`; accepts ${a.join(", ")}`:""}`;return D(lt,{children:[w(ot,{id:o.key,type:o.direction==="input"?"target":"source",position:r,title:l,"aria-label":l,style:i,className:o.direction==="input"?"!h-5 !w-5 !rounded-sm !border-2 !border-background !bg-primary":"!h-5 !w-5 !border-2 !border-background !bg-primary"}),w("span",{style:i,className:`pointer-events-none absolute z-10 -translate-y-full whitespace-nowrap rounded bg-card px-1 text-[10px] text-muted-foreground ${e==="left"?"right-full mr-2":"left-full ml-2"}`,children:o.key})]})},at=({signature:o})=>{let e=nt(),n=tt();return rt(()=>{if(e!==null)n(e)},[e,o,n]),null},oe=({context:o,accent:e})=>{let n=o.ports.filter((f)=>f.direction==="input"),t=o.ports.filter((f)=>f.direction==="output"),r=new Set(o.chart.connectedOutputPortKeys),i=o.chart.fields??[],s=Fo(o.template.label),a=o.chart.title??s,l=o.chart.subtitle??(a===s?void 0:s),d=o.chart.description??Fo(o.template.description),{icon:c}=o.chart.presentation??vo(o.template.kind),x=o.chart.presentation?.tone??it[e],k=o.diagnostics.filter((f)=>f.severity!=="info");return D("div",{className:"relative w-[262px]",children:[k.length?w(st,{issues:k,title:a}):null,D("button",{type:"button","aria-label":`Edit ${a}`,style:{minHeight:(Math.max(n.length,t.length)+1)*28},onDoubleClick:()=>{o.chart.onOpenDetails()},className:`workflow-node-drag group relative z-10 w-full cursor-pointer rounded-2xl border bg-card p-4 text-left shadow-[0_2px_10px_-4px_rgba(30,29,26,0.12)] transition-[border-color,box-shadow] hover:shadow-[0_8px_24px_-14px_rgba(30,29,26,0.24)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40 ${x}`,children:[o.ports.length>0?w(at,{signature:o.ports.map((f)=>`${f.direction}:${f.key}`).join("|")}):null,n.map((f,m)=>w(So,{port:f,side:"left",index:m,count:n.length},f.key)),t.map((f,m)=>w(So,{port:f,side:"right",index:m,count:t.length},f.key)),D("div",{className:"flex items-start gap-3",children:[w("div",{className:`flex size-10 shrink-0 items-center justify-center rounded-xl ${x}`,children:w(c,{className:"size-5"})}),D("div",{className:"min-w-0",children:[w("div",{className:"truncate text-sm font-semibold text-foreground",children:a}),p(l)&&l.length>0?w("p",{className:"truncate font-mono text-[11px] text-muted-foreground",children:l}):null]})]}),(()=>{if(p(d)&&d.length>0)return D("div",{className:"mt-3 space-y-1 border-t border-border/70 pt-3",children:[p(d)&&d.length>0?w("p",{className:"text-xs leading-snug text-muted-foreground",children:d}):null,p(o.chart.summary)&&o.chart.summary.length>0?w("p",{className:"text-xs text-muted-foreground",children:o.chart.summary}):null]});return null})(),i.length?w("div",{className:"mt-3 space-y-1.5 border-t border-border/70 pt-3",children:i.slice(0,4).map((f)=>w("div",{className:"truncate rounded-md bg-muted px-2.5 py-1.5 font-mono text-[11px] text-foreground",children:f},f))}):null]}),(()=>{if(t.length)return w("div",{className:`absolute left-full top-0 h-full ${t.length===1?"w-24":"w-36"}`,children:t.map((f,m)=>r.has(f.key)?null:D("div",{className:"absolute left-0 right-0 flex -translate-y-1/2 items-center gap-1.5",style:{top:`${(m+1)/(t.length+1)*100}%`},children:[w("div",{className:"h-px min-w-8 flex-1 bg-foreground/40"}),r.has(f.key)?null:w("button",{type:"button",className:"flex size-6 shrink-0 items-center justify-center rounded-md border border-border-strong bg-card text-muted-foreground shadow-sm transition hover:border-primary hover:text-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40","aria-label":`Add after ${a} ${f.key}`,title:`Add after ${f.key}`,onClick:(u)=>{u.stopPropagation(),o.chart.onAddFromPort?.(f)},children:w(Yn,{className:"size-3.5"})})]},f.key))});return null})()]})};var je=b(()=>{Wo();it={emerald:"bg-[color-mix(in_oklab,var(--chart-2)_12%,var(--card))] text-emerald-600 border-emerald-500/30",sky:"bg-[color-mix(in_oklab,var(--chart-4)_12%,var(--card))] text-sky-600 border-sky-500/30",slate:"bg-[color-mix(in_oklab,var(--bg-surface-alt)_55%,var(--card))] text-slate-600 border-slate-500/30",violet:"bg-[color-mix(in_oklab,var(--chart-5)_12%,var(--card))] text-violet-600 border-violet-500/30"}});var dt=(o)=>o.trim().replaceAll(/[^a-zA-Z0-9]+/gu,"_").toUpperCase(),ct=(o)=>{if(typeof o.module==="string")return{exportName:o.exportName,module:o.module};return{exportName:o.exportName,module:o.module.pathname.split("/").pop()??"unknown-module"}},ae=(o)=>{let{declaration:e,phase:n,message:t,cause:r,sourceMap:i}=o,{target:s}=e,a=["FE",n.toUpperCase(),s.packageFqn,s.fqn,s.version,s.role].map(dt).join("-");return{componentFqn:s.fqn,diagnosticId:a,message:t,packageFqn:s.packageFqn,phase:n,role:s.role,source:ct(e.implementation.render),version:s.version,...i===void 0?void 0:{sourceMap:i},...r===void 0?void 0:{cause:String(r instanceof Error?r.message:r)}}};var Eo=()=>{};import{Component as ut,createContext as pt,createElement as ft,useContext as mt,useEffect as gt,useLayoutEffect as xt,useRef as yt,useState as bt}from"react";import"react";import{jsx as be,jsxs as ht}from"react/jsx-runtime";var kt=(o)=>ht("div",{role:"alert","data-diagnostic-id":o.diagnosticId,children:["Hosted extension failed. Diagnostic ID: ",o.diagnosticId]}),To,Oo,Jo,Po=({diagnostic:o})=>mt(Jo)(o),Vo=(o,e)=>{console.error(`Hosted extension ${o.diagnosticId}: ${o.message}`,e)},Do,wt,ne=({componentProps:o,declaration:e,fallback:n=wt,implementationRole:t="render",load:r,onDiagnostic:i})=>{let[s,a]=bt(null),l=yt({load:r,onDiagnostic:i});xt(()=>{l.current={load:r,onDiagnostic:i}},[r,i]),gt(()=>{let x=!0;return(async()=>{try{let f=await l.current.load();if(!x)return;let m=e.implementation[t]??e.implementation.render,u=f[m.exportName];if(u===void 0){let h=ae({declaration:e,message:`Export "${m.exportName}" was not a React component.`,phase:"load"});Vo(h,h),l.current.onDiagnostic?.(h),a({declaration:e,diagnostic:h,implementationRole:t,kind:"failed"});return}a({component:u,declaration:e,implementationRole:t,kind:"ready"})}catch(f){if(!x)return;let m=ae({cause:f,declaration:e,message:"The hosted component could not be loaded.",phase:"load"});Vo(m,f),l.current.onDiagnostic?.(m),a({declaration:e,diagnostic:m,implementationRole:t,kind:"failed"})}})(),()=>{x=!1}},[e,t]);let d=s?.declaration===e&&s.implementationRole===t?s:null;if(d===null)return n;if(d.kind==="failed")return be(Po,{diagnostic:d.diagnostic});let c={children:ft(d.component,o),declaration:e,...i===void 0?void 0:{onDiagnostic:i}};return be(Do,{...c})};var ke=b(()=>{Eo();To=Symbol.for("@collective-intelligence/extensions-sdk-frontend-react/hosted-extension-failure"),Oo=globalThis,Jo=Oo[To]??pt(kt);Oo[To]=Jo;Do=class Do extends ut{constructor(o){super(o);this.state={error:null}}static getDerivedStateFromError(o){return{error:o}}componentDidCatch(o,e){let n=ae({cause:o,declaration:this.props.declaration,message:"The hosted component threw while rendering.",phase:"render"});this.props.onDiagnostic?.(n)}render(){if(this.state.error!==null){let o=ae({cause:this.state.error,declaration:this.props.declaration,message:"The hosted component threw while rendering.",phase:"render"});return be(Po,{diagnostic:o})}return this.props.children}};wt=be("output",{children:"Loading extension…"})});var te=async(o,e="render")=>{let n=o.implementation[e]??o.implementation.render;if(n.load===void 0)throw Error(`Workflow contribution "${o.target.fqn}" requires a retained module loader for "${e}".`);return await n.load()};import{infiniteQueryOptions as vt,queryOptions as Wt}from"@tanstack/react-query";var Ro,Ui=(o)=>{Ro=o},No=(o)=>{let{optionsProvider:e,...n}=o;return n},Ao=(o)=>["workflow-field-options",No(o)],Io=(o,e)=>{let n=o.optionsProvider??Ro;return n===void 0?Promise.resolve({options:[]}):n(No(o),e.signal)},le=(o)=>Wt({queryFn:async(e)=>await Io(o,e),queryKey:Ao(o)}),zi=(o)=>vt({getNextPageParam:(e)=>e.nextCursor,initialPageParam:null,queryFn:async({pageParam:e,signal:n})=>await Io({...o,cursor:e},{signal:n}),queryKey:Ao({...o,cursor:null})});var $e=()=>{};import{Combobox as Ct,Label as Ft}from"@collective-intelligence/ui-react/ui";import{useQuery as St}from"@tanstack/react-query";import{jsx as jo,jsxs as Vt}from"react/jsx-runtime";var Et=(o)=>{if(o?.kind==="literal")return o.text;return o?.kind==="translation"?o.default:void 0},$o=({context:o})=>{let{remoteOptions:e}=o,n={catalogTemplateId:e?.catalogTemplateId??"",dependencies:e?.dependencies??{},limit:50,organizationId:e?.organizationId??""},t=e?.config===void 0?le(n):le({...n,config:e.config}),r=(()=>{if(e?.optionsProvider===void 0)return t;if(e.config===void 0)return le({...n,optionsProvider:e.optionsProvider});return le({...n,config:e.config,optionsProvider:e.optionsProvider})})(),i=St({...r,enabled:Boolean(e)}),s=i.data?.options??o.options,a=Et(o.field.placeholder);return Vt("div",{className:"space-y-2",children:[jo(Ft,{htmlFor:`workflow-field-${o.field.key}`,children:o.field.label.kind==="literal"?o.field.label.text:o.field.label.default}),jo(Ct,{className:"w-full",disabled:o.readOnly||Boolean(e&&i.isPending),emptyMessage:"No options are available.",id:`workflow-field-${o.field.key}`,modal:!0,onChange:(l)=>o.onValueChange(l),options:s.map((l)=>({label:l.label,value:String(l.value)})),placeholder:a??"Select an option",searchPlaceholder:"Search options...",value:o.value===null||!p(o.value)&&!J(o.value)?"":String(o.value),width:"100%"})]})};var qo=b(()=>{$e()});var L;var qe=b(()=>{L={field:"Field",unavailableConfiguration:(o)=>`${o} has configuration that this Dashboard cannot edit. Its saved configuration is preserved.`,unavailableControl:(o,e)=>`${o} uses an unavailable ${e} control. Its saved value is preserved.`}});import{Alert as Tt,AlertDescription as Ot}from"@collective-intelligence/ui-react/ui";import{jsx as R,jsxs as Be,Fragment as Pt}from"react/jsx-runtime";var Me=({diagnostics:o})=>R(Pt,{children:o.map((e)=>R(Tt,{variant:"destructive",children:R(Ot,{children:e.message})},`${e.code}:${e.message}`))}),Jt=(o)=>{if(p(o))return o;if(o!==null&&W(o)&&"text"in o){let{text:e}=o;return p(e)?e:L.field}if(o!==null&&W(o)&&"default"in o){let{default:e}=o;return p(e)?e:L.field}return L.field},Le=({context:o})=>{let e={widget:o.field.widget};if(o.field.fieldFqn!==void 0&&o.field.fieldFqn!==null)e.fqn=o.field.fieldFqn;if(o.field.fieldVersion!==void 0&&o.field.fieldVersion!==null)e.version=o.field.fieldVersion;let n=de(e),t=o.mode??(o.readOnly?"read_only":"value"),r={...o,readOnly:t==="read_only"||o.readOnly};if(n.kind==="resolved"&&n.source==="fallback"&&o.field.optionSource?.kind==="remote")return Be("div",{className:"space-y-2",children:[R($o,{context:r}),R(Me,{diagnostics:o.diagnostics})]});if(n.kind==="resolved")return Be("div",{className:"space-y-2",children:[R(ne,{componentProps:r,declaration:n.entry.declaration,load:()=>te(n.entry.declaration)}),Mo(n.entry).handlesDiagnostics===!0?null:R(Me,{diagnostics:o.diagnostics})]});return Be("div",{className:"space-y-2",children:[R("div",{className:"rounded-lg border border-dashed border-border px-3 py-2 text-sm text-muted-foreground",children:L.unavailableControl(Jt(o.field.label),o.field.fieldFqn??o.field.widget)}),R(Me,{diagnostics:o.diagnostics})]})};var _e=b(()=>{ke();ce();qo();qe()});var Bo;var Lo=b(()=>{Bo={noEditableFields:"This template does not expose editable fields."}});import{jsx as He,jsxs as Ho}from"react/jsx-runtime";var Dt=function(e){if(p(e))return e;if(W(e)&&!Array.isArray(e)&&"en"in e){let n=e.en;return p(n)?n:""}return""},_o=function(e){return[...e].sort((n,t)=>(n.order??0)-(t.order??0))},Rt=function(e){return _o(e).map((n)=>({...n,fields:_o(n.fields??[])}))},_=({context:o})=>{let e=Rt("editor"in o.template.contract?o.template.contract.editor?.form?.sections??[]:[]);return Ho("div",{className:"space-y-5",children:[e.map((n)=>Ho("section",{className:"space-y-3 rounded-xl border border-border p-4",children:[He("h3",{className:"text-sm font-semibold text-foreground",children:Dt(n.label)}),(n.fields??[]).filter((t)=>o.isFieldVisible?.(t)??!0).map((t)=>o.getFieldContext?He(Le,{context:o.getFieldContext(t)},t.key):null)]},n.key)),e.length?null:He("p",{className:"rounded-xl border border-dashed border-border p-4 text-sm text-muted-foreground",children:Bo.noEditableFields})]})};var we=b(()=>{_e();Lo()});var Nt,Ko=(o)=>Nt.has(o),H=(o)=>T(o)?o:void 0,ve=(o)=>{let e=o.anyOf??o.oneOf;return Array.isArray(e)?e.flatMap((n)=>{let t=H(n);return t===void 0?[]:ve(t)}):[o]},Uo=(o)=>{if(o===null)return"null";if(Array.isArray(o))return"array";if(T(o))return"object";if(p(o))return"string";if(J(o))return Number.isInteger(o)?"integer":"number";return"boolean"},Qo=(o)=>{let{type:e}=o;if(p(e))return Ko(e)?new Set([e]):void 0;if(Array.isArray(e))return new Set(e.filter(p).filter(Ko));if(o.const!==void 0)return new Set([Uo(o.const)]);if(Array.isArray(o.enum))return new Set(o.enum.map(Uo));if(o.properties!==void 0)return new Set(["object"]);if(o.items!==void 0)return new Set(["array"]);return},N=(o)=>{let e=new Set;for(let n of ve(o)){let t=Qo(n);if(t===void 0)return;for(let r of t)e.add(r)}return e},Go=(o)=>{let[e]=o;if(e===void 0)return{};return o.length===1?e:{anyOf:[...o]}},ue=(o,e)=>ve(o).filter((n)=>{let t=Qo(n);return t===void 0||t.has(e)}),he=(o)=>Go(ue(o,"array").map((e)=>H(e.items)??{})),At=(o,e)=>o.has(e)||e==="integer"&&o.has("number"),It=(o,e)=>{let[n]=ue(o,"object"),t=H(n?.properties);if(t===void 0)return!0;let r=Array.isArray(n?.required)?n.required.filter(p):[];return ue(e,"object").every((i)=>{let s=H(i.properties);if(s===void 0)return!0;return r.every((a)=>(a in s))&&Object.entries(t).every(([a,l])=>{let d=H(s[a]),c=H(l);return d===void 0||c===void 0?!0:K(c,d)})})},K=(o,e)=>{let n=N(o),t=N(e);if(n===void 0||t===void 0)return!0;for(let r of t)if(!At(n,r))return!1;if(t.has("array")&&!K(he(o),he(e)))return!1;return!t.has("object")||It(o,e)},jt=(o)=>Go(ve(o).flatMap((e)=>{let{type:n}=e;if(n==="null")return[];if(Array.isArray(n)){let t=n.filter((r)=>r!=="null");return t.length===0?[]:[{...e,type:t}]}return[e]})),$t=(o)=>{let e=N(o);if(e?.has("string")===!0)return'""';if(e?.has("number")===!0||e?.has("integer")===!0)return"0";if(e?.has("boolean")===!0)return"false";return},qt=(o)=>{let e=ue(o,"array").every((t)=>J(t.minItems)&&t.minItems>=1),n=he(o);return e||N(n)?.has("null")===!0?n:{anyOf:[n,{type:"null"}]}},Ke=(o,e)=>{if(e===void 0||N(e)===void 0||N(o)===void 0)return{status:"unknown"};if(K(e,o))return{status:"compatible"};let n=$t(e),t=(l,d)=>{if(K(e,l))return d;return n!==void 0&&K(e,jt(l))?[...d,`coalesce(${n})`]:void 0},r=t(o,[]),i=N(o),s=r===void 0&&i?.has("array")===!0?t(qt(o),["first"]):void 0,a=r??s;return a===void 0||a.length===0?{status:"incompatible"}:{pipes:a.map((l)=>`| ${l}`).join(" "),status:"fixable"}},zo=4,Mt=(o)=>{let e=ue(o,"object").flatMap((t)=>Object.keys(H(t.properties)??{}));if(e.length===0)return"object";return`{${e.slice(0,zo).join(", ")}${e.length>zo?", …":""}}`},Ue=(o)=>{let e=N(o);if(e===void 0)return"any";return["string","integer","number","boolean","object","array","null"].filter((t)=>e.has(t)).map((t)=>{if(t==="array"){let r=he(o),i=N(r);return`array of ${i?.size===1&&i.has("object")?Mt(r):Ue(r)}`}return t}).join(" | ")};var We=b(()=>{Nt=new Set(["array","boolean","integer","null","number","object","string"])});var hs=function(e){let n=e.mode==="fixed"?e.value:null;return{expression:e.mode==="expression"?e.source:"",fixed:n,mode:e.mode}},vs=function(e){return e.mode==="fixed"?{mode:"fixed",value:e.fixed}:{languageVersion:1,mode:"expression",source:e.expression}},Yo=function(e,n){return{availability:n.availability,id:n.id,label:n.label,path:n.path??[],schema:n.schema,sourceId:e}},Bt=(o,e)=>o.length===e.length&&o.every((n,t)=>n===e[t]),Lt=function(e,n,t){let r=t.path??[];if(r.length===0){e.children.push(Yo(n,t));return}let i=e;for(let[s,a]of r.entries()){let l=r.slice(0,s+1),d=i.children.findIndex((k)=>Bt(k.path,l)),c=i.children[d];if(s===r.length-1){if(!c)i.children.push(Yo(n,t));return}if(c&&"children"in c){i=c;continue}let x=c?{...c,children:[],conditional:c.availability==="conditional",selectors:[]}:{availability:t.availability,children:[],conditional:t.availability==="conditional",id:`${n}:${l.join(".")}`,label:String(a),path:l,schema:{},selectors:[],sourceId:n};if(c)i.children[d]=x;else i.children.push(x);i=x}},_t=function o(e){return e.flatMap((n)=>[n,...o(n.children??[])])},Ht=function(e){let n=e.availability??"guaranteed",t={availability:n,children:[],conditional:n==="conditional",id:e.id,label:e.label,path:[],schema:e.schema,selectors:(e.selectors??[]).map((r)=>r.kind),sourceId:e.id};if(e.nodeKey!==void 0&&e.nodeKey!==null)t.nodeKey=e.nodeKey;for(let r of _t(e.fields??[]))Lt(t,e.id,r);return t},Kt=function(e){return{compatibility:e.targetCompatibility??[],language:e.languageManifest,sources:(e.availableSources??[]).map(Ht)}},Ut=function(e){return{canonicalSource:e.canonicalSource??null,diagnostics:(e.diagnostics??[]).map((n)=>({actualSchema:n.actualSchema,code:n.code,expectedSchema:n.expectedSchema,message:n.message,remediation:n.remediation,severity:n.severity,span:n.span})),inferredSchema:e.inferredSchema,references:e.references??[]}},Ws=function(e,n){return K(n,e)},Zo=function(e,n,t){let r=Math.max(0,Math.min(n,e.length));return{cursor:r+t.length,source:`${e.slice(0,r)}${t}${e.slice(r)}`}};var Ce=b(()=>{We()});var zt=function(e){if(e.id==="trigger")return"trigger";if(e.id==="workflow_input")return"input";let[,n]=e.id.split(":port:");return`nodes[${JSON.stringify(e.nodeKey??e.label)}]${n?`.${n}`:""}`},Qt=function(e){return e.map((n)=>(()=>{if(J(n))return`[${n}]`;if(/^[A-Za-z_$][\w$]*$/u.test(n))return`.${n}`;return`[${JSON.stringify(n)}]`})()).join("")},Gt=function(e){if(e.id==="trigger")return{id:"trigger",label:"Trigger data"};if(e.id==="workflow_input")return{id:"workflow_input",label:"Workflow input"};return{id:e.id,label:e.label}},Yt=function o(e){let{source:n}=e;return e.nodes.flatMap((t)=>{let r=`${n.id}:${t.id}`,i=[...e.parentLabels,t.label],s="children"in t?t.children:[],a=`${zt(n)}${Qt(t.path)}`;return[{conditional:t.availability==="conditional",depth:e.depth,expandable:s.length>0,group:e.group,id:r,insertion:`{{ ${a} }}`,label:`${n.label} · ${i.join(".")}`,name:t.label,parentId:e.parentId,pathLabel:i.join("."),reference:a,schema:t.schema,selectors:n.selectors},...o({depth:e.depth+1,group:e.group,nodes:s,parentId:r,parentLabels:i,source:n})]})},Zt=function(e){let n=e.children.length?e.children:[{availability:e.availability,id:e.id,label:"Output",path:[],schema:e.schema,sourceId:e.id}];return Yt({depth:0,group:Gt(e),nodes:n,parentId:null,parentLabels:[],source:e})},ze=function(e){return e.sources.flatMap((n)=>Zt(n))},U=function(e){return Ue(e)};var Fe=b(()=>{We()});import{jsx as F,jsxs as en,Fragment as Xt}from"react/jsx-runtime";var V=({title:o,values:e})=>en("section",{"aria-label":o,children:[F("h3",{className:"font-medium",children:o}),e.length>0?F("ul",{className:"mt-1 list-disc pl-5 font-mono text-xs",children:e.map((n,t)=>F("li",{children:n},`${n}-${t}`))}):F("p",{className:"text-muted-foreground",children:"No entries in this language manifest."})]}),Xo=function(e){return e.map((n)=>n.example??n.name)},Qe=({manifest:o})=>en(Xt,{children:[F(V,{title:"Syntax overview",values:[o.grammar]}),F(V,{title:"Interpolation",values:[`Whole value preserves type: ${o.interpolation.wholeValuePreservesType}`,`Mixed text returns: ${o.interpolation.mixedTextReturns}`]}),F(V,{title:"References",values:[o.grammar]}),F(V,{title:"Selectors",values:o.selectors.map(({kind:e})=>e)}),F(V,{title:"Unavailable-value policies",values:o.availabilityPolicies}),F(V,{title:"Operators",values:o.operators}),F(V,{title:"Functions",values:Xo(o.functions)}),F(V,{title:"Casts and pipes",values:o.pipes}),F(V,{title:"Strings",values:o.pipes}),F(V,{title:"Collections",values:o.pipes}),F(V,{title:"Objects",values:o.pipes}),F(V,{title:"Dates",values:o.pipes}),F(V,{title:"If conditions",values:o.ifExamples}),F(V,{title:"Comparators",values:Xo(o.comparators)})]});var Ge=()=>{};var z;var on=b(()=>{z={applyPipes:(o)=>`Append ${o}`,expectedType:"Field expects",incompatibleType:"Incompatible type",insertWithPipes:"Insert with the pipes that make this value fit the field",validationFailed:(o)=>`We couldn't validate this expression: ${o}`,validationUnavailable:"We couldn't validate this expression right now. Check its syntax and referenced values, then try again."}});import{ChevronRight as er}from"@collective-intelligence/ui-react/icons";import{Badge as or,Button as G,Input as nn,Popover as nr,PopoverAnchor as tr,PopoverContent as rr,Textarea as ir}from"@collective-intelligence/ui-react/ui";import{Fragment as sr,useEffect as ar,useRef as lr,useState as Q}from"react";import{jsx as y,jsxs as S}from"react/jsx-runtime";var tn=(o)=>o!==null&&W(o)&&!Array.isArray(o),A=(o)=>o!==null&&o!==void 0&&o!=="",dr=function o(e){if(p(e))return e;if(Array.isArray(e)){let n=e.map(o).filter((t)=>A(t));return n.length?n.join("; "):void 0}if(!tn(e))return;if(p(e.msg))return e.msg;if(p(e.message))return e.message;if(p(e.detail))return e.detail;return},cr=function(e){if(e instanceof Error&&A(e.message))return e.message;if(!P(e))return;if(!tn(e))return;return[e.detail,e.body,e.error,e.message].map(dr).find((n)=>A(n))},ur=function(e){let n=cr(e);return A(n)?z.validationFailed(n):z.validationUnavailable},rn,pr,sn=function(e,n){return pr.flatMap((t)=>e.filter((r)=>n(r)===t))},fr=function(e){let n=new Map;for(let i of e){let s=n.get(i.option.parentId)??[];s.push(i),n.set(i.option.parentId,s)}let t=new Map,r=(i)=>{let s=t.get(i.option.id);if(s!==void 0)return s;let a=Math.min(rn[i.compatibility.status],...(n.get(i.option.id)??[]).map(r));return t.set(i.option.id,a),a};for(let[i,s]of n)n.set(i,sn(s,r));return n},an=({entry:o,expanded:e,onInsert:n,onToggle:t})=>{let{compatibility:r,option:i}=o,s=t===void 0,a=r.status==="incompatible";return S("div",{className:"mt-1 flex items-start gap-1",style:{paddingInlineStart:s?0:`${i.depth*1.25}rem`},children:[!s&&i.expandable?y(G,{"aria-expanded":e,"aria-label":`${e?"Collapse":"Expand"} ${i.label}`,className:"mt-1 size-7 shrink-0",onClick:t,size:"icon",type:"button",variant:"ghost",children:y(er,{"aria-hidden":!0,className:e?"size-4 rotate-90":"size-4"})}):y("span",{"aria-hidden":!0,className:"size-7 shrink-0"}),S(G,{"aria-label":`Insert ${i.label}`,className:`block h-auto min-w-0 flex-1 whitespace-normal px-2 py-1.5 text-left ${a?"opacity-60":""}`,onClick:()=>{n(i.insertion)},type:"button",variant:"ghost",children:[y("span",{className:"block text-sm",children:s?i.pathLabel:i.name}),S("span",{className:"flex flex-wrap items-center gap-1.5 font-mono text-xs text-muted-foreground",children:[U(i.schema),a?y(or,{className:"font-sans",variant:"outline",children:z.incompatibleType}):null]})]}),r.status==="fixable"?y(G,{"aria-label":`Insert ${i.label} with ${r.pipes}`,className:"mt-1 h-auto shrink-0 px-1.5 py-0.5 font-mono text-xs",onClick:()=>{n(`{{ ${i.reference} ${r.pipes} }}`)},size:"sm",title:z.insertWithPipes,type:"button",variant:"outline",children:r.pipes}):null]})},ln=({tree:o,expanded:e,onInsert:n,onToggle:t,parentId:r})=>(o.get(r)??[]).map((i)=>{let s=e.has(i.option.id);return S(sr,{children:[y(an,{entry:i,expanded:s,onInsert:n,onToggle:()=>{t(i.option.id)}}),s?y(ln,{expanded:e,onInsert:n,onToggle:t,parentId:i.option.id,tree:o}):null]},i.option.id)}),mr=({environment:o,onInsert:e,onQueryChange:n,options:t,query:r,targetSchema:i})=>{let[s,a]=Q(new Set),l=new Map(t.map(({group:u})=>[u.id,u])),d=["trigger","workflow_input"],c=[...d.flatMap((u)=>l.get(u)??[]),...[...l.values()].filter(({id:u})=>!d.includes(u))],x=t.map((u)=>({compatibility:Ke(u.schema,i),option:u})),k=r.trim()!=="",f=x.filter(({option:u})=>[u.label,u.insertion,U(u.schema)].join(" ").toLowerCase().includes(r.trim().toLowerCase())),m=(u)=>{a((h)=>{let v=new Set(h);if(v.has(u))v.delete(u);else v.add(u);return v})};return S("div",{className:"grid h-96 max-h-[calc(100dvh-3rem)] grid-cols-[minmax(0,1fr)_14rem] overflow-hidden",children:[S("div",{className:"min-h-0 touch-pan-y overflow-y-auto overscroll-y-contain border-r p-2",onWheel:(u)=>{u.stopPropagation()},children:[y(nn,{"aria-label":"Search expression suggestions",onChange:(u)=>{n(u.target.value)},placeholder:"Search available values",value:r}),c.map((u)=>{let h=(k?f:x).filter(({option:v})=>v.group.id===u.id);if(h.length===0)return null;return S("section",{"aria-label":u.label,className:"mt-3",children:[y("h3",{className:"px-2 text-xs font-semibold text-muted-foreground",children:u.label}),k?sn(h,(v)=>rn[v.compatibility.status]).map((v)=>y(an,{entry:v,expanded:!1,onInsert:e},v.option.id)):y(ln,{expanded:s,onInsert:e,onToggle:m,parentId:null,tree:fr(h)})]},u.id)}),(k?f:x).length===0?y("p",{className:"p-3 text-sm text-muted-foreground",children:"No matching workflow sources."}):null]}),S("aside",{className:"space-y-3 p-3","aria-label":"Expression helper",children:[i===void 0?null:S("p",{className:"text-xs",children:[S("span",{className:"text-muted-foreground",children:[z.expectedType," "]}),y("span",{className:"font-mono",children:U(i)})]}),y("p",{className:"text-xs text-muted-foreground",children:"Select a typed source. Expand an object to pick one of its fields, or insert the whole object."}),y("h3",{className:"text-xs font-semibold",children:"Pipes"}),o.language.pipes.map((u)=>S(G,{className:"mr-1 mb-1 h-auto px-1.5 py-0.5 font-mono text-xs",onClick:()=>{e(` | ${u}`)},size:"sm",type:"button",variant:"outline",children:["| ",u]},u))]})]})},gr,xr=function(e,n){let t=gr.exec(e)?.groups?.body;return t===void 0||t.includes("{{")?void 0:`{{ ${t.trim()} ${n} }}`},yr=({diagnostic:o,onApplyFix:e,source:n,targetSchema:t})=>{let r=o.expectedSchema??t,i=o.code==="incompatible_expression_type"&&o.actualSchema!==null?Ke(o.actualSchema,r??void 0):void 0,s=i?.status==="fixable"?xr(n,i.pipes):void 0;return S("div",{className:"space-y-1 text-sm text-destructive",role:"alert",children:[S("p",{children:[o.message," (characters ",o.span.start,"–",o.span.end,")"]}),A(o.remediation)?y("p",{className:"text-xs text-muted-foreground",children:o.remediation}):null,i?.status==="fixable"&&s!==void 0&&e!==void 0?y(G,{className:"h-auto px-1.5 py-0.5 font-mono text-xs",onClick:()=>{e(s)},size:"sm",type:"button",variant:"outline",children:z.applyPipes(i.pipes)}):null]})},Ye=({describedBy:o,environment:e,inputLabel:n="Expression",source:t,onChange:r,validate:i,multiline:s=!1,readOnly:a=!1,targetSchema:l})=>{let d=lr(null),c=(g)=>{d.current=g},[x,k]=Q(t.length),[f,m]=Q(!1),[u,h]=Q("suggestions"),[v,Y]=Q(""),[De,Re]=Q(null),[B,Z]=Q(null),ie=i===void 0||t===""?null:De,C=i===void 0||t===""?null:B,O=[o,A(C)?"expression-validation":void 0].filter(Boolean).join(" ")||void 0;ar(()=>{let g=new AbortController;if(!i||t==="");else{let Ne=async()=>{try{let Ae=await i(t,g.signal);if(!g.signal.aborted)Re(Ae),Z(null)}catch(Ae){if(!g.signal.aborted)Z(ur(Ae))}},ee=window.setTimeout(()=>{Ne()},300);return()=>{g.abort(),window.clearTimeout(ee)}}return()=>{g.abort()}},[t,i]);let j=ze(e),X=(g)=>{let Ne=d.current?.selectionStart??x,ee=Zo(t,Ne,g);k(ee.cursor),r(ee.source),queueMicrotask(()=>{d.current?.focus(),d.current?.setSelectionRange(ee.cursor,ee.cursor)})};return S("div",{className:"space-y-2",children:[S(nr,{onOpenChange:(g)=>{if(m(g),!g)Y(""),h("suggestions")},open:f,children:[y(tr,{asChild:!0,children:y("div",{children:(()=>{if(s)return y(ir,{"aria-describedby":O,"aria-invalid":A(C)||(ie?.diagnostics.length??0)>0,"aria-label":n,className:"min-h-24 text-sm",disabled:a,onChange:(g)=>{r(g.target.value),k(g.currentTarget.selectionStart??t.length)},onFocus:()=>{m(!0)},onKeyDown:(g)=>{if(g.key==="Escape")m(!1)},onSelect:(g)=>{k(g.currentTarget.selectionStart??t.length)},placeholder:"Choose a source or start typing",ref:c,value:t});return y(nn,{"aria-describedby":O,"aria-invalid":A(C)||(ie?.diagnostics.length??0)>0,"aria-label":n,className:"text-sm",disabled:a,onChange:(g)=>{r(g.target.value),k(g.currentTarget.selectionStart??t.length)},onFocus:()=>{m(!0)},onKeyDown:(g)=>{if(g.key==="Escape")m(!1)},onSelect:(g)=>{k(g.currentTarget.selectionStart??t.length)},placeholder:"Choose a source or start typing",ref:c,value:t})})()})}),S(rr,{align:"start",className:"w-[min(48rem,calc(100vw-3rem))] p-0",onOpenAutoFocus:(g)=>{g.preventDefault()},children:[S("div",{className:"flex border-b p-1",role:"tablist",children:[y(G,{"aria-selected":u==="suggestions",onClick:()=>{h("suggestions")},role:"tab",size:"sm",type:"button",variant:u==="suggestions"?"secondary":"ghost",children:"Suggestions"}),y(G,{"aria-selected":u==="syntax",onClick:()=>{h("syntax")},role:"tab",size:"sm",type:"button",variant:u==="syntax"?"secondary":"ghost",children:"Syntax reference"})]}),u==="suggestions"?y(mr,{environment:e,onInsert:X,onQueryChange:Y,options:j,query:v,targetSchema:l}):y("div",{className:"max-h-96 touch-pan-y overflow-y-auto overscroll-y-contain p-4 text-sm",onWheel:(g)=>{g.stopPropagation()},children:y(Qe,{manifest:e.language})})]})]}),A(C)?y("p",{id:"expression-validation",role:"alert",children:C}):null,ie?.diagnostics.map((g)=>y(yr,{diagnostic:g,onApplyFix:a?void 0:r,source:t,targetSchema:l},`${g.code}-${g.span.start}`))]})};var dn=b(()=>{Ce();We();Fe();Ge();on();rn={compatible:0,fixable:1,incompatible:3,unknown:2},pr=[0,1,2,3],gr=/^\s*\{\{(?<body>[\s\S]*?)\}\}\s*$/u});var Se=b(()=>{dn();Ge();Fe()});var I;var cn=b(()=>{I={expression:"Expression",expressionHelp:"Calculates a value from the data available when this step runs.",fixed:"Fixed",fixedHelp:"Uses the saved value as written.",modesHelp:"Fixed uses the saved value as written. Expression calculates a value from the data available when the step runs."}});import{Alert as br,AlertDescription as kr,Label as wr,ToggleGroup as hr,ToggleGroupItem as un}from"@collective-intelligence/ui-react/ui";import{useId as vr,useState as pn}from"react";import{jsx as E,jsxs as Ee}from"react/jsx-runtime";var Wr,fn=function(e){return e.mode==="expression"?{expression:e.source,fixed:null,mode:"expression"}:{expression:"",fixed:e.value,mode:"fixed"}},Cr=({mode:o})=>E("span",{className:"shrink-0 text-xs text-muted-foreground",title:o==="expression"?I.expressionHelp:I.fixedHelp,children:o==="expression"?I.expression:I.fixed}),pe=({allowExpression:o=!1,allowFixed:e=!0,controlId:n,diagnostics:t=Wr,expressionEditor:r,expressionMultiline:i=!1,help:s,label:a,onValueChange:l,readOnly:d=!1,renderExpression:c,renderFixed:x,required:k=!1,sensitive:f=!1,value:m})=>{let u=vr(),[h,v]=pn(()=>fn(m)),Y=JSON.stringify(m),[De,Re]=pn(Y),B=n===void 0?void 0:`${n}-label`;if(Y!==De)Re(Y),v(fn(m));let Z=(()=>{if(o&&!e)return"expression";if(e&&!o)return"fixed";return h.mode})(),ie=d;return Ee("section",{className:"space-y-2",children:[Ee("div",{className:"flex items-center justify-between gap-3",children:[E("div",{className:"min-w-0",children:Ee("div",{className:"flex items-center gap-1",children:[E(wr,{htmlFor:n,id:B,children:a}),k?E("span",{"aria-label":"Required",children:"*"}):null,f?E("span",{className:"ml-1 text-xs text-muted-foreground",children:"Sensitive"}):null]})}),o&&d?E(Cr,{mode:Z}):null,o&&e&&!d?E("div",{"aria-label":`${a} mode controls`,className:"flex shrink-0 items-center gap-1",children:Ee(hr,{"aria-label":`${a} mode`,className:"gap-0",disabled:ie,onValueChange:(C)=>{if(C==="fixed"||C==="expression")v((O)=>({...O,mode:C}))},size:"sm",type:"single",value:Z,variant:"outline",children:[E(un,{className:"h-7 px-4 text-xs",title:I.fixedHelp,value:"fixed",children:I.fixed}),E(un,{className:"h-7 px-4 text-xs",title:I.expressionHelp,value:"expression",children:I.expression})]})}):null]}),s!==void 0&&s!==""?E("p",{id:u,className:"text-xs leading-relaxed text-muted-foreground",children:s}):null,(()=>{if(Z==="expression"){if(r?.environment){let j=r.validate===void 0?{}:{validate:r.validate};return E(Ye,{...s?{describedBy:u}:{},environment:r.environment,multiline:i,onChange:(X)=>{v((g)=>({...g,expression:X})),l({languageVersion:1,mode:"expression",source:X})},readOnly:d,source:h.expression,targetSchema:r.targetSchema,...j})}if(r?.loading===!0)return E("output",{children:"Loading expression editor…"});if(r?.error!==void 0&&r.error!=="")return E("p",{role:"alert",children:r.error});let O={disabled:d,onChange:(j)=>{v((X)=>({...X,expression:j})),l({languageVersion:1,mode:"expression",source:j})},value:h.expression};if(s)O.describedBy=u;if(n!==void 0)O.controlId=`${n}-expression`;if(B!==void 0)O.labelledBy=B;return c?.(O)}let C={disabled:d,onChange:(O)=>{v((j)=>({...j,fixed:O})),l({mode:"fixed",value:O})},value:h.fixed};if(s)C.describedBy=u;if(n!==void 0)C.controlId=n;if(B!==void 0)C.labelledBy=B;return x(C)})(),t.map((C)=>E(br,{variant:"destructive",children:E(kr,{children:C.message})},`${C.code}:${C.message}`))]})};var Ze=b(()=>{Se();cn();Wr=[]});var Xe=b(()=>{Ze()});var eo;var mn=b(()=>{eo={inputBindingsDescription:"Map workflow input field names to literal or dynamic expressions.",inputBindingsTitle:"Input adapter bindings"}});var fe=function(e){return T(e)?e:{}},oo=function(e){return fe(e)},Fr=function(e,n,t){let r=e.anyOf;if(!Array.isArray(r))return;let i=r.filter((d)=>fe(d).type!=="null");if(i.length!==1||i.length===r.length)return;let s=oo(t(i[0],n)),{type:a}=s,l={...s,...Object.fromEntries(Object.entries(e).filter(([d])=>d!=="anyOf"&&d!=="$defs"))};if(p(a))l.type=[a,"null"];return l},Sr=function(e){let n=fe(e.$defs),t=(r,i=new Set)=>{if(Array.isArray(r))return r.map((c)=>t(c,i));if(!T(r))return r;let s=fe(r),a=s.$ref,l=p(a)?a:void 0;if(l!==void 0&&l.startsWith("#/$defs/")){let c=l.slice(8),x=n[c];if(x!==void 0&&!i.has(c))return t(x,new Set(i).add(c))}let d=Fr(s,i,t);if(d)return d;return Object.fromEntries(Object.entries(s).filter(([c])=>c!=="$defs").map(([c,x])=>[c,t(x,i)]))};return oo(t(e))},Er=function(e){let{type:n}=e;return n==="null"||Array.isArray(n)&&n.includes("null")},Vr=function(e){let{type:n}=e;if(p(n))return n==="null"?e:{...e,type:[n,"null"]};if(Array.isArray(n))return n.includes("null")?e:{...e,type:[...n,"null"]};return e},Tr=function o(e,n=[],t=!1){return Object.entries(fe(e.properties)).map(([r,i])=>{let s=oo(i),a=t?Vr(s):s,l=[...n,r],d=o(s,l,t||Er(s)),c={availability:"guaranteed",id:`trigger:${l.join(".")}`,label:r,path:l,schema:a,sourceId:"trigger"};return d.length?{...c,children:d,conditional:!1,selectors:[]}:c})},gn=function(e){let{triggerInput:n}=e;if(!n)return;let t=Sr(n.schema);return{compatibility:[],language:n.languageManifest,sources:[{availability:"guaranteed",children:Tr(t),conditional:!1,id:"trigger",label:"Trigger data",path:[],schema:t,selectors:[],sourceId:"trigger"}]}};var xn=()=>{};import{Input as Or,Label as Jr}from"@collective-intelligence/ui-react/ui";import{jsx as ge,jsxs as yn}from"react/jsx-runtime";var Pr=(o)=>{if(o===null||o===void 0||p(o)||J(o)||se(o))return String(o??"");return JSON.stringify(o)??""},me=function(e){return T(e)?e:{}},Dr=function(e,n){return e?.length===n.length&&e.every((t,r)=>t===n[r])},Rr=function(e,n){if(n==="number"||n==="integer"){let t=Number(e);return Number.isFinite(t)?t:e}if(n==="boolean")return e==="true";return e},Nr=function(e){if(!T(e))return{mode:"fixed",value:e??null};if(e.mode==="expression"&&p(e.source))return{languageVersion:1,mode:"expression",source:e.source};if(e.mode==="fixed"&&P(e.value))return{mode:"fixed",value:e.value};return{mode:"fixed",value:e}},bn=({context:o})=>{let e=me(o.workflowContracts?.inputContract.jsonSchema.properties),n=o.trigger?.inputBindings??{},t=gn(o.template.contract);return yn("div",{className:"space-y-5",children:[ge(_,{context:o}),yn("section",{className:"space-y-2 rounded-xl border border-border p-4",children:[ge(Jr,{htmlFor:"workflow-trigger-input-bindings",children:eo.inputBindingsTitle}),ge("p",{className:"text-xs text-muted-foreground",children:eo.inputBindingsDescription}),Object.entries(e).map(([r,i])=>{let s=me(n[r]),a=Nr(s?.value),l=o.triggerInputExpressionValidator?.(r),d=t===void 0?void 0:{environment:t,targetSchema:me(i)};if(d!==void 0&&l!==void 0)d.validate=l;return ge(pe,{allowExpression:!0,...d===void 0?{}:{expressionEditor:d},diagnostics:o.diagnostics.filter((c)=>Dr(c.path,["inputBindings",r])),label:`${r} (${U(me(i))})`,readOnly:o.readOnly,value:a,onValueChange:(c)=>o.commands.updateTriggerConfiguration?.({inputBindings:{...n,[r]:{overridePolicy:"locked",value:c}}}),renderFixed:({value:c,onChange:x})=>ge(Or,{value:Pr(c),onChange:(k)=>{x(Rr(k.target.value,me(i)?.type))}})},r)})]})]})};var kn=b(()=>{Se();Xe();we();mn();xn()});var Vn={};_n(Vn,{renderDefaultActionChart:()=>wn,renderDefaultActionDetails:()=>hn,renderDefaultInputChart:()=>Cn,renderDefaultInputDetails:()=>Fn,renderDefaultOutputChart:()=>Sn,renderDefaultOutputDetails:()=>En,renderDefaultTriggerChart:()=>vn,renderDefaultTriggerDetails:()=>Wn});import{jsx as q}from"react/jsx-runtime";var wn=(o)=>q(oe,{context:o,accent:"slate"}),hn=(o)=>q(_,{context:o}),vn=(o)=>q(oe,{context:o,accent:"violet"}),Wn=(o)=>q(bn,{context:o}),Cn=(o)=>q(oe,{context:o,accent:"sky"}),Fn=(o)=>q(_,{context:o}),Sn=(o)=>q(oe,{context:o,accent:"emerald"}),En=(o)=>q(_,{context:o});var no=b(()=>{je();we();kn()});import{declareFrontendComponent as Ar}from"@collective-intelligence/extensions-sdk-frontend";var to=(o)=>({exportName:o,load:()=>Promise.resolve().then(() => (no(),Vn)),module:import.meta.url}),Ve=(o,e,n)=>Ar({implementation:{chart:to(e),details:to(n),render:to(n)},metadata:{kind:o,mode:"default"},target:{fqn:`builtin.core.workflows.nodes.${o.replace(/_node$/u,"")}`,packageFqn:"builtin.core",role:"workflow_template_default",version:"1.0.0"}}),ro;var io=b(()=>{ro=[Ve("action_node","renderDefaultActionChart","renderDefaultActionDetails"),Ve("trigger_node","renderDefaultTriggerChart","renderDefaultTriggerDetails"),Ve("input_node","renderDefaultInputChart","renderDefaultInputDetails"),Ve("output_node","renderDefaultOutputChart","renderDefaultOutputDetails")]});import{WorkflowTemplateKinds as Ir}from"@collective-intelligence/extensions-sdk";var xe=(o)=>Ir.find((e)=>e===o);var so=()=>{};import{createFrontendCatalog as jr,declareFrontendPackage as $r}from"@collective-intelligence/extensions-sdk-frontend";var co,Te,uo=(o)=>{let{declaration:{metadata:e}}=o;if(!T(e))return{};let n=p(e.kind)?xe(e.kind):void 0,t;if(p(e.mode)){if(e.mode==="default")t="default";else if(e.mode==="override")t="override"}let r={};if(p(e.fqn))r.fqn=e.fqn;if(se(e.handlesDiagnostics))r.handlesDiagnostics=e.handlesDiagnostics;if(n!==void 0)r.kind=n;if(t!==void 0)r.mode=t;if(p(e.widget))r.widget=e.widget;return r},Oe=(o)=>{let e=o?.trim().toLowerCase();return e===void 0||e===""?void 0:e},Tn=()=>co.snapshot().entries,On=(o,e,n)=>{let t=Oe(o),r=Oe(e);if(t===void 0||r===void 0)return;return Tn().find((i)=>i.target.toLowerCase()===t&&i.version.toLowerCase()===r&&i.role===n)},ao=(o,e,n)=>{let t=Oe(e);return Tn().find((r)=>{let i=uo(r);return Oe(i[o])===t&&r.role===n})},Jn=(o)=>{Te=[...Te.filter((t)=>!o.some((r)=>r.manifest.fqn===t.manifest.fqn)),...o];let n=co.activate(Te);if(n.kind==="invalid")throw Error(n.errors.map((t)=>t.message).join("; "));if(n.kind!=="activated")throw Error(`Workflow catalog activation became stale (${n.reason}).`)},lo,qr=()=>{if(Te.some((o)=>o.manifest.fqn===lo.manifest.fqn))return;Jn([lo])},Mr=()=>co.snapshot(),de=(o)=>{let e=p(o)?{widget:o}:o,n=e.fqn??void 0,t=e.version??void 0,r=On(n,t,"workflow_field");if(r!==void 0)return{entry:r,kind:"resolved",source:"exact"};if(n!==void 0&&t!==void 0){let a=ao("widget",e.widget??"","workflow_field_fallback");if(a!==void 0&&n.toLowerCase().startsWith("builtin."))return{entry:a,kind:"resolved",source:"fallback"};let l={fqn:n,kind:"unavailable"};if(e.widget!==void 0)l.widget=e.widget;return l}let i=ao("widget",e.widget??"","workflow_field_fallback");if(i!==void 0)return{entry:i,kind:"resolved",source:"fallback"};let s={kind:"unavailable"};if(e.fqn!==void 0&&e.fqn!==null)s.fqn=e.fqn;if(e.widget!==void 0)s.widget=e.widget;return s},po=(o)=>{let e=xe(o.kind);if(e===void 0)return{fqn:o.fqn,kind:"unavailable",templateKind:o.kind};let n=On(o.fqn,o.version??"1.0.0","workflow_template_override");if(n!==void 0&&uo(n).kind===e)return{entry:n,kind:"resolved",source:"override"};let t=ao("kind",e,"workflow_template_default");if(t!==void 0)return{entry:t,kind:"resolved",source:"default"};return{fqn:o.fqn,kind:"unavailable",templateKind:o.kind}},Mo;var ce=b(()=>{io();so();so();co=jr(),Te=[],lo=$r({components:ro,manifest:{fqn:"builtin.core",name:"Dashboard Workflow UI",version:"1.0.0"}}),Mo=uo});ce();ke();ce();qe();import{jsx as Pn}from"react/jsx-runtime";var Br=({context:o})=>{let e=de(o.field);if(e.kind==="resolved"&&e.entry.declaration.implementation.configuration!==void 0)return Pn(ne,{componentProps:o,declaration:e.entry.declaration,implementationRole:"configuration",load:()=>te(e.entry.declaration,"configuration")});return Pn("div",{className:"rounded-md border border-dashed border-border p-2 text-xs text-muted-foreground",children:L.unavailableConfiguration(o.field.label)})};_e();Ce();Xe();Ze();import{Textarea as Lr}from"@collective-intelligence/ui-react/ui";import{jsx as Dn}from"react/jsx-runtime";import{createElement as Hr}from"react";var Aa=({help:o,label:e,onValueChange:n,expressionEditor:t,readOnly:r,renderFixed:i,resetKey:s,slotId:a,value:l})=>Dn("div",{"data-expression-slot":a,children:Hr(pe,{allowExpression:!0,...o===void 0?{}:{help:o},...t===void 0?{}:{expressionEditor:t},key:`${a}:${s??"current"}`,label:e,onValueChange:n,...r===void 0?{}:{readOnly:r},renderExpression:({describedBy:d,disabled:c,onChange:x,value:k})=>Dn(Lr,{"aria-describedby":d,"aria-label":`${e} expression`,disabled:c,onChange:(f)=>{x(f.target.value)},placeholder:"{{ input.value }}",value:k}),renderFixed:i,value:l})}),_r=function(e){if(!T(e))return!1;if(e.mode==="fixed")return P(e.value);return e.mode==="expression"&&J(e.languageVersion)&&e.languageVersion===1&&p(e.source)},Ia=function(e){if(_r(e))return e;return{mode:"fixed",value:e}};var fo=function(e,n){let t=[...e];for(let r=0;r<t.length;r+=1)for(let i=r+1;i<t.length;i+=1){let s=t[r],a=t[i];if(s!==void 0&&a!==void 0&&n(s,a)>0)t[r]=a,t[i]=s}return t};var Nn=function(e){return W(e)&&!Array.isArray(e)},Kr=function o(e){return e.flatMap((n)=>[...n.templates??[],...o(n.children??[])])},mo=function(e){return e.kind==="field_collection"&&"collection"in e.contract},go=function(e){return`${e.fqn}@${e.version}`},Rn=function(e){return e.kind==="literal"?e.text:e.default},Ur=function(e){return e.kind==="field"&&"field"in e.contract},zr=function(e,n){if(!e.enabled||e.state!=="available")return!1;return n==="input"?e.contract.field.availableForInput!==!1:e.contract.field.availableForOutput!==!1},Qr=function(e,n){let t=e.find((r)=>mo(r)&&go(r.contract.collection)===n);return t&&mo(t)?t.contract.collection.weight??0:0},Je=function(e){return e!==void 0&&Nn(e)?e:{}},_a=function(e,n){let t=Kr(e?.categories??[]),r=new Map;for(let s of t){if(!mo(s))continue;r.set(go(s.contract.collection),Rn(s.label))}let i=new Map;for(let s of t){if(!Ur(s)||!zr(s,n))continue;let a=s.contract.field,l=go({fqn:a.collectionFqn,version:a.collectionVersion}),d=i.get(l)??{fields:[],key:l,label:r.get(l)??a.collectionFqn,weight:Qr(t,l)};d.fields.push({catalogTemplateId:s.id,collectionKey:l,configSchema:Je(a.configSchema),fqn:a.fqn,label:Rn(s.label),schema:Je(a.valueSchema),version:a.version}),i.set(l,d)}return fo([...i.values()].map((s)=>({...s,fields:fo(s.fields,(a,l)=>a.label.localeCompare(l.label)||a.fqn.localeCompare(l.fqn))})),(s,a)=>s.weight-a.weight||s.label.localeCompare(a.label)||s.key.localeCompare(a.key))},Ha=function(e){return{key:e.key,label:e.label,options:e.fields.map((n)=>({fqn:n.fqn,label:n.label,searchTerms:[n.fqn],version:n.version}))}},Gr=function(e){let n=Je(e.$defs),t=(r,i=new Set)=>{if(Array.isArray(r))return r.map((d)=>t(d,i));if(r===null||!Nn(r))return r;let s=r,a=s.$ref,l=p(a)?a:void 0;if(l!==void 0&&l.startsWith("#/$defs/")){let d=l.slice(8),c=n[d];if(c!==void 0&&c!==null&&!i.has(d))return t(c,new Set(i).add(d))}return Object.fromEntries(Object.entries(s).filter(([d])=>d!=="$defs").map(([d,c])=>[d,t(c,i)]))};return Je(t(e))},Ka=function(e,n){let{title:t,...r}=Gr(n.schema),i={...r};if(p(e.title))i.title=e.title;return i};import{useDebouncedCallback as Yr}from"@collective-intelligence/ui-react/hooks";import{Check as Zr,ChevronsUpDown as Xr}from"@collective-intelligence/ui-react/icons";import{Button as ei,Command as oi,CommandGroup as ni,CommandInput as ti,CommandItem as ri,CommandList as ii,Popover as si,PopoverContent as ai,PopoverTrigger as li}from"@collective-intelligence/ui-react/ui";import{useMemo as di,useState as xo}from"react";import{jsx as M,jsxs as ye}from"react/jsx-runtime";var ci=250,yo=function(e){return`${e.fqn}@${e.version}`},ui=function(e,n){let t=n.trim().toLocaleLowerCase();if(!t)return e;return e.flatMap((r)=>{let i=r.options.filter((s)=>[s.label,s.fqn,...s.searchTerms??[]].join(" ").toLocaleLowerCase().includes(t));return i.length?[{...r,options:i}]:[]})},Za=({collections:o,value:e,onChange:n,ariaLabel:t="Field type"})=>{let[r,i]=xo(!1),[s,a]=xo(""),[l,d]=xo(""),c=Yr(d,ci),x=o.flatMap((m)=>m.options).find((m)=>yo(m)===e),k=di(()=>ui(o,l),[o,l]),f=k.some((m)=>m.options.length>0);return ye(si,{modal:!0,open:r,onOpenChange:(m)=>{if(i(m),!m)c.cancel(),a(""),d("")},children:[M(li,{asChild:!0,children:ye(ei,{type:"button",variant:"outline","aria-label":t,"aria-expanded":r,className:"mt-1 w-full justify-between font-normal",children:[M("span",{className:"truncate",children:x?.label??"Select a field type"}),M(Xr,{className:"ml-2 size-4 shrink-0 opacity-50"})]})}),M(ai,{align:"start",className:"w-[var(--radix-popover-trigger-width)] p-0",children:ye(oi,{shouldFilter:!1,children:[M(ti,{placeholder:"Search field types...",value:s,onValueChange:(m)=>{a(m),c(m)}}),ye(ii,{children:[f?null:M("p",{className:"py-6 text-center text-sm",children:"No field type found."}),k.map((m)=>M(ni,{heading:m.label,children:m.options.map((u)=>{let h=yo(u);return ye(ri,{value:yo(u),onSelect:()=>{n(u),i(!1)},children:[M(Zr,{className:e===h?"mr-2 size-4 opacity-100":"mr-2 size-4 opacity-0"}),u.label]},h)})},m.key))]})]})})]})};je();we();io();no();ke();ce();import{jsx as An,jsxs as fi}from"react/jsx-runtime";var pi=({context:o})=>{let e=po(o.template);if(e.kind==="resolved")return An(ne,{componentProps:o,declaration:e.entry.declaration,implementationRole:"details",load:()=>te(e.entry.declaration,"details")});return fi("div",{className:"rounded-xl border border-dashed border-border p-4 text-sm text-muted-foreground",children:["No dashboard editor is available for template kind"," ",An("code",{children:e.templateKind}),". The workflow draft has not been changed."]})};var bo=(o)=>o!==void 0&&o!==null&&W(o)&&!Array.isArray(o),In=function(e,n){return Object.fromEntries(Object.entries(e).filter(([t])=>t!==n))},jn=function(e){if(e==="input_binding")return"inputs";if(e==="setting")return"settings";if(e==="metadata")return"metadata";return"config"},re=function(e){return bo(e)?e:void 0},ko=function(e){let n=re(e);if(n===void 0||!("value"in n))return e;return n.mode==="fixed"||n.kind==="literal"?n.value:e},Pe=function(e,n){let t=e[jn(n.target)];for(let r of n.path){let i=re(ko(t));if(i===void 0)return;t=i[r]}return ko(t)},mi=function(e,n){return Pe(e,n.binding)},gi=function o(e,n,t){let[r,...i]=n;if(r===void 0)return e??{};let s=e??{};if(!i.length)return{...s,[r]:t};let a=re(s[r]),l=re(ko(a));if(a?.mode==="fixed")return{...s,[r]:{...a,value:o(l,i,t)}};return{...s,[r]:o(l,i,t)}},wo=function(e,n){return[e==="input_binding"?"inputBinding":e,...n].map((t)=>encodeURIComponent(String(t))).join("/")},xi=function(e,n,t){let r={...re(e?.fieldDisplayValues)},i=wo(n.binding.target,n.binding.path);if(t)r[i]=t;else return{...e,fieldDisplayValues:In(r,i)};return{...e,fieldDisplayValues:r}},yi=function(e,n,t,r){let i=jn(n.binding.target),s={[i]:gi(e[i],n.binding.path,t)};if(r!==void 0)s.metadata=xi(i==="metadata"?s.metadata:e.metadata,n,r);return s},$n=function(e,n,t){let r=e.metadata?.fieldDisplayValues;if(r===void 0||r===null||!bo(r))return;let i=r[wo(n.binding.target,t)];if(i===void 0||i===null||!bo(i))return;return p(i.label)&&"value"in i?{label:i.label,value:i.value}:void 0},bi=function(e,n){return $n(e,n,n.binding.path)},ki=function(e,n,t){return $n(e,n,[...n.binding.path,...t])},wi=function(e,n,t,r){let i={...re(e?.fieldDisplayValues)},s=wo(n,t);if(r)i[s]=r;else return{...e,fieldDisplayValues:In(i,s)};return{...e,fieldDisplayValues:i}},hi=function(e,n,t,r){return{metadata:wi(e.metadata,n.binding.target,[...n.binding.path,...t],r)}};var ho=function o(e,n){if(Array.isArray(e)||Array.isArray(n))return Array.isArray(e)&&Array.isArray(n)&&e.length===n.length&&e.every((t,r)=>o(t,n[r]));if(e!==null&&n!==null&&e!==void 0&&n!==void 0&&W(e)&&W(n)){let t=Object.keys(e);return t.length===Object.keys(n).length&&t.every((r)=>o(e[r],n[r]))}return e===n},qn=function(e){return e!==void 0&&e!==null&&e!==""},vi=function(e,n){if(!Array.isArray(n)||e===void 0)return!1;return(Array.isArray(e)?e:[e]).some((r)=>n.some((i)=>ho(r,i)))},Wi=function(e,n){return(e.visibleWhen??[]).every((t)=>{let r=Pe(n,t.binding);switch(t.operator){case"equals":return ho(r,t.value);case"not_equals":return!ho(r,t.value);case"is_set":return qn(r);case"is_not_set":return!qn(r);case"in":return vi(r,t.value);default:return!1}})};var Ci=function(e){if(!e)return"";return e.kind==="literal"?e.text:e.default};Ce();Se();Fe();$e();export{oe as CatalogNodeChartBlock,_ as CatalogNodeDetailsEditor,Ye as ExpressionEditor,Aa as ExpressionSlot,Qe as ExpressionSyntaxReference,Za as FieldTypeSelect,Br as WorkflowFieldConfigurationResolver,pe as WorkflowFieldFrame,Le as WorkflowFieldResolver,pi as WorkflowTemplateDetails,qr as activateDashboardWorkflowCatalog,Jn as activateWorkflowCatalog,Ia as asExpressionSlotValue,Ci as catalogText,Ui as configureWorkflowFieldOptionsProvider,hs as createExpressionDraft,lo as dashboardWorkflowPackage,ro as defaultWorkflowTemplateDeclarations,ze as expressionSourceOptions,_a as fieldCollectionsFromCatalog,yo as fieldTypeIdentity,Zo as insertExpressionAtCursor,se as isBoolean,Hn as isFunction,P as isJsonValue,J as isNumber,W as isObject,T as isRecord,Ws as isSchemaCompatible,p as isString,Si as isUndefined,Wi as isWorkflowFieldVisible,Kt as normalizeExpressionEnvironment,Ut as normalizeExpressionValidation,xe as parseWorkflowTemplateKind,hi as patchWorkflowFieldPartDisplayValue,yi as patchWorkflowFieldValue,Pe as readWorkflowBindingValue,bi as readWorkflowFieldDisplayValue,ki as readWorkflowFieldPartDisplayValue,mi as readWorkflowFieldValue,wn as renderDefaultActionChart,hn as renderDefaultActionDetails,Cn as renderDefaultInputChart,Fn as renderDefaultInputDetails,Sn as renderDefaultOutputChart,En as renderDefaultOutputDetails,vn as renderDefaultTriggerChart,Wn as renderDefaultTriggerDetails,de as resolveWorkflowField,po as resolveWorkflowTemplate,Ka as schemaForWorkflowField,U as schemaLabel,vs as serializeExpressionDraft,Ei as toDisplayString,Ha as toFieldTypeCollection,Mr as workflowCatalogSnapshot,le as workflowFieldOptions,zi as workflowFieldOptionsInfinite};
1
+ var Mn=Object.defineProperty;var Bn=(o)=>o;function Ln(o,e){this[o]=Bn.bind(null,e)}var _n=(o,e)=>{for(var n in e)Mn(o,n,{get:e[n],enumerable:!0,configurable:!0,set:Ln.bind(e,n)})};var b=(o,e,n)=>()=>{if(o)try{e=o(o=0)}catch(t){n=[t]}if(n)throw n[0];return e};var se=(o)=>Boolean(o)===o,Hn=(o)=>Object.prototype.toString.call(o)==="[object Function]",J=(o)=>Number(o)===o,W=(o)=>o!==null&&Object(o)===o&&!Hn(o),P=(o)=>{let e=Object.prototype.toString.call(o);if(o===null||e==="[object Boolean]"||e==="[object Number]"||e==="[object String]")return!0;if(Array.isArray(o))return o.every(P);return W(o)&&Object.values(o).every(P)},T=(o)=>P(o)&&W(o)&&!Array.isArray(o),u=(o)=>String(o)===o,Si=(o)=>o===void 0,Ei=(o)=>{let e=o;if(u(e))return e;if(se(e)||J(e))return String(e);return""};import{ArrowRight as Kn,CheckCircle2 as Un,Wrench as zn,Zap as Qn}from"@collective-intelligence/ui-react/icons";var vo=function(e){switch(e){case"trigger":case"trigger_node":return{icon:Qn,label:"Trigger",tone:"bg-violet-500/12 text-violet-600 dark:text-violet-400"};case"input_node":return{icon:Kn,label:"Input",tone:"bg-sky-500/12 text-sky-600 dark:text-sky-400"};case"output_node":return{icon:Un,label:"Output",tone:"bg-emerald-500/12 text-emerald-600 dark:text-emerald-400"};default:return{icon:zn,label:"Action",tone:"bg-slate-500/12 text-slate-600 dark:text-slate-400"}}};var Wo=()=>{};import{AlertTriangle as Gn,Plus as Yn}from"@collective-intelligence/ui-react/icons";import{Tooltip as Zn,TooltipContent as Xn,TooltipTrigger as et}from"@collective-intelligence/ui-react/ui";import{Handle as ot,Position as Co,useNodeId as nt,useUpdateNodeInternals as tt}from"@xyflow/react";import{useEffect as rt}from"react";import{jsx as k,jsxs as D,Fragment as lt}from"react/jsx-runtime";var it,Fo=function(e){if(u(e))return e;if(W(e)&&"kind"in e&&"text"in e){let n=e;if(n.kind==="literal"&&u(n.text))return n.text}if(W(e)&&"en"in e){let n=e.en;return u(n)?n:""}return""},st=({issues:o,title:e})=>{let n=`${o.length} ${o.length===1?"issue":"issues"} on ${e}`;return D(Zn,{children:[k(et,{asChild:!0,children:k("button",{type:"button","aria-label":n,className:"nodrag nopan absolute -right-2 -top-2 z-20 flex size-7 items-center justify-center rounded-full border border-[color-mix(in_oklab,var(--warning)_45%,var(--border))] bg-[color-mix(in_oklab,var(--warning)_16%,var(--card))] text-[color-mix(in_oklab,var(--warning)_80%,var(--foreground))] shadow-sm transition hover:bg-[color-mix(in_oklab,var(--warning)_24%,var(--card))] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40",onClick:(t)=>{t.stopPropagation()},onPointerDown:(t)=>{t.stopPropagation()},children:k(Gn,{"aria-hidden":"true",className:"size-4"})})}),D(Xn,{side:"top",sideOffset:6,className:"max-w-72 p-3",children:[k("p",{className:"font-semibold",children:n}),k("ul",{className:"mt-1.5 space-y-1",children:o.map((t)=>k("li",{className:"leading-snug",children:t.message},`${t.code}:${t.message}`))})]})]})},So=({port:o,side:e,index:n=0,count:t=1})=>{let r=e==="left"?Co.Left:Co.Right,i={top:`${(n+1)/(t+1)*100}%`},s=o.maxConnections===null?"unlimited connections":`maximum ${o.maxConnections??1} connections`,a=[...Array.isArray(o.allowedTemplateKinds)?o.allowedTemplateKinds.filter(u):[],...Array.isArray(o.allowedTemplateFqns)?o.allowedTemplateFqns.filter(u):[]],l=`${o.key} — ${o.direction}, ${s}${a.length?`; accepts ${a.join(", ")}`:""}`;return D(lt,{children:[k(ot,{id:o.key,type:o.direction==="input"?"target":"source",position:r,title:l,"aria-label":l,style:i,className:o.direction==="input"?"!h-5 !w-5 !rounded-sm !border-2 !border-background !bg-primary":"!h-5 !w-5 !border-2 !border-background !bg-primary"}),k("span",{style:i,className:`pointer-events-none absolute z-10 -translate-y-full whitespace-nowrap rounded bg-card px-1 text-[10px] text-muted-foreground ${e==="left"?"right-full mr-2":"left-full ml-2"}`,children:o.key})]})},at=({signature:o})=>{let e=nt(),n=tt();return rt(()=>{if(e!==null)n(e)},[e,o,n]),null},oe=({context:o,accent:e})=>{let n=o.ports.filter((f)=>f.direction==="input"),t=o.ports.filter((f)=>f.direction==="output"),r=new Set(o.chart.connectedOutputPortKeys),i=o.chart.fields??[],s=Fo(o.template.label),a=o.chart.title??s,l=o.chart.subtitle??(a===s?void 0:s),d=o.chart.description??Fo(o.template.description),{icon:c}=o.chart.presentation??vo(o.template.kind),x=o.chart.presentation?.tone??it[e],w=o.diagnostics.filter((f)=>f.severity!=="info");return D("div",{className:"relative w-[262px]",children:[w.length?k(st,{issues:w,title:a}):null,D("button",{type:"button","aria-label":`Edit ${a}`,style:{minHeight:(Math.max(n.length,t.length)+1)*28},onDoubleClick:()=>{o.chart.onOpenDetails()},className:`workflow-node-drag group relative z-10 w-full cursor-pointer rounded-2xl border bg-card p-4 text-left shadow-[0_2px_10px_-4px_rgba(30,29,26,0.12)] transition-[border-color,box-shadow] hover:shadow-[0_8px_24px_-14px_rgba(30,29,26,0.24)] focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40 ${x}`,children:[o.ports.length>0?k(at,{signature:o.ports.map((f)=>`${f.direction}:${f.key}`).join("|")}):null,n.map((f,m)=>k(So,{port:f,side:"left",index:m,count:n.length},f.key)),t.map((f,m)=>k(So,{port:f,side:"right",index:m,count:t.length},f.key)),D("div",{className:"flex items-start gap-3",children:[k("div",{className:`flex size-10 shrink-0 items-center justify-center rounded-xl ${x}`,children:k(c,{className:"size-5"})}),D("div",{className:"min-w-0",children:[k("div",{className:"truncate text-sm font-semibold text-foreground",children:a}),u(l)&&l.length>0?k("p",{className:"truncate font-mono text-[11px] text-muted-foreground",children:l}):null]})]}),(()=>{if(u(d)&&d.length>0)return D("div",{className:"mt-3 space-y-2 border-t border-border/70 pt-3",children:[u(d)&&d.length>0?k("p",{className:"line-clamp-2 text-xs leading-snug text-muted-foreground [overflow-wrap:anywhere]",children:d}):null,u(o.chart.summary)&&o.chart.summary.length>0?k("div",{className:"rounded-lg bg-muted/60 px-2.5 py-2",children:k("p",{className:"line-clamp-3 whitespace-pre-line font-mono text-[11px] leading-4 text-muted-foreground [overflow-wrap:anywhere]",children:o.chart.summary})}):null]});return null})(),i.length?k("div",{className:"mt-3 space-y-1.5 border-t border-border/70 pt-3",children:i.slice(0,4).map((f)=>k("div",{className:"truncate rounded-md bg-muted px-2.5 py-1.5 font-mono text-[11px] text-foreground",children:f},f))}):null]}),(()=>{if(t.length)return k("div",{className:`absolute left-full top-0 h-full ${t.length===1?"w-24":"w-36"}`,children:t.map((f,m)=>r.has(f.key)?null:D("div",{className:"absolute left-0 right-0 flex -translate-y-1/2 items-center gap-1.5",style:{top:`${(m+1)/(t.length+1)*100}%`},children:[k("div",{className:"h-px min-w-8 flex-1 bg-foreground/40"}),r.has(f.key)?null:k("button",{type:"button",className:"flex size-6 shrink-0 items-center justify-center rounded-md border border-border-strong bg-card text-muted-foreground shadow-sm transition hover:border-primary hover:text-primary focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-primary/40","aria-label":`Add after ${a} ${f.key}`,title:`Add after ${f.key}`,onClick:(p)=>{p.stopPropagation(),o.chart.onAddFromPort?.(f)},children:k(Yn,{className:"size-3.5"})})]},f.key))});return null})()]})};var je=b(()=>{Wo();it={emerald:"bg-[color-mix(in_oklab,var(--chart-2)_12%,var(--card))] text-emerald-600 border-emerald-500/30",sky:"bg-[color-mix(in_oklab,var(--chart-4)_12%,var(--card))] text-sky-600 border-sky-500/30",slate:"bg-[color-mix(in_oklab,var(--bg-surface-alt)_55%,var(--card))] text-slate-600 border-slate-500/30",violet:"bg-[color-mix(in_oklab,var(--chart-5)_12%,var(--card))] text-violet-600 border-violet-500/30"}});var dt=(o)=>o.trim().replaceAll(/[^a-zA-Z0-9]+/gu,"_").toUpperCase(),ct=(o)=>{if(typeof o.module==="string")return{exportName:o.exportName,module:o.module};return{exportName:o.exportName,module:o.module.pathname.split("/").pop()??"unknown-module"}},ae=(o)=>{let{declaration:e,phase:n,message:t,cause:r,sourceMap:i}=o,{target:s}=e,a=["FE",n.toUpperCase(),s.packageFqn,s.fqn,s.version,s.role].map(dt).join("-");return{componentFqn:s.fqn,diagnosticId:a,message:t,packageFqn:s.packageFqn,phase:n,role:s.role,source:ct(e.implementation.render),version:s.version,...i===void 0?void 0:{sourceMap:i},...r===void 0?void 0:{cause:String(r instanceof Error?r.message:r)}}};var Eo=()=>{};import{Component as pt,createContext as ut,createElement as ft,useContext as mt,useEffect as gt,useLayoutEffect as xt,useRef as yt,useState as bt}from"react";import"react";import{jsx as be,jsxs as ht}from"react/jsx-runtime";var kt=(o)=>ht("div",{role:"alert","data-diagnostic-id":o.diagnosticId,children:["Hosted extension failed. Diagnostic ID: ",o.diagnosticId]}),To,Oo,Jo,Po=({diagnostic:o})=>mt(Jo)(o),Vo=(o,e)=>{console.error(`Hosted extension ${o.diagnosticId}: ${o.message}`,e)},Do,wt,ne=({componentProps:o,declaration:e,fallback:n=wt,implementationRole:t="render",load:r,onDiagnostic:i})=>{let[s,a]=bt(null),l=yt({load:r,onDiagnostic:i});xt(()=>{l.current={load:r,onDiagnostic:i}},[r,i]),gt(()=>{let x=!0;return(async()=>{try{let f=await l.current.load();if(!x)return;let m=e.implementation[t]??e.implementation.render,p=f[m.exportName];if(p===void 0){let h=ae({declaration:e,message:`Export "${m.exportName}" was not a React component.`,phase:"load"});Vo(h,h),l.current.onDiagnostic?.(h),a({declaration:e,diagnostic:h,implementationRole:t,kind:"failed"});return}a({component:p,declaration:e,implementationRole:t,kind:"ready"})}catch(f){if(!x)return;let m=ae({cause:f,declaration:e,message:"The hosted component could not be loaded.",phase:"load"});Vo(m,f),l.current.onDiagnostic?.(m),a({declaration:e,diagnostic:m,implementationRole:t,kind:"failed"})}})(),()=>{x=!1}},[e,t]);let d=s?.declaration===e&&s.implementationRole===t?s:null;if(d===null)return n;if(d.kind==="failed")return be(Po,{diagnostic:d.diagnostic});let c={children:ft(d.component,o),declaration:e,...i===void 0?void 0:{onDiagnostic:i}};return be(Do,{...c})};var ke=b(()=>{Eo();To=Symbol.for("@collective-intelligence/extensions-sdk-frontend-react/hosted-extension-failure"),Oo=globalThis,Jo=Oo[To]??ut(kt);Oo[To]=Jo;Do=class Do extends pt{constructor(o){super(o);this.state={error:null}}static getDerivedStateFromError(o){return{error:o}}componentDidCatch(o,e){let n=ae({cause:o,declaration:this.props.declaration,message:"The hosted component threw while rendering.",phase:"render"});this.props.onDiagnostic?.(n)}render(){if(this.state.error!==null){let o=ae({cause:this.state.error,declaration:this.props.declaration,message:"The hosted component threw while rendering.",phase:"render"});return be(Po,{diagnostic:o})}return this.props.children}};wt=be("output",{children:"Loading extension…"})});var te=async(o,e="render")=>{let n=o.implementation[e]??o.implementation.render;if(n.load===void 0)throw Error(`Workflow contribution "${o.target.fqn}" requires a retained module loader for "${e}".`);return await n.load()};import{infiniteQueryOptions as vt,queryOptions as Wt}from"@tanstack/react-query";var Ro,Ui=(o)=>{Ro=o},No=(o)=>{let{optionsProvider:e,...n}=o;return n},Ao=(o)=>["workflow-field-options",No(o)],Io=(o,e)=>{let n=o.optionsProvider??Ro;return n===void 0?Promise.resolve({options:[]}):n(No(o),e.signal)},le=(o)=>Wt({queryFn:async(e)=>await Io(o,e),queryKey:Ao(o)}),zi=(o)=>vt({getNextPageParam:(e)=>e.nextCursor,initialPageParam:null,queryFn:async({pageParam:e,signal:n})=>await Io({...o,cursor:e},{signal:n}),queryKey:Ao({...o,cursor:null})});var $e=()=>{};import{Combobox as Ct,Label as Ft}from"@collective-intelligence/ui-react/ui";import{useQuery as St}from"@tanstack/react-query";import{jsx as jo,jsxs as Vt}from"react/jsx-runtime";var Et=(o)=>{if(o?.kind==="literal")return o.text;return o?.kind==="translation"?o.default:void 0},$o=({context:o})=>{let{remoteOptions:e}=o,n={catalogTemplateId:e?.catalogTemplateId??"",dependencies:e?.dependencies??{},limit:50,organizationId:e?.organizationId??""},t=e?.config===void 0?le(n):le({...n,config:e.config}),r=(()=>{if(e?.optionsProvider===void 0)return t;if(e.config===void 0)return le({...n,optionsProvider:e.optionsProvider});return le({...n,config:e.config,optionsProvider:e.optionsProvider})})(),i=St({...r,enabled:Boolean(e)}),s=i.data?.options??o.options,a=Et(o.field.placeholder);return Vt("div",{className:"space-y-2",children:[jo(Ft,{htmlFor:`workflow-field-${o.field.key}`,children:o.field.label.kind==="literal"?o.field.label.text:o.field.label.default}),jo(Ct,{className:"w-full",disabled:o.readOnly||Boolean(e&&i.isPending),emptyMessage:"No options are available.",id:`workflow-field-${o.field.key}`,modal:!0,onChange:(l)=>o.onValueChange(l),options:s.map((l)=>({label:l.label,value:String(l.value)})),placeholder:a??"Select an option",searchPlaceholder:"Search options...",value:o.value===null||!u(o.value)&&!J(o.value)?"":String(o.value),width:"100%"})]})};var qo=b(()=>{$e()});var L;var qe=b(()=>{L={field:"Field",unavailableConfiguration:(o)=>`${o} has configuration that this Dashboard cannot edit. Its saved configuration is preserved.`,unavailableControl:(o,e)=>`${o} uses an unavailable ${e} control. Its saved value is preserved.`}});import{Alert as Tt,AlertDescription as Ot}from"@collective-intelligence/ui-react/ui";import{jsx as R,jsxs as Be,Fragment as Pt}from"react/jsx-runtime";var Me=({diagnostics:o})=>R(Pt,{children:o.map((e)=>R(Tt,{variant:"destructive",children:R(Ot,{children:e.message})},`${e.code}:${e.message}`))}),Jt=(o)=>{if(u(o))return o;if(o!==null&&W(o)&&"text"in o){let{text:e}=o;return u(e)?e:L.field}if(o!==null&&W(o)&&"default"in o){let{default:e}=o;return u(e)?e:L.field}return L.field},Le=({context:o})=>{let e={widget:o.field.widget};if(o.field.fieldFqn!==void 0&&o.field.fieldFqn!==null)e.fqn=o.field.fieldFqn;if(o.field.fieldVersion!==void 0&&o.field.fieldVersion!==null)e.version=o.field.fieldVersion;let n=de(e),t=o.mode??(o.readOnly?"read_only":"value"),r={...o,readOnly:t==="read_only"||o.readOnly};if(n.kind==="resolved"&&n.source==="fallback"&&o.field.optionSource?.kind==="remote")return Be("div",{className:"space-y-2",children:[R($o,{context:r}),R(Me,{diagnostics:o.diagnostics})]});if(n.kind==="resolved")return Be("div",{className:"space-y-2",children:[R(ne,{componentProps:r,declaration:n.entry.declaration,load:()=>te(n.entry.declaration)}),Mo(n.entry).handlesDiagnostics===!0?null:R(Me,{diagnostics:o.diagnostics})]});return Be("div",{className:"space-y-2",children:[R("div",{className:"rounded-lg border border-dashed border-border px-3 py-2 text-sm text-muted-foreground",children:L.unavailableControl(Jt(o.field.label),o.field.fieldFqn??o.field.widget)}),R(Me,{diagnostics:o.diagnostics})]})};var _e=b(()=>{ke();ce();qo();qe()});var Bo;var Lo=b(()=>{Bo={noEditableFields:"This template does not expose editable fields."}});import{jsx as He,jsxs as Ho}from"react/jsx-runtime";var Dt=function(e){if(u(e))return e;if(W(e)&&!Array.isArray(e)&&"en"in e){let n=e.en;return u(n)?n:""}return""},_o=function(e){return[...e].sort((n,t)=>(n.order??0)-(t.order??0))},Rt=function(e){return _o(e).map((n)=>({...n,fields:_o(n.fields??[])}))},_=({context:o})=>{let e=Rt("editor"in o.template.contract?o.template.contract.editor?.form?.sections??[]:[]);return Ho("div",{className:"space-y-5",children:[e.map((n)=>Ho("section",{className:"space-y-3 rounded-xl border border-border p-4",children:[He("h3",{className:"text-sm font-semibold text-foreground",children:Dt(n.label)}),(n.fields??[]).filter((t)=>o.isFieldVisible?.(t)??!0).map((t)=>o.getFieldContext?He(Le,{context:o.getFieldContext(t)},t.key):null)]},n.key)),e.length?null:He("p",{className:"rounded-xl border border-dashed border-border p-4 text-sm text-muted-foreground",children:Bo.noEditableFields})]})};var we=b(()=>{_e();Lo()});var Nt,Ko=(o)=>Nt.has(o),H=(o)=>T(o)?o:void 0,ve=(o)=>{let e=o.anyOf??o.oneOf;return Array.isArray(e)?e.flatMap((n)=>{let t=H(n);return t===void 0?[]:ve(t)}):[o]},Uo=(o)=>{if(o===null)return"null";if(Array.isArray(o))return"array";if(T(o))return"object";if(u(o))return"string";if(J(o))return Number.isInteger(o)?"integer":"number";return"boolean"},Qo=(o)=>{let{type:e}=o;if(u(e))return Ko(e)?new Set([e]):void 0;if(Array.isArray(e))return new Set(e.filter(u).filter(Ko));if(o.const!==void 0)return new Set([Uo(o.const)]);if(Array.isArray(o.enum))return new Set(o.enum.map(Uo));if(o.properties!==void 0)return new Set(["object"]);if(o.items!==void 0)return new Set(["array"]);return},N=(o)=>{let e=new Set;for(let n of ve(o)){let t=Qo(n);if(t===void 0)return;for(let r of t)e.add(r)}return e},Go=(o)=>{let[e]=o;if(e===void 0)return{};return o.length===1?e:{anyOf:[...o]}},pe=(o,e)=>ve(o).filter((n)=>{let t=Qo(n);return t===void 0||t.has(e)}),he=(o)=>Go(pe(o,"array").map((e)=>H(e.items)??{})),At=(o,e)=>o.has(e)||e==="integer"&&o.has("number"),It=(o,e)=>{let[n]=pe(o,"object"),t=H(n?.properties);if(t===void 0)return!0;let r=Array.isArray(n?.required)?n.required.filter(u):[];return pe(e,"object").every((i)=>{let s=H(i.properties);if(s===void 0)return!0;return r.every((a)=>(a in s))&&Object.entries(t).every(([a,l])=>{let d=H(s[a]),c=H(l);return d===void 0||c===void 0?!0:K(c,d)})})},K=(o,e)=>{let n=N(o),t=N(e);if(n===void 0||t===void 0)return!0;for(let r of t)if(!At(n,r))return!1;if(t.has("array")&&!K(he(o),he(e)))return!1;return!t.has("object")||It(o,e)},jt=(o)=>Go(ve(o).flatMap((e)=>{let{type:n}=e;if(n==="null")return[];if(Array.isArray(n)){let t=n.filter((r)=>r!=="null");return t.length===0?[]:[{...e,type:t}]}return[e]})),$t=(o)=>{let e=N(o);if(e?.has("string")===!0)return'""';if(e?.has("number")===!0||e?.has("integer")===!0)return"0";if(e?.has("boolean")===!0)return"false";return},qt=(o)=>{let e=pe(o,"array").every((t)=>J(t.minItems)&&t.minItems>=1),n=he(o);return e||N(n)?.has("null")===!0?n:{anyOf:[n,{type:"null"}]}},Ke=(o,e)=>{if(e===void 0||N(e)===void 0||N(o)===void 0)return{status:"unknown"};if(K(e,o))return{status:"compatible"};let n=$t(e),t=(l,d)=>{if(K(e,l))return d;return n!==void 0&&K(e,jt(l))?[...d,`coalesce(${n})`]:void 0},r=t(o,[]),i=N(o),s=r===void 0&&i?.has("array")===!0?t(qt(o),["first"]):void 0,a=r??s;return a===void 0||a.length===0?{status:"incompatible"}:{pipes:a.map((l)=>`| ${l}`).join(" "),status:"fixable"}},zo=4,Mt=(o)=>{let e=pe(o,"object").flatMap((t)=>Object.keys(H(t.properties)??{}));if(e.length===0)return"object";return`{${e.slice(0,zo).join(", ")}${e.length>zo?", …":""}}`},Ue=(o)=>{let e=N(o);if(e===void 0)return"any";return["string","integer","number","boolean","object","array","null"].filter((t)=>e.has(t)).map((t)=>{if(t==="array"){let r=he(o),i=N(r);return`array of ${i?.size===1&&i.has("object")?Mt(r):Ue(r)}`}return t}).join(" | ")};var We=b(()=>{Nt=new Set(["array","boolean","integer","null","number","object","string"])});var hs=function(e){let n=e.mode==="fixed"?e.value:null;return{expression:e.mode==="expression"?e.source:"",fixed:n,mode:e.mode}},vs=function(e){return e.mode==="fixed"?{mode:"fixed",value:e.fixed}:{languageVersion:1,mode:"expression",source:e.expression}},Yo=function(e,n){return{availability:n.availability,id:n.id,label:n.label,path:n.path??[],schema:n.schema,sourceId:e}},Bt=(o,e)=>o.length===e.length&&o.every((n,t)=>n===e[t]),Lt=function(e,n,t){let r=t.path??[];if(r.length===0){e.children.push(Yo(n,t));return}let i=e;for(let[s,a]of r.entries()){let l=r.slice(0,s+1),d=i.children.findIndex((w)=>Bt(w.path,l)),c=i.children[d];if(s===r.length-1){if(!c)i.children.push(Yo(n,t));return}if(c&&"children"in c){i=c;continue}let x=c?{...c,children:[],conditional:c.availability==="conditional",selectors:[]}:{availability:t.availability,children:[],conditional:t.availability==="conditional",id:`${n}:${l.join(".")}`,label:String(a),path:l,schema:{},selectors:[],sourceId:n};if(c)i.children[d]=x;else i.children.push(x);i=x}},_t=function o(e){return e.flatMap((n)=>[n,...o(n.children??[])])},Ht=function(e){let n=e.availability??"guaranteed",t={availability:n,children:[],conditional:n==="conditional",id:e.id,label:e.label,path:[],schema:e.schema,selectors:(e.selectors??[]).map((r)=>r.kind),sourceId:e.id};if(e.nodeKey!==void 0&&e.nodeKey!==null)t.nodeKey=e.nodeKey;for(let r of _t(e.fields??[]))Lt(t,e.id,r);return t},Kt=function(e){return{compatibility:e.targetCompatibility??[],language:e.languageManifest,sources:(e.availableSources??[]).map(Ht)}},Ut=function(e){return{canonicalSource:e.canonicalSource??null,diagnostics:(e.diagnostics??[]).map((n)=>({actualSchema:n.actualSchema,code:n.code,expectedSchema:n.expectedSchema,message:n.message,remediation:n.remediation,severity:n.severity,span:n.span})),inferredSchema:e.inferredSchema,references:e.references??[]}},Ws=function(e,n){return K(n,e)},Zo=function(e,n,t){let r=Math.max(0,Math.min(n,e.length));return{cursor:r+t.length,source:`${e.slice(0,r)}${t}${e.slice(r)}`}};var Ce=b(()=>{We()});var zt=function(e){if(e.id==="trigger")return"trigger";if(e.id==="workflow_input")return"input";let[,n]=e.id.split(":port:");return`nodes[${JSON.stringify(e.nodeKey??e.label)}]${n?`.${n}`:""}`},Qt=function(e){return e.map((n)=>(()=>{if(J(n))return`[${n}]`;if(/^[A-Za-z_$][\w$]*$/u.test(n))return`.${n}`;return`[${JSON.stringify(n)}]`})()).join("")},Gt=function(e){if(e.id==="trigger")return{id:"trigger",label:"Trigger data"};if(e.id==="workflow_input")return{id:"workflow_input",label:"Workflow input"};return{id:e.id,label:e.label}},Yt=function o(e){let{source:n}=e;return e.nodes.flatMap((t)=>{let r=`${n.id}:${t.id}`,i=[...e.parentLabels,t.label],s="children"in t?t.children:[],a=`${zt(n)}${Qt(t.path)}`;return[{conditional:t.availability==="conditional",depth:e.depth,expandable:s.length>0,group:e.group,id:r,insertion:`{{ ${a} }}`,label:`${n.label} · ${i.join(".")}`,name:t.label,parentId:e.parentId,pathLabel:i.join("."),reference:a,schema:t.schema,selectors:n.selectors},...o({depth:e.depth+1,group:e.group,nodes:s,parentId:r,parentLabels:i,source:n})]})},Zt=function(e){let n=e.children.length?e.children:[{availability:e.availability,id:e.id,label:"Output",path:[],schema:e.schema,sourceId:e.id}];return Yt({depth:0,group:Gt(e),nodes:n,parentId:null,parentLabels:[],source:e})},ze=function(e){return e.sources.flatMap((n)=>Zt(n))},U=function(e){return Ue(e)};var Fe=b(()=>{We()});import{jsx as F,jsxs as en,Fragment as Xt}from"react/jsx-runtime";var V=({title:o,values:e})=>en("section",{"aria-label":o,children:[F("h3",{className:"font-medium",children:o}),e.length>0?F("ul",{className:"mt-1 list-disc pl-5 font-mono text-xs",children:e.map((n,t)=>F("li",{children:n},`${n}-${t}`))}):F("p",{className:"text-muted-foreground",children:"No entries in this language manifest."})]}),Xo=function(e){return e.map((n)=>n.example??n.name)},Qe=({manifest:o})=>en(Xt,{children:[F(V,{title:"Syntax overview",values:[o.grammar]}),F(V,{title:"Interpolation",values:[`Whole value preserves type: ${o.interpolation.wholeValuePreservesType}`,`Mixed text returns: ${o.interpolation.mixedTextReturns}`]}),F(V,{title:"References",values:[o.grammar]}),F(V,{title:"Selectors",values:o.selectors.map(({kind:e})=>e)}),F(V,{title:"Unavailable-value policies",values:o.availabilityPolicies}),F(V,{title:"Operators",values:o.operators}),F(V,{title:"Functions",values:Xo(o.functions)}),F(V,{title:"Casts and pipes",values:o.pipes}),F(V,{title:"Strings",values:o.pipes}),F(V,{title:"Collections",values:o.pipes}),F(V,{title:"Objects",values:o.pipes}),F(V,{title:"Dates",values:o.pipes}),F(V,{title:"If conditions",values:o.ifExamples}),F(V,{title:"Comparators",values:Xo(o.comparators)})]});var Ge=()=>{};var z;var on=b(()=>{z={applyPipes:(o)=>`Append ${o}`,expectedType:"Field expects",incompatibleType:"Incompatible type",insertWithPipes:"Insert with the pipes that make this value fit the field",validationFailed:(o)=>`We couldn't validate this expression: ${o}`,validationUnavailable:"We couldn't validate this expression right now. Check its syntax and referenced values, then try again."}});import{ChevronRight as er}from"@collective-intelligence/ui-react/icons";import{Badge as or,Button as G,Input as nn,Popover as nr,PopoverAnchor as tr,PopoverContent as rr,Textarea as ir}from"@collective-intelligence/ui-react/ui";import{Fragment as sr,useEffect as ar,useRef as lr,useState as Q}from"react";import{jsx as y,jsxs as S}from"react/jsx-runtime";var tn=(o)=>o!==null&&W(o)&&!Array.isArray(o),A=(o)=>o!==null&&o!==void 0&&o!=="",dr=function o(e){if(u(e))return e;if(Array.isArray(e)){let n=e.map(o).filter((t)=>A(t));return n.length?n.join("; "):void 0}if(!tn(e))return;if(u(e.msg))return e.msg;if(u(e.message))return e.message;if(u(e.detail))return e.detail;return},cr=function(e){if(e instanceof Error&&A(e.message))return e.message;if(!P(e))return;if(!tn(e))return;return[e.detail,e.body,e.error,e.message].map(dr).find((n)=>A(n))},pr=function(e){let n=cr(e);return A(n)?z.validationFailed(n):z.validationUnavailable},rn,ur,sn=function(e,n){return ur.flatMap((t)=>e.filter((r)=>n(r)===t))},fr=function(e){let n=new Map;for(let i of e){let s=n.get(i.option.parentId)??[];s.push(i),n.set(i.option.parentId,s)}let t=new Map,r=(i)=>{let s=t.get(i.option.id);if(s!==void 0)return s;let a=Math.min(rn[i.compatibility.status],...(n.get(i.option.id)??[]).map(r));return t.set(i.option.id,a),a};for(let[i,s]of n)n.set(i,sn(s,r));return n},an=({entry:o,expanded:e,onInsert:n,onToggle:t})=>{let{compatibility:r,option:i}=o,s=t===void 0,a=r.status==="incompatible";return S("div",{className:"mt-1 flex items-start gap-1",style:{paddingInlineStart:s?0:`${i.depth*1.25}rem`},children:[!s&&i.expandable?y(G,{"aria-expanded":e,"aria-label":`${e?"Collapse":"Expand"} ${i.label}`,className:"mt-1 size-7 shrink-0",onClick:t,size:"icon",type:"button",variant:"ghost",children:y(er,{"aria-hidden":!0,className:e?"size-4 rotate-90":"size-4"})}):y("span",{"aria-hidden":!0,className:"size-7 shrink-0"}),S(G,{"aria-label":`Insert ${i.label}`,className:`block h-auto min-w-0 flex-1 whitespace-normal px-2 py-1.5 text-left ${a?"opacity-60":""}`,onClick:()=>{n(i.insertion)},type:"button",variant:"ghost",children:[y("span",{className:"block text-sm",children:s?i.pathLabel:i.name}),S("span",{className:"flex flex-wrap items-center gap-1.5 font-mono text-xs text-muted-foreground",children:[U(i.schema),a?y(or,{className:"font-sans",variant:"outline",children:z.incompatibleType}):null]})]}),r.status==="fixable"?y(G,{"aria-label":`Insert ${i.label} with ${r.pipes}`,className:"mt-1 h-auto shrink-0 px-1.5 py-0.5 font-mono text-xs",onClick:()=>{n(`{{ ${i.reference} ${r.pipes} }}`)},size:"sm",title:z.insertWithPipes,type:"button",variant:"outline",children:r.pipes}):null]})},ln=({tree:o,expanded:e,onInsert:n,onToggle:t,parentId:r})=>(o.get(r)??[]).map((i)=>{let s=e.has(i.option.id);return S(sr,{children:[y(an,{entry:i,expanded:s,onInsert:n,onToggle:()=>{t(i.option.id)}}),s?y(ln,{expanded:e,onInsert:n,onToggle:t,parentId:i.option.id,tree:o}):null]},i.option.id)}),mr=({environment:o,onInsert:e,onQueryChange:n,options:t,query:r,targetSchema:i})=>{let[s,a]=Q(new Set),l=new Map(t.map(({group:p})=>[p.id,p])),d=["trigger","workflow_input"],c=[...d.flatMap((p)=>l.get(p)??[]),...[...l.values()].filter(({id:p})=>!d.includes(p))],x=t.map((p)=>({compatibility:Ke(p.schema,i),option:p})),w=r.trim()!=="",f=x.filter(({option:p})=>[p.label,p.insertion,U(p.schema)].join(" ").toLowerCase().includes(r.trim().toLowerCase())),m=(p)=>{a((h)=>{let v=new Set(h);if(v.has(p))v.delete(p);else v.add(p);return v})};return S("div",{className:"grid h-96 max-h-[calc(100dvh-3rem)] grid-cols-[minmax(0,1fr)_14rem] overflow-hidden",children:[S("div",{className:"min-h-0 touch-pan-y overflow-y-auto overscroll-y-contain border-r p-2",onWheel:(p)=>{p.stopPropagation()},children:[y(nn,{"aria-label":"Search expression suggestions",onChange:(p)=>{n(p.target.value)},placeholder:"Search available values",value:r}),c.map((p)=>{let h=(w?f:x).filter(({option:v})=>v.group.id===p.id);if(h.length===0)return null;return S("section",{"aria-label":p.label,className:"mt-3",children:[y("h3",{className:"px-2 text-xs font-semibold text-muted-foreground",children:p.label}),w?sn(h,(v)=>rn[v.compatibility.status]).map((v)=>y(an,{entry:v,expanded:!1,onInsert:e},v.option.id)):y(ln,{expanded:s,onInsert:e,onToggle:m,parentId:null,tree:fr(h)})]},p.id)}),(w?f:x).length===0?y("p",{className:"p-3 text-sm text-muted-foreground",children:"No matching workflow sources."}):null]}),S("aside",{className:"space-y-3 p-3","aria-label":"Expression helper",children:[i===void 0?null:S("p",{className:"text-xs",children:[S("span",{className:"text-muted-foreground",children:[z.expectedType," "]}),y("span",{className:"font-mono",children:U(i)})]}),y("p",{className:"text-xs text-muted-foreground",children:"Select a typed source. Expand an object to pick one of its fields, or insert the whole object."}),y("h3",{className:"text-xs font-semibold",children:"Pipes"}),o.language.pipes.map((p)=>S(G,{className:"mr-1 mb-1 h-auto px-1.5 py-0.5 font-mono text-xs",onClick:()=>{e(` | ${p}`)},size:"sm",type:"button",variant:"outline",children:["| ",p]},p))]})]})},gr,xr=function(e,n){let t=gr.exec(e)?.groups?.body;return t===void 0||t.includes("{{")?void 0:`{{ ${t.trim()} ${n} }}`},yr=({diagnostic:o,onApplyFix:e,source:n,targetSchema:t})=>{let r=o.expectedSchema??t,i=o.code==="incompatible_expression_type"&&o.actualSchema!==null?Ke(o.actualSchema,r??void 0):void 0,s=i?.status==="fixable"?xr(n,i.pipes):void 0;return S("div",{className:"space-y-1 text-sm text-destructive",role:"alert",children:[S("p",{children:[o.message," (characters ",o.span.start,"–",o.span.end,")"]}),A(o.remediation)?y("p",{className:"text-xs text-muted-foreground",children:o.remediation}):null,i?.status==="fixable"&&s!==void 0&&e!==void 0?y(G,{className:"h-auto px-1.5 py-0.5 font-mono text-xs",onClick:()=>{e(s)},size:"sm",type:"button",variant:"outline",children:z.applyPipes(i.pipes)}):null]})},Ye=({describedBy:o,environment:e,inputLabel:n="Expression",source:t,onChange:r,validate:i,multiline:s=!1,readOnly:a=!1,targetSchema:l})=>{let d=lr(null),c=(g)=>{d.current=g},[x,w]=Q(t.length),[f,m]=Q(!1),[p,h]=Q("suggestions"),[v,Y]=Q(""),[De,Re]=Q(null),[B,Z]=Q(null),ie=i===void 0||t===""?null:De,C=i===void 0||t===""?null:B,O=[o,A(C)?"expression-validation":void 0].filter(Boolean).join(" ")||void 0;ar(()=>{let g=new AbortController;if(!i||t==="");else{let Ne=async()=>{try{let Ae=await i(t,g.signal);if(!g.signal.aborted)Re(Ae),Z(null)}catch(Ae){if(!g.signal.aborted)Z(pr(Ae))}},ee=window.setTimeout(()=>{Ne()},300);return()=>{g.abort(),window.clearTimeout(ee)}}return()=>{g.abort()}},[t,i]);let j=ze(e),X=(g)=>{let Ne=d.current?.selectionStart??x,ee=Zo(t,Ne,g);w(ee.cursor),r(ee.source),queueMicrotask(()=>{d.current?.focus(),d.current?.setSelectionRange(ee.cursor,ee.cursor)})};return S("div",{className:"space-y-2",children:[S(nr,{onOpenChange:(g)=>{if(m(g),!g)Y(""),h("suggestions")},open:f,children:[y(tr,{asChild:!0,children:y("div",{children:(()=>{if(s)return y(ir,{"aria-describedby":O,"aria-invalid":A(C)||(ie?.diagnostics.length??0)>0,"aria-label":n,className:"min-h-24 text-sm",disabled:a,onChange:(g)=>{r(g.target.value),w(g.currentTarget.selectionStart??t.length)},onFocus:()=>{m(!0)},onKeyDown:(g)=>{if(g.key==="Escape")m(!1)},onSelect:(g)=>{w(g.currentTarget.selectionStart??t.length)},placeholder:"Choose a source or start typing",ref:c,value:t});return y(nn,{"aria-describedby":O,"aria-invalid":A(C)||(ie?.diagnostics.length??0)>0,"aria-label":n,className:"text-sm",disabled:a,onChange:(g)=>{r(g.target.value),w(g.currentTarget.selectionStart??t.length)},onFocus:()=>{m(!0)},onKeyDown:(g)=>{if(g.key==="Escape")m(!1)},onSelect:(g)=>{w(g.currentTarget.selectionStart??t.length)},placeholder:"Choose a source or start typing",ref:c,value:t})})()})}),S(rr,{align:"start",className:"w-[min(48rem,calc(100vw-3rem))] p-0",onOpenAutoFocus:(g)=>{g.preventDefault()},children:[S("div",{className:"flex border-b p-1",role:"tablist",children:[y(G,{"aria-selected":p==="suggestions",onClick:()=>{h("suggestions")},role:"tab",size:"sm",type:"button",variant:p==="suggestions"?"secondary":"ghost",children:"Suggestions"}),y(G,{"aria-selected":p==="syntax",onClick:()=>{h("syntax")},role:"tab",size:"sm",type:"button",variant:p==="syntax"?"secondary":"ghost",children:"Syntax reference"})]}),p==="suggestions"?y(mr,{environment:e,onInsert:X,onQueryChange:Y,options:j,query:v,targetSchema:l}):y("div",{className:"max-h-96 touch-pan-y overflow-y-auto overscroll-y-contain p-4 text-sm",onWheel:(g)=>{g.stopPropagation()},children:y(Qe,{manifest:e.language})})]})]}),A(C)?y("p",{id:"expression-validation",role:"alert",children:C}):null,ie?.diagnostics.map((g)=>y(yr,{diagnostic:g,onApplyFix:a?void 0:r,source:t,targetSchema:l},`${g.code}-${g.span.start}`))]})};var dn=b(()=>{Ce();We();Fe();Ge();on();rn={compatible:0,fixable:1,incompatible:3,unknown:2},ur=[0,1,2,3],gr=/^\s*\{\{(?<body>[\s\S]*?)\}\}\s*$/u});var Se=b(()=>{dn();Ge();Fe()});var I;var cn=b(()=>{I={expression:"Expression",expressionHelp:"Calculates a value from the data available when this step runs.",fixed:"Fixed",fixedHelp:"Uses the saved value as written.",modesHelp:"Fixed uses the saved value as written. Expression calculates a value from the data available when the step runs."}});import{Alert as br,AlertDescription as kr,Label as wr,ToggleGroup as hr,ToggleGroupItem as pn}from"@collective-intelligence/ui-react/ui";import{useId as vr,useState as un}from"react";import{jsx as E,jsxs as Ee}from"react/jsx-runtime";var Wr,fn=function(e){return e.mode==="expression"?{expression:e.source,fixed:null,mode:"expression"}:{expression:"",fixed:e.value,mode:"fixed"}},Cr=({mode:o})=>E("span",{className:"shrink-0 text-xs text-muted-foreground",title:o==="expression"?I.expressionHelp:I.fixedHelp,children:o==="expression"?I.expression:I.fixed}),ue=({allowExpression:o=!1,allowFixed:e=!0,controlId:n,diagnostics:t=Wr,expressionEditor:r,expressionMultiline:i=!1,help:s,label:a,onValueChange:l,readOnly:d=!1,renderExpression:c,renderFixed:x,required:w=!1,sensitive:f=!1,value:m})=>{let p=vr(),[h,v]=un(()=>fn(m)),Y=JSON.stringify(m),[De,Re]=un(Y),B=n===void 0?void 0:`${n}-label`;if(Y!==De)Re(Y),v(fn(m));let Z=(()=>{if(o&&!e)return"expression";if(e&&!o)return"fixed";return h.mode})(),ie=d;return Ee("section",{className:"space-y-2",children:[Ee("div",{className:"flex items-center justify-between gap-3",children:[E("div",{className:"min-w-0",children:Ee("div",{className:"flex items-center gap-1",children:[E(wr,{htmlFor:n,id:B,children:a}),w?E("span",{"aria-label":"Required",children:"*"}):null,f?E("span",{className:"ml-1 text-xs text-muted-foreground",children:"Sensitive"}):null]})}),o&&d?E(Cr,{mode:Z}):null,o&&e&&!d?E("div",{"aria-label":`${a} mode controls`,className:"flex shrink-0 items-center gap-1",children:Ee(hr,{"aria-label":`${a} mode`,className:"gap-0",disabled:ie,onValueChange:(C)=>{if(C==="fixed"||C==="expression")v((O)=>({...O,mode:C}))},size:"sm",type:"single",value:Z,variant:"outline",children:[E(pn,{className:"h-7 px-4 text-xs",title:I.fixedHelp,value:"fixed",children:I.fixed}),E(pn,{className:"h-7 px-4 text-xs",title:I.expressionHelp,value:"expression",children:I.expression})]})}):null]}),s!==void 0&&s!==""?E("p",{id:p,className:"text-xs leading-relaxed text-muted-foreground",children:s}):null,(()=>{if(Z==="expression"){if(r?.environment){let j=r.validate===void 0?{}:{validate:r.validate};return E(Ye,{...s?{describedBy:p}:{},environment:r.environment,multiline:i,onChange:(X)=>{v((g)=>({...g,expression:X})),l({languageVersion:1,mode:"expression",source:X})},readOnly:d,source:h.expression,targetSchema:r.targetSchema,...j})}if(r?.loading===!0)return E("output",{children:"Loading expression editor…"});if(r?.error!==void 0&&r.error!=="")return E("p",{role:"alert",children:r.error});let O={disabled:d,onChange:(j)=>{v((X)=>({...X,expression:j})),l({languageVersion:1,mode:"expression",source:j})},value:h.expression};if(s)O.describedBy=p;if(n!==void 0)O.controlId=`${n}-expression`;if(B!==void 0)O.labelledBy=B;return c?.(O)}let C={disabled:d,onChange:(O)=>{v((j)=>({...j,fixed:O})),l({mode:"fixed",value:O})},value:h.fixed};if(s)C.describedBy=p;if(n!==void 0)C.controlId=n;if(B!==void 0)C.labelledBy=B;return x(C)})(),t.map((C)=>E(br,{variant:"destructive",children:E(kr,{children:C.message})},`${C.code}:${C.message}`))]})};var Ze=b(()=>{Se();cn();Wr=[]});var Xe=b(()=>{Ze()});var eo;var mn=b(()=>{eo={inputBindingsDescription:"Map workflow input field names to literal or dynamic expressions.",inputBindingsTitle:"Input adapter bindings"}});var fe=function(e){return T(e)?e:{}},oo=function(e){return fe(e)},Fr=function(e,n,t){let r=e.anyOf;if(!Array.isArray(r))return;let i=r.filter((d)=>fe(d).type!=="null");if(i.length!==1||i.length===r.length)return;let s=oo(t(i[0],n)),{type:a}=s,l={...s,...Object.fromEntries(Object.entries(e).filter(([d])=>d!=="anyOf"&&d!=="$defs"))};if(u(a))l.type=[a,"null"];return l},Sr=function(e){let n=fe(e.$defs),t=(r,i=new Set)=>{if(Array.isArray(r))return r.map((c)=>t(c,i));if(!T(r))return r;let s=fe(r),a=s.$ref,l=u(a)?a:void 0;if(l!==void 0&&l.startsWith("#/$defs/")){let c=l.slice(8),x=n[c];if(x!==void 0&&!i.has(c))return t(x,new Set(i).add(c))}let d=Fr(s,i,t);if(d)return d;return Object.fromEntries(Object.entries(s).filter(([c])=>c!=="$defs").map(([c,x])=>[c,t(x,i)]))};return oo(t(e))},Er=function(e){let{type:n}=e;return n==="null"||Array.isArray(n)&&n.includes("null")},Vr=function(e){let{type:n}=e;if(u(n))return n==="null"?e:{...e,type:[n,"null"]};if(Array.isArray(n))return n.includes("null")?e:{...e,type:[...n,"null"]};return e},Tr=function o(e,n=[],t=!1){return Object.entries(fe(e.properties)).map(([r,i])=>{let s=oo(i),a=t?Vr(s):s,l=[...n,r],d=o(s,l,t||Er(s)),c={availability:"guaranteed",id:`trigger:${l.join(".")}`,label:r,path:l,schema:a,sourceId:"trigger"};return d.length?{...c,children:d,conditional:!1,selectors:[]}:c})},gn=function(e){let{triggerInput:n}=e;if(!n)return;let t=Sr(n.schema);return{compatibility:[],language:n.languageManifest,sources:[{availability:"guaranteed",children:Tr(t),conditional:!1,id:"trigger",label:"Trigger data",path:[],schema:t,selectors:[],sourceId:"trigger"}]}};var xn=()=>{};import{Input as Or,Label as Jr}from"@collective-intelligence/ui-react/ui";import{jsx as ge,jsxs as yn}from"react/jsx-runtime";var Pr=(o)=>{if(o===null||o===void 0||u(o)||J(o)||se(o))return String(o??"");return JSON.stringify(o)??""},me=function(e){return T(e)?e:{}},Dr=function(e,n){return e?.length===n.length&&e.every((t,r)=>t===n[r])},Rr=function(e,n){if(n==="number"||n==="integer"){let t=Number(e);return Number.isFinite(t)?t:e}if(n==="boolean")return e==="true";return e},Nr=function(e){if(!T(e))return{mode:"fixed",value:e??null};if(e.mode==="expression"&&u(e.source))return{languageVersion:1,mode:"expression",source:e.source};if(e.mode==="fixed"&&P(e.value))return{mode:"fixed",value:e.value};return{mode:"fixed",value:e}},bn=({context:o})=>{let e=me(o.workflowContracts?.inputContract.jsonSchema.properties),n=o.trigger?.inputBindings??{},t=gn(o.template.contract);return yn("div",{className:"space-y-5",children:[ge(_,{context:o}),yn("section",{className:"space-y-2 rounded-xl border border-border p-4",children:[ge(Jr,{htmlFor:"workflow-trigger-input-bindings",children:eo.inputBindingsTitle}),ge("p",{className:"text-xs text-muted-foreground",children:eo.inputBindingsDescription}),Object.entries(e).map(([r,i])=>{let s=me(n[r]),a=Nr(s?.value),l=o.triggerInputExpressionValidator?.(r),d=t===void 0?void 0:{environment:t,targetSchema:me(i)};if(d!==void 0&&l!==void 0)d.validate=l;return ge(ue,{allowExpression:!0,...d===void 0?{}:{expressionEditor:d},diagnostics:o.diagnostics.filter((c)=>Dr(c.path,["inputBindings",r])),label:`${r} (${U(me(i))})`,readOnly:o.readOnly,value:a,onValueChange:(c)=>o.commands.updateTriggerConfiguration?.({inputBindings:{...n,[r]:{overridePolicy:"locked",value:c}}}),renderFixed:({value:c,onChange:x})=>ge(Or,{value:Pr(c),onChange:(w)=>{x(Rr(w.target.value,me(i)?.type))}})},r)})]})]})};var kn=b(()=>{Se();Xe();we();mn();xn()});var Vn={};_n(Vn,{renderDefaultActionChart:()=>wn,renderDefaultActionDetails:()=>hn,renderDefaultInputChart:()=>Cn,renderDefaultInputDetails:()=>Fn,renderDefaultOutputChart:()=>Sn,renderDefaultOutputDetails:()=>En,renderDefaultTriggerChart:()=>vn,renderDefaultTriggerDetails:()=>Wn});import{jsx as q}from"react/jsx-runtime";var wn=(o)=>q(oe,{context:o,accent:"slate"}),hn=(o)=>q(_,{context:o}),vn=(o)=>q(oe,{context:o,accent:"violet"}),Wn=(o)=>q(bn,{context:o}),Cn=(o)=>q(oe,{context:o,accent:"sky"}),Fn=(o)=>q(_,{context:o}),Sn=(o)=>q(oe,{context:o,accent:"emerald"}),En=(o)=>q(_,{context:o});var no=b(()=>{je();we();kn()});import{declareFrontendComponent as Ar}from"@collective-intelligence/extensions-sdk-frontend";var to=(o)=>({exportName:o,load:()=>Promise.resolve().then(() => (no(),Vn)),module:import.meta.url}),Ve=(o,e,n)=>Ar({implementation:{chart:to(e),details:to(n),render:to(n)},metadata:{kind:o,mode:"default"},target:{fqn:`builtin.core.workflows.nodes.${o.replace(/_node$/u,"")}`,packageFqn:"builtin.core",role:"workflow_template_default",version:"1.0.0"}}),ro;var io=b(()=>{ro=[Ve("action_node","renderDefaultActionChart","renderDefaultActionDetails"),Ve("trigger_node","renderDefaultTriggerChart","renderDefaultTriggerDetails"),Ve("input_node","renderDefaultInputChart","renderDefaultInputDetails"),Ve("output_node","renderDefaultOutputChart","renderDefaultOutputDetails")]});import{WorkflowTemplateKinds as Ir}from"@collective-intelligence/extensions-sdk";var xe=(o)=>Ir.find((e)=>e===o);var so=()=>{};import{createFrontendCatalog as jr,declareFrontendPackage as $r}from"@collective-intelligence/extensions-sdk-frontend";var co,Te,po=(o)=>{let{declaration:{metadata:e}}=o;if(!T(e))return{};let n=u(e.kind)?xe(e.kind):void 0,t;if(u(e.mode)){if(e.mode==="default")t="default";else if(e.mode==="override")t="override"}let r={};if(u(e.fqn))r.fqn=e.fqn;if(se(e.handlesDiagnostics))r.handlesDiagnostics=e.handlesDiagnostics;if(n!==void 0)r.kind=n;if(t!==void 0)r.mode=t;if(u(e.widget))r.widget=e.widget;return r},Oe=(o)=>{let e=o?.trim().toLowerCase();return e===void 0||e===""?void 0:e},Tn=()=>co.snapshot().entries,On=(o,e,n)=>{let t=Oe(o),r=Oe(e);if(t===void 0||r===void 0)return;return Tn().find((i)=>i.target.toLowerCase()===t&&i.version.toLowerCase()===r&&i.role===n)},ao=(o,e,n)=>{let t=Oe(e);return Tn().find((r)=>{let i=po(r);return Oe(i[o])===t&&r.role===n})},Jn=(o)=>{Te=[...Te.filter((t)=>!o.some((r)=>r.manifest.fqn===t.manifest.fqn)),...o];let n=co.activate(Te);if(n.kind==="invalid")throw Error(n.errors.map((t)=>t.message).join("; "));if(n.kind!=="activated")throw Error(`Workflow catalog activation became stale (${n.reason}).`)},lo,qr=()=>{if(Te.some((o)=>o.manifest.fqn===lo.manifest.fqn))return;Jn([lo])},Mr=()=>co.snapshot(),de=(o)=>{let e=u(o)?{widget:o}:o,n=e.fqn??void 0,t=e.version??void 0,r=On(n,t,"workflow_field");if(r!==void 0)return{entry:r,kind:"resolved",source:"exact"};if(n!==void 0&&t!==void 0){let a=ao("widget",e.widget??"","workflow_field_fallback");if(a!==void 0&&n.toLowerCase().startsWith("builtin."))return{entry:a,kind:"resolved",source:"fallback"};let l={fqn:n,kind:"unavailable"};if(e.widget!==void 0)l.widget=e.widget;return l}let i=ao("widget",e.widget??"","workflow_field_fallback");if(i!==void 0)return{entry:i,kind:"resolved",source:"fallback"};let s={kind:"unavailable"};if(e.fqn!==void 0&&e.fqn!==null)s.fqn=e.fqn;if(e.widget!==void 0)s.widget=e.widget;return s},uo=(o)=>{let e=xe(o.kind);if(e===void 0)return{fqn:o.fqn,kind:"unavailable",templateKind:o.kind};let n=On(o.fqn,o.version??"1.0.0","workflow_template_override");if(n!==void 0&&po(n).kind===e)return{entry:n,kind:"resolved",source:"override"};let t=ao("kind",e,"workflow_template_default");if(t!==void 0)return{entry:t,kind:"resolved",source:"default"};return{fqn:o.fqn,kind:"unavailable",templateKind:o.kind}},Mo;var ce=b(()=>{io();so();so();co=jr(),Te=[],lo=$r({components:ro,manifest:{fqn:"builtin.core",name:"Dashboard Workflow UI",version:"1.0.0"}}),Mo=po});ce();ke();ce();qe();import{jsx as Pn}from"react/jsx-runtime";var Br=({context:o})=>{let e=de(o.field);if(e.kind==="resolved"&&e.entry.declaration.implementation.configuration!==void 0)return Pn(ne,{componentProps:o,declaration:e.entry.declaration,implementationRole:"configuration",load:()=>te(e.entry.declaration,"configuration")});return Pn("div",{className:"rounded-md border border-dashed border-border p-2 text-xs text-muted-foreground",children:L.unavailableConfiguration(o.field.label)})};_e();Ce();Xe();Ze();import{Textarea as Lr}from"@collective-intelligence/ui-react/ui";import{jsx as Dn}from"react/jsx-runtime";import{createElement as Hr}from"react";var Aa=({help:o,label:e,onValueChange:n,expressionEditor:t,readOnly:r,renderFixed:i,resetKey:s,slotId:a,value:l})=>Dn("div",{"data-expression-slot":a,children:Hr(ue,{allowExpression:!0,...o===void 0?{}:{help:o},...t===void 0?{}:{expressionEditor:t},key:`${a}:${s??"current"}`,label:e,onValueChange:n,...r===void 0?{}:{readOnly:r},renderExpression:({describedBy:d,disabled:c,onChange:x,value:w})=>Dn(Lr,{"aria-describedby":d,"aria-label":`${e} expression`,disabled:c,onChange:(f)=>{x(f.target.value)},placeholder:"{{ input.value }}",value:w}),renderFixed:i,value:l})}),_r=function(e){if(!T(e))return!1;if(e.mode==="fixed")return P(e.value);return e.mode==="expression"&&J(e.languageVersion)&&e.languageVersion===1&&u(e.source)},Ia=function(e){if(_r(e))return e;return{mode:"fixed",value:e}};var fo=function(e,n){let t=[...e];for(let r=0;r<t.length;r+=1)for(let i=r+1;i<t.length;i+=1){let s=t[r],a=t[i];if(s!==void 0&&a!==void 0&&n(s,a)>0)t[r]=a,t[i]=s}return t};var Nn=function(e){return W(e)&&!Array.isArray(e)},Kr=function o(e){return e.flatMap((n)=>[...n.templates??[],...o(n.children??[])])},mo=function(e){return e.kind==="field_collection"&&"collection"in e.contract},go=function(e){return`${e.fqn}@${e.version}`},Rn=function(e){return e.kind==="literal"?e.text:e.default},Ur=function(e){return e.kind==="field"&&"field"in e.contract},zr=function(e,n){if(!e.enabled||e.state!=="available")return!1;return n==="input"?e.contract.field.availableForInput!==!1:e.contract.field.availableForOutput!==!1},Qr=function(e,n){let t=e.find((r)=>mo(r)&&go(r.contract.collection)===n);return t&&mo(t)?t.contract.collection.weight??0:0},Je=function(e){return e!==void 0&&Nn(e)?e:{}},_a=function(e,n){let t=Kr(e?.categories??[]),r=new Map;for(let s of t){if(!mo(s))continue;r.set(go(s.contract.collection),Rn(s.label))}let i=new Map;for(let s of t){if(!Ur(s)||!zr(s,n))continue;let a=s.contract.field,l=go({fqn:a.collectionFqn,version:a.collectionVersion}),d=i.get(l)??{fields:[],key:l,label:r.get(l)??a.collectionFqn,weight:Qr(t,l)};d.fields.push({catalogTemplateId:s.id,collectionKey:l,configSchema:Je(a.configSchema),fqn:a.fqn,label:Rn(s.label),schema:Je(a.valueSchema),version:a.version}),i.set(l,d)}return fo([...i.values()].map((s)=>({...s,fields:fo(s.fields,(a,l)=>a.label.localeCompare(l.label)||a.fqn.localeCompare(l.fqn))})),(s,a)=>s.weight-a.weight||s.label.localeCompare(a.label)||s.key.localeCompare(a.key))},Ha=function(e){return{key:e.key,label:e.label,options:e.fields.map((n)=>({fqn:n.fqn,label:n.label,searchTerms:[n.fqn],version:n.version}))}},Gr=function(e){let n=Je(e.$defs),t=(r,i=new Set)=>{if(Array.isArray(r))return r.map((d)=>t(d,i));if(r===null||!Nn(r))return r;let s=r,a=s.$ref,l=u(a)?a:void 0;if(l!==void 0&&l.startsWith("#/$defs/")){let d=l.slice(8),c=n[d];if(c!==void 0&&c!==null&&!i.has(d))return t(c,new Set(i).add(d))}return Object.fromEntries(Object.entries(s).filter(([d])=>d!=="$defs").map(([d,c])=>[d,t(c,i)]))};return Je(t(e))},Ka=function(e,n){let{title:t,...r}=Gr(n.schema),i={...r};if(u(e.title))i.title=e.title;return i};import{useDebouncedCallback as Yr}from"@collective-intelligence/ui-react/hooks";import{Check as Zr,ChevronsUpDown as Xr}from"@collective-intelligence/ui-react/icons";import{Button as ei,Command as oi,CommandGroup as ni,CommandInput as ti,CommandItem as ri,CommandList as ii,Popover as si,PopoverContent as ai,PopoverTrigger as li}from"@collective-intelligence/ui-react/ui";import{useMemo as di,useState as xo}from"react";import{jsx as M,jsxs as ye}from"react/jsx-runtime";var ci=250,yo=function(e){return`${e.fqn}@${e.version}`},pi=function(e,n){let t=n.trim().toLocaleLowerCase();if(!t)return e;return e.flatMap((r)=>{let i=r.options.filter((s)=>[s.label,s.fqn,...s.searchTerms??[]].join(" ").toLocaleLowerCase().includes(t));return i.length?[{...r,options:i}]:[]})},Za=({collections:o,value:e,onChange:n,ariaLabel:t="Field type"})=>{let[r,i]=xo(!1),[s,a]=xo(""),[l,d]=xo(""),c=Yr(d,ci),x=o.flatMap((m)=>m.options).find((m)=>yo(m)===e),w=di(()=>pi(o,l),[o,l]),f=w.some((m)=>m.options.length>0);return ye(si,{modal:!0,open:r,onOpenChange:(m)=>{if(i(m),!m)c.cancel(),a(""),d("")},children:[M(li,{asChild:!0,children:ye(ei,{type:"button",variant:"outline","aria-label":t,"aria-expanded":r,className:"mt-1 w-full justify-between font-normal",children:[M("span",{className:"truncate",children:x?.label??"Select a field type"}),M(Xr,{className:"ml-2 size-4 shrink-0 opacity-50"})]})}),M(ai,{align:"start",className:"w-[var(--radix-popover-trigger-width)] p-0",children:ye(oi,{shouldFilter:!1,children:[M(ti,{placeholder:"Search field types...",value:s,onValueChange:(m)=>{a(m),c(m)}}),ye(ii,{children:[f?null:M("p",{className:"py-6 text-center text-sm",children:"No field type found."}),w.map((m)=>M(ni,{heading:m.label,children:m.options.map((p)=>{let h=yo(p);return ye(ri,{value:yo(p),onSelect:()=>{n(p),i(!1)},children:[M(Zr,{className:e===h?"mr-2 size-4 opacity-100":"mr-2 size-4 opacity-0"}),p.label]},h)})},m.key))]})]})})]})};je();we();io();no();ke();ce();import{jsx as An,jsxs as fi}from"react/jsx-runtime";var ui=({context:o})=>{let e=uo(o.template);if(e.kind==="resolved")return An(ne,{componentProps:o,declaration:e.entry.declaration,implementationRole:"details",load:()=>te(e.entry.declaration,"details")});return fi("div",{className:"rounded-xl border border-dashed border-border p-4 text-sm text-muted-foreground",children:["No dashboard editor is available for template kind"," ",An("code",{children:e.templateKind}),". The workflow draft has not been changed."]})};var bo=(o)=>o!==void 0&&o!==null&&W(o)&&!Array.isArray(o),In=function(e,n){return Object.fromEntries(Object.entries(e).filter(([t])=>t!==n))},jn=function(e){if(e==="input_binding")return"inputs";if(e==="setting")return"settings";if(e==="metadata")return"metadata";return"config"},re=function(e){return bo(e)?e:void 0},ko=function(e){let n=re(e);if(n===void 0||!("value"in n))return e;return n.mode==="fixed"||n.kind==="literal"?n.value:e},Pe=function(e,n){let t=e[jn(n.target)];for(let r of n.path){let i=re(ko(t));if(i===void 0)return;t=i[r]}return ko(t)},mi=function(e,n){return Pe(e,n.binding)},gi=function o(e,n,t){let[r,...i]=n;if(r===void 0)return e??{};let s=e??{};if(!i.length)return{...s,[r]:t};let a=re(s[r]),l=re(ko(a));if(a?.mode==="fixed")return{...s,[r]:{...a,value:o(l,i,t)}};return{...s,[r]:o(l,i,t)}},wo=function(e,n){return[e==="input_binding"?"inputBinding":e,...n].map((t)=>encodeURIComponent(String(t))).join("/")},xi=function(e,n,t){let r={...re(e?.fieldDisplayValues)},i=wo(n.binding.target,n.binding.path);if(t)r[i]=t;else return{...e,fieldDisplayValues:In(r,i)};return{...e,fieldDisplayValues:r}},yi=function(e,n,t,r){let i=jn(n.binding.target),s={[i]:gi(e[i],n.binding.path,t)};if(r!==void 0)s.metadata=xi(i==="metadata"?s.metadata:e.metadata,n,r);return s},$n=function(e,n,t){let r=e.metadata?.fieldDisplayValues;if(r===void 0||r===null||!bo(r))return;let i=r[wo(n.binding.target,t)];if(i===void 0||i===null||!bo(i))return;return u(i.label)&&"value"in i?{label:i.label,value:i.value}:void 0},bi=function(e,n){return $n(e,n,n.binding.path)},ki=function(e,n,t){return $n(e,n,[...n.binding.path,...t])},wi=function(e,n,t,r){let i={...re(e?.fieldDisplayValues)},s=wo(n,t);if(r)i[s]=r;else return{...e,fieldDisplayValues:In(i,s)};return{...e,fieldDisplayValues:i}},hi=function(e,n,t,r){return{metadata:wi(e.metadata,n.binding.target,[...n.binding.path,...t],r)}};var ho=function o(e,n){if(Array.isArray(e)||Array.isArray(n))return Array.isArray(e)&&Array.isArray(n)&&e.length===n.length&&e.every((t,r)=>o(t,n[r]));if(e!==null&&n!==null&&e!==void 0&&n!==void 0&&W(e)&&W(n)){let t=Object.keys(e);return t.length===Object.keys(n).length&&t.every((r)=>o(e[r],n[r]))}return e===n},qn=function(e){return e!==void 0&&e!==null&&e!==""},vi=function(e,n){if(!Array.isArray(n)||e===void 0)return!1;return(Array.isArray(e)?e:[e]).some((r)=>n.some((i)=>ho(r,i)))},Wi=function(e,n){return(e.visibleWhen??[]).every((t)=>{let r=Pe(n,t.binding);switch(t.operator){case"equals":return ho(r,t.value);case"not_equals":return!ho(r,t.value);case"is_set":return qn(r);case"is_not_set":return!qn(r);case"in":return vi(r,t.value);default:return!1}})};var Ci=function(e){if(!e)return"";return e.kind==="literal"?e.text:e.default};Ce();Se();Fe();$e();export{oe as CatalogNodeChartBlock,_ as CatalogNodeDetailsEditor,Ye as ExpressionEditor,Aa as ExpressionSlot,Qe as ExpressionSyntaxReference,Za as FieldTypeSelect,Br as WorkflowFieldConfigurationResolver,ue as WorkflowFieldFrame,Le as WorkflowFieldResolver,ui as WorkflowTemplateDetails,qr as activateDashboardWorkflowCatalog,Jn as activateWorkflowCatalog,Ia as asExpressionSlotValue,Ci as catalogText,Ui as configureWorkflowFieldOptionsProvider,hs as createExpressionDraft,lo as dashboardWorkflowPackage,ro as defaultWorkflowTemplateDeclarations,ze as expressionSourceOptions,_a as fieldCollectionsFromCatalog,yo as fieldTypeIdentity,Zo as insertExpressionAtCursor,se as isBoolean,Hn as isFunction,P as isJsonValue,J as isNumber,W as isObject,T as isRecord,Ws as isSchemaCompatible,u as isString,Si as isUndefined,Wi as isWorkflowFieldVisible,Kt as normalizeExpressionEnvironment,Ut as normalizeExpressionValidation,xe as parseWorkflowTemplateKind,hi as patchWorkflowFieldPartDisplayValue,yi as patchWorkflowFieldValue,Pe as readWorkflowBindingValue,bi as readWorkflowFieldDisplayValue,ki as readWorkflowFieldPartDisplayValue,mi as readWorkflowFieldValue,wn as renderDefaultActionChart,hn as renderDefaultActionDetails,Cn as renderDefaultInputChart,Fn as renderDefaultInputDetails,Sn as renderDefaultOutputChart,En as renderDefaultOutputDetails,vn as renderDefaultTriggerChart,Wn as renderDefaultTriggerDetails,de as resolveWorkflowField,uo as resolveWorkflowTemplate,Ka as schemaForWorkflowField,U as schemaLabel,vs as serializeExpressionDraft,Ei as toDisplayString,Ha as toFieldTypeCollection,Mr as workflowCatalogSnapshot,le as workflowFieldOptions,zi as workflowFieldOptionsInfinite};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@collective-intelligence/extensions-sdk-frontend-react",
3
- "version": "0.1.9",
3
+ "version": "0.1.11",
4
4
  "description": "Public hosted React contribution contracts for Collective Intelligence extensions.",
5
5
  "type": "module",
6
6
  "sideEffects": false,
@@ -70,11 +70,11 @@
70
70
  "type-check": "bun check"
71
71
  },
72
72
  "dependencies": {
73
- "@collective-intelligence/extensions-sdk": "0.1.9",
74
- "@collective-intelligence/extensions-sdk-frontend": "0.1.9"
73
+ "@collective-intelligence/extensions-sdk": "0.1.11",
74
+ "@collective-intelligence/extensions-sdk-frontend": "0.1.11"
75
75
  },
76
76
  "peerDependencies": {
77
- "@collective-intelligence/ui-react": "0.1.9",
77
+ "@collective-intelligence/ui-react": "0.1.11",
78
78
  "@tanstack/react-query": ">=5 <6",
79
79
  "@xyflow/react": ">=12 <13",
80
80
  "react": ">=18 <20",
@@ -89,7 +89,7 @@
89
89
  "access": "public"
90
90
  },
91
91
  "devDependencies": {
92
- "@collective-intelligence/ui-react": "workspace:*",
92
+ "@collective-intelligence/ui-react": "0.1.11",
93
93
  "@hey-api/openapi-ts": "^0.96.0",
94
94
  "@oxlint/plugins": "1.85.0",
95
95
  "@tanstack/react-query": "5.101.4",