@fnndsc/menu 0.11.0 → 0.13.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/dag.d.ts CHANGED
@@ -728,6 +728,29 @@ export declare const procJobGroupSchema: z.ZodObject<{
728
728
  parent: number | null;
729
729
  errored?: number | undefined;
730
730
  }>;
731
+ /** What a feed's data is: its format, and for DICOM its modality and series description. */
732
+ export declare const procFeedDataSchema: z.ZodObject<{
733
+ format: z.ZodEnum<["dicom", "nifti", "mgz", "jpeg", "png", "other", "unknown"]>;
734
+ modality: z.ZodOptional<z.ZodString>;
735
+ seriesDescription: z.ZodOptional<z.ZodString>;
736
+ /** Why the format is `unknown` or `other`, in words. */
737
+ reason: z.ZodOptional<z.ZodString>;
738
+ /** The feed whose output this feed's data is: its lineage, when it began from another feed's work. */
739
+ sourceFeed: z.ZodOptional<z.ZodNumber>;
740
+ }, "strip", z.ZodTypeAny, {
741
+ format: "unknown" | "other" | "dicom" | "nifti" | "mgz" | "jpeg" | "png";
742
+ modality?: string | undefined;
743
+ seriesDescription?: string | undefined;
744
+ reason?: string | undefined;
745
+ sourceFeed?: number | undefined;
746
+ }, {
747
+ format: "unknown" | "other" | "dicom" | "nifti" | "mgz" | "jpeg" | "png";
748
+ modality?: string | undefined;
749
+ seriesDescription?: string | undefined;
750
+ reason?: string | undefined;
751
+ sourceFeed?: number | undefined;
752
+ }>;
753
+ export type ProcFeedData = z.infer<typeof procFeedDataSchema>;
731
754
  export declare const procUniverseFeedSchema: z.ZodObject<{
732
755
  id: z.ZodNumber;
733
756
  /** The feed's name; empty from a daemon that predates it. */
@@ -756,10 +779,39 @@ export declare const procUniverseFeedSchema: z.ZodObject<{
756
779
  parent: number | null;
757
780
  errored?: number | undefined;
758
781
  }>, "many">>;
782
+ /** When the feed was made (ISO 8601): the order a replay reveals the space in; empty from a daemon that predates it. */
783
+ createdAt: z.ZodDefault<z.ZodString>;
784
+ /**
785
+ * What the feed's data is, once the index has read it: the format, and
786
+ * for DICOM the modality and series description; absent until read, and
787
+ * from a daemon that predates it.
788
+ */
789
+ data: z.ZodOptional<z.ZodObject<{
790
+ format: z.ZodEnum<["dicom", "nifti", "mgz", "jpeg", "png", "other", "unknown"]>;
791
+ modality: z.ZodOptional<z.ZodString>;
792
+ seriesDescription: z.ZodOptional<z.ZodString>;
793
+ /** Why the format is `unknown` or `other`, in words. */
794
+ reason: z.ZodOptional<z.ZodString>;
795
+ /** The feed whose output this feed's data is: its lineage, when it began from another feed's work. */
796
+ sourceFeed: z.ZodOptional<z.ZodNumber>;
797
+ }, "strip", z.ZodTypeAny, {
798
+ format: "unknown" | "other" | "dicom" | "nifti" | "mgz" | "jpeg" | "png";
799
+ modality?: string | undefined;
800
+ seriesDescription?: string | undefined;
801
+ reason?: string | undefined;
802
+ sourceFeed?: number | undefined;
803
+ }, {
804
+ format: "unknown" | "other" | "dicom" | "nifti" | "mgz" | "jpeg" | "png";
805
+ modality?: string | undefined;
806
+ seriesDescription?: string | undefined;
807
+ reason?: string | undefined;
808
+ sourceFeed?: number | undefined;
809
+ }>>;
759
810
  }, "strip", z.ZodTypeAny, {
760
811
  id: number;
761
812
  status: string;
762
813
  title: string;
814
+ createdAt: string;
763
815
  jobs: number;
764
816
  chain: string[];
765
817
  groups: {
@@ -769,12 +821,20 @@ export declare const procUniverseFeedSchema: z.ZodObject<{
769
821
  errored: number;
770
822
  parent: number | null;
771
823
  }[];
824
+ data?: {
825
+ format: "unknown" | "other" | "dicom" | "nifti" | "mgz" | "jpeg" | "png";
826
+ modality?: string | undefined;
827
+ seriesDescription?: string | undefined;
828
+ reason?: string | undefined;
829
+ sourceFeed?: number | undefined;
830
+ } | undefined;
772
831
  }, {
773
832
  id: number;
774
833
  status: string;
775
834
  jobs: number;
776
835
  chain: string[];
777
836
  title?: string | undefined;
837
+ createdAt?: string | undefined;
778
838
  groups?: {
779
839
  status: string;
780
840
  count: number;
@@ -782,6 +842,13 @@ export declare const procUniverseFeedSchema: z.ZodObject<{
782
842
  parent: number | null;
783
843
  errored?: number | undefined;
784
844
  }[] | undefined;
845
+ data?: {
846
+ format: "unknown" | "other" | "dicom" | "nifti" | "mgz" | "jpeg" | "png";
847
+ modality?: string | undefined;
848
+ seriesDescription?: string | undefined;
849
+ reason?: string | undefined;
850
+ sourceFeed?: number | undefined;
851
+ } | undefined;
785
852
  }>;
786
853
  export declare const procUniverseModelSchema: z.ZodObject<{
787
854
  feeds: z.ZodArray<z.ZodObject<{
@@ -812,10 +879,39 @@ export declare const procUniverseModelSchema: z.ZodObject<{
812
879
  parent: number | null;
813
880
  errored?: number | undefined;
814
881
  }>, "many">>;
882
+ /** When the feed was made (ISO 8601): the order a replay reveals the space in; empty from a daemon that predates it. */
883
+ createdAt: z.ZodDefault<z.ZodString>;
884
+ /**
885
+ * What the feed's data is, once the index has read it: the format, and
886
+ * for DICOM the modality and series description; absent until read, and
887
+ * from a daemon that predates it.
888
+ */
889
+ data: z.ZodOptional<z.ZodObject<{
890
+ format: z.ZodEnum<["dicom", "nifti", "mgz", "jpeg", "png", "other", "unknown"]>;
891
+ modality: z.ZodOptional<z.ZodString>;
892
+ seriesDescription: z.ZodOptional<z.ZodString>;
893
+ /** Why the format is `unknown` or `other`, in words. */
894
+ reason: z.ZodOptional<z.ZodString>;
895
+ /** The feed whose output this feed's data is: its lineage, when it began from another feed's work. */
896
+ sourceFeed: z.ZodOptional<z.ZodNumber>;
897
+ }, "strip", z.ZodTypeAny, {
898
+ format: "unknown" | "other" | "dicom" | "nifti" | "mgz" | "jpeg" | "png";
899
+ modality?: string | undefined;
900
+ seriesDescription?: string | undefined;
901
+ reason?: string | undefined;
902
+ sourceFeed?: number | undefined;
903
+ }, {
904
+ format: "unknown" | "other" | "dicom" | "nifti" | "mgz" | "jpeg" | "png";
905
+ modality?: string | undefined;
906
+ seriesDescription?: string | undefined;
907
+ reason?: string | undefined;
908
+ sourceFeed?: number | undefined;
909
+ }>>;
815
910
  }, "strip", z.ZodTypeAny, {
816
911
  id: number;
817
912
  status: string;
818
913
  title: string;
914
+ createdAt: string;
819
915
  jobs: number;
820
916
  chain: string[];
821
917
  groups: {
@@ -825,12 +921,20 @@ export declare const procUniverseModelSchema: z.ZodObject<{
825
921
  errored: number;
826
922
  parent: number | null;
827
923
  }[];
924
+ data?: {
925
+ format: "unknown" | "other" | "dicom" | "nifti" | "mgz" | "jpeg" | "png";
926
+ modality?: string | undefined;
927
+ seriesDescription?: string | undefined;
928
+ reason?: string | undefined;
929
+ sourceFeed?: number | undefined;
930
+ } | undefined;
828
931
  }, {
829
932
  id: number;
830
933
  status: string;
831
934
  jobs: number;
832
935
  chain: string[];
833
936
  title?: string | undefined;
937
+ createdAt?: string | undefined;
834
938
  groups?: {
835
939
  status: string;
836
940
  count: number;
@@ -838,6 +942,13 @@ export declare const procUniverseModelSchema: z.ZodObject<{
838
942
  parent: number | null;
839
943
  errored?: number | undefined;
840
944
  }[] | undefined;
945
+ data?: {
946
+ format: "unknown" | "other" | "dicom" | "nifti" | "mgz" | "jpeg" | "png";
947
+ modality?: string | undefined;
948
+ seriesDescription?: string | undefined;
949
+ reason?: string | undefined;
950
+ sourceFeed?: number | undefined;
951
+ } | undefined;
841
952
  }>, "many">;
842
953
  /** Whether the index is whole; false while it still warms. */
843
954
  whole: z.ZodBoolean;
@@ -846,6 +957,7 @@ export declare const procUniverseModelSchema: z.ZodObject<{
846
957
  id: number;
847
958
  status: string;
848
959
  title: string;
960
+ createdAt: string;
849
961
  jobs: number;
850
962
  chain: string[];
851
963
  groups: {
@@ -855,6 +967,13 @@ export declare const procUniverseModelSchema: z.ZodObject<{
855
967
  errored: number;
856
968
  parent: number | null;
857
969
  }[];
970
+ data?: {
971
+ format: "unknown" | "other" | "dicom" | "nifti" | "mgz" | "jpeg" | "png";
972
+ modality?: string | undefined;
973
+ seriesDescription?: string | undefined;
974
+ reason?: string | undefined;
975
+ sourceFeed?: number | undefined;
976
+ } | undefined;
858
977
  }[];
859
978
  whole: boolean;
860
979
  }, {
@@ -864,6 +983,7 @@ export declare const procUniverseModelSchema: z.ZodObject<{
864
983
  jobs: number;
865
984
  chain: string[];
866
985
  title?: string | undefined;
986
+ createdAt?: string | undefined;
867
987
  groups?: {
868
988
  status: string;
869
989
  count: number;
@@ -871,6 +991,13 @@ export declare const procUniverseModelSchema: z.ZodObject<{
871
991
  parent: number | null;
872
992
  errored?: number | undefined;
873
993
  }[] | undefined;
994
+ data?: {
995
+ format: "unknown" | "other" | "dicom" | "nifti" | "mgz" | "jpeg" | "png";
996
+ modality?: string | undefined;
997
+ seriesDescription?: string | undefined;
998
+ reason?: string | undefined;
999
+ sourceFeed?: number | undefined;
1000
+ } | undefined;
874
1001
  }[];
875
1002
  whole: boolean;
876
1003
  }>;
@@ -878,3 +1005,45 @@ export type ProcJobGroup = z.infer<typeof procJobGroupSchema>;
878
1005
  export type ProcUniverseFeed = z.infer<typeof procUniverseFeedSchema>;
879
1006
  export type ProcUniverseModel = z.infer<typeof procUniverseModelSchema>;
880
1007
  export declare const PROC_UNIVERSE_MODEL_KIND: "proc.universe";
1008
+ /**
1009
+ * Where a surface last laid the universe out under one layout, as the
1010
+ * session keeps it: a surface that finds it draws at once, and settles only
1011
+ * what is new since.
1012
+ */
1013
+ export declare const procLayoutModelSchema: z.ZodObject<{
1014
+ /** The layout: `galaxy`, `spokes`, `constellations`, ... */
1015
+ name: z.ZodString;
1016
+ /** Every node's place by the surface's node id; null when none is kept. */
1017
+ positions: z.ZodNullable<z.ZodRecord<z.ZodString, z.ZodTuple<[z.ZodNumber, z.ZodNumber, z.ZodNumber], null>>>;
1018
+ /** When it was kept (ISO 8601); null when none is. */
1019
+ writtenAt: z.ZodNullable<z.ZodString>;
1020
+ /** How far the session has come laying it out, while it does; absent or null otherwise. */
1021
+ laying: z.ZodOptional<z.ZodNullable<z.ZodObject<{
1022
+ nodes: z.ZodNumber;
1023
+ fraction: z.ZodNumber;
1024
+ }, "strip", z.ZodTypeAny, {
1025
+ nodes: number;
1026
+ fraction: number;
1027
+ }, {
1028
+ nodes: number;
1029
+ fraction: number;
1030
+ }>>>;
1031
+ }, "strip", z.ZodTypeAny, {
1032
+ name: string;
1033
+ positions: Record<string, [number, number, number]> | null;
1034
+ writtenAt: string | null;
1035
+ laying?: {
1036
+ nodes: number;
1037
+ fraction: number;
1038
+ } | null | undefined;
1039
+ }, {
1040
+ name: string;
1041
+ positions: Record<string, [number, number, number]> | null;
1042
+ writtenAt: string | null;
1043
+ laying?: {
1044
+ nodes: number;
1045
+ fraction: number;
1046
+ } | null | undefined;
1047
+ }>;
1048
+ export type ProcLayoutModel = z.infer<typeof procLayoutModelSchema>;
1049
+ export declare const PROC_LAYOUT_MODEL_KIND: "proc.layout";
package/dist/dag.js CHANGED
@@ -177,6 +177,16 @@ export const procJobGroupSchema = z.object({
177
177
  status: z.string(),
178
178
  parent: z.number().nullable(),
179
179
  });
180
+ /** What a feed's data is: its format, and for DICOM its modality and series description. */
181
+ export const procFeedDataSchema = z.object({
182
+ format: z.enum(['dicom', 'nifti', 'mgz', 'jpeg', 'png', 'other', 'unknown']),
183
+ modality: z.string().optional(),
184
+ seriesDescription: z.string().optional(),
185
+ /** Why the format is `unknown` or `other`, in words. */
186
+ reason: z.string().optional(),
187
+ /** The feed whose output this feed's data is: its lineage, when it began from another feed's work. */
188
+ sourceFeed: z.number().optional(),
189
+ });
180
190
  export const procUniverseFeedSchema = z.object({
181
191
  id: z.number(),
182
192
  /** The feed's name; empty from a daemon that predates it. */
@@ -186,6 +196,14 @@ export const procUniverseFeedSchema = z.object({
186
196
  chain: z.array(z.string()),
187
197
  /** The feed's jobs collapsed by plugin per place in the pipeline: its shape, with counts. */
188
198
  groups: z.array(procJobGroupSchema).default([]),
199
+ /** When the feed was made (ISO 8601): the order a replay reveals the space in; empty from a daemon that predates it. */
200
+ createdAt: z.string().default(''),
201
+ /**
202
+ * What the feed's data is, once the index has read it: the format, and
203
+ * for DICOM the modality and series description; absent until read, and
204
+ * from a daemon that predates it.
205
+ */
206
+ data: procFeedDataSchema.optional(),
189
207
  });
190
208
  export const procUniverseModelSchema = z.object({
191
209
  feeds: z.array(procUniverseFeedSchema),
@@ -193,4 +211,20 @@ export const procUniverseModelSchema = z.object({
193
211
  whole: z.boolean(),
194
212
  });
195
213
  export const PROC_UNIVERSE_MODEL_KIND = 'proc.universe';
214
+ /**
215
+ * Where a surface last laid the universe out under one layout, as the
216
+ * session keeps it: a surface that finds it draws at once, and settles only
217
+ * what is new since.
218
+ */
219
+ export const procLayoutModelSchema = z.object({
220
+ /** The layout: `galaxy`, `spokes`, `constellations`, ... */
221
+ name: z.string(),
222
+ /** Every node's place by the surface's node id; null when none is kept. */
223
+ positions: z.record(z.string(), z.tuple([z.number(), z.number(), z.number()])).nullable(),
224
+ /** When it was kept (ISO 8601); null when none is. */
225
+ writtenAt: z.string().nullable(),
226
+ /** How far the session has come laying it out, while it does; absent or null otherwise. */
227
+ laying: z.object({ nodes: z.number(), fraction: z.number() }).nullable().optional(),
228
+ });
229
+ export const PROC_LAYOUT_MODEL_KIND = 'proc.layout';
196
230
  //# sourceMappingURL=dag.js.map
package/dist/dag.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"dag.js","sourceRoot":"","sources":["../src/dag.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"dag.js","sourceRoot":"","sources":["../src/dag.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -16,8 +16,9 @@ export { commandEnvelopeSchema, envelopeModelSchema, envelopeStatusSchema, stack
16
16
  export { channelSchema, surfaceCapabilitiesMessageSchema, attachMessageSchema, executeMessageSchema, cancelMessageSchema, completeRequestSchema, promptAnswerMessageSchema, promptErrorMessageSchema, pipeResultMessageSchema, pipeErrorMessageSchema, shellResultMessageSchema, shellErrorMessageSchema, editResultMessageSchema, editErrorMessageSchema, deliverResultMessageSchema, deliverErrorMessageSchema, clientMessageSchema, attachedMessageSchema, resultMessageSchema, completeReplySchema, outputMessageSchema, progressOperationSchema, progressKindSchema, progressPhaseSchema, progressUnitSchema, progressStatusSchema, progressMessageSchema, sessionMessageSchema, errorMessageSchema, promptMessageSchema, promptKindSchema, promptPathSchema, promptKind_of, PROMPT_KINDS, promptContextSchema, promptLineMessageSchema, pipeMessageSchema, shellMessageSchema, editMessageSchema, deliverMessageSchema, serverMessageSchema, telemetryMessageSchema, type LaneTelemetry, type CubeTelemetry, type JobsStateTelemetry, regardSchema, regardMessageSchema, watchMessageSchema, unwatchMessageSchema, WATCH_STATES, watchStateSchema, watchedMessageSchema, numberedMessageSchema, SERVER_MESSAGE_TYPES, type WatchState, type WatchedMessage, type NumberedMessage, type AmbientEvent, type ClientMessage, type ServerMessage, type ProgressMessage, type ProgressEvent, type PromptContext, type PromptKind, type PromptPath, type PromptMessage, type Regard, type FileDeliverRequest, type FileDeliverResult, } from './messages.js';
17
17
  export { clientMessage_parse, serverMessage_parse, clientMessage_fromJson, attach_parse, type ParseResult, } from './validate.js';
18
18
  export { dagNodeCoreSchema, dagArgumentSchema, pipelineDiagramNodeSchema, pipelineDiagramModelSchema, DAG_NODE_STATUSES, dagNodeStatusSchema, dagNodeMetricsSchema, feedDagNodeSchema, feedDagModelSchema, feedIndexingModelSchema, DAG_MODEL_KINDS, type DagNodeCore, type PipelineDiagramNode, type PipelineDiagramModel, type DagNodeStatus, type DagNodeMetrics, type FeedDagNode, type DagNodeTally, type FeedDagModel, type FeedIndexingModel, } from './dag.js';
19
- export { feedListEntrySchema, feedListModelSchema, FEED_LIST_MODEL_KIND, type FeedListEntry, type FeedListModel, procJobGroupSchema, procUniverseFeedSchema, procUniverseModelSchema, PROC_UNIVERSE_MODEL_KIND, type ProcJobGroup, type ProcUniverseFeed, type ProcUniverseModel, } from './dag.js';
19
+ export { feedListEntrySchema, feedListModelSchema, FEED_LIST_MODEL_KIND, type FeedListEntry, type FeedListModel, procJobGroupSchema, procUniverseFeedSchema, procFeedDataSchema, procUniverseModelSchema, PROC_UNIVERSE_MODEL_KIND, procLayoutModelSchema, PROC_LAYOUT_MODEL_KIND, type ProcLayoutModel, type ProcJobGroup, type ProcUniverseFeed, type ProcFeedData, type ProcUniverseModel, } from './dag.js';
20
20
  export { pluginParameterSchema, pluginInfoModelSchema, PLUGIN_INFO_MODEL_KIND, type PluginParameter, type PluginInfoModel, } from './plugin.js';
21
21
  export { pacsProvenanceSchema, pacsPatientSchema, pacsPatientStatusSchema, PACS_PATIENT_STATUSES, pacsSeriesSchema, pacsStudySchema, pacsQueryModelSchema, pacsServerSchema, pacsServersModelSchema, PACS_QUERY_MODEL_KIND, PACS_SERVERS_MODEL_KIND, patientAddress_of, type PacsSeries, type PacsStudy, type PacsProvenance, type PacsPatient, type PacsPatientStatus, type PacsQueryModel, type PacsServer, type PacsServersModel, } from './pacs.js';
22
22
  export { DICOM_TAG_GROUPS, dicomTagGroupSchema, dicomTagSchema, dicomVaryingTagSchema, dicomTagsModelSchema, dicomGeometrySchema, dicomSeriesModelSchema, imageViewModelSchema, DICOM_MODEL_KINDS, IMAGE_MODEL_KINDS, type DicomTag, type DicomTagGroup, type DicomVaryingTag, type DicomTagsModel, type DicomGeometry, type DicomSeriesModel, type ImageViewModel, } from './dicom.js';
23
23
  export { SESSION_MOTD_MODEL_KIND, motdIndexSchema, sessionMotdSchema, type MotdIndex, type SessionMotd, } from './motd.js';
24
+ export { type UniverseNode, type UniverseGraph, type LandedGroup, type LandedFeed, type UniverseScale, shape_of, groupId_of, anchorId_of, jobsMetric_of, erroredShare_of, universeGraph_build, pluginStarId_of, pluginOfStar, constellationsGraph_build, accretionGraph_build, shapeWords_of, DESCRIPTION_OVERLAP, CAPTION_FEEDS_MIN, CAPTION_SHARE_MIN, descriptionWords_of, wordOverlap_of, descriptionGroups_of, dataPath_of, dataHubId_of, dataHubKey_of, dataGraph_build, dataHubTip_of, UNIVERSE_REACH, UNIVERSE_HUG_NODES, UNIVERSE_LAYOUTS, type UniverseLayout, universeReach_of, universeEngine_of, foldId_of, foldShape_of, universeKey_of, universeLayoutGraph_build, } from './universe.js';
package/dist/index.js CHANGED
@@ -16,9 +16,10 @@ export { commandEnvelopeSchema, envelopeModelSchema, envelopeStatusSchema, stack
16
16
  export { channelSchema, surfaceCapabilitiesMessageSchema, attachMessageSchema, executeMessageSchema, cancelMessageSchema, completeRequestSchema, promptAnswerMessageSchema, promptErrorMessageSchema, pipeResultMessageSchema, pipeErrorMessageSchema, shellResultMessageSchema, shellErrorMessageSchema, editResultMessageSchema, editErrorMessageSchema, deliverResultMessageSchema, deliverErrorMessageSchema, clientMessageSchema, attachedMessageSchema, resultMessageSchema, completeReplySchema, outputMessageSchema, progressOperationSchema, progressKindSchema, progressPhaseSchema, progressUnitSchema, progressStatusSchema, progressMessageSchema, sessionMessageSchema, errorMessageSchema, promptMessageSchema, promptKindSchema, promptPathSchema, promptKind_of, PROMPT_KINDS, promptContextSchema, promptLineMessageSchema, pipeMessageSchema, shellMessageSchema, editMessageSchema, deliverMessageSchema, serverMessageSchema, telemetryMessageSchema, regardSchema, regardMessageSchema, watchMessageSchema, unwatchMessageSchema, WATCH_STATES, watchStateSchema, watchedMessageSchema, numberedMessageSchema, SERVER_MESSAGE_TYPES, } from './messages.js';
17
17
  export { clientMessage_parse, serverMessage_parse, clientMessage_fromJson, attach_parse, } from './validate.js';
18
18
  export { dagNodeCoreSchema, dagArgumentSchema, pipelineDiagramNodeSchema, pipelineDiagramModelSchema, DAG_NODE_STATUSES, dagNodeStatusSchema, dagNodeMetricsSchema, feedDagNodeSchema, feedDagModelSchema, feedIndexingModelSchema, DAG_MODEL_KINDS, } from './dag.js';
19
- export { feedListEntrySchema, feedListModelSchema, FEED_LIST_MODEL_KIND, procJobGroupSchema, procUniverseFeedSchema, procUniverseModelSchema, PROC_UNIVERSE_MODEL_KIND, } from './dag.js';
19
+ export { feedListEntrySchema, feedListModelSchema, FEED_LIST_MODEL_KIND, procJobGroupSchema, procUniverseFeedSchema, procFeedDataSchema, procUniverseModelSchema, PROC_UNIVERSE_MODEL_KIND, procLayoutModelSchema, PROC_LAYOUT_MODEL_KIND, } from './dag.js';
20
20
  export { pluginParameterSchema, pluginInfoModelSchema, PLUGIN_INFO_MODEL_KIND, } from './plugin.js';
21
21
  export { pacsProvenanceSchema, pacsPatientSchema, pacsPatientStatusSchema, PACS_PATIENT_STATUSES, pacsSeriesSchema, pacsStudySchema, pacsQueryModelSchema, pacsServerSchema, pacsServersModelSchema, PACS_QUERY_MODEL_KIND, PACS_SERVERS_MODEL_KIND, patientAddress_of, } from './pacs.js';
22
22
  export { DICOM_TAG_GROUPS, dicomTagGroupSchema, dicomTagSchema, dicomVaryingTagSchema, dicomTagsModelSchema, dicomGeometrySchema, dicomSeriesModelSchema, imageViewModelSchema, DICOM_MODEL_KINDS, IMAGE_MODEL_KINDS, } from './dicom.js';
23
23
  export { SESSION_MOTD_MODEL_KIND, motdIndexSchema, sessionMotdSchema, } from './motd.js';
24
+ export { shape_of, groupId_of, anchorId_of, jobsMetric_of, erroredShare_of, universeGraph_build, pluginStarId_of, pluginOfStar, constellationsGraph_build, accretionGraph_build, shapeWords_of, DESCRIPTION_OVERLAP, CAPTION_FEEDS_MIN, CAPTION_SHARE_MIN, descriptionWords_of, wordOverlap_of, descriptionGroups_of, dataPath_of, dataHubId_of, dataHubKey_of, dataGraph_build, dataHubTip_of, UNIVERSE_REACH, UNIVERSE_HUG_NODES, UNIVERSE_LAYOUTS, universeReach_of, universeEngine_of, foldId_of, foldShape_of, universeKey_of, universeLayoutGraph_build, } from './universe.js';
24
25
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AACH,OAAO,EACL,kBAAkB,EAClB,mBAAmB,GAMpB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,mBAAmB,EACnB,cAAc,EACd,eAAe,EACf,cAAc,EACd,iBAAiB,GAMlB,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AACtE,OAAO,EACL,qBAAqB,EACrB,mBAAmB,EACnB,oBAAoB,EACpB,kBAAkB,EAClB,qBAAqB,GAOtB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,aAAa,EACb,gCAAgC,EAChC,mBAAmB,EACnB,oBAAoB,EACpB,mBAAmB,EACnB,qBAAqB,EACrB,yBAAyB,EACzB,wBAAwB,EACxB,uBAAuB,EACvB,sBAAsB,EACtB,wBAAwB,EACxB,uBAAuB,EACvB,uBAAuB,EACvB,sBAAsB,EACtB,0BAA0B,EAC1B,yBAAyB,EACzB,mBAAmB,EACnB,qBAAqB,EACrB,mBAAmB,EACnB,mBAAmB,EACnB,mBAAmB,EACnB,uBAAuB,EACvB,kBAAkB,EAClB,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,EACpB,kBAAkB,EAClB,mBAAmB,EACnB,gBAAgB,EAChB,gBAAgB,EAChB,aAAa,EACb,YAAY,EACZ,mBAAmB,EACnB,uBAAuB,EACvB,iBAAiB,EACjB,kBAAkB,EAClB,iBAAiB,EACjB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EAItB,YAAY,EACZ,mBAAmB,EACnB,kBAAkB,EAClB,oBAAoB,EACpB,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,EACpB,qBAAqB,EACrB,oBAAoB,GAgBrB,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,sBAAsB,EACtB,YAAY,GAEb,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,iBAAiB,EACjB,iBAAiB,EACjB,yBAAyB,EACzB,0BAA0B,EAC1B,iBAAiB,EACjB,mBAAmB,EACnB,oBAAoB,EACpB,iBAAiB,EACjB,kBAAkB,EAClB,uBAAuB,EACvB,eAAe,GAUhB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,mBAAmB,EACnB,mBAAmB,EACnB,oBAAoB,EAGpB,kBAAkB,EAClB,sBAAsB,EACtB,uBAAuB,EACvB,wBAAwB,GAIzB,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,qBAAqB,EACrB,qBAAqB,EACrB,sBAAsB,GAGvB,MAAM,aAAa,CAAC;AACrB,OAAO,EACL,oBAAoB,EACpB,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,gBAAgB,EAChB,eAAe,EACf,oBAAoB,EACpB,gBAAgB,EAChB,sBAAsB,EACtB,qBAAqB,EACrB,uBAAuB,EACvB,iBAAiB,GASlB,MAAM,WAAW,CAAC;AACnB,OAAO,EACL,gBAAgB,EAChB,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,oBAAoB,EACpB,mBAAmB,EACnB,sBAAsB,EACtB,oBAAoB,EACpB,iBAAiB,EACjB,iBAAiB,GAQlB,MAAM,YAAY,CAAC;AACpB,OAAO,EACL,uBAAuB,EACvB,eAAe,EACf,iBAAiB,GAGlB,MAAM,WAAW,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
@@ -175,12 +175,12 @@ export declare const promptErrorMessageSchema: z.ZodObject<{
175
175
  reason: z.ZodString;
176
176
  }, "strip", z.ZodTypeAny, {
177
177
  type: "promptError";
178
- promptId: string;
179
178
  reason: string;
179
+ promptId: string;
180
180
  }, {
181
181
  type: "promptError";
182
- promptId: string;
183
182
  reason: string;
183
+ promptId: string;
184
184
  }>;
185
185
  /** Returns the output of a pipeline segment the daemon asked the surface to run, correlated by `pipeId`. */
186
186
  export declare const pipeResultMessageSchema: z.ZodObject<{
@@ -624,12 +624,12 @@ export declare const clientMessageSchema: z.ZodDiscriminatedUnion<"type", [z.Zod
624
624
  reason: z.ZodString;
625
625
  }, "strip", z.ZodTypeAny, {
626
626
  type: "promptError";
627
- promptId: string;
628
627
  reason: string;
628
+ promptId: string;
629
629
  }, {
630
630
  type: "promptError";
631
- promptId: string;
632
631
  reason: string;
632
+ promptId: string;
633
633
  }>, z.ZodObject<{
634
634
  type: z.ZodLiteral<"pipeResult">;
635
635
  pipeId: z.ZodString;
@@ -0,0 +1,304 @@
1
+ /**
2
+ * @file The universe as graphs: every feed the index holds, drawn as the
3
+ * space a surface lays out.
4
+ *
5
+ * As the index reads a feed the session says what it is: its jobs collapsed
6
+ * by plugin per place in the pipeline — a chain is a chain, a fan of three
7
+ * hundred conversions is one node of 300 — with a status on every node.
8
+ * These build the graphs a universe is laid out from — round each shape's
9
+ * unseen hub, round the plugin stars, as data hubs, or grown in creation
10
+ * order — pure functions of the feeds, shared by the surface that draws the
11
+ * space and the session that lays it out once for every surface.
12
+ *
13
+ * Every node is real: a group of jobs that ran. Nothing is invented to fill
14
+ * the wait, which is what lets it be a readout rather than a screensaver.
15
+ *
16
+ * @module
17
+ */
18
+ /**
19
+ * One node of a universe graph: what a layout places and a surface draws.
20
+ * Structural, so a surface's own node type (with its look) accepts it.
21
+ */
22
+ export interface UniverseNode {
23
+ id: string;
24
+ label: string;
25
+ parentIds: string[];
26
+ joinParentIds: string[];
27
+ /** Execution status; undefined for an anchor. */
28
+ status?: string;
29
+ metric?: number;
30
+ count?: number;
31
+ /** The share of a collapsed group that ended in error, 0..1. */
32
+ share?: number;
33
+ ghost?: boolean;
34
+ halo?: boolean;
35
+ ring?: boolean;
36
+ hue?: string;
37
+ caption?: string;
38
+ dim?: boolean;
39
+ /** Its joins are a relation, not an edge of the run (lineage): drawn faint, never as tubes. */
40
+ joinFaint?: boolean;
41
+ attrs?: Record<string, number | string | string[]>;
42
+ }
43
+ /** A universe graph. */
44
+ export interface UniverseGraph {
45
+ nodes: UniverseNode[];
46
+ }
47
+ /** One node of a feed's collapsed shape. */
48
+ export interface LandedGroup {
49
+ plugin: string;
50
+ count: number;
51
+ /** How many of the count ended in error; zero from an older daemon. */
52
+ errored: number;
53
+ status: string;
54
+ parent: number | null;
55
+ }
56
+ /** One feed as the session reported it landing. */
57
+ export interface LandedFeed {
58
+ id: number;
59
+ /** The feed's name, for the tip; empty from a daemon that predates it. */
60
+ title: string;
61
+ jobs: number;
62
+ status: string;
63
+ chain: string[];
64
+ groups: LandedGroup[];
65
+ /** When the feed was made (ISO 8601): the order a replay reveals it in; absent or empty from a daemon that predates it. */
66
+ createdAt?: string;
67
+ /** What the feed's data is, once the index has read it: its format, and for DICOM its modality and series description. */
68
+ data?: {
69
+ format: string;
70
+ modality?: string;
71
+ seriesDescription?: string;
72
+ reason?: string;
73
+ sourceFeed?: number;
74
+ };
75
+ }
76
+ /**
77
+ * The signature of a feed's shape: what pulls like feeds together.
78
+ *
79
+ * @param feed - The feed.
80
+ * @returns The plugins in group order with their parent places — the same
81
+ * for two feeds that ran the same pipeline, whatever their counts.
82
+ */
83
+ export declare function shape_of(feed: LandedFeed): string;
84
+ /** The id of a feed's group node. */
85
+ export declare function groupId_of(feedId: number, index: number): string;
86
+ /** The id of a shape's unseen anchor. */
87
+ export declare function anchorId_of(shape: string): string;
88
+ /**
89
+ * Builds the space from the feeds that have landed so far.
90
+ *
91
+ * @param landed - The feeds, in any order; the graph is the same for any order.
92
+ * @returns The graph: every feed's groups, and one ghost anchor per shape
93
+ * that each feed's root hangs from — present in the settle, never drawn.
94
+ */
95
+ /**
96
+ * What sizes a sphere: the jobs it stands for, on a log scale, or nothing
97
+ * (every sphere alike, so the field reads by shape alone).
98
+ */
99
+ export type UniverseScale = 'jobs' | 'feeds';
100
+ /**
101
+ * A sphere's weight on the jobs scale. Logarithmic, because a group of
102
+ * eighty thousand beside groups of three hundred left everything but the
103
+ * giant at the smallest radius and the giant at the heart of gravity — a
104
+ * fat caterpillar where a field should be.
105
+ *
106
+ * @param count - The jobs the group stands for.
107
+ * @returns The metric the settle sizes by.
108
+ */
109
+ export declare function jobsMetric_of(count: number): number;
110
+ /**
111
+ * The share of a group that ended in error, 0..1, or undefined when none
112
+ * did: what hues the sphere. A group is not red because one job in eighty
113
+ * thousand failed; it is as red as its failures are many.
114
+ *
115
+ * @param group - The group.
116
+ * @returns The share, or undefined for a clean group.
117
+ */
118
+ export declare function erroredShare_of(group: LandedGroup): number | undefined;
119
+ export declare function universeGraph_build(landed: ReadonlyArray<LandedFeed>, scale?: UniverseScale): UniverseGraph;
120
+ /**
121
+ * A plugin star's id.
122
+ *
123
+ * @param plugin - The plugin's name (versions collapse: the name alone).
124
+ * @returns The id.
125
+ */
126
+ export declare function pluginStarId_of(plugin: string): string;
127
+ /**
128
+ * The plugin a star stands for.
129
+ *
130
+ * @param nodeId - A node id.
131
+ * @returns The plugin's name, or null when the node is not a plugin star.
132
+ */
133
+ export declare function pluginOfStar(nodeId: string): string | null;
134
+ /**
135
+ * The space as constellations: every feed its own molecule with no shape's
136
+ * hub to hang from, each stage marked with its plugin, and one ringed star
137
+ * per plugin, sized by the feeds that ran it — the engine places the stars
138
+ * by what runs with what and pulls each stage to its own.
139
+ *
140
+ * @param landed - Every landed feed.
141
+ * @param scale - What sizes a stage.
142
+ * @returns The graph.
143
+ */
144
+ export declare function constellationsGraph_build(landed: ReadonlyArray<LandedFeed>, scale?: UniverseScale): UniverseGraph;
145
+ /**
146
+ * The space as it grows by accretion: every feed its own molecule, no hubs
147
+ * and no stars, each stage carrying its plugin (what makes feeds alike) and
148
+ * its feed's creation time (the order the coral grows in).
149
+ *
150
+ * @param landed - Every landed feed.
151
+ * @param scale - What sizes a stage.
152
+ * @returns The graph.
153
+ */
154
+ export declare function accretionGraph_build(landed: ReadonlyArray<LandedFeed>, scale?: UniverseScale): UniverseGraph;
155
+ /**
156
+ * A shape in words: its plugins in pipeline order, each once.
157
+ *
158
+ * @param shape - The shape string (`r:pl-a>0:pl-b>0:pl-b`).
159
+ * @returns `pl-a > pl-b`.
160
+ */
161
+ export declare function shapeWords_of(shape: string): string;
162
+ /** Two descriptions whose words overlap this much are one group. */
163
+ export declare const DESCRIPTION_OVERLAP: number;
164
+ /**
165
+ * The least a description group holds to be labelled in the space: five
166
+ * feeds, or two in every hundred. Formats and modalities are always
167
+ * labelled; a group of one or two is a hover away — labelling every one
168
+ * crowded the middle of the space unreadable.
169
+ */
170
+ export declare const CAPTION_FEEDS_MIN: number;
171
+ export declare const CAPTION_SHARE_MIN: number;
172
+ /**
173
+ * A description as words to compare: upper case, separators to spaces, and
174
+ * the words that say nothing about the sequence dropped — pure numbers, and
175
+ * sizes and fields of view (`220`, `256X256`, `FOV220`, `3MM`).
176
+ *
177
+ * @param description - A series description.
178
+ * @returns Its words, in order, each once.
179
+ */
180
+ export declare function descriptionWords_of(description: string): string[];
181
+ /**
182
+ * How much two sets of words overlap: shared over the smaller, so a short
183
+ * description that is all of a longer one is the same series.
184
+ *
185
+ * @param a - Words.
186
+ * @param b - Words.
187
+ * @returns 0..1.
188
+ */
189
+ export declare function wordOverlap_of(a: ReadonlyArray<string>, b: ReadonlyArray<string>): number;
190
+ /**
191
+ * Groups descriptions by their words: most common first, each joining the
192
+ * first group whose name its words overlap enough, else starting its own.
193
+ * A group is named by the description most of its members carry.
194
+ *
195
+ * @param descriptions - Each feed's description (repeats count).
196
+ * @returns Each description's group name.
197
+ */
198
+ export declare function descriptionGroups_of(descriptions: ReadonlyArray<string>): Map<string, string>;
199
+ /**
200
+ * Where a feed hangs in the DATA tree: its hubs from the format down, each
201
+ * with its label.
202
+ *
203
+ * @param feed - The feed.
204
+ * @param groupOf - Each description's group name.
205
+ * @returns The path of hubs, format first.
206
+ */
207
+ export declare function dataPath_of(feed: LandedFeed, groupOf: ReadonlyMap<string, string>): Array<{
208
+ key: string;
209
+ label: string;
210
+ }>;
211
+ /**
212
+ * A data hub's id.
213
+ *
214
+ * @param key - The hub's path key (`dicom`, `dicom/MR`, `dicom/MR/SAG MPRAGE`).
215
+ * @returns The id.
216
+ */
217
+ export declare function dataHubId_of(key: string): string;
218
+ /**
219
+ * The path key a data hub stands for.
220
+ *
221
+ * @param nodeId - A node id.
222
+ * @returns The key, or null when the node is not a data hub.
223
+ */
224
+ export declare function dataHubKey_of(nodeId: string): string | null;
225
+ /**
226
+ * The space as DATA: every feed its own molecule, hung from the hub of what
227
+ * it began from; hubs chained format → modality → description group, each
228
+ * drawn as a nebula sized by the feeds beneath it.
229
+ *
230
+ * @param landed - Every landed feed.
231
+ * @param scale - What sizes a stage.
232
+ * @returns The graph, and each hub's label and feed count.
233
+ */
234
+ export declare function dataGraph_build(landed: ReadonlyArray<LandedFeed>, scale?: UniverseScale): {
235
+ graph: UniverseGraph;
236
+ hubs: Map<string, {
237
+ label: string;
238
+ feeds: number;
239
+ }>;
240
+ };
241
+ /**
242
+ * What a data hub's tip says: its path from the format down, and how many
243
+ * feeds hang beneath it.
244
+ *
245
+ * @param nodeId - A node id.
246
+ * @param hubs - The hubs, from {@link dataGraph_build}.
247
+ * @returns The tip, or null when the node is not a data hub.
248
+ */
249
+ export declare function dataHubTip_of(nodeId: string, hubs: ReadonlyMap<string, {
250
+ label: string;
251
+ feeds: number;
252
+ }>): string | null;
253
+ /** How far a sphere's repulsion reaches while the space is small: a molecule hugs itself at this bound. */
254
+ export declare const UNIVERSE_REACH: number;
255
+ /** The most nodes a space may hold and still be bounded by {@link UNIVERSE_REACH}; a crowd is left unbounded. */
256
+ export declare const UNIVERSE_HUG_NODES: number;
257
+ /** The layouts a universe can be laid out in. */
258
+ export type UniverseLayout = 'galaxy' | 'spokes' | 'clumps' | 'constellations' | 'data' | 'accretion';
259
+ /** Every layout, in the order the LAYOUT block offers them. */
260
+ export declare const UNIVERSE_LAYOUTS: ReadonlyArray<UniverseLayout>;
261
+ /**
262
+ * The reach a space's settle takes: bounded while small, so a lone molecule
263
+ * hugs itself, unbounded for a crowd.
264
+ *
265
+ * @param nodes - How many nodes the space holds.
266
+ * @returns The reach, or undefined for none.
267
+ */
268
+ export declare function universeReach_of(nodes: number): number | undefined;
269
+ /**
270
+ * The layout engine a universe layout runs: DATA settles its hub tree as the
271
+ * galaxy does, under the engine named `hubs`.
272
+ *
273
+ * @param layout - The layout.
274
+ * @returns The engine's name.
275
+ */
276
+ export declare function universeEngine_of(layout: UniverseLayout): string;
277
+ /** A folded shape's stage id. */
278
+ export declare function foldId_of(shape: string, index: number): string;
279
+ /**
280
+ * The shape a folded stage belongs to.
281
+ *
282
+ * @param nodeId - A node id.
283
+ * @returns The shape, or null when the node is not a folded stage.
284
+ */
285
+ export declare function foldShape_of(nodeId: string): string | null;
286
+ /**
287
+ * The molecule a universe node belongs to: its feed, or its folded shape;
288
+ * none for an anchor, a hub or a star.
289
+ *
290
+ * @param nodeId - A node id.
291
+ * @returns The molecule's key, or null.
292
+ */
293
+ export declare function universeKey_of(nodeId: string): string | null;
294
+ /**
295
+ * The graph a universe layout is laid out from, over every feed (the FEEDS
296
+ * view, sized by jobs): the one a surface draws, and the one a session lays
297
+ * out for it.
298
+ *
299
+ * @param layout - The layout.
300
+ * @param landed - Every landed feed.
301
+ * @param scale - What sizes a stage.
302
+ * @returns The graph.
303
+ */
304
+ export declare function universeLayoutGraph_build(layout: UniverseLayout, landed: ReadonlyArray<LandedFeed>, scale?: UniverseScale): UniverseGraph;
@@ -0,0 +1,499 @@
1
+ /**
2
+ * @file The universe as graphs: every feed the index holds, drawn as the
3
+ * space a surface lays out.
4
+ *
5
+ * As the index reads a feed the session says what it is: its jobs collapsed
6
+ * by plugin per place in the pipeline — a chain is a chain, a fan of three
7
+ * hundred conversions is one node of 300 — with a status on every node.
8
+ * These build the graphs a universe is laid out from — round each shape's
9
+ * unseen hub, round the plugin stars, as data hubs, or grown in creation
10
+ * order — pure functions of the feeds, shared by the surface that draws the
11
+ * space and the session that lays it out once for every surface.
12
+ *
13
+ * Every node is real: a group of jobs that ran. Nothing is invented to fill
14
+ * the wait, which is what lets it be a readout rather than a screensaver.
15
+ *
16
+ * @module
17
+ */
18
+ /**
19
+ * The signature of a feed's shape: what pulls like feeds together.
20
+ *
21
+ * @param feed - The feed.
22
+ * @returns The plugins in group order with their parent places — the same
23
+ * for two feeds that ran the same pipeline, whatever their counts.
24
+ */
25
+ export function shape_of(feed) {
26
+ return feed.groups.map((group) => `${group.parent ?? 'r'}:${group.plugin}`).join('>');
27
+ }
28
+ /** The id of a feed's group node. */
29
+ export function groupId_of(feedId, index) {
30
+ return `feed:${feedId}:${index}`;
31
+ }
32
+ /** The id of a shape's unseen anchor. */
33
+ export function anchorId_of(shape) {
34
+ return `shape:${shape}`;
35
+ }
36
+ /**
37
+ * A sphere's weight on the jobs scale. Logarithmic, because a group of
38
+ * eighty thousand beside groups of three hundred left everything but the
39
+ * giant at the smallest radius and the giant at the heart of gravity — a
40
+ * fat caterpillar where a field should be.
41
+ *
42
+ * @param count - The jobs the group stands for.
43
+ * @returns The metric the settle sizes by.
44
+ */
45
+ export function jobsMetric_of(count) {
46
+ return Math.log2(Math.max(1, count) + 1);
47
+ }
48
+ /**
49
+ * The share of a group that ended in error, 0..1, or undefined when none
50
+ * did: what hues the sphere. A group is not red because one job in eighty
51
+ * thousand failed; it is as red as its failures are many.
52
+ *
53
+ * @param group - The group.
54
+ * @returns The share, or undefined for a clean group.
55
+ */
56
+ export function erroredShare_of(group) {
57
+ if (group.errored <= 0 || group.count <= 0)
58
+ return undefined;
59
+ return Math.min(1, group.errored / group.count);
60
+ }
61
+ export function universeGraph_build(landed, scale = 'jobs') {
62
+ const nodes = [];
63
+ const anchors = new Set();
64
+ const feeds = [...landed].sort((a, b) => a.id - b.id);
65
+ const perShape = new Map();
66
+ for (const feed of feeds) {
67
+ if (feed.groups.length === 0)
68
+ continue;
69
+ const shape = shape_of(feed);
70
+ perShape.set(shape, (perShape.get(shape) ?? 0) + 1);
71
+ }
72
+ for (const feed of feeds) {
73
+ if (feed.groups.length === 0)
74
+ continue;
75
+ const shape = shape_of(feed);
76
+ const anchor = anchorId_of(shape);
77
+ if (!anchors.has(shape)) {
78
+ anchors.add(shape);
79
+ // No mass: an anchor gathers its feeds without carving room of its
80
+ // own — but it is drawn as a halo, the cluster's handle, sized by
81
+ // how many feeds share the shape.
82
+ nodes.push({ id: anchor, label: shapeWords_of(shape), parentIds: [], joinParentIds: [], ghost: true, halo: true, metric: 1, count: perShape.get(shape) ?? 1 });
83
+ }
84
+ feed.groups.forEach((group, index) => {
85
+ const share = erroredShare_of(group);
86
+ nodes.push({
87
+ id: groupId_of(feed.id, index),
88
+ label: group.plugin,
89
+ parentIds: [group.parent === null ? anchor : groupId_of(feed.id, group.parent)],
90
+ joinParentIds: [],
91
+ status: group.status,
92
+ metric: scale === 'jobs' ? jobsMetric_of(group.count) : 1,
93
+ ...(group.count > 1 ? { count: group.count } : {}),
94
+ ...(share !== undefined ? { share } : {}),
95
+ });
96
+ });
97
+ }
98
+ return { nodes };
99
+ }
100
+ /** The prefix of a plugin star's id. */
101
+ const PLUGIN_STAR_PREFIX = 'plugin:';
102
+ /**
103
+ * A plugin star's id.
104
+ *
105
+ * @param plugin - The plugin's name (versions collapse: the name alone).
106
+ * @returns The id.
107
+ */
108
+ export function pluginStarId_of(plugin) {
109
+ return `${PLUGIN_STAR_PREFIX}${plugin}`;
110
+ }
111
+ /**
112
+ * The plugin a star stands for.
113
+ *
114
+ * @param nodeId - A node id.
115
+ * @returns The plugin's name, or null when the node is not a plugin star.
116
+ */
117
+ export function pluginOfStar(nodeId) {
118
+ return nodeId.startsWith(PLUGIN_STAR_PREFIX) ? nodeId.slice(PLUGIN_STAR_PREFIX.length) : null;
119
+ }
120
+ /**
121
+ * The space as constellations: every feed its own molecule with no shape's
122
+ * hub to hang from, each stage marked with its plugin, and one ringed star
123
+ * per plugin, sized by the feeds that ran it — the engine places the stars
124
+ * by what runs with what and pulls each stage to its own.
125
+ *
126
+ * @param landed - Every landed feed.
127
+ * @param scale - What sizes a stage.
128
+ * @returns The graph.
129
+ */
130
+ export function constellationsGraph_build(landed, scale = 'jobs') {
131
+ const nodes = [];
132
+ const feedsUsing = new Map();
133
+ const feeds = [...landed].sort((a, b) => a.id - b.id);
134
+ for (const feed of feeds) {
135
+ if (feed.groups.length === 0)
136
+ continue;
137
+ for (const plugin of new Set(feed.groups.map((group) => group.plugin)))
138
+ feedsUsing.set(plugin, (feedsUsing.get(plugin) ?? 0) + 1);
139
+ feed.groups.forEach((group, index) => {
140
+ const share = erroredShare_of(group);
141
+ nodes.push({
142
+ id: groupId_of(feed.id, index),
143
+ label: group.plugin,
144
+ parentIds: group.parent === null ? [] : [groupId_of(feed.id, group.parent)],
145
+ joinParentIds: [],
146
+ status: group.status,
147
+ metric: scale === 'jobs' ? jobsMetric_of(group.count) : 1,
148
+ attrs: { plugin: group.plugin },
149
+ ...(group.count > 1 ? { count: group.count } : {}),
150
+ ...(share !== undefined ? { share } : {}),
151
+ });
152
+ });
153
+ }
154
+ for (const [plugin, count] of [...feedsUsing].sort((a, b) => (a[0] < b[0] ? -1 : 1))) {
155
+ nodes.push({
156
+ id: pluginStarId_of(plugin),
157
+ label: plugin,
158
+ parentIds: [],
159
+ joinParentIds: [],
160
+ // A star's mass is how many feeds ran it, on a log.
161
+ metric: 1 + Math.log(count),
162
+ hue: '#e8f4ff',
163
+ ring: true,
164
+ attrs: { kind: 'star', plugin },
165
+ });
166
+ }
167
+ return { nodes };
168
+ }
169
+ /**
170
+ * The space as it grows by accretion: every feed its own molecule, no hubs
171
+ * and no stars, each stage carrying its plugin (what makes feeds alike) and
172
+ * its feed's creation time (the order the coral grows in).
173
+ *
174
+ * @param landed - Every landed feed.
175
+ * @param scale - What sizes a stage.
176
+ * @returns The graph.
177
+ */
178
+ export function accretionGraph_build(landed, scale = 'jobs') {
179
+ const createdOf = new Map();
180
+ for (const feed of landed) {
181
+ const at = feed.createdAt === undefined ? Number.NaN : Date.parse(feed.createdAt);
182
+ if (Number.isFinite(at))
183
+ createdOf.set(feed.id, at);
184
+ }
185
+ const nodes = constellationsGraph_build(landed, scale).nodes
186
+ .filter((node) => node.attrs?.['kind'] !== 'star')
187
+ .map((node) => {
188
+ const created = createdOf.get(Number(node.id.split(':')[1]));
189
+ return created === undefined ? node : { ...node, attrs: { ...node.attrs, createdAt: created } };
190
+ });
191
+ return { nodes };
192
+ }
193
+ /**
194
+ * A shape in words: its plugins in pipeline order, each once.
195
+ *
196
+ * @param shape - The shape string (`r:pl-a>0:pl-b>0:pl-b`).
197
+ * @returns `pl-a > pl-b`.
198
+ */
199
+ export function shapeWords_of(shape) {
200
+ const seen = [];
201
+ for (const part of shape.split('>')) {
202
+ const plugin = part.slice(part.indexOf(':') + 1);
203
+ if (plugin.length > 0 && !seen.includes(plugin))
204
+ seen.push(plugin);
205
+ }
206
+ return seen.join(' > ');
207
+ }
208
+ /** Two descriptions whose words overlap this much are one group. */
209
+ export const DESCRIPTION_OVERLAP = 0.5;
210
+ /**
211
+ * The least a description group holds to be labelled in the space: five
212
+ * feeds, or two in every hundred. Formats and modalities are always
213
+ * labelled; a group of one or two is a hover away — labelling every one
214
+ * crowded the middle of the space unreadable.
215
+ */
216
+ export const CAPTION_FEEDS_MIN = 5;
217
+ export const CAPTION_SHARE_MIN = 0.02;
218
+ /** The prefix of a data hub's id. */
219
+ const DATA_HUB_PREFIX = 'data:';
220
+ /** What the formats read as on a hub. */
221
+ const FORMAT_WORDS = {
222
+ dicom: 'DICOM', nifti: 'NIfTI', mgz: 'MGZ', jpeg: 'JPEG', png: 'PNG', other: 'OTHER', unknown: 'UNREADABLE', unread: 'NOT YET READ',
223
+ };
224
+ /**
225
+ * A description as words to compare: upper case, separators to spaces, and
226
+ * the words that say nothing about the sequence dropped — pure numbers, and
227
+ * sizes and fields of view (`220`, `256X256`, `FOV220`, `3MM`).
228
+ *
229
+ * @param description - A series description.
230
+ * @returns Its words, in order, each once.
231
+ */
232
+ export function descriptionWords_of(description) {
233
+ const words = description
234
+ .toUpperCase()
235
+ .replace(/[_\-.,/\\()[\]:;+]+/g, ' ')
236
+ .split(/\s+/)
237
+ .filter((word) => word.length > 0)
238
+ .filter((word) => !/^\d+$/.test(word))
239
+ .filter((word) => !/^\d+X\d+$/.test(word))
240
+ .filter((word) => !/^FOV\d*$/.test(word))
241
+ .filter((word) => !/^\d+(\.\d+)?(MM|CM)$/.test(word));
242
+ return [...new Set(words)];
243
+ }
244
+ /**
245
+ * How much two sets of words overlap: shared over the smaller, so a short
246
+ * description that is all of a longer one is the same series.
247
+ *
248
+ * @param a - Words.
249
+ * @param b - Words.
250
+ * @returns 0..1.
251
+ */
252
+ export function wordOverlap_of(a, b) {
253
+ if (a.length === 0 || b.length === 0)
254
+ return 0;
255
+ const set = new Set(a);
256
+ const shared = b.filter((word) => set.has(word)).length;
257
+ return shared / Math.min(a.length, b.length);
258
+ }
259
+ /**
260
+ * Groups descriptions by their words: most common first, each joining the
261
+ * first group whose name its words overlap enough, else starting its own.
262
+ * A group is named by the description most of its members carry.
263
+ *
264
+ * @param descriptions - Each feed's description (repeats count).
265
+ * @returns Each description's group name.
266
+ */
267
+ export function descriptionGroups_of(descriptions) {
268
+ const counts = new Map();
269
+ for (const description of descriptions)
270
+ counts.set(description, (counts.get(description) ?? 0) + 1);
271
+ const ordered = [...counts.keys()].sort((a, b) => (counts.get(b) ?? 0) - (counts.get(a) ?? 0) || (a < b ? -1 : 1));
272
+ const groups = [];
273
+ const groupOf = new Map();
274
+ for (const description of ordered) {
275
+ const words = descriptionWords_of(description);
276
+ const home = words.length === 0 ? undefined : groups.find((group) => wordOverlap_of(group.words, words) >= DESCRIPTION_OVERLAP);
277
+ if (home !== undefined) {
278
+ groupOf.set(description, home.name);
279
+ continue;
280
+ }
281
+ groups.push({ name: description, words });
282
+ groupOf.set(description, description);
283
+ }
284
+ return groupOf;
285
+ }
286
+ /**
287
+ * Where a feed hangs in the DATA tree: its hubs from the format down, each
288
+ * with its label.
289
+ *
290
+ * @param feed - The feed.
291
+ * @param groupOf - Each description's group name.
292
+ * @returns The path of hubs, format first.
293
+ */
294
+ export function dataPath_of(feed, groupOf) {
295
+ const format = feed.data?.format ?? 'unread';
296
+ const path = [{ key: format, label: FORMAT_WORDS[format] ?? format.toUpperCase() }];
297
+ if (format !== 'dicom')
298
+ return path;
299
+ const modality = feed.data?.modality ?? 'NO MODALITY';
300
+ path.push({ key: `${format}/${modality}`, label: modality });
301
+ const description = feed.data?.seriesDescription;
302
+ const group = description === undefined ? 'NO DESCRIPTION' : groupOf.get(description) ?? description;
303
+ path.push({ key: `${format}/${modality}/${group}`, label: group });
304
+ return path;
305
+ }
306
+ /**
307
+ * A data hub's id.
308
+ *
309
+ * @param key - The hub's path key (`dicom`, `dicom/MR`, `dicom/MR/SAG MPRAGE`).
310
+ * @returns The id.
311
+ */
312
+ export function dataHubId_of(key) {
313
+ return `${DATA_HUB_PREFIX}${key}`;
314
+ }
315
+ /**
316
+ * The path key a data hub stands for.
317
+ *
318
+ * @param nodeId - A node id.
319
+ * @returns The key, or null when the node is not a data hub.
320
+ */
321
+ export function dataHubKey_of(nodeId) {
322
+ return nodeId.startsWith(DATA_HUB_PREFIX) ? nodeId.slice(DATA_HUB_PREFIX.length) : null;
323
+ }
324
+ /**
325
+ * The space as DATA: every feed its own molecule, hung from the hub of what
326
+ * it began from; hubs chained format → modality → description group, each
327
+ * drawn as a nebula sized by the feeds beneath it.
328
+ *
329
+ * @param landed - Every landed feed.
330
+ * @param scale - What sizes a stage.
331
+ * @returns The graph, and each hub's label and feed count.
332
+ */
333
+ export function dataGraph_build(landed, scale = 'jobs') {
334
+ const feeds = [...landed].filter((feed) => feed.groups.length > 0).sort((a, b) => a.id - b.id);
335
+ const groupOf = descriptionGroups_of(feeds.map((feed) => feed.data?.seriesDescription).filter((d) => d !== undefined));
336
+ const hubs = new Map();
337
+ const nodes = [];
338
+ for (const feed of feeds) {
339
+ const path = dataPath_of(feed, groupOf);
340
+ let parent = null;
341
+ for (const step of path) {
342
+ const known = hubs.get(step.key);
343
+ if (known === undefined)
344
+ hubs.set(step.key, { label: step.label, feeds: 1, parent });
345
+ else
346
+ known.feeds += 1;
347
+ parent = step.key;
348
+ }
349
+ const leaf = dataHubId_of(parent);
350
+ feed.groups.forEach((group, index) => {
351
+ const share = erroredShare_of(group);
352
+ nodes.push({
353
+ id: groupId_of(feed.id, index),
354
+ label: group.plugin,
355
+ parentIds: [group.parent === null ? leaf : groupId_of(feed.id, group.parent)],
356
+ joinParentIds: [],
357
+ status: group.status,
358
+ metric: scale === 'jobs' ? jobsMetric_of(group.count) : 1,
359
+ ...(group.count > 1 ? { count: group.count } : {}),
360
+ ...(share !== undefined ? { share } : {}),
361
+ });
362
+ });
363
+ }
364
+ // Lineage: a feed whose data is another feed's output is joined to that
365
+ // feed's root — a faint thread under stars, a join tube up close — and the
366
+ // join draws the two a little together in the settle.
367
+ const rootOf = new Map();
368
+ for (const feed of feeds) {
369
+ const index = feed.groups.findIndex((group) => group.parent === null);
370
+ if (index >= 0)
371
+ rootOf.set(feed.id, groupId_of(feed.id, index));
372
+ }
373
+ const nodeOf = new Map(nodes.map((n) => [n.id, n]));
374
+ for (const feed of feeds) {
375
+ const source = feed.data?.sourceFeed;
376
+ const from = source === undefined || source === feed.id ? undefined : rootOf.get(source);
377
+ const root = rootOf.get(feed.id);
378
+ if (from === undefined || root === undefined)
379
+ continue;
380
+ const node = nodeOf.get(root);
381
+ if (node !== undefined) {
382
+ node.joinParentIds = [...node.joinParentIds, from];
383
+ node.joinFaint = true;
384
+ }
385
+ }
386
+ // The hubs: no mass of their own, drawn as nebulae sized by their feeds,
387
+ // each hung from the hub above it so a format's modalities gather.
388
+ const captioned = (key, feedsUnder) => key.split('/').length < 3 || feedsUnder >= Math.max(CAPTION_FEEDS_MIN, CAPTION_SHARE_MIN * feeds.length);
389
+ const hubNodes = [...hubs].map(([key, hub]) => ({
390
+ id: dataHubId_of(key),
391
+ label: hub.label,
392
+ parentIds: hub.parent === null ? [] : [dataHubId_of(hub.parent)],
393
+ joinParentIds: [],
394
+ // An anchor, not a body: as bodies the hubs drew a thread to every feed
395
+ // they hold and still sat at the middle of their own clouds.
396
+ ghost: true,
397
+ halo: true,
398
+ metric: 1,
399
+ count: hub.feeds,
400
+ // Read without hovering: what the hub is, and how many feeds hang from it.
401
+ ...(captioned(key, hub.feeds) ? { caption: `${hub.label} · ${hub.feeds.toLocaleString('en-US')}` } : {}),
402
+ }));
403
+ return {
404
+ graph: { nodes: [...hubNodes, ...nodes] },
405
+ hubs: new Map([...hubs].map(([key, hub]) => [key, { label: hub.label, feeds: hub.feeds }])),
406
+ };
407
+ }
408
+ /**
409
+ * What a data hub's tip says: its path from the format down, and how many
410
+ * feeds hang beneath it.
411
+ *
412
+ * @param nodeId - A node id.
413
+ * @param hubs - The hubs, from {@link dataGraph_build}.
414
+ * @returns The tip, or null when the node is not a data hub.
415
+ */
416
+ export function dataHubTip_of(nodeId, hubs) {
417
+ const key = dataHubKey_of(nodeId);
418
+ if (key === null)
419
+ return null;
420
+ const parts = key.split('/');
421
+ const labels = parts.map((_part, index) => hubs.get(parts.slice(0, index + 1).join('/'))?.label ?? parts[index] ?? '');
422
+ const feeds = hubs.get(key)?.feeds ?? 0;
423
+ return `${labels.join(' · ')} · ${feeds.toLocaleString('en-US')} feed${feeds === 1 ? '' : 's'}`;
424
+ }
425
+ // ── Laying the universe out ───────────────────────────────────────────────────
426
+ /** How far a sphere's repulsion reaches while the space is small: a molecule hugs itself at this bound. */
427
+ export const UNIVERSE_REACH = 12;
428
+ /** The most nodes a space may hold and still be bounded by {@link UNIVERSE_REACH}; a crowd is left unbounded. */
429
+ export const UNIVERSE_HUG_NODES = 240;
430
+ /** Every layout, in the order the LAYOUT block offers them. */
431
+ export const UNIVERSE_LAYOUTS = ['galaxy', 'spokes', 'clumps', 'constellations', 'data', 'accretion'];
432
+ /**
433
+ * The reach a space's settle takes: bounded while small, so a lone molecule
434
+ * hugs itself, unbounded for a crowd.
435
+ *
436
+ * @param nodes - How many nodes the space holds.
437
+ * @returns The reach, or undefined for none.
438
+ */
439
+ export function universeReach_of(nodes) {
440
+ return nodes <= UNIVERSE_HUG_NODES ? UNIVERSE_REACH : undefined;
441
+ }
442
+ /**
443
+ * The layout engine a universe layout runs: DATA settles its hub tree as the
444
+ * galaxy does, under the engine named `hubs`.
445
+ *
446
+ * @param layout - The layout.
447
+ * @returns The engine's name.
448
+ */
449
+ export function universeEngine_of(layout) {
450
+ return layout === 'data' ? 'hubs' : layout;
451
+ }
452
+ /** A folded shape's stage id. */
453
+ export function foldId_of(shape, index) {
454
+ return `fold:${shape}:${index}`;
455
+ }
456
+ /**
457
+ * The shape a folded stage belongs to.
458
+ *
459
+ * @param nodeId - A node id.
460
+ * @returns The shape, or null when the node is not a folded stage.
461
+ */
462
+ export function foldShape_of(nodeId) {
463
+ const match = nodeId.match(/^fold:(.+):\d+$/);
464
+ return match === null ? null : match[1];
465
+ }
466
+ /**
467
+ * The molecule a universe node belongs to: its feed, or its folded shape;
468
+ * none for an anchor, a hub or a star.
469
+ *
470
+ * @param nodeId - A node id.
471
+ * @returns The molecule's key, or null.
472
+ */
473
+ export function universeKey_of(nodeId) {
474
+ const feed = nodeId.match(/^feed:(\d+):/);
475
+ if (feed !== null)
476
+ return `feed:${feed[1]}`;
477
+ const folded = foldShape_of(nodeId);
478
+ return folded === null ? null : `fold:${folded}`;
479
+ }
480
+ /**
481
+ * The graph a universe layout is laid out from, over every feed (the FEEDS
482
+ * view, sized by jobs): the one a surface draws, and the one a session lays
483
+ * out for it.
484
+ *
485
+ * @param layout - The layout.
486
+ * @param landed - Every landed feed.
487
+ * @param scale - What sizes a stage.
488
+ * @returns The graph.
489
+ */
490
+ export function universeLayoutGraph_build(layout, landed, scale = 'jobs') {
491
+ if (layout === 'constellations')
492
+ return constellationsGraph_build(landed, scale);
493
+ if (layout === 'data')
494
+ return dataGraph_build(landed, scale).graph;
495
+ if (layout === 'accretion')
496
+ return accretionGraph_build(landed, scale);
497
+ return universeGraph_build(landed, scale);
498
+ }
499
+ //# sourceMappingURL=universe.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"universe.js","sourceRoot":"","sources":["../src/universe.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fnndsc/menu",
3
- "version": "0.11.0",
3
+ "version": "0.13.0",
4
4
  "description": "The mise wire contract: envelope, session protocol, and result-model schemas that surfaces and the kernel both speak",
5
5
  "repository": {
6
6
  "type": "git",