@elevasis/ui 2.28.0 → 2.29.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.
Files changed (72) hide show
  1. package/dist/api/index.js +2 -2
  2. package/dist/app/index.d.ts +6 -12
  3. package/dist/app/index.js +4 -4
  4. package/dist/charts/index.js +3 -3
  5. package/dist/{chunk-OHXU5WWK.js → chunk-3DUOPXOJ.js} +146 -9
  6. package/dist/{chunk-LWKZ3BCC.js → chunk-5CW2HXQA.js} +4 -4
  7. package/dist/{chunk-JKBGDFX2.js → chunk-65RQE3XF.js} +378 -254
  8. package/dist/{chunk-XZSEPJZQ.js → chunk-6NHCE7JM.js} +49 -28
  9. package/dist/{chunk-RIFTUOPE.js → chunk-6WXDE5LZ.js} +1 -1
  10. package/dist/{chunk-SGS4CQ2B.js → chunk-7E3FUTND.js} +1 -1
  11. package/dist/{chunk-UPMX5GJI.js → chunk-A7R2URMV.js} +88 -26
  12. package/dist/{chunk-UY5I2KOZ.js → chunk-AK5E6ILJ.js} +9 -8
  13. package/dist/{chunk-G26INIF3.js → chunk-CEHUFNAL.js} +1 -1
  14. package/dist/{chunk-ONFKASZI.js → chunk-CLUP5H3C.js} +7 -10
  15. package/dist/{chunk-MYEOTM7D.js → chunk-CN2HC4D4.js} +5 -1
  16. package/dist/chunk-FFDAE2QI.js +330 -0
  17. package/dist/{chunk-WUVR4QY6.js → chunk-FGDUK74A.js} +4 -4
  18. package/dist/{chunk-YHBPR67D.js → chunk-HNFQCOD2.js} +4 -4
  19. package/dist/{chunk-QD4X4H5A.js → chunk-HXZQWMKE.js} +2 -3
  20. package/dist/{chunk-KEFWANZY.js → chunk-JCGD4GM6.js} +5 -1
  21. package/dist/{chunk-YO2YORW4.js → chunk-OHGNCWJP.js} +3 -3
  22. package/dist/{chunk-JPGX3533.js → chunk-OIMPGKDB.js} +2 -2
  23. package/dist/{chunk-W2ZTLH7Y.js → chunk-OWESKPTJ.js} +85 -26
  24. package/dist/{chunk-G66QFZXD.js → chunk-QNL7UI5G.js} +15 -9
  25. package/dist/{chunk-OGXKOMUT.js → chunk-SZWXQHKO.js} +2 -2
  26. package/dist/{chunk-ZFLM2YVW.js → chunk-Y3YJKKEB.js} +1 -1
  27. package/dist/components/index.d.ts +16 -14
  28. package/dist/components/index.js +26 -26
  29. package/dist/features/auth/index.d.ts +6 -12
  30. package/dist/features/auth/index.js +1 -0
  31. package/dist/features/crm/index.d.ts +16 -14
  32. package/dist/features/crm/index.js +9 -9
  33. package/dist/features/dashboard/index.d.ts +16 -3
  34. package/dist/features/dashboard/index.js +10 -10
  35. package/dist/features/delivery/index.d.ts +6 -12
  36. package/dist/features/delivery/index.js +9 -9
  37. package/dist/features/knowledge/index.js +42 -20
  38. package/dist/features/lead-gen/index.d.ts +187 -24
  39. package/dist/features/lead-gen/index.js +10 -10
  40. package/dist/features/monitoring/index.js +11 -11
  41. package/dist/features/monitoring/requests/index.js +8 -8
  42. package/dist/features/operations/index.d.ts +16 -3
  43. package/dist/features/operations/index.js +15 -15
  44. package/dist/features/settings/index.d.ts +6 -12
  45. package/dist/features/settings/index.js +9 -9
  46. package/dist/hooks/delivery/index.d.ts +6 -12
  47. package/dist/hooks/delivery/index.js +2 -2
  48. package/dist/hooks/index.d.ts +110 -28
  49. package/dist/hooks/index.js +8 -8
  50. package/dist/hooks/published.d.ts +110 -28
  51. package/dist/hooks/published.js +8 -8
  52. package/dist/index.d.ts +149 -31
  53. package/dist/index.js +8 -8
  54. package/dist/initialization/index.d.ts +6 -12
  55. package/dist/knowledge/index.d.ts +44 -1
  56. package/dist/knowledge/index.js +149 -12
  57. package/dist/profile/index.d.ts +6 -12
  58. package/dist/provider/index.d.ts +44 -12
  59. package/dist/provider/index.js +6 -6
  60. package/dist/provider/published.d.ts +44 -12
  61. package/dist/provider/published.js +5 -5
  62. package/dist/supabase/index.d.ts +12 -24
  63. package/dist/test-utils/index.js +2 -2
  64. package/dist/typeform/index.d.ts +5 -1
  65. package/dist/typeform/index.js +52 -7
  66. package/dist/types/index.d.ts +7 -13
  67. package/dist/utils/index.d.ts +1 -3
  68. package/dist/utils/index.js +1 -1
  69. package/dist/vite/index.js +2 -2
  70. package/dist/vite-plugin-knowledge/index.js +1 -1
  71. package/package.json +5 -5
  72. package/dist/chunk-4KTLOK7K.js +0 -230
package/dist/api/index.js CHANGED
@@ -1,6 +1,6 @@
1
1
  import '../chunk-XCYKC6OZ.js';
2
- export { ApiClientProvider, useApiClient, useApiClientContext } from '../chunk-SGS4CQ2B.js';
3
- import '../chunk-QD4X4H5A.js';
2
+ export { ApiClientProvider, useApiClient, useApiClientContext } from '../chunk-7E3FUTND.js';
3
+ import '../chunk-HXZQWMKE.js';
4
4
  import '../chunk-KRWALB24.js';
5
5
  import '../chunk-DD3CCMCZ.js';
6
6
  import '../chunk-I2KLQ2HA.js';
@@ -78,7 +78,7 @@ type Database = {
78
78
  name: string;
79
79
  num_employees: number | null;
80
80
  organization_id: string;
81
- pipeline_status: Json;
81
+ processing_state: Json;
82
82
  qualification_rubric_key: string | null;
83
83
  qualification_score: number | null;
84
84
  qualification_signals: Json | null;
@@ -104,7 +104,7 @@ type Database = {
104
104
  name: string;
105
105
  num_employees?: number | null;
106
106
  organization_id: string;
107
- pipeline_status?: Json;
107
+ processing_state?: Json;
108
108
  qualification_rubric_key?: string | null;
109
109
  qualification_score?: number | null;
110
110
  qualification_signals?: Json | null;
@@ -130,7 +130,7 @@ type Database = {
130
130
  name?: string;
131
131
  num_employees?: number | null;
132
132
  organization_id?: string;
133
- pipeline_status?: Json;
133
+ processing_state?: Json;
134
134
  qualification_rubric_key?: string | null;
135
135
  qualification_score?: number | null;
136
136
  qualification_signals?: Json | null;
@@ -169,7 +169,7 @@ type Database = {
169
169
  nurture: boolean;
170
170
  opening_line: string | null;
171
171
  organization_id: string;
172
- pipeline_status: Json;
172
+ processing_state: Json;
173
173
  qualification_rubric_key: string | null;
174
174
  qualification_score: number | null;
175
175
  qualification_signals: Json | null;
@@ -197,7 +197,7 @@ type Database = {
197
197
  nurture?: boolean;
198
198
  opening_line?: string | null;
199
199
  organization_id: string;
200
- pipeline_status?: Json;
200
+ processing_state?: Json;
201
201
  qualification_rubric_key?: string | null;
202
202
  qualification_score?: number | null;
203
203
  qualification_signals?: Json | null;
@@ -225,7 +225,7 @@ type Database = {
225
225
  nurture?: boolean;
226
226
  opening_line?: string | null;
227
227
  organization_id?: string;
228
- pipeline_status?: Json;
228
+ processing_state?: Json;
229
229
  qualification_rubric_key?: string | null;
230
230
  qualification_score?: number | null;
231
231
  qualification_signals?: Json | null;
@@ -621,7 +621,6 @@ type Database = {
621
621
  id: string;
622
622
  list_id: string;
623
623
  pipeline_key: string;
624
- processing_state: Json;
625
624
  source_execution_id: string | null;
626
625
  source_input_hash: string | null;
627
626
  source_resource_id: string | null;
@@ -636,7 +635,6 @@ type Database = {
636
635
  id?: string;
637
636
  list_id: string;
638
637
  pipeline_key?: string;
639
- processing_state?: Json;
640
638
  source_execution_id?: string | null;
641
639
  source_input_hash?: string | null;
642
640
  source_resource_id?: string | null;
@@ -651,7 +649,6 @@ type Database = {
651
649
  id?: string;
652
650
  list_id?: string;
653
651
  pipeline_key?: string;
654
- processing_state?: Json;
655
652
  source_execution_id?: string | null;
656
653
  source_input_hash?: string | null;
657
654
  source_resource_id?: string | null;
@@ -730,7 +727,6 @@ type Database = {
730
727
  id: string;
731
728
  list_id: string;
732
729
  pipeline_key: string;
733
- processing_state: Json;
734
730
  source_execution_id: string | null;
735
731
  source_input_hash: string | null;
736
732
  source_resource_id: string | null;
@@ -745,7 +741,6 @@ type Database = {
745
741
  id?: string;
746
742
  list_id: string;
747
743
  pipeline_key?: string;
748
- processing_state?: Json;
749
744
  source_execution_id?: string | null;
750
745
  source_input_hash?: string | null;
751
746
  source_resource_id?: string | null;
@@ -760,7 +755,6 @@ type Database = {
760
755
  id?: string;
761
756
  list_id?: string;
762
757
  pipeline_key?: string;
763
- processing_state?: Json;
764
758
  source_execution_id?: string | null;
765
759
  source_input_hash?: string | null;
766
760
  source_resource_id?: string | null;
package/dist/app/index.js CHANGED
@@ -1,13 +1,13 @@
1
- import { ElevasisUIProvider } from '../chunk-JPGX3533.js';
1
+ import { ElevasisUIProvider } from '../chunk-OIMPGKDB.js';
2
2
  import '../chunk-LH4GPYDX.js';
3
3
  import '../chunk-HLFFKKT3.js';
4
4
  import '../chunk-WLOQ4IBG.js';
5
- import '../chunk-W2ZTLH7Y.js';
5
+ import '../chunk-OWESKPTJ.js';
6
6
  import '../chunk-SZHARWKU.js';
7
- import '../chunk-SGS4CQ2B.js';
7
+ import '../chunk-7E3FUTND.js';
8
8
  import '../chunk-HOIT677G.js';
9
9
  import '../chunk-E565XMTQ.js';
10
- import '../chunk-QD4X4H5A.js';
10
+ import '../chunk-HXZQWMKE.js';
11
11
  import '../chunk-KRWALB24.js';
12
12
  import { useInitialization } from '../chunk-WKJ47GIW.js';
13
13
  import '../chunk-DD3CCMCZ.js';
@@ -1,14 +1,14 @@
1
- export { ActivityTrendChart, ChartFrame, CombinedTrendChart, CostTrendChart, HeroStatsRow } from '../chunk-OGXKOMUT.js';
1
+ export { ActivityTrendChart, ChartFrame, CombinedTrendChart, CostTrendChart, HeroStatsRow } from '../chunk-SZWXQHKO.js';
2
2
  export { CyberAreaChart, CyberDonut, CyberDonutTooltip, CyberLegendItem, getSeriesColor, useCyberColors } from '../chunk-CW3UNAF2.js';
3
3
  import '../chunk-VKMNWHTL.js';
4
- import '../chunk-RIFTUOPE.js';
4
+ import '../chunk-6WXDE5LZ.js';
5
5
  import '../chunk-3KMDHCAR.js';
6
6
  import '../chunk-SZHARWKU.js';
7
7
  import '../chunk-NYBEU5TE.js';
8
8
  import '../chunk-2IFYDILW.js';
9
9
  import '../chunk-Q7DJKLEN.js';
10
10
  import '../chunk-DT3QYZVU.js';
11
- import '../chunk-QD4X4H5A.js';
11
+ import '../chunk-HXZQWMKE.js';
12
12
  import '../chunk-KRWALB24.js';
13
13
  import '../chunk-WFTNY755.js';
14
14
  import '../chunk-WKJ47GIW.js';
@@ -1,13 +1,13 @@
1
- import { SemanticIcon } from './chunk-KEFWANZY.js';
1
+ import { SemanticIcon } from './chunk-JCGD4GM6.js';
2
2
  import { SubshellSidebarLoader } from './chunk-XQQEKWTL.js';
3
- import { OrganizationModelProspectingSchema } from './chunk-4KTLOK7K.js';
3
+ import { OrganizationModelProspectingSchema, CAPABILITY_REGISTRY } from './chunk-FFDAE2QI.js';
4
4
  import { useCyberColors, CyberDonut } from './chunk-CW3UNAF2.js';
5
5
  import { SubshellSidebarSection } from './chunk-IIMU5YAJ.js';
6
- import { collectResourceFilterFacets, useCommandViewStore, useCommandViewData, useCommandViewStats, usePaginationState, useResourceExecutions, useCheckpointTasks } from './chunk-YHBPR67D.js';
7
- import { EmptyState, APIErrorAlert } from './chunk-RIFTUOPE.js';
8
- import { LabelSchema, ColorTokenSchema, IconNameSchema, PathSchema, DescriptionSchema, DisplayMetadataSchema, ModelIdSchema, ReferenceIdsSchema, OrganizationModelSalesSchema } from './chunk-W2ZTLH7Y.js';
6
+ import { collectResourceFilterFacets, useCommandViewStore, useCommandViewData, useCommandViewStats, usePaginationState, useResourceExecutions, useCheckpointTasks } from './chunk-HNFQCOD2.js';
7
+ import { EmptyState, APIErrorAlert } from './chunk-6WXDE5LZ.js';
8
+ import { LabelSchema, ColorTokenSchema, IconNameSchema, PathSchema, DescriptionSchema, DisplayMetadataSchema, ModelIdSchema, ReferenceIdsSchema, OrganizationModelSalesSchema } from './chunk-OWESKPTJ.js';
9
9
  import { useElevasisFeatures } from './chunk-V3HUIZJX.js';
10
- import { getNodeId } from './chunk-QD4X4H5A.js';
10
+ import { getNodeId } from './chunk-HXZQWMKE.js';
11
11
  import { useRef, useEffect, useMemo } from 'react';
12
12
  import { Paper, Stack, Group, Text, Button, Badge, SimpleGrid, Divider, Select, NumberInput, MultiSelect, Switch, Card, Checkbox, UnstyledButton, useMantineTheme, Box, Title, Space, Center, Loader, Pagination, TextInput, SegmentedControl } from '@mantine/core';
13
13
  import { IconShare2, IconTopologyStar3, IconRefresh, IconCircleX, IconCircleCheck, IconCircleDashed, IconSitemap, IconExternalLink, IconSearch } from '@tabler/icons-react';
@@ -514,6 +514,8 @@ var DEFAULT_ORGANIZATION_MODEL_STATUSES = {
514
514
  var KnowledgeLinkSchema = z.object({
515
515
  nodeId: NodeIdStringSchema
516
516
  });
517
+ var KnowledgeSkillBindingSchema = z.string().trim().min(1).max(120);
518
+ var KnowledgeDomainBindingSchema = z.string().trim().min(1).max(80);
517
519
  var OrgKnowledgeKindSchema = z.enum(["playbook", "strategy", "reference"]);
518
520
  var OrgKnowledgeNodeSchema = z.object({
519
521
  id: ModelIdSchema,
@@ -528,6 +530,10 @@ var OrgKnowledgeNodeSchema = z.object({
528
530
  * Each link emits a `governs` edge: knowledge-node -> target node.
529
531
  */
530
532
  links: z.array(KnowledgeLinkSchema).default([]),
533
+ /** Operator skill or command bindings relevant to this node. */
534
+ skills: z.array(KnowledgeSkillBindingSchema).optional(),
535
+ /** Domain key used to derive fast graph->skill registries. */
536
+ domain: KnowledgeDomainBindingSchema.optional(),
531
537
  /** Identifiers of the roles or members who own this knowledge node. */
532
538
  ownerIds: z.array(ModelIdSchema).default([]),
533
539
  /** ISO date string (YYYY-MM-DD or full ISO 8601) of last meaningful update. */
@@ -581,8 +587,12 @@ var LEGACY_FEATURE_ALIASES = /* @__PURE__ */ new Map([
581
587
  function hasFeature(featuresById, featureId) {
582
588
  return featuresById.has(featureId) || featuresById.has(LEGACY_FEATURE_ALIASES.get(featureId) ?? "");
583
589
  }
590
+ function defaultFeaturePathFor(id) {
591
+ return `/${id.replaceAll(".", "/")}`;
592
+ }
584
593
  var OrganizationModelSchema = OrganizationModelSchemaBase.superRefine((model, ctx) => {
585
594
  const featuresById = collectIds(model.features, ctx, ["features"], "Feature");
595
+ const featureIdsByEffectivePath = /* @__PURE__ */ new Map();
586
596
  model.features.forEach((feature, featureIndex) => {
587
597
  const segments = feature.id.split(".");
588
598
  if (segments.length > 1) {
@@ -598,6 +608,20 @@ var OrganizationModelSchema = OrganizationModelSchemaBase.superRefine((model, ct
598
608
  const hasChildren = model.features.some(
599
609
  (candidate) => candidate.id.startsWith(`${feature.id}.`) && candidate.id !== feature.id
600
610
  );
611
+ const contributesRoutePath = feature.path !== void 0 || !hasChildren;
612
+ if (contributesRoutePath) {
613
+ const effectivePath = feature.path ?? defaultFeaturePathFor(feature.id);
614
+ const existingFeatureId = featureIdsByEffectivePath.get(effectivePath);
615
+ if (existingFeatureId !== void 0) {
616
+ addIssue(
617
+ ctx,
618
+ ["features", featureIndex, feature.path === void 0 ? "id" : "path"],
619
+ `Feature "${feature.id}" effective path "${effectivePath}" duplicates feature "${existingFeatureId}"`
620
+ );
621
+ } else {
622
+ featureIdsByEffectivePath.set(effectivePath, feature.id);
623
+ }
624
+ }
601
625
  if (hasChildren && feature.enabled) {
602
626
  const hasEnabledDescendant = model.features.some(
603
627
  (candidate) => candidate.id.startsWith(`${feature.id}.`) && candidate.enabled
@@ -611,6 +635,43 @@ var OrganizationModelSchema = OrganizationModelSchemaBase.superRefine((model, ct
611
635
  }
612
636
  }
613
637
  });
638
+ const surfacesById = collectIds(model.navigation.surfaces, ctx, ["navigation", "surfaces"], "Navigation surface");
639
+ if (model.navigation.defaultSurfaceId !== void 0 && !surfacesById.has(model.navigation.defaultSurfaceId)) {
640
+ addIssue(
641
+ ctx,
642
+ ["navigation", "defaultSurfaceId"],
643
+ `Navigation defaultSurfaceId references unknown surface "${model.navigation.defaultSurfaceId}"`
644
+ );
645
+ }
646
+ model.navigation.groups.forEach((group, groupIndex) => {
647
+ group.surfaceIds.forEach((surfaceId, surfaceIndex) => {
648
+ if (!surfacesById.has(surfaceId)) {
649
+ addIssue(
650
+ ctx,
651
+ ["navigation", "groups", groupIndex, "surfaceIds", surfaceIndex],
652
+ `Navigation group "${group.id}" references unknown surface "${surfaceId}"`
653
+ );
654
+ }
655
+ });
656
+ });
657
+ model.navigation.surfaces.forEach((surface, surfaceIndex) => {
658
+ if (surface.featureId !== void 0 && !hasFeature(featuresById, surface.featureId)) {
659
+ addIssue(
660
+ ctx,
661
+ ["navigation", "surfaces", surfaceIndex, "featureId"],
662
+ `Navigation surface "${surface.id}" references unknown feature "${surface.featureId}"`
663
+ );
664
+ }
665
+ surface.featureIds.forEach((featureId, featureIndex) => {
666
+ if (!hasFeature(featuresById, featureId)) {
667
+ addIssue(
668
+ ctx,
669
+ ["navigation", "surfaces", surfaceIndex, "featureIds", featureIndex],
670
+ `Navigation surface "${surface.id}" references unknown feature "${featureId}"`
671
+ );
672
+ }
673
+ });
674
+ });
614
675
  const segmentsById = new Map(model.customers.segments.map((seg) => [seg.id, seg]));
615
676
  model.offerings.products.forEach((product, productIndex) => {
616
677
  product.targetSegmentIds.forEach((segmentId, segmentIndex) => {
@@ -658,6 +719,7 @@ var OrganizationGraphNodeKindSchema = z.enum([
658
719
  "surface",
659
720
  "entity",
660
721
  "capability",
722
+ "stage",
661
723
  "resource",
662
724
  "knowledge"
663
725
  ]);
@@ -839,6 +901,75 @@ function buildOrganizationGraph(input) {
839
901
  });
840
902
  }
841
903
  }
904
+ const allStages = [
905
+ ...organizationModel.prospecting.companyStages,
906
+ ...organizationModel.prospecting.contactStages
907
+ ].sort((a, b) => a.order - b.order || a.id.localeCompare(b.id));
908
+ for (const stage of allStages) {
909
+ const id = nodeId("stage", stage.id);
910
+ pushUniqueNode(nodes, nodeIds, {
911
+ id,
912
+ kind: "stage",
913
+ label: stage.label,
914
+ sourceId: stage.id,
915
+ ...stage.description ? { description: stage.description } : {},
916
+ ...stage.icon ? { icon: stage.icon } : {}
917
+ });
918
+ pushUniqueEdge(edges, edgeIds, {
919
+ id: edgeId("contains", organizationNode.id, id),
920
+ kind: "contains",
921
+ sourceId: organizationNode.id,
922
+ targetId: id
923
+ });
924
+ }
925
+ for (const cap of [...CAPABILITY_REGISTRY].sort((a, b) => a.id.localeCompare(b.id))) {
926
+ const id = nodeId("capability", cap.id);
927
+ pushUniqueNode(nodes, nodeIds, {
928
+ id,
929
+ kind: "capability",
930
+ label: cap.label,
931
+ sourceId: cap.id,
932
+ description: cap.description
933
+ });
934
+ pushUniqueEdge(edges, edgeIds, {
935
+ id: edgeId("contains", organizationNode.id, id),
936
+ kind: "contains",
937
+ sourceId: organizationNode.id,
938
+ targetId: id
939
+ });
940
+ const resourceNode = ensureResourceNode(nodes, nodeIds, resourceNodesById, cap.resourceId);
941
+ pushUniqueEdge(edges, edgeIds, {
942
+ id: edgeId("maps_to", id, resourceNode.id),
943
+ kind: "maps_to",
944
+ sourceId: id,
945
+ targetId: resourceNode.id
946
+ });
947
+ }
948
+ for (const template of [...organizationModel.prospecting.buildTemplates].sort((a, b) => a.id.localeCompare(b.id))) {
949
+ const stepById = new Map(template.steps.map((s) => [s.id, s]));
950
+ for (const step of [...template.steps].sort((a, b) => a.id.localeCompare(b.id))) {
951
+ const stageNodeId = nodeId("stage", step.stageKey);
952
+ const capNodeId = nodeId("capability", step.capabilityKey);
953
+ pushUniqueEdge(edges, edgeIds, {
954
+ id: edgeId("uses", stageNodeId, capNodeId, step.id),
955
+ kind: "uses",
956
+ sourceId: stageNodeId,
957
+ targetId: capNodeId
958
+ });
959
+ for (const depId of step.dependsOn ?? []) {
960
+ const depStep = stepById.get(depId);
961
+ if (depStep) {
962
+ const depStageNodeId = nodeId("stage", depStep.stageKey);
963
+ pushUniqueEdge(edges, edgeIds, {
964
+ id: edgeId("references", stageNodeId, depStageNodeId, step.id),
965
+ kind: "references",
966
+ sourceId: stageNodeId,
967
+ targetId: depStageNodeId
968
+ });
969
+ }
970
+ }
971
+ }
972
+ }
842
973
  if (commandViewData) {
843
974
  const commandViewResources = collectCommandViewResources(commandViewData).sort(
844
975
  (a, b) => a.resourceId.localeCompare(b.resourceId)
@@ -902,6 +1033,7 @@ var NODE_KIND_LABELS = {
902
1033
  surface: "Surface",
903
1034
  entity: "Entity",
904
1035
  capability: "Capability",
1036
+ stage: "Stage",
905
1037
  resource: "Resource",
906
1038
  knowledge: "Knowledge"
907
1039
  };
@@ -911,6 +1043,7 @@ var NODE_KIND_MEANINGS = {
911
1043
  surface: "A user-facing or operational surface that exposes feature behavior in the model.",
912
1044
  entity: "A shared business concept that can be referenced by surfaces, resources, or capabilities.",
913
1045
  capability: "A reusable capability that can be attached to a feature or surface.",
1046
+ stage: "A lifecycle stage that records progress for an entity through a build pipeline.",
914
1047
  resource: "A concrete command-view or mapped resource that bridges execution topology into the model.",
915
1048
  knowledge: "An operational knowledge node that documents a process, strategy, or runbook in the org model."
916
1049
  };
@@ -1570,6 +1703,7 @@ var ORGANIZATION_GRAPH_NODE_KIND_ORDER = [
1570
1703
  "surface",
1571
1704
  "entity",
1572
1705
  "capability",
1706
+ "stage",
1573
1707
  "resource",
1574
1708
  "knowledge"
1575
1709
  ];
@@ -1579,6 +1713,7 @@ var ORGANIZATION_GRAPH_NODE_KIND_LABELS = {
1579
1713
  surface: "Surface",
1580
1714
  entity: "Entity",
1581
1715
  capability: "Capability",
1716
+ stage: "Stage",
1582
1717
  resource: "Resource",
1583
1718
  knowledge: "Knowledge"
1584
1719
  };
@@ -2474,15 +2609,17 @@ var NODE_KIND_ORDER = {
2474
2609
  feature: 1,
2475
2610
  surface: 2,
2476
2611
  capability: 3,
2477
- entity: 4,
2478
- resource: 5,
2479
- knowledge: 6
2612
+ stage: 4,
2613
+ entity: 5,
2614
+ resource: 6,
2615
+ knowledge: 7
2480
2616
  };
2481
2617
  var NODE_KIND_LABEL = {
2482
2618
  organization: "Organization",
2483
2619
  feature: "Feature",
2484
2620
  surface: "Surface",
2485
2621
  capability: "Capability",
2622
+ stage: "Stage",
2486
2623
  entity: "Entity",
2487
2624
  resource: "Resource",
2488
2625
  knowledge: "Knowledge"
@@ -1,13 +1,13 @@
1
- import { CostTrendChart, ActivityTrendChart } from './chunk-OGXKOMUT.js';
1
+ import { CostTrendChart, ActivityTrendChart } from './chunk-SZWXQHKO.js';
2
2
  import { CyberAreaChart } from './chunk-CW3UNAF2.js';
3
3
  import { AppShellLoader } from './chunk-RYTEQBAO.js';
4
4
  import { FilterBar } from './chunk-PDHTXPSF.js';
5
5
  import { CustomModal } from './chunk-KVJ3LFH2.js';
6
6
  import { formatDuration } from './chunk-E4WQGJNS.js';
7
- import { useResolveError, useResolveAllErrors, usePaginationState, useErrorDetails, useMarkAsRead, useExecutionLogsFilters, useExecutionLogs, useExecutionHealth, useErrorAnalysis, useTimeRangeDates, useErrorDetail, useResolveErrorsByExecution, useResources, useCostTrends, useCostSummary, useCostByModel, useCostBreakdown, useActivityFilters, useActivityTrend, useActivities, useNotifications, useMarkAllAsRead, useTestNotification } from './chunk-YHBPR67D.js';
8
- import { CenteredErrorState, CardHeader, StatsCardSkeleton, TrendIndicator, DetailCardSkeleton, EmptyState, PageTitleCaption, JsonViewer } from './chunk-RIFTUOPE.js';
7
+ import { useResolveError, useResolveAllErrors, usePaginationState, useErrorDetails, useMarkAsRead, useExecutionLogsFilters, useExecutionLogs, useExecutionHealth, useErrorAnalysis, useTimeRangeDates, useErrorDetail, useResolveErrorsByExecution, useResources, useCostTrends, useCostSummary, useCostByModel, useCostBreakdown, useActivityFilters, useActivityTrend, useActivities, useNotifications, useMarkAllAsRead, useTestNotification } from './chunk-HNFQCOD2.js';
8
+ import { CenteredErrorState, CardHeader, StatsCardSkeleton, TrendIndicator, DetailCardSkeleton, EmptyState, PageTitleCaption, JsonViewer } from './chunk-6WXDE5LZ.js';
9
9
  import { useRouterContext } from './chunk-Q7DJKLEN.js';
10
- import { formatBucketTime, PAGE_SIZE_DEFAULT, getTimeRangeDates } from './chunk-QD4X4H5A.js';
10
+ import { formatBucketTime, PAGE_SIZE_DEFAULT, getTimeRangeDates } from './chunk-HXZQWMKE.js';
11
11
  import { useState, useMemo, useCallback } from 'react';
12
12
  import { Table, Text, Badge, Tooltip, Card, Group, Select, SegmentedControl, Button, TextInput, Stack, Paper, Center, Loader, ActionIcon, NumberFormatter, Box, Alert, Switch, Pagination, UnstyledButton, Title, Divider, Code, CopyButton, Accordion } from '@mantine/core';
13
13
  import { IconActivity, IconFilterOff, IconCircleCheck, IconThumbDown, IconThumbUp, IconClock, IconCircleX, IconSearch, IconArrowUpRight, IconAlertTriangle, IconAlertCircle, IconExternalLink, IconChartPie, IconHeartbeat, IconDownload, IconCpu, IconTrendingUp, IconChartBar, IconCash, IconInfoCircle, IconExclamationCircle, IconBug, IconChecks, IconCircle, IconCircleFilled, IconCheck, IconCopy, IconCircleDashed, IconPlus, IconArrowUp, IconArrowDown, IconFileOff, IconRobot, IconKey, IconUser } from '@tabler/icons-react';