@mica/sdk (SDK contract v1)
    Preparing search index...

    Function useAppRegistry

    • OS Service Hook for the app registry — read-only: the installed list, the bundled add-ons the Store can offer, and the update queue. Installing, removing, or updating an app is useAppRegistryWrite (MICA-127) — see its own doc for why every mutating member throws inside a sandboxed add-on regardless of what its manifest declares.

      An app the server owner has disabled (mica_disabled_apps, MICA-234) is in no answer this hook gives: not the installed list, not bundledAddOns, not a lookup by id. The list updates live when the owner's configuration arrives, so from an app — core or add-on — a disabled app is one that does not exist. ownerDisabledApps.test.ts holds both sides of the wire to that.

      Returns {
          bundledAddOns: AppManifest[];
          getFirstBootTime: () => string;
          registryStore: {
              getAddOnSource: (appId: string) => Promise<string | undefined>;
              getComponent: (appId: string) => AppComponent | undefined;
              getManifest: (appId: string) => AppManifest | undefined;
              installFromCatalog: (
                  entry: CatalogEntry,
              ) => Promise<{ manifest: AppManifest }>;
              isInstalled: (appId: string) => boolean;
              isKnownApp: (appId: string) => boolean;
              loadComponent: (appId: string) => Promise<AppComponent | undefined>;
              registerAddOn: (manifest: AppManifest, source?: string) => void;
              registerApp: (manifest: AppManifest, component: AppComponent) => void;
              rehydrateSavedRemoteApps: () => Promise<void>;
              subscribe: (
                  this: void,
                  run: Subscriber<AppManifest[]>,
                  invalidate?: () => void,
              ) => Unsubscriber;
              unregisterApp: (appId: string) => void;
          };
          updateCount: Readable<number>;
          updatesStore: Readable<AppUpdate[]>;
      }

      • bundledAddOns: AppManifest[]

        Add-ons this repo ships uninstalled — what the Store has to offer beyond remotes.

      • getFirstBootTime: () => string
      • registryStore: {
            getAddOnSource: (appId: string) => Promise<string | undefined>;
            getComponent: (appId: string) => AppComponent | undefined;
            getManifest: (appId: string) => AppManifest | undefined;
            installFromCatalog: (
                entry: CatalogEntry,
            ) => Promise<{ manifest: AppManifest }>;
            isInstalled: (appId: string) => boolean;
            isKnownApp: (appId: string) => boolean;
            loadComponent: (appId: string) => Promise<AppComponent | undefined>;
            registerAddOn: (manifest: AppManifest, source?: string) => void;
            registerApp: (manifest: AppManifest, component: AppComponent) => void;
            rehydrateSavedRemoteApps: () => Promise<void>;
            subscribe: (
                this: void,
                run: Subscriber<AppManifest[]>,
                invalidate?: () => void,
            ) => Unsubscriber;
            unregisterApp: (appId: string) => void;
        }
      • updateCount: Readable<number>

        The same list as a count, for the Store's launcher badge.

      • updatesStore: Readable<AppUpdate[]>

        Installed catalog add-ons the catalog has moved past (MICA-74).