{
    include: [ "sdk/lib/diagnostics/syslog/client.shard.cml" ],
    program: {
        binary: "bin/appmgr",

        // Run appmgr in a job with ZX_POL_AMBIENT_MARK_VMO_EXEC job policy, so that it can in turn
        // implement the v1 'deprecated-ambient-replace-as-executable' feature.
        job_policy_ambient_mark_vmo_exec: "true",
        lifecycle: { stop_event: "notify" },
    },
    capabilities: [
        {
            protocol: "fuchsia.appmgr.Startup",
            path: "/appmgr_svc/fuchsia.appmgr.Startup",
        },
        {
            protocol: [
                "fuchsia.pkg.FontResolver",
                "fuchsia.test.manager.Harness",
            ],
        },
        {
            directory: "hub",
            rights: [ "rw*" ],
            path: "/hub",
        },
        {
            directory: "diagnostics",
            rights: [ "connect" ],
            path: "/diagnostics",
        },

        // These protocols exposed by appmgr are services from the v1 component
        // runtime being made available to the v2 component runtime. These all cause
        // dependency cycles between the two runtimes. Cycles require trickier
        // runtime logic to ensure correctness, are a general design smell, and may
        // be disallowed in the future.
        {
            protocol: [
                "fuchsia.cobalt.LoggerFactory",
                "fuchsia.exception.Handler",
                "fuchsia.feedback.CrashReporter",
                "fuchsia.feedback.CrashReportingProductRegister",
                "fuchsia.metrics.MetricEventLoggerFactory",
                "fuchsia.net.NameLookup",
                "fuchsia.net.stack.Log",
                "fuchsia.net.stack.Stack",
                "fuchsia.netstack.Netstack",
                "fuchsia.overnet.Overnet",
                "fuchsia.overnet.ServicePublisher",
                "fuchsia.pkg.PackageResolver",
                "fuchsia.pkg.RepositoryManager",
                "fuchsia.pkg.rewrite.Engine",
                "fuchsia.posix.socket.Provider",
                "fuchsia.power.manager.DriverManagerRegistration",
                "fuchsia.process.Resolver",
                "fuchsia.sys.Environment",
                "fuchsia.sys.Launcher",
                "fuchsia.sys.Loader",
                "fuchsia.tracing.controller.Controller",
                "fuchsia.tracing.provider.Registry",
            ],
        },

        // These protocols exposed by appmgr are implemented by appmgr.
        {
            protocol: "fuchsia.sys.internal.LogConnector",
            from: "self",
            path: "/appmgr_svc/fuchsia.sys.internal.LogConnector",
        },
        {
            protocol: "fuchsia.sys.internal.ComponentEventProvider",
            from: "self",
            path: "/appmgr_svc/fuchsia.sys.internal.ComponentEventProvider",
        },
    ],
    use: [
        { runner: "elf" },
        {
            directory: "blob",
            rights: [ "rw*" ],
            path: "/blob",
        },
        {
            directory: "boot",
            rights: [ "rx*" ],
            path: "/boot",
        },
        {
            directory: "dev",
            rights: [ "rw*" ],
            path: "/dev",
        },
        {
            directory: "durable",
            rights: [ "rw*" ],
            path: "/durable",
        },
        {
            directory: "factory",
            rights: [ "r*" ],
            path: "/factory",
        },
        {
            directory: "minfs",
            rights: [ "rw*" ],
            path: "/data",
        },
        {
            directory: "pkgfs",
            rights: [ "rx*" ],
            path: "/pkgfs",
        },
        {
            directory: "system",
            rights: [ "rx*" ],
            path: "/system",
        },
        {
            directory: "tmp",
            rights: [ "rw*" ],
            path: "/tmp",
        },
        {
            directory: "hub",
            rights: [ "r*" ],
            path: "/hub-v2",
        },

        // Services used by appmgr with the svc_for_sys prefix are passed through to
        // the sys realm

        // From bootsvc
        {
            protocol: "fuchsia.boot.Arguments",
            path: "/svc_for_sys/fuchsia.boot.Arguments",
        },
        {
            protocol: "fuchsia.boot.FactoryItems",
            path: "/svc_for_sys/fuchsia.boot.FactoryItems",
        },
        {
            protocol: "fuchsia.boot.Items",
            path: "/svc_for_sys/fuchsia.boot.Items",
        },
        {
            protocol: "fuchsia.boot.ReadOnlyLog",
            path: "/svc_for_sys/fuchsia.boot.ReadOnlyLog",
        },
        {
            protocol: "fuchsia.kernel.RootJob",
            path: "/svc_for_sys/fuchsia.kernel.RootJob",
        },
        {
            protocol: "fuchsia.kernel.RootJobForInspect",
            path: "/svc_for_sys/fuchsia.kernel.RootJobForInspect",
        },
        {
            protocol: "fuchsia.boot.RootResource",
            path: "/svc_for_sys/fuchsia.boot.RootResource",
        },
        {
            protocol: "fuchsia.boot.WriteOnlyLog",
            path: "/svc_for_sys/fuchsia.boot.WriteOnlyLog",
        },
        {
            protocol: "fuchsia.kernel.DebugResource",
            path: "/svc_for_sys/fuchsia.kernel.DebugResource",
        },
        {
            protocol: "fuchsia.kernel.HypervisorResource",
            path: "/svc_for_sys/fuchsia.kernel.HypervisorResource",
        },
        {
            protocol: "fuchsia.kernel.InfoResource",
            path: "/svc_for_sys/fuchsia.kernel.InfoResource",
        },
        {
            protocol: "fuchsia.kernel.IoportResource",
            path: "/svc_for_sys/fuchsia.kernel.IoportResource",
        },
        {
            protocol: "fuchsia.kernel.IrqResource",
            path: "/svc_for_sys/fuchsia.kernel.IrqResource",
        },
        {
            protocol: "fuchsia.kernel.MmioResource",
            path: "/svc_for_sys/fuchsia.kernel.MmioResource",
        },
        {
            protocol: "fuchsia.kernel.SmcResource",
            path: "/svc_for_sys/fuchsia.kernel.SmcResource",
        },
        {
            protocol: "fuchsia.kernel.Stats",
            path: "/svc_for_sys/fuchsia.kernel.Stats",
        },
        {
            protocol: "fuchsia.kernel.VmexResource",
            path: "/svc_for_sys/fuchsia.kernel.VmexResource",
        },
        {
            protocol: "fuchsia.tracing.kernel.Controller",
            path: "/svc_for_sys/fuchsia.tracing.kernel.Controller",
        },
        {
            protocol: "fuchsia.tracing.kernel.Reader",
            path: "/svc_for_sys/fuchsia.tracing.kernel.Reader",
        },

        // From ptysvc
        {
            protocol: "fuchsia.hardware.pty.Device",
            path: "/svc_for_sys/fuchsia.hardware.pty.Device",
        },

        // From devcoordinator
        {
            protocol: "fuchsia.device.NameProvider",
            path: "/svc_for_sys/fuchsia.device.NameProvider",
        },
        {
            protocol: "fuchsia.device.manager.Administrator",
            path: "/svc_for_sys/fuchsia.device.manager.Administrator",
        },
        {
            protocol: "fuchsia.device.manager.DebugDumper",
            path: "/svc_for_sys/fuchsia.device.manager.DebugDumper",
        },
        {
            protocol: "fuchsia.device.manager.BindDebugger",
            path: "/svc_for_sys/fuchsia.device.manager.BindDebugger",
        },
        {
            protocol: "fuchsia.driver.registrar.DriverRegistrar",
            path: "/svc_for_sys/fuchsia.driver.registrar.DriverRegistrar",
        },
        {
            protocol: "fuchsia.hardware.pci.Bus",
            path: "/svc_for_sys/fuchsia.hardware.pci.Bus",
        },
        {
            protocol: "fuchsia.hardware.power.statecontrol.Admin",
            path: "/svc_for_sys/fuchsia.hardware.power.statecontrol.Admin",
        },
        {
            protocol: "fuchsia.kernel.Counter",
            path: "/svc_for_sys/fuchsia.kernel.Counter",
        },
        {
            protocol: "fuchsia.kernel.DebugBroker",
            path: "/svc_for_sys/fuchsia.kernel.DebugBroker",
        },
        {
            protocol: "fuchsia.paver.Paver",
            path: "/svc_for_sys/fuchsia.paver.Paver",
        },
        {
            protocol: "fuchsia.scheduler.ProfileProvider",
            path: "/svc_for_sys/fuchsia.scheduler.ProfileProvider",
        },
        {
            protocol: "fuchsia.virtualconsole.SessionManager",
            path: "/svc_for_sys/fuchsia.virtualconsole.SessionManager",
        },

        // From component_manager
        {
            protocol: "fuchsia.process.Launcher",
            path: "/svc_for_sys/fuchsia.process.Launcher",
        },
        {
            protocol: "fuchsia.time.Maintenance",
            path: "/svc_for_sys/fuchsia.time.Maintenance",
        },

        // From v2 components
        {
            protocol: "fuchsia.fonts.Provider",
            path: "/svc_for_sys/fuchsia.fonts.Provider",
        },
        {
            protocol: "fuchsia.update.CommitStatusProvider",
            path: "/svc_for_sys/fuchsia.update.CommitStatusProvider",
        },
        {
            protocol: "fuchsia.developer.remotecontrol.RemoteControl",
            path: "/svc_for_sys/fuchsia.developer.remotecontrol.RemoteControl",
        },
        {
            protocol: "fuchsia.hardware.serial.NewDeviceProxy",
            path: "/svc_for_sys/fuchsia.hardware.serial.NewDeviceProxy",
        },
        {
            protocol: "fuchsia.thermal.test.TemperatureLogger",
            path: "/svc_for_sys/fuchsia.thermal.test.TemperatureLogger",
        },
        {
            protocol: "fuchsia.ui.activity.Provider",
            path: "/svc_for_sys/fuchsia.ui.activity.Provider",
        },
        {
            protocol: "fuchsia.ui.activity.Tracker",
            path: "/svc_for_sys/fuchsia.ui.activity.Tracker",
        },
        {
            protocol: "fuchsia.ui.activity.control.Control",
            path: "/svc_for_sys/fuchsia.ui.activity.control.Control",
        },
        {
            protocol: "fuchsia.pkg.PackageCache",
            path: "/svc_for_sys/fuchsia.pkg.PackageCache",
        },
        {
            protocol: "fuchsia.space.Manager",
            path: "/svc_for_sys/fuchsia.space.Manager",
        },

        // From archivist
        {
            protocol: "fuchsia.diagnostics.ArchiveAccessor",
            path: "/svc_for_sys/fuchsia.diagnostics.ArchiveAccessor",
        },
        {
            protocol: "fuchsia.diagnostics.FeedbackArchiveAccessor",
            path: "/svc_for_sys/fuchsia.diagnostics.FeedbackArchiveAccessor",
        },
        {
            protocol: "fuchsia.diagnostics.LegacyMetricsArchiveAccessor",
            path: "/svc_for_sys/fuchsia.diagnostics.LegacyMetricsArchiveAccessor",
        },
        {
            protocol: "fuchsia.logger.Log",
            path: "/svc_for_sys/fuchsia.logger.Log",
        },

        // From sysinfo
        {
            protocol: "fuchsia.sysinfo.SysInfo",
            path: "/svc_for_sys/fuchsia.sysinfo.SysInfo",
        },

        // From test_manager
        {
            protocol: "fuchsia.test.manager.Harness",
            path: "/svc_for_sys/fuchsia.test.manager.Harness",
        },

        // From power_manager
        {
            protocol: "fuchsia.thermal.Controller",
            path: "/svc_for_sys/fuchsia.thermal.Controller",
        },
        {
            protocol: "fuchsia.hardware.power.statecontrol.RebootMethodsWatcherRegister",
            path: "/svc_for_sys/fuchsia.hardware.power.statecontrol.RebootMethodsWatcherRegister",
        },

        // These services are used by appmgr directly
        {
            protocol: [
                "fuchsia.boot.WriteOnlyLog",

                // For triggering reboot when sysmgr exits
                "fuchsia.hardware.power.statecontrol.Admin",
                "fuchsia.process.Launcher",
            ],
        },
    ],
    expose: [
        {
            directory: "hub",
            from: "self",
        },

        // Diagnostics directory used to expose data to Archivist.
        {
            directory: "diagnostics",
            from: "self",
            to: "framework",
        },
        {
            protocol: [
                "fuchsia.cobalt.LoggerFactory",
                "fuchsia.exception.Handler",
                "fuchsia.feedback.CrashReporter",
                "fuchsia.feedback.CrashReportingProductRegister",
                "fuchsia.metrics.MetricEventLoggerFactory",
                "fuchsia.net.NameLookup",
                "fuchsia.net.stack.Log",
                "fuchsia.net.stack.Stack",
                "fuchsia.netstack.Netstack",
                "fuchsia.overnet.Overnet",
                "fuchsia.overnet.ServicePublisher",
                "fuchsia.pkg.FontResolver",
                "fuchsia.pkg.PackageResolver",
                "fuchsia.pkg.RepositoryManager",
                "fuchsia.pkg.rewrite.Engine",
                "fuchsia.posix.socket.Provider",
                "fuchsia.power.manager.DriverManagerRegistration",
                "fuchsia.process.Resolver",
                "fuchsia.sys.Environment",
                "fuchsia.sys.Launcher",
                "fuchsia.sys.Loader",
                "fuchsia.test.manager.Harness",
                "fuchsia.tracing.controller.Controller",
                "fuchsia.tracing.provider.Registry",
            ],
            from: "self",
        },
        {
            protocol: [
                "fuchsia.appmgr.Startup",
                "fuchsia.sys.internal.ComponentEventProvider",
                "fuchsia.sys.internal.LogConnector",
            ],
            from: "self",
        },
    ],
}
