@camstack/addon-decoder-ffmpeg 0.1.12 → 0.1.13

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/index.mjs CHANGED
@@ -8498,10 +8498,30 @@ const StatusSchema = object({
8498
8498
  }
8499
8499
  });
8500
8500
  const LinkStateSchema = _enum(["unlinked", "linked", "error"]);
8501
+ const ExportSetupFieldSchema = object({
8502
+ label: string(),
8503
+ value: string(),
8504
+ /** Mask the value by default + render a reveal toggle (client id, secrets). */
8505
+ secret: boolean().optional()
8506
+ });
8507
+ const ExportSetupSchema = object({
8508
+ /** A string to render as a scannable QR — HAP `X-HM://…` URI, a pairing URL, etc. Omitted when there's nothing to scan. */
8509
+ qr: string().optional(),
8510
+ /** Label/value rows shown with a copy button (HAP setup code, OAuth URLs, client id, linked-account count, …). */
8511
+ fields: array(ExportSetupFieldSchema).readonly().optional(),
8512
+ /** Free-form operator instructions rendered above the fields. */
8513
+ note: string().optional()
8514
+ });
8501
8515
  const DeviceExportStatusSchema = object({
8502
8516
  linkState: LinkStateSchema,
8503
8517
  exposedDeviceCount: number(),
8504
- error: string().optional()
8518
+ error: string().optional(),
8519
+ /**
8520
+ * Optional pairing/account info the panel renders in a generic
8521
+ * "Setup" section. Addon-agnostic — the addon id identifies the
8522
+ * export target, never an `ecosystem` key here.
8523
+ */
8524
+ setup: ExportSetupSchema.optional()
8505
8525
  });
8506
8526
  const DeviceKindSchema = string();
8507
8527
  const ExposedDeviceSchema = object({
@@ -11954,7 +11974,25 @@ const MeshStatusSchema = object({
11954
11974
  * doesn't rotate keys for the bound host. Operator-facing surface
11955
11975
  * for "your access expires on …" banners.
11956
11976
  */
11957
- keyExpiry: number().nullable()
11977
+ keyExpiry: number().nullable(),
11978
+ // ── Onboard-daemon handoff (Tailscale, generic slot) ────────────
11979
+ /**
11980
+ * When the provider runs its OWN mesh daemon (e.g. the Tailscale
11981
+ * client addon in `onboard` mode spawns a private `tailscaled`),
11982
+ * this carries the local control-socket path. Companion addons that
11983
+ * must drive the SAME daemon — chiefly `tailscale-ingress` for
11984
+ * Serve/Funnel — read it to point their CLI at the right socket
11985
+ * instead of the system default. Empty when the provider uses the
11986
+ * host's system daemon (or doesn't have the concept).
11987
+ */
11988
+ daemonSocket: string().optional(),
11989
+ /**
11990
+ * Path to the mesh CLI binary the provider downloaded for onboard
11991
+ * mode. Companion addons reuse it so they don't need a system
11992
+ * install when the operator chose a fully self-contained mesh.
11993
+ * Empty in host mode.
11994
+ */
11995
+ daemonCliPath: string().optional()
11958
11996
  });
11959
11997
  ({
11960
11998
  methods: {
@@ -12840,6 +12878,21 @@ const AddonAutoUpdateSchema = ChannelWithInheritSchema;
12840
12878
  const RestartAddonResultSchema = unknown();
12841
12879
  const InstallPackageResultSchema = unknown();
12842
12880
  const ReloadPackagesResultSchema = unknown();
12881
+ const UpdateFrameworkPackageResultSchema = object({
12882
+ packageName: string(),
12883
+ fromVersion: string(),
12884
+ toVersion: string(),
12885
+ /** Ms-epoch the server scheduled its self-restart. */
12886
+ restartingAt: number()
12887
+ });
12888
+ const FrameworkPackageStatusSchema = object({
12889
+ packageName: string(),
12890
+ currentVersion: string(),
12891
+ latestVersion: string().nullable(),
12892
+ hasUpdate: boolean(),
12893
+ /** Optional manifest description for the row tooltip. */
12894
+ description: string().optional()
12895
+ });
12843
12896
  const LogStreamEntrySchema = object({
12844
12897
  timestamp: string(),
12845
12898
  level: string(),
@@ -12899,13 +12952,29 @@ const CustomActionInputSchema = object({
12899
12952
  object({ query: string().optional() }),
12900
12953
  array(SearchResultSchema)
12901
12954
  ),
12955
+ /**
12956
+ * Available package updates for a node. `nodeId` omitted (or
12957
+ * `'hub'`) checks the hub's own installed packages; an agent
12958
+ * `nodeId` checks that agent's installed roster against npm
12959
+ * (the hub does the npm lookups + diff — agents stay npm-free).
12960
+ */
12902
12961
  listUpdates: method(
12903
- _void(),
12962
+ object({ nodeId: string().optional() }),
12904
12963
  array(PackageUpdateSchema).readonly(),
12905
12964
  { auth: "admin" }
12906
12965
  ),
12966
+ /**
12967
+ * Update one package on a node. `nodeId` omitted (or `'hub'`)
12968
+ * installs on the hub via npm; an agent `nodeId` makes the hub
12969
+ * pack the resolved version and push the tarball to that agent
12970
+ * (`$agent.deploy` + `$agent.reload`) — agents need no npm runtime.
12971
+ */
12907
12972
  updatePackage: method(
12908
- object({ name: string().min(1), version: string().optional() }),
12973
+ object({
12974
+ name: string().min(1),
12975
+ version: string().optional(),
12976
+ nodeId: string().optional()
12977
+ }),
12909
12978
  unknown(),
12910
12979
  { kind: "mutation", auth: "admin" }
12911
12980
  ),
@@ -12926,12 +12995,105 @@ const CustomActionInputSchema = object({
12926
12995
  object({ rolledBackTo: string().nullable() }),
12927
12996
  { kind: "mutation", auth: "admin" }
12928
12997
  ),
12929
- forceRefresh: method(_void(), unknown(), { kind: "mutation", auth: "admin" }),
12998
+ /** Re-check updates for a node, bypassing any cache. `nodeId`
12999
+ * omitted (or `'hub'`) refreshes the hub; an agent `nodeId`
13000
+ * re-checks that agent's roster. */
13001
+ forceRefresh: method(
13002
+ object({ nodeId: string().optional() }),
13003
+ unknown(),
13004
+ { kind: "mutation", auth: "admin" }
13005
+ ),
12930
13006
  restartServer: method(
12931
13007
  object({ confirm: literal(true) }),
12932
13008
  unknown(),
12933
13009
  { kind: "mutation", auth: "admin" }
12934
13010
  ),
13011
+ /**
13012
+ * Most-recent restart marker (kind / packageName / from→to versions
13013
+ * / requestedBy / requestedAt). Returns `null` when this process
13014
+ * didn't boot from a tracked restart, or when the
13015
+ * post-boot retention window (5 min) has elapsed.
13016
+ *
13017
+ * Drives the admin-UI reconnect overlay's success toast — the
13018
+ * `system.restart-completed` event itself is fired before the
13019
+ * client has time to re-subscribe, so the client queries this on
13020
+ * first reconnect instead.
13021
+ */
13022
+ getLastRestart: method(
13023
+ _void(),
13024
+ object({
13025
+ kind: _enum(["framework-update", "manual", "system"]),
13026
+ packageName: string().optional(),
13027
+ fromVersion: string().optional(),
13028
+ toVersion: string().optional(),
13029
+ requestedBy: string().optional(),
13030
+ requestedAt: number()
13031
+ }).nullable(),
13032
+ { auth: "admin" }
13033
+ ),
13034
+ /**
13035
+ * Snapshot of the framework packages installed under the hub's
13036
+ * `<appRoot>/node_modules/`. Each row carries the currently
13037
+ * installed version and (best-effort) the latest version
13038
+ * available on npm. Drives the admin-UI "System packages" panel.
13039
+ *
13040
+ * Spec: docs/superpowers/specs/2026-05-14-framework-live-update-design.md
13041
+ */
13042
+ listFrameworkPackages: method(
13043
+ _void(),
13044
+ array(FrameworkPackageStatusSchema).readonly(),
13045
+ { auth: "admin" }
13046
+ ),
13047
+ /**
13048
+ * Cluster-wide capability-provider discovery. Returns the list of
13049
+ * `{ addonId, mode, isActive }` tuples for whatever addon(s)
13050
+ * currently provide the requested capability across the cluster.
13051
+ *
13052
+ * Why this lives on `addons` (and not on a `capabilities` cap of
13053
+ * its own): the hub's main-process `CapabilityRegistry` already
13054
+ * aggregates registrations from every forked group-runner and
13055
+ * remote agent via Moleculer event propagation — there's no
13056
+ * cross-process registry mirror to build, just an introspection
13057
+ * shim.
13058
+ *
13059
+ * Use this from addon code when you need to know whether another
13060
+ * addon has registered a specific cap (e.g. `tailscale-ingress`
13061
+ * checking `tailscale-client` is up before calling `tailscale
13062
+ * serve`). Don't reach for `ctx.capabilities.getCollectionEntries`
13063
+ * — that reads the LOCAL registry of the calling addon's group
13064
+ * runner and never sees providers in other processes. See
13065
+ * `CLAUDE.md` → Critical rules → ctx.api vs ctx.capabilities.
13066
+ */
13067
+ listCapabilityProviders: method(
13068
+ object({ capName: string().min(1) }),
13069
+ array(object({
13070
+ addonId: string(),
13071
+ mode: _enum(["singleton", "collection"]),
13072
+ isActive: boolean()
13073
+ })).readonly()
13074
+ ),
13075
+ /**
13076
+ * Live-update one of the framework packages marked
13077
+ * `camstack.system: true` (`@camstack/types|kernel|core|sdk|ui-library`).
13078
+ * Runs `npm install --prefix <appRoot> <name>@<version> --no-save`,
13079
+ * writes a `.restart-pending` marker, emits `system.restarting`
13080
+ * and schedules a graceful process exit. The supervisor (Docker /
13081
+ * Electron / systemd) brings the hub back up; on first boot after
13082
+ * the restart the marker fires `system.restart-completed`.
13083
+ *
13084
+ * `version` defaults to `'latest'`. The allow-list of valid
13085
+ * `packageName` values is enforced server-side.
13086
+ *
13087
+ * Spec: docs/superpowers/specs/2026-05-14-framework-live-update-design.md
13088
+ */
13089
+ updateFrameworkPackage: method(
13090
+ object({
13091
+ packageName: string().min(1),
13092
+ version: string().optional()
13093
+ }),
13094
+ UpdateFrameworkPackageResultSchema,
13095
+ { kind: "mutation", auth: "admin" }
13096
+ ),
12935
13097
  getVersions: method(
12936
13098
  object({ name: string() }),
12937
13099
  array(PackageVersionInfoSchema).readonly()
@@ -13002,6 +13164,7 @@ var EventCategory = /* @__PURE__ */ ((EventCategory2) => {
13002
13164
  EventCategory2["SystemBoot"] = "system.boot";
13003
13165
  EventCategory2["SystemAddonsReady"] = "system.addons-ready";
13004
13166
  EventCategory2["SystemRestarting"] = "system.restarting";
13167
+ EventCategory2["SystemRestartCompleted"] = "system.restart-completed";
13005
13168
  EventCategory2["SystemReadyState"] = "system.ready-state";
13006
13169
  EventCategory2["AddonStarted"] = "addon.started";
13007
13170
  EventCategory2["AddonStopped"] = "addon.stopped";