@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 +169 -0
- package/dist/dag.js +34 -0
- package/dist/dag.js.map +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -1
- package/dist/index.js.map +1 -1
- package/dist/messages.d.ts +4 -4
- package/dist/universe.d.ts +304 -0
- package/dist/universe.js +499 -0
- package/dist/universe.js.map +1 -0
- package/package.json +1 -1
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,
|
|
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,kBAAkB,EAClB,uBAAuB,EACvB,wBAAwB,EACxB,qBAAqB,EACrB,sBAAsB,GAMvB,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;AACnB,OAAO,EAML,QAAQ,EACR,UAAU,EACV,WAAW,EACX,aAAa,EACb,eAAe,EACf,mBAAmB,EACnB,eAAe,EACf,YAAY,EACZ,yBAAyB,EACzB,oBAAoB,EACpB,aAAa,EACb,mBAAmB,EACnB,iBAAiB,EACjB,iBAAiB,EACjB,mBAAmB,EACnB,cAAc,EACd,oBAAoB,EACpB,WAAW,EACX,YAAY,EACZ,aAAa,EACb,eAAe,EACf,aAAa,EACb,cAAc,EACd,kBAAkB,EAClB,gBAAgB,EAEhB,gBAAgB,EAChB,iBAAiB,EACjB,SAAS,EACT,YAAY,EACZ,cAAc,EACd,yBAAyB,GAC1B,MAAM,eAAe,CAAC"}
|
package/dist/messages.d.ts
CHANGED
|
@@ -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;
|
package/dist/universe.js
ADDED
|
@@ -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