{
  "version": 3,
  "sources": ["../../src/modules/sentinel/components/Card/Card.tsx", "../../src/modules/sentinel/components/Card/CardActions.tsx", "../../src/modules/sentinel/components/Card/CardContent.tsx", "../../src/modules/sentinel/components/Card/CardHeader.tsx", "../../src/modules/sentinel/contexts/Context.ts", "../../src/modules/sentinel/contexts/Provider.tsx", "../../src/modules/sentinel/contexts/State.ts", "../../src/modules/sentinel/contexts/use.ts", "../../src/modules/sentinel/hooks/node/useSentinelFromNode.tsx", "../../src/modules/sentinel/hooks/node/useSentinelsFromNode.tsx", "../../src/modules/sentinel/hooks/node/useWeakSentinelFromNode.tsx", "../../src/modules/sentinel/hooks/node/useWeakSentinelsFromNode.tsx"],
  "sourcesContent": ["import { usePromise } from '@ariestools/sdk-react/promise'\nimport type { CardProps } from '@mui/material'\nimport { Card } from '@mui/material'\nimport type { Payload, SentinelInstance } from '@xyo-network/sdk'\nimport React, { useState } from 'react'\n\nimport type { ModuleRenderProps } from '#module'\n\nimport { SentinelCardActions } from './CardActions.tsx'\nimport { SentinelCardContent } from './CardContent.tsx'\nimport { SentinelCardHeader } from './CardHeader.tsx'\n\n/** Props for {@link SentinelCard}. */\nexport type SentinelCardProps = CardProps\n  & ModuleRenderProps<SentinelInstance> & {\n    inPayloads?: Payload[]\n  }\n\n/** Card UI that reports from a sentinel and shows the latest report payload. */\nexport const SentinelCard: React.FC<SentinelCardProps> = ({\n  children, inPayloads, mod, ...props\n}) => {\n  const [retry, setRetry] = useState(-1)\n  const [report] = usePromise(async () => {\n    if (retry >= 0) {\n      return await mod?.report(inPayloads)\n    }\n  }, [mod, retry, inPayloads])\n  return (\n    <Card {...props}>\n      <SentinelCardHeader mod={mod} />\n      <SentinelCardContent mod={mod} report={report} />\n      {children}\n      <SentinelCardActions mod={mod} onReport={() => setRetry(retry + 1)} />\n    </Card>\n  )\n}\n", "import { ButtonEx } from '@ariestools/sdk-react/button'\nimport type { CardActionsProps } from '@mui/material'\nimport type { SentinelInstance } from '@xyo-network/sdk'\nimport React from 'react'\n\nimport type { ModuleRenderProps } from '#module'\nimport { ModuleCardActions } from '#module'\n\n/** Props for {@link SentinelCardActions}. */\nexport type SentinelCardActionsProps = ModuleRenderProps<SentinelInstance>\n  & CardActionsProps & {\n    onReport?: (mod?: SentinelInstance) => void\n  }\n\n/** Card actions that include a Report button for the sentinel. */\nexport const SentinelCardActions: React.FC<SentinelCardActionsProps> = ({\n  onReport, mod, ...props\n}) => {\n  return (\n    <ModuleCardActions mod={mod} {...props}>\n      <ButtonEx onClick={() => onReport?.(mod)} size=\"small\" variant=\"outlined\">\n        Report\n      </ButtonEx>\n    </ModuleCardActions>\n  )\n}\n", "import { FlexGrowRow } from '@ariestools/sdk-react/flexbox'\nimport type { CardContentProps } from '@mui/material'\nimport type { Payload, SentinelInstance } from '@xyo-network/sdk'\nimport React from 'react'\n\nimport type { ModuleRenderProps } from '#module'\nimport { ModuleCardContent } from '#module'\nimport { JsonViewerEx } from '#payload-raw-info'\n\n/** Props for {@link SentinelCardContent}. */\nexport type SentinelCardContentProps = ModuleRenderProps<SentinelInstance>\n  & CardContentProps & {\n    report?: Payload[]\n  }\n\n/** Card content that JSON-views the latest sentinel report payloads. */\nexport const SentinelCardContent: React.FC<SentinelCardContentProps> = ({\n  children, report, mod, ...props\n}) => {\n  return (\n    <ModuleCardContent mod={mod} {...props}>\n      <FlexGrowRow\n        sx={{\n          flexWrap: 'wrap',\n          justifyContent: 'start',\n          gap: 2,\n        }}\n      >\n        {report\n          ? <JsonViewerEx value={report} />\n          : null}\n        {children}\n      </FlexGrowRow>\n    </ModuleCardContent>\n  )\n}\n", "import type { CardHeaderProps } from '@mui/material'\nimport type { SentinelInstance } from '@xyo-network/sdk'\nimport React from 'react'\n\nimport type { ModuleRenderProps } from '#module'\nimport { ModuleCardHeader } from '#module'\n\n/** Card header for a sentinel module, defaulting the title to the module name. */\nexport const SentinelCardHeader: React.FC<ModuleRenderProps<SentinelInstance> & CardHeaderProps> = ({\n  title, mod, ...props\n}) => {\n  return <ModuleCardHeader mod={mod} title={title ?? mod?.config.name ?? 'Sentinel'} {...props} />\n}\n", "import { createContextEx } from '@ariestools/sdk-react/shared'\n\nimport type { SentinelContextState } from './State.ts'\n\n/** React context for sentinel instance, report progress, and history. */\nexport const SentinelContext = createContextEx<SentinelContextState>()\n", "import { useAsyncEffect } from '@ariestools/sdk-react/async-effect'\nimport type {\n  AccountInstance, BoundWitness, ModuleIdentifier, SentinelConfig, WitnessInstance,\n} from '@xyo-network/sdk'\nimport {\n  asWitnessInstance, MemorySentinel, SentinelConfigSchema,\n} from '@xyo-network/sdk'\nimport type { PropsWithChildren } from 'react'\nimport React, { useMemo, useState } from 'react'\n\nimport { useWitnessesFromNode } from '#witness'\n\nimport { SentinelContext } from './Context.ts'\nimport type { SentinelContextState, SentinelReportProgress } from './State.ts'\nimport { SentinelReportStatus } from './State.ts'\n\n/** Props for {@link SentinelProvider}. */\nexport interface SentinelProviderProps {\n  /** Account used by the sentinel for signing */\n  account: AccountInstance\n  /** @deprecated - sentinel no longer uses archive but relies on an archivist */\n  archive?: string\n  archivist?: string\n  ids?: ModuleIdentifier[]\n  name?: string\n  required?: boolean\n  witnesses?: WitnessInstance[]\n}\n\n/** Provides a memory sentinel and tracks report progress for descendants. */\nexport const SentinelProvider: React.FC<PropsWithChildren<SentinelProviderProps>> = ({\n  account, archivist, children, ids, name, required = false,\n}) => {\n  const [sentinel, setSentinel] = useState<MemorySentinel>()\n  const [history, setHistory] = useState<BoundWitness[]>()\n  const [progress, setProgress] = useState<SentinelReportProgress>({})\n  const [status, setStatus] = useState<SentinelReportStatus>(SentinelReportStatus.Idle)\n  const [reportingErrors, setReportingErrors] = useState<Error[]>()\n  const [witnesses] = useWitnessesFromNode(ids)\n\n  useAsyncEffect(\n\n    async (mounted) => {\n      const sentinel = await MemorySentinel.create({\n        account,\n        config: {\n          archivists: archivist ? [archivist] : undefined,\n          name,\n\n          schema: SentinelConfigSchema,\n          synchronous: true,\n\n          tasks: witnesses?.map(mod => ({ mod: mod.address })),\n        } as SentinelConfig,\n      })\n      const offCallbacks: (() => void)[] = [\n        sentinel.on('reportEnd', ({ mod, outPayloads }) => {\n          if (mounted()) {\n            setProgress({\n              archivists: progress.archivists,\n              witnesses: progress.witnesses,\n            })\n            setStatus(outPayloads?.length ? SentinelReportStatus.Succeeded : SentinelReportStatus.Failed)\n            setReportingErrors([new Error(`Witness failed [${mod?.config?.name ?? mod.address}]`)])\n          }\n        }),\n        sentinel.on('reportStart', () => {\n          if (mounted()) {\n            setProgress({ archivists: {}, witnesses: {} })\n            setStatus(SentinelReportStatus.Started)\n          }\n        }),\n      ]\n      if (witnesses)\n        for (const witness of witnesses) {\n          offCallbacks.push(\n            witness.on('observeEnd', ({ mod, outPayloads }) => {\n              const witnesses = progress.witnesses ?? {}\n              witnesses[witness.address] = {\n                status: outPayloads?.length ? SentinelReportStatus.Succeeded : SentinelReportStatus.Failed,\n                witness: asWitnessInstance(mod, () => `Module is not a witness [${mod.id}]`, { required: true }),\n              }\n              if (mounted()) {\n                setProgress({\n                  archivists: progress.archivists,\n                  witnesses,\n                })\n              }\n            }),\n            witness.on('observeStart', ({ mod }) => {\n              const witnesses = progress.witnesses ?? {}\n              witnesses[witness.address] = {\n                status: SentinelReportStatus.Started,\n                witness: asWitnessInstance(mod, () => `Module is not a witness [${mod.id}]`, { required: true }),\n              }\n              if (mounted()) {\n                setProgress({\n                  archivists: progress.archivists,\n                  witnesses,\n                })\n              }\n            }),\n          )\n        }\n      setSentinel(sentinel)\n      setHistory(sentinel?.history)\n      return () => {\n        // unsubscribe from events\n        for (const callback of offCallbacks) {\n          callback()\n        }\n      }\n    },\n\n    [account, archivist, witnesses],\n  )\n\n  const value: SentinelContextState = useMemo(() => ({\n    history, progress, provided: true, reportingErrors, sentinel, status,\n  }), [history, progress, reportingErrors, sentinel, status])\n\n  return !required || sentinel\n\n    ? (\n        <SentinelContext value={value}>\n          {children}\n        </SentinelContext>\n      )\n    : null\n}\n", "import type { EnumValue } from '@ariestools/sdk'\nimport { Enum } from '@ariestools/sdk'\nimport type { ContextExState } from '@ariestools/sdk-react/shared'\nimport type {\n  ArchivistModuleInstance, BoundWitness, SentinelModule, WitnessModule,\n} from '@xyo-network/sdk'\n\n/** Lifecycle stages for a sentinel report run. */\nexport const SentinelReportStatus = Enum({\n  Idle: 'idle',\n  Queued: 'queued',\n  Started: 'started',\n  Succeeded: 'succeeded',\n  Failed: 'failed',\n})\n\n/** Union of {@link SentinelReportStatus} enum values. */\nexport type SentinelReportStatus = EnumValue<typeof SentinelReportStatus>\n\n/** Per-witness progress entry within a sentinel report. */\nexport interface SentinelWitnessReportProgress {\n  status: SentinelReportStatus\n  witness: WitnessModule\n}\n\n/** Per-archivist progress entry within a sentinel report. */\nexport interface SentinelArchivistApiReportProgress {\n  archivist: ArchivistModuleInstance\n  status: SentinelReportStatus\n}\n\n/** Aggregate report progress for witnesses and archivists. */\nexport interface SentinelReportProgress {\n  archivists?: Record<string, SentinelArchivistApiReportProgress>\n  witnesses?: Record<string, SentinelWitnessReportProgress>\n}\n\n/** React context state for sentinel report history, progress, and status. */\nexport type SentinelContextState = ContextExState<{\n  history?: BoundWitness[]\n  progress?: SentinelReportProgress\n  reportingErrors?: Error[]\n  sentinel?: SentinelModule\n  status?: SentinelReportStatus\n}>\n", "import { useContextEx } from '@ariestools/sdk-react/shared'\n\nimport { SentinelContext } from './Context.ts'\nimport type { SentinelContextState } from './State.ts'\n\n/** Hook that returns sentinel, history, progress, errors, and status from context. */\nexport const useSentinelContext = (): Pick<SentinelContextState, 'history' | 'progress' | 'reportingErrors' | 'sentinel' | 'status'> => {\n  const {\n    sentinel, history, progress, reportingErrors, status,\n  } = useContextEx(SentinelContext, 'Sentinel')\n  return {\n    history, progress, reportingErrors, sentinel, status,\n  }\n}\n", "import type { SentinelInstance } from '@xyo-network/sdk'\nimport { asSentinelInstance } from '@xyo-network/sdk'\n\nimport type { ModuleFromNodeConfig } from '#node'\nimport { useModuleFromNode } from '#node'\n\n/** Resolves a sentinel instance from the current node by name, address, or instance. */\nexport const useSentinelFromNode = (\n  nameOrAddressOrInstance?: string | SentinelInstance,\n  config?: ModuleFromNodeConfig,\n): [SentinelInstance | undefined, Error | undefined] => {\n  const [mod, error] = useModuleFromNode(nameOrAddressOrInstance, config)\n  const instance = asSentinelInstance(mod)\n  if (mod && !instance) {\n    const error = new Error(`Resolved module is not a SentinelInstance [${mod.config?.schema}:${mod.config?.name}:${mod.address}]`)\n    console.error(error.message)\n    return [undefined, error]\n  }\n  return [instance, error]\n}\n", "import type { ModuleIdentifier, SentinelInstance } from '@xyo-network/sdk'\nimport { isSentinelInstance } from '@xyo-network/sdk'\n\nimport type { ModuleFromNodeConfig } from '#node'\nimport { useModulesFromNode } from '#node'\n\n/** Resolves all sentinel instances matching the given ids from the current node. */\nexport const useSentinelsFromNode = (\n  ids?: ModuleIdentifier[],\n  config?: ModuleFromNodeConfig,\n): [SentinelInstance[] | null | undefined, Error | undefined] => {\n  const [modules, error] = useModulesFromNode(ids, config)\n  if (error) {\n    return [null, error]\n  }\n  return modules\n    ? [\n\n        modules.reduce<SentinelInstance[]>((prev, mod) => {\n          if (isSentinelInstance(mod)) {\n            prev.push(mod)\n          }\n          return prev\n        }, []),\n        undefined,\n      ]\n    : [modules, error]\n}\n", "import type { SentinelInstance } from '@xyo-network/sdk'\nimport { isSentinelInstance } from '@xyo-network/sdk'\n\nimport type { WeakModuleFromNodeConfig } from '#node'\nimport { useWeakModuleFromNode } from '#node'\n\n/** Resolves a weak reference to a sentinel instance from the current node. */\nexport const useWeakSentinelFromNode = (\n  nameOrAddressOrInstance?: string | SentinelInstance,\n  config?: WeakModuleFromNodeConfig,\n): [WeakRef<SentinelInstance> | undefined, Error | undefined] => {\n  return useWeakModuleFromNode<SentinelInstance>(nameOrAddressOrInstance, { identity: isSentinelInstance, ...config })\n}\n", "import { exists } from '@ariestools/sdk'\nimport type { ModuleIdentifier, SentinelInstance } from '@xyo-network/sdk'\nimport { asSentinelInstance } from '@xyo-network/sdk'\n\nimport type { ModuleFromNodeConfig } from '#node'\nimport { useWeakModulesFromNode } from '#node'\n\n/** Resolves weak references to sentinel instances matching the given ids. */\nexport const useWeakSentinelsFromNode = (\n  ids?: ModuleIdentifier[],\n  config?: ModuleFromNodeConfig,\n): [WeakRef<SentinelInstance>[] | null | undefined, Error | undefined] => {\n  const [modules, error] = useWeakModulesFromNode(ids, config)\n  if (error) {\n    return [null, error]\n  }\n  return [\n    modules\n      ?.map((mod) => {\n        const instance = asSentinelInstance(mod?.deref())\n        if (instance) {\n          return new WeakRef(instance)\n        }\n      })\n      .filter(exists) ?? [],\n    undefined,\n  ]\n}\n"],
  "mappings": "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",
  "names": ["jsx", "jsx", "jsx", "jsxs", "useState", "jsx", "useState", "sentinel", "witnesses", "error", "isSentinelInstance", "asSentinelInstance"]
}
