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