@camstack/core 0.1.36 → 0.1.38

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.
Files changed (41) hide show
  1. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.d.ts +7 -1
  2. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.d.ts.map +1 -1
  3. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js +46 -56
  4. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.js.map +1 -1
  5. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs +47 -57
  6. package/dist/builtins/remote-access-orchestrator/remote-access-orchestrator.addon.mjs.map +1 -1
  7. package/dist/index.js +89 -143
  8. package/dist/index.js.map +1 -1
  9. package/dist/index.mjs +89 -143
  10. package/dist/index.mjs.map +1 -1
  11. package/package.json +2 -37
  12. package/dist/builtins/auth-orchestrator/auth-orchestrator.addon.d.ts +0 -8
  13. package/dist/builtins/auth-orchestrator/auth-orchestrator.addon.d.ts.map +0 -1
  14. package/dist/builtins/auth-orchestrator/auth-orchestrator.addon.js +0 -75
  15. package/dist/builtins/auth-orchestrator/auth-orchestrator.addon.js.map +0 -1
  16. package/dist/builtins/auth-orchestrator/auth-orchestrator.addon.mjs +0 -69
  17. package/dist/builtins/auth-orchestrator/auth-orchestrator.addon.mjs.map +0 -1
  18. package/dist/builtins/auth-orchestrator/index.d.ts +0 -2
  19. package/dist/builtins/auth-orchestrator/index.d.ts.map +0 -1
  20. package/dist/builtins/auth-orchestrator/index.js +0 -7
  21. package/dist/builtins/auth-orchestrator/index.mjs +0 -2
  22. package/dist/builtins/mesh-orchestrator/index.d.ts +0 -2
  23. package/dist/builtins/mesh-orchestrator/index.d.ts.map +0 -1
  24. package/dist/builtins/mesh-orchestrator/index.js +0 -7
  25. package/dist/builtins/mesh-orchestrator/index.mjs +0 -2
  26. package/dist/builtins/mesh-orchestrator/mesh-orchestrator.addon.d.ts +0 -9
  27. package/dist/builtins/mesh-orchestrator/mesh-orchestrator.addon.d.ts.map +0 -1
  28. package/dist/builtins/mesh-orchestrator/mesh-orchestrator.addon.js +0 -113
  29. package/dist/builtins/mesh-orchestrator/mesh-orchestrator.addon.js.map +0 -1
  30. package/dist/builtins/mesh-orchestrator/mesh-orchestrator.addon.mjs +0 -107
  31. package/dist/builtins/mesh-orchestrator/mesh-orchestrator.addon.mjs.map +0 -1
  32. package/dist/builtins/turn-orchestrator/index.d.ts +0 -2
  33. package/dist/builtins/turn-orchestrator/index.d.ts.map +0 -1
  34. package/dist/builtins/turn-orchestrator/index.js +0 -7
  35. package/dist/builtins/turn-orchestrator/index.mjs +0 -2
  36. package/dist/builtins/turn-orchestrator/turn-orchestrator.addon.d.ts +0 -34
  37. package/dist/builtins/turn-orchestrator/turn-orchestrator.addon.d.ts.map +0 -1
  38. package/dist/builtins/turn-orchestrator/turn-orchestrator.addon.js +0 -126
  39. package/dist/builtins/turn-orchestrator/turn-orchestrator.addon.js.map +0 -1
  40. package/dist/builtins/turn-orchestrator/turn-orchestrator.addon.mjs +0 -120
  41. package/dist/builtins/turn-orchestrator/turn-orchestrator.addon.mjs.map +0 -1
package/dist/index.js CHANGED
@@ -37,7 +37,7 @@ let node_vm = require("node:vm");
37
37
  node_vm = require_chunk.__toESM(node_vm);
38
38
  let node_os = require("node:os");
39
39
  node_os = require_chunk.__toESM(node_os);
40
- //#region ../types/dist/index-YnRVILXN.mjs
40
+ //#region ../types/dist/index-CWhQOnm9.mjs
41
41
  var MODEL_FORMATS = [
42
42
  "onnx",
43
43
  "coreml",
@@ -2654,10 +2654,30 @@ var LinkStateSchema = zod.z.enum([
2654
2654
  "linked",
2655
2655
  "error"
2656
2656
  ]);
2657
+ var ExportSetupFieldSchema = zod.z.object({
2658
+ label: zod.z.string(),
2659
+ value: zod.z.string(),
2660
+ /** Mask the value by default + render a reveal toggle (client id, secrets). */
2661
+ secret: zod.z.boolean().optional()
2662
+ });
2663
+ var ExportSetupSchema = zod.z.object({
2664
+ /** A string to render as a scannable QR — HAP `X-HM://…` URI, a pairing URL, etc. Omitted when there's nothing to scan. */
2665
+ qr: zod.z.string().optional(),
2666
+ /** Label/value rows shown with a copy button (HAP setup code, OAuth URLs, client id, linked-account count, …). */
2667
+ fields: zod.z.array(ExportSetupFieldSchema).readonly().optional(),
2668
+ /** Free-form operator instructions rendered above the fields. */
2669
+ note: zod.z.string().optional()
2670
+ });
2657
2671
  var DeviceExportStatusSchema = zod.z.object({
2658
2672
  linkState: LinkStateSchema,
2659
2673
  exposedDeviceCount: zod.z.number(),
2660
- error: zod.z.string().optional()
2674
+ error: zod.z.string().optional(),
2675
+ /**
2676
+ * Optional pairing/account info the panel renders in a generic
2677
+ * "Setup" section. Addon-agnostic — the addon id identifies the
2678
+ * export target, never an `ecosystem` key here.
2679
+ */
2680
+ setup: ExportSetupSchema.optional()
2661
2681
  });
2662
2682
  var DeviceKindSchema = zod.z.string();
2663
2683
  var ExposedDeviceSchema = zod.z.object({
@@ -3571,42 +3591,6 @@ method(zod.z.object({
3571
3591
  username: zod.z.string(),
3572
3592
  password: zod.z.string()
3573
3593
  }), AuthResultSchema.nullable(), { kind: "mutation" }), method(zod.z.object({ state: zod.z.string() }), zod.z.string()), method(zod.z.record(zod.z.string(), zod.z.string()), AuthResultSchema, { kind: "mutation" }), method(zod.z.object({ token: zod.z.string() }), AuthResultSchema.nullable());
3574
- var AuthProviderInfoSchema = zod.z.object({
3575
- /** Stable id matching the addon id (used for `getLoginUrl({addonId,…})`). */
3576
- addonId: zod.z.string(),
3577
- /**
3578
- * Per-instance id when one addon registers multiple "logical"
3579
- * providers (e.g. OIDC with Google + Microsoft + custom). The login
3580
- * URL becomes `/addon/${addonId}/${instanceId}/start` — handler reads
3581
- * `:instanceId` from the route. Empty/unset means the addon is a
3582
- * single-instance provider; the URL is `/addon/${addonId}/start`.
3583
- */
3584
- instanceId: zod.z.string().optional(),
3585
- /** Display label shown on the login button + admin row. */
3586
- displayName: zod.z.string(),
3587
- /** Optional iconography hint (lucide-react icon name OR emoji). */
3588
- icon: zod.z.string().optional(),
3589
- /** When true, the provider exposes a redirect-based login flow
3590
- * (`getLoginUrl` returns a URL the browser navigates to). */
3591
- hasRedirectFlow: zod.z.boolean(),
3592
- /** When true, the provider exposes a credential-form login flow
3593
- * (`validateCredentials` accepts username + password). */
3594
- hasCredentialFlow: zod.z.boolean(),
3595
- /** Provider kind, drives admin-UI hint dispatch (oidc / saml / totp / …). */
3596
- kind: zod.z.string().optional(),
3597
- /** Operator-facing status string (e.g. "Connected to https://login.acme.com"). */
3598
- status: zod.z.string().optional(),
3599
- /** When false, the provider is registered but disabled by config; the
3600
- * UI surfaces it as inactive without enumerating it for login. */
3601
- enabled: zod.z.boolean()
3602
- });
3603
- method(zod.z.void(), zod.z.array(AuthProviderInfoSchema).readonly()), method(zod.z.object({
3604
- addonId: zod.z.string(),
3605
- enabled: zod.z.boolean()
3606
- }), zod.z.object({ success: zod.z.literal(true) }), {
3607
- kind: "mutation",
3608
- auth: "admin"
3609
- });
3610
3594
  var NetworkEndpointSchema = zod.z.object({
3611
3595
  url: zod.z.string(),
3612
3596
  hostname: zod.z.string(),
@@ -3632,33 +3616,6 @@ var NetworkEndpointEntrySchema = NetworkEndpointSchema.extend({
3632
3616
  sourcePort: zod.z.number().optional()
3633
3617
  });
3634
3618
  method(zod.z.void(), NetworkEndpointSchema, { kind: "mutation" }), method(zod.z.void(), zod.z.void(), { kind: "mutation" }), method(zod.z.void(), NetworkEndpointSchema.nullable()), method(zod.z.void(), NetworkAccessStatusSchema), method(zod.z.void(), zod.z.array(NetworkEndpointEntrySchema).readonly());
3635
- var RemoteAccessEndpointSchema = zod.z.object({
3636
- url: zod.z.string(),
3637
- hostname: zod.z.string(),
3638
- port: zod.z.number(),
3639
- protocol: zod.z.enum(["http", "https"])
3640
- });
3641
- var RemoteAccessProviderInfoSchema = zod.z.object({
3642
- /** Stable id matching the addon id. */
3643
- addonId: zod.z.string(),
3644
- /** Display label shown on the admin row — sourced from the addon manifest. */
3645
- displayName: zod.z.string(),
3646
- /** When false, the provider is registered but disabled. */
3647
- enabled: zod.z.boolean(),
3648
- /** True when the underlying tunnel/connection is up. */
3649
- connected: zod.z.boolean(),
3650
- /** Public-facing endpoint, when connected. Null otherwise. */
3651
- endpoint: RemoteAccessEndpointSchema.nullable(),
3652
- /** Last error message (when connected=false), if available. */
3653
- error: zod.z.string().optional()
3654
- });
3655
- method(zod.z.void(), zod.z.array(RemoteAccessProviderInfoSchema).readonly()), method(zod.z.object({ addonId: zod.z.string() }), RemoteAccessEndpointSchema, {
3656
- kind: "mutation",
3657
- auth: "admin"
3658
- }), method(zod.z.object({ addonId: zod.z.string() }), zod.z.object({ success: zod.z.literal(true) }), {
3659
- kind: "mutation",
3660
- auth: "admin"
3661
- });
3662
3619
  var TurnServerSchema = zod.z.object({
3663
3620
  /** Single URL or list of URLs (e.g. "turn:turn.example.com:3478?transport=udp"). */
3664
3621
  urls: zod.z.union([zod.z.string(), zod.z.array(zod.z.string())]),
@@ -3666,33 +3623,6 @@ var TurnServerSchema = zod.z.object({
3666
3623
  credential: zod.z.string().optional()
3667
3624
  });
3668
3625
  method(zod.z.void(), zod.z.array(TurnServerSchema).readonly());
3669
- var TurnProviderInfoSchema = zod.z.object({
3670
- /** Stable id matching the addon id. */
3671
- addonId: zod.z.string(),
3672
- /** Display label shown on the admin row — sourced from the addon manifest. */
3673
- displayName: zod.z.string(),
3674
- /** When false, the provider is registered but disabled. */
3675
- enabled: zod.z.boolean(),
3676
- /** Number of servers this provider is currently exposing. */
3677
- serverCount: zod.z.number(),
3678
- /**
3679
- * Flat list of every TURN/STUN URL this provider currently exposes.
3680
- * One row per URL (multi-URL ICE server entries are flattened). The
3681
- * admin UI shows this in a compact per-provider list so operators
3682
- * can verify what's actually being negotiated without having to dig
3683
- * into the combined `getAllServers` output.
3684
- */
3685
- urls: zod.z.array(zod.z.string()).readonly(),
3686
- /** Last fetch error (when serverCount=0 due to API failure), if any. */
3687
- error: zod.z.string().optional()
3688
- });
3689
- method(zod.z.void(), zod.z.array(TurnProviderInfoSchema).readonly()), method(zod.z.void(), zod.z.array(TurnServerSchema).readonly()), method(zod.z.object({
3690
- addonId: zod.z.string(),
3691
- enabled: zod.z.boolean()
3692
- }), zod.z.object({ success: zod.z.literal(true) }), {
3693
- kind: "mutation",
3694
- auth: "admin"
3695
- });
3696
3626
  var SnapshotImageSchema = zod.z.object({
3697
3627
  base64: zod.z.string(),
3698
3628
  contentType: zod.z.string()
@@ -4789,7 +4719,7 @@ method(zod.z.void(), ListResultSchema), method(zod.z.void(), PreferredSchema), m
4789
4719
  * tunnel always emits `https://` regardless. */
4790
4720
  scheme: zod.z.enum(["http", "https"]).optional()
4791
4721
  }), GetConnectionEndpointsResultSchema), method(zod.z.void(), AllowedAddressesSchema), method(AllowedAddressesSchema, zod.z.object({ success: zod.z.literal(true) }), { kind: "mutation" }), method(zod.z.void(), AllowedAddressesSchema, { kind: "mutation" });
4792
- var MeshEndpointSchema$1 = zod.z.object({
4722
+ var MeshEndpointSchema = zod.z.object({
4793
4723
  /** Stable identifier within the provider (e.g. `mesh-ipv4`, `magicdns`, `funnel`). */
4794
4724
  id: zod.z.string(),
4795
4725
  /** Operator-facing label (e.g. "Mesh IPv4", "MagicDNS"). */
@@ -4866,7 +4796,7 @@ var MeshStatusSchema = zod.z.object({
4866
4796
  /** Number of peers visible to this host (excluding self). */
4867
4797
  peerCount: zod.z.number(),
4868
4798
  /** Every endpoint this provider exposes for the current host. */
4869
- endpoints: zod.z.array(MeshEndpointSchema$1).readonly(),
4799
+ endpoints: zod.z.array(MeshEndpointSchema).readonly(),
4870
4800
  /** Last error from the daemon, when not joined. */
4871
4801
  error: zod.z.string().optional(),
4872
4802
  /**
@@ -4898,7 +4828,24 @@ var MeshStatusSchema = zod.z.object({
4898
4828
  * doesn't rotate keys for the bound host. Operator-facing surface
4899
4829
  * for "your access expires on …" banners.
4900
4830
  */
4901
- keyExpiry: zod.z.number().nullable()
4831
+ keyExpiry: zod.z.number().nullable(),
4832
+ /**
4833
+ * When the provider runs its OWN mesh daemon (e.g. the Tailscale
4834
+ * client addon in `onboard` mode spawns a private `tailscaled`),
4835
+ * this carries the local control-socket path. Companion addons that
4836
+ * must drive the SAME daemon — chiefly `tailscale-ingress` for
4837
+ * Serve/Funnel — read it to point their CLI at the right socket
4838
+ * instead of the system default. Empty when the provider uses the
4839
+ * host's system daemon (or doesn't have the concept).
4840
+ */
4841
+ daemonSocket: zod.z.string().optional(),
4842
+ /**
4843
+ * Path to the mesh CLI binary the provider downloaded for onboard
4844
+ * mode. Companion addons reuse it so they don't need a system
4845
+ * install when the operator chose a fully self-contained mesh.
4846
+ * Empty in host mode.
4847
+ */
4848
+ daemonCliPath: zod.z.string().optional()
4902
4849
  });
4903
4850
  method(zod.z.void(), MeshStatusSchema), method(zod.z.object({
4904
4851
  /** Provider-specific auth key. For Tailscale this is the
@@ -4924,51 +4871,6 @@ authKey: zod.z.string().optional() }), zod.z.object({
4924
4871
  /** Human-readable error when `ok: false`. */
4925
4872
  error: zod.z.string().optional()
4926
4873
  }), { kind: "mutation" });
4927
- var MeshEndpointSchema = zod.z.object({
4928
- id: zod.z.string(),
4929
- label: zod.z.string(),
4930
- scope: zod.z.enum(["mesh", "public"]),
4931
- url: zod.z.string(),
4932
- hostname: zod.z.string(),
4933
- port: zod.z.number(),
4934
- protocol: zod.z.enum(["http", "https"])
4935
- });
4936
- var MeshProviderInfoSchema = zod.z.object({
4937
- /** Stable id matching the addon id. */
4938
- addonId: zod.z.string(),
4939
- /** Display label shown on the admin row — sourced from the addon manifest. */
4940
- displayName: zod.z.string(),
4941
- /** True when the host is joined to this provider's mesh. */
4942
- joined: zod.z.boolean(),
4943
- /** Local mesh IP (empty when not joined). */
4944
- meshIp: zod.z.string(),
4945
- /** MagicDNS / mesh hostname (empty when not configured). */
4946
- magicDnsHostname: zod.z.string(),
4947
- /** Peer count (excluding self). */
4948
- peerCount: zod.z.number(),
4949
- /** Active endpoints (mesh IP + MagicDNS + optional public Funnel). */
4950
- endpoints: zod.z.array(MeshEndpointSchema).readonly(),
4951
- /** Last error reported by the provider. */
4952
- error: zod.z.string().optional(),
4953
- /** Tenant / tailnet / network display name. Empty pre-join. */
4954
- tenantName: zod.z.string(),
4955
- /** Mesh DNS suffix (e.g. tailXXXX.ts.net). Empty when not configured. */
4956
- magicDnsSuffix: zod.z.string(),
4957
- /** Authenticated user / account login. Null for token-only providers. */
4958
- userLogin: zod.z.string().nullable(),
4959
- /** Provider control-plane URL. */
4960
- controlPlaneUrl: zod.z.string(),
4961
- /** Machine-key expiry (epoch ms). Null when keys don't rotate. */
4962
- keyExpiry: zod.z.number().nullable()
4963
- });
4964
- method(zod.z.void(), zod.z.array(MeshProviderInfoSchema).readonly()), method(zod.z.object({
4965
- addonId: zod.z.string(),
4966
- authKey: zod.z.string().min(8),
4967
- hostname: zod.z.string().optional()
4968
- }), zod.z.object({ joined: zod.z.literal(true) }), { kind: "mutation" }), method(zod.z.object({ addonId: zod.z.string() }), zod.z.object({ success: zod.z.literal(true) }), { kind: "mutation" }), method(zod.z.object({
4969
- addonId: zod.z.string(),
4970
- hostname: zod.z.string().optional()
4971
- }), zod.z.object({ loginUrl: zod.z.string() }), { kind: "mutation" }), method(zod.z.object({ addonId: zod.z.string() }), zod.z.object({ loggedOut: zod.z.literal(true) }), { kind: "mutation" }), method(zod.z.object({ addonId: zod.z.string() }), zod.z.object({ peers: zod.z.array(MeshPeerSchema).readonly() }));
4972
4874
  var MethodAccessSchema = zod.z.enum([
4973
4875
  "view",
4974
4876
  "create",
@@ -5580,6 +5482,21 @@ var AddonAutoUpdateSchema = ChannelWithInheritSchema;
5580
5482
  var RestartAddonResultSchema = zod.z.unknown();
5581
5483
  var InstallPackageResultSchema = zod.z.unknown();
5582
5484
  var ReloadPackagesResultSchema = zod.z.unknown();
5485
+ var UpdateFrameworkPackageResultSchema = zod.z.object({
5486
+ packageName: zod.z.string(),
5487
+ fromVersion: zod.z.string(),
5488
+ toVersion: zod.z.string(),
5489
+ /** Ms-epoch the server scheduled its self-restart. */
5490
+ restartingAt: zod.z.number()
5491
+ });
5492
+ var FrameworkPackageStatusSchema = zod.z.object({
5493
+ packageName: zod.z.string(),
5494
+ currentVersion: zod.z.string(),
5495
+ latestVersion: zod.z.string().nullable(),
5496
+ hasUpdate: zod.z.boolean(),
5497
+ /** Optional manifest description for the row tooltip. */
5498
+ description: zod.z.string().optional()
5499
+ });
5583
5500
  var LogStreamEntrySchema = zod.z.object({
5584
5501
  timestamp: zod.z.string(),
5585
5502
  level: zod.z.string(),
@@ -5611,21 +5528,50 @@ method(zod.z.void(), zod.z.array(AddonListItemSchema).readonly()), method(zod.z.
5611
5528
  }), method(zod.z.void(), ReloadPackagesResultSchema, {
5612
5529
  kind: "mutation",
5613
5530
  auth: "admin"
5614
- }), method(zod.z.object({ query: zod.z.string().optional() }), zod.z.array(SearchResultSchema)), method(zod.z.void(), zod.z.array(PackageUpdateSchema).readonly(), { auth: "admin" }), method(zod.z.object({
5531
+ }), method(zod.z.object({ query: zod.z.string().optional() }), zod.z.array(SearchResultSchema)), method(zod.z.object({ nodeId: zod.z.string().optional() }), zod.z.array(PackageUpdateSchema).readonly(), { auth: "admin" }), method(zod.z.object({
5615
5532
  name: zod.z.string().min(1),
5616
- version: zod.z.string().optional()
5533
+ version: zod.z.string().optional(),
5534
+ nodeId: zod.z.string().optional()
5617
5535
  }), zod.z.unknown(), {
5618
5536
  kind: "mutation",
5619
5537
  auth: "admin"
5620
5538
  }), method(zod.z.object({ name: zod.z.string().min(1) }), zod.z.object({ rolledBackTo: zod.z.string().nullable() }), {
5621
5539
  kind: "mutation",
5622
5540
  auth: "admin"
5623
- }), method(zod.z.void(), zod.z.unknown(), {
5541
+ }), method(zod.z.object({ nodeId: zod.z.string().optional() }), zod.z.unknown(), {
5624
5542
  kind: "mutation",
5625
5543
  auth: "admin"
5626
5544
  }), method(zod.z.object({ confirm: zod.z.literal(true) }), zod.z.unknown(), {
5627
5545
  kind: "mutation",
5628
5546
  auth: "admin"
5547
+ }), method(zod.z.void(), zod.z.object({
5548
+ kind: zod.z.enum([
5549
+ "framework-update",
5550
+ "manual",
5551
+ "system"
5552
+ ]),
5553
+ packageName: zod.z.string().optional(),
5554
+ fromVersion: zod.z.string().optional(),
5555
+ toVersion: zod.z.string().optional(),
5556
+ requestedBy: zod.z.string().optional(),
5557
+ requestedAt: zod.z.number()
5558
+ }).nullable(), { auth: "admin" }), method(zod.z.void(), zod.z.array(FrameworkPackageStatusSchema).readonly(), { auth: "admin" }), method(zod.z.object({ capName: zod.z.string().min(1) }), zod.z.array(zod.z.object({
5559
+ addonId: zod.z.string(),
5560
+ mode: zod.z.enum(["singleton", "collection"]),
5561
+ isActive: zod.z.boolean()
5562
+ })).readonly()), method(zod.z.object({
5563
+ capName: zod.z.string().min(1),
5564
+ addonId: zod.z.string().min(1),
5565
+ enabled: zod.z.boolean()
5566
+ }), zod.z.object({ success: zod.z.literal(true) }), {
5567
+ kind: "mutation",
5568
+ auth: "admin"
5569
+ }), method(zod.z.object({
5570
+ packageName: zod.z.string().min(1),
5571
+ version: zod.z.string().optional()
5572
+ }), UpdateFrameworkPackageResultSchema, {
5573
+ kind: "mutation",
5574
+ auth: "admin"
5629
5575
  }), method(zod.z.object({ name: zod.z.string() }), zod.z.array(PackageVersionInfoSchema).readonly()), method(zod.z.object({ addonId: zod.z.string() }), RestartAddonResultSchema, {
5630
5576
  kind: "mutation",
5631
5577
  auth: "admin"